[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [BUG] config.status: error on rebuild Makefile
From: |
Alexandre Duret-Lutz |
Subject: |
Re: [BUG] config.status: error on rebuild Makefile |
Date: |
Sat, 19 Apr 2003 13:17:39 +0200 |
User-agent: |
Gnus/5.090016 (Oort Gnus v0.16) Emacs/21.2 (gnu/linux) |
Hi Alexander,
>>> "zaufi" == Alexander Turbov <address@hidden> writes:
zaufi> I don't know exactly is this autoconf or automake BUG --
zaufi> so I post to both lists...
zaufi> I found $subj problem when configure.ac contain non trivial input file
zaufi> definition like this:
zaufi> AC_CONFIG_FILES([Makefile:Makefile.in:Makefile.bottom])
zaufi> In attached sample project shell script to reproduce bug.
Thanks for the report. Automake is obviously guilty for running
./config.status Makefile:Makefile.in:Makefile.bottom
although the Autoconf manual documents config.status thusly
| Synopsis:
| ./config.status OPTION... [FILE...]
|
| It configures the FILES; if none are specified, all the templates
| are instantiated. The files must be specified without their
| dependencies, as in
|
| ./config.status foobar
|
| not
|
| ./config.status foobar:foo.in:bar.in
I'm installing the following fix on HEAD and branch-1-7.
2003-04-19 Alexandre Duret-Lutz <address@hidden>
Fix for PR automake/389:
* automake.in (handle_configure): Don't put $colon_infile in
CONFIG-MAKEFILE.
* tests/conff.test: New file.
* tests/Makefile.am (TESTS): Add conff.test.
Reported by Alexander Turbov.
Index: automake.in
===================================================================
RCS file: /cvs/automake/automake/automake.in,v
retrieving revision 1.1365.2.41
diff -u -r1.1365.2.41 automake.in
--- automake.in 18 Apr 2003 09:08:45 -0000 1.1365.2.41
+++ automake.in 19 Apr 2003 11:12:09 -0000
@@ -4482,8 +4482,7 @@
'MAKEFILE-DEPS'
=> "@rewritten",
'CONFIG-MAKEFILE'
- => ((($relative_dir eq '.') ? '$@' : '$(subdir)/$@')
- . $colon_infile),
+ => ($relative_dir eq '.') ? '$@' : '$(subdir)/$@',
'MAKEFILE-IN'
=> $infile,
'MAKEFILE-IN-DEPS'
Index: tests/Makefile.am
===================================================================
RCS file: /cvs/automake/automake/tests/Makefile.am,v
retrieving revision 1.443.2.26
diff -u -r1.443.2.26 Makefile.am
--- tests/Makefile.am 18 Apr 2003 09:17:30 -0000 1.443.2.26
+++ tests/Makefile.am 19 Apr 2003 11:12:09 -0000
@@ -111,6 +111,7 @@
conf2.test \
confdeps.test \
confdist.test \
+conff.test \
confh.test \
confh4.test \
config.test \
Index: tests/conff.test
===================================================================
RCS file: tests/conff.test
diff -N tests/conff.test
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ tests/conff.test 19 Apr 2003 11:12:10 -0000
@@ -0,0 +1,99 @@
+#! /bin/sh
+# Copyright (C) 2003 Free Software Foundation, Inc.
+#
+# This file is part of GNU Automake.
+#
+# GNU Automake 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 2, or (at your option)
+# any later version.
+#
+# GNU Automake 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 Automake; see the file COPYING. If not, write to
+# the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+
+# Make sure rebuild rules work even when AC_CONFIG_FILES uses colons.
+# Report from Alexander Turbov.
+
+required=GNUmake
+. ./defs || exit 1
+
+set -e
+
+cat >> configure.in << 'END'
+AC_CONFIG_FILES([bar/Makefile:bar/Makefile.in:Makefile.bot])
+AC_OUTPUT
+END
+
+cat > Makefile.am << 'END'
+SUBDIRS = bar
+EXTRA_DIST = Makefile.bot
+END
+
+mkdir bar
+cat > bar/Makefile.am << 'END'
+top-rule:
+ @echo 'top rule'
+END
+
+cat > Makefile.bot << 'END'
+bot-rule:
+ @echo 'bot rule'
+END
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE
+./configure
+$MAKE
+
+cd bar
+$MAKE top-rule >stdout
+cat stdout
+grep 'top rule' stdout
+$MAKE bot-rule >stdout
+cat stdout
+grep 'bot rule' stdout
+cd ..
+
+$sleep
+
+cat > bar/Makefile.am << 'END'
+top-rule:
+ @echo 'top2 rule'
+END
+$MAKE
+
+cd bar
+$MAKE top-rule >stdout
+cat stdout
+grep 'top2 rule' stdout
+$MAKE bot-rule >stdout
+cat stdout
+grep 'bot rule' stdout
+cd ..
+
+$sleep
+
+cat > Makefile.bot << 'END'
+bot-rule:
+ @echo 'bot2 rule'
+END
+$MAKE
+
+cd bar
+$MAKE top-rule >stdout
+cat stdout
+grep 'top2 rule' stdout
+$MAKE bot-rule >stdout
+cat stdout
+grep 'bot2 rule' stdout
+cd ..
+
+$MAKE distcheck
--
Alexandre Duret-Lutz