## ePenguin Generated Makefile PROJECT_NAME=oracle_esf_edition TARGET_NAME=same54p20a ## Toolchain Variables TOOLCHAIN=arm-none-eabi CC=${TOOLCHAIN}-gcc CXX=${TOOLCHAIN}-g++ OBJCOPY=${TOOLCHAIN}-objcopy OBJDUMP=${TOOLCHAIN}-objdump GDB=${TOOLCHAIN}-gdb SIZE=${TOOLCHAIN}-size AS=${TOOLCHAIN}-as ## MCU Specific Variables MCPU=cortex-m4 MCU=__SAME54P20A__ LD_PATH=../../../esf/arm/SAME54/SAME54A/ld LD_SCRIPT=$(LD_PATH)/same54p20a_flash.ld ## Compiler Flags CFLAGS=\ -D$(MCU)\ -mcpu=$(MCPU)\ -x c\ -DDEBUG\ -Os\ -g3\ -Wall\ -c\ -std=gnu99\ $(DIR_INCLUDES)\ -MD -MP\ -MF$(QUOTE)$(@:%.o=%.d)$(QUOTE)\ -MT$(QUOTE)$(@:%.o=%.d)$(QUOTE)\ -MT$(QUOTE)$(@:%.o=%.o)$(QUOTE) ELF_FLAGS=\ -D$(MCU)\ -mcpu=$(MCPU)\ -Wl,--start-group -l m\ -Wl,--end-group -mthumb\ -Wl,-Map=$(QUOTE)$(PROJECT_NAME).map$(QUOTE)\ --specs=nano.specs\ -Wl,--gc-sections\ -T$(QUOTE)$(LD_SCRIPT)$(QUOTE)\ -L$(QUOTE)$(LD_PATH)$(QUOTE) HEX_FLAGS=\ -R .eeprom\ -R .fuse\ -R .lock\ -R .signature EEP_FLAGS=\ -j .eeprom --set-section-flags=.eeprom=alloc,load\ --change-section-lma\ .eeprom=0\ --no-change-warnings ifdef SystemRoot SHELL = cmd.exe MK_DIR = mkdir else ifeq ($(shell uname), Linux) MK_DIR = mkdir -p endif ifeq ($(shell uname | cut -d _ -f 1), CYGWIN) MK_DIR = mkdir -p endif ifeq ($(shell uname | cut -d _ -f 1), MINGW32) MK_DIR = mkdir -p endif ifeq ($(shell uname | cut -d _ -f 1), MINGW64) MK_DIR = mkdir -p endif ifeq ($(shell uname | cut -d _ -f 1), DARWIN) MK_DIR = mkdir -p endif endif SUB_DIRS=\ esf/arm/SAME54/SAME54A/mcu/src\ src OBJS=\ esf/arm/SAME54/SAME54A/mcu/src/startup_same54.o\ esf/arm/SAME54/SAME54A/mcu/src/system_same54.o\ src/main.o OBJS_AS_ARGS=\ $(QUOTE)esf/arm/SAME54/SAME54A/mcu/src/startup_same54.o$(QUOTE)\ $(QUOTE)esf/arm/SAME54/SAME54A/mcu/src/system_same54.o$(QUOTE)\ $(QUOTE)src/main.o$(QUOTE) DEPS=$(OBJS:%.o=%.d) DEPS_AS_ARGS=$(OBJS_AS_ARGS:%.o=%.d) DIR_INCLUDES=\ -I$(QUOTE)../../../esf/arm/SAME54/SAME54A/mcu/inc$(QUOTE)\ -I$(QUOTE)../../../esf/arm/common/inc$(QUOTE)\ -I$(QUOTE)../../../esf/arm/common/inc/cmsis$(QUOTE)\ -I$(QUOTE)../../../inc$(QUOTE) vpath %.c ../../../ vpath %.s ../../../ vpath %.S ../../../ .PHONY: debug push clean all:\ $(SUB_DIRS)\ $(PROJECT_NAME).elf\ $(PROJECT_NAME).bin\ $(PROJECT_NAME).hex\ $(PROJECT_NAME).eep\ $(PROJECT_NAME).lss $(QUOTE)$(SIZE)$(QUOTE) $(QUOTE)$(PROJECT_NAME).elf$(QUOTE) $(PROJECT_NAME).elf:\ $(OBJS) $(QUOTE)$(CC)$(QUOTE) -o $@ $(OBJS_AS_ARGS) $(ELF_FLAGS) $(PROJECT_NAME).bin:\ $(PROJECT_NAME).elf $(QUOTE)$(OBJCOPY)$(QUOTE) -O binary $(QUOTE)$<$(QUOTE) $(QUOTE)$@$(QUOTE) $(PROJECT_NAME).hex:\ $(PROJECT_NAME).elf $(QUOTE)$(OBJCOPY)$(QUOTE) -O ihex $(HEX_FLAGS) $(QUOTE)$<$(QUOTE) $(QUOTE)$@$(QUOTE) $(PROJECT_NAME).eep:\ $(PROJECT_NAME).elf $(QUOTE)$(OBJCOPY)$(QUOTE) $(EEP_FLAGS) -O binary $(QUOTE)$<$(QUOTE) $(QUOTE)$@$(QUOTE) || exit 0 $(PROJECT_NAME).lss:\ $(PROJECT_NAME).elf $(QUOTE)$(OBJDUMP)$(QUOTE) -h -S $(QUOTE)$<$(QUOTE) > $(QUOTE)$@$(QUOTE) # Compiler targets %.o: %.c @echo Building file: $< @echo ARM/GNU C Compiler $(QUOTE)$(CC)$(QUOTE) $(CFLAGS) -o $(QUOTE)$@$(QUOTE) $(QUOTE)$<$(QUOTE) @echo Finished building: $< %.o: %.s @echo Building file: $< @echo ARM/GNU Assembler $(QUOTE)$(AS)$(QUOTE) $(CFLAGS) -o $(QUOTE)$@$(QUOTE) $(QUOTE)$<$(QUOTE) @echo Finished building: $< %.o: %.S @echo Building file: $< @echo ARM/GNU Preprocessing Assembler $(QUOTE)$(CC)$(QUOTE) $(CFLAGS) -o $(QUOTE)$@$(QUOTE) $(QUOTE)$<$(QUOTE) @echo Finished building: $< $(SUB_DIRS): $(MK_DIR) $(QUOTE)$@$(QUOTE) ifneq ($(MAKECMDGOALS),clean) ifneq ($(strip $(DEPS)),) -include $(DEPS) endif endif clean: @rm -f $(PROJECT_NAME).a @rm -f $(PROJECT_NAME).lss @rm -f $(PROJECT_NAME).srec @rm -f $(PROJECT_NAME).map @rm -f $(PROJECT_NAME).eep @rm -f $(OBJS_AS_ARGS) @rm -f $(DEPS_AS_ARGS) @rm -f $(PROJECT_NAME).bin @rm -f $(PROJECT_NAME).elf @rm -f $(PROJECT_NAME).hex push:\ all @echo $(QUOTE)$(QUOTE) @echo $(QUOTE)Uploading $(PROJECT_NAME).elf...$(QUOTE) @$(GDB) $(PROJECT_NAME).elf -x $(QUOTE)scripts/push.gdb$(QUOTE) >/dev/null @echo $(QUOTE)$(QUOTE)$(PROJECT_NAME).elf $(QUOTE) uploaded!$(QUOTE) @$(QUOTE)$(SIZE)$(QUOTE) $(QUOTE)$(PROJECT_NAME).elf$(QUOTE) debug:\ all @$(GDB) $(PROJECT_NAME).elf -x $(QUOTE)scripts/debug.gdb$(QUOTE) QUOTE:="