autoconf
[Top][All Lists]
Advanced

[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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]