vap/build.rs

30 lines
No EOL
905 B
Rust

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
.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
println!("cargo:rustc-link-lib=static=vap_asm");
// specify the linker.ld script
println!("cargo:rustc-link-arg=-Tassembly/{}/linker.ld", arch);
}