mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-05 22:04:57 +00:00
(svn r2032) -Codechange: A less hackish version of SVN version detection for OS/2 (orudge)
This commit is contained in:
parent
f179dc7acc
commit
1990c139d5
@ -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
|
||||
---------
|
||||
|
||||
|
@ -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
|
||||
|
@ -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:
|
||||
|
3
os/os2/svnver1.c
Normal file
3
os/os2/svnver1.c
Normal file
@ -0,0 +1,3 @@
|
||||
/* rev.c part #1 for OS/2 - ensure no newline at end of file! */
|
||||
|
||||
const char _openttd_revision[] = "
|
4
os/os2/svnver2.c
Normal file
4
os/os2/svnver2.c
Normal file
@ -0,0 +1,4 @@
|
||||
";
|
||||
const int _revision_number = 0;
|
||||
|
||||
/* rev.c part 2 for OS/2 - ensure no newline at start of file! */
|
Loading…
Reference in New Issue
Block a user