From e009aafe2505212d5a58e9bd4f741d86a049260b Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Tue, 12 Apr 2011 04:49:36 +0000 Subject: [PATCH] Update architecture specific makefile templates so that they are as close to one-another as possible. --- LUFA/CodeTemplates/makefile_template.avr8 | 25 +++++------- LUFA/CodeTemplates/makefile_template.uc3 | 46 +++++++++++------------ 2 files changed, 33 insertions(+), 38 deletions(-) diff --git a/LUFA/CodeTemplates/makefile_template.avr8 b/LUFA/CodeTemplates/makefile_template.avr8 index 5cfacb4a23..be1e684294 100644 --- a/LUFA/CodeTemplates/makefile_template.avr8 +++ b/LUFA/CodeTemplates/makefile_template.avr8 @@ -63,7 +63,7 @@ MCU = ### INSERT NAME OF MICROCONTROLLER MODEL HERE ### -# Target architecture (see library "Board Types" documentation). +# Targeted chip architecture (see library "Architectures" documentation) ARCH = AVR8 @@ -177,21 +177,24 @@ CSTANDARD = -std=c99 # Place -D or -U options here for C sources CDEFS = -DF_CPU=$(F_CPU)UL -CDEFS += -DF_CLOCK=$(F_CLOCK)UL +CDEFS += -DF_USB=$(F_USB)UL CDEFS += -DBOARD=BOARD_$(BOARD) +CDEFS += -DARCH=ARCH_$(ARCH) CDEFS += $(LUFA_OPTS) # Place -D or -U options here for ASM sources ADEFS = -DF_CPU=$(F_CPU) -ADEFS += -DF_CLOCK=$(F_CLOCK)UL +ADEFS += -DF_USB=$(F_USB)UL ADEFS += -DBOARD=BOARD_$(BOARD) +ADEFS += -DARCH=ARCH_$(ARCH) ADEFS += $(LUFA_OPTS) # Place -D or -U options here for C++ sources CPPDEFS = -DF_CPU=$(F_CPU)UL -CPPDEFS += -DF_CLOCK=$(F_CLOCK)UL +CPPDEFS += -DF_USB=$(F_USB)UL CPPDEFS += -DBOARD=BOARD_$(BOARD) +CPPDEFS += -DARCH=ARCH_$(ARCH) CPPDEFS += $(LUFA_OPTS) #CPPDEFS += -D__STDC_LIMIT_MACROS #CPPDEFS += -D__STDC_CONSTANT_MACROS @@ -217,11 +220,6 @@ CFLAGS += -fshort-enums CFLAGS += -fno-strict-aliasing CFLAGS += -Wall CFLAGS += -Wstrict-prototypes -#CFLAGS += -mshort-calls -#CFLAGS += -fno-unit-at-a-time -#CFLAGS += -Wundef -#CFLAGS += -Wunreachable-code -#CFLAGS += -Wsign-compare CFLAGS += -Wa,-adhlns=$(<:%.c=$(OBJDIR)/%.lst) CFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS)) CFLAGS += $(CSTANDARD) @@ -241,14 +239,11 @@ CPPFLAGS += -funsigned-char CPPFLAGS += -funsigned-bitfields CPPFLAGS += -fpack-struct CPPFLAGS += -fshort-enums +CPPFLAGS += -ffunction-sections +CPPFLAGS += -fno-strict-aliasing CPPFLAGS += -fno-exceptions CPPFLAGS += -Wall CPPFLAGS += -Wundef -#CPPFLAGS += -mshort-calls -#CPPFLAGS += -fno-unit-at-a-time -#CPPFLAGS += -Wstrict-prototypes -#CPPFLAGS += -Wunreachable-code -#CPPFLAGS += -Wsign-compare CPPFLAGS += -Wa,-adhlns=$(<:%.cpp=$(OBJDIR)/%.lst) CPPFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS)) #CPPFLAGS += $(CSTANDARD) @@ -592,7 +587,7 @@ extcoff: $(TARGET).elf %.hex: %.elf @echo @echo $(MSG_FLASH) $@ - $(OBJCOPY) -O $(FORMAT) -R .eeprom -R .fuse -R .lock $< $@ + $(OBJCOPY) -O $(FORMAT) -R .eeprom -R .fuse -R .lock -R .signature $< $@ %.eep: %.elf @echo diff --git a/LUFA/CodeTemplates/makefile_template.uc3 b/LUFA/CodeTemplates/makefile_template.uc3 index 390c73176c..6ac2e8b05f 100644 --- a/LUFA/CodeTemplates/makefile_template.uc3 +++ b/LUFA/CodeTemplates/makefile_template.uc3 @@ -52,7 +52,7 @@ ARCH = UC3 # Target board (see library "Board Types" documentation, NONE for projects not requiring -# LUFA board drivers). If USER is selected, put custom board drivers in a directory called +# LUFA board drivers). If USER is selected, put custom board drivers in a directory called # "Board" inside the application directory. BOARD = ### INSERT NAME OF BOARD HERE, OR NONE IF NO BOARD DRIVERS USED ### @@ -97,8 +97,8 @@ OBJDIR = . LUFA_PATH = ### INSERT PATH TO LUFA LIBRARY RELATIVE TO PROJECT DIRECTORY HERE ### -# LUFA library compile-time options and predefined tokens -LUFA_OPTS = ### INSERT LUFA COMPILE TIME TOKES HERE ### +# LUFA library compile-time options and predefined tokens (add '-D' before each token) +LUFA_OPTS = ### INSERT LUFA COMPILE TIME TOKES HERE ### # Create the LUFA source path variables by including the LUFA root makefile @@ -113,7 +113,7 @@ SRC = $(TARGET).c \ # List C++ source files here. (C dependencies are automatically generated.) -CPPSRC = +CPPSRC = # List Assembler source files here. @@ -123,13 +123,13 @@ CPPSRC = # Even though the DOS/Win* filesystem matches both .s and .S the same, # it will preserve the spelling of the filenames, and gcc itself does # care about how the name is spelled on its command-line. -ASRC = Exception.S +ASRC = -# Optimization level, can be [0, 1, 2, 3, s]. +# Optimization level, can be [0, 1, 2, 3, s]. # 0 = turn off optimization. s = optimize for size. # (Note: 3 is not always the best optimization level. See avr-libc FAQ.) -OPT = 0 +OPT = s # Debugging level. @@ -172,8 +172,6 @@ CPPDEFS += -DF_USB=$(F_USB)UL CPPDEFS += -DBOARD=BOARD_$(BOARD) CPPDEFS += -DARCH=ARCH_$(ARCH) CPPDEFS += $(LUFA_OPTS) -#CPPDEFS += -D__STDC_LIMIT_MACROS -#CPPDEFS += -D__STDC_CONSTANT_MACROS @@ -191,9 +189,9 @@ CFLAGS += -funsigned-char CFLAGS += -funsigned-bitfields CFLAGS += -ffunction-sections CFLAGS += -fno-strict-aliasing -CFLAGS += -masm-addr-pseudos CFLAGS += -Wall CFLAGS += -Wstrict-prototypes +CFLAGS += -masm-addr-pseudos CFLAGS += -Wa,-adhlns=$(<:%.c=$(OBJDIR)/%.lst) CFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS)) CFLAGS += $(CSTANDARD) @@ -229,9 +227,9 @@ CPPFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS)) # for use in COFF files, additional information about filenames # and function names needs to be present in the assembler source # files -- see avr-libc docs [FIXME: not yet described there] -# -listing-cont-lines: Sets the maximum number of continuation lines of hex +# -listing-cont-lines: Sets the maximum number of continuation lines of hex # dump that will be displayed for a given single line of source input. -ASFLAGS = -g3 $(ADEFS) +ASFLAGS = $(ADEFS) -Wa,-adhlns=$(<:%.S=$(OBJDIR)/%.lst),-gstabs,--listing-cont-lines=100 #---------------- Linker Options ---------------- @@ -239,9 +237,11 @@ ASFLAGS = -g3 $(ADEFS) # -Map: create map file # --cref: add cross reference to map file LDFLAGS = -Wl,-Map=$(TARGET).map,--cref -LDFLAGS += -Wl,--gc-sections --rodata-writable +LDFLAGS += -Wl,--relax +LDFLAGS += -Wl,--gc-sections +LDFLAGS += -Wl,--rodata-writable LDFLAGS += -Wl,--direct-data -#LDFLAGS += -T avr32elf_uc3b0256.x +#LDFLAGS += -T linker_script.x #============================================================================ @@ -266,7 +266,7 @@ WINSHELL = cmd MSG_ERRORS_NONE = Errors: none MSG_BEGIN = -------- begin -------- MSG_END = -------- end -------- -MSG_SIZE_BEFORE = Size before: +MSG_SIZE_BEFORE = Size before: MSG_SIZE_AFTER = Size after: MSG_COFF = Converting to AVR COFF: MSG_FLASH = Creating load file for Flash: @@ -284,10 +284,10 @@ MSG_CREATING_LIBRARY = Creating library: # Define all object files. -OBJ = $(SRC:%.c=$(OBJDIR)/%.o) $(CPPSRC:%.cpp=$(OBJDIR)/%.o) $(ASRC:%.S=$(OBJDIR)/%.o) +OBJ = $(SRC:%.c=$(OBJDIR)/%.o) $(CPPSRC:%.cpp=$(OBJDIR)/%.o) $(ASRC:%.S=$(OBJDIR)/%.o) # Define all listing files. -LST = $(SRC:%.c=$(OBJDIR)/%.lst) $(CPPSRC:%.cpp=$(OBJDIR)/%.lst) $(ASRC:%.S=$(OBJDIR)/%.lst) +LST = $(SRC:%.c=$(OBJDIR)/%.lst) $(CPPSRC:%.cpp=$(OBJDIR)/%.lst) $(ASRC:%.S=$(OBJDIR)/%.lst) # Compiler flags to generate dependency files. @@ -351,11 +351,11 @@ sizeafter: # Display compiler version information. -gccversion : +gccversion : @$(CC) --version -# Program the device. +# Program the device. flip: $(TARGET).hex batchisp -hardware usb -device $(MCU) -operation erase f batchisp -hardware usb -device $(MCU) -operation loadbuffer $(TARGET).hex program @@ -377,7 +377,7 @@ dfu: $(TARGET).hex %.lss: %.elf @echo @echo $(MSG_EXTENDED_LISTING) $@ - $(OBJDUMP) -h -S $< > $@ + $(OBJDUMP) -h -S -z $< > $@ # Create a symbol table from ELF output file. %.sym: %.elf @@ -409,14 +409,14 @@ dfu: $(TARGET).hex $(OBJDIR)/%.o : %.c @echo @echo $(MSG_COMPILING) $< - $(CC) -c $(ALL_CFLAGS) $< -o $@ + $(CC) -c $(ALL_CFLAGS) $< -o $@ # Compile: create object files from C++ source files. $(OBJDIR)/%.o : %.cpp @echo @echo $(MSG_COMPILING_CPP) $< - $(CC) -c $(ALL_CPPFLAGS) $< -o $@ + $(CC) -c $(ALL_CPPFLAGS) $< -o $@ # Compile: create assembler files from C source files. @@ -438,7 +438,7 @@ $(OBJDIR)/%.o : %.S # Create preprocessed source for use in sending a bug report. %.i : %.c - $(CC) -E -mmcu=$(MCU) -I. $(CFLAGS) $< -o $@ + $(CC) -E -mmcu=$(MCU) -I. $(CFLAGS) $< -o $@ # Target: clean project.