Include the git ID in the build string
authorH. Peter Anvin <hpa@zytor.com>
Mon, 7 Jul 2008 19:08:47 +0000 (12:08 -0700)
committerH. Peter Anvin <hpa@zytor.com>
Mon, 7 Jul 2008 19:08:47 +0000 (12:08 -0700)
If we're doing an unofficial build from git, put the git id and a
dirty flag in the build string, instead of a timestamp.  This is a lot
more useful.

core/Makefile
core/gen-id.sh [new file with mode: 0755]

index 9700ea2..73508c1 100644 (file)
@@ -71,7 +71,7 @@ ifndef HEXDATE
 HEXDATE := $(shell $(PERL) now.pl $(SRCS))
 endif
 ifndef DATE
-DATE    := $(HEXDATE)
+DATE    := $(shell sh gen-id.sh $(HEXDATE))
 endif
 
 all: $(BTARGET)
diff --git a/core/gen-id.sh b/core/gen-id.sh
new file mode 100755 (executable)
index 0000000..02be21a
--- /dev/null
@@ -0,0 +1,22 @@
+#!/bin/sh
+#
+# Create a 10-character ID for this build.  If we're using a git tree,
+# generate an ID of the form g[-*]XXXXXXXX (* = modified); otherwise use
+# the passed-in timestamp.
+#
+
+if test -n "$GIT_DIR" -o -d ../.git -o -f ../.git; then
+    ver="$(git rev-parse HEAD | cut -c1-8)"
+    if test -n "$ver"; then
+       if test -n "$(git diff-index --name-only HEAD)"; then
+           ver='g*'"$ver"
+       else
+           ver='g-'"$ver"
+       fi
+    fi
+fi
+if test -z "$ver"; then
+  echo "$1"
+else
+  echo "$ver"
+fi