diff options
author | Stefano Lattarini <stefano.lattarini@gmail.com> | 2014-12-23 18:39:32 +0100 |
---|---|---|
committer | Stefano Lattarini <stefano.lattarini@gmail.com> | 2014-12-23 19:47:31 +0100 |
commit | 01a7a4a7bea81b4e2d03d08b45d605b98501e024 (patch) | |
tree | 78373eeccd87f9444cfabb7a3a4a867ac20ffa33 /t/distcheck-pr18286.sh | |
parent | 2629aa9e713c584c799677987ffb03156b8aae8e (diff) | |
download | automake-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.sh | 8 |
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 : |