2010-08-26  Benjamin Kosnik  <bkoz@redhat.com>

        * include/bits/stl_iterator_base_types.h: Fix doxygen warning.

	Merge in other doc patches.

	2010-07-08  Benjamin Kosnik  <bkoz@redhat.com>

        * include/bits/stl_heap.h: Update markup.
        * include/bits/move.h: Same.
        * include/bits/algorithmfwd.h: Same.
        * include/bits/random.h: Same.
        * doc/doxygen/doxygroups.cc: Same.
        * doc/doxygen/user.cfg.in: Remove include/tr1_impl/regex from
        input file list.
        * doc/Makefile.am (doc-pdf-doxygen): Add comment, put generated
        pdf in location consistent with docbook pdf generation.
        * doc/Makefile.in: Regenerate.

	2010-07-13  Benjamin Kosnik  <bkoz@redhat.com>
        * doc/Makefile.in: Regenerate.
        * doc/Makefile.am: Edit pdf rules, expand default rules.
        * doc/doxygen/user.cfg.in: Update to Doxygen 1.7.1.

	2010-07-19  Benjamin Kosnik  <bkoz@redhat.com>

        * doc/Makefile.am (doc-texinfo): New rule.
        (doc-texinfo-docbook): New rule.
        (DB2TEXI_FLAGS): New.
        (doc-xml-single-docbook): Just the manual, not the set. Tweak flags.
        * doc/Makefile.in: Regenerate.

	2010-07-19  Benjamin Kosnik  <bkoz@redhat.com>

        * doc/xml/manual/appendix_contributing.xml: Update for new reality.
        * doc/Makefile.am (doc-xml): New default rule for XML output.
        (doc-xml-single-doxygen): Standardize output names.
        * doc/Makefile.in: Regenerate.

        * doc/doxygen/user.cfg.in: Tweak.


Index: doc/xml/manual/appendix_contributing.xml
===================================================================
--- doc/xml/manual/appendix_contributing.xml	(revision 163574)
+++ doc/xml/manual/appendix_contributing.xml	(working copy)
@@ -942,10 +942,18 @@
       <title>Generating the Doxygen Files</title>
       <para>
 	The following Makefile rules run Doxygen to generate HTML
-	docs, XML docs, PDF docs, and the man pages.
+	docs, XML docs, XML docs as a single file, PDF docs, and the man pages.
       </para>
 
       <para>
+	Generated files are output into separate sub directores 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>
       <screen><userinput>make doc-html-doxygen</userinput></screen>
       </para>
 
@@ -954,6 +962,10 @@
       </para>
 
       <para>
+      <screen><userinput>make doc-xml-single-doxygen</userinput></screen>
+      </para>
+
+      <para>
       <screen><userinput>make doc-pdf-doxygen</userinput></screen>
       </para>
 
@@ -1204,23 +1216,30 @@
       </para>
 
       <para>
-	For PDF output, something that transforms valid XML to PDF is
-	required. Possible solutions include 
-	<ulink url="http://dblatex.sourceforge.net">dblatex</ulink>, 
-	<command>xmlto</command>, or <command>prince</command>. Other
-	options are listed on the DocBook
-	web <ulink url="http://wiki.docbook.org/topic/DocBookPublishingTools">pages</ulink>. Please
+	For PDF output, something that transforms valid Docbook XML to PDF is
+	required. Possible solutions include <ulink
+	url="http://dblatex.sourceforge.net">dblatex</ulink>,
+	<command>xmlto</command>, or <command>prince</command>. Of
+	these, <command>dblatex</command> is the default. Other
+	options are listed on the DocBook web <ulink
+	url="http://wiki.docbook.org/topic/DocBookPublishingTools">pages</ulink>. Please
 	consult the <email>libstdc++@gcc.gnu.org</email> list when
 	preparing printed manuals for current best practice and
 	suggestions.
       </para>
 
       <para>
-	Make sure that the XML documentation and markup is valid for
-	any change. This can be done easily, with the validation rules
-	in the <filename>Makefile</filename>, which is equivalent to doing:
+	For Texinfo output, something that transforms valid Docbook
+	XML to Texinfo is required. The default choice is <ulink
+	url="http://docbook2x.sourceforge.net/">docbook2X</ulink>.
       </para>
 
+      <para>
+	Please make sure that the XML documentation and markup is valid for
+	any change. This can be done easily, with the validation rule
+	detailed below, which is equivalent to doing:
+      </para>
+
 	<screen>
 	  <userinput>
 xmllint --noout --valid <filename>xml/index.xml</filename>
@@ -1239,6 +1258,14 @@
       </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>
       <screen><userinput>make doc-html-docbook</userinput></screen>
       </para>
 
@@ -1492,20 +1519,90 @@
 
       <para>
 	The following Makefile rules are defaults, and are usually
-	aliased to variable rules.
+	aliased to more detailed rules. They are shortcuts for
+	generating HTML, PDF, Texinfo, XML, or man files and then collecting
+	the generated files into the build directory's doc directory.
       </para>
 
+<variablelist>
+
+<varlistentry><term>
+      <emphasis>make doc-html</emphasis>
+    </term>
+<listitem>
       <para>
-      <screen><userinput>make doc-html</userinput></screen>
+	Generates multi-page HTML documentation in the following directories:
       </para>
+      <para>
+	<filename class="directory">doc/libstdc++-api.html</filename>
+      </para>
+      <para>
+	<filename class="directory">doc/libstdc++-manual.html</filename>
+      </para>
+</listitem>
+</varlistentry>
 
+<varlistentry><term>
+      <emphasis>make doc-man</emphasis>
+    </term>
+<listitem>
       <para>
-      <screen><userinput>make doc-man</userinput></screen>
+	Generates man pages in the following directory:
       </para>
+      <para>
+	<filename class="directory">doc/libstdc++-api.man</filename>
+      </para>
+</listitem>
+</varlistentry>
 
+<varlistentry><term>
+      <emphasis>make doc-pdf</emphasis>
+    </term>
+<listitem>
       <para>
-      <screen><userinput>make doc-pdf</userinput></screen>
+	Generates indexed PDF documentation in the following files:
       </para>
+      <para>
+	<filename>doc/libstdc++-api.pdf</filename>
+      </para>
+      <para>
+	<filename>doc/libstdc++-manual.pdf</filename>
+      </para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term>
+      <emphasis>make doc-texinfo</emphasis>
+    </term>
+<listitem>
+      <para>
+	Generates Texinfo documentation in the following files:
+      </para>
+      <para>
+	<filename>doc/libstdc++-manual.texinfo</filename>
+      </para>
+</listitem>
+</varlistentry>
+
+<varlistentry><term>
+      <emphasis>make doc-xml</emphasis>
+    </term>
+<listitem>
+      <para>
+	Generates single-file XML documentation in the following files:
+      </para>
+      <para>
+	<filename>doc/libstdc++-api.xml</filename>
+      </para>
+      <para>
+	<filename>doc/libstdc++-manual.xml</filename>
+      </para>
+</listitem>
+</varlistentry>
+
+</variablelist>
+
+
   </sect3>
   </sect2>
 </sect1>
Index: doc/Makefile.am
===================================================================
--- doc/Makefile.am	(revision 163574)
+++ doc/Makefile.am	(working copy)
@@ -25,26 +25,46 @@
 # Documentation Overview
 #
 # There are two main source materials for libstdc++ documentation.
-# The first is the doxygen markup in libstdc++ sources. And the second
-# is the docbook markup in doc/xml/. A third and more obscure option
-# deals with charting performance tests.
+# The first is the doxygen markup in libstdc++ sources, which is a
+# reference to the API. And the second is the docbook markup in
+# doc/xml/.
+#
+# A third and more obscure option deals with charting
+# performance tests, and should be considered experimental.
 
-# Default, points to current best sub-rule that is the best conversion.
+# Default rules.
+#
+# Point to best sub-rule for the requested documentation target,
+# create, and then copy into toplevel directory with standardized names
+# and layouts.
+
+# HTML
+doc-html: doc-html-docbook doc-html-doxygen
+	cp -R ${docbook_outdir}/html ./libstdc++-manual.html
+	cp -R ${doxygen_outdir}/html ./libstdc++-api.html
+
 # MAN
 doc-man: doc-man-doxygen
+	cp -R ${doxygen_outdir}/man ./libstdc++-api.man
 
 # PDF
-doc-pdf: doc-pdf-docbook
+doc-pdf: doc-pdf-docbook doc-pdf-doxygen
+	cp ${docbook_outdir}/pdf/libstdc++-manual.pdf .
+	cp ${doxygen_outdir}/pdf/libstdc++-api.pdf .
 
-# HTML
-doc-html: doc-html-docbook
+# TEXINFO
+doc-texinfo: doc-texinfo-docbook
 
+# XML
+doc-xml: doc-xml-single-docbook doc-xml-single-doxygen
+	cp ${manual_xml} .
+	cp ${api_xml} .
 
+
 # Doxygen configuration
 # Assumes doxygen, graphviz (with dot), pdflatex installed
 doxygen_script=${top_srcdir}/scripts/run_doxygen
 doxygen_outdir = ${glibcxx_builddir}/doc/doxygen
-doxygen_pdf = ${doxygen_outdir}/latex/refman.pdf
 
 doc-html-doxygen:
 	-(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
@@ -64,10 +84,11 @@
 	  ${SHELL} ${doxygen_script} \
 	  --host_alias=${host_alias} --mode=xml $${srcdir} $${builddir} NO)
 
-doc-xml-single-doxygen:
+api_xml = ${doxygen_outdir}/xml/libstdc++-api-single.xml
+doc-xml-single-doxygen: doc-xml-doxygen
 	@echo "Generating doxygen xml single file..."
 	$(XSLTPROC) ${doxygen_outdir}/xml/combine.xslt \
-	${doxygen_outdir}/xml/index.xml > ${doxygen_outdir}/xml/api-spine.xml;
+	${doxygen_outdir}/xml/index.xml > ${api_xml};
 
 doc-latex-doxygen:
 	-(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
@@ -75,12 +96,23 @@
 	  ${SHELL} ${doxygen_script} \
 	  --host_alias=${host_alias} --mode=latex $${srcdir} $${builddir} NO)
 
-# Chance of loooooonnggg creation time on this rule.
-doc-pdf-doxygen: stamp-latex-doxygen
+# Chance of loooooonnggg creation time on this rule.  Iff this fails,
+# look at refman.log and see if TeX's memory is exhausted. Symptoms
+# include asking a wizard to enlarge capacity. If this is the case,
+# find texmf.cnf and add a zero for pool_size, string_vacancies,
+# max_strings, and pool_free values.
+doxygen_pdf = ${doxygen_outdir}/latex/refman.pdf
+api_pdf = ${doxygen_outdir}/pdf/libstdc++-api.pdf
+
+${doxygen_outdir}/pdf:
+	mkdir -p ${doxygen_outdir}/pdf
+
+doc-pdf-doxygen: stamp-latex-doxygen ${doxygen_outdir}/pdf
 	-(cd ${doxygen_outdir}/latex && $(MAKE) -i pdf;)
 	echo "Generating doxygen pdf file...";
 	if [ -f ${doxygen_pdf} ]; then \
-	  echo "... ${doxygen_pdf}"; \
+	  mv ${doxygen_pdf} ${api_pdf} ; \
+	  echo ":: PDF file is ${api_pdf}"; \
 	else \
 	  echo "... error"; \
 	  exit 12; \
@@ -193,14 +225,17 @@
 #XSL_HTML_SINGLE_STYLE = $(XSL_STYLE_DIR)/xhtml/onechunk.xsl
 XSL_HTML_SINGLE_STYLE = $(XSL_STYLE_DIR)/xhtml/docbook.xsl
 
+${docbook_outdir}/fo:
+	mkdir -p ${docbook_outdir}/fo
+
 ${docbook_outdir}/html:
 	mkdir -p ${docbook_outdir}/html
 
 ${docbook_outdir}/pdf:
 	mkdir -p ${docbook_outdir}/pdf
 
-${docbook_outdir}/fo:
-	mkdir -p ${docbook_outdir}/fo
+${docbook_outdir}/texinfo:
+	mkdir -p ${docbook_outdir}/texinfo
 
 ${docbook_outdir}/xml:
 	mkdir -p ${docbook_outdir}/xml
@@ -216,11 +251,14 @@
 	@echo "Generating XML validation log..."
 	$(XMLLINT) $(XMLLINT_FLAGS) ${top_srcdir}/doc/xml/spine.xml
 
+# XML, all one page
+# Some info on canonicalization
+# http://www.mail-archive.com/help-texinfo@gnu.org/msg00864.html
+manual_xml = ${docbook_outdir}/xml/libstdc++-manual-single.xml
 doc-xml-single-docbook: $(xml_sources) ${docbook_outdir}/xml
 	@echo "Generating XML single..."
-	$(XMLLINT) --xinclude --noent --noblanks \
-	-o ${docbook_outdir}/xml/spine-single.xml \
-	${top_srcdir}/doc/xml/spine.xml
+	$(XMLLINT) --xinclude --noent --noblanks --nocdata --nsclean --c14n \
+	${top_srcdir}/doc/xml/manual/spine.xml > ${manual_xml}
 
 # HTML, index plus chapters
 doc-html-docbook: $(xml_sources) ${docbook_outdir}/html
@@ -229,9 +267,10 @@
 	$(XSL_HTML_STYLE) ${top_srcdir}/doc/xml/spine.xml
 
 # HTML, all one page
+manual_html = ${docbook_outdir}/html/libstdc++-manual-single.html
 doc-html-single-docbook: $(xml_sources) ${docbook_outdir}/html
 	@echo "Generating html single file..."
-	$(XSLTPROC) $(XSLTPROC_FLAGS) -o ${docbook_outdir}/html/ \
+	$(XSLTPROC) $(XSLTPROC_FLAGS) -o ${manual_html} \
 	$(XSL_HTML_SINGLE_STYLE) ${top_srcdir}/doc/xml/spine.xml
 
 # FO
@@ -240,52 +279,24 @@
 	$(XSLTPROC) $(XSLTPROC_FLAGS) -o ${docbook_outdir}/fo/spine.fo \
 	$(XSL_FO_STYLE) ${top_srcdir}/doc/xml/spine.xml
 
-# PDF 1
-# fop
-FOP = fop
-FOP_FLAGS = -d -r
-doc-pdf-fop-xml-docbook: $(xml_sources) ${glibcxx_builddir}/doc/pdf
-	@echo "Generating pdf fop files from xml..."
-	$(FOP) $(FOP_FLAGS) -xml ${top_srcdir}/doc/xml/spine.xml \
-	-xsl $(XSL_FO_STYLE) -pdf ${docbook_outdir}/pdf/spine.pdf
+# PDF, via dblatex
+manual_pdf = ${docbook_outdir}/pdf/libstdc++-manual.pdf
+DBLATEX_FLAGS = --dump --verbose --pdf -o ${manual_pdf}
+doc-pdf-docbook: doc-pdf-dblatex-docbook
 
-doc-pdf-fop-fo-docbook: $(xml_sources) ${glibcxx_builddir}/doc/pdf doc-fo
-	@echo "Generating pdf fop files from fo..."
-	$(FOP) $(FOP_FLAGS) -fo ${docbook_outdir}/fo/spine.fo \
-	-pdf ${docbook_outdir}/pdf/spine.pdf
-
-# PDF 2
-# xmlto
-XML2PDF = xmlto
-XML2PDF_FLAGS = -v pdf --skip-validation -o pdf
-doc-pdf-xmlto-docbook: $(xml_sources) ${docbook_outdir}/pdf
-	@echo "Generating pdf xmlto files..."
-	$(XML2PDF) $(XML2PDF_FLAGS) ${top_srcdir}/doc/xml/spine.xml
-
-# PDF 3
-# xmlroff
-XMLROFF = xmlroff
-XMLROFF_FLAGS = --format=pdf --backend=cairo --warn=1 --debug=1 --continue
-doc-pdf-xmlroff-docbook: $(xml_sources) doc-fo
-	@echo "Generating pdf xmlroff files..."
-	$(XMLROFF) $(XMLROFF_FLAGS) ${docbook_outdir}/fo/spine.fo
-
-# PDF 4
-# prince
-PRINCE = prince
-PRINCE_FLAGS = --log prince.log -o pdf/spine.pdf
-doc-pdf-prince-docbook: $(xml_sources) ${docbook_outdir}/pdf
-	@echo "Generating pdf prince files..."
-	$(PRINCE) $(PRINCE_FLAGS) ${top_srcdir}/xml/spine.xml
-
-# PDF 5
-# dblatex
-DBLATEX_FLAGS = --dump --verbose --pdf -o ${docbook_outdir}/pdf/manual.pdf
 doc-pdf-dblatex-docbook: $(xml_sources) ${docbook_outdir}/pdf
 	@echo "Generating pdf dblatex files..."
 	dblatex $(DBLATEX_FLAGS) ${top_srcdir}/doc/xml/spine.xml
 
-doc-pdf-docbook: doc-pdf-dblatex-docbook
+# Texinfo, via docbook2X
+DB2TEXI_FLAGS = \
+	--encoding=utf-8//TRANSLIT \
+	--string-param output-file="libstdc++-manual" \
+	--string-param directory-category="GNU C++ Library" \
+	--string-param explicit-node-names=true
+doc-texinfo-docbook: doc-xml-single-docbook ${docbook_outdir}/texinfo
+	@echo "Generating texinfo files..."
+	db2x_docbook2texi $(DB2TEXI_FLAGS) ${manual_xml}
 
 
 # Performance doc and graph configuration.
@@ -307,4 +318,4 @@
 
 # To remove directories.
 clean-local:
-	rm -rf man html pdf fo xml doxygen docbook stamp*
+	rm -rf man html pdf fo xml doxygen docbook stamp* ./libstdc++-* db2t*
Index: doc/doxygen/user.cfg.in
===================================================================
--- doc/doxygen/user.cfg.in	(revision 163574)
+++ doc/doxygen/user.cfg.in	(working copy)
@@ -1,4 +1,4 @@
-# Doxyfile 1.6.1
+# Doxyfile 1.7.1
 
 # This file describes the settings to be used by the documentation system
 # doxygen (www.doxygen.org) for a project
@@ -180,7 +180,7 @@
 # You can put \n's in the value part of an alias to insert newlines.
 
 ALIASES                = "doctodo=@todo\nDoc me!  See doc/doxygen/TODO and http://gcc.gnu.org/ml/libstdc++/2002-02/msg00003.html for more.  " \
-			 "isiosfwd=One of the @link io I/O @endlink typedefs"
+                         "isiosfwd=One of the @link io I/O @endlink typedefs"
 
 # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
 # sources only. Doxygen will then generate output that is more tailored for C.
@@ -208,17 +208,15 @@
 
 OPTIMIZE_OUTPUT_VHDL   = NO
 
-# Doxygen selects the parser to use depending on the extension of the
-# files it parses.  With this tag you can assign which parser to use
-# for a given extension.  Doxygen has a built-in mapping, but you can
-# override or extend it using this tag.  The format is ext=language,
-# where ext is a file extension, and language is one of the parsers
-# supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP,
-# Objective-C, Python, Fortran, VHDL, C, C++. For instance to make
-# doxygen treat .inc files as Fortran files (default is PHP), and .f
-# files as C (default is Fortran), use: inc=Fortran f=C. Note that for
-# custom extensions you also need to set FILE_PATTERNS otherwise the
-# files are not read by doxygen.
+# Doxygen selects the parser to use depending on the extension of the files it
+# parses. With this tag you can assign which parser to use for a given extension.
+# Doxygen has a built-in mapping, but you can override or extend it using this
+# tag. The format is ext=language, where ext is a file extension, and language
+# is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C,
+# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make
+# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C
+# (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions
+# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen.
 
 EXTENSION_MAPPING      =
 
@@ -236,63 +234,57 @@
 
 CPP_CLI_SUPPORT        = NO
 
-# Set the SIP_SUPPORT tag to YES if your project consists of sip
-# sources only.  Doxygen will parse them like normal C++ but will
-# assume all classes use public instead of private inheritance when no
-# explicit protection keyword is present.
+# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
+# Doxygen will parse them like normal C++ but will assume all classes use public
+# instead of private inheritance when no explicit protection keyword is present.
 
 SIP_SUPPORT            = NO
 
-# For Microsoft's IDL there are propget and propput attributes to
-# indicate getter and setter methods for a property. Setting this
-# option to YES (the default) will make doxygen to replace the get and
-# set methods by a property in the documentation. This will only work
-# if the methods are indeed getting or setting a simple type. If this
-# is not the case, or you want to show the methods anyway, you should
-# set this option to NO.
+# For Microsoft's IDL there are propget and propput attributes to indicate getter
+# and setter methods for a property. Setting this option to YES (the default)
+# will make doxygen to replace the get and set methods by a property in the
+# documentation. This will only work if the methods are indeed getting or
+# setting a simple type. If this is not the case, or you want to show the
+# methods anyway, you should set this option to NO.
 
-IDL_PROPERTY_SUPPORT   = YES
+IDL_PROPERTY_SUPPORT   = NO
 
-# If member grouping is used in the documentation and the
-# DISTRIBUTE_GROUP_DOC tag is set to YES, then doxygen will reuse the
-# documentation of the first member in the group (if any) for the
-# other members of the group. By default all members of a group must
-# be documented explicitly.
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES, then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
 
 DISTRIBUTE_GROUP_DOC   = YES
 
-# Set the SUBGROUPING tag to YES (the default) to allow class member
-# groups of the same type (for instance a group of public functions)
-# to be put as a subgroup of that type (e.g. under the Public
-# Functions section). Set it to NO to prevent
-# subgrouping. Alternatively, this can be done per class using the
-# \nosubgrouping command.
+# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
+# the same type (for instance a group of public functions) to be put as a
+# subgroup of that type (e.g. under the Public Functions section). Set it to
+# NO to prevent subgrouping. Alternatively, this can be done per class using
+# the \nosubgrouping command.
 
 SUBGROUPING            = YES
 
-# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union,
-# or enum is documented as struct, union, or enum with the name of the
-# typedef. So typedef struct TypeS {} TypeT, will appear in the
-# documentation as a struct with name TypeT. When disabled the typedef
-# will appear as a member of a file, namespace, or class. And the
-# struct will be named TypeS. This can typically be useful for C code
-# in case the coding convention dictates that all compound types are
-# typedef'ed and only the typedef is referenced, never the tag name.
+# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
+# is documented as struct, union, or enum with the name of the typedef. So
+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
+# with name TypeT. When disabled the typedef will appear as a member of a file,
+# namespace, or class. And the struct will be named TypeS. This can typically
+# be useful for C code in case the coding convention dictates that all compound
+# types are typedef'ed and only the typedef is referenced, never the tag name.
 
 TYPEDEF_HIDES_STRUCT   = NO
 
-# The SYMBOL_CACHE_SIZE determines the size of the internal cache use
-# to determine which symbols to keep in memory and which to flush to
-# disk.  When the cache is full, less often used symbols will be
-# written to disk.  For small to medium size projects (<1000 input
-# files) the default value is probably good enough. For larger
-# projects a too small cache size can cause doxygen to be busy
-# swapping symbols to and from disk most of the time causing a
-# significant performance penality.  If the system has enough physical
-# memory increasing the cache will improve the performance by keeping
-# more symbols in memory. Note that the value works on a logarithmic
-# scale so increasing the size by one will rougly double the memory
-# usage. The cache size is given by this formula:
+# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
+# determine which symbols to keep in memory and which to flush to disk.
+# When the cache is full, less often used symbols will be written to disk.
+# For small to medium size projects (<1000 input files) the default value is
+# probably good enough. For larger projects a too small cache size can cause
+# doxygen to be busy swapping symbols to and from disk most of the time
+# causing a significant performance penality.
+# If the system has enough physical memory increasing the cache will improve the
+# performance by keeping more symbols in memory. Note that the value works on
+# a logarithmic scale so increasing the size by one will rougly double the
+# memory usage. The cache size is given by this formula:
 # 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
 # corresponding to a cache size of 2^16 = 65536 symbols
 
@@ -396,6 +388,12 @@
 
 SHOW_INCLUDE_FILES     = NO
 
+# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen
+# will list include files with double quotes in the documentation
+# rather than with sharp brackets.
+
+FORCE_LOCAL_INCLUDES   = NO
+
 # If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
 # is inserted in the documentation for inline members.
 
@@ -415,13 +413,13 @@
 
 SORT_BRIEF_DOCS        = YES
 
-# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will
-# sort the (brief and detailed) documentation of class members so that
-# constructors and destructors are listed first. If set to NO (the
-# default) the constructors will appear in the respective orders
-# defined by SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. This tag will be
-# ignored for brief docs if SORT_BRIEF_DOCS is set to NO and ignored
-# for detailed docs if SORT_MEMBER_DOCS is set to NO.
+# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen
+# will sort the (brief and detailed) documentation of class members so that
+# constructors and destructors are listed first. If set to NO (the default)
+# the constructors will appear in the respective orders defined by
+# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS.
+# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO
+# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.
 
 SORT_MEMBERS_CTORS_1ST = YES
 
@@ -505,24 +503,22 @@
 
 SHOW_NAMESPACES        = YES
 
-# The FILE_VERSION_FILTER tag can be used to specify a program or
-# script that doxygen should invoke to get the current version for
-# each file (typically from the version control system). Doxygen will
-# invoke the program by executing (via popen()) the command <command>
-# <input-file>, where <command> is the value of the
-# FILE_VERSION_FILTER tag, and <input-file> is the name of an input
-# file provided by doxygen. Whatever the program writes to standard
-# output is used as the file version. See the manual for examples.
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from
+# the version control system). Doxygen will invoke the program by executing (via
+# popen()) the command <command> <input-file>, where <command> is the value of
+# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
+# provided by doxygen. Whatever the program writes to standard output
+# is used as the file version. See the manual for examples.
 
 FILE_VERSION_FILTER    =
 
-# The LAYOUT_FILE tag can be used to specify a layout file which will
-# be parsed by doxygen. The layout file controls the global structure
-# of the generated output files in an output format independent
-# way. The create the layout file that represents doxygen's defaults,
-# run doxygen with the -l option. You can optionally specify a file
-# name after the option, if omitted DoxygenLayout.xml will be used as
-# the name of the layout file.
+# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
+# by doxygen. The layout file controls the global structure of the generated
+# output files in an output format independent way. The create the layout file
+# that represents doxygen's defaults, run doxygen with the -l option.
+# You can optionally specify a file name after the option, if omitted
+# DoxygenLayout.xml will be used as the name of the layout file.
 
 LAYOUT_FILE            =
 
@@ -581,162 +577,161 @@
 # configuration options related to the input files
 #---------------------------------------------------------------------------
 
-# The INPUT tag can be used to specify the files and/or directories
-# that contain documented source files. You may enter file names like
-# "myfile.cpp" or directories like "/usr/src/myproject". Separate the
-# files or directories with spaces.
+# The INPUT tag can be used to specify the files and/or directories that contain
+# documented source files. You may enter file names like "myfile.cpp" or
+# directories like "/usr/src/myproject". Separate the files or directories
+# with spaces.
 
 INPUT                  = @srcdir@/doc/doxygen/doxygroups.cc \
-			 @srcdir@/libsupc++/cxxabi.h \
-			 @srcdir@/libsupc++/cxxabi-forced.h \
-			 @srcdir@/libsupc++/exception \
-			 @srcdir@/libsupc++/exception_ptr.h \
-			 @srcdir@/libsupc++/initializer_list \
-			 @srcdir@/libsupc++/nested_exception.h \
-			 @srcdir@/libsupc++/new \
-			 @srcdir@/libsupc++/typeinfo \
-			 include/algorithm \
-			 include/array \
-			 include/atomic \
-			 include/bitset \
-			 include/chrono \
-			 include/complex \
-			 include/condition_variable \
-			 include/deque \
-			 include/fstream \
-			 include/functional \
-			 include/future \
-			 include/iomanip \
-			 include/ios \
-			 include/iosfwd \
-			 include/iostream \
-			 include/istream \
-			 include/iterator \
-			 include/limits \
-			 include/list \
-			 include/locale \
-			 include/map \
-			 include/memory \
-			 include/mutex \
-			 include/numeric \
-			 include/ostream \
-			 include/queue \
-			 include/random \
-			 include/ratio \
-			 include/regex \
-			 include/set \
-			 include/sstream \
-			 include/stack \
-			 include/stdexcept \
-			 include/streambuf \
-			 include/string \
-			 include/system_error \
-			 include/thread \
-			 include/tuple \
-			 include/type_traits \
-			 include/unordered_map \
-			 include/unordered_set \
-			 include/utility \
-			 include/valarray \
-			 include/vector \
-			 include/cassert \
-			 include/ccomplex \
-			 include/cctype \
-			 include/cerrno \
-			 include/cfenv \
-			 include/cfloat \
-			 include/cinttypes \
-			 include/ciso646 \
-			 include/climits \
-			 include/clocale \
-			 include/cmath \
-			 include/csetjmp \
-			 include/csignal \
-			 include/cstdarg \
-			 include/cstdbool \
-			 include/cstddef \
-			 include/cstdint \
-			 include/cstdio \
-			 include/cstdlib \
-			 include/cstring \
-			 include/ctgmath \
-			 include/ctime \
-			 include/cwchar \
-			 include/cwctype \
-			 include/backward/hash_map \
-			 include/backward/hash_set \
-			 include/backward/strstream \
-			 include/debug/bitset \
-			 include/debug/deque \
-			 include/debug/list \
-			 include/debug/map \
-			 include/debug/set \
-			 include/debug/string \
-			 include/debug/unordered_map \
-			 include/debug/unordered_set \
-			 include/debug/vector \
-			 include/profile/bitset \
-			 include/profile/deque \
-			 include/profile/list \
-			 include/profile/map \
-			 include/profile/set \
-			 include/profile/unordered_map \
-			 include/profile/unordered_set \
-			 include/profile/vector \
-			 include/ext/algorithm \
-			 include/ext/functional \
-			 include/ext/iterator \
-			 include/ext/memory \
-			 include/ext/numeric \
-			 include/ext/rb_tree \
-			 include/ext/rope \
-			 include/ext/slist \
-			 include/parallel/algorithm \
-			 include/parallel/numeric \
-			 include/tr1/ccomplex \
-			 include/tr1/cctype \
-			 include/tr1/cfenv \
-			 include/tr1/cfloat \
-			 include/tr1/cinttypes \
-			 include/tr1/climits \
-			 include/tr1/cmath \
-			 include/tr1/complex \
-			 include/tr1/cstdarg \
-			 include/tr1/cstdbool \
-			 include/tr1/cstdint \
-			 include/tr1/cstdio \
-			 include/tr1/cstdlib \
-			 include/tr1/ctgmath \
-			 include/tr1/ctime \
-			 include/tr1/cwchar \
-			 include/tr1/cwctype \
-			 include/tr1_impl/array \
-			 include/tr1_impl/cctype \
-			 include/tr1_impl/cfenv \
-			 include/tr1_impl/cinttypes \
-			 include/tr1_impl/cmath \
-			 include/tr1_impl/complex \
-			 include/tr1_impl/cstdint \
-			 include/tr1_impl/cstdio \
-			 include/tr1_impl/cstdlib \
-			 include/tr1_impl/cwchar \
-			 include/tr1_impl/cwctype \
-			 include/tr1_impl/regex \
-			 include/tr1_impl/type_traits \
-			 include/tr1_impl/utility \
-			 include/tr1_impl \
-			 include/decimal/decimal \
-			 include/ \
-			 include/@host_alias@/bits \
-			 include/backward \
-			 include/bits \
-			 include/debug \
-			 include/parallel \
-			 include/profile \
-			 include/profile/impl \
-			 include/ext \
-			 include/ext/pb_ds \
-			 include/ext/pb_ds/detail
+                         @srcdir@/libsupc++/cxxabi.h \
+                         @srcdir@/libsupc++/cxxabi-forced.h \
+                         @srcdir@/libsupc++/exception \
+                         @srcdir@/libsupc++/exception_ptr.h \
+                         @srcdir@/libsupc++/initializer_list \
+                         @srcdir@/libsupc++/nested_exception.h \
+                         @srcdir@/libsupc++/new \
+                         @srcdir@/libsupc++/typeinfo \
+                         include/algorithm \
+                         include/array \
+                         include/atomic \
+                         include/bitset \
+                         include/chrono \
+                         include/complex \
+                         include/condition_variable \
+                         include/deque \
+                         include/fstream \
+                         include/functional \
+                         include/future \
+                         include/iomanip \
+                         include/ios \
+                         include/iosfwd \
+                         include/iostream \
+                         include/istream \
+                         include/iterator \
+                         include/limits \
+                         include/list \
+                         include/locale \
+                         include/map \
+                         include/memory \
+                         include/mutex \
+                         include/numeric \
+                         include/ostream \
+                         include/queue \
+                         include/random \
+                         include/ratio \
+                         include/regex \
+                         include/set \
+                         include/sstream \
+                         include/stack \
+                         include/stdexcept \
+                         include/streambuf \
+                         include/string \
+                         include/system_error \
+                         include/thread \
+                         include/tuple \
+                         include/type_traits \
+                         include/unordered_map \
+                         include/unordered_set \
+                         include/utility \
+                         include/valarray \
+                         include/vector \
+                         include/cassert \
+                         include/ccomplex \
+                         include/cctype \
+                         include/cerrno \
+                         include/cfenv \
+                         include/cfloat \
+                         include/cinttypes \
+                         include/ciso646 \
+                         include/climits \
+                         include/clocale \
+                         include/cmath \
+                         include/csetjmp \
+                         include/csignal \
+                         include/cstdarg \
+                         include/cstdbool \
+                         include/cstddef \
+                         include/cstdint \
+                         include/cstdio \
+                         include/cstdlib \
+                         include/cstring \
+                         include/ctgmath \
+                         include/ctime \
+                         include/cwchar \
+                         include/cwctype \
+                         include/backward/hash_map \
+                         include/backward/hash_set \
+                         include/backward/strstream \
+                         include/debug/bitset \
+                         include/debug/deque \
+                         include/debug/list \
+                         include/debug/map \
+                         include/debug/set \
+                         include/debug/string \
+                         include/debug/unordered_map \
+                         include/debug/unordered_set \
+                         include/debug/vector \
+                         include/profile/bitset \
+                         include/profile/deque \
+                         include/profile/list \
+                         include/profile/map \
+                         include/profile/set \
+                         include/profile/unordered_map \
+                         include/profile/unordered_set \
+                         include/profile/vector \
+                         include/ext/algorithm \
+                         include/ext/functional \
+                         include/ext/iterator \
+                         include/ext/memory \
+                         include/ext/numeric \
+                         include/ext/rb_tree \
+                         include/ext/rope \
+                         include/ext/slist \
+                         include/parallel/algorithm \
+                         include/parallel/numeric \
+                         include/tr1/ccomplex \
+                         include/tr1/cctype \
+                         include/tr1/cfenv \
+                         include/tr1/cfloat \
+                         include/tr1/cinttypes \
+                         include/tr1/climits \
+                         include/tr1/cmath \
+                         include/tr1/complex \
+                         include/tr1/cstdarg \
+                         include/tr1/cstdbool \
+                         include/tr1/cstdint \
+                         include/tr1/cstdio \
+                         include/tr1/cstdlib \
+                         include/tr1/ctgmath \
+                         include/tr1/ctime \
+                         include/tr1/cwchar \
+                         include/tr1/cwctype \
+                         include/tr1_impl/array \
+                         include/tr1_impl/cctype \
+                         include/tr1_impl/cfenv \
+                         include/tr1_impl/cinttypes \
+                         include/tr1_impl/cmath \
+                         include/tr1_impl/complex \
+                         include/tr1_impl/cstdint \
+                         include/tr1_impl/cstdio \
+                         include/tr1_impl/cstdlib \
+                         include/tr1_impl/cwchar \
+                         include/tr1_impl/cwctype \
+                         include/tr1_impl/type_traits \
+                         include/tr1_impl/utility \
+                         include/tr1_impl \
+                         include/decimal/decimal \
+                         include/ \
+                         include/@host_alias@/bits \
+                         include/backward \
+                         include/bits \
+                         include/debug \
+                         include/parallel \
+                         include/profile \
+                         include/profile/impl \
+                         include/ext \
+                         include/ext/pb_ds \
+                         include/ext/pb_ds/detail
 
 # This tag can be used to specify the character encoding of the source files
 # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
@@ -754,8 +749,8 @@
 # *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90
 
 FILE_PATTERNS          = *.h \
-			 *.hpp \
-			 *.tcc
+                         *.hpp \
+                         *.tcc
 
 # The RECURSIVE tag can be used to turn specify whether or not subdirectories
 # should be searched for input files as well. Possible values are YES and NO.
@@ -782,10 +777,10 @@
 # for example use the pattern */test/*
 
 EXCLUDE_PATTERNS       = stamp-* \
-			 *stdc++.h* \
-			 *stdtr1c++.h* \
-			 *extc++.h* \
-			 */.svn/*
+                         *stdc++.h* \
+                         *stdtr1c++.h* \
+                         *extc++.h* \
+                         */.svn/*
 
 # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
 # (namespaces, classes, functions, etc.) that should be excluded from the
@@ -961,11 +956,6 @@
 
 HTML_FOOTER            =
 
-# If the HTML_TIMESTAMP tag is set to YES then the generated HTML
-# documentation will contain the timesstamp.
-
-HTML_TIMESTAMP         = NO
-
 # The HTML_STYLESHEET tag can be used to specify a user-defined cascading
 # style sheet that is used by each HTML page. It can be used to
 # fine-tune the look of the HTML output. If the tag is left blank doxygen
@@ -975,6 +965,37 @@
 
 HTML_STYLESHEET        =
 
+# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
+# Doxygen will adjust the colors in the stylesheet and background images
+# according to this color. Hue is specified as an angle on a colorwheel,
+# see http://en.wikipedia.org/wiki/Hue for more information.
+# For instance the value 0 represents red, 60 is yellow, 120 is green,
+# 180 is cyan, 240 is blue, 300 purple, and 360 is red again.
+# The allowed range is 0 to 359.
+
+HTML_COLORSTYLE_HUE    = 220
+
+# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of
+# the colors in the HTML output. For a value of 0 the output will use
+# grayscales only. A value of 255 will produce the most vivid colors.
+
+HTML_COLORSTYLE_SAT    = 100
+
+# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to
+# the luminance component of the colors in the HTML output. Values below
+# 100 gradually make the output lighter, whereas values above 100 make
+# the output darker. The value divided by 100 is the actual gamma applied,
+# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2,
+# and 100 does not change the gamma.
+
+HTML_COLORSTYLE_GAMMA  = 80
+
+# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
+# page will contain the date and time when the page was generated. Setting
+# this to NO can help when comparing the output of multiple runs.
+
+HTML_TIMESTAMP         = NO
+
 # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
 # files or namespaces will be aligned in HTML using tables. If set to
 # NO a bullet list will be used.
@@ -991,14 +1012,14 @@
 
 # If the GENERATE_DOCSET tag is set to YES, additional index files
 # will be generated that can be used as input for Apple's Xcode 3
-# integrated development environment, introduced with OSX 10.5
-# (Leopard).  To create a documentation set, doxygen will generate a
-# Makefile in the HTML output directory. Running make will produce the
-# docset in that directory and running "make install" will install the
-# docset in ~/Library/Developer/Shared/Documentation/DocSets so that
-# Xcode will find it at startup.  See
-# http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for
-# more information.
+# integrated development environment, introduced with OSX 10.5 (Leopard).
+# To create a documentation set, doxygen will generate a Makefile in the
+# HTML output directory. Running make will produce the docset in that
+# directory and running "make install" will install the docset in
+# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
+# it at startup.
+# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
+# for more information.
 
 GENERATE_DOCSET        = NO
 
@@ -1014,8 +1035,19 @@
 # reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen
 # will append .docset to the name.
 
-DOCSET_BUNDLE_ID       = org.doxygen.Project
+DOCSET_BUNDLE_ID       = org.gnu.libstdc++
 
+# When GENERATE_PUBLISHER_ID tag specifies a string that should
+# uniquely identify the documentation publisher. This should be a
+# reverse domain-name style string,
+# e.g. com.mycompany.MyDocSet.documentation.
+
+DOCSET_PUBLISHER_ID    = org.fsf
+
+# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher.
+
+DOCSET_PUBLISHER_NAME  = libstdc++
+
 # If the GENERATE_HTMLHELP tag is set to YES, additional index files
 # will be generated that can be used as input for tools like the
 # Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
@@ -1061,10 +1093,9 @@
 TOC_EXPAND             = NO
 
 # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
-# QHP_VIRTUAL_FOLDER are set, an additional index file will be
-# generated that can be used as input for Qt's qhelpgenerator to
-# generate a Qt Compressed Help (.qch) of the generated HTML
-# documentation.
+# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated
+# that can be used as input for Qt's qhelpgenerator to generate a
+# Qt Compressed Help (.qch) of the generated HTML documentation.
 
 GENERATE_QHP           = NO
 
@@ -1086,23 +1117,24 @@
 
 QHP_VIRTUAL_FOLDER     = doc
 
-# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom
-# filter to add.  For more information please see
+# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to
+# add. For more information please see
 # http://doc.trolltech.com/qthelpproject.html#custom-filters
 
 QHP_CUST_FILTER_NAME   =
 
-# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of
-# the custom filter to add.For more information please see <a
-# href="http://doc.trolltech.com/qthelpproject.html#custom-filters">Qt
-# Help Project / Custom Filters</a>.
+# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the
+# custom filter to add. For more information please see
+# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">
+# Qt Help Project / Custom Filters</a>.
 
 QHP_CUST_FILTER_ATTRS  =
 
-# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes
-# this project's filter section matches.  <a
-# href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">Qt
-# Help Project / Filter Attributes</a>.
+# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
+# project's
+# filter section matches.
+# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">
+# Qt Help Project / Filter Attributes</a>.
 
 QHP_SECT_FILTER_ATTRS  =
 
@@ -1113,6 +1145,23 @@
 
 QHG_LOCATION           =
 
+# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files
+#  will be generated, which together with the HTML files, form an Eclipse help
+# plugin. To install this plugin and make it available under the help contents
+# menu in Eclipse, the contents of the directory containing the HTML and XML
+# files needs to be copied into the plugins directory of eclipse. The name of
+# the directory within the plugins directory should be the same as
+# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before
+# the help appears.
+
+GENERATE_ECLIPSEHELP   = NO
+
+# A unique identifier for the eclipse help plugin. When installing the plugin
+# the directory name containing the HTML and XML files should also have
+# this name.
+
+ECLIPSE_DOC_ID         = org.doxygen.Project
+
 # The DISABLE_INDEX tag can be used to turn on/off the condensed index at
 # top of each HTML page. The value NO (the default) enables the index and
 # the value YES disables it.
@@ -1145,6 +1194,11 @@
 
 TREEVIEW_WIDTH         = 250
 
+# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open
+# links to external symbols imported via tag files in a separate window.
+
+EXT_LINKS_IN_WINDOW    = NO
+
 # Use this tag to change the font size of Latex formulas included
 # as images in the HTML documentation. The default is 10. Note that
 # when you change the font size after a successful doxygen run you need
@@ -1153,15 +1207,34 @@
 
 FORMULA_FONTSIZE       = 10
 
-# When the SEARCHENGINE tag is enable doxygen will generate a search
-# box for the HTML output. The underlying search engine uses
-# javascript and DHTML and should work on any modern browser. Note
-# that when using HTML help (GENERATE_HTMLHELP) or Qt help
-# (GENERATE_QHP) there is already a search function so this one should
-# typically be disabled.
+# Use the FORMULA_TRANPARENT tag to determine whether or not the images
+# generated for formulas are transparent PNGs. Transparent PNGs are
+# not supported properly for IE 6.0, but are supported on all modern browsers.
+# Note that when changing this option you need to delete any form_*.png files
+# in the HTML output before the changes have effect.
 
+FORMULA_TRANSPARENT    = YES
+
+# When the SEARCHENGINE tag is enabled doxygen will generate a search box
+# for the HTML output. The underlying search engine uses javascript
+# and DHTML and should work on any modern browser. Note that when using
+# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets
+# (GENERATE_DOCSET) there is already a search function so this one should
+# typically be disabled. For large projects the javascript based search engine
+# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
+
 SEARCHENGINE           = NO
 
+# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
+# implemented using a PHP enabled web server instead of at the web client
+# using Javascript. Doxygen will generate the search PHP script and index
+# file to put on the web server. The advantage of the server
+# based approach is that it scales better to large projects and allows
+# full text search. The disadvances is that it is more difficult to setup
+# and does not have live searching capabilities.
+
+SERVER_BASED_SEARCH    = NO
+
 #---------------------------------------------------------------------------
 # configuration options related to the LaTeX output
 #---------------------------------------------------------------------------
@@ -1179,6 +1252,9 @@
 
 # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
 # invoked. If left blank `latex' will be used as the default command name.
+# Note that when enabling USE_PDFLATEX this option is only used for
+# generating bitmaps for formulas in the HTML output, but not in the
+# Makefile that is written to the output directory.
 
 LATEX_CMD_NAME         = latex
 
@@ -1225,11 +1301,10 @@
 
 USE_PDFLATEX           = YES
 
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the
-# \\batchmode.  command to the generated LaTeX files. This will
-# instruct LaTeX to keep running if errors occur, instead of asking
-# the user for help.  This option is also used when generating
-# formulas in HTML.
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
+# command to the generated LaTeX files. This will instruct LaTeX to keep
+# running if errors occur, instead of asking the user for help.
+# This option is also used when generating formulas in HTML.
 
 LATEX_BATCHMODE        = YES
 
@@ -1239,10 +1314,10 @@
 
 LATEX_HIDE_INDICES     = YES
 
-# If LATEX_SOURCE_CODE is set to YES then doxygen will include source
-# code with syntax highlighting in the LaTeX output. Note that which
-# sources are shown also depends on other settings such as
-# SOURCE_BROWSER.
+# If LATEX_SOURCE_CODE is set to YES then doxygen will include
+# source code with syntax highlighting in the LaTeX output.
+# Note that which sources are shown also depends on other settings
+# such as SOURCE_BROWSER.
 
 LATEX_SOURCE_CODE      = NO
 
@@ -1448,37 +1523,37 @@
 # instead of the = operator.
 
 PREDEFINED             = __cplusplus \
-			 __GTHREADS \
-			 _GLIBCXX_HAS_GTHREADS \
-			 __GXX_EXPERIMENTAL_CXX0X__ \
-			 _GLIBCXX_INCLUDE_AS_CXX0X \
-			 "_GLIBCXX_STD_P= " \
-			 "_GLIBCXX_STD_D= " \
-			 _GLIBCXX_STD=std \
-			 "_GLIBCXX_TR1= " \
-			 "_GLIBCXX_BEGIN_NAMESPACE_TR1= " \
-			 "_GLIBCXX_END_NAMESPACE_TR1= " \
-			 "_GLIBCXX_BEGIN_NAMESPACE(name)=namespace name {  " \
-			 "_GLIBCXX_BEGIN_NESTED_NAMESPACE(name, unused)=namespace name {  " \
-			 _GLIBCXX_END_NAMESPACE=} \
-			 _GLIBCXX_END_NESTED_NAMESPACE=} \
-			 "_GLIBCXX_TEMPLATE_ARGS=...  " \
-			 _GLIBCXX_DEPRECATED \
-			 _GLIBCXX_USE_WCHAR_T \
-			 _GLIBCXX_USE_LONG_LONG \
-			 _GLIBCXX_USE_C99_STDINT_TR1 \
-			 _GLIBCXX_ATOMIC_BUILTINS_1 \
-			 _GLIBCXX_ATOMIC_BUILTINS_2 \
-			 _GLIBCXX_ATOMIC_BUILTINS_4 \
-			 _GLIBCXX_ATOMIC_BUILTINS_8 \
-			 _GLIBCXX_USE_SCHED_YIELD \
-			 _GLIBCXX_USE_NANOSLEEP \
-			 __GXX_RTTI \
-			 __glibcxx_function_requires=// \
-			 __glibcxx_class_requires=// \
-			 __glibcxx_class_requires2=// \
-			 __glibcxx_class_requires3=// \
-			 __glibcxx_class_requires4=//
+                         __GTHREADS \
+                         _GLIBCXX_HAS_GTHREADS \
+                         __GXX_EXPERIMENTAL_CXX0X__ \
+                         _GLIBCXX_INCLUDE_AS_CXX0X \
+                         "_GLIBCXX_STD_P= " \
+                         "_GLIBCXX_STD_D= " \
+                         _GLIBCXX_STD=std \
+                         "_GLIBCXX_TR1= " \
+                         "_GLIBCXX_BEGIN_NAMESPACE_TR1= " \
+                         "_GLIBCXX_END_NAMESPACE_TR1= " \
+                         "_GLIBCXX_BEGIN_NAMESPACE(name)=namespace name {  " \
+                         "_GLIBCXX_BEGIN_NESTED_NAMESPACE(name, unused)=namespace name {  " \
+                         _GLIBCXX_END_NAMESPACE=} \
+                         _GLIBCXX_END_NESTED_NAMESPACE=} \
+                         "_GLIBCXX_TEMPLATE_ARGS=...  " \
+                         _GLIBCXX_DEPRECATED \
+                         _GLIBCXX_USE_WCHAR_T \
+                         _GLIBCXX_USE_LONG_LONG \
+                         _GLIBCXX_USE_C99_STDINT_TR1 \
+                         _GLIBCXX_ATOMIC_BUILTINS_1 \
+                         _GLIBCXX_ATOMIC_BUILTINS_2 \
+                         _GLIBCXX_ATOMIC_BUILTINS_4 \
+                         _GLIBCXX_ATOMIC_BUILTINS_8 \
+                         _GLIBCXX_USE_SCHED_YIELD \
+                         _GLIBCXX_USE_NANOSLEEP \
+                         __GXX_RTTI \
+                         __glibcxx_function_requires=// \
+                         __glibcxx_class_requires=// \
+                         __glibcxx_class_requires2=// \
+                         __glibcxx_class_requires3=// \
+                         __glibcxx_class_requires4=//
 
 # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
 # this tag can be used to specify a list of macro names that should be expanded.
@@ -1575,6 +1650,14 @@
 
 HAVE_DOT               = YES
 
+# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is
+# allowed to run in parallel. When set to 0 (the default) doxygen will
+# base this on the number of processors available in the system. You can set it
+# explicitly to a value larger than 0 to get control over the balance
+# between CPU load and processing speed.
+
+DOT_NUM_THREADS        = 0
+
 # By default doxygen will write a font called FreeSans.ttf to the
 # output directory and reference it in all dot files that doxygen
 # generates. This font does not include all possible unicode
@@ -1590,7 +1673,7 @@
 # The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
 # The default size is 10pt.
 
-DOT_FONTSIZE           = 10
+DOT_FONTSIZE           = 9
 
 # By default doxygen will tell dot to use the output directory to look for the
 # FreeSans.ttf font (which doxygen will put there itself). If you specify a
Index: doc/doxygen/doxygroups.cc
===================================================================
--- doc/doxygen/doxygroups.cc	(revision 163574)
+++ doc/doxygen/doxygroups.cc	(working copy)
@@ -1,5 +1,6 @@
 /*
-   Copyright (C) 2001, 2002, 2005, 2008, 2009 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2002, 2005, 2008, 2009, 2010
+   Free Software Foundation, Inc.
    See license.html for license.
 
    This just provides documentation for stuff that doesn't need to be in the
@@ -47,7 +48,7 @@
  * Components generally useful that are not part of any standard.
  */
 
-/** @defgroup SGIextensions SGI STL extensions
+/** @defgroup SGIextensions SGI
  * @ingroup extensions
 Because libstdc++ based its implementation of the STL subsections of
 the library on the SGI 3.3 implementation, we inherited their extensions
@@ -115,7 +116,7 @@
 <a href="tables.html">tables</a>.
 */
 
-/** @defgroup associative_containers Associative Containers
+/** @defgroup associative_containers Associative
  * @ingroup containers
 Associative containers allow fast retrieval of data based on keys.
 
@@ -126,7 +127,7 @@
 <a href="tables.html">tables</a>.
 */
 
-/** @defgroup unordered_associative_containers Unordered Associative Containers
+/** @defgroup unordered_associative_containers Unordered Associative
  * @ingroup containers
 Unordered associative containers allow fast retrieval of data based on keys.
 
Index: include/bits/stl_iterator_base_types.h
===================================================================
--- include/bits/stl_iterator_base_types.h	(revision 163574)
+++ include/bits/stl_iterator_base_types.h	(working copy)
@@ -69,6 +69,12 @@
 
   /**
    *  @defgroup iterators Iterators
+   *  Abstractions for uniform iterating through various underlying types.
+  */
+  //@{ 
+
+  /**
+   *  @defgroup iterator_tags Iterator Tags
    *  These are empty types, used to distinguish different iterators.  The
    *  distinction is not made by what they contain, but simply by what they
    *  are.  Different underlying algorithms can then be used based on the
@@ -91,8 +97,8 @@
   /// Random-access iterators support a superset of bidirectional
   /// iterator operations.
   struct random_access_iterator_tag : public bidirectional_iterator_tag { };
+  //@}
 
-
   /**
    *  @brief  Common %iterator class.
    *
Index: include/bits/stl_heap.h
===================================================================
--- include/bits/stl_heap.h	(revision 163574)
+++ include/bits/stl_heap.h	(working copy)
@@ -62,7 +62,7 @@
 _GLIBCXX_BEGIN_NAMESPACE(std)
 
   /**
-   * @defgroup heap_algorithms Heap Algorithms
+   * @defgroup heap_algorithms Heap
    * @ingroup sorting_algorithms
    */
 
Index: include/bits/move.h
===================================================================
--- include/bits/move.h	(revision 163574)
+++ include/bits/move.h	(working copy)
@@ -81,7 +81,7 @@
     move(_Tp&& __t)
     { return static_cast<typename std::remove_reference<_Tp>::type&&>(__t); }
 
-  /// declval, defined in <type_traits>.
+  /// declval, from type_traits.
 
 _GLIBCXX_END_NAMESPACE
 
Index: include/bits/algorithmfwd.h
===================================================================
--- include/bits/algorithmfwd.h	(revision 163574)
+++ include/bits/algorithmfwd.h	(working copy)
@@ -134,22 +134,22 @@
    */
 
   /**
-   * @defgroup mutating_algorithms Mutating Algorithms
+   * @defgroup mutating_algorithms Mutating
    * @ingroup algorithms
    */
 
   /**
-   * @defgroup non_mutating_algorithms Non-Mutating Algorithms
+   * @defgroup non_mutating_algorithms Non-Mutating
    * @ingroup algorithms
    */
 
   /**
-   * @defgroup sorting_algorithms Sorting Algorithms
+   * @defgroup sorting_algorithms Sorting
    * @ingroup algorithms
    */
 
   /**
-   * @defgroup set_algorithms Set Operation Algorithms
+   * @defgroup set_algorithms Set Operation
    * @ingroup sorting_algorithms
    *
    * These algorithms are common set operations performed on sequences
@@ -158,7 +158,7 @@
    */
 
   /**
-   * @defgroup binary_search_algorithms Binary Search Algorithms
+   * @defgroup binary_search_algorithms Binary Search
    * @ingroup sorting_algorithms
    *
    * These algorithms are variations of a classic binary search, and
Index: include/bits/random.h
===================================================================
--- include/bits/random.h	(revision 163574)
+++ include/bits/random.h	(working copy)
@@ -1614,7 +1614,7 @@
    */
 
   /**
-   * @addtogroup random_distributions_uniform Uniform Distributions
+   * @addtogroup random_distributions_uniform Uniform
    * @ingroup random_distributions
    * @{
    */
@@ -1972,7 +1972,7 @@
   /* @} */ // group random_distributions_uniform
 
   /**
-   * @addtogroup random_distributions_normal Normal Distributions
+   * @addtogroup random_distributions_normal Normal
    * @ingroup random_distributions
    * @{
    */
@@ -3226,7 +3226,7 @@
   /* @} */ // group random_distributions_normal
 
   /**
-   * @addtogroup random_distributions_bernoulli Bernoulli Distributions
+   * @addtogroup random_distributions_bernoulli Bernoulli
    * @ingroup random_distributions
    * @{
    */
@@ -3957,7 +3957,7 @@
   /* @} */ // group random_distributions_bernoulli
 
   /**
-   * @addtogroup random_distributions_poisson Poisson Distributions
+   * @addtogroup random_distributions_poisson Poisson
    * @ingroup random_distributions
    * @{
    */
