aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/Makefile2
-rwxr-xr-xgen-id.sh32
-rw-r--r--memdisk/Makefile2
3 files changed, 24 insertions, 12 deletions
diff --git a/core/Makefile b/core/Makefile
index b81f052f..278d7afe 100644
--- a/core/Makefile
+++ b/core/Makefile
@@ -72,7 +72,7 @@ ifndef HEXDATE
HEXDATE := $(shell $(PERL) ../now.pl $(SRCS))
endif
ifndef DATE
-DATE := $(shell sh ../gen-id.sh $(HEXDATE))
+DATE := $(shell sh ../gen-id.sh $(VERSION) $(HEXDATE))
endif
all: $(BTARGET)
diff --git a/gen-id.sh b/gen-id.sh
index c8f89793..1b3e108b 100755
--- a/gen-id.sh
+++ b/gen-id.sh
@@ -1,20 +1,32 @@
#!/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.
+# Create a build ID for this build. If we're using a git tree,
+# generate an ID from "git describe", otherwise use the passed-in
+# timestamp.
#
+# Usage: gen-id.sh version timestamp
+#
+
+ver="$1"
+tim="$1"
if test -n "$GIT_DIR" -o -d ../.git -o -f ../.git; then
- ver="$(git describe | cut -d- -f3-)"
- if test -n "$ver"; then
+ id="$(git describe)"
+ if test -n "$id"; then
+ if test x"$(echo "$id" | cut -d- -f1)" = xsyslinux; then
+ id="$(echo "$id" | cut -d- -f2-)"
+ if test x"$(echo "$id" | cut -d- -f1)" = x"$ver"; then
+ id="$(echo "$id" | cut -d- -f2-)"
+ fi
+ fi
+ fi
+ if test -n "$id"; then
if test -n "$(git diff-index --name-only HEAD)"; then
- ver="${ver}"\*
+ id="${id}"\*
fi
fi
fi
-if test -z "$ver"; then
- echo "$1"
-else
- echo "$ver"
+if test -z "$id"; then
+ id="$tim"
fi
+echo "$id"
diff --git a/memdisk/Makefile b/memdisk/Makefile
index b9701ff8..529d4a6d 100644
--- a/memdisk/Makefile
+++ b/memdisk/Makefile
@@ -47,7 +47,7 @@ ifndef HEXDATE
HEXDATE := $(shell $(PERL) ../now.pl $(SRCS))
endif
ifndef DATE
-DATE := $(shell sh ../gen-id.sh $(HEXDATE))
+DATE := $(shell sh ../gen-id.sh $(VERSION) $(HEXDATE))
endif
# Important: init.o16 must be first!!