summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Young <chris@unsatisfactorysoftware.co.uk>2008-10-08 22:55:58 +0000
committerChris Young <chris@unsatisfactorysoftware.co.uk>2008-10-08 22:55:58 +0000
commitea205ecf23c1d2b4eb1c2bec6f9f14751106b5be (patch)
tree2fb8cd69e1044933fb1f01643ccfdc3064742342
parent54013eb1fae2de815e7036e161089e691136fa42 (diff)
downloadnetsurf-ea205ecf23c1d2b4eb1c2bec6f9f14751106b5be.tar.gz
netsurf-ea205ecf23c1d2b4eb1c2bec6f9f14751106b5be.tar.bz2
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
-rw-r--r--Makefile8
-rw-r--r--Makefile.sources2
-rw-r--r--amiga/version.rexx45
3 files changed, 54 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index e1c7886f8..6d7c0c157 100644
--- a/Makefile
+++ b/Makefile
@@ -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
diff --git a/Makefile.sources b/Makefile.sources
index c8758744c..cb263db67 100644
--- a/Makefile.sources
+++ b/Makefile.sources
@@ -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
diff --git a/amiga/version.rexx b/amiga/version.rexx
new file mode 100644
index 000000000..b649d7b53
--- /dev/null
+++ b/amiga/version.rexx
@@ -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";'
+