diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2006-08-10T20·19+0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2006-08-10T20·19+0000 |
commit | d19b6521fc5f28f821562f2f93cf9c772a5d4582 (patch) | |
tree | fb1a6ae1e0d0273d36477ca21f9b20089927867a | |
parent | 3e239a37ff6f19f2072f70881f8bce748d447c68 (diff) |
* New configuration setting `build-max-jobs' which sets the default
for the `-j' flag (i.e., the maximum number of jobs to execute in parallel). Useful on multi-processor machines.
-rw-r--r-- | nix.conf.example | 10 | ||||
-rw-r--r-- | src/libmain/shared.cc | 7 |
2 files changed, 17 insertions, 0 deletions
diff --git a/nix.conf.example b/nix.conf.example index 13b4cfa3d99b..47973ce4e743 100644 --- a/nix.conf.example +++ b/nix.conf.example @@ -68,6 +68,16 @@ #env-keep-derivations = false +### Option `build-max-jobs' +# +# This option defines the maximum number of jobs that Nix will try to +# build in parallel. The default is 1. You should generally set it +# to the number of CPUs in your system (e.g., 2 on a Athlon 64 X2). +# It can be overriden using the `--max-jobs' / `-j' command line +# switch. +#build-max-jobs = 1 + + ### Option `build-allow-root' # # This option controls Nix's behaviour when it is invoked under the diff --git a/src/libmain/shared.cc b/src/libmain/shared.cc index d176db7a7855..2441cbf0139d 100644 --- a/src/libmain/shared.cc +++ b/src/libmain/shared.cc @@ -94,7 +94,14 @@ static void initAndRun(int argc, char * * argv) nixConfDir = canonPath(getEnv("NIX_CONF_DIR", NIX_CONF_DIR)); nixLibexecDir = canonPath(getEnv("NIX_LIBEXEC_DIR", NIX_LIBEXEC_DIR)); + /* Get some settings from the configuration file. */ thisSystem = querySetting("system", SYSTEM); + { + int n; + if (!string2Int(querySetting("build-max-jobs", "1"), n) || n < 0) + throw Error("invalid value for configuration setting `build-max-jobs'"); + maxBuildJobs = n; + } /* Catch SIGINT. */ struct sigaction act, oact; |