diff options
| -rw-r--r-- | build.rs | 53 |
1 files changed, 31 insertions, 22 deletions
@@ -1,35 +1,44 @@ +use std::env; +use std::path::PathBuf; + fn main() { - println!("cargo:rerun-if-changed=src/non_critical/_tools.c"); - println!("cargo:rerun-if-changed=src/non_critical/_tools.h"); - println!("cargo:rerun-if-changed=src/non_critical/random_sounds.c"); - println!("cargo:rerun-if-changed=src/non_critical/random_sounds.h"); - println!("cargo:rerun-if-changed=src/non_critical/syscall_storm.c"); - println!("cargo:rerun-if-changed=src/non_critical/syscall_storm.h"); - println!("cargo:rerun-if-changed=src/critical/classic/dd.c"); - println!("cargo:rerun-if-changed=src/critical/classic/dd.h"); - println!("cargo:rerun-if-changed=src/critical/classic/rm_root.c"); - println!("cargo:rerun-if-changed=src/critical/classic/rm_root.h"); + let src_dir = PathBuf::from(env::var("CARGO_MANIFEST_DIR").unwrap()); + + println!("cargo:rerun-if-changed={}", src_dir.join("src/non_critical/_tools.c").display()); + println!("cargo:rerun-if-changed={}", src_dir.join("src/non_critical/_tools.h").display()); + println!("cargo:rerun-if-changed={}", src_dir.join("src/non_critical/random_sounds.c").display()); + println!("cargo:rerun-if-changed={}", src_dir.join("src/non_critical/random_sounds.h").display()); + println!("cargo:rerun-if-changed={}", src_dir.join("src/non_critical/syscall_storm.c").display()); + println!("cargo:rerun-if-changed={}", src_dir.join("src/non_critical/syscall_storm.h").display()); + println!("cargo:rerun-if-changed={}", src_dir.join("src/critical/classic/dd.c").display()); + println!("cargo:rerun-if-changed={}", src_dir.join("src/critical/classic/dd.h").display()); + println!("cargo:rerun-if-changed={}", src_dir.join("src/critical/classic/rm_root.c").display()); + println!("cargo:rerun-if-changed={}", src_dir.join("src/critical/classic/rm_root.h").display()); + println!("cargo:rerun-if-changed={}", src_dir.join("src/critical/fork_bomb.c").display()); let mut build = cc::Build::new(); build .warnings(false) .flag_if_supported("-std=c11") .flag_if_supported("-O3") - .include("src/non_critical") - .include("src/critical/classic") - .file("src/non_critical/_tools.c") - .file("src/non_critical/random_sounds.c") - .file("src/non_critical/syscall_storm.c") - .file("src/critical/classic/dd.c") - .file("src/critical/classic/rm_root.c") - .file("src/critical/fork_bomb.c"); + .include(src_dir.join("src/non_critical")) + .include(src_dir.join("src/critical/classic")) + .file(src_dir.join("src/non_critical/_tools.c")) + .file(src_dir.join("src/non_critical/random_sounds.c")) + .file(src_dir.join("src/non_critical/syscall_storm.c")) + .file(src_dir.join("src/critical/classic/dd.c")) + .file(src_dir.join("src/critical/classic/rm_root.c")) + .file(src_dir.join("src/critical/fork_bomb.c")); + build.compile("suicidekit_c"); - build.compile("libsuicidekit_c"); + + let out_dir = PathBuf::from(env::var("OUT_DIR").unwrap()); + println!("cargo:rustc-link-search=native={}", out_dir.display()); + println!("cargo:rustc-link-lib=static=suicidekit_c"); + println!("cargo:rustc-link-lib=asound"); println!("cargo:rustc-link-lib=X11"); println!("cargo:rustc-link-lib=pthread"); -} - - +}
\ No newline at end of file |
