fix Makefile
This commit is contained in:
43
Makefile
43
Makefile
@@ -141,6 +141,17 @@ TARGET = demo
|
||||
# 链接脚本
|
||||
LDSCRIPT = STM32F429IGTX_FLASH.ld
|
||||
|
||||
#######################################
|
||||
# 对象文件列表
|
||||
#######################################
|
||||
# 生成对象文件列表(所有对象文件放在build根目录,避免路径问题)
|
||||
OBJECTS = $(addprefix $(BUILD_DIR)/,$(notdir $(C_SOURCES:.c=.o)))
|
||||
OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASM_SOURCES:.s=.o)))
|
||||
|
||||
# 设置vpath以查找源文件
|
||||
vpath %.c $(sort $(dir $(C_SOURCES)))
|
||||
vpath %.s $(sort $(dir $(ASM_SOURCES)))
|
||||
|
||||
#######################################
|
||||
# 默认目标
|
||||
#######################################
|
||||
@@ -152,40 +163,34 @@ all: $(BUILD_DIR)/$(TARGET).elf $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET
|
||||
|
||||
# 创建构建目录
|
||||
$(BUILD_DIR):
|
||||
mkdir -p $@
|
||||
@mkdir -p $@
|
||||
|
||||
# C源文件编译
|
||||
$(BUILD_DIR)/%.o: %.c Makefile | $(BUILD_DIR)
|
||||
# C源文件编译(匹配完整路径)
|
||||
$(BUILD_DIR)/%.o: %.c Makefile
|
||||
@echo "编译: $<"
|
||||
$(CC) -c $(CFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(<:.c=.lst) $(C_INCLUDES) $(C_DEFS) $(DEPFLAGS) -o $@ $<
|
||||
@mkdir -p $(dir $@)
|
||||
@$(CC) -c $(CFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(<:.c=.lst) $(C_INCLUDES) $(C_DEFS) $(DEPFLAGS) -o $@ $<
|
||||
|
||||
# 汇编源文件编译
|
||||
$(BUILD_DIR)/%.o: %.s Makefile | $(BUILD_DIR)
|
||||
# 汇编源文件编译(匹配完整路径)
|
||||
$(BUILD_DIR)/%.o: %.s Makefile
|
||||
@echo "汇编: $<"
|
||||
$(AS) -c $(ASFLAGS) $(C_INCLUDES) $(C_DEFS) -o $@ $<
|
||||
@mkdir -p $(dir $@)
|
||||
@$(AS) -c $(ASFLAGS) $(C_INCLUDES) $(C_DEFS) -o $@ $<
|
||||
|
||||
# 链接
|
||||
$(BUILD_DIR)/$(TARGET).elf: $(OBJECTS) Makefile
|
||||
@echo "链接: $@"
|
||||
$(CC) $(OBJECTS) $(LDFLAGS) -o $@
|
||||
@$(CC) $(OBJECTS) $(LDFLAGS) -o $@
|
||||
@echo "输出大小:"
|
||||
$(SZ) $@
|
||||
@$(SZ) $@
|
||||
|
||||
# 生成HEX文件
|
||||
$(BUILD_DIR)/$(TARGET).hex: $(BUILD_DIR)/$(TARGET).elf | $(BUILD_DIR)
|
||||
$(HEX) $< $@
|
||||
@$(HEX) $< $@
|
||||
|
||||
# 生成BIN文件
|
||||
$(BUILD_DIR)/$(TARGET).bin: $(BUILD_DIR)/$(TARGET).elf | $(BUILD_DIR)
|
||||
$(BIN) $< $@
|
||||
|
||||
#######################################
|
||||
# 对象文件列表
|
||||
#######################################
|
||||
OBJECTS = $(addprefix $(BUILD_DIR)/,$(notdir $(C_SOURCES:.c=.o)))
|
||||
vpath %.c $(sort $(dir $(C_SOURCES)))
|
||||
OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASM_SOURCES:.s=.o)))
|
||||
vpath %.s $(sort $(dir $(ASM_SOURCES)))
|
||||
@$(BIN) $< $@
|
||||
|
||||
#######################################
|
||||
# 清理
|
||||
|
||||
Reference in New Issue
Block a user