]> git.ipfire.org Git - thirdparty/autoconf.git/commitdiff
New config.status option --config.
authorRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Fri, 11 Sep 2009 04:53:17 +0000 (06:53 +0200)
committerRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Fri, 11 Sep 2009 04:53:42 +0000 (06:53 +0200)
* 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>
ChangeLog
NEWS
doc/autoconf.texi
lib/autoconf/status.m4
tests/torture.at

index 9ea4ed66a75657883b7c0ac080470b581d402356..af08473eeae9899a8bf164b48b80123f9bb44252 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
diff --git a/NEWS b/NEWS
index b8620b63aa8b0aef324928c499e5c0bc3ced4f25..262be0c18c31aa33280ec43bede5a9de40a14f89 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -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.*.
 
index 4203cd0f2319ed4e0db1de18eb57a3afa5bf2b81..098d512ebdebd628cd0543fb4ceace7a10acf7ca 100644 (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
index b8652e6ecb1fa7d267ab4f453ea7b977f91184ca..84ee6c3d694af191cf88ecdf6bbae21c683aaa00 100644 (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
index 84eeda9bfb452d9a0820b2f247b6df9641559320..fe4c131fc1cd09c8fcbbc40d4ffc9701ed2154c9 100644 (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