vap/build.rs

30 lines
905 B
Rust
Raw Normal View History

fn main() {
let arch = std::env::var("VAP_ARCH").unwrap(); // set by Makefile
println!("cargo:rerun-if-changed=assembly/{}", arch);
let mut cc_build = cc::Build::new();
let cc_build = cc_build
2023-03-13 15:31:06 -07:00
.file(format!("assembly/{}/get_real.S", arch))
.file(format!("assembly/{}/pls_stabilise_inline_ppc_asm.S", arch))
.file(format!("assembly/{}/exception.S", arch));
match &arch[..] {
"ppc32" => {
cc_build
.flag("-mcpu=powerpc")
.flag("-m32")
.flag("-nostdlib")
.flag("-msoft-float");
},
_ => panic!("unknown architecture: {}", arch),
}
cc_build.compile("vap_asm");
// link to the assembly file
2023-03-13 15:31:06 -07:00
println!("cargo:rustc-link-lib=static=vap_asm");
// specify the linker.ld script
2023-03-13 15:31:06 -07:00
println!("cargo:rustc-link-arg=-Tassembly/{}/linker.ld", arch);
}