autogen: Run parallel make if compiling with distcc.
authorAndre Noll <maan@systemlinux.org>
Thu, 21 Apr 2011 21:33:06 +0000 (23:33 +0200)
committerAndre Noll <maan@systemlinux.org>
Thu, 15 Sep 2011 16:03:34 +0000 (18:03 +0200)
This adjusts the value of the make -j option in case the DISTCC_HOSTS
environment variable is set. There is no way to determine the number of
processing units (cores) for the remote hosts listed in DISTCC_HOSTS,
so we set the number of jobs to run simultaneously to

n + 2 * n * d

where n is the number of cores on the local system and d is the
number of hosts in DISTCC_HOSTS. This seems to work fine on one such
distributed setup.

autogen.sh

index e5000a6..ea38dbf 100755 (executable)
@@ -5,6 +5,11 @@ if [ -z "$n" ]; then
        n=$(grep ^processor /proc/cpuinfo 2>/dev/null | wc -l)
        [ $n -eq 0 ] && n=1
 fi
+# If we are compiling with distcc, try to guess a reasonable number
+# based on (a) the number of cores on this machine and (b) the number
+# of words in the DISTCC_HOSTS variable.
+d="$(echo $DISTCC_HOSTS | wc -w)"
+n=$(($n + 2 * $n * $d))
 echo preparing, parallel=$n...
 if test -f Makefile; then
        make maintainer-clean > /dev/null 2>&1