build crt0.s as part of build.rs

This commit is contained in:
Corwin Kuiper 2021-04-10 18:58:22 +01:00 committed by Corwin
parent 039666bc33
commit 06cd2a9f55

22
build.rs Normal file
View file

@ -0,0 +1,22 @@
fn main() {
println!("cargo:rerun-if-changed=crt0.s");
println!("cargo:rerun-if-changed=interrupt_simple.s");
let out_file_name = "crt0.o";
let out_dir = std::env::var("OUT_DIR").expect("OUT_DIR environment variable must be specified");
let out_file_path = format!("{}/{}", out_dir, &out_file_name);
let out = std::process::Command::new("arm-none-eabi-as")
.arg("-mthumb-interwork")
.arg("-mthumb")
.args(&["-o", out_file_path.as_str()])
.arg("crt0.s")
.output()
.expect("failed to compile crt0.s");
if !out.status.success() {
panic!("{}", String::from_utf8_lossy(&out.stderr));
}
println!("cargo:rustc-link-search={}", out_dir);
}