Current requirements for building the docs :
--------------------------------------------

libxslt >= 1.0.6
libxml2 >= 2.4.12


These are not included with RH72.  They are in debian.  GDE has good rpms.

To build pdf's from xslt stuff, you need xmltex and (on redhat) 
passivetex.  They are not known to have been built on either redhat or 
debian yet though.

Wingo's new comments on the doc building :
------------------------------------------
* Well he should add them soon here since he overhauled it. And did a good 
  job on it too ;)

Thomas's new comments on the doc building :
-------------------------------------------
* originally the manual was written with DocBook 3.0 in mind, which 
  supported the graphic tag.  That is now deprecated, so I changed it to 
  the new mediaobject tag set.

* eps files in images/ should be generated from the makefile.  You need to 
  have fig2dev installed for that.

Ensonic's comments on the doc build system :
--------------------------------------------
In case you like to share files between the manual and the pwg - it's
not trivial.
Before anything is done, the build-system copies all xml files into the build
subdir and this breaks including shared docs via entities.

The examples should be updated in the xml. We run a perlscript in
tests/examples/manual that extracts them.

Wtay's original comments :
--------------------------

For now use:

  db2html gstreamer-manual 

(On debian, db2html is in the cygnus-stylesheets package)

You will need the png support for docbook (see GNOME documentation project)

convert the fig images to png with:

  fig2dev -L png -s 16 fig/<input file>.fig images/<input file>.png

Put a link in the gstreamer-manual directory with

  ln -s ../images gstreamer-manual/images

point your browser to gstreamer-manual/gstreamer.html

Fix typing errors and correct bad english.
Let me know about the stuff that needs some more explanation.
Let me know about the structure of the document.
