mesa: Include GIT SHA1 in GL version string
authorIan Romanick <ian.d.romanick@intel.com>
Thu, 31 Mar 2011 18:42:01 +0000 (11:42 -0700)
committerIan Romanick <ian.d.romanick@intel.com>
Tue, 5 Apr 2011 18:21:01 +0000 (11:21 -0700)
Reviewed-by: Corbin Simpson <MostAwesomeDude@gmail.com>
Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
Tested-by: Sedat Dilek <sedat.dilek@gmail.com>
Makefile
bin/extract_git_sha1 [new file with mode: 0755]
src/mesa/main/version.c

index a1ab65ef0c4c59b2affc3a0f7dcfe92c6a827bc5..be9567987a9b21c29a01ed682af52fcc28c71047 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -5,7 +5,10 @@ TOP = .
 SUBDIRS = src
 
 
+# The git command below generates an empty string when we're not
+# building in a GIT tree (i.e., building from a release tarball).
 default: $(TOP)/configs/current
+       @$(TOP)/bin/extract_git_sha1
        @for dir in $(SUBDIRS) ; do \
                if [ -d $$dir ] ; then \
                        (cd $$dir && $(MAKE)) || exit 1 ; \
@@ -199,6 +202,7 @@ MAIN_FILES = \
        $(DIRECTORY)/aclocal.m4                                         \
        $(DIRECTORY)/bin/config.guess                                   \
        $(DIRECTORY)/bin/config.sub                                     \
+       $(DIRECTORY)/bin/extract_git_sha1                               \
        $(DIRECTORY)/bin/install-sh                                     \
        $(DIRECTORY)/bin/mklib                                          \
        $(DIRECTORY)/bin/minstall                                       \
diff --git a/bin/extract_git_sha1 b/bin/extract_git_sha1
new file mode 100755 (executable)
index 0000000..e6e6731
--- /dev/null
@@ -0,0 +1,10 @@
+#!/bin/sh
+touch src/mesa/main/git_sha1.h
+if which git > /dev/null; then
+    # Extract the 7-digit "short" SHA1 for the current HEAD, convert
+    # it to a string, and wrap it in a #define.  This is used in
+    # src/mesa/main/version.c to put the GIT SHA1 in the GL_VERSION string.
+    git log -n 1 --oneline |\
+       sed 's/^\([^ ]*\) .*/#define MESA_GIT_SHA1 "git-\1"/' \
+       > src/mesa/main/git_sha1.h
+fi
index c7a0d69a4f0522caaf200c150085a164ab61d092..80fa0c244eb4a19fd3ac47c4779a3e3b5802a9f4 100644 (file)
@@ -25,6 +25,7 @@
 #include "imports.h"
 #include "mtypes.h"
 #include "version.h"
+#include "git_sha1.h"
 
 
 
@@ -185,7 +186,11 @@ compute_version(struct gl_context *ctx)
    ctx->VersionString = (char *) malloc(max);
    if (ctx->VersionString) {
       _mesa_snprintf(ctx->VersionString, max,
-                    "%u.%u Mesa " MESA_VERSION_STRING,
+                    "%u.%u Mesa " MESA_VERSION_STRING
+#ifdef MESA_GIT_SHA1
+                    " (" MESA_GIT_SHA1 ")"
+#endif
+                    ,
                     ctx->VersionMajor, ctx->VersionMinor);
    }
 }