Whamcloud - gitweb
b=18948 Speedy recovery
[fs/lustre-release.git] / lustre / scripts / version_tag.pl
index 8ae53ae..92655e1 100644 (file)
@@ -144,7 +144,7 @@ sub get_latest_mtime()
 sub get_linuxdir()
 {
     my $config = new IO::File;
-    my ($line, $dir);
+    my ($line, $dir, $objdir);
     if (!$config->open("autoMakefile")) {
         die "Run ./configure first\n";
     }
@@ -152,16 +152,23 @@ sub get_linuxdir()
         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) {
@@ -195,23 +202,33 @@ sub generate_ver($$$)
     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";
     }
 }
 
@@ -233,7 +250,8 @@ if ($ARGV[0]) {
     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();