31 lines
974 B
Rust
31 lines
974 B
Rust
use std::{env, path::Path, process::Command};
|
|
|
|
fn main() {
|
|
let out_dir = env::var("OUT_DIR").unwrap();
|
|
Command::new("llvm-as")
|
|
.args(&["src/kernel_end.ll", "-o"])
|
|
.arg(&format!("{}/kernel_end.bc", out_dir))
|
|
.status()
|
|
.unwrap();
|
|
Command::new("llc")
|
|
.arg(&format!("{}/kernel_end.bc", out_dir))
|
|
.arg("-o")
|
|
.arg(&format!("{}/kernel_end.s", out_dir))
|
|
.status()
|
|
.unwrap();
|
|
Command::new("as")
|
|
.arg("-o")
|
|
.arg(&format!("{}/kernel_end.o", out_dir))
|
|
.arg(&format!("{}/kernel_end.s", out_dir))
|
|
.status()
|
|
.unwrap();
|
|
Command::new("ar")
|
|
.args(&["crus", "libkernel_end.a", "kernel_end.o"])
|
|
.current_dir(&Path::new(&out_dir))
|
|
.status()
|
|
.unwrap();
|
|
println!("cargo::rustc-link-search=native={}", out_dir);
|
|
println!("cargo::rustc-link-lib=static=kernel_end");
|
|
println!("cargo::rerun-if-changed=src/kernel_end.ll");
|
|
}
|