Next: , Previous: , Up: Build Infrastructure Files   [Contents][Index]


20.3 Programs for developing in Git checkouts

These programs can help when developing in a Git checkout. The maintainer of the package copies these programs into the version control of the package, so that co-developers can use these tools right away.

top/gitsub.sh

This program manages the subdirectories of a Git checkout that come from other packages, including Gnulib.

top/bootstrap
top/autopull.sh
top/autogen.sh
top/bootstrap-funclib.sh

This is a set of three programs and a function library, that manage the source directory of a package, preparing for the state where ‘./configure’ can be used.

autopull.sh is a program for fetching dependencies that may require network accesses. It manages the Git submodules, including Gnulib – assuming that Gnulib is a Git submodule. It also can fetch the PO files for internationalized packages.

autogen.sh is a program that is meant to be run after autopull.sh. It generates all autogeneratable files that are omitted from version control. Usually this means that it invokes gnulib-tool and automake, that generate files from other files.

bootstrap is a wrapper around both: ./bootstrap --pull is equivalent to ./autopull.sh, ./bootstrap --gen is equivalent to ./autogen.sh. Plain ./bootstrap is equivalent to ./autopull.sh immediately followed by ./autogen.sh; however, because plain ./bootstrap mixes version control management and generation of files in non-obvious ways, it has a number of usability issues for the advanced developer.

bootstrap-funclib.sh is a function library for these three programs. It is not meant to be used directly.

All three programs make use of a configuration file, called bootstrap.conf.

build-aux/bootstrap

This acts like top/bootstrap, except it does not need the companion files autogen.sh, autopull.sh, and bootstrap-funclib.sh so it avoids some clutter in your project’s top level directory. With this approach, you update via ./bootstrap --pull and ./bootstrap --gen instead of via ./autopull.sh and ./autogen.sh. Otherwise this approach acts similarly, and uses the same bootstrap.conf file.

build-aux/bootstrap.conf

This is the template configuration file. After copying it into the top-level directory of your package, you need to customize it.

build-aux/po/Makefile.in.in
build-aux/po/remove-potcdate.sin

These are auxiliary files used by bootstrap. You don’t have to copy them yourself; bootstrap will do that.


Next: Utilities for building documentation, Previous: Utilities for Makefiles, Up: Build Infrastructure Files   [Contents][Index]