mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-04-13 05:07:35 +00:00
Enable parallel building of gcc, glibc, gmp, mpfr, ncurses, coreutils, perl, python, git, and qt4.
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. svn path=/nixpkgs/trunk/; revision=23042
This commit is contained in:
parent
089ee5da11
commit
1a6039cb45
@ -74,7 +74,7 @@ stdenv.mkDerivation rec {
|
||||
'')
|
||||
|
||||
+ ''# Install man pages and Info manual
|
||||
make PERL_PATH="${perl}/bin/perl" cmd-list.made install install-info \
|
||||
make -j $NIX_BUILD_CORES -l $NIX_BUILD_CORES PERL_PATH="${perl}/bin/perl" cmd-list.made install install-info \
|
||||
-C Documentation ''
|
||||
|
||||
+ (if guiSupport then ''
|
||||
@ -116,6 +116,8 @@ stdenv.mkDerivation rec {
|
||||
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = {
|
||||
license = "GPLv2";
|
||||
homepage = http://git-scm.com/;
|
||||
|
@ -127,6 +127,8 @@ stdenv.mkDerivation ({
|
||||
passthru = { inherit langC langCC langFortran langVhdl langTreelang
|
||||
enableMultilib; };
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = {
|
||||
homepage = "http://gcc.gnu.org/";
|
||||
license = "GPL/LGPL";
|
||||
|
@ -201,6 +201,8 @@ stdenv.mkDerivation ({
|
||||
passthru = { inherit langC langCC langAda langFortran langTreelang langVhdl
|
||||
enableMultilib version; };
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = {
|
||||
homepage = http://gcc.gnu.org/;
|
||||
license = "GPLv3+"; # runtime support libraries are typically LGPLv3+
|
||||
|
@ -289,6 +289,8 @@ stdenv.mkDerivation ({
|
||||
passthru = { inherit langC langCC langAda langFortran langTreelang langVhdl
|
||||
enableMultilib version; };
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = {
|
||||
homepage = http://gcc.gnu.org/;
|
||||
license = "GPLv3+"; # runtime support libraries are typically LGPLv3+
|
||||
|
@ -21,6 +21,8 @@ stdenv.mkDerivation ({
|
||||
sha256 = "a7d8041e50e110f5a503e188a05cb217f0c99c51f248a0a1387cc07a0b6f167f";
|
||||
}) ;
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
sourceRoot = "gcc_42-5574/";
|
||||
patches =
|
||||
[./pass-cxxcpp.patch ./debug_list.patch]
|
||||
|
@ -21,6 +21,8 @@ stdenv.mkDerivation ({
|
||||
sha256 = "1fy6j41rhxdsm19sib9wygjl5l54g8pm13c6y5x13f40mavw1mma";
|
||||
}) ;
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
libstdcxx = "libstdcxx-39";
|
||||
sourceRoot = "gcc-5646/";
|
||||
patches =
|
||||
|
@ -39,6 +39,8 @@ stdenv.mkDerivation rec {
|
||||
|
||||
dontAddPrefix = true;
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
preConfigure =
|
||||
''
|
||||
configureFlags="$configureFlags -Dprefix=$out -Dman1dir=$out/share/man/man1 -Dman3dir=$out/share/man/man3"
|
||||
|
@ -88,6 +88,8 @@ stdenv.mkDerivation ( {
|
||||
libPrefix = "python${majorVersion}";
|
||||
};
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = {
|
||||
platforms = stdenv.lib.platforms.all;
|
||||
};
|
||||
|
@ -17,7 +17,7 @@ postConfigure() {
|
||||
|
||||
postInstall() {
|
||||
if test -n "$installLocales"; then
|
||||
make localedata/install-locales
|
||||
make -j${NIX_BUILD_CORES:-1} -l${NIX_BUILD_CORES:-1} localedata/install-locales
|
||||
fi
|
||||
|
||||
test -f $out/etc/ld.so.cache && rm $out/etc/ld.so.cache
|
||||
|
@ -20,7 +20,7 @@ postConfigure() {
|
||||
|
||||
postInstall() {
|
||||
if test -n "$installLocales"; then
|
||||
make localedata/install-locales
|
||||
make -j${NIX_BUILD_CORES:-1} -l${NIX_BUILD_CORES:-1} localedata/install-locales
|
||||
fi
|
||||
|
||||
test -f $out/etc/ld.so.cache && rm $out/etc/ld.so.cache
|
||||
|
@ -30,6 +30,8 @@ stdenv.mkDerivation ({
|
||||
|
||||
inherit (stdenv) is64bit;
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
patches =
|
||||
stdenv.lib.optional (fetchgit == null)
|
||||
/* Fix for NIXPKGS-79: when doing host name lookups, when
|
||||
|
@ -38,7 +38,7 @@ postConfigure() {
|
||||
|
||||
postInstall() {
|
||||
if test -n "$installLocales"; then
|
||||
make localedata/install-locales
|
||||
make -j${NIX_BUILD_CORES:-1} -l${NIX_BUILD_CORES:-1} localedata/install-locales
|
||||
fi
|
||||
rm $out/etc/ld.so.cache
|
||||
(cd $out/include && ln -s $kernelHeaders/include/* .) || exit 1
|
||||
|
@ -30,6 +30,8 @@ stdenv.mkDerivation {
|
||||
# the symbol __i686.get_pc_thunk.dx to be mangled.
|
||||
NIX_CFLAGS_COMPILE = "-U__i686";
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = {
|
||||
homepage = http://www.gnu.org/software/libc/;
|
||||
description = "The GNU C Library";
|
||||
|
@ -16,6 +16,8 @@ stdenv.mkDerivation rec {
|
||||
|
||||
doCheck = true;
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = {
|
||||
description = "A free library for arbitrary precision arithmetic, operating on signed integers, rational numbers, and floating point numbers";
|
||||
homepage = http://gmplib.org/;
|
||||
|
@ -16,6 +16,8 @@ stdenv.mkDerivation rec {
|
||||
|
||||
doCheck = true;
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = {
|
||||
description = "A free library for arbitrary precision arithmetic, operating on signed integers, rational numbers, and floating point numbers";
|
||||
homepage = http://gmplib.org/;
|
||||
|
@ -12,6 +12,8 @@ stdenv.mkDerivation rec {
|
||||
|
||||
doCheck = true;
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = {
|
||||
homepage = http://www.mpfr.org/;
|
||||
description = "GNU MPFR, a library for multiple-precision floating-point arithmetic";
|
||||
|
@ -14,7 +14,9 @@ stdenv.mkDerivation ( rec {
|
||||
'';
|
||||
|
||||
selfBuildNativeInput = true;
|
||||
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
preBuild = ''sed -e "s@\([[:space:]]\)sh @\1''${SHELL} @" -i */Makefile Makefile'';
|
||||
|
||||
# When building a wide-character (Unicode) build, create backward
|
||||
|
@ -74,6 +74,8 @@ stdenv.mkDerivation {
|
||||
${if keepDocumentation == false then "rm -rf $out/doc" else ""}
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = {
|
||||
homepage = http://www.qtsoftware.com/downloads/opensource/appdev/linux-x11-cpp;
|
||||
description = "A cross-platform application framework for C++";
|
||||
|
@ -89,6 +89,8 @@ stdenv.mkDerivation rec {
|
||||
|
||||
postInstall = if useDocs then "rm -rf $out/share/doc/${name}/{html,src}" else "";
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = {
|
||||
homepage = http://qt.nokia.com/products;
|
||||
description = "A cross-platform application framework for C++";
|
||||
|
@ -99,6 +99,8 @@ stdenv.mkDerivation rec {
|
||||
|
||||
postInstall = if useDocs then "rm -rf $out/share/doc/${name}/{html,src}" else "";
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = http://qt.nokia.com/products;
|
||||
description = "A cross-platform application framework for C++";
|
||||
|
@ -269,6 +269,23 @@ fi
|
||||
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 @@ buildPhase() {
|
||||
|
||||
echo "make flags: $makeFlags ${makeFlagsArray[@]} $buildFlags ${buildFlagsArray[@]}"
|
||||
make ${makefile:+-f $makefile} \
|
||||
${enableParallelBuilding:+-j${NIX_BUILD_CORES} -l${NIX_BUILD_CORES}} \
|
||||
$makeFlags "${makeFlagsArray[@]}" \
|
||||
$buildFlags "${buildFlagsArray[@]}"
|
||||
|
||||
@ -615,6 +633,7 @@ checkPhase() {
|
||||
|
||||
echo "check flags: $makeFlags ${makeFlagsArray[@]} $checkFlags ${checkFlagsArray[@]}"
|
||||
make ${makefile:+-f $makefile} \
|
||||
${enableParallelBuilding:+-j${NIX_BUILD_CORES} -l${NIX_BUILD_CORES}} \
|
||||
$makeFlags "${makeFlagsArray[@]}" \
|
||||
$checkFlags "${checkFlagsArray[@]}" ${checkTarget:-check}
|
||||
|
||||
|
@ -24,6 +24,8 @@ stdenv.mkDerivation (rec {
|
||||
# and {Open,Free}BSD.
|
||||
doCheck = (stdenv ? glibc) && (cross == null);
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = {
|
||||
homepage = http://www.gnu.org/software/coreutils/;
|
||||
description = "The basic file, shell and text manipulation utilities of the GNU operating system";
|
||||
|
Loading…
Reference in New Issue
Block a user