gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash/doc/C dumpshm.man-xml soldumper.man-xml g...


From: Rob Savoye
Subject: [Gnash-commit] gnash/doc/C dumpshm.man-xml soldumper.man-xml g...
Date: Tue, 19 Feb 2008 02:13:22 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Rob Savoye <rsavoye>    08/02/19 02:13:22

Modified files:
        doc/C          : dumpshm.man-xml soldumper.man-xml 
Added files:
        doc/C          : gnashrc.xml sources.xml 

Log message:
        Adjust capitalization for titles.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/dumpshm.man-xml?cvsroot=gnash&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/soldumper.man-xml?cvsroot=gnash&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/gnashrc.xml?cvsroot=gnash&rev=1.11
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/sources.xml?cvsroot=gnash&rev=1.45

Patches:
Index: dumpshm.man-xml
===================================================================
RCS file: /sources/gnash/gnash/doc/C/dumpshm.man-xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- dumpshm.man-xml     16 Feb 2008 23:32:22 -0000      1.1
+++ dumpshm.man-xml     19 Feb 2008 02:13:22 -0000      1.2
@@ -20,7 +20,7 @@
 <!-- the refname becomes the output name of the man page -->
 <refnamediv>
 <refname>dumpshm</refname>
-<refpurpose>Gnash LocalConnection memory Dumper</refpurpose>
+<refpurpose>Gnash LocalConnection Memory Dumper</refpurpose>
 </refnamediv>
 
 

Index: soldumper.man-xml
===================================================================
RCS file: /sources/gnash/gnash/doc/C/soldumper.man-xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- soldumper.man-xml   16 Feb 2008 23:32:22 -0000      1.1
+++ soldumper.man-xml   19 Feb 2008 02:13:22 -0000      1.2
@@ -20,7 +20,7 @@
 <!-- the refname becomes the output name of the man page -->
 <refnamediv>
 <refname>soldumper</refname>
-<refpurpose>Gnash Local Shared Object file Dumper</refpurpose>
+<refpurpose>Gnash Local Shared Object (LSO) File Dumper</refpurpose>
 </refnamediv>
 
 

Index: gnashrc.xml
===================================================================
RCS file: gnashrc.xml
diff -N gnashrc.xml
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ gnashrc.xml 19 Feb 2008 02:13:22 -0000      1.11
@@ -0,0 +1,236 @@
+<?xml version="1.0" encoding="utf-8"?>
+<sect2 id="gnashrc">
+  <title>User Configuration File</title>
+
+  <para>
+    Gnash supports a configuration file which lives in the users home
+    directory. This file is called <emphasis>.gnashrc</emphasis>. In
+    this you can have default settings which will be used by Gnash
+    when running standalone, or as a browser plugin. Any command line
+    options override these values.
+  </para>
+
+  <para>
+    Gnash supports three types of configuration variables. The three
+    types are an on/off value, a numeric value, or in the case of the
+    whitelist and blacklist, a list of hostnames as ASCII text.
+  </para>
+
+   <variablelist>
+      <varlistentry>
+       <term>localdomain</term>
+       <listitem>
+         <para>
+           This value can be set to either <emphasis>on</emphasis> or
+           <emphasis>off</emphasis>, and controls the loading of
+           external Flash movies over a network. Traditionally this
+           tells Gnash to only load Flash movies from the existing domain.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>localhost</term>
+       <listitem>
+         <para>
+           This value can be set to either <emphasis>on</emphasis> or
+           <emphasis>off</emphasis>, and controls the loading of
+           external Flash movies over a network. This is a stricter
+           version of the <emphasis>localdomain</emphasis> setting as
+           this allows the loading of Flash movies to the same host
+           Gnash is running on.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>whitelist</term>
+       <listitem>
+         <para>
+           This is a list of hostnames, separated by a colon
+           <emphasis>:</emphasis>. If this list is not empty,
+           only external flash movies from these hosts are allowed to
+           load.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>blacklist</term>
+       <listitem>
+         <para>
+           This is a list of hostnames, separated by a colon
+           <emphasis>:</emphasis>.  External flash movies from these
+            domains are never allowed to load. If whitelist is present
+           and not empty, blacklist is not used.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>delay</term>
+       <listitem>
+         <para>
+           Gnash uses a timer based event mechanism to advance frames
+           at a steady rate. This lets one override the default
+           setting in Gnash to play a movie slower or faster.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>verbosity</term>
+       <listitem>
+         <para>
+           This is a numeric value which defines the default level of
+           verbosity from the player.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>MalformedSWFVerbosity</term>
+       <listitem>
+         <para>
+           This value can be set to either <emphasis>on</emphasis> or
+           <emphasis>off</emphasis>, and controls whether malformed SWF errors 
should
+           be printed. If set to true, verbosity level is automatically 
incremented.
+           Set 'verbosity' to 0 afterwards to hush.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>ASCodingErrorsVerbosity</term>
+       <listitem>
+         <para>
+           This value can be set to either <emphasis>on</emphasis> or
+           <emphasis>off</emphasis>, and controls whether ActionScript coding
+           errors should be printed. If set to true, verbosity level is
+           automatically incremented.  Set 'verbosity' to 0 afterwards to hush.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>debuglog</term>
+       <listitem>
+         <para>
+           This is the full path and name of debug logfile as
+           produced by Gnash.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>writelog</term>
+       <listitem>
+         <para>
+           This value can be set to either <emphasis>on</emphasis> or
+           <emphasis>off</emphasis>, and controls whether a debug log
+           is always written by Gnash, or not at all.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry id="standalonesound">
+       <term>sound</term>
+       <listitem>
+         <para>
+           This value can be set to either <emphasis>on</emphasis> or
+           <emphasis>off</emphasis>, and controls the sound of the
+           standalone player. By default Gnash enables playing the
+           sound in any Flash movie.  Refer to
+            <emphasis><link 
linkend="pluginsound">pluginsound</link></emphasis> 
+            to control sound for the browser plugin.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry id="pluginsound">
+       <term>pluginsound</term>
+       <listitem>
+         <para>
+           This value can be set to either <emphasis>on</emphasis> or
+           <emphasis>off</emphasis>, and controls the sound of the
+           player when running as a browser plugin. By default, sound
+           is enabled when using Gnash as a browser plugin.  Refer to
+            <emphasis><link linkend="standalonesound">sound</link></emphasis> 
+            for information about standalone player sound control.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>EnableExtensions</term>
+       <listitem>
+         <para>
+           Set to ``on'' to enable extensions. Off by default.
+         </para>
+       </listitem>
+      </varlistentry>
+
+      <varlistentry>
+       <term>StartStopped</term>
+       <listitem>
+         <para>
+           Set to ``on'' to have the GUI start in "stop" mode. This is useful 
in particular
+           for the plugin, so you have to explicitly start any movie on a 
webpage. Off by default.
+         </para>
+       </listitem>
+      </varlistentry>
+
+   </variablelist>
+
+  <para>
+    My current Gnash configuration file looks like this:
+  </para>
+  <programlisting>
+  
+    #
+    # Gnash client options
+    #
+
+    # Only access remote content from our local domain
+    set localdomain on
+
+    # Only access content from our local host
+    set localhost on
+
+    # These sites are OK
+    # uncommenting the following line will allow load of external
+    # movies *only* from the specified hosts.
+    #set whitelist www.doonesbury.com:www.cnn.com:www.9news.com
+
+    # Don't access content from these sites
+    set blacklist www.doubleclick.com:mochibot.com
+
+    # The delay between timer interrupts
+    set delay 50
+
+    # The default verbosity level
+    set verbosity 1
+
+    # Be verbose about malformed SWF
+    set MalformedSWFVerbosity true
+
+    # Be verbose about AS coding errors
+    set ASCodingErrorsVerbosity true
+
+    # The full path to the debug log
+    set debuglog ~/gnash-dbg.log
+
+    # Write a debug log to disk
+    set writelog on
+
+    # Enable or Disable sound for the standalone player
+    set sound on
+
+    # Enable or Disable sound for the standalone player
+    set pluginsound on
+
+  </programlisting>
+
+
+</sect2>
+  

Index: sources.xml
===================================================================
RCS file: sources.xml
diff -N sources.xml
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ sources.xml 19 Feb 2008 02:13:22 -0000      1.45
@@ -0,0 +1,1845 @@
+<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 500 MB to extracted and
+      configured and requires a total of about 25 megabytes to compile
+      it. 
+    </para>
+    <para>
+      Gnash is known to compile for most any POSIX and ANSI C++
+      conforming system if you have all the dependent libraries
+      installed. Systems we test on, and which Gnash is know to
+      run on are Ubuntu, Fedora, Debian, OpenBSD, NetBSD, FreeBSD,
+      Win32, and Darwin (OSX) primarily. Occasionally other platforms
+      are built, primarily by those distribution maintainers. This
+      includes BeOS, Haiku, Syllable, OS/2, Solaris, Slackware, Gentoo.
+    </para>
+    <para>
+      Continue reading for detailed step-by-step instructions of the
+      entire procedure. For Win32 users, you will need to install
+      <emphasis>Cygwin</emphasis> to follow these directions. The
+      Gnash source tree includes Microsoft Visual C++ project files,
+      but they may not be as well maintained. Patches always welcome.
+    </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>
+       Gnash is released as source, binary packages of releases
+       should be available from most all upstream distributions.
+      </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 source snapshots of the latest CVS tree
+       at:
+       <ulink type="http"
+              url="http://www.gnashdev.org/dev_snapshots/";>
+                   http://www.gnashdev.org/dev_snapshots
+       </ulink> 
+      </para>
+      <para>
+       You can also get binary snapshots for a variety of platforms
+       built via our normal automated testing harness. Because these
+       are built through automation, there may be problems with
+       specific snapshots. You can get binary snapshots from:
+       <ulink type="http"
+              url="http://www.getgnash.org/packages/";>
+                   http://www.getgnash.org/packages
+       </ulink> 
+      </para>
+      <para>
+       These builds are not officially supported by anyone, but are
+       provided to let people run Gnash without having to go through
+       this entire build procedure.
+      </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>
+
+    <para>
+      Not all dependencies are required for all Gnash
+      configurations. For example, using the GTK GUI adds dependencies
+      for ATK, Pango, and Cairo.
+    </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 <emphasis>apt-get</emphasis>
+       (on Debian based systems), install <emphasis>libgl1-mesa-dev</emphasis>.
+       For RPM or Yum based systems, install the <emphasis>libmesa-devel
+       </emphasis> package.
+      </para>
+
+      <para>
+       Please note that the free X11 drivers currently do not support
+       acceleration, so unless you are running the binary blob Nvidia
+       or ATI drivers, there is no advantage to using OpenGL with
+       Gnash.
+      </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. This
+       is the default renderer for Gnash, as it supports the highest
+       quality rendering, and lower-end devices.
+      </para>
+      <para>
+       To install a binary package using apt-get (on Debian based
+       systems), install <emphasis>libagg-dev</emphasis>. For RPM or
+       Yum based systems, install the <emphasis>agg-devel</emphasis>
+       package. For BSD systems, install the <emphasis>agg</emphasis>
+       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. GTK is primary default
+       GUI for Gnash.
+      </para>
+      <para>
+       To install a binary package using apt-get (on Debian based
+       systems), install <emphasis>libgtkglext1-dev</emphasis>. For
+       RPM or Yum based systems, install the
+       <emphasis>gtkglext-devel</emphasis> package. For BSD systems,
+       install the <emphasis>gtkglext-1.2.0</emphasis> package.
+      </para>
+    </sect3>
+
+    <sect3 id="pango">
+      <title>Pango</title>
+      <para>
+       Pango is a dependency of Gtk, and is used for font handling.
+      </para>
+      <para>
+       To install a binary package using apt-get (on Debian based
+       systems), install <emphasis>libpango1.0-dev</emphasis>. For
+       RPM or Yum based systems, install the <emphasis>pango-devel
+       </emphasis> package. For BSD systems, install the
+       <emphasis>pango</emphasis> package.
+      </para>
+    </sect3>
+
+    <sect3 id="atk">
+      <title>Atk</title>
+      <para>
+       Atk is a dependency of Gtk, and is used for accessibility
+       support.
+      </para>
+      <para>
+       To install a binary package using apt-get (on Debian based
+       systems), install <emphasis>atk-dev</emphasis>. For RPM or Yum based
+       systems, install the <emphasis>atk-devel</emphasis>
+       package. For BSD systems, install the <emphasis>atk</emphasis> package.
+      </para>
+    </sect3>
+
+    <sect3 id="cairo">
+      <title>Cairo</title>
+      <para>
+       Cairo is a dependency of Gtk, and is used for 2D
+       rendering. Cairo can also be used standalone as a rendering
+       backend for Gnash without the other GTK depenencies.
+      </para>
+      <para>
+       To install a binary package using apt-get (on Debian based
+       systems), install <emphasis>libcairo2-dev</emphasis>. For RPM
+       or Yum based systems, install the <emphasis>cairo-devel</emphasis>
+       package. For BSD systems, install the <emphasis>cairo</emphasis> 
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 <emphasis>libboost-thread-dev</emphasis> and
+       <emphasis>libboost-date-time</emphasis>. For RPM or Yum based
+       systems, install the <emphasis>libboost-devel</emphasis>
+       package. For BSD systems, install the <emphasis>boost-headers
+       </emphasis> and <emphasis>boost-libs </emphasis>packages. 
+      </para>
+    </sect3>
+
+    <sect3 id="glib">
+      <title>Glib</title>
+      <para>
+       Glib is a dependency of Gtk, and is a collection of commonly
+       used lower-level functions.
+      </para>
+      <para>
+       To install a binary package using apt-get (on Debian based
+       systems), install <emphasis>glib-dev</emphasis>. For RPM or Yum based
+       systems, install the <emphasis>glib-devel</emphasis>
+       package. For BSD systems, install the <emphasis>glib2</emphasis> 
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. Also when using the Gstreamer
+       backend for Gnash, you must also have the
+       <emphasis>gstreamer-ffmpeg </emphasis> plugin to Gstreamer
+       installed, as this is where the codecs are. Gstreamer is the
+       default multimedia systems used bug Gnash, so if your
+       Gstreamer installation is messed up, audio or video won't work.
+      </para>
+      <para>
+       Because Gstreamer is an entire system for multimedia, several
+       packages must be installed for Gnash to work, which most
+       people define as having their favorite video sharing sites
+       work.
+      </para>
+      <para>
+       To install the binary packages using apt-get (on Debian based
+       systems), install <emphasis>libgstreamer0.10-dev</emphasis>,
+       <emphasis>libgstreamer-plugins-base0.10</emphasis>, and
+       <emphasis>gstreamer0.10-ffmpeg </emphasis>. For RPM or Yum based 
+       systems, install the <emphasis>gstreamer-devel</emphasis>
+       package. Version 0.10 or greater will be required. For BSD
+       systems, install the <emphasis>gstreamer-0.10</emphasis> and
+       <emphasis>gstreamer0.10-ffmpeg</emphasis> packages.
+      </para>
+    </sect3>
+
+    <sect3 id="ffmpeg-dep">
+      <title>FFMPEG</title>
+      <para>
+       FFMPEG can also be used for sound and video support. It is not
+       needed directly to build this release, as we use the
+       Gstreamer-ffmpeg plugin primarily. For some embedded systems
+       ffmpeg is prefered for size, as it can be configured to only
+       support a few chosen codecs,
+      </para>
+      <para>
+       To install a binary package using apt-get (on Debian based
+       systems), install <emphasis>libavformat-dev</emphasis>. For
+       RPM or Yum based systems, install the <emphasis>libffmpeg-devel
+       </emphasis> package. Version 0.10 or greater will be
+       required. For BSD systems, install the <emphasis>ffmpeg
+       </emphasis> package.
+      </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>
+       SDL can be used directly as a GUI for Gnash, and was
+       originally the only GUI support be Gnash. These days it's
+       primarily used as a dependency for other libraries, namely
+       AGG, and Gnash's own ffmpeg backend.
+      </para>
+
+      <para>
+       To install a binary package using apt-get (on Debian based
+       systems), install <emphasis>libsdl1.2-dev </emphasis>. For RPM
+       or Yum based systems, install the <emphasis>SDL-devel
+       </emphasis> package. For BSD systems, install the
+       <emphasis>sdl-1.2 </emphasis> 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>. This is primarily used as a
+       depenency by other libraries, and not directly by Gnash.
+      </para>
+      <para>
+       To install a binary package using apt-get (on Debian based
+       systems), install <emphasis>libpng12-dev </emphasis>. For RPM
+       or Yum based systems, install the <emphasis>libpng </emphasis>
+       package. For BSD systems, install the <emphasis>png
+       </emphasis> 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. This is used directly by Gnash to load JPEGs.
+      </para>
+      <para>
+       To install a binary package using apt-get (on Debian based
+       systems), install <emphasis>libjpeg62-dev </emphasis>. For RPM
+       or Yum based systems, install the <emphasis>libjpeg
+       </emphasis> package.
+      </para>
+
+    </sect3>
+
+    <sect3 id="libxml2">
+      <title>libxml2</title>
+      <para>
+       Libxml2 is the GNOME XML parser library. 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 <emphasis>libxml2-dev </emphasis>. For RPM
+       or Yum based systems, install the <emphasis>libxml2-devel
+       </emphasis> package. For BSD systems, install the
+       <emphasis>libxml2 </emphasis> 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. You can get Ogg
+       Vorbis from this 
+       link: <ulink type="http" url="http://www.vorbis.com/";>
+       http://www.vorbis.com/</ulink>. Ogg Vorbis is the prefered
+       audio codec for Gnash, and is also supported by the Gstreamer
+       and ffmpeg packages.
+      </para>
+      <para>
+       To install a binary package using apt-get (on Debian based
+       systems), install <emphasis>libogg-dev </emphasis>. For RPM or
+       Yum based systems, install the <emphasis>libogg </emphasis>
+       package. For BSD systems, install the <emphasis> </emphasis> 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>
+       
+    </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>.
+       If Docbook is not installed, prebuilt files for a variety of
+       formats, like man page and GNU info are included. Up to date
+       documentation can always be found on the <ulink type="http"
+       url="http://www.gnashdev.org";> http://www.gnashdev.org</ulink>.
+      </para>
+      <para>
+       To install a binary packages using apt-get (on Debian based
+       systems), install the <emphasis>docbook </emphasis>,
+       <emphasis>docbook-xsl </emphasis>, <emphasis>docbook-xml </emphasis>,
+       <emphasis>docbook-dsssl </emphasis>, and
+       <emphasis>docbook-utils </emphasis> packages. For RPM or Yum based
+       systems, install the <emphasis>docbook </emphasis>,
+       <emphasis>docbook-style-xsl </emphasis>,
+       <emphasis>docbook-style-dsssl</emphasis>, and
+       <emphasis>docbook-utils </emphasis> 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 <emphasis>docbook2x
+       </emphasis>. For RPM or Yum based 
+       systems, install the <emphasis>docbook2x </emphasis> package.
+       To install a binary package of DocBook2X using apt-get (on
+       Debian based systems), install
+       <emphasis>docbook2x</emphasis>. For RPM or Yum based 
+       systems, install the <emphasis>docbook2x</emphasis> 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>
+      By default with zero configuration options, the configure
+      process by default will do the right thing. For example, KDE
+      support is built bt default along with GTK, but if you don't
+      have the KDE development libraries installed, KDE support is
+      then disabled. If you have problems with your builds, analysze
+      the output from configure, as Gnash always prints a warning
+      message when changing the default configuration.
+    </para>
+
+    <para>
+      The currently default build of Gnash results in two executables,
+      <emphasis>gtk-gnash </emphasis> and
+      <emphasis>kde-gnash</emphasis>, supporting their respectively
+      named GUIs toolkits. The AGG renderer is used by default, along
+      with the Gstreamer multimedia framework. Both the NSAPI
+      (Firefox/Mozilla) and Kparts (Kongueror) plugins are also built
+      by default.
+    </para>
+
+    <para>
+      Note that to install the plugins requires root access, as these
+      files have to be written to system directories. When building
+      packages, DESTDIR is used at install time, which avoids this
+      problem by only writing to a user specified and writeable
+      directory.
+    </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>
+
+    <para>
+      To debug configure problems requires a knowledge of bourne shell
+      programming and Unix utlities. with a little m4 thrown in. This
+      is because Gnash uses GNU Autotools, because it is the best
+      system I've ever found for handling the complex issues involved
+      in cross configuration and compilation. Debugging configure
+      scripts can be made much easier by using the following
+      trick. Autoconf uses the environment variable
+      <emphasis>CONFIG_SHELL </emphasis> for invoking the subshell
+      used for configure tests. If this variable is set in your
+      environment to <emphasis>sh -x</emphasis>, then the bourne shell
+      debugging commands get printed. While this file can be very
+      large, every variable value, and expanded shell command is
+      printed out, making it relatively easy to find where the problem
+      is. To get all the shell debugging commands including the top
+      level shell, just invoke configure with <emphasis>sh -x</emphasis>.
+    </para>
+
+    <para>
+      Often configuration problems fall into a few simple
+      catagories. For native builds, if <emphasis>pkg-config
+      </emphasis> is installed, the values it returns for CFLAGS and
+      LDFLAGS are used. As these files are maintained by the
+      indivigual package maintainers themselves, they are often not
+      very portable. Gnash attempts to fix the dependencies of these
+      paths for known problems, but sometimes new problems appear as
+      other packages get updated. For cross configuration, pkg-comfig
+      is ignored, as in those cases it's never correct unless you are
+      running in a fake native cross building environment like
+      scratchbox or open embedded.
+    </para>
+
+    <para>
+      The other problem for Gnash is when pkg-config is not used,
+      Gnash needs to find the paths for the headers and libraries it
+      needs to build itslf. As most of the default macros for
+      Autotconf don't all cleanly support cross configuration, Gnash
+      includes it's own that have been developed over years of
+      testing. Still, packages and distributions occasionally change
+      things. and even the best configure tests can't cope. Gnash's
+      configure tests are as flexible as possible, but often if a
+      dependant package can't be found, and you know it's installed
+      and working, the our configure test is broken. 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>
+    
+    <para>
+      For cross configuring, the problem initially can be in the cross
+      toolchain used. before getting too worried, first make sure a
+      simple &quot;Hello World&quot; program can be compiled and run on your
+      target. If this works, build and run the example programs
+      included in most of the packages source distributions to make
+      sure your installation is fully functional. For a new toolchain
+      on a new target, it is very common to have issues getting the
+      entire system up and working to the level it needs to for full,
+      support of multimedia.
+    </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 and KDE)
+      </para>
+      <para>
+       Renderer: see --enable-renderer (default is AGG)
+      </para>
+      <para>
+       Media handler: see --enable-media (default is Gstreamer)
+      </para>
+
+      <para>
+       The smallest working standalone version is obtained with:
+       <programlisting>
+       ./configure --disable-debugger --disable-cygnal --disable-docbook \
+               --disable-plugin --enable-gui=fltk.
+       </programlisting>
+      </para>
+                
+
+       <varlistentry>
+         <term>--disable-debugger</term>
+         <listitem>
+           <para>
+             Disable support for the Flash debugger. The debugger is
+             mainly of interest to Flash developers, or Gnash
+             developers, and is currently a work in progress.
+           </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>--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-kparts</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|gst</term>
+         <listitem>
+           <para>
+             Select the specified media decoder and sound engine.
+             FFMPEG uses the SDL sound engine, GST uses its own.
+             Using <emphasis>Gstreamer</emphasis> is the default decoder.
+           </para>
+           <para>
+             You should only select one media decoder.
+           </para>
+         </listitem>
+       </varlistentry>
+
+       <varlistentry>
+         <term>--disable-nsapi</term>
+         <listitem>
+           <para>
+             Disable building the NSAPI plugin, which is built by
+             default. 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>--disable-shared</term>
+         <listitem>
+           <para>
+             Disble building the Gnash libraries as shared libraries. 
+             Note that the extensions mechanism may not work if shared
+             libraries are disabled, nor will the plugins get
+             built. This option is primarily used by developers.
+           </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>
+
+      </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-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>
+       There is also up to date information on the Gnash Developers
+       weeb 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 to cross compile, because it's not really set up for 
+       that. It's much easier to use the Gnash default, AGG.  
+      </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 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>
+       By default, gnash merely links to prebuilt vesion of the
+       documentation, so without needing to have a working Docbook
+       installation, basic man pages and info pages work. This is
+       used primarily to support systems that may not have a working
+       docbook installtion when building binary packages. If these
+       files don't exist, most packaging system will fail.
+      </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>
+
+




reply via email to

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