autoconf-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

--help=recursive needs one more bit


From: Ralf Wildenhues
Subject: --help=recursive needs one more bit
Date: Tue, 22 Jan 2008 21:39:14 +0100
User-agent: Mutt/1.5.13 (2006-08-11)

My testing for recursive help back then wasn't enough.  With multiple
config subdirs in one configure script, only the first would be searched
for the in the correct (source) directory.  This should fix it.

OK?

Cheers,
Ralf

    Fix --help=recursive with multiple AC_CONFIG_SUBDIRS.
    
    * lib/autoconf/general.m4 (_AC_INIT_HELP): If, for recursive help
    mode, we change to the source directory, also set $ac_pwd so we
    do not go back to the build tree for the next config subdir.
    * tests/torture.at (Deep Package): Extend test to contain two
    config subdirs on the top level.

diff --git a/lib/autoconf/general.m4 b/lib/autoconf/general.m4
index 69b4371..3a6a602 100644
--- a/lib/autoconf/general.m4
+++ b/lib/autoconf/general.m4
@@ -1103,7 +1103,7 @@ if test "$ac_init_help" = "recursive"; then
   # If there are subdirs, report their specific --help.
   for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
     test -d "$ac_dir" ||
-      { cd "$srcdir" && srcdir=. && test -d "$ac_dir"; } ||
+      { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
       continue
     _AC_SRCDIRS(["$ac_dir"])
     cd "$ac_dir" || { ac_status=$?; continue; }
diff --git a/tests/torture.at b/tests/torture.at
index 6a7b962..d35d752 100644
--- a/tests/torture.at
+++ b/tests/torture.at
@@ -1212,12 +1212,13 @@ AT_DATA([install-sh], [])
 AT_DATA([configure.in],
 [[AC_INIT(GNU Outer, 1.0)
 AC_ARG_VAR([OUTER], [an outer variable])
-AC_CONFIG_SUBDIRS([inner])
+AC_CONFIG_SUBDIRS([inner inner2])
 AC_OUTPUT
 ]])
 
 # The contents of `inner/', and `inner/innermost/'.
 AS_MKDIR_P([inner/innermost])
+AS_MKDIR_P([inner2])
 
 AT_DATA([inner/configure.in],
 [[AC_INIT(GNU Inner, 1.0)
@@ -1234,10 +1235,17 @@ AC_DEFINE_UNQUOTED([INNERMOST], [$INNERMOST], [an 
innermost variable])
 AC_OUTPUT
 ]])
 
+AT_DATA([inner2/configure.in],
+[[AC_INIT(GNU Inner 2, 1.0)
+AC_ARG_VAR([INNER2], [an inner2 variable])
+AC_OUTPUT
+]])
+
 AT_CHECK([autoreconf -Wall -v], [0], [ignore], [ignore])
 AT_CHECK([test -f inner/configure])
 AT_CHECK([test -f inner/innermost/configure])
 AT_CHECK([test -f inner/innermost/config.hin])
+AT_CHECK([test -f inner2/configure])
 
 # Running the outer configure recursively should provide the innermost
 # help strings.
@@ -1246,6 +1254,10 @@ AT_CHECK([{ ./configure --help=recursive; chmod u+w .; } 
| grep " INNER "],
         0, [ignore], [stderr],
         [AT_CHECK([grep 'rerun with a POSIX shell' stderr], [], [ignore])])
 chmod a-w .
+AT_CHECK([{ ./configure --help=recursive; chmod u+w .; } | grep " INNER2 "],
+        0, [ignore], [stderr],
+        [AT_CHECK([grep 'rerun with a POSIX shell' stderr], [], [ignore])])
+chmod a-w .
 AT_CHECK([{ ./configure --help=recursive; chmod u+w .; } | grep " INNERMOST "],
         0, [ignore], [stderr],
         [AT_CHECK([grep 'rerun with a POSIX shell' stderr], [], [ignore])])
@@ -1276,6 +1288,10 @@ AT_CHECK([cd builddir && { ../configure 
--help=recursive; chmod u+w .; } | grep
         0, [ignore], [stderr],
         [AT_CHECK([grep 'rerun with a POSIX shell' stderr], [], [ignore])])
 chmod a-w builddir
+AT_CHECK([cd builddir && { ../configure --help=recursive; chmod u+w .; } | 
grep " INNER2 "],
+        0, [ignore], [stderr],
+        [AT_CHECK([grep 'rerun with a POSIX shell' stderr], [], [ignore])])
+chmod a-w builddir
 AT_CHECK([cd builddir && { ../configure --help=recursive; chmod u+w .; } | 
grep " INNERMOST "],
         0, [ignore], [stderr],
         [AT_CHECK([grep 'rerun with a POSIX shell' stderr], [], [ignore])])




reply via email to

[Prev in Thread] Current Thread [Next in Thread]