gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] gnash/doc/C/refmanual building.xml code_depende...


From: Rob Savoye
Subject: [Gnash-commit] gnash/doc/C/refmanual building.xml code_depende...
Date: Sat, 01 Mar 2008 16:59:31 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Rob Savoye <rsavoye>    08/03/01 16:59:31

Added files:
        doc/C/refmanual: building.xml code_dependencies.xml 
                         configuration.xml cross_compiling.xml 
                         custompath_configuration.xml 
                         documentation_dependencies.xml 
                         feature_configuration.xml install.xml 
                         sources.xml testing_dependencies.xml 

Log message:
        Add lost files from cvs braindamage.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/refmanual/building.xml?cvsroot=gnash&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/refmanual/code_dependencies.xml?cvsroot=gnash&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/refmanual/configuration.xml?cvsroot=gnash&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/refmanual/cross_compiling.xml?cvsroot=gnash&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/refmanual/custompath_configuration.xml?cvsroot=gnash&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/refmanual/documentation_dependencies.xml?cvsroot=gnash&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/refmanual/feature_configuration.xml?cvsroot=gnash&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/refmanual/install.xml?cvsroot=gnash&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/refmanual/sources.xml?cvsroot=gnash&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/refmanual/testing_dependencies.xml?cvsroot=gnash&rev=1.1

Patches:
Index: building.xml
===================================================================
RCS file: building.xml
diff -N building.xml
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ building.xml        1 Mar 2008 16:59:30 -0000       1.1
@@ -0,0 +1,201 @@
+<title>Building from Source</title>
+
+<para>
+  Once you have <link linkend="pre-configuration">configured</link> &app;,
+  you are ready to build the code.  &app; is built using
+  <emphasis>GNU make</emphasis>.
+</para>
+
+<sect2 id="compile">
+  <title>Compiling the Code</title>
+
+  <para>
+    The most basic way to compile code is simply:
+    <programlisting>
+  make
+    </programlisting>
+    If the compilation ends with an error, check the output of 
+    <emphasis>configure</emphasis> and ensure that you are not missing 
+    any required prerequisites.  The output of <command>make</command> can be 
verbose; you may wish to pipe the output to a file.
+  </para>
+
+  <para>
+    The variables used by <emphasis>make</emphasis> can be redefined when
+    the program is invoked, if you desire it.   The most interesting flags
+    are <emphasis>CFLAGS</emphasis> and <emphasis>CXXFLAGS</emphasis>,
+    which are often used to enable debugging or turn of optimization.
+    The default value for both of these variables is
+    <emphasis>-O2 -g</emphasis>.  A list of influential 
+    environment variables can be seen in the configuration help:
+</para>
+<programlisting>./configure --help</programlisting>
+<para>
+    In the following example, debugging is enabled and optimization is
+    disabled:
+</para>
+<programlisting>make CFLAGS=-g CXXFLAGS=-g</programlisting>
+</sect2>
+
+<sect2 id="processdoc">
+  <title>Creating the Documentation</title>
+
+  <para>
+    By default, documentation is not built when you
+    <link linkend="install">install</link> &app;.  This is because
+    there are a number of <link linkend="docdepend">dependencies 
+    for the documentation</link>.  Documentation is built when it
+    is specified with a specific target in the generated 
+    <command>Makefile</command> in the <filename>doc/C</filename>
+    sub-directory.  If you type <command>make install</command> in
+    this directory, all documents will be built.
+  </para>
+
+  <para>
+    You must specify a target output format when you wish to create
+    documentation.  The available output formats are: <command>html</command>,
+    <command>pdf</command>, <command>info</command>, 
+    <command>man</command>, and <command>alldocs</command>.  
+    It is also possible to output <command>GNOME help</command> if
+    the <link linkend="features">configure option</link>
+    <option>--enable-ghelp</option> was used.  
+    The <command>alldocs</command> target will build all output formats
+    except <emphasis>GNOME help</emphasis>.
+    For example, to create HTML output, type:
+    <programlisting>
+  make html
+    </programlisting>
+  </para>
+
+  <para>
+    &app; also uses <ulink 
url="http://www.stack.nl/~dimitri/doxygen/index.html";
+    type="http">Doxygen</ulink> to produce <emphasis>HTML</emphasis>
+    documentation of &app; internals.  You must have Doxygen installed
+    to produce this documentation, which is built from the
+    <filename>doc</filename> directory with the command (documents
+    will be placed in the subdirectory <filename>apidoc/html</filename>):
+    <programlisting>
+  make apidoc
+    </programlisting>
+  </para>
+</sect2>
+
+
+<sect2 id="runtests">
+  <title>Running the Tests</title>
+
+  <para>
+    Before beginning the potentially lengthy install, it is wise to test the 
installation.  If a test fails, please report it by following the
+    <link linkend="bugreport">instructions for reporting a bug</link>.
+  </para>
+
+  <sect3 id="dejagnu">
+    <title>Using DejaGnu</title>
+
+    <para>
+  <!--
+      TODO: Add a section on running tests without DejaGnu.
+  -->
+      The easiest way to run &app;'s test suite is to install
+      <emphasis><ulink type="http" 
+      url="http://www.gnu.org/software/dejagnu";>DejaGnu</ulink></emphasis>.
+      After installing DejaGnu, run:
+      <programlisting>
+        make check
+      </programlisting>
+    </para>
+  
+    <sect4 id="testing_verbosity">
+      <title>Increasing Verbosity</title>
+      <para>
+        If you encounter a problem with a test, increasing the
+        verbosity may make the issue easier to spot.
+        Additional details are visible when 
+        <emphasis>RUNTESTFLAGS</emphasis> are used to add the 
+        <emphasis>verbose</emphasis> and <emphasis>all</emphasis> options.
+        The <option>verbose</option> option prints more information about the 
testing process, while
+        the <option>all</option> option includes details on passing tests.  
+        <programlisting>
+  make check RUNTESTFLAGS="-v -a"
+        </programlisting>
+      </para> 
+    </sect4>
+     
+    <sect4 id="running_some_tests">
+      <title>Running Some Tests</title>
+      <para>
+        It is possible to run just a single test, or 
+        a subdirectory of tests, by specifying the directory or 
+        compiled test file.
+      </para>
+      <para>
+        Some tests rely on <emphasis>testsuite/Dejagnu.swf</emphasis>,
+        which in turn relies on <emphasis>Ming</emphasis>.
+        This file is created when you run <command>make check</command> for 
the entire
+        testsuite, and can also be created on demand:
+        <programlisting>
+  make -C testsuite Dejagnu.swf 
+        </programlisting>
+      </para>
+      <para>
+        In this example, the <command>clip_as_button2</command> test is 
compiled and
+        run:
+        <programlisting>
+  make -C testsuite/samples clip_as_button2-TestRunner 
+  cd testsuite/samples &amp;&amp; ./clip_as_button2-TestRunner
+        </programlisting>
+        This creates and runs all the tests in the directory
+        <filename>movies.all</filename>:
+        <programlisting>
+  make -C testsuite/movies.all check
+        </programlisting>
+      </para>
+    </sect4>
+     
+  </sect3>
+  <sect3 id="manually">
+    <title>Running The Tests Manually</title>
+     
+    <para>
+      You may also run test cases by hand, which can be useful if you
+      want to see all the debugging output from the test case.  Often
+      the messages which come from deep within &app; are most useful for
+      development.
+    </para>  
+     
+    <para>
+      The first step is to compile the test case, which can be done
+      with <filename>make XML-v#.swf</filename> where the '#' is replaced
+       with the <emphasis>target</emphasis> SWF version or versions.  
+      For example:
+      <programlisting>
+  make XML-v{5,6,7,8}.swf
+      </programlisting>
+    </para>
+  
+    <sect4 id="manual_compiled_tests">
+    <title>Movie tests</title>
+      <para>
+        This creates a Flash movie version of the test case, which
+        can be run with a standalone Flash player.  For instance,
+        the target for SWF version 6 could be run with &app;:
+        <programlisting>
+   gnash -v XML-v6.swf
+        </programlisting>
+      </para>
+    </sect4>
+  
+    <sect4 id="manual_actionscript_tests">
+      <title>ActionScript Unit Tests</title>
+      <para>
+        Unit tests for ActionScript classes in 
<command>testsuite/actionscript.all</command>
+        are run without a graphical display:
+        <programlisting>
+  gprocessor -v XML-v6.swf
+        </programlisting>
+      </para>
+    </sect4>
+  </sect3>
+
+
+
+</sect2>

Index: code_dependencies.xml
===================================================================
RCS file: code_dependencies.xml
diff -N code_dependencies.xml
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ code_dependencies.xml       1 Mar 2008 16:59:30 -0000       1.1
@@ -0,0 +1,398 @@
+<title>Code Dependencies</title>
+
+<para>
+  &app; has a number of dependencies on other packages.
+  If you install the dependencies using a package
+  manager, be certain to install the development versions
+  of the packages.  The normal versions are often missing
+  the headers &app; needs to compile.
+</para>
+
+<note>
+  <title>Note</title>
+  <para>
+    If you want to install the &app; plugin for one of the browsers
+    listed in the <xref linkend="intro" />, be sure to install the
+    development package for that browser before configuring.  The
+    &app; <command>configure</command> script searches for the devel
+    packages before building the plugin. 
+  </para>
+</note>
+
+<table frame='all' id="codedeps">
+  <title>Code Dependency Table</title>
+  <tgroup cols='7' align='left' colsep='1' rowsep='1'>
+    <colspec colname='name'/>
+    <colspec colname='required'/>
+    <colspec colname='version'/>
+    <colspec colname='description'/>
+    <colspec colname='explanation'/>
+    <colspec colname='apt'/>
+    <colspec colname='rpm'/>
+    
+    <thead>
+      <row>
+        <entry>Name</entry>
+       <entry>Level</entry>
+       <entry>Version</entry>
+        <entry>Description</entry>
+       <entry>Explanation</entry>
+       <entry>apt-get package</entry>
+       <entry>RPM/Yum package</entry>
+      </row>
+    </thead>
+
+    <tbody>
+      <row>
+        <entry>Boost</entry>
+        <entry>Required</entry>
+        <entry>1.32 or higher</entry>
+        <entry>
+          Boost is a library of portable C++ classes and
+          templates.
+        </entry>
+        <entry>
+          In &app;, Boost libraries are used extensively, primarily
+         boost-gthread and boost-date-time.
+        </entry>
+        <entry>
+         <filename>libboost-thread-dev, libboost-date-time-dev
+       </filename>
+       </entry>
+       <entry>
+       <filename>
+         liboost-thread-dev, libboost-date-time
+       </filename></entry>
+      </row>
+
+      <row>
+        <entry>libxml2</entry>
+        <entry>Required</entry>
+        <entry></entry>
+        <entry>
+          Libxml2 is the GNOME XML parser library and
+          is available at <ulink type="http"
+          url="http://xmlsoft.org";>http://xmlsoft.org</ulink>.
+        </entry>
+        <entry>
+          This library is used to parse messages in the
+          XML or XMLSocket ActionScript classes.
+        </entry>
+        <entry><filename>libxml2-dev</filename></entry>
+        <entry><filename>libxml2-devel</filename></entry>
+      </row>
+
+      <row>
+        <entry>AGG</entry>
+        <entry>Possibly Required</entry>
+        <entry>2.4 or higher</entry>
+        <entry>
+          AGG is the AntiGrain low-level 2D graphics
+          library.  
+        </entry>
+        <entry>
+          &app; requires the installation of at least one
+          renderer.  AGG is considered the <emphasis>best
+          supported</emphasis> renderer for &app;.
+        </entry>
+        <entry><filename>libagg-dev</filename></entry>
+        <entry><filename>agg-devel</filename></entry>
+      </row>
+
+      <row>
+        <entry>OpenGL</entry>
+        <entry>Possibly Required</entry>
+        <entry></entry>
+        <entry>
+          OpenGL is a standard specification defining a
+          cross-language cross-platform API for writing
+          applications which produce 3D and 2D graphics.
+          It supports hardware acceleration.
+          You can download a free implementation from
+          <ulink type="http"
+          url="http://www.mesa3d.org";>http://www.mesa3d.org</ulink>.
+        </entry>
+        <entry>
+          &app; requires the installation of at least one
+          renderer.
+        </entry>
+        <entry><filename>libgl1-mesa-dev</filename></entry>
+        <entry><filename>libmesa-devel</filename></entry>
+      </row>
+
+      <row>
+        <entry>Cairo</entry>
+        <entry>Possibly Required</entry>
+        <entry />
+        <entry>
+          Cairo is a 2D graphics library with support for
+          multiple output devices.  It will automatically use
+          graphic card acceleration when available, and has
+         an experimental OpenGL backend.  
+       </entry>
+       <entry>
+         &app; requires the installation of at least one
+         renderer.  Cairo is considered
+          the <emphasis>least supported</emphasis> renderer
+          for &app;.
+        </entry>
+        <entry><filename>libcairo2-dev</filename></entry>
+        <entry><filename>cairo-devel</filename></entry>
+      </row>
+
+      <row>
+        <entry>GTK</entry>
+        <entry>Possibly Required</entry>
+        <entry>2.2 or higher</entry>
+        <entry>
+          GTK is the GIMP Toolkit GUI library.
+          It uses Cairo internally.
+        </entry>
+        <entry>
+          &app; requires the installation of at least one
+          GUI library.  GTK is considered to be the
+          <emphasis>best supported</emphasis> GUI library
+          option for &app;.
+        </entry>
+        <entry><filename>libgtk2.0-dev</filename></entry>
+        <entry><filename>gtk-devel</filename></entry>
+      </row>
+
+      <row>
+        <entry>GtkGlExt</entry>
+        <entry>Possibly Required</entry>
+        <entry></entry>
+        <entry>
+          GtkGlExt integrates OpenGL into GTK.
+        </entry>
+        <entry>
+          This library is required in order to use
+          the GTK GUI library in conjunction with the
+          OpenGL renderer.
+        </entry>
+        <entry><filename>libgtkglext1-dev</filename></entry>
+        <entry><filename>gtkglext-devel</filename></entry>
+      </row>
+
+      <row>
+        <entry>SDL</entry>
+        <entry>Possibly Required</entry>
+        <entry />
+        <entry>
+          The Simple DirectMedia Layer is a cross-platform
+          multimedia library which provides abstraction for
+          audio, graphics, sound and input APIs.  
+          SDL is available from
+          <ulink type="http" url="http://www.libsdl.org";>
+          http://www.libsdl.org</ulink>.  
+        </entry>
+        <entry>
+          &app; requires the installation of at least one
+          GUI library.  SDL may also be used as a sound
+          handler regardless of whether it is employed as
+          a GUI library.  The GUI
+          library is <emphasis>poorly supported</emphasis>
+          in &app;, but the sound handler is the
+          <emphasis>best supported</emphasis> in &app;.
+        </entry>
+        <entry><filename>libsdl1.2-dev</filename></entry>
+        <entry><filename>SDL-devel</filename></entry>
+      </row>
+
+      <row>
+        <entry>FLTK</entry>
+        <entry>Possibly Required</entry>
+        <entry>2.0 or higher</entry>
+        <entry>
+          The Fast Light ToolKit is a portable GUI library
+          which is intended as a replacement for the SDL GUI.
+        </entry>
+        <entry>
+          &app; requires the installation of at least one
+          GUI library.  FLTK may be used in conjunction with
+          the Cairo and AGG renderers.
+        </entry>
+        <entry>No distribution packages are available.</entry>
+        <entry>No distribution packages are available.</entry>
+      </row>
+
+      <row>
+        <entry>KDE</entry>
+        <entry>Possibly Required</entry>
+        <entry />
+        <entry>
+          Kdelibs is a collection of libraries needed to
+          compile KDE applications.
+        </entry>
+        <entry>
+          &app; requires the installation of at least one
+          GUI library.  Kdelibs is also required for the
+          Kpart plugin for Konqueror.
+        </entry>
+        <entry><filename>kdelibs4-dev</filename></entry>
+        <entry><filename>kdelibs-devel</filename></entry>
+      </row>
+
+      <row>
+        <entry>Gstreamer</entry>
+        <entry>Optional</entry>
+        <entry></entry>
+        <entry>
+          Gstreamer is a video handler.
+        </entry>
+        <entry>
+          If you would like video playback, you must
+          install one of the video handlers.
+        </entry>
+        <entry><filename>libgstreamer0.8-dev</filename></entry>
+        <entry><filename>gstreamer-devel</filename></entry>
+      </row>
+
+      <row>
+        <entry>gst-ffmpeg</entry>
+        <entry>Possibly Required</entry>
+        <entry></entry>
+        <entry>
+          gst-ffmpeg allows you to use the FFMPEG decoder
+          with Gstreamer.
+        </entry>
+        <entry>
+          This package is required if you would like to
+          use Gstreamer as a video handler.
+        </entry>
+        <entry><filename>gstreamer0.8-ffmpeg-dev</filename></entry>
+        <entry><filename>gstreamer-ffmpeg-devel</filename></entry>
+      </row>
+
+      <row>
+        <entry>FFMPEG</entry>
+        <entry>Possibly Required</entry>
+        <entry></entry>
+        <entry>
+          FFMPEG is a video handler.
+        </entry>
+        <entry>
+          If you would like video playback, you must
+          install one of the video handlers.  It is also
+          a dependency of gst-ffmpeg.
+        </entry>
+        <entry><filename>ffmpeg-dev</filename></entry>
+        <entry><filename>ffmpeg-devel</filename></entry>
+      </row>
+
+      <row>
+        <entry>JPEG</entry>
+        <entry>Optional</entry>
+        <entry></entry>
+        <entry>
+          <ulink type="http" url="http://www.ijg.org/";>JPEG</ulink>
+          is a lossy image format which is heavily used for images.
+        </entry>
+        <entry>
+          This library is used for rendering JPEGs.
+        </entry>
+        <entry><filename>libjpeg62-dev</filename></entry>
+        <entry><filename>libjpeg</filename></entry>
+      </row>
+
+      <row>
+        <entry>PNG</entry>
+        <entry>Optional</entry>
+        <entry></entry>
+        <entry>
+          <ulink type="http" 
+          url="http://www.libpng.org/pub/png/";>PNG</ulink> is
+          a patent-free image format which is comparable to
+          <emphasis>GIF</emphasis>.
+        </entry>
+        <entry>
+          This library is used for rendering PNGs.
+        </entry>
+        <entry><filename>libpng12-dev</filename></entry>
+        <entry><filename>libpng</filename></entry>
+      </row>
+
+      <row>
+        <entry>libcurl</entry>
+        <entry>Optional</entry>
+        <entry></entry>
+        <entry>
+          libcurl is the multiprotocal file transfer library.
+        </entry>
+        <entry>
+          This library is used for URL downloading.
+        </entry>
+        <entry><filename>libcurl4-gnutls</filename></entry>
+        <entry><filename>libcurl</filename></entry>
+
+      </row>
+
+      <row>
+        <entry>automake</entry>
+        <entry>Possibly Required</entry>
+        <entry>1.6.0</entry>
+        <entry>
+          Automake is a tool for generating
+          <emphasis>Makefile.in</emphasis> files.
+        </entry>
+        <entry>
+          This package is required to run
+          <emphasis>autogen.sh</emphasis>, which is a requirement
+          if you are using the development source from CVS.
+        </entry>
+        <entry><filename>automake</filename></entry>
+        <entry><filename>automake</filename></entry>
+      </row>
+
+      <row>
+        <entry>autoconf</entry>
+        <entry>Possibly Required</entry>
+        <entry>2.59</entry>
+        <entry>
+          Autoconf is a package for generating configure
+          scripts.
+        </entry>
+        <entry>
+          This package is required to run
+          <emphasis>autogen.sh</emphasis>, which is a requirement
+          if you are using the development source from CVS.
+        </entry>
+        <entry><filename>autoconf</filename></entry>
+        <entry><filename>autoconf</filename></entry>
+      </row>
+
+      <row>
+        <entry>gettext</entry>
+        <entry>Possibly Required</entry>
+        <entry>0.14.6</entry>
+        <entry>
+          Gettext is part of the GNU Translation Project.
+        </entry>
+        <entry>
+          This package is required to run
+          <emphasis>autogen.sh</emphasis>, which is a requirement
+          if you are using the development source from CVS.
+        </entry>
+        <entry><filename>gettext</filename></entry>
+        <entry><filename>gettext</filename></entry>
+      </row>
+
+      <row>
+        <entry>libtool</entry>
+        <entry>Possibly Required</entry>
+        <entry>1.5.22</entry>
+        <entry>
+          This is a generic library support script.
+        </entry>
+        <entry>
+          This package is required to run
+          <emphasis>autogen.sh</emphasis>, which is a requirement
+          if you are using the development source from CVS.
+        </entry>
+        <entry><filename>libltdl3-dev</filename></entry>
+        <entry><filename>libtool</filename></entry>
+      </row>
+
+    </tbody>
+  </tgroup>
+</table>

Index: configuration.xml
===================================================================
RCS file: configuration.xml
diff -N configuration.xml
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ configuration.xml   1 Mar 2008 16:59:30 -0000       1.1
@@ -0,0 +1,61 @@
+<para>
+&app;, like most GNU projects, allows a user to select various options before 
compiling its source code. These options include selecting from the available 
features, specifying custom paths for installation, and cross compiling.  &app; 
uses <ulink type="http"
+  url="http://www.gnu.org/software/autoconf/";>GNU Autoconf</ulink>
+  for configuration.
+</para>
+<para>
+  If you opted to download the 
+  <link linkend="sourcerepo">development checkout</link>
+  of &app;, the <emphasis>configure</emphasis> script will
+  not be included.  It can be created by running 
+  <emphasis>autogen.sh</emphasis> from the source root directory:
+  <programlisting>
+  ./autogen.sh
+  </programlisting>
+  Note that there are some 
+  <link linkend="codedepend">dependencies</link> for
+  autogen.
+</para>
+<para>
+  All the standard <command>configure</command> options
+  are available.  In addition, &app; has two types of
+  options: those that <link linkend="features">enable or disable 
+  features</link>, and
+  those that <link linkend="custompath">specify custom paths for 
+  development packages</link>
+  which are not found during the default search.  A complete
+  list of <emphasis>all</emphasis> configuration options, including
+  standard ones, can be seen by typing:
+  <programlisting>
+  ./configure --help |less
+  </programlisting>
+  Read further for a more detailed explanation of &app;-specific
+  options.
+</para>
+<para>
+  The syntax for running <emphasis>configure</emphasis> is as follows:
+  <programlisting>
+  configure <replaceable>&lt;options&gt;</replaceable>
+  </programlisting>
+  The example below shows the <command>configure</command> options
+  which create the smallest working standalone version of &app;.  In
+  this example, <command>configure</command> is being run from the
+  source root directory:
+</para>
+
+<programlisting>
+./configure --disable-debugger --disable-cygnal --disable-docbook \
+--disable-plugin --enable-media=ffmpeg --enable-gui=sdl
+</programlisting>
+
+<sect2 id="features">
+  &featureoptions;
+</sect2>
+         
+<sect2 id="custompath">
+  &custompath;
+</sect2>
+
+<sect2 id="crosscompilingconfiguration">
+  &crosscompiling;
+</sect2>

Index: cross_compiling.xml
===================================================================
RCS file: cross_compiling.xml
diff -N cross_compiling.xml
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ cross_compiling.xml 1 Mar 2008 16:59:30 -0000       1.1
@@ -0,0 +1,104 @@
+<title>Cross Compiling</title>
+
+<para>
+  To cross configure and compile &app;, begin by building a target system
+  on your workstation.  This includes cross compilers for the target
+  architecture, and some system headers. 
+  You will also need the following packages to be built for the target
+  system: <emphasis>libxml2</emphasis>, <emphasis>libpng</emphasis> 
+  (if used), <emphasis>libjpeg</emphasis>,oost  <emphasis>b</emphasis>, your
+  GUI library, your renderer, and your video handler (if used).  The page
+  <ulink url="http://frank.harvard.edu/~coldwell/toolchain/";
+        type="http">http://frank.harvard.edu/~coldwell/toolchain/</ulink>
+  has instructions on building a target system from scratch and
+  offers a shell script to make the process easier.
+</para>
+
+<para>
+  If you need to build up a target system from scratch, there is
+  a good document and shell script at this web site: <ulink
+  type="http"
+  url="http://frank.harvard.edu/~coldwell/toolchain/";>
+  http://frank.harvard.edu/~coldwell/toolchain/</ulink>.
+</para>
+
+<para>
+  There is also up to date information on the Gnash Developers
+  web site at: <ulink type="http" url="http://www.gnashdev.org";>
+  http://www.gnashdev.org</ulink>. This is the best place for
+  detailed informatin on various systems.
+</para>
+
+<para>
+  After I built up an ARM system in /usr/arm using the shell
+  script from this web site, I then cross compiled all the
+  other libraries I needed. The fun part is trying to get
+  libMesa and boost to cross compile, because they're not really set
+  up for it.
+</para>
+
+<para>
+  So to build for an ARM based system on an x86 based systems,
+  configure like this: 
+</para>
+
+<programlisting>
+  ../../gnash/configure --build=i686-pc-linux-gnu
+  --host=arm-linux --prefix=/usr/local/arm/oe --disable-nsapi
+  --disable-kparts --enable-gui=fb --enable-renderer=agg --disable-shared
+</programlisting>
+
+<para>
+  The important configuration options are the ones which specify the
+  architecture for the build:
+</para>
+
+<variablelist>
+
+  <varlistentry>
+    <term>--target</term>
+    <listitem>
+      <para>
+        The target architecture, where the final executables are expected
+        to run.
+      </para>
+    </listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term>--host</term>
+    <listitem>
+      <para>
+        The host architecture, where the executables are expected
+        to run.  Usually this is the same as the <emphasis>--target</emphasis>,
+        except when building a compiler as a Canadian Cross.  In this
+        case, you might build a cross compiler on a UNIX system which
+        runs on a win32 machine, producing code for a third architecture,
+        such as ARM.  In this example, <emphasis>--target</emphasis> would
+        be 'arm-unknown-linux-gnu', while <emphasis>--host</emphasis> would 
+        be 'win32'.
+      </para>
+    </listitem>
+  </varlistentry>
+
+  <varlistentry>
+    <term>--build</term>
+    <listitem>
+      <para>
+        This is the system the build is running on.
+      </para>
+    </listitem>
+  </varlistentry>
+
+</variablelist>
+
+<para>
+  The following example of <emphasis>configure</emphasis> builds for an
+  ARM system on an x86 system.  It was run after an ARM system was built
+  in <filename>/usr/arm</filename> and other required libraries were 
+  cross compiled.
+  <programlisting>
+./configure -target=arm-unknown-linux-gnu --prefix=/usr/arm \
+--host=arm-unknown-linux-gnu --build=i686-pc-linux-gnu --disable-plugin
+  </programlisting>
+</para>

Index: custompath_configuration.xml
===================================================================
RCS file: custompath_configuration.xml
diff -N custompath_configuration.xml
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ custompath_configuration.xml        1 Mar 2008 16:59:30 -0000       1.1
@@ -0,0 +1,421 @@
+<title>Specifying Custom Paths</title>
+<para>
+  By default, none of these options should be required
+  unless you want &app; to use a specific version of a
+  development package, or if the configure test fails to
+  find a component.  Please <link
+  linkend="bugreport">report the problem</link> if a
+  configure test fails.
+</para>
+<para>
+  The following custom path options are available:
+</para>
+
+
+<table id="tb-configure-paths">
+<title>Custom Path Options</title>
+<tgroup cols='2' align='left' colsep='1' rowsep='1'>
+<colspec colname='Option' />
+<colspec colname='Function' />
+<thead>
+<row>
+  <entry>Option</entry>
+  <entry>Function</entry>
+</row>
+</thead>
+<tbody>
+<row>
+  <entry>
+    <option>--x-includes=DIR</option>
+    </entry>
+      <entry>
+        X include files are in DIR.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--x-libraries=DIR</option>
+    </entry>
+      <entry>
+        X library files are in DIR.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-libxml=PFX</option>
+    </entry>
+      <entry>
+        Prefix to where libxml is installed.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-libxml-libraries=DIR</option>
+    </entry>
+      <entry>
+        Directory where libxml library is installed.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-libxml-includes=DIR</option>
+    </entry>
+      <entry>
+        Directory where libxml header files are installed.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-docbook=DIR</option>
+    </entry>
+      <entry>
+        Directory where the DocBook style-sheets are installed.        
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-sdl-prefix=PFX</option>
+    </entry>
+      <entry>
+        Prefix where SDL is installed.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-zlib-incl</option>
+    </entry>
+      <entry>
+        Directory where zlib header is installed.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-zlib-lib</option>
+    </entry>
+      <entry>
+        Directory where zlib library is installed.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-jpeg-incl</option>
+    </entry>
+      <entry>
+        Directory where jpeg header is installed.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-jpeg-lib</option>
+    </entry>
+      <entry>
+        Directory where jpeg library is installed.
+     </entry>
+  </row><row>
+  <entry>
+    <option>--with-png-incl</option>
+    </entry>
+      <entry>
+        Directory where png header is installed.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-png-lib</option>
+    </entry>
+      <entry>
+        Directory where png library is installed.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-qt-dir</option>
+    </entry>
+      <entry>
+        Directory where QT is installed. This is only used by
+        the Klash plugin.
+    </entry>
+  </row><row>
+  <entry>
+    <option>--with-qt-includes</option>
+    </entry>
+      <entry>
+        Directory where the QT header files are installed. This
+        is only used by the Klash plugin.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-qt-libraries</option>
+    </entry>
+      <entry>
+        Directory where the QT libraries are installed. This is
+        only used by the Klash plugin.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-npapi-plugindir</option>
+    </entry>
+      <entry>
+        This is the directory to install the NPAPI (Mozilla) plugin in.
+        By default it goes to ~/.mozilla/plugins.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-kde-pluginprefix</option>
+    </entry>
+      <entry>
+        This option sets the default install dir for all KPARTS (kde) files.
+       The plugin will be installed in PREFIX/lib/kde3, use 
<option>-with-kde-plugindir</option> to override.
+       The service file in PREFIX/share/services, use 
<option>--with-kde-servicesdir</option> to override.
+       The config file in PREFIX/share/config, use 
<option>--with-kde-configdir</option> to override.
+       The appdata file in PREFIX/share/apps/klash, use 
<option>--with-kde-appsdatadir</option> to override.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-kde-plugindir</option>
+    </entry>
+      <entry>
+        This is the directory to install the KPARTS (kde) plugin in.
+        By default it is what's set by --with-kde-pluginprefix or what's 
returned by kde-config --install module --expandvars,
+        or $(prefix)/share/services if kde-config is not found.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-kde-servicesdir</option>
+    </entry>
+      <entry>
+        This is the directory to install the KPARTS (kde) service in.
+        By default it is what's set by --with-kde-pluginprefix or what's 
returned by kde-config --install services --expandvars,
+        or $(libdir)/kde3 if kde-config is not found.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-kde-configdir</option>
+    </entry>
+      <entry>
+        This is the directory to install the KPARTS (kde) config files in.
+        By default it is what's set by --with-kde-pluginprefix or what's 
returned by kde-config --install config --expandvars,
+        or $(prefix)/share/config if kde-config is not found.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-kde-appsdatadir</option>
+    </entry>
+      <entry>
+        This is the directory to install the KPARTS (kde) application data 
files in.
+        By default it is what's set by --with-kde-pluginprefix or what's 
returned by kde-config --install data --expandvars,
+        or $(prefix)/share/apps if kde-config is not found.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-ming</option>
+    </entry>
+      <entry>
+        Ming is used to build test cases, but not by the Gnash
+        player itself.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-mad_incl</option>
+    </entry>
+      <entry>
+        Directory where libmad header is installed.
+      </entry>
+ </row><row>
+  <entry>
+    <option>--with-mad_lib</option>
+    </entry>
+      <entry>
+        Directory where libmad library is installed.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-ogg_incl</option>
+    </entry>
+      <entry>
+        Directory where the libogg headers are installed.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-ogg_lib</option>
+    </entry>
+      <entry>
+        Directory where the libogg library is installed.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-gstreamer-incl</option>
+    </entry>
+      <entry>
+        Directory where the Gstreamer headers are
+        installed. Gstreamer version 0.10 or greater must be used.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-gstreamer-lib</option>
+    </entry>
+      <entry>
+        Directory where the Gstreamer library is
+        installed. Gstreamer version 0.10 or greater must be used.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-opengl-includes</option>
+    </entry>
+      <entry>
+        Directory where OpenGL (libMesa) headers are installed.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-opengl-lib</option>
+    </entry>
+      <entry>
+        Directory where the OpenGL (libMesa) library is installed.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-glext-incl</option>
+    </entry>
+      <entry>
+        Directory where GtkGlExt headers are installed.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-glext-lib</option>
+    </entry>
+      <entry>
+        Directory where the GtkGlExt library is installed.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-gtk2-incl</option>
+    </entry>
+      <entry>
+        Directory where the Gtk2 headers are installed.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-gtk2-lib</option>
+    </entry>
+      <entry>
+        Directory where the Gtk2 library is installed.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-cairo_incl</option>
+    </entry>
+      <entry>
+        Directory where the Cairo headers are installed.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-cairo-lib</option>
+    </entry>
+      <entry>
+        Directory where the Cairo library is installed.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-glib-incl</option>
+    </entry>
+      <entry>
+        Directory where the Glib headers are installed.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-glib-lib</option>
+    </entry>
+      <entry>
+        Directory where the Glib library is installed.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-pango-incl</option>
+    </entry>
+      <entry>
+        Directory where the Pango headers are installed.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-pango-lib</option>
+    </entry>
+      <entry>
+        Directory where the Pango library is installed.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-atk-incl</option>
+    </entry>
+      <entry>
+        Directory where the ATK headers are installed.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-atk-lib</option>
+    </entry>
+      <entry>
+        Directory where the ATK library is installed.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-pthread-incl</option>
+    </entry>
+      <entry>
+        Directory where the Pthread headers are installed.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-pthread-lib</option>
+    </entry>
+      <entry>
+        Directory where the Pthread library is installed.
+   </entry>
+  </row><row>
+  <entry>
+    <option>--with-agg-incl</option>
+    </entry>
+      <entry>
+        Directory where the AGG (Antigrain) headers are installed.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-agg-lib</option>
+    </entry>
+      <entry>
+        Directory where the AGG (Antigrain) library is installed.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-ffmpeg-incl</option>
+    </entry>
+      <entry>
+        Directory where the FFMPEG headers are installed.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-ffmpeg-lib</option>
+    </entry>
+      <entry>
+        Directory where the FFMPEG library is installed.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-boost-incl</option>
+    </entry>
+      <entry>
+        Directory where the Boost headers are installed.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-boost-lib</option>
+    </entry>
+      <entry>
+        Directory where the Boost library is installed.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-curl-incl</option>
+    </entry>
+      <entry>
+        Directory where the libCurl headers are installed.
+      </entry>
+  </row><row>
+  <entry>
+    <option>--with-curl-lib</option>
+    </entry>
+      <entry>
+        Directory where the libCurl library is installed.
+      </entry>
+</row>
+</tbody>
+</tgroup>
+</table>
+

Index: documentation_dependencies.xml
===================================================================
RCS file: documentation_dependencies.xml
diff -N documentation_dependencies.xml
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ documentation_dependencies.xml      1 Mar 2008 16:59:30 -0000       1.1
@@ -0,0 +1,165 @@
+<title>Documentation Dependencies</title>
+
+<para>
+  The following packages are used to build &app;'s documentation.
+</para>
+
+<table frame='all' id="docdeps">
+  <title>Documentation Dependency Table</title>
+  <tgroup cols='7' align='left' colsep='1' rowsep='1'>
+    <colspec colname='name'/>
+    <colspec colname='required'/>
+    <colspec colname='version'/>
+    <colspec colname='description'/>
+    <colspec colname='explanation'/>
+    <colspec colname='apt'/>
+    <colspec colname='rpm'/>
+
+    <thead>
+      <row>
+        <entry>Name</entry>
+        <entry>Level</entry>
+        <entry>Version</entry>
+        <entry>Description</entry>
+        <entry>Explanation</entry>
+        <entry>apt-get package</entry>
+        <entry>RPM/Yum package</entry>
+      </row>
+    </thead>
+
+    <tbody>
+      <row>
+        <entry>Docbook</entry>
+        <entry>Required</entry>
+        <entry></entry>
+        <entry>
+          <ulink type="http"
+          url="http://http://docbook.sourceforge.net/";>Docbook</ulink> is
+          is an industry-standard XML format for technical
+          documentation.  You can download it from
+          <ulink type="http"
+          
url="http://sourceforge.net/project/showfiles.php?group_id=21935#files";>http://sourceforge.net/project/showfiles.php?group_id=21935#files</ulink>.
+        </entry>
+        <entry>
+          &app; documentation is written in Docbook.
+        </entry>
+        <entry><filename>docbook-utils</filename> and 
+               <filename>docbook-dsssl</filename></entry>
+        <entry><filename>docbook-dtd41-sgml</filename> and
+               <filename>docbook-style-dsssl</filename></entry>
+      </row>
+
+      <row>
+        <entry>DocBook2X</entry>
+        <entry>Optional</entry>
+        <entry></entry>
+        <entry>
+          This software package converts Docbook documents to
+          the traditional man page format, GNU Texinfo
+          format, and HTML (via Texinfo) format.  
+          It is available at <ulink type="http" 
+          
url="http://docbook2x.sourceforge.net/";>http://docbook2x.sourceforge.net/</ulink>.
+        </entry>
+        <entry>
+          DocBook2X is required to produce HTML and Texinfo
+          formats.
+        </entry>
+        <entry><filename>docbook2x</filename></entry>
+        <entry><filename>docbook2x</filename></entry>
+      </row>
+
+      <row>
+        <entry>Texinfo</entry>
+        <entry>Possibly Required</entry>
+        <entry></entry>
+        <entry>
+          Texinfo can be used to convert DocBook2X output
+          into GNU info pages.  You can download it from
+          <ulink type="http"
+          
url="http://ftp.gnu.org/gnu/texinfo/";>http://ftp.gnu.org/gnu/texinfo/</ulink>.
+        </entry>
+        <entry>
+          Texinfo is required if you wish to product GNU info
+          pages.
+        </entry>
+        <entry><filename>texinfo</filename></entry>
+        <entry><filename>texinfo</filename></entry>
+      </row>
+
+      <row>
+        <entry>FOP</entry>
+        <entry>Optional</entry>
+        <entry>0.20.5</entry>
+        <entry>
+          Formatting Objects Processor is a print formatter
+          driven by XSL formatting objects.  It is a Java
+          application which can output PDF, PCL, PS, SVG, XML,
+          Print, AWT, MIF, and Text.  It is available at
+          <ulink url="http://xmlgraphics.apache.org/fop/";
+          type="http">http://xmlgraphics.apache.org/fop/</ulink>.
+        </entry>
+        <entry>
+          FOP is required for PDF output.
+        </entry>
+        <entry><filename>fop</filename></entry>
+        <entry><filename>fop</filename></entry>
+      </row>
+
+      <row>
+        <entry>Java (j2re)</entry>
+        <entry>Possibly Required</entry>
+        <entry></entry>
+        <entry>
+          FOP requires Sun's Java runtime (GCJ does not work with
+          FOP).  You can download it from
+          <ulink url="http://java.sun.com"; 
type="http">http://java.sun.com</ulink>.
+        </entry>
+        <entry>
+          Sun's Java runtime (j2re) is required to use FOP.  
+        </entry>
+        <entry>
+          Download the package from <ulink type="http"
+          url="http://java.sun.com";>Sun</ulink>.
+        </entry>
+        <entry>
+          Download the package from <ulink type="http"
+          url="http://java.sun.com";>Sun</ulink>.
+        </entry>
+      </row>
+
+      <row>
+        <entry>JAI</entry>
+        <entry>Possibly Required</entry>
+        <entry></entry>
+        <entry>
+          Sun's Java Advanced Imaging API can be downloaded from
+          <ulink type="http" 
url="http://java.sun.com/products/java-media/jai/iio.html";>http://java.sun.com/products/java-media/jai/iio.html</ulink>.
+        </entry>
+        <entry>
+          JAI is required
+          if you wish to include graphics in a PDF file being
+          generated with FOP.
+        </entry>
+        <entry>
+          Download the package from <ulink
+          url="http://java.sun.com/products/java-media/jai/iio.html";
+          type="http">Sun</ulink>.
+        </entry>
+        <entry>
+          Download the package from <ulink
+          url="http://java.sun.com/products/java-media/jai/iio.html";
+          type="http">Sun</ulink>.
+        </entry>
+      </row>
+
+    </tbody>
+  </tgroup>
+</table>
+
+<para>
+  If you install j2re, set the <emphasis>JAVA_HOME</emphasis>
+  environment variable to the top directory of the j2re
+  installation.  If you encounter problems with the Java
+  installation, you may also need to add this path to the
+  <emphasis>CLASSPATH</emphasis> environment variable.
+</para>

Index: feature_configuration.xml
===================================================================
RCS file: feature_configuration.xml
diff -N feature_configuration.xml
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ feature_configuration.xml   1 Mar 2008 16:59:30 -0000       1.1
@@ -0,0 +1,263 @@
+<title>Features</title>
+
+<para>
+  Some switches can be used during configuration to enable or disable
+  features of &app;. Some of the most important configuration options
+  are:
+</para>
+
+  <itemizedlist mark="opencircle">
+    <listitem>
+    <para>
+<option>--enable-gui</option> lets you specify your GUI of choice.
+The default option is GTK.
+    </para>
+    </listitem>
+    <listitem>
+    <para>
+<option>--enable-renderer</option> allows a renderer to be
+chosen.  The default renderer is OpenGL.
+    </para>
+    </listitem>
+    <listitem>
+    <para>
+<option>--enable-media</option> permits a media handler to be
+selected.  The default is Gstreamer.
+    </para>
+    </listitem>
+  </itemizedlist>
+<para>
+  A complete list of available features follows.
+</para>
+
+<table id="tb-config-features">
+<title>Configuration Options - Features</title>
+<tgroup cols='2' align='left' colsep='1' rowsep='1'>
+<colspec colname='Option' />
+<colspec colname='Function' />
+<thead>
+<row>
+  <entry>Option</entry>
+  <entry>Function</entry>
+</row>
+</thead>
+<tbody>
+<row>
+  <entry><option>--enable-debugger</option></entry>
+  <entry>Enable support for the Flash debugger. The debugger is
+        mainly of interest to Flash developers.</entry>
+</row>
+<row>
+  <entry><option>--enable-dmalloc</option></entry>
+  <entry>Enable support for the DMalloc memory debugging tool.</entry>
+</row>
+<row>
+  <entry> <option>--enable-docbook</option></entry>
+  <entry>  Enable the generation of HTML and PDF versions of the documentation
+       from the XML. You will then be able to use <command>make html</command> 
and <command>make pdf</command>.</entry>
+</row>
+<row>
+  <entry>  <option>--enable-embedded</option></entry>
+  <entry> Link to Qt-embedded, do not use X. This is only used by
+        Klash</entry>
+</row>
+<row>
+  <entry> <option>--disable-fork</option></entry>
+  <entry>Disable the plugin from forking the standalone player, and
+        using a thread for the player instead. Currently forking
+        the standalone player gives you the best results.</entry>
+</row>
+<row>
+  <entry><option>--enable-ghelp</option>
+</entry>
+  <entry>Enable support for the GNOME help system.</entry>
+</row>
+<row>
+  <entry><option>--disable-glext</option>
+</entry>
+  <entry>Disable using GtkGlExt, which forces the use of SDL
+        instead. By default if the GtkGL extension for Gtk is found
+        by the configure script, the GTK-enabled GUI is built.</entry>
+</row>
+<row>
+  <entry><option>--enable-gui=gtk|sdl|kde|fltk|fb</option></entry>
+  <entry><para>Select the Graphic User Interface to use (choose one).</para>
+ <variablelist>
+       <varlistentry>
+         <term>GTK</term>
+         <listitem>
+<para>
+    The GTK+ toolkit, which is the default GUI.
+    Said to interwork particularly well with firefox.
+</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term>SDL</term>
+         <listitem>
+<para>
+    Simple DirectMedia Layer, a simple and portable GUI.
+    Its sound facilities are used when --enable-media=ffmpeg
+    regardless of whether it is also in charge of the GUI.
+</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term>KDE</term>
+         <listitem>
+<para>
+    An interface adapted to the KDE Desktop Environment.
+    This must be selected when building the Konqueror plugin
+    "klash". Furthermore, the only renderer that currently
+    works with KDE is opengl.
+</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term>FLTK</term>
+         <listitem>
+<para>
+    Fast Light ToolKit, low on resource usage.
+    Since all build using fltk are now broken, we declare it
+    "for developers".
+</para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term>FB</term>
+         <listitem>
+<para>
+    The Linux Frame Buffer, also known as /dev/fb0.
+    AGG is the only renderer that can currently be used
+    with the framebuffer GUI.
+</para>
+         </listitem>
+       </varlistentry>
+      </variablelist>
+</entry>
+</row>
+<row>
+  <entry><option>--enable-i810-lod-bias</option>
+</entry>
+  <entry>Enable fix for Intel 810 LOD bias problem. Older versions
+        of libMesa on the Intel i810 or i815 graphics processor
+        need this flag or Gnash will core dump. This has been
+        fixed in newer versions (summer 2005) of libMesa.</entry>
+</row>
+<row>
+  <entry><option>--enable-libsuffix</option>
+</entry>
+  <entry><filename>/lib</filename> directory suffix (64,32,none=default). This 
is only
+        used by Klash.</entry>
+</row>
+<row>
+  <entry><option>--enable-mac</option>
+</entry>
+  <entry>Link to Qt/Mac (don't use X). This is only used by
+        Klash.</entry>
+</row>
+<row>
+  <entry><option>--enable-media=ffmpeg|gst|none</option>
+</entry>
+  <entry>  <para>
+        Select the specified media decoder and sound engine.
+        FFMPEG uses the SDL sound engine; GST uses its own.
+        <option>GST</option> is the default decoder.
+      </para>
+      <para>
+        You should only select one media decoder.
+      </para></entry>
+</row>
+<row>
+  <entry>
+    <option>--disable-nsapi</option>
+    <option>--enable-nsapi</option>
+  </entry>
+  <entry>Force disable/enable building the NPAPI plugin.
+         By default the Mozilla plugin is built if the GTK gui 
+         is selected.  Specify the 
+         <option>--with-npapi-plugindir=</option> option to specify where the
+         plugin should be installed.
+   </entry>
+</row>
+<row>
+  <entry>
+     <option>--disable-kparts</option>
+     <option>--enable-kparts</option>
+  </entry>
+  <entry>Force disable/enable building the KPARTS plugin. By default the
+        KDE plugin is built if the kde gui is selected. 
+        Specify the <option>--with-kde-plugindir=</option> and
+        <option>--with-kde-servicesdir=</option> options (or more generally
+        the <option>--with-kde-pluginprefix=</option> one) to specify where the
+        plugin should be installed. The default installation dir is extracted
+        from kde-config.
+  </entry>
+</row>
+<row>
+  <entry>
+     <option>--disable-plugins</option>
+  </entry>
+  <entry>Disable build of both kparts and npapi plugins</entry>
+</row>
+<row>
+  <entry>    <option>--enable-qtopia</option>
+</entry>
+  <entry>  Link to Qt-embedded, link to the Qtopia
+        Environment. This is only used by Klash.</entry>
+</row>
+<row>
+  <entry><option>--enable-renderer=opengl|cairo|agg</option>
+</entry>
+  <entry>Enable support for the a graphics backend. Currently
+        only <option>opengl</option> and
+        <option>agg</option> work sufficiently. OpenGL is
+        used when you have hardware accelerated graphics. AGG i
+        used when you do not have hardware accelerated
+        graphics. Typically most desktop machines have OpenGL
+        support, and most embedded systems do not. OpenGl is the
+        default when building Gnash, although the quality of AGG's
+        rendering is currently superior to OpenGL.</entry>
+</row>
+<row>
+  <entry><option>--enable-sdk-install</option>
+</entry>
+  <entry>Enable installing the libraries and headers as an SDK.
+</entry>
+</row>
+<row>
+  <entry><option>--disable-shared</option>
+</entry>
+  <entry>Enable installing the shared libraries and headers.
+        Note that the extensions mechanism may not work if shared
+        libraries are disabled.</entry>
+</row>
+<row>
+  <entry><option>--enable-strict</option>
+</entry>
+  <entry>Turn verbose GCC compiler warnings. By default only
+        <option>-Wall</option> is used with GCC.</entry>
+</row>
+<row>
+  <entry><option>--enable-fps-debug</option>
+</entry>
+  <entry>Enable FPS debugging code. When this feature is compiled in you can 
use the -f switch of &app;
+       to have FPS printed at regular intervals.</entry>
+</row>
+<row>
+  <entry><option>--enable-write</option></entry>
+  <entry>Makes the Mozilla plugin write the currently playing SWF movie to 
<filename>/tmp</filename>.
+</entry>
+</row>
+<row>
+  <entry><option>--disable-mit-shm</option>
+</entry>
+  <entry>Disable support for the MIT-SHM X extensions.
+       Currently support is only available using GTK gui and AGG renderer.
+       Keeping it enabled is not a problem as it will not be used if not
+       available in the current X session.
+       </entry>
+</row>
+</tbody>
+</tgroup>
+</table>

Index: install.xml
===================================================================
RCS file: install.xml
diff -N install.xml
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ install.xml 1 Mar 2008 16:59:30 -0000       1.1
@@ -0,0 +1,114 @@
+<title>Installation</title>
+
+<para>
+Now that &app; has been compiled and tested, use the following command to 
install it:
+  <programlisting>
+  make install
+  </programlisting>
+The above command installs the standalone player.  If the correct files were 
found by <command>configure</command> and if the 
<option>--disable-plugin</option> option was not specified, the &app; browser 
plugin is also installed.
+</para>
+
+<para>
+  &app; installs a number of <link linkend="libinstall">libraries</link>,
+  namely: <emphasis>libbase</emphasis>,
+  <emphasis>libgeometry</emphasis>, <emphasis>libbackend</emphasis>,
+  <emphasis>libserver</emphasis>, and <emphasis>libmozsdk</emphasis>.
+  <link linkend="appinstall">Executables</link>
+  consist of the (optional) plugin, <filename>gprocessor</filename>,
+  <filename>cygnal</filename>,  and <filename>gnash</filename>.
+  <link linkend="docinstall">Documentation</link> may also be installed.
+  The installation location is controlled with the
+  <emphasis>--prefix</emphasis> <link linkend="custompath">configure
+  option</link>, except for plugins, which are explicitly set with
+  <emphasis>--plugin-dir</emphasis>.
+</para>
+
+<para>
+  Note that if you are using a single file-system <emphasis>NFS</emphasis>
+  mounted to multiple platforms, the 
+  <link linkend="custompath">configuration option</link> 
+  <emphasis>--exec-prefix</emphasis> may be used to specify where
+  platform-dependent executables and libraries are installed.
+</para>
+  
+<sect2 id="libinstall">
+  <title>Libraries</title>
+  
+  <para>
+    Installed libraries are located in 
+    <filename>/usr/local/lib</filename> by default.
+    If the <emphasis>--prefix</emphasis> option was used in
+    <link linkend="pre-configuration">configuration</link>, the libraries will
+    be installed in the directory <filename>lib</filename> inside the
+    path you specified.  If the libraries are stored in a non-standard
+    location, you must identify the path in one of two ways.
+  </para>
+
+  <para>
+    The traditional way to do this on UNIX
+    platforms is to set the <emphasis>LD_LIBRARY_PATH</emphasis> variable
+    to the path plus <filename>/lib</filename>.  For example, if you
+    installed in <filename>/home/gnash</filename>, the 
+    <emphasis>LD_LIBRARY_PATH</emphasis> path would be
+    <filename>/home/gnash/lib</filename>.  Multiple paths are delimited
+    with a colon (':').
+  </para>
+  
+  <para>
+    GNU/Linux allows the custom path to be added to
+    <filename>/etc/ld.so.conf</filename>.  After adding the path,
+    run <emphasis>ldconfig</emphasis> as root to update the runtime
+    cache.
+  </para>
+</sect2>
+
+<sect2 id="appinstall">
+  <title>Executables</title>
+
+  <para>
+   The Mozilla plugin is built from headers (the Mozilla SDK) provided with 
Gnash and
+       does not need extra development packages to be installed. By default, 
the
+       plugin is installed to <filename>~/.mozilla/plugins/</filename>. To 
enable
+       the plugin for other users, copy the file 
<filename>libgnashplugin.so</filename>
+       to <filename>.mozilla/plugins/</filename> in their home directory.
+       You may also specify the plugin installation directory by using the 
+       <option>--with-plugindir</option> <link linkend="custompath">option 
+       at configuration time</link>.
+   </para>
+   <para>
+   These defaults are likely to change in future versions of Gnash.
+   </para> 
+  <para>
+    The remaining executables are installed in the <filename>bin</filename>
+    subdirectory of the directory specified by during configuration.
+    If no path was specified, the default is 
+    <filename>/usr/local/bin</filename>.
+  </para>
+</sect2>
+
+<sect2 id="docinstall">
+  <title>Documentation</title>
+
+  <para>
+    Documentation is not built by default; please refer to the 
+    <link linkend="processdoc">section on documentation</link> for
+    more information on building documentation.
+  </para>
+
+  <para>
+    <command>man</command> and <command>info</command> 
+    are installed in <filename>/usr/local/share/man</filename>
+    and <filename>/usr/local/share/info</filename> respectively, unless
+    the <option>--mandif</option> or <option>--infodir</option>
+    <link linkend="custompath">configuration options</link> are used.
+  </para>
+
+  <para>
+    <emphasis>GNOME help</emphasis> documentation uses the directory
+    <filename>/usr/local/share/gnash/doc/gnash/C/</filename> by default.
+    A configuration file in the &app; source tree,
+    <filename>doc/C/gnash.omf</filename> is used to specify under
+    which menu item &app; appears in the <emphasis>GNOME help</emphasis>
+    system.
+  </para>
+</sect2>

Index: sources.xml
===================================================================
RCS file: sources.xml
diff -N sources.xml
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ sources.xml 1 Mar 2008 16:59:31 -0000       1.1
@@ -0,0 +1,1714 @@
+<sect1 id="build">
+  <title>Building From Source</title>
+  
+  <sect2 id="building_overview">
+    <title>Overview</title>
+    <para>
+      The typical process of building from source will involve 
+      <link linkend="gettingsource">getting the source</link>,
+      <link linkend="codedepend">resolving dependencies</link>,
+      <link linkend="configure">configuration</link>, 
+      <link linkend="compile">compilation</link>,
+      <link linkend="runtests">testing</link>, and
+      <link linkend="install">installation</link>.
+      A simplified overview of the process would be:
+      <programlisting>
+        ./autogen.sh
+        ./configure 
+        make
+        make check
+        make install
+      </programlisting>
+    </para>
+
+    <para>
+      If you are compiling with GCC you will probably need to use a machine
+      with at least 128 megabytes of physical RAM; 64MB is not enough for a
+      couple of the files, even with swap enabled and optimisation turned off.
+    </para>
+    <para>
+      At present the Gnash source is about 16 MB to extracted and configured
+      and requires a total of about 100 megabytes to compile it.
+    </para>
+    <para>
+      Continue reading for detailed step-by-step instructions 
+      of the entire procedure.
+    </para>  
+  </sect2>
+  
+  <sect2 id="gettingsource">
+    <title>Getting The Source</title>
+
+    <sect3 id="sourcereleases">
+      <title>Releases</title>
+      <para>
+       Tarballs of official releases can be found in the download area
+       of the project's GNU Savannah page at
+       <ulink type="http"
+              url="http://savannah.gnu.org/projects/gnash";>
+                   http://savannah.gnu.org/projects/gnash
+       </ulink> 
+       or under
+       <ulink type="http"
+              url="http://ftp.gnu.org/gnu/gnash";>
+                   http://ftp.gnu.org/gnu/gnash
+       </ulink> 
+      </para>
+    </sect3>
+
+    <sect3 id="sourcecvs">
+      <title>CVS Access</title>
+      <para>
+       The latest Gnash development sources are available via anonymous CVS.
+       Use the following commands to check them out
+       (just hit return when you are prompted for the password):
+       <programlisting>
+         export CVS_RSH=ssh
+         cvs -z3 -d:pserver:address@hidden:/sources/gnash co gnash
+       </programlisting>
+       you will then be able to update your copy from the repository using
+       <programlisting>
+         cd gnash
+         cvs update -d
+       </programlisting>
+      </para>
+      <para>
+       If you only have access to the internet via a web proxy,
+       you will find daily snapshots of the latest CVS tree in
+       <ulink type="http"
+              url="http://www.gnashdev.org/dev_snapshots/";>
+                   http://www.gnashdev.org/dev_snapshots
+       </ulink> 
+      </para>
+    </sect3>
+  </sect2>
+
+  <sect2 id="codedepend">
+    <title>Code Dependencies</title>
+
+    <para>
+      Gnash has dependencies on other packages. When installing
+      from a packaged release file (rpm, deb, etc.), you'll need
+      to install the development versions to get the tools used to
+      compile Gnash. The normal runtime packages installed are usually
+      missing the headers needed to compile Gnash.
+    </para>
+
+    <sect3 id="opengl">
+      <title>OpenGL</title>
+      <para>
+       Gnash can use OpenGL for rendering the images. OpenGL is a 3D
+       graphics package which supports hardware acceleration. You can
+       get the free version of OpenGL at this link: 
+       <ulink type="http"
+              url="http://www.mesa3d.org";>http://www.mesa3d.org</ulink> 
+      </para>
+
+      <para>
+       To install a binary package using apt-get (on Debian based
+       systems), install libgl1-mesa-dev. For RPM or Yum based
+       systems, install the libmesa-devel package.
+      </para>
+
+    </sect3>
+
+    <sect3 id="agg">
+      <title>AGG</title>
+      <para>
+       AGG is the AntiGrain low-level 2D graphics library that can be used
+       instead of OpenGL. Unlike OpenGL, AGG does all rendering in software
+       without requiring that much floating point calculation.
+      </para>
+      <para>
+       To install a binary package using apt-get (on Debian based
+       systems), install libagg-dev. For RPM or Yum based
+       systems, install the agg-devel package.
+      </para>
+    </sect3>
+
+    <sect3 id="gtkglext">
+      <title>GtkGlExt</title>
+      <para>
+       GtkGlExt is an optional package used to link the gtk GUI to the
+       opengl renderer.
+       Gtk enables better integration with Firefox, as well as better
+       event handling and higher level GUI constructs like menus and
+       dialog boxes.
+      </para>
+      <para>
+       To install a binary package using apt-get (on Debian based
+       systems), install libgtkglext1-dev. For RPM or Yum based
+       systems, install the gtkglext-devel package.
+      </para>
+    </sect3>
+
+    <sect3 id="pango">
+      <title>Pango</title>
+      <para>
+       Pango is a dependency of GtkGlExt, and is used for font handling.
+      </para>
+      <para>
+       To install a binary package using apt-get (on Debian based
+       systems), install libpango1.0-dev. For RPM or Yum based
+       systems, install the pango-devel package.
+      </para>
+    </sect3>
+
+    <sect3 id="atk">
+      <title>Atk</title>
+      <para>
+       Atk is a dependency of GtkGlExt, and is used for accessibility
+       support.
+      </para>
+      <para>
+       To install a binary package using apt-get (on Debian based
+       systems), install atk-dev. For RPM or Yum based
+       systems, install the atk-devel package.
+      </para>
+    </sect3>
+
+    <sect3 id="cairo">
+      <title>Cairo</title>
+      <para>
+       Cairo is a dependency of GtkGlExt, and is used for 2D rendering.
+      </para>
+      <para>
+       To install a binary package using apt-get (on Debian based
+       systems), install libcairo2-dev. For RPM or Yum based
+       systems, install the cairo-devel package.
+      </para>
+    </sect3>
+
+    <sect3 id="boost">
+      <title>Boost</title>
+      <para>
+       Boost is a library of portable C++ classes and templates which
+       layer on top of STL. Boost is used for thread and mutext
+       handling.
+      </para>
+      <para>
+       To install a binary package using apt-get (on Debian based
+       systems), install libboost-thread-dev. For RPM or Yum based
+       systems, install the libboost-devel package.
+      </para>
+    </sect3>
+
+    <sect3 id="glib">
+      <title>Glib</title>
+      <para>
+       Glib is a dependency of GtkGlExt, and is a collection of
+       commonly used functions.
+      </para>
+      <para>
+       To install a binary package using apt-get (on Debian based
+       systems), install glib-dev. For RPM or Yum based
+       systems, install the glib-devel package.
+      </para>
+    </sect3>
+
+    <sect3 id="gstreamer-dep">
+      <title>Gstreamer</title>
+      <para>
+       Gstreamer is used for sound and video support. It is not
+       needed to build this release. Currently only Gstreamer version
+       0.10 or higher can be used.
+      </para>
+      <para>
+       To install a binary package using apt-get (on Debian based
+       systems), install libgstreamer0.10-dev. For RPM or Yum based
+       systems, install the gstreamer-devel package. Version 0.10 or
+       greater will be required.
+      </para>
+    </sect3>
+
+    <sect3 id="ffmpeg-dep">
+      <title>FFMPEG</title>
+      <para>
+       FFMPEG can also be used for sound and video support. It is not
+       needed to build this release, but is recommended if you want
+       working sound.
+      </para>
+      <para>
+       To install a binary package using apt-get (on Debian based
+       systems), install libavformat-dev. For RPM or Yum based
+       systems, install the libffmpeg-devel package. Version 0.10 or
+       greater will be required.
+      </para>
+    </sect3>
+
+    <sect3 id="sdl">
+      <title>SDL</title>
+      <para>
+       The Simple DirectMedia Layer is a cross-platform multimedia
+       library designed to provide low level access to audio,
+       keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D
+       video framebuffer. You can get SDL from this link:
+       <ulink type="http" url="http://www.libsdl.org";>
+       http://www.libsdl.org</ulink>
+      </para>
+
+      <para>
+       To install a binary package using apt-get (on Debian based
+       systems), install libsdl1.2-dev. For RPM or Yum based
+       systems, install the SDL-devel package.
+      </para>
+
+    </sect3>
+
+    <sect3 id="png">
+      <title>PNG</title>
+      <para>
+       <ulink type="http"
+              url="http://www.libpng.org/pub/png/";>PNG</ulink> is a
+       patent-free image format that is comparable to
+       <emphasis>GIF</emphasis>.
+      </para>
+      <para>
+       To install a binary package using apt-get (on Debian based
+       systems), install libpng12-dev. For RPM or Yum based
+       systems, install the libpng package.
+      </para>
+
+    </sect3>
+
+    <sect3 id="jpeg">
+      <title>JPEG</title>
+      <para>
+       <ulink type="http"
+              url="http://www.ijg.org/";>JPEG</ulink> is a lossy image
+       format, heavily used for images because of the smaller size of
+       the file.
+      </para>
+      <para>
+       To install a binary package using apt-get (on Debian based
+       systems), install libjpeg62-dev. For RPM or Yum based
+       systems, install the libjpeg package.
+      </para>
+
+    </sect3>
+
+    <sect3 id="libxml2">
+      <title>libxml2</title>
+      <para>
+       Libxml2 is the GNOME XML parser library. This is used when
+       Gnash is configured with XML support. Libxml2 is used to
+       parse any incoming messages when using the XML or XMLSocket
+       ActionScript classes. You can get libxml2 from this link: 
+       <ulink type="http" url="http://xmlsoft.org";>http://xmlsoft.org</ulink> 
+      </para>
+
+      <para>
+       To install a binary package using apt-get (on Debian based
+       systems), install libxml2-dev. For RPM or Yum based
+       systems, install the libxml2-devel package.
+      </para>
+    </sect3>
+    
+    <sect3 id="ogg">
+      <title>Ogg Vorbis</title>
+      <para>
+       <ulink type="http" url="http://www.vorbis.com/";>Ogg
+       Vorbis</ulink> is a patent free audio format that is
+       comparable (many people say better) to MP3. This is used by
+       SDL to play Ogg files. You can get Ogg Vorbis from this
+       link: <ulink type="http" url="http://www.vorbis.com/";>
+       http://www.vorbis.com/</ulink>.
+      </para>
+      <para>
+       To install a binary package using apt-get (on Debian based
+       systems), install libogg-dev. For RPM or Yum based
+       systems, install the libogg package.
+      </para>
+
+    </sect3>
+
+    <sect3 id="libmad">
+      <title>libMAD</title>
+
+      <para>
+       libMad is a high-quality MPG decoder for audio files. All
+       variations of the MP3 format are supported.
+       <ulink type="http"
+              url="http://www.underbit.com/products/mad/";>
+       http://www.underbit.com/products/mad/</ulink>. You can get
+       libMAD from this link: <ulink type="http"
+       url="http://xmlsoft.org";>http://xmlsoft.org</ulink> 
+      </para>
+      <para>
+       To install a binary package using apt-get (on Debian based
+       systems), install libmad0-dev. For RPM or Yum based
+       systems, install the libmad package.
+      </para>
+
+    </sect3>
+
+    <sect3 id="mozilla">
+      <title>Mozilla/Firefox</title>
+
+      <para>
+       The Mozilla development package is no longer needed to build
+       the plugin. The required header files are now included in
+       Gnash, so it builds without Mozilla or Firefox installed at
+       all.
+      </para>
+       
+      <para>
+       To install a binary package using apt-get (on Debian based
+       systems), install mozilla-dev or firefox-dev. For RPM or Yum
+       based systems, install the mozilla-devel or firefox-devel
+       package.
+      </para>
+    </sect3>
+  </sect2>
+  
+  <sect2 id="docdepend">
+    <title>Documentation Dependencies</title>
+    
+    <sect3 id="docbook">
+      <title>Docbook</title>
+
+      <para>
+       <ulink type="http" url="http://docbook.sourceforge.net/";> 
+       Docbook</ulink> is an industry standard XML format for technical
+       documentation. It is used by many projects, as there are free
+       software implementations of the Docbook style-sheets and
+       tools. It is used by both the <ulink type="http"
+       url="http://www.gnome.org";>GNOME</ulink> project, and the
+       <ulink type="http" url="http://www.tldp.org/";>Linux
+       Documentation Project</ulink>. It is customizable by using
+       style-sheets for each output device. Default style-sheets are
+       included for a variety of print formats, like <emphasis>PDF</emphasis>
+       and <emphasis>HTML</emphasis>.
+      </para>
+      <para>
+       You can get Docbook from this link: 
+       <ulink type="http"
+              
url="http://sourceforge.net/project/showfiles.php?group_id=21935#files";>
+       
http://sourceforge.net/project/showfiles.php?group_id=21935#files</ulink>.
+      </para>
+      <para>
+       To install a binary packages using apt-get (on Debian based
+       systems), install the docbook, docbook-xsl, docbook-xml,
+       docbook-dsssl,and docbook-utils packages. For RPM or Yum based
+       systems, install the docbook, docbook-style-xsl,
+       docbook-style-dsssl, and docbook-utils packages.
+      </para>
+    </sect3>
+
+    <sect3 id="docbook2x">
+      <title>DocBook2X</title>
+
+      <para>
+        DocBook2X is a software package that converts DocBook
+        documents into the traditional Unix man page format and the
+        GNU Texinfo format. It supports tables for man pages,
+        internationalization, and easy customization of the
+        output using XSLT. This package is used to convert the Gnash
+        documentation into HTML and <ulink type="http"
+        url="http://www.gnu.org/software/texinfo/";>
+        Texinfo</ulink> formats. Texinfo can later be converted to
+        standard GNU <emphasis>info</emphasis> pages.
+      </para>
+      <para>
+       You can get DocBook2X from this link: 
+       <ulink type="http" url="http://docbook2x.sourceforge.net/";>
+       http://docbook2x.sourceforge.net/</ulink>. Texinfo is
+       available at this link:
+       <ulink type="http" url="http://ftp.gnu.org/gnu/texinfo/";>
+       http://ftp.gnu.org/gnu/texinfo/</ulink>.
+      </para>
+      <para>
+       To install a binary package of DocBook2X using apt-get (on
+       Debian based systems), install docbook2x. For RPM or Yum based
+       systems, install the docbook2x package.
+       To install a binary package of DocBook2X using apt-get (on
+       Debian based systems), install texinfo. For RPM or Yum based
+       systems, install the texinfo package.
+      </para>
+    </sect3>
+
+    <sect3 id="fop">
+      <title>FOP</title>
+
+      <para>
+       FOP (Formatting Objects Processor) is the world's first print 
+       formatter driven by XSL formatting objects (XSL-FO) and the
+       world's first output independent formatter. It is a
+       <emphasis>Java</emphasis> application that reads a formatting object
+       (FO) tree and renders the resulting pages to a specified
+       output. Output formats  currently supported include PDF, PCL,
+       PS, SVG, XML, Print, AWT, MIF and Text. The default output
+       target is PDF.
+      </para>
+
+      <para>
+       You can get <emphasis>fop</emphasis> from this link: 
+       <ulink type="http" url="http://xmlgraphics.apache.org/fop/";>
+       http://xmlgraphics.apache.org/fop/</ulink>. Presently only
+       <emphasis>fop version 0.20.5</emphasis> works with current DocBook
+       tools.
+      </para>
+    </sect3>
+
+    <sect3 id="java">
+      <title>Java</title>
+
+      <para>
+       The <emphasis>fop</emphasis> processor is a <emphasis>Java</emphasis>
+       application, so it needs a Java runtime to work. This is
+       installed on many platforms by default, but unfortunately
+       <emphasis>fop</emphasis> doesn't work with the <ulink type="http"
+       url="http://gcc.gnu.org/java/";>GCJ</ulink> runtime. There is
+       apparently work being done on FOP to make it usable, but for
+       now, this means installing <ulink type="http"
+       url="http://java.sun.com/";>Sun Java</ulink>.
+      </para>
+
+      <para>
+       In addition to the default <emphasis>j2re</emphasis> package, you also
+       need to install <emphasis>JAI</emphasis>, the Java Advanced Imaging
+       library. You can get <emphasis>JAI</emphasis> from <ulink type="http"
+       url="http://java.sun.com/products/java-media/jai/iio.html";>
+       this link</ulink>. <emphasis>JAI</emphasis> is not required, and the
+       <emphasis>PDF</emphasis> file will be generated. It will just be
+       missing all the graphics.
+      </para>
+      <para>
+       <emphasis>Fop</emphasis> also requires an environment variable to be
+       set. This is JAVA_HOME. This needs to point to the top
+       directory where your <emphasis>Sun j2re</emphasis> is installed. If
+       you have any other problems with your Java installation, you
+       can also try adding the <emphasis>Sun j2re</emphasis> path to the
+       <emphasis>CLASSPATH</emphasis> environment variable.
+      </para>
+    </sect3>
+
+  </sect2>
+    
+  <sect2 id="configure">
+    <title>Configuring The Code</title>
+    
+    <para>
+      Gnash uses GNU Autoconf (<ulink type="http"
+      url="http://www.gnu.org/software/autoconf/";>
+      http://www.gnu.org/software/autoconf</ulink>) for
+      configuration. All the standard configure options apply. 
+    </para>
+
+    <para>
+      The <emphasis>configure</emphasis> script is not included in the CVS
+      sources. It must be produced by running the
+      <emphasis>./autogen.sh</emphasis> script in the top level source
+      directory. This script requires you have <emphasis>autoconf</emphasis>,
+      <emphasis>automake</emphasis>, and <emphasis>libtool</emphasis> 
installed.
+      After building this script, you can configure Gnash by running it from
+      the source directory like this: <emphasis>./configure</emphasis>, or from
+      another directory by specifying the full path to configure.
+    </para>
+
+    <para>
+      By default, `make install' will install all the files in
+      `/usr/local/bin', `/usr/local/lib' etc.  You can specify
+      an installation prefix other than `/usr/local' using `--prefix',
+      for instance `--prefix=$HOME'.
+    </para>
+
+    <para>
+      Occasionally the default paths for a development package
+      aren't correct. There are several options which can be used
+      to adjust these paths to your own setup. By default, Gnash
+      will look in all the standard places for these tools.
+    </para>
+    
+    <para>
+      A configure script can support many options, but they fall
+      into two main types. The first type are options to enable or
+      disable features. The second type is used to specify custom
+      paths for development packages which can't be found by the
+      default searching and testing.
+    </para>
+
+    <sect3 id="confoptions">
+      <title>Configure Options</title>
+      
+      <para>
+       Some switches can be used at configuration time to enable or disable
+       various features of Gnash. The major configuration options are:
+      </para>
+      <para>
+       GUI: see --enable-gui (default is GTK)
+      </para>
+      <para>
+       Renderer: see --enable-renderer (default is AGG)
+      </para>
+      <para>
+       Media handler: see --enable-media (default is FFMPEG thru SDL sound)
+      </para>
+
+      <para>
+       The smallest working standalone version is obtained with:
+       <programlisting>
+       ./configure --disable-debugger --disable-cygnal --disable-docbook \
+               --disable-plugin --enable-media=mad --enable-gui=sdl
+       </programlisting>
+      </para>
+                
+
+       <varlistentry>
+         <term>--disable-debugger</term>
+         <listitem>
+           <para>
+             Disable support for the Flash debugger. The debugger is
+             mainly of interest to Flash developers.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--enable-dmalloc</term>
+         <listitem>
+           <para>
+             Enable support for the DMalloc memory debugging tool.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--enable-dom</term>
+         <listitem>
+           <para>
+             When using the XML library, parse the messages using a
+             DOM based parser. This is the default.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--enable-embedded</term>
+         <listitem>
+           <para>
+             Link to Qt-embedded, don't use X. This is only used by
+             Klash.
+           </para>
+         </listitem>
+       </varlistentry>
+
+      <variablelist>
+       <varlistentry>
+         <term>--disable-fork</term>
+         <listitem>
+           <para>
+             Disable the plugin forking the standalone player, and
+             using a thread for the player instead. Currently forking
+             the standalone player will give you the best results.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--enable-ghelp</term>
+         <listitem>
+           <para>
+             Enable support for the GNOME help system.
+           </para>
+         </listitem>
+       </varlistentry>
+       
+       <varlistentry>
+         <term>--disable-glext</term>
+         <listitem>
+           <para>
+             Disable using GtkGlExt, which forces the use of SDL
+             instead. By default if the GtkGL extension for Gtk is found
+             by configure, the GTK enabled GUI is built.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--enable-gui=gtk|sdl|kde|fltk|fb</term>
+         <listitem>
+           <para>
+             Select the Graphic User Interface to use (just one at a time 
please).
+           </para>
+           <varlistentry>
+             <term>GTK</term>
+             <listitem>
+               The GTK+ toolkit, which is the default GUI.
+               Said to interwork particularly well with firefox.
+             </listitem>
+           </varlistentry>
+           <varlistentry>
+             <term>SDL</term>
+             <listitem>
+               Simple DirectMedia Layer, a simple and portable GUI.
+               Its sound facilities are used when --enable-media=ffmpeg|mad
+               regoardless of whether it is also in charge of the GUI.
+             </listitem>
+           </varlistentry>
+           <varlistentry>
+             <term>KDE</term>
+             <listitem>
+               An interface adapted to the KDE Desktop Environment.
+               This must be selected when building the Konqueror plugin
+               "klash". Furthermore, the only renderer that currently
+               works with KDE is opengl.
+             </listitem>
+           </varlistentry>
+           <varlistentry>
+             <term>FLTK</term>
+             <listitem>
+               Fast Light ToolKit, low on resource usage.
+               Since all build using fltk are now broken, we declare it
+               "for developers".
+             </listitem>
+           </varlistentry>
+           <varlistentry>
+             <term>FB</term>
+             <listitem>
+               The Linux Frame Buffer, also known as /dev/fb0.
+               AGG is the only renderer that can currently be used
+               with the framebuffer GUI.
+             </listitem>
+           </varlistentry>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--enable-i810-lod-bias</term>
+         <listitem>
+           <para>
+             Enable fix for Intel 810 LOD bias problem. Older versions
+             of libMesa on the Intel i810 or i815 graphics processor
+             need this flag or Gnash will core dump. This has been
+             fixed in newer versions (summer 2005) of libMesa.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--disable-klash</term>
+         <listitem>
+           <para>
+             Disable support for Konqueror plugin. If
+             <emphasis>--enable--plugin</emphasis> is  specified, and
+             support for building KDE programs is found, Klash is
+             built by default. This option limits the plugin to only
+             the Mozilla/Firefox one.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--enable-libsuffix</term>
+         <listitem>
+           <para>
+             /lib directory suffix (64,32,none=default). This is only
+             used by Klash.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--enable-mac</term>
+         <listitem>
+           <para>
+             Link to Qt/Mac (don't use X). This is only used by
+             Klash. 
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--enable-media=ffmpeg|mad|gst</term>
+         <listitem>
+           <para>
+             Select the specified media decoder and sound engine.
+             FFMPEG and MAD use the SDL sound engine; GST uses its own.
+              Mixing this with --enable-sound=gst is invalid. Using
+             <emphasis>ffmpeg</emphasis> is the default decoder.
+           </para>
+           <para>
+             You should only select one media decoder.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--enable-plugin</term>
+         <listitem>
+           <para>
+             Enable building the plugin. By default the
+             Mozilla Firefox plugin won't be built, even if all the required
+             files are found by configure. Configure
+             <emphasis>--with-plugindir=</emphasis> to specify where the
+             plugin should be installed. 
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--enable-qtopia</term>
+         <listitem>
+           <para>
+             Link to Qt-embedded, link to the Qtopia
+             Environment. This is only used by Klash.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--enable-renderer=opengl|cairo|agg</term>
+         <listitem>
+           <para>
+             Enable support for the a graphics backend. Currently
+             only <emphasis>opengl</emphasis> and
+             <emphasis>agg</emphasis> work sufficiently. OpenGL is
+             used when you have hardware accelerated graphics. AGG is
+             used when you don't have hardware accelerated
+             graphics. Typically most desktop machines have OpenGL
+             support, and most embedded systems don't. OpenGL is the
+             default when building Gnash, though the quality of AGG's
+             rendering is currently superior to OpenGL.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--enable-sdk-install</term>
+         <listitem>
+           <para>
+             Enable installing the libraries and headers as an SDK.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--disable-shared</term>
+         <listitem>
+           <para>
+             Enable installing the shared libraries and headers.
+             Note that the extensions mechanism may not work if shared
+             libraries are disabled.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--enable-strict</term>
+         <listitem>
+           <para>
+             Turn on tons of GCC compiler warnings. By default only
+             <emphasis>-Wall</emphasis> is used with GCC.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--enable-testing</term>
+         <listitem>
+           <para>
+             Enable testing-specific methods.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--enable-xmlreader</term>
+         <listitem>
+           <para>
+             When using the XML library, parse the messages using a
+             SAX based parser.
+           </para>
+         </listitem>
+       </varlistentry>
+
+      </variablelist>
+    </sect3>
+      
+    <sect3 id="confpath">
+      <title>Specifying A Custom Path</title>
+
+      <para>
+       This set of options typically use a <emphasis>--with-[name]</emphasis>
+       naming convention. A Prefix can often be supplied, which is
+       the top level directory which can be used to look for the other
+       sub directories. Most options of this type have two
+       variations, one to specify a path to the header files, and
+       another to specify a path to the libraries. This lets you
+       override the default paths <emphasis>configure</emphasis> finds, or
+       specify your own paths.
+      </para>
+
+      <para>
+       By default, none of the options should be required unless you
+       want Gnash to use a specific version of a development package,
+       or the configure test for Gnash fails to find the
+       component. There are a lot of options, but Gnash has a lot of
+       dependencies. If you find a configure test is failing on your
+       machine, please <ulink  type="http"
+       url="https://savannah.gnu.org/bugs/?group=gnash";>submit a patch</ulink>
+       or <ulink  type="http"
+       url="https://savannah.gnu.org/bugs/?group=gnash";>file a bug
+       report</ulink>.
+      </para>
+
+      <variablelist>
+       <varlistentry>
+         <term>--x-includes=DIR</term>
+         <listitem>
+           <para>
+             X include files are in DIR.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--x-libraries=DIR</term>
+         <listitem>
+           <para>
+             X library files are in DIR.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-libxml=PFX</term>
+         <listitem>
+           <para>
+             Prefix to where libxml is installed.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-libxml-libraries=DIR</term>
+         <listitem>
+           <para>
+             Directory where libxml library is installed.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-libxml-includes=DIR</term>
+         <listitem>
+           <para>
+             Directory where libxml header files are installed.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-docbook=DIR</term>
+         <listitem>
+           <para>
+             Directory where the DocBook style-sheets are installed.         
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-sdl-prefix=PFX</term>
+         <listitem>
+           <para>
+             Prefix where SDL is installed.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-zlib-incl</term>
+         <listitem>
+           <para>
+             Directory where zlib header is installed.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-zlib-lib</term>
+         <listitem>
+           <para>
+             Directory where zlib library is installed.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-jpeg-incl</term>
+         <listitem>
+           <para>
+             Directory where jpeg header is installed.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-jpeg-lib</term>
+         <listitem>
+           <para>
+             Directory where jpeg library is installed.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-png-incl</term>
+         <listitem>
+           <para>
+             Directory where png header is installed.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-png-lib</term>
+         <listitem>
+           <para>
+             Directory where png library is installed.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-qt-dir</term>
+         <listitem>
+           <para>
+             Directory where QT is installed. This is only used by
+             the Klash plugin.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-qt-includes</term>
+         <listitem>
+           <para>
+             Directory where the QT header files are installed. This
+             is only used by the Klash plugin.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-qt-libraries</term>
+         <listitem>
+           <para>
+             Directory where the QT libraries are installed. This is
+             only used by the Klash plugin.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-plugindir</term>
+         <listitem>
+           <para>
+             This is the directory to install the Firefox plugin in.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-ming</term>
+         <listitem>
+           <para>
+             Ming is used to build test cases, but not by the Gnash
+             player itself.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-mad_incl</term>
+         <listitem>
+           <para>
+             Directory where libmad header is installed.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-mad_lib</term>
+         <listitem>
+           <para>
+             Directory where libmad library is installed.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-ogg_incl</term>
+         <listitem>
+           <para>
+             Directory where the libogg headers are installed.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-ogg_lib</term>
+         <listitem>
+           <para>
+             Directory where the libogg library is installed.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-gstreamer-incl</term>
+         <listitem>
+           <para>
+             Directory where the Gstreamer headers are
+             installed. Gstreamer version 0.10 or greater must be used.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-gstreamer-lib</term>
+         <listitem>
+           <para>
+             Directory where the Gstreamer library is
+             installed. Gstreamer version 0.10 or greater must be used.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-opengl-includes</term>
+         <listitem>
+           <para>
+             Directory where OpenGL (libMesa) headers are installed.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-opengl-lib</term>
+         <listitem>
+           <para>
+             Directory where the OpenGL (libMesa) library is installed.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-glext-incl</term>
+         <listitem>
+           <para>
+             Directory where GtkGlExt headers are installed.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-glext-lib</term>
+         <listitem>
+           <para>
+             Directory where the GtkGlExt library is installed.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-gtk2-incl</term>
+         <listitem>
+           <para>
+             Directory where the Gtk2 headers are installed.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-gtk2-lib</term>
+         <listitem>
+           <para>
+             Directory where the Gtk2 library is installed.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-cairo_incl</term>
+         <listitem>
+           <para>
+             Directory where the Cairo headers are installed.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-cairo-lib</term>
+         <listitem>
+           <para>
+             Directory where the Cairo library is installed.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-glib-incl</term>
+         <listitem>
+           <para>
+             Directory where the Glib headers are installed.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-glib-lib</term>
+         <listitem>
+           <para>
+             Directory where the Glib library is installed.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-pango-incl</term>
+         <listitem>
+           <para>
+             Directory where the Pango headers are installed.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-pango-lib</term>
+         <listitem>
+           <para>
+             Directory where the Pango library is installed.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-atk-incl</term>
+         <listitem>
+           <para>
+             Directory where the ATK headers are installed.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-atk-lib</term>
+         <listitem>
+           <para>
+             Directory where the ATK library is installed.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-pthread-incl</term>
+         <listitem>
+           <para>
+             Directory where the Pthread headers are installed.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-pthread-lib</term>
+         <listitem>
+           <para>
+             Directory where the Pthread library is installed.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-agg-incl</term>
+         <listitem>
+           <para>
+             Directory where the AGG (Antigrain) headers are installed.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-agg-lib</term>
+         <listitem>
+           <para>
+             Directory where the AGG (Antigrain) library is installed.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-ffmpeg-incl</term>
+         <listitem>
+           <para>
+             Directory where the FFMPEG headers are installed.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-ffmpeg-lib</term>
+         <listitem>
+           <para>
+             Directory where the FFMPEG library is installed.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-boost-incl</term>
+         <listitem>
+           <para>
+             Directory where the Boost headers are installed.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-boost-lib</term>
+         <listitem>
+           <para>
+             Directory where the Boost library is installed.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-curl-incl</term>
+         <listitem>
+           <para>
+             Directory where the libCurl headers are installed.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--with-curl-lib</term>
+         <listitem>
+           <para>
+             Directory where the libCurl library is installed.
+           </para>
+         </listitem>
+       </varlistentry>
+
+      </variablelist>
+    </sect3>
+
+    <sect3 id="envvars">
+      <title>Influential environment variables</title>
+
+      <para>
+       You can control other flags used for compiling using
+       environment variables. Set these variables before configuring,
+       and they will be used by the configure process instead of the
+       default values.
+      </para>
+
+      <variablelist>
+       
+       <varlistentry>
+         <term>CPPFLAGS</term>
+         <listitem>
+           <para>
+             C/C++ preprocessor flags, e.g. -I[headers directory] if you have
+             headers in a nonstandard directory.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>CXX</term>
+         <listitem>
+           <para>
+             C++ compiler command.
+           </para>
+         </listitem>
+       </varlistentry>
+       
+       <varlistentry>
+         <term>CXXFLAGS</term>
+         <listitem>
+           <para>
+             C++ compiler flags.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>LDFLAGS</term>
+         <listitem>
+           <para>
+             linker flags, e.g. -L[library directory] if you have libraries in
+             a non-standard directory.
+           </para>
+         </listitem>
+       </varlistentry>
+      </variablelist>
+    </sect3>
+
+    <sect3 id="crossconf">
+      <title>Cross Compiling And Configuration</title>
+
+      <para>
+       To cross configure and compile Gnash, you first need to build
+       a target system on your workstation. This includes cross
+       compilers for the target architecture, and typically some
+       system headers. You will also need <emphasis>libxml2</emphasis>,
+       <emphasis>libpng</emphasis>, <emphasis>libjpeg</emphasis>, 
+       <emphasis>sdl</emphasis>, <emphasis>opengl</emphasis>, and
+       <emphasis>ogg</emphasis> development packages built for the target
+       system.
+      </para>
+
+      <para>
+       If you need to build up a target system from scratch, there is
+       a good document and shell script at this web site: <ulink
+       type="http"
+       url="http://frank.harvard.edu/~coldwell/toolchain/";>
+       http://frank.harvard.edu/~coldwell/toolchain/</ulink>.
+      </para>
+
+      <para>
+       After I built up an ARM system in /usr/arm using the shell
+       script from this web site, I then cross compiled all the
+       other libraries I needed. The fun part is trying to get
+       libMesa to cross compile, because it's not really set up for 
+       that.  
+      </para>
+
+      <para>
+       So to build for an ARM based system on an x86 based systems,
+       configure like this: 
+      </para>
+
+      <programlisting>
+        ../../gnash/configure --build=i686-pc-linux-gnu --host=arm-linux 
--prefix=/usr/local/arm/oe --disable-plugin --enable-renderer=agg 
--disable-shared
+      </programlisting>
+      
+      <para>
+       The important options here are the ones that specify the
+       architectures for the build.
+
+       <variablelist>
+         <varlistentry>
+           <term>--target</term>
+           <listitem>
+             <para>
+               The target architecture. This is the architecture the
+               final executables are supposed to run on.
+             </para>
+           </listitem>
+         </varlistentry>
+         <varlistentry>
+           <term>--host</term>
+           <listitem>
+             <para>
+               The host architecture. This is the architecture the
+               executables are supposed to run on. This is usually the
+               same as <emphasis>--target</emphasis> except when building a
+               compiler as a 
+               Canadian Cross. This is when you build a cross
+               compiler on a Unix machine, that runs on a
+               <emphasis>win32</emphasis> machine, producing code for yet
+               a third architecture, like the <emphasis>ARM</emphasis>.
+             </para>
+           </listitem>
+         </varlistentry>
+         <varlistentry>
+           <term>--build</term>
+           <listitem>
+             <para>
+               This is the system this build is running on.
+             </para>
+           </listitem>
+         </varlistentry>
+       </variablelist>
+      </para>
+
+    </sect3>
+    
+  </sect2>
+
+  <sect2 id="building">
+    <title>Building Gnash</title>
+
+    <para>
+      After managing to configure Gnash, building the code is
+      simple. Gnash is built using <emphasis>GNU make</emphasis>.
+    </para>
+
+    <sect3 id="compile">
+      <title>Compiling The Code</title>
+
+      <para>
+       After configuring, typing <emphasis>make</emphasis> will compile the
+       code. No options are necessary. If desired, you can redefine
+       the variables used by <emphasis>make</emphasis> on the command line
+       when invoking the program. The few flags of interest are
+       <emphasis>CFLAGS</emphasis> and <emphasis>CXXFLAGS</emphasis>, often 
used to
+       turn on debugging or turn off optimizing. Invoking make as in
+       this example would build all the code with debugging turned
+       on, and optimizing turned off. The default values for both of
+       these variables is <emphasis>-O2 -g</emphasis>.
+
+       <programlisting>
+         make CFLAGS=-g CXXFLAGS=-g
+       </programlisting>
+      </para>
+      
+      <para>
+       If the compilation ends with an error, check the output of
+       configure and make sure nothing required to build Gnash is
+       missing.
+      </para>
+    </sect3>
+    
+    <sect3 id="processdoc">
+      <title>Processing The Documentation</title>
+      
+      <para>
+       By default, the documentation isn't built at all. It isn't
+       even built when typing <emphasis>make install</emphasis> from the top
+       level build directory. It's only built when specified with a
+       specific target in the generated <emphasis>Makefile</emphasis> in the
+       <emphasis>doc/C/</emphasis> sub-directory. All the documents are built 
in
+       this directory when executing a <emphasis>make install</emphasis>.
+      </para>
+      
+      <para>
+       There is a target for each output format, <emphasis>make
+       html</emphasis>, <emphasis>make pdf</emphasis>, <emphasis>make 
info</emphasis>,
+       and <emphasis>make man</emphasis>. A higher level target, <emphasis>make
+       alldocs</emphasis>, builds the four main formats for the
+       documentation.
+      </para>
+
+      <para>
+       Gnash also has support to use <ulink type="http"
+       url="http://www.stack.nl/~dimitri/doxygen/index.html";>
+       Doxygen</ulink> to produce <emphasis>HTML</emphasis> pages documenting
+       the internals of Gnash. While this is not necessarily
+       internals documentation, it does give very useful information
+       about all the files, the classes, a cross reference, and other
+       data.
+      </para>
+      <para>
+       You need to have Doxygen installed to produce these documents. If
+       you do have it installed, typing <emphasis>make apidoc</emphasis> in
+       the <emphasis>doc</emphasis> directory will make these documents under a
+       sub directory of <emphasis>apidoc/html</emphasis>
+      </para>
+    </sect3>
+
+    <sect3 id="runtests">
+      <title>Running the Tests</title>
+
+<!--
+      <para>
+        If a test fails, please report it by following the
+        <link linkend="bugreport">instructions for reporting a bug</link>.
+      </para>
+-->
+
+      <sect4 id="dejagnu">
+        <title>Using DejaGnu</title>
+        <para>
+          FIXME: Add a section on running tests without DejaGnu.
+          The easiest way to run Gnash's test suite is to install
+          <emphasis><ulink type="http" 
+          url="http://www.gnu.org/software/dejagnu";>DejaGnu</ulink></emphasis>.
+          After installing DejaGnu, run:
+          <programlisting>
+            make check
+          </programlisting>
+        </para>
+
+        <sect5 id="testing_verbosity">
+          <title>Increasing Verbosity</title>
+          <para>
+            If you encounter a problem with a test, increasing the
+            verbosity may make the issue easier to spot.
+            Additional details are visible when 
+            <emphasis>RUNTESTFLAGS</emphasis> are used to add the 
+            <emphasis>verbose</emphasis> and <emphasis>all</emphasis> options.
+            Verbose prints more information about the testing process, while
+            all includes details on passing tests.  
+            <programlisting>
+              make check RUNTESTFLAGS="-v -a"
+            </programlisting>
+          </para> 
+        </sect5>
+   
+        <sect5 id="running_some_tests">
+          <title>Running Some Tests</title>
+          <para>
+            It is possible to run just a particular test, or 
+            subdirectory of tests, by specifying the directory or 
+            compiled test file.
+          </para>
+          <para>
+            Some tests rely on <emphasis>testsuite/Dejagnu.swf</emphasis>,
+            which in turn relies on <emphasis>Ming</emphasis>.
+            This file is created when you run 'make check' for the entire
+            testsuite, and can also be created on demand:
+            <programlisting>
+              make -C testsuite Dejagnu.swf 
+            </programlisting>
+          </para>
+          <para>
+            In this example, the 'clip_as_button2' test is compiled and
+            run:
+            <programlisting>
+              make -C testsuite/samples clip_as_button2-TestRunner 
+              cd testsuite/samples &amp;&amp; ./clip_as_button2-TestRunner
+            </programlisting>
+            This would create and run all the tests in the directory
+            'movies.all':
+            <programlisting>
+              make -C testsuite/movies.all check
+            </programlisting>
+          </para>
+        </sect5>
+   
+      </sect4>
+      <sect4 id="manually">
+        <title>Running The Tests Manually</title>
+   
+        <para>
+          You may also run test cases by hand, which can be useful if you
+          want to see all the debugging output from the test case.  Often
+          the messages which come from deep within Gnash are most useful for
+          development.
+        </para>  
+   
+        <para>
+          The first step is to compile the test case, which can be done
+          with 'make XML-v#.swf' where the '#' is replaced with the 
+          <emphasis>target</emphasis> SWF version or versions.  
+          For example:
+          <programlisting>
+            make XML-v{5,6,7,8}.swf
+          </programlisting>
+        </para>
+
+        <sect5 id="manual_compiled_tests">
+        <title>Movie tests</title>
+          <para>
+            This creates a Flash movie version of the test case, which
+            can be run with a standalone Flash player.  For instance,
+            the target for SWF version 6 could be run with Gnash:
+            <programlisting>
+              gnash -v XML-v6.swf
+            </programlisting>
+          </para>
+        </sect5>
+
+        <sect5 id="manual_actionscript_tests">
+          <title>ActionScript Unit Tests</title>
+          <para>
+            Unit tests for ActionScript classes in 'testsuite/actionscript.all'
+            are run without a graphical display:
+            <programlisting>
+              gprocessor -v XML-v6.swf
+            </programlisting>
+          </para>
+        </sect5>
+      </sect4>
+     </sect3>
+  </sect2>
+
+  <sect2 id="install">
+    <title>Installation</title>
+    
+    <para>
+      Gnash installs its libraries so they can be found in the
+      runtime path for the Gnash executable. Unless the --prefix
+      option is used at configuration time, the libraries get
+      installed in /usr/local/lib. If you install Gnash in a
+      non-standard location, you have to specify this runtime path
+      by one of two means.
+    </para>
+
+
+    <para>
+      The traditional way that works on all Unix platforms is to set
+      the LD_LIBRARY_PATH environment variable to $prefix/lib. You
+      can have multiple paths in this variable as long as they are
+      seperated by a colon ":" character.
+    </para>
+
+    <para>
+      For GNU/Linux systems, the custom path to the libraries can be
+      added to the /etc/ld.so.conf file. After adding the custom
+      path, then run (as root) the <emphasis>ldconfig</emphasis> command to
+      update the runtime cache.
+    </para>
+
+    <sect3 id="codeinstall">
+      <title>What Code Gets Installed and Where</title>
+
+      <para>
+       Several libraries get installed, as well as the three
+       executables. All the libraries, <emphasis>libbase, libgeometry,
+       libgbackend, libserver, and libmozsdk</emphasis> get installed in the
+       directory pointed to by <emphasis>$prefix</emphasis>. This variable is
+       set by the <emphasis>--prefix</emphasis> option at configure time, and
+       if not specified, it defaults to <emphasis>/usr/local</emphasis>. All
+       the libraries get installed in <emphasis>$prefix/lib</emphasis> where
+       most packages also install their libraries.
+      </para>
+      <para>
+       The plugin gets installed in the plugins directory of the
+       version of the<emphasis>Firefox</emphasis> or 
<emphasis>Mozilla</emphasis> you
+       have the development packaged installed for. For builds from
+       Mozilla CVS, the default installation directory is
+       <emphasis>/usr/local/lib/firefox-[version
+       number]/plugins/</emphasis>. The default system directory used
+       when installing packages is
+       <emphasis>/usr/lib/mozilla/plugins</emphasis>. Note that you have to be
+       <emphasis>root</emphasis> to install files in a system directory. For
+       some reason when the plugin is installed in the users
+       <emphasis>$HOME/.mozilla/plugins</emphasis> or
+       <emphasis>$HOME/.firefox/plugins</emphasis> directory, unresolved
+       symbols from deep within Firefox appear.
+      </para>
+
+      <para>
+       The executables get installed in a <emphasis>bin</emphasis> directory of
+       the directory specified by <emphasis>$prefix</emphasis>. Once again,
+       this path defaults to <emphasis>/usr/local/bin</emphasis> if a special
+       prefix wasn't configured in.
+      </para>
+
+      <para>
+       If using a single file-system <emphasis>NFS</emphasis>mounted to
+       multiple platforms, you can specify an additional option,
+       <emphasis>--exec-prefix</emphasis>. This is where all the platform
+       dependent executables and libraries can get installed.
+      </para>
+    </sect3>
+
+    <sect3 id="docinstall">
+      <title>What Documentation Gets Installed and Where</title>
+
+      <para>
+       The documentation only installs when GNOME Help support is
+       enabled by using <emphasis>--enable-ghelp</emphasis>. Because GNOME
+       help files get installed in a system directory when building
+       from source, you need to either change the permissions on the
+       destination directory, or do the install as <emphasis>root</emphasis>.
+       The default directory for GNOME Help files is:
+       <emphasis>/usr/local/share/gnash/doc/gnash/C/</emphasis>. 
+      </para>
+      <para>
+       A configuration file in the Gnash source tree,
+       <emphasis>doc/C/gnash.omf</emphasis> is used to specify under which
+       menu item Gnash is listed in the GNOME Help system.
+      </para>
+
+    </sect3>
+  </sect2>
+</sect1>
+
+

Index: testing_dependencies.xml
===================================================================
RCS file: testing_dependencies.xml
diff -N testing_dependencies.xml
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ testing_dependencies.xml    1 Mar 2008 16:59:31 -0000       1.1
@@ -0,0 +1,91 @@
+<title>Testing Dependencies</title>
+
+<para>
+  &app; tries to run as many tests as possible, but will
+  simply skip tests if the tools to run them are unavailable.
+</para>
+
+<table frame='all' id="testdeps">
+  <title>Testing Dependency Table</title>
+  <tgroup cols='7' align='left' colsep='1' rowsep='1'>
+    <colspec colname='name'/>
+    <colspec colname='required'/>
+    <colspec colname='version'/>
+    <colspec colname='description'/>
+    <colspec colname='explanation'/>
+    <colspec colname='apt'/>
+    <colspec colname='rpm'/>
+
+    <thead>
+      <row>
+        <entry>Name</entry>
+        <entry>Level</entry>
+        <entry>Version</entry>
+        <entry>Description</entry>
+        <entry>Explanation</entry>
+        <entry>apt-get package</entry>
+        <entry>RPM/Yum package</entry>
+      </row>
+    </thead>
+
+    <tbody>
+      <row>
+        <entry>Ming</entry>
+        <entry>Optional</entry>
+        <entry>0.4.0_beta4 or higher</entry>
+        <entry>
+          Ming is an ActionScript compiler.
+        </entry>
+        <entry>
+          Ming is the primary compiler for ActionScript testcases.
+        </entry>
+        <entry>No distribution packages are available.</entry>
+        <entry>No distribution packages are available.</entry>
+      </row>
+
+      <row>
+        <entry>Mtasc</entry>
+        <entry>Optional</entry>
+        <entry></entry>
+        <entry>
+          Mtasc is an ActionScript compiler.
+        </entry>
+        <entry>
+          Mtasc is used in some tests.
+        </entry>
+        <entry><filename>mtasc</filename></entry>
+        <entry>No distribution packages are available.</entry>
+      </row>
+
+      <row>
+        <entry>swfdec</entry>
+        <entry>Optional</entry>
+        <entry></entry>
+        <entry>
+          Swfdec is a Flash player.
+        </entry>
+        <entry>
+          Swfdec is used in some testcases.
+        </entry>
+        <entry>No distribution packages are available.</entry>
+        <entry>Unofficial package <filename>swfdec</filename></entry>
+      </row>
+
+      <row>
+        <entry>DejaGnu</entry>
+        <entry>Optional</entry>
+        <entry></entry>
+        <entry>
+          DejaGnu is a testing framework.
+        </entry>
+        <entry>
+          DejaGnu is used to run multiple tests in an
+          automated fashion.
+        </entry>
+        <entry><filename>dejagnu</filename></entry>
+        <entry><filename>dejagnu</filename></entry>
+      </row>
+
+    </tbody>
+  </tgroup>
+</table>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]