]> git.ipfire.org Git - ipfire-3.x.git/commitdiff
Introduced new script: parallelismflags.
authorStefan Schantl <Stevee@ipfire.org>
Wed, 5 Aug 2009 17:11:02 +0000 (19:11 +0200)
committerStefan Schantl <Stevee@ipfire.org>
Wed, 5 Aug 2009 17:11:02 +0000 (19:11 +0200)
src/scripts/parallelismflags [new file with mode: 0755]
tools/make-constants

diff --git a/src/scripts/parallelismflags b/src/scripts/parallelismflags
new file mode 100755 (executable)
index 0000000..04d102a
--- /dev/null
@@ -0,0 +1,48 @@
+#/bin/bash
+
+auto=
+max=
+
+while [ $# -gt 0 ]; do
+       case "${1}" in
+               --max=*)
+                       max=${1#--max=}
+                       ;;
+               --auto)
+                       auto=1
+                       ;;
+               *)
+                       jobs=${1#-j}
+                       ;;
+       esac
+       shift
+done
+
+
+if [ -n "${max}" ]; then
+
+       if ! [[ ${jobs} =~ ^[0-9]{1,}$ ]]; then
+               echo "-j${jobs}"
+               exit 0
+       fi
+
+       if [ ${jobs} -gt ${max} ]; then
+               echo "-j${max}"
+               exit 0
+       fi
+
+elif [ "${auto}" = "1" ]; then
+       mem=$(( $(grep ^MemTotal: /proc/meminfo | awk '{ print $2 }') / 1024))
+       memjobs=$(( $mem / 80 ))
+
+       cpus=$(grep ^processor /proc/cpuinfo | wc -l)
+
+       cpujobs=$(( $cpus * 10 ))
+
+       if [ ${memjobs} -lt ${cpujobs} ]; then
+               echo "-j${memjobs}"
+       else
+               echo "-j${cpujobs}"
+       fi
+fi
+
index d03a0de67ce52c41646ab1a836c44f61143c961a..b6e1b2cba007f56d2a5e0f9edc42eba061019a64 100644 (file)
@@ -52,7 +52,7 @@ BUILD_EXTRAS=1
 BUILD_DEBUG=0
 
 # Default parallelism options
-PARALLELISMFLAGS=-j$(( $(grep processor < /proc/cpuinfo | wc -l) * 2 + 1 ))
+PARALLELISMFLAGS=$($BASEDIR/src/scripts/parallelismflags --auto)
 
 # Default hostname
 HOSTNAME=${HOSTNAME-$(cat /proc/sys/kernel/hostname)}