[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
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.
Synopsis:
./config.status [option] |
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 AC_CONFIG_ITEMS
macro (see section Performing Configuration Actions). The files must be specified
without their dependencies, as in
./config.status foobar |
not
./config.status foobar:foo.in:bar.in |
The supported options are:
- ‘--help’
- ‘-h’
Print a summary of the command line options, the list of the template files, and exit.
- ‘--version’
- ‘-V’
Print the version number of Autoconf and the configuration settings, and exit.
- ‘--config’
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:
args=`build-dir/config.status --config` 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.
- ‘--silent’
- ‘--quiet’
- ‘-q’
Do not print progress messages.
- ‘--debug’
- ‘-d’
Don’t remove the temporary files.
- ‘--file=file[:template]’
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 section Performing Configuration Actions, for more details.
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.- ‘--header=file[:template]’
Same as ‘--file’ above, but with ‘AC_CONFIG_HEADERS’.
- ‘--recheck’
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 rerunsconfigure
with the same arguments you used before, plus the ‘--no-create’ option, which preventsconfigure
from running ‘config.status’ and creating ‘Makefile’ and other files, and the ‘--no-recursion’ option, which preventsconfigure
from running otherconfigure
scripts in subdirectories. (This is so other Make rules can run ‘config.status’ when it changes; see section 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
for the ‘--recheck’ option. It must be Bourne-compatible. The default is a shell that supportsLINENO
if available, and ‘/bin/sh’ otherwise. Invokingconfigure
by hand bypasses this setting, so you may need to use a command like ‘CONFIG_SHELL=/bin/bash /bin/bash ./configure’ to insure that the same shell is used everywhere. The absolute name of the shell should be passed.
- 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 section 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 that rule:
config.h: stamp-h stamp-h: config.h.in config.status ./config.status config.h echo > stamp-h Makefile: Makefile.in config.status ./config.status Makefile |
The calling convention of ‘config.status’ has changed; see Obsolete ‘config.status’ Invocation, for details.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |