Something went wrong. Try again.
A successor to xv0, a from scratch rust OS
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445# Nuke built-in rules and variables.MAKEFLAGS += -rR.SUFFIXES:
# This is the name that our final executable will have.# Change as needed.override OUTPUT := kernel
# Convenience macro to reliably declare user overridable variables.override USER_VARIABLE = $(if $(filter $(origin $(1)),default undefined),$(eval override $(1) := $(2)))
# Target architecture to build for. Default to x86_64.$(call USER_VARIABLE,KARCH,x86_64)
ifeq ($(RUST_TARGET),) override RUST_TARGET := $(KARCH)-unknown-none ifeq ($(KARCH),riscv64) override RUST_TARGET := riscv64gc-unknown-none-elf endifendif
ifeq ($(RUST_PROFILE),) override RUST_PROFILE := devendif
override RUST_PROFILE_SUBDIR := $(RUST_PROFILE)ifeq ($(RUST_PROFILE),dev) override RUST_PROFILE_SUBDIR := debugendif
# Default target..PHONY: allall: RUSTFLAGS="-C relocation-model=static" cargo build --target $(RUST_TARGET) --profile $(RUST_PROFILE) cp target/$(RUST_TARGET)/$(RUST_PROFILE_SUBDIR)/xv1-kernel kernel
# Remove object files and the final executable..PHONY: cleanclean: cargo clean rm -rf kernel
.PHONY: distcleandistclean: clean