summaryrefslogtreecommitdiff
path: root/t/pr224.sh
diff options
context:
space:
mode:
authorStefano Lattarini <stefano.lattarini@gmail.com>2015-01-03 01:33:45 +0100
committerStefano Lattarini <stefano.lattarini@gmail.com>2015-01-06 11:26:16 +0100
commit08849db866b44510f6b8fd49e313c91a43a3dfd3 (patch)
tree53fc969d2a1ac38e6c738992caa54f88b8c080e6 /t/pr224.sh
parent1b4c84b80d6099fd6747b129630bbf00c388e0f9 (diff)
downloadautomake-08849db866b44510f6b8fd49e313c91a43a3dfd3.tar.gz
deps: fix corner-case "make distclean" bug
Assume we have package satisfying the following conditions: (1) automatic dependency tracking is enabled; (2) the 'subdir-objects' Automake option is enabled; (3) the package uses a recursive make setup. Also assume that: (a) a subdir Makefile declares a foo_SOURCES variable containing a source file in the parent directory; (b) that parent Makefile declare a compiled program itself. Then BSD and Solaris make used to fail when running "make distclean", because the 'distclean' target of the subdir Makefile removed the whole '.deps' directory before the parent Makefile was done with the included '.Po' makefile fragments in that directory. This issue was revealed by failures in the 'subobj-vpath-pr13928.sh' test when those make implementations were used. We fix the issue by ensuring the 'distclean' target of any Makefile only removed the '.Po' makefile fragments included by it, rather than the whole '.deps' directory where such files resides. This change should be the last step in fixing automake bug#13928 for good. * bin/automake.in (handle_languages), lib/am/depend.am: Adjust to implement the new 'distclean' logic. * t/pr224.sh: Adjust to avoid a spurious failure. * PLANS/subdir-objects.txt: Update. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Diffstat (limited to 't/pr224.sh')
-rw-r--r--t/pr224.sh4
1 files changed, 2 insertions, 2 deletions
diff --git a/t/pr224.sh b/t/pr224.sh
index 7d907441c..bca1d3037 100644
--- a/t/pr224.sh
+++ b/t/pr224.sh
@@ -56,8 +56,8 @@ cd build
../configure
$MAKE
-test -d foo/.deps
+test -f foo/.deps/main.Po
$MAKE distclean
-test -d foo/.deps && exit 1
+test ! -e foo/.deps/main.Po
: