summaryrefslogtreecommitdiff
path: root/Docs/BUILDING-Cocoa
blob: ee33db17c2c0aa5b5a5de2759e414614fbfce5a9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
--------------------------------------------------------------------------------
  Build Instructions for Cocoa NetSurf                         13 January 2011
--------------------------------------------------------------------------------

  This document provides instructions for building the Cocoa version of NetSurf
  and provides guidance on obtaining NetSurf's build dependencies.

  Cocoa NetSurf has been tested on Mac OS X 10.6 on Intel and on Mac OS X 10.5
  on ppc.


  Building and executing NetSurf
================================

  After installing the dependencies NetSurf can be built in Xcode using the
  provided project file "NetSurf.xcodeproj".  This builds a version using only
  the minimal set of dependencies (LibParserUtils, LibWapcaplet, Hubbub,
  LibCSS) and libraries provided by Mac OS X.

  To build a more complete version a local configuration file has to be
  created.  To do this open a Terminal and change to the "cocoa/config"
  folder and run this command:

     $ sh detect.sh --with-jpeg=<prefix for libjpeg> --with-mng=<prefix for libmng>

  You can leave out the options for the JPEG and MNG libraries if you don't
  have them installed.

  This script uses the "pkg-config" program to find the required libraries
  and generates the file "local.xcconfig".  After that NetSurf can be built
  using Xcode.


  Obtaining NetSurf's build dependencies
========================================

  Many of NetSurf's dependencies are packaged on various operating systems.
  The remainder must be installed manually.  Currently, some of the libraries
  developed as part of the NetSurf project have not had official releases.
  Hopefully they will soon be released with downloadable tarballs and packaged
  in common distros.  For now, you'll have to make do with svn checkouts.

  Package installation
----------------------

  For building the other NetSurf libraries and for configuring NetSurf the
  "pkg-config" tool is required. It can be installed either via fink, macports
  or homebrew or from source.

  OpenSSL, LibXML2, LibPNG, curl, iconv and zlib are provided by Mac OS X.

  LibJPEG and LibMNG can be installed from source or using one of the mentioned
  package managers. 


  The NetSurf project's libraries
---------------------------------

  The NetSurf project has developed several libraries which are required by
  the browser. These are:

  LibParserUtils  --  Parser building utility functions
  LibWapcaplet    --  String internment
  Hubbub          --  HTML5 compliant HTML parser
  LibCSS          --  CSS parser and selection engine
  LibNSGIF        --  GIF format image decoder
  LibNSBMP        --  BMP and ICO format image decoder
  LibROSprite     --  RISC OS Sprite format image decoder

  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

  To build and install these libraries, simply enter each of their directories
  and run:

      $ make
      $ sudo make install

  This command builds the libraries only for the active architecture. To build
  universal binaries use those commands:

      $ make UNIVERSAL="i386 x86_64 ppc ppc64"
      $ sudo make install

  If you are building NetSurf for using it on only one computer this is not 
  necessary, but if you want to distribute your binary you should build
  universal binaries.  You can also leave some of the platform names out, if
  you don't require them.

  | 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 line:
  |
  |           CFLAGS += -DWITH_ICONV_FILTER
  |
  |       For more information, consult the libparserutils README file.