summaryrefslogtreecommitdiff
path: root/tools/genversion.sh
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/genversion.sh
parent6ca9f232a817ed6717354ae68812f67b08cbc2a9 (diff)
downloadrockbox-5d236b2bfda7b460e6b970c3b6f6dc539b14020e.tar.gz
rockbox-5d236b2bfda7b460e6b970c3b6f6dc539b14020e.zip
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/genversion.sh')
-rwxr-xr-xtools/genversion.sh42
1 files changed, 42 insertions, 0 deletions
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 @@
1#!/bin/sh
2# __________ __ ___.
3# Open \______ \ ____ ____ | | _\_ |__ _______ ___
4# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7# \/ \/ \/ \/ \/
8
9# Usage: genversion.sh destination-dir path-to-version.sh [source-root]
10
11# Generate version.[ch] files
12
13VERSION=`$2 $3`
14
15cat > "$1/_version.h" << EOF
16/* Generated by genversion.sh */
17extern const char rbversion[];
18#define RBVERSION "$VERSION"
19EOF
20
21if [ -f "$1/version.h" ]
22 then if diff "$1/_version.h" "$1/version.h" > /dev/null
23 then mv "$1/_version.h" "$1/version.h"
24 else rm -f "$1/_version.h"
25 fi
26 else mv "$1/_version.h" "$1/version.h"
27fi
28
29
30cat > "$1/_version.c" << EOF
31/* Generated by genversion.sh */
32const char rbversion[] = "$VERSION";
33EOF
34
35if [ -f "$1/version.c" ]
36 then if diff "$1/_version.c" "$1/version.c" > /dev/null
37 then mv "$1/_version.c" "$1/version.c"
38 else rm -f "$1/_version.c"
39 fi
40 else mv "$1/_version.c" "$1/version.c"
41fi
42