179d05d7eSJeremy Soller extern crate cc; 279d05d7eSJeremy Soller 37f702720SjD91mZM2 use std::{env, fs}; 479d05d7eSJeremy Soller 579d05d7eSJeremy Soller fn main() { 6277b9abcSJeremy Soller let crate_dir = env::var("CARGO_MANIFEST_DIR").expect("CARGO_MANIFEST_DIR not set"); 7277b9abcSJeremy Soller 8277b9abcSJeremy Soller cc::Build::new() 9277b9abcSJeremy Soller .flag("-nostdinc") 10277b9abcSJeremy Soller .flag("-nostdlib") 117f702720SjD91mZM2 .include(&format!("{}/include", crate_dir)) 12277b9abcSJeremy Soller .flag("-fno-stack-protector") 13c911faccSJeremy Soller .flag("-Wno-expansion-to-defined") 14*b8c50c7cSjD91mZM2 .files( 15*b8c50c7cSjD91mZM2 fs::read_dir("src/c") 167f702720SjD91mZM2 .expect("src/c directory missing") 17*b8c50c7cSjD91mZM2 .map(|res| res.expect("read_dir error").path()), 18*b8c50c7cSjD91mZM2 ) 19277b9abcSJeremy Soller .compile("relibc_c"); 2079d05d7eSJeremy Soller 2179d05d7eSJeremy Soller println!("cargo:rustc-link-lib=static=relibc_c"); 2279d05d7eSJeremy Soller } 23