From ba1aeccc05fd45617cf12902e4fdd04cd4bd7a86 Mon Sep 17 00:00:00 2001 From: Michael Drake Date: Sun, 16 Mar 2014 15:52:49 +0000 Subject: Update for the "new" buildsystem. --- Docs/BUILDING-Framebuffer | 220 ++++++++++++++++++++++++++++++---------------- 1 file changed, 146 insertions(+), 74 deletions(-) (limited to 'Docs/BUILDING-Framebuffer') diff --git a/Docs/BUILDING-Framebuffer b/Docs/BUILDING-Framebuffer index 9cbd66065..8210d6176 100644 --- a/Docs/BUILDING-Framebuffer +++ b/Docs/BUILDING-Framebuffer @@ -1,5 +1,5 @@ -------------------------------------------------------------------------------- - Build Instructions for Framebuffer NetSurf 13 February 2010 + Build Instructions for Framebuffer NetSurf 16 March 2014 -------------------------------------------------------------------------------- This document provides instructions for building the Framebuffer version of @@ -7,8 +7,152 @@ Framebuffer NetSurf has been tested on Ubuntu and Debian. + Depending on the framebuffer frontend selected the build may need specific + libraries installed, e.g. the SDL port requires SDL1.2 or later + + There are two ways to get NetSurf building. The QUICK-START (recommended), + and the manual build. Whichever you choose, you should read both the + "Fonts", and "Selecting a frontend and appropriate options" sections below. + + + Quick Start +============= + + See the QUICK-START document, which provides a simple environment with + which you can fetch, build and install NetSurf and its dependencies. + + The QUICK-START is the recommended way to build NetSurf. + + + Manual building +================= + + If you can't follow the quick start instructions, you will have to build + NetSurf manually. The instructions for doing this are given below. + + + Obtaining the 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 Git checkouts. + + Package installation + -------------------- + + Debian-like OS: + + $ apt-get install libcurl3-dev libpng-dev + + Recent OS versions might need libcurl4-dev instead of libcurl3-dev but + note that when it has not been built with OpenSSL, the SSL_CTX is not + available and results that certification details won't be presented in case + they are invalid. But as this is currently unimplemented in the Framebuffer + flavour of NetSurf, this won't make a difference at all. + + Fedora: + + $ yum install curl-devel libpng-devel lcms-devel + + Other: + + You'll need to install the development resources for libcurl3 and libpng. + + + Preparing your workspace +-------------------------- + + NetSurf has a number of libraries which must be built in-order and + installed into your workspace. Each library depends on a core build + system which NetSurf projects use. This build system relies on the + presence of things like pkg-config to find libraries and also certain + environment variables in order to work correctly. + + Assuming you are preparing a workspace in /home/netsurf/workspace then + the following steps will set you up: + + Make the workspace directory and change to it + --------------------------------------------- + + $ mkdir -p ${HOME}/netsurf/workspace + $ cd ${HOME}/netsurf/workspace + + Make the temporary install space + -------------------------------- + + $ mkdir inst + + Make an environment script + -------------------------- + $ cat > env.sh <<'EOF' + export PKG_CONFIG_PATH=${HOME}/netsurf/workspace/inst/lib/pkgconfig:: + export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${HOME}/netsurf/workspace/inst/lib + export PREFIX=${HOME}/netsurf/workspace/inst + EOF + + Change to workspace and source the environment + ---------------------------------------------- + + Whenever you wish to start development in a new shell, run the following: + + $ cd ${HOME}/netsurf/workspace + $ source env.sh + + From here on, any commands in this document assume you have sourced your + shell environment. + + + 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 + LibNSFB -- Framebuffer abstraction + + To fetch each of these libraries, run the appropriate commands from the + Docs/LIBRARIES file. + + To build and install these libraries, simply enter each of their directories + and run: + + $ make 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 line: + | + | CFLAGS += -DWITH_ICONV_FILTER + | + | For more information, consult the libparserutils README file. + + + Getting the NetSurf source +---------------------------- + + From your workspace directory, run the following command to get the NetSurf + source: + + $ git clone git://git.netsurf-browser.org/netsurf.git + + And change to the 'netsurf' directory: + + $ cd netsurf + + 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 in a @@ -203,75 +347,3 @@ Index: framebuffer/font_freetype.c The documentation of libnsfb should be consulted for futher information about supported frontends and their configuration. - - 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 Git checkouts. - - Package installation ----------------------- - - Debian-like OS: - - $ apt-get install libcurl3-dev libpng-dev - - Recent OS versions might need libcurl4-dev instead of libcurl3-dev but - note that when it has not been built with OpenSSL, the SSL_CTX is not - available and results that certification details won't be presented in case - they are invalid. But as this is currently unimplemented in the Framebuffer - flavour of NetSurf, this won't make a difference at all. - - Fedora: - - $ yum install curl-devel libpng-devel lcms-devel - - Other: - - You'll need to install the development resources for libcurl3 and libpng. - - 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 - LibNSFB -- Framebuffer abstraction - - To fetch each of these libraries, run the appropriate commands from the - Docs/LIBRARIES file. - - To build and install these libraries, simply enter each of their directories - and run: - - $ sudo make 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 line: - | - | CFLAGS += -DWITH_ICONV_FILTER - | - | For more information, consult the libparserutils README file. - - General requirements ----------------------- - - Depending on the frontend selected the build may need specific - libraries installed, e.g. the SDL port requires SDL1.2 or later - - Installing these libraries will often will pull in loads of things, - like the PNG and JPEG libraries, colour management libraries, zlib, - OpenSSL etc that NetSurf also depends on. -- cgit v1.2.3