STAGE3_SRC = ./bootloader/Cargo.toml ./bootloader/Cargo.lock $(shell find ./bootloader/src -type f) STAGE3_LD = ./bootloader/linkers/x86-unknown-none.ld # Compile stage 3 bootloader $(BUILD_DIR)/stage3.lib.a: $(STAGE3_SRC) @mkdir -p $(BUILD_DIR) env RUSTFLAGS="-C soft-float" \ cargo rustc \ --manifest-path="./bootloader/Cargo.toml" \ -Z build-std=core,alloc \ -Z build-std-features=compiler-builtins-mem \ --target "./bootloader/targets/x86-unknown-none.json" \ --lib \ --release \ -- \ --emit link="$(CURDIR)/$@" # Link stage 3 bootloader $(BUILD_DIR)/stage3.elf: $(BUILD_DIR)/stage3.lib.a $(STAGE3_LD) ld \ -m elf_i386 \ --gc-sections \ -z max-page-size=0x1000 \ -T "$(STAGE3_LD)" \ -o "$@" \ "$<" objcopy --only-keep-debug "$@" "$@.sym" objcopy --strip-debug "$@"