mirror of
https://github.com/netsurf-browser/netsurf
synced 2024-11-24 07:19:37 +03:00
048249f71d
This fixes the bug with lpu's iconv filter causing freezing on OS4 NetSurf. With an appropriate font (eg. Bitstream Cyberbit) Japanese characters will now display. Test websites work, but proper Japanese websites cause an assert which may be caused by amiga/font.c incorrect text size calculations. svn path=/trunk/netsurf/; revision=10546
188 lines
6.4 KiB
Plaintext
188 lines
6.4 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
|
|
|
|
|
|
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
|
|
|
|
|
|
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.
|