3 #     Copyright (C) Dean Camera, 2018.
 
   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