You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
24 lines
639 B
Makefile
24 lines
639 B
Makefile
MODE := release
|
|
TARGET := riscv64gc-unknown-none-elf
|
|
OBJDUMP := rust-objdump --arch-name=riscv64
|
|
OBJCOPY := rust-objcopy --binary-architecture=riscv64
|
|
|
|
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文件
|
|
build_elf: clean
|
|
@python3 build.py
|
|
|
|
|
|
# 把每个elf文件去掉无关代码
|
|
build: build_elf
|
|
@$(foreach elf, $(ELFS), $(OBJCOPY) $(elf) --strip-all -O binary $(patsubst $(TARGET_DIR)/%, $(TARGET_DIR)/%.bin, $(elf));)
|
|
|
|
|
|
clean:
|
|
rm -rf ./target*
|