New config.status option --config.

* lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Implement
--config.
* doc/autoconf.texi (config.status Invocation): Document it.
* NEWS: Update.
* tests/torture.at (configure invocation): Test it.
Suggested several times, by several people, in the past.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
This commit is contained in:
Ralf Wildenhues 2009-09-11 06:53:17 +02:00
parent 6ecb883bb1
commit bb09823ea7
5 changed files with 46 additions and 3 deletions

View File

@ -1,3 +1,13 @@
2009-09-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
New config.status option --config.
* lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Implement
--config.
* doc/autoconf.texi (config.status Invocation): Document it.
* NEWS: Update.
* tests/torture.at (configure invocation): Test it.
Suggested several times, by several people, in the past.
2009-09-10 Eric Blake <ebb9@byu.net>
Document that AS_INIT is automatically used.

2
NEWS
View File

@ -24,6 +24,8 @@ GNU Autoconf NEWS - User visible changes.
** The `$tmp' temporary directory used in config.status is documented for
public use now.
** config.status now provides a --config option to produce the configuration.
* Major changes in Autoconf 2.64 (2009-07-26) [stable]
Released by Eric Blake, based on git versions 2.63b.*.

View File

@ -20502,6 +20502,22 @@ files, and exit.
Print the version number of Autoconf and the configuration settings,
and exit.
@item --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 @var{build-dir} of a
package in @var{src-dir}, you could use the following:
@example
args=`@var{build-dir}/config.status --config`
eval @var{src-dir}/configure "$args" CFLAGS=-g --srcdir=@var{src-dir}
@end example
@noindent
Note that it may be necessary to override a @option{--srcdir} setting
that was saved in the configuration, if the arguments are used in a
different build directory.
@item --silent
@itemx --quiet
@itemx -q

View File

@ -1382,6 +1382,7 @@ Usage: $[0] [[OPTION]]... [[TAG]]...
-h, --help print this help, then exit
-V, --version print version number and configuration settings, then exit
--config print configuration, then exit
-q, --quiet, --silent
[] do not print progress messages
-d, --debug don't remove temporary files
@ -1424,11 +1425,12 @@ General help using GNU software: <http://www.gnu.org/gethelp/>.])])"
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`AS_ECHO(["$ac_configure_args"]) | sed 's/^ //; s/[[\\""\`\$]]/\\\\&/g'`"
ac_cs_version="\\
m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.status[]dnl
m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
configured by $[0], generated by m4_PACKAGE_STRING,
with options \\"`AS_ECHO(["$ac_configure_args"]) | sed 's/^ //; s/[[\\""\`\$]]/\\\\&/g'`\\"
with options \\"\$ac_cs_config\\"
Copyright (C) m4_PACKAGE_YEAR Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
@ -1472,6 +1474,8 @@ do
ac_cs_recheck=: ;;
--version | --versio | --versi | --vers | --ver | --ve | --v | -V )
AS_ECHO(["$ac_cs_version"]); exit ;;
--config | --confi | --conf | --con | --co | --c )
AS_ECHO(["$ac_cs_config"]); exit ;;
--debug | --debu | --deb | --de | --d | -d )
debug=: ;;
m4_ifdef([_AC_SEEN_CONFIG(FILES)], [dnl

View File

@ -390,8 +390,9 @@ AT_CLEANUP
# We run `./configure one=val1 --enable-two=val2 --with-three=val3'
# and verify that (i) `configure' correctly receives the arguments,
# (ii) correctly passes them to `config.status', which we check by
# running `config.status --recheck', and (iii) correctly passes them
# to sub-configure scripts.
# running `config.status --recheck', (iii) correctly passes them
# to sub-configure scripts, and (iv) correctly reproduces them with
# `config.status --config'.
AT_SETUP([configure invocation])
@ -425,6 +426,11 @@ AT_CHECK_CONFIGURE([one=one --enable-two=two --with-three=three |
AT_CHECK([./config.status --recheck | sed -n 's/^result=//p'], 0,
[onetwothree
])
AT_CHECK([args=`./config.status --config` && eval ./configure "$args" |
sed -n -e 's/^result=//p'], 0,
[m4_do([onetwothree
], [onetwothree
])])
AT_CHECK_CONFIGURE([one="\"'$ " --enable-two="\" ' $" --with-three=" \"'$"|
sed -n -e 's/^result=//p'], 0,
@ -435,6 +441,11 @@ AT_CHECK([./config.status --recheck | sed -n 's/^result=//p'], 0,
["'$ " ' $ "'$
])
dnl restore font-lock: "
AT_CHECK([args=`./config.status --config` && eval ./configure "$args" |
sed -n -e 's/^result=//p'], 0,
[m4_do(["'$ " ' $ "'$
], ["'$ " ' $ "'$
])])
AT_CLEANUP