# Nuke built-in rules and variables. MAKEFLAGS += -rR .SUFFIXES: include ../config.mk ifeq ($(RUST_TARGET),) override RUST_TARGET := $(KARCH)-unknown-none ifeq ($(KARCH),riscv64) override RUST_TARGET := riscv64gc-unknown-none-elf endif endif ifeq ($(RUST_PROFILE),) override RUST_PROFILE := release endif override RUST_PROFILE_SUBDIR := $(RUST_PROFILE) ifeq ($(RUST_PROFILE),dev) override RUST_PROFILE_SUBDIR := debug endif # Default target. .PHONY: all all: RUSTFLAGS="-C relocation-model=static" cargo build --target $(RUST_TARGET) --profile $(RUST_PROFILE) --config profile.release.debug=true cp target/$(RUST_TARGET)/$(RUST_PROFILE_SUBDIR)/$$(cd target/$(RUST_TARGET)/$(RUST_PROFILE_SUBDIR) && find -maxdepth 1 -perm -111 -type f) kernel # Remove object files and the final executable. .PHONY: clean clean: cargo clean rm -rf kernel .PHONY: distclean distclean: clean