diff options
author | Ralf Wildenhues <Ralf.Wildenhues@gmx.de> | 2008-10-26 15:55:22 +0100 |
---|---|---|
committer | Ralf Wildenhues <Ralf.Wildenhues@gmx.de> | 2008-10-26 16:01:48 +0100 |
commit | bc00e3a554688222aeed8898ae6559087d4933b6 (patch) | |
tree | 4f52cb5acba6284b49eda4652fd6e0f6a99842d8 | |
parent | d5bec12a1fed7ccadec4885adea35c97e149e720 (diff) | |
download | automake-bc00e3a554688222aeed8898ae6559087d4933b6.tar.gz |
Fix 'config.status --file=... depfiles' with new Autoconf.
* m4/depout.m4 (_AM_OUTPUT_DEPENDENCY_COMMANDS): Eval
$CONFIG_STATUS contents if we detect the quoting used by
Autoconf 2.62 and newer for --file=.
* tests/depend5.test: New test.
* tests/Makefile.am: Update.
* NEWS, THANKS: Update.
Report by Sam Steingold against gnulib.
Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-rw-r--r-- | ChangeLog | 11 | ||||
-rw-r--r-- | NEWS | 4 | ||||
-rw-r--r-- | THANKS | 1 | ||||
-rw-r--r-- | m4/depout.m4 | 15 | ||||
-rw-r--r-- | tests/Makefile.am | 1 | ||||
-rw-r--r-- | tests/Makefile.in | 1 | ||||
-rwxr-xr-x | tests/depend5.test | 71 |
7 files changed, 101 insertions, 3 deletions
@@ -1,3 +1,14 @@ +2008-10-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> + + Fix 'config.status --file=... depfiles' with new Autoconf. + * m4/depout.m4 (_AM_OUTPUT_DEPENDENCY_COMMANDS): Eval + $CONFIG_STATUS contents if we detect the quoting used by + Autoconf 2.62 and newer for --file=. + * tests/depend5.test: New test. + * tests/Makefile.am: Update. + * NEWS, THANKS: Update. + Report by Sam Steingold against gnulib. + 2008-10-26 Johan Dahlin <jdahlin@async.com.br> Support for Python 3.0, drop support for pre-2.0. @@ -115,6 +115,10 @@ Bugs fixed in 1.10a: - For nobase_*_LTLIBRARIES with nonempty directory components, the correct `-rpath' argument is used now. + - `config.status --file=Makefile depfiles' now also works with the + extra quoting used internally used by Autoconf 2.62 and newer + (it used to work only without the `--file=' bit). + * Bugs introduced by 1.10: - Fix output of dummy dependency files in presence of post-processed @@ -280,6 +280,7 @@ Rusty Ballinger rusty@rlyeh.engr.sgi.com Ryan T. Sammartino ryants@shaw.ca Sam Hocevar sam@zoy.org Sam Sirlin sam@kalessin.jpl.nasa.gov +Sam Steingold sds@gnu.org Sander Niemeijer niemeijer@science-and-technology.nl Santiago Vila sanvila@unex.es Scott James Remnant scott@netsplit.com diff --git a/m4/depout.m4 b/m4/depout.m4 index a7cc30abf..3f5d6cf1a 100644 --- a/m4/depout.m4 +++ b/m4/depout.m4 @@ -1,18 +1,27 @@ # Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -#serial 3 +#serial 4 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], -[for mf in $CONFIG_FILES; do +[# Autoconf 2.62 quotes --file arguments for eval, but not when files +# are listed without --file. Let's play safe and only enable the eval +# if we detect the quoting. +case $CONFIG_FILES in +*\'*) eval set x "$CONFIG_FILES" ;; +*) set x $CONFIG_FILES ;; +esac +shift +for mf +do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. diff --git a/tests/Makefile.am b/tests/Makefile.am index cc95743d4..77dd1f14a 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -222,6 +222,7 @@ depend.test \ depend2.test \ depend3.test \ depend4.test \ +depend5.test \ destdir.test \ dirforbid.test \ dirlist.test \ diff --git a/tests/Makefile.in b/tests/Makefile.in index 9eec0166f..67e5420bd 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -374,6 +374,7 @@ depend.test \ depend2.test \ depend3.test \ depend4.test \ +depend5.test \ destdir.test \ dirforbid.test \ dirlist.test \ diff --git a/tests/depend5.test b/tests/depend5.test new file mode 100755 index 000000000..5644933b7 --- /dev/null +++ b/tests/depend5.test @@ -0,0 +1,71 @@ +#! /bin/sh +# Copyright (C) 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 +# the Free Software Foundation; either version 3, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# Check that _AM_OUTPUT_DEPENDENCY_COMMANDS works with eval-style +# quoting in $CONFIG_FILES, done by newer Autoconf. + +. ./defs || Exit 1 + +set -e + +cat >>configure.in << END +AC_PROG_CC +AC_OUTPUT +END + +cat > Makefile.am << END +bin_PROGRAMS = foo +foo_SOURCES = foo.c foo.h +END + +cat >foo.c << END +#include "foo.h" +END +: >foo.h + +$ACLOCAL +$AUTOMAKE +$AUTOCONF +./configure --enable-dependency-tracking +if test -d .deps; then + depdir=.deps +elif test -d _deps; then + depdir=_deps +else + depdir= +fi + +# For the fun of it, we should also cope with makefile +# names that contain weird characters, with Autoconf 2.62 +# and newer. +name='weird name with $ `#() &! characters"' +cp Makefile.in "$name.in" + +for arg in Makefile \ + --file=Makefile \ + "--file=$name" +do + rm -rf .deps _deps + ./config.status "$arg" depfiles >stdout 2>stderr + cat stdout + cat stderr >&2 + grep '[Nn]o such file' stderr && Exit 1 + + if test -n "$depdir"; then + test -d $depdir || Exit 1 + fi +done +: |