[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash/doc/C dumpshm.man-xml soldumper.man-xml g...
From: |
Rob Savoye |
Subject: |
[Gnash-commit] gnash/doc/C dumpshm.man-xml soldumper.man-xml g... |
Date: |
Tue, 19 Feb 2008 02:13:22 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Rob Savoye <rsavoye> 08/02/19 02:13:22
Modified files:
doc/C : dumpshm.man-xml soldumper.man-xml
Added files:
doc/C : gnashrc.xml sources.xml
Log message:
Adjust capitalization for titles.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/dumpshm.man-xml?cvsroot=gnash&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/soldumper.man-xml?cvsroot=gnash&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/gnashrc.xml?cvsroot=gnash&rev=1.11
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/sources.xml?cvsroot=gnash&rev=1.45
Patches:
Index: dumpshm.man-xml
===================================================================
RCS file: /sources/gnash/gnash/doc/C/dumpshm.man-xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- dumpshm.man-xml 16 Feb 2008 23:32:22 -0000 1.1
+++ dumpshm.man-xml 19 Feb 2008 02:13:22 -0000 1.2
@@ -20,7 +20,7 @@
<!-- the refname becomes the output name of the man page -->
<refnamediv>
<refname>dumpshm</refname>
-<refpurpose>Gnash LocalConnection memory Dumper</refpurpose>
+<refpurpose>Gnash LocalConnection Memory Dumper</refpurpose>
</refnamediv>
Index: soldumper.man-xml
===================================================================
RCS file: /sources/gnash/gnash/doc/C/soldumper.man-xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- soldumper.man-xml 16 Feb 2008 23:32:22 -0000 1.1
+++ soldumper.man-xml 19 Feb 2008 02:13:22 -0000 1.2
@@ -20,7 +20,7 @@
<!-- the refname becomes the output name of the man page -->
<refnamediv>
<refname>soldumper</refname>
-<refpurpose>Gnash Local Shared Object file Dumper</refpurpose>
+<refpurpose>Gnash Local Shared Object (LSO) File Dumper</refpurpose>
</refnamediv>
Index: gnashrc.xml
===================================================================
RCS file: gnashrc.xml
diff -N gnashrc.xml
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ gnashrc.xml 19 Feb 2008 02:13:22 -0000 1.11
@@ -0,0 +1,236 @@
+<?xml version="1.0" encoding="utf-8"?>
+<sect2 id="gnashrc">
+ <title>User Configuration File</title>
+
+ <para>
+ Gnash supports a configuration file which lives in the users home
+ directory. This file is called <emphasis>.gnashrc</emphasis>. In
+ this you can have default settings which will be used by Gnash
+ when running standalone, or as a browser plugin. Any command line
+ options override these values.
+ </para>
+
+ <para>
+ Gnash supports three types of configuration variables. The three
+ types are an on/off value, a numeric value, or in the case of the
+ whitelist and blacklist, a list of hostnames as ASCII text.
+ </para>
+
+ <variablelist>
+ <varlistentry>
+ <term>localdomain</term>
+ <listitem>
+ <para>
+ This value can be set to either <emphasis>on</emphasis> or
+ <emphasis>off</emphasis>, and controls the loading of
+ external Flash movies over a network. Traditionally this
+ tells Gnash to only load Flash movies from the existing domain.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>localhost</term>
+ <listitem>
+ <para>
+ This value can be set to either <emphasis>on</emphasis> or
+ <emphasis>off</emphasis>, and controls the loading of
+ external Flash movies over a network. This is a stricter
+ version of the <emphasis>localdomain</emphasis> setting as
+ this allows the loading of Flash movies to the same host
+ Gnash is running on.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>whitelist</term>
+ <listitem>
+ <para>
+ This is a list of hostnames, separated by a colon
+ <emphasis>:</emphasis>. If this list is not empty,
+ only external flash movies from these hosts are allowed to
+ load.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>blacklist</term>
+ <listitem>
+ <para>
+ This is a list of hostnames, separated by a colon
+ <emphasis>:</emphasis>. External flash movies from these
+ domains are never allowed to load. If whitelist is present
+ and not empty, blacklist is not used.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>delay</term>
+ <listitem>
+ <para>
+ Gnash uses a timer based event mechanism to advance frames
+ at a steady rate. This lets one override the default
+ setting in Gnash to play a movie slower or faster.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>verbosity</term>
+ <listitem>
+ <para>
+ This is a numeric value which defines the default level of
+ verbosity from the player.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>MalformedSWFVerbosity</term>
+ <listitem>
+ <para>
+ This value can be set to either <emphasis>on</emphasis> or
+ <emphasis>off</emphasis>, and controls whether malformed SWF errors
should
+ be printed. If set to true, verbosity level is automatically
incremented.
+ Set 'verbosity' to 0 afterwards to hush.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>ASCodingErrorsVerbosity</term>
+ <listitem>
+ <para>
+ This value can be set to either <emphasis>on</emphasis> or
+ <emphasis>off</emphasis>, and controls whether ActionScript coding
+ errors should be printed. If set to true, verbosity level is
+ automatically incremented. Set 'verbosity' to 0 afterwards to hush.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>debuglog</term>
+ <listitem>
+ <para>
+ This is the full path and name of debug logfile as
+ produced by Gnash.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>writelog</term>
+ <listitem>
+ <para>
+ This value can be set to either <emphasis>on</emphasis> or
+ <emphasis>off</emphasis>, and controls whether a debug log
+ is always written by Gnash, or not at all.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="standalonesound">
+ <term>sound</term>
+ <listitem>
+ <para>
+ This value can be set to either <emphasis>on</emphasis> or
+ <emphasis>off</emphasis>, and controls the sound of the
+ standalone player. By default Gnash enables playing the
+ sound in any Flash movie. Refer to
+ <emphasis><link
linkend="pluginsound">pluginsound</link></emphasis>
+ to control sound for the browser plugin.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="pluginsound">
+ <term>pluginsound</term>
+ <listitem>
+ <para>
+ This value can be set to either <emphasis>on</emphasis> or
+ <emphasis>off</emphasis>, and controls the sound of the
+ player when running as a browser plugin. By default, sound
+ is enabled when using Gnash as a browser plugin. Refer to
+ <emphasis><link linkend="standalonesound">sound</link></emphasis>
+ for information about standalone player sound control.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>EnableExtensions</term>
+ <listitem>
+ <para>
+ Set to ``on'' to enable extensions. Off by default.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>StartStopped</term>
+ <listitem>
+ <para>
+ Set to ``on'' to have the GUI start in "stop" mode. This is useful
in particular
+ for the plugin, so you have to explicitly start any movie on a
webpage. Off by default.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+
+ <para>
+ My current Gnash configuration file looks like this:
+ </para>
+ <programlisting>
+
+ #
+ # Gnash client options
+ #
+
+ # Only access remote content from our local domain
+ set localdomain on
+
+ # Only access content from our local host
+ set localhost on
+
+ # These sites are OK
+ # uncommenting the following line will allow load of external
+ # movies *only* from the specified hosts.
+ #set whitelist www.doonesbury.com:www.cnn.com:www.9news.com
+
+ # Don't access content from these sites
+ set blacklist www.doubleclick.com:mochibot.com
+
+ # The delay between timer interrupts
+ set delay 50
+
+ # The default verbosity level
+ set verbosity 1
+
+ # Be verbose about malformed SWF
+ set MalformedSWFVerbosity true
+
+ # Be verbose about AS coding errors
+ set ASCodingErrorsVerbosity true
+
+ # The full path to the debug log
+ set debuglog ~/gnash-dbg.log
+
+ # Write a debug log to disk
+ set writelog on
+
+ # Enable or Disable sound for the standalone player
+ set sound on
+
+ # Enable or Disable sound for the standalone player
+ set pluginsound on
+
+ </programlisting>
+
+
+</sect2>
+
Index: sources.xml
===================================================================
RCS file: sources.xml
diff -N sources.xml
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ sources.xml 19 Feb 2008 02:13:22 -0000 1.45
@@ -0,0 +1,1845 @@
+<sect1 id="build">
+ <title>Building From Source</title>
+
+ <sect2 id="building_overview">
+ <title>Overview</title>
+ <para>
+ The typical process of building from source will involve
+ <link linkend="gettingsource">getting the source</link>,
+ <link linkend="codedepend">resolving dependencies</link>,
+ <link linkend="configure">configuration</link>,
+ <link linkend="compile">compilation</link>,
+ <link linkend="runtests">testing</link>, and
+ <link linkend="install">installation</link>.
+ A simplified overview of the process would be:
+ <programlisting>
+ ./autogen.sh
+ ./configure
+ make
+ make check
+ make install
+ </programlisting>
+ </para>
+
+ <para>
+ If you are compiling with GCC you will probably need to use a
+ machine with at least 128 megabytes of physical RAM; 64MB is not
+ enough for a couple of the files, even with swap enabled and
+ optimisation turned off.
+ </para>
+ <para>
+ At present the Gnash source is about 500 MB to extracted and
+ configured and requires a total of about 25 megabytes to compile
+ it.
+ </para>
+ <para>
+ Gnash is known to compile for most any POSIX and ANSI C++
+ conforming system if you have all the dependent libraries
+ installed. Systems we test on, and which Gnash is know to
+ run on are Ubuntu, Fedora, Debian, OpenBSD, NetBSD, FreeBSD,
+ Win32, and Darwin (OSX) primarily. Occasionally other platforms
+ are built, primarily by those distribution maintainers. This
+ includes BeOS, Haiku, Syllable, OS/2, Solaris, Slackware, Gentoo.
+ </para>
+ <para>
+ Continue reading for detailed step-by-step instructions of the
+ entire procedure. For Win32 users, you will need to install
+ <emphasis>Cygwin</emphasis> to follow these directions. The
+ Gnash source tree includes Microsoft Visual C++ project files,
+ but they may not be as well maintained. Patches always welcome.
+ </para>
+ </sect2>
+
+ <sect2 id="gettingsource">
+ <title>Getting The Source</title>
+
+ <sect3 id="sourcereleases">
+ <title>Releases</title>
+ <para>
+ Tarballs of official releases can be found in the download area
+ of the project's GNU Savannah page at
+ <ulink type="http"
+ url="http://savannah.gnu.org/projects/gnash">
+ http://savannah.gnu.org/projects/gnash
+ </ulink>
+ or under
+ <ulink type="http"
+ url="http://ftp.gnu.org/gnu/gnash">
+ http://ftp.gnu.org/gnu/gnash
+ </ulink>
+ Gnash is released as source, binary packages of releases
+ should be available from most all upstream distributions.
+ </para>
+ </sect3>
+
+ <sect3 id="sourcecvs">
+ <title>CVS Access</title>
+ <para>
+ The latest Gnash development sources are available via anonymous CVS.
+ Use the following commands to check them out
+ (just hit return when you are prompted for the password):
+ <programlisting>
+ export CVS_RSH=ssh
+ cvs -z3 -d:pserver:address@hidden:/sources/gnash co gnash
+ </programlisting>
+ you will then be able to update your copy from the repository using
+ <programlisting>
+ cd gnash
+ cvs update -d
+ </programlisting>
+ </para>
+ <para>
+ If you only have access to the internet via a web proxy,
+ you will find daily source snapshots of the latest CVS tree
+ at:
+ <ulink type="http"
+ url="http://www.gnashdev.org/dev_snapshots/">
+ http://www.gnashdev.org/dev_snapshots
+ </ulink>
+ </para>
+ <para>
+ You can also get binary snapshots for a variety of platforms
+ built via our normal automated testing harness. Because these
+ are built through automation, there may be problems with
+ specific snapshots. You can get binary snapshots from:
+ <ulink type="http"
+ url="http://www.getgnash.org/packages/">
+ http://www.getgnash.org/packages
+ </ulink>
+ </para>
+ <para>
+ These builds are not officially supported by anyone, but are
+ provided to let people run Gnash without having to go through
+ this entire build procedure.
+ </para>
+ </sect3>
+ </sect2>
+
+ <sect2 id="codedepend">
+ <title>Code Dependencies</title>
+
+ <para>
+ Gnash has dependencies on other packages. When installing
+ from a packaged release file (rpm, deb, etc.), you'll need
+ to install the development versions to get the tools used to
+ compile Gnash. The normal runtime packages installed are usually
+ missing the headers needed to compile Gnash.
+ </para>
+
+ <para>
+ Not all dependencies are required for all Gnash
+ configurations. For example, using the GTK GUI adds dependencies
+ for ATK, Pango, and Cairo.
+ </para>
+
+ <sect3 id="opengl">
+ <title>OpenGL</title>
+ <para>
+ Gnash can use OpenGL for rendering the images. OpenGL is a 3D
+ graphics package which supports hardware acceleration. You can
+ get the free version of OpenGL at this link:
+ <ulink type="http"
+ url="http://www.mesa3d.org">http://www.mesa3d.org</ulink>
+ </para>
+
+ <para>
+ To install a binary package using <emphasis>apt-get</emphasis>
+ (on Debian based systems), install <emphasis>libgl1-mesa-dev</emphasis>.
+ For RPM or Yum based systems, install the <emphasis>libmesa-devel
+ </emphasis> package.
+ </para>
+
+ <para>
+ Please note that the free X11 drivers currently do not support
+ acceleration, so unless you are running the binary blob Nvidia
+ or ATI drivers, there is no advantage to using OpenGL with
+ Gnash.
+ </para>
+
+ </sect3>
+
+ <sect3 id="agg">
+ <title>AGG</title>
+ <para>
+ AGG is the AntiGrain low-level 2D graphics library that can be used
+ instead of OpenGL. Unlike OpenGL, AGG does all rendering in software
+ without requiring that much floating point calculation. This
+ is the default renderer for Gnash, as it supports the highest
+ quality rendering, and lower-end devices.
+ </para>
+ <para>
+ To install a binary package using apt-get (on Debian based
+ systems), install <emphasis>libagg-dev</emphasis>. For RPM or
+ Yum based systems, install the <emphasis>agg-devel</emphasis>
+ package. For BSD systems, install the <emphasis>agg</emphasis>
+ package.
+ </para>
+ </sect3>
+
+ <sect3 id="gtkglext">
+ <title>GtkGlExt</title>
+ <para>
+ GtkGlExt is an optional package used to link the GTK GUI to the
+ opengl renderer. Gtk enables better integration with Firefox,
+ as well as better event handling and higher level GUI
+ constructs like menus and dialog boxes. GTK is primary default
+ GUI for Gnash.
+ </para>
+ <para>
+ To install a binary package using apt-get (on Debian based
+ systems), install <emphasis>libgtkglext1-dev</emphasis>. For
+ RPM or Yum based systems, install the
+ <emphasis>gtkglext-devel</emphasis> package. For BSD systems,
+ install the <emphasis>gtkglext-1.2.0</emphasis> package.
+ </para>
+ </sect3>
+
+ <sect3 id="pango">
+ <title>Pango</title>
+ <para>
+ Pango is a dependency of Gtk, and is used for font handling.
+ </para>
+ <para>
+ To install a binary package using apt-get (on Debian based
+ systems), install <emphasis>libpango1.0-dev</emphasis>. For
+ RPM or Yum based systems, install the <emphasis>pango-devel
+ </emphasis> package. For BSD systems, install the
+ <emphasis>pango</emphasis> package.
+ </para>
+ </sect3>
+
+ <sect3 id="atk">
+ <title>Atk</title>
+ <para>
+ Atk is a dependency of Gtk, and is used for accessibility
+ support.
+ </para>
+ <para>
+ To install a binary package using apt-get (on Debian based
+ systems), install <emphasis>atk-dev</emphasis>. For RPM or Yum based
+ systems, install the <emphasis>atk-devel</emphasis>
+ package. For BSD systems, install the <emphasis>atk</emphasis> package.
+ </para>
+ </sect3>
+
+ <sect3 id="cairo">
+ <title>Cairo</title>
+ <para>
+ Cairo is a dependency of Gtk, and is used for 2D
+ rendering. Cairo can also be used standalone as a rendering
+ backend for Gnash without the other GTK depenencies.
+ </para>
+ <para>
+ To install a binary package using apt-get (on Debian based
+ systems), install <emphasis>libcairo2-dev</emphasis>. For RPM
+ or Yum based systems, install the <emphasis>cairo-devel</emphasis>
+ package. For BSD systems, install the <emphasis>cairo</emphasis>
package.
+ </para>
+ </sect3>
+
+ <sect3 id="boost">
+ <title>Boost</title>
+ <para>
+ Boost is a library of portable C++ classes and templates which
+ layer on top of STL. Boost is used for thread and mutext
+ handling.
+ </para>
+ <para>
+ To install a binary package using apt-get (on Debian based
+ systems), install <emphasis>libboost-thread-dev</emphasis> and
+ <emphasis>libboost-date-time</emphasis>. For RPM or Yum based
+ systems, install the <emphasis>libboost-devel</emphasis>
+ package. For BSD systems, install the <emphasis>boost-headers
+ </emphasis> and <emphasis>boost-libs </emphasis>packages.
+ </para>
+ </sect3>
+
+ <sect3 id="glib">
+ <title>Glib</title>
+ <para>
+ Glib is a dependency of Gtk, and is a collection of commonly
+ used lower-level functions.
+ </para>
+ <para>
+ To install a binary package using apt-get (on Debian based
+ systems), install <emphasis>glib-dev</emphasis>. For RPM or Yum based
+ systems, install the <emphasis>glib-devel</emphasis>
+ package. For BSD systems, install the <emphasis>glib2</emphasis>
package.
+ </para>
+ </sect3>
+
+ <sect3 id="gstreamer-dep">
+ <title>Gstreamer</title>
+ <para>
+ Gstreamer is used for sound and video support. It is not
+ needed to build this release. Currently only Gstreamer version
+ 0.10 or higher can be used. Also when using the Gstreamer
+ backend for Gnash, you must also have the
+ <emphasis>gstreamer-ffmpeg </emphasis> plugin to Gstreamer
+ installed, as this is where the codecs are. Gstreamer is the
+ default multimedia systems used bug Gnash, so if your
+ Gstreamer installation is messed up, audio or video won't work.
+ </para>
+ <para>
+ Because Gstreamer is an entire system for multimedia, several
+ packages must be installed for Gnash to work, which most
+ people define as having their favorite video sharing sites
+ work.
+ </para>
+ <para>
+ To install the binary packages using apt-get (on Debian based
+ systems), install <emphasis>libgstreamer0.10-dev</emphasis>,
+ <emphasis>libgstreamer-plugins-base0.10</emphasis>, and
+ <emphasis>gstreamer0.10-ffmpeg </emphasis>. For RPM or Yum based
+ systems, install the <emphasis>gstreamer-devel</emphasis>
+ package. Version 0.10 or greater will be required. For BSD
+ systems, install the <emphasis>gstreamer-0.10</emphasis> and
+ <emphasis>gstreamer0.10-ffmpeg</emphasis> packages.
+ </para>
+ </sect3>
+
+ <sect3 id="ffmpeg-dep">
+ <title>FFMPEG</title>
+ <para>
+ FFMPEG can also be used for sound and video support. It is not
+ needed directly to build this release, as we use the
+ Gstreamer-ffmpeg plugin primarily. For some embedded systems
+ ffmpeg is prefered for size, as it can be configured to only
+ support a few chosen codecs,
+ </para>
+ <para>
+ To install a binary package using apt-get (on Debian based
+ systems), install <emphasis>libavformat-dev</emphasis>. For
+ RPM or Yum based systems, install the <emphasis>libffmpeg-devel
+ </emphasis> package. Version 0.10 or greater will be
+ required. For BSD systems, install the <emphasis>ffmpeg
+ </emphasis> package.
+ </para>
+ </sect3>
+
+ <sect3 id="sdl">
+ <title>SDL</title>
+ <para>
+ The Simple DirectMedia Layer is a cross-platform multimedia
+ library designed to provide low level access to audio,
+ keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D
+ video framebuffer. You can get SDL from this link:
+ <ulink type="http" url="http://www.libsdl.org">
+ http://www.libsdl.org</ulink>
+ </para>
+ <para>
+ SDL can be used directly as a GUI for Gnash, and was
+ originally the only GUI support be Gnash. These days it's
+ primarily used as a dependency for other libraries, namely
+ AGG, and Gnash's own ffmpeg backend.
+ </para>
+
+ <para>
+ To install a binary package using apt-get (on Debian based
+ systems), install <emphasis>libsdl1.2-dev </emphasis>. For RPM
+ or Yum based systems, install the <emphasis>SDL-devel
+ </emphasis> package. For BSD systems, install the
+ <emphasis>sdl-1.2 </emphasis> package.
+ </para>
+
+ </sect3>
+
+ <sect3 id="png">
+ <title>PNG</title>
+ <para>
+ <ulink type="http"
+ url="http://www.libpng.org/pub/png/">PNG</ulink> is a
+ patent-free image format that is comparable to
+ <emphasis>GIF</emphasis>. This is primarily used as a
+ depenency by other libraries, and not directly by Gnash.
+ </para>
+ <para>
+ To install a binary package using apt-get (on Debian based
+ systems), install <emphasis>libpng12-dev </emphasis>. For RPM
+ or Yum based systems, install the <emphasis>libpng </emphasis>
+ package. For BSD systems, install the <emphasis>png
+ </emphasis> package.
+ </para>
+
+ </sect3>
+
+ <sect3 id="jpeg">
+ <title>JPEG</title>
+ <para>
+ <ulink type="http"
+ url="http://www.ijg.org/">JPEG</ulink> is a lossy image
+ format, heavily used for images because of the smaller size of
+ the file. This is used directly by Gnash to load JPEGs.
+ </para>
+ <para>
+ To install a binary package using apt-get (on Debian based
+ systems), install <emphasis>libjpeg62-dev </emphasis>. For RPM
+ or Yum based systems, install the <emphasis>libjpeg
+ </emphasis> package.
+ </para>
+
+ </sect3>
+
+ <sect3 id="libxml2">
+ <title>libxml2</title>
+ <para>
+ Libxml2 is the GNOME XML parser library. Libxml2 is used to
+ parse any incoming messages when using the XML or XMLSocket
+ ActionScript classes. You can get libxml2 from this link:
+ <ulink type="http" url="http://xmlsoft.org">http://xmlsoft.org</ulink>
+ </para>
+
+ <para>
+ To install a binary package using apt-get (on Debian based
+ systems), install <emphasis>libxml2-dev </emphasis>. For RPM
+ or Yum based systems, install the <emphasis>libxml2-devel
+ </emphasis> package. For BSD systems, install the
+ <emphasis>libxml2 </emphasis> package.
+ </para>
+ </sect3>
+
+ <sect3 id="ogg">
+ <title>Ogg Vorbis</title>
+ <para>
+ <ulink type="http" url="http://www.vorbis.com/">Ogg
+ Vorbis</ulink> is a patent free audio format that is
+ comparable (many people say better) to MP3. You can get Ogg
+ Vorbis from this
+ link: <ulink type="http" url="http://www.vorbis.com/">
+ http://www.vorbis.com/</ulink>. Ogg Vorbis is the prefered
+ audio codec for Gnash, and is also supported by the Gstreamer
+ and ffmpeg packages.
+ </para>
+ <para>
+ To install a binary package using apt-get (on Debian based
+ systems), install <emphasis>libogg-dev </emphasis>. For RPM or
+ Yum based systems, install the <emphasis>libogg </emphasis>
+ package. For BSD systems, install the <emphasis> </emphasis> package.
+ </para>
+
+ </sect3>
+
+ <sect3 id="mozilla">
+ <title>Mozilla/Firefox</title>
+
+ <para>
+ The Mozilla development package is no longer needed to build
+ the plugin. The required header files are now included in
+ Gnash, so it builds without Mozilla or Firefox installed at
+ all.
+ </para>
+
+ </sect3>
+ </sect2>
+
+ <sect2 id="docdepend">
+ <title>Documentation Dependencies</title>
+
+ <sect3 id="docbook">
+ <title>Docbook</title>
+
+ <para>
+ <ulink type="http" url="http://docbook.sourceforge.net/">
+ Docbook</ulink> is an industry standard XML format for technical
+ documentation. It is used by many projects, as there are free
+ software implementations of the Docbook style-sheets and
+ tools. It is used by both the <ulink type="http"
+ url="http://www.gnome.org">GNOME</ulink> project, and the
+ <ulink type="http" url="http://www.tldp.org/">Linux
+ Documentation Project</ulink>. It is customizable by using
+ style-sheets for each output device. Default style-sheets are
+ included for a variety of print formats, like <emphasis>PDF</emphasis>
+ and <emphasis>HTML</emphasis>.
+ </para>
+ <para>
+ You can get Docbook from this link:
+ <ulink type="http"
+
url="http://sourceforge.net/project/showfiles.php?group_id=21935#files">
+
http://sourceforge.net/project/showfiles.php?group_id=21935#files</ulink>.
+ If Docbook is not installed, prebuilt files for a variety of
+ formats, like man page and GNU info are included. Up to date
+ documentation can always be found on the <ulink type="http"
+ url="http://www.gnashdev.org"> http://www.gnashdev.org</ulink>.
+ </para>
+ <para>
+ To install a binary packages using apt-get (on Debian based
+ systems), install the <emphasis>docbook </emphasis>,
+ <emphasis>docbook-xsl </emphasis>, <emphasis>docbook-xml </emphasis>,
+ <emphasis>docbook-dsssl </emphasis>, and
+ <emphasis>docbook-utils </emphasis> packages. For RPM or Yum based
+ systems, install the <emphasis>docbook </emphasis>,
+ <emphasis>docbook-style-xsl </emphasis>,
+ <emphasis>docbook-style-dsssl</emphasis>, and
+ <emphasis>docbook-utils </emphasis> packages.
+ </para>
+ </sect3>
+
+ <sect3 id="docbook2x">
+ <title>DocBook2X</title>
+
+ <para>
+ DocBook2X is a software package that converts DocBook
+ documents into the traditional Unix man page format and the
+ GNU Texinfo format. It supports tables for man pages,
+ internationalization, and easy customization of the
+ output using XSLT. This package is used to convert the Gnash
+ documentation into HTML and <ulink type="http"
+ url="http://www.gnu.org/software/texinfo/">
+ Texinfo</ulink> formats. Texinfo can later be converted to
+ standard GNU <emphasis>info</emphasis> pages.
+ </para>
+ <para>
+ You can get DocBook2X from this link:
+ <ulink type="http" url="http://docbook2x.sourceforge.net/">
+ http://docbook2x.sourceforge.net/</ulink>. Texinfo is
+ available at this link:
+ <ulink type="http" url="http://ftp.gnu.org/gnu/texinfo/">
+ http://ftp.gnu.org/gnu/texinfo/</ulink>.
+ </para>
+ <para>
+ To install a binary package of DocBook2X using apt-get (on
+ Debian based systems), install <emphasis>docbook2x
+ </emphasis>. For RPM or Yum based
+ systems, install the <emphasis>docbook2x </emphasis> package.
+ To install a binary package of DocBook2X using apt-get (on
+ Debian based systems), install
+ <emphasis>docbook2x</emphasis>. For RPM or Yum based
+ systems, install the <emphasis>docbook2x</emphasis> package.
+ </para>
+ </sect3>
+
+ <sect3 id="fop">
+ <title>FOP</title>
+
+ <para>
+ FOP (Formatting Objects Processor) is the world's first print
+ formatter driven by XSL formatting objects (XSL-FO) and the
+ world's first output independent formatter. It is a
+ <emphasis>Java</emphasis> application that reads a formatting object
+ (FO) tree and renders the resulting pages to a specified
+ output. Output formats currently supported include PDF, PCL,
+ PS, SVG, XML, Print, AWT, MIF and Text. The default output
+ target is PDF.
+ </para>
+
+ <para>
+ You can get <emphasis>fop</emphasis> from this link:
+ <ulink type="http" url="http://xmlgraphics.apache.org/fop/">
+ http://xmlgraphics.apache.org/fop/</ulink>. Presently only
+ <emphasis>fop version 0.20.5</emphasis> works with current DocBook
+ tools.
+ </para>
+ </sect3>
+
+ <sect3 id="java">
+ <title>Java</title>
+
+ <para>
+ The <emphasis>fop</emphasis> processor is a <emphasis>Java</emphasis>
+ application, so it needs a Java runtime to work. This is
+ installed on many platforms by default, but unfortunately
+ <emphasis>fop</emphasis> doesn't work with the <ulink type="http"
+ url="http://gcc.gnu.org/java/">GCJ</ulink> runtime. There is
+ apparently work being done on FOP to make it usable, but for
+ now, this means installing <ulink type="http"
+ url="http://java.sun.com/">Sun Java</ulink>.
+ </para>
+
+ <para>
+ In addition to the default <emphasis>j2re</emphasis> package, you also
+ need to install <emphasis>JAI</emphasis>, the Java Advanced Imaging
+ library. You can get <emphasis>JAI</emphasis> from <ulink type="http"
+ url="http://java.sun.com/products/java-media/jai/iio.html">
+ this link</ulink>. <emphasis>JAI</emphasis> is not required, and the
+ <emphasis>PDF</emphasis> file will be generated. It will just be
+ missing all the graphics.
+ </para>
+ <para>
+ <emphasis>Fop</emphasis> also requires an environment variable to be
+ set. This is JAVA_HOME. This needs to point to the top
+ directory where your <emphasis>Sun j2re</emphasis> is installed. If
+ you have any other problems with your Java installation, you
+ can also try adding the <emphasis>Sun j2re</emphasis> path to the
+ <emphasis>CLASSPATH</emphasis> environment variable.
+ </para>
+ </sect3>
+
+ </sect2>
+
+ <sect2 id="configure">
+ <title>Configuring The Code</title>
+
+ <para>
+ Gnash uses GNU Autoconf (<ulink type="http"
+ url="http://www.gnu.org/software/autoconf/">
+ http://www.gnu.org/software/autoconf</ulink>) for
+ configuration. All the standard configure options apply.
+ </para>
+
+ <para>
+ The <emphasis>configure</emphasis> script is not included in the CVS
+ sources. It must be produced by running the
+ <emphasis>./autogen.sh</emphasis> script in the top level source
+ directory. This script requires you have <emphasis>autoconf</emphasis>,
+ <emphasis>automake</emphasis>, and <emphasis>libtool</emphasis>
installed.
+ After building this script, you can configure Gnash by running it from
+ the source directory like this: <emphasis>./configure</emphasis>, or from
+ another directory by specifying the full path to configure.
+ </para>
+
+ <para>
+ By default, `make install' will install all the files in
+ `/usr/local/bin', `/usr/local/lib' etc. You can specify
+ an installation prefix other than `/usr/local' using `--prefix',
+ for instance `--prefix=$HOME'.
+ </para>
+
+ <para>
+ Occasionally the default paths for a development package
+ aren't correct. There are several options which can be used
+ to adjust these paths to your own setup. By default, Gnash
+ will look in all the standard places for these tools.
+ </para>
+
+ <para>
+ By default with zero configuration options, the configure
+ process by default will do the right thing. For example, KDE
+ support is built bt default along with GTK, but if you don't
+ have the KDE development libraries installed, KDE support is
+ then disabled. If you have problems with your builds, analysze
+ the output from configure, as Gnash always prints a warning
+ message when changing the default configuration.
+ </para>
+
+ <para>
+ The currently default build of Gnash results in two executables,
+ <emphasis>gtk-gnash </emphasis> and
+ <emphasis>kde-gnash</emphasis>, supporting their respectively
+ named GUIs toolkits. The AGG renderer is used by default, along
+ with the Gstreamer multimedia framework. Both the NSAPI
+ (Firefox/Mozilla) and Kparts (Kongueror) plugins are also built
+ by default.
+ </para>
+
+ <para>
+ Note that to install the plugins requires root access, as these
+ files have to be written to system directories. When building
+ packages, DESTDIR is used at install time, which avoids this
+ problem by only writing to a user specified and writeable
+ directory.
+ </para>
+
+ <para>
+ A configure script can support many options, but they fall
+ into two main types. The first type are options to enable or
+ disable features. The second type is used to specify custom
+ paths for development packages which can't be found by the
+ default searching and testing.
+ </para>
+
+ <para>
+ To debug configure problems requires a knowledge of bourne shell
+ programming and Unix utlities. with a little m4 thrown in. This
+ is because Gnash uses GNU Autotools, because it is the best
+ system I've ever found for handling the complex issues involved
+ in cross configuration and compilation. Debugging configure
+ scripts can be made much easier by using the following
+ trick. Autoconf uses the environment variable
+ <emphasis>CONFIG_SHELL </emphasis> for invoking the subshell
+ used for configure tests. If this variable is set in your
+ environment to <emphasis>sh -x</emphasis>, then the bourne shell
+ debugging commands get printed. While this file can be very
+ large, every variable value, and expanded shell command is
+ printed out, making it relatively easy to find where the problem
+ is. To get all the shell debugging commands including the top
+ level shell, just invoke configure with <emphasis>sh -x</emphasis>.
+ </para>
+
+ <para>
+ Often configuration problems fall into a few simple
+ catagories. For native builds, if <emphasis>pkg-config
+ </emphasis> is installed, the values it returns for CFLAGS and
+ LDFLAGS are used. As these files are maintained by the
+ indivigual package maintainers themselves, they are often not
+ very portable. Gnash attempts to fix the dependencies of these
+ paths for known problems, but sometimes new problems appear as
+ other packages get updated. For cross configuration, pkg-comfig
+ is ignored, as in those cases it's never correct unless you are
+ running in a fake native cross building environment like
+ scratchbox or open embedded.
+ </para>
+
+ <para>
+ The other problem for Gnash is when pkg-config is not used,
+ Gnash needs to find the paths for the headers and libraries it
+ needs to build itslf. As most of the default macros for
+ Autotconf don't all cleanly support cross configuration, Gnash
+ includes it's own that have been developed over years of
+ testing. Still, packages and distributions occasionally change
+ things. and even the best configure tests can't cope. Gnash's
+ configure tests are as flexible as possible, but often if a
+ dependant package can't be found, and you know it's installed
+ and working, the our configure test is broken. If you find a
+ configure test is failing on your machine, please <ulink type="http"
+ url="https://savannah.gnu.org/bugs/?group=gnash">submit a patch</ulink>
+ or <ulink type="http"
+ url="https://savannah.gnu.org/bugs/?group=gnash">file a bug
+ report</ulink>.
+ </para>
+
+ <para>
+ For cross configuring, the problem initially can be in the cross
+ toolchain used. before getting too worried, first make sure a
+ simple "Hello World" program can be compiled and run on your
+ target. If this works, build and run the example programs
+ included in most of the packages source distributions to make
+ sure your installation is fully functional. For a new toolchain
+ on a new target, it is very common to have issues getting the
+ entire system up and working to the level it needs to for full,
+ support of multimedia.
+ </para>
+
+ <sect3 id="confoptions">
+ <title>Configure Options</title>
+
+ <para>
+ Some switches can be used at configuration time to enable or disable
+ various features of Gnash. The major configuration options are:
+ </para>
+ <para>
+ GUI: see --enable-gui (default is GTK and KDE)
+ </para>
+ <para>
+ Renderer: see --enable-renderer (default is AGG)
+ </para>
+ <para>
+ Media handler: see --enable-media (default is Gstreamer)
+ </para>
+
+ <para>
+ The smallest working standalone version is obtained with:
+ <programlisting>
+ ./configure --disable-debugger --disable-cygnal --disable-docbook \
+ --disable-plugin --enable-gui=fltk.
+ </programlisting>
+ </para>
+
+
+ <varlistentry>
+ <term>--disable-debugger</term>
+ <listitem>
+ <para>
+ Disable support for the Flash debugger. The debugger is
+ mainly of interest to Flash developers, or Gnash
+ developers, and is currently a work in progress.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--enable-dmalloc</term>
+ <listitem>
+ <para>
+ Enable support for the DMalloc memory debugging tool.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--enable-dom</term>
+ <listitem>
+ <para>
+ When using the XML library, parse the messages using a
+ DOM based parser. This is the default.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--enable-embedded</term>
+ <listitem>
+ <para>
+ Link to Qt-embedded, don't use X. This is only used by
+ Klash.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <variablelist>
+ <varlistentry>
+ <term>--disable-fork</term>
+ <listitem>
+ <para>
+ Disable the plugin forking the standalone player, and
+ using a thread for the player instead. Currently forking
+ the standalone player will give you the best results.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--enable-ghelp</term>
+ <listitem>
+ <para>
+ Enable support for the GNOME help system.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--enable-gui=gtk|sdl|kde|fltk|fb</term>
+ <listitem>
+ <para>
+ Select the Graphic User Interface to use (just one at a time
please).
+ </para>
+ <varlistentry>
+ <term>GTK</term>
+ <listitem>
+ The GTK+ toolkit, which is the default GUI.
+ Said to interwork particularly well with firefox.
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>SDL</term>
+ <listitem>
+ Simple DirectMedia Layer, a simple and portable GUI.
+ Its sound facilities are used when --enable-media=ffmpeg|mad
+ regoardless of whether it is also in charge of the GUI.
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>KDE</term>
+ <listitem>
+ An interface adapted to the KDE Desktop Environment.
+ This must be selected when building the Konqueror plugin
+ "klash". Furthermore, the only renderer that currently
+ works with KDE is opengl.
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>FLTK</term>
+ <listitem>
+ Fast Light ToolKit, low on resource usage.
+ Since all build using fltk are now broken, we declare it
+ "for developers".
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>FB</term>
+ <listitem>
+ The Linux Frame Buffer, also known as /dev/fb0.
+ AGG is the only renderer that can currently be used
+ with the framebuffer GUI.
+ </listitem>
+ </varlistentry>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--enable-i810-lod-bias</term>
+ <listitem>
+ <para>
+ Enable fix for Intel 810 LOD bias problem. Older versions
+ of libMesa on the Intel i810 or i815 graphics processor
+ need this flag or Gnash will core dump. This has been
+ fixed in newer versions (summer 2005) of libMesa.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--disable-kparts</term>
+ <listitem>
+ <para>
+ Disable support for Konqueror plugin. If
+ <emphasis>--enable--plugin</emphasis> is specified, and
+ support for building KDE programs is found, Klash is
+ built by default. This option limits the plugin to only
+ the Mozilla/Firefox one.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--enable-libsuffix</term>
+ <listitem>
+ <para>
+ /lib directory suffix (64,32,none=default). This is only
+ used by Klash.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--enable-mac</term>
+ <listitem>
+ <para>
+ Link to Qt/Mac (don't use X). This is only used by Klash.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--enable-media=ffmpeg|gst</term>
+ <listitem>
+ <para>
+ Select the specified media decoder and sound engine.
+ FFMPEG uses the SDL sound engine, GST uses its own.
+ Using <emphasis>Gstreamer</emphasis> is the default decoder.
+ </para>
+ <para>
+ You should only select one media decoder.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--disable-nsapi</term>
+ <listitem>
+ <para>
+ Disable building the NSAPI plugin, which is built by
+ default. Configure
+ <emphasis>--with-plugindir=</emphasis> to specify where
+ the plugin should be installed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--enable-qtopia</term>
+ <listitem>
+ <para>
+ Link to Qt-embedded, link to the Qtopia
+ Environment. This is only used by Klash.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--enable-renderer=opengl|cairo|agg</term>
+ <listitem>
+ <para>
+ Enable support for the a graphics backend. Currently
+ only <emphasis>opengl</emphasis> and
+ <emphasis>agg</emphasis> work sufficiently. OpenGL is
+ used when you have hardware accelerated graphics. AGG is
+ used when you don't have hardware accelerated
+ graphics. Typically most desktop machines have OpenGL
+ support, and most embedded systems don't. OpenGL is the
+ default when building Gnash, though the quality of AGG's
+ rendering is currently superior to OpenGL.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--disable-shared</term>
+ <listitem>
+ <para>
+ Disble building the Gnash libraries as shared libraries.
+ Note that the extensions mechanism may not work if shared
+ libraries are disabled, nor will the plugins get
+ built. This option is primarily used by developers.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--enable-strict</term>
+ <listitem>
+ <para>
+ Turn on tons of GCC compiler warnings. By default only
+ <emphasis>-Wall</emphasis> is used with GCC.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+ </sect3>
+
+ <sect3 id="confpath">
+ <title>Specifying A Custom Path</title>
+
+ <para>
+ This set of options typically use a <emphasis>--with-[name]</emphasis>
+ naming convention. A Prefix can often be supplied, which is
+ the top level directory which can be used to look for the other
+ sub directories. Most options of this type have two
+ variations, one to specify a path to the header files, and
+ another to specify a path to the libraries. This lets you
+ override the default paths <emphasis>configure</emphasis> finds, or
+ specify your own paths.
+ </para>
+
+ <para>
+ By default, none of the options should be required unless you
+ want Gnash to use a specific version of a development package,
+ or the configure test for Gnash fails to find the
+ component. There are a lot of options, but Gnash has a lot of
+ dependencies. If you find a configure test is failing on your
+ machine, please <ulink type="http"
+ url="https://savannah.gnu.org/bugs/?group=gnash">submit a patch</ulink>
+ or <ulink type="http"
+ url="https://savannah.gnu.org/bugs/?group=gnash">file a bug
+ report</ulink>.
+ </para>
+
+ <variablelist>
+ <varlistentry>
+ <term>--x-includes=DIR</term>
+ <listitem>
+ <para>
+ X include files are in DIR.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--x-libraries=DIR</term>
+ <listitem>
+ <para>
+ X library files are in DIR.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--with-libxml=PFX</term>
+ <listitem>
+ <para>
+ Prefix to where libxml is installed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--with-libxml-libraries=DIR</term>
+ <listitem>
+ <para>
+ Directory where libxml library is installed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--with-libxml-includes=DIR</term>
+ <listitem>
+ <para>
+ Directory where libxml header files are installed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--with-docbook=DIR</term>
+ <listitem>
+ <para>
+ Directory where the DocBook style-sheets are installed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--with-sdl-prefix=PFX</term>
+ <listitem>
+ <para>
+ Prefix where SDL is installed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--with-zlib-incl</term>
+ <listitem>
+ <para>
+ Directory where zlib header is installed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--with-zlib-lib</term>
+ <listitem>
+ <para>
+ Directory where zlib library is installed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--with-jpeg-incl</term>
+ <listitem>
+ <para>
+ Directory where jpeg header is installed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--with-jpeg-lib</term>
+ <listitem>
+ <para>
+ Directory where jpeg library is installed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--with-png-incl</term>
+ <listitem>
+ <para>
+ Directory where png header is installed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--with-png-lib</term>
+ <listitem>
+ <para>
+ Directory where png library is installed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--with-qt-dir</term>
+ <listitem>
+ <para>
+ Directory where QT is installed. This is only used by
+ the Klash plugin.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--with-qt-includes</term>
+ <listitem>
+ <para>
+ Directory where the QT header files are installed. This
+ is only used by the Klash plugin.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--with-qt-libraries</term>
+ <listitem>
+ <para>
+ Directory where the QT libraries are installed. This is
+ only used by the Klash plugin.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--with-plugindir</term>
+ <listitem>
+ <para>
+ This is the directory to install the Firefox plugin in.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--with-ming</term>
+ <listitem>
+ <para>
+ Ming is used to build test cases, but not by the Gnash
+ player itself.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--with-ogg_incl</term>
+ <listitem>
+ <para>
+ Directory where the libogg headers are installed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--with-ogg_lib</term>
+ <listitem>
+ <para>
+ Directory where the libogg library is installed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--with-gstreamer-incl</term>
+ <listitem>
+ <para>
+ Directory where the Gstreamer headers are
+ installed. Gstreamer version 0.10 or greater must be used.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--with-gstreamer-lib</term>
+ <listitem>
+ <para>
+ Directory where the Gstreamer library is
+ installed. Gstreamer version 0.10 or greater must be used.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--with-opengl-includes</term>
+ <listitem>
+ <para>
+ Directory where OpenGL (libMesa) headers are installed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--with-opengl-lib</term>
+ <listitem>
+ <para>
+ Directory where the OpenGL (libMesa) library is installed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--with-glext-incl</term>
+ <listitem>
+ <para>
+ Directory where GtkGlExt headers are installed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--with-glext-lib</term>
+ <listitem>
+ <para>
+ Directory where the GtkGlExt library is installed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--with-gtk2-incl</term>
+ <listitem>
+ <para>
+ Directory where the Gtk2 headers are installed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--with-gtk2-lib</term>
+ <listitem>
+ <para>
+ Directory where the Gtk2 library is installed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--with-cairo_incl</term>
+ <listitem>
+ <para>
+ Directory where the Cairo headers are installed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--with-cairo-lib</term>
+ <listitem>
+ <para>
+ Directory where the Cairo library is installed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--with-glib-incl</term>
+ <listitem>
+ <para>
+ Directory where the Glib headers are installed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--with-glib-lib</term>
+ <listitem>
+ <para>
+ Directory where the Glib library is installed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--with-pango-incl</term>
+ <listitem>
+ <para>
+ Directory where the Pango headers are installed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--with-pango-lib</term>
+ <listitem>
+ <para>
+ Directory where the Pango library is installed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--with-atk-incl</term>
+ <listitem>
+ <para>
+ Directory where the ATK headers are installed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--with-atk-lib</term>
+ <listitem>
+ <para>
+ Directory where the ATK library is installed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--with-pthread-incl</term>
+ <listitem>
+ <para>
+ Directory where the Pthread headers are installed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--with-pthread-lib</term>
+ <listitem>
+ <para>
+ Directory where the Pthread library is installed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--with-agg-incl</term>
+ <listitem>
+ <para>
+ Directory where the AGG (Antigrain) headers are installed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--with-agg-lib</term>
+ <listitem>
+ <para>
+ Directory where the AGG (Antigrain) library is installed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--with-ffmpeg-incl</term>
+ <listitem>
+ <para>
+ Directory where the FFMPEG headers are installed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--with-ffmpeg-lib</term>
+ <listitem>
+ <para>
+ Directory where the FFMPEG library is installed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--with-boost-incl</term>
+ <listitem>
+ <para>
+ Directory where the Boost headers are installed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--with-boost-lib</term>
+ <listitem>
+ <para>
+ Directory where the Boost library is installed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--with-curl-incl</term>
+ <listitem>
+ <para>
+ Directory where the libCurl headers are installed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>--with-curl-lib</term>
+ <listitem>
+ <para>
+ Directory where the libCurl library is installed.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+ </sect3>
+
+ <sect3 id="envvars">
+ <title>Influential environment variables</title>
+
+ <para>
+ You can control other flags used for compiling using
+ environment variables. Set these variables before configuring,
+ and they will be used by the configure process instead of the
+ default values.
+ </para>
+
+ <variablelist>
+
+ <varlistentry>
+ <term>CPPFLAGS</term>
+ <listitem>
+ <para>
+ C/C++ preprocessor flags, e.g. -I[headers directory] if you have
+ headers in a nonstandard directory.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>CXX</term>
+ <listitem>
+ <para>
+ C++ compiler command.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>CXXFLAGS</term>
+ <listitem>
+ <para>
+ C++ compiler flags.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>LDFLAGS</term>
+ <listitem>
+ <para>
+ linker flags, e.g. -L[library directory] if you have libraries in
+ a non-standard directory.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect3>
+
+ <sect3 id="crossconf">
+ <title>Cross Compiling And Configuration</title>
+
+ <para>
+ To cross configure and compile Gnash, you first need to build
+ a target system on your workstation. This includes cross
+ compilers for the target architecture, and typically some
+ system headers. You will also need <emphasis>libxml2</emphasis>,
+ <emphasis>libpng</emphasis>, <emphasis>libjpeg</emphasis>,
+ <emphasis>sdl</emphasis>, <emphasis>opengl</emphasis>, and
+ <emphasis>ogg</emphasis> development packages built for the target
+ system.
+ </para>
+
+ <para>
+ If you need to build up a target system from scratch, there is
+ a good document and shell script at this web site: <ulink
+ type="http"
+ url="http://frank.harvard.edu/~coldwell/toolchain/">
+ http://frank.harvard.edu/~coldwell/toolchain/</ulink>.
+ </para>
+
+ <para>
+ There is also up to date information on the Gnash Developers
+ weeb site at: <ulink type="http" url="http://www.gnashdev.org">
+ http://www.gnashdev.org</ulink>. This is the best place for
+ detailed informatin on various systems.
+ </para>
+
+ <para>
+ After I built up an ARM system in /usr/arm using the shell
+ script from this web site, I then cross compiled all the
+ other libraries I needed. The fun part is trying to get
+ libMesa to cross compile, because it's not really set up for
+ that. It's much easier to use the Gnash default, AGG.
+ </para>
+
+ <para>
+ So to build for an ARM based system on an x86 based systems,
+ configure like this:
+ </para>
+
+ <programlisting>
+ ../../gnash/configure --build=i686-pc-linux-gnu
+ --host=arm-linux --prefix=/usr/local/arm/oe --disable-nsapi
+ --disable-kparts --enable-gui=fb --enable-renderer=agg --disable-shared
+ </programlisting>
+
+ <para>
+ The important options here are the ones that specify the
+ architectures for the build.
+
+ <variablelist>
+ <varlistentry>
+ <term>--target</term>
+ <listitem>
+ <para>
+ The target architecture. This is the architecture the
+ final executables are supposed to run on.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>--host</term>
+ <listitem>
+ <para>
+ The host architecture. This is the architecture the
+ executables are supposed to run on. This is usually the
+ same as <emphasis>--target</emphasis> except when building a
+ compiler as a
+ Canadian Cross. This is when you build a cross
+ compiler on a Unix machine, that runs on a
+ <emphasis>win32</emphasis> machine, producing code for yet
+ a third architecture, like the <emphasis>ARM</emphasis>.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>--build</term>
+ <listitem>
+ <para>
+ This is the system this build is running on.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+
+ </sect3>
+
+ </sect2>
+
+ <sect2 id="building">
+ <title>Building Gnash</title>
+
+ <para>
+ After managing to configure Gnash, building the code is
+ simple. Gnash is built using <emphasis>GNU make</emphasis>.
+ </para>
+
+ <sect3 id="compile">
+ <title>Compiling The Code</title>
+
+ <para>
+ After configuring, typing <emphasis>make</emphasis> will compile the
+ code. No options are necessary. If desired, you can redefine
+ the variables used by <emphasis>make</emphasis> on the command line
+ when invoking the program. The few flags of interest are
+ <emphasis>CFLAGS</emphasis> and <emphasis>CXXFLAGS</emphasis>, often
used to
+ turn on debugging or turn off optimizing. Invoking make as in
+ this example would build all the code with debugging turned
+ on, and optimizing turned off. The default values for both of
+ these variables is <emphasis>-O2 -g</emphasis>.
+
+ <programlisting>
+ make CFLAGS=-g CXXFLAGS=-g
+ </programlisting>
+ </para>
+
+ <para>
+ If the compilation ends with an error, check the output of
+ configure and make sure nothing required to build Gnash is
+ missing.
+ </para>
+ </sect3>
+
+ <sect3 id="processdoc">
+ <title>Processing The Documentation</title>
+
+ <para>
+ By default, the documentation isn't built at all. It isn't
+ even built when typing <emphasis>make install</emphasis> from the top
+ level build directory. It's only built when specified with a
+ specific target in the generated <emphasis>Makefile</emphasis> in the
+ <emphasis>doc/C/</emphasis> sub-directory. All the documents are built
in
+ this directory when executing a <emphasis>make install</emphasis>.
+ </para>
+
+ <para>
+ By default, gnash merely links to prebuilt vesion of the
+ documentation, so without needing to have a working Docbook
+ installation, basic man pages and info pages work. This is
+ used primarily to support systems that may not have a working
+ docbook installtion when building binary packages. If these
+ files don't exist, most packaging system will fail.
+ </para>
+
+ <para>
+ There is a target for each output format, <emphasis>make
+ html</emphasis>, <emphasis>make pdf</emphasis>, <emphasis>make
+ info </emphasis>, and <emphasis>make man</emphasis>. A higher
+ level target, <emphasis>make alldocs</emphasis>, builds the
+ four main formats for the documentation.
+ </para>
+
+ <para>
+ Gnash also has support to use <ulink type="http"
+ url="http://www.stack.nl/~dimitri/doxygen/index.html">
+ Doxygen</ulink> to produce <emphasis>HTML</emphasis> pages documenting
+ the internals of Gnash. While this is not necessarily
+ internals documentation, it does give very useful information
+ about all the files, the classes, a cross reference, and other
+ data.
+ </para>
+ <para>
+ You need to have Doxygen installed to produce these documents. If
+ you do have it installed, typing <emphasis>make apidoc</emphasis> in
+ the <emphasis>doc</emphasis> directory will make these documents under a
+ sub directory of <emphasis>apidoc/html</emphasis>
+ </para>
+ </sect3>
+
+ <sect3 id="runtests">
+ <title>Running the Tests</title>
+
+<!--
+ <para>
+ If a test fails, please report it by following the
+ <link linkend="bugreport">instructions for reporting a bug</link>.
+ </para>
+-->
+
+ <sect4 id="dejagnu">
+ <title>Using DejaGnu</title>
+ <para>
+ FIXME: Add a section on running tests without DejaGnu.
+ The easiest way to run Gnash's test suite is to install
+ <emphasis><ulink type="http"
+ url="http://www.gnu.org/software/dejagnu">DejaGnu</ulink></emphasis>.
+ After installing DejaGnu, run:
+ <programlisting>
+ make check
+ </programlisting>
+ </para>
+
+ <sect5 id="testing_verbosity">
+ <title>Increasing Verbosity</title>
+ <para>
+ If you encounter a problem with a test, increasing the
+ verbosity may make the issue easier to spot.
+ Additional details are visible when
+ <emphasis>RUNTESTFLAGS</emphasis> are used to add the
+ <emphasis>verbose</emphasis> and <emphasis>all</emphasis> options.
+ Verbose prints more information about the testing process, while
+ all includes details on passing tests.
+ <programlisting>
+ make check RUNTESTFLAGS="-v -a"
+ </programlisting>
+ </para>
+ </sect5>
+
+ <sect5 id="running_some_tests">
+ <title>Running Some Tests</title>
+ <para>
+ It is possible to run just a particular test, or
+ subdirectory of tests, by specifying the directory or
+ compiled test file.
+ </para>
+ <para>
+ Some tests rely on <emphasis>testsuite/Dejagnu.swf</emphasis>,
+ which in turn relies on <emphasis>Ming</emphasis>.
+ This file is created when you run 'make check' for the entire
+ testsuite, and can also be created on demand:
+ <programlisting>
+ make -C testsuite Dejagnu.swf
+ </programlisting>
+ </para>
+ <para>
+ In this example, the 'clip_as_button2' test is compiled and
+ run:
+ <programlisting>
+ make -C testsuite/samples clip_as_button2-TestRunner
+ cd testsuite/samples && ./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>
+
+
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] gnash/doc/C dumpshm.man-xml soldumper.man-xml g...,
Rob Savoye <=