Fix dependencies for 'make check'
authorRusty Russell <rusty@rustcorp.com.au>
Fri, 14 Nov 2008 07:01:40 +0000 (17:31 +1030)
committerRusty Russell <rusty@rustcorp.com.au>
Fri, 14 Nov 2008 07:01:40 +0000 (17:31 +1030)
Makefile

index 62f244ed98ee6367dc0fbd2ef296acd81672b107..4e49797456302ff8bad93620071cbf132c4db601 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -78,7 +78,7 @@ $(WEBDIR)/tarballs/with-deps/%.tar.bz2: ccan/% ccan/%/test tools/ccan_depends
 $(ALL_DEPENDS): %/.depends: tools/ccan_depends
        tools/ccan_depends $* > $@ || ( rm -f $@; exit 1 )
 
-test-ccan/%: tools/run_tests ccan/%.o
+test-ccan/%: tools/run_tests libccan.a(%.o)
        @echo Testing $*...
        @if tools/run_tests $(V) ccan/$* | grep ^'not ok'; then exit 1; else exit 0; fi
 
@@ -88,8 +88,9 @@ clean: tools-clean
        $(RM) `find . -name '*.o'` `find . -name '.depends'` `find . -name '*.a'`  `find . -name _info`
        $(RM) inter-depends lib-depends test-depends
 
+# Only list a dependency if there are object files to build.
 inter-depends: $(ALL_DEPENDS)
-       for f in $(ALL_DEPENDS); do echo test-ccan/`basename \`dirname $$f\``: `sed -n 's,ccan/\(.*\),ccan/\1.o,p' < $$f`; done > $@
+       for f in $(ALL_DEPENDS); do echo test-ccan/$$(basename $$(dirname $$f) ): $$(for dir in $$(cat $$f); do [ "$$(echo $$dir/[a-z]*.c)" = "$$dir/[a-z]*.c" ] || echo libccan.a\("$$(basename $$dir)".o\); done); done > $@
 
 test-depends: $(ALL_DEPENDS)
        for f in $(ALL_DEPENDS); do echo test-ccan/`basename \`dirname $$f\``: `sed -n 's,ccan/\(.*\),test-ccan/\1,p' < $$f`; done > $@