Author: simons
Date: 2010-06-23 14:34:59 +0000 (Wed, 23 Jun 2010)
New Revision: 22399

You can view the changes in this commit at:
   https://svn.nixos.org/viewvc/nix?rev=22399&view=rev

Modified:
   nixpkgs/branches/stdenv-updates/pkgs/stdenv/generic/setup.sh

Log:
pkgs/stdenv/generic/setup.sh: added support for enableParallelBuilding variable

If a build expressions has set "enableParallelBuilding = true", then the
generic builder may utilize more than one CPU core to build that particular
expression. This feature works out of the box for GNU Make. Expressions that
use other build drivers like Boost.Jam or SCons have to specify appropriate
flags such as "-j${NIX_BUILD_CORES}" themselves.

Changes:

Modified: nixpkgs/branches/stdenv-updates/pkgs/stdenv/generic/setup.sh
===================================================================
--- nixpkgs/branches/stdenv-updates/pkgs/stdenv/generic/setup.sh        
2010-06-23 14:34:47 UTC (rev 22398)
+++ nixpkgs/branches/stdenv-updates/pkgs/stdenv/generic/setup.sh        
2010-06-23 14:34:59 UTC (rev 22399)
@@ -269,6 +269,23 @@
 export NIX_INDENT_MAKE=1
 
 
+# Normalize the NIX_BUILD_CORES variable. The value might be 0, which
+# means that we're supposed to try and auto-detect the number of
+# available CPU cores at run-time.
+
+if test -z "${NIX_BUILD_CORES:-}"; then
+  NIX_BUILD_CORES="1"
+elif test "$NIX_BUILD_CORES" -le 0; then
+  NIX_BUILD_CORES=$(nproc 2>/dev/null || true)
+  if expr >/dev/null 2>&1 "$NIX_BUILD_CORES" : "^[0-9][0-9]*$"; then
+    :
+  else
+    NIX_BUILD_CORES="1"
+  fi
+fi
+export NIX_BUILD_CORES
+
+
 ######################################################################
 # Misc. helper functions.
 
@@ -603,6 +620,7 @@
 
     echo "make flags: $makeFlags ${makeflagsarr...@]} $buildFlags 
${buildflagsarr...@]}"
     make ${makefile:+-f $makefile} \
+        ${enableParallelBuilding:+-j${NIX_BUILD_CORES} -l${NIX_BUILD_CORES}} \
         $makeFlags "${makeflagsarr...@]}" \
         $buildFlags "${buildflagsarr...@]}"
 
@@ -615,6 +633,7 @@
 
     echo "check flags: $makeFlags ${makeflagsarr...@]} $checkFlags 
${checkflagsarr...@]}"
     make ${makefile:+-f $makefile} \
+        ${enableParallelBuilding:+-j${NIX_BUILD_CORES} -l${NIX_BUILD_CORES}} \
         $makeFlags "${makeflagsarr...@]}" \
         $checkFlags "${checkflagsarr...@]}" ${checkTarget:-check}
 

_______________________________________________
nix-commits mailing list
[email protected]
http://mail.cs.uu.nl/mailman/listinfo/nix-commits

Reply via email to