[PATCH 1/2] tests: expose bug in handling of user-defined makefile fragments generation

Stefano Lattarini <[email protected]>
Newsgroups gmane.comp.sysutils.automake.patches
Message-ID <b2f771441af6d3fc26c4e4ab8273573f55d6723c.1419337596.git.stefano.lattarini@gmail.com>
If a user defines one single Makefile fragment to be included (via Automake
includes) in his main Makefile.am, and givse a rule to generate that file
from other data, Automake will spuriously complain about with something
like "overrides Automake target '$(srcdir)/foo.am".

* t/am-include-only-one-generated-fragment.sh: Expose the bug (this test
is still XFAILing).
* t/list-of-tests.mk: Add the new test.

Signed-off-by: Stefano Lattarini <[email protected]>
---
 t/am-include-only-one-generated-fragment.sh | 48 +++++++++++++++++++++++++++++
 t/list-of-tests.mk                          |  2 ++
 2 files changed, 50 insertions(+)
 create mode 100644 t/am-include-only-one-generated-fragment.sh

diff --git a/t/am-include-only-one-generated-fragment.sh b/t/am-include-only-one-generated-fragment.sh
new file mode 100644
index 0000000..57a8aec
--- /dev/null
+++ b/t/am-include-only-one-generated-fragment.sh
@@ -0,0 +1,48 @@
+#! /bin/sh
+# Copyright (C) 2014 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 inclusion of only one '.am' that can be regenerated via
+# a user-defined Makefile rule does not incur in spurious automake
+# warnings about "target redefinition".
+
+. test-init.sh
+
+cat >> configure.ac <<'END'
+AC_CONFIG_FILES([sub/Makefile])
+AC_OUTPUT
+END
+
+cat > Makefile.am <<'END'
+include foobar.am
+$(srcdir)/foobar.am: $(srcdir)/touch.sh
+	$(SHELL) $(srcdir)/touch.sh $(srcdir)/foobar.am
+EXTRA_DIST = touch.sh
+END
+
+mkdir sub
+cat > sub/Makefile.am <<'END'
+include $(top_srcdir)/quux.am
+$(top_srcdir)/quux.am: $(top_srcdir)/touch.sh
+	$(SHELL) $(top_srcdir)/touch.sh $@
+END
+
+: > foobar.am
+: > quux.am
+
+$ACLOCAL
+$AUTOMAKE
+
+:
diff --git a/t/list-of-tests.mk b/t/list-of-tests.mk
index 462497e..28b512c 100644
--- a/t/list-of-tests.mk
+++ b/t/list-of-tests.mk
@@ -30,6 +30,7 @@ t/pm/Version3.pl
 
 XFAIL_TESTS = \
 t/all.sh \
+t/am-include-only-one-generated-fragment.sh \
 t/cond17.sh \
 t/gcj6.sh \
 t/override-conditional-2.sh \
@@ -142,6 +143,7 @@ t/amopts-location.sh \
 t/amopts-variable-expansion.sh \
 t/amsubst.sh \
 t/am-default-source-ext.sh \
+t/am-include-only-one-generated-fragment.sh \
 t/ansi2knr-no-more.sh \
 t/ar-lib.sh \
 t/ar-lib2.sh \
-- 
2.1.3
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.