1 extern crate cc; 2 3 use std::{env, fs}; 4 5 fn main() { 6 let crate_dir = env::var("CARGO_MANIFEST_DIR").expect("CARGO_MANIFEST_DIR not set"); 7 8 cc::Build::new() 9 .flag("-nostdinc") 10 .flag("-nostdlib") 11 .include(&format!("{}/include", crate_dir)) 12 .flag("-fno-stack-protector") 13 .flag("-Wno-expansion-to-defined") 14 .files( 15 fs::read_dir("src/c") 16 .expect("src/c directory missing") 17 .map(|res| res.expect("read_dir error").path()), 18 ) 19 .compile("relibc_c"); 20 21 println!("cargo:rustc-link-lib=static=relibc_c"); 22 } 23