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

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");
}