16.3 autoreconf Invocation

autoreconf is the command to build and update an Automake
build system. It repeatedly runs individual programs in the correct
order to update all the necessary files in the build system, including
in any subdirectories (see Subdirectories). These programs include
autoconf, autoheader, aclocal and
automake. autoreconf is provided as part of Autoconf.

If Libtool or Gettext are used as part of the project,
autoreconf may also run libtoolize or
autopoint respectively. (See Invoking the autopoint Program in GNU gettext
utilities, for further details.)

You could also run these programs yourself, but autoreconf
saves you the trouble of thinking about what programs you need to run to
update particular files and the order you need to do it. See Appendix A
for a flowchart of which programs generate which files.

The environment variables AUTOM4TE, AUTOCONF,
AUTOHEADER, AUTOMAKE, ACLOCAL, AUTOPOINT,
LIBTOOLIZE, M4, and MAKE may be used to override the
invocation of the respective tools.

You may run ‘autoreconf --install’ to initialize a build system.
You may also also want to run it because some of the sources such as
configure.ac have been updated. However, in an already
configured source tree, running ‘make’ will update the build system
automatically, and running ‘autoreconf’ is not required.

(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.)

By default, autoreconf only remakes those files that are older
than their sources. If you install a new version of some tool such as
automake, you can make autoreconf remake all
of the files by giving it the --force option.

--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

Remake even configure scripts and configuration headers that are
newer than their input files (configure.ac and, if present,
aclocal.m4).

--install

-i

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

Do not rebuild files in subdirectories to configure (see 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

-W category

Report the warnings related to category (which can actually be a
comma separated list).

‘cross’

related to cross compilation issues.

‘obsolete’

report the uses of obsolete constructs.

‘portability’

portability issues

‘syntax’

dubious syntactic constructs.

‘all’

report all the warnings

‘none’

report none

‘error’

treats warnings as errors

‘no-category’

disable warnings falling into category

Warnings about ‘syntax’ are enabled by default, and the environment
variable WARNINGS, a comma separated list of categories, is
honored as well. Passing -W category actually behaves as if
you had passed --warnings syntax,$WARNINGS,category. To
disable the defaults and WARNINGS, and then
enable warnings about obsolete constructs, use -W
none,obsolete.

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.