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.
This commit is contained in:
Ralf Wildenhues 2008-01-22 21:48:51 +01:00
parent be86a1b921
commit 0fd647c636
3 changed files with 27 additions and 4 deletions

View File

@ -1,5 +1,12 @@
2008-01-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
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'.

View File

@ -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; }

View File

@ -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])])