build.rs 642 B

123456789101112131415161718192021222324
  1. extern crate cc;
  2. use std::env;
  3. fn main() {
  4. let crate_dir = env::var("CARGO_MANIFEST_DIR").expect("CARGO_MANIFEST_DIR not set");
  5. cc::Build::new()
  6. .flag("-nostdinc")
  7. .flag("-nostdlib")
  8. .flag("-I")
  9. .flag(&format!("{}/include", crate_dir))
  10. .flag("-fno-stack-protector")
  11. .flag("-Wno-expansion-to-defined")
  12. .file("src/c/dlmalloc.c")
  13. .file("src/c/fcntl.c")
  14. .file("src/c/stack_chk.c")
  15. .file("src/c/stdio.c")
  16. .file("src/c/stdlib.c")
  17. .file("src/c/unistd.c")
  18. .compile("relibc_c");
  19. println!("cargo:rustc-link-lib=static=relibc_c");
  20. }