commit 60ba86636df928e97e265417b2c19bea4e85ea3a Author: Nicolas Vigier boklm@torproject.org Date: Wed Aug 2 18:23:10 2017 +0200
Bug 23075: add an option to select the number of cores used --- README | 12 ++++++++++++ projects/binutils/build | 2 +- projects/cmake/build | 2 +- projects/elfutils/build | 2 +- projects/firefox/build | 2 +- projects/gcc/build | 2 +- projects/gmp/build | 2 +- projects/libdmg-hfsplus/build | 2 +- projects/libevent/build | 2 +- projects/llvm/build | 2 +- projects/mingw-w64/build | 8 ++++---- projects/tor/build | 2 +- projects/yasm/build | 2 +- rbm.conf | 8 +++++++- rbm.local.conf.example | 8 ++++++++ 15 files changed, 42 insertions(+), 16 deletions(-)
diff --git a/README b/README index 22fb90b..e5fc45d 100644 --- a/README +++ b/README @@ -91,6 +91,18 @@ components included in Tor Browser. You should run this if you want to make a nightly build with the latest commits.
+Number of make processes +------------------------ + +By default the builds are run with 4 processes simultaneously (with +make -j4). If you want to change the number of processes used, you can +set the RBM_NB_PROCS environment variable: + + $ export RBM_NB_PROCS=8 + +You can also set the buildconf/nb_procs option in rbm.local.conf. + + Automated builds ----------------
diff --git a/projects/binutils/build b/projects/binutils/build index b72c41c..cdfd045 100644 --- a/projects/binutils/build +++ b/projects/binutils/build @@ -32,7 +32,7 @@ cd [% project %]-[% c("version") %] patch -p1 < $rootdir/binutils-224-gold.patch [% END -%] ./configure --prefix=$distdir [% c('var/configure_opt') %] -make -j4 +make -j[% c("buildconf/nb_procs") %] make install
[% IF c("var/linux") %] diff --git a/projects/cmake/build b/projects/cmake/build index dd5017a..4a58896 100644 --- a/projects/cmake/build +++ b/projects/cmake/build @@ -5,7 +5,7 @@ mkdir -p /var/tmp/build tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.gz cd /var/tmp/build/[% project %]-[% c('version') %] ./bootstrap --prefix=$distdir -make -j4 +make -j[% c("buildconf/nb_procs") %] make install cd /var/tmp/dist [% c('tar', { diff --git a/projects/elfutils/build b/projects/elfutils/build index 8fdd013..57adf83 100644 --- a/projects/elfutils/build +++ b/projects/elfutils/build @@ -13,7 +13,7 @@ tar -C /var/tmp/build -xf $rootdir/[% c('input_files_by_name/elfutils') %]
cd /var/tmp/build/[% project %]-[% c("version") %] ./configure --prefix="$distdir" -make -j4 +make -j[% c("buildconf/nb_procs") %] make install
cd /var/tmp/dist diff --git a/projects/firefox/build b/projects/firefox/build index c35d629..439369e 100644 --- a/projects/firefox/build +++ b/projects/firefox/build @@ -90,7 +90,7 @@ rm -f configure rm -f js/src/configure make -f client.mk configure CONFIGURE_ARGS="--with-tor-browser-version=[% c("var/torbrowser_version") %] --with-distribution-id=org.torproject --enable-update-channel=[% c("var/torbrowser_update_channel") %] --enable-bundled-fonts"
-make -j8 -f client.mk build +make -j[% c("buildconf/nb_procs") %] -f client.mk build make -C obj-* package INNER_MAKE_PACKAGE=true
[% IF c("var/osx") %] diff --git a/projects/gcc/build b/projects/gcc/build index e2902ad..c7e3ea8 100644 --- a/projects/gcc/build +++ b/projects/gcc/build @@ -17,7 +17,7 @@ mkdir /var/tmp/build tar -C /var/tmp/build -xf [% project %]-[% c("version") %].tar.bz2 cd /var/tmp/build/[% project %]-[% c("version") %] ./configure --prefix=$distdir [% c("var/configure_opt") %] -make -j4 +make -j[% c("buildconf/nb_procs") %] make install cd /var/tmp/dist [% c('tar', { diff --git a/projects/gmp/build b/projects/gmp/build index 34173d6..b9ea3bc 100644 --- a/projects/gmp/build +++ b/projects/gmp/build @@ -9,7 +9,7 @@ cd /var/tmp/build/[% project %]-[% c('version') %] # during compile time. ./configure --disable-static --enable-shared --enable-cxx \ [% c("var/configure_opt") %] [% c("var/configure_opt_gmp") %] --prefix=$distdir -make -j4 +make -j[% c("buildconf/nb_procs") %] make install cd /var/tmp/dist [% c('tar', { diff --git a/projects/libdmg-hfsplus/build b/projects/libdmg-hfsplus/build index 47a5e43..66e4232 100644 --- a/projects/libdmg-hfsplus/build +++ b/projects/libdmg-hfsplus/build @@ -7,7 +7,7 @@ cd [% project %]-[% c('version') %] patch -p1 < ../libdmg.patch cmake -DCMAKE_INSTALL_PREFIX:PATH=$distdir/[% project %] CMakeLists.txt cd dmg -make -j4 +make -j[% c("buildconf/nb_procs") %] make install cd $distdir [% c('tar', { diff --git a/projects/libevent/build b/projects/libevent/build index 0e4e074..d44371d 100644 --- a/projects/libevent/build +++ b/projects/libevent/build @@ -11,7 +11,7 @@ cd /var/tmp/build/[% project %]-[% c('version') %] export LD_PRELOAD=[% c("var/faketime_path") %] export FAKETIME="[% USE date; GET date.format(c('timestamp'), format = '%Y-%m-%d %H:%M:%S') %]" [% END -%] -make -j4 +make -j[% c("buildconf/nb_procs") %] make install cd /var/tmp/dist [% c('tar', { diff --git a/projects/llvm/build b/projects/llvm/build index 5241944..fc72e38 100644 --- a/projects/llvm/build +++ b/projects/llvm/build @@ -21,7 +21,7 @@ export LLVM_HOME=$(pwd) mkdir build cd build cmake .. -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=$distdir -DCMAKE_BUILD_TYPE:STRING=Release $LLVM_HOME -make -j4 +make -j[% c("buildconf/nb_procs") %] make install cd /var/tmp/dist [% c('tar', { diff --git a/projects/mingw-w64/build b/projects/mingw-w64/build index 42ee716..246ade1 100644 --- a/projects/mingw-w64/build +++ b/projects/mingw-w64/build @@ -31,25 +31,25 @@ sed 's/msvcrt/msvcr100/' -i gcc-[% c("var/gcc_version") %]/gcc/config/i386/t-min # CFLAGS_FOR_TARGET. export CFLAGS_FOR_TARGET="-specs=$distdir/msvcr100.spec -Wl,--nxcompat -Wl,--dynamicbase" gcc-[% c("var/gcc_version") %]/configure --prefix=$distdir --target=i686-w64-mingw32 --disable-multilib --enable-languages=c,c++ -make -j4 all-gcc +make -j[% c("buildconf/nb_procs") %] all-gcc make install-gcc
mkdir -p /var/tmp/build/builddir/mingw-w64/mingw-w64-crt32 cd /var/tmp/build/builddir/mingw-w64/mingw-w64-crt32 /var/tmp/build/[% project %]-[% c("version") %]/mingw-w64-crt/configure \ --host=i686-w64-mingw32 --prefix=$distdir/i686-w64-mingw32 -make -j4 +make -j[% c("buildconf/nb_procs") %] make install
mkdir -p /var/tmp/build/builddir/mingw-w64/widl32 cd /var/tmp/build/builddir/mingw-w64/widl32 /var/tmp/build/[% project %]-[% c("version") %]/mingw-w64-tools/widl/configure \ --prefix=$distdir --target=i686-w64-mingw32 -make -j4 +make -j[% c("buildconf/nb_procs") %] make install
cd /var/tmp/build/gcc -make -j4 +make -j[% c("buildconf/nb_procs") %] make install mkdir -p $distdir/gcclibs cp i686-w64-mingw32/libssp/.libs/libssp-0.dll $distdir/gcclibs diff --git a/projects/tor/build b/projects/tor/build index 85e158f..577c194 100644 --- a/projects/tor/build +++ b/projects/tor/build @@ -64,7 +64,7 @@ find -type f -print0 | xargs -0 [% c("var/touch") %] export LD_PRELOAD=[% c("var/faketime_path") %] export FAKETIME="[% USE date; GET date.format(c('timestamp'), format = '%Y-%m-%d %H:%M:%S') %]" [% END -%] -make -j4 +make -j[% c("buildconf/nb_procs") %] make install [% IF c("var/osx") -%] unset LD_PRELOAD diff --git a/projects/yasm/build b/projects/yasm/build index 82d037a..b736761 100644 --- a/projects/yasm/build +++ b/projects/yasm/build @@ -5,7 +5,7 @@ mkdir -p /var/tmp/build tar -C /var/tmp/build -xf $rootdir/[% c('input_files_by_name/yasm') %] cd /var/tmp/build/yasm-[% c("version") %] ./configure --prefix="$distdir" -make -j4 +make -j[% c("buildconf/nb_procs") %] make install cd /var/tmp/dist [% c('tar', { diff --git a/rbm.conf b/rbm.conf index 31e6a51..ae8c5b2 100644 --- a/rbm.conf +++ b/rbm.conf @@ -6,6 +6,12 @@ build_log: '[% GET ENV.RBM_LOGS_DIR ? ENV.RBM_LOGS_DIR : "logs" %]/[% project %]
pkg_type: build
+# buildconf contains build options that the user can change in rbm.local.conf +# When adding a new option to buildconf, a default value should be defined +# in var/build_id, so that changing this option does not affect the build_id. +buildconf: + nb_procs: '[% GET ENV.RBM_NB_PROCS ? ENV.RBM_NB_PROCS : "4" %]' + var: torbrowser_version: '7.5a3' project_name: tor-browser @@ -16,7 +22,7 @@ var: # in the same order. In the cases where the installation order is # important, sort_deps should be set to 0. sort_deps: 1 - build_id: '[% sha256(c("var/build_id_txt")).substr(0, 6) %]' + build_id: '[% sha256(c("var/build_id_txt", { buildconf => { nb_procs => 4 } })).substr(0, 6) %]' build_id_txt: | [% c("version") %] [% IF c("git_hash") || c("hg_hash"); GET c("abbrev"); END; %] diff --git a/rbm.local.conf.example b/rbm.local.conf.example index 203ce5f..5e322cf 100644 --- a/rbm.local.conf.example +++ b/rbm.local.conf.example @@ -21,6 +21,14 @@ ### stdout and stderr. #build_log: '-'
+buildconf: + buildconf: 1 + + ### The buildconf/nb_procs option can be used to select the number of + ### build processes to run simultaneously. You can also use the + ### RBM_NB_PROCS environment variable. The default is 4. + #nb_procs: 8 + var: local_conf: 1