fix Makefile
This commit is contained in:
43
Makefile
43
Makefile
@@ -141,6 +141,17 @@ TARGET = demo
|
|||||||
# 链接脚本
|
# 链接脚本
|
||||||
LDSCRIPT = STM32F429IGTX_FLASH.ld
|
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):
|
$(BUILD_DIR):
|
||||||
mkdir -p $@
|
@mkdir -p $@
|
||||||
|
|
||||||
# C源文件编译
|
# C源文件编译(匹配完整路径)
|
||||||
$(BUILD_DIR)/%.o: %.c Makefile | $(BUILD_DIR)
|
$(BUILD_DIR)/%.o: %.c Makefile
|
||||||
@echo "编译: $<"
|
@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 "汇编: $<"
|
@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
|
$(BUILD_DIR)/$(TARGET).elf: $(OBJECTS) Makefile
|
||||||
@echo "链接: $@"
|
@echo "链接: $@"
|
||||||
$(CC) $(OBJECTS) $(LDFLAGS) -o $@
|
@$(CC) $(OBJECTS) $(LDFLAGS) -o $@
|
||||||
@echo "输出大小:"
|
@echo "输出大小:"
|
||||||
$(SZ) $@
|
@$(SZ) $@
|
||||||
|
|
||||||
# 生成HEX文件
|
# 生成HEX文件
|
||||||
$(BUILD_DIR)/$(TARGET).hex: $(BUILD_DIR)/$(TARGET).elf | $(BUILD_DIR)
|
$(BUILD_DIR)/$(TARGET).hex: $(BUILD_DIR)/$(TARGET).elf | $(BUILD_DIR)
|
||||||
$(HEX) $< $@
|
@$(HEX) $< $@
|
||||||
|
|
||||||
# 生成BIN文件
|
# 生成BIN文件
|
||||||
$(BUILD_DIR)/$(TARGET).bin: $(BUILD_DIR)/$(TARGET).elf | $(BUILD_DIR)
|
$(BUILD_DIR)/$(TARGET).bin: $(BUILD_DIR)/$(TARGET).elf | $(BUILD_DIR)
|
||||||
$(BIN) $< $@
|
@$(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)))
|
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
# 清理
|
# 清理
|
||||||
|
|||||||
Reference in New Issue
Block a user