From b61cb052ec6ccbf753c64a63dfd77818d813f8b4 Mon Sep 17 00:00:00 2001 From: Mark Poliakov Date: Fri, 22 Oct 2021 13:42:55 +0300 Subject: [PATCH] feat: rerun build if linker script changes --- Makefile | 2 +- kernel/build.rs | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 kernel/build.rs diff --git a/Makefile b/Makefile index d90e752..4c58fcd 100644 --- a/Makefile +++ b/Makefile @@ -66,7 +66,7 @@ endif all: kernel initrd kernel: - cd kernel && cargo build $(CARGO_BUILD_OPTS) + cd kernel && ARCH=$(ARCH) MACH=$(MACH) cargo build $(CARGO_BUILD_OPTS) ifeq ($(ARCH),aarch64) $(LLVM_BASE)/llvm-strip -o $(O)/kernel.strip $(O)/kernel $(LLVM_BASE)/llvm-size $(O)/kernel.strip diff --git a/kernel/build.rs b/kernel/build.rs new file mode 100644 index 0000000..6769fdd --- /dev/null +++ b/kernel/build.rs @@ -0,0 +1,12 @@ +use std::env; + +fn main() -> Result<(), i32> { + let arch = env::var("ARCH").expect("$ARCH is not set"); + let mach = if arch == "aarch64" { + env::var("MACH").expect("$MACH is not set") + } else { + "none".to_owned() + }; + println!("cargo:rerun-if-changed=../etc/{}-{}.ld", arch, mach); + Ok(()) +}