From e5ea797ed17d875d448191d25f046583e54b7b9e Mon Sep 17 00:00:00 2001
From: Angus Gratton <gus@projectgus.com>
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: