89 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| # based on Makefile exported form mbed.org
 | |
| # see http://mbed.org/handbook/Exporting-to-GCC-ARM-Embedded
 | |
| 
 | |
| GCC_BIN = 
 | |
| AS      = $(GCC_BIN)arm-none-eabi-as
 | |
| CC      = $(GCC_BIN)arm-none-eabi-gcc
 | |
| CPP     = $(GCC_BIN)arm-none-eabi-g++
 | |
| LD      = $(GCC_BIN)arm-none-eabi-gcc
 | |
| OBJCOPY = $(GCC_BIN)arm-none-eabi-objcopy
 | |
| OBJDUMP = $(GCC_BIN)arm-none-eabi-objdump
 | |
| SIZE 	= $(GCC_BIN)arm-none-eabi-size
 | |
| CHKSUM  = $(TMK_DIR)/tool/mbed/lpc-vector-checksum
 | |
| 
 | |
| CC_FLAGS += \
 | |
| 	$(CPU) \
 | |
| 	-c \
 | |
| 	-g \
 | |
| 	-fno-common \
 | |
| 	-fmessage-length=0 \
 | |
| 	-Wall \
 | |
| 	-fno-exceptions \
 | |
| 	-ffunction-sections \
 | |
| 	-fdata-sections \
 | |
| 	-fomit-frame-pointer
 | |
| CC_FLAGS += -MMD -MP
 | |
| 
 | |
| LD_FLAGS = $(CPU) -Wl,--gc-sections --specs=nano.specs
 | |
| #LD_FLAGS += -u _printf_float -u _scanf_float
 | |
| LD_FLAGS += -Wl,-Map=$(OBJDIR)/$(PROJECT).map,--cref
 | |
| LD_SYS_LIBS = -lstdc++ -lsupc++ -lm -lc -lgcc -lnosys
 | |
| 
 | |
| ifeq ($(DEBUG), 1)
 | |
|   CC_FLAGS += -DDEBUG -O0
 | |
| else
 | |
|   CC_FLAGS += -DNDEBUG -Os
 | |
| endif
 | |
| 
 | |
| all: $(OBJDIR)/$(PROJECT).bin $(OBJDIR)/$(PROJECT).hex
 | |
| 
 | |
| clean:
 | |
| 	rm -f $(OBJDIR)/$(PROJECT).bin $(OBJDIR)/$(PROJECT).elf $(OBJDIR)/$(PROJECT).hex $(OBJDIR)/$(PROJECT).map $(OBJDIR)/$(PROJECT).lst $(OBJECTS) $(DEPS)
 | |
| 	rm -fr $(OBJDIR)
 | |
| 
 | |
| $(OBJDIR)/%.o: %.s
 | |
| 	mkdir -p $(@D)
 | |
| 	$(AS) $(CPU) -o $@ $<
 | |
| 
 | |
| $(OBJDIR)/%.o: %.c
 | |
| 	mkdir -p $(@D)
 | |
| 	$(CC)  $(CC_FLAGS) $(CC_SYMBOLS) -std=gnu99   $(INCLUDE_PATHS) -o $@ $<
 | |
| 
 | |
| $(OBJDIR)/%.o: %.cpp
 | |
| 	mkdir -p $(@D)
 | |
| 	$(CPP) $(CC_FLAGS) $(CC_SYMBOLS) -std=gnu++98 -fno-rtti $(INCLUDE_PATHS) -o $@ $<
 | |
| 
 | |
| 
 | |
| $(OBJDIR)/$(PROJECT).elf: $(OBJECTS) $(SYS_OBJECTS)
 | |
| 	$(LD) $(LD_FLAGS) -T$(LINKER_SCRIPT) $(LIBRARY_PATHS) -o $@ $^ $(LIBRARIES) $(LD_SYS_LIBS) $(LIBRARIES) $(LD_SYS_LIBS)
 | |
| 	$(SIZE) $@
 | |
| 
 | |
| $(OBJDIR)/$(PROJECT).bin: $(OBJDIR)/$(PROJECT).elf
 | |
| 	@$(OBJCOPY) -O binary $< $@
 | |
| ifneq (,$(findstring TARGET_NXP,$(CC_SYMBOLS)))
 | |
| 	@echo
 | |
| 	@echo "For NXP writing vector checksum value into $@ ..."
 | |
| 	@$(CHKSUM) $@
 | |
| 	@echo
 | |
| endif
 | |
| 
 | |
| $(OBJDIR)/$(PROJECT).hex: $(OBJDIR)/$(PROJECT).elf
 | |
| 	@$(OBJCOPY) -O ihex $< $@
 | |
| 
 | |
| $(OBJDIR)/$(PROJECT).lst: $(OBJDIR)/$(PROJECT).elf
 | |
| 	@$(OBJDUMP) -Sdh $< > $@
 | |
| 
 | |
| lst: $(OBJDIR)/$(PROJECT).lst
 | |
| 
 | |
| size:
 | |
| 	$(SIZE) $(OBJDIR)/$(PROJECT).elf
 | |
| 
 | |
| prog:	$(OBJDIR)/$(PROJECT).bin
 | |
| 	@echo "Program..."
 | |
| ifneq ($(shell mount | grep 'CRP DISABLD'),)
 | |
| 	umount /dev/nxpisp >/dev/null 2>&1
 | |
| endif
 | |
| 	dd if=$< of=/dev/nxpisp seek=4
 | |
| 
 | |
| DEPS = $(OBJECTS:.o=.d) $(SYS_OBJECTS:.o=.d)
 | |
| -include $(DEPS)
 | 
