old-benchmark-code/kernel/build.pl

85 lines
1.7 KiB
Perl
Executable File

#!/usr/bin/perl
use strict;
print "Running on " . `hostname`;
if ( ! -e "linux-3.0.8.tar.xz") {
my $return = system("wget -c http://69.55.54.91/linux-3.0.8.tar.xz");
}
if ( ! -d "linux-3.0.8") {
system("tar xfJ linux-3.0.8.tar.xz");
system("sync");
}
chdir "linux-3.0.8";
# system("cp /root/benchmarks/kernel/config-3.0.8 .config");
install_standard("make -v", "make");
install_gcc();
exit if $ARGV[0] eq "--prep";
# system("make oldconfig");
system("make defconfig");
my $cpus = `cat /proc/cpuinfo |grep QEMU |wc -l`;
chomp $cpus;
system("make -j$cpus");
sub install_gcc {
my $return = system("gcc --version");
print "gcc RETURN: $return\n";
if ($return eq "-1") {
if (-e "/etc/gentoo-release") {
system "emerge gcc";
} elsif (-e "/etc/redhat-release") {
my @parts = split " ", `cat /etc/redhat-release`;
if ($parts[2] eq "5.6") {
my $arch = `uname -m`;
chomp $arch;
if ($arch eq "x86_64") {
system "yum install gcc -y";
} else {
system "yum install gcc -y";
}
}
system "yum install gcc -y";
} else {
system "apt-get -y install gcc";
}
} else {
return;
}
system "gcc --version";
}
sub install_standard {
my ($cmd, $name) = @_;
my $return = system($cmd);
print "gcc RETURN: $return\n";
if ($return eq "-1") {
if (-e "/etc/gentoo-release") {
system "emerge $name";
} elsif (-e "/etc/redhat-release") {
my @parts = split " ", `cat /etc/redhat-release`;
if ($parts[2] eq "5.6") {
my $arch = `uname -m`;
chomp $arch;
if ($arch eq "x86_64") {
system "yum install $name -y";
} else {
system "yum install $name -y";
}
}
system "yum install $name -y";
} else {
system "apt-get -y install $name";
}
} else {
return;
}
system $cmd;
}