#!/usr/bin/perl # simple script to make kerns with make-kpkg. - nathan use IO::File; use Sys::Hostname; $host = hostname(); $time = '/usr/bin/time -f "%E real, %U user, %S sys."'; $initrd = "yes"; $srcdir = "/usr/src"; $verfile = ".lastkern"; $makeflags = " MAKEFLAGS=CC=/usr/bin/gcc"; $clevel = " CONCURRENCY_LEVEL=1 "; $fh = new IO::File; if (!$fh->open("< ".$srcdir."/".$verfile)) { printf("Version file (".$verfile.") doesn't exist!\n"); $fh->close; exit(1); } else { $revision = <$fh>; if ($fh->open("> ".$srcdir."/".$verfile)) { $revision++; $fh->printf($revision); $fh->close; $revision = sprintf("%03d",$revision); } else { printf("Couldn't write to version file!\n"); exit(1); } printf( "*** Making a kernel ***\n". " -> revision = ".$revision."\n". " -> host = ".$host."\n"); if($initrd =~ m/(yes|1|true)/i) { $ird = "--initrd "; printf(" -> initrd = yes\n"); } else { printf(" -> initrd = no\n"); } printf("***********************\n"); $cleancmd = "make-kpkg clean"; $buildcmd = $time." /bin/dash -c \'".$makeflags.$clevel ."make-kpkg --rootcmd fakeroot ".$ird."--bzimage --revision ".$host.".".$revision." kernel_image\'"; system($cleancmd); system($buildcmd); }