1-------------------------------------------------------------------------------- 2 Build Instructions for BeOS and Haiku NetSurf 13 February 2010 3-------------------------------------------------------------------------------- 4 5 This document provides instructions for building the BeOS and Haiku version 6 of NetSurf and provides guidance on obtaining NetSurf's build dependencies. 7 8 BeOS NetSurf has been tested on Zeta and Haiku only for now. There are still some 9 issues to sort out for other BeOS versions. 10 11 Quick Start 12============= 13 14 See the QUICK-START document, which provides a simple environment with 15 which you can fetch, build and install NetSurf and its dependencies. 16 17 The QUICK-START is the recommended way to build NetSurf for Haiku. BeOS needs too much manual 18 hacking to be built this way. 19 20 21 Manual building 22================================ 23 24 To build NetSurf on a BeOS, provided you have the relevant 25 build dependencies installed, simply run: 26 27 $ make 28 29 If that produces errors, you probably don't have some of NetSurf's build 30 dependencies installed. See "Obtaining NetSurf's dependencies" below. You 31 may need to "make clean" before attempting to build after installing the 32 dependencies. Also note BeOS has an old make command that won't work, see 33 below. 34 35 36 Obtaining NetSurf's dependencies 37================================== 38 39 Many of NetSurf's dependencies are either installed or available for BeOS and 40 Haiku. The remainder must be installed manually. 41 42 The NetSurf project's libraries 43--------------------------------- 44 45 The NetSurf project has developed several libraries which are required by 46 the browser. These are: 47 48 BuildSystem -- Shared build system, needed to build the other libraries 49 LibParserUtils -- Parser building utility functions 50 LibWapcaplet -- String internment 51 Hubbub -- HTML5 compliant HTML parser 52 LibCSS -- CSS parser and selection engine 53 LibNSGIF -- GIF format image decoder 54 LibNSBMP -- BMP and ICO format image decoder 55 LibROSprite -- RISC OS Sprite format image decoder 56 57 To fetch each of these libraries, run the appropriate commands from the 58 Docs/LIBRARIES file, from within your workspace directory. 59 60 To build and install these libraries, simply enter each of their directories 61 and run: 62 63 $ make install 64 65 | Note: We advise enabling iconv() support in libparserutils, which vastly 66 | increases the number of supported character sets. To do this, 67 | create a file called Makefile.config.override in the libparserutils 68 | directory, containing the following line: 69 | 70 | CFLAGS += -DWITH_ICONV_FILTER 71 | 72 | For more information, consult the libparserutils README file. 73 74 TODO: add some more here. 75 76 Additional requirements for BeOS 77================================== 78 79 On Haiku, other libraries and tools are either shipped with the system or available through the 80 package repositories. For BeOS based systems, you will need to install and update all the 81 required tools, as described below. 82 83 rc 84---- 85 86 Building NetSurf needs the Haiku resource compiler (rc), that allows 87 importing files from resource definitions (.rdef). 88 89 $ cd <haiku-trunk-directory> 90 $ TARGET_PLATFORM=r5 jam -q rc 91 $ cp generated/objects/dano/x86/release/tools/rc/rc /boot/home/config/bin/ 92 93 94 GNU make 3.81 95--------------- 96 97 BeOS has an old make tool, which won't work when building NetSurf. 98 Haiku has 3.81 which is the one that works. For BeOS, one has to replace 99 the original make with one built from the Haiku tree, or install it as gmake: 100 101 $ cd <haiku-trunk-directory> 102 $ TARGET_PLATFORM=r5 jam -q make 103 $ cp generated/objects/r5/x86/release/bin/make/make /boot/home/config/bin/gmake 104 105 106 cURL 107------ 108 109 NetSurf uses cURL to fetch files from the network. 110 There is a patch against the official version on HaikuPorts. 111 112 TODO 113 114 115 libpng 116-------- 117 118 NetSurf uses libPNG to display PNG files. 119 It should build just fine on BeOS. 120 121 122 libjpeg 123--------- 124 125 NetSurf uses libjpeg to display JPEG files. 126 It should already be available in your dev kit. 127 128 129 OpenSSL 130---------- 131 132 NetSurf uses OpenSSL for encrypted transfers. 133 134 135 General requirements 136---------------------- 137 138 There is currently an issue on stdbool.h (unsigned char bool vs enum bool) 139 which needs to be fixed, for now one can use the Haiku version of the header 140 and copy it over the gcc-provided one. 141 $ cd <haiku-trunk-directory> 142 $ cp headers/build/gcc-2.95.3/stdbool.h /boot/develop/tools/gnupro/lib/gcc-lib/i586-pc-beos/2.95.3-beos-060710/include/stdbool.h 143 144 145 NetSurf might build on BeOS R5 but probably won't work on anything else than 146 BONE. 147