Package: make Version: 3.82-1 Severity: important Control: block 720706 by -1
With the following 3 makefiles: ###################### Makefile ############# all: a b a: $(MAKE) -C data b: $(MAKE) -C src clean: $(MAKE) -C src clean $(MAKE) -C data clean .PHONY: all a b clean ################## src/Makefile ############# all: A1 A2 A3 A4 A5 A6 A7 A1 A2 A3 A4 A5 A6 A7: sleep 10 > $@ clean: -rm -f A* .PHONY: all clean ################# data/Makefile ############# SHELL = /bin/bash # Give directory a/ a chance to start anything: test := $(shell sleep 1) .PHONY: all clean list = B1 B2 B3 B4 B5 all: $(list) B3: B1 B2 B5: B3 B%: @for pred in $^ ; do printf %s "$@: checking $$pred: " ; if test -f $$pred ; then echo found ; else echo "not found" ; exit 1 ; fi ; done echo $^ > $@ .SECONDARY: $(list) clean: rm -f B* ############################################# and running make -j8 in the top level directory, I get: $ make -j8 make -C data make -C src make[1]: Entering directory `/mydir/src' sleep 10 > A1 sleep 10 > A2 sleep 10 > A3 sleep 10 > A4 sleep 10 > A5 sleep 10 > A6 sleep 10 > A7 make[1]: Entering directory `/mydir/data' echo > B1 echo > B2 echo > B4 B5: checking B3: not found make[1]: *** [B5] Error 1 [...] That means despite make knowing that B3 is a prerequisite to B5, B5 is run with B3 not yet done in this case. -- System Information: Debian Release: jessie/sid Architecture: amd64 (x86_64) Versions of packages make depends on: ii libc6 2.17-92+b1 -- no debconf information -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org