rCore-Tutorial-v3/user/Makefile

30 lines
718 B
Makefile
Raw Normal View History

2020-11-18 14:29:53 +04:00
TARGET := riscv64gc-unknown-none-elf
MODE := release
2020-11-18 14:29:53 +04:00
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))
2020-11-18 14:29:53 +04:00
OBJDUMP := rust-objdump --arch-name=riscv64
OBJCOPY := rust-objcopy --binary-architecture=riscv64
2022-06-23 21:26:26 +04:00
CP := cp
TEST ?=
2020-11-18 14:29:53 +04:00
elf: $(APPS)
@cargo build --release
2022-06-23 21:26:26 +04:00
ifeq ($(TEST), 1)
@$(CP) $(TARGET_DIR)/usertests $(TARGET_DIR)/initproc
endif
2020-11-18 14:29:53 +04:00
binary: elf
2023-02-01 17:15:06 +04:00
@$(foreach elf, $(ELFS), $(OBJCOPY) $(elf) --strip-all -O binary $(patsubst $(TARGET_DIR)/%, $(TARGET_DIR)/%.bin, $(elf));)
2020-11-18 14:29:53 +04:00
build: binary
clean:
2020-11-29 00:01:38 +04:00
@cargo clean
2022-01-18 14:48:50 +04:00
.PHONY: elf binary build clean