projects
/
pub
/
USBasp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' of github.com:abcminiuser/lufa
[pub/USBasp.git]
/
Demos
/
DualRole
/
ClassDriver
/
makefile
diff --git
a/Demos/DualRole/ClassDriver/makefile
b/Demos/DualRole/ClassDriver/makefile
index
0655249
..
763f850
100644
(file)
--- a/
Demos/DualRole/ClassDriver/makefile
+++ b/
Demos/DualRole/ClassDriver/makefile
@@
-1,6
+1,6
@@
#
# LUFA Library
#
# LUFA Library
-# Copyright (C) Dean Camera, 201
2
.
+# Copyright (C) Dean Camera, 201
4
.
#
# dean [at] fourwalledcubicle [dot] com
# www.lufa-lib.org
#
# dean [at] fourwalledcubicle [dot] com
# www.lufa-lib.org
@@
-13,12
+13,34
@@
# custom LUFA library build options are reflected in the compiled
# code.
# custom LUFA library build options are reflected in the compiled
# code.
-PROJECT_DIRECTORIES
= $(shell ls -d *
)
+PROJECT_DIRECTORIES
:= $(shell ls -d */
)
-all:
- @$(foreach PROJECT, $(PROJECT_DIRECTORIES), $(MAKE) -s -C $(PROJECT) clean all;)
+# 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
-%:
- @$(foreach PROJECT, $(PROJECT_DIRECTORIES), $(MAKE) -s -C $(PROJECT) $@;)
+# Need to special-case building without a per-project object directory
+ifeq ($(OBJDIR),)
+ # If no target specified, force "clean all" and disallow parallel build
+ ifeq ($(MAKECMDGOALS),)
+ MAKECMDGOALS := clean all
+ .NOTPARALLEL:
+ endif
+ # If one of the targets is to build, force "clean" beforehand and disallow parallel build
+ ifneq ($(findstring all, $(MAKECMDGOALS)),)
+ MAKECMDGOALS := clean $(MAKECMDGOALS)
+ .NOTPARALLEL:
+ endif
+endif
+%: $(PROJECT_DIRECTORIES)
+ @echo . > /dev/null
+
+$(PROJECT_DIRECTORIES):
+ @$(MAKE) -C $@ $(MAKECMDGOALS)
+
+.PHONY: $(PROJECT_DIRECTORIES)