summaryrefslogtreecommitdiff
path: root/Docs/BUILDING-Windows
diff options
context:
space:
mode:
authorVincent Sanders <vince@kyllikki.org>2017-06-09 17:28:55 +0100
committerVincent Sanders <vince@kyllikki.org>2017-06-09 17:30:00 +0100
commit703427a48612bf98fba599dfcd6e91485efd5b77 (patch)
treebc9df49dd3de746b738aac3ba88c204d9ab0051b /Docs/BUILDING-Windows
parenta8348f3bc930151bd9aa184c8372c6af0c782730 (diff)
downloadnetsurf-703427a48612bf98fba599dfcd6e91485efd5b77.tar.gz
netsurf-703427a48612bf98fba599dfcd6e91485efd5b77.tar.bz2
Update documentation removing junk and moving to markdown for most text files
Diffstat (limited to 'Docs/BUILDING-Windows')
-rw-r--r--Docs/BUILDING-Windows203
1 files changed, 0 insertions, 203 deletions
diff --git a/Docs/BUILDING-Windows b/Docs/BUILDING-Windows
deleted file mode 100644
index dc6769fdf..000000000
--- a/Docs/BUILDING-Windows
+++ /dev/null
@@ -1,203 +0,0 @@
---------------------------------------------------------------------------------
- Build Instructions for Windows NetSurf 13 February 2010
---------------------------------------------------------------------------------
-
- This document provides instructions for building the Windows version
- of NetSurf and provides guidance on obtaining NetSurf's build
- dependencies.
-
- Windows NetSurf has been tested on Wine and Vista.
-
-
- Building and executing NetSurf
-================================
-
- The windows netsurf port uses the MinGW (Minimal GNU on Windows)
- system as its build infrastructure. This allows the normal netsurf
- build process to be used.
-
- The method outlined here to create executables cross compiles
- windows executable from a Linux OS host.
-
- First of all, you should examine the contents of Makefile.defaults
- and enable and disable relevant features as you see fit by creating
- a Makefile.config file. Some of these options can be automatically
- detected and used, and where this is the case they are set to such.
- Others cannot be automatically detected from the Makefile, so you
- will either need to install the dependencies, or set them to NO.
-
- You should then obtain NetSurf's dependencies, keeping in mind which
- options you have enabled in the configuration file. See the next
- section for specifics.
-
- Once done, to build windows NetSurf on a UNIX-like platform, simply run:
-
- $ export MINGW_PREFIX=i586-mingw32msvc-
- $ export MINGW_INSTALL_ENV=/usr/i586-mingw32msvc/
- $ make TARGET=windows
-
- If that produces errors, you probably don't have some of NetSurf's
- build dependencies installed. See "Obtaining NetSurf's dependencies"
- below. Or turn off the complaining features in a Makefile.config
- file. You may need to "make clean" before attempting to build after
- installing the dependencies.
-
- You will need the libgnurx-0.dll from /usr/i586-mingw32msvc/bin/
- copied next to the exe and the windows/res directory available, also
- next to the executable.
-
- Run NetSurf by executing it:
-
- $ wine NetSurf.exe
-
- The staticaly linked binary which is generated may be several
- megabytes in size, this can be reduced by stripping the binary.
-
- $ i586-mingw32msvc-strip NetSurf.exe
-
-
- Obtaining NetSurf's build dependencies
-========================================
-
- Package installation
-----------------------
-
- Debian-based OS:
-
- The mingw cross compilation tools are required. These can be
- installed as pakages on Debian/Ubuntu systems:
-
- $ sudo apt-get install mingw32 mingw32-binutils mingw32-runtime
-
- These provide a suitable set of compilers and headers including the win32 API.
-
- The includes and associated libraries are installed in
- /usr/i586-mingw32msvc/ Which is where the build system will include
- files from by default. The packages at time of writing only target
- 32bit windows builds.
-
- Other:
-
- For other OS the apropriate packages and environment must be installed.
-
- pkg-config
-------------
-
- A pkg-config wrapper script is required to make things easier
-
-cat > /usr/i586-mingw32msvc/bin/pkg-config <<EOF
-#!/bin/bash
-export PKG_CONFIG_LIBDIR=/usr/i586-mingw32msvc/lib/pkgconfig
-/usr/bin/pkg-config $*
-EOF
-
-
- Base libraries
-----------------
-
- Unlike other OS the base libraries and their dependancies need to be
- built and installed.
-
- The instructions given here assume you will be installing on a
- Debian derived OS using the mingw32 packages. The libraries should
- be unpacked and built from a suitable temporary directory.
-
- zlib:
-
- $ apt-get source zlib1g
- $ cd zlib-1.2.3.3.dfsg
- $ CC=i586-mingw32msvc-gcc AR=i586-mingw32msvc-ar RANLIB=i586-mingw32msvc-ranlib CFLAGS="-DNO_FSEEKO" ./configure --prefix=/usr/i586-mingw32msvc/
- $ make
- $ sudo make install
-
- libiconv:
-
- $ wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz
- $ tar -zxf libiconv-1.13.1.tar.gz
- $ cd libiconv-1.13.1
- $ ./configure --prefix=/usr/i586-mingw32msvc/ --host=i586-mingw32msvc --disable-shared
- $ make
- $ sudo make install
-
- regex:
-
- $ wget http://kent.dl.sourceforge.net/project/mingw/Other/UserContributed/regex/mingw-regex-2.5.1/mingw-libgnurx-2.5.1-src.tar.gz
- $ tar -zxf mingw-libgnurx-2.5.1-src.tar.gz
- $ cd mingw-libgnurx-2.5.1
- $ ./configure --prefix=/usr/i586-mingw32msvc/ --host=i586-mingw32msvc
- $ make
- $ sudo make install
-
- openssl:
-
- $ wget http://www.openssl.org/source/openssl-1.0.0a.tar.gz
- $ tar -zxf openssl-1.0.0a.tar.gz
- $ cd openssl-1.0.0a
- $ PATH=/usr/i586-mingw32msvc/bin/:$PATH ./Configure no-shared disable-capieng --prefix=/usr/i586-mingw32msvc/ mingw
- $ PATH=/usr/i586-mingw32msvc/bin/:$PATH make CC=i586-mingw32msvc-gcc RANLIB=i586-mingw32msvc-ranlib
- $ sudo make install
-
- libcurl:
-
- $ wget http://curl.haxx.se/download/curl-7.26.0.tar.gz
- $ tar -zxf curl-7.26.0.tar.gz
- $ cd curl-7.26.0
- $ LDFLAGS=-mwindows ./configure --prefix=/usr/i586-mingw32msvc/ --host=i586-mingw32msvc --disable-shared --disable-ldap --without-random
- $ make
- $ sudo make install
-
- libpng:
-
- $ wget http://kent.dl.sourceforge.net/project/libpng/libpng14/1.4.12/libpng-1.4.12.tar.gz
- $ tar -zxf libpng-1.4.12.tar.gz
- $ cd libpng-1.4.12
- $ ./configure --prefix=/usr/i586-mingw32msvc/ --host=i586-mingw32msvc
- $ make
- $ sudo make install
-
- libjpeg:
-
- $ wget http://www.ijg.org/files/jpegsrc.v8d.tar.gz
- $ tar -zxf jpegsrc.v8d.tar.gz
- $ cd jpeg-8d
- $ ./configure --prefix=/usr/i586-mingw32msvc/ --host=i586-mingw32msvc --disable-shared
- $ make
- $ sudo make install
-
- 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 appropriate commands from the
- Docs/LIBRARIES file.
-
- To build and install these libraries.
-
- Ensure the MINGW_INSTALL_ENV variable is correctly set.
-
- $ export MINGW_INSTALL_ENV=/usr/i586-mingw32msvc/
-
- Then simply enter each of their directories and run:
-
- $ make TARGET=windows PREFIX=/usr/i586-mingw32msvc/
- $ sudo make TARGET=windows PREFIX=/usr/i586-mingw32msvc/ install
-
- Resources
------------
-
- The windows resources may be rebuilt. Currently there is 1 object
- file included in the Git distribution of NetSurf that could be
- manually compiled
-
- $ cd windows/res
- $ i586-mingw32msvc-windres resource.rc -O coff -o resource.o