Skip to content

Commit f7425b2

Browse files
committed
fix(jemalloc-sys): prioritize MAKEFLAGS over -jN
Fixes #92
1 parent 5c5a9f7 commit f7425b2

File tree

1 file changed

+21
-11
lines changed

1 file changed

+21
-11
lines changed

jemalloc-sys/build.rs

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,14 @@ where
3333
F: Fn(&str) -> Option<T>,
3434
{
3535
let prefix = env::var("TARGET").unwrap().to_uppercase().replace('-', "_");
36-
let prefixed_name = format!("{}_{}", prefix, name);
36+
let prefixed_name = format!("{prefix}_{name}");
3737

38-
println!("cargo:rerun-if-env-changed={}", prefixed_name);
38+
println!("cargo:rerun-if-env-changed={prefixed_name}");
3939
if let Some(value) = env_getter(&prefixed_name) {
4040
return Some(value);
4141
}
4242

43-
println!("cargo:rerun-if-env-changed={}", name);
43+
println!("cargo:rerun-if-env-changed={name}");
4444
env_getter(name)
4545
}
4646

@@ -360,19 +360,29 @@ fn main() {
360360
}
361361
}
362362

363+
/// Trimmed env `var`, otherwise empty string
364+
fn env_var(var: &str) -> String {
365+
env::var(var)
366+
.ok()
367+
.map_or_else(String::new, |s| s.trim().to_owned())
368+
}
369+
370+
/// Concatenate or use `CARGO_MAKEFLAGS` as `MAKEFLAGS`, otherwise use -jN `num_jobs`
363371
fn make_command(make_cmd: &str, build_dir: &Path, num_jobs: &str) -> Command {
364372
let mut cmd = Command::new(make_cmd);
365373
cmd.current_dir(build_dir);
366374

367-
if let Ok(makeflags) = std::env::var("CARGO_MAKEFLAGS") {
368-
let makeflags = if let Ok(orig_makeflags) = std::env::var("MAKEFLAGS") {
369-
format!("{orig_makeflags} {makeflags}")
370-
} else {
371-
makeflags
372-
};
373-
cmd.env("MAKEFLAGS", makeflags);
374-
} else {
375+
let mf = env_var("MAKEFLAGS");
376+
let cmf = env_var("CARGO_MAKEFLAGS");
377+
if !cmf.is_empty() {
378+
info!("MAKEFLAGS={mf}");
379+
info!("CARGO_MAKEFLAGS={cmf}");
380+
cmd.env("MAKEFLAGS", format!("{mf} {cmf}")); // Concatenate both
381+
} else if mf.is_empty() {
382+
info!("MAKEFLAGS are empty, using -j={num_jobs} jobs");
375383
cmd.arg("-j").arg(num_jobs);
384+
} else {
385+
info!("MAKEFLAGS={mf}"); // Use MAKEFLAGS unchanged
376386
}
377387
cmd
378388
}

0 commit comments

Comments
 (0)