Author: jmb
Date: Mon Sep 11 00:40:07 2006
New Revision: 2948
URL:
http://svn.semichrome.net?rev=2948&view=rev
Log:
Explicitly state dependencies on developer page.
Rework and simplify RO build instructions.
Modified:
trunk/netsurfweb/develop.en
trunk/netsurfweb/robuild.en
Modified: trunk/netsurfweb/develop.en
URL:
http://svn.semichrome.net/trunk/netsurfweb/develop.en?rev=2948&r1=294...
==============================================================================
--- trunk/netsurfweb/develop.en (original)
+++ trunk/netsurfweb/develop.en Mon Sep 11 00:40:07 2006
@@ -56,6 +56,33 @@
not include any of gui code, but runs natively on Linux so can be debugged and
checked using gdb, efence, valgrind, etc.</p>
+<h3>Dependencies</h3>
+
+<p>In addition to the compiler, NetSurf requires a number of additional tools to be
available. These are enumerated below. Additionally, the libraries which NetSurf uses are
also listed</p>
+
+<h4>Tools</h4>
+<ul>
+<li>Lemon parser generator (<a
href="http://www.hwaci.com/sw/lemon/">http://www.hwaci.com/s...
+<li>re2c lexer (<a
href="http://re2c.org/">http://re2c.org/</a>)</li>
+</ul>
+
+<h4>Libraries</h4>
+<ul>
+<li>cAres & cURL (<a
href="http://curl.haxx.se/libcurl/">http://curl.haxx.se/libcurl/</a>)</li>
+<li>IJG JPEG library (<a
href="http://www.ijg.org/">http://www.ijg.org/</a>)<...
+<li>MNG decoding library (<a
href="http://www.libmng.com/">http://www.libmng.com/</a&g...
+<li>OpenSSL (<a
href="http://www.openssl.org/">http://www.openssl.org/</a...
+<li>libXML 2 (<a
href="http://www.xmlsoft.org/">http://www.xmlsoft.org/</a...
+<li>Zlib (<a
href="http://www.zlib.org/">http://www.zlib.org</a>)&l...
+</ul>
+
+<h5>RISC OS specific libraries</h5>
+<ul>
+<li>OSLib 6.80 or later (<a
href="http://ro-oslib.sf.net/">http://ro-oslib.sf.net</a&...
+<li>Pencil (<a
href="http://svn.semichrome.net/trunk/pencil/">http://svn.se...
+<li>RUfl (<a
href="http://zamez.org/rufl">http://zamez.org/rufl</a>...
+</ul>
+
<h2>Source Documentation</h2>
Modified: trunk/netsurfweb/robuild.en
URL:
http://svn.semichrome.net/trunk/netsurfweb/robuild.en?rev=2948&r1=294...
==============================================================================
--- trunk/netsurfweb/robuild.en (original)
+++ trunk/netsurfweb/robuild.en Mon Sep 11 00:40:07 2006
@@ -14,47 +14,48 @@
<ul>
<li><a href="#Overview">Overview</a></li>
<li><a href="#Requirements">Requirements</a></li>
-<li><a href="#UnpackingTheLibraries">Unpacking the
Libraries</a></li>
+<li><a href="#QuickStart">Quick Start</a></li>
+<li><a href="#UnpackingTheLibraries">Fetching and Unpacking the
Libraries</a></li>
<li><a href="#AcquiringAndCompilingTheSource">Acquiring and
Compiling the source</a></li>
-<li><a href="#NotesOnAutogeneratedFiles">Notes on Autogenerated
Files</a></li>
</ul>
-<p class="updated">Last updated 09th April 2006</p>
+<p class="updated">Last updated 10th September 2006</p>
<h2 id="Overview">Overview</h2>
-<p>This document outlines the process required to get a build system for NetSurf
set up on a RISC OS machine. Much of what is discussed should be fairly obvious already,
but it's worth being comprehensive.</p>
+<p>This document outlines the process required to get a build system for NetSurf
set up on a RISC OS machine.</p>
<h2 id="Requirements">Requirements</h2>
<ul>
<li>A Filing System which supports long filenames</li>
-<li>!GCC (<a
href="http://gccsdk.riscos.info/">http://gccsdk.riscos.info/</a>)</li>
-<li>Prebuilt libraries and sources (<a
href="http://netsurf.strcprstskrzkrk.co.uk/developer">http://netsurf.strcprstskrzkrk.co.uk/developer</a>)</li>
+<li>!GCC 3.4.6 release 2 or later (<a
href="http://gccsdk.riscos.info/">http://gccsdk.riscos.info/</a>)</li>
+<li>OSLib 6.80 or later (<a
href="http://ro-oslib.sf.net/">http://ro-oslib.sf.net/</a...
+<li>Some version of Perl (<a
href="http://www.cp15.org/programming/">http://www.cp15.org/...
<li>RISC OS SVN client (<a
href="http://www.cp15.org/versioncontrol/">http://www.cp15.o...
</ul>
-<h2 id="UnpackingTheLibraries">Unpacking the Libraries</h2>
+<h2 id="QuickStart">Quick Start</h2>
+
+<p>This section details quick-start instructions for getting NetSurf compiled under
RISC OS. If you want more detail, see the rest of this document.</p>
<ol>
-<li>Create a directory named NSLibs in the location where you wish to install the
libraries</li>
-<li>Into this directory, unpack the library zip files available from the URL
above). This should give you a directory tree which looks like this:
+<li>Download and install the <a
href="#Requirements">requirements</a> listed above.</li>
+<li>Download and install the pre-assembled <a
href="nstools.zip">tool and library tree (2.3MB)</a>.</li>
+<li>Force the RISC OS SVN client to handle ,xxx extensions correctly by issuing
<code>*Set svn$filetypeext ""</code>.</li>
+<li>Check out the latest source code from SVN. (<pre>svn co
svn://svn.semichrome.net/trunk/netsurf</pre>)</li>
+<li>Set the CSD appropriately, set the next slot to 6000k and invoke
<code>make</code> from a TaskWindow.</li>
+</ol>
-<div><object data="webimages/library1.png"
type="image/png"><pre> NSLibs
- |
- | -- include
- | |
- | | -- curl
- | | -- libjpeg
- | | -- libpng
- | | -- libxml
- | | -- openssl
- | -- lib</pre></object></div>
-</li>
+<h2 id="UnpackingTheLibraries">Fetching and Unpacking the
Libraries</h2>
-<li>Use a utility such as !Rename to rename the header files into RISC OS format
(i.e. <code>foo/h</code> becomes <code>h.foo</code>). This should
produce a directory tree like:
+<ol>
+<li>Download and unpack the pre-assembled <a
href="nstools.zip">tool and library tree (2.3MB)</a>.</li>
+<li>Double-click on !NSTools to open the tree.</li>
+<li>Consult the !NSTools.!Help file in conjunction with <a
href="http://netsurf.strcprstskrzkrk.co.uk/developer/">http://netsurf.strcprstskrzkrk.co.uk/developer/</a>
in order to determine if any libraries need updating.</li>
+<li>If necessary, merge any updated libraries into the !NSTools directory
structure, renaming files into RISC OS format as appropriate (i.e.
<code>foo/h</code> becomes <code>h.foo</code>). This should
produce a directory tree like:
-<div><object data="webimages/library2.png"
type="image/png"><pre> NSLibs
+<div><object data="webimages/library2.png"
type="image/png"><pre> !NSTools
|
| -- include
| |
@@ -80,18 +81,14 @@
with the headers in the "h" directories. [This step may not be
required, depending upon the naming format used for the pre-built libraries]
</li>
-<li>Remove the filename extensions from the files in the lib directory
+<li>Remove any filename extensions from the files in the lib directory
(e.g. <code>libxml2/a</code> becomes
<code>libxml2</code>)</li>
-<li>Create an Obey file with the following inside:
-<pre>Set NSLibs$Path <Obey$Dir>.</pre>
-(noting the trailing '.') and save it as
<code>NSLibs.SetPath</code></li>
-<li>Run SetPath to set the path variable up</li>
-<li>Install OSLib as documented in its instructions and run it</li>
</ol>
<h2 id="AcquiringAndCompilingTheSource">Acquiring and Compiling the
source</h2>
<ol>
+<li>Force the RISC OS SVN client to handle ,xxx extensions correctly by issuing
<code>*Set svn$filetypeext ""</code>. (This may be set
permanently by uncommenting the appropriate line in !SVN's !Boot file)</li>
<li>Use the RISC OS SVN client to check the source out from SVN, using the
following command:
<pre>svn checkout
svn://semichrome.net/trunk/netsurf</pre>
@@ -127,50 +124,9 @@
In the Options dialog box, ensure <em>Add ",xyz"
suffix</em> is not checked, and enter
<code>a:c:cc:f:h:i:ii:l:o:p:s:y</code> in the text field.
</li>-->
-<li>Modify the file <code>makefile</code> in the sources as follows:
-<pre>depend: */*.[ch]</pre>
-should be changed to
-<pre>depend:</pre>
-</li>
-
-<li>Take the pre-built sources and insert them into the
<code>css</code> directory in the source tree, taking care to rename
appropriately for RISC OS:
-
-<table style="font-family: monospace">
-<tbody>
-<tr><td>css_enum/c</td><td> > </td><td>css.c.css_enum</td></tr>
-<tr><td>css_enum/h</td><td> > </td><td>css.h.css_enum</td></tr>
-<tr><td>parser/c</td><td> > </td><td>css.c.parser</td></tr>
-<tr><td>parser/h</td><td> > </td><td>css.h.parser</td></tr>
-<tr><td>scanner/c</td><td> > </td><td>css.c.scanner</td></tr>
-</tbody>
-</table>
-</li>
-
-<li>Insert transtab/c into utils, renaming as per the css files above.</li>
-<li>Create an <code>arm-riscos-aof</code> directory at the root of the
NetSurf source tree. This is where the compiled object files will end up. The source tree
should now look like this:
-<div><object data="webimages/netsurftree2.png"
type="image/png"><pre> netsurf
- |
- | -- !NCNetSurf
- | -- !NetSurf
- | -- arm-riscos-aof
- | -- content
- | -- css
- | -- debug
- | -- desktop
- | -- gtk
- | -- Docs
- | -- image
- | -- render
- | -- riscos
- | -- utils</pre></object></div>
-</li>
-<li>Set the netsurf directory as your CSD and invoke <code>make</code>
from a TaskWindow</li>
+<li>Set the netsurf directory as your CSD, set the next slot to 6000k and invoke
<code>make</code> from a TaskWindow</li>
<li>Go and make a cup of tea whilst the build happens (it takes approximately 30
minutes on a StrongARM RiscPC)</li>
</ol>
-
-<h2 id="NotesOnAutogeneratedFiles">Notes on Autogenerated
Files</h2>
-
-<p>The NetSurf build process on Unix creates a number of source files
automatically. This is not possible under RISC OS and so we provide pre-built versions of
these alongside the pre-built libraries. You will need to ensure that your local copies of
these are up to date, as build problems may occur otherwise. Simply checking the SVN
activity log on the download page regularly should inform you of changes to the source for
these autogenerated files.</p>
<div class="footer">
<p class="breadcrumbs"><a href="/">NetSurf</a> »
<a href="develop"> Development Information</a> » Building NetSurf on
RISC OS</p>