projects
/
pub
/
USBasp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Slightly better method of recursive make - use proper make dependencies to allow...
[pub/USBasp.git]
/
Projects
/
makefile
diff --git
a/Projects/makefile
b/Projects/makefile
index
2f71dd6
..
ec8e65b
100644
(file)
--- a/
Projects/makefile
+++ b/
Projects/makefile
@@
-1,9
+1,9
@@
#
# LUFA Library
#
# LUFA Library
-# Copyright (C) Dean Camera, 20
09
.
-#
+# Copyright (C) Dean Camera, 20
12
.
+#
# dean [at] fourwalledcubicle [dot] com
# dean [at] fourwalledcubicle [dot] com
-#
www.fourwalledcubicle.com
+#
www.lufa-lib.org
#
# Makefile to build all the LUFA Projects. Call with "make all" to
#
# Makefile to build all the LUFA Projects. Call with "make all" to
@@
-13,29
+13,33
@@
# custom LUFA library build options are reflected in the compiled
# code.
# custom LUFA library build options are reflected in the compiled
# code.
-all:
- make -C AVRISP clean
- make -C AVRISP all
+PROJECT_DIRECTORIES = $(shell ls -d */)
+
+# This makefile is potentially infinitely recursive if something really bad
+# happens when determining the set of project directories - hard-abort if
+# more than 10 levels deep to avoid angry emails.
+ifeq ($(MAKELEVEL), 10)
+ $(error EMERGENCY ABORT: INFINITE RECURSION DETECTED)
+endif
- make -C Benito clean
- make -C Benito all
+# If building without a per-project object directory, we can't build in parallel
+ifeq ($(OBJDIR),)
+ .NOTPARALLEL:
- make -C Magstripe clean
- make -C Magstripe all
+ # Ensure projects are pre-cleaned if the target is the default or "all"
+ ifeq ($(MAKECMDGOALS),)
+ MAKECMDGOALS := clean all
+ endif
+ ifneq ($(findstring all, $(MAKECMDGOALS)),)
+ MAKECMDGOALS := clean $(MAKECMDGOALS)
+ endif
+endif
- make -C MissileLauncher clean
-
make -C MissileLauncher a
ll
+%: $(PROJECT_DIRECTORIES)
+
@echo . > /dev/nu
ll
- make -C USBtoSerial clean
- make -C USBtoSerial all
-
- make -C XPLAINBridge clean
- make -C XPLAINBridge all
+$(PROJECT_DIRECTORIES):
+ @$(MAKE) -C $@ $(MAKECMDGOALS)
+
+.PHONY: $(PROJECT_DIRECTORIES)
-%:
- make -C AVRISP $@
- make -C Benito $@
- make -C Magstripe $@
- make -C MissileLauncher $@
- make -C USBtoSerial $@
- make -C XPLAINBridge $@