Libidn2 CONTRIBUTING -- Information for developers.             -*- outline -*-
Copyright (C) 2011-2017 Simon Josefsson
See the end for copying conditions.

This file contains instructions for developers and advanced users that
wants to build from version controlled sources.  You need to have
several tools installed, including:

- Make <http://www.gnu.org/software/make/>
- Automake <http://www.gnu.org/software/automake/>
- Autoconf <http://www.gnu.org/software/autoconf/>
- Libtool <http://www.gnu.org/software/libtool/>
- Gettext <http://www.gnu.org/software/gettext/>
- Texinfo <http://www.gnu.org/software/texinfo/>
- Gperf <http://www.gnu.org/software/gperf/>
- help2man <http://www.gnu.org/software/help2man/>
- Gengetopt <http://www.gnu.org/software/gengetopt/>
- Tar <http://www.gnu.org/software/tar/>
- Gzip <http://www.gnu.org/software/gzip/>
- Texlive & epsf <http://www.tug.org/texlive/> (for PDF manual)
- GTK-DOC <http://www.gtk.org/gtk-doc/> (for API manual)
- Git <http://git.or.cz/>
- Perl <http://www.cpan.org/>
- Valgrind <http://valgrind.org/> (optional)
- libunistring <https://www.gnu.org/software/libunistring/>

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

gNewSense/Debian/Ubuntu:
apt-get install git autoconf automake libtool texinfo gperf
apt-get install libunistring-dev help2man gtk-doc-tools valgrind gengetopt

Download the version controlled sources:

$ git clone https://gitlab.com/jas/libidn2.git
$ cd libidn2

Prepare building with

$ ./bootstrap
$ ./configure --enable-gtk-doc --enable-gtk-doc-pdf --enable-gcc-warnings --enable-valgrind-tests

You may want to use --gnulib-srcdir=/foo/bar/gnulib to avoid having to
checkout gnulib every time.  Make sure the gnulib directory you point
to is up to date.

Then build the project normally:

$ make
$ make check

The release process consists of:

* Make sure version number is updated in configure.ac and idn2.h.in.

* Make sure library version is updated in configure.ac.

* Prepare NEWS.

* Do 'make release'

Happy hacking!

----------------------------------------------------------------------
This file is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation, either version 3 of the License, or (at your
option) any later version.

This file is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
General Public License for more details.

You should have received a copy of the GNU General Public License
along with this file.  If not, see <http://www.gnu.org/licenses/>.
