summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorRafaël Carré <rafael.carre@gmail.com>2010-05-27 09:41:46 +0000
committerRafaël Carré <rafael.carre@gmail.com>2010-05-27 09:41:46 +0000
commit5d236b2bfda7b460e6b970c3b6f6dc539b14020e (patch)
tree27316274323f1de2f7da190f269061d1c4280847 /tools
parent6ca9f232a817ed6717354ae68812f67b08cbc2a9 (diff)
Generate C file / header for svn version string
It's now easier to force rebuild of files depending on the svn revision version.c/version.h are generated once with new tools/genversion.sh Changes in the VCS are still not auto detected, so you'll have to remove builddir/version.* if you want to change the string in your binaries APPSVERSION is now called RBVERSION and is defined in the generated header instead of being defined by the Makefiles appsversion is now called rbversion (the plugin api number didn't change since old modules are still binary compatible) Change some bootloaders to use knwon-at-buildtime RBVERSION instead of "%s" + rbversion You'll need to run make clean to regenerate dependencies after the removal of apps/version.h To build binaries with a different version string, hand-edit tools/version.sh or tools/genversion.sh (which calls the former) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26320 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'tools')
-rwxr-xr-xtools/configure1
-rwxr-xr-xtools/genversion.sh42
-rw-r--r--tools/root.make3
3 files changed, 43 insertions, 3 deletions
diff --git a/tools/configure b/tools/configure
index d091e3258d..9654cc67f9 100755
--- a/tools/configure
+++ b/tools/configure
@@ -3103,7 +3103,6 @@ export BUILDDIR=@PWD@
export LANGUAGE=@LANGUAGE@
export VOICELANGUAGE=@VOICELANGUAGE@
export MEMORYSIZE=@MEMORY@
-export VERSION:=\$(shell \$(ROOTDIR)/tools/version.sh \$(ROOTDIR))
export BUILDDATE:=\$(shell date -u +'-DYEAR=%Y -DMONTH=%m -DDAY=%d')
export MKFIRMWARE=@TOOL@
export BMP2RB_MONO=@BMP2RB_MONO@
diff --git a/tools/genversion.sh b/tools/genversion.sh
new file mode 100755
index 0000000000..cf8d999e5b
--- /dev/null
+++ b/tools/genversion.sh
@@ -0,0 +1,42 @@
+#!/bin/sh
+# __________ __ ___.
+# Open \______ \ ____ ____ | | _\_ |__ _______ ___
+# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
+# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
+# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
+# \/ \/ \/ \/ \/
+
+# Usage: genversion.sh destination-dir path-to-version.sh [source-root]
+
+# Generate version.[ch] files
+
+VERSION=`$2 $3`
+
+cat > "$1/_version.h" << EOF
+/* Generated by genversion.sh */
+extern const char rbversion[];
+#define RBVERSION "$VERSION"
+EOF
+
+if [ -f "$1/version.h" ]
+ then if diff "$1/_version.h" "$1/version.h" > /dev/null
+ then mv "$1/_version.h" "$1/version.h"
+ else rm -f "$1/_version.h"
+ fi
+ else mv "$1/_version.h" "$1/version.h"
+fi
+
+
+cat > "$1/_version.c" << EOF
+/* Generated by genversion.sh */
+const char rbversion[] = "$VERSION";
+EOF
+
+if [ -f "$1/version.c" ]
+ then if diff "$1/_version.c" "$1/version.c" > /dev/null
+ then mv "$1/_version.c" "$1/version.c"
+ else rm -f "$1/_version.c"
+ fi
+ else mv "$1/_version.c" "$1/version.c"
+fi
+
diff --git a/tools/root.make b/tools/root.make
index f2373f5f7d..ddea297ccf 100644
--- a/tools/root.make
+++ b/tools/root.make
@@ -10,8 +10,7 @@
include $(TOOLSDIR)/functions.make
DEFINES = -DROCKBOX -DMEMORYSIZE=$(MEMORYSIZE) -DMEM=$(MEMORYSIZE) $(TARGET) \
- -DTARGET_ID=$(TARGET_ID) -DTARGET_NAME=\"$(MODELNAME)\" \
- -DAPPSVERSION=\"$(VERSION)\" $(BUILDDATE) \
+ -DTARGET_ID=$(TARGET_ID) -DTARGET_NAME=\"$(MODELNAME)\" $(BUILDDATE) \
$(EXTRA_DEFINES) # <-- -DSIMULATOR or not
INCLUDES = -I$(BUILDDIR) -I$(BUILDDIR)/lang $(TARGET_INC)