view doc/build-automation.texi @ 40214:452ab00796c7

Fix undefined behaviour. * lib/bitrotate.h (rotl16, rotr16, rotl8, rotr8): Case x to 'unsigned int', to avoid shift operations on 'int'. * lib/xmemdup0.c (xmemdup0): Don't invoke memcpy with a zero size. * tests/test-count-leading-zeros.c (main): Use a random number that has as many bits as TYPE, not only 2*15 or 2*31 bits. * tests/test-count-trailing-zeros.c (main): Likewise. * tests/test-count-one-bits.c (main): Likewise. * tests/test-memmem.c: Don't include "null-ptr.h". (main): Use zerosize_ptr() instead of null_ptr(). * modules/memmem-tests (Files): Remove tests/null-ptr.h.
author Bruno Haible <bruno@clisp.org>
date Sat, 09 Mar 2019 20:32:25 +0100
parents 5008ae38476e
children
line wrap: on
line source

@node Building gnulib
@section Building gnulib

If you wish to help the gnulib development effort with build logs for
your favorite platform, you may perform these steps:

@enumerate

@item Prerequisites tools

Install the proper development tools.  To build and test all of
Gnulib, you will need development tools for the programming languages
C, C++, Java, and Perl, along with standard POSIX utilities such as
@command{awk}, @command{make} and @command{sh}.  You will also need
development tools that include Autoconf, Automake, Bison, Gettext,
Git, GNU M4, Gperf, Libtool, and Texinfo.  Some of these tools are
needed only by some modules.  More details can be found in Gnulib's
@file{DEPENDENCIES} file.

@item Obtain Gnulib

See @url{https://www.gnu.org/software/gnulib/} for how to get the
current Gnulib sources via Git.

@item Create gnulib directory

On a machine with GNU development tools installed and with a gnulib
git checkout, use

@example
gnulib-tool --create-megatestdir --with-tests --dir=...
@end example

Note: The created directory uses ca. 512 MB on disk.

@item Transfer gnulib directory

Transfer this directory to a build machine (HP-UX, Cygwin, or
whatever).  Often it is easier to transfer one file, and this can be
achieved by running, inside the directory the following commands:

@example
./configure
make dist
@end example

And then transferring the @file{dummy-0.tar.gz} file.

@item Build modules

On the build machine, run ./do-autobuild (or "nohup ./do-autobuild").
It creates a directory @file{logs/} with a log file for each module.

@end enumerate