examples/Makefile: Make more make-like instead of using shell loops

Shell loops broke Travis fairly severely.
This commit is contained in:
Angus Gratton 2015-08-21 15:53:34 +10:00
parent 24ff83fc41
commit 66a1983a95

View file

@ -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: warning:
@echo "******************************************************" @echo "******************************************************"
@echo "You may not want this Makefile, even though it's here!" @echo "You may not want this Makefile, even though it's here!"
@echo "******************************************************" @echo "******************************************************"
@echo "" @echo ""
@echo "SUGGESTIONS:" @echo "SUGGESTIONS:"
@echo "Running 'make' in one of the subdirectories will build a single example." @echo "Running 'make' in one of the subdirectories of examples/ will build a single example."
@echo "Running 'make help' in one of the subdirectories will print some help." @echo "Running 'make help' in one of the subdirectories of examples/ will print some help."
@echo "" @echo ""
@echo "OTHERWISE:" @echo "OTHERWISE:"
@echo "This makefile is for building all of the examples at once, as a developer test." @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 "To use it, run 'make build-examples' or 'make rebuild-examples'"
@echo @echo
build-examples: build-examples: $(EXAMPLES_BUILD)
set -e
for example in `find . -mindepth 2 -name Makefile | sed s/Makefile//)`; do
$(MAKE) -C $$example
done
rebuild-examples: rebuild-examples: $(EXAMPLES_REBUILD)
set -e
for example in `find . -mindepth 2 -name Makefile | sed s/Makefile//)`; do %.dummybuild:
$(MAKE) -C $$example rebuild make -C $(dir $@)
done
%.dummyrebuild:
make -C $(dir $@) rebuild
.PHONY: warning rebuild-examples build-examples .PHONY: warning rebuild-examples build-examples
.NOTPARALLEL: .NOTPARALLEL: