[Top][All Lists]
[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 && ./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><options></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 && ./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>
- [Gnash-commit] gnash/doc/C/refmanual building.xml code_depende...,
Rob Savoye <=