From 2fcd50ada8e0916d1ed5addb2567b4bfcee8497c Mon Sep 17 00:00:00 2001
From: Dean Camera <dean@fourwalledcubicle.com>
Date: Tue, 22 Dec 2015 22:14:09 +1100
Subject: [PATCH] Fix C++ builds, XPLAINBridge project.

---
 LUFA/Build/lufa_build.mk       | 12 ++++++++----
 Projects/XPLAINBridge/makefile |  6 +++---
 2 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/LUFA/Build/lufa_build.mk b/LUFA/Build/lufa_build.mk
index 1aae2a388..d20493ea2 100644
--- a/LUFA/Build/lufa_build.mk
+++ b/LUFA/Build/lufa_build.mk
@@ -66,15 +66,19 @@ else ifeq ($(ARCH), UC3)
    $(warning The UC3 device support is currently EXPERIMENTAL (incomplete and/or non-functional), and is included for preview purposes only.)
 endif
 
-# LUFA specific standard build options
-C_FLAGS += -I. -I$(patsubst %/,%,$(LUFA_PATH))/..
-C_FLAGS += -DARCH=ARCH_$(ARCH) -DBOARD=BOARD_$(BOARD) -DF_USB=$(F_USB)UL
+# Common LUFA C/C++ includes/definitions
+LUFA_CXX_INCLUDES = -I. -I$(patsubst %/,%,$(LUFA_PATH))/..
+LUFA_CXX_DEFINES  = -DARCH=ARCH_$(ARCH) -DBOARD=BOARD_$(BOARD) -DF_USB=$(F_USB)UL
 
 # This flag is required for bootloaders as GCC will emit invalid jump table
 # assembly code for devices with large amounts of flash; the jump table target
 # is extracted from FLASH without using the correct ELPM instruction, resulting
 # in a pseudo-random jump target.
-C_FLAGS += -fno-jump-tables
+LUFA_CXX_FLAGS    = -fno-jump-tables
+
+# LUFA specific standard build options
+C_FLAGS   += $(LUFA_CXX_INCLUDES) $(LUFA_CXX_DEFINES) $(LUFA_CXX_FLAGS)
+CPP_FLAGS += $(LUFA_CXX_INCLUDES) $(LUFA_CXX_DEFINES) $(LUFA_CXX_FLAGS)
 
 DMBS_PATH := $(LUFA_PATH)/Build/DMBS/DMBS
 include $(DMBS_PATH)/gcc.mk
diff --git a/Projects/XPLAINBridge/makefile b/Projects/XPLAINBridge/makefile
index 65ca730f9..aacca6780 100644
--- a/Projects/XPLAINBridge/makefile
+++ b/Projects/XPLAINBridge/makefile
@@ -31,13 +31,13 @@ LD_FLAGS     =
 # Default target
 all:
 
+OBJDIR      := obj
+
 # Since this project borrows files from the AVRISP-MKII project which may also have an
 # identical OBJDIR directory, we need to enforce the use of this project's object file
 # directory as the one where the build object files are to be stored by pre-pending the
 # absolute path of the current project to the OBJDIR variable.
-ifneq ($(OBJDIR),)
-  override OBJDIR:=$(shell pwd)/$(OBJDIR)
-endif
+override OBJDIR:=$(shell pwd)/$(OBJDIR)
 
 # Include LUFA build script makefiles
 include $(LUFA_PATH)/Build/lufa_core.mk
-- 
GitLab