Skip to content
Snippets Groups Projects
Verified Commit c73e2ffe authored by Jacob Lorentzon's avatar Jacob Lorentzon
Browse files

Add Makefile.

This will both improve CI, and decouple the kernel build script from
cookbook.
parent 15c7e10d
No related branches found
No related tags found
No related merge requests found
Makefile 0 → 100644
export RUST_TARGET_PATH=targets
ifeq ($(TARGET),)
ARCH?=$(shell uname -a)
else
ARCH?=$(shell echo "$(TARGET)" | cut -d - -f1)
endif
BUILD?=target/$(ARCH)-unknown-kernel
all: $(BUILD)/kernel $(BUILD)/kernel.sym
LD_SCRIPT=linkers/$(ARCH).ld
TARGET_SPEC=targets/$(ARCH)-unknown-kernel.json
$(BUILD)/kernel.all: $(LD_SCRIPT) $(TARGET_SPEC) $(shell find . -name "*.rs" -type f)
cargo rustc \
--bin kernel \
--target "$(TARGET_SPEC)" \
--release \
-Z build-std=core,alloc \
-- \
-C link-arg=-T -Clink-arg="$(LD_SCRIPT)" \
-C link-arg=-z -Clink-arg=max-page-size=0x1000 \
--emit link="$(BUILD)/kernel.all"
$(BUILD)/kernel.sym: $(BUILD)/kernel.all
$(TARGET)-objcopy \
--only-keep-debug \
"$(BUILD)/kernel.all" \
"$(BUILD)/kernel.sym"
$(BUILD)/kernel: $(BUILD)/kernel.all
$(TARGET)-objcopy \
--strip-debug \
"$(BUILD)/kernel.all" \
"$(BUILD)/kernel"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment