<section xmlns="http://docbook.org/ns/docbook" version="5.0" 
	 xml:id="appendix.porting.doc" xreflabel="Documentation Hacking">
<?dbhtml filename="documentation_hacking.html"?>

<info><title>Writing and Generating Documentation</title>
  <keywordset>
    <keyword>ISO C++</keyword>
    <keyword>documentation</keyword>
    <keyword>style</keyword>
    <keyword>docbook</keyword>
    <keyword>doxygen</keyword>
  </keywordset>
</info>

  <section xml:id="doc.intro">
    <info>
    <title>Introduction</title>
    </info>
    <para>
      Documentation for the GNU C++ Library is created from three
      independent sources: a manual, a FAQ, and an API reference.
    </para>
    <para>
      The sub-directory <filename class="directory">doc</filename>
      within the main source directory contains
      <filename>Makefile.am</filename> and
      <filename>Makefile.in</filename>, which provide rules for
      generating documentation, described in excruciating detail
      below. The <filename class="directory">doc</filename>
      sub-directory also contains three directories: <filename
      class="directory">doxygen</filename>, which contains scripts and
      fragments for <command>doxygen</command>, <filename
      class="directory">html</filename>, which contains an html
      version of the manual, and <filename
      class="directory">xml</filename>, which contains an xml version
      of the manual.
    </para>
    <para>
      Diverging from established documentation conventions in the rest
      of the GCC project, libstdc++ does not use Texinfo as a markup
      language. Instead, Docbook is used to create the manual and the
      FAQ, and Doxygen is used to construct the API
      reference. Although divergent, this conforms to the GNU Project
      recommendations as long as the output is of sufficient quality,
      as per
      <link xmlns:xlink="http://www.w3.org/1999/xlink" 
      xlink:href="http://www.gnu.org/prep/standards/standards.html#Documentation">
      GNU Manuals</link>.
    </para>
  </section>

  <section xml:id="doc.generation">
    <info>
    <title>Generating Documentation</title>
    </info>
    
    <para>
      Certain Makefile rules are required by the GNU Coding
      Standards. These standard rules generate HTML, PDF, XML, or man
      files. For each of the generative rules, there is an additional
      install rule that is used to install any generated documentation
      files into the prescribed installation directory. Files are
      installed into <filename class="directory">share/doc</filename>
      or <filename class="directory">share/man</filename> directories.
    </para>

    <para>
      The standard Makefile rules are conditionally supported, based
      on the results of examining the host environment for
      prerequisites at configuration time. If requirements are not
      found, the rule is aliased to a dummy rule that does nothing,
      and produces no documentation. If the requirements are found,
      the rule forwards to a private rule that produces the requested
      documentation.
    </para>

    <para>
      For more details on what prerequisites were found and where,
      please consult the file <filename>config.log</filename> in the
      libstdc++ build directory. Compare this log to what is expected
      for the relevant Makefile conditionals:
      <literal>BUILD_INFO</literal>, <literal>BUILD_XML</literal>,
      <literal>BUILD_HTML</literal>, <literal>BUILD_MAN</literal>,
      <literal>BUILD_PDF</literal>, and <literal>BUILD_EPUB</literal>.
    </para>

    <para>
      Supported Makefile rules:
    </para>

    <variablelist>
      <varlistentry>
	<term>
	  <emphasis>make html</emphasis>
	</term>
	<term>
	  <emphasis>make install-html</emphasis>
	</term>
	<listitem>
	  <para>
	    Generates multi-page HTML documentation, and installs it
	    in the following directories:
	  </para>
	  <para>
	    <filename>doc/libstdc++/libstdc++-api.html</filename>
	  </para>
	  <para>
	    <filename>doc/libstdc++/libstdc++-manual.html</filename>
	  </para>
	</listitem>
      </varlistentry>

      <varlistentry>
	<term>
	  <emphasis>make pdf</emphasis>
	</term>
	<term>
	  <emphasis>make install-pdf</emphasis>
	</term>
	<listitem>
	  <para>
	    Generates indexed PDF documentation, and installs it as
	    the following files:
	  </para>
	  <para>
	    <filename>doc/libstdc++/libstdc++-api.pdf</filename>
	  </para>
	  <para>
	    <filename>doc/libstdc++/libstdc++-manual.pdf</filename>
	  </para>
	</listitem>
      </varlistentry>
      
      <varlistentry>
	<term>
	  <emphasis>make man</emphasis>
	</term>
	<term>
	  <emphasis>make install-man</emphasis>
	</term>
	<listitem>
	  <para>
	    Generates man pages, and installs it in the following directory:
	  </para>
	  <para>
	    <filename class="directory">man/man3/</filename>
	  </para>
	  <para>
	    The generated man pages are namespace-qualified, so to look at
	    the man page for <classname>vector</classname>, one would use
	    <command>man std::vector</command>.
	  </para>
	</listitem>
      </varlistentry>

      <varlistentry>
	<term>
	  <emphasis>make epub</emphasis>
	</term>
	<term>
	  <emphasis>make install-epub</emphasis>
	</term>
	<listitem>
	  <para>
	    Generates documentation in the ebook/portable electronic
	    reader format called Epub, and installs it as the
	    following file.
	  </para>
	  <para>
	    <filename>doc/libstdc++/libstdc++-manual.epub</filename>
	  </para>
	</listitem>
      </varlistentry>      

      <varlistentry>
	<term>
	  <emphasis>make xml</emphasis>
	</term>
	<term>
	  <emphasis>make install-xml</emphasis>
	</term>
	<listitem>
	  <para>
	    Generates single-file XML documentation, and installs it
	    as the following files:
	  </para>
	  <para>
	    <filename>doc/libstdc++/libstdc++-api-single.xml</filename>
	  </para>
	  <para>
	    <filename>doc/libstdc++/libstdc++-manual-single.xml</filename>
	  </para>
	</listitem>
      </varlistentry>
    </variablelist>

    <para>
      Makefile rules for several other formats are explicitly not
      supported, and are always aliased to dummy rules. These
      unsupported formats are: <emphasis>info</emphasis>,
      <emphasis>ps</emphasis>, and <emphasis>dvi</emphasis>.
    </para>
  </section>

  <section xml:id="doc.doxygen"><info><title>Doxygen</title></info>
    
    <section xml:id="doxygen.prereq"><info><title>Prerequisites</title></info>
      
 <table frame="all" xml:id="table.doxygen_prereq">
<title>Doxygen Prerequisites</title>

<tgroup cols="3" align="center" colsep="1" rowsep="1">
<colspec colname="c1"/>
<colspec colname="c2"/>
<colspec colname="c3"/>

  <thead>
    <row>
      <entry>Tool</entry>
      <entry>Version</entry>
      <entry>Required By</entry>
    </row>
  </thead>

  <tbody>

    <row>
      <entry>coreutils</entry>
      <entry>8.5</entry>
      <entry>all</entry>
    </row>

    <row>
      <entry>bash</entry>
      <entry>4.1</entry>
      <entry>all</entry>
    </row>

    <row>
      <entry>doxygen</entry>
      <entry>1.7.6.1</entry>
      <entry>all</entry>
    </row>

    <row>
      <entry>graphviz</entry>
      <entry>2.26</entry>
      <entry>graphical hierarchies</entry>
    </row>

    <row>
      <entry>pdflatex</entry>
      <entry>2007-59</entry>
      <entry>pdf output</entry>
    </row>

  </tbody>
</tgroup>
</table>


      <para>
	Prerequisite tools are Bash 2.0 or later,
	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.doxygen.nl">Doxygen</link>, and
	the <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.gnu.org/software/coreutils/">GNU
	coreutils</link>. (GNU versions of find, xargs, and possibly
	sed and grep are used, just because the GNU versions make
	things very easy.) 
      </para>

      <para>
	To generate the pretty pictures and hierarchy
	graphs, the
	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.graphviz.org">Graphviz</link> package
	will need to be installed. For PDF
	output, <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.tug.org/applications/pdftex/">
	pdflatex</link> is required as well as a number of TeX packages
	such as <package>texlive-xtab</package> and
	<package>texlive-tocloft</package>.
      </para>

      <para>
	Be warned the PDF file generated via doxygen is extremely
	large. At last count, the PDF file is over three thousand
	pages. Generating this document taxes the underlying TeX
	formatting system, and will require the expansion of TeX's memory
	capacity. Specifically, the <literal>pool_size</literal>
	variable in the configuration file <filename>texmf.cnf</filename> may
	need to be increased by a minimum factor of two.
      </para>
    </section>

    <section xml:id="doxygen.rules"><info><title>Generating the Doxygen Files</title></info>
      
      <para>
	The following Makefile rules run Doxygen to generate HTML
	docs, XML docs, XML docs as a single file, PDF docs, and the
	man pages. These rules are not conditional! If the required
	tools are not found, or are the wrong versions, the rule may
	end in an error.
      </para>

      <para>
      <screen><userinput>make doc-html-doxygen</userinput></screen>
      </para>

      <para>
      <screen><userinput>make doc-xml-doxygen</userinput></screen>
      </para>

      <para>
      <screen><userinput>make doc-xml-single-doxygen</userinput></screen>
      </para>

      <para>
      <screen><userinput>make doc-pdf-doxygen</userinput></screen>
      </para>

      <para>
      <screen><userinput>make doc-man-doxygen</userinput></screen>
      </para>

      <para>
	Generated files are output into separate sub directories of
	<filename class="directory">doc/doxygen/</filename> in the
	build directory, based on the output format. For instance, the
	HTML docs will be in <filename class="directory">doc/doxygen/html</filename>.
      </para>

      <para>
	Careful observers will see that the Makefile rules simply call
	a script from the source tree, <filename>run_doxygen</filename>, which
	does the actual work of running Doxygen and then (most
	importantly) massaging the output files. If for some reason
	you prefer to not go through the Makefile, you can call this
	script directly. (Start by passing <literal>--help</literal>.)
      </para>

      <para>
	If you wish to tweak the Doxygen settings, do so by editing
	<filename>doc/doxygen/user.cfg.in</filename>. Notes to fellow
	library hackers are written in triple-# comments.
      </para>

    </section>

 <section xml:id="doxygen.debug">
   <info><title>Debugging Generation</title></info>
   
	<para>
	  Sometimes, mis-configuration of the pre-requisite tools can
	  lead to errors when attempting to build the
	  documentation. Here are some of the obvious errors, and ways
	  to fix some common issues that may appear quite cryptic.
	</para>
	
	<para>
	  First, if using a rule like <code>make pdf</code>, try to
	  narrow down the scope of the error to either docbook
	  (<code>make doc-pdf-docbook</code>) or doxygen (<code>make
	  doc-pdf-doxygen</code>).
	</para>
	<para>
	  Working on the doxygen path only, closely examine the
	  contents of the following build directory: <filename
	  class="directory">build/target/libstdc++-v3/doc/doxygen/latex</filename>.
	  Pay attention to three files enclosed within, annotated as follows.
	</para>
<itemizedlist>

<listitem>
  <para>
   <emphasis>refman.tex</emphasis>
  </para>

  <para>
    The actual latex file, or partial latex file. This is generated
    via <command>doxygen</command>, and is the LaTeX version of the
    Doxygen XML file <filename>libstdc++-api.xml</filename>. Go to a specific
    line, and look at the generated LaTeX, and try to deduce what
    markup in <filename>libstdc++-api.xml</filename> is causing it.
  </para>
</listitem>

<listitem>
  <para>
   <emphasis>refman.log</emphasis>
  </para>

  <para>
    A log created by <command>latex</command> as it processes the
    <filename>refman.tex</filename> file. If generating the PDF fails
    look at the end of this file for errors such as:
    <screen>
    ! LaTeX Error: File `xtab.sty' not found.
    </screen>
    This indicates a required TeX package is missing. For the example
    above the <package>texlive-xtab</package> package needs to be
    installed.
  </para>
</listitem>

<listitem>
  <para>
   <emphasis>refman.out</emphasis>
  </para>

  <para>
    A log of the compilation of the converted LaTeX form to PDF. This
    is a linear list, from the beginning of the
    <filename>refman.tex</filename> file: the last entry of this file
    should be the end of the LaTeX file. If it is truncated, then you
    know that the last entry is the last part of the generated LaTeX
    source file that is valid. Often this file contains an error with
    a specific line number of <filename>refman.tex</filename> that is
    incorrect, or will have clues at the end of the file with the dump
    of the memory usage of LaTeX.
  </para>
</listitem>
</itemizedlist>

	<para>
	  If the error at hand is not obvious after examination, a
	  fall-back strategy is to start commenting out the doxygen
	  input sources, which can be found in
	  <filename>doc/doxygen/user.cfg.in</filename>, look for the
	  <literal>INPUT</literal> tag. Start by commenting out whole
	  directories of header files, until the offending header is
	  identified. Then, read the latex log files to try and find
	  surround text, and look for that in the offending header.
	</para>

 </section>

    <section xml:id="doxygen.markup"><info><title>Markup</title></info>
      

      <para>
	In general, libstdc++ files should be formatted according to
	the rules found in the
	<link linkend="contrib.coding_style">Coding Standard</link>. Before
	any doxygen-specific formatting tweaks are made, please try to
	make sure that the initial formatting is sound.
      </para>

      <para>
	Adding Doxygen markup to a file (informally called
	<quote>doxygenating</quote>) is very simple. See the
	<link xmlns:xlink="http://www.w3.org/1999/xlink" 
         xlink:href="http://www.doxygen.nl/download.html#latestman">Doxygen
         manual</link> for details.
	We try to use a very-recent version of Doxygen.
      </para>

      <para>
	For classes, use
	<classname>deque</classname>/<classname>vector</classname>/<classname>list</classname>
	and <classname>std::pair</classname> as examples.  For
	functions, see their member functions, and the free functions
	in <filename class="headerfile">stl_algobase.h</filename>. Member
	functions of other container-like types should read similarly to
	these member functions.
      </para>

      <para>
	Some commentary to accompany
	the first list in the <link xmlns:xlink="http://www.w3.org/1999/xlink"
        xlink:href="http://www.doxygen.nl/manual/docblocks.html">Special
	Documentation Blocks</link> section of the Doxygen manual:
      </para>

      <orderedlist inheritnum="ignore" continuation="restarts">
	<listitem>
	  <para>For longer comments, use the Javadoc style...</para>
	</listitem>

	<listitem>
	  <para>
	    ...not the Qt style. The intermediate *'s are preferred.
	  </para>
	</listitem>

 	<listitem>
	  <para>
	    Use the triple-slash style only for one-line comments (the
	    <quote>brief</quote> mode).
	  </para>
	</listitem>

	<listitem>
	  <para>
	    This is disgusting. Don't do this.
	  </para>
	</listitem>
      </orderedlist>

      <para>
	Some specific guidelines:
      </para>

      <para>
	Use the @-style of commands, not the !-style. Please be
	careful about whitespace in your markup comments. Most of the
	time it doesn't matter; doxygen absorbs most whitespace, and
	both HTML and *roff are agnostic about whitespace. However,
	in &lt;pre&gt; blocks and @code/@endcode sections, spacing can
	have <quote>interesting</quote> effects.
      </para>

      <para>
	Use either kind of grouping, as
	appropriate. <filename>doxygroups.cc</filename> exists for this
	purpose. See <filename class="headerfile">stl_iterator.h</filename>
	for a good example of the <quote>other</quote> kind of grouping.
      </para>

      <para>
	Please use markup tags like @p and @a when referring to things
	such as the names of function parameters. Use @e for emphasis
	when necessary. Use @c to refer to other standard names.
	(Examples of all these abound in the present code.)
      </para>

      <para>
	Complicated math functions should use the multi-line format.
	An example from <filename class="headerfile">random.h</filename>:
      </para>

      <para>
<literallayout class="normal">
/**
 * @brief A model of a linear congruential random number generator.
 *
 * @f[
 *     x_{i+1}\leftarrow(ax_{i} + c) \bmod m
 * @f]
 */
</literallayout>
      </para>

      <para>
	One area of note is the markup required for
	<literal>@file</literal> markup in header files. Two details
	are important: for filenames that have the same name in
	multiple directories, include part of the installed path to
	disambiguate. For example:
      </para>

      <para>
<literallayout class="normal">
/** @file debug/vector
 *  This file is a GNU debug extension to the Standard C++ Library.
 */
</literallayout>
      </para>

      <para>
	The other relevant detail for header files is the use of a
	libstdc++-specific doxygen alias that helps distinguish
	between public header files (like <filename class="headerfile">random</filename>)
	from implementation or private header files (like
	<filename class="headerfile">bits/c++config.h</filename>.) This alias is spelled
	<literal>@headername</literal> and can take one or two
	arguments that detail the public header file or files that
	should be included to use the contents of the file. All header
	files that are not intended for direct inclusion must use
	<literal>headername</literal> in the <literal>file</literal>
	block. An example:
      </para>

      <para>
<literallayout class="normal">
/** @file bits/basic_string.h
 *  This is an internal header file, included by other library headers.
 *  Do not attempt to use it directly. @headername{string}
 */
</literallayout>
      </para>

      <para>
	Be careful about using certain, special characters when
	writing Doxygen comments. Single and double quotes, and
	separators in filenames are two common trouble spots. When in
	doubt, consult the following table.
      </para>

<table frame="all" xml:id="table.doxygen_cmp">
<title>HTML to Doxygen Markup Comparison</title>

<tgroup cols="2" align="left" colsep="1" rowsep="1">
<colspec colname="c1"/>
<colspec colname="c2"/>

  <thead>
    <row>
      <entry>HTML</entry>
      <entry>Doxygen</entry>
    </row>
  </thead>

  <tbody>
    <row>
      <entry>\</entry>
      <entry>\\</entry>
    </row>

    <row>
      <entry>"</entry>
      <entry>\"</entry>
    </row>

    <row>
      <entry>'</entry>
      <entry>\'</entry>
    </row>

    <row>
      <entry>&lt;i&gt;</entry>
      <entry>@a word</entry>
    </row>

    <row>
      <entry>&lt;b&gt;</entry>
      <entry>@b word</entry>
    </row>

    <row>
      <entry>&lt;code&gt;</entry>
      <entry>@c word</entry>
    </row>

    <row>
      <entry>&lt;em&gt;</entry>
      <entry>@a word</entry>
    </row>

    <row>
      <entry>&lt;em&gt;</entry>
      <entry>&lt;em&gt;two words or more&lt;/em&gt;</entry>
    </row>
  </tbody>

</tgroup>
</table>


    </section>

  </section>

  <section xml:id="doc.docbook"><info><title>Docbook</title></info>
    

    <section xml:id="docbook.prereq"><info><title>Prerequisites</title></info>
      
      
 <table frame="all" xml:id="table.docbook_prereq">
<title>Docbook Prerequisites</title>

<tgroup cols="3" align="center" colsep="1" rowsep="1">
<colspec colname="c1"/>
<colspec colname="c2"/>
<colspec colname="c3"/>

  <thead>
    <row>
      <entry>Tool</entry>
      <entry>Version</entry>
      <entry>Required By</entry>
    </row>
  </thead>

  <tbody>

    <row>
      <entry>docbook5-style-xsl</entry>
      <entry>1.76.1</entry>
      <entry>all</entry>
    </row>

    <row>
      <entry>xsltproc</entry>
      <entry>1.1.26</entry>
      <entry>all</entry>
    </row>

    <row>
      <entry>xmllint</entry>
      <entry>2.7.7</entry>
      <entry>validation</entry>
    </row>

    <row>
      <entry>dblatex</entry>
      <entry>0.3</entry>
      <entry>pdf output</entry>
    </row>

    <row>
      <entry>pdflatex</entry>
      <entry>2007-59</entry>
      <entry>pdf output</entry>
    </row>

    <row>
      <entry>docbook2X</entry>
      <entry>0.8.8</entry>
      <entry>info output</entry>
    </row>

    <row>
      <entry>epub3 stylesheets</entry>
      <entry>b3</entry>
      <entry>epub output</entry>
    </row>

  </tbody>
</tgroup>
</table>

      <para>
	Editing the DocBook sources requires an XML editor. Many
	exist: some notable options
	include <command>emacs</command>, <application>Kate</application>,
	or <application>Conglomerate</application>.
      </para>

      <para>
	Some editors support special <quote>XML Validation</quote>
	modes that can validate the file as it is
	produced. Recommended is the <command>nXML Mode</command>
	for <command>emacs</command>.
      </para>

      <para>
	Besides an editor, additional DocBook files and XML tools are
	also required.
      </para>

      <para>
	Access to the DocBook 5.0 stylesheets and schema is required. The
	stylesheets are usually packaged by vendor, in something
	like <filename>docbook5-style-xsl</filename>. To exactly match
	generated output, please use a version of the stylesheets
	equivalent
	to <filename>docbook5-style-xsl-1.75.2-3</filename>. The
	installation directory for this package corresponds to
	the <literal>XSL_STYLE_DIR</literal>
	in <filename>doc/Makefile.am</filename> and defaults
	to <filename class="directory">/usr/share/sgml/docbook/xsl-ns-stylesheets</filename>.
      </para>

      <para>
	For processing XML, an XSLT processor and some style
	sheets are necessary. Defaults are <command>xsltproc</command>
	provided by <filename>libxslt</filename>.
      </para>

      <para>
	For validating the XML document, you'll need
	something like <command>xmllint</command> and access to the
	relevant DocBook schema. These are provided
	by a vendor package like <filename>libxml2</filename> and <filename>docbook5-schemas-5.0-4</filename>
      </para>

      <para>
	For PDF output, something that transforms valid Docbook XML to PDF is
	required. Possible solutions include <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://dblatex.sourceforge.net">dblatex</link>,
	<command>xmlto</command>, or <command>prince</command>. Of
	these, <command>dblatex</command> is the default.
	Please consult the <email>libstdc++@gcc.gnu.org</email> list when
	preparing printed manuals for current best practice and
	suggestions.
      </para>

      <para>
	For Texinfo output, something that transforms valid Docbook
	XML to Texinfo is required. The default choice is <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://docbook2x.sourceforge.net/">docbook2X</link>.
      </para>

      <para>
	For epub output, the <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://sourceforge.net/projects/docbook/files/epub3/">stylesheets</link> for EPUB3 are required. These stylesheets are still in development. To validate the created file, <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://github.com/w3c/epubcheck">epubcheck</link> is necessary.
      </para>
    </section>

    <section xml:id="docbook.rules"><info><title>Generating the DocBook Files</title></info>
      

      <para>
	The following Makefile rules generate (in order): an HTML
	version of all the DocBook documentation, a PDF version of the
	same, and a single XML document.  These rules are not
	conditional! If the required tools are not found, or are the
	wrong versions, the rule may end in an error.
      </para>

      <para>
      <screen><userinput>make doc-html-docbook</userinput></screen>
      </para>

      <para>
      <screen><userinput>make doc-pdf-docbook</userinput></screen>
      </para>

      <para>
      <screen><userinput>make doc-xml-single-docbook</userinput></screen>
      </para>

      <para>
	Generated files are output into separate sub-directores of
	<filename class="directory">doc/docbook/</filename> in the
	build directory, based on the output format. For instance, the
	HTML docs will be in <filename
	class="directory">doc/docbook/html</filename>.
      </para>

      <para>
	The <screen>doc-html-docbook-regenerate</screen> target will generate
	the HTML files and copy them back to the libstdc++ source tree.
	This can be used to update the HTML files that are checked in to
	version control.
      </para>

      <para>
	If the Docbook stylesheets are installed in a custom location,
	one can use the variable <literal>XSL_STYLE_DIR</literal> to
	override the Makefile defaults. For example:
      </para>

      <screen>
	<userinput>
make <literal>XSL_STYLE_DIR="/usr/share/xml/docbook/stylesheet/nwalsh"</literal> doc-html-docbook
	</userinput>
      </screen>

      </section>

    <section xml:id="docbook.debug">
	<info><title>Debugging Generation</title></info>

	<para>
	  Sometimes, mis-configuration of the pre-requisite tools can
	  lead to errors when attempting to build the
	  documentation. Here are some of the obvious errors, and ways
	  to fix some common issues that may appear quite cryptic.
	</para>
	
	<para>
	  First, if using a rule like <code>make pdf</code>, try to
	  narrow down the scope of the error to either docbook
	  (<code>make doc-pdf-docbook</code>) or doxygen (<code>make
	  doc-pdf-doxygen</code>).
	</para>

	<para>
	  Working on the docbook path only, closely examine the
	  contents of the following build directory:
	  <filename class="directory">build/target/libstdc++-v3/doc/docbook/latex</filename>.
	  Pay attention to three files enclosed within, annotated as follows.
	</para>

<itemizedlist>

<listitem>
  <para>
   <emphasis>spine.tex</emphasis>
  </para>

  <para>
    The actual latex file, or partial latex file. This is generated
    via <command>dblatex</command>, and is the LaTeX version of the
    DocBook XML file <filename>spine.xml</filename>. Go to a specific
    line, and look at the generated LaTeX, and try to deduce what
    markup in <filename>spine.xml</filename> is causing it.
  </para>
</listitem>

<listitem>
  <para>
   <emphasis>spine.out</emphasis>
  </para>

  <para>
    A log of the conversion from the XML form to the LaTeX form. This
    is a linear list, from the beginning of the
    <filename>spine.xml</filename> file: the last entry of this file
    should be the end of the DocBook file. If it is truncated, then
    you know that the last entry is the last part of the XML source
    file that is valid. The error is after this point.
  </para>
</listitem>


<listitem>
  <para>
   <emphasis>spine.log</emphasis>
  </para>

  <para>
    A log of the compilation of the converted LaTeX form to pdf. This
    is a linear list, from the beginning of the
    <filename>spine.tex</filename> file: the last entry of this file
    should be the end of the LaTeX file. If it is truncated, then you
    know that the last entry is the last part of the generated LaTeX
    source file that is valid. Often this file contains an error with
    a specific line number of <filename>spine.tex</filename> that is
    incorrect.
  </para>
</listitem>

</itemizedlist>

	<para>
	  If the error at hand is not obvious after examination, or if one
	  encounters the inscruitable <quote>Incomplete
	  \ifmmode</quote> error, a fall-back strategy is to start
	  commenting out parts of the XML document (regardless of what
	  this does to over-all document validity). Start by
	  commenting out each of the largest parts of the
	  <filename>spine.xml</filename> file, section by section,
	  until the offending section is identified.
	</para>


    </section>

    <section xml:id="docbook.validation"><info><title>Editing and Validation</title></info>

      <para>
	After editing the xml sources, please make sure that the XML
	documentation and markup is still valid. This can be
	done easily, with the following validation rule:
      </para>

      <screen>
	<userinput>make doc-xml-validate-docbook</userinput>
      </screen>

      <para>
	This is equivalent to doing:
      </para>
      
      <screen>
	<userinput>
	  xmllint --noout --valid <filename>xml/index.xml</filename>
	</userinput>
      </screen>

      <para>
	Please note that individual sections and chapters of the
	manual can be validated by substituting the file desired for
	<filename>xml/index.xml</filename> in the command
	above. Reducing scope in this manner can be helpful when
	validation on the entire manual fails.
      </para>

      <para>
	All Docbook xml sources should always validate. No excuses!
      </para>

    </section>

    <section xml:id="docbook.examples"><info><title>File Organization and Basics</title></info>
      

    <literallayout class="normal">
      <emphasis>Which files are important</emphasis>

      All Docbook files are in the directory
      libstdc++-v3/doc/xml

      Inside this directory, the files of importance:
      spine.xml	 	- index to documentation set
      manual/spine.xml  - index to manual
      manual/*.xml  	- individual chapters and sections of the manual
      faq.xml  		- index to FAQ
      api.xml  		- index to source level / API

      All *.txml files are template xml files, i.e., otherwise empty files with
      the correct structure, suitable for filling in with new information.

      <emphasis>Canonical Writing Style</emphasis>

      class template
      function template
      member function template
      (via C++ Templates, Vandevoorde)

      class in namespace std: allocator, not std::allocator

      header file: iostream, not &lt;iostream&gt;


      <emphasis>General structure</emphasis>

      &lt;set&gt;
      &lt;book&gt;
      &lt;/book&gt;

      &lt;book&gt;
      &lt;chapter&gt;
      &lt;/chapter&gt;
      &lt;/book&gt;

      &lt;book&gt;
      &lt;part&gt;
      &lt;chapter&gt;
      &lt;section&gt;
      &lt;/section&gt;

      &lt;sect1&gt;
      &lt;/sect1&gt;

      &lt;sect1&gt;
      &lt;sect2&gt;
      &lt;/sect2&gt;
      &lt;/sect1&gt;
      &lt;/chapter&gt;

      &lt;chapter&gt;
      &lt;/chapter&gt;
      &lt;/part&gt;
      &lt;/book&gt;

      &lt;/set&gt;
    </literallayout>
    </section>

    <section xml:id="docbook.markup"><info><title>Markup By Example</title></info>
      

      <para>
	Complete details on Docbook markup can be found in the
	<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://tdg.docbook.org/tdg/5.0/ref-elements.html">DocBook Element Reference</link>.
	An incomplete reference for HTML to Docbook conversion is
	detailed in the table below.
      </para>

<table frame="all" xml:id="table.docbook_cmp">
<title>HTML to Docbook XML Markup Comparison</title>

<tgroup cols="2" align="left" colsep="1" rowsep="1">
<colspec colname="c1"/>
<colspec colname="c2"/>

  <thead>
    <row>
      <entry>HTML</entry>
      <entry>Docbook</entry>
    </row>
  </thead>

  <tbody>
    <row>
      <entry>&lt;p&gt;</entry>
      <entry>&lt;para&gt;</entry>
    </row>
    <row>
      <entry>&lt;pre&gt;</entry>
      <entry>&lt;computeroutput&gt;, &lt;programlisting&gt;,
	&lt;literallayout&gt;</entry>
    </row>
    <row>
      <entry>&lt;ul&gt;</entry>
      <entry>&lt;itemizedlist&gt;</entry>
    </row>
    <row>
      <entry>&lt;ol&gt;</entry>
      <entry>&lt;orderedlist&gt;</entry>
    </row>
    <row>
      <entry>&lt;il&gt;</entry>
      <entry>&lt;listitem&gt;</entry>
    </row>
    <row>
      <entry>&lt;dl&gt;</entry>
      <entry>&lt;variablelist&gt;</entry>
    </row>
    <row>
      <entry>&lt;dt&gt;</entry>
      <entry>&lt;term&gt;</entry>
    </row>
    <row>
      <entry>&lt;dd&gt;</entry>
      <entry>&lt;listitem&gt;</entry>
    </row>

    <row>
      <entry>&lt;a href=""&gt;</entry>
      <entry>&lt;ulink url=""&gt;</entry>
    </row>
    <row>
      <entry>&lt;code&gt;</entry>
      <entry>&lt;literal&gt;, &lt;programlisting&gt;</entry>
    </row>
    <row>
      <entry>&lt;strong&gt;</entry>
      <entry>&lt;emphasis&gt;</entry>
    </row>
    <row>
      <entry>&lt;em&gt;</entry>
      <entry>&lt;emphasis&gt;</entry>
    </row>
    <row>
      <entry>"</entry>
      <entry>&lt;quote&gt;</entry>
    </row>
   </tbody>
</tgroup>
</table>

<para>
  And examples of detailed markup for which there are no real HTML
  equivalents are listed in the table below.
</para>

<table frame="all" xml:id="table.docbook_elem">
<title>Docbook XML Element Use</title>

<tgroup cols="2" align="left" colsep="1" rowsep="1">
<colspec colname="c1"/>
<colspec colname="c2"/>

  <thead>
    <row>
      <entry>Element</entry>
      <entry>Use</entry>
    </row>
  </thead>

  <tbody>
    <row>
      <entry>&lt;structname&gt;</entry>
      <entry>&lt;structname&gt;char_traits&lt;/structname&gt;</entry>
    </row>
    <row>
      <entry>&lt;classname&gt;</entry>
      <entry>&lt;classname&gt;string&lt;/classname&gt;</entry>
    </row>
    <row>
      <entry>&lt;function&gt;</entry>
      <entry>
	<para>&lt;function&gt;clear()&lt;/function&gt;</para>
	<para>&lt;function&gt;fs.clear()&lt;/function&gt;</para>
      </entry>
    </row>
    <row>
      <entry>&lt;type&gt;</entry>
      <entry>&lt;type&gt;long long&lt;/type&gt;</entry>
    </row>
    <row>
      <entry>&lt;varname&gt;</entry>
      <entry>&lt;varname&gt;fs&lt;/varname&gt;</entry>
    </row>
    <row>
      <entry>&lt;literal&gt;</entry>
      <entry>
	<para>&lt;literal&gt;-Weffc++&lt;/literal&gt;</para>
	<para>&lt;literal&gt;rel_ops&lt;/literal&gt;</para>
      </entry>
    </row>
    <row>
      <entry>&lt;constant&gt;</entry>
      <entry>
	<para>&lt;constant&gt;_GNU_SOURCE&lt;/constant&gt;</para>
	<para>&lt;constant&gt;3.0&lt;/constant&gt;</para>
      </entry>
    </row>
    <row>
      <entry>&lt;command&gt;</entry>
      <entry>&lt;command&gt;g++&lt;/command&gt;</entry>
    </row>
    <row>
      <entry>&lt;errortext&gt;</entry>
      <entry>&lt;errortext&gt;In instantiation of&lt;/errortext&gt;</entry>
    </row>
    <row>
      <entry>&lt;filename&gt;</entry>
      <entry>
	<para>&lt;filename class="headerfile"&gt;ctype.h&lt;/filename&gt;</para>
	<para>&lt;filename class="directory"&gt;/home/gcc/build&lt;/filename&gt;</para>
	<para>&lt;filename class="libraryfile"&gt;libstdc++.so&lt;/filename&gt;</para>
      </entry>
    </row>
   </tbody>
</tgroup>
</table>

</section>
</section>
</section>
