X-Git-Url: http://git.linex4red.de/pub/lufa.git/blobdiff_plain/90b6bf9e256eea7bb5e493b8f871e2e9f2e1e06d..5d9403fde4e0d89313121fcd5fa4cfc6c4ddfc4e:/LUFA/Build/lufa.build.in diff --git a/LUFA/Build/lufa.build.in b/LUFA/Build/lufa.build.in index 1fccbbf84..91c54f969 100644 --- a/LUFA/Build/lufa.build.in +++ b/LUFA/Build/lufa.build.in @@ -7,7 +7,7 @@ # LUFA_BUILD_MODULES += BUILD -LUFA_BUILD_TARGETS += size check-source symbol-sizes all lib elf hex lss clean +LUFA_BUILD_TARGETS += size check-source symbol-sizes all lib elf hex lss clean mostlyclean LUFA_BUILD_MANDATORY_VARS += TARGET ARCH MCU SRC F_USB LUFA_PATH LUFA_BUILD_OPTIONAL_VARS += BOARD OPTIMIZATION C_STANDARD CPP_STANDARD F_CPU C_FLAGS CPP_FLAGS ASM_FLAGS CC_FLAGS LD_FLAGS OBJDIR LUFA_BUILD_PROVIDED_VARS += @@ -32,7 +32,10 @@ LUFA_BUILD_PROVIDED_MACROS += # elf - Build application ELF debug object file # hex - Build application HEX object files # lss - Build application LSS assembly listing file -# clean - Remove output files +# clean - Remove all project intermediatary and binary +# output files +# mostlyclean - Remove intermediatary output files, but +# preserve binaries # # MANDATORY PARAMETERS: # @@ -140,12 +143,12 @@ endif # Convert input source filenames into a list of required output object files OBJECT_FILES := $(addsuffix .o, $(basename $(SRC))) ifneq ($(OBJDIR),.) - $(shell mkdir $(OBJDIR) 2>&1 | /dev/null) + $(shell mkdir $(OBJDIR) 2>&1 > /dev/null) VPATH += $(dir $(SRC)) - OBJECT_FILES := $(addprefix $(patsubst %/,%,$(OBJDIR))/, $(notdir $(OBJECT_FILES))) endif +# Create a list of dependency files from the list of object files DEPENDENCY_FILES := $(OBJECT_FILES:%.o=%.d) # Create a list of common flags to pass to the compiler/linker/assembler @@ -209,13 +212,15 @@ size: $(TARGET).elf symbol-sizes: $(TARGET).elf @echo $(MSG_NM_CMD) Extracting \"$<\" symbols with decimal byte sizes - avr-nm --size-sort --demangle --radix=d $< + $(CROSS)-nm --size-sort --demangle --radix=d $< -clean: +mostlyclean: @echo $(MSG_REMOVE_CMD) Removing object files of \"$(TARGET)\" rm -f $(OBJECT_FILES) @echo $(MSG_REMOVE_CMD) Removing dependency files of \"$(TARGET)\" rm -f $(DEPENDENCY_FILES) + +clean: mostlyclean @echo $(MSG_REMOVE_CMD) Removing output files of \"$(TARGET)\" rm -f $(TARGET).elf $(TARGET).hex $(TARGET).eep $(TARGET).map $(TARGET).lss $(TARGET).sym $(TARGET).a @@ -237,7 +242,7 @@ $(OBJDIR)/%.o: %.cpp $(MAKEFILE_LIST) $(OBJDIR)/%.o: %.S $(MAKEFILE_LIST) @echo $(MSG_ASSEMBLE_CMD) Assembling \"$(notdir $<)\" - $(CROSS)-gcc -c $(BASE_CC_FLAGS) $(BASE_ASM_FLAGS) $(CC_FLAGS) $(ASM_FLAGS) $< -o $@ + $(CROSS)-gcc -c $(BASE_CC_FLAGS) $(BASE_ASM_FLAGS) $(CC_FLAGS) $(ASM_FLAGS) -MMD -MP -MF $(@:%.o=%.d) $< -o $@ .PRECIOUS : $(OBJECT_FILES) .SECONDARY : %.a @@ -271,4 +276,4 @@ $(OBJDIR)/%.o: %.S $(MAKEFILE_LIST) -include $(DEPENDENCY_FILES) # Phony build targets for this module -.PHONY: build_begin build_end gcc-version check-source size symbol-sizes lib elf hex lss clean +.PHONY: build_begin build_end gcc-version check-source size symbol-sizes lib elf hex lss clean mostlyclean