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:
#define
directives (see Configuration Header Files);
configure
makes a mistake.
To create a configure
script with Autoconf, you need
to write an Autoconf input file configure.ac 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 can 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, when using just Autoconf:
your source files --> [autoscan*] --> [configure.scan] --> configure.ac
configure.ac --. | .------> autoconf* -----> configure [aclocal.m4] --+---+ | `-----> [autoheader*] --> [config.h.in] [acsite.m4] ---'
Makefile.in
Additionally, if you use Automake, the following additional productions come into play:
[acinclude.m4] --. | [local macros] --+--> aclocal* --> aclocal.m4 | configure.ac ----'
configure.ac --. +--> automake* --> Makefile.in Makefile.am ---'
Files used in configuring a software package:
.-------------> [config.cache] configure* ------------+-------------> config.log | [config.h.in] -. v .-> [config.h] -. +--> config.status* -+ +--> make* Makefile.in ---' `-> Makefile ---'