[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: cannot recreate gllib
From: |
Ralf Wildenhues |
Subject: |
Re: cannot recreate gllib |
Date: |
Sun, 26 Oct 2008 16:11:29 +0100 |
User-agent: |
Mutt/1.5.18 (2008-05-17) |
[ adding automake-patches ]
> * Sam Steingold wrote on Sun, Oct 26, 2008 at 02:54:42PM CET:
> [...]
> > + CONFIG_FILES= 'gllib/Makefile'
> [...]
> > + printf %s\n config.status:59338: executing depfiles commands
> > + printf %s\n config.status: executing depfiles commands
> > + test x != x
> > + echo 'gllib/Makefile'
> > + sed -e s/:.*$//
> > + mf='gllib/Makefile'
> > + sed -n s,^#.*generated by automake.*,X,p 'gllib/Makefile'
> > sed: can't read 'gllib/Makefile': No such file or directory
Fixed in Automake with the patch below against master, and similarly for
branch-1-10; except, since the branch doesn't require Autoconf 2.62 yet,
I omitted the weird file name part of the test there.
Thanks again for the report (I put you in automake/THANKS).
I'll push the changes when the testsuite has finished.
Cheers,
Ralf
2008-10-26 Ralf Wildenhues <address@hidden>
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.
diff --git a/NEWS b/NEWS
index 42107a2..dce4bbd 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/m4/depout.m4 b/m4/depout.m4
index a7cc30a..3f5d6cf 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 cc95743..77dd1f1 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/depend5.test b/tests/depend5.test
new file mode 100755
index 0000000..5644933
--- /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
+:
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: cannot recreate gllib,
Ralf Wildenhues <=