From 0fd647c6364a383b13af31b45e07679c293ff09f Mon Sep 17 00:00:00 2001 From: Ralf Wildenhues Date: Tue, 22 Jan 2008 21:48:51 +0100 Subject: [PATCH] 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. --- ChangeLog | 7 +++++++ lib/autoconf/general.m4 | 2 +- tests/torture.at | 22 +++++++++++++++++++--- 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 74b8b909..7a40764d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,12 @@ 2008-01-22 Ralf Wildenhues + 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. + Fix parallel `maintainer-check'. * Makefile.am (maintainer-check-tests): Depend on `all'. Use `$(MAKE) $(AM_MAKEFLAGS)' instead of plain `make'. diff --git a/lib/autoconf/general.m4 b/lib/autoconf/general.m4 index bc41a818..92483db3 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 6a7b962c..b179afe2 100644 --- a/tests/torture.at +++ b/tests/torture.at @@ -1,7 +1,7 @@ # -*- Autotest -*- -# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free -# Software Foundation, Inc. +# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 +# Free Software Foundation, Inc. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -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])]) -- 2.47.2