summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2014-08-27 20:47:46 -0400
committerMichael Sevakis <jethead71@rockbox.org>2014-08-28 15:48:56 +0200
commit21e2b595c2797c226699cf19a2a2ad4abf22b210 (patch)
tree172d26fe3d2673266560c1fad0378028e2dbe033
parent25f73d62079b63e4420fd037ad9460004179b026 (diff)
downloadrockbox-21e2b595c2797c226699cf19a2a2ad4abf22b210.tar.gz
rockbox-21e2b595c2797c226699cf19a2a2ad4abf22b210.zip
Prevent spurious recompiles on account of changed version.
After a local commit, any file that included version.h would have to be recompiled on account of the changed version string. This changes version.h in the build directory to rbversion.h and includes the preprocessor macro from rbversion.h in firmware/common/version.c so that only that one file needs to be recompiled after a local commit rather than a whole slew of them. Change-Id: I900d97e3a24a0610698283416d97b4fa3a3a2cf6 Reviewed-on: http://gerrit.rockbox.org/937 Reviewed-by: Michael Sevakis <jethead71@rockbox.org> Tested: Michael Sevakis <jethead71@rockbox.org>
-rw-r--r--firmware/common/version.c2
-rw-r--r--firmware/firmware.make6
-rw-r--r--firmware/include/version.h26
-rwxr-xr-xtools/genversion.sh15
4 files changed, 37 insertions, 12 deletions
diff --git a/firmware/common/version.c b/firmware/common/version.c
index 762842c6de..bb856e4219 100644
--- a/firmware/common/version.c
+++ b/firmware/common/version.c
@@ -19,5 +19,5 @@
19 * 19 *
20 ****************************************************************************/ 20 ****************************************************************************/
21 21
22#include "version.h" 22#include "rbversion.h"
23const char rbversion[] = RBVERSION; 23const char rbversion[] = RBVERSION;
diff --git a/firmware/firmware.make b/firmware/firmware.make
index 8e2d475683..8f8014d82c 100644
--- a/firmware/firmware.make
+++ b/firmware/firmware.make
@@ -47,11 +47,11 @@ $(BUILDDIR)/sysfont.o: $(SYSFONT) $(BUILDDIR)/sysfont.h
47 $(call PRINTS,CC $(subst $(ROOTDIR)/,,$(BUILDDIR)/sysfont.c))$(CC) $(CFLAGS) -c $(BUILDDIR)/sysfont.c -o $@ 47 $(call PRINTS,CC $(subst $(ROOTDIR)/,,$(BUILDDIR)/sysfont.c))$(CC) $(CFLAGS) -c $(BUILDDIR)/sysfont.c -o $@
48 48
49SVNVERSION:=$(shell $(TOOLSDIR)/version.sh $(ROOTDIR)) 49SVNVERSION:=$(shell $(TOOLSDIR)/version.sh $(ROOTDIR))
50OLDSVNVERSION:=$(shell grep 'RBVERSION' $(BUILDDIR)/version.h 2>/dev/null|cut -d '"' -f 2 || echo "NOREVISION") 50OLDSVNVERSION:=$(shell grep 'RBVERSION' $(BUILDDIR)/rbversion.h 2>/dev/null|cut -d '"' -f 2 || echo "NOREVISION")
51 51
52ifneq ($(SVNVERSION),$(OLDSVNVERSION)) 52ifneq ($(SVNVERSION),$(OLDSVNVERSION))
53.PHONY: $(BUILDDIR)/version.h 53.PHONY: $(BUILDDIR)/rbversion.h
54endif 54endif
55 55
56$(BUILDDIR)/version.h: 56$(BUILDDIR)/rbversion.h:
57 $(call PRINTS,GEN $(@F))$(TOOLSDIR)/genversion.sh $(BUILDDIR) $(TOOLSDIR)/version.sh $(ROOTDIR) 57 $(call PRINTS,GEN $(@F))$(TOOLSDIR)/genversion.sh $(BUILDDIR) $(TOOLSDIR)/version.sh $(ROOTDIR)
diff --git a/firmware/include/version.h b/firmware/include/version.h
new file mode 100644
index 0000000000..e9e291a8c4
--- /dev/null
+++ b/firmware/include/version.h
@@ -0,0 +1,26 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id$
9 *
10 * Copyright (C) 2010 by Frank Gevaerts
11 *
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation; either version 2
15 * of the License, or (at your option) any later version.
16 *
17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
18 * KIND, either express or implied.
19 *
20 ****************************************************************************/
21#ifndef _RBVERSION_H_
22#define _RBVERSION_H_
23
24extern const char rbversion[];
25
26#endif /* _RBVERSION_H_ */
diff --git a/tools/genversion.sh b/tools/genversion.sh
index 485263d152..bd80ceb597 100755
--- a/tools/genversion.sh
+++ b/tools/genversion.sh
@@ -8,22 +8,21 @@
8 8
9# Usage: genversion.sh destination-dir path-to-version.sh [source-root] 9# Usage: genversion.sh destination-dir path-to-version.sh [source-root]
10 10
11# Generate version.h file 11# Generate rbversion.h file
12 12
13# XXX DO NOT TWEAK VERSION HERE, EDIT version.sh INSTEAD 13# XXX DO NOT TWEAK VERSION HERE, EDIT version.sh INSTEAD
14 14
15VERSION=`$2 $3` 15VERSION=`$2 $3`
16 16
17cat > "$1/_version.h" << EOF 17cat > "$1/_rbversion.h" << EOF
18/* Generated by genversion.sh */ 18/* Generated by genversion.sh */
19extern const char rbversion[];
20#define RBVERSION "$VERSION" 19#define RBVERSION "$VERSION"
21EOF 20EOF
22 21
23if [ -f "$1/version.h" ] 22if [ -f "$1/rbversion.h" ]
24 then if diff "$1/_version.h" "$1/version.h" > /dev/null 23 then if diff "$1/_rbversion.h" "$1/rbversion.h" > /dev/null
25 then rm -f "$1/_version.h" 24 then rm -f "$1/_rbversion.h"
26 else mv "$1/_version.h" "$1/version.h" 25 else mv "$1/_rbversion.h" "$1/rbversion.h"
27 fi 26 fi
28 else mv "$1/_version.h" "$1/version.h" 27 else mv "$1/_rbversion.h" "$1/rbversion.h"
29fi 28fi