summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2010-03-21 14:35:03 +0000
committerJens Arnold <amiconn@rockbox.org>2010-03-21 14:35:03 +0000
commitbe384e845129b677e70d877fe914f2cab0900abf (patch)
tree3b65e97ed335eefe35c6c0d1233be34caac427d0
parent18e7c1f4af9593bfd8ce8bfcd4b594ed7211b6e9 (diff)
downloadrockbox-be384e845129b677e70d877fe914f2cab0900abf.tar.gz
rockbox-be384e845129b677e70d877fe914f2cab0900abf.zip
Make multigcc.pl actually use more than one core on OS X and opensolaris.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25274 a1c6a512-1295-4272-9138-f99709370657
-rwxr-xr-xtools/multigcc.pl24
1 files changed, 20 insertions, 4 deletions
diff --git a/tools/multigcc.pl b/tools/multigcc.pl
index fbe7c17aae..5222f61b49 100755
--- a/tools/multigcc.pl
+++ b/tools/multigcc.pl
@@ -1,4 +1,5 @@
1#!/usr/bin/perl 1#!/usr/bin/perl
2use Switch;
2use List::Util 'shuffle'; # standard from Perl 5.8 and later 3use List::Util 'shuffle'; # standard from Perl 5.8 and later
3 4
4my $tempfile = "multigcc.out"; 5my $tempfile = "multigcc.out";
@@ -24,10 +25,25 @@ my $command = join " ", @params;
24@files = shuffle(@files); 25@files = shuffle(@files);
25 26
26# count number of cores 27# count number of cores
27my $cores = 1; 28my $cores;
28if (open CPUINFO, "</proc/cpuinfo") { 29switch($^O) {
29 $cores = scalar grep /^processor/i, <CPUINFO>; 30 case "darwin" {
30 close CPUINFO; 31 chomp($cores = `sysctl -n hw.ncpu`);
32 $cores = 1 if ($?);
33 }
34 case "solaris" {
35 $cores = scalar grep /on-line/i, `psrinfo`;
36 $cores = 1 if ($?);
37 }
38 else {
39 if (open CPUINFO, "</proc/cpuinfo") {
40 $cores = scalar grep /^processor/i, <CPUINFO>;
41 close CPUINFO;
42 }
43 else {
44 $cores = 1;
45 }
46 }
31} 47}
32 48
33# don't run empty children 49# don't run empty children