[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#10111: remake rules can fail in a weird corner case (VPATH into $dis
From: |
Stefano Lattarini |
Subject: |
bug#10111: remake rules can fail in a weird corner case (VPATH into $distdir). |
Date: |
Tue, 22 Nov 2011 21:24:58 +0100 |
User-agent: |
KMail/1.13.7 (Linux/2.6.30-2-686; KDE/4.6.5; i686; ; ) |
[adding automake-patches]
Reference:
<http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10111>
On Tuesday 22 November 2011, Stefano Lattarini wrote:
> Attached are two test scripts that expose the bug for the related but
> slightly different cases of an `.m4' file included by `configure.ac'
> and an `.am' file included by `Makefile.am'. I will soonish add them
> to the maint branch if there is no objection.
>
Done with the attached patch.
Regards,
Stefano
From 96b93273f629c4844e19d429a1cec61ff6d406c4 Mon Sep 17 00:00:00 2001
Message-Id: <address@hidden>
From: Stefano Lattarini <address@hidden>
Date: Tue, 22 Nov 2011 20:50:53 +0100
Subject: [PATCH] remake: expose automake bug#10111 in the testsuite
* tests/remake-am-pr10111.test: New test, xfailing.
* tests/remake-m4-pr10111.test: Likewise.
* tests/Makefile.am (TESTS, XFAIL_TESTS): Add them.
---
ChangeLog | 7 ++++
tests/Makefile.am | 4 ++
tests/Makefile.in | 4 ++
tests/remake-am-pr10111.test | 64 ++++++++++++++++++++++++++++++++++++++++++
tests/remake-m4-pr10111.test | 62 ++++++++++++++++++++++++++++++++++++++++
5 files changed, 141 insertions(+), 0 deletions(-)
create mode 100644 tests/remake-am-pr10111.test
create mode 100644 tests/remake-m4-pr10111.test
diff --git a/ChangeLog b/ChangeLog
index a828c21..0151d96 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2011-11-22 Stefano Lattarini <address@hidden>
+
+ remake: expose automake bug#10111 in the testsuite
+ * tests/remake-am-pr10111.test: New test, xfailing.
+ * tests/remake-m4-pr10111.test: Likewise.
+ * tests/Makefile.am (TESTS, XFAIL_TESTS): Add them.
+
2011-11-19 Stefano Lattarini <address@hidden>
texinfo: work around Solaris 10 xpg4 shell bug in install rules
diff --git a/tests/Makefile.am b/tests/Makefile.am
index dd3fb46..936b781 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -26,6 +26,8 @@ gcj6.test \
java-nobase.test \
pr8365-remake-timing.test \
lex-subobj-nodep.test \
+remake-am-pr10111.test \
+remake-m4-pr10111.test \
vala-vpath.test \
txinfo5.test
@@ -722,6 +724,8 @@ remake-subdir-gnu.test \
remake-subdir.test \
remake-subdir2.test \
remake-subdir-long-time.test \
+remake-am-pr10111.test \
+remake-m4-pr10111.test \
pr8365-remake-timing.test \
regex.test \
req.test \
diff --git a/tests/Makefile.in b/tests/Makefile.in
index d2085c8..18983ae 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -297,6 +297,8 @@ gcj6.test \
java-nobase.test \
pr8365-remake-timing.test \
lex-subobj-nodep.test \
+remake-am-pr10111.test \
+remake-m4-pr10111.test \
vala-vpath.test \
txinfo5.test
@@ -1006,6 +1008,8 @@ remake-subdir-gnu.test \
remake-subdir.test \
remake-subdir2.test \
remake-subdir-long-time.test \
+remake-am-pr10111.test \
+remake-m4-pr10111.test \
pr8365-remake-timing.test \
regex.test \
req.test \
diff --git a/tests/remake-am-pr10111.test b/tests/remake-am-pr10111.test
new file mode 100644
index 0000000..a8c2dc6
--- /dev/null
+++ b/tests/remake-am-pr10111.test
@@ -0,0 +1,64 @@
+#! /bin/sh
+# Copyright (C) 2011 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 2, 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 our remake rules doesn't give spurious successes in
+# some corner case situations where they should actually fail.
+# See automake bug#10111.
+# To be clear, we are speaking about *very* corner-case situations here,
+# and the fact that the remake rules might get confused in them is not a
+# big deal in practice (in fact, this test *currently fails*). Still,
+# keeping the limitation exposed is a good idea anyway.
+
+. ./defs || Exit 1
+
+set -e
+
+cat >> configure.in <<'END'
+AC_OUTPUT
+END
+
+: > foobar.am
+
+cat > Makefile.am <<'END'
+include $(srcdir)/foobar.am
+$(srcdir)/foobar.am:
+## Creative quoring to avoid spurious matches in the grepping
+## of Makefile.in, later.
+ echo '#' 'foobar' 'was 'here' '#' > $@
+END
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE
+
+./configure
+
+# OK, so the developer wants to interactively try out how the
+# "distributed form" of his package behaves.
+$MAKE distdir
+cd $distdir
+# He's interested in trying out a VPATH build.
+mkdir build
+cd build
+../configure
+# He wants to verify that the rules he's written to rebuild a file
+# included by configure.in works also in VPATH builds.
+rm -f ../foobar.am
+$MAKE
+grep '# foobar was here #' ../Makefile.in
+$MAKE distcheck
+
+:
diff --git a/tests/remake-m4-pr10111.test b/tests/remake-m4-pr10111.test
new file mode 100644
index 0000000..2d89c25
--- /dev/null
+++ b/tests/remake-m4-pr10111.test
@@ -0,0 +1,62 @@
+#! /bin/sh
+# Copyright (C) 2011 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 2, 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 our remake rules doesn't give spurious successes in
+# some corner case situations where they should actually fail.
+# See automake bug#10111.
+# To be clear, we are speaking about *very* corner-case situations here,
+# and the fact that the remake rules might get confused in them is not a
+# big deal in practice (in fact, this test *currently fails*). Still,
+# keeping the limitation exposed is a good idea anyway.
+
+. ./defs || Exit 1
+
+set -e
+
+cat >> configure.in <<'END'
+m4_include([foobar.m4])
+AC_OUTPUT
+END
+
+: > foobar.m4
+
+cat > Makefile.am <<'END'
+$(srcdir)/foobar.m4:
+ echo ': foobar was here :' > $@
+END
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE
+
+./configure
+
+# OK, so the developer wants to interactively try out how the
+# "distributed form" of his package behaves.
+$MAKE distdir
+cd $distdir
+# He's interested in trying out a VPATH build.
+mkdir build
+cd build
+../configure
+# He wants to verify that the rules he's written to rebuild a file
+# included by configure.in works also in VPATH builds.
+rm -f ../foobar.m4
+$MAKE
+grep ': foobar was here :' ../configure
+$MAKE distcheck
+
+:
--
1.7.2.3