(autoconf.info)Making configure Scripts
Next: Setup Prev: The GNU Build System Up: Top
3 Making `configure' Scripts
The 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:
- one or more `Makefile' files, usually one in each subdirectory of
the package (Note: Makefile Substitutions);
- optionally, a C header file, the name of which is configurable,
containing `#define' directives (Note: Configuration Headers);
- a shell script called `config.status' that, when run, recreates
the files listed above (*note config.status Invocation::);
- an optional shell script normally called `config.cache' (created
when using `configure --config-cache') that saves the results of
running many of the tests (Note: Cache Files);
- a file called `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 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:
your source files --> [autoscan*] --> [configure.scan] --> configure.ac
| .------> autoconf* -----> configure
| `-----> [autoheader*] --> [config.h.in]
Makefile.in -------------------------------> Makefile.in
Files used in configuring a software package:
configure* ------------+-------------> config.log
[config.h.in] -. v .-> [config.h] -.
+--> config.status* -+ +--> make*
Makefile.in ---' `-> Makefile ---'
- Writing Autoconf Input
- What to put in an Autoconf input file
- autoscan Invocation
- Semi-automatic `configure.ac' writing
- ifnames Invocation
- Listing the conditionals in source code
- autoconf Invocation
- How to create configuration scripts
- autoreconf Invocation
- Remaking multiple `configure' scripts
automatically generated by info2www