gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash ChangeLog doc/C/Makefile.am packaging/doc...


From: Rob Savoye
Subject: [Gnash-commit] gnash ChangeLog doc/C/Makefile.am packaging/doc...
Date: Sat, 16 Feb 2008 17:51:06 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Rob Savoye <rsavoye>    08/02/16 17:51:06

Modified files:
        .              : ChangeLog 
        doc/C          : Makefile.am 
Added files:
        packaging/doc  : actionscript.html.in actionscript.info.in 
                         dumpshm.1.in gnash.1.in gnash.html.in 
                         gnash.info.in gprocessor.1.in soldumper.1.in 

Log message:
                * doc/C/dumpshm-man.xml, gprocessor-man.xml, soldumper-man.xml,
                gnash-man.xml: Rename all man page source to *.man-xml so we can
                use a SUFFIX rule for transformations.
                * doc/C/Makefile.am: Build manpages using a SUFFIX rule. Cleanup
                how manpages get installed so it works when building packages.
                * packaging/doc: New directory to hold prebuilt docs for 
packaging
                on braindead systems without a working Docbook2X.
                actionscript.html.in
                * packaging/doc/actionscript.info.in, dumpshm.1.in, gnash.1.in,
                gnash.html.in, gnash.info.in, gprocessor.1.in, soldumper.1.in:
                Prebuilt docs, only used for building binary packages on systems
                without Docbook2X support.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.5668&r2=1.5669
http://cvs.savannah.gnu.org/viewcvs/gnash/doc/C/Makefile.am?cvsroot=gnash&r1=1.41&r2=1.42
http://cvs.savannah.gnu.org/viewcvs/gnash/packaging/doc/actionscript.html.in?cvsroot=gnash&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/gnash/packaging/doc/actionscript.info.in?cvsroot=gnash&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/gnash/packaging/doc/dumpshm.1.in?cvsroot=gnash&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/gnash/packaging/doc/gnash.1.in?cvsroot=gnash&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/gnash/packaging/doc/gnash.html.in?cvsroot=gnash&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/gnash/packaging/doc/gnash.info.in?cvsroot=gnash&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/gnash/packaging/doc/gprocessor.1.in?cvsroot=gnash&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/gnash/packaging/doc/soldumper.1.in?cvsroot=gnash&rev=1.1

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.5668
retrieving revision 1.5669
diff -u -b -r1.5668 -r1.5669
--- ChangeLog   16 Feb 2008 09:20:21 -0000      1.5668
+++ ChangeLog   16 Feb 2008 17:51:04 -0000      1.5669
@@ -1,3 +1,18 @@
+2008-02-16  Rob Savoye  <address@hidden>
+
+       * doc/C/dumpshm-man.xml, gprocessor-man.xml, soldumper-man.xml,
+       gnash-man.xml: Rename all man page source to *.man-xml so we can
+       use a SUFFIX rule for transformations.
+       * doc/C/Makefile.am: Build manpages using a SUFFIX rule. Cleanup
+       how manpages get installed so it works when building packages.
+       * packaging/doc: New directory to hold prebuilt docs for packaging
+       on braindead systems without a working Docbook2X.
+       actionscript.html.in
+       * packaging/doc/actionscript.info.in, dumpshm.1.in, gnash.1.in,
+       gnash.html.in, gnash.info.in, gprocessor.1.in, soldumper.1.in:
+       Prebuilt docs, only used for building binary packages on systems
+       without Docbook2X support.
+
 2008-02-16 Sandro Santilli <address@hidden>
 
        * server/vm/ASHandlers.cpp (ActionInitArray): use as_value::to_int
@@ -18,6 +33,16 @@
 
 2008-02-15  Rob Savoye  <address@hidden>
 
+       * doc/C/Makefile.am: If the docbook tools don't exist.use a stored
+       copy of the final output file. While this is a bit tacky, it helps
+       when building binary packages on systems where the DocBook tools
+       don't work correctly. Potentially old docs are better than none.
+       * doc/C/{dumpshm.1,gnash.info, soldumper.1, actionscript.html,
+       gnash.1, gnash.texi, actionscript.texi, gnash.html.in
+       gprocessor.1: Copies of prebuilt documentation. This gives one
+       working documentaion regalrdless of whether they have the Docbook
+       tools installs. Useful for building binary packages.
+
        * macros/glib.m4: Add extra glib for include path, and drop the
        extra glib for the glibconfig.h include path. This let's Gnash
        build on NetBSD 4.0.

Index: doc/C/Makefile.am
===================================================================
RCS file: /sources/gnash/gnash/doc/C/Makefile.am,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -b -r1.41 -r1.42
--- doc/C/Makefile.am   13 Feb 2008 02:30:07 -0000      1.41
+++ doc/C/Makefile.am   16 Feb 2008 17:51:05 -0000      1.42
@@ -109,17 +109,20 @@
 xml_files = $(docname).xml actionscript.xml
 
 #noinst_SCRIPT = gen-doc.sh
-dist_man_MANS = gnash.1
+dist_man_MANS = gnash.1 gprocessor.1 dumpshm.1 soldumper.1
 
-html: gnash.html actionscript.html
-pdf:  gnash.pdf actionscript.pdf
+# dist_html_DATA = gnash.html actionscript.html
+# dist_info_DATA = gnash.info actionscript.info
+
+html: images gnash.html actionscript.html
+pdf:  images gnash.pdf actionscript.pdf
 man:  gnash.1 gprocessor.1 dumpshm.1 soldumper.1
 texi: gnash.texi actionscript.texi
-info: gnash.info actionscript.info
-gnash.pdf gnash.html gnash.texi: $(xml_files) $(entities)
+info: images gnash.info actionscript.info
+gnash.pdf gnash.html gnash.texi: images $(xml_files) $(entities)
 actionscript.pdf actionscript.html actionscript.texi: actionscript.xml 
actionscript/main.xml actionscript/as_value.xml actionscript/new_as_class.xml
 
-SUFFIXES = .xml .html .texi .pdf .info .1 .fo
+SUFFIXES = .xml .html .texi .pdf .info .1 .fo .man-xml
 
 EXTRA_DIST = \
        $(xml_files) \
@@ -160,8 +163,9 @@
 .xml.html:
 if ENABLE_HTML
        $(XSLTPROC) --output $@ --nonet $(docbook_styles)/html/docbook.xsl $<
+       $(RM) $*.txml
 else
-       touch $@
+       $(LN_S) -f $$? $@
 endif
 
 #      basefile=$(notdir $(basename $<));
@@ -172,55 +176,39 @@
        if test x"$(DB2X_VERSION)" = x"0.8.5" -o x"$(DB2X_VERSION)" = x"0.8.7"; 
then \
          $(DB2X_TEXIXML) --encoding=us-ascii//TRANSLIT $${basefile}.txml; \
          sed -e "s/setfilename $${basefile}_.*\.info/setfilename 
$${basefile}.info/" $${basefile}_*.texi > $${basefile}.texi ; \
-         $(RM) $${basefile}_manual_v*.texi; \
        else \
          $(DB2X_TEXIXML) --encoding=us-ascii//TRANSLIT --to-stdout 
$${basefile}.txml > $${basefile}.texi ; \
-         $(RM) $${basefile}_manual_v*.texi; \
        fi
-else
-       touch $@
 endif
 
 .texi.info:
+if ENABLE_TEXI
        -$(MAKEINFO) --force $<
-
-gnash.1: gnash-man.xml
-if ENABLE_MAN
-       $(DB2X_XSLTPROC) -s man $(srcdir)/gnash-man.xml -o gnash.mxml
-       $(DB2X_MANXML) gnash.mxml
-       $(RM) gnash.mxml
-else
-       touch gnash.1
-endif
-
-gprocessor.1: gprocessor-man.xml
-if ENABLE_MAN
-       $(DB2X_XSLTPROC) -s man $(srcdir)/gprocessor-man.xml -o gprocessor.mxml
-       $(DB2X_MANXML) gprocessor.mxml
-       $(RM) gprocessor.mxml
+       $(RM) *.texi
 else
-       touch gprocessor.1
+       $(LN_S) -f $$? $@
 endif
 
-dumpshm.1: dumpshm-man.xml
+.man-xml.1:
 if ENABLE_MAN
-       $(DB2X_XSLTPROC) -s man $(srcdir)/dumpshm-man.xml -o dumpshm.mxml
-       $(DB2X_MANXML) dumpshm.mxml
-       $(RM) dumpshm.mxml
+       echo "\"$?\", \"$*\", \"$<\""
+       $(DB2X_XSLTPROC) -s man $? -o $*.mxml
+       $(DB2X_MANXML) $*.mxml
+       $(RM) $*.mxml
 else
-       touch dumpshm.1
+       @if test -d $(top_srcdir)/packaging; then \
+         $(LN_S) -f $(top_srcdir)/packaging/doc/address@hidden $@; \
+       else \
+         touch $@; \
+       fi
 endif
 
-soldumper.1: soldumper-man.xml
-if ENABLE_MAN
-       $(DB2X_XSLTPROC) -s man $(srcdir)/soldumper-man.xml -o soldumper.mxml
-       $(DB2X_MANXML) soldumper.mxml
-       $(RM) soldumper.mxml
-else
-       touch soldumper.1
-endif
+alldocs: images html pdf man info
 
-alldocs: html pdf man info
+images:
+       @if test ! -d images; then \
+          $(LN_S) -f $(srcdir)/images images; \
+       fi
 
 lint:
        @xmllint $(srcdir)/gnash.xml
@@ -232,10 +220,9 @@
        gnash.tex  \
        gnash.fo  \
        gnash.log  \
-        gnash.texi \
-       gnash_manual_*.texi \
-       gnash.txml \
-       gnash.mxml \
+        *.texi \
+       *.txml \
+       *.mxml \
        omf_timestamp
 
 MAINTAINERCLEANFILES = \
@@ -245,10 +232,20 @@
        dumpshm.1 \
        soldumper.1 \
         gnash.info \
-        gnash.html
+        gnash.html \
+       actionscript.html \
+       actionscript.info
+
+# Man pages are installed as data
+install-data-hook:
+       @if test -d $(top_srcdir)/packaging/doc; then \
+         for i in "$(MANS)"; do \
+           $(INSTALL_DATA) $$i $(DESTDIR)$(man1dir)/; \
+         done; \
+       fi
 
 install-info-hook: gnash.info
-       test -d "$(DESTDIR)$(infodir)" || $(mkinstalldirs) 
"$(DESTDIR)$(infodir)"
+       @test -d "$(DESTDIR)$(infodir)" || $(mkinstalldirs) 
"$(DESTDIR)$(infodir)"
        $(INSTALL_DATA) $< $(DESTDIR)$(infodir)/gnash.info 
        -if (install-info --version) >/dev/null 2>&1; then \
          version=`install-info --version | grep -c 'GNU texinfo'`; \
@@ -262,6 +259,4 @@
 uninstall-info-hook:
        $(RM) $(DESTDIR)$(infodir)/gnash.info
 
-#app-dist-hook:
-
-#dist-hook: app-dist-hook
+.PHONY: images

Index: packaging/doc/actionscript.html.in
===================================================================
RCS file: packaging/doc/actionscript.html.in
diff -N packaging/doc/actionscript.html.in
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ packaging/doc/actionscript.html.in  16 Feb 2008 17:51:05 -0000      1.1
@@ -0,0 +1,618 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; 
charset=ISO-8859-1"><title>ActionScript Manual V0.2</title><meta 
name="generator" content="DocBook XSL Stylesheets V1.73.2"></head><body 
bgcolor="white" text="black" link="#0000FF" vlink="#840084" 
alink="#0000FF"><div class="article" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a name="index"></a>ActionScript 
Manual V0.2</h2></div><div><div class="authorgroup"><div class="author"><h3 
class="author"><span class="firstname">Rob</span> <span 
class="surname">Savoye</span></h3><div class="affiliation"><div 
class="address"><p><br>
+           <code class="email">&lt;<a class="email" 
href="mailto:address@hidden";>address@hidden</a>&gt;</code><br>
+         </p></div></div></div><div class="author"><h3 class="author"><span 
class="firstname">Ann</span> <span 
class="surname">Barcomb</span></h3></div></div></div><div><p 
class="releaseinfo">This manual describes how Gnash ActionScript classes
+    are written.
+    </p></div><div><p class="copyright">Copyright © 2007, 2008 Free Software 
Foundation</p></div><div><div class="legalnotice"><a name="legalnotice"></a><p>
+    Permission is granted to copy, distribute and/or modify this document
+    under the terms of the <a class="link" href="#fdl" title="A. GNU Free 
Documentation License"><em class="citetitle">GNU
+    Free Documentation License</em></a>, Version 1.1 or any later
+    version published by the Free Software Foundation with no Invariant
+    Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find
+    a copy of the GFDL at this 
+    <a class="link" href="#fdl" title="A. GNU Free Documentation 
License">link</a> or in the file COPYING-DOCS
+    distributed with this manual.
+   </p></div></div><div><div class="revhistory"><table border="1" width="100%" 
summary="Revision history"><tr><th align="left" valign="top" 
colspan="2"><b>Revision History</b></th></tr><tr><td align="left">Revision 
ActionScript Manual V0.2</td><td align="left">Feb 2008</td></tr><tr><td 
align="left" colspan="2"> 
+         <p class="author">Rob Savoye
+           <code class="email">&lt;<a class="email" 
href="mailto:address@hidden";>address@hidden</a>&gt;</code>
+         </p>
+         <p class="author">Ann Barcomb
+         </p>
+         <p class="publisher">Free Software Foundation</p>
+       </td></tr></table></div></div></div><hr></div><div 
class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a 
href="#introduction">Introduction</a></span></dt><dd><dl><dt><span 
class="sect2"><a href="#overview">Object Creation 
Overview</a></span></dt></dl></dd><dt><span class="sect1"><a 
href="#newclass">Adding New ActionScript Class</a></span></dt><dd><dl><dt><span 
class="sect2"><a href="#prototype">Prototype</a></span></dt><dt><span 
class="sect2"><a href="#declaration">Declaration</a></span></dt><dt><span 
class="sect2"><a href="#instantiation">Instantiation</a></span></dt><dt><span 
class="sect2"><a href="#methods">Methods</a></span></dt><dt><span 
class="sect2"><a href="#properties">Dynamic 
Properties</a></span></dt></dl></dd><dt><span class="sect1"><a 
href="#as_value">The <span class="emphasis"><em>as_value</em></span> Object 
Type</a></span></dt><dd><dl><dt><span class="sect2"><a href="#data_types">Data 
Types</a></span></dt><dt><span class="sect2"><a href="#is_methods">Determining 
the Type</a></span></dt><dt><span class="sect2"><a href="#to_methods">Fetching 
the Value</a></span></dt><dt><span class="sect2"><a href="#set_methods">Setting 
the Value and Type</a></span></dt><dt><span class="sect2"><a 
href="#further_as_value_reading">Further 
Reading</a></span></dt></dl></dd><dt><span class="appendix"><a href="#fdl">A. 
GNU Free Documentation License</a></span></dt><dd><dl><dt><span 
class="sect1"><a href="#fdl-preamble">0. PREAMBLE</a></span></dt><dt><span 
class="sect1"><a href="#fdl-section1">1. APPLICABILITY AND 
DEFINITIONS</a></span></dt><dt><span class="sect1"><a href="#fdl-section2">2. 
VERBATIM COPYING</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section3">3. COPYING IN QUANTITY</a></span></dt><dt><span 
class="sect1"><a href="#fdl-section4">4. MODIFICATIONS</a></span></dt><dt><span 
class="sect1"><a href="#fdl-section5">5. COMBINING 
DOCUMENTS</a></span></dt><dt><span class="sect1"><a href="#fdl-section6">6. 
COLLECTIONS OF DOCUMENTS</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section7">7. AGGREGATION WITH INDEPENDENT 
WORKS</a></span></dt><dt><span class="sect1"><a href="#fdl-section8">8. 
TRANSLATION</a></span></dt><dt><span class="sect1"><a href="#fdl-section9">9. 
TERMINATION</a></span></dt><dt><span class="sect1"><a href="#fdl-section10">10. 
FUTURE REVISIONS OF THIS LICENSE</a></span></dt><dt><span class="sect1"><a 
href="#fdl-using">Addendum</a></span></dt></dl></dd></dl></div><a 
class="indexterm" name="id2596580"></a><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="introduction"></a>Introduction</h2></div></div></div><p>
+        In this document, the term 'ActionScript class' refers to the
+        C++ class which is instantiated by Gnash when some ActionScript
+        code instantiates a corresponding class.  The C++ class
+        stores instance data and implements the methods which are 
+        called on the object in the ActionScript code.
+      </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="overview"></a>Object Creation 
Overview</h3></div></div></div><p>
+            When Gnash starts, the <span 
class="emphasis"><em>class_init()</em></span> method 
+            for each ActionScript class (listed in Global.cpp) is called.
+            This method constructs a prototype, which is implemented as an
+            <span class="emphasis"><em>as_object</em></span>.  In addition, 
the method
+            registers the constructor to be used for future object creation,
+            and attaches methods and properties to the prototype.
+          </p><p>
+            When a new object is needed, instance data is added to
+            the methods and properties inherited from the prototype.
+          </p></div></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="newclass"></a>Adding New ActionScript Class</h2></div></div></div><p>
+        Adding a new ActionScript class is relatively simple, but the
+        process is complicated by the fact that the interface has evolved
+        over time and the current code base represents several different
+        formats.  This document describes the current interface.  The
+        Boolean class should be considered the authoritative example of
+        a modern ActionScript class.
+      </p><p>
+        ActionScript classes contain a header file and a C++
+        implementation.  The name is usually the name of the
+        class as it is called in the ActionScript specifications;
+        for instance <span class="emphasis"><em>Boolean.cpp</em></span> for 
the Boolean class.
+      </p><p> 
+        In the CVS source tree, there is a utility file named
+        <span class="emphasis"><em>gen-asclass.sh</em></span> which can be 
used to
+        create the header file and a C++ source file stub for
+        an ActionScript class.  
+      </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="prototype"></a>Prototype</h3></div></div></div><p>
+          In ActionScript, a prototype is a base object which contains
+          all the methods that an instantiated object will contain.
+          In short, it contains every part of the class except for
+          the portions dealing with the storage of instance data.
+       </p><p>
+          In Gnash, the prototype of an ActionScript object is 
+          implemented as an <span class="emphasis"><em>as_object</em></span>.
+          At startup, the methods and properties of the ActionScript class
+          are attached to the <span 
class="emphasis"><em>as_object</em></span>.  The
+          following example demonstrates how methods can be attached:
+         </p><pre class="programlisting">
+            static void
+            attachBooleanInterface(as_object&amp; o) 
+            {
+                o.init_member("toString", new 
builtin_function(boolean_tostring));
+                o.init_member("valueOf", new 
builtin_function(boolean_valueof));
+            }
+         </pre><p>
+          This code was generated using <span 
class="emphasis"><em>gen-asclass.sh</em></span>.
+          Typically, you will need to customize the attach method to include
+          any new methods you add to the class.
+       </p><p>
+          Static properties can also be added to the ActionScript prototype
+          (<a class="link" href="#properties" title="Dynamic 
Properties">dynamic properties</a> 
+          are addressed later).  They are attached in a similar way:
+          </p><pre class="programlisting">
+           o.init_member("myProperty", as_value("HelloWorld"));
+         </pre><p>
+       </p><p>
+          Properties which have been added in this manner can be
+          directly accessed in ActionScript code without a function
+          call, as this piece of ActionScript code compiled by Ming's
+          <span class="emphasis"><em>makeswf</em></span> compiler demonstrates:
+           </p><pre class="programlisting">
+             // Get the value of the myProperty property
+             if (node.myProperty == "HelloWorld") {
+                 trace("MATCHED");
+             }
+           </pre><p>
+       </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a 
name="declaration"></a>Declaration</h3></div></div></div><p>
+          A new class should derive from <span 
class="emphasis"><em>as_object</em></span>,
+          which is the base class of every ActionScript object in Gnash.
+          The class declaration will also be generated when you use
+          <span class="emphasis"><em>gen-asclass.sh</em></span>.
+       </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a 
name="instantiation"></a>Instantiation</h3></div></div></div><p>
+          The class should contain an init method; this is included
+          in the stub when <span 
class="emphasis"><em>gen-asclass.sh</em></span> is
+          used.
+       </p><p>
+          The init method should be called in the constructor in
+          <span class="emphasis"><em>Global.cpp</em></span>, where all other 
ActionScript
+          classes are similarly referenced.
+       </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a 
name="methods"></a>Methods</h3></div></div></div><p>
+          Every method you implement and 
+          <a class="link" href="#prototype" title="Prototype">attach</a> will 
receive an
+          <span class="emphasis"><em>fn_call</em></span> data structure as an 
argument when it is called.
+        </p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 
class="title"><a name="arguments"></a>Accessing 
Arguments</h4></div></div></div><p>
+            The arguments stored in <span 
class="emphasis"><em>fn_call</em></span>
+            should be accessed using <span 
class="emphasis"><em>arg()</em></span>.  For
+            instance, the first element can be popped with
+            <span class="emphasis"><em>fn.arg(0)</em></span>.
+         </p><p>
+            The element popped off the stack is an 
+            <a class="link" href="#as_value" title="The as_value Object 
Type"><span class="emphasis"><em>as_value</em></span>
+            object</a>.
+          </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a name="return"></a>Returning a 
Value to ActionScript</h4></div></div></div><p>
+            The return value should be an
+            <a class="link" href="#as_value" title="The as_value Object 
Type"><span class="emphasis"><em>as_value</em></span> 
+            object</a>.  For example:
+            </p><pre class="programlisting">
+              return as_value('Goodbye, cruel world.');
+            </pre><p>
+          </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="additional_fn_call"></a>Additional <span 
class="emphasis"><em>fn_call</em></span> Members</h4></div></div></div><p>
+            There are two other useful members of the <span 
class="emphasis"><em>fn_call</em></span>
+            structure, namely <span class="emphasis"><em>this_ptr</em></span> 
and
+            <span class="emphasis"><em>nargs</em></span>.  The former points 
to the
+            class which is invoking this method, while the latter
+            is a count of the number of 
+            <a class="link" href="#arguments" title="Accessing 
Arguments">arguments in the stack</a>.
+         </p><p>
+            You may also see instances of the <span 
class="emphasis"><em>env</em></span>
+            pointer being used.   This is being deprecated.  Instances
+            which could be replaced with
+            <a class="link" href="#arguments" title="Accessing 
Arguments"><span class="emphasis"><em>arg()</em></span></a>
+            are already deprecated; other uses will be deprecated
+            in the near future.
+         </p><p>
+            Beyond the <span class="emphasis"><em><a class="link" 
href="#arguments" title="Accessing Arguments">arg()</a></em></span> method, 
there
+            is one method of note.  <span 
class="emphasis"><em>dump_args()</em></span>
+            can be used in debugging to output the entire argument
+            stack.
+         </p></div></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a name="properties"></a>Dynamic 
Properties</h3></div></div></div><p>
+          This section describes accessors to dynamic properties.
+          Read-only properties are described
+          in the <a class="link" href="#prototype" 
title="Prototype">prototype</a> section.
+        </p><p>
+          Dynamic properties are not created by the <span 
class="emphasis"><em>gen-asclass.sh</em></span> 
+          script.  Accessors should be written as
+          a single get/set method.  Previously this was done by
+          overriding <span class="emphasis"><em>get_member()</em></span> and
+          <span class="emphasis"><em>set_member()</em></span>, but this 
practice
+          is deprecated.  
+        </p><p> 
+          The accessor is written so that it sets the property
+          if it is called with an argument, and puts the property in
+          the <a class="link" href="#methods" title="Methods"><span 
class="emphasis"><em>fn_call</em></span></a>
+          <a class="link" href="#return" title="Returning a Value to 
ActionScript">result pointer</a>.  For instance:
+          </p><pre class="programlisting">
+            void
+            MyClass::myProperty_getset(const fn_call&amp; fn)
+            {
+
+                boost::intrusive_ptr&lt;MyClass&gt; ptr = 
ensureType&lt;MyClass&gt;(fn.this_ptr);
+
+                // setter
+                if ( fn.nargs &gt; 0 )
+                {
+                    bool h = fn.arg(0).to_bool();
+                    ptr-&gt;MyMethod(h);
+                    return;
+                }
+
+                // getter
+                bool h = ptr-&gt;MyMethod();
+                fn.result-&gt;set_bool(h);
+            }
+          </pre><p>
+        </p><p> 
+          It has not yet been decided whether properties should be set
+          in the <a class="link" href="#prototype" title="Prototype">exported 
interface</a> 
+          or attached to instances of the class.  A property is attached
+          in the following manner:
+          </p><pre class="programlisting">
+            boost::intrusive_ptr&lt;builtin_function&gt; gettersetter;
+            gettersetter = new 
builtin_function(&amp;MyClass::myProperty_getset, NULL);
+            o.init_property("myProperty", *gettersetter, *gettersetter);
+          </pre><p>
+        </p></div></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="as_value"></a>The <span class="emphasis"><em>as_value</em></span> Object 
Type</h2></div></div></div><p>
+        The <span class="emphasis"><em>as_value</em></span> class is used 
throughout
+        the interpreter to create generic objects to hold data.
+      </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="data_types"></a>Data Types</h3></div></div></div><p>
+          The following data types are supported:
+          <span class="emphasis"><em>NULLTYPE</em></span>,
+          <span class="emphasis"><em>BOOLEAN</em></span>, <span 
class="emphasis"><em>STRING</em></span>,
+          <span class="emphasis"><em>NUMBER</em></span>, <span 
class="emphasis"><em>OBJECT</em></span>,
+          <span class="emphasis"><em>AS_FUNCTION</em></span>, and 
+          <span class="emphasis"><em>MOVIECLIP</em></span> (sprite).  
+          The type <span class="emphasis"><em>C_FUNCTION</em></span> is being 
deprecated.
+        </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a 
name="is_methods"></a>Determining the Type</h3></div></div></div><p>
+          Several methods allow you to determine if a value stored in
+          <span class="emphasis"><em>as_value</em></span> is of a specific 
type.  These
+          follow the form of <span class="emphasis"><em>is_TYPE</em></span>, 
for example
+          <span class="emphasis"><em>is_as_function()</em></span> and 
+          <span class="emphasis"><em>is_number()</em></span>.  In general, the 
type names
+          match the <a class="link" href="#data_types" title="Data Types">data 
types</a> listed
+          above, with the exception of the type <span 
class="emphasis"><em>MOVIECLIP</em></span>
+          which has a method <span 
class="emphasis"><em>is_sprite()</em></span>.
+        </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a name="to_methods"></a>Fetching 
the Value</h3></div></div></div><p>
+          Another set of methods will return a representation of
+          the value as a particular type.  They follow the
+          <span class="emphasis"><em>to_TYPE</em></span> naming convention.  
Examples
+          are <span class="emphasis"><em>to_number()</em></span> and
+          <span class="emphasis"><em>to_bool()</em></span>.  The type names 
are as 
+          <a class="link" href="#data_types" title="Data Types">listed</a> 
earlier, except for
+          <span class="emphasis"><em>MOVIECLIP</em></span>, which uses 
+          <span class="emphasis"><em>to_sprite()</em></span>.
+        </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a name="set_methods"></a>Setting 
the Value and Type</h3></div></div></div><p>
+          Finally, there is the <span 
class="emphasis"><em>set_TYPE</em></span> series
+          of methods.  They change the type to the type specified in
+          the method name, and set the value to the one given as an
+          argument.  It is also possible to accomplish the same thing
+          with the <span class="emphasis"><em>=</em></span> operator.  Again, 
type names
+          match those <a class="link" href="#data_types" title="Data 
Types">named earlier</a>,
+          except in the case of <span 
class="emphasis"><em>MOVIECLASS</em></span>.  Its
+          method is called <span class="emphasis"><em>set_sprite()</em></span>.
+        </p></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a 
name="further_as_value_reading"></a>Further Reading</h3></div></div></div><p>
+          Please refer to <span class="emphasis"><em>as_value.h</em></span> or 
the
+          Doxygen documentation (see 'Processing The Documentation'
+          in the Gnash manual for instructions on generating
+          documents with Doxygen) for more information
+          about which methods are available for the
+          <span class="emphasis"><em>as_value</em></span> object.
+        </p></div></div><div class="appendix" lang="en"><h2 class="title" 
style="clear: both"><a name="fdl"></a>A. GNU Free Documentation 
License</h2><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a name="fdl-preamble"></a>0. 
PREAMBLE</h2></div></div></div><p>
+      The purpose of this License is to make a manual, textbook, or
+      other written document "free" in the sense of
+      freedom: to assure everyone the effective freedom to copy and
+      redistribute it, with or without modifying it, either
+      commercially or non-commercially. Secondarily, this License
+      preserves for the author and publisher a way to get credit for
+      their work, while not being considered responsible for
+      modifications made by others.
+    </p><p>
+      This License is a kind of "copyleft", which means
+      that derivative works of the document must themselves be free in
+      the same sense. It complements the GNU General Public License,
+      which is a copyleft license designed for free software.
+    </p><p>
+      We have designed this License in order to use it for manuals for
+      free software, because free software needs free documentation: a
+      free program should come with manuals providing the same
+      freedoms that the software does. But this License is not limited
+      to software manuals; it can be used for any textual work,
+      regardless of subject matter or whether it is published as a
+      printed book. We recommend this License principally for works
+      whose purpose is instruction or reference.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section1"></a>1. APPLICABILITY AND 
DEFINITIONS</h2></div></div></div><p><a name="fdl-document"></a>
+      This License applies to any manual or other work that contains a
+      notice placed by the copyright holder saying it can be
+      distributed under the terms of this License. The
+      "Document", below, refers to any such manual or
+      work. Any member of the public is a licensee, and is addressed
+      as "you".
+    </p><p><a name="fdl-modified"></a>
+      A "Modified Version" of the Document means any work
+      containing the Document or a portion of it, either copied
+      verbatim, or with modifications and/or translated into another
+      language.
+    </p><p><a name="fdl-secondary"></a>
+      A "Secondary Section" is a named appendix or a
+      front-matter section of the <a class="link" 
href="#fdl-document">Document</a> that deals exclusively
+      with the relationship of the publishers or authors of the
+      Document to the Document's overall subject (or to related
+      matters) and contains nothing that could fall directly within
+      that overall subject. (For example, if the Document is in part a
+      textbook of mathematics, a Secondary Section may not explain any
+      mathematics.)  The relationship could be a matter of historical
+      connection with the subject or with related matters, or of
+      legal, commercial, philosophical, ethical or political position
+      regarding them.
+    </p><p><a name="fdl-invariant"></a>
+      The "Invariant Sections" are certain <a class="link" 
href="#fdl-secondary"> Secondary Sections</a> whose titles
+      are designated, as being those of Invariant Sections, in the
+      notice that says that the <a class="link" 
href="#fdl-document">Document</a> is released under this
+      License.
+    </p><p><a name="fdl-cover-texts"></a>
+      The "Cover Texts" are certain short passages of
+      text that are listed, as Front-Cover Texts or Back-Cover Texts,
+      in the notice that says that the <a class="link" 
href="#fdl-document">Document</a> is released under this
+      License.
+    </p><p><a name="fdl-transparent"></a>
+      A "Transparent" copy of the <a class="link" href="#fdl-document"> 
Document</a> means a machine-readable
+      copy, represented in a format whose specification is available
+      to the general public, whose contents can be viewed and edited
+      directly and straightforwardly with generic text editors or (for
+      images composed of pixels) generic paint programs or (for
+      drawings) some widely available drawing editor, and that is
+      suitable for input to text formatters or for automatic
+      translation to a variety of formats suitable for input to text
+      formatters. A copy made in an otherwise Transparent file format
+      whose markup has been designed to thwart or discourage
+      subsequent modification by readers is not Transparent.  A copy
+      that is not "Transparent" is called "Opaque".
+    </p><p>
+      Examples of suitable formats for Transparent copies include
+      plain ASCII without markup, Texinfo input format, LaTeX input
+      format, SGML or XML using a publicly available DTD, and
+      standard-conforming simple HTML designed for human
+      modification. Opaque formats include PostScript, PDF,
+      proprietary formats that can be read and edited only by
+      proprietary word processors, SGML or XML for which the DTD
+      and/or processing tools are not generally available, and the
+      machine-generated HTML produced by some word processors for
+      output purposes only.
+    </p><p><a name="fdl-title-page"></a>
+      The "Title Page" means, for a printed book, the
+      title page itself, plus such following pages as are needed to
+      hold, legibly, the material this License requires to appear in
+      the title page. For works in formats which do not have any title
+      page as such, "Title Page" means the text near the
+      most prominent appearance of the work's title, preceding the
+      beginning of the body of the text.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section2"></a>2. VERBATIM COPYING</h2></div></div></div><p>
+      You may copy and distribute the <a class="link" 
href="#fdl-document">Document</a> in any medium, either
+      commercially or noncommercially, provided that this License, the
+      copyright notices, and the license notice saying this License
+      applies to the Document are reproduced in all copies, and that
+      you add no other conditions whatsoever to those of this
+      License. You may not use technical measures to obstruct or
+      control the reading or further copying of the copies you make or
+      distribute. However, you may accept compensation in exchange for
+      copies. If you distribute a large enough number of copies you
+      must also follow the conditions in <a class="link" href="#fdl-section3" 
title="3. COPYING IN QUANTITY">section 3</a>.
+    </p><p>
+      You may also lend copies, under the same conditions stated
+      above, and you may publicly display copies.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section3"></a>3. COPYING IN QUANTITY</h2></div></div></div><p>
+      If you publish printed copies of the <a class="link" 
href="#fdl-document">Document</a> numbering more than 100,
+      and the Document's license notice requires <a class="link" 
href="#fdl-cover-texts">Cover Texts</a>, you must enclose
+      the copies in covers that carry, clearly and legibly, all these
+      Cover Texts: Front-Cover Texts on the front cover, and
+      Back-Cover Texts on the back cover. Both covers must also
+      clearly and legibly identify you as the publisher of these
+      copies. The front cover must present the full title with all
+      words of the title equally prominent and visible. You may add
+      other material on the covers in addition. Copying with changes
+      limited to the covers, as long as they preserve the title of the
+      <a class="link" href="#fdl-document">Document</a> and satisfy these
+      conditions, can be treated as verbatim copying in other
+      respects.
+    </p><p>
+      If the required texts for either cover are too voluminous to fit
+      legibly, you should put the first ones listed (as many as fit
+      reasonably) on the actual cover, and continue the rest onto
+      adjacent pages.
+    </p><p>
+      If you publish or distribute <a class="link" 
href="#fdl-transparent">Opaque</a> copies of the <a class="link" 
href="#fdl-document">Document</a> numbering more than 100,
+      you must either include a machine-readable <a class="link" 
href="#fdl-transparent">Transparent</a> copy along with
+      each Opaque copy, or state in or with each Opaque copy a
+      publicly-accessible computer-network location containing a
+      complete Transparent copy of the Document, free of added
+      material, which the general network-using public has access to
+      download anonymously at no charge using public-standard network
+      protocols. If you use the latter option, you must take
+      reasonably prudent steps, when you begin distribution of Opaque
+      copies in quantity, to ensure that this Transparent copy will
+      remain thus accessible at the stated location until at least one
+      year after the last time you distribute an Opaque copy (directly
+      or through your agents or retailers) of that edition to the
+      public.
+    </p><p>
+      It is requested, but not required, that you contact the authors
+      of the <a class="link" href="#fdl-document">Document</a> well before
+      redistributing any large number of copies, to give them a chance
+      to provide you with an updated version of the Document.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section4"></a>4. MODIFICATIONS</h2></div></div></div><p>
+      You may copy and distribute a <a class="link" 
href="#fdl-modified">Modified Version</a> of the <a class="link" 
href="#fdl-document">Document</a> under the conditions of
+      sections <a class="link" href="#fdl-section2" title="2. VERBATIM 
COPYING">2</a> and <a class="link" href="#fdl-section3" title="3. COPYING IN 
QUANTITY">3</a> above, provided that you release
+      the Modified Version under precisely this License, with the
+      Modified Version filling the role of the Document, thus
+      licensing distribution and modification of the Modified Version
+      to whoever possesses a copy of it. In addition, you must do
+      these things in the Modified Version:
+    </p><div class="itemizedlist"><ul type="opencircle"><li 
style="list-style-type: circle"><p><b>A. </b>
+           Use in the <a class="link" href="#fdl-title-page">Title
+           Page</a> (and on the covers, if any) a title distinct
+           from that of the <a class="link" href="#fdl-document">Document</a>, 
and from those of
+           previous versions (which should, if there were any, be
+           listed in the History section of the Document). You may
+           use the same title as a previous version if the original
+           publisher of that version gives permission.
+         </p></li><li style="list-style-type: circle"><p><b>B. </b>
+           List on the <a class="link" href="#fdl-title-page">Title
+           Page</a>, as authors, one or more persons or entities
+           responsible for authorship of the modifications in the
+           <a class="link" href="#fdl-modified">Modified Version</a>,
+           together with at least five of the principal authors of
+           the <a class="link" href="#fdl-document">Document</a> (all of
+           its principal authors, if it has less than five).
+         </p></li><li style="list-style-type: circle"><p><b>C. </b>
+           State on the <a class="link" href="#fdl-title-page">Title
+           Page</a> the name of the publisher of the <a class="link" 
href="#fdl-modified">Modified Version</a>, as the
+           publisher.
+         </p></li><li style="list-style-type: circle"><p><b>D. </b>
+           Preserve all the copyright notices of the <a class="link" 
href="#fdl-document">Document</a>.
+         </p></li><li style="list-style-type: circle"><p><b>E. </b>
+           Add an appropriate copyright notice for your modifications
+           adjacent to the other copyright notices.
+         </p></li><li style="list-style-type: circle"><p><b>F. </b>
+           Include, immediately after the copyright notices, a
+           license notice giving the public permission to use the
+           <a class="link" href="#fdl-modified">Modified Version</a> under
+           the terms of this License, in the form shown in the
+           Addendum below.
+         </p></li><li style="list-style-type: circle"><p><b>G. </b>
+           Preserve in that license notice the full lists of <a class="link" 
href="#fdl-invariant"> Invariant Sections</a> and
+           required <a class="link" href="#fdl-cover-texts">Cover
+           Texts</a> given in the <a class="link" 
href="#fdl-document">Document's</a> license notice.
+         </p></li><li style="list-style-type: circle"><p><b>H. </b>
+           Include an unaltered copy of this License.
+         </p></li><li style="list-style-type: circle"><p><b>I. </b>
+           Preserve the section entitled "History", and
+           its title, and add to it an item stating at least the
+           title, year, new authors, and publisher of the <a class="link" 
href="#fdl-modified">Modified Version </a>as given on
+           the <a class="link" href="#fdl-title-page">Title Page</a>.  If
+           there is no section entitled "History" in the
+           <a class="link" href="#fdl-document">Document</a>, create one
+           stating the title, year, authors, and publisher of the
+           Document as given on its Title Page, then add an item
+           describing the Modified Version as stated in the previous
+           sentence.
+         </p></li><li style="list-style-type: circle"><p><b>J. </b>
+           Preserve the network location, if any, given in the <a class="link" 
href="#fdl-document">Document</a> for public access
+           to a <a class="link" href="#fdl-transparent">Transparent</a>
+           copy of the Document, and likewise the network locations
+           given in the Document for previous versions it was based
+           on. These may be placed in the "History"
+           section.  You may omit a network location for a work that
+           was published at least four years before the Document
+           itself, or if the original publisher of the version it
+           refers to gives permission.
+         </p></li><li style="list-style-type: circle"><p><b>K. </b>
+           In any section entitled "Acknowledgements" or
+           "Dedications", preserve the section's title,
+           and preserve in the section all the substance and tone of
+           each of the contributor acknowledgements and/or
+           dedications given therein.
+         </p></li><li style="list-style-type: circle"><p><b>L. </b>
+           Preserve all the <a class="link" href="#fdl-invariant">Invariant
+           Sections</a> of the <a class="link" 
href="#fdl-document">Document</a>, unaltered in their
+           text and in their titles.  Section numbers or the
+           equivalent are not considered part of the section titles.
+         </p></li><li style="list-style-type: circle"><p><b>M. </b>
+           Delete any section entitled
+           "Endorsements". Such a section may not be
+           included in the <a class="link" href="#fdl-modified">Modified
+           Version</a>.
+         </p></li><li style="list-style-type: circle"><p><b>N. </b>
+           Do not retitle any existing section as
+           "Endorsements" or to conflict in title with
+           any <a class="link" href="#fdl-invariant">Invariant
+           Section</a>.
+         </p></li></ul></div><p>
+      If the <a class="link" href="#fdl-modified">Modified Version</a>
+      includes new front-matter sections or appendices that qualify as
+      <a class="link" href="#fdl-secondary">Secondary Sections</a> and
+      contain no material copied from the Document, you may at your
+      option designate some or all of these sections as invariant. To
+      do this, add their titles to the list of <a class="link" 
href="#fdl-invariant">Invariant Sections</a> in the
+      Modified Version's license notice.  These titles must be
+      distinct from any other section titles.
+    </p><p>
+      You may add a section entitled "Endorsements",
+      provided it contains nothing but endorsements of your <a class="link" 
href="#fdl-modified">Modified Version</a> by various
+      parties--for example, statements of peer review or that the text
+      has been approved by an organization as the authoritative
+      definition of a standard.
+    </p><p>
+      You may add a passage of up to five words as a <a class="link" 
href="#fdl-cover-texts">Front-Cover Text</a>, and a passage
+      of up to 25 words as a <a class="link" 
href="#fdl-cover-texts">Back-Cover Text</a>, to the end of
+      the list of <a class="link" href="#fdl-cover-texts">Cover Texts</a>
+      in the <a class="link" href="#fdl-modified">Modified Version</a>.
+      Only one passage of Front-Cover Text and one of Back-Cover Text
+      may be added by (or through arrangements made by) any one
+      entity. If the <a class="link" href="#fdl-document">Document</a>
+      already includes a cover text for the same cover, previously
+      added by you or by arrangement made by the same entity you are
+      acting on behalf of, you may not add another; but you may
+      replace the old one, on explicit permission from the previous
+      publisher that added the old one.
+    </p><p>
+      The author(s) and publisher(s) of the <a class="link" 
href="#fdl-document">Document</a> do not by this License
+      give permission to use their names for publicity for or to
+      assert or imply endorsement of any <a class="link" 
href="#fdl-modified">Modified Version </a>.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section5"></a>5. COMBINING DOCUMENTS</h2></div></div></div><p>
+      You may combine the <a class="link" href="#fdl-document">Document</a>
+      with other documents released under this License, under the
+      terms defined in <a class="link" href="#fdl-section4" title="4. 
MODIFICATIONS">section 4</a>
+      above for modified versions, provided that you include in the
+      combination all of the <a class="link" href="#fdl-invariant">Invariant
+      Sections</a> of all of the original documents, unmodified,
+      and list them all as Invariant Sections of your combined work in
+      its license notice.
+    </p><p>
+      The combined work need only contain one copy of this License,
+      and multiple identical <a class="link" href="#fdl-invariant">Invariant
+      Sections</a> may be replaced with a single copy. If there are
+      multiple Invariant Sections with the same name but different
+      contents, make the title of each such section unique by adding
+      at the end of it, in parentheses, the name of the original
+      author or publisher of that section if known, or else a unique
+      number. Make the same adjustment to the section titles in the
+      list of Invariant Sections in the license notice of the combined
+      work.
+    </p><p>
+      In the combination, you must combine any sections entitled
+      "History" in the various original documents,
+      forming one section entitled "History"; likewise
+      combine any sections entitled "Acknowledgements",
+      and any sections entitled "Dedications".  You must
+      delete all sections entitled "Endorsements."
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section6"></a>6. COLLECTIONS OF DOCUMENTS</h2></div></div></div><p>
+      You may make a collection consisting of the <a class="link" 
href="#fdl-document">Document</a> and other documents
+      released under this License, and replace the individual copies
+      of this License in the various documents with a single copy that
+      is included in the collection, provided that you follow the
+      rules of this License for verbatim copying of each of the
+      documents in all other respects.
+    </p><p>
+      You may extract a single document from such a collection, and
+      distribute it individually under this License, provided you
+      insert a copy of this License into the extracted document, and
+      follow this License in all other respects regarding verbatim
+      copying of that document.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section7"></a>7. AGGREGATION WITH INDEPENDENT 
WORKS</h2></div></div></div><p>
+      A compilation of the <a class="link" href="#fdl-document">Document</a> 
or its derivatives with
+      other separate and independent documents or works, in or on a
+      volume of a storage or distribution medium, does not as a whole
+      count as a <a class="link" href="#fdl-modified">Modified Version</a>
+      of the Document, provided no compilation copyright is claimed
+      for the compilation.  Such a compilation is called an
+      "aggregate", and this License does not apply to the
+      other self-contained works thus compiled with the Document , on
+      account of their being thus compiled, if they are not themselves
+      derivative works of the Document.  If the <a class="link" 
href="#fdl-cover-texts">Cover Text</a> requirement of <a class="link" 
href="#fdl-section3" title="3. COPYING IN QUANTITY">section 3</a> is applicable 
to these
+      copies of the Document, then if the Document is less than one
+      quarter of the entire aggregate, the Document's Cover Texts may
+      be placed on covers that surround only the Document within the
+      aggregate. Otherwise they must appear on covers around the whole
+      aggregate.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section8"></a>8. TRANSLATION</h2></div></div></div><p>
+      Translation is considered a kind of modification, so you may
+      distribute translations of the <a class="link" 
href="#fdl-document">Document</a> under the terms of <a class="link" 
href="#fdl-section4" title="4. MODIFICATIONS">section 4</a>. Replacing <a 
class="link" href="#fdl-invariant"> Invariant Sections</a> with
+      translations requires special permission from their copyright
+      holders, but you may include translations of some or all
+      Invariant Sections in addition to the original versions of these
+      Invariant Sections. You may include a translation of this
+      License provided that you also include the original English
+      version of this License. In case of a disagreement between the
+      translation and the original English version of this License,
+      the original English version will prevail.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section9"></a>9. TERMINATION</h2></div></div></div><p>
+      You may not copy, modify, sublicense, or distribute the <a class="link" 
href="#fdl-document">Document</a> except as expressly
+      provided for under this License. Any other attempt to copy,
+      modify, sublicense or distribute the Document is void, and will
+      automatically terminate your rights under this License. However,
+      parties who have received copies, or rights, from you under this
+      License will not have their licenses terminated so long as such
+      parties remain in full compliance.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section10"></a>10. FUTURE REVISIONS OF THIS 
LICENSE</h2></div></div></div><p>
+      The <a class="ulink" href="http://www.gnu.org/fsf/fsf.html"; 
target="_top">Free Software
+      Foundation</a> may publish new, revised versions of the GNU
+      Free Documentation License from time to time. Such new versions
+      will be similar in spirit to the present version, but may differ
+      in detail to address new problems or concerns. See <a class="ulink" 
href="http://www.gnu.org/copyleft"; 
target="_top">http://www.gnu.org/copyleft/</a>.
+    </p><p>
+      Each version of the License is given a distinguishing version
+      number. If the <a class="link" href="#fdl-document">Document</a>
+      specifies that a particular numbered version of this License
+      "or any later version" applies to it, you have the
+      option of following the terms and conditions either of that
+      specified version or of any later version that has been
+      published (not as a draft) by the Free Software Foundation. If
+      the Document does not specify a version number of this License,
+      you may choose any version ever published (not as a draft) by
+      the Free Software Foundation.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-using"></a>Addendum</h2></div></div></div><p>
+      To use this License in a document you have written, include a copy of
+      the License in the document and put the following copyright and
+      license notices just after the title page:
+    </p><div class="blockquote"><blockquote class="blockquote"><p>
+       Copyright  YEAR YOUR NAME.
+      </p><p>
+       Permission is granted to copy, distribute and/or modify this
+       document under the terms of the GNU Free Documentation
+       License, Version 1.1 or any later version published by the
+       Free Software Foundation; with the <a class="link" 
href="#fdl-invariant">Invariant Sections</a> being LIST
+       THEIR TITLES, with the <a class="link" 
href="#fdl-cover-texts">Front-Cover Texts</a> being LIST,
+       and with the <a class="link" href="#fdl-cover-texts">Back-Cover
+       Texts</a> being LIST.  A copy of the license is included in
+       the section entitled "GNU Free Documentation
+       License".
+      </p></blockquote></div><p>
+      If you have no <a class="link" href="#fdl-invariant">Invariant
+      Sections</a>, write "with no Invariant Sections"
+      instead of saying which ones are invariant.  If you have no
+      <a class="link" href="#fdl-cover-texts">Front-Cover Texts</a>, write
+      "no Front-Cover Texts" instead of
+      "Front-Cover Texts being LIST"; likewise for <a class="link" 
href="#fdl-cover-texts">Back-Cover Texts</a>.
+    </p><p>
+      If your document contains nontrivial examples of program code,
+      we recommend releasing these examples in parallel under your
+      choice of free software license, such as the <a class="ulink" 
href="http://www.gnu.org/copyleft/gpl.html"; target="_top"> GNU General Public
+      License</a>, to permit their use in free software.
+    </p></div></div></div></body></html>

Index: packaging/doc/actionscript.info.in
===================================================================
RCS file: packaging/doc/actionscript.info.in
diff -N packaging/doc/actionscript.info.in
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ packaging/doc/actionscript.info.in  16 Feb 2008 17:51:05 -0000      1.1
@@ -0,0 +1,866 @@
+START-INFO-DIR-ENTRY
+This is actionscript.info, produced by makeinfo version 4.11 from 
actionscript.texi.
+
+* ActionScript Manual V0.2: (actionscript_manual_v0.2).
+                                                  [MISSING TEXT]
+END-INFO-DIR-ENTRY
+
+
+File: actionscript.info,  Node: Top,  Next: Introduction,  Up: (dir)
+
+ActionScript Manual V0.2
+************************
+
+* Menu:
+
+* Introduction::
+* Adding New ActionScript Class::
+* The as_value Object Type::
+* GNU Free Documentation License::
+
+--- The Detailed Node Listing ---
+
+Introduction
+
+* Object Creation Overview::
+
+Adding New ActionScript Class
+
+* Prototype::
+* Declaration::
+* Instantiation::
+* Methods::
+* Dynamic Properties::
+
+The as_value Object Type
+
+* Data Types::
+* Determining the Type::
+* Fetching the Value::
+* Setting the Value and Type::
+* Further Reading::
+
+GNU Free Documentation License
+
+* 0. PREAMBLE: 0_ PREAMBLE.
+* 1. APPLICABILITY AND DEFINITIONS: 1_ APPLICABILITY AND DEFINITIONS.
+* 2. VERBATIM COPYING: 2_ VERBATIM COPYING.
+* 3. COPYING IN QUANTITY: 3_ COPYING IN QUANTITY.
+* 4. MODIFICATIONS: 4_ MODIFICATIONS.
+* 5. COMBINING DOCUMENTS: 5_ COMBINING DOCUMENTS.
+* 6. COLLECTIONS OF DOCUMENTS: 6_ COLLECTIONS OF DOCUMENTS.
+* 7. AGGREGATION WITH INDEPENDENT WORKS: 7_ AGGREGATION WITH INDEPENDENT WORKS.
+* 8. TRANSLATION: 8_ TRANSLATION.
+* 9. TERMINATION: 9_ TERMINATION.
+* 10. FUTURE REVISIONS OF THIS LICENSE: 10_ FUTURE REVISIONS OF THIS LICENSE.
+* Addendum::
+
+
+File: actionscript.info,  Node: Introduction,  Next: Adding New ActionScript 
Class,  Prev: Top,  Up: Top
+
+1 Introduction
+**************
+
+In this document, the term 'ActionScript class' refers to the C++ class
+which is instantiated by Gnash when some ActionScript code instantiates
+a corresponding class.  The C++ class stores instance data and
+implements the methods which are called on the object in the
+ActionScript code.
+
+* Menu:
+
+* Object Creation Overview::
+
+
+File: actionscript.info,  Node: Object Creation Overview,  Up: Introduction
+
+1.1 Object Creation Overview
+============================
+
+When Gnash starts, the _class_init()_ method for each ActionScript
+class (listed in Global.cpp) is called.  This method constructs a
+prototype, which is implemented as an _as_object_.  In addition, the
+method registers the constructor to be used for future object creation,
+and attaches methods and properties to the prototype.
+
+   When a new object is needed, instance data is added to the methods
+and properties inherited from the prototype.
+
+
+File: actionscript.info,  Node: Adding New ActionScript Class,  Next: The 
as_value Object Type,  Prev: Introduction,  Up: Top
+
+2 Adding New ActionScript Class
+*******************************
+
+Adding a new ActionScript class is relatively simple, but the process
+is complicated by the fact that the interface has evolved over time and
+the current code base represents several different formats.  This
+document describes the current interface.  The Boolean class should be
+considered the authoritative example of a modern ActionScript class.
+
+   ActionScript classes contain a header file and a C++ implementation.
+The name is usually the name of the class as it is called in the
+ActionScript specifications; for instance _Boolean.cpp_ for the Boolean
+class.
+
+   In the CVS source tree, there is a utility file named
+_gen-asclass.sh_ which can be used to create the header file and a C++
+source file stub for an ActionScript class.
+
+* Menu:
+
+* Prototype::
+* Declaration::
+* Instantiation::
+* Methods::
+* Dynamic Properties::
+
+
+File: actionscript.info,  Node: Prototype,  Next: Declaration,  Up: Adding New 
ActionScript Class
+
+2.1 Prototype
+=============
+
+In ActionScript, a prototype is a base object which contains all the
+methods that an instantiated object will contain.  In short, it
+contains every part of the class except for the portions dealing with
+the storage of instance data.
+
+   In Gnash, the prototype of an ActionScript object is implemented as
+an _as_object_.  At startup, the methods and properties of the
+ActionScript class are attached to the _as_object_.  The following
+example demonstrates how methods can be attached:
+
+
+                 static void
+                 attachBooleanInterface(as_object& o)
+                 {
+                     o.init_member("toString", new 
builtin_function(boolean_tostring));
+                     o.init_member("valueOf", new 
builtin_function(boolean_valueof));
+                 }
+
+This code was generated using _gen-asclass.sh_.  Typically, you will
+need to customize the attach method to include any new methods you add
+to the class.
+
+   Static properties can also be added to the ActionScript prototype
+(dynamic properties (*note Dynamic Properties::) are addressed later).
+They are attached in a similar way:
+
+
+           o.init_member("myProperty", as_value("HelloWorld"));
+
+   Properties which have been added in this manner can be directly
+accessed in ActionScript code without a function call, as this piece of
+ActionScript code compiled by Ming's _makeswf_ compiler demonstrates:
+
+
+             // Get the value of the myProperty property
+             if (node.myProperty == "HelloWorld") {
+                 trace("MATCHED");
+             }
+
+
+File: actionscript.info,  Node: Declaration,  Next: Instantiation,  Prev: 
Prototype,  Up: Adding New ActionScript Class
+
+2.2 Declaration
+===============
+
+A new class should derive from _as_object_, which is the base class of
+every ActionScript object in Gnash.  The class declaration will also be
+generated when you use _gen-asclass.sh_.
+
+
+File: actionscript.info,  Node: Instantiation,  Next: Methods,  Prev: 
Declaration,  Up: Adding New ActionScript Class
+
+2.3 Instantiation
+=================
+
+The class should contain an init method; this is included in the stub
+when _gen-asclass.sh_ is used.
+
+   The init method should be called in the constructor in _Global.cpp_,
+where all other ActionScript classes are similarly referenced.
+
+
+File: actionscript.info,  Node: Methods,  Next: Dynamic Properties,  Prev: 
Instantiation,  Up: Adding New ActionScript Class
+
+2.4 Methods
+===========
+
+Every method you implement and attach (*note Prototype::) will receive
+an _fn_call_ data structure as an argument when it is called.
+
+* Menu:
+
+* Accessing Arguments::
+* Returning a Value to ActionScript::
+* Additional fn_call Members::
+
+
+File: actionscript.info,  Node: Accessing Arguments,  Next: Returning a Value 
to ActionScript,  Up: Methods
+
+2.4.1 Accessing Arguments
+-------------------------
+
+The arguments stored in _fn_call_ should be accessed using _arg()_.  For
+instance, the first element can be popped with _fn.arg(0)_.
+
+   The element popped off the stack is an _as_value_ object (*note The
+as_value Object Type::).
+
+
+File: actionscript.info,  Node: Returning a Value to ActionScript,  Next: 
Additional fn_call Members,  Prev: Accessing Arguments,  Up: Methods
+
+2.4.2 Returning a Value to ActionScript
+---------------------------------------
+
+The return value should be an _as_value_ object (*note The as_value
+Object Type::).  For example:
+
+
+                   return as_value('Goodbye, cruel world.');
+
+
+File: actionscript.info,  Node: Additional fn_call Members,  Prev: Returning a 
Value to ActionScript,  Up: Methods
+
+2.4.3 Additional fn_call Members
+--------------------------------
+
+There are two other useful members of the _fn_call_ structure, namely
+_this_ptr_ and _nargs_.  The former points to the class which is
+invoking this method, while the latter is a count of the number of
+arguments in the stack (*note Accessing Arguments::).
+
+   You may also see instances of the _env_ pointer being used.   This
+is being deprecated.  Instances which could be replaced with _arg()_
+(*note Accessing Arguments::) are already deprecated; other uses will
+be deprecated in the near future.
+
+   Beyond the _arg() (*note Accessing Arguments::)_ method, there is
+one method of note.  _dump_args()_ can be used in debugging to output
+the entire argument stack.
+
+
+File: actionscript.info,  Node: Dynamic Properties,  Prev: Methods,  Up: 
Adding New ActionScript Class
+
+2.5 Dynamic Properties
+======================
+
+This section describes accessors to dynamic properties.  Read-only
+properties are described in the prototype (*note Prototype::) section.
+
+   Dynamic properties are not created by the _gen-asclass.sh_ script.
+Accessors should be written as a single get/set method.  Previously
+this was done by overriding _get_member()_ and _set_member()_, but this
+practice is deprecated.
+
+   The accessor is written so that it sets the property if it is called
+with an argument, and puts the property in the _fn_call_ (*note
+Methods::) result pointer (*note Returning a Value to ActionScript::).
+For instance:
+
+
+                 void
+                 MyClass::myProperty_getset(const fn_call& fn)
+                 {
+
+                     boost::intrusive_ptr<MyClass> ptr = 
ensureType<MyClass>(fn.this_ptr);
+
+                     // setter
+                     if ( fn.nargs > 0 )
+                     {
+                         bool h = fn.arg(0).to_bool();
+                         ptr->MyMethod(h);
+                         return;
+                     }
+
+                     // getter
+                     bool h = ptr->MyMethod();
+                     fn.result->set_bool(h);
+                 }
+
+   It has not yet been decided whether properties should be set in the
+exported interface (*note Prototype::) or attached to instances of the
+class.  A property is attached in the following manner:
+
+
+                 boost::intrusive_ptr<builtin_function> gettersetter;
+                 gettersetter = new 
builtin_function(&MyClass::myProperty_getset, NULL);
+                 o.init_property("myProperty", *gettersetter, *gettersetter);
+
+
+File: actionscript.info,  Node: The as_value Object Type,  Next: GNU Free 
Documentation License,  Prev: Adding New ActionScript Class,  Up: Top
+
+3 The as_value Object Type
+**************************
+
+The _as_value_ class is used throughout the interpreter to create
+generic objects to hold data.
+
+* Menu:
+
+* Data Types::
+* Determining the Type::
+* Fetching the Value::
+* Setting the Value and Type::
+* Further Reading::
+
+
+File: actionscript.info,  Node: Data Types,  Next: Determining the Type,  Up: 
The as_value Object Type
+
+3.1 Data Types
+==============
+
+The following data types are supported: _NULLTYPE_, _BOOLEAN_, _STRING_,
+_NUMBER_, _OBJECT_, _AS_FUNCTION_, and _MOVIECLIP_ (sprite).  The type
+_C_FUNCTION_ is being deprecated.
+
+
+File: actionscript.info,  Node: Determining the Type,  Next: Fetching the 
Value,  Prev: Data Types,  Up: The as_value Object Type
+
+3.2 Determining the Type
+========================
+
+Several methods allow you to determine if a value stored in _as_value_
+is of a specific type.  These follow the form of _is_TYPE_, for example
+_is_as_function()_ and _is_number()_.  In general, the type names match
+the data types (*note Data Types::) listed above, with the exception of
+the type _MOVIECLIP_ which has a method _is_sprite()_.
+
+
+File: actionscript.info,  Node: Fetching the Value,  Next: Setting the Value 
and Type,  Prev: Determining the Type,  Up: The as_value Object Type
+
+3.3 Fetching the Value
+======================
+
+Another set of methods will return a representation of the value as a
+particular type.  They follow the _to_TYPE_ naming convention.  Examples
+are _to_number()_ and _to_bool()_.  The type names are as listed (*note
+Data Types::) earlier, except for _MOVIECLIP_, which uses _to_sprite()_.
+
+
+File: actionscript.info,  Node: Setting the Value and Type,  Next: Further 
Reading,  Prev: Fetching the Value,  Up: The as_value Object Type
+
+3.4 Setting the Value and Type
+==============================
+
+Finally, there is the _set_TYPE_ series of methods.  They change the
+type to the type specified in the method name, and set the value to the
+one given as an argument.  It is also possible to accomplish the same
+thing with the _=_ operator.  Again, type names match those named
+earlier (*note Data Types::), except in the case of _MOVIECLASS_.  Its
+method is called _set_sprite()_.
+
+
+File: actionscript.info,  Node: Further Reading,  Prev: Setting the Value and 
Type,  Up: The as_value Object Type
+
+3.5 Further Reading
+===================
+
+Please refer to _as_value.h_ or the Doxygen documentation (see
+'Processing The Documentation' in the Gnash manual for instructions on
+generating documents with Doxygen) for more information about which
+methods are available for the _as_value_ object.
+
+
+File: actionscript.info,  Node: GNU Free Documentation License,  Prev: The 
as_value Object Type,  Up: Top
+
+Appendix A GNU Free Documentation License
+*****************************************
+
+* Menu:
+
+* 0. PREAMBLE: 0_ PREAMBLE.
+* 1. APPLICABILITY AND DEFINITIONS: 1_ APPLICABILITY AND DEFINITIONS.
+* 2. VERBATIM COPYING: 2_ VERBATIM COPYING.
+* 3. COPYING IN QUANTITY: 3_ COPYING IN QUANTITY.
+* 4. MODIFICATIONS: 4_ MODIFICATIONS.
+* 5. COMBINING DOCUMENTS: 5_ COMBINING DOCUMENTS.
+* 6. COLLECTIONS OF DOCUMENTS: 6_ COLLECTIONS OF DOCUMENTS.
+* 7. AGGREGATION WITH INDEPENDENT WORKS: 7_ AGGREGATION WITH INDEPENDENT WORKS.
+* 8. TRANSLATION: 8_ TRANSLATION.
+* 9. TERMINATION: 9_ TERMINATION.
+* 10. FUTURE REVISIONS OF THIS LICENSE: 10_ FUTURE REVISIONS OF THIS LICENSE.
+* Addendum::
+
+
+File: actionscript.info,  Node: 0_ PREAMBLE,  Next: 1_ APPLICABILITY AND 
DEFINITIONS,  Up: GNU Free Documentation License
+
+A.1 0. PREAMBLE
+===============
+
+The purpose of this License is to make a manual, textbook, or other
+written document "free" in the sense of freedom: to assure everyone the
+effective freedom to copy and redistribute it, with or without
+modifying it, either commercially or non-commercially. Secondarily,
+this License preserves for the author and publisher a way to get credit
+for their work, while not being considered responsible for
+modifications made by others.
+
+   This License is a kind of "copyleft", which means that derivative
+works of the document must themselves be free in the same sense. It
+complements the GNU General Public License, which is a copyleft license
+designed for free software.
+
+   We have designed this License in order to use it for manuals for
+free software, because free software needs free documentation: a free
+program should come with manuals providing the same freedoms that the
+software does. But this License is not limited to software manuals; it
+can be used for any textual work, regardless of subject matter or
+whether it is published as a printed book. We recommend this License
+principally for works whose purpose is instruction or reference.
+
+
+File: actionscript.info,  Node: 1_ APPLICABILITY AND DEFINITIONS,  Next: 2_ 
VERBATIM COPYING,  Prev: 0_ PREAMBLE,  Up: GNU Free Documentation License
+
+A.2 1. APPLICABILITY AND DEFINITIONS
+====================================
+
+This License applies to any manual or other work that contains a notice
+placed by the copyright holder saying it can be distributed under the
+terms of this License. The "Document", below, refers to any such manual
+or work. Any member of the public is a licensee, and is addressed as
+"you".
+
+   A "Modified Version" of the Document means any work containing the
+Document or a portion of it, either copied verbatim, or with
+modifications and/or translated into another language.
+
+   A "Secondary Section" is a named appendix or a front-matter section
+of the Document (*note fdl-document::) that deals exclusively with the
+relationship of the publishers or authors of the Document to the
+Document's overall subject (or to related matters) and contains nothing
+that could fall directly within that overall subject. (For example, if
+the Document is in part a textbook of mathematics, a Secondary Section
+may not explain any mathematics.)  The relationship could be a matter
+of historical connection with the subject or with related matters, or of
+legal, commercial, philosophical, ethical or political position
+regarding them.
+
+   The "Invariant Sections" are certain  Secondary Sections (*note
+fdl-secondary::) whose titles are designated, as being those of
+Invariant Sections, in the notice that says that the Document (*note
+fdl-document::) is released under this License.
+
+   The "Cover Texts" are certain short passages of text that are
+listed, as Front-Cover Texts or Back-Cover Texts, in the notice that
+says that the Document (*note fdl-document::) is released under this
+License.
+
+   A "Transparent" copy of the  Document (*note fdl-document::) means a
+machine-readable copy, represented in a format whose specification is
+available to the general public, whose contents can be viewed and edited
+directly and straightforwardly with generic text editors or (for images
+composed of pixels) generic paint programs or (for drawings) some
+widely available drawing editor, and that is suitable for input to text
+formatters or for automatic translation to a variety of formats
+suitable for input to text formatters. A copy made in an otherwise
+Transparent file format whose markup has been designed to thwart or
+discourage subsequent modification by readers is not Transparent.  A
+copy that is not "Transparent" is called "Opaque".
+
+   Examples of suitable formats for Transparent copies include plain
+ASCII without markup, Texinfo input format, LaTeX input format, SGML or
+XML using a publicly available DTD, and standard-conforming simple HTML
+designed for human modification. Opaque formats include PostScript, PDF,
+proprietary formats that can be read and edited only by proprietary
+word processors, SGML or XML for which the DTD and/or processing tools
+are not generally available, and the machine-generated HTML produced by
+some word processors for output purposes only.
+
+   The "Title Page" means, for a printed book, the title page itself,
+plus such following pages as are needed to hold, legibly, the material
+this License requires to appear in the title page. For works in formats
+which do not have any title page as such, "Title Page" means the text
+near the most prominent appearance of the work's title, preceding the
+beginning of the body of the text.
+
+
+File: actionscript.info,  Node: 2_ VERBATIM COPYING,  Next: 3_ COPYING IN 
QUANTITY,  Prev: 1_ APPLICABILITY AND DEFINITIONS,  Up: GNU Free Documentation 
License
+
+A.3 2. VERBATIM COPYING
+=======================
+
+You may copy and distribute the Document (*note fdl-document::) in any
+medium, either commercially or noncommercially, provided that this
+License, the copyright notices, and the license notice saying this
+License applies to the Document are reproduced in all copies, and that
+you add no other conditions whatsoever to those of this License. You
+may not use technical measures to obstruct or control the reading or
+further copying of the copies you make or distribute. However, you may
+accept compensation in exchange for copies. If you distribute a large
+enough number of copies you must also follow the conditions in section
+3 (*note 3_ COPYING IN QUANTITY::).
+
+   You may also lend copies, under the same conditions stated above,
+and you may publicly display copies.
+
+
+File: actionscript.info,  Node: 3_ COPYING IN QUANTITY,  Next: 4_ 
MODIFICATIONS,  Prev: 2_ VERBATIM COPYING,  Up: GNU Free Documentation License
+
+A.4 3. COPYING IN QUANTITY
+==========================
+
+If you publish printed copies of the Document (*note fdl-document::)
+numbering more than 100, and the Document's license notice requires
+Cover Texts (*note fdl-cover-texts::), you must enclose the copies in
+covers that carry, clearly and legibly, all these Cover Texts:
+Front-Cover Texts on the front cover, and Back-Cover Texts on the back
+cover. Both covers must also clearly and legibly identify you as the
+publisher of these copies. The front cover must present the full title
+with all words of the title equally prominent and visible. You may add
+other material on the covers in addition. Copying with changes limited
+to the covers, as long as they preserve the title of the Document
+(*note fdl-document::) and satisfy these conditions, can be treated as
+verbatim copying in other respects.
+
+   If the required texts for either cover are too voluminous to fit
+legibly, you should put the first ones listed (as many as fit
+reasonably) on the actual cover, and continue the rest onto adjacent
+pages.
+
+   If you publish or distribute Opaque (*note fdl-transparent::) copies
+of the Document (*note fdl-document::) numbering more than 100, you
+must either include a machine-readable Transparent (*note
+fdl-transparent::) copy along with each Opaque copy, or state in or
+with each Opaque copy a publicly-accessible computer-network location
+containing a complete Transparent copy of the Document, free of added
+material, which the general network-using public has access to download
+anonymously at no charge using public-standard network protocols. If
+you use the latter option, you must take reasonably prudent steps, when
+you begin distribution of Opaque copies in quantity, to ensure that
+this Transparent copy will remain thus accessible at the stated
+location until at least one year after the last time you distribute an
+Opaque copy (directly or through your agents or retailers) of that
+edition to the public.
+
+   It is requested, but not required, that you contact the authors of
+the Document (*note fdl-document::) well before redistributing any
+large number of copies, to give them a chance to provide you with an
+updated version of the Document.
+
+
+File: actionscript.info,  Node: 4_ MODIFICATIONS,  Next: 5_ COMBINING 
DOCUMENTS,  Prev: 3_ COPYING IN QUANTITY,  Up: GNU Free Documentation License
+
+A.5 4. MODIFICATIONS
+====================
+
+You may copy and distribute a Modified Version (*note fdl-modified::)
+of the Document (*note fdl-document::) under the conditions of sections
+2 (*note 2_ VERBATIM COPYING::) and 3 (*note 3_ COPYING IN QUANTITY::)
+above, provided that you release the Modified Version under precisely
+this License, with the Modified Version filling the role of the
+Document, thus licensing distribution and modification of the Modified
+Version to whoever possesses a copy of it. In addition, you must do
+these things in the Modified Version:
+
+   * *A. * Use in the Title Page (*note fdl-title-page::) (and on the
+     covers, if any) a title distinct from that of the Document (*note
+     fdl-document::), and from those of previous versions (which
+     should, if there were any, be listed in the History section of the
+     Document). You may use the same title as a previous version if the
+     original publisher of that version gives permission.
+
+   * *B. * List on the Title Page (*note fdl-title-page::), as authors,
+     one or more persons or entities responsible for authorship of the
+     modifications in the Modified Version (*note fdl-modified::),
+     together with at least five of the principal authors of the
+     Document (*note fdl-document::) (all of its principal authors, if
+     it has less than five).
+
+   * *C. * State on the Title Page (*note fdl-title-page::) the name of
+     the publisher of the Modified Version (*note fdl-modified::), as
+     the publisher.
+
+   * *D. * Preserve all the copyright notices of the Document (*note
+     fdl-document::).
+
+   * *E. * Add an appropriate copyright notice for your modifications
+     adjacent to the other copyright notices.
+
+   * *F. * Include, immediately after the copyright notices, a license
+     notice giving the public permission to use the Modified Version
+     (*note fdl-modified::) under the terms of this License, in the
+     form shown in the Addendum below.
+
+   * *G. * Preserve in that license notice the full lists of  Invariant
+     Sections (*note fdl-invariant::) and required Cover Texts (*note
+     fdl-cover-texts::) given in the Document's (*note fdl-document::)
+     license notice.
+
+   * *H. * Include an unaltered copy of this License.
+
+   * *I. * Preserve the section entitled "History", and its title, and
+     add to it an item stating at least the title, year, new authors,
+     and publisher of the Modified Version  (*note fdl-modified::)as
+     given on the Title Page (*note fdl-title-page::).  If there is no
+     section entitled "History" in the Document (*note fdl-document::),
+     create one stating the title, year, authors, and publisher of the
+     Document as given on its Title Page, then add an item describing
+     the Modified Version as stated in the previous sentence.
+
+   * *J. * Preserve the network location, if any, given in the Document
+     (*note fdl-document::) for public access to a Transparent (*note
+     fdl-transparent::) copy of the Document, and likewise the network
+     locations given in the Document for previous versions it was based
+     on. These may be placed in the "History" section.  You may omit a
+     network location for a work that was published at least four years
+     before the Document itself, or if the original publisher of the
+     version it refers to gives permission.
+
+   * *K. * In any section entitled "Acknowledgements" or "Dedications",
+     preserve the section's title, and preserve in the section all the
+     substance and tone of each of the contributor acknowledgements
+     and/or dedications given therein.
+
+   * *L. * Preserve all the Invariant Sections (*note fdl-invariant::)
+     of the Document (*note fdl-document::), unaltered in their text
+     and in their titles.  Section numbers or the equivalent are not
+     considered part of the section titles.
+
+   * *M. * Delete any section entitled "Endorsements". Such a section
+     may not be included in the Modified Version (*note fdl-modified::).
+
+   * *N. * Do not retitle any existing section as "Endorsements" or to
+     conflict in title with any Invariant Section (*note
+     fdl-invariant::).
+
+   If the Modified Version (*note fdl-modified::) includes new
+front-matter sections or appendices that qualify as Secondary Sections
+(*note fdl-secondary::) and contain no material copied from the
+Document, you may at your option designate some or all of these
+sections as invariant. To do this, add their titles to the list of
+Invariant Sections (*note fdl-invariant::) in the Modified Version's
+license notice.  These titles must be distinct from any other section
+titles.
+
+   You may add a section entitled "Endorsements", provided it contains
+nothing but endorsements of your Modified Version (*note
+fdl-modified::) by various parties-for example, statements of peer
+review or that the text has been approved by an organization as the
+authoritative definition of a standard.
+
+   You may add a passage of up to five words as a Front-Cover Text
+(*note fdl-cover-texts::), and a passage of up to 25 words as a
+Back-Cover Text (*note fdl-cover-texts::), to the end of the list of
+Cover Texts (*note fdl-cover-texts::) in the Modified Version (*note
+fdl-modified::).  Only one passage of Front-Cover Text and one of
+Back-Cover Text may be added by (or through arrangements made by) any
+one entity. If the Document (*note fdl-document::) already includes a
+cover text for the same cover, previously added by you or by
+arrangement made by the same entity you are acting on behalf of, you
+may not add another; but you may replace the old one, on explicit
+permission from the previous publisher that added the old one.
+
+   The author(s) and publisher(s) of the Document (*note
+fdl-document::) do not by this License give permission to use their
+names for publicity for or to assert or imply endorsement of any
+Modified Version  (*note fdl-modified::).
+
+
+File: actionscript.info,  Node: 5_ COMBINING DOCUMENTS,  Next: 6_ COLLECTIONS 
OF DOCUMENTS,  Prev: 4_ MODIFICATIONS,  Up: GNU Free Documentation License
+
+A.6 5. COMBINING DOCUMENTS
+==========================
+
+You may combine the Document (*note fdl-document::) with other
+documents released under this License, under the terms defined in
+section 4 (*note 4_ MODIFICATIONS::) above for modified versions,
+provided that you include in the combination all of the Invariant
+Sections (*note fdl-invariant::) of all of the original documents,
+unmodified, and list them all as Invariant Sections of your combined
+work in its license notice.
+
+   The combined work need only contain one copy of this License, and
+multiple identical Invariant Sections (*note fdl-invariant::) may be
+replaced with a single copy. If there are multiple Invariant Sections
+with the same name but different contents, make the title of each such
+section unique by adding at the end of it, in parentheses, the name of
+the original author or publisher of that section if known, or else a
+unique number. Make the same adjustment to the section titles in the
+list of Invariant Sections in the license notice of the combined work.
+
+   In the combination, you must combine any sections entitled "History"
+in the various original documents, forming one section entitled
+"History"; likewise combine any sections entitled "Acknowledgements",
+and any sections entitled "Dedications".  You must delete all sections
+entitled "Endorsements."
+
+
+File: actionscript.info,  Node: 6_ COLLECTIONS OF DOCUMENTS,  Next: 7_ 
AGGREGATION WITH INDEPENDENT WORKS,  Prev: 5_ COMBINING DOCUMENTS,  Up: GNU 
Free Documentation License
+
+A.7 6. COLLECTIONS OF DOCUMENTS
+===============================
+
+You may make a collection consisting of the Document (*note
+fdl-document::) and other documents released under this License, and
+replace the individual copies of this License in the various documents
+with a single copy that is included in the collection, provided that
+you follow the rules of this License for verbatim copying of each of the
+documents in all other respects.
+
+   You may extract a single document from such a collection, and
+distribute it individually under this License, provided you insert a
+copy of this License into the extracted document, and follow this
+License in all other respects regarding verbatim copying of that
+document.
+
+
+File: actionscript.info,  Node: 7_ AGGREGATION WITH INDEPENDENT WORKS,  Next: 
8_ TRANSLATION,  Prev: 6_ COLLECTIONS OF DOCUMENTS,  Up: GNU Free Documentation 
License
+
+A.8 7. AGGREGATION WITH INDEPENDENT WORKS
+=========================================
+
+A compilation of the Document (*note fdl-document::) or its derivatives
+with other separate and independent documents or works, in or on a
+volume of a storage or distribution medium, does not as a whole count
+as a Modified Version (*note fdl-modified::) of the Document, provided
+no compilation copyright is claimed for the compilation.  Such a
+compilation is called an "aggregate", and this License does not apply
+to the other self-contained works thus compiled with the Document , on
+account of their being thus compiled, if they are not themselves
+derivative works of the Document.  If the Cover Text (*note
+fdl-cover-texts::) requirement of section 3 (*note 3_ COPYING IN
+QUANTITY::) is applicable to these copies of the Document, then if the
+Document is less than one quarter of the entire aggregate, the
+Document's Cover Texts may be placed on covers that surround only the
+Document within the aggregate. Otherwise they must appear on covers
+around the whole aggregate.
+
+
+File: actionscript.info,  Node: 8_ TRANSLATION,  Next: 9_ TERMINATION,  Prev: 
7_ AGGREGATION WITH INDEPENDENT WORKS,  Up: GNU Free Documentation License
+
+A.9 8. TRANSLATION
+==================
+
+Translation is considered a kind of modification, so you may distribute
+translations of the Document (*note fdl-document::) under the terms of
+section 4 (*note 4_ MODIFICATIONS::). Replacing  Invariant Sections
+(*note fdl-invariant::) with translations requires special permission
+from their copyright holders, but you may include translations of some
+or all Invariant Sections in addition to the original versions of these
+Invariant Sections. You may include a translation of this License
+provided that you also include the original English version of this
+License. In case of a disagreement between the translation and the
+original English version of this License, the original English version
+will prevail.
+
+
+File: actionscript.info,  Node: 9_ TERMINATION,  Next: 10_ FUTURE REVISIONS OF 
THIS LICENSE,  Prev: 8_ TRANSLATION,  Up: GNU Free Documentation License
+
+A.10 9. TERMINATION
+===================
+
+You may not copy, modify, sublicense, or distribute the Document (*note
+fdl-document::) except as expressly provided for under this License.
+Any other attempt to copy, modify, sublicense or distribute the
+Document is void, and will automatically terminate your rights under
+this License. However, parties who have received copies, or rights,
+from you under this License will not have their licenses terminated so
+long as such parties remain in full compliance.
+
+
+File: actionscript.info,  Node: 10_ FUTURE REVISIONS OF THIS LICENSE,  Next: 
Addendum,  Prev: 9_ TERMINATION,  Up: GNU Free Documentation License
+
+A.11 10. FUTURE REVISIONS OF THIS LICENSE
+=========================================
+
+The Free Software Foundation (http://www.gnu.org/fsf/fsf.html) may
+publish new, revised versions of the GNU Free Documentation License
+from time to time. Such new versions will be similar in spirit to the
+present version, but may differ in detail to address new problems or
+concerns. See http://www.gnu.org/copyleft/
+(http://www.gnu.org/copyleft).
+
+   Each version of the License is given a distinguishing version
+number. If the Document (*note fdl-document::) specifies that a
+particular numbered version of this License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that specified version or of any later version
+that has been published (not as a draft) by the Free Software
+Foundation. If the Document does not specify a version number of this
+License, you may choose any version ever published (not as a draft) by
+the Free Software Foundation.
+
+
+File: actionscript.info,  Node: Addendum,  Prev: 10_ FUTURE REVISIONS OF THIS 
LICENSE,  Up: GNU Free Documentation License
+
+A.12 Addendum
+=============
+
+To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and license
+notices just after the title page:
+
+     Copyright  YEAR YOUR NAME.
+
+     Permission is granted to copy, distribute and/or modify this
+     document under the terms of the GNU Free Documentation License,
+     Version 1.1 or any later version published by the Free Software
+     Foundation; with the Invariant Sections (*note fdl-invariant::)
+     being LIST THEIR TITLES, with the Front-Cover Texts (*note
+     fdl-cover-texts::) being LIST, and with the Back-Cover Texts
+     (*note fdl-cover-texts::) being LIST.  A copy of the license is
+     included in the section entitled "GNU Free Documentation License".
+
+   If you have no Invariant Sections (*note fdl-invariant::), write
+"with no Invariant Sections" instead of saying which ones are
+invariant.  If you have no Front-Cover Texts (*note fdl-cover-texts::),
+write "no Front-Cover Texts" instead of "Front-Cover Texts being LIST";
+likewise for Back-Cover Texts (*note fdl-cover-texts::).
+
+   If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License
+(http://www.gnu.org/copyleft/gpl.html), to permit their use in free
+software.
+
+
+
+Tag Table:
+Node: Top248
+Node: Introduction1443
+Node: Object Creation Overview1909
+Node: Adding New ActionScript Class2492
+Node: Prototype3518
+Node: Declaration5195
+Node: Instantiation5536
+Node: Methods5932
+Node: Accessing Arguments6322
+Node: Returning a Value to ActionScript6717
+Node: Additional fn_call Members7106
+Node: Dynamic Properties7959
+Node: The as_value Object Type9737
+Node: Data Types10160
+Node: Determining the Type10476
+Node: Fetching the Value11003
+Node: Setting the Value and Type11488
+Node: Further Reading12077
+Node: GNU Free Documentation License12487
+Node: 0_ PREAMBLE13270
+Node: 1_ APPLICABILITY AND DEFINITIONS14579
+Ref: fdl-document14807
+Ref: fdl-modified15098
+Ref: fdl-secondary15285
+Ref: fdl-invariant15930
+Ref: fdl-cover-texts16179
+Ref: fdl-transparent16392
+Ref: fdl-title-page17682
+Node: 2_ VERBATIM COPYING18071
+Node: 3_ COPYING IN QUANTITY19054
+Node: 4_ MODIFICATIONS21414
+Node: 5_ COMBINING DOCUMENTS27477
+Node: 6_ COLLECTIONS OF DOCUMENTS28977
+Node: 7_ AGGREGATION WITH INDEPENDENT WORKS29871
+Node: 8_ TRANSLATION31102
+Node: 9_ TERMINATION32008
+Node: 10_ FUTURE REVISIONS OF THIS LICENSE32666
+Node: Addendum33809
+
+End Tag Table
+
+
+Local Variables:
+coding: US-ASCII
+End:

Index: packaging/doc/dumpshm.1.in
===================================================================
RCS file: packaging/doc/dumpshm.1.in
diff -N packaging/doc/dumpshm.1.in
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ packaging/doc/dumpshm.1.in  16 Feb 2008 17:51:06 -0000      1.1
@@ -0,0 +1,35 @@
+.\" -*- coding: us-ascii -*-
+.if \n(.g .ds T< \\FC
+.if \n(.g .ds T> \\F[\n[.fam]]
+.de URL
+\\$2 \(la\\$1\(ra\\$3
+..
+.if \n(.g .mso www.tmac
+.TH dumpshm 1 "13 February 2008"  
+.SH NAME
+dumpshm \- Gnash LocalConnection memory Dumper
+.SH Synopsis
+.nf
+
+dumpshm (options)... (file)...
+.fi
+.SH DESCRIPTION
+Dump information about the shared memory segment used by the
+LocalConnection ActionScript class. This memory segment is comprised
+of a header, and a collection of SWF AMF Objects, normally not
+viewable by the user.
+.TP 
+-h
+Print usage info.
+.TP 
+-i
+Find the key for an existing memory segment.
+.TP 
+-r
+Dump memory segment to the terminal.
+.TP 
+-c
+Dump memory segment to a disk file, segment.raw.
+.TP 
+-v
+Verbose output.

Index: packaging/doc/gnash.1.in
===================================================================
RCS file: packaging/doc/gnash.1.in
diff -N packaging/doc/gnash.1.in
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ packaging/doc/gnash.1.in    16 Feb 2008 17:51:06 -0000      1.1
@@ -0,0 +1,135 @@
+.\" -*- coding: us-ascii -*-
+.if \n(.g .ds T< \\FC
+.if \n(.g .ds T> \\F[\n[.fam]]
+.de URL
+\\$2 \(la\\$1\(ra\\$3
+..
+.if \n(.g .mso www.tmac
+.TH gnash 1 "13 February 2008"  
+.SH NAME
+gnash \- GNU Flash (SWF) Player
+.SH Synopsis
+.nf
+
+gnash (options)... (file)...
+.fi
+.SH DESCRIPTION
+Run the SWF movie player.
+.TP 
+-h
+Print usage info.
+.TP 
+-s factor
+Scale the movie up/down by the specified factor.
+.TP 
+-c
+Produce a core file instead of letting SDL trap it.
+.TP 
+-d num
+Number of milliseconds to delay in main loop.
+.TP 
+-a
+Enable ActionScript debugging.
+.TP 
+-x
+The XID of the parent window Gnash should use instead of
+creating a new one.
+.TP 
+-j
+Set the width of the window. This is only used when embedding
+the player into another window.
+.TP 
+-k
+Set the height of the window. This is only used when embedding
+the player into another window.
+.TP 
+-v
+Be verbose; i.e. print log messages to stdout.
+.TP 
+-va
+Be verbose about movie Actions.
+.TP 
+-vp
+Be verbose about parsing the movie.
+.TP 
+-ml bias
+Specify the texture LOD bias (float, default is -1).
+.TP 
+-p
+Run full speed (no sleep) and log frame rate.
+.TP 
+-g
+Start Gnash with a Flash debugger console so one can set
+break points or watchpoints.
+.TP 
+-w
+Write the gnash-dbg.log debug log to disk. By default the
+plugin writes its log in your home directory when using a
+launcher from GNOME or KDE.
+.TP 
+-1
+Play once; exit when/if movie reaches the last frame.
+.TP 
+-r [0|1|2]
+0 disables rendering and sound (good for batch tests).
+
+1 enables rendering and sound (default setting).
+
+2 enables rendering and disables sound.
+.TP 
+-t sec
+Timeout and exit after the specified number of seconds.
+.TP 
+-u
+Set "real" url of the movie (useful for downloaded movies).
+.TP 
+-U
+Set "base" url for this run (used to resolve relative urls,
+defaults to movie url)
+.TP 
+-P
+Set parameter (ie. "FlashVars=A=1&b=2")
+.TP 
+-F
+Set filedescriptor to use for external communications.
+.TP 
+--version
+Print the version number, and the configuration of the
+Gnash player. Please use this info when submitting bug
+reports.
+.SS KEYS
+.TP 
+CTRL-Q
+Quit/Exit.
+.TP 
+CTRL-W
+Quit/Exit.
+.TP 
+ESC
+Quit/Exit.
+.TP 
+CTRL-P
+Toggle Pause.
+.TP 
+CTRL-R 
+Restart the movie.
+.TP 
+CTRL-[ or kp-
+Step back one frame.
+.TP 
+CTRL-] or kp+
+Step forward one frame.
+.TP 
+CTRL-T
+Debug. Test the set_variable() function.
+.TP 
+CTRL-G
+Debug. Test the get_variable() function.
+.TP 
+CTRL-M
+Debug. Test the call_method() function.
+.TP 
+CTRL-B
+Toggle background color.
+.PP
+Flash is Trademarked by Adobe Corporation.

Index: packaging/doc/gnash.html.in
===================================================================
RCS file: packaging/doc/gnash.html.in
diff -N packaging/doc/gnash.html.in
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ packaging/doc/gnash.html.in 16 Feb 2008 17:51:06 -0000      1.1
@@ -0,0 +1,2444 @@
+<html><head><meta http-equiv="Content-Type" content="text/html; 
charset=ISO-8859-1"><title>Gnash Developer's Guide version 0.4.3</title><meta 
name="generator" content="DocBook XSL Stylesheets V1.73.2"></head><body 
bgcolor="white" text="black" link="#0000FF" vlink="#840084" 
alink="#0000FF"><div class="book" lang="en"><div 
class="titlepage"><div><div><h1 class="title"><a name="index"></a><span 
class="application">Gnash</span> Developer's Guide version 
0.4.3</h1></div><div><div class="authorgroup"><div class="author"><h3 
class="author"><span class="firstname">Rob</span> <span 
class="surname">Savoye</span></h3><div class="affiliation"><div 
class="address"><p><br>
+                 <code class="email">&lt;<a class="email" 
href="mailto:address@hidden";>address@hidden</a>&gt;</code><br>
+             </p></div></div></div></div></div><div><p class="releaseinfo">
+        This manual describes version 0.8.2 of Gnash.
+    </p></div><div><p class="copyright">Copyright © 2005, 2006, 2007, 2008 
Free Software Foundation</p></div><div><div class="legalnotice"><a 
name="legalnotice"></a><p>
+    Permission is granted to copy, distribute and/or modify this document
+    under the terms of the <a class="link" href="#fdl" title="Appendix A. GNU 
Free Documentation License"><em class="citetitle">GNU
+    Free Documentation License</em></a>, Version 1.1 or any later
+    version published by the Free Software Foundation with no Invariant
+    Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find
+    a copy of the GFDL at this 
+    <a class="link" href="#fdl" title="Appendix A. GNU Free Documentation 
License">link</a> or in the file COPYING-DOCS
+    distributed with this manual.
+   </p></div></div><div><div class="revhistory"><table border="1" width="100%" 
summary="Revision history"><tr><th align="left" valign="top" 
colspan="2"><b>Revision History</b></th></tr><tr><td align="left">Revision 
Gnash Manual version 0.3.0</td><td align="left">Oct 2006</td></tr><tr><td 
align="left" colspan="2"> 
+              <p class="author">Rob Savoye
+              <code class="email">&lt;<a class="email" 
href="mailto:address@hidden";>address@hidden</a>&gt;</code>
+              Updated for the alpha release.
+              </p>
+
+              <p class="publisher">Free Software Foundation</p>
+          </td></tr><tr><td align="left">Revision Gnash Manual version 
0.4.0</td><td align="left">June 2007</td></tr><tr><td align="left" colspan="2">
+              <p class="author">Ann Barcomb
+              <code class="email">&lt;<a class="email" 
href="mailto:address@hidden";>address@hidden</a>&gt;</code>
+              Rewritten for software version 0.8.0.
+              </p>
+
+              <p class="publisher">Free Software Foundation</p>
+          </td></tr><tr><td align="left">Revision Gnash Manual version 
0.4.1</td><td align="left">Feb 2008</td></tr><tr><td align="left" colspan="2"> 
+              <p class="author">Rob Savoye
+              <code class="email">&lt;<a class="email" 
href="mailto:address@hidden";>address@hidden</a>&gt;</code>
+              Updated for the 0.8.2 release.
+              </p>
+
+              <p class="publisher">Free Software Foundation</p>
+          </td></tr></table></div></div></div><hr></div><div 
class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a 
href="#intro">1. Introduction</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="#runs-on">What does <span class="application">Gnash</span> run 
on?</a></span></dt><dt><span class="sect1"><a href="#flashsupport">What 
Versions of Flash are Supported?</a></span></dt><dt><span class="sect1"><a 
href="#audience">Audience</a></span></dt><dt><span class="sect1"><a 
href="#guide-conventions">Guide Conventions</a></span></dt><dt><span 
class="sect1"><a 
href="#Acknowledgments">Acknowledgments</a></span></dt></dl></dd><dt><span 
class="chapter"><a href="#specification">2. Technical 
Specifications</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="#spec-actionscript">ActionScript</a></span></dt><dt><span 
class="sect1"><a href="#spec-memory">Memory Management</a></span></dt><dt><span 
class="sect1"><a 
href="#spec-security">Security</a></span></dt></dl></dd><dt><span 
class="chapter"><a href="#build">3. Installing and Configuring <span 
class="application">Gnash</span></a></span></dt><dd><dl><dt><span 
class="sect1"><a 
href="#requirements">Requirements</a></span></dt><dd><dl><dt><span 
class="sect2"><a href="#hardware">Hardware 
Requirements</a></span></dt><dt><span class="sect2"><a 
href="#software">Software Requirements</a></span></dt></dl></dd><dt><span 
class="sect1"><a href="#downloading">Downloading <span 
class="application">Gnash</span></a></span></dt><dd><dl><dt><span 
class="sect2"><a href="#packagemanager">Using a Package 
Manager</a></span></dt><dt><span class="sect2"><a href="#gettingsource">Getting 
the Source</a></span></dt></dl></dd><dt><span class="sect1"><a 
href="#pre-configuration">Pre-Compile 
Configuration</a></span></dt><dd><dl><dt><span class="sect2"><a 
href="#features">Features</a></span></dt><dt><span class="sect2"><a 
href="#custompath">Specifying Custom Paths</a></span></dt><dt><span 
class="sect2"><a href="#crosscompilingconfiguration">Cross 
Compiling</a></span></dt></dl></dd><dt><span class="sect1"><a 
href="#compiling">Building from Source</a></span></dt><dd><dl><dt><span 
class="sect2"><a href="#compile">Compiling the Code</a></span></dt><dt><span 
class="sect2"><a href="#processdoc">Creating the 
Documentation</a></span></dt><dt><span class="sect2"><a 
href="#runtests">Running the Tests</a></span></dt></dl></dd><dt><span 
class="sect1"><a href="#install">Installation</a></span></dt><dd><dl><dt><span 
class="sect2"><a href="#libinstall">Libraries</a></span></dt><dt><span 
class="sect2"><a href="#appinstall">Executables</a></span></dt><dt><span 
class="sect2"><a 
href="#docinstall">Documentation</a></span></dt></dl></dd></dl></dd><dt><span 
class="chapter"><a href="#usage">4. Using <span 
class="application">Gnash</span></a></span></dt><dd><dl><dt><span 
class="sect1"><a href="#options"><span class="application">Gnash</span> Command 
Line Options</a></span></dt><dt><span class="sect1"><a href="#keys"><span 
class="application">Gnash</span> Interactive Control 
Keys</a></span></dt><dt><span class="sect1"><a href="#gnashrc">User 
Configuration File</a></span></dt></dl></dd><dt><span class="chapter"><a 
href="#bugreport">5. Reporting Bugs</a></span></dt><dd><dl><dt><span 
class="sect1"><a href="#bugstep_newcheckout">Compile the latest <span 
class="application">Gnash</span> build</a></span></dt><dt><span 
class="sect1"><a href="#bugstep_search">Determine if the bug was previously 
reported</a></span></dt><dt><span class="sect1"><a 
href="#bugstep_guidelines">Review the bug writing 
guidelines</a></span></dt><dt><span class="sect1"><a 
href="#bugstep_file">Filing a bug report</a></span></dt></dl></dd><dt><span 
class="glossary"><a href="#glossary">Glossary</a></span></dt><dt><span 
class="chapter"><a href="#authors">6. Authors</a></span></dt><dt><span 
class="appendix"><a href="#fdl">A. GNU Free Documentation 
License</a></span></dt><dd><dl><dt><span class="sect1"><a 
href="#fdl-preamble">0. PREAMBLE</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section1">1. APPLICABILITY AND DEFINITIONS</a></span></dt><dt><span 
class="sect1"><a href="#fdl-section2">2. VERBATIM 
COPYING</a></span></dt><dt><span class="sect1"><a href="#fdl-section3">3. 
COPYING IN QUANTITY</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section4">4. MODIFICATIONS</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section5">5. COMBINING DOCUMENTS</a></span></dt><dt><span 
class="sect1"><a href="#fdl-section6">6. COLLECTIONS OF 
DOCUMENTS</a></span></dt><dt><span class="sect1"><a href="#fdl-section7">7. 
AGGREGATION WITH INDEPENDENT WORKS</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section8">8. TRANSLATION</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section9">9. TERMINATION</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section10">10. FUTURE REVISIONS OF THIS 
LICENSE</a></span></dt><dt><span class="sect1"><a 
href="#fdl-using">Addendum</a></span></dt></dl></dd></dl></div><div 
class="list-of-tables"><p><b>List of Tables</b></p><dl><dt>2.1. <a 
href="#id2790236">ActionScript Classes</a></dt><dt>2.2. <a 
href="#id2790524">Opcodes</a></dt><dt>2.3. <a href="#id2790828">Memory 
Footprint</a></dt><dt>3.1. <a href="#tb-os-cpu">Build Matrix</a></dt><dt>3.2. 
<a href="#id2793204">Code Dependency Table</a></dt><dt>3.3. <a 
href="#id2794774">Testing Dependency Table</a></dt><dt>3.4. <a 
href="#id2794922">Documentation Dependency Table</a></dt><dt>3.5. <a 
href="#tb-config-features">Configuration Options - Features</a></dt><dt>3.6. <a 
href="#tb-configure-paths">Custom Path Options</a></dt><dt>4.1. <a 
href="#tb-command-line-options">Gnash Command Line Options</a></dt><dt>4.2. <a 
href="#tb-control-keys">Gnash Interactive Control Keys</a></dt><dt>4.3. <a 
href="#tb-config-variables">User Configuration 
Variables</a></dt></dl></div><div class="chapter" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a name="intro"></a>Chapter 1. 
Introduction</h2></div></div></div><div class="toc"><p><b>Table of 
Contents</b></p><dl><dt><span class="sect1"><a href="#runs-on">What does <span 
class="application">Gnash</span> run on?</a></span></dt><dt><span 
class="sect1"><a href="#flashsupport">What Versions of Flash are 
Supported?</a></span></dt><dt><span class="sect1"><a 
href="#audience">Audience</a></span></dt><dt><span class="sect1"><a 
href="#guide-conventions">Guide Conventions</a></span></dt><dt><span 
class="sect1"><a 
href="#Acknowledgments">Acknowledgments</a></span></dt></dl></div><p>
+      <span class="application">Gnash</span> is a free Flash movie player.  It 
is available as a stand-alone application or as a plugin for several popular 
browsers.
+</p><p>
+<span class="application">Gnash</span> is based on the excellent work done on 
the public domain program <span class="application">GameSWF</span>, which is a 
graphics library for games that contains the heart of a Flash interpreter.  In 
December 2005, <span class="application">Gnash</span> was forked from <span 
class="application">GameSWF</span> and repackaged in the GNU project style.  
The objective of <span class="application">Gnash</span> is to create an 
enterprise-quality Flash movie player that can be widely deployed.
+</p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a name="runs-on"></a>What does <span 
class="application">Gnash</span> run on?</h2></div></div></div><p>
+The list of successful <span class="application">Gnash</span> deployments 
grows every day.  At this time, <span class="application">Gnash</span> has been 
found to run on several different UNIX and Linux distributions.  The plugin 
currently works with any browser that uses the NSAPI. This includes:
+</p><div class="itemizedlist"><ul type="disc"><li><p>Mozilla <a class="ulink" 
href="http://www.mozilla.org"; target="_top">http://www.mozilla.org</a>
+</p></li><li><p>Firefox <a class="ulink" 
href="http://www.mozilla.com/en-US/firefox"; 
target="_top">http://www.mozilla.com/en-US/firefox</a>
+</p></li><li><p>Galeon <a class="ulink" href="galeon.sourceforge.net" 
target="_top">galeon.sourceforge.net</a>
+</p></li><li><p>Epiphany <a class="ulink" href="gnome.org/projects/epiphany" 
target="_top">gnome.org/projects/epiphany</a>
+</p></li><li><p>Konqueror <a class="ulink" href="http://www.konqueror.org"; 
target="_top">http://www.konqueror.org</a>
+</p></li><li><p>Opera <a class="ulink" href="http://www.opera.com"; 
target="_top">http://www.opera.com</a>
+</p></li><li><p>OLPC Web Activity <a class="ulink" 
href="http://www.laptop.org"; target="_top">http://www.laptop.org</a>
+</p></li></ul></div></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="flashsupport"></a>What Versions of Flash are 
Supported?</h2></div></div></div><p>
+           <span class="application">Gnash</span> supports the majority of 
Flash opcodes up to SWF version
+           7, and a wide sampling of ActionScript classes for SWF version
+           7.   There are plans to work towards greater support for SWF
+           8 and beyond.  AMF support is minimal.
+         </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="audience"></a>Audience</h2></div></div></div><p>
+This manual is primarily focused on developers interested in contributing to 
or building from the <span class="application">Gnash</span> project.  It serves 
as a detailed reference guide, including a catalog and explanation of all 
options and features.  This level of detail may make this guide cumbersome for 
the average user, although advanced users may find it helpful.
+</p><p>
+Those who are new to <span class="application">Gnash</span> will find the <em 
class="citetitle"><span class="application">Gnash</span> User's Guide</em>, 
currently under development, to be more useful when learning to use <span 
class="application">Gnash</span>.
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a name="guide-conventions"></a>Guide 
Conventions</h2></div></div></div><p>
+This guide makes use of the following fairly standard typefaces, highlighting, 
and language usage:
+</p><div class="variablelist"><dl><dt><span class="term"><span 
class="application">application</span></span></dt><dd><p>
+The typeface above will be used whenever an application, such as <span 
class="application">Firefox</span> or <span 
class="application">OpenOffice.org</span>, is mentioned.
+</p></dd><dt><span class="term"><span 
class="command"><strong>command</strong></span></span></dt><dd><p>
+The typeface above will be used whenever the text instructs a user to enter a 
command at a shell prompt in UNIX/Linux, such as <span 
class="command"><strong>ls</strong></span>.
+</p></dd><dt><span class="term"><code 
class="computeroutput">computeroutput</code></span></dt><dd><p>
+This is the typeface used to indicate information produced on <code 
class="computeroutput">stdout</code> by the computer.  This include error 
messages and prompts.
+</p></dd><dt><span class="term"><code 
class="filename">filename</code></span></dt><dd><p>
+This typeface indicates that the text is the name (and possibly the path) of a 
specific file on the system in question.  For example, <code 
class="filename">/etc/hosts</code> would appear in this typeface.
+</p></dd><dt><span class="term"><span 
class="guibutton">guibutton</span></span></dt><dd><p>
+This formatting indicates a button on a Graphical User Interface (GUI).  If 
this formatting appears, look for a button with the same text on the GUI of the 
<span class="application">Gnash</span> player; the button itself may look 
slightly different.
+</p></dd><dt><span class="term"><span 
class="guimenu">guimenu</span></span></dt><dd><p>
+This typeface indicates the topmost menu item in a GUI.  For example, in many 
applications the <span class="guimenu">File</span> menu item is a top=level 
menu item.
+</p></dd><dt><span class="term"><span 
class="guimenuitem">guimenuitem</span></span></dt><dd><p>
+This typeface indicates a sub-menu item in a GUI.  For example, in many 
applications the <span class="guimenuitem">Save As</span> menu item is a 
sub-menu item.
+</p></dd><dt><span class="term"><span 
class="guilabel">guitext</span></span></dt><dd><p>
+This typeface indicates a text string on the GUI.  This is generally a text 
string that appears on the GUI that is not a button or menuitem.
+</p></dd><dt><span class="term"><span 
class="keycap"><strong>key</strong></span></span></dt><dd><p>
+This typeface indicates a specific key on the keyboard.  For example, the 
<span class="keycap"><strong>Ctrl</strong></span> key appears in this typeface.
+</p></dd><dt><span class="term"><span 
class="keycap"><strong>key</strong></span>+<span 
class="keycap"><strong>combination</strong></span></span></dt><dd><p>
+This formatting indicates a set of keys to be pressed at the same time.  A 
familiar key combination is <span 
class="keycap"><strong>Ctrl</strong></span>+<span 
class="keycap"><strong>Alt</strong></span>+<span 
class="keycap"><strong>Delete</strong></span>.
+</p></dd><dt><span class="term"><em 
class="replaceable"><code>&lt;replaceable&gt;</code></em></span></dt><dd><p>
+Whenever a general term is included in an example as a placeholder, it will be 
signaled by this formatting.  This formatting will usually appear inside other 
formatting.  For example, <code class="filename">/home/<em 
class="replaceable"><code>&lt;username&gt;</code></em></code> indicates the 
home directory of a user, whose actual username would be substituted in for <em 
class="replaceable"><code>&lt;username&gt;</code></em>.
+</p></dd><dt><span class="term"><strong class="userinput"><code>User 
input</code></strong></span></dt><dd><p>
+This typeface indicates anything that the user must enter, whether that is at 
a shell prompt or in response to a GUI prompt. 
+</p></dd></dl></div></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="Acknowledgments"></a>Acknowledgments</h2></div></div></div><p>
+The first version of this guide was written by Rob Savoye.  If not for his 
tireless efforts, this book - and this project - would never have come this far.
+</p><p>
+John Steinhart has also been dedicated to the project from the beginning. I 
have shamelessly plagiarized one of his early announcement emails in the early 
part of this chapter.
+</p><p>
+Ann Barcomb was instrumental in taking this guide from the 0.3.0 to the 0.4.0 
version, incorporating the many changes that came with <span 
class="application">Gnash</span> version 0.8.0.
+</p><p>
+Finally, thanks to all of the <span class="application">Gnash</span> 
developers I haven't mentioned for all their hard work, and for answering my 
unending questions.
+</p></div></div><div class="chapter" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a 
name="specification"></a>Chapter 2. Technical 
Specifications</h2></div></div></div><div class="toc"><p><b>Table of 
Contents</b></p><dl><dt><span class="sect1"><a 
href="#spec-actionscript">ActionScript</a></span></dt><dt><span 
class="sect1"><a href="#spec-memory">Memory Management</a></span></dt><dt><span 
class="sect1"><a href="#spec-security">Security</a></span></dt></dl></div><p>
+The information in this chapter may change quickly.  For the most current 
information about the following subjects, be sure the check the Developer's 
Wiki at <a class="ulink" 
href="http://www.gnashdev.org/wiki/index.php/Main_Page"; 
target="_top">http://www.gnashdev.org/wiki/index.php/Main_Page</a>.
+</p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a 
name="spec-actionscript"></a>ActionScript</h2></div></div></div><p>
+As stated in the section <a class="xref" href="#flashsupport" title="What 
Versions of Flash are Supported?">the section called &#8220;What Versions of 
Flash are Supported?&#8221;</a>, <span class="application">Gnash</span> has 
implemented about 80% of ActionScript v. 2.0, and has begun implementing 
ActionScript v. 3.0.  <span class="application">Gnash</span> supports the 
majority of Flash opcodes up to SWF version 7, and a wide sampling of 
ActionScript classes for SWF version 7.
+</p><p>
+The following table indicates how fully various ActionScript classes have been 
implemented:
+</p><div class="table"><a name="id2790236"></a><p class="title"><b>Table 2.1. 
ActionScript Classes</b></p><div class="table-contents"><table 
summary="ActionScript Classes" border="1"><colgroup><col align="left"><col 
align="left"></colgroup><thead><tr><th align="left">Class</th><th 
align="left">Status</th></tr></thead><tbody><tr><td 
align="left">Actionscript/Date</td><td 
align="left">Implemented</td></tr><tr><td 
align="left">Actionscript/Function</td><td 
align="left">Implemented</td></tr><tr><td 
align="left">Actionscript/MovieClip</td><td 
align="left">Implemented</td></tr><tr><td 
align="left">Actionscript/MovieClipLoader</td><td 
align="left">Implemented</td></tr><tr><td 
align="left">Actionscript/Object</td><td 
align="left">Implemented</td></tr><tr><td 
align="left">Actionscript/Sound</td><td 
align="left">Implemented</td></tr><tr><td 
align="left">Actionscript/String</td><td 
align="left">Implemented</td></tr><tr><td 
align="left">Actionscript/XMLNode</td><td 
align="left">Implemented</td></tr><tr><td 
align="left">Actionscript/XMLSocket</td><td 
align="left">Implemented</td></tr><tr><td 
align="left">Actionscript/_global</td><td align="left">Partially 
Implemented</td></tr><tr><td align="left">Actionscript/Array</td><td 
align="left">Partially Implemented</td></tr><tr><td 
align="left">Actionscript/LocalConnection</td><td align="left">Partially 
Implemented</td></tr><tr><td align="left">Actionscript/NetConnection</td><td 
align="left">Partially Implemented</td></tr><tr><td 
align="left">Actionscript/NetStream</td><td align="left">Partially 
Implemented</td></tr><tr><td align="left">Actionscript/TextField</td><td 
align="left">Partially Implemented</td></tr><tr><td 
align="left">Actionscript/XML</td><td align="left">Partially 
Implemented</td></tr><tr><td align="left">Actionscript/Boolean</td><td 
align="left">Unimplemented</td></tr><tr><td 
align="left">Actionscript/Error</td><td 
align="left">Unimplemented</td></tr><tr><td 
align="left">Actionscript/LoadVars</td><td 
align="left">Unimplemented</td></tr><tr><td 
align="left">Actionscript/Number</td><td 
align="left">Unimplemented</td></tr><tr><td 
align="left">Actionscript/Selection</td><td 
align="left">Unimplemented</td></tr><tr><td 
align="left">Actionscript/TextFormat</td><td 
align="left">Unimplemented</td></tr><tr><td 
align="left">Actionscript/Unknown</td><td 
align="left">Unimplemented</td></tr></tbody></table></div></div><br 
class="table-break"><p>
+The next table indicates which opcodes have been implemented:
+</p><div class="table"><a name="id2790524"></a><p class="title"><b>Table 2.2. 
Opcodes</b></p><div class="table-contents"><table summary="Opcodes" 
border="1"><colgroup><col align="left"><col 
align="left"></colgroup><thead><tr><th align="left">Opcode</th><th 
align="left">Status</th></tr></thead><tbody><tr><td align="left">0x43 
declare_obj</td><td align="left">Implemented</td></tr><tr><td align="left">0x2B 
cast</td><td align="left">Implemented</td></tr><tr><td align="left">0x3B 
delete2 - SWF::ACTION_DELETE</td><td align="left">Implemented</td></tr><tr><td 
align="left">0x53 new_method</td><td align="left">Implemented</td></tr><tr><td 
align="left">0x55 enum_object</td><td align="left">Implemented</td></tr><tr><td 
align="left">0x3A delete - SWF::ACTION_DELETEVAR</td><td 
align="left">Implemented</td></tr><tr><td align="left">0x69 Extends - 
SWF::ACTION_EXTENDS</td><td align="left">Implemented</td></tr><tr><td 
align="left">0x54 instance_of</td><td align="left">Partially 
Implemented</td></tr><tr><td align="left">0x2A Throw</td><td 
align="left">Unimplemented</td></tr><tr><td align="left">0x2C 
Implements</td><td align="left">Unimplemented</td></tr><tr><td 
align="left">0x8F Try</td><td align="left">Unimplemented</td></tr><tr><td 
align="left">0x31 md length</td><td align="left">Unimplemented</td></tr><tr><td 
align="left">0x35 md substring</td><td 
align="left">Unimplemented</td></tr><tr><td align="left">0x37 md chr</td><td 
align="left">Unimplemented</td></tr><tr><td align="left">0x45 get 
target</td><td 
align="left">Unimplemented</td></tr></tbody></table></div></div><br 
class="table-break"></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="spec-memory"></a>Memory Management</h2></div></div></div><p>
+One of the new features of <span class="application">Gnash</span> 0.8.2 is the 
garbage collector.  The garbage collector manages complex ActionScript 
variables, which are the only ones that are shared by references.  In <span 
class="application">Gnash</span>, these are <span 
class="command"><strong>as_object</strong></span> class instances created by 
ActionScript (i.e. not those created by playhead control: <span 
class="command"><strong>placeobject</strong></span>/<span 
class="command"><strong>removeobject</strong></span>).
+</p><p>
+Collected objects are those allocated due to ActionScript explicit or implicit 
calls.  Explicit all are any user-defined statements that allocate new objects, 
such as arrays, Objects, or script-created movieclips.  Implicit calls are the 
built-in functions that can be deleted by arbitrary user calls.
+</p><p>
+Any object that is a candidate for garbage collecting is stored in a list 
owned by the collector.  This list is filled by an executing action context 
whenever a collectible object is allocated on the heap.
+</p><p>
+The garbage collector starts at the very end of an execution context, rather 
than using a threshold to trigger it.  At this point, the virtual machine is in 
a "stable" state; any still-reachable object has its roots in one of the 
currently live character instances (stage characters).
+</p><p>
+The collector is a conservative collector.  Any object on the collectibles 
list is marked as <span class="guilabel">UNREACHABLE</span>, an iterative scan 
starting from the roots marks any still-reachable object, and a final purge 
releases all still-<span class="guilabel">UNREACHABLE</span> resources.
+</p><p>
+This garbage collector has reduced the memory footprint of <span 
class="application">Gnash</span>.  However, the most current, available test 
data indicated the following runtime memory footprint:
+</p><div class="table"><a name="id2790828"></a><p class="title"><b>Table 2.3. 
Memory Footprint</b></p><div class="table-contents"><table summary="Memory 
Footprint" border="1"><colgroup><col align="left"><col align="left"><col 
align="left"><col align="left"></colgroup><thead><tr><th align="left">Render 
GUI</th><th align="left">Virtual Memory</th><th align="left">Resident Set Size 
(physical RAM</th><th align="left">Shared Memory (code 
size)</th></tr></thead><tbody><tr><td align="left">agg-gtk</td><td 
align="left">33372 KB</td><td align="left">14 MB</td><td align="left">8948 
KB</td></tr><tr><td align="left">agg-sdl</td><td align="left">26564 KB</td><td 
align="left">9396 KB</td><td align="left">5124 KB</td></tr><tr><td 
align="left">agg-fltk</td><td align="left">24556 KB</td><td align="left">8992 
KB</td><td align="left">4220 KB</td></tr><tr><td 
align="left">cairo-fltk</td><td align="left">184 MB</td><td align="left">128 
MB</td><td align="left">4284 KB</td></tr><tr><td align="left">cairo-gtk</td><td 
align="left">192 MB</td><td align="left">133 MB</td><td align="left">8000 
KB</td></tr><tr><td align="left">cairo-sdl</td><td align="left">187 MB</td><td 
align="left">129 MB </td><td align="left">5256 KB</td></tr><tr><td 
align="left">opengl-gtk </td><td align="left">62620 KB</td><td align="left">15 
MB</td><td align="left">9336 KB</td></tr><tr><td align="left">opengl-sdl 
</td><td align="left">54932 KB</td><td align="left">10 MB</td><td 
align="left">5324 KB</td></tr></tbody></table></div></div><br 
class="table-break"></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="spec-security"></a>Security</h2></div></div></div><p>
+Many Flash implementations contain potential security exploits that could 
compromise a viewer's system.  With <span class="application">Gnash</span>, an 
end-user has the ability to see "what's going on" &#8212; what types of data 
the application accesses, where it is found, and how it is used.  Many known 
Flash exploits are included in the <span class="application">Gnash</span> test 
suite that is used to check whether a release is ready for the public.  The 
<span class="application">Gnash</span> developers are also in the process of a 
security review, developing a security layer that will protect an end-user, no 
matter what operating system they use.
+</p><p>
+One early security feature is the blacklist/whitelist.  Flash movies running 
in a browser can make outgoing network connections. This can be used, for 
example, to compromise a network device inside a company firewall via a Flash 
movie running on an employee's browser. <span class="application">Gnash</span> 
allows you to blacklist hosts that you know are insecure, or to whitelist hosts 
you know are secure, by editing a configuration file.
+</p></div></div><div class="chapter" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a name="build"></a>Chapter 3. 
Installing and Configuring <span 
class="application">Gnash</span></h2></div></div></div><div 
class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a 
href="#requirements">Requirements</a></span></dt><dd><dl><dt><span 
class="sect2"><a href="#hardware">Hardware 
Requirements</a></span></dt><dt><span class="sect2"><a 
href="#software">Software Requirements</a></span></dt></dl></dd><dt><span 
class="sect1"><a href="#downloading">Downloading <span 
class="application">Gnash</span></a></span></dt><dd><dl><dt><span 
class="sect2"><a href="#packagemanager">Using a Package 
Manager</a></span></dt><dt><span class="sect2"><a href="#gettingsource">Getting 
the Source</a></span></dt></dl></dd><dt><span class="sect1"><a 
href="#pre-configuration">Pre-Compile 
Configuration</a></span></dt><dd><dl><dt><span class="sect2"><a 
href="#features">Features</a></span></dt><dt><span class="sect2"><a 
href="#custompath">Specifying Custom Paths</a></span></dt><dt><span 
class="sect2"><a href="#crosscompilingconfiguration">Cross 
Compiling</a></span></dt></dl></dd><dt><span class="sect1"><a 
href="#compiling">Building from Source</a></span></dt><dd><dl><dt><span 
class="sect2"><a href="#compile">Compiling the Code</a></span></dt><dt><span 
class="sect2"><a href="#processdoc">Creating the 
Documentation</a></span></dt><dt><span class="sect2"><a 
href="#runtests">Running the Tests</a></span></dt></dl></dd><dt><span 
class="sect1"><a href="#install">Installation</a></span></dt><dd><dl><dt><span 
class="sect2"><a href="#libinstall">Libraries</a></span></dt><dt><span 
class="sect2"><a href="#appinstall">Executables</a></span></dt><dt><span 
class="sect2"><a 
href="#docinstall">Documentation</a></span></dt></dl></dd></dl></div><p>
+    There are two ways of installing <span class="application">Gnash</span>:
+    <a class="link" href="#packagemanager" title="Using a Package 
Manager">using a package manager</a>
+    or <a class="link" href="#gettingsource" title="Getting the 
Source">installing from source</a>.
+  </p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a 
name="requirements"></a>Requirements</h2></div></div></div><p>
+Before downloading and installing <span class="application">Gnash</span>, 
check that your hardware and software meet the following requirements.
+</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="hardware"></a>Hardware 
Requirements</h3></div></div></div><p>
+One of the goals of <span class="application">Gnash</span> is to make it 
portable enough to install on small devices.  As a result, the hardware 
requirements are minimal. <span class="application">Gnash</span> has even run 
on an ARM9 at 200 MHz with 64 MB of RAM! (It ran without video support in this 
case.)   While firm minimums have not been established, <span 
class="application">Gnash</span> has been shown to run successfully with the 
following:
+</p><div class="itemizedlist"><ul type="disc"><li><p>
+336 MHz processor
+</p></li><li><p>
+256 MB RAM
+</p></li><li><p>
+Video &#8212; <span class="application">Gnash</span> will run on anything from 
a raw frame buffer up to an OpenGL-supporting graphics card.
+</p></li></ul></div><p>
+The following table provides a list of the Operating System/CPU combinations 
on which <span class="application">Gnash</span> has been shown to run.
+</p><div class="table"><a name="tb-os-cpu"></a><p class="title"><b>Table 3.1. 
Build Matrix</b></p><div class="table-contents"><table summary="Build Matrix" 
border="1"><colgroup><col align="left"><col 
align="left"></colgroup><thead><tr><th align="left">Render GUI</th><th 
align="left">Virtual Memory</th></tr></thead><tbody><tr><td 
align="left">FreeBSD</td><td align="left">Alpha AXP, AMD64, i386, Itanium, 
PC-98, PowerPC, SPARC64 
+</td></tr><tr><td align="left">GNU/Linux 
+</td><td align="left">CRIS</td></tr><tr><td align="left">GNU/Linux [OLPC] 
+</td><td align="left">Geode GX 
+</td></tr><tr><td align="left">GNU/Linux ALTLinux 
+</td><td align="left">i586</td></tr><tr><td align="left">GNU/Linux Arklinux 
+</td><td align="left">i586</td></tr><tr><td align="left">GNU/Linux Debian 
+</td><td align="left">Alpha AXP, AMD64, ARM, hppa, i386, Itanium, MIPS, 
PowerPC, IBM zSeries (s390), SPARC 
+</td></tr><tr><td align="left">GNU/Linux Fedora core 
+</td><td align="left">x86-32, x86-64 
+</td></tr><tr><td align="left">GNU/Linux Gentoo 
+</td><td align="left">AMD64, PowerPC, SPARC, x86 
+</td></tr><tr><td align="left">GNU/Linux Gentoo 
+</td><td align="left">AMD64, PowerPC, SPARC, x86 
+</td></tr><tr><td align="left">GNU/Linux Maemo 2.1 
+</td><td align="left">ARMv5t</td></tr><tr><td align="left">GNU/Linux Mandriva 
2007 
+</td><td align="left"> </td></tr><tr><td align="left">GNU/Linux Open Zaurus 
+</td><td align="left">ARM 
+</td></tr><tr><td align="left">GNU/Linux OpenSuSE 10 
+</td><td align="left">i586, x86-64 
+</td></tr><tr><td align="left">GNU/Linux Red Hat 
+</td><td align="left">x86-32, x86-64 
+</td></tr><tr><td align="left">GNU/Linux Ubuntu 
+</td><td align="left">x86-64 reported working, also x86-32 and UltraSPARC 
+</td></tr><tr><td align="left">Haiku</td><td align="left"> </td></tr><tr><td 
align="left">Irix 6.5 
+</td><td align="left">MIPS R10K 
+</td></tr><tr><td align="left">MacOS X 
+</td><td align="left">PowerPC and x86-32 
+</td></tr><tr><td align="left">NetBSD</td><td align="left">many, including VAX
+</td></tr><tr><td align="left">OpenBSD</td><td align="left">many, including 
VAX, OS/2 and eComstation</td></tr><tr><td align="left">Windows</td><td 
align="left">x86-32</td></tr></tbody></table></div></div><br 
class="table-break"></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a name="software"></a>Software 
Requirements</h3></div></div></div><p>
+The 0.8.2 release of <span class="application">Gnash</span> has been designed 
to run on UNIX/Linux variants, and has been run on most of the free ones.  
However, <span class="application">Gnash</span> has successfully run on 
Windows, Darwin (Mac OS X), Irix, Solaris, BeOs, OS/2, and Haiku.  <span 
class="application">Gnash</span> has also run on the following 64-bit systems: 
PowerPC, Itanium, UltraSparc, and AMD64.   For now, it is important to be sure 
that the following code, testing, and documentation dependencies are met before 
installing <span class="application">Gnash</span>.  If you will be downloading 
<span class="application">Gnash</span> with a package manager, these 
dependencies may be solved by the package manager.  Otherwise, you must first 
verify that each of these dependencies are installed on the target system.
+</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 
class="title"><a name="codedepend"></a>Code 
Dependencies</h4></div></div></div><p>
+  <span class="application">Gnash</span> 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 <span class="application">Gnash</span> needs to compile.
+</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 
class="title">Note</h3><p>
+If you want to install the <span class="application">Gnash</span> plugin for 
one of the browsers listed in the <a class="xref" href="#intro" title="Chapter 
1. Introduction">Chapter 1, <i>Introduction</i></a>, be sure to install the 
development package for that browser before configuring.  The <span 
class="application">Gnash</span> <span 
class="command"><strong>configure</strong></span> script searches for the devel 
packages before building the plugin.
+</p></div><div class="table"><a name="id2793204"></a><p class="title"><b>Table 
3.2. Code Dependency Table</b></p><div class="table-contents"><table 
summary="Code Dependency Table" border="1"><colgroup><col align="left"><col 
align="left"><col align="left"><col align="left"><col align="left"><col 
align="left"><col align="left"></colgroup><thead><tr><th 
align="left">Name</th><th align="left">Level</th><th 
align="left">Version</th><th align="left">Description</th><th 
align="left">Explanation</th><th align="left">apt-get package</th><th 
align="left">RPM/Yum package</th></tr></thead><tbody><tr><td 
align="left">Boost</td><td align="left">Required</td><td align="left">1.32 or 
higher</td><td align="left">
+          Boost is a library of portable C++ classes and
+          templates.
+        </td><td align="left">
+          In <span class="application">Gnash</span>, Boost libraries are used 
extensively.
+        </td><td align="left"><code 
class="filename">libboost-thread-dev</code></td><td align="left"><code 
class="filename">liboost-thread-dev</code></td></tr><tr><td 
align="left">libxml2</td><td align="left">Required</td><td align="left"> 
</td><td align="left">
+          Libxml2 is the GNOME XML parser library and
+          is available at <a class="ulink" href="http://xmlsoft.org"; 
target="_top">http://xmlsoft.org</a>.
+        </td><td align="left">
+          This library is used to parse messages in the
+          XML or XMLSocket ActionScript classes.
+        </td><td align="left"><code 
class="filename">libxml2-dev</code></td><td align="left"><code 
class="filename">libxml2-devel</code></td></tr><tr><td align="left">AGG</td><td 
align="left">Possibly Required</td><td align="left">2.4 or higher</td><td 
align="left">
+          AGG is the AntiGrain low-level 2D graphics
+          library.  
+        </td><td align="left">
+          <span class="application">Gnash</span> requires the installation of 
at least one
+          renderer.  AGG is considered the <span class="emphasis"><em>best
+          supported</em></span> renderer for <span 
class="application">Gnash</span>.
+        </td><td align="left"><code class="filename">libagg-dev</code></td><td 
align="left"><code class="filename">agg-devel</code></td></tr><tr><td 
align="left">OpenGL</td><td align="left">Possibly Required</td><td 
align="left"> </td><td align="left">
+          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
+          <a class="ulink" href="http://www.mesa3d.org"; 
target="_top">http://www.mesa3d.org</a>.
+        </td><td align="left">
+          <span class="application">Gnash</span> requires the installation of 
at least one
+          renderer.
+        </td><td align="left"><code 
class="filename">libgl1-mesa-dev</code></td><td align="left"><code 
class="filename">libmesa-devel</code></td></tr><tr><td 
align="left">Cairo</td><td align="left">Possibly Required</td><td align="left"> 
</td><td align="left">
+          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.  
+        </td><td align="left">
+          <span class="application">Gnash</span> requires the installation of 
at least one
+          renderer.  Cairo is considered
+          the <span class="emphasis"><em>least supported</em></span> renderer
+          for <span class="application">Gnash</span>.
+        </td><td align="left"><code 
class="filename">libcairo2-dev</code></td><td align="left"><code 
class="filename">cairo-devel</code></td></tr><tr><td align="left">GTK</td><td 
align="left">Possibly Required</td><td align="left">2.2 or higher</td><td 
align="left">
+          GTK is the GIMP Toolkit GUI library.
+          It uses Cairo internally.
+        </td><td align="left">
+          <span class="application">Gnash</span> requires the installation of 
at least one
+          GUI library.  GTK is considered to be the
+          <span class="emphasis"><em>best supported</em></span> GUI library
+          option for <span class="application">Gnash</span>.
+        </td><td align="left"><code 
class="filename">libgtk2.0-dev</code></td><td align="left"><code 
class="filename">gtk-devel</code></td></tr><tr><td 
align="left">GtkGlExt</td><td align="left">Possibly Required</td><td 
align="left"> </td><td align="left">
+          GtkGlExt integrates OpenGL into GTK.
+        </td><td align="left">
+          This library is required in order to use
+          the GTK GUI library in conjunction with the
+          OpenGL renderer.
+        </td><td align="left"><code 
class="filename">libgtkglext1-dev</code></td><td align="left"><code 
class="filename">gtkglext-devel</code></td></tr><tr><td 
align="left">SDL</td><td align="left">Possibly Required</td><td align="left"> 
</td><td align="left">
+          The Simple DirectMedia Layer is a cross-platform
+          multimedia library which provides abstraction for
+          audio, graphics, sound and input APIs.  
+          SDL is available from
+          <a class="ulink" href="http://www.libsdl.org"; target="_top">
+          http://www.libsdl.org</a>.  
+        </td><td align="left">
+          <span class="application">Gnash</span> 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 <span class="emphasis"><em>poorly supported</em></span>
+          in <span class="application">Gnash</span>, but the sound handler is 
the
+          <span class="emphasis"><em>best supported</em></span> in <span 
class="application">Gnash</span>.
+        </td><td align="left"><code 
class="filename">libsdl1.2-dev</code></td><td align="left"><code 
class="filename">SDL-devel</code></td></tr><tr><td align="left">FLTK</td><td 
align="left">Possibly Required</td><td align="left">2.0 or higher</td><td 
align="left">
+          The Fast Light ToolKit is a portable GUI library
+          which is intended as a replacement for the SDL GUI.
+        </td><td align="left">
+          <span class="application">Gnash</span> requires the installation of 
at least one
+          GUI library.  FLTK may be used in conjunction with
+          the Cairo and AGG renderers.
+        </td><td align="left">No distribution packages are available.</td><td 
align="left">No distribution packages are available.</td></tr><tr><td 
align="left">KDE</td><td align="left">Possibly Required</td><td align="left"> 
</td><td align="left">
+          Kdelibs is a collection of libraries needed to
+          compile KDE applications.
+        </td><td align="left">
+          <span class="application">Gnash</span> requires the installation of 
at least one
+          GUI library.  Kdelibs is also required for the
+          Kpart plugin for Konqueror.
+        </td><td align="left"><code 
class="filename">kdelibs4-dev</code></td><td align="left"><code 
class="filename">kdelibs-devel</code></td></tr><tr><td 
align="left">libMAD</td><td align="left">Optional</td><td align="left"> 
</td><td align="left">
+          libMAD is MPEG audio decoder.
+        </td><td align="left">
+          libMAD is one of the available options for sound
+          handling.
+        </td><td align="left"><code 
class="filename">libmad0-dev</code></td><td align="left"><code 
class="filename">libmad-devel</code></td></tr><tr><td 
align="left">Gstreamer</td><td align="left">Optional</td><td align="left"> 
</td><td align="left">
+          Gstreamer is a video handler.
+        </td><td align="left">
+          If you would like video playback, you must
+          install one of the video handlers.
+        </td><td align="left"><code 
class="filename">libgstreamer0.8-dev</code></td><td align="left"><code 
class="filename">gstreamer-devel</code></td></tr><tr><td 
align="left">gst-ffmpeg</td><td align="left">Possibly Required</td><td 
align="left"> </td><td align="left">
+          gst-ffmpeg allows you to use the FFMPEG decoder
+          with Gstreamer.
+        </td><td align="left">
+          This package is required if you would like to
+          use Gstreamer as a video handler.
+        </td><td align="left"><code 
class="filename">gstreamer0.8-ffmpeg-dev</code></td><td align="left"><code 
class="filename">gstreamer-ffmpeg-devel</code></td></tr><tr><td 
align="left">FFMPEG</td><td align="left">Possibly Required</td><td 
align="left"> </td><td align="left">
+          FFMPEG is a video handler.
+        </td><td align="left">
+          If you would like video playback, you must
+          install one of the video handlers.  It is also
+          a dependency of gst-ffmpeg.
+        </td><td align="left"><code class="filename">ffmpeg-dev</code></td><td 
align="left"><code class="filename">ffmpeg-devel</code></td></tr><tr><td 
align="left">JPEG</td><td align="left">Optional</td><td align="left"> </td><td 
align="left">
+          <a class="ulink" href="http://www.ijg.org/"; target="_top">JPEG</a>
+          is a lossy image format which is heavily used for images.
+        </td><td align="left">
+          This library is used for rendering JPEGs.
+        </td><td align="left"><code 
class="filename">libjpeg62-dev</code></td><td align="left"><code 
class="filename">libjpeg</code></td></tr><tr><td align="left">PNG</td><td 
align="left">Optional</td><td align="left"> </td><td align="left">
+          <a class="ulink" href="http://www.libpng.org/pub/png/"; 
target="_top">PNG</a> is
+          a patent-free image format which is comparable to
+          <span class="emphasis"><em>GIF</em></span>.
+        </td><td align="left">
+          This library is used for rendering PNGs.
+        </td><td align="left"><code 
class="filename">libpng12-dev</code></td><td align="left"><code 
class="filename">libpng</code></td></tr><tr><td align="left">libcurl</td><td 
align="left">Optional</td><td align="left"> </td><td align="left">
+          libcurl is the multiprotocal file transfer library.
+        </td><td align="left">
+          This library is used for URL downloading.
+        </td><td align="left"><code 
class="filename">libcurl4-gnutls</code></td><td align="left"><code 
class="filename">libcurl</code></td></tr><tr><td align="left">automake</td><td 
align="left">Possibly Required</td><td align="left">1.6.0</td><td align="left">
+          Automake is a tool for generating
+          <span class="emphasis"><em>Makefile.in</em></span> files.
+        </td><td align="left">
+          This package is required to run
+          <span class="emphasis"><em>autogen.sh</em></span>, which is a 
requirement
+          if you are using the development source from CVS.
+        </td><td align="left"><code class="filename">automake</code></td><td 
align="left"><code class="filename">automake</code></td></tr><tr><td 
align="left">autoconf</td><td align="left">Possibly Required</td><td 
align="left">2.59</td><td align="left">
+          Autoconf is a package for generating configure
+          scripts.
+        </td><td align="left">
+          This package is required to run
+          <span class="emphasis"><em>autogen.sh</em></span>, which is a 
requirement
+          if you are using the development source from CVS.
+        </td><td align="left"><code class="filename">autoconf</code></td><td 
align="left"><code class="filename">autoconf</code></td></tr><tr><td 
align="left">gettext</td><td align="left">Possibly Required</td><td 
align="left">0.14.6</td><td align="left">
+          Gettext is part of the GNU Translation Project.
+        </td><td align="left">
+          This package is required to run
+          <span class="emphasis"><em>autogen.sh</em></span>, which is a 
requirement
+          if you are using the development source from CVS.
+        </td><td align="left"><code class="filename">gettext</code></td><td 
align="left"><code class="filename">gettext</code></td></tr><tr><td 
align="left">libtool</td><td align="left">Possibly Required</td><td 
align="left">1.5.22</td><td align="left">
+          This is a generic library support script.
+        </td><td align="left">
+          This package is required to run
+          <span class="emphasis"><em>autogen.sh</em></span>, which is a 
requirement
+          if you are using the development source from CVS.
+        </td><td align="left"><code 
class="filename">libltdl3-dev</code></td><td align="left"><code 
class="filename">libtool</code></td></tr></tbody></table></div></div><br 
class="table-break"></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a name="testdepend"></a>Testing 
Dependencies</h4></div></div></div><p>
+  <span class="application">Gnash</span> tries to run as many tests as 
possible, but will
+  simply skip tests if the tools to run them are unavailable.
+</p><div class="table"><a name="id2794774"></a><p class="title"><b>Table 3.3. 
Testing Dependency Table</b></p><div class="table-contents"><table 
summary="Testing Dependency Table" border="1"><colgroup><col align="left"><col 
align="left"><col align="left"><col align="left"><col align="left"><col 
align="left"><col align="left"></colgroup><thead><tr><th 
align="left">Name</th><th align="left">Level</th><th 
align="left">Version</th><th align="left">Description</th><th 
align="left">Explanation</th><th align="left">apt-get package</th><th 
align="left">RPM/Yum package</th></tr></thead><tbody><tr><td 
align="left">Ming</td><td align="left">Optional</td><td 
align="left">0.4.0_beta4 or higher</td><td align="left">
+          Ming is an ActionScript compiler.
+        </td><td align="left">
+          Ming is the primary compiler for ActionScript testcases.
+        </td><td align="left">No distribution packages are available.</td><td 
align="left">No distribution packages are available.</td></tr><tr><td 
align="left">Mtasc</td><td align="left">Optional</td><td align="left"> </td><td 
align="left">
+          Mtasc is an ActionScript compiler.
+        </td><td align="left">
+          Mtasc is used in some tests.
+        </td><td align="left"><code class="filename">mtasc</code></td><td 
align="left">No distribution packages are available.</td></tr><tr><td 
align="left">swfdec</td><td align="left">Optional</td><td align="left"> 
</td><td align="left">
+          Swfdec is a Flash player.
+        </td><td align="left">
+          Swfdec is used in some testcases.
+        </td><td align="left">No distribution packages are available.</td><td 
align="left">Unofficial package <code 
class="filename">swfdec</code></td></tr><tr><td align="left">DejaGnu</td><td 
align="left">Optional</td><td align="left"> </td><td align="left">
+          DejaGnu is a testing framework.
+        </td><td align="left">
+          DejaGnu is used to run multiple tests in an
+          automated fashion.
+        </td><td align="left"><code class="filename">dejagnu</code></td><td 
align="left"><code 
class="filename">dejagnu</code></td></tr></tbody></table></div></div><br 
class="table-break"></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="docdepend"></a>Documentation Dependencies</h4></div></div></div><p>
+  The following packages are used to build <span 
class="application">Gnash</span>'s documentation.
+</p><div class="table"><a name="id2794922"></a><p class="title"><b>Table 3.4. 
Documentation Dependency Table</b></p><div class="table-contents"><table 
summary="Documentation Dependency Table" border="1"><colgroup><col 
align="left"><col align="left"><col align="left"><col align="left"><col 
align="left"><col align="left"><col align="left"></colgroup><thead><tr><th 
align="left">Name</th><th align="left">Level</th><th 
align="left">Version</th><th align="left">Description</th><th 
align="left">Explanation</th><th align="left">apt-get package</th><th 
align="left">RPM/Yum package</th></tr></thead><tbody><tr><td 
align="left">Docbook</td><td align="left">Required</td><td align="left"> 
</td><td align="left">
+          <a class="ulink" href="http://http://docbook.sourceforge.net/"; 
target="_top">Docbook</a> is
+          is an industry-standard XML format for technical
+          documentation.  You can download it from
+          <a class="ulink" 
href="http://sourceforge.net/project/showfiles.php?group_id=21935#files"; 
target="_top">http://sourceforge.net/project/showfiles.php?group_id=21935#files</a>.
+        </td><td align="left">
+          <span class="application">Gnash</span> documentation is written in 
Docbook.
+        </td><td align="left"><code class="filename">docbook-utils</code> and 
+               <code class="filename">docbook-dsssl</code></td><td 
align="left"><code class="filename">docbook-dtd41-sgml</code> and
+               <code 
class="filename">docbook-style-dsssl</code></td></tr><tr><td 
align="left">DocBook2X</td><td align="left">Optional</td><td align="left"> 
</td><td align="left">
+          This software package converts Docbook documents to
+          the traditional man page format, GNU Texinfo
+          format, and HTML (via Texinfo) format.  
+          It is available at <a class="ulink" 
href="http://docbook2x.sourceforge.net/"; 
target="_top">http://docbook2x.sourceforge.net/</a>.
+        </td><td align="left">
+          DocBook2X is required to produce HTML and Texinfo
+          formats.
+        </td><td align="left"><code class="filename">docbook2x</code></td><td 
align="left"><code class="filename">docbook2x</code></td></tr><tr><td 
align="left">Texinfo</td><td align="left">Possibly Required</td><td 
align="left"> </td><td align="left">
+          Texinfo can be used to convert DocBook2X output
+          into GNU info pages.  You can download it from
+          <a class="ulink" href="http://ftp.gnu.org/gnu/texinfo/"; 
target="_top">http://ftp.gnu.org/gnu/texinfo/</a>.
+        </td><td align="left">
+          Texinfo is required if you wish to product GNU info
+          pages.
+        </td><td align="left"><code class="filename">texinfo</code></td><td 
align="left"><code class="filename">texinfo</code></td></tr><tr><td 
align="left">FOP</td><td align="left">Optional</td><td 
align="left">0.20.5</td><td align="left">
+          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
+          <a class="ulink" href="http://xmlgraphics.apache.org/fop/"; 
target="_top">http://xmlgraphics.apache.org/fop/</a>.
+        </td><td align="left">
+          FOP is required for PDF output.
+        </td><td align="left"><code class="filename">fop</code></td><td 
align="left"><code class="filename">fop</code></td></tr><tr><td 
align="left">Java (j2re)</td><td align="left">Possibly Required</td><td 
align="left"> </td><td align="left">
+          FOP requires Sun's Java runtime (GCJ does not work with
+          FOP).  You can download it from
+          <a class="ulink" href="http://java.sun.com"; 
target="_top">http://java.sun.com</a>.
+        </td><td align="left">
+          Sun's Java runtime (j2re) is required to use FOP.  
+        </td><td align="left">
+          Download the package from <a class="ulink" 
href="http://java.sun.com"; target="_top">Sun</a>.
+        </td><td align="left">
+          Download the package from <a class="ulink" 
href="http://java.sun.com"; target="_top">Sun</a>.
+        </td></tr><tr><td align="left">JAI</td><td align="left">Possibly 
Required</td><td align="left"> </td><td align="left">
+          Sun's Java Advanced Imaging API can be downloaded from
+          <a class="ulink" 
href="http://java.sun.com/products/java-media/jai/iio.html"; 
target="_top">http://java.sun.com/products/java-media/jai/iio.html</a>.
+        </td><td align="left">
+          JAI is required
+          if you wish to include graphics in a PDF file being
+          generated with FOP.
+        </td><td align="left">
+          Download the package from <a class="ulink" 
href="http://java.sun.com/products/java-media/jai/iio.html"; 
target="_top">Sun</a>.
+        </td><td align="left">
+          Download the package from <a class="ulink" 
href="http://java.sun.com/products/java-media/jai/iio.html"; 
target="_top">Sun</a>.
+        </td></tr></tbody></table></div></div><br class="table-break"><p>
+  If you install j2re, set the <span class="emphasis"><em>JAVA_HOME</em></span>
+  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
+  <span class="emphasis"><em>CLASSPATH</em></span> environment variable.
+</p></div></div></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="downloading"></a>Downloading <span 
class="application">Gnash</span></h2></div></div></div><p>
+There are two ways to download <span class="application">Gnash</span>: using a 
package manager or by downloading the source code and building it on your 
system. If possible, it is advisable to use a package manager to download <span 
class="application">Gnash</span>, as it will resolve dependencies for you.  
However, if you want the very latest features, or a <span 
class="application">Gnash</span> package is not available for your operating 
system, it is better to download the source code and build <span 
class="application">Gnash</span> locally.
+</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="packagemanager"></a>Using a Package 
Manager</h3></div></div></div><p>
+  <span class="application">Gnash</span> is available as a package for a 
number of Linux and BSD
+  distributions, such as <a class="ulink" 
href="http://packages.ubuntu.com/feisty/utils/gnash"; target="_top">Ubuntu</a>,
+  <a class="ulink" href="http://packages.debian.org/unstable/utils/gnash"; 
target="_top">Debian</a>,
+  <a class="ulink" href="http://www.freshports.org/graphics/gnash/"; 
target="_top">FreeBSD</a>, 
+  and <a class="ulink" href="http://ports.openbsd.nu/www/gnash"; 
target="_top">OpenBSD</a>.
+  There is also an unofficial Fedora RPM.  
+  This is not an extensive list, and you are advised to search
+  if you wish to use a package manager on a different system.          
+</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="gettingsource"></a>Getting the 
Source</h3></div></div></div><p>
+    <span class="application">Gnash</span> is available as a <a class="link" 
href="#sourcereleases" title="Releases">release
+    tarball</a>, a <a class="link" href="#sourcerepo" 
title="Repository">development 
+    checkout</a>, or a <a class="link" href="#sourcesnapshot" 
title="Snapshot">development
+    snapshot</a>.
+  </p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 
class="title"><a name="sourcereleases"></a>Releases</h4></div></div></div><p>
+      The source can be acquired from a
+      <a class="ulink" href="http://www.gnu.org/prep/ftp.html"; 
target="_top">GNU FTP
+      Mirror</a>.  The release version is intended to be
+      stable, and is probably your best choice if the release took
+      place recently.  If you need features or fixes which were
+      introduced after the release, consider a 
+      <a class="link" href="#sourcerepo" title="Repository">CVS checkout</a> 
or the
+      <a class="link" href="#sourcesnapshot" title="Snapshot">daily 
snapshot</a>.
+    </p><p>
+      To download, select a mirror near you, then choose the
+      <code class="filename">gnash</code> directory.
+    </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="sourcerepo"></a>Repository</h4></div></div></div><p>
+      The latest development sources are available via
+      anonymous CVS.  This is recommended
+      if you need features or bug fixes which were introduced after
+      the <a class="link" href="#sourcereleases" title="Releases">last 
release</a>.  Look at
+      the <a class="link" href="#sourcesnapshot" title="Snapshot">daily 
snapshot</a> if you
+      experience difficulty accessing the repository.
+    </p><p>
+To download via anonymous CVS, first set the
+      environment variable <span 
class="command"><strong>CVS_RSH</strong></span> to <span 
class="command"><strong>ssh</strong></span>, then check out the source code.  
The example below uses the GNU Bourne-Again shell (bash):
+</p><pre class="screen">
+export CVS_RSH="ssh"
+cvs -z3 -d:pserver:address@hidden:/sources/gnash co gnash
+</pre><p>
+      It is also possible to browse the repository
+      <a class="ulink" 
href="http://cvs.savannah.gnu.org/viewcvs/gnash/?root=gnash"; 
target="_top">http://cvs.savannah.gnu.org/viewcvs/gnash/?root=gnash</a> on the 
web.
+    </p></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a 
name="sourcesnapshot"></a>Snapshot</h4></div></div></div><p>
+      The daily development snapshot can be downloaded from
+      <a class="ulink" href="http://www.gnashdev.org/dev_snapshots/"; 
target="_top">http://www.gnashdev.org/dev_snapshots/</a>.
+      This is the best option if you need changes which were introduced
+      after the <a class="link" href="#sourcereleases" title="Releases">last 
release</a> of
+      <span class="application">Gnash</span>, but are unable to <a 
class="link" href="#sourcerepo" title="Repository">download
+      directly from the repository.</a>
+    </p></div></div></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="pre-configuration"></a>Pre-Compile Configuration</h2></div></div></div><p>
+<span class="application">Gnash</span>, 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.  <span class="application">Gnash</span> uses 
<a class="ulink" href="http://www.gnu.org/software/autoconf/"; target="_top">GNU 
Autoconf</a>
+  for configuration.
+</p><p>
+  If you opted to download the 
+  <a class="link" href="#sourcerepo" title="Repository">development 
checkout</a>
+  of <span class="application">Gnash</span>, the <span 
class="emphasis"><em>configure</em></span> script will
+  not be included.  It can be created by running 
+  <span class="emphasis"><em>autogen.sh</em></span> from the source root 
directory:
+  </p><pre class="programlisting">
+  ./autogen.sh
+  </pre><p>
+  Note that there are some 
+  <a class="link" href="#codedepend" title="Code 
Dependencies">dependencies</a> for
+  autogen.
+</p><p>
+  All the standard <span class="command"><strong>configure</strong></span> 
options
+  are available.  In addition, <span class="application">Gnash</span> has two 
types of
+  options: those that <a class="link" href="#features" title="Features">enable 
or disable 
+  features</a>, and
+  those that <a class="link" href="#custompath" title="Specifying Custom 
Paths">specify custom paths for 
+  development packages</a>
+  which are not found during the default search.  A complete
+  list of <span class="emphasis"><em>all</em></span> configuration options, 
including
+  standard ones, can be seen by typing:
+  </p><pre class="programlisting">
+  ./configure --help |less
+  </pre><p>
+  Read further for a more detailed explanation of <span 
class="application">Gnash</span>-specific
+  options.
+</p><p>
+  The syntax for running <span class="emphasis"><em>configure</em></span> is 
as follows:
+  </p><pre class="programlisting">
+  configure <em class="replaceable"><code>&lt;options&gt;</code></em>
+  </pre><p>
+  The example below shows the <span 
class="command"><strong>configure</strong></span> options
+  which create the smallest working standalone version of <span 
class="application">Gnash</span>.  In
+  this example, <span class="command"><strong>configure</strong></span> is 
being run from the
+  source root directory:
+</p><pre class="programlisting">
+./configure --disable-debugger --disable-cygnal --disable-docbook \
+--disable-plugin --enable-media=mad --enable-gui=sdl
+</pre><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="features"></a>Features</h3></div></div></div><p>
+  Some switches can be used during configuration to enable or disable
+  features of <span class="application">Gnash</span>. Some of the most 
important configuration options
+  are:
+</p><div class="itemizedlist"><ul type="opencircle"><li 
style="list-style-type: circle"><p>
+<code class="option">--enable-gui</code> lets you specify your GUI of choice.
+The default option is GTK.
+    </p></li><li style="list-style-type: circle"><p>
+<code class="option">--enable-renderer</code> allows a renderer to be
+chosen.  The default renderer is OpenGL.
+    </p></li><li style="list-style-type: circle"><p>
+<code class="option">--enable-media</code> permits a media handler to be
+selected.  The default is FFMPEG with SDL sound.
+    </p></li></ul></div><p>
+  A complete list of available features follows.
+</p><div class="table"><a name="tb-config-features"></a><p 
class="title"><b>Table 3.5. Configuration Options - Features</b></p><div 
class="table-contents"><table summary="Configuration Options - Features" 
border="1"><colgroup><col align="left"><col 
align="left"></colgroup><thead><tr><th align="left">Option</th><th 
align="left">Function</th></tr></thead><tbody><tr><td align="left"><code 
class="option">--enable-debugger</code></td><td align="left">Enable support for 
the Flash debugger. The debugger is
+        mainly of interest to Flash developers.</td></tr><tr><td 
align="left"><code class="option">--enable-dmalloc</code></td><td 
align="left">Enable support for the DMalloc memory debugging 
tool.</td></tr><tr><td align="left"> <code 
class="option">--enable-docbook</code></td><td align="left">  Enable the 
generation of HTML and PDF versions of the documentation
+       from the XML. You will then be able to use <span 
class="command"><strong>make html</strong></span> and <span 
class="command"><strong>make pdf</strong></span>.</td></tr><tr><td 
align="left">  <code class="option">--enable-embedded</code></td><td 
align="left"> Link to Qt-embedded, do not use X. This is only used by
+        Klash</td></tr><tr><td align="left"> <code 
class="option">--disable-fork</code></td><td align="left">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.</td></tr><tr><td 
align="left"><code class="option">--enable-ghelp</code>
+</td><td align="left">Enable support for the GNOME help 
system.</td></tr><tr><td align="left"><code 
class="option">--disable-glext</code>
+</td><td align="left">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.</td></tr><tr><td align="left"><code 
class="option">--enable-gui=gtk|sdl|kde|fltk|fb</code></td><td 
align="left"><p>Select the Graphic User Interface to use (choose one).</p>
+ <div class="variablelist"><dl><dt><span class="term">GTK</span></dt><dd><p>
+    The GTK+ toolkit, which is the default GUI.
+    Said to interwork particularly well with firefox.
+</p></dd><dt><span class="term">SDL</span></dt><dd><p>
+    Simple DirectMedia Layer, a simple and portable GUI.
+    Its sound facilities are used when --enable-media=ffmpeg|mad
+    regardless of whether it is also in charge of the GUI.
+</p></dd><dt><span class="term">KDE</span></dt><dd><p>
+    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.
+</p></dd><dt><span class="term">FLTK</span></dt><dd><p>
+    Fast Light ToolKit, low on resource usage.
+    Since all build using fltk are now broken, we declare it
+    "for developers".
+</p></dd><dt><span class="term">FB</span></dt><dd><p>
+    The Linux Frame Buffer, also known as /dev/fb0.
+    AGG is the only renderer that can currently be used
+    with the framebuffer GUI.
+</p></dd></dl></div>
+</td></tr><tr><td align="left"><code 
class="option">--enable-i810-lod-bias</code>
+</td><td align="left">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.</td></tr><tr><td 
align="left"><code class="option">--enable-libsuffix</code>
+</td><td align="left"><code class="filename">/lib</code> directory suffix 
(64,32,none=default). This is only
+        used by Klash.</td></tr><tr><td align="left"><code 
class="option">--enable-mac</code>
+</td><td align="left">Link to Qt/Mac (don't use X). This is only used by
+        Klash.</td></tr><tr><td align="left"><code 
class="option">--enable-media=ffmpeg|mad|gst</code>
+</td><td align="left">  <p>
+        Select the specified media decoder and sound engine.
+        FFMPEG and MAD use the SDL sound engine; GST uses its own.
+       MAD only decodes MP3 sounds and uses integer arithmetic while
+       the others also decode video files and use floating point.
+        <code class="option">FFMPEG</code> is the default decoder.
+      </p>
+      <p>
+        You should only select one media decoder.
+      </p></td></tr><tr><td align="left">
+    <code class="option">--disable-nsapi</code>
+    <code class="option">--enable-nsapi</code>
+  </td><td align="left">Force disable/enable building the NPAPI plugin.
+         By default the Mozilla plugin is built if the GTK gui 
+         is selected.  Specify the 
+         <code class="option">--with-npapi-plugindir=</code> option to specify 
where the
+         plugin should be installed.
+   </td></tr><tr><td align="left">
+     <code class="option">--disable-kparts</code>
+     <code class="option">--enable-kparts</code>
+  </td><td align="left">Force disable/enable building the KPARTS plugin. By 
default the
+        KDE plugin is built if the kde gui is selected. 
+        Specify the <code class="option">--with-kde-plugindir=</code> and
+        <code class="option">--with-kde-servicesdir=</code> options (or more 
generally
+        the <code class="option">--with-kde-pluginprefix=</code> one) to 
specify where the
+        plugin should be installed. The default installation dir is extracted
+        from kde-config.
+  </td></tr><tr><td align="left">
+     <code class="option">--disable-plugins</code>
+  </td><td align="left">Disable build of both kparts and npapi 
plugins</td></tr><tr><td align="left">    <code 
class="option">--enable-qtopia</code>
+</td><td align="left">  Link to Qt-embedded, link to the Qtopia
+        Environment. This is only used by Klash.</td></tr><tr><td 
align="left"><code class="option">--enable-renderer=opengl|cairo|agg</code>
+</td><td align="left">Enable support for the a graphics backend. Currently
+        only <code class="option">opengl</code> and
+        <code class="option">agg</code> 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.</td></tr><tr><td 
align="left"><code class="option">--enable-sdk-install</code>
+</td><td align="left">Enable installing the libraries and headers as an SDK.
+</td></tr><tr><td align="left"><code class="option">--disable-shared</code>
+</td><td align="left">Enable installing the shared libraries and headers.
+        Note that the extensions mechanism may not work if shared
+        libraries are disabled.</td></tr><tr><td align="left"><code 
class="option">--enable-strict</code>
+</td><td align="left">Turn verbose GCC compiler warnings. By default only
+        <code class="option">-Wall</code> is used with GCC.</td></tr><tr><td 
align="left"><code class="option">--enable-fps-debug</code>
+</td><td align="left">Enable FPS debugging code. When this feature is compiled 
in you can use the -f switch of <span class="application">Gnash</span>
+       to have FPS printed at regular intervals.</td></tr><tr><td 
align="left"><code class="option">--enable-write</code></td><td 
align="left">Makes the Mozilla plugin write the currently playing SWF movie to 
<code class="filename">/tmp</code>.
+</td></tr><tr><td align="left"><code class="option">--disable-mit-shm</code>
+</td><td align="left">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.
+       </td></tr></tbody></table></div></div><br 
class="table-break"></div><div class="sect2" lang="en"><div 
class="titlepage"><div><div><h3 class="title"><a 
name="custompath"></a>Specifying Custom Paths</h3></div></div></div><p>
+  By default, none of these options should be required
+  unless you want <span class="application">Gnash</span> to use a specific 
version of a
+  development package, or if the configure test fails to
+  find a component.  Please <a class="link" href="#bugreport" title="Chapter 
5. Reporting Bugs">report the problem</a> if a
+  configure test fails.
+</p><p>
+  The following custom path options are available:
+</p><div class="table"><a name="tb-configure-paths"></a><p 
class="title"><b>Table 3.6. Custom Path Options</b></p><div 
class="table-contents"><table summary="Custom Path Options" 
border="1"><colgroup><col align="left"><col 
align="left"></colgroup><thead><tr><th align="left">Option</th><th 
align="left">Function</th></tr></thead><tbody><tr><td align="left">
+    <code class="option">--x-includes=DIR</code>
+    </td><td align="left">
+        X include files are in DIR.
+      </td></tr><tr><td align="left">
+    <code class="option">--x-libraries=DIR</code>
+    </td><td align="left">
+        X library files are in DIR.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-libxml=PFX</code>
+    </td><td align="left">
+        Prefix to where libxml is installed.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-libxml-libraries=DIR</code>
+    </td><td align="left">
+        Directory where libxml library is installed.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-libxml-includes=DIR</code>
+    </td><td align="left">
+        Directory where libxml header files are installed.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-docbook=DIR</code>
+    </td><td align="left">
+        Directory where the DocBook style-sheets are installed.        
+      </td></tr><tr><td align="left">
+    <code class="option">--with-sdl-prefix=PFX</code>
+    </td><td align="left">
+        Prefix where SDL is installed.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-zlib-incl</code>
+    </td><td align="left">
+        Directory where zlib header is installed.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-zlib-lib</code>
+    </td><td align="left">
+        Directory where zlib library is installed.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-jpeg-incl</code>
+    </td><td align="left">
+        Directory where jpeg header is installed.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-jpeg-lib</code>
+    </td><td align="left">
+        Directory where jpeg library is installed.
+     </td></tr><tr><td align="left">
+    <code class="option">--with-png-incl</code>
+    </td><td align="left">
+        Directory where png header is installed.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-png-lib</code>
+    </td><td align="left">
+        Directory where png library is installed.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-qt-dir</code>
+    </td><td align="left">
+        Directory where QT is installed. This is only used by
+        the Klash plugin.
+    </td></tr><tr><td align="left">
+    <code class="option">--with-qt-includes</code>
+    </td><td align="left">
+        Directory where the QT header files are installed. This
+        is only used by the Klash plugin.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-qt-libraries</code>
+    </td><td align="left">
+        Directory where the QT libraries are installed. This is
+        only used by the Klash plugin.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-npapi-plugindir</code>
+    </td><td align="left">
+        This is the directory to install the NPAPI (Mozilla) plugin in.
+        By default it goes to ~/.mozilla/plugins.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-kde-pluginprefix</code>
+    </td><td align="left">
+        This option sets the default install dir for all KPARTS (kde) files.
+       The plugin will be installed in PREFIX/lib/kde3, use <code 
class="option">-with-kde-plugindir</code> to override.
+       The service file in PREFIX/share/services, use <code 
class="option">--with-kde-servicesdir</code> to override.
+       The config file in PREFIX/share/config, use <code 
class="option">--with-kde-configdir</code> to override.
+       The appdata file in PREFIX/share/apps/klash, use <code 
class="option">--with-kde-appsdatadir</code> to override.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-kde-plugindir</code>
+    </td><td align="left">
+        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.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-kde-servicesdir</code>
+    </td><td align="left">
+        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.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-kde-configdir</code>
+    </td><td align="left">
+        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.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-kde-appsdatadir</code>
+    </td><td align="left">
+        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.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-ming</code>
+    </td><td align="left">
+        Ming is used to build test cases, but not by the Gnash
+        player itself.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-mad_incl</code>
+    </td><td align="left">
+        Directory where libmad header is installed.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-mad_lib</code>
+    </td><td align="left">
+        Directory where libmad library is installed.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-ogg_incl</code>
+    </td><td align="left">
+        Directory where the libogg headers are installed.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-ogg_lib</code>
+    </td><td align="left">
+        Directory where the libogg library is installed.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-gstreamer-incl</code>
+    </td><td align="left">
+        Directory where the Gstreamer headers are
+        installed. Gstreamer version 0.10 or greater must be used.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-gstreamer-lib</code>
+    </td><td align="left">
+        Directory where the Gstreamer library is
+        installed. Gstreamer version 0.10 or greater must be used.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-opengl-includes</code>
+    </td><td align="left">
+        Directory where OpenGL (libMesa) headers are installed.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-opengl-lib</code>
+    </td><td align="left">
+        Directory where the OpenGL (libMesa) library is installed.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-glext-incl</code>
+    </td><td align="left">
+        Directory where GtkGlExt headers are installed.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-glext-lib</code>
+    </td><td align="left">
+        Directory where the GtkGlExt library is installed.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-gtk2-incl</code>
+    </td><td align="left">
+        Directory where the Gtk2 headers are installed.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-gtk2-lib</code>
+    </td><td align="left">
+        Directory where the Gtk2 library is installed.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-cairo_incl</code>
+    </td><td align="left">
+        Directory where the Cairo headers are installed.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-cairo-lib</code>
+    </td><td align="left">
+        Directory where the Cairo library is installed.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-glib-incl</code>
+    </td><td align="left">
+        Directory where the Glib headers are installed.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-glib-lib</code>
+    </td><td align="left">
+        Directory where the Glib library is installed.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-pango-incl</code>
+    </td><td align="left">
+        Directory where the Pango headers are installed.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-pango-lib</code>
+    </td><td align="left">
+        Directory where the Pango library is installed.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-atk-incl</code>
+    </td><td align="left">
+        Directory where the ATK headers are installed.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-atk-lib</code>
+    </td><td align="left">
+        Directory where the ATK library is installed.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-pthread-incl</code>
+    </td><td align="left">
+        Directory where the Pthread headers are installed.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-pthread-lib</code>
+    </td><td align="left">
+        Directory where the Pthread library is installed.
+   </td></tr><tr><td align="left">
+    <code class="option">--with-agg-incl</code>
+    </td><td align="left">
+        Directory where the AGG (Antigrain) headers are installed.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-agg-lib</code>
+    </td><td align="left">
+        Directory where the AGG (Antigrain) library is installed.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-ffmpeg-incl</code>
+    </td><td align="left">
+        Directory where the FFMPEG headers are installed.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-ffmpeg-lib</code>
+    </td><td align="left">
+        Directory where the FFMPEG library is installed.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-boost-incl</code>
+    </td><td align="left">
+        Directory where the Boost headers are installed.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-boost-lib</code>
+    </td><td align="left">
+        Directory where the Boost library is installed.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-curl-incl</code>
+    </td><td align="left">
+        Directory where the libCurl headers are installed.
+      </td></tr><tr><td align="left">
+    <code class="option">--with-curl-lib</code>
+    </td><td align="left">
+        Directory where the libCurl library is installed.
+      </td></tr></tbody></table></div></div><br class="table-break"></div><div 
class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a 
name="crosscompilingconfiguration"></a>Cross Compiling</h3></div></div></div><p>
+  To cross configure and compile <span class="application">Gnash</span>, 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: <span class="emphasis"><em>libxml2</em></span>, <span 
class="emphasis"><em>libpng</em></span> 
+  (if used), <span class="emphasis"><em>libjpeg</em></span> (if used), your
+  GUI library, your renderer, and your video handler (if used).  The page
+  <a class="ulink" href="http://frank.harvard.edu/~coldwell/toolchain/"; 
target="_top">http://frank.harvard.edu/~coldwell/toolchain/</a>
+  has instructions on building a target system from scratch and
+  offers a shell script to make the process easier.
+</p><p>
+  Note that you may have some difficulties getting libMesa (opengl)
+  to cross compile.
+</p><p>
+  The important configuration options are the ones which specify the
+  architecture for the build:
+</p><div class="variablelist"><dl><dt><span 
class="term">--target</span></dt><dd><p>
+        The target architecture, where the final executables are expected
+        to run.
+      </p></dd><dt><span class="term">--host</span></dt><dd><p>
+        The host architecture, where the executables are expected
+        to run.  Usually this is the same as the <span 
class="emphasis"><em>--target</em></span>,
+        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, <span 
class="emphasis"><em>--target</em></span> would
+        be 'arm-unknown-linux-gnu', while <span 
class="emphasis"><em>--host</em></span> would 
+        be 'win32'.
+      </p></dd><dt><span class="term">--build</span></dt><dd><p>
+        This is the system the build is running on.
+      </p></dd></dl></div><p>
+  The following example of <span class="emphasis"><em>configure</em></span> 
builds for an
+  ARM system on an x86 system.  It was run after an ARM system was built
+  in <code class="filename">/usr/arm</code> and other required libraries were 
+  cross compiled.
+  </p><pre class="programlisting">
+./configure -target=arm-unknown-linux-gnu --prefix=/usr/arm \
+--host=arm-unknown-linux-gnu --build=i686-pc-linux-gnu --disable-plugin
+  </pre><p>
+</p></div></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="compiling"></a>Building from Source</h2></div></div></div><p>
+  Once you have <a class="link" href="#pre-configuration" title="Pre-Compile 
Configuration">configured</a> <span class="application">Gnash</span>,
+  you are ready to build the code.  <span class="application">Gnash</span> is 
built using
+  <span class="emphasis"><em>GNU make</em></span>.
+</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="compile"></a>Compiling the Code</h3></div></div></div><p>
+    The most basic way to compile code is simply:
+    </p><pre class="programlisting">
+  make
+    </pre><p>
+    If the compilation ends with an error, check the output of 
+    <span class="emphasis"><em>configure</em></span> and ensure that you are 
not missing 
+    any required prerequisites.  The output of <span 
class="command"><strong>make</strong></span> can be verbose; you may wish to 
pipe the output to a file.
+  </p><p>
+    The variables used by <span class="emphasis"><em>make</em></span> can be 
redefined when
+    the program is invoked, if you desire it.   The most interesting flags
+    are <span class="emphasis"><em>CFLAGS</em></span> and <span 
class="emphasis"><em>CXXFLAGS</em></span>,
+    which are often used to enable debugging or turn of optimization.
+    The default value for both of these variables is
+    <span class="emphasis"><em>-O2 -g</em></span>.  A list of influential 
+    environment variables can be seen in the configuration help:
+</p><pre class="programlisting">./configure --help</pre><p>
+    In the following example, debugging is enabled and optimization is
+    disabled:
+</p><pre class="programlisting">make CFLAGS=-g CXXFLAGS=-g</pre></div><div 
class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a 
name="processdoc"></a>Creating the Documentation</h3></div></div></div><p>
+    By default, documentation is not built when you
+    <a class="link" href="#install" title="Installation">install</a> <span 
class="application">Gnash</span>.  This is because
+    there are a number of <a class="link" href="#docdepend" 
title="Documentation Dependencies">dependencies 
+    for the documentation</a>.  Documentation is built when it
+    is specified with a specific target in the generated 
+    <span class="command"><strong>Makefile</strong></span> in the <code 
class="filename">doc/C</code>
+    sub-directory.  If you type <span class="command"><strong>make 
install</strong></span> in
+    this directory, all documents will be built.
+  </p><p>
+    You must specify a target output format when you wish to create
+    documentation.  The available output formats are: <span 
class="command"><strong>html</strong></span>,
+    <span class="command"><strong>pdf</strong></span>, <span 
class="command"><strong>info</strong></span>, 
+    <span class="command"><strong>man</strong></span>, and <span 
class="command"><strong>alldocs</strong></span>.  
+    It is also possible to output <span class="command"><strong>GNOME 
help</strong></span> if
+    the <a class="link" href="#features" title="Features">configure option</a>
+    <code class="option">--enable-ghelp</code> was used.  
+    The <span class="command"><strong>alldocs</strong></span> target will 
build all output formats
+    except <span class="emphasis"><em>GNOME help</em></span>.
+    For example, to create HTML output, type:
+    </p><pre class="programlisting">
+  make html
+    </pre><p>
+  </p><p>
+    <span class="application">Gnash</span> also uses <a class="ulink" 
href="http://www.stack.nl/~dimitri/doxygen/index.html"; 
target="_top">Doxygen</a> to produce <span class="emphasis"><em>HTML</em></span>
+    documentation of <span class="application">Gnash</span> internals.  You 
must have Doxygen installed
+    to produce this documentation, which is built from the
+    <code class="filename">doc</code> directory with the command (documents
+    will be placed in the subdirectory <code 
class="filename">apidoc/html</code>):
+    </p><pre class="programlisting">
+  make apidoc
+    </pre><p>
+  </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="runtests"></a>Running the Tests</h3></div></div></div><p>
+    Before beginning the potentially lengthy install, it is wise to test the 
installation.  If a test fails, please report it by following the
+    <a class="link" href="#bugreport" title="Chapter 5. Reporting 
Bugs">instructions for reporting a bug</a>.
+  </p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 
class="title"><a name="dejagnu"></a>Using DejaGnu</h4></div></div></div><p>
+  
+      The easiest way to run <span class="application">Gnash</span>'s test 
suite is to install
+      <span class="emphasis"><em><a class="ulink" 
href="http://www.gnu.org/software/dejagnu"; 
target="_top">DejaGnu</a></em></span>.
+      After installing DejaGnu, run:
+      </p><pre class="programlisting">
+        make check
+      </pre><p>
+    </p><div class="sect4" lang="en"><div class="titlepage"><div><div><h5 
class="title"><a name="testing_verbosity"></a>Increasing 
Verbosity</h5></div></div></div><p>
+        If you encounter a problem with a test, increasing the
+        verbosity may make the issue easier to spot.
+        Additional details are visible when 
+        <span class="emphasis"><em>RUNTESTFLAGS</em></span> are used to add 
the 
+        <span class="emphasis"><em>verbose</em></span> and <span 
class="emphasis"><em>all</em></span> options.
+        The <code class="option">verbose</code> option prints more information 
about the testing process, while
+        the <code class="option">all</code> option includes details on passing 
tests.  
+        </p><pre class="programlisting">
+  make check RUNTESTFLAGS="-v -a"
+        </pre><p>
+      </p></div><div class="sect4" lang="en"><div 
class="titlepage"><div><div><h5 class="title"><a 
name="running_some_tests"></a>Running Some Tests</h5></div></div></div><p>
+        It is possible to run just a single test, or 
+        a subdirectory of tests, by specifying the directory or 
+        compiled test file.
+      </p><p>
+        Some tests rely on <span 
class="emphasis"><em>testsuite/Dejagnu.swf</em></span>,
+        which in turn relies on <span class="emphasis"><em>Ming</em></span>.
+        This file is created when you run <span class="command"><strong>make 
check</strong></span> for the entire
+        testsuite, and can also be created on demand:
+        </p><pre class="programlisting">
+  make -C testsuite Dejagnu.swf 
+        </pre><p>
+      </p><p>
+        In this example, the <span 
class="command"><strong>clip_as_button2</strong></span> test is compiled and
+        run:
+        </p><pre class="programlisting">
+  make -C testsuite/samples clip_as_button2-TestRunner 
+  cd testsuite/samples &amp;&amp; ./clip_as_button2-TestRunner
+        </pre><p>
+        This creates and runs all the tests in the directory
+        <code class="filename">movies.all</code>:
+        </p><pre class="programlisting">
+  make -C testsuite/movies.all check
+        </pre><p>
+      </p></div></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a name="manually"></a>Running 
The Tests Manually</h4></div></div></div><p>
+      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 <span 
class="application">Gnash</span> are most useful for
+      development.
+    </p><p>
+      The first step is to compile the test case, which can be done
+      with <code class="filename">make XML-v#.swf</code> where the '#' is 
replaced
+       with the <span class="emphasis"><em>target</em></span> SWF version or 
versions.  
+      For example:
+      </p><pre class="programlisting">
+  make XML-v{5,6,7,8}.swf
+      </pre><p>
+    </p><div class="sect4" lang="en"><div class="titlepage"><div><div><h5 
class="title"><a name="manual_compiled_tests"></a>Movie 
tests</h5></div></div></div><p>
+        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 <span 
class="application">Gnash</span>:
+        </p><pre class="programlisting">
+   gnash -v XML-v6.swf
+        </pre><p>
+      </p></div><div class="sect4" lang="en"><div 
class="titlepage"><div><div><h5 class="title"><a 
name="manual_actionscript_tests"></a>ActionScript Unit 
Tests</h5></div></div></div><p>
+        Unit tests for ActionScript classes in <span 
class="command"><strong>testsuite/actionscript.all</strong></span>
+        are run without a graphical display:
+        </p><pre class="programlisting">
+  gprocessor -v XML-v6.swf
+        </pre><p>
+      </p></div></div></div></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="install"></a>Installation</h2></div></div></div><p>
+Now that <span class="application">Gnash</span> has been compiled and tested, 
use the following command to install it:
+  </p><pre class="programlisting">
+  make install
+  </pre><p>
+The above command installs the standalone player.  If the correct files were 
found by <span class="command"><strong>configure</strong></span> and if the 
<code class="option">--disable-plugin</code> option was not specified, the 
<span class="application">Gnash</span> browser plugin is also installed.
+</p><p>
+  <span class="application">Gnash</span> installs a number of <a class="link" 
href="#libinstall" title="Libraries">libraries</a>,
+  namely: <span class="emphasis"><em>libbase</em></span>,
+  <span class="emphasis"><em>libgeometry</em></span>, <span 
class="emphasis"><em>libbackend</em></span>,
+  <span class="emphasis"><em>libserver</em></span>, and <span 
class="emphasis"><em>libmozsdk</em></span>.
+  <a class="link" href="#appinstall" title="Executables">Executables</a>
+  consist of the (optional) plugin, <code class="filename">gprocessor</code>,
+  <code class="filename">cygnal</code>,  and <code 
class="filename">gnash</code>.
+  <a class="link" href="#docinstall" title="Documentation">Documentation</a> 
may also be installed.
+  The installation location is controlled with the
+  <span class="emphasis"><em>--prefix</em></span> <a class="link" 
href="#custompath" title="Specifying Custom Paths">configure
+  option</a>, except for plugins, which are explicitly set with
+  <span class="emphasis"><em>--plugin-dir</em></span>.
+</p><p>
+  Note that if you are using a single file-system <span 
class="emphasis"><em>NFS</em></span>
+  mounted to multiple platforms, the 
+  <a class="link" href="#custompath" title="Specifying Custom 
Paths">configuration option</a> 
+  <span class="emphasis"><em>--exec-prefix</em></span> may be used to specify 
where
+  platform-dependent executables and libraries are installed.
+</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="libinstall"></a>Libraries</h3></div></div></div><p>
+    Installed libraries are located in 
+    <code class="filename">/usr/local/lib</code> by default.
+    If the <span class="emphasis"><em>--prefix</em></span> option was used in
+    <a class="link" href="#pre-configuration" title="Pre-Compile 
Configuration">configuration</a>, the libraries will
+    be installed in the directory <code class="filename">lib</code> 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.
+  </p><p>
+    The traditional way to do this on UNIX
+    platforms is to set the <span 
class="emphasis"><em>LD_LIBRARY_PATH</em></span> variable
+    to the path plus <code class="filename">/lib</code>.  For example, if you
+    installed in <code class="filename">/home/gnash</code>, the 
+    <span class="emphasis"><em>LD_LIBRARY_PATH</em></span> path would be
+    <code class="filename">/home/gnash/lib</code>.  Multiple paths are 
delimited
+    with a colon (':').
+  </p><p>
+    GNU/Linux allows the custom path to be added to
+    <code class="filename">/etc/ld.so.conf</code>.  After adding the path,
+    run <span class="emphasis"><em>ldconfig</em></span> as root to update the 
runtime
+    cache.
+  </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="appinstall"></a>Executables</h3></div></div></div><p>
+   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 <code 
class="filename">~/.mozilla/plugins/</code>. To enable
+       the plugin for other users, copy the file <code 
class="filename">libgnashplugin.so</code>
+       to <code class="filename">.mozilla/plugins/</code> in their home 
directory.
+       You may also specify the plugin installation directory by using the 
+       <code class="option">--with-plugindir</code> <a class="link" 
href="#custompath" title="Specifying Custom Paths">option 
+       at configuration time</a>.
+   </p><p>
+   These defaults are likely to change in future versions of Gnash.
+   </p><p>
+    The remaining executables are installed in the <code 
class="filename">bin</code>
+    subdirectory of the directory specified by during configuration.
+    If no path was specified, the default is 
+    <code class="filename">/usr/local/bin</code>.
+  </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="docinstall"></a>Documentation</h3></div></div></div><p>
+    Documentation is not built by default; please refer to the 
+    <a class="link" href="#processdoc" title="Creating the 
Documentation">section on documentation</a> for
+    more information on building documentation.
+  </p><p>
+    <span class="command"><strong>man</strong></span> and <span 
class="command"><strong>info</strong></span> 
+    are installed in <code class="filename">/usr/local/share/man</code>
+    and <code class="filename">/usr/local/share/info</code> respectively, 
unless
+    the <code class="option">--mandif</code> or <code 
class="option">--infodir</code>
+    <a class="link" href="#custompath" title="Specifying Custom 
Paths">configuration options</a> are used.
+  </p><p>
+    <span class="emphasis"><em>GNOME help</em></span> documentation uses the 
directory
+    <code class="filename">/usr/local/share/gnash/doc/gnash/C/</code> by 
default.
+    A configuration file in the <span class="application">Gnash</span> source 
tree,
+    <code class="filename">doc/C/gnash.omf</code> is used to specify under
+    which menu item <span class="application">Gnash</span> appears in the 
<span class="emphasis"><em>GNOME help</em></span>
+    system.
+  </p></div></div></div><div class="chapter" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a name="usage"></a>Chapter 4. 
Using <span class="application">Gnash</span></h2></div></div></div><div 
class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a 
href="#options"><span class="application">Gnash</span> Command Line 
Options</a></span></dt><dt><span class="sect1"><a href="#keys"><span 
class="application">Gnash</span> Interactive Control 
Keys</a></span></dt><dt><span class="sect1"><a href="#gnashrc">User 
Configuration File</a></span></dt></dl></div><p>
+When used as a standalone player, you can play any Flash file from the command 
line by entering a command of the format:
+</p><pre class="programlisting">
+gnash <em class="replaceable"><code>&lt;option&gt; 
&lt;flashfile.swf&gt;</code></em>
+</pre><p>
+The only required argument is the name (and location)of the file to be played.
+    </p><p>
+      The available options are listed in the following section, or you may 
view them in the terminal window by executing the following at the command line:
+</p><pre class="programlisting">
+gnash --help |less
+</pre><p>
+    </p><p>
+The source code download of <span class="application">Gnash</span> includes 
several example .SWF files.  They are located in the <code 
class="filename">testsuite/samples/</code> directory of the <span 
class="application">Gnash</span> source directory.  If you have installed <span 
class="application">Gnash</span> correctly, issuing the a command similar to 
the following plays a short animation of a car swerving and crashing:
+</p><pre class="programlisting">
+gnash /home/<em 
class="replaceable"><code>&lt;username&gt;</code></em>/gnash/testsuite/car_smash.swf
+</pre><p>
+      </p><div class="mediaobject" align="center"><img 
src="images/car_crash.png" align="middle"></div><p>
+    </p><p>
+The above is useful for playing Flash files downloaded to your local system.  
It is also possible to play Flash files directly from the web.  To do so, use 
the <code class="option">-u</code> option along with the URL of the desired 
file.
+</p><pre class="programlisting">
+gnash -u http://example.domain.com/flashfile.swf
+</pre><p>
+Note that this will not work with every website; some embedded Flash files are 
difficult to play.
+</p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a name="options"></a><span 
class="application">Gnash</span> Command Line Options</h2></div></div></div><p>
+       No options are required for  <span class="application">Gnash</span>'s 
default behavior.  However, there are many options that can be used to that 
behavior.
+      </p><p>
+</p><pre class="programlisting">
+       gnash <em class="replaceable"><code>&lt;options&gt;</code></em> <code 
class="filename">filename.swf</code>
+</pre><p>
+      </p><div class="table"><a name="tb-command-line-options"></a><p 
class="title"><b>Table 4.1. Gnash Command Line Options</b></p><div 
class="table-contents"><table summary="Gnash Command Line Options" 
border="1"><colgroup><col align="left"><col 
align="left"></colgroup><thead><tr><th align="left">Option</th><th 
align="left">Function</th></tr></thead><tbody><tr><td align="left"><code 
class="option">-h</code></td><td align="left">
+             Print usage information.
+           </td></tr><tr><td align="left">
+         <code class="option">-s factor</code>
+         </td><td align="left">
+             Scale the movie up/down by the specified factor.
+           </td></tr><tr><td align="left">
+         <code class="option">-c</code>
+         </td><td align="left">
+             Produce a core file instead of letting SDL trap it. By
+             default, SDL traps all signals, but sometimes a core file
+             is desired to assist with debugging.
+           </td></tr><tr><td align="left">
+         <code class="option">-d num</code>
+         </td><td align="left">
+             Number of milliseconds to delay in main loop. The main
+             loop polls continuously with a delay to adjust how long
+             <span class="emphasis"><em><span 
class="application">Gnash</span></em></span> sleeps between iterations of the
+             loop. The smaller the number, the higher the CPU load
+             gets, and of course, the more iterations of the main
+             command loop.
+           </td></tr><tr><td align="left">
+         <code class="option">-p</code>
+         </td><td align="left">
+             Run full speed (no sleep) and log frame rate.
+           </td></tr><tr><td align="left">
+         <code class="option">-a</code>
+         </td><td align="left">
+              Enable Actionscript debugging.
+           </td></tr><tr><td align="left">
+         <code class="option">-v</code>
+         </td><td align="left">
+             Be verbose; i.e. print debug messages to stdout.
+           </td></tr><tr><td align="left">
+         <code class="option">-va</code>
+         </td><td align="left">
+             Be verbose about movie Actions. 
+           </td></tr><tr><td align="left">
+         <code class="option">-vp</code>
+         </td><td align="left">
+             Be verbose about parsing the movie. Warning: this can
+             generate a lot of text, and can affect the performance of
+             the movie you are playing.
+           </td></tr><tr><td align="left">
+         <code class="option">-ml bias</code>
+         </td><td align="left">
+             Specify the texture LOD bias (float, default is -1) This
+             affects the fuzziness of small objects, especially small
+             text.
+           </td></tr><tr><td align="left">
+         <code class="option">-w</code>
+         </td><td align="left">
+             Write a debug log called gnash-dbg.log. This will 
+             record of all the debug messages whether they are printed
+             to the screen or not.
+           </td></tr><tr><td align="left">
+         <code class="option">-j</code>
+         </td><td align="left">
+             Specify the width of the window. This is mostly used
+             only by the plugin.
+           </td></tr><tr><td align="left">
+         <code class="option">-k</code>
+         </td><td align="left">
+             Specify the height of the window. This is mostly used
+             only by the plugin.
+           </td></tr><tr><td align="left">
+         <code class="option">-1</code>
+         </td><td align="left">
+             Play once; exit when/if movie reaches the last
+             frame. This is the default.
+           </td></tr><tr><td align="left">
+         <code class="option">-r [0|1|2|3]</code>
+         </td><td align="left">
+<div class="itemizedlist"><ul type="disc"><li><p>
+             0 disables rendering and sound (good for batch tests).
+</p></li><li><p>
+             1 enables rendering and disables sound (default setting).
+</p></li><li><p>
+             2 enables sound and disables rendering.
+</p></li><li><p>
+             3 enables rendering and sound.
+</p></li></ul></div>
+           </td></tr><tr><td align="left">
+         <code class="option">-t sec</code>
+         </td><td align="left">
+             Timeout and exit after the specified number of
+             seconds. This is useful for movies which repeat
+             themselves.
+           </td></tr><tr><td align="left">
+         <code class="option">-g</code>
+         </td><td align="left">
+             Start <span class="application">Gnash</span> with a Flash 
debugger console so one can set
+             break points or watchpoints.
+           </td></tr><tr><td align="left">
+         <code class="option">-x id</code>
+         </td><td align="left">
+             This specifies the X11 window ID to display
+             in; this is mainly used by plugins.
+           </td></tr><tr><td align="left">
+         <code class="option">-b bits</code>
+         </td><td align="left">
+             Bit depth of output window (for example, 16 or 32). Appropriate
+              bit depths depend on the renderer and GUI library used.
+
+           </td></tr><tr><td align="left">
+         <code class="option">-u url</code>
+         </td><td align="left">
+             Set the _url member of the root movie. This is useful 
+              when you download a movie and play it from a different 
+              location. See also the -U switch.
+           </td></tr><tr><td align="left">
+         <code class="option">-U baseurl</code>
+         </td><td align="left">
+             Set base URL for this run. URLs are resolved relative to 
+              this base. If omitted defaults to the _url member of the 
+              top-level movie (see the -u switch).
+           </td></tr><tr><td align="left">
+         <code class="option">-P entrymeter</code>
+         </td><td align="left">
+               Parameters are given in ParamName=Value syntax and are mostly 
+                useful to the plugin to honour EMBED tags attributes 
+                or explicit OBJECT PARAM tags. A common use for -P 
+                is to provide FlashVars 
+                (ie: -P "FlashVars=home=http://www.gnu.org";).
+           </td></tr><tr><td align="left">
+         <code class="option">-F filedescriptor</code>
+         </td><td align="left">
+               Use the given filedescriptor to send requests to the host
+               application. This is currently only used for GETURL requests.
+               The protocol is not documented yet, and also needs improvement.
+               Primary use for this switch is for the NPAPI plugin to properly
+               support javascript and target windows in geturl requests.
+           </td></tr></tbody></table></div></div><br 
class="table-break"></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="keys"></a><span class="application">Gnash</span> Interactive Control 
Keys</h2></div></div></div><p>
+       While a movie is playing, there are several control
+       keys. These can be used to step through frames, pause the
+       playing, and control other actions.
+      </p><div class="table"><a name="tb-control-keys"></a><p 
class="title"><b>Table 4.2. Gnash Interactive Control Keys</b></p><div 
class="table-contents"><table summary="Gnash Interactive Control Keys" 
border="1"><colgroup><col align="left"><col 
align="left"></colgroup><thead><tr><th align="left">Key Combination</th><th 
align="left">Function</th></tr></thead><tbody><tr><td align="left">
+         <code class="option">CTRL-Q</code>
+         </td><td align="left">
+             Quit/Exit.
+           </td></tr><tr><td align="left">
+         <code class="option">CTRL-W</code>
+         </td><td align="left">
+             Quit/Exit.
+           </td></tr><tr><td align="left">
+         <code class="option">ESC</code>
+         </td><td align="left">
+             Quit/Exit.
+           </td></tr><tr><td align="left">
+         <code class="option">CTRL-P</code>
+         </td><td align="left">
+             Toggle Pause.
+           </td></tr><tr><td align="left">
+         <code class="option">CTRL-R   </code>
+         </td><td align="left">
+             Restart the movie.
+           </td></tr><tr><td align="left">
+         <code class="option">CTRL-[ or kp-</code>
+         </td><td align="left">
+             Step back one frame.
+           </td></tr><tr><td align="left">
+         <code class="option">CTRL-] or kp+</code>
+         </td><td align="left">
+             Step forward one frame.
+           </td></tr><tr><td align="left">
+         <code class="option">CTRL-T</code>
+         </td><td align="left">
+             Debug.  Test the set_variable() function.
+           </td></tr><tr><td align="left">
+         <code class="option">CTRL-G</code>
+         </td><td align="left">
+             Debug.  Test the get_variable() function.
+           </td></tr><tr><td align="left">
+         <code class="option">CTRL-M</code>
+         </td><td align="left">
+             Debug.  Test the call_method() function.
+           </td></tr><tr><td align="left">
+         <code class="option">CTRL-B</code>
+         </td><td align="left">
+             Toggle the background color.
+           </td></tr></tbody></table></div></div><br 
class="table-break"></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="gnashrc"></a>User Configuration File</h2></div></div></div><p>
+Individual user preferences may be set by editing variables with the <code 
class="filename">.gnashrc</code> file:
+</p><pre class="programlisting">
+~/.gnashrc
+</pre><p>
+</p><p>
+Each line must begin with an action: either <span 
class="emphasis"><em>set</em></span> or, in the case of lists, also
+<span class="emphasis"><em>append</em></span>.
+</p><p>
+The values in this configuration file apply only to an individual user, and 
become the default settings of the standalone player and the plugin.  Note that 
any command line options take precedence over <code 
class="filename">.gnashrc</code> settings.
+</p><p>
+The variables in the <code class="filename">.gnashrc</code> file support three 
types of arguments: on/off, numeric values, or in the case of the
+    whitelist and blacklist, a list of hostnames as ASCII text.
+  </p><div class="table"><a name="tb-config-variables"></a><p 
class="title"><b>Table 4.3. User Configuration Variables</b></p><div 
class="table-contents"><table summary="User Configuration Variables" 
border="1"><colgroup><col align="left"><col align="left"><col 
align="left"></colgroup><thead><tr><th align="left">Variable</th><th 
align="left">Value</th><th 
align="left">Function</th></tr></thead><tbody><tr><td 
align="left">localdomain</td><td align="left">on/off</td><td align="left">This 
value can be set to either <span class="emphasis"><em>on</em></span> or
+           <span class="emphasis"><em>off</em></span>, and controls the 
loading of
+           external Flash movies over a network. This option
+           tells Gnash to only load Flash movies from the existing 
domain.</td></tr><tr><td align="left">localhost</td><td 
align="left">on/off</td><td align="left">This value can be set to either <span 
class="emphasis"><em>on</em></span> or
+           <span class="emphasis"><em>off</em></span>, and controls the 
loading of
+           external Flash movies over a network. This is a stricter
+           version of the <span class="emphasis"><em>localdomain</em></span> 
setting as
+           this allows the loading of Flash movies to the same host
+           that is running <span 
class="application">Gnash</span>.</td></tr><tr><td 
align="left">whitelist</td><td align="left">hostnames</td><td align="left">This 
is a list of hostnames separated by spaces, or <span 
class="emphasis"><em>off</em></span>
+           to disable the whitelist. The hostname must be given
+            without a protocol (http://, https://). If this list is populated,
+           <span class="application">Gnash</span> will only load external 
Flash movies from the specified hosts.  The
+           whitelist takes precedence over the blacklist. Because several 
files can
+           be parsed in succession, each file can override or add to
+           lists in other files. Use <span 
class="emphasis"><em>set</em></span> to override
+           all other lists or <span class="emphasis"><em>append</em></span> to 
add your blacklisted
+           hosts to lists in previously parsed files.</td></tr><tr><td 
align="left">blacklist</td><td align="left">hostnames</td><td align="left">This 
is a list of hostnames separated by spaces, or <span 
class="emphasis"><em>off</em></span>
+           to disable the blacklist. The hostname must be given
+            without a protocol (http://, https://).
+           External flash movies from these
+            domains are never allowed to load. If whitelist is present
+           and not empty, blacklist is not used. Because several files can
+           be parsed in succession, each file can override or add to
+           lists in other files. Use <span 
class="emphasis"><em>set</em></span> to override
+           all other lists or <span class="emphasis"><em>append</em></span> to 
add your blacklisted
+           hosts to lists in previously parsed files.</td></tr><tr><td 
align="left">localSandboxPath</td><td align="left">dirs</td><td 
align="left">This is a list of directories separated by spaces.
+           Only resources from these directories and from the directory
+            portion of movie filename (if loaded from filesystem) are allowed 
to load.
+           Because several files can be parsed in succession, each file can 
override
+           or add to lists in other files. Use <span 
class="emphasis"><em>set</em></span> to override
+           all other lists or <span class="emphasis"><em>append</em></span> to 
add new sandboxes.
+           Note that there's currently no way to *drop* the directory of base 
dir
+           from the list of allowed local sandboxes.
+           </td></tr><tr><td align="left">delay</td><td 
align="left">Number</td><td align="left"><span class="application">Gnash</span> 
uses a timer-based event mechanism to advance frames
+           at a steady rate. This option overrides the default
+           setting in Gnash to play a movie slower or faster.</td></tr><tr><td 
align="left">verbosity</td><td align="left">Number</td><td align="left">This is 
a numeric value which defines the default level of
+           verbosity from the player.</td></tr><tr><td 
align="left">MalformedSWFVerbosity</td><td align="left">on/off</td><td 
align="left">This value can be set to either <span 
class="emphasis"><em>on</em></span> or
+           <span class="emphasis"><em>off</em></span>, and controls whether 
malformed SWF errors should
+           be printed. If set to true, verbosity level is automatically 
incremented.
+           Set <code class="option">verbosity</code> to 0 afterwards to 
hush.</td></tr><tr><td align="left">ASCodingErrorsVerbosity</td><td 
align="left">on/off</td><td align="left">This value can be set to either <span 
class="emphasis"><em>on</em></span> or
+           <span class="emphasis"><em>off</em></span>, and controls whether 
ActionScript coding
+           errors should be printed. If set to true, verbosity level is
+           automatically incremented.  Set <code 
class="option">verbosity</code> to 0 afterwards to hush.</td></tr><tr><td 
align="left">debuglog</td><td align="left">Absolute path</td><td 
align="left">This is the full path and name of debug logfile as
+       produced by <span class="application">Gnash</span>. On systems with a 
UNIX-type shell,
+        a tilde prefix (~) will be expanded as by Posix shell requirements
+        (see 
http://www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_06_01).</td></tr><tr><td
 align="left">writelog</td><td align="left">on/off</td><td align="left">This 
value can be set to either <span class="emphasis"><em>on</em></span> or
+           <span class="emphasis"><em>off</em></span>, and controls whether a 
debug log
+           is always written by <span class="application">Gnash</span>, or not 
at all.</td></tr><tr><td align="left">sound</td><td align="left">on/off</td><td 
align="left">This value can be set to either <span 
class="emphasis"><em>on</em></span> or
+           <span class="emphasis"><em>off</em></span>, and controls the sound 
of the
+           standalone player. By default <span 
class="application">Gnash</span> enables playing the
+           sound in any Flash movie.</td></tr><tr><td 
align="left">pluginsound</td><td align="left">on/off</td><td align="left">This 
value can be set to either <span class="emphasis"><em>on</em></span> or
+           <span class="emphasis"><em>off</em></span>, and controls the sound 
of the
+           player when running as a browser plugin. By default, sound
+           is enabled when using <span class="application">Gnash</span> as a 
browser plugin.</td></tr><tr><td align="left">EnableExtensions</td><td 
align="left">on/off</td><td align="left">Set to <span 
class="emphasis"><em>on</em></span> to enable extensions. This option is <span 
class="emphasis"><em>off</em></span> by default</td></tr><tr><td 
align="left">StartStopped</td><td align="left">on/off</td><td align="left">Set 
to <span class="emphasis"><em>on</em></span> 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. This option is <span class="emphasis"><em>off</em></span> by default.
+         </td></tr><tr><td align="left">flashVersionString</td><td 
align="left">string</td><td align="left">Set the string returned by $version 
and System.capabilities.version.
+       Useful to get around some flash version detection movies.
+       Note that the version advertised by the plugin is NOT affected by this 
setting,
+       instead you need to set the GNASH_FLASH_VERSION environment variable for
+       the latter (which doesn't affect $version and 
System.capabilities.version).</td></tr><tr><td 
align="left">flashSystemOS</td><td align="left">string</td><td align="left">The 
string that Gnash should return for System.capabilities.OS</td></tr><tr><td 
align="left">flashSystemManufacturer</td><td align="left">string</td><td 
align="left">The string that Gnash should return for 
System.capabilities.manufacturer</td></tr><tr><td 
align="left">StreamsTimeout</td><td align="left">double</td><td align="left">
+Set the number of seconds after which streams download time out. Note that 
timeouts only occurs after the given number of seconds
+passed w/out anything was received.
+</td></tr><tr><td align="left">insecureSSL</td><td align="left">on/off</td><td 
align="left">If set to <span class="emphasis"><em>on</em></span>, no 
verification of SSL connections
+is performed. This means that, although the connection is encrypted, the server
+certificate could be invalid, may not belong to the host, or both. Equivalent
+to curl --insecure. By default, this option is <span 
class="emphasis"><em>off</em></span> and
+connections will fail when a host cannot be verified.</td></tr><tr><td 
align="left">SOLsafedir</td><td align="left">Absolute path</td><td 
align="left">The full path to a directory where <span 
class="application">Gnash</span> should store Shared Object files ("flash 
cookies") if
+they are enabled.</td></tr><tr><td align="left">SOLreadonly</td><td 
align="left">on/off</td><td align="left">If set to <span 
class="emphasis"><em>on</em></span>, <span class="application">Gnash</span> 
will not write Shared Object files.</td></tr><tr><td 
align="left">URLOpenerFormat</td><td align="left">string</td><td align="left">
+Set the format of an url opener command. The %u label would be substituted by 
the actual url to be opened.
+Examples:
+<pre class="programlisting">
+ set urlOpenerFormat firefox -remote 'openurl(%u)'
+ set urlOpenerFormat xdg-open %u
+ set urlOpenerFormat open %u
+ set urlOpenerFormat kfmclient exec %u
+</pre>
+</td></tr></tbody></table></div></div><br class="table-break"><p>
+The following example <code class="filename">.gnashrc</code> file allows a 
user to only play Flash files saved locally to the machine on which <span 
class="application">Gnash</span> is running.  It also specifically forbids 
content from doubleclick.com and mochibot.com.  <span 
class="application">Gnash</span>'s error output is set to be fairly verbose, 
with the debug log placed in a location convenient for the user.  Finally, 
sound is turned on for both the standalone player and the plugin.
+</p><pre class="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
+
+    # Disable whitelists set in any other gnashrc files, because
+    # these could override our blacklist.
+    set whitelist off
+
+    # 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
+
+    # Make sure SSL connections are always verified
+    set insecureSSL off
+
+    # Use firefox to open urls
+    set urlOpenerFormat firefox -remote 'openurl(%u)'
+
+  </pre></div></div><div class="chapter" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a name="bugreport"></a>Chapter 
5. Reporting Bugs</h2></div></div></div><div class="toc"><p><b>Table of 
Contents</b></p><dl><dt><span class="sect1"><a 
href="#bugstep_newcheckout">Compile the latest <span 
class="application">Gnash</span> build</a></span></dt><dt><span 
class="sect1"><a href="#bugstep_search">Determine if the bug was previously 
reported</a></span></dt><dt><span class="sect1"><a 
href="#bugstep_guidelines">Review the bug writing 
guidelines</a></span></dt><dt><span class="sect1"><a 
href="#bugstep_file">Filing a bug report</a></span></dt></dl></div><p>
+The <span class="application">Gnash</span> project relies on the community to 
use and test the player; feedback is critical to any successful project.  Not 
only does it let us know that people use <span 
class="application">Gnash</span>, but it helps us understand the community's 
needs.  <span class="application">Gnash</span> uses a bug tracker on <a 
class="ulink" href="http://savannah.gnu.org"; 
target="_top">http://savannah.gnu.org</a> to manage these reports.
+</p><p>
+When filing a report, please follow the guidelines below. The better your bug 
report is, the easier it will be for the
+    developers to address the issue.
+</p><div class="orderedlist"><ol type="1"><li><p>
+        <a class="link" href="#bugstep_newcheckout" title="Compile the latest 
Gnash build">Compile the latest
+        <span class="application">Gnash</span> build.</a>
+      </p></li><li><p>
+        <a class="link" href="#bugstep_search" title="Determine if the bug was 
previously reported">Determine if the bug was
+        previously reported.</a>
+      </p></li><li><p>
+        <a class="link" href="#bugstep_guidelines" title="Review the bug 
writing guidelines">Review the bug writing 
+        guidelines.</a>
+      </p></li></ol></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="bugstep_newcheckout"></a>Compile the latest <span 
class="application">Gnash</span> build</h2></div></div></div><p>
+      Obtain a copy of the latest <a class="link" href="#sourcerepo" 
title="Repository">development
+      checkout</a> or <a class="link" href="#sourcesnapshot" 
title="Snapshot">development
+      snapshot</a>.  Put the source in an empty directory, then
+      <a class="link" href="#pre-configuration" title="Pre-Compile 
Configuration">configure</a> and 
+      <a class="link" href="#compile" title="Compiling the Code">compile</a> 
<span class="application">Gnash</span>.
+    </p><p>
+      If you are able to replicate the bug in the latest version, 
+      <a class="link" href="#bugstep_search" title="Determine if the bug was 
previously reported">proceed to the next step</a>.  If you cannot replicate the 
bug with the newer version, the problem may have been solved, or the issue may 
involve your environment
+    </p><p>
+To check this, create a fresh build of the version in which you encountered 
the bug.  If you can reproduce the bug with the fresh copy of the original 
version, but cannot with the latest version, this is most likely a resolved bug.
+</p><p>
+If you cannot reproduce the bug, it may still be unclear whether the bug is 
related to your environment or a <span class="application">Gnash</span> bug.  
Try to determine the source of the problem.  <span 
class="application">Gnash</span> offers several helpful debugging options in 
the configure stage, and many verbosity options at the command line to help.
+</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 
class="title" style="clear: both"><a name="bugstep_search"></a>Determine if the 
bug was previously reported</h2></div></div></div><p>
+      Search the <a class="ulink" 
href="https://savannah.gnu.org/bugs/?group=gnash"; target="_top"><span 
class="application">Gnash</span>
+      bug tracker</a> to see if the bug has already been identified.
+    </p><p>
+      If the issue has already been reported, you should not file
+      a bug report.  However, you may add some additional information
+      to the ticket if you feel that it will be beneficial to the
+      developers.  For instance, if someone reported a memory issue
+      on Ubuntu GNU/Linux, and you noticed the same problem on OpenBSD,
+      your stacktrace would be useful.  Conversely, adding a "me too"
+      note to a feature request is not helpful.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="bugstep_guidelines"></a>Review the bug writing 
guidelines</h2></div></div></div><p>
+      A good bug report should be precise, explicit, and discrete.
+      This means that there should be just one bug per ticket, and
+      that a ticket should contain the following information:
+</p><div class="itemizedlist"><ul type="opencircle"><li 
style="list-style-type: circle"><p>
+          An overview of the problem;
+</p></li><li style="list-style-type: circle"><p>
+          Instructions on how to replicate the bug;
+</p></li><li style="list-style-type: circle"><p>
+          A description of what happened when you performed the steps
+          to replicate the bug, and what you expected to happen;
+</p></li><li style="list-style-type: circle"><p>
+          Your system information: operating system name and version, as
+          well as the versions of major <a class="link" href="#codedepend" 
title="Code Dependencies">dependencies</a>;
+</p></li><li style="list-style-type: circle"><p>
+          The release number or checkout timestamp for the version of <span 
class="application">Gnash</span>
+          where you observe the problem;
+</p></li><li style="list-style-type: circle"><p>
+          The file <code class="filename">config.log</code>, which should be
+          attached as a file; and
+</p></li><li style="list-style-type: circle"><p>
+          A descriptive title.
+</p></li></ul></div><p>
+      Include any additional information that you feel might be useful
+      to the developers.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="bugstep_file"></a>Filing a bug report</h2></div></div></div><p>
+      After following the steps described above, you can file a bug report at 
+      <a class="ulink" href="https://savannah.gnu.org/bugs/?group=gnash"; 
target="_top">https://savannah.gnu.org/bugs/?group=gnash</a>.
+    </p></div></div><div class="glossary"><div class="titlepage"><div><div><h2 
class="title"><a name="glossary"></a>Glossary</h2></div></div></div><div 
class="glossdiv"><h3 class="title">A</h3><dl><dt>
+        ActionScript
+      </dt><dd><p>
+          <span class="emphasis"><em>ActionScript</em></span>, or "AS", is the 
scripting 
+          language for <span class="emphasis"><em>Flash</em></span>
+          applications. It is compiled to bytecode, which is a subset of
+          the <span class="emphasis"><em>SWF</em></span> format.
+        </p></dd><dt>
+      AGG
+      </dt><dd><p>
+          AGG is the AntiGrain 2D graphics library, which can be used as a 
renderer in Gnash. It is faster than OpenGL on systems without hardware 
graphics acceleration. As of Gnash version 0.7.2 it is the more feature 
complete renderer.
+        </p></dd><dt>
+        AMF
+      </dt><dd><p>
+          <span class="emphasis"><em>AMF</em></span> 
+          is the object format used by <span 
class="emphasis"><em>Flash</em></span> 
+          for shared objects and streaming video.
+        </p></dd><dt>
+      as_environment
+      </dt><dd><p>
+          In Gnash terms, the as_environment, or ActionScript execution 
environment, contains a stack of objects, characters and values which are in 
the immediate environment of the current fn_call. Please refer to the Gnash 
ActionScript manual for more information.
+        </p></dd></dl></div><div class="glossdiv"><h3 
class="title">C</h3><dl><dt>
+      Cairo
+      </dt><dd><p>
+          Cairo is a 2D graphics library with support for multiple output 
devices. Can be used as a renderer in Gnash. A useful feature of Cairo is that 
it will automatically use graphic card acceleration when available. Cairo has 
an experimental OpenGL backend.
+        </p></dd></dl></div><div class="glossdiv"><h3 
class="title">D</h3><dl><dt>
+      DejaGNU
+      </dt><dd><p>
+          DejaGNU is a framework for testing software.
+        </p></dd><dt>
+        DocBook
+      </dt><dd><p>
+          <span class="emphasis"><em>DocBook</em></span>
+           is a markup language for presentation-neutral 
+          documentation, such as manuals.
+        </p></dd><dt>
+        Doxygen
+      </dt><dd><p>
+          <span class="emphasis"><em>Doxygen</em></span> 
+          is a documentation generator for for multiple languages 
+          which uses comments in the source code to create stand-alone 
+          documentation. 
+        </p></dd><dt>
+      Drupal
+      </dt><dd><p>
+          Drupal is a CMS/blog system used for the main Gnash website.
+        </p></dd></dl></div><div class="glossdiv"><h3 
class="title">E</h3><dl><dt>
+        extensions
+      </dt><dd><p>
+          A <span class="application">Gnash</span> <span 
class="emphasis"><em>extension</em></span> is a plugin (not
+          a browser plugin) which
+          implements additional 
+          functionality beyond what is covered by 
+          <span class="emphasis"><em>Flash</em></span> specification. 
+          These are shared libraries which are loaded at runtime.
+        </p></dd></dl></div><div class="glossdiv"><h3 
class="title">F</h3><dl><dt>
+      ffmpeg
+      </dt><dd><p>
+          ffmpeg is an audio and video decoding library which can be used by 
Gnash to decode mp3, FLV and other media types. 
+        </p></dd><dt>
+        Flash
+      </dt><dd><p>
+          The glossterm <span class="emphasis"><em>Flash</em></span> is used 
to describe both the 
+          Adobe IDE for creating <span class="emphasis"><em>SWF</em></span>
+           files, and the technology itself.  
+          <span class="application">Gnash</span> documentation uses the latter 
definition.
+        </p></dd><dt>
+      FLV
+      </dt><dd><p>
+          FLV is a proprietary file format used to deliver Flash video. It is 
used by YouTube, among others. 
+        </p></dd><dt>
+      FLTK
+      </dt><dd><p>
+          FLTK, or the 'Fast Light ToolKit', is a portable GUI library which 
is intended to replace the SDL GUI. Currently in Gnash, FLTK may be used with 
the Cairo and AGG renderers. FLTK has an experimental Cairo backend.
+        </p></dd><dt>
+      FrameBuffer
+      </dt><dd><p>
+          In Gnash, this is a GUI library that outputs directly to the Linux 
Frame Buffer and so does not need a window system to run. This makes it 
particularly suitable for use on small devices.
+        </p></dd></dl></div><div class="glossdiv"><h3 
class="title">G</h3><dl><dt>
+      Gnash
+      </dt><dd><p>
+          Gnash is the GNU Flash movie player.
+        </p></dd><dt>
+      Gstreamer
+      </dt><dd><p>
+          Gstreamer is a multimedia framework which Gnash can use for decoding 
audio and video. Gstreamer itself cannot decode anything, so it needs some 
appropriate decoding-plugins to do the work for it. Remember to install them if 
you use Gnash with Gstreamer enabled. To get the best out of Gnashs 
gstreamer-parts, it is recommended to install the gst-plugins-good, 
gst-plugins-good and gst-ffmpeg plugins packages. 
+        </p></dd><dt>
+      GTK
+      </dt><dd><p>
+          GTK is the GIMP Toolkit GUI library. It is one of the GUI options 
for Gnash. As of Gnash 0.7.2, this is the more performant and feature-rich 
choice. GTK uses Cairo internally.
+        </p></dd><dt>
+        GUI
+      </dt><dd><p>
+          A <span class="emphasis"><em>GUI</em></span> is a 
+          "graphical user interface". In <span 
class="application">Gnash</span>, the GUI 
+          library provides a wrapper for mouse and keyboard events, 
+          menus, windowing (where available) and a drawing area. 
+          You must choose a GUI library during the
+          <a class="link" href="#pre-configuration" title="Pre-Compile 
Configuration">configuration</a> stage.
+        </p></dd></dl></div><div class="glossdiv"><h3 
class="title">K</h3><dl><dt>
+        Klash
+      </dt><dd><p>
+          <span class="emphasis"><em>Klash</em></span> was the name given to 
the stand-alone 
+          instance of <span class="application">Gnash</span> which used the 
KDE GUI.  It has been replaced with 
+          an implementation using Qt.  Some documentation may incorrectly
+          refer to the Konqueror plugin as <span 
class="emphasis"><em>Klash</em></span>.
+          The plugin was renamed <span class="emphasis"><em>Kpart</em></span>.
+        </p></dd><dt>
+        Kpart
+      </dt><dd><p>
+          <span class="emphasis"><em>Kpart</em></span> is a plugin for 
Konqueror which is
+          enabled with the <a class="link" href="#features" 
title="Features">configuration option</a>
+          <span class="emphasis"><em>--enable-klash</em></span>.
+        </p></dd></dl></div><div class="glossdiv"><h3 
class="title">L</h3><dl><dt>
+      libmad
+      </dt><dd><p>
+          libmad is a mp3-decoding library, which can be used by Gnash's sound 
handler to decode mp3-audio. 
+        </p></dd></dl></div><div class="glossdiv"><h3 
class="title">M</h3><dl><dt>
+        Mesa
+      </dt><dd><p>
+          <span class="emphasis"><em>Mesa</em></span> is the free software 
OpenGL 
+          implementation.  <span class="application">Gnash</span> 
documentation will sometimes use the
+          glossterms 'OpenGL' and 'Mesa' interchangeably.
+        </p></dd><dt>
+      Ming
+      </dt><dd><p>
+          Ming is a C library for generating SWF ("Flash") format movies, plus 
a set of wrappers for using the library. It is used by the Gnash project for 
generating testcases. 
+        </p></dd></dl></div><div class="glossdiv"><h3 
class="title">N</h3><dl><dt>
+      Nellymoser
+      </dt><dd><p>
+          Nellymoser is a proprietary audio codec introduced in the Flash 
Player in version 6. For more information, please see Wikipedia.
+        </p></dd></dl></div><div class="glossdiv"><h3 
class="title">O</h3><dl><dt>
+      OpenGL
+      </dt><dd><p>
+          OpenGL (Open Graphics Library) is a standard specification defining 
a cross-language cross-platform API for writing applications that produce 3D 
and 2D computer graphics. Accelerated graphic cards usually provide OpenGL at 
the hardware level. Please refer to Wikipedia for availability of free software 
OpenGL hardware drivers. A free software implementation of the API is available 
(Mesa). OpenGL can be used as a renderer in Gnash.
+        </p></dd><dt>
+      ORM
+      </dt><dd><p>
+          ORM is a system for ensuring the rights of the creator over a piece 
of digital content. It is more passive than DRM.
+        </p></dd></dl></div><div class="glossdiv"><h3 
class="title">P</h3><dl><dt>
+        plugin
+      </dt><dd><p>
+          The glossterm <span class="emphasis"><em>plugin</em></span> is used 
in <span class="application">Gnash</span> to
+          refer to both any <span class="application">Gnash</span> browser 
plugin, as well as the Firefox
+          plugin specifically.  The Konqueror plugin is called
+          <span class="emphasis"><em>Kpart</em></span>.  Sometimes, the term 
is used in
+          an even more generic sense to refer to 
+          <span class="emphasis"><em>extensions</em></span>.
+        </p></dd></dl></div><div class="glossdiv"><h3 
class="title">Q</h3><dl><dt>
+      Qt
+      </dt><dd><p>
+          Qt is a GUI library which is used by KDE. The plugin version of 
Gnash using this GUI library is Kpart. The standalone version is enabled with 
--enable-gui=kde.
+        </p></dd></dl></div><div class="glossdiv"><h3 
class="title">R</h3><dl><dt>
+        renderer
+      </dt><dd><p>
+          The <span class="emphasis"><em>renderer</em></span> is the subsystem 
of <span class="application">Gnash</span>
+          which renders content.  Only one renderer may be used; it is
+          chosen during <a class="link" href="#pre-configuration" 
title="Pre-Compile Configuration">configuration</a>.
+        </p><p>
+          Available renderers are: AGG, OpenGL, and Cairo. In terms of 
+          feature completeness, AGG comes first; followed by OpenGL and 
+          then Cairo. In most cases, AGG is preferred for performance, 
+          except cases where it is beneficial to have hardware accelerated 
+          rendering (for example, when you have a very slow CPU but a very 
+          fast graphics card). In this case OpenGL should be used.
+        </p></dd><dt>
+      RTMP
+      </dt><dd><p>
+          RTMP is the Real Time Messaging Protocol primarily used with to 
stream audio and video over the internet to the Flash Player client.
+        </p></dd><dt>
+      RTMPT
+      </dt><dd><p>
+          RTMPT is basically a HTTP wrapper around the RTMP protocol that is 
sent using POST requests from the client to the server. Because of the 
non-persistent nature of HTTP connections, RTMPT requires the clients to poll 
for updates periodically in order to get notified about events that are 
generated by the server or other clients. 
+        </p></dd><dt>
+      RTMPTS
+      </dt><dd><p>
+          RTMPTS is the same as RTMPT, but instead of being a HTTP wrapper, it 
is a HTTPSSL wrapper (HTTP secure connection).
+        </p></dd></dl></div><div class="glossdiv"><h3 
class="title">S</h3><dl><dt>
+      SDL
+      </dt><dd><p>
+          Simple DirectMedia Layer is a cross-platform multimedia free 
software library that creates an abstraction over various platforms' graphics, 
sound, and input APIs. Gnash can use it as a GUI and/or as a sound handler. 
Note that the two usages are independent of each other: you can use it for a 
task and not for the other if you wish. At time or writing (2007-01-11) the SDL 
GUI lacks menus and a performant input event architecture; the SDL sound 
handler is the most feature rich, supporting Video through ffmpeg.
+        </p></dd><dt>
+        sound handler
+      </dt><dd><p>
+          The <span class="emphasis"><em>sound handler</em></span> is the part 
of <span class="application">Gnash</span>
+          which handles both event sounds and streaming sound.  Audio
+          from external sources are also handled through the sound handler
+          when SDL is used.  The sound handler must be selected during
+          <a class="link" href="#pre-configuration" title="Pre-Compile 
Configuration">configuration</a>.
+        </p><p>
+          There are currently two sound handlers available in <span 
class="application">Gnash</span>:
+          SDL and Gstreamer.  The SDL sound handler uses ffmpeg or 
+          libmad for decoding mp3-audio, although it can be built without 
+          mp3-support. The Gstreamer-sound handler uses the available 
+          plugins to decode the audio, so it might not work if some 
+          important plugins are missing.  The SDL sound handler is 
+          recommended.  
+        </p></dd><dt>
+      sprite
+      </dt><dd><p>
+          A sprite is an element of an Flash Movie. It's basically a Movie 
inside another, having its own timeline.
+        </p></dd><dt>
+      Stage
+      </dt><dd><p>
+          The visible area of a Flash movie. The name derives from a theater 
analogy. Graphical elements are referred to as characters. 
+        </p></dd><dt>
+        SWF
+      </dt><dd><p>
+          <span class="emphasis"><em>SWF</em></span> is the file format for 
+          <span class="emphasis"><em>Flash</em></span> movies.
+        </p></dd></dl></div><div class="glossdiv"><h3 
class="title">T</h3><dl><dt>
+      Tamarin
+      </dt><dd><p>
+          The Tamarin project seeks to create an open source implementation of 
the ECMAScript 4th edition language specification. The code is used by Adobe as 
part of the ActionScript Virtual Machine within the Adobe Flash Player. Gnash 
does not use Tamarin; it already has a working virtual server and most 
ActionScript classes are implemented.
+        </p></dd><dt>
+      timeline
+      </dt><dd><p>
+          In Flash technology, a timeline is a sequence of "frames". A single 
Flash movie can contain multiple timelines, each independently controlled (STOP 
or PLAY). At regular intervals (FPS) the player advances all timelines in PLAY 
mode to the next frame, looping back when last frame is reached.
+        </p></dd></dl></div><div class="glossdiv"><h3 
class="title">X</h3><dl><dt>
+      X.org
+      </dt><dd><p>
+          X.org is the most commonly used X server; it was forked from XFree86.
+        </p></dd></dl></div></div><div class="sect3" lang="en"><div 
class="titlepage"><div><div><h4 class="title"><a name="amf"></a>AMF 
Format</h4></div></div></div><p>
+    The AMF format is used in the LocalConnection, SharedObject,
+    NetConnection, and NetStream ActionScript classes. This is a means
+    of binary data interchange between Flash movies, or between a
+    Flash player and a Flash server.
+  </p><p>
+    Like the RTMP messages, an AMF packet header can be of a variable
+    size. The size is either the same as the initial header of the
+    RTMP message, or a 1 byte header, which is commonly used for
+    streaming audio or video data.
+  </p><p>
+    The body of an AMF packet may look something like this
+    example. The spaces have been added for clarity.
+    
+    </p><pre class="screen">
+      02  0007 636f6e6e656374
+    </pre><p>
+
+    </p><div class="variablelist"><dl><dt><span 
class="term">02</span></dt><dd><p>
+           This is a single byte header. The value of the first 2
+           bits is 0x3, and the AMF index is also 0x3.
+         </p></dd><dt><span class="term">0007</span></dt><dd><p>
+           This is the length in bytes of the string.
+         </p></dd><dt><span class="term">63 6f 6e 6e 65 63 
74</span></dt><dd><p>
+           This is the string. Note that there is no null terminator
+           since the length is specified.
+         </p></dd></dl></div><p>
+
+  </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 
class="title"><a name="rtmp"></a>RTMP Protocol</h3></div></div></div><p>
+    This document is based mostly on my own reverse engineering of the
+    RTMP protocol and AMF format. <span 
class="emphasis"><em>tcpdump</em></span> and
+    <span class="emphasis"><em>ethereal</em></span> are your friend. Some 
additional info that got
+    me started was from the <a class="ulink" 
href="http://www.osflash.org/red5"; target="_top">Red5</a>
+    project. <span class="emphasis"><em>Red5</em></span> is the only other 
open source Flash
+    server. So some details are still vague, but as the implementation
+    appears to work, we'll figure out what they are later.
+  </p><p>
+    The Real Time Messaging Protocol was created by MacroMedia (now
+    Adobe) for delivering Flash objects and video over a network
+    connection. Currently the only servers which support this format
+    are the MacroMedia Media sever, and the Open Source Red5 project.
+  </p><p>
+    This is a simple protocol, optimized for poor bandwidth
+    connections. It can support up to 64 concurrent streams over the
+    same network connection. Part of each AMF packet header contains
+    the index number of the stream. A single RTMP message can contain
+    multiple AMF packets.
+  </p><p>
+    An RTMP connection uses Tcp/ip port 1935. It is also possible to
+    tunnel RTMP over an HTTP connection using port 80. Each AMF packet
+    is 128 bytes long except for streaming audio, which has 64 byte
+    packets.
+  </p><p>
+    The basics of the RTMP protocol are as follows. All communications
+    are initiated by the client.
+    </p><div class="mediaobject" align="center"><img src="images/rtmp.png" 
align="middle"></div><p>
+  </p><p>
+    The client starts the RTMP connection by sending a single byte
+    with a value of 0x3. This byte is followed by a data block of 1536
+    bytes. The format if this data block is unknown, but it appears to
+    not be actually used by the protocol except as a handshake.
+  </p><p>
+    The server receives this packet, stores the 1536 byte data block,
+    and then send a single byte with the value of 0x3, followed by two
+    1536 data blocks. The second data block is the full contents of
+    the original data block as sent by the client.
+  </p><p>
+    The client receives the 1536 byte data block, and if they match,
+    the connection is established. After the handshake process is
+    done, there are three other messages that the client sends to the
+    sever to start the data flowing.
+  </p><p>
+    The first AMF packet sent to the server contains the
+    <span class="emphasis"><em>connect</em></span> packet. This doesn't appear 
to do
+    much but notify the server the client is happy with the
+    handshake, and ready to start reading packets.
+  </p><p>
+    The second packet is the <span 
class="emphasis"><em>NetConnection</em></span> object from
+    the client. This ActionScript class is used by the Flash movie to
+    create the network connection to the server.
+  </p><p>
+    The third packet is the <span class="emphasis"><em>NetStream</em></span> 
object from the
+    client. This is the ActionScript class used to specify the file to
+    be streamed by the server.
+  </p><p>
+    The RTMP packet for our example looks like this:
+   
+    </p><pre class="programlisting">
+      030000190000c91400000000020007connect00?f0000000000000030003app0200#
+      software/gnash/tests/1153948634.flv0008flashVer02000cLNX 6,0,82,0 0006
+      swfUrl02001dfile:///file|%2Ftmp%2Fout.swfc30005tcUrl\002\0004
+      rtmp://localhost/software/gnash/tests/1153948634.flv\000\000\t
+      \002\000\005userx
+    </pre><p>
+    
+    We'll take this apart in a bit, but you can see how all three AMF
+    packets are in the same message. The message is received in
+    several 128 byte blocks, with the last one being less than
+    that. The total size of the RTMP message is in the header, so the
+    reader can tell if the entire message was read or not.
+  </p><p>
+    The RTMP header is first, followed by the connect message as an
+    ASCII string as the message body. The following AMF packet is the
+    <span class="emphasis"><em>NetConnection</em></span> one, which specifies 
that this is coming
+    from a Flash application. This also contains the file path the server
+    can use to find the file to stream. This is then followed by the
+    version number, which I assume is the version of the Flash player,
+    so the server knows what it is talking to.
+  </p><p>
+    The third packet is the one from <span 
class="emphasis"><em>NetStream</em></span>, which
+    specifies the URL used for the movie, followed by the user name
+    for a semblance of security.
+  </p><p>
+    For the next level of detail, we'll explain the format of AMF. AMF
+    is used by the RTMP protocol to transfer data. Each Flash object
+    is encapsulated in an AMF packet, including streaming audio or
+    video.
+  </p><p>
+    The first byte of the RTMP header determines two things about the
+    rest of the message. The first 2 bits of this byte signify the
+    total size of the RTMP header. The RTMP header is of a variable
+    size, so this is important.
+
+    </p><div class="variablelist"><dl><dt><span 
class="term">00</span></dt><dd><p>
+           This specifies the header contains 12 bytes, including
+           this one.
+         </p></dd><dt><span class="term">01</span></dt><dd><p>
+           This specifies the header contains 8 bytes, including this
+           one.
+         </p></dd><dt><span class="term">02</span></dt><dd><p>
+           This specifies the header contains 4 bytes, including this
+           one.
+         </p></dd><dt><span class="term">03</span></dt><dd><p>
+           This specifies the header contains 1 byte, so this is the
+           complete header.
+         </p></dd></dl></div><p>
+  </p><p>
+    The other 6 bits in this byte represent the AMF index. As a single
+    RTMP connection can support multiple data streams, this signifies
+    which stream this packet is for. Once an AMF object is fully
+    received by the client, the AMF index may be reused.
+  </p><p>
+    For messages with headers of at least 4 bytes, the next 3 bytes are
+    used by audio and video data packets, but at this time the meaning
+    of this field is unknown.
+  </p><p>
+    For messages with a 8 byte or larger header, the next 3 bytes
+    determine the size of the RTMP message being transmitted. Messages
+    with a 1 byte or 4 byte header use a standard size, 128 bytes for
+    video, and 64 bytes for audio.
+  </p><p>
+    For messages with an 8 byte or larger header, the next byte is the
+    type of the AMF object.
+    
+    </p><div class="variablelist"><dl><dt><span 
class="term">0x3</span></dt><dd><p>
+           This specifies the content type of the RTMP packet is the
+           number of bytes read. This is used to start the RTMP
+           connection.
+         </p></dd><dt><span class="term">0x4</span></dt><dd><p>
+           This specifies the content type of the RTMP message is a
+           <span class="emphasis"><em>ping</em></span> packet.
+         </p></dd><dt><span class="term">0x5</span></dt><dd><p>
+           This specifies the content type of the RTMP message is
+           server response of some type.
+         </p></dd><dt><span class="term">0x6</span></dt><dd><p>
+           This specifies the content type of the RTMP packet is
+           client request of some type.
+         </p></dd><dt><span class="term">0x8</span></dt><dd><p>
+           This specifies the content type of the RTMP packet is an
+           audio message.
+         </p></dd><dt><span class="term">0x9</span></dt><dd><p>
+           This specifies the content type of the RTMP message is a
+           video packet.
+         </p></dd><dt><span class="term">0x12</span></dt><dd><p>
+           This specifies the content type of the RTMP message is
+           notify. 
+         </p></dd><dt><span class="term">0x13</span></dt><dd><p>
+           This specifies the content type of the RTMP message is
+           shared object.
+         </p></dd><dt><span class="term">0x14</span></dt><dd><p>
+           This specifies the content type of the RTMP message is
+           remote procedure call. This invokes the method of a Flash
+           class remotely.
+         </p></dd></dl></div><p>     
+  
+  </p><p>
+    There are two sets of data types to consider. One set is used by
+    the to specify the content type of the AMF object, the other is an
+    ActionScript data type tag used to denote which type of object is
+    being transferred.
+  </p><p>
+    The values of the initial type byte are:
+    </p><div class="variablelist"><dl><dt><span 
class="term">0x0</span></dt><dd><p>
+           This specifies the data in the AMF packet is a numeric
+           value. All numeric values in Flash are 64 bit,
+           <span class="emphasis"><em>big-endian</em></span>.
+         </p></dd><dt><span class="term">0x1</span></dt><dd><p>
+           This specifies the data in the AMF packet is a boolean
+           value.
+         </p></dd><dt><span class="term">0x2</span></dt><dd><p>
+           This specifies the data in the AMF packet is an
+           <span class="emphasis"><em>ASCII</em></span> string. 
+         </p></dd><dt><span class="term">0x3</span></dt><dd><p>
+           This specifies the data in the AMF packet is a Flash
+           object. The Flash object data type field further along in
+           the message specifies which type of ActionScript object it
+           is.
+         </p></dd><dt><span class="term">0x4</span></dt><dd><p>
+           This specifies the data in the AMF packet is a Flash
+           movie, ie. another Flash movie.
+         </p></dd><dt><span class="term">0x5</span></dt><dd><p>
+           This specifies the data in the AMF packet is a NULL
+           value. NULL is often used as the return code from calling
+           Flash functions.
+         </p></dd><dt><span class="term">0x6</span></dt><dd><p>
+           This specifies the data in the AMF packet is a
+           undefined. This is also used as the return code from
+           calling Flash functions.
+         </p></dd><dt><span class="term">0x7</span></dt><dd><p>
+           This specifies the data in the AMF packet is a reference.
+         </p></dd><dt><span class="term">0x8</span></dt><dd><p>
+           This specifies the data in the AMF packet is a ECMA
+           array.
+         </p></dd><dt><span class="term">0x9</span></dt><dd><p>
+           This specifies the data in the AMF packet is the end of an
+           object definition. As an object is transmitted with
+           multiple AMF packets, this lets the server know when the
+           end of the object is reached.
+         </p></dd><dt><span class="term">0xa</span></dt><dd><p>
+           This specifies the data in the AMF packet is a Strict
+           array.
+         </p></dd><dt><span class="term">0xb</span></dt><dd><p>
+           This specifies the data in the AMF packet is a date.
+         </p></dd><dt><span class="term">0xc</span></dt><dd><p>
+           This specifies the data in the AMF packet is a multi-byte
+           string. Multi-byte strings are used for international
+           language support to represent non <span 
class="emphasis"><em>ASCII</em></span>
+           fonts.
+         </p></dd><dt><span class="term">0xd</span></dt><dd><p>
+           This specifies the data in the AMF packet is a an
+           unsupported feature.
+         </p></dd><dt><span class="term">0xe</span></dt><dd><p>
+           This specifies the data in the AMF packet is a record
+           set.
+         </p></dd><dt><span class="term">0xf</span></dt><dd><p>
+           This specifies the data in the AMF packet is a AML
+           object. XML objects are then parsed by the
+           <span class="emphasis"><em>XML</em></span> ActionScript class.
+         </p></dd><dt><span class="term">0x10</span></dt><dd><p>
+           This specifies the data in the AMF packet is a typed object.
+         </p></dd></dl></div><p>
+    
+  </p><p>
+    For messages with a 12 byte header, the last 4 bytes are the
+    routing of the message. If the destination is the server, this
+    value is the NetStream object source. If the destination is the
+    client, this is the NetStream object for this RTMP message. A
+    value of 0x00000000 appears to be reserved for the NetConnection
+    object. 
+  </p><p>
+    Multiple AMF streams can be contained in a single RTMP messages,
+    so it's important to check the index of each AMF packet.
+  </p><p>
+    An example RTMP header might look like this. (spaces added between
+    fields for clarity) All the numbers are in hex.
+
+    </p><pre class="screen">
+      03 000019 0000c9 14 000000000
+    </pre><p>
+    
+    </p><div class="variablelist"><dl><dt><span 
class="term">03</span></dt><dd><p>
+           The first two bits of this byte are the size of the
+           header, which in this example is 00, for a 12 byte
+           header. The next 6 bits is the AMF stream index number,
+           which in this example is 0x3.
+         </p></dd><dt><span class="term">000019</span></dt><dd><p>
+           These 3 bytes currently have an unknown purpose.
+         </p></dd><dt><span class="term">000c9</span></dt><dd><p>
+           Since this example has a 12 byte header, this is the size
+           of the RTMP message, in this case 201 bytes.
+         </p></dd><dt><span class="term">14</span></dt><dd><p>
+           This is the content type of the RTMP message, which in
+           this case is to invoke a remote function call. (which we
+           later see is the connect function).
+         </p></dd><dt><span class="term">00000000</span></dt><dd><p>
+           The source is the NetConnection object used to start this
+           connection.
+         </p></dd></dl></div><p>
+
+  </p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 
class="title"><a name="amf"></a>AMF Format</h4></div></div></div><p>
+    The AMF format is used in the LocalConnection, SharedObject,
+    NetConnection, and NetStream ActionScript classes. This is a means
+    of binary data interchange between Flash movies, or between a
+    Flash player and a Flash server.
+  </p><p>
+    Like the RTMP messages, an AMF packet header can be of a variable
+    size. The size is either the same as the initial header of the
+    RTMP message, or a 1 byte header, which is commonly used for
+    streaming audio or video data.
+  </p><p>
+    The body of an AMF packet may look something like this
+    example. The spaces have been added for clarity.
+    
+    </p><pre class="screen">
+      02  0007 636f6e6e656374
+    </pre><p>
+
+    </p><div class="variablelist"><dl><dt><span 
class="term">02</span></dt><dd><p>
+           This is a single byte header. The value of the first 2
+           bits is 0x3, and the AMF index is also 0x3.
+         </p></dd><dt><span class="term">0007</span></dt><dd><p>
+           This is the length in bytes of the string.
+         </p></dd><dt><span class="term">63 6f 6e 6e 65 63 
74</span></dt><dd><p>
+           This is the string. Note that there is no null terminator
+           since the length is specified.
+         </p></dd></dl></div><p>
+
+  </p></div></div><div class="chapter" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a name="authors"></a>Chapter 6. 
Authors</h2></div></div></div><p>
+        <span class="application">Gnash</span> is maintained by Rob Savoye 
<code class="email">&lt;<a class="email" 
href="mailto:address@hidden";>address@hidden</a>&gt;</code>.  
+        Other active developers are: Sandro Santilli, Bastiaan Jacques, 
+        and Tomas Groth.  Please send all comments and suggestions to
+        <code class="email">&lt;<a class="email" 
href="mailto:address@hidden";>address@hidden</a>&gt;</code>. 
+    </p><p>
+        <span class="application">Gnash</span> was initially derived from 
<span class="application">GameSWF</span>.
+        <span class="application">GameSWF</span> is maintained by
+        Thatcher Ulrich <code class="email">&lt;<a class="email" 
href="mailto:address@hidden";>address@hidden</a>&gt;</code>.  The following
+        people contributed to <span class="application">GameSWF</span>:
+        Mike Shaver, Thierry Berger-Perrin,
+        Ignacio Castaño, Willem Kokke, Vitaly Alexeev, Alexander Streit, 
+        and Rob Savoye.
+    </p></div><div class="appendix" lang="en"><div 
class="titlepage"><div><div><h2 class="title"><a name="fdl"></a>Appendix A. GNU 
Free Documentation License</h2></div><div><p class="releaseinfo">
+      Version 1.1, March 2000
+    </p></div><div><p class="copyright">Copyright © 2000 Free Software 
Foundation, Inc.</p></div><div><div class="legalnotice"><a 
name="fdl-legalnotice"></a><p>
+       </p><div class="address"><p>Free Software Foundation, Inc. <span 
class="street">59 Temple Place, <br>
+        Suite 330</span>, <span class="city">Boston</span>, <span 
class="state">MA</span>  <br>
+        <span class="postcode">02111-1307</span>  <span 
class="country">USA</span></p></div><p> 
+       Everyone is permitted to copy and distribute verbatim copies of this 
+        license document, but changing it is not allowed.
+      </p></div></div></div></div><div class="toc"><p><b>Table of 
Contents</b></p><dl><dt><span class="sect1"><a href="#fdl-preamble">0. 
PREAMBLE</a></span></dt><dt><span class="sect1"><a href="#fdl-section1">1. 
APPLICABILITY AND DEFINITIONS</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section2">2. VERBATIM COPYING</a></span></dt><dt><span 
class="sect1"><a href="#fdl-section3">3. COPYING IN 
QUANTITY</a></span></dt><dt><span class="sect1"><a href="#fdl-section4">4. 
MODIFICATIONS</a></span></dt><dt><span class="sect1"><a href="#fdl-section5">5. 
COMBINING DOCUMENTS</a></span></dt><dt><span class="sect1"><a 
href="#fdl-section6">6. COLLECTIONS OF DOCUMENTS</a></span></dt><dt><span 
class="sect1"><a href="#fdl-section7">7. AGGREGATION WITH INDEPENDENT 
WORKS</a></span></dt><dt><span class="sect1"><a href="#fdl-section8">8. 
TRANSLATION</a></span></dt><dt><span class="sect1"><a href="#fdl-section9">9. 
TERMINATION</a></span></dt><dt><span class="sect1"><a href="#fdl-section10">10. 
FUTURE REVISIONS OF THIS LICENSE</a></span></dt><dt><span class="sect1"><a 
href="#fdl-using">Addendum</a></span></dt></dl></div><div class="sect1" 
lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: 
both"><a name="fdl-preamble"></a>0. PREAMBLE</h2></div></div></div><p>
+      The purpose of this License is to make a manual, textbook, or
+      other written document "free" in the sense of
+      freedom: to assure everyone the effective freedom to copy and
+      redistribute it, with or without modifying it, either
+      commercially or non-commercially. Secondarily, this License
+      preserves for the author and publisher a way to get credit for
+      their work, while not being considered responsible for
+      modifications made by others.
+    </p><p>
+      This License is a kind of "copyleft", which means
+      that derivative works of the document must themselves be free in
+      the same sense. It complements the GNU General Public License,
+      which is a copyleft license designed for free software.
+    </p><p>
+      We have designed this License in order to use it for manuals for
+      free software, because free software needs free documentation: a
+      free program should come with manuals providing the same
+      freedoms that the software does. But this License is not limited
+      to software manuals; it can be used for any textual work,
+      regardless of subject matter or whether it is published as a
+      printed book. We recommend this License principally for works
+      whose purpose is instruction or reference.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section1"></a>1. APPLICABILITY AND 
DEFINITIONS</h2></div></div></div><p><a name="fdl-document"></a>
+      This License applies to any manual or other work that contains a
+      notice placed by the copyright holder saying it can be
+      distributed under the terms of this License. The
+      "Document", below, refers to any such manual or
+      work. Any member of the public is a licensee, and is addressed
+      as "you".
+    </p><p><a name="fdl-modified"></a>
+      A "Modified Version" of the Document means any work
+      containing the Document or a portion of it, either copied
+      verbatim, or with modifications and/or translated into another
+      language.
+    </p><p><a name="fdl-secondary"></a>
+      A "Secondary Section" is a named appendix or a
+      front-matter section of the <a class="link" 
href="#fdl-document">Document</a> that deals exclusively
+      with the relationship of the publishers or authors of the
+      Document to the Document's overall subject (or to related
+      matters) and contains nothing that could fall directly within
+      that overall subject. (For example, if the Document is in part a
+      textbook of mathematics, a Secondary Section may not explain any
+      mathematics.)  The relationship could be a matter of historical
+      connection with the subject or with related matters, or of
+      legal, commercial, philosophical, ethical or political position
+      regarding them.
+    </p><p><a name="fdl-invariant"></a>
+      The "Invariant Sections" are certain <a class="link" 
href="#fdl-secondary"> Secondary Sections</a> whose titles
+      are designated, as being those of Invariant Sections, in the
+      notice that says that the <a class="link" 
href="#fdl-document">Document</a> is released under this
+      License.
+    </p><p><a name="fdl-cover-texts"></a>
+      The "Cover Texts" are certain short passages of
+      text that are listed, as Front-Cover Texts or Back-Cover Texts,
+      in the notice that says that the <a class="link" 
href="#fdl-document">Document</a> is released under this
+      License.
+    </p><p><a name="fdl-transparent"></a>
+      A "Transparent" copy of the <a class="link" href="#fdl-document"> 
Document</a> means a machine-readable
+      copy, represented in a format whose specification is available
+      to the general public, whose contents can be viewed and edited
+      directly and straightforwardly with generic text editors or (for
+      images composed of pixels) generic paint programs or (for
+      drawings) some widely available drawing editor, and that is
+      suitable for input to text formatters or for automatic
+      translation to a variety of formats suitable for input to text
+      formatters. A copy made in an otherwise Transparent file format
+      whose markup has been designed to thwart or discourage
+      subsequent modification by readers is not Transparent.  A copy
+      that is not "Transparent" is called "Opaque".
+    </p><p>
+      Examples of suitable formats for Transparent copies include
+      plain ASCII without markup, Texinfo input format, LaTeX input
+      format, SGML or XML using a publicly available DTD, and
+      standard-conforming simple HTML designed for human
+      modification. Opaque formats include PostScript, PDF,
+      proprietary formats that can be read and edited only by
+      proprietary word processors, SGML or XML for which the DTD
+      and/or processing tools are not generally available, and the
+      machine-generated HTML produced by some word processors for
+      output purposes only.
+    </p><p><a name="fdl-title-page"></a>
+      The "Title Page" means, for a printed book, the
+      title page itself, plus such following pages as are needed to
+      hold, legibly, the material this License requires to appear in
+      the title page. For works in formats which do not have any title
+      page as such, "Title Page" means the text near the
+      most prominent appearance of the work's title, preceding the
+      beginning of the body of the text.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section2"></a>2. VERBATIM COPYING</h2></div></div></div><p>
+      You may copy and distribute the <a class="link" 
href="#fdl-document">Document</a> in any medium, either
+      commercially or noncommercially, provided that this License, the
+      copyright notices, and the license notice saying this License
+      applies to the Document are reproduced in all copies, and that
+      you add no other conditions whatsoever to those of this
+      License. You may not use technical measures to obstruct or
+      control the reading or further copying of the copies you make or
+      distribute. However, you may accept compensation in exchange for
+      copies. If you distribute a large enough number of copies you
+      must also follow the conditions in <a class="link" href="#fdl-section3" 
title="3. COPYING IN QUANTITY">section 3</a>.
+    </p><p>
+      You may also lend copies, under the same conditions stated
+      above, and you may publicly display copies.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section3"></a>3. COPYING IN QUANTITY</h2></div></div></div><p>
+      If you publish printed copies of the <a class="link" 
href="#fdl-document">Document</a> numbering more than 100,
+      and the Document's license notice requires <a class="link" 
href="#fdl-cover-texts">Cover Texts</a>, you must enclose
+      the copies in covers that carry, clearly and legibly, all these
+      Cover Texts: Front-Cover Texts on the front cover, and
+      Back-Cover Texts on the back cover. Both covers must also
+      clearly and legibly identify you as the publisher of these
+      copies. The front cover must present the full title with all
+      words of the title equally prominent and visible. You may add
+      other material on the covers in addition. Copying with changes
+      limited to the covers, as long as they preserve the title of the
+      <a class="link" href="#fdl-document">Document</a> and satisfy these
+      conditions, can be treated as verbatim copying in other
+      respects.
+    </p><p>
+      If the required texts for either cover are too voluminous to fit
+      legibly, you should put the first ones listed (as many as fit
+      reasonably) on the actual cover, and continue the rest onto
+      adjacent pages.
+    </p><p>
+      If you publish or distribute <a class="link" 
href="#fdl-transparent">Opaque</a> copies of the <a class="link" 
href="#fdl-document">Document</a> numbering more than 100,
+      you must either include a machine-readable <a class="link" 
href="#fdl-transparent">Transparent</a> copy along with
+      each Opaque copy, or state in or with each Opaque copy a
+      publicly-accessible computer-network location containing a
+      complete Transparent copy of the Document, free of added
+      material, which the general network-using public has access to
+      download anonymously at no charge using public-standard network
+      protocols. If you use the latter option, you must take
+      reasonably prudent steps, when you begin distribution of Opaque
+      copies in quantity, to ensure that this Transparent copy will
+      remain thus accessible at the stated location until at least one
+      year after the last time you distribute an Opaque copy (directly
+      or through your agents or retailers) of that edition to the
+      public.
+    </p><p>
+      It is requested, but not required, that you contact the authors
+      of the <a class="link" href="#fdl-document">Document</a> well before
+      redistributing any large number of copies, to give them a chance
+      to provide you with an updated version of the Document.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section4"></a>4. MODIFICATIONS</h2></div></div></div><p>
+      You may copy and distribute a <a class="link" 
href="#fdl-modified">Modified Version</a> of the <a class="link" 
href="#fdl-document">Document</a> under the conditions of
+      sections <a class="link" href="#fdl-section2" title="2. VERBATIM 
COPYING">2</a> and <a class="link" href="#fdl-section3" title="3. COPYING IN 
QUANTITY">3</a> above, provided that you release
+      the Modified Version under precisely this License, with the
+      Modified Version filling the role of the Document, thus
+      licensing distribution and modification of the Modified Version
+      to whoever possesses a copy of it. In addition, you must do
+      these things in the Modified Version:
+    </p><div class="itemizedlist"><ul type="opencircle"><li 
style="list-style-type: circle"><p><b>A. </b>
+           Use in the <a class="link" href="#fdl-title-page">Title
+           Page</a> (and on the covers, if any) a title distinct
+           from that of the <a class="link" href="#fdl-document">Document</a>, 
and from those of
+           previous versions (which should, if there were any, be
+           listed in the History section of the Document). You may
+           use the same title as a previous version if the original
+           publisher of that version gives permission.
+         </p></li><li style="list-style-type: circle"><p><b>B. </b>
+           List on the <a class="link" href="#fdl-title-page">Title
+           Page</a>, as authors, one or more persons or entities
+           responsible for authorship of the modifications in the
+           <a class="link" href="#fdl-modified">Modified Version</a>,
+           together with at least five of the principal authors of
+           the <a class="link" href="#fdl-document">Document</a> (all of
+           its principal authors, if it has less than five).
+         </p></li><li style="list-style-type: circle"><p><b>C. </b>
+           State on the <a class="link" href="#fdl-title-page">Title
+           Page</a> the name of the publisher of the <a class="link" 
href="#fdl-modified">Modified Version</a>, as the
+           publisher.
+         </p></li><li style="list-style-type: circle"><p><b>D. </b>
+           Preserve all the copyright notices of the <a class="link" 
href="#fdl-document">Document</a>.
+         </p></li><li style="list-style-type: circle"><p><b>E. </b>
+           Add an appropriate copyright notice for your modifications
+           adjacent to the other copyright notices.
+         </p></li><li style="list-style-type: circle"><p><b>F. </b>
+           Include, immediately after the copyright notices, a
+           license notice giving the public permission to use the
+           <a class="link" href="#fdl-modified">Modified Version</a> under
+           the terms of this License, in the form shown in the
+           Addendum below.
+         </p></li><li style="list-style-type: circle"><p><b>G. </b>
+           Preserve in that license notice the full lists of <a class="link" 
href="#fdl-invariant"> Invariant Sections</a> and
+           required <a class="link" href="#fdl-cover-texts">Cover
+           Texts</a> given in the <a class="link" 
href="#fdl-document">Document's</a> license notice.
+         </p></li><li style="list-style-type: circle"><p><b>H. </b>
+           Include an unaltered copy of this License.
+         </p></li><li style="list-style-type: circle"><p><b>I. </b>
+           Preserve the section entitled "History", and
+           its title, and add to it an item stating at least the
+           title, year, new authors, and publisher of the <a class="link" 
href="#fdl-modified">Modified Version </a>as given on
+           the <a class="link" href="#fdl-title-page">Title Page</a>.  If
+           there is no section entitled "History" in the
+           <a class="link" href="#fdl-document">Document</a>, create one
+           stating the title, year, authors, and publisher of the
+           Document as given on its Title Page, then add an item
+           describing the Modified Version as stated in the previous
+           sentence.
+         </p></li><li style="list-style-type: circle"><p><b>J. </b>
+           Preserve the network location, if any, given in the <a class="link" 
href="#fdl-document">Document</a> for public access
+           to a <a class="link" href="#fdl-transparent">Transparent</a>
+           copy of the Document, and likewise the network locations
+           given in the Document for previous versions it was based
+           on. These may be placed in the "History"
+           section.  You may omit a network location for a work that
+           was published at least four years before the Document
+           itself, or if the original publisher of the version it
+           refers to gives permission.
+         </p></li><li style="list-style-type: circle"><p><b>K. </b>
+           In any section entitled "Acknowledgements" or
+           "Dedications", preserve the section's title,
+           and preserve in the section all the substance and tone of
+           each of the contributor acknowledgements and/or
+           dedications given therein.
+         </p></li><li style="list-style-type: circle"><p><b>L. </b>
+           Preserve all the <a class="link" href="#fdl-invariant">Invariant
+           Sections</a> of the <a class="link" 
href="#fdl-document">Document</a>, unaltered in their
+           text and in their titles.  Section numbers or the
+           equivalent are not considered part of the section titles.
+         </p></li><li style="list-style-type: circle"><p><b>M. </b>
+           Delete any section entitled
+           "Endorsements". Such a section may not be
+           included in the <a class="link" href="#fdl-modified">Modified
+           Version</a>.
+         </p></li><li style="list-style-type: circle"><p><b>N. </b>
+           Do not retitle any existing section as
+           "Endorsements" or to conflict in title with
+           any <a class="link" href="#fdl-invariant">Invariant
+           Section</a>.
+         </p></li></ul></div><p>
+      If the <a class="link" href="#fdl-modified">Modified Version</a>
+      includes new front-matter sections or appendices that qualify as
+      <a class="link" href="#fdl-secondary">Secondary Sections</a> and
+      contain no material copied from the Document, you may at your
+      option designate some or all of these sections as invariant. To
+      do this, add their titles to the list of <a class="link" 
href="#fdl-invariant">Invariant Sections</a> in the
+      Modified Version's license notice.  These titles must be
+      distinct from any other section titles.
+    </p><p>
+      You may add a section entitled "Endorsements",
+      provided it contains nothing but endorsements of your <a class="link" 
href="#fdl-modified">Modified Version</a> by various
+      parties--for example, statements of peer review or that the text
+      has been approved by an organization as the authoritative
+      definition of a standard.
+    </p><p>
+      You may add a passage of up to five words as a <a class="link" 
href="#fdl-cover-texts">Front-Cover Text</a>, and a passage
+      of up to 25 words as a <a class="link" 
href="#fdl-cover-texts">Back-Cover Text</a>, to the end of
+      the list of <a class="link" href="#fdl-cover-texts">Cover Texts</a>
+      in the <a class="link" href="#fdl-modified">Modified Version</a>.
+      Only one passage of Front-Cover Text and one of Back-Cover Text
+      may be added by (or through arrangements made by) any one
+      entity. If the <a class="link" href="#fdl-document">Document</a>
+      already includes a cover text for the same cover, previously
+      added by you or by arrangement made by the same entity you are
+      acting on behalf of, you may not add another; but you may
+      replace the old one, on explicit permission from the previous
+      publisher that added the old one.
+    </p><p>
+      The author(s) and publisher(s) of the <a class="link" 
href="#fdl-document">Document</a> do not by this License
+      give permission to use their names for publicity for or to
+      assert or imply endorsement of any <a class="link" 
href="#fdl-modified">Modified Version </a>.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section5"></a>5. COMBINING DOCUMENTS</h2></div></div></div><p>
+      You may combine the <a class="link" href="#fdl-document">Document</a>
+      with other documents released under this License, under the
+      terms defined in <a class="link" href="#fdl-section4" title="4. 
MODIFICATIONS">section 4</a>
+      above for modified versions, provided that you include in the
+      combination all of the <a class="link" href="#fdl-invariant">Invariant
+      Sections</a> of all of the original documents, unmodified,
+      and list them all as Invariant Sections of your combined work in
+      its license notice.
+    </p><p>
+      The combined work need only contain one copy of this License,
+      and multiple identical <a class="link" href="#fdl-invariant">Invariant
+      Sections</a> may be replaced with a single copy. If there are
+      multiple Invariant Sections with the same name but different
+      contents, make the title of each such section unique by adding
+      at the end of it, in parentheses, the name of the original
+      author or publisher of that section if known, or else a unique
+      number. Make the same adjustment to the section titles in the
+      list of Invariant Sections in the license notice of the combined
+      work.
+    </p><p>
+      In the combination, you must combine any sections entitled
+      "History" in the various original documents,
+      forming one section entitled "History"; likewise
+      combine any sections entitled "Acknowledgements",
+      and any sections entitled "Dedications".  You must
+      delete all sections entitled "Endorsements."
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section6"></a>6. COLLECTIONS OF DOCUMENTS</h2></div></div></div><p>
+      You may make a collection consisting of the <a class="link" 
href="#fdl-document">Document</a> and other documents
+      released under this License, and replace the individual copies
+      of this License in the various documents with a single copy that
+      is included in the collection, provided that you follow the
+      rules of this License for verbatim copying of each of the
+      documents in all other respects.
+    </p><p>
+      You may extract a single document from such a collection, and
+      distribute it individually under this License, provided you
+      insert a copy of this License into the extracted document, and
+      follow this License in all other respects regarding verbatim
+      copying of that document.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section7"></a>7. AGGREGATION WITH INDEPENDENT 
WORKS</h2></div></div></div><p>
+      A compilation of the <a class="link" href="#fdl-document">Document</a> 
or its derivatives with
+      other separate and independent documents or works, in or on a
+      volume of a storage or distribution medium, does not as a whole
+      count as a <a class="link" href="#fdl-modified">Modified Version</a>
+      of the Document, provided no compilation copyright is claimed
+      for the compilation.  Such a compilation is called an
+      "aggregate", and this License does not apply to the
+      other self-contained works thus compiled with the Document , on
+      account of their being thus compiled, if they are not themselves
+      derivative works of the Document.  If the <a class="link" 
href="#fdl-cover-texts">Cover Text</a> requirement of <a class="link" 
href="#fdl-section3" title="3. COPYING IN QUANTITY">section 3</a> is applicable 
to these
+      copies of the Document, then if the Document is less than one
+      quarter of the entire aggregate, the Document's Cover Texts may
+      be placed on covers that surround only the Document within the
+      aggregate. Otherwise they must appear on covers around the whole
+      aggregate.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section8"></a>8. TRANSLATION</h2></div></div></div><p>
+      Translation is considered a kind of modification, so you may
+      distribute translations of the <a class="link" 
href="#fdl-document">Document</a> under the terms of <a class="link" 
href="#fdl-section4" title="4. MODIFICATIONS">section 4</a>. Replacing <a 
class="link" href="#fdl-invariant"> Invariant Sections</a> with
+      translations requires special permission from their copyright
+      holders, but you may include translations of some or all
+      Invariant Sections in addition to the original versions of these
+      Invariant Sections. You may include a translation of this
+      License provided that you also include the original English
+      version of this License. In case of a disagreement between the
+      translation and the original English version of this License,
+      the original English version will prevail.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section9"></a>9. TERMINATION</h2></div></div></div><p>
+      You may not copy, modify, sublicense, or distribute the <a class="link" 
href="#fdl-document">Document</a> except as expressly
+      provided for under this License. Any other attempt to copy,
+      modify, sublicense or distribute the Document is void, and will
+      automatically terminate your rights under this License. However,
+      parties who have received copies, or rights, from you under this
+      License will not have their licenses terminated so long as such
+      parties remain in full compliance.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-section10"></a>10. FUTURE REVISIONS OF THIS 
LICENSE</h2></div></div></div><p>
+      The <a class="ulink" href="http://www.gnu.org/fsf/fsf.html"; 
target="_top">Free Software
+      Foundation</a> may publish new, revised versions of the GNU
+      Free Documentation License from time to time. Such new versions
+      will be similar in spirit to the present version, but may differ
+      in detail to address new problems or concerns. See <a class="ulink" 
href="http://www.gnu.org/copyleft"; 
target="_top">http://www.gnu.org/copyleft/</a>.
+    </p><p>
+      Each version of the License is given a distinguishing version
+      number. If the <a class="link" href="#fdl-document">Document</a>
+      specifies that a particular numbered version of this License
+      "or any later version" applies to it, you have the
+      option of following the terms and conditions either of that
+      specified version or of any later version that has been
+      published (not as a draft) by the Free Software Foundation. If
+      the Document does not specify a version number of this License,
+      you may choose any version ever published (not as a draft) by
+      the Free Software Foundation.
+    </p></div><div class="sect1" lang="en"><div 
class="titlepage"><div><div><h2 class="title" style="clear: both"><a 
name="fdl-using"></a>Addendum</h2></div></div></div><p>
+      To use this License in a document you have written, include a copy of
+      the License in the document and put the following copyright and
+      license notices just after the title page:
+    </p><div class="blockquote"><blockquote class="blockquote"><p>
+       Copyright  YEAR YOUR NAME.
+      </p><p>
+       Permission is granted to copy, distribute and/or modify this
+       document under the terms of the GNU Free Documentation
+       License, Version 1.1 or any later version published by the
+       Free Software Foundation; with the <a class="link" 
href="#fdl-invariant">Invariant Sections</a> being LIST
+       THEIR TITLES, with the <a class="link" 
href="#fdl-cover-texts">Front-Cover Texts</a> being LIST,
+       and with the <a class="link" href="#fdl-cover-texts">Back-Cover
+       Texts</a> being LIST.  A copy of the license is included in
+       the section entitled "GNU Free Documentation
+       License".
+      </p></blockquote></div><p>
+      If you have no <a class="link" href="#fdl-invariant">Invariant
+      Sections</a>, write "with no Invariant Sections"
+      instead of saying which ones are invariant.  If you have no
+      <a class="link" href="#fdl-cover-texts">Front-Cover Texts</a>, write
+      "no Front-Cover Texts" instead of
+      "Front-Cover Texts being LIST"; likewise for <a class="link" 
href="#fdl-cover-texts">Back-Cover Texts</a>.
+    </p><p>
+      If your document contains nontrivial examples of program code,
+      we recommend releasing these examples in parallel under your
+      choice of free software license, such as the <a class="ulink" 
href="http://www.gnu.org/copyleft/gpl.html"; target="_top"> GNU General Public
+      License</a>, to permit their use in free software.
+    </p></div></div></div></body></html>

Index: packaging/doc/gnash.info.in
===================================================================
RCS file: packaging/doc/gnash.info.in
diff -N packaging/doc/gnash.info.in
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ packaging/doc/gnash.info.in 16 Feb 2008 17:51:06 -0000      1.1
@@ -0,0 +1,1966 @@
+START-INFO-DIR-ENTRY
+This is gnash.info, produced by makeinfo version 4.11 from gnash.texi.
+
+* Gnash Developer's Guide version 0.4.3: 
(gnash_developer's_guide_version_0.4.3).
+                                                  [MISSING TEXT]
+END-INFO-DIR-ENTRY
+
+
+File: gnash.info,  Node: Top,  Next: Introduction,  Up: (dir)
+
+Gnash Developer's Guide version 0.4.3
+*************************************
+
+* Menu:
+
+* Introduction::
+* Technical Specifications::
+* Installing and Configuring Gnash::
+* Using Gnash::
+* Reporting Bugs::
+* Glossary::
+* AMF Format: AMF Format <1>.
+* RTMP Protocol::
+* Authors::
+* GNU Free Documentation License::
+
+--- The Detailed Node Listing ---
+
+Introduction
+
+* What does Gnash run on?::
+* What Versions of Flash are Supported?::
+* Audience::
+* Guide Conventions::
+* Acknowledgments::
+
+Technical Specifications
+
+* ActionScript::
+* Memory Management::
+* Security::
+
+Installing and Configuring Gnash
+
+* Requirements::
+* Downloading Gnash::
+* Pre-Compile Configuration::
+* Building from Source::
+* Installation::
+
+Using Gnash
+
+* Gnash Command Line Options::
+* Gnash Interactive Control Keys::
+* User Configuration File::
+
+Reporting Bugs
+
+* Compile the latest Gnash build::
+* Determine if the bug was previously reported::
+* Review the bug writing guidelines::
+* Filing a bug report::
+
+RTMP Protocol
+
+* AMF Format: AMF Format <1>.
+
+GNU Free Documentation License
+
+* 0. PREAMBLE: 0_ PREAMBLE.
+* 1. APPLICABILITY AND DEFINITIONS: 1_ APPLICABILITY AND DEFINITIONS.
+* 2. VERBATIM COPYING: 2_ VERBATIM COPYING.
+* 3. COPYING IN QUANTITY: 3_ COPYING IN QUANTITY.
+* 4. MODIFICATIONS: 4_ MODIFICATIONS.
+* 5. COMBINING DOCUMENTS: 5_ COMBINING DOCUMENTS.
+* 6. COLLECTIONS OF DOCUMENTS: 6_ COLLECTIONS OF DOCUMENTS.
+* 7. AGGREGATION WITH INDEPENDENT WORKS: 7_ AGGREGATION WITH INDEPENDENT WORKS.
+* 8. TRANSLATION: 8_ TRANSLATION.
+* 9. TERMINATION: 9_ TERMINATION.
+* 10. FUTURE REVISIONS OF THIS LICENSE: 10_ FUTURE REVISIONS OF THIS LICENSE.
+* Addendum::
+
+
+File: gnash.info,  Node: Introduction,  Next: Technical Specifications,  Prev: 
Top,  Up: Top
+
+1 Introduction
+**************
+
+Gnash is a free Flash movie player.  It is available as a stand-alone
+application or as a plugin for several popular browsers.
+
+   Gnash is based on the excellent work done on the public domain
+program GameSWF, which is a graphics library for games that contains
+the heart of a Flash interpreter.  In December 2005, Gnash was forked
+from GameSWF and repackaged in the GNU project style.  The objective of
+Gnash is to create an enterprise-quality Flash movie player that can be
+widely deployed.
+
+* Menu:
+
+* What does Gnash run on?::
+* What Versions of Flash are Supported?::
+* Audience::
+* Guide Conventions::
+* Acknowledgments::
+
+
+File: gnash.info,  Node: What does Gnash run on?,  Next: What Versions of 
Flash are Supported?,  Up: Introduction
+
+1.1 What does Gnash run on?
+===========================
+
+The list of successful Gnash deployments grows every day.  At this
+time, Gnash has been found to run on several different UNIX and Linux
+distributions.  The plugin currently works with any browser that uses
+the NSAPI. This includes:
+
+   * Mozilla `http://www.mozilla.org'
+
+   * Firefox `http://www.mozilla.com/en-US/firefox'
+
+   * Galeon `galeon.sourceforge.net'
+
+   * Epiphany `gnome.org/projects/epiphany'
+
+   * Konqueror `http://www.konqueror.org'
+
+   * Opera `http://www.opera.com'
+
+   * OLPC Web Activity `http://www.laptop.org'
+
+
+File: gnash.info,  Node: What Versions of Flash are Supported?,  Next: 
Audience,  Prev: What does Gnash run on?,  Up: Introduction
+
+1.2 What Versions of Flash are Supported?
+=========================================
+
+Gnash supports the majority of Flash opcodes up to SWF version 7, and a
+wide sampling of ActionScript classes for SWF version 7.   There are
+plans to work towards greater support for SWF 8 and beyond.  AMF
+support is minimal.
+
+
+File: gnash.info,  Node: Audience,  Next: Guide Conventions,  Prev: What 
Versions of Flash are Supported?,  Up: Introduction
+
+1.3 Audience
+============
+
+This manual is primarily focused on developers interested in
+contributing to or building from the Gnash project.  It serves as a
+detailed reference guide, including a catalog and explanation of all
+options and features.  This level of detail may make this guide
+cumbersome for the average user, although advanced users may find it
+helpful.
+
+   Those who are new to Gnash will find the Gnash User's Guide,
+currently under development, to be more useful when learning to use
+Gnash.
+
+
+File: gnash.info,  Node: Guide Conventions,  Next: Acknowledgments,  Prev: 
Audience,  Up: Introduction
+
+1.4 Guide Conventions
+=====================
+
+This guide makes use of the following fairly standard typefaces,
+highlighting, and language usage:
+
+application
+     The typeface above will be used whenever an application, such as
+     Firefox or OpenOffice.org, is mentioned.
+
+`command'
+     The typeface above will be used whenever the text instructs a user
+     to enter a command at a shell prompt in UNIX/Linux, such as `ls'.
+
+`computeroutput'
+     This is the typeface used to indicate information produced on
+     `stdout' by the computer.  This include error messages and prompts.
+
+`filename'
+     This typeface indicates that the text is the name (and possibly
+     the path) of a specific file on the system in question.  For
+     example, `/etc/hosts' would appear in this typeface.
+
+guibutton
+     This formatting indicates a button on a Graphical User Interface
+     (GUI).  If this formatting appears, look for a button with the
+     same text on the GUI of the Gnash player; the button itself may
+     look slightly different.
+
+guimenu
+     This typeface indicates the topmost menu item in a GUI.  For
+     example, in many applications the File menu item is a top=level
+     menu item.
+
+guimenuitem
+     This typeface indicates a sub-menu item in a GUI.  For example, in
+     many applications the Save As menu item is a sub-menu item.
+
+guitext
+     This typeface indicates a text string on the GUI.  This is
+     generally a text string that appears on the GUI that is not a
+     button or menuitem.
+
+<key>
+     This typeface indicates a specific key on the keyboard.  For
+     example, the <Ctrl> key appears in this typeface.
+
+<key><combination>
+     This formatting indicates a set of keys to be pressed at the same
+     time.  A familiar key combination is <Ctrl><Alt><Delete>.
+
+<REPLACEABLE>
+     Whenever a general term is included in an example as a
+     placeholder, it will be signaled by this formatting.  This
+     formatting will usually appear inside other formatting.  For
+     example, `/home/<USERNAME>' indicates the home directory of a
+     user, whose actual username would be substituted in for <USERNAME>.
+
+`User input'
+     This typeface indicates anything that the user must enter, whether
+     that is at a shell prompt or in response to a GUI prompt.
+
+
+File: gnash.info,  Node: Acknowledgments,  Prev: Guide Conventions,  Up: 
Introduction
+
+1.5 Acknowledgments
+===================
+
+The first version of this guide was written by Rob Savoye.  If not for
+his tireless efforts, this book - and this project - would never have
+come this far.
+
+   John Steinhart has also been dedicated to the project from the
+beginning. I have shamelessly plagiarized one of his early announcement
+emails in the early part of this chapter.
+
+   Ann Barcomb was instrumental in taking this guide from the 0.3.0 to
+the 0.4.0 version, incorporating the many changes that came with Gnash
+version 0.8.0.
+
+   Finally, thanks to all of the Gnash developers I haven't mentioned
+for all their hard work, and for answering my unending questions.
+
+
+File: gnash.info,  Node: Technical Specifications,  Next: Installing and 
Configuring Gnash,  Prev: Introduction,  Up: Top
+
+2 Technical Specifications
+**************************
+
+The information in this chapter may change quickly.  For the most
+current information about the following subjects, be sure the check the
+Developer's Wiki at `http://www.gnashdev.org/wiki/index.php/Main_Page'.
+
+* Menu:
+
+* ActionScript::
+* Memory Management::
+* Security::
+
+
+File: gnash.info,  Node: ActionScript,  Next: Memory Management,  Up: 
Technical Specifications
+
+2.1 ActionScript
+================
+
+As stated in the section *note What Versions of Flash are Supported?::,
+Gnash has implemented about 80% of ActionScript v. 2.0, and has begun
+implementing ActionScript v. 3.0.  Gnash supports the majority of Flash
+opcodes up to SWF version 7, and a wide sampling of ActionScript
+classes for SWF version 7.
+
+   The following table indicates how fully various ActionScript classes
+have been implemented:
+
+   *ActionScript Classes*
+
+Class                                Status
+Actionscript/Date                    Implemented
+Actionscript/Function                Implemented
+Actionscript/MovieClip               Implemented
+Actionscript/MovieClipLoader         Implemented
+Actionscript/Object                  Implemented
+Actionscript/Sound                   Implemented
+Actionscript/String                  Implemented
+Actionscript/XMLNode                 Implemented
+Actionscript/XMLSocket               Implemented
+Actionscript/_global                 Partially Implemented
+Actionscript/Array                   Partially Implemented
+Actionscript/LocalConnection         Partially Implemented
+Actionscript/NetConnection           Partially Implemented
+Actionscript/NetStream               Partially Implemented
+Actionscript/TextField               Partially Implemented
+Actionscript/XML                     Partially Implemented
+Actionscript/Boolean                 Unimplemented
+Actionscript/Error                   Unimplemented
+Actionscript/LoadVars                Unimplemented
+Actionscript/Number                  Unimplemented
+Actionscript/Selection               Unimplemented
+Actionscript/TextFormat              Unimplemented
+Actionscript/Unknown                 Unimplemented
+
+   The next table indicates which opcodes have been implemented:
+
+   *Opcodes*
+
+Opcode                               Status
+0x43 declare_obj                     Implemented
+0x2B cast                            Implemented
+0x3B delete2 - SWF::ACTION_DELETE    Implemented
+0x53 new_method                      Implemented
+0x55 enum_object                     Implemented
+0x3A delete - SWF::ACTION_DELETEVAR  Implemented
+0x69 Extends - SWF::ACTION_EXTENDS   Implemented
+0x54 instance_of                     Partially Implemented
+0x2A Throw                           Unimplemented
+0x2C Implements                      Unimplemented
+0x8F Try                             Unimplemented
+0x31 md length                       Unimplemented
+0x35 md substring                    Unimplemented
+0x37 md chr                          Unimplemented
+0x45 get target                      Unimplemented
+
+
+File: gnash.info,  Node: Memory Management,  Next: Security,  Prev: 
ActionScript,  Up: Technical Specifications
+
+2.2 Memory Management
+=====================
+
+One of the new features of Gnash 0.8.2 is the garbage collector.  The
+garbage collector manages complex ActionScript variables, which are the
+only ones that are shared by references.  In Gnash, these are
+`as_object' class instances created by ActionScript (i.e. not those
+created by playhead control: `placeobject'/`removeobject').
+
+   Collected objects are those allocated due to ActionScript explicit
+or implicit calls.  Explicit all are any user-defined statements that
+allocate new objects, such as arrays, Objects, or script-created
+movieclips.  Implicit calls are the built-in functions that can be
+deleted by arbitrary user calls.
+
+   Any object that is a candidate for garbage collecting is stored in a
+list owned by the collector.  This list is filled by an executing
+action context whenever a collectible object is allocated on the heap.
+
+   The garbage collector starts at the very end of an execution
+context, rather than using a threshold to trigger it.  At this point,
+the virtual machine is in a "stable" state; any still-reachable object
+has its roots in one of the currently live character instances (stage
+characters).
+
+   The collector is a conservative collector.  Any object on the
+collectibles list is marked as UNREACHABLE, an iterative scan starting
+from the roots marks any still-reachable object, and a final purge
+releases all still-UNREACHABLE resources.
+
+   This garbage collector has reduced the memory footprint of Gnash.
+However, the most current, available test data indicated the following
+runtime memory footprint:
+
+   *Memory Footprint*
+
+Render GUI         Virtual Memory     Resident Set Size  Shared Memory
+                                      (physical RAM      (code size)
+agg-gtk            33372 KB           14 MB              8948 KB
+agg-sdl            26564 KB           9396 KB            5124 KB
+agg-fltk           24556 KB           8992 KB            4220 KB
+cairo-fltk         184 MB             128 MB             4284 KB
+cairo-gtk          192 MB             133 MB             8000 KB
+cairo-sdl          187 MB             129 MB             5256 KB
+opengl-gtk         62620 KB           15 MB              9336 KB
+opengl-sdl         54932 KB           10 MB              5324 KB
+
+
+File: gnash.info,  Node: Security,  Prev: Memory Management,  Up: Technical 
Specifications
+
+2.3 Security
+============
+
+Many Flash implementations contain potential security exploits that
+could compromise a viewer's system.  With Gnash, an end-user has the
+ability to see "what's going on" -- what types of data the application
+accesses, where it is found, and how it is used.  Many known Flash
+exploits are included in the Gnash test suite that is used to check
+whether a release is ready for the public.  The Gnash developers are
+also in the process of a security review, developing a security layer
+that will protect an end-user, no matter what operating system they use.
+
+   One early security feature is the blacklist/whitelist.  Flash movies
+running in a browser can make outgoing network connections. This can be
+used, for example, to compromise a network device inside a company
+firewall via a Flash movie running on an employee's browser. Gnash
+allows you to blacklist hosts that you know are insecure, or to
+whitelist hosts you know are secure, by editing a configuration file.
+
+
+File: gnash.info,  Node: Installing and Configuring Gnash,  Next: Using Gnash, 
 Prev: Technical Specifications,  Up: Top
+
+3 Installing and Configuring Gnash
+**********************************
+
+There are two ways of installing Gnash: using a package manager (*note
+Using a Package Manager::) or installing from source (*note Getting the
+Source::).
+
+* Menu:
+
+* Requirements::
+* Downloading Gnash::
+* Pre-Compile Configuration::
+* Building from Source::
+* Installation::
+
+
+File: gnash.info,  Node: Requirements,  Next: Downloading Gnash,  Up: 
Installing and Configuring Gnash
+
+3.1 Requirements
+================
+
+Before downloading and installing Gnash, check that your hardware and
+software meet the following requirements.
+
+* Menu:
+
+* Hardware Requirements::
+* Software Requirements::
+
+
+File: gnash.info,  Node: Hardware Requirements,  Next: Software Requirements,  
Up: Requirements
+
+3.1.1 Hardware Requirements
+---------------------------
+
+One of the goals of Gnash is to make it portable enough to install on
+small devices.  As a result, the hardware requirements are minimal.
+Gnash has even run on an ARM9 at 200 MHz with 64 MB of RAM! (It ran
+without video support in this case.)   While firm minimums have not
+been established, Gnash has been shown to run successfully with the
+following:
+
+   * 336 MHz processor
+
+   * 256 MB RAM
+
+   * Video -- Gnash will run on anything from a raw frame buffer up to
+     an OpenGL-supporting graphics card.
+
+   The following table provides a list of the Operating System/CPU
+combinations on which Gnash has been shown to run.
+
+*Build Matrix*
+
+Render GUI                           Virtual Memory
+FreeBSD                              Alpha AXP, AMD64, i386, Itanium,
+                                     PC-98, PowerPC, SPARC64
+GNU/Linux                            CRIS
+GNU/Linux [OLPC]                     Geode GX
+GNU/Linux ALTLinux                   i586
+GNU/Linux Arklinux                   i586
+GNU/Linux Debian                     Alpha AXP, AMD64, ARM, hppa, i386,
+                                     Itanium, MIPS, PowerPC, IBM zSeries
+                                     (s390), SPARC
+GNU/Linux Fedora core                x86-32, x86-64
+GNU/Linux Gentoo                     AMD64, PowerPC, SPARC, x86
+GNU/Linux Gentoo                     AMD64, PowerPC, SPARC, x86
+GNU/Linux Maemo 2.1                  ARMv5t
+GNU/Linux Mandriva 2007              
+GNU/Linux Open Zaurus                ARM
+GNU/Linux OpenSuSE 10                i586, x86-64
+GNU/Linux Red Hat                    x86-32, x86-64
+GNU/Linux Ubuntu                     x86-64 reported working, also
+                                     x86-32 and UltraSPARC
+Haiku                                
+Irix 6.5                             MIPS R10K
+MacOS X                              PowerPC and x86-32
+NetBSD                               many, including VAX
+OpenBSD                              many, including VAX, OS/2 and
+                                     eComstation
+Windows                              x86-32
+
+
+File: gnash.info,  Node: Software Requirements,  Prev: Hardware Requirements,  
Up: Requirements
+
+3.1.2 Software Requirements
+---------------------------
+
+The 0.8.2 release of Gnash has been designed to run on UNIX/Linux
+variants, and has been run on most of the free ones.  However, Gnash
+has successfully run on Windows, Darwin (Mac OS X), Irix, Solaris,
+BeOs, OS/2, and Haiku.  Gnash has also run on the following 64-bit
+systems: PowerPC, Itanium, UltraSparc, and AMD64.   For now, it is
+important to be sure that the following code, testing, and
+documentation dependencies are met before installing Gnash.  If you
+will be downloading Gnash with a package manager, these dependencies
+may be solved by the package manager.  Otherwise, you must first verify
+that each of these dependencies are installed on the target system.
+
+* Menu:
+
+* Code Dependencies::
+* Testing Dependencies::
+* Documentation Dependencies::
+
+
+File: gnash.info,  Node: Code Dependencies,  Next: Testing Dependencies,  Up: 
Software Requirements
+
+3.1.2.1 Code Dependencies
+.........................
+
+Gnash 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 Gnash needs to compile.
+
+     *Note*
+
+     If you want to install the Gnash plugin for one of the browsers
+     listed in the *note Introduction::, be sure to install the
+     development package for that browser before configuring.  The
+     Gnash `configure' script searches for the devel packages before
+     building the plugin.
+
+   *Code Dependency Table*
+
+Name       Level      Version    DescriptionExplanationapt-get    RPM/Yum
+                                                       package    package
+Boost      Required   1.32 or     Boost is  In Gnash,  
`libboost-thread-dev'`liboost-thread-dev'
+                      higher     a library  Boost                 
+                                 of         libraries             
+                                 portable   are used              
+                                 C++        extensively.           
+                                 classes                          
+                                 and                              
+                                 templates.                       
+libxml2    Required               Libxml2   This       
`libxml2-dev'`libxml2-devel'
+                                 is the     library               
+                                 GNOME XML  is used               
+                                 parser     to parse              
+                                 library    messages              
+                                 and is     in the                
+                                 available  XML or                
+                                 at         XMLSocket             
+                                 http://xmlsoft.orgActionScript           
+                                 (http://xmlsoft.org).classes.              
+AGG        Possibly   2.4 or      AGG is    Gnash      `libagg-dev'`agg-devel'
+           Required   higher     the        requires              
+                                 AntiGrain  the                   
+                                 low-level  installation           
+                                 2D         of at                 
+                                 graphics   least one             
+                                 library.   renderer.             
+                                            AGG is                
+                                            considered            
+                                            the _best             
+                                            supported_            
+                                            renderer              
+                                            for Gnash.            
+OpenGL     Possibly               OpenGL    Gnash      
`libgl1-mesa-dev'`libmesa-devel'
+           Required              is a       requires              
+                                 standard   the                   
+                                 specificationinstallation           
+                                 defining a of at                 
+                                 cross-languageleast one             
+                                 cross-platformrenderer.             
+                                 API for                          
+                                 writing                          
+                                 applications                      
+                                 which                            
+                                 produce                          
+                                 3D and 2D                        
+                                 graphics.                        
+                                 It                               
+                                 supports                         
+                                 hardware                         
+                                 acceleration.                      
+                                 You can                          
+                                 download                         
+                                 a free                           
+                                 implementation                      
+                                 from                             
+                                 http://www.mesa3d.org                      
+                                 (http://www.mesa3d.org).                      
+Cairo      Possibly               Cairo is  Gnash      
`libcairo2-dev'`cairo-devel'
+           Required              a 2D       requires              
+                                 graphics   the                   
+                                 library    installation           
+                                 with       of at                 
+                                 support    least one             
+                                 for        renderer.             
+                                 multiple   Cairo is              
+                                 output     considered            
+                                 devices.   the                   
+                                 It will    _least                
+                                 automaticallysupported_            
+                                 use        renderer              
+                                 graphic    for Gnash.            
+                                 card                             
+                                 acceleration                      
+                                 when                             
+                                 available,                       
+                                 and has                          
+                                 an                               
+                                 experimental                      
+                                 OpenGL                           
+                                 backend.                         
+GTK        Possibly   2.2 or      GTK is    Gnash      
`libgtk2.0-dev'`gtk-devel'
+           Required   higher     the GIMP   requires              
+                                 Toolkit    the                   
+                                 GUI        installation           
+                                 library.   of at                 
+                                 It uses    least one             
+                                 Cairo      GUI                   
+                                 internally.library.              
+                                            GTK is                
+                                            considered            
+                                            to be the             
+                                            _best                 
+                                            supported_            
+                                            GUI                   
+                                            library               
+                                            option                
+                                            for Gnash.            
+GtkGlExt   Possibly               GtkGlExt  This       
`libgtkglext1-dev'`gtkglext-devel'
+           Required              integrates library               
+                                 OpenGL     is                    
+                                 into GTK.  required              
+                                            in order              
+                                            to use                
+                                            the GTK               
+                                            GUI                   
+                                            library               
+                                            in                    
+                                            conjunction           
+                                            with the              
+                                            OpenGL                
+                                            renderer.             
+SDL        Possibly               The       Gnash      
`libsdl1.2-dev'`SDL-devel'
+           Required              Simple     requires              
+                                 DirectMediathe                   
+                                 Layer is   installation           
+                                 a          of at                 
+                                 cross-platformleast one             
+                                 multimedia GUI                   
+                                 library    library.              
+                                 which      SDL may               
+                                 provides   also be               
+                                 abstractionused as a             
+                                 for        sound                 
+                                 audio,     handler               
+                                 graphics,  regardless            
+                                 sound and  of                    
+                                 input      whether               
+                                 APIs.      it is                 
+                                 SDL is     employed              
+                                 available  as a GUI              
+                                 from       library.              
+                                 http://www.libsdl.orgThe GUI               
+                                 (http://www.libsdl.org).library               
+                                            is                    
+                                            _poorly               
+                                            supported_            
+                                            in Gnash,             
+                                            but the               
+                                            sound                 
+                                            handler               
+                                            is the                
+                                            _best                 
+                                            supported_            
+                                            in Gnash.             
+FLTK       Possibly   2.0 or      The Fast  Gnash      No         No
+           Required   higher     Light      requires   distributiondistribution
+                                 ToolKit    the        packages   packages
+                                 is a       installationare        are
+                                 portable   of at      available. available.
+                                 GUI        least one             
+                                 library    GUI                   
+                                 which is   library.              
+                                 intended   FLTK may              
+                                 as a       be used               
+                                 replacementin                    
+                                 for the    conjunction           
+                                 SDL GUI.   with the              
+                                            Cairo and             
+                                            AGG                   
+                                            renderers.            
+KDE        Possibly               Kdelibs   Gnash      
`kdelibs4-dev'`kdelibs-devel'
+           Required              is a       requires              
+                                 collection the                   
+                                 of         installation           
+                                 libraries  of at                 
+                                 needed to  least one             
+                                 compile    GUI                   
+                                 KDE        library.              
+                                 applications.Kdelibs               
+                                            is also               
+                                            required              
+                                            for the               
+                                            Kpart                 
+                                            plugin                
+                                            for                   
+                                            Konqueror.            
+libMAD     Optional               libMAD    libMAD is  
`libmad0-dev'`libmad-devel'
+                                 is MPEG    one of                
+                                 audio      the                   
+                                 decoder.   available             
+                                            options               
+                                            for sound             
+                                            handling.             
+Gstreamer  Optional               Gstreamer If you     
`libgstreamer0.8-dev'`gstreamer-devel'
+                                 is a       would                 
+                                 video      like                  
+                                 handler.   video                 
+                                            playback,             
+                                            you must              
+                                            install               
+                                            one of                
+                                            the video             
+                                            handlers.             
+gst-ffmpeg Possibly               gst-ffmpegThis       
`gstreamer0.8-ffmpeg-dev'`gstreamer-ffmpeg-devel'
+           Required              allows     package               
+                                 you to     is                    
+                                 use the    required              
+                                 FFMPEG     if you                
+                                 decoder    would                 
+                                 with       like to               
+                                 Gstreamer. use                   
+                                            Gstreamer             
+                                            as a                  
+                                            video                 
+                                            handler.              
+FFMPEG     Possibly               FFMPEG    If you     
`ffmpeg-dev'`ffmpeg-devel'
+           Required              is a       would                 
+                                 video      like                  
+                                 handler.   video                 
+                                            playback,             
+                                            you must              
+                                            install               
+                                            one of                
+                                            the video             
+                                            handlers.             
+                                            It is also            
+                                            a                     
+                                            dependency            
+                                            of                    
+                                            gst-ffmpeg.           
+JPEG       Optional              JPEG       This       `libjpeg62-dev'`libjpeg'
+                                 (http://www.ijg.org/)library               
+                                 is a       is used               
+                                 lossy      for                   
+                                 image      rendering             
+                                 format     JPEGs.                
+                                 which is                         
+                                 heavily                          
+                                 used for                         
+                                 images.                          
+PNG        Optional              PNG        This       `libpng12-dev'`libpng'
+                                 (http://www.libpng.org/pub/png/)library       
        
+                                 is a       is used               
+                                 patent-freefor                   
+                                 image      rendering             
+                                 format     PNGs.                 
+                                 which is                         
+                                 comparable                       
+                                 to _GIF_.                        
+libcurl    Optional               libcurl   This       
`libcurl4-gnutls'`libcurl'
+                                 is the     library               
+                                 multiprotocalis used               
+                                 file       for URL               
+                                 transfer   downloading.           
+                                 library.                         
+automake   Possibly   1.6.0       Automake  This       `automake' `automake'
+           Required              is a tool  package               
+                                 for        is                    
+                                 generating required              
+                                 _Makefile.in_to run                
+                                 files.     _autogen.sh_,           
+                                            which is              
+                                            a                     
+                                            requirement           
+                                            if you                
+                                            are using             
+                                            the                   
+                                            development           
+                                            source                
+                                            from CVS.             
+autoconf   Possibly   2.59        Autoconf  This       `autoconf' `autoconf'
+           Required              is a       package               
+                                 package    is                    
+                                 for        required              
+                                 generating to run                
+                                 configure  _autogen.sh_,           
+                                 scripts.   which is              
+                                            a                     
+                                            requirement           
+                                            if you                
+                                            are using             
+                                            the                   
+                                            development           
+                                            source                
+                                            from CVS.             
+gettext    Possibly   0.14.6      Gettext   This       `gettext'  `gettext'
+           Required              is part    package               
+                                 of the     is                    
+                                 GNU        required              
+                                 Translationto run                
+                                 Project.   _autogen.sh_,           
+                                            which is              
+                                            a                     
+                                            requirement           
+                                            if you                
+                                            are using             
+                                            the                   
+                                            development           
+                                            source                
+                                            from CVS.             
+libtool    Possibly   1.5.22      This is   This       `libltdl3-dev'`libtool'
+           Required              a generic  package               
+                                 library    is                    
+                                 support    required              
+                                 script.    to run                
+                                            _autogen.sh_,           
+                                            which is              
+                                            a                     
+                                            requirement           
+                                            if you                
+                                            are using             
+                                            the                   
+                                            development           
+                                            source                
+                                            from CVS.             
+
+
+File: gnash.info,  Node: Testing Dependencies,  Next: Documentation 
Dependencies,  Prev: Code Dependencies,  Up: Software Requirements
+
+3.1.2.2 Testing Dependencies
+............................
+
+Gnash tries to run as many tests as possible, but will simply skip
+tests if the tools to run them are unavailable.
+
+   *Testing Dependency Table*
+
+Name       Level      Version    DescriptionExplanationapt-get    RPM/Yum
+                                                       package    package
+Ming       Optional   0.4.0_beta4 Ming is   Ming is    No         No
+                      or higher  an         the        distributiondistribution
+                                 ActionScriptprimary    packages   packages
+                                 compiler.  compiler   are        are
+                                            for        available. available.
+                                            ActionScript           
+                                            testcases.            
+Mtasc      Optional               Mtasc is  Mtasc is   `mtasc'    No
+                                 an         used in               distribution
+                                 ActionScriptsome                  packages
+                                 compiler.  tests.                are
+                                                                  available.
+swfdec     Optional               Swfdec    Swfdec is  No         Unofficial
+                                 is a       used in    distributionpackage
+                                 Flash      some       packages   `swfdec'
+                                 player.    testcases. are        
+                                                       available. 
+DejaGnu    Optional               DejaGnu   DejaGnu    `dejagnu'  `dejagnu'
+                                 is a       is used               
+                                 testing    to run                
+                                 framework. multiple              
+                                            tests in              
+                                            an                    
+                                            automated             
+                                            fashion.              
+
+
+File: gnash.info,  Node: Documentation Dependencies,  Prev: Testing 
Dependencies,  Up: Software Requirements
+
+3.1.2.3 Documentation Dependencies
+..................................
+
+The following packages are used to build Gnash's documentation.
+
+   *Documentation Dependency Table*
+
+Name       Level      Version    DescriptionExplanationapt-get    RPM/Yum
+                                                       package    package
+Docbook    Required              Docbook    Gnash      
`docbook-utils'`docbook-dtd41-sgml'
+                                 
(http://http://docbook.sourceforge.net/)documentationand        and
+                                 is is an   is         
`docbook-dsssl'`docbook-style-dsssl'
+                                 industry-standardwritten               
+                                 XML        in                    
+                                 format     Docbook.              
+                                 for                              
+                                 technical                        
+                                 documentation.                      
+                                 You can                          
+                                 download                         
+                                 it from                          
+                                 
http://sourceforge.net/project/showfiles.php?group_id=21935#files               
       
+                                 
(http://sourceforge.net/project/showfiles.php?group_id=21935#files).            
          
+DocBook2X  Optional               This      DocBook2X  `docbook2x'`docbook2x'
+                                 software   is                    
+                                 package    required              
+                                 converts   to                    
+                                 Docbook    produce               
+                                 documents  HTML and              
+                                 to the     Texinfo               
+                                 traditionalformats.              
+                                 man page                         
+                                 format,                          
+                                 GNU                              
+                                 Texinfo                          
+                                 format,                          
+                                 and HTML                         
+                                 (via                             
+                                 Texinfo)                         
+                                 format.                          
+                                 It is                            
+                                 available                        
+                                 at                               
+                                 http://docbook2x.sourceforge.net/             
         
+                                 (http://docbook2x.sourceforge.net/).          
            
+Texinfo    Possibly               Texinfo   Texinfo    `texinfo'  `texinfo'
+           Required              can be     is                    
+                                 used to    required              
+                                 convert    if you                
+                                 DocBook2X  wish to               
+                                 output     product               
+                                 into GNU   GNU info              
+                                 info       pages.                
+                                 pages.                           
+                                 You can                          
+                                 download                         
+                                 it from                          
+                                 http://ftp.gnu.org/gnu/texinfo/               
       
+                                 (http://ftp.gnu.org/gnu/texinfo/).            
          
+FOP        Optional   0.20.5      FormattingFOP is     `fop'      `fop'
+                                 Objects    required              
+                                 Processor  for PDF               
+                                 is a       output.               
+                                 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                               
+                                 http://xmlgraphics.apache.org/fop/            
          
+                                 (http://xmlgraphics.apache.org/fop/).         
             
+Java       Possibly               FOP       Sun's      Download   Download
+(j2re)     Required              requires   Java       the        the
+                                 Sun's      runtime    package    package
+                                 Java       (j2re) is  from Sun   from Sun
+                                 runtime    required   
(http://java.sun.com).(http://java.sun.com).
+                                 (GCJ does  to use                
+                                 not work   FOP.                  
+                                 with                             
+                                 FOP).                            
+                                 You can                          
+                                 download                         
+                                 it from                          
+                                 http://java.sun.com                      
+                                 (http://java.sun.com).                      
+JAI        Possibly               Sun's     JAI is     Download   Download
+           Required              Java       required   the        the
+                                 Advanced   if you     package    package
+                                 Imaging    wish to    from Sun   from Sun
+                                 API can    include    
(http://java.sun.com/products/java-media/jai/iio.html).(http://java.sun.com/products/java-media/jai/iio.html).
+                                 be         graphics              
+                                 downloaded in a PDF              
+                                 from       file being            
+                                 
http://java.sun.com/products/java-media/jai/iio.htmlgenerated             
+                                 
(http://java.sun.com/products/java-media/jai/iio.html).with FOP.             
+
+   If you install j2re, set the _JAVA_HOME_ 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
+_CLASSPATH_ environment variable.
+
+
+File: gnash.info,  Node: Downloading Gnash,  Next: Pre-Compile Configuration,  
Prev: Requirements,  Up: Installing and Configuring Gnash
+
+3.2 Downloading Gnash
+=====================
+
+There are two ways to download Gnash: using a package manager or by
+downloading the source code and building it on your system. If
+possible, it is advisable to use a package manager to download Gnash,
+as it will resolve dependencies for you.  However, if you want the very
+latest features, or a Gnash package is not available for your operating
+system, it is better to download the source code and build Gnash
+locally.
+
+* Menu:
+
+* Using a Package Manager::
+* Getting the Source::
+
+
+File: gnash.info,  Node: Using a Package Manager,  Next: Getting the Source,  
Up: Downloading Gnash
+
+3.2.1 Using a Package Manager
+-----------------------------
+
+Gnash is available as a package for a number of Linux and BSD
+distributions, such as Ubuntu
+(http://packages.ubuntu.com/feisty/utils/gnash), Debian
+(http://packages.debian.org/unstable/utils/gnash), FreeBSD
+(http://www.freshports.org/graphics/gnash/), and OpenBSD
+(http://ports.openbsd.nu/www/gnash).  There is also an unofficial
+Fedora RPM.  This is not an extensive list, and you are advised to
+search if you wish to use a package manager on a different system.
+
+
+File: gnash.info,  Node: Getting the Source,  Prev: Using a Package Manager,  
Up: Downloading Gnash
+
+3.2.2 Getting the Source
+------------------------
+
+Gnash is available as a release tarball (*note Releases::), a
+development checkout (*note Repository::), or a development snapshot
+(*note Snapshot::).
+
+* Menu:
+
+* Releases::
+* Repository::
+* Snapshot::
+
+
+File: gnash.info,  Node: Releases,  Next: Repository,  Up: Getting the Source
+
+3.2.2.1 Releases
+................
+
+The source can be acquired from a GNU FTP Mirror
+(http://www.gnu.org/prep/ftp.html).  The release version is intended to
+be stable, and is probably your best choice if the release took place
+recently.  If you need features or fixes which were introduced after
+the release, consider a CVS checkout (*note Repository::) or the daily
+snapshot (*note Snapshot::).
+
+   To download, select a mirror near you, then choose the `gnash'
+directory.
+
+
+File: gnash.info,  Node: Repository,  Next: Snapshot,  Prev: Releases,  Up: 
Getting the Source
+
+3.2.2.2 Repository
+..................
+
+The latest development sources are available via anonymous CVS.  This
+is recommended if you need features or bug fixes which were introduced
+after the last release (*note Releases::).  Look at the daily snapshot
+(*note Snapshot::) if you experience difficulty accessing the
+repository.
+
+   To download via anonymous CVS, first set the environment variable
+`CVS_RSH' to `ssh', then check out the source code.  The example below
+uses the GNU Bourne-Again shell (bash):
+
+
+     export CVS_RSH="ssh"
+     cvs -z3 -d:pserver:address@hidden:/sources/gnash co gnash
+
+   It is also possible to browse the repository
+`http://cvs.savannah.gnu.org/viewcvs/gnash/?root=gnash' on the web.
+
+
+File: gnash.info,  Node: Snapshot,  Prev: Repository,  Up: Getting the Source
+
+3.2.2.3 Snapshot
+................
+
+The daily development snapshot can be downloaded from
+http://www.gnashdev.org/dev_snapshots/
+(http://www.gnashdev.org/dev_snapshots/).  This is the best option if
+you need changes which were introduced after the last release (*note
+Releases::) of Gnash, but are unable to download directly from the
+repository. (*note Repository::)
+
+
+File: gnash.info,  Node: Pre-Compile Configuration,  Next: Building from 
Source,  Prev: Downloading Gnash,  Up: Installing and Configuring Gnash
+
+3.3 Pre-Compile Configuration
+=============================
+
+Gnash, 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.  Gnash uses GNU Autoconf
+(http://www.gnu.org/software/autoconf/) for configuration.
+
+   If you opted to download the development checkout (*note
+Repository::) of Gnash, the _configure_ script will not be included.
+It can be created by running _autogen.sh_ from the source root
+directory:
+
+
+       ./autogen.sh
+
+Note that there are some dependencies (*note Code Dependencies::) for
+autogen.
+
+   All the standard `configure' options are available.  In addition,
+Gnash has two types of options: those that enable or disable features
+(*note Features::), and those that specify custom paths for development
+packages (*note Specifying Custom Paths::) which are not found during
+the default search.  A complete list of _all_ configuration options,
+including standard ones, can be seen by typing:
+
+
+       ./configure --help |less
+
+Read further for a more detailed explanation of Gnash-specific options.
+
+   The syntax for running _configure_ is as follows:
+
+
+       configure <options>
+
+The example below shows the `configure' options which create the
+smallest working standalone version of Gnash.  In this example,
+`configure' is being run from the source root directory:
+
+
+     ./configure --disable-debugger --disable-cygnal --disable-docbook \
+     --disable-plugin --enable-media=mad --enable-gui=sdl
+
+* Menu:
+
+* Features::
+* Specifying Custom Paths::
+* Cross Compiling::
+
+
+File: gnash.info,  Node: Features,  Next: Specifying Custom Paths,  Up: 
Pre-Compile Configuration
+
+3.3.1 Features
+--------------
+
+Some switches can be used during configuration to enable or disable
+features of Gnash. Some of the most important configuration options are:
+
+   * `--enable-gui' lets you specify your GUI of choice.  The default
+     option is GTK.
+
+   * `--enable-renderer' allows a renderer to be chosen.  The default
+     renderer is OpenGL.
+
+   * `--enable-media' permits a media handler to be selected.  The
+     default is FFMPEG with SDL sound.
+
+   A complete list of available features follows.
+
+*Configuration Options - Features*
+
+Option                               Function
+`--enable-debugger'                  Enable support for the Flash
+                                     debugger. The debugger is mainly of
+                                     interest to Flash developers.
+`--enable-dmalloc'                   Enable support for the DMalloc
+                                     memory debugging tool.
+`--enable-docbook'                   Enable the generation of HTML and
+                                     PDF versions of the documentation
+                                     from the XML. You will then be able
+                                     to use `make html' and `make pdf'.
+`--enable-embedded'                  Link to Qt-embedded, do not use X.
+                                     This is only used by Klash
+`--disable-fork'                     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.
+`--enable-ghelp'                     Enable support for the GNOME help
+                                     system.
+`--disable-glext'                    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.
+`--enable-gui=gtk|sdl|kde|fltk|fb'   Select the Graphic User Interface
+                                     to use (choose one).?
+                                     [undisplayable block object]
+`--enable-i810-lod-bias'             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.
+`--enable-libsuffix'                 `/lib' directory suffix
+                                     (64,32,none=default). This is only
+                                     used by Klash.
+`--enable-mac'                       Link to Qt/Mac (don't use X). This
+                                     is only used by Klash.
+`--enable-media=ffmpeg|mad|gst'       Select the specified media decoder
+                                     and sound engine.  FFMPEG and MAD
+                                     use the SDL sound engine; GST uses
+                                     its own.  MAD only decodes MP3
+                                     sounds and uses integer arithmetic
+                                     while the others also decode video
+                                     files and use floating point.
+                                     `FFMPEG' is the default decoder.  ?
+                                     [undisplayable block object] You
+                                     should only select one media
+                                     decoder.
+`--disable-nsapi'`--enable-nsapi'    Force disable/enable building the
+                                     NPAPI plugin.  By default the
+                                     Mozilla plugin is built if the GTK
+                                     gui is selected.  Specify the
+                                     `--with-npapi-plugindir=' option to
+                                     specify where the plugin should be
+                                     installed.
+`--disable-kparts'`--enable-kparts'  Force disable/enable building the
+                                     KPARTS plugin. By default the KDE
+                                     plugin is built if the kde gui is
+                                     selected.  Specify the
+                                     `--with-kde-plugindir=' and
+                                     `--with-kde-servicesdir=' options
+                                     (or more generally the
+                                     `--with-kde-pluginprefix=' one) to
+                                     specify where the plugin should be
+                                     installed. The default installation
+                                     dir is extracted from kde-config.
+`--disable-plugins'                  Disable build of both kparts and
+                                     npapi plugins
+`--enable-qtopia'                    Link to Qt-embedded, link to the
+                                     Qtopia Environment. This is only
+                                     used by Klash.
+`--enable-renderer=opengl|cairo|agg' Enable support for the a graphics
+                                     backend. Currently only `opengl' and
+                                     `agg' 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.
+`--enable-sdk-install'               Enable installing the libraries and
+                                     headers as an SDK.
+`--disable-shared'                   Enable installing the shared
+                                     libraries and headers.  Note that
+                                     the extensions mechanism may not
+                                     work if shared libraries are
+                                     disabled.
+`--enable-strict'                    Turn verbose GCC compiler warnings.
+                                     By default only `-Wall' is used
+                                     with GCC.
+`--enable-fps-debug'                 Enable FPS debugging code. When
+                                     this feature is compiled in you can
+                                     use the -f switch of Gnash to have
+                                     FPS printed at regular intervals.
+`--enable-write'                     Makes the Mozilla plugin write the
+                                     currently playing SWF movie to
+                                     `/tmp'.
+`--disable-mit-shm'                  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.
+
+
+File: gnash.info,  Node: Specifying Custom Paths,  Next: Cross Compiling,  
Prev: Features,  Up: Pre-Compile Configuration
+
+3.3.2 Specifying Custom Paths
+-----------------------------
+
+By default, none of these options should be required unless you want
+Gnash to use a specific version of a development package, or if the
+configure test fails to find a component.  Please report the problem
+(*note Reporting Bugs::) if a configure test fails.
+
+   The following custom path options are available:
+
+*Custom Path Options*
+
+Option                               Function
+`--x-includes=DIR'                    X include files are in DIR.
+`--x-libraries=DIR'                   X library files are in DIR.
+`--with-libxml=PFX'                   Prefix to where libxml is
+                                     installed.
+`--with-libxml-libraries=DIR'         Directory where libxml library is
+                                     installed.
+`--with-libxml-includes=DIR'          Directory where libxml header
+                                     files are installed.
+`--with-docbook=DIR'                  Directory where the DocBook
+                                     style-sheets are installed.
+`--with-sdl-prefix=PFX'               Prefix where SDL is installed.
+`--with-zlib-incl'                    Directory where zlib header is
+                                     installed.
+`--with-zlib-lib'                     Directory where zlib library is
+                                     installed.
+`--with-jpeg-incl'                    Directory where jpeg header is
+                                     installed.
+`--with-jpeg-lib'                     Directory where jpeg library is
+                                     installed.
+`--with-png-incl'                     Directory where png header is
+                                     installed.
+`--with-png-lib'                      Directory where png library is
+                                     installed.
+`--with-qt-dir'                       Directory where QT is installed.
+                                     This is only used by the Klash
+                                     plugin.
+`--with-qt-includes'                  Directory where the QT header
+                                     files are installed. This is only
+                                     used by the Klash plugin.
+`--with-qt-libraries'                 Directory where the QT libraries
+                                     are installed. This is only used by
+                                     the Klash plugin.
+`--with-npapi-plugindir'              This is the directory to install
+                                     the NPAPI (Mozilla) plugin in.  By
+                                     default it goes to
+                                     ~/.mozilla/plugins.
+`--with-kde-pluginprefix'             This option sets the default
+                                     install dir for all KPARTS (kde)
+                                     files.  The plugin will be
+                                     installed in PREFIX/lib/kde3, use
+                                     `-with-kde-plugindir' to override.
+                                     The service file in
+                                     PREFIX/share/services, use
+                                     `--with-kde-servicesdir' to
+                                     override.  The config file in
+                                     PREFIX/share/config, use
+                                     `--with-kde-configdir' to override.
+                                     The appdata file in
+                                     PREFIX/share/apps/klash, use
+                                     `--with-kde-appsdatadir' to
+                                     override.
+`--with-kde-plugindir'                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.
+`--with-kde-servicesdir'              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.
+`--with-kde-configdir'                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.
+`--with-kde-appsdatadir'              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.
+`--with-ming'                         Ming is used to build test cases,
+                                     but not by the Gnash player itself.
+`--with-mad_incl'                     Directory where libmad header is
+                                     installed.
+`--with-mad_lib'                      Directory where libmad library is
+                                     installed.
+`--with-ogg_incl'                     Directory where the libogg headers
+                                     are installed.
+`--with-ogg_lib'                      Directory where the libogg library
+                                     is installed.
+`--with-gstreamer-incl'               Directory where the Gstreamer
+                                     headers are installed. Gstreamer
+                                     version 0.10 or greater must be
+                                     used.
+`--with-gstreamer-lib'                Directory where the Gstreamer
+                                     library is installed. Gstreamer
+                                     version 0.10 or greater must be
+                                     used.
+`--with-opengl-includes'              Directory where OpenGL (libMesa)
+                                     headers are installed.
+`--with-opengl-lib'                   Directory where the OpenGL
+                                     (libMesa) library is installed.
+`--with-glext-incl'                   Directory where GtkGlExt headers
+                                     are installed.
+`--with-glext-lib'                    Directory where the GtkGlExt
+                                     library is installed.
+`--with-gtk2-incl'                    Directory where the Gtk2 headers
+                                     are installed.
+`--with-gtk2-lib'                     Directory where the Gtk2 library
+                                     is installed.
+`--with-cairo_incl'                   Directory where the Cairo headers
+                                     are installed.
+`--with-cairo-lib'                    Directory where the Cairo library
+                                     is installed.
+`--with-glib-incl'                    Directory where the Glib headers
+                                     are installed.
+`--with-glib-lib'                     Directory where the Glib library
+                                     is installed.
+`--with-pango-incl'                   Directory where the Pango headers
+                                     are installed.
+`--with-pango-lib'                    Directory where the Pango library
+                                     is installed.
+`--with-atk-incl'                     Directory where the ATK headers
+                                     are installed.
+`--with-atk-lib'                      Directory where the ATK library is
+                                     installed.
+`--with-pthread-incl'                 Directory where the Pthread
+                                     headers are installed.
+`--with-pthread-lib'                  Directory where the Pthread
+                                     library is installed.
+`--with-agg-incl'                     Directory where the AGG
+                                     (Antigrain) headers are installed.
+`--with-agg-lib'                      Directory where the AGG
+                                     (Antigrain) library is installed.
+`--with-ffmpeg-incl'                  Directory where the FFMPEG headers
+                                     are installed.
+`--with-ffmpeg-lib'                   Directory where the FFMPEG library
+                                     is installed.
+`--with-boost-incl'                   Directory where the Boost headers
+                                     are installed.
+`--with-boost-lib'                    Directory where the Boost library
+                                     is installed.
+`--with-curl-incl'                    Directory where the libCurl
+                                     headers are installed.
+`--with-curl-lib'                     Directory where the libCurl
+                                     library is installed.
+
+
+File: gnash.info,  Node: Cross Compiling,  Prev: Specifying Custom Paths,  Up: 
Pre-Compile Configuration
+
+3.3.3 Cross Compiling
+---------------------
+
+To cross configure and compile Gnash, 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: _libxml2_,
+_libpng_ (if used), _libjpeg_ (if used), your GUI library, your
+renderer, and your video handler (if used).  The page
+http://frank.harvard.edu/~coldwell/toolchain/
+(http://frank.harvard.edu/~coldwell/toolchain/) has instructions on
+building a target system from scratch and offers a shell script to make
+the process easier.
+
+   Note that you may have some difficulties getting libMesa (opengl) to
+cross compile.
+
+   The important configuration options are the ones which specify the
+architecture for the build:
+
+-target
+     The target architecture, where the final executables are expected
+     to run.
+
+-host
+     The host architecture, where the executables are expected to run.
+     Usually this is the same as the _-target_, 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, _-target_ would be 'arm-unknown-linux-gnu', while _-host_
+     would be 'win32'.
+
+-build
+     This is the system the build is running on.
+
+   The following example of _configure_ builds for an ARM system on an
+x86 system.  It was run after an ARM system was built in `/usr/arm' and
+other required libraries were cross compiled.
+
+
+     ./configure -target=arm-unknown-linux-gnu --prefix=/usr/arm \
+     --host=arm-unknown-linux-gnu --build=i686-pc-linux-gnu --disable-plugin
+
+
+File: gnash.info,  Node: Building from Source,  Next: Installation,  Prev: 
Pre-Compile Configuration,  Up: Installing and Configuring Gnash
+
+3.4 Building from Source
+========================
+
+Once you have configured (*note Pre-Compile Configuration::) Gnash, you
+are ready to build the code.  Gnash is built using _GNU make_.
+
+* Menu:
+
+* Compiling the Code::
+* Creating the Documentation::
+* Running the Tests::
+
+
+File: gnash.info,  Node: Compiling the Code,  Next: Creating the 
Documentation,  Up: Building from Source
+
+3.4.1 Compiling the Code
+------------------------
+
+The most basic way to compile code is simply:
+
+
+       make
+
+If the compilation ends with an error, check the output of _configure_
+and ensure that you are not missing any required prerequisites.  The
+output of `make' can be verbose; you may wish to pipe the output to a
+file.
+
+   The variables used by _make_ can be redefined when the program is
+invoked, if you desire it.   The most interesting flags are _CFLAGS_
+and _CXXFLAGS_, which are often used to enable debugging or turn of
+optimization.  The default value for both of these variables is _-O2
+-g_.  A list of influential environment variables can be seen in the
+configuration help:
+
+     ./configure --help
+
+   In the following example, debugging is enabled and optimization is
+disabled:
+
+     make CFLAGS=-g CXXFLAGS=-g
+
+
+File: gnash.info,  Node: Creating the Documentation,  Next: Running the Tests, 
 Prev: Compiling the Code,  Up: Building from Source
+
+3.4.2 Creating the Documentation
+--------------------------------
+
+By default, documentation is not built when you install (*note
+Installation::) Gnash.  This is because there are a number of
+dependencies for the documentation (*note Documentation
+Dependencies::).  Documentation is built when it is specified with a
+specific target in the generated `Makefile' in the `doc/C'
+sub-directory.  If you type `make install' in this directory, all
+documents will be built.
+
+   You must specify a target output format when you wish to create
+documentation.  The available output formats are: `html', `pdf', `info',
+`man', and `alldocs'.  It is also possible to output `GNOME help' if
+the configure option (*note Features::) `--enable-ghelp' was used.  The
+`alldocs' target will build all output formats except _GNOME help_.
+For example, to create HTML output, type:
+
+
+       make html
+
+   Gnash also uses Doxygen
+(http://www.stack.nl/~dimitri/doxygen/index.html) to produce _HTML_
+documentation of Gnash internals.  You must have Doxygen installed to
+produce this documentation, which is built from the `doc' directory
+with the command (documents will be placed in the subdirectory
+`apidoc/html'):
+
+
+       make apidoc
+
+
+File: gnash.info,  Node: Running the Tests,  Prev: Creating the Documentation, 
 Up: Building from Source
+
+3.4.3 Running the Tests
+-----------------------
+
+Before beginning the potentially lengthy install, it is wise to test
+the installation.  If a test fails, please report it by following the
+instructions for reporting a bug (*note Reporting Bugs::).
+
+* Menu:
+
+* Using DejaGnu::
+* Running The Tests Manually::
+
+
+File: gnash.info,  Node: Using DejaGnu,  Next: Running The Tests Manually,  
Up: Running the Tests
+
+3.4.3.1 Using DejaGnu
+.....................
+
+The easiest way to run Gnash's test suite is to install _DejaGnu
+(http://www.gnu.org/software/dejagnu)_.  After installing DejaGnu, run:
+
+
+             make check
+
+* Menu:
+
+* Increasing Verbosity::
+* Running Some Tests::
+
+
+File: gnash.info,  Node: Increasing Verbosity,  Next: Running Some Tests,  Up: 
Using DejaGnu
+
+Increasing Verbosity
+....................
+
+If you encounter a problem with a test, increasing the verbosity may
+make the issue easier to spot.  Additional details are visible when
+_RUNTESTFLAGS_ are used to add the _verbose_ and _all_ options.  The
+`verbose' option prints more information about the testing process,
+while the `all' option includes details on passing tests.
+
+
+       make check RUNTESTFLAGS="-v -a"
+
+
+File: gnash.info,  Node: Running Some Tests,  Prev: Increasing Verbosity,  Up: 
Using DejaGnu
+
+Running Some Tests
+..................
+
+It is possible to run just a single test, or a subdirectory of tests,
+by specifying the directory or compiled test file.
+
+   Some tests rely on _testsuite/Dejagnu.swf_, which in turn relies on
+_Ming_.  This file is created when you run `make check' for the entire
+testsuite, and can also be created on demand:
+
+
+       make -C testsuite Dejagnu.swf
+
+   In this example, the `clip_as_button2' test is compiled and run:
+
+
+       make -C testsuite/samples clip_as_button2-TestRunner
+       cd testsuite/samples && ./clip_as_button2-TestRunner
+
+This creates and runs all the tests in the directory `movies.all':
+
+
+       make -C testsuite/movies.all check
+
+
+File: gnash.info,  Node: Running The Tests Manually,  Prev: Using DejaGnu,  
Up: Running the Tests
+
+3.4.3.2 Running The Tests Manually
+..................................
+
+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.
+
+   The first step is to compile the test case, which can be done with
+`make XML-v#.swf' where the '#' is replaced with the _target_ SWF
+version or versions.  For example:
+
+
+       make XML-v{5,6,7,8}.swf
+
+* Menu:
+
+* Movie tests::
+* ActionScript Unit Tests::
+
+
+File: gnash.info,  Node: Movie tests,  Next: ActionScript Unit Tests,  Up: 
Running The Tests Manually
+
+Movie tests
+...........
+
+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:
+
+
+        gnash -v XML-v6.swf
+
+
+File: gnash.info,  Node: ActionScript Unit Tests,  Prev: Movie tests,  Up: 
Running The Tests Manually
+
+ActionScript Unit Tests
+.......................
+
+Unit tests for ActionScript classes in `testsuite/actionscript.all' are
+run without a graphical display:
+
+
+       gprocessor -v XML-v6.swf
+
+
+File: gnash.info,  Node: Installation,  Prev: Building from Source,  Up: 
Installing and Configuring Gnash
+
+3.5 Installation
+================
+
+Now that Gnash has been compiled and tested, use the following command
+to install it:
+
+
+       make install
+
+The above command installs the standalone player.  If the correct files
+were found by `configure' and if the `--disable-plugin' option was not
+specified, the Gnash browser plugin is also installed.
+
+   Gnash installs a number of libraries (*note Libraries::), namely:
+_libbase_, _libgeometry_, _libbackend_, _libserver_, and _libmozsdk_.
+Executables (*note Executables::) consist of the (optional) plugin,
+`gprocessor', `cygnal',  and `gnash'.  Documentation (*note
+Documentation::) may also be installed.  The installation location is
+controlled with the _-prefix_ configure option (*note Specifying Custom
+Paths::), except for plugins, which are explicitly set with
+_-plugin-dir_.
+
+   Note that if you are using a single file-system _NFS_ mounted to
+multiple platforms, the configuration option (*note Specifying Custom
+Paths::) _-exec-prefix_ may be used to specify where platform-dependent
+executables and libraries are installed.
+
+* Menu:
+
+* Libraries::
+* Executables::
+* Documentation::
+
+
+File: gnash.info,  Node: Libraries,  Next: Executables,  Up: Installation
+
+3.5.1 Libraries
+---------------
+
+Installed libraries are located in `/usr/local/lib' by default.  If the
+_-prefix_ option was used in configuration (*note Pre-Compile
+Configuration::), the libraries will be installed in the directory
+`lib' 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.
+
+   The traditional way to do this on UNIX platforms is to set the
+_LD_LIBRARY_PATH_ variable to the path plus `/lib'.  For example, if you
+installed in `/home/gnash', the _LD_LIBRARY_PATH_ path would be
+`/home/gnash/lib'.  Multiple paths are delimited with a colon (':').
+
+   GNU/Linux allows the custom path to be added to `/etc/ld.so.conf'.
+After adding the path, run _ldconfig_ as root to update the runtime
+cache.
+
+
+File: gnash.info,  Node: Executables,  Next: Documentation,  Prev: Libraries,  
Up: Installation
+
+3.5.2 Executables
+-----------------
+
+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
+`~/.mozilla/plugins/'. To enable the plugin for other users, copy the
+file `libgnashplugin.so' to `.mozilla/plugins/' in their home directory.
+You may also specify the plugin installation directory by using the
+`--with-plugindir' option at configuration time (*note Specifying
+Custom Paths::).
+
+   These defaults are likely to change in future versions of Gnash.
+
+   The remaining executables are installed in the `bin' subdirectory of
+the directory specified by during configuration.  If no path was
+specified, the default is `/usr/local/bin'.
+
+
+File: gnash.info,  Node: Documentation,  Prev: Executables,  Up: Installation
+
+3.5.3 Documentation
+-------------------
+
+Documentation is not built by default; please refer to the section on
+documentation (*note Creating the Documentation::) for more information
+on building documentation.
+
+   `man' and `info' are installed in `/usr/local/share/man' and
+`/usr/local/share/info' respectively, unless the `--mandif' or
+`--infodir' configuration options (*note Specifying Custom Paths::) are
+used.
+
+   _GNOME help_ documentation uses the directory
+`/usr/local/share/gnash/doc/gnash/C/' by default.  A configuration file
+in the Gnash source tree, `doc/C/gnash.omf' is used to specify under
+which menu item Gnash appears in the _GNOME help_ system.
+
+
+File: gnash.info,  Node: Using Gnash,  Next: Reporting Bugs,  Prev: Installing 
and Configuring Gnash,  Up: Top
+
+4 Using Gnash
+*************
+
+When used as a standalone player, you can play any Flash file from the
+command line by entering a command of the format:
+
+
+     gnash <option> <flashfile.swf>
+
+The only required argument is the name (and location)of the file to be
+played.
+
+   The available options are listed in the following section, or you
+may view them in the terminal window by executing the following at the
+command line:
+
+
+     gnash --help |less
+
+   The source code download of Gnash includes several example .SWF
+files.  They are located in the `testsuite/samples/' directory of the
+Gnash source directory.  If you have installed Gnash correctly, issuing
+the a command similar to the following plays a short animation of a car
+swerving and crashing:
+
+
+     gnash /home/<username>/gnash/testsuite/car_smash.swf
+
+   The above is useful for playing Flash files downloaded to your local
+system.  It is also possible to play Flash files directly from the web.
+To do so, use the `-u' option along with the URL of the desired file.
+
+
+     gnash -u http://example.domain.com/flashfile.swf
+
+Note that this will not work with every website; some embedded Flash
+files are difficult to play.
+
+* Menu:
+
+* Gnash Command Line Options::
+* Gnash Interactive Control Keys::
+* User Configuration File::
+
+
+File: gnash.info,  Node: Gnash Command Line Options,  Next: Gnash Interactive 
Control Keys,  Up: Using Gnash
+
+4.1 Gnash Command Line Options
+==============================
+
+No options are required for  Gnash's default behavior.  However, there
+are many options that can be used to that behavior.
+
+
+       gnash <options> filename.swf
+
+*Gnash Command Line Options*
+
+Option                               Function
+`-h'                                  Print usage information.
+`-s factor'                           Scale the movie up/down by the
+                                     specified factor.
+`-c'                                  Produce a core file instead of
+                                     letting SDL trap it. By default,
+                                     SDL traps all signals, but
+                                     sometimes a core file is desired to
+                                     assist with debugging.
+`-d num'                              Number of milliseconds to delay in
+                                     main loop. The main loop polls
+                                     continuously with a delay to adjust
+                                     how long _Gnash_ sleeps between
+                                     iterations of the loop. The smaller
+                                     the number, the higher the CPU load
+                                     gets, and of course, the more
+                                     iterations of the main command loop.
+`-p'                                  Run full speed (no sleep) and log
+                                     frame rate.
+`-a'                                  Enable Actionscript debugging.
+`-v'                                  Be verbose; i.e. print debug
+                                     messages to stdout.
+`-va'                                 Be verbose about movie Actions.
+`-vp'                                 Be verbose about parsing the
+                                     movie. Warning: this can generate a
+                                     lot of text, and can affect the
+                                     performance of the movie you are
+                                     playing.
+`-ml bias'                            Specify the texture LOD bias
+                                     (float, default is -1) This affects
+                                     the fuzziness of small objects,
+                                     especially small text.
+`-w'                                  Write a debug log called
+                                     gnash-dbg.log. This will record of
+                                     all the debug messages whether they
+                                     are printed to the screen or not.
+`-j'                                  Specify the width of the window.
+                                     This is mostly used only by the
+                                     plugin.
+`-k'                                  Specify the height of the window.
+                                     This is mostly used only by the
+                                     plugin.
+`-1'                                  Play once; exit when/if movie
+                                     reaches the last frame. This is the
+                                     default.
+`-r [0|1|2|3]'                       ? [undisplayable block object]
+`-t sec'                              Timeout and exit after the
+                                     specified number of seconds. This
+                                     is useful for movies which repeat
+                                     themselves.
+`-g'                                  Start Gnash with a Flash debugger
+                                     console so one can set break points
+                                     or watchpoints.
+`-x id'                               This specifies the X11 window ID
+                                     to display in; this is mainly used
+                                     by plugins.
+`-b bits'                             Bit depth of output window (for
+                                     example, 16 or 32). Appropriate bit
+                                     depths depend on the renderer and
+                                     GUI library used.
+`-u url'                              Set the _url member of the root
+                                     movie. This is useful when you
+                                     download a movie and play it from a
+                                     different location. See also the -U
+                                     switch.
+`-U baseurl'                          Set base URL for this run. URLs
+                                     are resolved relative to this base.
+                                     If omitted defaults to the _url
+                                     member of the top-level movie (see
+                                     the -u switch).
+`-P entrymeter'                       Parameters are given in
+                                     ParamName=Value syntax and are
+                                     mostly useful to the plugin to
+                                     honour EMBED tags attributes or
+                                     explicit OBJECT PARAM tags. A
+                                     common use for -P is to provide
+                                     FlashVars (ie: -P
+                                     "FlashVars=home=http://www.gnu.org";).
+`-F filedescriptor'                   Use the given filedescriptor to
+                                     send requests to the host
+                                     application. This is currently only
+                                     used for GETURL requests.  The
+                                     protocol is not documented yet, and
+                                     also needs improvement.  Primary
+                                     use for this switch is for the
+                                     NPAPI plugin to properly support
+                                     javascript and target windows in
+                                     geturl requests.
+
+
+File: gnash.info,  Node: Gnash Interactive Control Keys,  Next: User 
Configuration File,  Prev: Gnash Command Line Options,  Up: Using Gnash
+
+4.2 Gnash Interactive Control Keys
+==================================
+
+While a movie is playing, there are several control keys. These can be
+used to step through frames, pause the playing, and control other
+actions.
+
+*Gnash Interactive Control Keys*
+
+Key Combination                      Function
+`CTRL-Q'                              Quit/Exit.
+`CTRL-W'                              Quit/Exit.
+`ESC'                                 Quit/Exit.
+`CTRL-P'                              Toggle Pause.
+`CTRL-R   '                           Restart the movie.
+`CTRL-[ or kp-'                       Step back one frame.
+`CTRL-] or kp+'                       Step forward one frame.
+
+
+
+Local Variables:
+coding: US-ASCII
+End:

Index: packaging/doc/gprocessor.1.in
===================================================================
RCS file: packaging/doc/gprocessor.1.in
diff -N packaging/doc/gprocessor.1.in
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ packaging/doc/gprocessor.1.in       16 Feb 2008 17:51:06 -0000      1.1
@@ -0,0 +1,47 @@
+.\" -*- coding: us-ascii -*-
+.if \n(.g .ds T< \\FC
+.if \n(.g .ds T> \\F[\n[.fam]]
+.de URL
+\\$2 \(la\\$1\(ra\\$3
+..
+.if \n(.g .mso www.tmac
+.TH gprocessor 1 "13 February 2008"  
+.SH NAME
+gprocessor \- Gnash SWF Processor
+.SH Synopsis
+.nf
+
+gprocessor (options)... (file)...
+.fi
+.SH DESCRIPTION
+Gprocessor is an debugging tool for SWF files, that is a companion to
+Gnash. This is most often used for debugging and running testcases,
+as this tool is equivalant to running Gnash with no graphic
+output. This tool is primarily used by Gnash developers, or anyone
+that wishes to run the Gnash test cases.
+.TP 
+-h
+Print usage info.
+.TP 
+-w
+Write a .gsc file with preprocessed info, for each input file.
+.TP 
+-vp
+Be verbose about movie parsing.
+.TP 
+-va
+Be verbose about ActionScript.
+.TP 
+-d [ms]
+Milliseconds delay between advances (0 by default). If '-1'
+the delay will be computed from the FPS.
+.TP 
+-f [frames]
+Allow the given number of frame advancements. Keep advancing
+untill any other stop condition is encountered if set to 0
+(default).
+.TP 
+-r [times]
+Allow the given number of complete runs. Keep looping
+undefinitely if set to 0. Default is 1 (end as soon as the
+last frame is reached).

Index: packaging/doc/soldumper.1.in
===================================================================
RCS file: packaging/doc/soldumper.1.in
diff -N packaging/doc/soldumper.1.in
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ packaging/doc/soldumper.1.in        16 Feb 2008 17:51:06 -0000      1.1
@@ -0,0 +1,31 @@
+.\" -*- coding: us-ascii -*-
+.if \n(.g .ds T< \\FC
+.if \n(.g .ds T> \\F[\n[.fam]]
+.de URL
+\\$2 \(la\\$1\(ra\\$3
+..
+.if \n(.g .mso www.tmac
+.TH soldumper 1 "13 February 2008"  
+.SH NAME
+soldumper \- Gnash Local Shared Object file Dumper
+.SH Synopsis
+.nf
+
+soldumper (options)... (file)...
+.fi
+.SH DESCRIPTION
+Dump information about the .sol files used by the SharedObject
+ActionScript class. These files are comprised of a header, and a
+collection of SWF AMF Objects, normally not viewable by the user.
+.TP 
+-h
+Print usage info.
+.TP 
+-l
+List all the .sol files in the default path.
+.TP 
+-f
+Ignore the global setting, use the current directory for files.
+.TP 
+-v
+Verbose output.




reply via email to

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