CONTRIBUTING.md 3.3 KB

Contributing to Libidn

This file contains instructions for developers and advanced users that wants to build from version controlled sources.

We rely on several tools to build the software, including:

The software is typically distributed with your operating system, and the instructions for installing them differ. Here are some hints:

APT/DPKG-based distributions:

apt-get install make git autoconf automake libtool gettext autopoint cvs
apt-get install texinfo texlive texlive-plain-generic texlive-extra-utils
apt-get install help2man gtk-doc-tools dblatex valgrind gengetopt
apt-get install transfig mono-mcs gperf default-jdk-headless

DNF/RPM-based distributions:

dnf install -y make git autoconf automake libtool gettext-devel cvs
dnf install -y texinfo texinfo-tex texlive
dnf install -y help2man gtk-doc gengetopt dblatex valgrind
dnf install -y gperf java-latest-openjdk-devel

On macOS with Xcode and Homebrew:

brew install autoconf automake libtool gengetopt help2man texinfo fig2dev

To download the version controlled sources:

git clone https://git.savannah.gnu.org/git/libidn.git
cd libidn

The next step is to import gnulib files, run autoreconf etc:

./bootstrap

If you have a local checkout of gnulib and wants to avoid download another copy, you may want to use:

./bootstrap --gnulib-refdir=../gnulib

Then configure the project as you would normally, for example:

./configure --enable-java --enable-gtk-doc-pdf

Then build the project:

make
make check

To prepare releases you need some additional tools:

  • Mingw (to produce Windows binaries)
  • Wine (to self-check Windows binaries)
  • Lcov (to produce coverage HTML pages)
  • Zip (to pack Windows binaries)
  • Clang (to produce clang analysis)
  • Doxygen (to produce doxygen manual)
  • pmccabe (to produce cyclomatic code complexity report)
  • ncftpput (to upload source tarballs)

APT/DPKG-based distributions:

apt-get install mingw-w64 wine binfmt-support lcov zip
apt-get install clang doxygen pmccabe ncftp

See README-release on how to make a release.

Happy hacking!


Copyright (C) 2009-2024 Simon Josefsson Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved.