#!/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; }