summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCelestar <celestar@openttd.org>2005-03-19 23:23:56 +0000
committerCelestar <celestar@openttd.org>2005-03-19 23:23:56 +0000
commit1990c139d55324c405eca579bdfd7be774f3a9ee (patch)
tree01221a843f1ca992763f28c3d14a1335930a9b67
parentf179dc7acc56baf42a7455b0f3df8c27cd1ff98c (diff)
downloadopenttd-1990c139d55324c405eca579bdfd7be774f3a9ee.tar.xz
(svn r2032) -Codechange: A less hackish version of SVN version detection for OS/2 (orudge)
-rw-r--r--docs/Readme_OS2.txt16
-rw-r--r--os/os2/svn_version.cmd25
-rw-r--r--os/os2/svn_version.mak34
-rw-r--r--os/os2/svnver1.c3
-rw-r--r--os/os2/svnver2.c4
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