17 config.status Invocation
The configure script creates a file named config.status,
which actually configures, instantiates, the template files. It
also records the configuration options that were specified when the
package was last configured in case reconfiguring is needed.
./config.status [option]... [tag]...
It configures each tag; if none are specified, all the templates
are instantiated. A tag refers to a file or other tag associated
with a configuration action, as specified by an
macro (see Configuration Actions). The files must be specified
without their dependencies, as in
The supported options are:
- Print a summary of the command line options, the list of the template
files, and exit.
- Print the version number of Autoconf and the configuration settings,
- Print the configuration settings in reusable way, quoted for the shell,
and exit. For example, for a debugging build that otherwise reuses the
configuration from a different build directory build-dir of a
package in src-dir, you could use the following:
eval src-dir/configure "$args" CFLAGS=-g --srcdir=src-dir
Note that it may be necessary to override a --srcdir setting
that was saved in the configuration, if the arguments are used in a
different build directory.
- Do not print progress messages.
- Don't remove the temporary files.
- Require that file be instantiated as if
‘AC_CONFIG_FILES(file:template)’ was used. Both
file and template may be ‘-’ in which case the standard
output and/or standard input, respectively, is used. If a
template file name is relative, it is first looked for in the build
tree, and then in the source tree. See Configuration Actions, for
This option and the following ones provide one way for separately
distributed packages to share the values computed by configure.
Doing so can be useful if some of the packages need a superset of the
features that one of them, perhaps a common library, does. These
options allow a config.status file to create files other than the
ones that its configure.ac specifies, so it can be used for a
different package, or for extracting a subset of values. For example,
echo '@CC@' | ./config.status --file=-
provides the value of
@CC@ on standard output.
- Same as --file above, but with ‘AC_CONFIG_HEADERS’.
- Ask config.status to update itself and exit (no instantiation).
This option is useful if you change configure, so that the
results of some tests might be different from the previous run. The
--recheck option reruns configure with the same arguments
you used before, plus the --no-create option, which prevents
configure from running config.status and creating
Makefile and other files, and the --no-recursion option,
which prevents configure from running other configure
scripts in subdirectories. (This is so other Make rules can
run config.status when it changes; see Automatic Remaking,
for an example).
config.status checks several optional environment variables that
can alter its behavior:
— Variable: CONFIG_SHELL
The shell with which to run configure. It must be
Bourne-compatible, and the absolute name of the shell should be passed.
The default is a shell that supports
LINENO if available, and
— Variable: CONFIG_STATUS
The file name to use for the shell script that records the
configuration. The default is ./config.status. This variable is
useful when one package uses parts of another and the configure
scripts shouldn't be merged because they are maintained separately.
You can use ./config.status in your makefiles. For example, in
the dependencies given above (see Automatic Remaking),
config.status is run twice when configure.ac has changed.
If that bothers you, you can make each run only regenerate the files for
stamp-h: config.h.in config.status
echo > stamp-h
Makefile: Makefile.in config.status
The calling convention of config.status has changed; see
Obsolete config.status Use, for details.