rcore-tutorial/user/Makefile

40 lines
1.1 KiB
Makefile
Raw Normal View History

2020-11-18 18:29:53 +08:00
TARGET := riscv64gc-unknown-none-elf
2020-11-30 10:29:17 +08:00
MODE := release
2020-11-18 18:29:53 +08:00
APP_DIR := src/bin
TARGET_DIR := target/$(TARGET)/$(MODE)
BUILD_DIR := build
2020-11-18 18:29:53 +08:00
OBJDUMP := rust-objdump --arch-name=riscv64
OBJCOPY := rust-objcopy --binary-architecture=riscv64
PY := python3
TEST ?= 0
ifeq ($(TEST), 0)
APPS := $(filter-out $(wildcard $(APP_DIR)/test*.rs), $(wildcard $(APP_DIR)/*.rs))
else
APPS := $(wildcard $(APP_DIR)/test$(TEST)*.rs)
endif
ELFS := $(patsubst $(APP_DIR)/%.rs, $(TARGET_DIR)/%, $(APPS))
2020-11-18 18:29:53 +08:00
elf: $(APPS)
@python3 build.py
2020-11-18 18:29:53 +08:00
binary: elf
@$(foreach elf, $(ELFS), \
$(OBJCOPY) $(elf) --strip-all -O binary $(patsubst $(TARGET_DIR)/%, $(TARGET_DIR)/%.bin, $(elf)); \
cp $(elf) $(patsubst $(TARGET_DIR)/%, $(TARGET_DIR)/%.elf, $(elf));)
2020-11-18 18:29:53 +08:00
pre:
@mkdir -p $(BUILD_DIR)/bin/
@mkdir -p $(BUILD_DIR)/elf/
@mkdir -p $(BUILD_DIR)/app/
@$(foreach t, $(APPS), cp $(t) $(BUILD_DIR)/app/;)
build: clean pre binary
@$(foreach t, $(ELFS), cp $(t).bin $(BUILD_DIR)/bin/;)
@$(foreach t, $(ELFS), cp $(t).elf $(BUILD_DIR)/elf/;)
clean:
2020-11-29 04:01:38 +08:00
@cargo clean
@rm -rf $(BUILD_DIR)
2020-11-29 04:01:38 +08:00
.PHONY: elf binary build clean