3.5 Using autoreconf to Update configure Scripts

Installing the various components of the GNU Build System can be tedious: running autopoint for Gettext, automake for Makefile.in etc. in each directory. It may be needed either because some tools such as automake have been updated on your system, or because some of the sources such as configure.ac have been updated, or finally, simply in order to install the GNU Build System in a fresh tree.

autoreconf runs autoconf, autoheader, aclocal, automake, libtoolize, intltoolize, gtkdocize, and autopoint (when appropriate) repeatedly to update the GNU Build System in the specified directories and their subdirectories (see Configuring Other Packages in Subdirectories). By default, it only remakes those files that are older than their sources. The environment variables AUTOM4TE, AUTOCONF, AUTOHEADER, AUTOMAKE, ACLOCAL, AUTOPOINT, LIBTOOLIZE, INTLTOOLIZE, GTKDOCIZE, M4, and MAKE may be used to override the invocation of the respective tools.

If you install a new version of some tool, you can make autoreconf remake all of the files by giving it the --force option.

See Automatic Remaking, for Make rules to automatically rebuild configure scripts when their source files change. That method handles the timestamps of configuration header templates properly, but does not pass --autoconf-dir=dir or --localdir=dir.

Gettext supplies the autopoint command to add translation infrastructure to a source package. If you use autopoint, your configure.ac should invoke AM_GNU_GETTEXT and one of AM_GNU_GETTEXT_VERSION(gettext-version) or AM_GNU_GETTEXT_REQUIRE_VERSION(min-gettext-version). See Invoking the autopoint Program in GNU gettext utilities, for further details.

autoreconf accepts the following options:

--help
-h

Print a summary of the command line options and exit.

--version
-V

Print the version number of Autoconf and exit.

--verbose
-v

Print the name of each directory autoreconf examines and the commands it runs. If given two or more times, pass --verbose to subordinate tools that support it.

--debug
-d

Don’t remove the temporary files.

--force
-f

Consider all generated and standard auxiliary files to be obsolete. This remakes even configure scripts and configuration headers that are newer than their input files (configure.ac and, if present, aclocal.m4).

If deemed appropriate, this option triggers calls to ‘automake --force-missing’. Passing both --force and --install to autoreconf will in turn undo any customizations to standard files. Note that the macro AM_INIT_AUTOMAKE has some options which change the set of files considered to be standard.

--install
-i

Install any missing standard auxiliary files in the package. By default, files are copied; this can be changed with --symlink.

If deemed appropriate, this option triggers calls to ‘automake --add-missing’, ‘libtoolize’, ‘autopoint’, etc.

--no-recursive

Do not rebuild files in subdirectories to configure (see Configuring Other Packages in Subdirectories, macro AC_CONFIG_SUBDIRS).

--symlink
-s

When used with --install, install symbolic links to the missing auxiliary files instead of copying them.

--make
-m

When the directories were configured, update the configuration by running ‘./config.status --recheck && ./config.status’, and then run ‘make’.

--include=dir
-I dir

Append dir to the include path. Multiple invocations accumulate. Passed on to aclocal, autoconf and autoheader internally.

--prepend-include=dir
-B dir

Prepend dir to the include path. Multiple invocations accumulate. Passed on to autoconf and autoheader internally.

--warnings=category[,category...]
-Wcategory[,category...]

Enable or disable warnings related to each category. See m4_warn, for a comprehensive list of categories. Special values include:

all

Enable all categories of warnings.

none

Disable all categories of warnings.

error

Treat all warnings as errors.

no-category

Disable warnings falling into category.

The environment variable WARNINGS may also be set to a comma-separated list of warning categories to enable or disable. It is interpreted exactly the same way as the argument of --warnings, but unknown categories are silently ignored. The command line takes precedence; for instance, if WARNINGS is set to obsolete, but -Wnone is given on the command line, no warnings will be issued.

Some categories of warnings are on by default. Again, for details see m4_warn.

If you want autoreconf to pass flags that are not listed here on to aclocal, set ACLOCAL_AMFLAGS in your Makefile.am. Due to a limitation in the Autoconf implementation these flags currently must be set on a single line in Makefile.am, without any backslash-newlines. Also, be aware that future Automake releases might start flagging ACLOCAL_AMFLAGS as obsolescent, or even remove support for it.