3 # Copyright (C) Dean Camera, 2017.
5 # dean [at] fourwalledcubicle [dot] com
9 # Makefile for the module build test. This test
10 # attempts to build as many modules as possible
11 # under all supported architectures, and include
12 # all module headers in a simple C and C++
15 # Path to the LUFA library core
16 LUFA_PATH := ../../LUFA/
18 # Build test cannot be run with multiple parallel jobs
21 # List of device families per architecture, one device per architecture sub-family
22 AVR8_FAMILIES := at90usb1287 at90usb1286 atmega16u4 atmega16u2 at90usb162
23 XMEGA_FAMILIES := atxmega128a1u atxmega128a3u atxmega256a3bu atxmega128a4u atxmega128b1 atxmega128b3 atxmega128c3 atxmega32c4
24 UC3_FAMILIES := uc3a0256 uc3a1256 uc3a3256 uc3a4256 uc3b0256 uc3b1256
26 # List of all device families, with a family postfix
27 DEVICE_FAMILIES := $(AVR8_FAMILIES:%=%.avr8) $(XMEGA_FAMILIES:%=%.xmega) $(UC3_FAMILIES:%=%.uc3)
30 all: begin $(DEVICE_FAMILIES) clean end
32 arch_avr8: begin $(AVR8_FAMILIES:%=%.avr8) end
33 arch_xmega: begin $(XMEGA_FAMILIES:%=%.xmega) end
34 arch_uc3: begin $(UC3_FAMILIES:%=%.uc3) end
37 @echo Executing build test "ModuleTest".
41 @echo Build test "ModuleTest" complete.
45 @echo Building ModuleTest for ARCH=AVR8 MCU=$(@:%.avr8=%)...
46 $(MAKE) -f makefile.test clean elf ARCH=AVR8 MCU=$(@:%.avr8=%)
49 @echo Building ModuleTest for ARCH=XMEGA MCU=$(@:%.xmega=%)...
50 $(MAKE) -f makefile.test clean elf ARCH=XMEGA MCU=$(@:%.xmega=%)
53 @echo Building ModuleTest for ARCH=UC3 MCU=$(@:%.uc3=%)...
54 $(MAKE) -f makefile.test clean elf ARCH=UC3 MCU=$(@:%.uc3=%)
57 $(MAKE) -f makefile.test clean ARCH=AVR8 MCU=$(firstword $(AVR8_FAMILIES))
58 $(MAKE) -f makefile.test clean ARCH=XMEGA MCU=$(firstword $(XMEGA_FAMILIES))
59 $(MAKE) -f makefile.test clean ARCH=UC3 MCU=$(firstword $(UC3_FAMILIES))
63 .PHONY: all arch_avr8 arch_xmega arch_uc3 begin end
65 # Include common DMBS build system modules
66 DMBS_PATH ?= $(LUFA_PATH)/Build/DMBS/DMBS
67 include $(DMBS_PATH)/core.mk