From e5ea797ed17d875d448191d25f046583e54b7b9e Mon Sep 17 00:00:00 2001 From: Angus Gratton Date: Fri, 21 Aug 2015 15:53:34 +1000 Subject: [PATCH] examples/Makefile: Make more make-like instead of using shell loops Shell loops broke Travis fairly severely. --- examples/Makefile | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/examples/Makefile b/examples/Makefile index 8f7edb6..0436a13 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -1,28 +1,31 @@ +EXAMPLES = $(shell find $(dir $(lastword $(MAKEFILE_LIST))) -mindepth 2 -name Makefile | sed s/Makefile//g) +# Generate some dummy .dummybuild/.dummyrebuild target files +EXAMPLES_BUILD = $(patsubst %,%.dummybuild,$(EXAMPLES)) +EXAMPLES_REBUILD = $(patsubst %,%.dummyrebuild,$(EXAMPLES)) + warning: @echo "******************************************************" @echo "You may not want this Makefile, even though it's here!" @echo "******************************************************" @echo "" @echo "SUGGESTIONS:" - @echo "Running 'make' in one of the subdirectories will build a single example." - @echo "Running 'make help' in one of the subdirectories will print some help." + @echo "Running 'make' in one of the subdirectories of examples/ will build a single example." + @echo "Running 'make help' in one of the subdirectories of examples/ will print some help." @echo "" @echo "OTHERWISE:" @echo "This makefile is for building all of the examples at once, as a developer test." @echo "To use it, run 'make build-examples' or 'make rebuild-examples'" @echo -build-examples: - set -e - for example in `find . -mindepth 2 -name Makefile | sed s/Makefile//)`; do - $(MAKE) -C $$example - done +build-examples: $(EXAMPLES_BUILD) -rebuild-examples: - set -e - for example in `find . -mindepth 2 -name Makefile | sed s/Makefile//)`; do - $(MAKE) -C $$example rebuild - done +rebuild-examples: $(EXAMPLES_REBUILD) + +%.dummybuild: + make -C $(dir $@) + +%.dummyrebuild: + make -C $(dir $@) rebuild .PHONY: warning rebuild-examples build-examples .NOTPARALLEL: