完善用户程序Makefile, 现在可以build出来二进制文件
parent
4b017882af
commit
d8d5955b60
@ -1,16 +1,28 @@
|
|||||||
MODE := release
|
MODE := release
|
||||||
TARGET := riscv64gc-unknown-none-elf
|
TARGET := riscv64gc-unknown-none-elf
|
||||||
|
OBJDUMP := rust-objdump --arch-name=riscv64
|
||||||
|
OBJCOPY := rust-objcopy --binary-architecture=riscv64
|
||||||
|
|
||||||
RUST_FLAGS := -Clink-arg=-Tsrc/linker.ld # 使用我们自己的链接脚本
|
RUST_FLAGS := -Clink-arg=-Tsrc/linker.ld # 使用我们自己的链接脚本
|
||||||
RUST_FLAGS += -Cforce-frame-pointers=yes # 强制编译器生成帧指针
|
RUST_FLAGS += -Cforce-frame-pointers=yes # 强制编译器生成帧指针
|
||||||
RUST_FLAGS:=$(strip ${RUST_FLAGS})
|
RUST_FLAGS:=$(strip ${RUST_FLAGS})
|
||||||
|
|
||||||
|
APP_DIR := src/bin
|
||||||
|
TARGET_DIR := target/$(TARGET)/$(MODE)
|
||||||
|
APPS := $(wildcard $(APP_DIR)/*.rs)
|
||||||
|
ELFS := $(patsubst $(APP_DIR)/%.rs, $(TARGET_DIR)/%, $(APPS))
|
||||||
|
BINS := $(patsubst $(APP_DIR)/%.rs, $(TARGET_DIR)/%.bin, $(APPS))
|
||||||
|
|
||||||
|
|
||||||
# 编译elf文件
|
# 编译elf文件
|
||||||
build_elf: clean
|
build_elf: clean
|
||||||
CARGO_BUILD_RUSTFLAGS="$(RUST_FLAGS)" \
|
CARGO_BUILD_RUSTFLAGS="$(RUST_FLAGS)" \
|
||||||
cargo build --$(MODE) --target=$(TARGET)
|
cargo build --$(MODE) --target=$(TARGET)
|
||||||
|
|
||||||
|
|
||||||
|
build: build_elf
|
||||||
|
@$(foreach elf, $(ELFS), $(OBJCOPY) $(elf) --strip-all -O binary $(patsubst $(TARGET_DIR)/%, $(TARGET_DIR)/%.bin, $(elf));)
|
||||||
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf ./target*
|
rm -rf ./target*
|
Loading…
Reference in New Issue