Node:Making configure Scripts, Next:Setup, Previous:The GNU build system, Up:Top
configure ScriptsThe configuration scripts that Autoconf produces are by convention
called configure. When run, configure creates several
files, replacing configuration parameters in them with appropriate
values. The files that configure creates are:
Makefile files, one in each subdirectory of the
package (see Makefile Substitutions);
#define directives (see Configuration Headers);
config.status that, when run, will recreate
the files listed above (see config.status Invocation);
config.cache
(created when using configure --config-cache) that
saves the results of running many of the tests (see Cache Files);
config.log containing any messages produced by
compilers, to help debugging if configure makes a mistake.
To create a configure script with Autoconf, you need to write an
Autoconf input file configure.ac (or configure.in) and run
autoconf on it. If you write your own feature tests to
supplement those that come with Autoconf, you might also write files
called aclocal.m4 and acsite.m4. If you use a C header
file to contain #define directives, you might also run
autoheader, and you will distribute the generated file
config.h.in with the package.
Here is a diagram showing how the files that can be used in
configuration are produced. Programs that are executed are suffixed by
*. Optional files are enclosed in square brackets ([]).
autoconf and autoheader also read the installed Autoconf
macro files (by reading autoconf.m4).
Files used in preparing a software package for distribution:
your source files --> [autoscan*] --> [configure.scan] --> configure.ac
configure.ac --.
| .------> autoconf* -----> configure
[aclocal.m4] --+---+
| `-----> [autoheader*] --> [config.h.in]
[acsite.m4] ---'
Makefile.in -------------------------------> Makefile.in
Files used in configuring a software package:
.-------------> [config.cache]
configure* ------------+-------------> config.log
|
[config.h.in] -. v .-> [config.h] -.
+--> config.status* -+ +--> make*
Makefile.in ---' `-> Makefile ---'
configure.ac writing
configure scripts