215 lines
6.4 KiB
Plaintext
215 lines
6.4 KiB
Plaintext
--------------------------------------------------------------------------------
|
|
Build Instructions for AmigaOS NetSurf 24 July 2009
|
|
--------------------------------------------------------------------------------
|
|
|
|
This document provides instructions for building the AmigaOS version of
|
|
NetSurf and provides guidance on obtaining NetSurf's build dependencies.
|
|
|
|
AmigaOS NetSurf has been tested on AmigaOS 4.0 July 2007 Update and AmigaOS
|
|
4.1. It will require modification for AmigaOS 3.9 or earlier, or other
|
|
Amiga-like platforms.
|
|
|
|
AmigaOS NetSurf will build against newlib by default, building against
|
|
clib2 has not been tested.
|
|
|
|
|
|
Building and executing NetSurf
|
|
=================================
|
|
|
|
First of all, you should examine the contents of Makefile.defaults
|
|
and enable and disable relevant features as you see fit by creating
|
|
a Makefile.config. Some of these options can be automatically
|
|
detected and used, although it is better to explicitly enable or
|
|
disable options.
|
|
|
|
You should then obtain NetSurf's dependencies, keeping in mind which options
|
|
you have enabled in the configuration file. See the next section for
|
|
specifics.
|
|
|
|
Once done, to build AmigaOS NetSurf on OS4, simply run:
|
|
|
|
1> gmake
|
|
|
|
If that produces errors, you probably don't have some of NetSurf's build
|
|
dependencies installed. See "Obtaining NetSurf's dependencies" below, or turn
|
|
off the complaining features in a Makefile.config.
|
|
|
|
Running NetSurf from the build tree requires some setup:
|
|
|
|
1> makelink resources amiga/resources force
|
|
1> copy amiga/resources/themes/default/NetSurf.info NetSurf.info
|
|
|
|
It should then be possible to run NetSurf by executing NetSurf from the
|
|
Shell or by double-clicking on the icon.
|
|
|
|
|
|
Obtaining NetSurf's build dependencies
|
|
========================================
|
|
|
|
Many of NetSurf's dependencies are included with the OS4 SDK or available
|
|
from Aminet or OS4Depot. The remainder must be built manually.
|
|
|
|
|
|
cURL
|
|
------
|
|
|
|
A version of libcurl built for newlib is available from Aminet
|
|
|
|
http://www.aminet.net/package/dev/lib/libcurl
|
|
|
|
There is a shared object version included with some OWB releases. To use
|
|
this when compiling with Cairo support, a link must be made:
|
|
|
|
1> makelink sdk:local/newlib/lib/libcurl.so sobjs:libcurl-7.16.so soft
|
|
|
|
|
|
libmng
|
|
--------
|
|
|
|
NetSurf uses libMNG to display MNG and PNG files.
|
|
It builds without any problems on OS4, or available from Aminet:
|
|
|
|
http://www.aminet.net/package/dev/lib/libmng_so
|
|
|
|
|
|
libxml2
|
|
---------
|
|
|
|
libxml2 is available from Aminet:
|
|
|
|
http://www.aminet.net/package/dev/lib/libxml2
|
|
|
|
The shared object version included with OS4.1 does work with NetSurf,
|
|
however the "ELF QuickFix" must be installed from Hyperion's website.
|
|
|
|
The shared object can then be enabled with the following command:
|
|
|
|
1> makelink sdk:local/newlib/lib/libxml2.so sobjs:libxml2-2.6.so soft
|
|
|
|
|
|
OpenSSL
|
|
----------
|
|
|
|
NetSurf uses OpenSSL for encrypted transfers.
|
|
|
|
http://www.os4depot.net/share/development/library/misc/libopenssl.lha
|
|
|
|
There is a shared object version included with some OWB releases. To use
|
|
this when compiling with Cairo support, a link must be made:
|
|
|
|
1> makelink sdk:local/newlib/lib/libssl.so sobjs:libssl-0.9.8.so soft
|
|
1> makelink sdk:local/newlib/lib/libcrypto.so sobjs:libssl-0.9.8.so soft
|
|
|
|
|
|
Libnsbmp
|
|
----------
|
|
|
|
NetSurf has its own library for decoding and rendering BMPs, ICOs, etc.
|
|
You can check it out from svn://svn.netsurf-browser.org/trunk/libnsbmp
|
|
|
|
To build:
|
|
|
|
1> gmake
|
|
|
|
|
|
Libnsgif
|
|
----------
|
|
|
|
NetSurf has its own library for decoding and rendering GIFs. You can check
|
|
it out from svn://svn.netsurf-browser.org/trunk/libnsgif
|
|
|
|
To build:
|
|
|
|
1> gmake
|
|
|
|
|
|
Hubbub
|
|
--------
|
|
|
|
NetSurf requires Hubbub, the project's HTML parser. To build this, you will
|
|
also require libparserutils. Firstly, check out libparserutils from;
|
|
|
|
svn://svn.netsurf-browser.org/trunk/libparserutils
|
|
|
|
and do the usual "gmake". Once this is built and installed, you
|
|
can check out and build Hubbub. Check out hubbub from;
|
|
|
|
svn://svn.netsurf-browser.org/trunk/hubbub
|
|
|
|
and again do the usual "gmake", or "gmake BUILD_SHARED=yes" for the shared
|
|
object version.
|
|
|
|
|
|
Librosprite
|
|
-------------
|
|
|
|
NetSurf uses James Shaw's librosprite for rendering RISC OS Sprite files on
|
|
non-RISC OS platforms. The Makefile will automatically use librosprite, you
|
|
can disable it by creating a Makefile.config.
|
|
|
|
To build librosprite, check out from svn://svn.rjek.com/jshaw/libsprite/trunk
|
|
|
|
1> gmake
|
|
|
|
|
|
Libhpdf
|
|
---------
|
|
|
|
NetSurf can use Haru PDF to enable PDF export and printing in GTK. This
|
|
is currently enabled by default, and cannot be auto-detected by the Makefile.
|
|
If you wish to disable it, do so by creating a Makefile.config.
|
|
|
|
Haru PDF can be obtained from http://libharu.sourceforge.net/, although we
|
|
currently depend on features that the official version does not have. You
|
|
can obtain our patched version from the following Subversion address until
|
|
the patches are accepted upstream;
|
|
|
|
svn://svn.netsurf-browser.org/trunk/libhpdf
|
|
|
|
|
|
libregex
|
|
----------
|
|
|
|
A version of the regular expression library can be obtained from Aminet:
|
|
|
|
http://www.aminet.net/package/dev/lib/libregex-4.4.3
|
|
|
|
|
|
libsvgtiny
|
|
------------
|
|
|
|
Enabling SVG support requires libsvgtiny, which can be obtained from SVN:
|
|
|
|
svn://svn.netsurf-browser.org/trunk/libsvgtiny
|
|
|
|
Building libsvgtiny requires gperf available from Aminet:
|
|
|
|
http://www.aminet.net/package/dev/c/gperf
|
|
|
|
|
|
openurl.library
|
|
-----------------
|
|
|
|
The AmigaOS mailto: URL support uses openurl.library, this and the includes
|
|
can be obtained from Aminet:
|
|
|
|
http://www.aminet.net/package/comm/www/OpenURL-OS4
|
|
|
|
|
|
General requirements
|
|
----------------------
|
|
|
|
SDK:newlib/include/strings.h needs to be modified by adding the following:
|
|
|
|
extern int strcasecmp(const char *, const char *);
|
|
extern int strncasecmp(const char *, const char *, size_t);
|
|
|
|
amiga/version.c is generated by version.rexx using the SVN command. If
|
|
the source has not been checked out from SVN, or is being cross-compiled,
|
|
this file will need to be created by hand. See the end of version.rexx
|
|
for the variables that are defined in the file.
|
|
|
|
Please note that building with Cairo (option NETSURF_AMIGA_USE_CAIRO) will
|
|
link NetSurf against shared objects, and require the OS4.1 SDK to build and
|
|
AmigaOS 4.1 to run.
|