[Mesa-dev] [PATCH 2/2] mesa: Include GIT SHA1 in GL version string

Ian Romanick idr at freedesktop.org
Mon Apr 4 13:48:54 PDT 2011


From: Ian Romanick <ian.d.romanick at intel.com>

---
 Makefile                |    4 ++++
 bin/extract_git_sha1    |   10 ++++++++++
 src/mesa/main/version.c |    7 ++++++-
 3 files changed, 20 insertions(+), 1 deletions(-)
 create mode 100755 bin/extract_git_sha1

diff --git a/Makefile b/Makefile
index a1ab65e..be95679 100644
--- 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
index 0000000..4751839
--- /dev/null
+++ b/bin/extract_git_sha1
@@ -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 "\1"/' \
+	> src/mesa/main/git_sha1.h
+fi
diff --git a/src/mesa/main/version.c b/src/mesa/main/version.c
index c7a0d69..80fa0c2 100644
--- a/src/mesa/main/version.c
+++ b/src/mesa/main/version.c
@@ -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);
    }
 }
-- 
1.7.4



More information about the mesa-dev mailing list