[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: <96b93273f629c4844e19d429a1cec61ff6d406c4.1321991878.git.stefano.lattar...@gmail.com> From: Stefano Lattarini <stefano.lattar...@gmail.com> 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 <stefano.lattar...@gmail.com> + + 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 <stefano.lattar...@gmail.com> 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