aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorPiotr Esden-Tempski2012-10-31 13:43:44 -0700
committerPiotr Esden-Tempski2012-10-31 13:43:44 -0700
commit8091f1057671c8c04a93d3b0a1ef16ff07028eae (patch)
treee2b7c942d684ecff2cb8da79bca05c22f2c67aa9 /Makefile
parent08129a5644724ef5aba4dd06a55a75cfb39f1a06 (diff)
parent90cdddd96b62005ab1ad6816bf31a885df4e8695 (diff)
Merge pull request #56 Allow make to build libs/examples in parallel.
Merge remote-tracking branch 'karlp/pr_parallel_makes'
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile35
1 files changed, 18 insertions, 17 deletions
diff --git a/Makefile b/Makefile
index e4dd564..ec0fc30 100644
--- a/Makefile
+++ b/Makefile
@@ -51,21 +51,21 @@ cleanheaders:
./scripts/irq2nvic_h --remove $$yamlfile ; \
done
-lib: generatedheaders
- $(Q)for i in $(addprefix $@/,$(TARGETS)); do \
- if [ -d $$i ]; then \
- printf " BUILD $$i\n"; \
- $(MAKE) -C $$i SRCLIBDIR=$(SRCLIBDIR) || exit $?; \
- fi; \
- done
+LIB_DIRS:=$(wildcard $(addprefix lib/,$(TARGETS)))
+$(LIB_DIRS): generatedheaders
+ @printf " BUILD $@\n";
+ $(Q)$(MAKE) --directory=$@ SRCLIBDIR=$(SRCLIBDIR)
-examples: lib
- $(Q)for i in $(addsuffix /*/*,$(addprefix $@/,$(TARGETS))); do \
- if [ -d $$i ]; then \
- printf " BUILD $$i\n"; \
- $(MAKE) -C $$i || exit $?; \
- fi; \
- done
+lib: $(LIB_DIRS)
+ $(Q)true
+
+EXAMPLE_DIRS:=$(sort $(dir $(wildcard $(addsuffix /*/*/Makefile,$(addprefix examples/,$(TARGETS))))))
+$(EXAMPLE_DIRS): lib
+ @printf " BUILD $@\n";
+ $(Q)$(MAKE) --directory=$@
+
+examples: $(EXAMPLE_DIRS)
+ $(Q)true
install: lib
@printf " INSTALL headers\n"
@@ -86,9 +86,10 @@ install: lib
doc:
$(Q)$(MAKE) -C doc doc
+# Bleh http://www.makelinux.net/make3/make3-CHP-6-SECT-1#make3-CHP-6-SECT-1
clean: cleanheaders
- $(Q)for i in $(addprefix lib/,$(TARGETS)) \
- $(addsuffix /*/*,$(addprefix examples/,$(TARGETS))); do \
+ $(Q)for i in $(LIB_DIRS) \
+ $(EXAMPLE_DIRS); do \
if [ -d $$i ]; then \
printf " CLEAN $$i\n"; \
$(MAKE) -C $$i clean SRCLIBDIR=$(SRCLIBDIR) || exit $?; \
@@ -97,5 +98,5 @@ clean: cleanheaders
@printf " CLEAN doxygen\n"
$(Q)$(MAKE) -C doc clean
-.PHONY: build lib examples install doc clean generatedheaders cleanheaders
+.PHONY: build lib $(LIB_DIRS) examples $(EXAMPLE_DIRS) install doc clean generatedheaders cleanheaders