sub get_linuxdir()
{
my $config = new IO::File;
- my ($line, $dir);
+ my ($line, $dir, $objdir);
if (!$config->open("autoMakefile")) {
die "Run ./configure first\n";
}
chomp($line);
if ($line =~ /LINUX :?= (.*)/) {
$dir = $1;
- last;
+ } elsif ($line =~ /LINUX_OBJ :?= (.*)/) {
+ $objdir = $1;
+ } elsif ($line =~ /MODULES_TRUE = #/ ||
+ $line =~ /MODULE_TARGET = $/) {
+ # nothing to do if modules are not being built
+ return ""
}
}
$config->close();
my $ver = new IO::File;
- if (!$ver->open("$dir/include/linux/utsrelease.h")) {
- if (!$ver->open("$dir/include/linux/version.h")) {
- die "Run make dep on $dir\n";
+ if (!$ver->open("$objdir/include/linux/utsrelease.h") &&
+ !$ver->open("$objdir/include/linux/version.h") &&
+ !$ver->open("$dir/include/linux/utsrelease.h") &&
+ !$ver->open("$dir/include/linux/version.h")) {
+ die "Run make dep on '$dir'\n";
}
- }
+
while(defined($line = <$ver>)) {
$line =~ /\#define UTS_RELEASE "(.*)"/;
if ($1) {
my $mtime = shift;
my $linuxdir = shift;
- #print "localtime: " . localtime($mtime) . "\n";
+ # assume building without modules
+ my $postfix = "";
- my $show_last = mtime2date($mtime);
+ if ($linuxdir ne "") {
+ $postfix = "-$kernver";
+ }
- print "#define BUILD_VERSION \"";
+ #print "localtime: " . localtime($mtime) . "\n";
my $lustre_vers = $ENV{LUSTRE_VERS};
+ print "#define BUILD_VERSION \"";
+
if ($lustre_vers) {
print "$tag-$lustre_vers\"\n";
+ return 0;
+ }
+
+ my $show_last = mtime2date($mtime);
+
# if we want to get rid of the PRISTINE/CHANGED thing, get rid of these
# lines. maybe we only want to print -CHANGED when something is changed
# and print nothing when it's pristine
- } elsif ($pristine) {
- print "$tag-$show_last-PRISTINE-$linuxdir-$kernver\"\n";
+ if ($pristine) {
+ print "$tag-$show_last-PRISTINE$postfix\"\n";
} else {
- print "$tag-$show_last-CHANGED-$linuxdir-$kernver\"\n";
+ print "$tag-$show_last-CHANGED$postfix\"\n";
}
}
chdir($ARGV[0]);
}
my $tag = get_tag();
-my $mtime = get_latest_mtime();
+my $mtime = get_latest_mtime()
+ if (!defined($ENV{LUSTRE_VERS}));
if ($progname eq "version_tag.pl") {
my $linuxdir = get_linuxdir();