29 lines
854 B
Rust
29 lines
854 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/{}/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);
|
||
|
}
|