diff options
author | Celestar <celestar@openttd.org> | 2005-03-19 23:23:56 +0000 |
---|---|---|
committer | Celestar <celestar@openttd.org> | 2005-03-19 23:23:56 +0000 |
commit | 1990c139d55324c405eca579bdfd7be774f3a9ee (patch) | |
tree | 01221a843f1ca992763f28c3d14a1335930a9b67 | |
parent | f179dc7acc56baf42a7455b0f3df8c27cd1ff98c (diff) | |
download | openttd-1990c139d55324c405eca579bdfd7be774f3a9ee.tar.xz |
(svn r2032) -Codechange: A less hackish version of SVN version detection for OS/2 (orudge)
-rw-r--r-- | docs/Readme_OS2.txt | 16 | ||||
-rw-r--r-- | os/os2/svn_version.cmd | 25 | ||||
-rw-r--r-- | os/os2/svn_version.mak | 34 | ||||
-rw-r--r-- | os/os2/svnver1.c | 3 | ||||
-rw-r--r-- | os/os2/svnver2.c | 4 |
5 files changed, 23 insertions, 59 deletions
diff --git a/docs/Readme_OS2.txt b/docs/Readme_OS2.txt index ee9b64438..b5e44646e 100644 --- a/docs/Readme_OS2.txt +++ b/docs/Readme_OS2.txt @@ -103,20 +103,14 @@ A Note About Subversion Revision Numbers ---------------------------------------- The project file uses a bit of a hack to find out the SVN revision number and -create an appropriate rev.c file. It does this using a batch file and a GNU -makefile, as well as the SVN tools (specifically, "svnversion"). For this to -work successfully, you'll need the SVN tools installed and in your path, as -well as some of the GNU tools (GNU make, and some tools from textutils, -possibly others too) - otherwise, a generic rev.c with the revision set to -"norev000" will be created. To specifically force a version number, set -the environment variable "RELEASE" to the number (eg, "0.3.6") -before- -starting the Open Watcom IDE (which must be launched from the same shell +create an appropriate rev.c file. You'll need the SVN tools in your path +(specifically, "svnversion"). If "svnversion" can't be found, a generic rev.c +with the revision set to "norev000" will be created. To specifically force a +version number, set the environment variable "RELEASE" to the number (eg, "0.3.6") +-before- starting the Open Watcom IDE (which must be launched from the same shell session). Also, beware, as you WILL cause incompatibilities if you try to play a multiplayer game with a different version. -Apologies for the complicated hack used here, but it's a bit of a pain to do, -as any Windows MSVC user will tell you. ;) - Compiling --------- diff --git a/os/os2/svn_version.cmd b/os/os2/svn_version.cmd index 6085b8ece..2afa966b5 100644 --- a/os/os2/svn_version.cmd +++ b/os/os2/svn_version.cmd @@ -1,33 +1,30 @@ @echo off echo Running SVN version detection script... rem -rem Requires subversion (`svnversion'), GNU make and some other GNU tools (eg, textutils) -rem installed - a hack, I know, but it seems to work if you have the appropriate tools -rem installed. +rem Requires subversion (`svnversion') to be installed rem cd ..\.. if not exist .svn goto nosvn -make -f os/os2/svn_version.mak -if not %ERRORLEVEL%==0 goto nomake +if not "%RELEASE%"=="" goto forcerelease +svnversion -n . > os\os2\svnver.tmp +if not "%ERRORLEVEL%"=="0" goto nosvn +copy os\os2\svnver1.c+os\os2\svnver.tmp+os\os2\svnver2.c rev.c /a /y > nul 2> nul goto end -:nomake -gmake -f os/os2/svn_version.mak -if not %ERRORLEVEL%==0 goto nomake2 +:forcerelease +echo Forcing release string "%RELEASE%"... +echo const char _openttd_revision[] = "%RELEASE%"; > rev.c +echo const int _revision_number = 0; >> rev.c goto end -:nomake2 -echo Neither `make` nor `gmake' could be found, SVN version detection unable to -echo run. Default rev.c used... :nosvn +echo Error executing `svnversion' or no SVN data detected echo const char _openttd_revision[] = "norev000"; > rev.c echo const int _revision_number = 0; >> rev.c -echo #ifdef __MORPHOS__ >> rev.c -echo const char morphos_versions_tag[] = "\\0$VER: OpenTTD norev000 (00.00.00) © OpenTTD Team [MorphOS, PowerPC]"; >> rev.c -echo #endif >> rev.c goto end :end cd os\os2 +del svnver.tmp > nul 2> nul rem end diff --git a/os/os2/svn_version.mak b/os/os2/svn_version.mak deleted file mode 100644 index fb21456b3..000000000 --- a/os/os2/svn_version.mak +++ /dev/null @@ -1,34 +0,0 @@ -all : rev.c - -# What revision are we compiling, if we have an idea? -REV_NUMBER := $(shell if test -d .svn; then svnversion . | tr -dc 0-9; fi) - -ifdef RELEASE -REV:=$(RELEASE) -else -REV := $(shell if test -d .svn; then svnversion . | awk '{ print "r"$$0 }'; fi) -tmp_test:=$(shell echo "$(REV)" | grep "M" ) -ifdef tmp_test -REV_NUMBER:=1 -endif -endif - -ifndef REV_NUMBER -REV_NUMBER:=0 -endif - -rev.c: FORCE - @# setting the revision number in a place, there the binary can read it - @echo 'const char _openttd_revision[] = "$(REV)";' >>rev.c.new - @echo 'const int _revision_number = $(REV_NUMBER);' >>rev.c.new - @# some additions for MorphOS versions tag - @echo '#ifdef __MORPHOS__' >>rev.c.new - @echo 'const char morphos_versions_tag[] = "\\0$$VER: OpenTTD $(REV) ('${BUILDDATE}') © OpenTTD Team [MorphOS, PowerPC]";' >>rev.c.new - @echo '#endif' >>rev.c.new - @# Only update the real rev.c if it actually changed, to prevent - @# useless rebuilds. - @cmp -s rev.c rev.c.new 2>/dev/null || mv rev.c.new rev.c - @rm -f rev.c.new - -FORCE: - diff --git a/os/os2/svnver1.c b/os/os2/svnver1.c new file mode 100644 index 000000000..f198dd6bf --- /dev/null +++ b/os/os2/svnver1.c @@ -0,0 +1,3 @@ +/* rev.c part #1 for OS/2 - ensure no newline at end of file! */ + +const char _openttd_revision[] = "
\ No newline at end of file diff --git a/os/os2/svnver2.c b/os/os2/svnver2.c new file mode 100644 index 000000000..02d87603c --- /dev/null +++ b/os/os2/svnver2.c @@ -0,0 +1,4 @@ +"; +const int _revision_number = 0; + +/* rev.c part 2 for OS/2 - ensure no newline at start of file! */
\ No newline at end of file |