30 lines
No EOL
905 B
Rust
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);
|
|
} |