summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRalf Wildenhues <Ralf.Wildenhues@gmx.de>2008-10-26 15:55:22 +0100
committerRalf Wildenhues <Ralf.Wildenhues@gmx.de>2008-10-26 16:01:48 +0100
commitbc00e3a554688222aeed8898ae6559087d4933b6 (patch)
tree4f52cb5acba6284b49eda4652fd6e0f6a99842d8
parentd5bec12a1fed7ccadec4885adea35c97e149e720 (diff)
downloadautomake-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--ChangeLog11
-rw-r--r--NEWS4
-rw-r--r--THANKS1
-rw-r--r--m4/depout.m415
-rw-r--r--tests/Makefile.am1
-rw-r--r--tests/Makefile.in1
-rwxr-xr-xtests/depend5.test71
7 files changed, 101 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 2c0a326a8..44645494a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
diff --git a/NEWS b/NEWS
index 42107a2e2..dce4bbd38 100644
--- a/NEWS
+++ b/NEWS
@@ -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
diff --git a/THANKS b/THANKS
index f79a7a06b..eb67976e0 100644
--- a/THANKS
+++ b/THANKS
@@ -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
+: