Generate AmigaOS version string in correct format, taking:

netsurf_version_major from desktop/version.c as version
SVN revision from local repository as revision

This should ensure that the internal version number will increase correctly
(version and revision are treated as seperate values > 0), whereas NetSurf's public
release version (currently coming up to 2.0) is not guaranteed to be in legal AmigaOS
format or increase validly under AmigaOS rules.

The internal version string has been added for future AmiUpdate support as well as
making it easier to see and compare versions of interim builds.

amiga/version.c can safely be removed from the source list when cross-compiling (where
ARexx is not available), or manually created, as it only defines this internal
version string and does not contain any code.

amiga/version.c is automatically removed after linking to ensure it always reflects
the current SVN revision.


svn path=/trunk/netsurf/; revision=5510
This commit is contained in:
Chris Young 2008-10-08 22:55:58 +00:00
parent 54013eb1fa
commit ea205ecf23
3 changed files with 54 additions and 1 deletions

View File

@ -580,6 +580,14 @@ $(RSRC_BEOS): $(RDEF_BEOS) $(RDEP_BEOS)
$(Q)$(BEOS_RC) -o $@ $<
endif
ifeq ($(HOST),amiga)
$(VQ)echo " CLEAN: amiga/version.c"
$(Q)$(RM) amiga/version.c
amiga/version.c: amiga/version.rexx
$(VQ)echo " AREXX: amiga/version.rexx"
$(Q)rx amiga/version.rexx >amiga/version.c
endif
ifeq ($(TARGET),riscos)
# Native RO build is different as 1) it can't do piping and 2) ccres on
# RO does not understand Unix filespec

View File

@ -88,7 +88,7 @@ S_DEBUG := $(addprefix debug/,$(S_DEBUG))
# S_AMIGA are sources purely for the Amiga build
S_AMIGA := compat.c gui.c tree.c history.c hotlist.c schedule.c \
thumbnail.c misc.c bitmap.c font.c filetype.c utf8.c login.c \
plotters.c object.c menu.c save_pdf.c arexx.c
plotters.c object.c menu.c save_pdf.c arexx.c version.c
S_AMIGA := $(addprefix amiga/,$(S_AMIGA))
# S_FRAMEBUFFER are sources purely for the framebuffer build

45
amiga/version.rexx Normal file
View File

@ -0,0 +1,45 @@
/*
* Copyright 2008 Chris Young <chris@unsatisfactorysoftware.co.uk>
*
* This file is part of NetSurf, http://www.netsurf-browser.org/
*
* NetSurf 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; version 2 of the License.
*
* NetSurf is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/* This file generates an AmigaOS compliant version string in version.h */
address command 'svn info >t:ns_svn'
if open('tmp','t:ns_svn','R') then do
do until word(var,1) = "REVISION:"
var = upper(readln('tmp'))
end
dummy = close('tmp')
address command 'delete t:ns_svn'
end
svnrev = word(var,2)
if open('tmp','desktop/version.c','R') then do
do until word(var,3) = "NETSURF_VERSION_MAJOR"
var = upper(readln('tmp'))
end
dummy = close('tmp')
end
majorver = compress(word(var,5),";")
date = translate(date('E'),'.','/')
say '/* This file was automatically generated from version.rexx */'
say 'static __attribute__((used)) char verstag[] = "\0$VER: NetSurf' majorver || '.' || svnrev '(' || date || ')\0";'