Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. --------------------------------------------------------------------------------
  2.   Build Instructions for AmigaOS NetSurf                      13 February 2010
  3. --------------------------------------------------------------------------------
  4.  
  5.   This document provides instructions for building the AmigaOS version of
  6.   NetSurf and provides guidance on obtaining NetSurf's build dependencies.
  7.  
  8.   AmigaOS NetSurf has been tested on AmigaOS 4.0 July 2007 Update and AmigaOS
  9.   4.1.  It will require modification for AmigaOS 3.9 or earlier, or other
  10.   Amiga-like platforms.
  11.  
  12.   AmigaOS NetSurf will build against newlib by default, building against
  13.   clib2 has not been tested.
  14.  
  15.  
  16.   Building and executing NetSurf
  17. ================================
  18.  
  19.   First of all, you should examine the contents of Makefile.defaults
  20.   and enable and disable relevant features as you see fit by creating
  21.   a Makefile.config.  Some of these options can be automatically
  22.   detected and used, although it is better to explicitly enable or
  23.   disable options.
  24.  
  25.   You should then obtain NetSurf's dependencies, keeping in mind which options
  26.   you have enabled in the configuration file.  See the next section for
  27.   specifics.
  28.  
  29.   Once done, to build AmigaOS NetSurf on OS4, simply run:
  30.  
  31.       1> gmake
  32.  
  33.   If that produces errors, you probably don't have some of NetSurf's build
  34.   dependencies installed. See "Obtaining NetSurf's dependencies" below, or turn
  35.   off the complaining features in a Makefile.config.
  36.  
  37.   Running NetSurf from the build tree requires some setup:
  38.  
  39.       1> makelink resources amiga/resources force
  40.       1> copy amiga/resources/themes/default/NetSurf.info NetSurf.info
  41.  
  42.   It should then be possible to run NetSurf by executing NetSurf from the
  43.   Shell or by double-clicking on the icon.
  44.  
  45.  
  46.   Obtaining NetSurf's build dependencies
  47. ========================================
  48.  
  49.   Many of NetSurf's dependencies are included with the OS4 SDK or available
  50.   from Aminet or OS4Depot.  The remainder must be built manually.
  51.  
  52.   The NetSurf project's libraries
  53. ---------------------------------
  54.  
  55.   The NetSurf project has developed several libraries which are required by
  56.   the browser.  To fetch each of these libraries, run the appropriate commands
  57.   from the Docs/LIBRARIES file.
  58.  
  59.   To build and install these libraries, simply enter each of their directories
  60.   and run:
  61.  
  62.       1> gmake install
  63.  
  64.   | Note: We advise enabling iconv() support in libparserutils, which vastly
  65.   |       increases the number of supported character sets.  To do this,
  66.   |       create a file called Makefile.config.override in the libparserutils
  67.   |       directory, containing the following lines:
  68.   |
  69.   |           CFLAGS += -DWITH_ICONV_FILTER
  70.   |           LDFLAGS += -liconv
  71.   |
  72.   |       This requires libiconv as iconv support in newlib.library is buggy.
  73.   |
  74.   |       For more information, consult the libparserutils README file.
  75.  
  76.   | Note: Building libsvgtiny requires gperf, which is available from Aminet:
  77.   |
  78.   |           http://www.aminet.net/package/dev/c/gperf
  79.  
  80.  
  81.   cURL
  82. ------
  83.  
  84.   A version of libcurl built for newlib is available from Aminet
  85.  
  86.       http://www.aminet.net/package/dev/lib/libcurl
  87.  
  88.   There is a shared object version included with some OWB releases.  To use
  89.   this when compiling with Cairo support, a link must be made:
  90.  
  91.       1> makelink sdk:local/newlib/lib/libcurl.so sobjs:libcurl-7.16.so soft
  92.  
  93.  
  94.   libmng
  95. --------
  96.  
  97.   NetSurf uses libMNG to display MNG and PNG files.
  98.   It builds without any problems on OS4, or available from Aminet:
  99.  
  100.       http://www.aminet.net/package/dev/lib/libmng_so
  101.  
  102.  
  103.   OpenSSL
  104. ---------
  105.  
  106.   NetSurf uses OpenSSL for encrypted transfers.
  107.  
  108.       http://www.os4depot.net/share/development/library/misc/libopenssl.lha
  109.  
  110.   There is a shared object version included with some OWB releases.  To use
  111.   this when compiling with Cairo support, a link must be made:
  112.  
  113.       1> makelink sdk:local/newlib/lib/libssl.so sobjs:libssl-0.9.8.so soft
  114.       1> makelink sdk:local/newlib/lib/libcrypto.so sobjs:libssl-0.9.8.so soft
  115.  
  116.  
  117.   Libharu
  118. ---------
  119.  
  120.   NetSurf can use Haru PDF to enable PDF export.  Haru PDF can be obtained
  121.   from http://libharu.org/.  We require libharu 2.2 or later.
  122.  
  123.   | Note: libharu cannot be auto-detected by the Makefile.  If you wish to
  124.   |       enable it, do so by creating a Makefile.config file.
  125.  
  126.  
  127.   libregex
  128. ----------
  129.  
  130.   A version of the regular expression library can be obtained from Aminet:
  131.  
  132.       http://www.aminet.net/package/dev/lib/libregex-4.4.3
  133.  
  134.  
  135.   openurl.library
  136. -----------------
  137.  
  138.   The AmigaOS mailto: URL support uses openurl.library, this and the includes
  139.   can be obtained from Aminet:
  140.  
  141.       http://www.aminet.net/package/comm/www/OpenURL-OS4
  142.  
  143.  
  144.   General requirements
  145. ----------------------
  146.  
  147.   SDK:newlib/include/strings.h needs to be modified by adding the following:
  148.  
  149.       extern int strcasecmp(const char *, const char *);
  150.       extern int strncasecmp(const char *, const char *, size_t);
  151.  
  152.   amiga/version.c is generated by version.rexx using the SVN command.  If
  153.   the source has not been checked out from SVN, or is being cross-compiled,
  154.   this file will need to be created by hand.  See the end of version.rexx
  155.   for the variables that are defined in the file.
  156.  
  157.   Please note that building with Cairo (option NETSURF_AMIGA_USE_CAIRO) will
  158.   link NetSurf against shared objects, and require the OS4.1 SDK to build and
  159.   AmigaOS 4.1 to run.
  160.