]> xenbits.xensource.com Git - seabios.git/commitdiff
Use "git describe" in the build generated version description.
authorKevin O'Connor <kevin@koconnor.net>
Sat, 24 Mar 2012 15:42:53 +0000 (11:42 -0400)
committerKevin O'Connor <kevin@koconnor.net>
Sat, 24 Mar 2012 15:42:53 +0000 (11:42 -0400)
Move the build version generation to a script in tools/ and enhance
the system to call "git describe" when it appears the user has a git
repo.  Also, allow the version to be extracted from a ".version" file
for use in official tar releases.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Makefile
tools/buildversion.sh [new file with mode: 0755]

index abbac8c3e692118d15192af88eae63fc8d806597..a4d548dbd804d26b5dcb85869e00669c1fef886e 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -4,9 +4,6 @@
 #
 # This file may be distributed under the terms of the GNU LGPLv3 license.
 
-# Program version
-VERSION=pre-1.6.4-$(shell date +"%Y%m%d_%H%M%S")-$(shell hostname)
-
 # Output directory
 OUT=out/
 
@@ -150,8 +147,8 @@ $(OUT)romlayout.o: romlayout.S $(OUT)asm-offsets.h
        $(Q)$(CC) $(CFLAGS16) -c -D__ASSEMBLY__ $< -o $@
 
 $(OUT)romlayout16.lds: $(OUT)ccode32flat.o $(OUT)code32seg.o $(OUT)ccode16.o $(OUT)romlayout.o tools/layoutrom.py
-       @echo "  Building ld scripts (version \"$(VERSION)\")"
-       $(Q)echo 'const char VERSION[] = "$(VERSION)";' > $(OUT)version.c
+       @echo "  Building ld scripts"
+       $(Q)./tools/buildversion.sh $(OUT)version.c
        $(Q)$(CC) $(CFLAGS32FLAT) -c $(OUT)version.c -o $(OUT)version.o
        $(Q)$(LD) -melf_i386 -r $(OUT)ccode32flat.o $(OUT)version.o -o $(OUT)code32flat.o
        $(Q)$(LD) -melf_i386 -r $(OUT)ccode16.o $(OUT)romlayout.o -o $(OUT)code16.o
@@ -206,8 +203,8 @@ $(OUT)vgaentry.o: vgaentry.S $(OUT)autoconf.h
        $(Q)$(CC) $(CFLAGS16VGA) -c -D__ASSEMBLY__ $< -o $@
 
 $(OUT)vgarom.o: $(OUT)vgaccode16.o $(OUT)vgaentry.o $(OUT)vgalayout.lds
-       @echo "  Linking $@ (version \"$(VERSION)\")"
-       $(Q)printf '#include "types.h"\nchar VERSION[] VAR16 = "$(VERSION)";' > $(OUT)vgaversion.c
+       @echo "  Linking $@"
+       $(Q)./tools/buildversion.sh $(OUT)vgaversion.c VAR16
        $(Q)$(CC) $(CFLAGS16VGA) -c $(OUT)vgaversion.c -o $(OUT)vgaversion.o
        $(Q)$(LD) --gc-sections -T $(OUT)vgalayout.lds $(OUT)vgaccode16.o $(OUT)vgaentry.o $(OUT)vgaversion.o -o $@
 
diff --git a/tools/buildversion.sh b/tools/buildversion.sh
new file mode 100755 (executable)
index 0000000..9b301e6
--- /dev/null
@@ -0,0 +1,27 @@
+#!/bin/sh
+# Script to generate a C file with version information.
+OUTFILE="$1"
+VAR16MODE="$2"
+
+# Extract version info
+if [ -d .git ]; then
+    VERSION="`git describe --tags --long --dirty`"
+elif [ -f .version ]; then
+    VERSION="`cat .version`"
+else
+    VERSION="?"
+fi
+VERSION="${VERSION}-`date +"%Y%m%d_%H%M%S"`-`hostname`"
+echo "Version: ${VERSION}"
+
+# Build header file
+if [ "$VAR16MODE" == "VAR16" ]; then
+    cat > ${OUTFILE} <<EOF
+#include "types.h"
+char VERSION[] VAR16 = "${VERSION}";
+EOF
+else
+    cat > ${OUTFILE} <<EOF
+char VERSION[] = "${VERSION}";
+EOF
+fi