You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
2.5 KiB
Rust
54 lines
2.5 KiB
Rust
use std::process::Command;
|
|
use std::env;
|
|
use std::path::Path;
|
|
|
|
fn main() {
|
|
let out_dir = env::var("OUT_DIR").unwrap();
|
|
|
|
Command::new("gcc").args(&["src/motor1.c", "-c", "-fPIC", "-o"])
|
|
.arg(&format!("{}/motor1.o", out_dir))
|
|
.status().unwrap();
|
|
Command::new("ar").args(&["crus", "libmotor1.a", "motor1.o"])
|
|
.current_dir(&Path::new(&out_dir))
|
|
.status().unwrap();
|
|
Command::new("gcc").args(&["src/motor2.c", "-c", "-fPIC", "-o"])
|
|
.arg(&format!("{}/motor2.o", out_dir))
|
|
.status().unwrap();
|
|
Command::new("ar").args(&["crus", "libmotor2.a", "motor2.o"])
|
|
.current_dir(&Path::new(&out_dir))
|
|
.status().unwrap();
|
|
Command::new("gcc").args(&["src/motor3.c", "-c", "-fPIC", "-o"])
|
|
.arg(&format!("{}/motor3.o", out_dir))
|
|
.status().unwrap();
|
|
Command::new("ar").args(&["crus", "libmotor3.a", "motor3.o"])
|
|
.current_dir(&Path::new(&out_dir))
|
|
.status().unwrap();
|
|
|
|
Command::new("gcc").args(&["src/elevator1.c", "-c", "-fPIC", "-o"])
|
|
.arg(&format!("{}/elevator1.o", out_dir))
|
|
.status().unwrap();
|
|
Command::new("ar").args(&["crus", "libelevator1.a", "elevator1.o"])
|
|
.current_dir(&Path::new(&out_dir))
|
|
.status().unwrap();
|
|
Command::new("gcc").args(&["src/elevator2.c", "-c", "-fPIC", "-o"])
|
|
.arg(&format!("{}/elevator2.o", out_dir))
|
|
.status().unwrap();
|
|
Command::new("ar").args(&["crus", "libelevator2.a", "elevator2.o"])
|
|
.current_dir(&Path::new(&out_dir))
|
|
.status().unwrap();
|
|
Command::new("gcc").args(&["src/elevator3.c", "-c", "-fPIC", "-o"])
|
|
.arg(&format!("{}/elevator3.o", out_dir))
|
|
.status().unwrap();
|
|
Command::new("ar").args(&["crus", "libelevator3.a", "elevator3.o"])
|
|
.current_dir(&Path::new(&out_dir))
|
|
.status().unwrap();
|
|
|
|
println!("cargo:rustc-link-search=native={}", out_dir);
|
|
println!("cargo:rustc-link-lib=static=motor1");
|
|
println!("cargo:rustc-link-lib=static=motor2");
|
|
println!("cargo:rustc-link-lib=static=motor3");
|
|
println!("cargo:rustc-link-lib=static=elevator1");
|
|
println!("cargo:rustc-link-lib=static=elevator2");
|
|
println!("cargo:rustc-link-lib=static=elevator3");
|
|
}
|