summaryrefslogtreecommitdiff
path: root/t/distcheck-pr18286.sh
diff options
context:
space:
mode:
authorStefano Lattarini <stefano.lattarini@gmail.com>2014-12-23 18:39:32 +0100
committerStefano Lattarini <stefano.lattarini@gmail.com>2014-12-23 19:47:31 +0100
commit01a7a4a7bea81b4e2d03d08b45d605b98501e024 (patch)
tree78373eeccd87f9444cfabb7a3a4a867ac20ffa33 /t/distcheck-pr18286.sh
parent2629aa9e713c584c799677987ffb03156b8aae8e (diff)
downloadautomake-01a7a4a7bea81b4e2d03d08b45d605b98501e024.tar.gz
dist: fix bug#18286 "distcheck fails to detect missing files"
BTW, this issue had been already reported in the past: http://lists.gnu.org/archive/html/automake/2006-09/msg00008.html http://lists.gnu.org/archive/html/automake/2013-01/msg00049.html "make distcheck" could sometimes fail to detect missing files in the distribution tarball, especially in those cases where both the generated files and their dependencies are explicitly in $(srcdir). An important example of this are *generated* makefile fragments included at Automake time in Makefile.am. A basic example: # -*- Makefile.am -*- $(srcdir)/fragment.am: $(srcdir)/data.txt $(srcdir)/preproc.sh cd $(srcdir) && $(SHELL) preproc.sh <data.txt >fragment.am include $(srcdir)/fragment.am ... If the use forgot to add data.txt and/or preproc.sh in the distribution tarball, "make distcheck" would have erroneously succeeded! The reason is that, while $(srcdir)/data.txt does not exist, make also looks in $(srcdir)/$(srcdir)/data.txt, and in the distcheck-issued VPATH build where $(srcdir) is '..', that file exists, as it is part of the original development directory. * t/distdir.am (distcheck): Adjust to have the build directory be '$(distdir)/_build/sub' rather than just '$(distdir)/_build'. Thanks Nicola Fontana for the suggestion. * t/distcheck-pr18286.sh: Enhance and tighten a little. * t/list-of-tests.mk (XFAIL_TESTS): Remove 't/distcheck-pr18286.sh', as it's now passing. * t/subdir-am-cond.sh: Adjust to avoid a fully spurious failure due to the new distcheck semantics. * t/subdir-ac-subst.sh: Likewise. * t/dejagnu-relative-srcdir.sh: Likewise. * t/txinfo-builddir.sh: Likewise. * NEWS: Update. Helped-by: Nicola Fontana <ntd@entidi.it> Helped-by: Peter Johansson <trojkan@gmail.com> Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Diffstat (limited to 't/distcheck-pr18286.sh')
-rw-r--r--t/distcheck-pr18286.sh8
1 files changed, 8 insertions, 0 deletions
diff --git a/t/distcheck-pr18286.sh b/t/distcheck-pr18286.sh
index b10773579..fe8961287 100644
--- a/t/distcheck-pr18286.sh
+++ b/t/distcheck-pr18286.sh
@@ -57,6 +57,14 @@ $AUTOMAKE -a
$MAKE check
+# Oops, we failed to distribute some required files!
run_make -e FAIL -M distcheck
+$FGREP '../../test_data.txt' output
+
+# But if we distribute them, everything will be OK.
+echo 'EXTRA_DIST = test_data.txt gen-testdata.sh' >> Makefile.am
+
+using_gmake || $MAKE Makefile
+$MAKE distcheck
: