From 00ab25d3213e62538147308a9235437d3f500fb4 Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Wed, 15 Aug 2012 16:40:25 +0000 Subject: Update the BUILD build system module to early abort and display an error if needed before trying to create the OBJDIR output object file directory. --- LUFA/Build/lufa_build.mk | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'LUFA/Build/lufa_build.mk') diff --git a/LUFA/Build/lufa_build.mk b/LUFA/Build/lufa_build.mk index 175057022..211a8f9f5 100644 --- a/LUFA/Build/lufa_build.mk +++ b/LUFA/Build/lufa_build.mk @@ -152,15 +152,20 @@ endif # Convert input source filenames into a list of required output object files OBJECT_FILES += $(addsuffix .o, $(basename $(SRC))) + +# Check if an output object file directory was specified instead of the input file location ifneq ($(OBJDIR),.) - $(shell mkdir $(OBJDIR) 2> /dev/null) - VPATH += $(dir $(SRC)) + # Prefix all the object filenames with the output object file directory path OBJECT_FILES := $(addprefix $(patsubst %/,%,$(OBJDIR))/, $(notdir $(OBJECT_FILES))) # Check if any object file (without path) appears more than once in the object file list ifneq ($(words $(sort $(OBJECT_FILES))), $(words $(OBJECT_FILES))) $(error Cannot build with OBJDIR parameter set - one or more object file name is not unique) endif + + # Create the output object file directory if it does not exist and add it to the virtual path list + $(shell mkdir $(OBJDIR) 2> /dev/null) + VPATH += $(dir $(SRC)) endif # Create a list of dependency files from the list of object files -- cgit v1.2.3