45 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
SRC_S += $(SRC_S_IAR)
 | 
						|
 | 
						|
# Assembly files can be name with upper case .S, convert it to .s
 | 
						|
SRC_S := $(SRC_S:.S=.s)
 | 
						|
 | 
						|
# Due to GCC LTO bug https://bugs.launchpad.net/gcc-arm-embedded/+bug/1747966
 | 
						|
# assembly file should be placed first in linking order
 | 
						|
# '_asm' suffix is added to object of assembly file
 | 
						|
OBJ += $(addprefix $(BUILD)/obj/, $(SRC_S:.s=_asm.o))
 | 
						|
OBJ += $(addprefix $(BUILD)/obj/, $(SRC_C:.c=.o))
 | 
						|
 | 
						|
# Linker script
 | 
						|
LDFLAGS += --config $(TOP)/$(LD_FILE_IAR)
 | 
						|
 | 
						|
# ---------------------------------------
 | 
						|
# Rules
 | 
						|
# ---------------------------------------
 | 
						|
 | 
						|
# Compile .c file
 | 
						|
$(BUILD)/obj/%.o: %.c
 | 
						|
	@echo CC $(notdir $@)
 | 
						|
	@$(CC) $(CFLAGS) -c -o $@ $<
 | 
						|
 | 
						|
# ASM sources lower case .s
 | 
						|
$(BUILD)/obj/%_asm.o: %.s
 | 
						|
	@echo AS $(notdir $@)
 | 
						|
	@$(AS) $(ASFLAGS) -c -o $@ $<
 | 
						|
 | 
						|
# ASM sources upper case .S
 | 
						|
$(BUILD)/obj/%_asm.o: %.S
 | 
						|
	@echo AS $(notdir $@)
 | 
						|
	@$(AS) $(ASFLAGS) -c -o $@ $<
 | 
						|
 | 
						|
$(BUILD)/$(PROJECT).bin: $(BUILD)/$(PROJECT).elf
 | 
						|
	@echo CREATE $@
 | 
						|
	@$(OBJCOPY) --bin $^ $@
 | 
						|
 | 
						|
$(BUILD)/$(PROJECT).hex: $(BUILD)/$(PROJECT).elf
 | 
						|
	@echo CREATE $@
 | 
						|
	@$(OBJCOPY) --ihex $^ $@
 | 
						|
 | 
						|
$(BUILD)/$(PROJECT).elf: $(OBJ)
 | 
						|
	@echo LINK $@
 | 
						|
	@$(LD) -o $@ $(LDFLAGS) $^
 |