slightly update rule.mk for IAR

This commit is contained in:
hathach
2023-01-20 15:56:32 +07:00
parent daec3c24d8
commit cb34cb2a93

View File

@@ -48,15 +48,17 @@ CFLAGS += $(addprefix -I,$(INC))
ifdef USE_IAR ifdef USE_IAR
IAR_CFLAGS += $(CFLAGS) -e --debug --silent
IAR_LDFLAGS += --config $(TOP)/$(IAR_LD_FILE)
IAR_ASFLAGS += $(CFLAGS) -S
SRC_S += $(IAR_SRC_S) SRC_S += $(IAR_SRC_S)
ASFLAGS := $(CFLAGS) $(IAR_ASFLAGS) $(ASFLAGS) -S
IAR_LDFLAGS += --config $(TOP)/$(IAR_LD_FILE)
CFLAGS += $(IAR_CFLAGS) -e --debug --silent
else else
CFLAGS += $(GCC_CFLAGS) SRC_S += $(GCC_SRC_S)
CFLAGS += $(GCC_CFLAGS) -MD
# LTO makes it difficult to analyze map file for optimizing size purpose # LTO makes it difficult to analyze map file for optimizing size purpose
# We will run this option in ci # We will run this option in ci
@@ -76,8 +78,6 @@ endif
ASFLAGS += $(CFLAGS) ASFLAGS += $(CFLAGS)
SRC_S += $(GCC_SRC_S)
endif # USE_IAR endif # USE_IAR
# Verbose mode # Verbose mode
@@ -120,9 +120,23 @@ vpath %.c . $(TOP)
vpath %.s . $(TOP) vpath %.s . $(TOP)
vpath %.S . $(TOP) vpath %.S . $(TOP)
# 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 $@ $<
ifndef USE_IAR ifndef USE_IAR
# GCC based compiler # GCC based compiler
$(BUILD)/$(PROJECT).bin: $(BUILD)/$(PROJECT).elf $(BUILD)/$(PROJECT).bin: $(BUILD)/$(PROJECT).elf
@echo CREATE $@ @echo CREATE $@
@$(OBJCOPY) -O binary $^ $@ @$(OBJCOPY) -O binary $^ $@
@@ -135,24 +149,9 @@ $(BUILD)/$(PROJECT).elf: $(OBJ)
@echo LINK $@ @echo LINK $@
@$(LD) -o $@ $(LDFLAGS) $^ -Wl,--start-group $(LIBS) -Wl,--end-group @$(LD) -o $@ $(LDFLAGS) $^ -Wl,--start-group $(LIBS) -Wl,--end-group
$(BUILD)/obj/%.o: %.c
@echo CC $(notdir $@)
@$(CC) $(CFLAGS) -c -MD -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 $@ $<
else else
# IAR Compiler # IAR Compiler
$(BUILD)/$(PROJECT).bin: $(BUILD)/$(PROJECT).elf $(BUILD)/$(PROJECT).bin: $(BUILD)/$(PROJECT).elf
@echo CREATE $@ @echo CREATE $@
@$(OBJCOPY) --silent --bin $^ $@ @$(OBJCOPY) --silent --bin $^ $@
@@ -163,22 +162,7 @@ $(BUILD)/$(PROJECT).hex: $(BUILD)/$(PROJECT).elf
$(BUILD)/$(PROJECT).elf: $(OBJ) $(BUILD)/$(PROJECT).elf: $(OBJ)
@echo LINK $@ @echo LINK $@
@$(LD) $(IAR_LDFLAGS) $^ -o $@ @$(LD) -o $@ $(IAR_LDFLAGS) $^
$(BUILD)/obj/%.o: %.c
@echo CC $(notdir $@)
@$(CC) $(IAR_CFLAGS) -c -o $@ $<
# ASM sources lower case .s
$(BUILD)/obj/%_asm.o: %.s
@echo AS $(notdir $@)
@$(AS) $(IAR_ASFLAGS) -c -o $@ $<
# ASM sources upper case .S
$(BUILD)/obj/%_asm.o: %.S
@echo AS $(notdir $@)
@$(AS) $(IAR_ASFLAGS) -c -o $@ $<
endif endif
# UF2 generation, iMXRT need to strip to text only before conversion # UF2 generation, iMXRT need to strip to text only before conversion