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
diff --git a/apps/main.c b/apps/main.c
index e4b9286..e8043a7 100644
--- a/apps/main.c
+++ b/apps/main.c
@@ -120,8 +120,6 @@
/*#define AUTOROCK*/ /* define this to check for "autostart.rock" on boot */
-const char appsversion[]=APPSVERSION;
-
static void init(void);
#ifdef HAVE_SDL
diff --git a/apps/menus/main_menu.c b/apps/menus/main_menu.c
index 59a72e1..76ceaa4 100644
--- a/apps/menus/main_menu.c
+++ b/apps/menus/main_menu.c
@@ -172,7 +172,7 @@
{
case INFO_VERSION:
snprintf(buffer, buffer_len, "%s: %s",
- str(LANG_VERSION), appsversion);
+ str(LANG_VERSION), rbversion);
break;
case INFO_BUFFER: /* buffer */
@@ -259,7 +259,7 @@
{
case INFO_VERSION: /* version */
talk_id(LANG_VERSION, false);
- talk_spell(appsversion, true);
+ talk_spell(rbversion, true);
break;
case INFO_BUFFER: /* buffer */
diff --git a/apps/misc.c b/apps/misc.c
index 95c0dd6..747abe0 100644
--- a/apps/misc.c
+++ b/apps/misc.c
@@ -621,7 +621,7 @@
char version[32];
int font_h, font_w;
- snprintf(version, sizeof(version), "Ver. %s", appsversion);
+ snprintf(version, sizeof(version), "Ver. %s", rbversion);
lcd_clear_display();
#if defined(SANSA_CLIP) || defined(SANSA_CLIPV2) || defined(SANSA_CLIPPLUS)
@@ -646,7 +646,7 @@
lcd_clear_display();
lcd_double_height(true);
lcd_puts(0, 0, rockbox);
- lcd_puts_scroll(0, 1, appsversion);
+ lcd_puts_scroll(0, 1, rbversion);
#endif
lcd_update();
diff --git a/apps/plugin.c b/apps/plugin.c
index 83f27ea..d626ef6 100644
--- a/apps/plugin.c
+++ b/apps/plugin.c
@@ -718,7 +718,7 @@
semaphore_release,
#endif
- appsversion,
+ rbversion,
/* new stuff at the end, sort into place next time
the API gets incompatible */
};
diff --git a/apps/plugin.h b/apps/plugin.h
index 7e198c9..a6b864b 100644
--- a/apps/plugin.h
+++ b/apps/plugin.h
@@ -885,7 +885,7 @@
void (*semaphore_release)(struct semaphore *s);
#endif
- const char *appsversion;
+ const char *rbversion;
/* new stuff at the end, sort into place next time
the API gets incompatible */
};
diff --git a/apps/plugins/battery_bench.c b/apps/plugins/battery_bench.c
index 165ce54..945abe9 100644
--- a/apps/plugins/battery_bench.c
+++ b/apps/plugins/battery_bench.c
@@ -546,7 +546,7 @@
"will continue.\n\n",BATTERY_LOG);
rb->fdprintf(fd,
"Battery bench run for %s version %s\n\n"
- ,MODEL_NAME,rb->appsversion);
+ ,MODEL_NAME,rb->rbversion);
rb->fdprintf(fd,
"Battery type: %d mAh Buffer Entries: %d\n"
@@ -578,7 +578,7 @@
rb->fdprintf(fd, "\n--File already present. Resuming Benchmark--\n");
rb->fdprintf(fd,
"Battery bench run for %s version %s\n\n"
- ,MODEL_NAME,rb->appsversion);
+ ,MODEL_NAME,rb->rbversion);
rb->close(fd);
}
diff --git a/apps/plugins/iriver_flash.c b/apps/plugins/iriver_flash.c
index 3f5490e..24542a9 100644
--- a/apps/plugins/iriver_flash.c
+++ b/apps/plugins/iriver_flash.c
@@ -411,7 +411,7 @@
rb->memset(&hdr, 0, sizeof(struct flash_header));
hdr.magic = FLASH_MAGIC;
hdr.length = len;
- // rb->strncpy(hdr.version, APPSVERSION, sizeof(hdr.version)-1);
+ // rb->strncpy(hdr.version, rb->rbversion , sizeof(hdr.version)-1);
p16 = (uint16_t *)&hdr;
rb->snprintf(buf, sizeof(buf), "Programming...");
diff --git a/apps/plugins/settings_dumper.c b/apps/plugins/settings_dumper.c
index ea69353..93c4f67 100644
--- a/apps/plugins/settings_dumper.c
+++ b/apps/plugins/settings_dumper.c
@@ -129,7 +129,7 @@
return PLUGIN_ERROR;
list = rb->get_settings_list(&setting_count);
rb->fdprintf(fd, "# .cfg file created by rockbox %s - "
- "http://www.rockbox.org\r\n\r\n", rb->appsversion);
+ "http://www.rockbox.org\r\n\r\n", rb->rbversion);
rb->fdprintf(fd, "# -- Sound settings -- #\r\n");
for(i=0;i<setting_count;i++)
diff --git a/apps/settings.c b/apps/settings.c
index 6349372..25593e5 100644
--- a/apps/settings.c
+++ b/apps/settings.c
@@ -536,7 +536,7 @@
if (fd < 0)
return false;
fdprintf(fd, "# .cfg file created by rockbox %s - "
- "http://www.rockbox.org\r\n\r\n", appsversion);
+ "http://www.rockbox.org\r\n\r\n", rbversion);
for(i=0; i<nb_settings; i++)
{
if (settings[i].cfg_name == NULL)
diff --git a/apps/version.h b/apps/version.h
deleted file mode 100644
index 73828dd..0000000
--- a/apps/version.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/***************************************************************************
- * __________ __ ___.
- * Open \______ \ ____ ____ | | _\_ |__ _______ ___
- * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
- * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
- * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
- * \/ \/ \/ \/ \/
- * $Id$
- *
- * Copyright (C) 2002 Björn Stenberg
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ****************************************************************************/
-#ifndef _VERSION_H_
-#define _VERSION_H_
-
-extern const char appsversion[];
-
-#endif
diff --git a/bootloader/Makefile b/bootloader/Makefile
index 3272510..07f347e 100644
--- a/bootloader/Makefile
+++ b/bootloader/Makefile
@@ -46,12 +46,8 @@
INCLUDES += $(patsubst %,-I%,$(subst :, ,$(APPEXTRA)))
endif
-ifndef VERSION
-VERSION=$(shell date +%y%m%d-%H%M)
-endif
-
-CFLAGS = $(GCCOPTS) $(INCLUDES) $(TARGET) $(DEFINES) \
- -DAPPSVERSION=\"$(VERSION)\" $(EXTRA_DEFINES) -DMEM=${MEMORYSIZE}
+CFLAGS = $(GCCOPTS) $(INCLUDES) $(TARGET) $(DEFINES) $(EXTRA_DEFINES) \
+ -DMEM=${MEMORYSIZE}
OBJS := $(SRC:%.c=$(OBJDIR)/%.o)
SOURCES = $(SRC)
diff --git a/bootloader/creativezvm.c b/bootloader/creativezvm.c
index 6469de7..73968c3 100644
--- a/bootloader/creativezvm.c
+++ b/bootloader/creativezvm.c
@@ -29,6 +29,7 @@
#include "button.h"
#include "common.h"
#include "usb.h"
+#include "version.h"
static void load_fw(unsigned char* ptr, unsigned int len)
@@ -66,7 +67,7 @@
lcd_setfont(FONT_SYSFIXED);
reset_screen();
printf("Rockbox boot loader");
- printf("Version %s", APPSVERSION);
+ printf("Version " RBVERSION);
ret = storage_init();
if(ret)
diff --git a/bootloader/gigabeat-s.c b/bootloader/gigabeat-s.c
index 7c429a9..dcff26c 100644
--- a/bootloader/gigabeat-s.c
+++ b/bootloader/gigabeat-s.c
@@ -35,11 +35,11 @@
#include "font.h"
#include "lcd.h"
#include "usb-target.h"
+#include "version.h"
#define TAR_CHUNK 512
#define TAR_HEADER_SIZE 157
-const char version[] = APPSVERSION;
/* Where files sent via MTP are stored */
static const char basedir[] = "/Content/0b00/00/";
/* Can use memory after vector table up to 0x01f00000 */
@@ -346,7 +346,7 @@
lcd_clear_display();
printf("Gigabeat S Rockbox Bootloader");
- printf("Version %s", version);
+ printf("Version " RBVERSION);
/* Initialize KPP so we can poll the button states */
button_init_device();
diff --git a/bootloader/gigabeat.c b/bootloader/gigabeat.c
index 81c0694..7a634b3 100644
--- a/bootloader/gigabeat.c
+++ b/bootloader/gigabeat.c
@@ -45,11 +45,10 @@
#include "usb.h"
#include "mmu-arm.h"
#include "rtc.h"
+#include "version.h"
#include <stdarg.h>
-char version[] = APPSVERSION;
-
void shutdown(void)
{
/* We need to gracefully spin down the disk to prevent clicks. */
@@ -174,7 +173,7 @@
verbose = true;
printf("Rockbox boot loader");
- printf("Version %s", version);
+ printf("Version " RBVERSION);
sleep(50); /* ATA seems to error without this pause */
diff --git a/bootloader/iaudio_coldfire.c b/bootloader/iaudio_coldfire.c
index a3b318b..5639a0e 100644
--- a/bootloader/iaudio_coldfire.c
+++ b/bootloader/iaudio_coldfire.c
@@ -42,6 +42,8 @@
#include "power.h"
#include "powermgmt.h"
#include "file.h"
+#include "version.h"
+
#include "pcf50606.h"
#include "common.h"
@@ -58,8 +60,6 @@
return 0;
}
-char version[] = APPSVERSION;
-
/* Reset the cookie for the crt0 crash check */
inline void __reset_cookie(void)
{
@@ -188,7 +188,7 @@
}
printf("Rockbox boot loader");
- printf("Version %s", version);
+ printf("Version " RBVERSION);
check_battery();
diff --git a/bootloader/ipod.c b/bootloader/ipod.c
index ee55579..af4c157 100644
--- a/bootloader/ipod.c
+++ b/bootloader/ipod.c
@@ -44,6 +44,7 @@
#include "common.h"
#include "hwcompat.h"
#include "usb.h"
+#include "version.h"
#define XSC(X) #X
#define SC(X) XSC(X)
@@ -56,9 +57,6 @@
/* A buffer to load the Linux kernel or Rockbox into */
unsigned char *loadbuffer = (unsigned char *)DRAM_START;
-/* Bootloader version */
-char version[] = APPSVERSION;
-
#if CONFIG_KEYPAD == IPOD_4G_PAD && !defined(IPOD_MINI)
/* check if number of seconds has past */
int timer_check(int clock_start, unsigned int usecs)
@@ -335,7 +333,7 @@
lcd_setfont(FONT_SYSFIXED);
printf("Rockbox boot loader");
- printf("Version: %s", version);
+ printf("Version: " RBVERSION);
printf("IPOD version: 0x%08x", IPOD_HW_REVISION);
i=ata_init();
diff --git a/bootloader/ipodnano2g.c b/bootloader/ipodnano2g.c
index 14b5bbc..b2b2138 100644
--- a/bootloader/ipodnano2g.c
+++ b/bootloader/ipodnano2g.c
@@ -44,6 +44,7 @@
#include "power.h"
#include "file.h"
#include "common.h"
+#include "version.h"
/* Safety measure - maximum allowed firmware image size.
The largest known current (October 2009) firmware is about 6.2MB so
@@ -54,9 +55,6 @@
/* The buffer to load the firmware into - use an uncached alias of 0x08000000 */
unsigned char *loadbuffer = (unsigned char *)0x48000000;
-/* Bootloader version */
-char version[] = APPSVERSION;
-
extern int line;
void fatal_error(void)
@@ -209,7 +207,7 @@
lcd_setfont(FONT_SYSFIXED);
printf("Rockbox boot loader");
- printf("Version: %s", version);
+ printf("Version: " RBVERSION);
i = storage_init();
diff --git a/bootloader/iriver_h1x0.c b/bootloader/iriver_h1x0.c
index f16a512..1afbafa 100644
--- a/bootloader/iriver_h1x0.c
+++ b/bootloader/iriver_h1x0.c
@@ -46,6 +46,7 @@
#include "eeprom_settings.h"
#include "rbunicode.h"
#include "common.h"
+#include "version.h"
#include <stdarg.h>
@@ -58,8 +59,6 @@
static bool recovery_mode = false;
#endif
-char version[] = APPSVERSION;
-
/* Reset the cookie for the crt0 crash check */
inline void __reset_cookie(void)
{
@@ -254,7 +253,7 @@
extern int line;
reset_screen();
- printf("Bootloader %s", version);
+ printf("Bootloader " RBVERSION);
check_battery();
printf("=========================");
line += FAILSAFE_OPTIONS;
@@ -502,7 +501,7 @@
lcd_setfont(FONT_SYSFIXED);
printf("Rockbox boot loader");
- printf("Version %s", version);
+ printf("Version " RBVERSION);
/* No need to wait here more because lcd_init and others already do that. */
// sleep(HZ/50); /* Allow the button driver to check the buttons */
diff --git a/bootloader/iriver_h300.c b/bootloader/iriver_h300.c
index d15efb9..893532c 100644
--- a/bootloader/iriver_h300.c
+++ b/bootloader/iriver_h300.c
@@ -47,6 +47,7 @@
#include "common.h"
#include "rbunicode.h"
#include "isp1362.h"
+#include "version.h"
#include <stdarg.h>
@@ -55,8 +56,6 @@
#define DRAM_START 0x31000000
-char version[] = APPSVERSION;
-
/* Reset the cookie for the crt0 crash check */
inline void __reset_cookie(void)
{
@@ -210,7 +209,7 @@
lcd_setfont(FONT_SYSFIXED);
printf("Rockbox boot loader");
- printf("Version %s", version);
+ printf("Version " RBVERSION);
sleep(HZ/50); /* Allow the button driver to check the buttons */
rec_button = ((button_status() & BUTTON_REC) == BUTTON_REC)
diff --git a/bootloader/main-e200r-installer.c b/bootloader/main-e200r-installer.c
index 0a7b56b..defdea4 100644
--- a/bootloader/main-e200r-installer.c
+++ b/bootloader/main-e200r-installer.c
@@ -39,9 +39,7 @@
#include "i2c.h"
#include "backlight-target.h"
#include "power.h"
-
-/* Bootloader version */
-char version[] = APPSVERSION;
+#include "version.h"
#define START_SECTOR_OF_ROM 1
#define ROMSECTOR_TO_HACK 63
@@ -116,7 +114,7 @@
lcd_setfont(FONT_SYSFIXED);
printf("Rockbox e200R installer");
- printf("Version: %s", version);
+ printf("Version: " RBVERSION);
printf(MODEL_NAME);
printf("");
diff --git a/bootloader/main-pp.c b/bootloader/main-pp.c
index 4f1fe2a..37f42ed 100644
--- a/bootloader/main-pp.c
+++ b/bootloader/main-pp.c
@@ -39,6 +39,7 @@
#include "crc32-mi4.h"
#include <string.h>
#include "power.h"
+#include "version.h"
#if defined(SANSA_E200) || defined(PHILIPS_SA9200)
#include "i2c.h"
#include "backlight-target.h"
@@ -95,9 +96,6 @@
/* A buffer to load the original firmware or Rockbox into */
unsigned char *loadbuffer = (unsigned char *)DRAM_START;
-/* Bootloader version */
-char version[] = APPSVERSION;
-
/* Locations and sizes in hidden partition on Sansa */
#if (CONFIG_STORAGE & STORAGE_SD)
#define PPMI_SECTOR_OFFSET 1024
@@ -525,7 +523,7 @@
lcd_setfont(FONT_SYSFIXED);
printf("Rockbox boot loader");
- printf("Version: %s", version);
+ printf("Version: " RBVERSION);
printf(MODEL_NAME);
i=storage_init();
diff --git a/bootloader/meizu_m3.c b/bootloader/meizu_m3.c
index 61aa3ce..7c0a5bc 100644
--- a/bootloader/meizu_m3.c
+++ b/bootloader/meizu_m3.c
@@ -54,7 +54,6 @@
#include "audiohw.h"
#include "rtc.h"
-char version[] = APPSVERSION;
#define LONG_DELAY 200000
#define SHORT_DELAY 50000
#define PAUSE_DELAY 50000
diff --git a/bootloader/meizu_m6sl.c b/bootloader/meizu_m6sl.c
index 0b335be..c230ec3 100644
--- a/bootloader/meizu_m6sl.c
+++ b/bootloader/meizu_m6sl.c
@@ -47,7 +47,6 @@
#include <stdarg.h>
-char version[] = APPSVERSION;
#define LONG_DELAY 200000
#define SHORT_DELAY 50000
#define PAUSE_DELAY 50000
diff --git a/bootloader/meizu_m6sp.c b/bootloader/meizu_m6sp.c
index 064d3fc..c57fe91 100644
--- a/bootloader/meizu_m6sp.c
+++ b/bootloader/meizu_m6sp.c
@@ -45,7 +45,6 @@
#include <stdarg.h>
-char version[] = APPSVERSION;
#define LONG_DELAY 200000
#define SHORT_DELAY 50000
#define PAUSE_DELAY 50000
diff --git a/bootloader/mini2440.c b/bootloader/mini2440.c
index d735084..f4441c3 100644
--- a/bootloader/mini2440.c
+++ b/bootloader/mini2440.c
@@ -46,6 +46,7 @@
#include "dma-target.h"
#include "uart-s3c2440.h"
#include "led-mini2440.h"
+#include "version.h"
int main(void)
@@ -78,7 +79,7 @@
verbose = true;
printf("Rockbox boot loader");
- printf("Version %s", APPSVERSION);
+ printf("Version " RBVERSION);
rc = storage_init();
if(rc)
diff --git a/bootloader/mpio_hd200.c b/bootloader/mpio_hd200.c
index a031234..8062f7e 100644
--- a/bootloader/mpio_hd200.c
+++ b/bootloader/mpio_hd200.c
@@ -43,6 +43,7 @@
#include "file.h"
#include "common.h"
+#include "version.h"
#include <stdarg.h>
@@ -78,8 +79,6 @@
return 0;
}
-char version[] = APPSVERSION;
-
static inline bool _charger_inserted(void)
{
return (GPIO1_READ & (1<<14)) ? false : true;
@@ -233,7 +232,7 @@
/* backbone of menu */
/* run the loader */
printf("Rockbox boot loader");
- printf("Ver: %s", version);
+ printf("Ver: " RBVERSION);
check_battery();
diff --git a/bootloader/mrobe500.c b/bootloader/mrobe500.c
index 9052cbd..d6ca58e 100644
--- a/bootloader/mrobe500.c
+++ b/bootloader/mrobe500.c
@@ -45,6 +45,7 @@
#include "tsc2100.h"
#include "time.h"
#include "system-arm.h"
+#include "version.h"
void main(void)
{
@@ -83,7 +84,7 @@
verbose = true;
printf("Rockbox boot loader");
- printf("Version %s", APPSVERSION);
+ printf("Version " RBVERSION);
/* Enter USB mode without USB thread */
if(usb_detect() == USB_INSERTED)
diff --git a/bootloader/ondavx747.c b/bootloader/ondavx747.c
index 994f45d..4dfc78d 100644
--- a/bootloader/ondavx747.c
+++ b/bootloader/ondavx747.c
@@ -33,6 +33,7 @@
#include "disk.h"
#include "string.h"
#include "adc.h"
+#include "version.h"
extern int show_logo(void);
extern void power_off(void);
@@ -296,7 +297,7 @@
if(verbose)
reset_screen();
printf(MODEL_NAME" Rockbox Bootloader");
- printf("Version "APPSVERSION);
+ printf("Version " RBVERSION);
#ifdef HAS_BUTTON_HOLD
if(button_hold())
diff --git a/bootloader/samsung_yps3.c b/bootloader/samsung_yps3.c
index 3cf5cb7..d4eff81 100644
--- a/bootloader/samsung_yps3.c
+++ b/bootloader/samsung_yps3.c
@@ -57,7 +57,6 @@
#include "wmcodec.h"
#include "nand-target.h"
-char version[] = APPSVERSION;
#define LONG_DELAY 200000
#define SHORT_DELAY 50000
#define PAUSE_DELAY 50000
diff --git a/bootloader/show_logo.c b/bootloader/show_logo.c
index 09c6dbd..3273034 100644
--- a/bootloader/show_logo.c
+++ b/bootloader/show_logo.c
@@ -23,13 +23,14 @@
#include "font.h"
#include <stdio.h>
#include <string.h>
+#include "version.h"
#include "bitmaps/rockboxlogo.h"
#if LCD_WIDTH <= 128
-#define BOOT_VERSION ("Boot " APPSVERSION)
+#define BOOT_VERSION ("Boot " RBVERSION)
#else
-#define BOOT_VERSION ("Boot Ver. " APPSVERSION)
+#define BOOT_VERSION ("Boot Ver. " RBVERSION)
#endif
/* Ensure TEXT_XPOS is >= 0 */
diff --git a/bootloader/telechips.c b/bootloader/telechips.c
index 98f8beb..9e9e75c 100644
--- a/bootloader/telechips.c
+++ b/bootloader/telechips.c
@@ -43,6 +43,7 @@
#include "power.h"
#include "file.h"
#include "common.h"
+#include "version.h"
/* Show the Rockbox logo - in show_logo.c */
extern int show_logo(void);
@@ -50,8 +51,6 @@
/* Address to load main Rockbox image to */
#define LOAD_ADDRESS 0x20000000 /* DRAM_START */
-char version[] = APPSVERSION;
-
extern int line;
#define MAX_LOAD_SIZE (8*1024*1024) /* Arbitrary, but plenty. */
@@ -152,7 +151,7 @@
available for loading the firmware. Otherwise display the debug screen. */
#ifdef TCCBOOT
printf("Rockbox boot loader");
- printf("Version %s", version);
+ printf("Version " RBVERSION);
printf("ATA");
rc = storage_init();
diff --git a/bootloader/tpj1022.c b/bootloader/tpj1022.c
index db709d1..159dcc6 100644
--- a/bootloader/tpj1022.c
+++ b/bootloader/tpj1022.c
@@ -39,8 +39,6 @@
#include "file.h"
#include "common.h"
-char version[] = APPSVERSION;
-
void* main(void)
{
int i;
diff --git a/docs/PLUGIN_API.new b/docs/PLUGIN_API.new
index 1989386..75c82d4 100644
--- a/docs/PLUGIN_API.new
+++ b/docs/PLUGIN_API.new
@@ -39,7 +39,7 @@
\return
\description
-const char *appsversion
+const char *rbversion
\return version of the plugin API
\description
diff --git a/firmware/firmware.make b/firmware/firmware.make
index 52b5a19..105fe7e 100644
--- a/firmware/firmware.make
+++ b/firmware/firmware.make
@@ -17,13 +17,14 @@
ifeq (,$(findstring -DARCHOS_PLAYER,$(TARGET)))
FIRMLIB_OBJ += $(BUILDDIR)/sysfont.o
endif
+FIRMLIB_OBJ += $(BUILDDIR)/version.o
OTHER_SRC += $(FIRMLIB_SRC)
FIRMLIB = $(BUILDDIR)/firmware/libfirmware.a
SYSFONT = $(ROOTDIR)/fonts/08-Schumacher-Clean.bdf
-CLEANOBJS += $(BUILDDIR)/sysfont.*
+CLEANOBJS += $(BUILDDIR)/sysfont.* $(BUILDDIR)/version.*
# Limits for the built-in sysfont: ASCII for bootloaders, ISO8859-1 for normal builds
ifneq (,$(findstring -DBOOTLOADER,$(EXTRA_DEFINES)))
@@ -43,3 +44,5 @@
$(call PRINTS,CONVBDF $(subst $(ROOTDIR)/,,$<))$(TOOLSDIR)/convbdf -l $(MAXCHAR) -c -o $(BUILDDIR)/sysfont.c $<
$(call PRINTS,CC $(subst $(ROOTDIR)/,,$(BUILDDIR)/sysfont.c))$(CC) $(CFLAGS) -c $(BUILDDIR)/sysfont.c -o $@
+$(BUILDDIR)/version.c $(BUILDDIR)/version.h:
+ $(TOOLSDIR)/genversion.sh $(BUILDDIR) $(TOOLSDIR)/version.sh $(ROOTDIR)
diff --git a/flash/bootbox/Makefile b/flash/bootbox/Makefile
index 7ef5364..754f95d 100644
--- a/flash/bootbox/Makefile
+++ b/flash/bootbox/Makefile
@@ -27,7 +27,7 @@
endif
CFLAGS = $(GCCOPTS) $(INCLUDES) $(TARGET) $(DEFINES) \
- -DAPPSVERSION=\"$(VERSION)\" $(EXTRA_DEFINES) -DMEM=${MEMORYSIZE}
+ $(EXTRA_DEFINES) -DMEM=${MEMORYSIZE}
OBJS := $(SRC:%.c=$(OBJDIR)/%.o)
SOURCES = $(SRC)
diff --git a/gdb/Makefile b/gdb/Makefile
index 8318199..0cd9990 100644
--- a/gdb/Makefile
+++ b/gdb/Makefile
@@ -28,7 +28,7 @@
endif
CFLAGS = $(GCCOPTS) $(INCLUDES) $(TARGET) $(DEFINES) \
- -DAPPSVERSION=\"$(VERSION)\" $(EXTRA_DEFINES) -DMEM=${MEMORYSIZE}
+ $(EXTRA_DEFINES) -DMEM=${MEMORYSIZE}
OBJS := $(SRC:%.c=$(OBJDIR)/%.o)
SOURCES = $(SRC)
diff --git a/tools/configure b/tools/configure
index d091e32..9654cc6 100755
--- a/tools/configure
+++ b/tools/configure
@@ -3103,7 +3103,6 @@
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 0000000..cf8d999
--- /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 f2373f5..ddea297 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)
diff --git a/uisimulator/common/Makefile b/uisimulator/common/Makefile
index ef68230..f54df57 100644
--- a/uisimulator/common/Makefile
+++ b/uisimulator/common/Makefile
@@ -32,7 +32,7 @@
OBJS := $(SRC:%.c=$(OBJDIR)/%.o)
DEFINES := -DHAVE_CONFIG_H -DGETTIMEOFDAY_TWO_ARGS -DSIMULATOR \
-$(TARGET) -DAPPSVERSION=\"$(VERSION)\" -DMEM=${MEMORYSIZE} $(EXTRA_DEFINES)
+$(TARGET) -DMEM=${MEMORYSIZE} $(EXTRA_DEFINES)
SOURCES = $(SRC)