Makefile.am: Re-organize xml sources.

2010-03-03  Benjamin Kosnik  <bkoz@redhat.com>

	* doc/Makefile.am: Re-organize xml sources.
	(doc-latex-doxygen): New.
	(doc-pdf-doxygen): New.
	(stamp-xml-doxygen, stamp-latex-doxygen): New.
	* doc/Makefile.in: Regenerate.
	* doc/doxygen/user.cfg.in: Add support here.
	* doc/xml/manual/appendix_contributing.xml: Add specifics.

	* doc/xml/manual/concurrency.xml: New.
	* doc/xml/manual/atomics.xml: New.
	* doc/xml/manual/spine.xml: Adjust.
	* doc/xml/manual/diagnostics.xml: Adjust.

From-SVN: r157214
This commit is contained in:
Benjamin Kosnik 2010-03-04 02:55:08 +00:00 committed by Benjamin Kosnik
parent c05a5e2992
commit 0f752f4435
10 changed files with 496 additions and 213 deletions

View File

@ -1,3 +1,18 @@
2010-03-03 Benjamin Kosnik <bkoz@redhat.com>
* doc/Makefile.am: Re-organize xml sources.
(doc-latex-doxygen): New.
(doc-pdf-doxygen): New.
(stamp-xml-doxygen, stamp-latex-doxygen): New.
* doc/Makefile.in: Regenerate.
* doc/doxygen/user.cfg.in: Add support here.
* doc/xml/manual/appendix_contributing.xml: Add specifics.
* doc/xml/manual/concurrency.xml: New.
* doc/xml/manual/atomics.xml: New.
* doc/xml/manual/spine.xml: Adjust.
* doc/xml/manual/diagnostics.xml: Adjust.
2010-03-03 Paolo Carlini <paolo.carlini@oracle.com>
Jonathan Wakely <jwakely.gcc@gmail.com>

View File

@ -41,7 +41,7 @@ doc-html: doc-html-docbook
# Doxygen configuration
# Assumes doxygen, graphviz (with dot) installed
# Assumes doxygen, graphviz (with dot), pdflatex installed
doxygen_script=${top_srcdir}/scripts/run_doxygen
doxygen_outdir = ${glibcxx_builddir}/doc/doxygen
doc-html-doxygen:
@ -56,85 +56,129 @@ doc-man-doxygen:
${SHELL} ${doxygen_script} \
--host_alias=${host_alias} --mode=man $${srcdir} $${builddir} YES)
doc-xml-doxygen:
doc-xml-doxygen:
-(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
builddir=`cd ..; ${PWD_COMMAND}`; \
${SHELL} ${doxygen_script} \
--host_alias=${host_alias} --mode=xml $${srcdir} $${builddir} NO)
doc-xml-single-doxygen:
doc-xml-single-doxygen: doc-xml-doxygen
@echo "Generating doxygen xml single file..."
$(XSLTPROC) ${doxygen_outdir}/xml/combine.xslt \
${doxygen_outdir}/xml/spine.xml > ${doxygen_outdir}/xml/all.xml;
${doxygen_outdir}/xml/index.xml > ${doxygen_outdir}/xml/api-spine.xml;
doc-latex-doxygen:
-(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
builddir=`cd ..; ${PWD_COMMAND}`; \
${SHELL} ${doxygen_script} \
--host_alias=${host_alias} --mode=latex $${srcdir} $${builddir} NO)
# Chance of loooooonnggg wait time when creating this file.
doxygen_pdf = ${doxygen_outdir}/latex/refman.pdf
doc-pdf-doxygen: stamp-latex-doxygen
-(cd ${doxygen_outdir}/latex && $(MAKE) -i pdf;)
echo "Generating doxygen pdf file...";
if [ -f ${doxygen_pdf} ]; then \
echo "... ${doxygen_pdf}"; \
else \
echo "... error"; \
exit 12; \
fi
stamp-xml-doxygen:
@if [ ! -f stamp-xml-doxygen ]; then \
$(MAKE) doc-xml-single-doxygen; \
fi
$(STAMP) stamp-xml-doxygen
stamp-latex-doxygen:
@if [ ! -f stamp-latex-doxygen ]; then \
$(MAKE) doc-latex-doxygen; \
fi
$(STAMP) stamp-latex-doxygen
# Docbook configuration.
# Assumes
# libxslt
# dblatex
# pdflatex
# docbook-style-xsl
# emacs-nxml-mode
# emacs-nxml-mode
# xmlto passivetex
docbook_outdir = ${glibcxx_builddir}/doc/docbook
xml_srcdir = ${glibcxx_srcdir}/doc/xml
xml_sources = \
${xml_srcdir}/spine.xml \
${xml_srcdir}/authors.xml \
${xml_srcdir}/manual/abi.xml \
${xml_srcdir}/manual/algorithms.xml \
${xml_srcdir}/manual/allocator.xml \
${xml_srcdir}/manual/auto_ptr.xml \
${xml_srcdir}/manual/backwards_compatibility.xml \
${xml_srcdir}/manual/bitmap_allocator.xml \
${xml_srcdir}/manual/build_hacking.xml \
${xml_srcdir}/manual/codecvt.xml \
${xml_srcdir}/manual/concurrency_extensions.xml \
${xml_srcdir}/manual/configure.xml \
${xml_srcdir}/manual/containers.xml \
${xml_srcdir}/manual/ctype.xml \
${xml_srcdir}/manual/debug_mode.xml \
${xml_srcdir}/manual/debug.xml \
${xml_srcdir}/manual/diagnostics.xml \
${xml_srcdir}/manual/evolution.xml \
${xml_srcdir}/manual/extensions.xml \
${xml_srcdir}/manual/internals.xml \
${xml_srcdir}/manual/intro.xml \
${xml_srcdir}/manual/io.xml \
${xml_srcdir}/manual/iterators.xml \
${xml_srcdir}/manual/locale.xml \
${xml_srcdir}/manual/localization.xml \
${xml_srcdir}/manual/messages.xml \
${xml_srcdir}/manual/mt_allocator.xml \
${xml_srcdir}/manual/numerics.xml \
${xml_srcdir}/manual/parallel_mode.xml \
${xml_srcdir}/manual/prerequisites.xml \
${xml_srcdir}/manual/profile_mode.xml \
${xml_srcdir}/manual/internals.xml \
${xml_srcdir}/manual/shared_ptr.xml \
${xml_srcdir}/manual/spine.xml \
${xml_srcdir}/manual/status_cxx1998.xml \
${xml_srcdir}/manual/status_cxx200x.xml \
${xml_srcdir}/manual/status_cxxtr1.xml \
${xml_srcdir}/manual/status_cxxtr24733.xml \
${xml_srcdir}/manual/strings.xml \
${xml_srcdir}/manual/support.xml \
${xml_srcdir}/manual/test.xml \
${xml_srcdir}/manual/using.xml \
${xml_srcdir}/manual/using_exceptions.xml \
${xml_srcdir}/manual/utilities.xml \
${xml_srcdir}/manual/appendix_free.xml \
${xml_srcdir}/manual/appendix_contributing.xml \
${xml_srcdir}/manual/appendix_porting.xml \
${xml_srcdir}/api.xml \
${xml_srcdir}/faq.xml
xml_dir = ${glibcxx_srcdir}/doc/xml
xml_sources_basic = \
${xml_dir}/spine.xml \
${xml_dir}/authors.xml \
${xml_dir}/api.xml \
${xml_dir}/faq.xml
xml_sources_manual = \
${xml_dir}/manual/abi.xml \
${xml_dir}/manual/algorithms.xml \
${xml_dir}/manual/allocator.xml \
${xml_dir}/manual/auto_ptr.xml \
${xml_dir}/manual/atomics.xml \
${xml_dir}/manual/backwards_compatibility.xml \
${xml_dir}/manual/bitmap_allocator.xml \
${xml_dir}/manual/build_hacking.xml \
${xml_dir}/manual/codecvt.xml \
${xml_dir}/manual/concurrency.xml \
${xml_dir}/manual/concurrency_extensions.xml \
${xml_dir}/manual/configure.xml \
${xml_dir}/manual/containers.xml \
${xml_dir}/manual/ctype.xml \
${xml_dir}/manual/debug_mode.xml \
${xml_dir}/manual/debug.xml \
${xml_dir}/manual/diagnostics.xml \
${xml_dir}/manual/evolution.xml \
${xml_dir}/manual/extensions.xml \
${xml_dir}/manual/internals.xml \
${xml_dir}/manual/intro.xml \
${xml_dir}/manual/io.xml \
${xml_dir}/manual/iterators.xml \
${xml_dir}/manual/locale.xml \
${xml_dir}/manual/localization.xml \
${xml_dir}/manual/messages.xml \
${xml_dir}/manual/mt_allocator.xml \
${xml_dir}/manual/numerics.xml \
${xml_dir}/manual/parallel_mode.xml \
${xml_dir}/manual/prerequisites.xml \
${xml_dir}/manual/profile_mode.xml \
${xml_dir}/manual/shared_ptr.xml \
${xml_dir}/manual/spine.xml \
${xml_dir}/manual/status_cxx1998.xml \
${xml_dir}/manual/status_cxx200x.xml \
${xml_dir}/manual/status_cxxtr1.xml \
${xml_dir}/manual/status_cxxtr24733.xml \
${xml_dir}/manual/strings.xml \
${xml_dir}/manual/support.xml \
${xml_dir}/manual/test.xml \
${xml_dir}/manual/using.xml \
${xml_dir}/manual/using_exceptions.xml \
${xml_dir}/manual/utilities.xml \
${xml_dir}/manual/appendix_free.xml \
${xml_dir}/manual/appendix_contributing.xml \
${xml_dir}/manual/appendix_porting.xml
xml_sources_extra = \
${xml_srcdir}/gnu/fdl-1.2.xml \
${xml_srcdir}/gnu/gpl-2.0.xml
${xml_dir}/gnu/fdl-1.2.xml \
${xml_dir}/gnu/gpl-2.0.xml
xml_sources = \
${xml_sources_basic} \
${xml_sources_manual} \
${xml_sources_extra}
xml_noinst = \
${xml_srcdir}/book.txml \
${xml_srcdir}/chapter.txml \
${xml_srcdir}/class.txml
${xml_dir}/book.txml \
${xml_dir}/chapter.txml \
${xml_dir}/class.txml \
${xsl_dir}/doxygen2boostbook.xsl \
${xsl_dir}/boostbook2docbook.xsl \
${xsl_dir}/lookup.xsl
XSLTPROC = xsltproc
@ -159,7 +203,7 @@ ${docbook_outdir}/xml:
# Validate existing XML structure.
XMLLINT = xmllint
#LINT_FLAGS = --debug --nonet --xinclude --nsclean --postvalid --nowarning
#LINT_FLAGS = --debug --nonet --xinclude --nsclean --postvalid --nowarning
#LINT_FLAGS = --noblanks --noout --xinclude --postvalid --noent
LINT_FLAGS = --postvalid --debug --xinclude --noent --noblanks --nonet --noout
VALID_FLAGS = --dtdvalid http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd
@ -196,7 +240,7 @@ doc-fo-docbook: $(xml_sources) ${docbook_outdir}/fo
# fop
FOP = fop
FOP_FLAGS = -d -r
doc-pdf-fop-xml-docbook: $(xml_sources) ${glibcxx_builddir}/doc/pdf
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
@ -256,4 +300,4 @@ CLEANFILES = *.log
# To remove directories.
clean-local:
rm -rf man html pdf fo xml doxygen docbook
rm -rf man html pdf fo xml doxygen docbook stamp*

View File

@ -264,77 +264,93 @@ WARN_CXXFLAGS = \
AM_CPPFLAGS = $(GLIBCXX_INCLUDES)
# Doxygen configuration
# Assumes doxygen, graphviz (with dot) installed
# Assumes doxygen, graphviz (with dot), pdflatex installed
doxygen_script = ${top_srcdir}/scripts/run_doxygen
doxygen_outdir = ${glibcxx_builddir}/doc/doxygen
# Chance of loooooonnggg wait time when creating this file.
doxygen_pdf = ${doxygen_outdir}/latex/refman.pdf
# Docbook configuration.
# Assumes
# libxslt
# dblatex
# pdflatex
# docbook-style-xsl
# emacs-nxml-mode
# emacs-nxml-mode
# xmlto passivetex
docbook_outdir = ${glibcxx_builddir}/doc/docbook
xml_srcdir = ${glibcxx_srcdir}/doc/xml
xml_sources = \
${xml_srcdir}/spine.xml \
${xml_srcdir}/authors.xml \
${xml_srcdir}/manual/abi.xml \
${xml_srcdir}/manual/algorithms.xml \
${xml_srcdir}/manual/allocator.xml \
${xml_srcdir}/manual/auto_ptr.xml \
${xml_srcdir}/manual/backwards_compatibility.xml \
${xml_srcdir}/manual/bitmap_allocator.xml \
${xml_srcdir}/manual/build_hacking.xml \
${xml_srcdir}/manual/codecvt.xml \
${xml_srcdir}/manual/concurrency_extensions.xml \
${xml_srcdir}/manual/configure.xml \
${xml_srcdir}/manual/containers.xml \
${xml_srcdir}/manual/ctype.xml \
${xml_srcdir}/manual/debug_mode.xml \
${xml_srcdir}/manual/debug.xml \
${xml_srcdir}/manual/diagnostics.xml \
${xml_srcdir}/manual/evolution.xml \
${xml_srcdir}/manual/extensions.xml \
${xml_srcdir}/manual/internals.xml \
${xml_srcdir}/manual/intro.xml \
${xml_srcdir}/manual/io.xml \
${xml_srcdir}/manual/iterators.xml \
${xml_srcdir}/manual/locale.xml \
${xml_srcdir}/manual/localization.xml \
${xml_srcdir}/manual/messages.xml \
${xml_srcdir}/manual/mt_allocator.xml \
${xml_srcdir}/manual/numerics.xml \
${xml_srcdir}/manual/parallel_mode.xml \
${xml_srcdir}/manual/prerequisites.xml \
${xml_srcdir}/manual/profile_mode.xml \
${xml_srcdir}/manual/internals.xml \
${xml_srcdir}/manual/shared_ptr.xml \
${xml_srcdir}/manual/spine.xml \
${xml_srcdir}/manual/status_cxx1998.xml \
${xml_srcdir}/manual/status_cxx200x.xml \
${xml_srcdir}/manual/status_cxxtr1.xml \
${xml_srcdir}/manual/status_cxxtr24733.xml \
${xml_srcdir}/manual/strings.xml \
${xml_srcdir}/manual/support.xml \
${xml_srcdir}/manual/test.xml \
${xml_srcdir}/manual/using.xml \
${xml_srcdir}/manual/using_exceptions.xml \
${xml_srcdir}/manual/utilities.xml \
${xml_srcdir}/manual/appendix_free.xml \
${xml_srcdir}/manual/appendix_contributing.xml \
${xml_srcdir}/manual/appendix_porting.xml \
${xml_srcdir}/api.xml \
${xml_srcdir}/faq.xml
xml_dir = ${glibcxx_srcdir}/doc/xml
xml_sources_basic = \
${xml_dir}/spine.xml \
${xml_dir}/authors.xml \
${xml_dir}/api.xml \
${xml_dir}/faq.xml
xml_sources_manual = \
${xml_dir}/manual/abi.xml \
${xml_dir}/manual/algorithms.xml \
${xml_dir}/manual/allocator.xml \
${xml_dir}/manual/auto_ptr.xml \
${xml_dir}/manual/atomics.xml \
${xml_dir}/manual/backwards_compatibility.xml \
${xml_dir}/manual/bitmap_allocator.xml \
${xml_dir}/manual/build_hacking.xml \
${xml_dir}/manual/codecvt.xml \
${xml_dir}/manual/concurrency.xml \
${xml_dir}/manual/concurrency_extensions.xml \
${xml_dir}/manual/configure.xml \
${xml_dir}/manual/containers.xml \
${xml_dir}/manual/ctype.xml \
${xml_dir}/manual/debug_mode.xml \
${xml_dir}/manual/debug.xml \
${xml_dir}/manual/diagnostics.xml \
${xml_dir}/manual/evolution.xml \
${xml_dir}/manual/extensions.xml \
${xml_dir}/manual/internals.xml \
${xml_dir}/manual/intro.xml \
${xml_dir}/manual/io.xml \
${xml_dir}/manual/iterators.xml \
${xml_dir}/manual/locale.xml \
${xml_dir}/manual/localization.xml \
${xml_dir}/manual/messages.xml \
${xml_dir}/manual/mt_allocator.xml \
${xml_dir}/manual/numerics.xml \
${xml_dir}/manual/parallel_mode.xml \
${xml_dir}/manual/prerequisites.xml \
${xml_dir}/manual/profile_mode.xml \
${xml_dir}/manual/shared_ptr.xml \
${xml_dir}/manual/spine.xml \
${xml_dir}/manual/status_cxx1998.xml \
${xml_dir}/manual/status_cxx200x.xml \
${xml_dir}/manual/status_cxxtr1.xml \
${xml_dir}/manual/status_cxxtr24733.xml \
${xml_dir}/manual/strings.xml \
${xml_dir}/manual/support.xml \
${xml_dir}/manual/test.xml \
${xml_dir}/manual/using.xml \
${xml_dir}/manual/using_exceptions.xml \
${xml_dir}/manual/utilities.xml \
${xml_dir}/manual/appendix_free.xml \
${xml_dir}/manual/appendix_contributing.xml \
${xml_dir}/manual/appendix_porting.xml
xml_sources_extra = \
${xml_srcdir}/gnu/fdl-1.2.xml \
${xml_srcdir}/gnu/gpl-2.0.xml
${xml_dir}/gnu/fdl-1.2.xml \
${xml_dir}/gnu/gpl-2.0.xml
xml_sources = \
${xml_sources_basic} \
${xml_sources_manual} \
${xml_sources_extra}
xml_noinst = \
${xml_srcdir}/book.txml \
${xml_srcdir}/chapter.txml \
${xml_srcdir}/class.txml
${xml_dir}/book.txml \
${xml_dir}/chapter.txml \
${xml_dir}/class.txml \
${xsl_dir}/doxygen2boostbook.xsl \
${xsl_dir}/boostbook2docbook.xsl \
${xsl_dir}/lookup.xsl
XSLTPROC = xsltproc
XSLTPROC_FLAGS = --nonet --xinclude
@ -346,7 +362,7 @@ XSL_HTML_SINGLE_STYLE = $(XSL_STYLE_DIR)/xhtml/docbook.xsl
# Validate existing XML structure.
XMLLINT = xmllint
#LINT_FLAGS = --debug --nonet --xinclude --nsclean --postvalid --nowarning
#LINT_FLAGS = --debug --nonet --xinclude --nsclean --postvalid --nowarning
#LINT_FLAGS = --noblanks --noout --xinclude --postvalid --noent
LINT_FLAGS = --postvalid --debug --xinclude --noent --noblanks --nonet --noout
VALID_FLAGS = --dtdvalid http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd
@ -598,16 +614,44 @@ doc-man-doxygen:
${SHELL} ${doxygen_script} \
--host_alias=${host_alias} --mode=man $${srcdir} $${builddir} YES)
doc-xml-doxygen:
doc-xml-doxygen:
-(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
builddir=`cd ..; ${PWD_COMMAND}`; \
${SHELL} ${doxygen_script} \
--host_alias=${host_alias} --mode=xml $${srcdir} $${builddir} NO)
doc-xml-single-doxygen:
doc-xml-single-doxygen: doc-xml-doxygen
@echo "Generating doxygen xml single file..."
$(XSLTPROC) ${doxygen_outdir}/xml/combine.xslt \
${doxygen_outdir}/xml/spine.xml > ${doxygen_outdir}/xml/all.xml;
${doxygen_outdir}/xml/index.xml > ${doxygen_outdir}/xml/api-spine.xml;
doc-latex-doxygen:
-(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
builddir=`cd ..; ${PWD_COMMAND}`; \
${SHELL} ${doxygen_script} \
--host_alias=${host_alias} --mode=latex $${srcdir} $${builddir} NO)
doc-pdf-doxygen: stamp-latex-doxygen
-(cd ${doxygen_outdir}/latex && $(MAKE) -i pdf;)
echo "Generating doxygen pdf file...";
if [ -f ${doxygen_pdf} ]; then \
echo "... ${doxygen_pdf}"; \
else \
echo "... error"; \
exit 12; \
fi
stamp-xml-doxygen:
@if [ ! -f stamp-xml-doxygen ]; then \
$(MAKE) doc-xml-single-doxygen; \
fi
$(STAMP) stamp-xml-doxygen
stamp-latex-doxygen:
@if [ ! -f stamp-latex-doxygen ]; then \
$(MAKE) doc-latex-doxygen; \
fi
$(STAMP) stamp-latex-doxygen
${docbook_outdir}/html:
mkdir -p ${docbook_outdir}/html
@ -647,7 +691,7 @@ doc-fo-docbook: $(xml_sources) ${docbook_outdir}/fo
@echo "Generating FO files..."
$(XSLTPROC) $(XSLTPROC_FLAGS) -o ${docbook_outdir}/fo/spine.fo \
$(XSL_FO_STYLE) ${top_srcdir}/doc/xml/spine.xml
doc-pdf-fop-xml-docbook: $(xml_sources) ${glibcxx_builddir}/doc/pdf
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
@ -679,7 +723,7 @@ doc-html-performance:
# To remove directories.
clean-local:
rm -rf man html pdf fo xml doxygen docbook
rm -rf man html pdf fo xml doxygen docbook stamp*
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.

View File

@ -1169,7 +1169,7 @@ SEARCHENGINE = NO
# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
# generate Latex output.
GENERATE_LATEX = NO
GENERATE_LATEX = @do_latex@
# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
@ -1180,7 +1180,7 @@ LATEX_OUTPUT = latex
# 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.
LATEX_CMD_NAME = latex
LATEX_CMD_NAME = pdflatex
# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
# generate index for LaTeX. If left blank `makeindex' will be used as the
@ -1217,13 +1217,13 @@ LATEX_HEADER =
# contain links (just like the HTML output) instead of page references
# This makes the output suitable for online browsing using a pdf viewer.
PDF_HYPERLINKS = NO
PDF_HYPERLINKS = YES
# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
# plain latex in the generated Makefile. Set this option to YES to get a
# higher quality PDF documentation.
USE_PDFLATEX = NO
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
@ -1231,13 +1231,13 @@ USE_PDFLATEX = NO
# the user for help. This option is also used when generating
# formulas in HTML.
LATEX_BATCHMODE = NO
LATEX_BATCHMODE = YES
# If LATEX_HIDE_INDICES is set to YES then doxygen will not
# include the index chapters (such as File Index, Compound Index, etc.)
# in the output.
LATEX_HIDE_INDICES = NO
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

View File

@ -925,14 +925,16 @@ indicate a place that may require attention for multi-thread safety.
the <ulink url="http://www.gnu.org/software/coreutils/">GNU
coreutils</ulink>. (GNU versions of find, xargs, and possibly
sed and grep are used, just because the GNU versions make
things very easy.)
things very easy.)
</para>
<para>
To generate the pretty pictures and hierarchy
graphs, the
<ulink url="http://www.graphviz.org">Graphviz</ulink>
package will need to be installed.
<ulink url="http://www.graphviz.org">Graphviz</ulink> package
will need to be installed. For PDF
output, <ulink url="http://www.tug.org/applications/pdftex/">
pdflatex</ulink> is required.
</para>
</sect3>
@ -940,7 +942,7 @@ indicate a place that may require attention for multi-thread safety.
<title>Generating the Doxygen Files</title>
<para>
The following Makefile rules run Doxygen to generate HTML
docs, XML docs, and the man pages.
docs, XML docs, PDF docs, and the man pages.
</para>
<para>
@ -951,6 +953,10 @@ indicate a place that may require attention for multi-thread safety.
<screen><userinput>make doc-xml-doxygen</userinput></screen>
</para>
<para>
<screen><userinput>make doc-pdf-doxygen</userinput></screen>
</para>
<para>
<screen><userinput>make doc-man-doxygen</userinput></screen>
</para>
@ -1199,13 +1205,14 @@ indicate a place that may require attention for multi-thread safety.
<para>
For PDF output, something that transforms valid XML to PDF is
required. Possible solutions include <command>xmlto</command>,
<ulink url="http://xmlgraphics.apache.org/fop/">Apache
FOP</ulink>, or <command>prince</command>. Other options are
listed on the DocBook web <ulink
url="http://wiki.docbook.org/topic/DocBookPublishingTools">pages</ulink>. Please
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
consult the <email>libstdc++@gcc.gnu.org</email> list when
preparing printed manuals for current best practice and suggestions.
preparing printed manuals for current best practice and
suggestions.
</para>
<para>
@ -1499,20 +1506,6 @@ xmllint --noout --valid <filename>xml/index.xml</filename>
<para>
<screen><userinput>make doc-pdf</userinput></screen>
</para>
<para>
The following Makefile rules generate (in order): an HTML
version of all the DocBook documentation with links into an
local Doxygen cache, and a PDF version of the same.
</para>
<para>
<screen><userinput>make doc-html-combine</userinput></screen>
</para>
<para>
<screen><userinput>make doc-pdf-combine</userinput></screen>
</para>
</sect3>
</sect2>
</sect1>

View File

@ -0,0 +1,61 @@
<?xml version='1.0'?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"
[ ]>
<chapter id="std.atomics" xreflabel="Atomics">
<?dbhtml filename="atomics.html"?>
<chapterinfo>
<keywordset>
<keyword>
ISO C++
</keyword>
<keyword>
library
</keyword>
<keyword>
atomic
</keyword>
</keywordset>
</chapterinfo>
<title>
Atomics
<indexterm><primary>Atomics</primary></indexterm>
</title>
<para>
Facilities for atomic operations.
</para>
<!-- Sect1 01 : API -->
<sect1 id="std.atomics.api">
<title>API Reference</title>
<para>
All items are declared in the standard header
file <filename>atomic</filename>.
</para>
<para>
Set of typedefs that map <type>int</type> to
<classname>atomic_int</classname>, and so on for all builtin
integral types. Global enumeration <type>memory_order</type> to
control memory ordering. Also includes
<classname>atomic</classname>, a class template with member
functions such as <function>load</function> and
<function>store</function> that is instantiable such that
<classname>atomic_int</classname> is the base class of
<classname>atomic&lt;int&gt;</classname>.
</para>
<para>
Full API details.
</para>
<!-- Doxygen XML: api/group__atomics.xml -->
</sect1>
</chapter>

View File

@ -0,0 +1,85 @@
<?xml version='1.0'?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"
[ ]>
<chapter id="std.concurrency" xreflabel="Concurrency">
<?dbhtml filename="concurrency.html"?>
<chapterinfo>
<keywordset>
<keyword>
ISO C++
</keyword>
<keyword>
library
</keyword>
<keyword>
mutex
</keyword>
<keyword>
thread
</keyword>
<keyword>
future
</keyword>
<keyword>
condition_variable
</keyword>
</keywordset>
</chapterinfo>
<title>
Concurrency
<indexterm><primary>Concurrency</primary></indexterm>
</title>
<para>
Facilities for concurrent operation, and control thereof.
</para>
<!-- Sect1 01 : API -->
<sect1 id="std.concurrency.api">
<title>API Reference</title>
<para>
All items are declared in one of four standard header files.
</para>
<para>
In header <filename>mutex</filename>, class
template <classname>mutex</classname> and variants,
class <classname>once_flag</classname>, and class
template <classname>unique_lock</classname>.
</para>
<para>
In header <filename>condition_variable</filename>,
classes <classname>condition_variable</classname>
and <classname>condition_variable_any</classname>.
</para>
<para>
In header <filename>thread</filename>,
class <classname>thread</classname> and
namespace <code>this_thread</code>.
</para>
<para>
In header <filename>future</filename>, class
template <classname>future</classname> and class
template <classname>shared_future</classname>, class
template <classname>promise</classname>,
and <classname>packaged_task</classname>.
</para>
<para>
Full API details.
</para>
<!-- Doxygen XML: api/group__concurrency.xml -->
</sect1>
</chapter>

View File

@ -26,8 +26,8 @@
<?dbhtml filename="exceptions.html"?>
<title>Exceptions</title>
<sect2 id="std.diagnostics.exceptions.hierarchy" xreflabel="Exception Classes">
<title>Exception Classes</title>
<sect2 id="std.diagnostics.exceptions.api">
<title>API Reference</title>
<para>
All exception objects are defined in one of the standard header
files: <filename>exception</filename>,
@ -44,12 +44,18 @@
<para>
Derived from this are several classes that may have a
<classname>string</classname> member: a full hierarchy can be
found in the <ulink url="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00460.html">source documentation</ulink>.
found in the source documentation.
</para>
<para>
Full API details.
</para>
<!-- Doxygen XML: api/group__exceptions.xml -->
</sect2>
<sect2 id="std.diagnostics.exceptions.data" xreflabel="Adding Data to Exceptions">
<title>Adding Data to Exceptions</title>
<title>Adding Data to <classname>exception</classname></title>
<para>
The standard exception classes carry with them a single string as
data (usually describing what went wrong or where the 'throw' took

View File

@ -85,6 +85,16 @@
parse="xml" href="io.xml">
</xi:include>
<!-- Chapter 11 : Atomics -->
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
parse="xml" href="atomics.xml">
</xi:include>
<!-- Chapter 12 : Concurrency -->
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
parse="xml" href="concurrency.xml">
</xi:include>
</part>
<!-- Part 03 : Extensions -->

View File

@ -1,10 +1,10 @@
#!/bin/bash
# Runs doxygen and massages the output files.
# Copyright (C) 2001, 2002, 2003, 2004, 2008, 2009
# Copyright (C) 2001, 2002, 2003, 2004, 2008, 2009, 2010
# Free Software Foundation, Inc.
#
# Synopsis: run_doxygen --mode=[html|man|xml] --host_alias=<alias> \
# Synopsis: run_doxygen --mode=[html|latex|man|xml] --host_alias=<alias> \
# v3srcdir \
# v3builddir \
# shortname
@ -17,7 +17,7 @@ DOXYVER=1.6.1
find_doxygen() {
local -r v_required=`echo $DOXYVER | \
awk -F. '{if(NF<3)$3=0;print ($1*100+$2)*100+$3}'`
awk -F. '{if(NF<3)$3=0;print ($1*100+$2)*100+$3}'`
local testing_version doxygen maybedoxy v_found
# thank you goat book
set `IFS=:; X="$PATH:/usr/local/bin:/bin:/usr/bin"; echo $X`
@ -28,16 +28,16 @@ find_doxygen() {
test -f "$maybedoxy" && testing_version=`$maybedoxy --version`
if test -n "$testing_version"; then
v_found=`echo $testing_version | \
awk -F. '{if(NF<3)$3=0;print ($1*100+$2)*100+$3}'`
awk -F. '{if(NF<3)$3=0;print ($1*100+$2)*100+$3}'`
if test $v_found -ge $v_required; then
doxygen="$maybedoxy"
break
doxygen="$maybedoxy"
break
fi
fi
done
if test -z "$doxygen"; then
echo run_doxygen error: Could not find Doxygen $DOXYVER in path. 1>&2
print_usage
echo run_doxygen error: Could not find Doxygen $DOXYVER in path. 1>&2
print_usage
fi
# We need to use other tools from the same package/version.
echo :: Using Doxygen tools from ${dir}.
@ -48,11 +48,12 @@ find_doxygen() {
print_usage() {
cat 1>&2 <<EOF
Usage: run_doxygen --mode=MODE --host_alias=BUILD_ALIAS [<options>]
<v3-src-dir> <v3-build-dir> <shortnamesp>
<v3-src-dir> <v3-build-dir> <shortnamesp>
MODE is one of:
html Generate user-level HTML library documentation.
man Generate user-level man pages.
xml Generate user-level XML pages.
html Generate user-level HTML library documentation.
man Generate user-level man pages.
xml Generate user-level XML pages.
latex Generate user-level LaTeX pages.
BUILD_ALIAS is the GCC build alias set at configure time.
@ -75,25 +76,25 @@ parse_options() {
case "$o" in
--mode=*)
mode=$arg ;;
mode=$arg ;;
--host_alias=*)
host_alias=$arg ;;
host_alias=$arg ;;
--mode | --host_alias | --help | -h)
print_usage ;;
print_usage ;;
*)
# this turned out to be a mess, maybe change to --srcdir=, etc
if test $srcdir = unset; then
srcdir=$o
elif test $outdir = unset; then
builddir=${o}
outdir=${o}/doc/doxygen
elif test $shortname = unset; then
shortname=$o
else
echo run_doxygen error: Too many arguments 1>&2
exit 1
fi
;;
# this turned out to be a mess, maybe change to --srcdir=, etc
if test $srcdir = unset; then
srcdir=$o
elif test $outdir = unset; then
builddir=${o}
outdir=${o}/doc/doxygen
elif test $shortname = unset; then
shortname=$o
else
echo run_doxygen error: Too many arguments 1>&2
exit 1
fi
;;
esac
done
}
@ -106,8 +107,9 @@ srcdir=unset
outdir=unset
shortname=unset
do_html=false
do_man=false
do_xml=false
do_man=false
do_xml=false
do_latex=false
enabled_sections=
generate_tagfile=
DATEtext=`date '+%Y-%m-%d'`
@ -130,6 +132,10 @@ case x"$mode" in
enabled_sections=maint
generate_tagfile="$outdir/html/libstdc++.tag"
;;
xlatex)
do_latex=true
enabled_sections=maint
;;
xman)
do_man=true
;;
@ -156,12 +162,6 @@ esac
mkdir -p $outdir
chmod u+w $outdir
# work around a stupid doxygen bug
if $do_man; then
mkdir -p $outdir/man/man3/ext
chmod -R u+w $outdir/man/man3/ext
fi
if $do_xml; then
mkdir -p $outdir/xml
fi
@ -176,6 +176,7 @@ fi
-e "s=@host_alias@=${host_alias}=g" \
-e "s=@enabled_sections@=${enabled_sections}=" \
-e "s=@do_html@=${do_html}=" \
-e "s=@do_latex@=${do_latex}=" \
-e "s=@do_man@=${do_man}=" \
-e "s=@do_xml@=${do_xml}=" \
-e "s=@generate_tagfile@=${generate_tagfile}=" \
@ -188,6 +189,40 @@ fi
ret=$?
test $ret -ne 0 && exit $ret
if $do_latex; then
mkdir -p $outdir/latex
fi
(
set -e
cd $builddir
sed -e "s=@outdir@=${outdir}=g" \
-e "s=@srcdir@=${srcdir}=g" \
-e "s=@shortname@=${shortname}=g" \
-e "s=@builddir@=${builddir}=g" \
-e "s=@host_alias@=${host_alias}=g" \
-e "s=@enabled_sections@=${enabled_sections}=" \
-e "s=@do_html@=${do_html}=" \
-e "s=@do_latex@=${do_latex}=" \
-e "s=@do_man@=${do_man}=" \
-e "s=@do_xml@=${do_xml}=" \
-e "s=@generate_tagfile@=${generate_tagfile}=" \
${srcdir}/doc/doxygen/user.cfg.in > ${outdir}/${mode}.cfg
echo :: NOTE that this may take some time...
echo doxygen ${outdir}/${mode}.cfg
doxygen ${outdir}/${mode}.cfg
# Also drop in the header file and style sheet
cd ${outdir}/${mode}
doxygen -w latex header.tex doxygen.sty
echo :: Finished, exit code was $?
echo ::
echo :: LaTeX pages begin with
echo :: ${outdir}/latex/refman.tex
)
ret=$?
test $ret -ne 0 && exit $ret
if $do_html; then
cd ${outdir}/html
@ -206,13 +241,6 @@ if $do_html; then
sed -e 's=\(::[[:alnum:]_]*\)&lt; .* &gt;=\1=' annotated.html > annstrip.html
mv annstrip.html annotated.html
# Work around a bug in doxygen 1.3.
# for f in class*html struct*html; do
for f in class*html; do
sed '1,10s!^<title> Template!<title>Template !' $f > TEMP
mv TEMP $f
done
cp ${srcdir}/doc/doxygen/tables.html tables.html
echo ::
echo :: HTML pages begin with
@ -229,9 +257,6 @@ echo ::
echo :: Fixing up the man pages...
cd $outdir/man/man3
# here's the other end of the "stupid doxygen bug" mentioned above
rm -rf ext
# File names with embedded spaces (EVIL!) need to be....? renamed or removed?
find . -name "* *" -print0 | xargs -0r rm # requires GNU tools
@ -370,18 +395,18 @@ done
# Generic removal bits, where there are things in the generated man
# pages that need to be killed.
for f in *_libstdc__-v3_*; do
rm $f
rm $f
done
for f in *_src_*; do
rm $f
rm $f
done
# Also, for some reason, typedefs don't get their own man pages. Sigh.
for f in ios streambuf istream ostream iostream stringbuf \
istringstream ostringstream stringstream filebuf ifstream \
ofstream fstream string;
istringstream ostringstream stringstream filebuf ifstream \
ofstream fstream string;
do
echo ".so man3/std::basic_${f}.3" > std::${f}.3
echo ".so man3/std::basic_${f}.3" > std::w${f}.3