Commits

dirkbaechle committed 2126e0a

- added documentation and tests for the new Docbook tool

Comments (0)

Files changed (110)

doc/generated/builders.gen

 </example_commands>
 </listitem>
   </varlistentry>
+  <varlistentry id="b-DocbookHtml">
+    <term>
+      <function>DocbookHtml()</function>
+    </term>
+    <term>
+      <function>env.DocbookHtml()</function>
+    </term>
+    <listitem>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">
+A pseudo-Builder, providing a Docbook toolchain for HTML output.
+</para>
+<example_commands xmlns="http://www.scons.org/dbxsd/v1.0">env = Environment(tools=['docbook'])
+env.DocbookHtml('manual.html', 'manual.xml')
+</example_commands>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">
+or simply
+</para>
+<example_commands xmlns="http://www.scons.org/dbxsd/v1.0">env = Environment(tools=['docbook'])
+env.DocbookHtml('manual')
+</example_commands>
+</listitem>
+  </varlistentry>
+  <varlistentry id="b-DocbookHtmlChunked">
+    <term>
+      <function>DocbookHtmlChunked()</function>
+    </term>
+    <term>
+      <function>env.DocbookHtmlChunked()</function>
+    </term>
+    <listitem>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">
+A pseudo-Builder, providing a Docbook toolchain for chunked HTML output.
+It supports the <literal>base.dir</literal> parameter. The 
+<filename>chunkfast.xsl</filename> file (requires "EXSLT") is used as the
+default stylesheet. Basic syntax:
+</para>
+
+<example_commands xmlns="http://www.scons.org/dbxsd/v1.0">env = Environment(tools=['docbook'])
+env.DocbookHtmlChunked('manual')
+</example_commands>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">
+where <filename>manual.xml</filename> is the input file.
+</para>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">If you use the <literal>root.filename</literal> 
+parameter in your own stylesheets you have to specify the new target name.
+This ensures that the dependencies get correct, especially for the cleanup via <quote><literal>scons -c</literal></quote>:
+</para>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0">env = Environment(tools=['docbook'])
+env.DocbookHtmlChunked('mymanual.html', 'manual', xsl='htmlchunk.xsl')
+</screen>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">Some basic support for the <literal>base.dir</literal> is provided. You
+can add the <literal>base_dir</literal> keyword to your Builder
+call, and the given prefix gets prepended to all the created filenames:
+</para>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0">env = Environment(tools=['docbook'])
+env.DocbookHtmlChunked('manual', xsl='htmlchunk.xsl', base_dir='output/')
+</screen>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">Make sure that you don't forget the trailing slash for the base folder, else
+your files get renamed only! 
+</para>
+</listitem>
+  </varlistentry>
+  <varlistentry id="b-DocbookHtmlhelp">
+    <term>
+      <function>DocbookHtmlhelp()</function>
+    </term>
+    <term>
+      <function>env.DocbookHtmlhelp()</function>
+    </term>
+    <listitem>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">
+A pseudo-Builder, providing a Docbook toolchain for HTMLHELP output.
+Its basic syntax is:
+</para>
+
+<example_commands xmlns="http://www.scons.org/dbxsd/v1.0">env = Environment(tools=['docbook'])
+env.DocbookHtmlhelp('manual')
+</example_commands>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">
+where <filename>manual.xml</filename> is the input file.
+</para>
+
+<para xmlns="http://www.scons.org/dbxsd/v1.0">If you use the <literal>root.filename</literal> 
+parameter in your own stylesheets you have to specify the new target name.
+This ensures that the dependencies get correct, especially for the cleanup via <quote><literal>scons -c</literal></quote>:
+</para>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0">env = Environment(tools=['docbook'])
+env.DocbookHtmlhelp('mymanual.html', 'manual', xsl='htmlhelp.xsl')
+</screen>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">Some basic support for the <literal>base.dir</literal> parameter
+is provided. You can add the <literal>base_dir</literal> keyword to
+your Builder call, and the given prefix gets prepended to all the
+created filenames:
+</para>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0">env = Environment(tools=['docbook'])
+env.DocbookHtmlhelp('manual', xsl='htmlhelp.xsl', base_dir='output/')
+</screen>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">Make sure that you don't forget the trailing slash for the base folder, else
+your files get renamed only! 
+</para>
+
+</listitem>
+  </varlistentry>
+  <varlistentry id="b-DocbookMan">
+    <term>
+      <function>DocbookMan()</function>
+    </term>
+    <term>
+      <function>env.DocbookMan()</function>
+    </term>
+    <listitem>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">
+A pseudo-Builder, providing a Docbook toolchain for Man page output.
+Its basic syntax is:
+</para>
+
+<example_commands xmlns="http://www.scons.org/dbxsd/v1.0">env = Environment(tools=['docbook'])
+env.DocbookMan('manual')
+</example_commands>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">
+where <filename>manual.xml</filename> is the input file. Note, that 
+you can specify a target name, but the actual output names are automatically
+set from the <literal>refname</literal> entries in your XML source.
+</para>
+</listitem>
+  </varlistentry>
+  <varlistentry id="b-DocbookPdf">
+    <term>
+      <function>DocbookPdf()</function>
+    </term>
+    <term>
+      <function>env.DocbookPdf()</function>
+    </term>
+    <listitem>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">
+A pseudo-Builder, providing a Docbook toolchain for PDF output.
+</para>
+
+<example_commands xmlns="http://www.scons.org/dbxsd/v1.0">env = Environment(tools=['docbook'])
+env.DocbookPdf('manual.pdf', 'manual.xml')
+</example_commands>
+
+<para xmlns="http://www.scons.org/dbxsd/v1.0">
+or simply
+</para>
+
+<example_commands xmlns="http://www.scons.org/dbxsd/v1.0">env = Environment(tools=['docbook'])
+env.DocbookPdf('manual')
+</example_commands>
+
+</listitem>
+  </varlistentry>
+  <varlistentry id="b-DocbookSlidesHtml">
+    <term>
+      <function>DocbookSlidesHtml()</function>
+    </term>
+    <term>
+      <function>env.DocbookSlidesHtml()</function>
+    </term>
+    <listitem>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">
+A pseudo-Builder, providing a Docbook toolchain for HTML slides output.
+</para>
+
+<example_commands xmlns="http://www.scons.org/dbxsd/v1.0">env = Environment(tools=['docbook'])
+env.DocbookSlidesHtml('manual')
+</example_commands>
+
+<para xmlns="http://www.scons.org/dbxsd/v1.0">If you use the <literal>titlefoil.html</literal> parameter in
+your own stylesheets you have to give the new target name. This ensures
+that the dependencies get correct, especially for the cleanup via 
+<quote><literal>scons -c</literal></quote>:
+</para>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0">env = Environment(tools=['docbook'])
+env.DocbookSlidesHtml('mymanual.html','manual', xsl='slideshtml.xsl')
+</screen>
+
+<para xmlns="http://www.scons.org/dbxsd/v1.0">Some basic support for the <literal>base.dir</literal> parameter 
+is provided. You
+can add the <literal>base_dir</literal> keyword to your Builder
+call, and the given prefix gets prepended to all the created filenames:
+</para>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0">env = Environment(tools=['docbook'])
+env.DocbookSlidesHtml('manual', xsl='slideshtml.xsl', base_dir='output/')
+</screen>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">Make sure that you don't forget the trailing slash for the base folder, else
+your files get renamed only! 
+</para>
+
+</listitem>
+  </varlistentry>
+  <varlistentry id="b-DocbookSlidesPdf">
+    <term>
+      <function>DocbookSlidesPdf()</function>
+    </term>
+    <term>
+      <function>env.DocbookSlidesPdf()</function>
+    </term>
+    <listitem>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">
+A pseudo-Builder, providing a Docbook toolchain for PDF slides output.
+</para>
+
+<example_commands xmlns="http://www.scons.org/dbxsd/v1.0">env = Environment(tools=['docbook'])
+env.DocbookSlidesPdf('manual.pdf', 'manual.xml')
+</example_commands>
+
+<para xmlns="http://www.scons.org/dbxsd/v1.0">
+or simply
+</para>
+
+<example_commands xmlns="http://www.scons.org/dbxsd/v1.0">env = Environment(tools=['docbook'])
+env.DocbookSlidesPdf('manual')
+</example_commands>
+</listitem>
+  </varlistentry>
+  <varlistentry id="b-DocbookXInclude">
+    <term>
+      <function>DocbookXInclude()</function>
+    </term>
+    <term>
+      <function>env.DocbookXInclude()</function>
+    </term>
+    <listitem>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">
+A pseudo-Builder, for resolving XIncludes in a separate processing step.
+</para>
+
+<example_commands xmlns="http://www.scons.org/dbxsd/v1.0">env = Environment(tools=['docbook'])
+env.DocbookXInclude('manual_xincluded.xml', 'manual.xml')
+</example_commands>
+</listitem>
+  </varlistentry>
+  <varlistentry id="b-DocbookXslt">
+    <term>
+      <function>DocbookXslt()</function>
+    </term>
+    <term>
+      <function>env.DocbookXslt()</function>
+    </term>
+    <listitem>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">
+A pseudo-Builder, applying a given XSL transformation to the input file.
+</para>
+
+<example_commands xmlns="http://www.scons.org/dbxsd/v1.0">env = Environment(tools=['docbook'])
+env.DocbookXslt('manual_transformed.xml', 'manual.xml', xsl='transform.xslt')
+</example_commands>
+
+<para xmlns="http://www.scons.org/dbxsd/v1.0">Note, that this builder requires the <literal>xsl</literal> parameter
+to be set.
+</para>
+</listitem>
+  </varlistentry>
   <varlistentry id="b-DVI">
     <term>
       <function>DVI()</function>

doc/generated/builders.mod

 <!ENTITY b-CFile "<function xmlns='http://www.scons.org/dbxsd/v1.0'>CFile</function>">
 <!ENTITY b-Command "<function xmlns='http://www.scons.org/dbxsd/v1.0'>Command</function>">
 <!ENTITY b-CXXFile "<function xmlns='http://www.scons.org/dbxsd/v1.0'>CXXFile</function>">
+<!ENTITY b-DocbookHtml "<function xmlns='http://www.scons.org/dbxsd/v1.0'>DocbookHtml</function>">
+<!ENTITY b-DocbookHtmlChunked "<function xmlns='http://www.scons.org/dbxsd/v1.0'>DocbookHtmlChunked</function>">
+<!ENTITY b-DocbookHtmlhelp "<function xmlns='http://www.scons.org/dbxsd/v1.0'>DocbookHtmlhelp</function>">
+<!ENTITY b-DocbookMan "<function xmlns='http://www.scons.org/dbxsd/v1.0'>DocbookMan</function>">
+<!ENTITY b-DocbookPdf "<function xmlns='http://www.scons.org/dbxsd/v1.0'>DocbookPdf</function>">
+<!ENTITY b-DocbookSlidesHtml "<function xmlns='http://www.scons.org/dbxsd/v1.0'>DocbookSlidesHtml</function>">
+<!ENTITY b-DocbookSlidesPdf "<function xmlns='http://www.scons.org/dbxsd/v1.0'>DocbookSlidesPdf</function>">
+<!ENTITY b-DocbookXInclude "<function xmlns='http://www.scons.org/dbxsd/v1.0'>DocbookXInclude</function>">
+<!ENTITY b-DocbookXslt "<function xmlns='http://www.scons.org/dbxsd/v1.0'>DocbookXslt</function>">
 <!ENTITY b-DVI "<function xmlns='http://www.scons.org/dbxsd/v1.0'>DVI</function>">
 <!ENTITY b-Install "<function xmlns='http://www.scons.org/dbxsd/v1.0'>Install</function>">
 <!ENTITY b-InstallAs "<function xmlns='http://www.scons.org/dbxsd/v1.0'>InstallAs</function>">
 <!ENTITY b-env-CFile "<function xmlns='http://www.scons.org/dbxsd/v1.0'>env.CFile</function>">
 <!ENTITY b-env-Command "<function xmlns='http://www.scons.org/dbxsd/v1.0'>env.Command</function>">
 <!ENTITY b-env-CXXFile "<function xmlns='http://www.scons.org/dbxsd/v1.0'>env.CXXFile</function>">
+<!ENTITY b-env-DocbookHtml "<function xmlns='http://www.scons.org/dbxsd/v1.0'>env.DocbookHtml</function>">
+<!ENTITY b-env-DocbookHtmlChunked "<function xmlns='http://www.scons.org/dbxsd/v1.0'>env.DocbookHtmlChunked</function>">
+<!ENTITY b-env-DocbookHtmlhelp "<function xmlns='http://www.scons.org/dbxsd/v1.0'>env.DocbookHtmlhelp</function>">
+<!ENTITY b-env-DocbookMan "<function xmlns='http://www.scons.org/dbxsd/v1.0'>env.DocbookMan</function>">
+<!ENTITY b-env-DocbookPdf "<function xmlns='http://www.scons.org/dbxsd/v1.0'>env.DocbookPdf</function>">
+<!ENTITY b-env-DocbookSlidesHtml "<function xmlns='http://www.scons.org/dbxsd/v1.0'>env.DocbookSlidesHtml</function>">
+<!ENTITY b-env-DocbookSlidesPdf "<function xmlns='http://www.scons.org/dbxsd/v1.0'>env.DocbookSlidesPdf</function>">
+<!ENTITY b-env-DocbookXInclude "<function xmlns='http://www.scons.org/dbxsd/v1.0'>env.DocbookXInclude</function>">
+<!ENTITY b-env-DocbookXslt "<function xmlns='http://www.scons.org/dbxsd/v1.0'>env.DocbookXslt</function>">
 <!ENTITY b-env-DVI "<function xmlns='http://www.scons.org/dbxsd/v1.0'>env.DVI</function>">
 <!ENTITY b-env-Install "<function xmlns='http://www.scons.org/dbxsd/v1.0'>env.Install</function>">
 <!ENTITY b-env-InstallAs "<function xmlns='http://www.scons.org/dbxsd/v1.0'>env.InstallAs</function>">
 <!ENTITY b-link-CFile "<link linkend='b-CFile' xmlns='http://www.scons.org/dbxsd/v1.0'><function>CFile</function></link>">
 <!ENTITY b-link-Command "<link linkend='b-Command' xmlns='http://www.scons.org/dbxsd/v1.0'><function>Command</function></link>">
 <!ENTITY b-link-CXXFile "<link linkend='b-CXXFile' xmlns='http://www.scons.org/dbxsd/v1.0'><function>CXXFile</function></link>">
+<!ENTITY b-link-DocbookHtml "<link linkend='b-DocbookHtml' xmlns='http://www.scons.org/dbxsd/v1.0'><function>DocbookHtml</function></link>">
+<!ENTITY b-link-DocbookHtmlChunked "<link linkend='b-DocbookHtmlChunked' xmlns='http://www.scons.org/dbxsd/v1.0'><function>DocbookHtmlChunked</function></link>">
+<!ENTITY b-link-DocbookHtmlhelp "<link linkend='b-DocbookHtmlhelp' xmlns='http://www.scons.org/dbxsd/v1.0'><function>DocbookHtmlhelp</function></link>">
+<!ENTITY b-link-DocbookMan "<link linkend='b-DocbookMan' xmlns='http://www.scons.org/dbxsd/v1.0'><function>DocbookMan</function></link>">
+<!ENTITY b-link-DocbookPdf "<link linkend='b-DocbookPdf' xmlns='http://www.scons.org/dbxsd/v1.0'><function>DocbookPdf</function></link>">
+<!ENTITY b-link-DocbookSlidesHtml "<link linkend='b-DocbookSlidesHtml' xmlns='http://www.scons.org/dbxsd/v1.0'><function>DocbookSlidesHtml</function></link>">
+<!ENTITY b-link-DocbookSlidesPdf "<link linkend='b-DocbookSlidesPdf' xmlns='http://www.scons.org/dbxsd/v1.0'><function>DocbookSlidesPdf</function></link>">
+<!ENTITY b-link-DocbookXInclude "<link linkend='b-DocbookXInclude' xmlns='http://www.scons.org/dbxsd/v1.0'><function>DocbookXInclude</function></link>">
+<!ENTITY b-link-DocbookXslt "<link linkend='b-DocbookXslt' xmlns='http://www.scons.org/dbxsd/v1.0'><function>DocbookXslt</function></link>">
 <!ENTITY b-link-DVI "<link linkend='b-DVI' xmlns='http://www.scons.org/dbxsd/v1.0'><function>DVI</function></link>">
 <!ENTITY b-link-Install "<link linkend='b-Install' xmlns='http://www.scons.org/dbxsd/v1.0'><function>Install</function></link>">
 <!ENTITY b-link-InstallAs "<link linkend='b-InstallAs' xmlns='http://www.scons.org/dbxsd/v1.0'><function>InstallAs</function></link>">
 <!ENTITY b-link-env-CFile "<link linkend='b-CFile' xmlns='http://www.scons.org/dbxsd/v1.0'><function>env.CFile</function></link>">
 <!ENTITY b-link-env-Command "<link linkend='b-Command' xmlns='http://www.scons.org/dbxsd/v1.0'><function>env.Command</function></link>">
 <!ENTITY b-link-env-CXXFile "<link linkend='b-CXXFile' xmlns='http://www.scons.org/dbxsd/v1.0'><function>env.CXXFile</function></link>">
+<!ENTITY b-link-env-DocbookHtml "<link linkend='b-DocbookHtml' xmlns='http://www.scons.org/dbxsd/v1.0'><function>env.DocbookHtml</function></link>">
+<!ENTITY b-link-env-DocbookHtmlChunked "<link linkend='b-DocbookHtmlChunked' xmlns='http://www.scons.org/dbxsd/v1.0'><function>env.DocbookHtmlChunked</function></link>">
+<!ENTITY b-link-env-DocbookHtmlhelp "<link linkend='b-DocbookHtmlhelp' xmlns='http://www.scons.org/dbxsd/v1.0'><function>env.DocbookHtmlhelp</function></link>">
+<!ENTITY b-link-env-DocbookMan "<link linkend='b-DocbookMan' xmlns='http://www.scons.org/dbxsd/v1.0'><function>env.DocbookMan</function></link>">
+<!ENTITY b-link-env-DocbookPdf "<link linkend='b-DocbookPdf' xmlns='http://www.scons.org/dbxsd/v1.0'><function>env.DocbookPdf</function></link>">
+<!ENTITY b-link-env-DocbookSlidesHtml "<link linkend='b-DocbookSlidesHtml' xmlns='http://www.scons.org/dbxsd/v1.0'><function>env.DocbookSlidesHtml</function></link>">
+<!ENTITY b-link-env-DocbookSlidesPdf "<link linkend='b-DocbookSlidesPdf' xmlns='http://www.scons.org/dbxsd/v1.0'><function>env.DocbookSlidesPdf</function></link>">
+<!ENTITY b-link-env-DocbookXInclude "<link linkend='b-DocbookXInclude' xmlns='http://www.scons.org/dbxsd/v1.0'><function>env.DocbookXInclude</function></link>">
+<!ENTITY b-link-env-DocbookXslt "<link linkend='b-DocbookXslt' xmlns='http://www.scons.org/dbxsd/v1.0'><function>env.DocbookXslt</function></link>">
 <!ENTITY b-link-env-DVI "<link linkend='b-DVI' xmlns='http://www.scons.org/dbxsd/v1.0'><function>env.DVI</function></link>">
 <!ENTITY b-link-env-Install "<link linkend='b-Install' xmlns='http://www.scons.org/dbxsd/v1.0'><function>env.Install</function></link>">
 <!ENTITY b-link-env-InstallAs "<link linkend='b-InstallAs' xmlns='http://www.scons.org/dbxsd/v1.0'><function>env.InstallAs</function></link>">

doc/generated/tools.gen

 </para>
 </listitem>
   </varlistentry>
+  <varlistentry id="t-docbook">
+    <term>docbook</term>
+    <listitem>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">This tool tries to make working with Docbook in SCons a little easier.
+It provides several toolchains for creating different output formats,
+like HTML or PDF. Contained in the package is
+a distribution of the Docbook XSL stylesheets as of version 1.76.1.
+As long as you don't specify your own stylesheets for customization,
+these official versions are picked as default...which should reduce
+the inevitable setup hassles for you.
+</para>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">Implicit dependencies to images and XIncludes are detected automatically
+if you meet the HTML requirements. The additional
+stylesheet <filename>utils/xmldepend.xsl</filename> by Paul DuBois is used for this purpose.
+</para>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">Note, that there is no support for XML catalog resolving offered! This tool calls
+the XSLT processors and PDF renderers with the stylesheets you specified, that's it.
+The rest lies in your hands and you still have to know what you're doing when
+resolving names via a catalog. 
+</para>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">For activating the tool "docbook", you have to add its name to the Environment constructor,
+like this
+</para>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0">env = Environment(tools=['docbook'])
+</screen>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">On its startup, the Docbook tool tries to find a required <literal>xsltproc</literal> processor, and
+a PDF renderer, e.g. <literal>fop</literal>. So make sure that these are added to your system's environment
+<literal>PATH</literal> and can be called directly, without specifying their full path.
+</para>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">For the most basic processing of Docbook to HTML, you need to have installed
+</para>
+<itemizedlist xmlns="http://www.scons.org/dbxsd/v1.0"><listitem><para>the Python <literal>lxml</literal> binding to <literal>libxml2</literal>, or
+</para>
+</listitem>
+<listitem><para>the direct Python bindings for <literal>libxml2/libxslt</literal>, or
+</para>
+</listitem>
+<listitem><para>a standalone XSLT processor, currently detected are <literal>xsltproc</literal>, <literal>saxon</literal>, <literal>saxon-xslt</literal>
+and <literal>xalan</literal>.
+</para>
+</listitem>
+</itemizedlist>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">Rendering to PDF requires you to have one of the applications
+<literal>fop</literal> or <literal>xep</literal> installed.
+</para>
+
+<para xmlns="http://www.scons.org/dbxsd/v1.0">Creating a HTML or PDF document is very simple and straightforward. Say
+</para>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0">env = Environment(tools=['docbook'])
+env.DocbookHtml('manual.html', 'manual.xml')
+env.DocbookPdf('manual.pdf', 'manual.xml')
+</screen>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">to get both outputs from your XML source <filename>manual.xml</filename>. As a shortcut, you can
+give the stem of the filenames alone, like this:
+</para>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0">env = Environment(tools=['docbook'])
+env.DocbookHtml('manual')
+env.DocbookPdf('manual')
+</screen>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">and get the same result. Target and source lists are also supported:
+</para>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0">env = Environment(tools=['docbook'])
+env.DocbookHtml(['manual.html','reference.html'], ['manual.xml','reference.xml'])
+</screen>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">or even
+</para>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0">env = Environment(tools=['docbook'])
+env.DocbookHtml(['manual','reference'])
+</screen>
+<important xmlns="http://www.scons.org/dbxsd/v1.0"><para>Whenever you leave out the list of sources, you may not specify a file extension! The
+Tool uses the given names as file stems, and adds the suffixes for target and source files
+accordingly.
+</para>
+</important>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">The rules given above are valid for the Builders <link xmlns="http://www.scons.org/dbxsd/v1.0" linkend="b-DocbookHtml"><function>DocbookHtml</function></link>, 
+<link xmlns="http://www.scons.org/dbxsd/v1.0" linkend="b-DocbookPdf"><function>DocbookPdf</function></link>, <link xmlns="http://www.scons.org/dbxsd/v1.0" linkend="b-DocbookSlidesPdf"><function>DocbookSlidesPdf</function></link> and <link xmlns="http://www.scons.org/dbxsd/v1.0" linkend="b-DocbookXInclude"><function>DocbookXInclude</function></link>. For the 
+<link xmlns="http://www.scons.org/dbxsd/v1.0" linkend="b-DocbookMan"><function>DocbookMan</function></link> transformation you
+can specify a target name, but the actual output names are automatically
+set from the <literal>refname</literal> entries in your XML source.
+</para>
+
+<para xmlns="http://www.scons.org/dbxsd/v1.0">The Builders <link xmlns="http://www.scons.org/dbxsd/v1.0" linkend="b-DocbookHtmlChunked"><function>DocbookHtmlChunked</function></link>, <link xmlns="http://www.scons.org/dbxsd/v1.0" linkend="b-DocbookHtmlhelp"><function>DocbookHtmlhelp</function></link> and 
+<link xmlns="http://www.scons.org/dbxsd/v1.0" linkend="b-DocbookSlidesHtml"><function>DocbookSlidesHtml</function></link> are special, in that:
+</para>
+<orderedlist xmlns="http://www.scons.org/dbxsd/v1.0"><listitem><para>they create a large set of files, where the exact names and their number depend
+on the content of the source file, and
+</para>
+</listitem>
+<listitem><para>the main target is always named <filename>index.html</filename>, i.e. the output name for the
+XSL transformation is not picked up by the stylesheets.
+</para>
+</listitem>
+</orderedlist>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">As a result, there is simply no use in specifying a target HTML name. 
+So the basic syntax for these builders is always:
+</para>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0">env = Environment(tools=['docbook'])
+env.DocbookHtmlhelp('manual')
+</screen>
+
+<para xmlns="http://www.scons.org/dbxsd/v1.0">If you want to use a specific XSL file, you can set the
+additional <literal>xsl</literal> parameter to your
+Builder call as follows:
+</para>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0">env.DocbookHtml('other.html', 'manual.xml', xsl='html.xsl')
+</screen>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">Since this may get tedious if you always use the same local naming for your customized XSL files,
+e.g. <filename>html.xsl</filename> for HTML and <filename>pdf.xsl</filename> for PDF output, a set of
+variables for setting the default XSL name is provided. These are:
+</para>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0">DOCBOOK_DEFAULT_XSL_HTML        
+DOCBOOK_DEFAULT_XSL_HTMLCHUNKED        
+DOCBOOK_DEFAULT_XSL_HTMLHELP        
+DOCBOOK_DEFAULT_XSL_PDF        
+DOCBOOK_DEFAULT_XSL_MAN        
+DOCBOOK_DEFAULT_XSL_SLIDESPDF        
+DOCBOOK_DEFAULT_XSL_SLIDESHTML        
+</screen>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">and you can set them when constructing your environment:
+</para>
+<screen xmlns="http://www.scons.org/dbxsd/v1.0">env = Environment(tools=['docbook'],
+                  DOCBOOK_DEFAULT_XSL_HTML='html.xsl',
+                  DOCBOOK_DEFAULT_XSL_PDF='pdf.xsl')
+env.DocbookHtml('manual') # now uses html.xsl
+</screen>
+<para>Sets:  &cv-link-DOCBOOK_DEFAULT_XSL_HTML;, &cv-link-DOCBOOK_DEFAULT_XSL_HTMLCHUNKED;, &cv-link-DOCBOOK_DEFAULT_XSL_HTMLHELP;, &cv-link-DOCBOOK_DEFAULT_XSL_MAN;, &cv-link-DOCBOOK_DEFAULT_XSL_PDF;, &cv-link-DOCBOOK_DEFAULT_XSL_SLIDESHTML;, &cv-link-DOCBOOK_DEFAULT_XSL_SLIDESPDF;, &cv-link-DOCBOOK_FOP;, &cv-link-DOCBOOK_FOPCOM;, &cv-link-DOCBOOK_FOPFLAGS;, &cv-link-DOCBOOK_XMLLINT;, &cv-link-DOCBOOK_XMLLINTCOM;, &cv-link-DOCBOOK_XMLLINTFLAGS;, &cv-link-DOCBOOK_XSLTPROC;, &cv-link-DOCBOOK_XSLTPROCCOM;, &cv-link-DOCBOOK_XSLTPROCFLAGS;, &cv-link-DOCBOOK_XSLTPROCPARAMS;.</para><para>Uses:  &cv-link-DOCBOOK_FOPCOMSTR;, &cv-link-DOCBOOK_XMLLINTCOMSTR;, &cv-link-DOCBOOK_XSLTPROCCOMSTR;.</para></listitem>
+  </varlistentry>
   <varlistentry id="t-dvi">
     <term>dvi</term>
     <listitem>

doc/generated/tools.mod

 <!ENTITY t-cXX "<literal xmlns='http://www.scons.org/dbxsd/v1.0'>cXX</literal>">
 <!ENTITY t-default "<literal xmlns='http://www.scons.org/dbxsd/v1.0'>default</literal>">
 <!ENTITY t-dmd "<literal xmlns='http://www.scons.org/dbxsd/v1.0'>dmd</literal>">
+<!ENTITY t-docbook "<literal xmlns='http://www.scons.org/dbxsd/v1.0'>docbook</literal>">
 <!ENTITY t-dvi "<literal xmlns='http://www.scons.org/dbxsd/v1.0'>dvi</literal>">
 <!ENTITY t-dvipdf "<literal xmlns='http://www.scons.org/dbxsd/v1.0'>dvipdf</literal>">
 <!ENTITY t-dvips "<literal xmlns='http://www.scons.org/dbxsd/v1.0'>dvips</literal>">
 <!ENTITY t-link-cXX "<link linkend='t-cXX' xmlns='http://www.scons.org/dbxsd/v1.0'><literal>cXX</literal></link>">
 <!ENTITY t-link-default "<link linkend='t-default' xmlns='http://www.scons.org/dbxsd/v1.0'><literal>default</literal></link>">
 <!ENTITY t-link-dmd "<link linkend='t-dmd' xmlns='http://www.scons.org/dbxsd/v1.0'><literal>dmd</literal></link>">
+<!ENTITY t-link-docbook "<link linkend='t-docbook' xmlns='http://www.scons.org/dbxsd/v1.0'><literal>docbook</literal></link>">
 <!ENTITY t-link-dvi "<link linkend='t-dvi' xmlns='http://www.scons.org/dbxsd/v1.0'><literal>dvi</literal></link>">
 <!ENTITY t-link-dvipdf "<link linkend='t-dvipdf' xmlns='http://www.scons.org/dbxsd/v1.0'><literal>dvipdf</literal></link>">
 <!ENTITY t-link-dvips "<link linkend='t-dvips' xmlns='http://www.scons.org/dbxsd/v1.0'><literal>dvips</literal></link>">

doc/generated/variables.gen

 </para>
 </listitem>
   </varlistentry>
+  <varlistentry id="cv-DOCBOOK_DEFAULT_XSL_HTML">
+    <term>DOCBOOK_DEFAULT_XSL_HTML</term>
+    <listitem>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">
+The default XSLT file for the <link xmlns="http://www.scons.org/dbxsd/v1.0" linkend="b-DocbookHtml"><function>DocbookHtml</function></link> builder within the
+current environment, if no other XSLT gets specified via keyword.
+</para>
+</listitem>
+  </varlistentry>
+  <varlistentry id="cv-DOCBOOK_DEFAULT_XSL_HTMLCHUNKED">
+    <term>DOCBOOK_DEFAULT_XSL_HTMLCHUNKED</term>
+    <listitem>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">
+The default XSLT file for the <link xmlns="http://www.scons.org/dbxsd/v1.0" linkend="b-DocbookHtmlChunked"><function>DocbookHtmlChunked</function></link> builder within the
+current environment, if no other XSLT gets specified via keyword.
+</para>
+</listitem>
+  </varlistentry>
+  <varlistentry id="cv-DOCBOOK_DEFAULT_XSL_HTMLHELP">
+    <term>DOCBOOK_DEFAULT_XSL_HTMLHELP</term>
+    <listitem>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">
+The default XSLT file for the <link xmlns="http://www.scons.org/dbxsd/v1.0" linkend="b-DocbookHtmlhelp"><function>DocbookHtmlhelp</function></link> builder within the
+current environment, if no other XSLT gets specified via keyword.
+</para>
+</listitem>
+  </varlistentry>
+  <varlistentry id="cv-DOCBOOK_DEFAULT_XSL_MAN">
+    <term>DOCBOOK_DEFAULT_XSL_MAN</term>
+    <listitem>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">
+The default XSLT file for the <link xmlns="http://www.scons.org/dbxsd/v1.0" linkend="b-DocbookMan"><function>DocbookMan</function></link> builder within the
+current environment, if no other XSLT gets specified via keyword.
+</para>
+</listitem>
+  </varlistentry>
+  <varlistentry id="cv-DOCBOOK_DEFAULT_XSL_PDF">
+    <term>DOCBOOK_DEFAULT_XSL_PDF</term>
+    <listitem>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">
+The default XSLT file for the <link xmlns="http://www.scons.org/dbxsd/v1.0" linkend="b-DocbookPdf"><function>DocbookPdf</function></link> builder within the
+current environment, if no other XSLT gets specified via keyword.
+</para>
+</listitem>
+  </varlistentry>
+  <varlistentry id="cv-DOCBOOK_DEFAULT_XSL_SLIDESHTML">
+    <term>DOCBOOK_DEFAULT_XSL_SLIDESHTML</term>
+    <listitem>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">
+The default XSLT file for the <link xmlns="http://www.scons.org/dbxsd/v1.0" linkend="b-DocbookSlidesHtml"><function>DocbookSlidesHtml</function></link> builder within the
+current environment, if no other XSLT gets specified via keyword.
+</para>
+</listitem>
+  </varlistentry>
+  <varlistentry id="cv-DOCBOOK_DEFAULT_XSL_SLIDESPDF">
+    <term>DOCBOOK_DEFAULT_XSL_SLIDESPDF</term>
+    <listitem>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">
+The default XSLT file for the <link xmlns="http://www.scons.org/dbxsd/v1.0" linkend="b-DocbookSlidesPdf"><function>DocbookSlidesPdf</function></link> builder within the
+current environment, if no other XSLT gets specified via keyword.
+</para>
+</listitem>
+  </varlistentry>
+  <varlistentry id="cv-DOCBOOK_FOP">
+    <term>DOCBOOK_FOP</term>
+    <listitem>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">
+The path to the PDF renderer <literal>fop</literal> or <literal>xep</literal>,
+if one of them is installed (<literal>fop</literal> gets checked first).
+</para>
+</listitem>
+  </varlistentry>
+  <varlistentry id="cv-DOCBOOK_FOPCOM">
+    <term>DOCBOOK_FOPCOM</term>
+    <listitem>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">
+The full command-line for the
+PDF renderer <literal>fop</literal> or <literal>xep</literal>.
+</para>
+</listitem>
+  </varlistentry>
+  <varlistentry id="cv-DOCBOOK_FOPCOMSTR">
+    <term>DOCBOOK_FOPCOMSTR</term>
+    <listitem>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">
+The string displayed when a renderer like <literal>fop</literal> or
+<literal>xep</literal> is used to create PDF output from an XML file.
+</para>
+</listitem>
+  </varlistentry>
+  <varlistentry id="cv-DOCBOOK_FOPFLAGS">
+    <term>DOCBOOK_FOPFLAGS</term>
+    <listitem>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">
+Additonal command-line flags for the
+PDF renderer <literal>fop</literal> or <literal>xep</literal>.
+</para>
+</listitem>
+  </varlistentry>
+  <varlistentry id="cv-DOCBOOK_XMLLINT">
+    <term>DOCBOOK_XMLLINT</term>
+    <listitem>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">
+The path to the external executable <literal>xmllint</literal>, if it's installed.
+Note, that this is only used as last fallback for resolving
+XIncludes, if no libxml2 or lxml Python binding can be imported
+in the current system.
+</para>
+</listitem>
+  </varlistentry>
+  <varlistentry id="cv-DOCBOOK_XMLLINTCOM">
+    <term>DOCBOOK_XMLLINTCOM</term>
+    <listitem>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">
+The full command-line for the external executable
+<literal>xmllint</literal>.
+</para>
+</listitem>
+  </varlistentry>
+  <varlistentry id="cv-DOCBOOK_XMLLINTCOMSTR">
+    <term>DOCBOOK_XMLLINTCOMSTR</term>
+    <listitem>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">
+The string displayed when <literal>xmllint</literal> is used to resolve
+XIncludes for a given XML file.
+</para>
+</listitem>
+  </varlistentry>
+  <varlistentry id="cv-DOCBOOK_XMLLINTFLAGS">
+    <term>DOCBOOK_XMLLINTFLAGS</term>
+    <listitem>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">
+Additonal command-line flags for the external executable
+<literal>xmllint</literal>.
+</para>
+</listitem>
+  </varlistentry>
+  <varlistentry id="cv-DOCBOOK_XSLTPROC">
+    <term>DOCBOOK_XSLTPROC</term>
+    <listitem>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">
+The path to the external executable <literal>xsltproc</literal>
+(or <literal>saxon</literal>, <literal>xalan</literal>), if one of them
+is installed.
+Note, that this is only used as last fallback for XSL transformations, if
+no libxml2 or lxml Python binding can be imported in the current system.
+</para>
+</listitem>
+  </varlistentry>
+  <varlistentry id="cv-DOCBOOK_XSLTPROCCOM">
+    <term>DOCBOOK_XSLTPROCCOM</term>
+    <listitem>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">
+The full command-line for the external executable
+<literal>xsltproc</literal> (or <literal>saxon</literal>, 
+<literal>xalan</literal>).
+</para>
+</listitem>
+  </varlistentry>
+  <varlistentry id="cv-DOCBOOK_XSLTPROCCOMSTR">
+    <term>DOCBOOK_XSLTPROCCOMSTR</term>
+    <listitem>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">
+The string displayed when <literal>xsltproc</literal> is used to transform
+an XML file via a given XSLT stylesheet.
+</para>
+</listitem>
+  </varlistentry>
+  <varlistentry id="cv-DOCBOOK_XSLTPROCFLAGS">
+    <term>DOCBOOK_XSLTPROCFLAGS</term>
+    <listitem>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">
+Additonal command-line flags for the external executable
+<literal>xsltproc</literal> (or <literal>saxon</literal>, 
+<literal>xalan</literal>).
+</para>
+</listitem>
+  </varlistentry>
+  <varlistentry id="cv-DOCBOOK_XSLTPROCPARAMS">
+    <term>DOCBOOK_XSLTPROCPARAMS</term>
+    <listitem>
+<para xmlns="http://www.scons.org/dbxsd/v1.0">
+Additonal parameters that are not intended for the XSLT processor executable, but
+the XSL processing itself. By default, they get appended at the end of the command line
+for <literal>saxon</literal> and <literal>saxon-xslt</literal>, respectively.
+</para>
+</listitem>
+  </varlistentry>
   <varlistentry id="cv-DSUFFIXES">
     <term>DSUFFIXES</term>
     <listitem>

doc/generated/variables.mod

 <!ENTITY cv-DESCRIPTION_lang "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$DESCRIPTION_lang</envar>">
 <!ENTITY cv-Dir "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$Dir</envar>">
 <!ENTITY cv-Dirs "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$Dirs</envar>">
+<!ENTITY cv-DOCBOOK_DEFAULT_XSL_HTML "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$DOCBOOK_DEFAULT_XSL_HTML</envar>">
+<!ENTITY cv-DOCBOOK_DEFAULT_XSL_HTMLCHUNKED "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$DOCBOOK_DEFAULT_XSL_HTMLCHUNKED</envar>">
+<!ENTITY cv-DOCBOOK_DEFAULT_XSL_HTMLHELP "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$DOCBOOK_DEFAULT_XSL_HTMLHELP</envar>">
+<!ENTITY cv-DOCBOOK_DEFAULT_XSL_MAN "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$DOCBOOK_DEFAULT_XSL_MAN</envar>">
+<!ENTITY cv-DOCBOOK_DEFAULT_XSL_PDF "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$DOCBOOK_DEFAULT_XSL_PDF</envar>">
+<!ENTITY cv-DOCBOOK_DEFAULT_XSL_SLIDESHTML "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$DOCBOOK_DEFAULT_XSL_SLIDESHTML</envar>">
+<!ENTITY cv-DOCBOOK_DEFAULT_XSL_SLIDESPDF "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$DOCBOOK_DEFAULT_XSL_SLIDESPDF</envar>">
+<!ENTITY cv-DOCBOOK_FOP "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$DOCBOOK_FOP</envar>">
+<!ENTITY cv-DOCBOOK_FOPCOM "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$DOCBOOK_FOPCOM</envar>">
+<!ENTITY cv-DOCBOOK_FOPCOMSTR "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$DOCBOOK_FOPCOMSTR</envar>">
+<!ENTITY cv-DOCBOOK_FOPFLAGS "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$DOCBOOK_FOPFLAGS</envar>">
+<!ENTITY cv-DOCBOOK_XMLLINT "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$DOCBOOK_XMLLINT</envar>">
+<!ENTITY cv-DOCBOOK_XMLLINTCOM "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$DOCBOOK_XMLLINTCOM</envar>">
+<!ENTITY cv-DOCBOOK_XMLLINTCOMSTR "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$DOCBOOK_XMLLINTCOMSTR</envar>">
+<!ENTITY cv-DOCBOOK_XMLLINTFLAGS "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$DOCBOOK_XMLLINTFLAGS</envar>">
+<!ENTITY cv-DOCBOOK_XSLTPROC "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$DOCBOOK_XSLTPROC</envar>">
+<!ENTITY cv-DOCBOOK_XSLTPROCCOM "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$DOCBOOK_XSLTPROCCOM</envar>">
+<!ENTITY cv-DOCBOOK_XSLTPROCCOMSTR "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$DOCBOOK_XSLTPROCCOMSTR</envar>">
+<!ENTITY cv-DOCBOOK_XSLTPROCFLAGS "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$DOCBOOK_XSLTPROCFLAGS</envar>">
+<!ENTITY cv-DOCBOOK_XSLTPROCPARAMS "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$DOCBOOK_XSLTPROCPARAMS</envar>">
 <!ENTITY cv-DSUFFIXES "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$DSUFFIXES</envar>">
 <!ENTITY cv-DVIPDF "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$DVIPDF</envar>">
 <!ENTITY cv-DVIPDFCOM "<envar xmlns='http://www.scons.org/dbxsd/v1.0'>$DVIPDFCOM</envar>">
 <!ENTITY cv-link-DESCRIPTION_lang "<link linkend='cv-DESCRIPTION_lang' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$DESCRIPTION_lang</envar></link>">
 <!ENTITY cv-link-Dir "<link linkend='cv-Dir' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$Dir</envar></link>">
 <!ENTITY cv-link-Dirs "<link linkend='cv-Dirs' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$Dirs</envar></link>">
+<!ENTITY cv-link-DOCBOOK_DEFAULT_XSL_HTML "<link linkend='cv-DOCBOOK_DEFAULT_XSL_HTML' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$DOCBOOK_DEFAULT_XSL_HTML</envar></link>">
+<!ENTITY cv-link-DOCBOOK_DEFAULT_XSL_HTMLCHUNKED "<link linkend='cv-DOCBOOK_DEFAULT_XSL_HTMLCHUNKED' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$DOCBOOK_DEFAULT_XSL_HTMLCHUNKED</envar></link>">
+<!ENTITY cv-link-DOCBOOK_DEFAULT_XSL_HTMLHELP "<link linkend='cv-DOCBOOK_DEFAULT_XSL_HTMLHELP' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$DOCBOOK_DEFAULT_XSL_HTMLHELP</envar></link>">
+<!ENTITY cv-link-DOCBOOK_DEFAULT_XSL_MAN "<link linkend='cv-DOCBOOK_DEFAULT_XSL_MAN' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$DOCBOOK_DEFAULT_XSL_MAN</envar></link>">
+<!ENTITY cv-link-DOCBOOK_DEFAULT_XSL_PDF "<link linkend='cv-DOCBOOK_DEFAULT_XSL_PDF' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$DOCBOOK_DEFAULT_XSL_PDF</envar></link>">
+<!ENTITY cv-link-DOCBOOK_DEFAULT_XSL_SLIDESHTML "<link linkend='cv-DOCBOOK_DEFAULT_XSL_SLIDESHTML' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$DOCBOOK_DEFAULT_XSL_SLIDESHTML</envar></link>">
+<!ENTITY cv-link-DOCBOOK_DEFAULT_XSL_SLIDESPDF "<link linkend='cv-DOCBOOK_DEFAULT_XSL_SLIDESPDF' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$DOCBOOK_DEFAULT_XSL_SLIDESPDF</envar></link>">
+<!ENTITY cv-link-DOCBOOK_FOP "<link linkend='cv-DOCBOOK_FOP' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$DOCBOOK_FOP</envar></link>">
+<!ENTITY cv-link-DOCBOOK_FOPCOM "<link linkend='cv-DOCBOOK_FOPCOM' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$DOCBOOK_FOPCOM</envar></link>">
+<!ENTITY cv-link-DOCBOOK_FOPCOMSTR "<link linkend='cv-DOCBOOK_FOPCOMSTR' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$DOCBOOK_FOPCOMSTR</envar></link>">
+<!ENTITY cv-link-DOCBOOK_FOPFLAGS "<link linkend='cv-DOCBOOK_FOPFLAGS' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$DOCBOOK_FOPFLAGS</envar></link>">
+<!ENTITY cv-link-DOCBOOK_XMLLINT "<link linkend='cv-DOCBOOK_XMLLINT' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$DOCBOOK_XMLLINT</envar></link>">
+<!ENTITY cv-link-DOCBOOK_XMLLINTCOM "<link linkend='cv-DOCBOOK_XMLLINTCOM' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$DOCBOOK_XMLLINTCOM</envar></link>">
+<!ENTITY cv-link-DOCBOOK_XMLLINTCOMSTR "<link linkend='cv-DOCBOOK_XMLLINTCOMSTR' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$DOCBOOK_XMLLINTCOMSTR</envar></link>">
+<!ENTITY cv-link-DOCBOOK_XMLLINTFLAGS "<link linkend='cv-DOCBOOK_XMLLINTFLAGS' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$DOCBOOK_XMLLINTFLAGS</envar></link>">
+<!ENTITY cv-link-DOCBOOK_XSLTPROC "<link linkend='cv-DOCBOOK_XSLTPROC' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$DOCBOOK_XSLTPROC</envar></link>">
+<!ENTITY cv-link-DOCBOOK_XSLTPROCCOM "<link linkend='cv-DOCBOOK_XSLTPROCCOM' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$DOCBOOK_XSLTPROCCOM</envar></link>">
+<!ENTITY cv-link-DOCBOOK_XSLTPROCCOMSTR "<link linkend='cv-DOCBOOK_XSLTPROCCOMSTR' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$DOCBOOK_XSLTPROCCOMSTR</envar></link>">
+<!ENTITY cv-link-DOCBOOK_XSLTPROCFLAGS "<link linkend='cv-DOCBOOK_XSLTPROCFLAGS' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$DOCBOOK_XSLTPROCFLAGS</envar></link>">
+<!ENTITY cv-link-DOCBOOK_XSLTPROCPARAMS "<link linkend='cv-DOCBOOK_XSLTPROCPARAMS' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$DOCBOOK_XSLTPROCPARAMS</envar></link>">
 <!ENTITY cv-link-DSUFFIXES "<link linkend='cv-DSUFFIXES' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$DSUFFIXES</envar></link>">
 <!ENTITY cv-link-DVIPDF "<link linkend='cv-DVIPDF' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$DVIPDF</envar></link>">
 <!ENTITY cv-link-DVIPDFCOM "<link linkend='cv-DVIPDFCOM' xmlns='http://www.scons.org/dbxsd/v1.0'><envar>$DVIPDFCOM</envar></link>">

doc/man/scons.xml

     </copyright>
 
     <releaseinfo>version &buildversion;</releaseinfo>
-
   </referenceinfo>
-
+  
+  <title>SCons &buildversion;</title>
+  <subtitle>MAN page</subtitle>
+  
+  
 <refentry id='scons1'> 
 <refmeta>
 <refentrytitle>SCONS</refentrytitle>

src/engine/MANIFEST-xml.in

 SCons/Tool/cvf.xml
 SCons/Tool/default.xml
 SCons/Tool/dmd.xml
+SCons/Tool/docbook/__init__.xml
 SCons/Tool/dvi.xml
 SCons/Tool/dvipdf.xml
 SCons/Tool/dvips.xml

src/engine/MANIFEST.in

 SCons/Tool/CVS.py
 SCons/Tool/default.py
 SCons/Tool/dmd.py
+SCons/Tool/docbook/__init__.xml
 SCons/Tool/dvi.py
 SCons/Tool/dvipdf.py
 SCons/Tool/dvips.py

src/engine/SCons/Tool/docbook/__init__.xml

+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+__COPYRIGHT__
+
+This file is processed by the bin/SConsDoc.py module.
+See its __doc__ string for a discussion of the format.
+-->
+
+<!DOCTYPE sconsdoc [
+<!ENTITY % scons SYSTEM '../../../../../doc/scons.mod'>
+%scons;
+<!ENTITY % builders-mod SYSTEM '../../../../../doc/generated/builders.mod'>
+%builders-mod;
+<!ENTITY % functions-mod SYSTEM '../../../../../doc/generated/functions.mod'>
+%functions-mod;
+<!ENTITY % tools-mod SYSTEM '../../../../../doc/generated/tools.mod'>
+%tools-mod;
+<!ENTITY % variables-mod SYSTEM '../../../../../doc/generated/variables.mod'>
+%variables-mod;
+]>
+
+<sconsdoc xmlns="http://www.scons.org/dbxsd/v1.0"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0/scons.xsd scons.xsd">
+
+<tool name="docbook">
+<summary>
+<para>This tool tries to make working with Docbook in SCons a little easier.
+It provides several toolchains for creating different output formats,
+like HTML or PDF. Contained in the package is
+a distribution of the Docbook XSL stylesheets as of version 1.76.1.
+As long as you don't specify your own stylesheets for customization,
+these official versions are picked as default...which should reduce
+the inevitable setup hassles for you.
+</para>
+<para>Implicit dependencies to images and XIncludes are detected automatically
+if you meet the HTML requirements. The additional
+stylesheet <filename>utils/xmldepend.xsl</filename> by Paul DuBois is used for this purpose.
+</para>
+<para>Note, that there is no support for XML catalog resolving offered! This tool calls
+the XSLT processors and PDF renderers with the stylesheets you specified, that's it.
+The rest lies in your hands and you still have to know what you're doing when
+resolving names via a catalog. 
+</para>
+<para>For activating the tool "docbook", you have to add its name to the Environment constructor,
+like this
+</para>
+<screen>env = Environment(tools=['docbook'])
+</screen>
+<para>On its startup, the Docbook tool tries to find a required <literal>xsltproc</literal> processor, and
+a PDF renderer, e.g. <literal>fop</literal>. So make sure that these are added to your system's environment
+<literal>PATH</literal> and can be called directly, without specifying their full path.
+</para>
+<para>For the most basic processing of Docbook to HTML, you need to have installed
+</para>
+<itemizedlist><listitem><para>the Python <literal>lxml</literal> binding to <literal>libxml2</literal>, or
+</para>
+</listitem>
+<listitem><para>the direct Python bindings for <literal>libxml2/libxslt</literal>, or
+</para>
+</listitem>
+<listitem><para>a standalone XSLT processor, currently detected are <literal>xsltproc</literal>, <literal>saxon</literal>, <literal>saxon-xslt</literal>
+and <literal>xalan</literal>.
+</para>
+</listitem>
+</itemizedlist>
+<para>Rendering to PDF requires you to have one of the applications
+<literal>fop</literal> or <literal>xep</literal> installed.
+</para>
+
+<para>Creating a HTML or PDF document is very simple and straightforward. Say
+</para>
+<screen>env = Environment(tools=['docbook'])
+env.DocbookHtml('manual.html', 'manual.xml')
+env.DocbookPdf('manual.pdf', 'manual.xml')
+</screen>
+<para>to get both outputs from your XML source <filename>manual.xml</filename>. As a shortcut, you can
+give the stem of the filenames alone, like this:
+</para>
+<screen>env = Environment(tools=['docbook'])
+env.DocbookHtml('manual')
+env.DocbookPdf('manual')
+</screen>
+<para>and get the same result. Target and source lists are also supported:
+</para>
+<screen>env = Environment(tools=['docbook'])
+env.DocbookHtml(['manual.html','reference.html'], ['manual.xml','reference.xml'])
+</screen>
+<para>or even
+</para>
+<screen>env = Environment(tools=['docbook'])
+env.DocbookHtml(['manual','reference'])
+</screen>
+<important><para>Whenever you leave out the list of sources, you may not specify a file extension! The
+Tool uses the given names as file stems, and adds the suffixes for target and source files
+accordingly.
+</para>
+</important>
+<para>The rules given above are valid for the Builders &b-link-DocbookHtml;, 
+&b-link-DocbookPdf;, &b-link-DocbookSlidesPdf; and &b-link-DocbookXInclude;. For the 
+&b-link-DocbookMan; transformation you
+can specify a target name, but the actual output names are automatically
+set from the <literal>refname</literal> entries in your XML source.
+</para>
+
+<para>The Builders &b-link-DocbookHtmlChunked;, &b-link-DocbookHtmlhelp; and 
+&b-link-DocbookSlidesHtml; are special, in that:
+</para>
+<orderedlist><listitem><para>they create a large set of files, where the exact names and their number depend
+on the content of the source file, and
+</para>
+</listitem>
+<listitem><para>the main target is always named <filename>index.html</filename>, i.e. the output name for the
+XSL transformation is not picked up by the stylesheets.
+</para>
+</listitem>
+</orderedlist>
+<para>As a result, there is simply no use in specifying a target HTML name. 
+So the basic syntax for these builders is always:
+</para>
+<screen>env = Environment(tools=['docbook'])
+env.DocbookHtmlhelp('manual')
+</screen>
+
+<para>If you want to use a specific XSL file, you can set the
+additional <literal>xsl</literal> parameter to your
+Builder call as follows:
+</para>
+<screen>env.DocbookHtml('other.html', 'manual.xml', xsl='html.xsl')
+</screen>
+<para>Since this may get tedious if you always use the same local naming for your customized XSL files,
+e.g. <filename>html.xsl</filename> for HTML and <filename>pdf.xsl</filename> for PDF output, a set of
+variables for setting the default XSL name is provided. These are:
+</para>
+<screen>DOCBOOK_DEFAULT_XSL_HTML        
+DOCBOOK_DEFAULT_XSL_HTMLCHUNKED        
+DOCBOOK_DEFAULT_XSL_HTMLHELP        
+DOCBOOK_DEFAULT_XSL_PDF        
+DOCBOOK_DEFAULT_XSL_MAN        
+DOCBOOK_DEFAULT_XSL_SLIDESPDF        
+DOCBOOK_DEFAULT_XSL_SLIDESHTML        
+</screen>
+<para>and you can set them when constructing your environment:
+</para>
+<screen>env = Environment(tools=['docbook'],
+                  DOCBOOK_DEFAULT_XSL_HTML='html.xsl',
+                  DOCBOOK_DEFAULT_XSL_PDF='pdf.xsl')
+env.DocbookHtml('manual') # now uses html.xsl
+</screen>
+</summary>
+<sets>
+<item>DOCBOOK_DEFAULT_XSL_HTML</item>
+<item>DOCBOOK_DEFAULT_XSL_HTMLCHUNKED</item>
+<item>DOCBOOK_DEFAULT_XSL_HTMLHELP</item>
+<item>DOCBOOK_DEFAULT_XSL_PDF</item>
+<item>DOCBOOK_DEFAULT_XSL_MAN</item>
+<item>DOCBOOK_DEFAULT_XSL_SLIDESPDF</item>
+<item>DOCBOOK_DEFAULT_XSL_SLIDESHTML</item>
+<item>DOCBOOK_XSLTPROC</item>
+<item>DOCBOOK_XMLLINT</item>
+<item>DOCBOOK_FOP</item>
+<item>DOCBOOK_XSLTPROCFLAGS</item>
+<item>DOCBOOK_XMLLINTFLAGS</item>
+<item>DOCBOOK_FOPFLAGS</item>
+<item>DOCBOOK_XSLTPROCPARAMS</item>
+<item>DOCBOOK_XSLTPROCCOM</item>
+<item>DOCBOOK_XMLLINTCOM</item>
+<item>DOCBOOK_FOPCOM</item>
+</sets>
+<uses>
+<item>DOCBOOK_XSLTPROCCOMSTR</item>
+<item>DOCBOOK_XMLLINTCOMSTR</item>
+<item>DOCBOOK_FOPCOMSTR</item>
+</uses>
+</tool>
+
+
+<cvar name="DOCBOOK_DEFAULT_XSL_HTML">
+<summary>
+<para>
+The default XSLT file for the &b-link-DocbookHtml; builder within the
+current environment, if no other XSLT gets specified via keyword.
+</para>
+</summary>
+</cvar>
+
+
+<cvar name="DOCBOOK_DEFAULT_XSL_HTMLCHUNKED">
+<summary>
+<para>
+The default XSLT file for the &b-link-DocbookHtmlChunked; builder within the
+current environment, if no other XSLT gets specified via keyword.
+</para>
+</summary>
+</cvar>
+
+<cvar name="DOCBOOK_DEFAULT_XSL_HTMLHELP">
+<summary>
+<para>
+The default XSLT file for the &b-link-DocbookHtmlhelp; builder within the
+current environment, if no other XSLT gets specified via keyword.
+</para>
+</summary>
+</cvar>
+
+<cvar name="DOCBOOK_DEFAULT_XSL_PDF">
+<summary>
+<para>
+The default XSLT file for the &b-link-DocbookPdf; builder within the
+current environment, if no other XSLT gets specified via keyword.
+</para>
+</summary>
+</cvar>
+
+<cvar name="DOCBOOK_DEFAULT_XSL_MAN">
+<summary>
+<para>
+The default XSLT file for the &b-link-DocbookMan; builder within the
+current environment, if no other XSLT gets specified via keyword.
+</para>
+</summary>
+</cvar>
+
+<cvar name="DOCBOOK_DEFAULT_XSL_SLIDESPDF">
+<summary>
+<para>
+The default XSLT file for the &b-link-DocbookSlidesPdf; builder within the
+current environment, if no other XSLT gets specified via keyword.
+</para>
+</summary>
+</cvar>
+
+<cvar name="DOCBOOK_DEFAULT_XSL_SLIDESHTML">
+<summary>
+<para>
+The default XSLT file for the &b-link-DocbookSlidesHtml; builder within the
+current environment, if no other XSLT gets specified via keyword.
+</para>
+</summary>
+</cvar>
+
+<cvar name="DOCBOOK_XSLTPROC">
+<summary>
+<para>
+The path to the external executable <literal>xsltproc</literal>
+(or <literal>saxon</literal>, <literal>xalan</literal>), if one of them
+is installed.
+Note, that this is only used as last fallback for XSL transformations, if
+no libxml2 or lxml Python binding can be imported in the current system.
+</para>
+</summary>
+</cvar>
+
+<cvar name="DOCBOOK_XMLLINT">
+<summary>
+<para>
+The path to the external executable <literal>xmllint</literal>, if it's installed.
+Note, that this is only used as last fallback for resolving
+XIncludes, if no libxml2 or lxml Python binding can be imported
+in the current system.
+</para>
+</summary>
+</cvar>
+
+<cvar name="DOCBOOK_FOP">
+<summary>
+<para>
+The path to the PDF renderer <literal>fop</literal> or <literal>xep</literal>,
+if one of them is installed (<literal>fop</literal> gets checked first).
+</para>
+</summary>
+</cvar>
+
+<cvar name="DOCBOOK_XSLTPROCFLAGS">
+<summary>
+<para>
+Additonal command-line flags for the external executable
+<literal>xsltproc</literal> (or <literal>saxon</literal>, 
+<literal>xalan</literal>).
+</para>
+</summary>
+</cvar>
+
+<cvar name="DOCBOOK_XMLLINTFLAGS">
+<summary>
+<para>
+Additonal command-line flags for the external executable
+<literal>xmllint</literal>.
+</para>
+</summary>
+</cvar>
+
+<cvar name="DOCBOOK_FOPFLAGS">
+<summary>
+<para>
+Additonal command-line flags for the
+PDF renderer <literal>fop</literal> or <literal>xep</literal>.
+</para>
+</summary>
+</cvar>
+
+<cvar name="DOCBOOK_XSLTPROCPARAMS">
+<summary>
+<para>
+Additonal parameters that are not intended for the XSLT processor executable, but
+the XSL processing itself. By default, they get appended at the end of the command line
+for <literal>saxon</literal> and <literal>saxon-xslt</literal>, respectively.
+</para>
+</summary>
+</cvar>
+
+<cvar name="DOCBOOK_XSLTPROCCOM">
+<summary>
+<para>
+The full command-line for the external executable
+<literal>xsltproc</literal> (or <literal>saxon</literal>, 
+<literal>xalan</literal>).
+</para>
+</summary>
+</cvar>
+
+<cvar name="DOCBOOK_XMLLINTCOM">
+<summary>
+<para>
+The full command-line for the external executable
+<literal>xmllint</literal>.
+</para>
+</summary>
+</cvar>
+
+<cvar name="DOCBOOK_FOPCOM">
+<summary>
+<para>
+The full command-line for the
+PDF renderer <literal>fop</literal> or <literal>xep</literal>.
+</para>
+</summary>
+</cvar>
+
+<cvar name="DOCBOOK_XSLTPROCCOMSTR">
+<summary>
+<para>
+The string displayed when <literal>xsltproc</literal> is used to transform
+an XML file via a given XSLT stylesheet.
+</para>
+</summary>
+</cvar>
+
+<cvar name="DOCBOOK_XMLLINTCOMSTR">
+<summary>
+<para>
+The string displayed when <literal>xmllint</literal> is used to resolve
+XIncludes for a given XML file.
+</para>
+</summary>
+</cvar>
+
+<cvar name="DOCBOOK_FOPCOMSTR">
+<summary>
+<para>
+The string displayed when a renderer like <literal>fop</literal> or
+<literal>xep</literal> is used to create PDF output from an XML file.
+</para>
+</summary>
+</cvar>
+
+<builder name="DocbookHtml">
+<summary>
+<para>
+A pseudo-Builder, providing a Docbook toolchain for HTML output.
+</para>
+<example_commands>env = Environment(tools=['docbook'])
+env.DocbookHtml('manual.html', 'manual.xml')
+</example_commands>
+<para>
+or simply
+</para>
+<example_commands>env = Environment(tools=['docbook'])
+env.DocbookHtml('manual')
+</example_commands>
+</summary>
+</builder>
+
+<builder name="DocbookHtmlChunked">
+<summary>
+<para>
+A pseudo-Builder, providing a Docbook toolchain for chunked HTML output.
+It supports the <literal>base.dir</literal> parameter. The 
+<filename>chunkfast.xsl</filename> file (requires &quot;EXSLT&quot;) is used as the
+default stylesheet. Basic syntax:
+</para>
+
+<example_commands>env = Environment(tools=['docbook'])
+env.DocbookHtmlChunked('manual')
+</example_commands>
+<para>
+where <filename>manual.xml</filename> is the input file.
+</para>
+<para>If you use the <literal>root.filename</literal> 
+parameter in your own stylesheets you have to specify the new target name.
+This ensures that the dependencies get correct, especially for the cleanup via <quote><literal>scons -c</literal></quote>:
+</para>
+<screen>env = Environment(tools=['docbook'])
+env.DocbookHtmlChunked('mymanual.html', 'manual', xsl='htmlchunk.xsl')
+</screen>
+<para>Some basic support for the <literal>base.dir</literal> is provided. You
+can add the <literal>base_dir</literal> keyword to your Builder
+call, and the given prefix gets prepended to all the created filenames:
+</para>
+<screen>env = Environment(tools=['docbook'])
+env.DocbookHtmlChunked('manual', xsl='htmlchunk.xsl', base_dir='output/')
+</screen>
+<para>Make sure that you don't forget the trailing slash for the base folder, else
+your files get renamed only! 
+</para>
+</summary>
+</builder>
+
+<builder name="DocbookHtmlhelp">
+<summary>
+<para>
+A pseudo-Builder, providing a Docbook toolchain for HTMLHELP output.
+Its basic syntax is:
+</para>
+
+<example_commands>env = Environment(tools=['docbook'])
+env.DocbookHtmlhelp('manual')
+</example_commands>
+<para>
+where <filename>manual.xml</filename> is the input file.
+</para>
+
+<para>If you use the <literal>root.filename</literal> 
+parameter in your own stylesheets you have to specify the new target name.
+This ensures that the dependencies get correct, especially for the cleanup via <quote><literal>scons -c</literal></quote>:
+</para>
+<screen>env = Environment(tools=['docbook'])
+env.DocbookHtmlhelp('mymanual.html', 'manual', xsl='htmlhelp.xsl')
+</screen>
+<para>Some basic support for the <literal>base.dir</literal> parameter
+is provided. You can add the <literal>base_dir</literal> keyword to
+your Builder call, and the given prefix gets prepended to all the
+created filenames:
+</para>
+<screen>env = Environment(tools=['docbook'])
+env.DocbookHtmlhelp('manual', xsl='htmlhelp.xsl', base_dir='output/')
+</screen>
+<para>Make sure that you don't forget the trailing slash for the base folder, else
+your files get renamed only! 
+</para>
+
+</summary>
+</builder>
+
+<builder name="DocbookPdf">
+<summary>
+<para>
+A pseudo-Builder, providing a Docbook toolchain for PDF output.
+</para>
+
+<example_commands>env = Environment(tools=['docbook'])
+env.DocbookPdf('manual.pdf', 'manual.xml')
+</example_commands>
+
+<para>
+or simply
+</para>
+
+<example_commands>env = Environment(tools=['docbook'])
+env.DocbookPdf('manual')
+</example_commands>
+
+</summary>
+</builder>
+
+<builder name="DocbookMan">
+<summary>
+<para>
+A pseudo-Builder, providing a Docbook toolchain for Man page output.
+Its basic syntax is:
+</para>
+
+<example_commands>env = Environment(tools=['docbook'])
+env.DocbookMan('manual')
+</example_commands>
+<para>
+where <filename>manual.xml</filename> is the input file. Note, that 
+you can specify a target name, but the actual output names are automatically
+set from the <literal>refname</literal> entries in your XML source.
+</para>
+</summary>
+</builder>
+
+<builder name="DocbookSlidesPdf">
+<summary>
+<para>
+A pseudo-Builder, providing a Docbook toolchain for PDF slides output.
+</para>
+
+<example_commands>env = Environment(tools=['docbook'])
+env.DocbookSlidesPdf('manual.pdf', 'manual.xml')
+</example_commands>
+
+<para>
+or simply
+</para>
+
+<example_commands>env = Environment(tools=['docbook'])
+env.DocbookSlidesPdf('manual')
+</example_commands>
+</summary>
+</builder>
+
+<builder name="DocbookSlidesHtml">
+<summary>
+<para>
+A pseudo-Builder, providing a Docbook toolchain for HTML slides output.
+</para>
+
+<example_commands>env = Environment(tools=['docbook'])
+env.DocbookSlidesHtml('manual')
+</example_commands>
+
+<para>If you use the <literal>titlefoil.html</literal> parameter in
+your own stylesheets you have to give the new target name. This ensures
+that the dependencies get correct, especially for the cleanup via 
+<quote><literal>scons -c</literal></quote>:
+</para>
+<screen>env = Environment(tools=['docbook'])
+env.DocbookSlidesHtml('mymanual.html','manual', xsl='slideshtml.xsl')
+</screen>
+
+<para>Some basic support for the <literal>base.dir</literal> parameter 
+is provided. You
+can add the <literal>base_dir</literal> keyword to your Builder
+call, and the given prefix gets prepended to all the created filenames:
+</para>
+<screen>env = Environment(tools=['docbook'])
+env.DocbookSlidesHtml('manual', xsl='slideshtml.xsl', base_dir='output/')
+</screen>
+<para>Make sure that you don't forget the trailing slash for the base folder, else
+your files get renamed only! 
+</para>
+
+</summary>
+</builder>
+
+<builder name="DocbookXInclude">
+<summary>
+<para>
+A pseudo-Builder, for resolving XIncludes in a separate processing step.
+</para>
+
+<example_commands>env = Environment(tools=['docbook'])
+env.DocbookXInclude('manual_xincluded.xml', 'manual.xml')
+</example_commands>
+</summary>
+</builder>
+
+<builder name="DocbookXslt">
+<summary>
+<para>
+A pseudo-Builder, applying a given XSL transformation to the input file.
+</para>
+
+<example_commands>env = Environment(tools=['docbook'])
+env.DocbookXslt('manual_transformed.xml', 'manual.xml', xsl='transform.xslt')
+</example_commands>
+
+<para>Note, that this builder requires the <literal>xsl</literal> parameter
+to be set.
+</para>
+</summary>
+</builder>
+
+</sconsdoc>

src/engine/SCons/Tool/docbook/test/basedir/htmlchunked/image/SConstruct

-env = Environment(tools=['docbook'])
-env.DocbookHtmlChunked('manual', xsl='html.xsl', base_dir='output/')
-

src/engine/SCons/Tool/docbook/test/basedir/htmlchunked/image/html.xsl

-<?xml version='1.0'?>
-<!--
-
-  Copyright (c) 2001-2010 The SCons Foundation
-
-  Permission is hereby granted, free of charge, to any person obtaining
-  a copy of this software and associated documentation files (the
-  "Software"), to deal in the Software without restriction, including
-  without limitation the rights to use, copy, modify, merge, publish,
-  distribute, sublicense, and/or sell copies of the Software, and to
-  permit persons to whom the Software is furnished to do so, subject to
-  the following conditions:
-
-  The above copyright notice and this permission notice shall be included
-  in all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
-  KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
-  WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
--->
-<xsl:stylesheet
-	xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
-	xmlns:fo="http://www.w3.org/1999/XSL/Format" 
-	version="1.0"> 
-
-	<xsl:import href="file:///usr/share/xml/docbook/stylesheet/docbook-xsl/html/chunkfast.xsl"/> 
-
-<xsl:param name="l10n.gentext.default.language" select="'en'"/>
-<xsl:param name="section.autolabel" select="1"/>
-<xsl:param name="base.dir" select="'output/'"/>
-<xsl:param name="html.stylesheet" select="'scons.css'"/>
-<xsl:param name="generate.toc">
-/appendix toc,title
-article/appendix  nop
-/article  toc,title
-book      toc,title,figure,table,example,equation
-/chapter  toc,title
-part      toc,title
-/preface  toc,title
-reference toc,title
-/sect1    toc
-/sect2    toc
-/sect3    toc
-/sect4    toc
-/sect5    toc
-/section  toc
-set       toc,title
-</xsl:param>
-
-</xsl:stylesheet> 
-

src/engine/SCons/Tool/docbook/test/basedir/htmlchunked/image/manual.xml

-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-  Copyright (c) 2001-2010 The SCons Foundation
-
-  Permission is hereby granted, free of charge, to any person obtaining
-  a copy of this software and associated documentation files (the
-  "Software"), to deal in the Software without restriction, including
-  without limitation the rights to use, copy, modify, merge, publish,
-  distribute, sublicense, and/or sell copies of the Software, and to
-  permit persons to whom the Software is furnished to do so, subject to
-  the following conditions:
-
-  The above copyright notice and this permission notice shall be included
-  in all copies or substantial portions of the Software.
-
-  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
-  KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
-  WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
--->
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
-"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
-<article>
-  <title>The SCons qt4 tool</title>
-
-  <articleinfo>
-    <author>
-      <surname>Dirk Baechle</surname>
-    </author>
-
-    <pubdate>2010-12-06</pubdate>
-  </articleinfo>
-
-  <section id="basics">
-    <title>Basics</title>
-
-    <para>This tool can be used to compile Qt projects, designed for versions
-    4.x.y and higher. It is not usable for Qt3 and older versions, since some
-    of the helper tools (<literal>moc</literal>, <literal>uic</literal>)
-    behave different.</para>
-
-    <section id="install">
-      <title>Install</title>
-
-      <para>Installing it, requires you to copy (or, even better: checkout)
-      the contents of the package's <literal>qt4</literal> folder to</para>
-
-      <orderedlist>
-        <listitem>
-          <para><quote><literal>/path_to_your_project/site_scons/site_tools/qt4</literal></quote>,
-          if you need the Qt4 Tool in one project only, or</para>
-        </listitem>
-
-        <listitem>
-          <para><quote><literal>~/.scons/site_scons/site_tools/qt4</literal></quote>,
-          for a system-wide installation under your current login.</para>
-        </listitem>
-      </orderedlist>
-
-      <para>For more infos about this, please refer to</para>
-
-      <itemizedlist>
-        <listitem>
-          <para>the SCons User's Guide, chap. 17.7 "Where to put your custom
-          Builders and Tools" and</para>
-        </listitem>
-
-        <listitem>
-          <para>the SCons Tools Wiki page at <ulink
-          url="http://scons.org/wiki/ToolsIndex">http://scons.org/wiki/ToolsIndex</ulink>.</para>
-        </listitem>
-      </itemizedlist>
-    </section>
-
-    <section id="activation">
-      <title>How to activate</title>
-
-      <para>For activating the tool "qt4", you have to add its name to the
-      Environment constructor, like this</para>
-
-      <screen>env = Environment(tools=['default','qt4'])
-</screen>
-
-      <para>On its startup, the Qt4 tool tries to read the variable
-      <literal>QT4DIR</literal> from the current Environment and
-      <literal>os.environ</literal>. If it is not set, the value of
-      <literal>QTDIR</literal> (in Environment/<literal>os.environ</literal>)
-      is used as a fallback.</para>
-
-      <para>So, you either have to explicitly give the path of your Qt4
-      installation to the Environment with</para>
-
-      <screen>env['QT4DIR'] = '/usr/local/Trolltech/Qt-4.2.3'
-</screen>
-
-      <para>or set the <literal>QT4DIR</literal> as environment variable in
-      your shell.</para>
-    </section>
-
-    <section id="requirements">
-      <title>Requirements</title>
-
-      <para>Under Linux, "qt4" uses the system tool
-      <literal>pkg-config</literal> for automatically setting the required
-      compile and link flags of the single Qt4 modules (like QtCore,
-      QtGui,...). This means that</para>
-
-      <orderedlist>
-        <listitem>
-          <para>you should have <literal>pkg-config</literal> installed,
-          and</para>
-        </listitem>
-
-        <listitem>
-          <para>you additionally have to set
-          <literal>PKG_CONFIG_PATH</literal> in your shell environment, such
-          that it points to $<literal>QT4DIR/lib/pkgconfig</literal> (or
-          $<literal>QT4DIR/lib</literal> for some older versions).</para>
-        </listitem>
-      </orderedlist>
-
-      <para>Based on these two environment variables
-      (<literal>QT4DIR</literal> and <literal>PKG_CONFIG_PATH</literal>), the
-      "qt4" tool initializes all <literal>QT4_*</literal> construction
-      variables listed in the Reference manual. This happens when the tool is
-      "detected" during Environment construction. As a consequence, the setup
-      of the tool gets a two-stage process, if you want to override the values
-      provided by your current shell settings:</para>
-
-      <screen># Stage 1: create plain environment
-qtEnv = Environment()
-# Set new vars
-qtEnv['QT4DIR'] = '/usr/local/Trolltech/Qt-4.2.3
-qtEnv['ENV']['PKG_CONFIG_PATH'] = '/usr/local/Trolltech/Qt-4.2.3/lib/pkgconfig'
-# Stage 2: add qt4 tool
-qtEnv.Tool('qt4')
-</screen>
-    </section>
-  </section>
-
-  <section id="boilerplate">
-    <title>Suggested boilerplate</title>
-
-    <para>Based on the requirements above, we suggest a simple ready-to-go
-    setup as follows:</para>
-
-    <para>SConstruct</para>
-
-    <screen># Detect Qt version
-qtdir = detectLatestQtDir()
-
-# Create base environment
-baseEnv = Environment()
-#...further customization of base env
-
-# Clone Qt environment
-qtEnv = baseEnv.Clone()
-# Set QT4DIR and PKG_CONFIG_PATH
-qtEnv['ENV']['PKG_CONFIG_PATH'] = os.path.join(qtdir, 'lib/pkgconfig')
-qtEnv['QT4DIR'] = qtdir
-# Add qt4 tool
-qtEnv.Tool('qt4')
-#...further customization of qt env
-
-# Export environments
-Export('baseEnv qtEnv')
-
-# Your other stuff...
-# ...including the call to your SConscripts
-</screen>
-
-    <para>In a SConscript</para>
-
-    <screen># Get the Qt4 environment
-Import('qtEnv')
-# Clone it
-env = qtEnv.clone()
-# Patch it
-env.Append(CCFLAGS=['-m32']) # or whatever
-# Use it
-env.StaticLibrary('foo', Glob('*.cpp'))
-</screen>
-
-    <para>The detection of the Qt directory could be as simple as directly
-    assigning a fixed path</para>
-
-    <screen>def detectLatestQtDir():
-    return "/usr/local/qt4.3.2"
-</screen>
-
-    <para>or a little more sophisticated</para>
-
-    <screen># Tries to detect the path to the installation of Qt with
-# the highest version number
-def detectLatestQtDir():
-    if sys.platform.startswith("linux"):
-        # Simple check: inspect only '/usr/local/Trolltech'
-        paths = glob.glob('/usr/local/Trolltech/*')
-        if len(paths):
-            paths.sort()
-            return paths[-1]
-        else:
-            return ""
-    else:
-        # Simple check: inspect only 'C:\Qt'
-        paths = glob.glob('C:\\Qt\\*')
-        if len(paths):
-            paths.sort()
-            return paths[-1]
-        else:
-            return os.environ.get("QTDIR","")
-</screen>
-  </section>
-
-  <section id="firstproject">
-    <title>A first project</title>
-
-    <para>The following SConscript is for a simple project with some cxx
-    files, using the QtCore, QtGui and QtNetwork modules:</para>
-
-    <screen>Import('qtEnv')
-env = qtEnv.Clone()
-env.EnableQt4Modules([
-                      'QtGui',
-                      'QtCore',
-                      'QtNetwork'
-                     ])
-# Add your CCFLAGS and CPPPATHs to env here...
-
-env.Program('foo', Glob('*.cpp')) 
-</screen>
-  </section>
-
-  <section id="mocup">
-    <title>MOC it up</title>
-
-    <para>For the basic support of automocing, nothing needs to be done by the
-    user. The tool usually detects the <literal>Q_OBJECT</literal> macro and
-    calls the <quote><literal>moc</literal></quote> executable
-    accordingly.</para>
-
-    <para>If you don't want this, you can switch off the automocing by
-    a</para>
-
-    <screen>env['QT4_AUTOSCAN'] = 0
-</screen>
-
-    <para>in your SConscript file. Then, you have to moc your files
-    explicitly, using the Moc4 builder.</para>
-
-    <para>You can also switch to an extended automoc strategy with</para>
-
-    <screen>env['QT4_AUTOSCAN_STRATEGY'] = 1
-</screen>
-
-    <para>Please read the description of the
-    <literal>QT4_AUTOSCAN_STRATEGY</literal> variable in the Reference manual
-    for details.</para>
-
-    <para>For debugging purposes, you can set the variable
-    <literal>QT4_DEBUG</literal> with</para>
-
-    <screen>env['QT4_DEBUG'] = 1
-</screen>
-
-    <para>which outputs a lot of messages during automocing.</para>
-  </section>
-
-  <section id="forms">
-    <title>Forms (.ui)</title>
-
-    <para>The header files with setup code for your GUI classes, are not
-    compiled automatically from your <literal>.ui</literal> files. You always
-    have to call the Uic4 builder explicitly like</para>
-
-    <screen>env.Uic4(Glob('*.ui'))
-env.Program('foo', Glob('*.cpp'))
-</screen>
-  </section>
-
-  <section id="resources">
-    <title>Resource files (.qrc)</title>
-
-    <para>Resource files are not built automatically, you always have to add
-    the names of the <literal>.qrc</literal> files to the source list for your
-    program or library:</para>
-
-    <screen>env.Program('foo', Glob('*.cpp')+Glob('*.qrc'))
-</screen>
-
-    <para>For each of the Resource input files, its prefix defines the name of
-    the resulting resource. An appropriate
-    <quote><literal>-name</literal></quote> option is added to the call of the
-    <literal>rcc</literal> executable by default.</para>
-
-    <para>You can also call the Qrc4 builder explicitly as</para>
-
-    <screen>qrccc = env.Qrc4('foo') # ['foo.qrc'] -&gt; ['qrc_foo.cc']
-</screen>
-
-    <para>or (overriding the default suffix)</para>
-
-    <screen>qrccc = env.Qrc4('myprefix_foo.cxx','foo.qrc') # -&gt; ['qrc_myprefix_foo.cxx']
-</screen>
-
-    <para>and then add the resulting cxx file to the sources of your
-    Program/Library:</para>
-
-    <screen>env.Program('foo', Glob('*.cpp') + qrccc)
-</screen>
-  </section>
-
-  <section id="translation">
-    <title>Translation files</title>
-
-    <para>The update of the <literal>.ts</literal> files and the conversion to
-    binary <literal>.qm</literal> files is not done automatically. You have to
-    call the corresponding builders on your own.</para>
-
-    <para>Example for updating a translation file:</para>
-
-    <screen>env.Ts4('foo.ts','.') # -&gt; ['foo.ts']
-</screen>
-
-    <para>By default, the <literal>.ts</literal> files are treated as
-    <emphasis>precious</emphasis> targets. This means that they are not
-    removed prior to a rebuild, but simply get updated. Additionally, they do
-    not get cleaned on a <quote><literal>scons -c</literal></quote>. If you
-    want to delete the translation files on the
-    <quote><literal>-c</literal></quote> SCons command, you can set the
-    variable <quote><literal>QT4_CLEAN_TS</literal></quote> like this</para>
-
-    <screen>env['QT4_CLEAN_TS']=1
-</screen>
-
-    <para>Example for releasing a translation file, i.e. compiling it to a
-    <literal>.qm</literal> binary file:</para>
-
-    <screen>env.Qm4('foo') # ['foo.ts'] -&gt; ['foo.qm']
-</screen>
-
-    <para>or (overriding the output prefix)</para>
-
-    <screen>env.Qm4('myprefix','foo') # ['foo.ts'] -&gt; ['myprefix.qm']
-</screen>
-
-    <para>As an extension both, the Ts4() and Qm4 builder, support the
-    definition of multiple targets. So, calling</para>
-
-    <screen>env.Ts4(['app_en','app_de'], Glob('*.cpp'))
-</screen>
-
-    <para>and</para>
-
-    <screen>env.Qm4(['app','copy'], Glob('*.ts'))
-</screen>
-
-    <para>should work fine.</para>
-
-    <para>Finally, two short notes about the support of directories for the
-    Ts4() builder. You can pass an arbitrary mix of cxx files and subdirs to
-    it, as in</para>
-
-    <screen>env.Ts4('app_en',['sub1','appwindow.cpp','main.cpp']))
-</screen>
-
-    <para>where <literal>sub1</literal> is a folder that gets scanned
-    recursively for cxx files by <literal>lupdate</literal>. But like this,
-    you lose all dependency information for the subdir, i.e. if a file inside
-    the folder changes, the .ts file is not updated automatically! In this
-    case you should tell SCons to always update the target:</para>
-
-    <screen>ts = env.Ts4('app_en',['sub1','appwindow.cpp','main.cpp'])
-env.AlwaysBuild(ts)
-</screen>
-
-    <para>Last note: specifying the current folder
-    <quote><literal>.</literal></quote> as input to Ts4() and storing the
-    resulting .ts file in the same directory, leads to a dependency cycle! You