From beb0b2bda0c45e958e88933a055d409e42fa0a0b Mon Sep 17 00:00:00 2001
From: Dean Camera <dean@fourwalledcubicle.com>
Date: Fri, 19 Jun 2009 04:34:35 +0000
Subject: [PATCH] Move LUFA compile time options to a new section in the
 application makefiles for clarity.

---
 Bootloaders/CDC/makefile                        | 16 +++++++++++-----
 Bootloaders/DFU/makefile                        | 17 ++++++++++++-----
 Bootloaders/TeensyHID/makefile                  | 17 ++++++++++++-----
 Demos/Device/ClassDriver/AudioInput/makefile    | 14 ++++++++++----
 Demos/Device/ClassDriver/AudioOutput/makefile   | 15 +++++++++++----
 Demos/Device/ClassDriver/CDC/makefile           | 13 +++++++++----
 Demos/Device/ClassDriver/DualCDC/makefile       | 13 +++++++++----
 Demos/Device/ClassDriver/GenericHID/makefile    | 14 ++++++++++----
 Demos/Device/ClassDriver/Joystick/makefile      | 13 +++++++++----
 Demos/Device/ClassDriver/Keyboard/makefile      | 14 ++++++++++----
 Demos/Device/ClassDriver/KeyboardMouse/makefile | 13 +++++++++----
 Demos/Device/ClassDriver/MIDI/makefile          | 13 +++++++++----
 Demos/Device/ClassDriver/MassStorage/makefile   | 13 +++++++++----
 Demos/Device/ClassDriver/Mouse/makefile         | 14 ++++++++++----
 Demos/Device/ClassDriver/RNDISEthernet/makefile | 15 ++++++++++-----
 Demos/Device/ClassDriver/USBtoSerial/makefile   | 13 +++++++++----
 Demos/Device/Incomplete/Sideshow/makefile       | 14 ++++++++++----
 Demos/Device/LowLevel/AudioInput/makefile       | 14 ++++++++++----
 Demos/Device/LowLevel/AudioOutput/makefile      | 15 +++++++++++----
 Demos/Device/LowLevel/CDC/makefile              | 14 ++++++++++----
 Demos/Device/LowLevel/DualCDC/makefile          | 14 ++++++++++----
 Demos/Device/LowLevel/GenericHID/makefile       | 15 +++++++++++----
 Demos/Device/LowLevel/Joystick/makefile         | 14 ++++++++++----
 Demos/Device/LowLevel/Keyboard/makefile         | 15 +++++++++++----
 Demos/Device/LowLevel/KeyboardMouse/makefile    | 14 ++++++++++----
 Demos/Device/LowLevel/MIDI/makefile             | 14 ++++++++++----
 Demos/Device/LowLevel/MassStorage/makefile      | 15 ++++++++++-----
 Demos/Device/LowLevel/Mouse/makefile            | 15 +++++++++++----
 Demos/Device/LowLevel/RNDISEthernet/makefile    | 16 +++++++++++-----
 Demos/Device/LowLevel/USBtoSerial/makefile      | 14 ++++++++++----
 Demos/Host/ClassDriver/CDCHost/makefile         | 11 ++++++++---
 Demos/Host/ClassDriver/GenericHIDHost/makefile  | 12 +++++++++---
 Demos/Host/ClassDriver/KeyboardHost/makefile    | 11 ++++++++---
 .../ClassDriver/KeyboardHostWithParser/makefile | 11 ++++++++---
 Demos/Host/ClassDriver/MassStorageHost/makefile | 13 +++++++++----
 Demos/Host/ClassDriver/MouseHost/makefile       | 12 +++++++++---
 .../ClassDriver/MouseHostWithParser/makefile    | 11 ++++++++---
 Demos/Host/ClassDriver/StillImageHost/makefile  | 11 ++++++++---
 Demos/Host/Incomplete/BluetoothHost/makefile    | 11 ++++++++---
 Demos/Host/LowLevel/CDCHost/makefile            | 11 ++++++++---
 Demos/Host/LowLevel/GenericHIDHost/makefile     | 12 +++++++++---
 Demos/Host/LowLevel/KeyboardHost/makefile       | 11 ++++++++---
 .../LowLevel/KeyboardHostWithParser/makefile    | 11 ++++++++---
 Demos/Host/LowLevel/MassStorageHost/makefile    | 13 +++++++++----
 Demos/Host/LowLevel/MouseHost/makefile          | 12 +++++++++---
 .../Host/LowLevel/MouseHostWithParser/makefile  | 11 ++++++++---
 Demos/Host/LowLevel/StillImageHost/makefile     | 11 ++++++++---
 Demos/OTG/TestApp/makefile                      |  7 +++++--
 LUFA/ManPages/FutureChanges.txt                 |  2 +-
 LUFA/ManPages/MigrationInformation.txt          |  5 +++--
 Projects/Magstripe/makefile                     | 13 +++++++++----
 Projects/MissileLauncher/makefile               | 12 +++++++++---
 52 files changed, 473 insertions(+), 191 deletions(-)

diff --git a/Bootloaders/CDC/makefile b/Bootloaders/CDC/makefile
index 8425e9b31..71e2da7f6 100644
--- a/Bootloaders/CDC/makefile
+++ b/Bootloaders/CDC/makefile
@@ -110,6 +110,15 @@ OBJDIR = .
 LUFA_PATH = ../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USB_DEVICE_ONLY
+LUFA_OPTS += USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += FIXED_CONTROL_ENDPOINT_SIZE=8
+LUFA_OPTS += USE_SINGLE_DEVICE_CONFIGURATION
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS += USE_RAM_DESCRIPTORS
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  Descriptors.c                                               \
@@ -172,11 +181,8 @@ BOOT_START = 0x1E000
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSB_DEVICE_ONLY -DUSE_NONSTANDARD_DESCRIPTOR_NAMES
-CDEFS += -DFIXED_CONTROL_ENDPOINT_SIZE=8 -DUSE_SINGLE_DEVICE_CONFIGURATION
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
-CDEFS += -DUSE_RAM_DESCRIPTORS -DBOOT_START_ADDR=$(BOOT_START)UL
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
+CDEFS += -DBOOT_START_ADDR=$(BOOT_START)UL
 
 
 # Place -D or -U options here for ASM sources
diff --git a/Bootloaders/DFU/makefile b/Bootloaders/DFU/makefile
index 871a92da2..410301431 100644
--- a/Bootloaders/DFU/makefile
+++ b/Bootloaders/DFU/makefile
@@ -110,6 +110,16 @@ OBJDIR = .
 LUFA_PATH = ../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USB_DEVICE_ONLY
+LUFA_OPTS += USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += CONTROL_ONLY_DEVICE
+LUFA_OPTS += FIXED_CONTROL_ENDPOINT_SIZE=32
+LUFA_OPTS += USE_SINGLE_DEVICE_CONFIGURATION
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS += USE_RAM_DESCRIPTORS
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  Descriptors.c                                               \
@@ -172,11 +182,8 @@ BOOT_START = 0x1E000
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSB_DEVICE_ONLY -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DCONTROL_ONLY_DEVICE
-CDEFS += -DFIXED_CONTROL_ENDPOINT_SIZE=32 -DUSE_SINGLE_DEVICE_CONFIGURATION
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
-CDEFS += -DUSE_RAM_DESCRIPTORS -DBOOT_START_ADDR=$(BOOT_START)UL
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
+CDEFS += -DBOOT_START_ADDR=$(BOOT_START)UL
 
 
 # Place -D or -U options here for ASM sources
diff --git a/Bootloaders/TeensyHID/makefile b/Bootloaders/TeensyHID/makefile
index fb3f1eb28..f4b884308 100644
--- a/Bootloaders/TeensyHID/makefile
+++ b/Bootloaders/TeensyHID/makefile
@@ -110,6 +110,16 @@ OBJDIR = .
 LUFA_PATH = ../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USB_DEVICE_ONLY
+LUFA_OPTS += USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += CONTROL_ONLY_DEVICE
+LUFA_OPTS += FIXED_CONTROL_ENDPOINT_SIZE=8
+LUFA_OPTS += USE_SINGLE_DEVICE_CONFIGURATION
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS += USE_RAM_DESCRIPTORS
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  Descriptors.c                                               \
@@ -172,11 +182,8 @@ BOOT_START = 0xC000
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSB_DEVICE_ONLY -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DCONTROL_ONLY_DEVICE
-CDEFS += -DFIXED_CONTROL_ENDPOINT_SIZE=8 -DUSE_SINGLE_DEVICE_CONFIGURATION
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
-CDEFS += -DUSE_RAM_DESCRIPTORS -DBOOT_START_ADDR=$(BOOT_START)UL
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
+CDEFS += -DBOOT_START_ADDR=$(BOOT_START)UL
 
 
 # Place -D or -U options here for ASM sources
diff --git a/Demos/Device/ClassDriver/AudioInput/makefile b/Demos/Device/ClassDriver/AudioInput/makefile
index 99d1e94e8..2e3e72f0a 100644
--- a/Demos/Device/ClassDriver/AudioInput/makefile
+++ b/Demos/Device/ClassDriver/AudioInput/makefile
@@ -122,6 +122,15 @@ OBJDIR = .
 LUFA_PATH = ../../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += NO_STREAM_CALLBACKS
+LUFA_OPTS += USB_DEVICE_ONLY
+LUFA_OPTS += FIXED_CONTROL_ENDPOINT_SIZE=8
+LUFA_OPTS += USE_SINGLE_DEVICE_CONFIGURATION
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  Descriptors.c                                               \
@@ -182,10 +191,7 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DNO_STREAM_CALLBACKS -DUSB_DEVICE_ONLY
-CDEFS += -DFIXED_CONTROL_ENDPOINT_SIZE=8 -DUSE_SINGLE_DEVICE_CONFIGURATION
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
 
 
 # Place -D or -U options here for ASM sources
diff --git a/Demos/Device/ClassDriver/AudioOutput/makefile b/Demos/Device/ClassDriver/AudioOutput/makefile
index 9c3639fe9..4f76df9b9 100644
--- a/Demos/Device/ClassDriver/AudioOutput/makefile
+++ b/Demos/Device/ClassDriver/AudioOutput/makefile
@@ -122,6 +122,15 @@ OBJDIR = .
 LUFA_PATH = ../../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += NO_STREAM_CALLBACKS
+LUFA_OPTS += USB_DEVICE_ONLY
+LUFA_OPTS += FIXED_CONTROL_ENDPOINT_SIZE=8
+LUFA_OPTS += USE_SINGLE_DEVICE_CONFIGURATION
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  Descriptors.c                                               \
@@ -182,12 +191,10 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DNO_STREAM_CALLBACKS -DUSB_DEVICE_ONLY
-CDEFS += -DFIXED_CONTROL_ENDPOINT_SIZE=8 -DUSE_SINGLE_DEVICE_CONFIGURATION
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
 CDEFS += -DAUDIO_OUT_MONO
 
+
 # Place -D or -U options here for ASM sources
 ADEFS = -DF_CPU=$(F_CPU)
 
diff --git a/Demos/Device/ClassDriver/CDC/makefile b/Demos/Device/ClassDriver/CDC/makefile
index 22846c90d..cb3e0fe0f 100644
--- a/Demos/Device/ClassDriver/CDC/makefile
+++ b/Demos/Device/ClassDriver/CDC/makefile
@@ -122,6 +122,14 @@ OBJDIR = .
 LUFA_PATH = ../../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += USB_DEVICE_ONLY
+LUFA_OPTS += FIXED_CONTROL_ENDPOINT_SIZE=8
+LUFA_OPTS += USE_SINGLE_DEVICE_CONFIGURATION
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  Descriptors.c                                               \
@@ -182,10 +190,7 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DUSB_DEVICE_ONLY
-CDEFS += -DFIXED_CONTROL_ENDPOINT_SIZE=8 -DUSE_SINGLE_DEVICE_CONFIGURATION
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
 
 
 # Place -D or -U options here for ASM sources
diff --git a/Demos/Device/ClassDriver/DualCDC/makefile b/Demos/Device/ClassDriver/DualCDC/makefile
index cf3689b49..cde2ed46a 100644
--- a/Demos/Device/ClassDriver/DualCDC/makefile
+++ b/Demos/Device/ClassDriver/DualCDC/makefile
@@ -122,6 +122,14 @@ OBJDIR = .
 LUFA_PATH = ../../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += USB_DEVICE_ONLY
+LUFA_OPTS += FIXED_CONTROL_ENDPOINT_SIZE=8
+LUFA_OPTS += USE_SINGLE_DEVICE_CONFIGURATION
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  Descriptors.c                                               \
@@ -182,10 +190,7 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DUSB_DEVICE_ONLY
-CDEFS += -DFIXED_CONTROL_ENDPOINT_SIZE=8 -DUSE_SINGLE_DEVICE_CONFIGURATION
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
 
 
 # Place -D or -U options here for ASM sources
diff --git a/Demos/Device/ClassDriver/GenericHID/makefile b/Demos/Device/ClassDriver/GenericHID/makefile
index 64d70b3de..d202bafdf 100644
--- a/Demos/Device/ClassDriver/GenericHID/makefile
+++ b/Demos/Device/ClassDriver/GenericHID/makefile
@@ -122,6 +122,14 @@ OBJDIR = .
 LUFA_PATH = ../../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += USB_DEVICE_ONLY
+LUFA_OPTS += FIXED_CONTROL_ENDPOINT_SIZE=8
+LUFA_OPTS += USE_SINGLE_DEVICE_CONFIGURATION
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  Descriptors.c                                               \
@@ -183,10 +191,8 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DUSB_DEVICE_ONLY
-CDEFS += -DFIXED_CONTROL_ENDPOINT_SIZE=8 -DUSE_SINGLE_DEVICE_CONFIGURATION
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
+
 
 # Place -D or -U options here for ASM sources
 ADEFS = -DF_CPU=$(F_CPU)
diff --git a/Demos/Device/ClassDriver/Joystick/makefile b/Demos/Device/ClassDriver/Joystick/makefile
index e39676cf2..67f4d0b47 100644
--- a/Demos/Device/ClassDriver/Joystick/makefile
+++ b/Demos/Device/ClassDriver/Joystick/makefile
@@ -122,6 +122,14 @@ OBJDIR = .
 LUFA_PATH = ../../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += USB_DEVICE_ONLY
+LUFA_OPTS += FIXED_CONTROL_ENDPOINT_SIZE=8
+LUFA_OPTS += USE_SINGLE_DEVICE_CONFIGURATION
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  Descriptors.c                                               \
@@ -183,10 +191,7 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DUSB_DEVICE_ONLY
-CDEFS += -DFIXED_CONTROL_ENDPOINT_SIZE=8 -DUSE_SINGLE_DEVICE_CONFIGURATION
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
 
 
 # Place -D or -U options here for ASM sources
diff --git a/Demos/Device/ClassDriver/Keyboard/makefile b/Demos/Device/ClassDriver/Keyboard/makefile
index 40b60fa82..4bdc241d3 100644
--- a/Demos/Device/ClassDriver/Keyboard/makefile
+++ b/Demos/Device/ClassDriver/Keyboard/makefile
@@ -122,6 +122,14 @@ OBJDIR = .
 LUFA_PATH = ../../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += USB_DEVICE_ONLY
+LUFA_OPTS += FIXED_CONTROL_ENDPOINT_SIZE=8
+LUFA_OPTS += USE_SINGLE_DEVICE_CONFIGURATION
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  Descriptors.c                                               \
@@ -183,10 +191,8 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DUSB_DEVICE_ONLY
-CDEFS += -DFIXED_CONTROL_ENDPOINT_SIZE=8 -DUSE_SINGLE_DEVICE_CONFIGURATION
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
+
 
 # Place -D or -U options here for ASM sources
 ADEFS = -DF_CPU=$(F_CPU)
diff --git a/Demos/Device/ClassDriver/KeyboardMouse/makefile b/Demos/Device/ClassDriver/KeyboardMouse/makefile
index 4c1ce7431..3607f579f 100644
--- a/Demos/Device/ClassDriver/KeyboardMouse/makefile
+++ b/Demos/Device/ClassDriver/KeyboardMouse/makefile
@@ -122,6 +122,14 @@ OBJDIR = .
 LUFA_PATH = ../../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += USB_DEVICE_ONLY
+LUFA_OPTS += FIXED_CONTROL_ENDPOINT_SIZE=8
+LUFA_OPTS += USE_SINGLE_DEVICE_CONFIGURATION
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  Descriptors.c                                               \
@@ -183,10 +191,7 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DUSB_DEVICE_ONLY
-CDEFS += -DFIXED_CONTROL_ENDPOINT_SIZE=8 -DUSE_SINGLE_DEVICE_CONFIGURATION
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
 
 
 # Place -D or -U options here for ASM sources
diff --git a/Demos/Device/ClassDriver/MIDI/makefile b/Demos/Device/ClassDriver/MIDI/makefile
index 734253e0c..7221faf39 100644
--- a/Demos/Device/ClassDriver/MIDI/makefile
+++ b/Demos/Device/ClassDriver/MIDI/makefile
@@ -122,6 +122,14 @@ OBJDIR = .
 LUFA_PATH = ../../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += USB_DEVICE_ONLY
+LUFA_OPTS += FIXED_CONTROL_ENDPOINT_SIZE=8
+LUFA_OPTS += USE_SINGLE_DEVICE_CONFIGURATION
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  Descriptors.c                                               \
@@ -182,10 +190,7 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DUSB_DEVICE_ONLY
-CDEFS += -DFIXED_CONTROL_ENDPOINT_SIZE=8 -DUSE_SINGLE_DEVICE_CONFIGURATION
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
 
 
 # Place -D or -U options here for ASM sources
diff --git a/Demos/Device/ClassDriver/MassStorage/makefile b/Demos/Device/ClassDriver/MassStorage/makefile
index 24b7e03bd..e918e0a98 100644
--- a/Demos/Device/ClassDriver/MassStorage/makefile
+++ b/Demos/Device/ClassDriver/MassStorage/makefile
@@ -122,6 +122,14 @@ OBJDIR = .
 LUFA_PATH = ../../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += USB_DEVICE_ONLY
+LUFA_OPTS += FIXED_CONTROL_ENDPOINT_SIZE=8
+LUFA_OPTS += USE_SINGLE_DEVICE_CONFIGURATION
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  Descriptors.c                                               \
@@ -184,10 +192,7 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DUSB_DEVICE_ONLY
-CDEFS += -DFIXED_CONTROL_ENDPOINT_SIZE=8 -DUSE_SINGLE_DEVICE_CONFIGURATION
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
 
 
 # Place -D or -U options here for ASM sources
diff --git a/Demos/Device/ClassDriver/Mouse/makefile b/Demos/Device/ClassDriver/Mouse/makefile
index 27252b9a4..daa145615 100644
--- a/Demos/Device/ClassDriver/Mouse/makefile
+++ b/Demos/Device/ClassDriver/Mouse/makefile
@@ -122,6 +122,14 @@ OBJDIR = .
 LUFA_PATH = ../../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += USB_DEVICE_ONLY
+LUFA_OPTS += FIXED_CONTROL_ENDPOINT_SIZE=8
+LUFA_OPTS += USE_SINGLE_DEVICE_CONFIGURATION
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  Descriptors.c                                               \
@@ -183,10 +191,8 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DUSB_DEVICE_ONLY
-CDEFS += -DFIXED_CONTROL_ENDPOINT_SIZE=8 -DUSE_SINGLE_DEVICE_CONFIGURATION
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
+
 
 # Place -D or -U options here for ASM sources
 ADEFS = -DF_CPU=$(F_CPU)
diff --git a/Demos/Device/ClassDriver/RNDISEthernet/makefile b/Demos/Device/ClassDriver/RNDISEthernet/makefile
index 70d05f8a5..ada0a1360 100644
--- a/Demos/Device/ClassDriver/RNDISEthernet/makefile
+++ b/Demos/Device/ClassDriver/RNDISEthernet/makefile
@@ -122,6 +122,14 @@ OBJDIR = .
 LUFA_PATH = ../../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += USB_DEVICE_ONLY
+LUFA_OPTS += FIXED_CONTROL_ENDPOINT_SIZE=8
+LUFA_OPTS += USE_SINGLE_DEVICE_CONFIGURATION
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
       Descriptors.c                                               \
@@ -192,11 +200,8 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DUSB_DEVICE_ONLY
-CDEFS += -DFIXED_CONTROL_ENDPOINT_SIZE=8 -DUSE_SINGLE_DEVICE_CONFIGURATION
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
-CDEFS += -DNO_DECODE_ETHERNET -DNO_DECODE_ARP -DNO_DECODE_ICMP -DNO_DECODE_IP -DNO_DECODE_TCP -DNO_DECODE_UDP -DNO_DECODE_DHCP
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
+CDEFS += NO_DECODE_ETHERNET -DNO_DECODE_ARP -DNO_DECODE_ICMP -DNO_DECODE_IP -DNO_DECODE_TCP -DNO_DECODE_UDP -DNO_DECODE_DHCP
 
 
 # Place -D or -U options here for ASM sources
diff --git a/Demos/Device/ClassDriver/USBtoSerial/makefile b/Demos/Device/ClassDriver/USBtoSerial/makefile
index 3c0089769..7c3aa10cc 100644
--- a/Demos/Device/ClassDriver/USBtoSerial/makefile
+++ b/Demos/Device/ClassDriver/USBtoSerial/makefile
@@ -122,6 +122,14 @@ OBJDIR = .
 LUFA_PATH = ../../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += USB_DEVICE_ONLY
+LUFA_OPTS += FIXED_CONTROL_ENDPOINT_SIZE=8
+LUFA_OPTS += USE_SINGLE_DEVICE_CONFIGURATION
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  Descriptors.c                                               \
@@ -183,10 +191,7 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DUSB_DEVICE_ONLY
-CDEFS += -DFIXED_CONTROL_ENDPOINT_SIZE=8 -DUSE_SINGLE_DEVICE_CONFIGURATION
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
 
 
 # Place -D or -U options here for ASM sources
diff --git a/Demos/Device/Incomplete/Sideshow/makefile b/Demos/Device/Incomplete/Sideshow/makefile
index 9ffe13f77..5157d4f49 100644
--- a/Demos/Device/Incomplete/Sideshow/makefile
+++ b/Demos/Device/Incomplete/Sideshow/makefile
@@ -122,6 +122,15 @@ OBJDIR = .
 LUFA_PATH = ../../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += NO_STREAM_CALLBACKS
+LUFA_OPTS += USB_DEVICE_ONLY
+LUFA_OPTS += FIXED_CONTROL_ENDPOINT_SIZE=8
+LUFA_OPTS += USE_SINGLE_DEVICE_CONFIGURATION
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  Descriptors.c                                               \
@@ -186,10 +195,7 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DNO_STREAM_CALLBACKS -DUSB_DEVICE_ONLY
-CDEFS += -DFIXED_CONTROL_ENDPOINT_SIZE=8 -DUSE_SINGLE_DEVICE_CONFIGURATION
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
 
 
 # Place -D or -U options here for ASM sources
diff --git a/Demos/Device/LowLevel/AudioInput/makefile b/Demos/Device/LowLevel/AudioInput/makefile
index 38a954d0f..8ebf0494f 100644
--- a/Demos/Device/LowLevel/AudioInput/makefile
+++ b/Demos/Device/LowLevel/AudioInput/makefile
@@ -122,6 +122,15 @@ OBJDIR = .
 LUFA_PATH = ../../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += NO_STREAM_CALLBACKS
+LUFA_OPTS += USB_DEVICE_ONLY
+LUFA_OPTS += FIXED_CONTROL_ENDPOINT_SIZE=8
+LUFA_OPTS += USE_SINGLE_DEVICE_CONFIGURATION
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  Descriptors.c                                               \
@@ -180,10 +189,7 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DNO_STREAM_CALLBACKS -DUSB_DEVICE_ONLY
-CDEFS += -DFIXED_CONTROL_ENDPOINT_SIZE=8 -DUSE_SINGLE_DEVICE_CONFIGURATION
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
 
 
 # Place -D or -U options here for ASM sources
diff --git a/Demos/Device/LowLevel/AudioOutput/makefile b/Demos/Device/LowLevel/AudioOutput/makefile
index 2ef97b567..1401e90c3 100644
--- a/Demos/Device/LowLevel/AudioOutput/makefile
+++ b/Demos/Device/LowLevel/AudioOutput/makefile
@@ -122,6 +122,15 @@ OBJDIR = .
 LUFA_PATH = ../../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += NO_STREAM_CALLBACKS
+LUFA_OPTS += USB_DEVICE_ONLY
+LUFA_OPTS += FIXED_CONTROL_ENDPOINT_SIZE=8
+LUFA_OPTS += USE_SINGLE_DEVICE_CONFIGURATION
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  Descriptors.c                                               \
@@ -180,12 +189,10 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DNO_STREAM_CALLBACKS -DUSB_DEVICE_ONLY
-CDEFS += -DFIXED_CONTROL_ENDPOINT_SIZE=8 -DUSE_SINGLE_DEVICE_CONFIGURATION
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
 CDEFS += -DAUDIO_OUT_STEREO
 
+
 # Place -D or -U options here for ASM sources
 ADEFS = -DF_CPU=$(F_CPU)
 
diff --git a/Demos/Device/LowLevel/CDC/makefile b/Demos/Device/LowLevel/CDC/makefile
index c8e8798d6..ea135975c 100644
--- a/Demos/Device/LowLevel/CDC/makefile
+++ b/Demos/Device/LowLevel/CDC/makefile
@@ -122,6 +122,15 @@ OBJDIR = .
 LUFA_PATH = ../../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += NO_STREAM_CALLBACKS
+LUFA_OPTS += USB_DEVICE_ONLY
+LUFA_OPTS += FIXED_CONTROL_ENDPOINT_SIZE=8
+LUFA_OPTS += USE_SINGLE_DEVICE_CONFIGURATION
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  Descriptors.c                                               \
@@ -180,10 +189,7 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DNO_STREAM_CALLBACKS -DUSB_DEVICE_ONLY
-CDEFS += -DFIXED_CONTROL_ENDPOINT_SIZE=8 -DUSE_SINGLE_DEVICE_CONFIGURATION
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
 
 
 # Place -D or -U options here for ASM sources
diff --git a/Demos/Device/LowLevel/DualCDC/makefile b/Demos/Device/LowLevel/DualCDC/makefile
index 143c0be97..3191b60f3 100644
--- a/Demos/Device/LowLevel/DualCDC/makefile
+++ b/Demos/Device/LowLevel/DualCDC/makefile
@@ -122,6 +122,15 @@ OBJDIR = .
 LUFA_PATH = ../../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += NO_STREAM_CALLBACKS
+LUFA_OPTS += USB_DEVICE_ONLY
+LUFA_OPTS += FIXED_CONTROL_ENDPOINT_SIZE=8
+LUFA_OPTS += USE_SINGLE_DEVICE_CONFIGURATION
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  Descriptors.c                                               \
@@ -180,10 +189,7 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DNO_STREAM_CALLBACKS -DUSB_DEVICE_ONLY
-CDEFS += -DFIXED_CONTROL_ENDPOINT_SIZE=8 -DUSE_SINGLE_DEVICE_CONFIGURATION
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
 
 
 # Place -D or -U options here for ASM sources
diff --git a/Demos/Device/LowLevel/GenericHID/makefile b/Demos/Device/LowLevel/GenericHID/makefile
index e9e903700..e53346b93 100644
--- a/Demos/Device/LowLevel/GenericHID/makefile
+++ b/Demos/Device/LowLevel/GenericHID/makefile
@@ -122,6 +122,15 @@ OBJDIR = .
 LUFA_PATH = ../../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += NO_STREAM_CALLBACKS
+LUFA_OPTS += USB_DEVICE_ONLY
+LUFA_OPTS += FIXED_CONTROL_ENDPOINT_SIZE=8
+LUFA_OPTS += USE_SINGLE_DEVICE_CONFIGURATION
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  Descriptors.c                                               \
@@ -180,10 +189,8 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DNO_STREAM_CALLBACKS -DUSB_DEVICE_ONLY
-CDEFS += -DFIXED_CONTROL_ENDPOINT_SIZE=8 -DUSE_SINGLE_DEVICE_CONFIGURATION
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
+
 
 # Place -D or -U options here for ASM sources
 ADEFS = -DF_CPU=$(F_CPU)
diff --git a/Demos/Device/LowLevel/Joystick/makefile b/Demos/Device/LowLevel/Joystick/makefile
index cee822c58..a9a51d17b 100644
--- a/Demos/Device/LowLevel/Joystick/makefile
+++ b/Demos/Device/LowLevel/Joystick/makefile
@@ -122,6 +122,15 @@ OBJDIR = .
 LUFA_PATH = ../../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += NO_STREAM_CALLBACKS
+LUFA_OPTS += USB_DEVICE_ONLY
+LUFA_OPTS += FIXED_CONTROL_ENDPOINT_SIZE=8
+LUFA_OPTS += USE_SINGLE_DEVICE_CONFIGURATION
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  Descriptors.c                                               \
@@ -180,10 +189,7 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DNO_STREAM_CALLBACKS -DUSB_DEVICE_ONLY
-CDEFS += -DFIXED_CONTROL_ENDPOINT_SIZE=8 -DUSE_SINGLE_DEVICE_CONFIGURATION
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
 
 
 # Place -D or -U options here for ASM sources
diff --git a/Demos/Device/LowLevel/Keyboard/makefile b/Demos/Device/LowLevel/Keyboard/makefile
index 3ab9de95a..a3399110d 100644
--- a/Demos/Device/LowLevel/Keyboard/makefile
+++ b/Demos/Device/LowLevel/Keyboard/makefile
@@ -122,6 +122,15 @@ OBJDIR = .
 LUFA_PATH = ../../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += NO_STREAM_CALLBACKS
+LUFA_OPTS += USB_DEVICE_ONLY
+LUFA_OPTS += FIXED_CONTROL_ENDPOINT_SIZE=8
+LUFA_OPTS += USE_SINGLE_DEVICE_CONFIGURATION
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  Descriptors.c                                               \
@@ -180,10 +189,8 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DNO_STREAM_CALLBACKS -DUSB_DEVICE_ONLY
-CDEFS += -DFIXED_CONTROL_ENDPOINT_SIZE=8 -DUSE_SINGLE_DEVICE_CONFIGURATION
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
+
 
 # Place -D or -U options here for ASM sources
 ADEFS = -DF_CPU=$(F_CPU)
diff --git a/Demos/Device/LowLevel/KeyboardMouse/makefile b/Demos/Device/LowLevel/KeyboardMouse/makefile
index b93943451..7282d9fc8 100644
--- a/Demos/Device/LowLevel/KeyboardMouse/makefile
+++ b/Demos/Device/LowLevel/KeyboardMouse/makefile
@@ -122,6 +122,15 @@ OBJDIR = .
 LUFA_PATH = ../../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += NO_STREAM_CALLBACKS
+LUFA_OPTS += USB_DEVICE_ONLY
+LUFA_OPTS += FIXED_CONTROL_ENDPOINT_SIZE=8
+LUFA_OPTS += USE_SINGLE_DEVICE_CONFIGURATION
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  Descriptors.c                                               \
@@ -180,10 +189,7 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DNO_STREAM_CALLBACKS -DUSB_DEVICE_ONLY
-CDEFS += -DFIXED_CONTROL_ENDPOINT_SIZE=8 -DUSE_SINGLE_DEVICE_CONFIGURATION
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
 
 
 # Place -D or -U options here for ASM sources
diff --git a/Demos/Device/LowLevel/MIDI/makefile b/Demos/Device/LowLevel/MIDI/makefile
index 51c67c86a..f9ff1ed83 100644
--- a/Demos/Device/LowLevel/MIDI/makefile
+++ b/Demos/Device/LowLevel/MIDI/makefile
@@ -122,6 +122,15 @@ OBJDIR = .
 LUFA_PATH = ../../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += NO_STREAM_CALLBACKS
+LUFA_OPTS += USB_DEVICE_ONLY
+LUFA_OPTS += FIXED_CONTROL_ENDPOINT_SIZE=8
+LUFA_OPTS += USE_SINGLE_DEVICE_CONFIGURATION
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  Descriptors.c                                               \
@@ -180,10 +189,7 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DNO_STREAM_CALLBACKS -DUSB_DEVICE_ONLY
-CDEFS += -DFIXED_CONTROL_ENDPOINT_SIZE=8 -DUSE_SINGLE_DEVICE_CONFIGURATION
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
 
 
 # Place -D or -U options here for ASM sources
diff --git a/Demos/Device/LowLevel/MassStorage/makefile b/Demos/Device/LowLevel/MassStorage/makefile
index 77993d04a..e23014680 100644
--- a/Demos/Device/LowLevel/MassStorage/makefile
+++ b/Demos/Device/LowLevel/MassStorage/makefile
@@ -122,6 +122,15 @@ OBJDIR = .
 LUFA_PATH = ../../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += USB_DEVICE_ONLY 
+LUFA_OPTS += FIXED_CONTROL_ENDPOINT_SIZE=8
+LUFA_OPTS += USE_SINGLE_DEVICE_CONFIGURATION
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS += INTERRUPT_CONTROL_ENDPOINT
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  Descriptors.c                                               \
@@ -182,11 +191,7 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DUSB_DEVICE_ONLY
-CDEFS += -DFIXED_CONTROL_ENDPOINT_SIZE=8 -DUSE_SINGLE_DEVICE_CONFIGURATION
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
-CDEFS += -DINTERRUPT_CONTROL_ENDPOINT
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
 
 
 # Place -D or -U options here for ASM sources
diff --git a/Demos/Device/LowLevel/Mouse/makefile b/Demos/Device/LowLevel/Mouse/makefile
index 314148a14..49126802d 100644
--- a/Demos/Device/LowLevel/Mouse/makefile
+++ b/Demos/Device/LowLevel/Mouse/makefile
@@ -122,6 +122,15 @@ OBJDIR = .
 LUFA_PATH = ../../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += NO_STREAM_CALLBACKS
+LUFA_OPTS += USB_DEVICE_ONLY
+LUFA_OPTS += FIXED_CONTROL_ENDPOINT_SIZE=8
+LUFA_OPTS += USE_SINGLE_DEVICE_CONFIGURATION
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  Descriptors.c                                               \
@@ -179,10 +188,8 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DNO_STREAM_CALLBACKS -DUSB_DEVICE_ONLY
-CDEFS += -DFIXED_CONTROL_ENDPOINT_SIZE=8 -DUSE_SINGLE_DEVICE_CONFIGURATION
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
+
 
 # Place -D or -U options here for ASM sources
 ADEFS = -DF_CPU=$(F_CPU)
diff --git a/Demos/Device/LowLevel/RNDISEthernet/makefile b/Demos/Device/LowLevel/RNDISEthernet/makefile
index 584cba90c..e17c73445 100644
--- a/Demos/Device/LowLevel/RNDISEthernet/makefile
+++ b/Demos/Device/LowLevel/RNDISEthernet/makefile
@@ -122,6 +122,15 @@ OBJDIR = .
 LUFA_PATH = ../../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += NO_STREAM_CALLBACKS
+LUFA_OPTS += USB_DEVICE_ONLY
+LUFA_OPTS += FIXED_CONTROL_ENDPOINT_SIZE=8
+LUFA_OPTS += USE_SINGLE_DEVICE_CONFIGURATION
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
       Descriptors.c                                               \
@@ -192,11 +201,8 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DNO_STREAM_CALLBACKS -DUSB_DEVICE_ONLY
-CDEFS += -DFIXED_CONTROL_ENDPOINT_SIZE=8 -DUSE_SINGLE_DEVICE_CONFIGURATION
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
-CDEFS += -DNO_DECODE_ETHERNET -DNO_DECODE_ARP -DNO_DECODE_ICMP -DNO_DECODE_IP -DNO_DECODE_TCP -DNO_DECODE_UDP -DNO_DECODE_DHCP
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
+CDEFS += NO_DECODE_ETHERNET -DNO_DECODE_ARP -DNO_DECODE_ICMP -DNO_DECODE_IP -DNO_DECODE_TCP -DNO_DECODE_UDP -DNO_DECODE_DHCP
 
 
 # Place -D or -U options here for ASM sources
diff --git a/Demos/Device/LowLevel/USBtoSerial/makefile b/Demos/Device/LowLevel/USBtoSerial/makefile
index f1491a52a..ff46809e4 100644
--- a/Demos/Device/LowLevel/USBtoSerial/makefile
+++ b/Demos/Device/LowLevel/USBtoSerial/makefile
@@ -122,6 +122,15 @@ OBJDIR = .
 LUFA_PATH = ../../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += NO_STREAM_CALLBACKS
+LUFA_OPTS += USB_DEVICE_ONLY
+LUFA_OPTS += FIXED_CONTROL_ENDPOINT_SIZE=8
+LUFA_OPTS += USE_SINGLE_DEVICE_CONFIGURATION
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  Descriptors.c                                               \
@@ -181,10 +190,7 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DNO_STREAM_CALLBACKS -DUSB_DEVICE_ONLY
-CDEFS += -DFIXED_CONTROL_ENDPOINT_SIZE=8 -DUSE_SINGLE_DEVICE_CONFIGURATION
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
 
 
 # Place -D or -U options here for ASM sources
diff --git a/Demos/Host/ClassDriver/CDCHost/makefile b/Demos/Host/ClassDriver/CDCHost/makefile
index 94fdae681..59e795394 100644
--- a/Demos/Host/ClassDriver/CDCHost/makefile
+++ b/Demos/Host/ClassDriver/CDCHost/makefile
@@ -122,6 +122,13 @@ OBJDIR = .
 LUFA_PATH = ../../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += USB_HOST_ONLY
+LUFA_OPTS += NO_STREAM_CALLBACKS
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  $(LUFA_PATH)/LUFA/Drivers/Peripheral/SerialStream.c         \
@@ -183,9 +190,7 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DUSB_HOST_ONLY -DNO_STREAM_CALLBACKS
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
 
 
 # Place -D or -U options here for ASM sources
diff --git a/Demos/Host/ClassDriver/GenericHIDHost/makefile b/Demos/Host/ClassDriver/GenericHIDHost/makefile
index b41d93597..fa993051d 100644
--- a/Demos/Host/ClassDriver/GenericHIDHost/makefile
+++ b/Demos/Host/ClassDriver/GenericHIDHost/makefile
@@ -122,6 +122,13 @@ OBJDIR = .
 LUFA_PATH = ../../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += NO_STREAM_CALLBACKS
+LUFA_OPTS += USB_HOST_ONLY
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  $(LUFA_PATH)/LUFA/Drivers/Peripheral/SerialStream.c         \
@@ -184,9 +191,8 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DNO_STREAM_CALLBACKS -DUSB_HOST_ONLY
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
+
 
 # Place -D or -U options here for ASM sources
 ADEFS = -DF_CPU=$(F_CPU)
diff --git a/Demos/Host/ClassDriver/KeyboardHost/makefile b/Demos/Host/ClassDriver/KeyboardHost/makefile
index a30c145ba..be9a8cadc 100644
--- a/Demos/Host/ClassDriver/KeyboardHost/makefile
+++ b/Demos/Host/ClassDriver/KeyboardHost/makefile
@@ -122,6 +122,13 @@ OBJDIR = .
 LUFA_PATH = ../../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += USB_HOST_ONLY
+LUFA_OPTS += NO_STREAM_CALLBACKS
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  $(LUFA_PATH)/LUFA/Drivers/Peripheral/SerialStream.c         \
@@ -183,9 +190,7 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DUSB_HOST_ONLY -DNO_STREAM_CALLBACKS
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
 
 
 # Place -D or -U options here for ASM sources
diff --git a/Demos/Host/ClassDriver/KeyboardHostWithParser/makefile b/Demos/Host/ClassDriver/KeyboardHostWithParser/makefile
index 41e15fa83..4b9aa454a 100644
--- a/Demos/Host/ClassDriver/KeyboardHostWithParser/makefile
+++ b/Demos/Host/ClassDriver/KeyboardHostWithParser/makefile
@@ -122,6 +122,13 @@ OBJDIR = .
 LUFA_PATH = ../../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += USB_HOST_ONLY
+LUFA_OPTS += NO_STREAM_CALLBACKS
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  HIDReport.c                                                 \
@@ -185,9 +192,7 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DUSB_HOST_ONLY -DNO_STREAM_CALLBACKS
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
 
 
 # Place -D or -U options here for ASM sources
diff --git a/Demos/Host/ClassDriver/MassStorageHost/makefile b/Demos/Host/ClassDriver/MassStorageHost/makefile
index 5adf3ca29..f9234f416 100644
--- a/Demos/Host/ClassDriver/MassStorageHost/makefile
+++ b/Demos/Host/ClassDriver/MassStorageHost/makefile
@@ -122,6 +122,14 @@ OBJDIR = .
 LUFA_PATH = ../../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += NO_STREAM_CALLBACKS
+LUFA_OPTS += USB_HOST_ONLY
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS += USB_STREAM_TIMEOUT_MS=2000
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  Lib/MassStoreCommands.c                                     \
@@ -184,10 +192,7 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DNO_STREAM_CALLBACKS -DUSB_HOST_ONLY
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
-CDEFS += -DUSB_STREAM_TIMEOUT_MS=2000
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
 
 
 # Place -D or -U options here for ASM sources
diff --git a/Demos/Host/ClassDriver/MouseHost/makefile b/Demos/Host/ClassDriver/MouseHost/makefile
index 367ad9fb4..be9e9d7ca 100644
--- a/Demos/Host/ClassDriver/MouseHost/makefile
+++ b/Demos/Host/ClassDriver/MouseHost/makefile
@@ -122,6 +122,13 @@ OBJDIR = .
 LUFA_PATH = ../../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += NO_STREAM_CALLBACKS
+LUFA_OPTS += USB_HOST_ONLY
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  $(LUFA_PATH)/LUFA/Drivers/Peripheral/SerialStream.c         \
@@ -184,9 +191,8 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DNO_STREAM_CALLBACKS -DUSB_HOST_ONLY
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
+
 
 # Place -D or -U options here for ASM sources
 ADEFS = -DF_CPU=$(F_CPU)
diff --git a/Demos/Host/ClassDriver/MouseHostWithParser/makefile b/Demos/Host/ClassDriver/MouseHostWithParser/makefile
index 5c31fce9a..c5f81e208 100644
--- a/Demos/Host/ClassDriver/MouseHostWithParser/makefile
+++ b/Demos/Host/ClassDriver/MouseHostWithParser/makefile
@@ -122,6 +122,13 @@ OBJDIR = .
 LUFA_PATH = ../../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += NO_STREAM_CALLBACKS
+LUFA_OPTS += USB_HOST_ONLY
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  HIDReport.c                                                 \
@@ -185,9 +192,7 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DNO_STREAM_CALLBACKS -DUSB_HOST_ONLY
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
 
 
 # Place -D or -U options here for ASM sources
diff --git a/Demos/Host/ClassDriver/StillImageHost/makefile b/Demos/Host/ClassDriver/StillImageHost/makefile
index 4c0181b23..c1cedd870 100644
--- a/Demos/Host/ClassDriver/StillImageHost/makefile
+++ b/Demos/Host/ClassDriver/StillImageHost/makefile
@@ -121,6 +121,13 @@ OBJDIR = .
 LUFA_PATH = ../../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += NO_STREAM_CALLBACKS
+LUFA_OPTS += USB_HOST_ONLY
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  Lib/StillImageCommands.c                                    \
@@ -181,9 +188,7 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DNO_STREAM_CALLBACKS -DUSB_HOST_ONLY
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
 
 
 # Place -D or -U options here for ASM sources
diff --git a/Demos/Host/Incomplete/BluetoothHost/makefile b/Demos/Host/Incomplete/BluetoothHost/makefile
index f24f6ffd9..86bdd0405 100644
--- a/Demos/Host/Incomplete/BluetoothHost/makefile
+++ b/Demos/Host/Incomplete/BluetoothHost/makefile
@@ -122,6 +122,13 @@ OBJDIR = .
 LUFA_PATH = ../../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += USB_HOST_ONLY
+LUFA_OPTS += NO_STREAM_CALLBACKS
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  DeviceDescriptor.c                                          \
@@ -186,9 +193,7 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DUSB_HOST_ONLY -DNO_STREAM_CALLBACKS
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
 
 
 # Place -D or -U options here for ASM sources
diff --git a/Demos/Host/LowLevel/CDCHost/makefile b/Demos/Host/LowLevel/CDCHost/makefile
index dfbefbb80..de217dff8 100644
--- a/Demos/Host/LowLevel/CDCHost/makefile
+++ b/Demos/Host/LowLevel/CDCHost/makefile
@@ -122,6 +122,13 @@ OBJDIR = .
 LUFA_PATH = ../../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += USB_HOST_ONLY
+LUFA_OPTS += NO_STREAM_CALLBACKS
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  ConfigDescriptor.c                                          \
@@ -182,9 +189,7 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DUSB_HOST_ONLY -DNO_STREAM_CALLBACKS
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
 
 
 # Place -D or -U options here for ASM sources
diff --git a/Demos/Host/LowLevel/GenericHIDHost/makefile b/Demos/Host/LowLevel/GenericHIDHost/makefile
index a07acb438..a117578a3 100644
--- a/Demos/Host/LowLevel/GenericHIDHost/makefile
+++ b/Demos/Host/LowLevel/GenericHIDHost/makefile
@@ -122,6 +122,13 @@ OBJDIR = .
 LUFA_PATH = ../../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += NO_STREAM_CALLBACKS
+LUFA_OPTS += USB_HOST_ONLY
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  ConfigDescriptor.c                                          \
@@ -183,9 +190,8 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DNO_STREAM_CALLBACKS -DUSB_HOST_ONLY
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
+
 
 # Place -D or -U options here for ASM sources
 ADEFS = -DF_CPU=$(F_CPU)
diff --git a/Demos/Host/LowLevel/KeyboardHost/makefile b/Demos/Host/LowLevel/KeyboardHost/makefile
index 6e005da0a..ef77810ff 100644
--- a/Demos/Host/LowLevel/KeyboardHost/makefile
+++ b/Demos/Host/LowLevel/KeyboardHost/makefile
@@ -122,6 +122,13 @@ OBJDIR = .
 LUFA_PATH = ../../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += USB_HOST_ONLY
+LUFA_OPTS += NO_STREAM_CALLBACKS
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  ConfigDescriptor.c                                          \
@@ -182,9 +189,7 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DUSB_HOST_ONLY -DNO_STREAM_CALLBACKS
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
 
 
 # Place -D or -U options here for ASM sources
diff --git a/Demos/Host/LowLevel/KeyboardHostWithParser/makefile b/Demos/Host/LowLevel/KeyboardHostWithParser/makefile
index 393551268..faf8910f6 100644
--- a/Demos/Host/LowLevel/KeyboardHostWithParser/makefile
+++ b/Demos/Host/LowLevel/KeyboardHostWithParser/makefile
@@ -122,6 +122,13 @@ OBJDIR = .
 LUFA_PATH = ../../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += USB_HOST_ONLY
+LUFA_OPTS += NO_STREAM_CALLBACKS
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  ConfigDescriptor.c                                          \
@@ -184,9 +191,7 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DUSB_HOST_ONLY -DNO_STREAM_CALLBACKS
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
 
 
 # Place -D or -U options here for ASM sources
diff --git a/Demos/Host/LowLevel/MassStorageHost/makefile b/Demos/Host/LowLevel/MassStorageHost/makefile
index 709f42f61..f236eed2b 100644
--- a/Demos/Host/LowLevel/MassStorageHost/makefile
+++ b/Demos/Host/LowLevel/MassStorageHost/makefile
@@ -122,6 +122,14 @@ OBJDIR = .
 LUFA_PATH = ../../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += NO_STREAM_CALLBACKS
+LUFA_OPTS += USB_HOST_ONLY
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+LUFA_OPTS += USB_STREAM_TIMEOUT_MS=2000
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  ConfigDescriptor.c                                          \
@@ -183,10 +191,7 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DNO_STREAM_CALLBACKS -DUSB_HOST_ONLY
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
-CDEFS += -DUSB_STREAM_TIMEOUT_MS=2000
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
 
 
 # Place -D or -U options here for ASM sources
diff --git a/Demos/Host/LowLevel/MouseHost/makefile b/Demos/Host/LowLevel/MouseHost/makefile
index 67e05a63a..f62697dad 100644
--- a/Demos/Host/LowLevel/MouseHost/makefile
+++ b/Demos/Host/LowLevel/MouseHost/makefile
@@ -122,6 +122,13 @@ OBJDIR = .
 LUFA_PATH = ../../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += NO_STREAM_CALLBACKS
+LUFA_OPTS += USB_HOST_ONLY
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  ConfigDescriptor.c                                          \
@@ -182,9 +189,8 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DNO_STREAM_CALLBACKS -DUSB_HOST_ONLY
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
+
 
 # Place -D or -U options here for ASM sources
 ADEFS = -DF_CPU=$(F_CPU)
diff --git a/Demos/Host/LowLevel/MouseHostWithParser/makefile b/Demos/Host/LowLevel/MouseHostWithParser/makefile
index 30e40ad45..caf20df61 100644
--- a/Demos/Host/LowLevel/MouseHostWithParser/makefile
+++ b/Demos/Host/LowLevel/MouseHostWithParser/makefile
@@ -122,6 +122,13 @@ OBJDIR = .
 LUFA_PATH = ../../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += NO_STREAM_CALLBACKS
+LUFA_OPTS += USB_HOST_ONLY
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  ConfigDescriptor.c                                          \
@@ -184,9 +191,7 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DNO_STREAM_CALLBACKS -DUSB_HOST_ONLY
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
 
 
 # Place -D or -U options here for ASM sources
diff --git a/Demos/Host/LowLevel/StillImageHost/makefile b/Demos/Host/LowLevel/StillImageHost/makefile
index a4428c565..96eca4258 100644
--- a/Demos/Host/LowLevel/StillImageHost/makefile
+++ b/Demos/Host/LowLevel/StillImageHost/makefile
@@ -121,6 +121,13 @@ OBJDIR = .
 LUFA_PATH = ../../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += NO_STREAM_CALLBACKS
+LUFA_OPTS += USB_HOST_ONLY
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  ConfigDescriptor.c                                          \
@@ -182,9 +189,7 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DNO_STREAM_CALLBACKS -DUSB_HOST_ONLY
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
 
 
 # Place -D or -U options here for ASM sources
diff --git a/Demos/OTG/TestApp/makefile b/Demos/OTG/TestApp/makefile
index 55b98815a..b5c50bb61 100644
--- a/Demos/OTG/TestApp/makefile
+++ b/Demos/OTG/TestApp/makefile
@@ -122,6 +122,10 @@ OBJDIR = .
 LUFA_PATH = ../../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  TestEvents.c                                                \
@@ -184,8 +188,7 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
 
 
 # Place -D or -U options here for ASM sources
diff --git a/LUFA/ManPages/FutureChanges.txt b/LUFA/ManPages/FutureChanges.txt
index 35411f2ab..53f9b3ae0 100644
--- a/LUFA/ManPages/FutureChanges.txt
+++ b/LUFA/ManPages/FutureChanges.txt
@@ -22,5 +22,5 @@
   *  - Remake AVRStudio project files
   *  - Master LUFA include file
   *  - Debug mode for pipe/endpoint calls
-  *  - Add hub support to match Atmel's stack (thanks to the Atmel engineer who said it wasn't possible :P)
+  *  - Add hub support to match Atmel's stack
   */
diff --git a/LUFA/ManPages/MigrationInformation.txt b/LUFA/ManPages/MigrationInformation.txt
index d46ddd02b..f1b5f55ce 100644
--- a/LUFA/ManPages/MigrationInformation.txt
+++ b/LUFA/ManPages/MigrationInformation.txt
@@ -13,14 +13,15 @@
  * \section Sec_MigrationXXXXXX Migrating from 090605 to XXXXXX
  *
  *  <b>All</b>
- *    - The "Simple Scheduler" has been <i>deprecated</i>, as it was little more than an abtracted loop and caused much confusion. User
- *      applications using the scheduler should switch to regular loops instead. The scheduler code will be removed in a future
+ *    - The "Simple Scheduler" has been <i>deprecated</i>, as it was little more than an abtracted loop and caused much confusion.
+ *      User applications using the scheduler should switch to regular loops instead. The scheduler code will be removed in a future
  *      release.
  *    - The "Dynamic Memory Block Allocator" has been removed, as it was unused in (and unrelated to) the LUFA library and never
  *      used in user applications. The library is available from the author's website for those wishing to still use it in their
  *      applications.
  *
  *  <b>Host Mode</b>
+ *    - The HIDParser.c module has moved from LUFA/Drivers/USB/Class/ to LUFA/Drivers/USB/Class/Host/.
  *    - The USB_GetDeviceConfigDescriptor() function now requires the desired configuration index within the device as its first
  *      parameter, to add support for multi-configuration devices. Existing code should use a configuration index of 1 to indicate the
  *      first configuration descriptor within the device.
diff --git a/Projects/Magstripe/makefile b/Projects/Magstripe/makefile
index b81f9f156..edea3ceff 100644
--- a/Projects/Magstripe/makefile
+++ b/Projects/Magstripe/makefile
@@ -122,6 +122,14 @@ OBJDIR = .
 LUFA_PATH = ../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += USB_DEVICE_ONLY
+LUFA_OPTS += FIXED_CONTROL_ENDPOINT_SIZE=8
+LUFA_OPTS += USE_SINGLE_DEVICE_CONFIGURATION
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  Descriptors.c                                               \
@@ -183,10 +191,7 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DUSB_DEVICE_ONLY
-CDEFS += -DFIXED_CONTROL_ENDPOINT_SIZE=8 -DUSE_SINGLE_DEVICE_CONFIGURATION
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
 CDEFS += -DMAG_T1_CLOCK="(1 << 0)"
 CDEFS += -DMAG_T1_DATA="(1 << 1)"
 CDEFS += -DMAG_T2_CLOCK="(1 << 2)"
diff --git a/Projects/MissileLauncher/makefile b/Projects/MissileLauncher/makefile
index 045266a44..91482c6b2 100644
--- a/Projects/MissileLauncher/makefile
+++ b/Projects/MissileLauncher/makefile
@@ -122,6 +122,13 @@ OBJDIR = .
 LUFA_PATH = ../..
 
 
+# LUFA library compile-time options
+LUFA_OPTS  = USE_NONSTANDARD_DESCRIPTOR_NAMES
+LUFA_OPTS += NO_STREAM_CALLBACKS
+LUFA_OPTS += USB_HOST_ONLY
+LUFA_OPTS += USE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+
+
 # List C source files here. (C dependencies are automatically generated.)
 SRC = $(TARGET).c                                                 \
 	  ConfigDescriptor.c                                          \
@@ -183,9 +190,8 @@ CSTANDARD = -std=gnu99
 
 
 # Place -D or -U options here for C sources
-CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD)
-CDEFS += -DUSE_NONSTANDARD_DESCRIPTOR_NAMES -DNO_STREAM_CALLBACKS -DUSB_HOST_ONLY
-CDEFS += -DUSE_STATIC_OPTIONS="(USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+CDEFS  = -DF_CPU=$(F_CPU)UL -DF_CLOCK=$(F_CLOCK)UL -DBOARD=BOARD_$(BOARD) $(patsubst %,-D%,$(LUFA_OPTS))
+
 
 # Place -D or -U options here for ASM sources
 ADEFS = -DF_CPU=$(F_CPU)
-- 
GitLab