183 lines
6.1 KiB
Plaintext
183 lines
6.1 KiB
Plaintext
--------------------------------------------------------------------------------
|
|
Build Instructions for AmigaOS NetSurf 13 February 2010
|
|
--------------------------------------------------------------------------------
|
|
|
|
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.
|
|
|
|
The NetSurf project's libraries
|
|
---------------------------------
|
|
|
|
The NetSurf project has developed several libraries which are required by
|
|
the browser. To fetch each of these libraries, run the following commands:
|
|
|
|
$ svn co svn://svn.netsurf-browser.org/trunk/libparserutils
|
|
$ svn co svn://svn.netsurf-browser.org/trunk/libwapcaplet
|
|
$ svn co svn://svn.netsurf-browser.org/trunk/hubbub
|
|
$ svn co svn://svn.netsurf-browser.org/trunk/libcss
|
|
$ svn co svn://svn.netsurf-browser.org/trunk/libnsgif
|
|
$ svn co svn://svn.netsurf-browser.org/trunk/libnsbmp
|
|
$ svn co svn://svn.netsurf-browser.org/trunk/librosprite
|
|
$ svn co svn://svn.netsurf-browser.org/trunk/libsvgtiny
|
|
|
|
To build and install these libraries, simply enter each of their directories
|
|
and run:
|
|
|
|
1> gmake install
|
|
|
|
| Note: We advise enabling iconv() support in libparserutils, which vastly
|
|
| increases the number of supported character sets. To do this,
|
|
| create a file called Makefile.config.override in the libparserutils
|
|
| directory, containing the following lines:
|
|
|
|
|
| CFLAGS += -DWITH_ICONV_FILTER
|
|
| LDFLAGS += -liconv
|
|
|
|
|
| This requires libiconv as iconv support in newlib.library is buggy.
|
|
|
|
|
| For more information, consult the libparserutils README file.
|
|
|
|
| Note: Building libsvgtiny requires gperf, which is available from Aminet:
|
|
|
|
|
| http://www.aminet.net/package/dev/c/gperf
|
|
|
|
|
|
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
|
|
|
|
|
|
Libharu
|
|
---------
|
|
|
|
NetSurf can use Haru PDF to enable PDF export. Haru PDF can be obtained
|
|
from http://libharu.org/. We require libharu 2.2 or later.
|
|
|
|
| Note: libharu cannot be auto-detected by the Makefile. If you wish to
|
|
| enable it, do so by creating a Makefile.config file.
|
|
|
|
|
|
libregex
|
|
----------
|
|
|
|
A version of the regular expression library can be obtained from Aminet:
|
|
|
|
http://www.aminet.net/package/dev/lib/libregex-4.4.3
|
|
|
|
|
|
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.
|