From eb1275890a3aec518480916cb40ff675dc1bcb4e Mon Sep 17 00:00:00 2001
From: Dean Camera <dean@fourwalledcubicle.com>
Date: Sun, 4 Mar 2012 14:43:14 +0000
Subject: [PATCH] Update ModuleTest to compile for each sub-family within each
 architecture, to ensure that the code compiles for all devices (not just for
 one device in each architecture).

---
 BuildTests/ModuleTest/Modules.h     | 12 +++++++++---
 BuildTests/ModuleTest/makefile      | 30 ++++++++++++++++++++++-------
 BuildTests/ModuleTest/makefile.avr8 |  1 -
 3 files changed, 32 insertions(+), 11 deletions(-)

diff --git a/BuildTests/ModuleTest/Modules.h b/BuildTests/ModuleTest/Modules.h
index 6f50a996c..00f7b8913 100644
--- a/BuildTests/ModuleTest/Modules.h
+++ b/BuildTests/ModuleTest/Modules.h
@@ -35,9 +35,15 @@
 #include <LUFA/Drivers/Misc/TerminalCodes.h>
 
 #if (ARCH == ARCH_AVR8)
-	#include <LUFA/Drivers/Peripheral/Serial.h>
-	#include <LUFA/Drivers/Peripheral/TWI.h>
-	#include <LUFA/Drivers/Peripheral/ADC.h>
+	#if defined(TWCR)
+		#include <LUFA/Drivers/Peripheral/TWI.h>
+	#endif
+
+	#if defined(ADC)
+		#include <LUFA/Drivers/Peripheral/ADC.h>
+	#endif
+
+	#include <LUFA/Drivers/Peripheral/Serial.h>	
 	#include <LUFA/Drivers/Peripheral/SPI.h>
 	#include <LUFA/Drivers/Peripheral/SerialSPI.h>
 #elif (ARCH == ARCH_XMEGA)
diff --git a/BuildTests/ModuleTest/makefile b/BuildTests/ModuleTest/makefile
index 7706ca616..1930eddc1 100644
--- a/BuildTests/ModuleTest/makefile
+++ b/BuildTests/ModuleTest/makefile
@@ -12,21 +12,37 @@
 # all module headers in a simple C and C++
 # application.
 
-all:
+
+# List of device families per architecture, one device per architecture sub-family
+AVR8_FAMILIES  = at90usb1287 at90usb1286 atmega32u4 atmega32u2
+XMEGA_FAMILIES = atxmega128a1u atxmega128a3u atxmega128a4u atxmega128b1 atxmega128b3
+UC3_FAMILIES   = uc3a0256 uc3a1256 uc3a3256 uc3a4256 uc3b0256 uc3b1256
+
+# List of all device families, with a family postfix
+DEVICE_FAMILIES = $(AVR8_FAMILIES:%=%.avr8) $(XMEGA_FAMILIES:%=%.xmega) $(UC3_FAMILIES:%=%.uc3)
+
+
+all: begin $(DEVICE_FAMILIES) end
+
+begin:
 	@echo Executing build test "ModuleTest".
 	@echo
 
+end:
+	@echo Build test "ModuleTest" complete.
+	@echo
+
+%.avr8:
 	$(MAKE) -f makefile.avr8 clean
-	$(MAKE) -f makefile.avr8
+	$(MAKE) -f makefile.avr8 all MCU=$(@:%.avr8=%)
 
+%.xmega:
 	$(MAKE) -f makefile.xmega clean
-	$(MAKE) -f makefile.xmega
+	$(MAKE) -f makefile.xmega all MCU=$(@:%.xmega=%)
 
+%.uc3:
 	$(MAKE) -f makefile.uc3 clean
-	$(MAKE) -f makefile.uc3
-
-	@echo Build test "ModuleTest" complete.
-	@echo
+	$(MAKE) -f makefile.uc3 all MCU=$(@:%.uc3=%)
 
 clean:
 	$(MAKE) -f makefile.avr8 clean
diff --git a/BuildTests/ModuleTest/makefile.avr8 b/BuildTests/ModuleTest/makefile.avr8
index b4c319540..f41470f7a 100644
--- a/BuildTests/ModuleTest/makefile.avr8
+++ b/BuildTests/ModuleTest/makefile.avr8
@@ -132,7 +132,6 @@ SRC = Test_C.c                   \
       $(LUFA_SRC_USB)            \
       $(LUFA_SRC_USBCLASS)       \
       $(LUFA_SRC_SERIAL)         \
-      $(LUFA_SRC_TWI)            \
       $(LUFA_SRC_SCHEDULER)
 
 
-- 
GitLab