# custom LUFA library build options are reflected in the compiled
# code.
+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
+
all:
- $(MAKE) -s -C AudioInput clean all
- $(MAKE) -s -C AudioOutput clean all
- $(MAKE) -s -C DualVirtualSerial clean all
- $(MAKE) -s -C GenericHID clean all
- $(MAKE) -s -C Joystick clean all
- $(MAKE) -s -C Keyboard clean all
- $(MAKE) -s -C KeyboardMouse clean all
- $(MAKE) -s -C MassStorage clean all
- $(MAKE) -s -C MIDI clean all
- $(MAKE) -s -C Mouse clean all
- $(MAKE) -s -C RNDISEthernet clean all
- $(MAKE) -s -C VirtualSerial clean all
+ @$(foreach PROJECT, $(PROJECT_DIRECTORIES), $(MAKE) -s -C $(PROJECT) clean all;)
%:
- $(MAKE) -s -C AudioInput $@
- $(MAKE) -s -C AudioOutput $@
- $(MAKE) -s -C DualVirtualSerial $@
- $(MAKE) -s -C GenericHID $@
- $(MAKE) -s -C Joystick $@
- $(MAKE) -s -C Keyboard $@
- $(MAKE) -s -C KeyboardMouse $@
- $(MAKE) -s -C MassStorage $@
- $(MAKE) -s -C MIDI $@
- $(MAKE) -s -C Mouse $@
- $(MAKE) -s -C RNDISEthernet $@
- $(MAKE) -s -C VirtualSerial $@
-
+ @$(foreach PROJECT, $(PROJECT_DIRECTORIES), $(MAKE) -s -C $(PROJECT) $@;)