2020-11-18 18:29:53 +08:00
|
|
|
TARGET := riscv64gc-unknown-none-elf
|
2020-12-02 09:40:00 +08:00
|
|
|
MODE := release
|
2020-11-18 18:29:53 +08:00
|
|
|
APP_DIR := src/bin
|
|
|
|
TARGET_DIR := target/$(TARGET)/$(MODE)
|
2020-11-19 04:33:06 +08:00
|
|
|
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 18:29:53 +08:00
|
|
|
|
|
|
|
OBJDUMP := rust-objdump --arch-name=riscv64
|
|
|
|
OBJCOPY := rust-objcopy --binary-architecture=riscv64
|
2022-05-13 18:19:17 +08:00
|
|
|
CP := cp
|
|
|
|
|
|
|
|
TEST ?=
|
2020-11-18 18:29:53 +08:00
|
|
|
|
2020-11-29 01:31:36 +08:00
|
|
|
elf: $(APPS)
|
2020-12-02 09:40:00 +08:00
|
|
|
@cargo build --release
|
2022-05-13 18:19:17 +08:00
|
|
|
ifeq ($(TEST), 1)
|
|
|
|
@$(CP) $(TARGET_DIR)/usertests $(TARGET_DIR)/initproc
|
|
|
|
endif
|
2020-11-18 18:29:53 +08:00
|
|
|
|
|
|
|
binary: elf
|
2023-02-01 21:17:43 +08:00
|
|
|
@$(foreach elf, $(ELFS), $(OBJCOPY) $(elf) --strip-all -O binary $(patsubst $(TARGET_DIR)/%, $(TARGET_DIR)/%.bin, $(elf));)
|
2020-11-18 18:29:53 +08:00
|
|
|
|
|
|
|
build: binary
|
2020-11-28 16:22:29 +08:00
|
|
|
|
|
|
|
clean:
|
2020-11-29 04:01:38 +08:00
|
|
|
@cargo clean
|
|
|
|
|
2021-02-24 03:42:45 +08:00
|
|
|
.PHONY: elf binary build clean
|