Update for the "new" buildsystem.

This commit is contained in:
Michael Drake 2014-03-16 15:52:49 +00:00
parent f104f99809
commit ba1aeccc05
1 changed files with 146 additions and 74 deletions

View File

@ -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.