summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build.rs53
1 files changed, 31 insertions, 22 deletions
diff --git a/build.rs b/build.rs
index 0f56e17..ffb62eb 100644
--- a/build.rs
+++ b/build.rs
@@ -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