Use more than one core in deployment script.

Try to detect the number of cores in the system and use that value for make -j.
Gives a noticable speedup depending on the system (OS X doesn't seem to benefit
from it).


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28859 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Dominik Riebeling 2010-12-19 20:10:22 +00:00
parent 8205e54abd
commit ee3fc61a48

View file

@ -59,6 +59,13 @@ except ImportError:
print "Fatal: This script requires the which package to run." print "Fatal: This script requires the which package to run."
print " See http://code.google.com/p/which/." print " See http://code.google.com/p/which/."
sys.exit(-5) sys.exit(-5)
cpus = 1
try:
import multiprocessing
cpus = multiprocessing.cpu_count()
print "Info: %s cores found." % cpus
except ImportError:
print "Warning: multiprocessing module not found. Assuming 1 core."
# == Global stuff == # == Global stuff ==
# Windows nees some special treatment. Differentiate between program name # Windows nees some special treatment. Differentiate between program name
@ -223,7 +230,11 @@ def qmake(qmake="qmake", projfile=project, wd=".", static=True):
def build(wd="."): def build(wd="."):
# make # make
print "Building ..." print "Building ..."
output = subprocess.Popen([make], stdout=subprocess.PIPE, cwd=wd) command = [make]
if cpus > 1:
command.append("-j")
command.append(str(cpus))
output = subprocess.Popen(command, stdout=subprocess.PIPE, cwd=wd)
while True: while True:
c = output.stdout.readline() c = output.stdout.readline()
sys.stdout.write(".") sys.stdout.write(".")