From 8ada162555e5336d630d927b1b37275e3fc9d92b Mon Sep 17 00:00:00 2001 From: bkoz Date: Tue, 8 Feb 2011 18:33:31 +0000 Subject: [PATCH] 2011-02-08 Benjamin Kosnik * doc/xml/manual/appendix_porting.xml: Add doc section. * doc/xml/manual/appendix_contributing.xml: Split out doc bits to... * doc/xml/manual/documentation_hacking.xml: ...here. * doc/xml/manual/debug_mode.xml: Adjust. * doc/xml/manual/prerequisites.xml: Adjust. * doc/Makefile.am (xml_sources): Add dot files, documentation_hacking.xml. * doc/Makefile.in: Regenerate. * doc/xml/manual/build_hacking.xml: Use absolute paths for images. * doc/xml/images/confdeps.pdf: Add. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@169932 138bc75d-0d04-0410-961f-82ee72b054a4 --- libstdc++-v3/ChangeLog | 15 + libstdc++-v3/doc/Makefile.am | 8 +- libstdc++-v3/doc/Makefile.in | 6 +- libstdc++-v3/doc/xml/images/confdeps.pdf | Bin 0 -> 50629 bytes .../doc/xml/manual/appendix_contributing.xml | 692 -------------- libstdc++-v3/doc/xml/manual/appendix_porting.xml | 6 +- libstdc++-v3/doc/xml/manual/build_hacking.xml | 32 +- libstdc++-v3/doc/xml/manual/debug_mode.xml | 8 +- .../doc/xml/manual/documentation_hacking.xml | 990 +++++++++++++++++++++ libstdc++-v3/doc/xml/manual/prerequisites.xml | 4 +- 10 files changed, 1043 insertions(+), 718 deletions(-) create mode 100644 libstdc++-v3/doc/xml/images/confdeps.pdf create mode 100644 libstdc++-v3/doc/xml/manual/documentation_hacking.xml diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 7127f26ae0d..f796047dc08 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,18 @@ +2011-02-08 Benjamin Kosnik + + * doc/xml/manual/appendix_porting.xml: Add doc section. + * doc/xml/manual/appendix_contributing.xml: Split out doc bits to... + * doc/xml/manual/documentation_hacking.xml: ...here. + + * doc/xml/manual/debug_mode.xml: Adjust. + * doc/xml/manual/prerequisites.xml: Adjust. + * doc/Makefile.am (xml_sources): Add dot files, + documentation_hacking.xml. + * doc/Makefile.in: Regenerate. + + * doc/xml/manual/build_hacking.xml: Use absolute paths for images. + * doc/xml/images/confdeps.pdf: Add. + 2011-02-08 Jonathan Wakely * doc/xml/gnu/fdl-1.2.xml: Remove. diff --git a/libstdc++-v3/doc/Makefile.am b/libstdc++-v3/doc/Makefile.am index f8e939fb38e..3cdb1fd8bc6 100644 --- a/libstdc++-v3/doc/Makefile.am +++ b/libstdc++-v3/doc/Makefile.am @@ -1,6 +1,6 @@ ## Makefile for the doc subdirectory of the GNU C++ Standard library. ## -## Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc. +## Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc. ## ## This file is part of the libstdc++ version 3 distribution. ## Process this file with automake to produce Makefile.in. @@ -318,6 +318,7 @@ xml_sources_manual = \ ${xml_dir}/manual/debug_mode.xml \ ${xml_dir}/manual/debug.xml \ ${xml_dir}/manual/diagnostics.xml \ + ${xml_dir}/manual/documentation_hacking.xml \ ${xml_dir}/manual/evolution.xml \ ${xml_dir}/manual/extensions.xml \ ${xml_dir}/manual/internals.xml \ @@ -360,7 +361,10 @@ xml_sources = \ xml_noinst = \ ${xml_dir}/book.txml \ ${xml_dir}/chapter.txml \ - ${xml_dir}/class.txml + ${xml_dir}/class.txml \ + ${xml_dir}/images/confdeps.dot \ + ${xml_dir}/images/confdeps.png \ + ${xml_dir}/images/confdeps.pdf XSLTPROC = xsltproc XSLTPROC_FLAGS = --nonet --xinclude diff --git a/libstdc++-v3/doc/Makefile.in b/libstdc++-v3/doc/Makefile.in index e6e19203ebd..60b1eb06d3f 100644 --- a/libstdc++-v3/doc/Makefile.in +++ b/libstdc++-v3/doc/Makefile.in @@ -369,6 +369,7 @@ xml_sources_manual = \ ${xml_dir}/manual/debug_mode.xml \ ${xml_dir}/manual/debug.xml \ ${xml_dir}/manual/diagnostics.xml \ + ${xml_dir}/manual/documentation_hacking.xml \ ${xml_dir}/manual/evolution.xml \ ${xml_dir}/manual/extensions.xml \ ${xml_dir}/manual/internals.xml \ @@ -411,7 +412,10 @@ xml_sources = \ xml_noinst = \ ${xml_dir}/book.txml \ ${xml_dir}/chapter.txml \ - ${xml_dir}/class.txml + ${xml_dir}/class.txml \ + ${xml_dir}/images/confdeps.dot \ + ${xml_dir}/images/confdeps.png \ + ${xml_dir}/images/confdeps.pdf XSLTPROC_FLAGS = --nonet --xinclude #XSL_STYLE_DIR = /usr/share/sgml/docbook/xsl-stylesheets diff --git a/libstdc++-v3/doc/xml/images/confdeps.pdf b/libstdc++-v3/doc/xml/images/confdeps.pdf new file mode 100644 index 0000000000000000000000000000000000000000..dab5ef341ebf2a6abbf38849d9f47217bce06151 GIT binary patch literal 50629 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 W9`O1OPFd&G#dagC literal 0 HcmV?d00001 diff --git a/libstdc++-v3/doc/xml/manual/appendix_contributing.xml b/libstdc++-v3/doc/xml/manual/appendix_contributing.xml index 7dfe8e0ddf4..49cbcab9ba3 100644 --- a/libstdc++-v3/doc/xml/manual/appendix_contributing.xml +++ b/libstdc++-v3/doc/xml/manual/appendix_contributing.xml @@ -940,698 +940,6 @@ indicate a place that may require attention for multi-thread safety. -
Documentation Style - - -
Doxygen - -
Prerequisites - - - Prerequisite tools are Bash 2.0 or later, - Doxygen, and - the GNU - coreutils. (GNU versions of find, xargs, and possibly - sed and grep are used, just because the GNU versions make - things very easy.) - - - - To generate the pretty pictures and hierarchy - graphs, the - Graphviz package - will need to be installed. For PDF - output, - pdflatex is required. - -
- -
Generating the Doxygen Files - - - The following Makefile rules run Doxygen to generate HTML - docs, XML docs, XML docs as a single file, PDF docs, and the man pages. - - - - make doc-html-doxygen - - - - make doc-xml-doxygen - - - - make doc-xml-single-doxygen - - - - make doc-pdf-doxygen - - - - make doc-man-doxygen - - - - Generated files are output into separate sub directores of - doc/doxygen/ in the - build directory, based on the output format. For instance, the - HTML docs will be in doc/doxygen/html. - - - - Careful observers will see that the Makefile rules simply call - a script from the source tree, run_doxygen, 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 --help.) - - - - If you wish to tweak the Doxygen settings, do so by editing - doc/doxygen/user.cfg.in. Notes to fellow - library hackers are written in triple-# comments. - - -
- -
Markup - - - - In general, libstdc++ files should be formatted according to - the rules found in the - Coding Standard. Before - any doxygen-specific formatting tweaks are made, please try to - make sure that the initial formatting is sound. - - - - Adding Doxygen markup to a file (informally called - doxygenating) is very simple. The Doxygen manual can be - found - here. - We try to use a very-recent version of Doxygen. - - - - For classes, use - deque/vector/list - and std::pair as examples. For - functions, see their member functions, and the free functions - in stl_algobase.h. Member functions of - other container-like types should read similarly to these - member functions. - - - - Some commentary to accompany - the first list in the Special - Documentation Blocks section of - the Doxygen manual: - - - - - For longer comments, use the Javadoc style... - - - - - ...not the Qt style. The intermediate *'s are preferred. - - - - - - Use the triple-slash style only for one-line comments (the - brief mode). - - - - - - This is disgusting. Don't do this. - - - - - - Some specific guidelines: - - - - 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 <pre> blocks and @code/@endcode sections, spacing can - have interesting effects. - - - - Use either kind of grouping, as - appropriate. doxygroups.cc exists for this - purpose. See stl_iterator.h for a good example - of the other kind of grouping. - - - - 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.) - - - - Complicated math functions should use the multi-line - format. An example from random.h: - - - - - /** - * @brief A model of a linear congruential random number generator. - * - * @f[ - * x_{i+1}\leftarrow(ax_{i} + c) \bmod m - * @f] - */ - - - - - 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. - - - -HTML to Doxygen Markup Comparison - - - - - - - - HTML - Doxygen - - - - - - \ - \\ - - - - " - \" - - - - ' - \' - - - - <i> - @a word - - - - <b> - @b word - - - - <code> - @c word - - - - <em> - @a word - - - - <em> - <em>two words or more</em> - - - - -
- - -
- -
- -
Docbook - - -
Prerequisites - - - Editing the DocBook sources requires an XML editor. Many - exist: some notable options - include emacs, Kate, - or Conglomerate. - - - - Some editors support special XML Validation - modes that can validate the file as it is - produced. Recommended is the nXML Mode - for emacs. - - - - Besides an editor, additional DocBook files and XML tools are - also required. - - - - Access to the DocBook 5.0 stylesheets and schema is required. The - stylesheets are usually packaged by vendor, in something - like docbook5-style-xsl. To exactly match - generated output, please use a version of the stylesheets - equivalent - to docbook5-style-xsl-1.75.2-3. The - installation directory for this package corresponds to - the XSL_STYLE_DIR - in doc/Makefile.am and defaults - to /usr/share/sgml/docbook/xsl-ns-stylesheets. - - - - For processing XML, an XML processor and some style - sheets are necessary. Defaults are xsltproc - provided by libxslt. - - - - For validating the XML document, you'll need - something like xmllint and access to the - relevant DocBook schema. These are provided - by a vendor package like libxml2 and docbook5-schemas-5.0-4 - - - - For PDF output, something that transforms valid Docbook XML to PDF is - required. Possible solutions include dblatex, - xmlto, or prince. Of - these, dblatex is the default. Other - options are listed on the DocBook web pages. Please - consult the libstdc++@gcc.gnu.org list when - preparing printed manuals for current best practice and - suggestions. - - - - For Texinfo output, something that transforms valid Docbook - XML to Texinfo is required. The default choice is docbook2X. - - - - 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: - - - - -xmllint --noout --valid xml/index.xml - - -
- -
Generating the DocBook Files - - - - The following Makefile rules generate (in order): an HTML - version of all the DocBook documentation, a PDF version of the same, a - single XML document, and the result of validating the entire XML - document. - - - - make doc-html-docbook - - - - make doc-pdf-docbook - - - - make doc-xml-single-docbook - - - - make doc-xml-validate-docbook - - - - Generated files are output into separate sub directores of - doc/docbook/ in the - build directory, based on the output format. For instance, the - HTML docs will be in doc/docbook/html. - -
- -
File Organization and Basics - - - - Which files are important - - 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. - - Canonical Writing Style - - class template - function template - member function template - (via C++ Templates, Vandevoorde) - - class in namespace std: allocator, not std::allocator - - header file: iostream, not <iostream> - - - General structure - - <set> - <book> - </book> - - <book> - <chapter> - </chapter> - </book> - - <book> - <part> - <chapter> - <section> - </section> - - <sect1> - </sect1> - - <sect1> - <sect2> - </sect2> - </sect1> - </chapter> - - <chapter> - </chapter> - </part> - </book> - - </set> - -
- -
Markup By Example - - - - Complete details on Docbook markup can be found in the DocBook - Element Reference, - online. - An incomplete reference for HTML to Docbook conversion is - detailed in the table below. - - - -HTML to Docbook XML Markup Comparison - - - - - - - - HTML - Docbook - - - - - - <p> - <para> - - - <pre> - <computeroutput>, <programlisting>, - <literallayout> - - - <ul> - <itemizedlist> - - - <ol> - <orderedlist> - - - <il> - <listitem> - - - <dl> - <variablelist> - - - <dt> - <term> - - - <dd> - <listitem> - - - - <a href=""> - <ulink url=""> - - - <code> - <literal>, <programlisting> - - - <strong> - <emphasis> - - - <em> - <emphasis> - - - " - <quote> - - - -
- - - And examples of detailed markup for which there are no real HTML - equivalents are listed in the table below. - - - -Docbook XML Element Use - - - - - - - - Element - Use - - - - - - <structname> - <structname>char_traits</structname> - - - <classname> - <classname>string</classname> - - - <function> - - <function>clear()</function> - <function>fs.clear()</function> - - - - <type> - <type>long long</type> - - - <varname> - <varname>fs</varname> - - - <literal> - - <literal>-Weffc++</literal> - <literal>rel_ops</literal> - - - - <constant> - - <constant>_GNU_SOURCE</constant> - <constant>3.0</constant> - - - - <command> - <command>g++</command> - - - <errortext> - <errortext>In instantiation of</errortext> - - - <filename> - - <filename class="headerfile">ctype.h</filename> - <filename class="directory">/home/gcc/build</filename> - <filename class="libraryfile">libstdc++.so</filename> - - - - -
- -
-
- -
Combines - - -
Generating Combines and Assemblages - - - - The following Makefile rules are defaults, and are usually - 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. - - - - - - make doc-html - - - - Generates multi-page HTML documentation in the following directories: - - - doc/libstdc++-api.html - - - doc/libstdc++-manual.html - - - - - - make doc-man - - - - Generates man pages in the following directory: - - - doc/libstdc++-api.man - - - - - - make doc-pdf - - - - Generates indexed PDF documentation in the following files: - - - doc/libstdc++-api.pdf - - - doc/libstdc++-manual.pdf - - - - - - make doc-texinfo - - - - Generates Texinfo documentation in the following files: - - - doc/libstdc++-manual.texinfo - - - - - - make doc-xml - - - - Generates single-file XML documentation in the following files: - - - doc/libstdc++-api.xml - - - doc/libstdc++-manual.xml - - - - - - - -
-
-
-
Design Notes diff --git a/libstdc++-v3/doc/xml/manual/appendix_porting.xml b/libstdc++-v3/doc/xml/manual/appendix_porting.xml index dc29a35353f..68f3f435d99 100644 --- a/libstdc++-v3/doc/xml/manual/appendix_porting.xml +++ b/libstdc++-v3/doc/xml/manual/appendix_porting.xml @@ -19,12 +19,14 @@ - - + + + + diff --git a/libstdc++-v3/doc/xml/manual/build_hacking.xml b/libstdc++-v3/doc/xml/manual/build_hacking.xml index 686ff31fc90..945ef499681 100644 --- a/libstdc++-v3/doc/xml/manual/build_hacking.xml +++ b/libstdc++-v3/doc/xml/manual/build_hacking.xml @@ -1,4 +1,4 @@ -
@@ -22,10 +22,8 @@ - -
Prerequisites - + As noted previously, certain other tools are necessary for hacking on files that @@ -41,18 +39,22 @@
Overview: What Comes from Where - - - + +
+ Configure and Build File Dependencies + + + + - + - Dependency Graph Configure to Build Files + Dependency Graph for Configure and Build Files - - + +
Regenerate all generated files by using the command sequence @@ -68,7 +70,7 @@
Storing Information in non-AC files (like configure.host) - + Until that glorious day when we can use AC_TRY_LINK with a @@ -100,7 +102,7 @@
Coding and Commenting Conventions - + Most comments should use {octothorpes, shibboleths, hash marks, @@ -125,7 +127,7 @@
The acinclude.m4 layout - + The nice thing about acinclude.m4/aclocal.m4 is that macros aren't actually performed/called/expanded/whatever here, just loaded. So @@ -216,7 +218,7 @@
<constant>GLIBCXX_ENABLE</constant>, the <literal>--enable</literal> maker - + All the GLIBCXX_ENABLE_FOO macros use a common helper, diff --git a/libstdc++-v3/doc/xml/manual/debug_mode.xml b/libstdc++-v3/doc/xml/manual/debug_mode.xml index f0ab4992846..c58bde34065 100644 --- a/libstdc++-v3/doc/xml/manual/debug_mode.xml +++ b/libstdc++-v3/doc/xml/manual/debug_mode.xml @@ -627,7 +627,7 @@ namespace std In debug mode we include the release-mode container (which is now -defined in the namespace __norm) and also the +defined in the namespace __cxx1998) and also the debug-mode container. The debug-mode container is defined within the namespace __debug, which is associated with namespace std via the C++0x namespace association language feature. This @@ -639,7 +639,7 @@ to C++ code as follows: namespace std { - namespace __norm + namespace __cxx1998 { template<typename _Tp, typename _Alloc = allocator<_Tp> > class list @@ -652,12 +652,12 @@ namespace std { template<typename _Tp, typename _Alloc = allocator<_Tp> > class list - : public __norm::list<_Tp, _Alloc>, + : public __cxx1998::list<_Tp, _Alloc>, public __gnu_debug::_Safe_sequence<list<_Tp, _Alloc> > { // ... }; - } // namespace __norm + } // namespace __cxx1998 // namespace __debug __attribute__ ((strong)); inline namespace __debug { } diff --git a/libstdc++-v3/doc/xml/manual/documentation_hacking.xml b/libstdc++-v3/doc/xml/manual/documentation_hacking.xml new file mode 100644 index 00000000000..a2d1cddd814 --- /dev/null +++ b/libstdc++-v3/doc/xml/manual/documentation_hacking.xml @@ -0,0 +1,990 @@ +
+ + +Writing and Generating Documentation + + ISO C++ + documentation + style + docbook + doxygen + + + +
+ + Introduction + + + Documentation for the GNU C++ Library is created from three + independent sources: a manual, a FAQ, and an API reference. + + + The sub-directory doc + within the main source directory contains + Makefile.am and + Makefile.in, which provide rules for + generating documentation, described in excruciating detail + below. The doc + sub-directory also contains three directories: doxygen, which contains scripts and + fragments for doxygen, html, which contains an html + version of the manual, and xml, which contains an xml version + of the manual. + + + 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 + + GNU Manuals. + +
+ +
+ + Generating Documentation + + + + 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 share/doc + or share/man directories. + + + + 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. + + + + For more details on what prerequisites were found and where, + please consult the file config.log in the + libstdc++ build directory. Compare this log to what is expected + for the relevant Makefile conditionals: + BUILD_INFO, BUILD_XML, + BUILD_HTML, BUILD_MAN, + BUILD_PDF, and BUILD_EPUB. + + + + Supported Makefile rules: + + + + + + make html + + + make install-html + + + + Generates multi-page HTML documentation, and installs it + in the following directories: + + + + doc/libstdc++/libstdc++-api.html + + + + + doc/libstdc++/libstdc++-manual.html + + + + + + + + make pdf + + + make install-pdf + + + + Generates indexed PDF documentation, and installs it as + the following files: + + + doc/libstdc++/libstdc++-api.pdf + + + doc/libstdc++/libstdc++-manual.pdf + + + + + + + make man + + + make install-man + + + + Generates man pages, and installs it in the following directory: + + + man/man3/ + + + The generated man pages are namespace-qualified, so to look at + the man page for vector, one would use + man std::vector. + + + + + + + make epub + + + make install-epub + + + + Generates documentation in the ebook/portable electronic + reader format called Epub, and installs it as the + following file. + + + doc/libstdc++/libstdc++-manual.epub + + + + + + + make xml + + + make install-xml + + + + Generates single-file XML documentation, and installs it + as the following files: + + + doc/libstdc++/libstdc++-api-single.xml + + + doc/libstdc++/libstdc++-manual-single.xml + + + + + + + Makefile rules for several other formats are explicitly not + supported, and are always aliased to dummy rules. These + unsupported formats are: info, + ps, and dvi. + +
+ +
Doxygen + +
Prerequisites + + +Doxygen Prerequisites + + + + + + + + + Tool + Version + Required By + + + + + + + coreutils + 8.5 + all + + + + bash + 4.1 + all + + + + doxygen + 1.7.0 + all + + + + graphviz + 2.26 + graphical hierarchies + + + + pdflatex + 2007-59 + pdf output + + + + +
+ + + + Prerequisite tools are Bash 2.0 or later, + Doxygen, and + the GNU + coreutils. (GNU versions of find, xargs, and possibly + sed and grep are used, just because the GNU versions make + things very easy.) + + + + To generate the pretty pictures and hierarchy + graphs, the + Graphviz package + will need to be installed. For PDF + output, + pdflatex is required. + +
+ +
Generating the Doxygen Files + + + 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. + + + + make doc-html-doxygen + + + + make doc-xml-doxygen + + + + make doc-xml-single-doxygen + + + + make doc-pdf-doxygen + + + + make doc-man-doxygen + + + + Generated files are output into separate sub directories of + doc/doxygen/ in the + build directory, based on the output format. For instance, the + HTML docs will be in doc/doxygen/html. + + + + Careful observers will see that the Makefile rules simply call + a script from the source tree, run_doxygen, 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 --help.) + + + + If you wish to tweak the Doxygen settings, do so by editing + doc/doxygen/user.cfg.in. Notes to fellow + library hackers are written in triple-# comments. + + +
+ +
Markup + + + + In general, libstdc++ files should be formatted according to + the rules found in the + Coding Standard. Before + any doxygen-specific formatting tweaks are made, please try to + make sure that the initial formatting is sound. + + + + Adding Doxygen markup to a file (informally called + doxygenating) is very simple. The Doxygen manual can be + found + here. + We try to use a very-recent version of Doxygen. + + + + For classes, use + deque/vector/list + and std::pair as examples. For + functions, see their member functions, and the free functions + in stl_algobase.h. Member functions of + other container-like types should read similarly to these + member functions. + + + + Some commentary to accompany + the first list in the Special + Documentation Blocks section of + the Doxygen manual: + + + + + For longer comments, use the Javadoc style... + + + + + ...not the Qt style. The intermediate *'s are preferred. + + + + + + Use the triple-slash style only for one-line comments (the + brief mode). + + + + + + This is disgusting. Don't do this. + + + + + + Some specific guidelines: + + + + 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 <pre> blocks and @code/@endcode sections, spacing can + have interesting effects. + + + + Use either kind of grouping, as + appropriate. doxygroups.cc exists for this + purpose. See stl_iterator.h for a good example + of the other kind of grouping. + + + + 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.) + + + + Complicated math functions should use the multi-line + format. An example from random.h: + + + + +/** + * @brief A model of a linear congruential random number generator. + * + * @f[ + * x_{i+1}\leftarrow(ax_{i} + c) \bmod m + * @f] + */ + + + + + One area of note is the markup required for + @file 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: + + + + +/** @file debug/vector + * This file is a GNU debug extension to the Standard C++ Library. + */ + + + + + The other relevant detail for header files is the use of a + libstdc++-specific doxygen alias that helps distinguish + between public header files (like random) + from implementation or private header files (like + bits/c++config.h.) This alias is spelled + @headername 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 + headername in the file + block. An example: + + + + +/** @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} + */ + + + + + 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. + + + +HTML to Doxygen Markup Comparison + + + + + + + + HTML + Doxygen + + + + + + \ + \\ + + + + " + \" + + + + ' + \' + + + + <i> + @a word + + + + <b> + @b word + + + + <code> + @c word + + + + <em> + @a word + + + + <em> + <em>two words or more</em> + + + + +
+ + +
+ +
+ +
Docbook + + +
Prerequisites + + + +Docbook Prerequisites + + + + + + + + + Tool + Version + Required By + + + + + + + docbook5-style-xsl + 1.76.1 + all + + + + xsltproc + 1.1.26 + all + + + + xmllint + 2.7.7 + validation + + + + dblatex + 0.3 + pdf output + + + + pdflatex + 2007-59 + pdf output + + + + docbook2X + 0.8.8 + info output + + + + +
+ + + Editing the DocBook sources requires an XML editor. Many + exist: some notable options + include emacs, Kate, + or Conglomerate. + + + + Some editors support special XML Validation + modes that can validate the file as it is + produced. Recommended is the nXML Mode + for emacs. + + + + Besides an editor, additional DocBook files and XML tools are + also required. + + + + Access to the DocBook 5.0 stylesheets and schema is required. The + stylesheets are usually packaged by vendor, in something + like docbook5-style-xsl. To exactly match + generated output, please use a version of the stylesheets + equivalent + to docbook5-style-xsl-1.75.2-3. The + installation directory for this package corresponds to + the XSL_STYLE_DIR + in doc/Makefile.am and defaults + to /usr/share/sgml/docbook/xsl-ns-stylesheets. + + + + For processing XML, an XML processor and some style + sheets are necessary. Defaults are xsltproc + provided by libxslt. + + + + For validating the XML document, you'll need + something like xmllint and access to the + relevant DocBook schema. These are provided + by a vendor package like libxml2 and docbook5-schemas-5.0-4 + + + + For PDF output, something that transforms valid Docbook XML to PDF is + required. Possible solutions include dblatex, + xmlto, or prince. Of + these, dblatex is the default. Other + options are listed on the DocBook web pages. Please + consult the libstdc++@gcc.gnu.org list when + preparing printed manuals for current best practice and + suggestions. + + + + For Texinfo output, something that transforms valid Docbook + XML to Texinfo is required. The default choice is docbook2X. + +
+ +
Generating the DocBook Files + + + + 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. + + + + make doc-html-docbook + + + + make doc-pdf-docbook + + + + make doc-xml-single-docbook + + + + Generated files are output into separate sub directores of + doc/docbook/ in the + build directory, based on the output format. For instance, the + HTML docs will be in doc/docbook/html. + + + + If the Docbook stylesheets are installed in a custom location, + one can use the variable XSL_STYLE_DIR to + over-ride the Makefile defaults. As so: + + + + +make XSL_STYLE_DIR="/usr/share/xml/docbook/stylesheet/nwalsh" doc-html-docbook + + + +
+ +
Editing and Validation + + + 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: + + + + make doc-xml-validate-docbook + + + + This is equivalent to doing: + + + + + xmllint --noout --valid xml/index.xml + + + + + Please note that individual sections and chapters of the + manual can be validated by substiuting the file desired for + xml/index.xml in the command + above. Reducing scope in this manner can be helpful when + validation on the entire manual fails. + + + + All Docbook xml sources should always validate. No excuses! + + +
+ +
File Organization and Basics + + + + Which files are important + + 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. + + Canonical Writing Style + + class template + function template + member function template + (via C++ Templates, Vandevoorde) + + class in namespace std: allocator, not std::allocator + + header file: iostream, not <iostream> + + + General structure + + <set> + <book> + </book> + + <book> + <chapter> + </chapter> + </book> + + <book> + <part> + <chapter> + <section> + </section> + + <sect1> + </sect1> + + <sect1> + <sect2> + </sect2> + </sect1> + </chapter> + + <chapter> + </chapter> + </part> + </book> + + </set> + +
+ +
Markup By Example + + + + Complete details on Docbook markup can be found in the DocBook + Element Reference, + online. + An incomplete reference for HTML to Docbook conversion is + detailed in the table below. + + + +HTML to Docbook XML Markup Comparison + + + + + + + + HTML + Docbook + + + + + + <p> + <para> + + + <pre> + <computeroutput>, <programlisting>, + <literallayout> + + + <ul> + <itemizedlist> + + + <ol> + <orderedlist> + + + <il> + <listitem> + + + <dl> + <variablelist> + + + <dt> + <term> + + + <dd> + <listitem> + + + + <a href=""> + <ulink url=""> + + + <code> + <literal>, <programlisting> + + + <strong> + <emphasis> + + + <em> + <emphasis> + + + " + <quote> + + + +
+ + + And examples of detailed markup for which there are no real HTML + equivalents are listed in the table below. + + + +Docbook XML Element Use + + + + + + + + Element + Use + + + + + + <structname> + <structname>char_traits</structname> + + + <classname> + <classname>string</classname> + + + <function> + + <function>clear()</function> + <function>fs.clear()</function> + + + + <type> + <type>long long</type> + + + <varname> + <varname>fs</varname> + + + <literal> + + <literal>-Weffc++</literal> + <literal>rel_ops</literal> + + + + <constant> + + <constant>_GNU_SOURCE</constant> + <constant>3.0</constant> + + + + <command> + <command>g++</command> + + + <errortext> + <errortext>In instantiation of</errortext> + + + <filename> + + <filename class="headerfile">ctype.h</filename> + <filename class="directory">/home/gcc/build</filename> + <filename class="libraryfile">libstdc++.so</filename> + + + + +
+ +
+
+
\ No newline at end of file diff --git a/libstdc++-v3/doc/xml/manual/prerequisites.xml b/libstdc++-v3/doc/xml/manual/prerequisites.xml index 6fd813548f1..0a41c44ea75 100644 --- a/libstdc++-v3/doc/xml/manual/prerequisites.xml +++ b/libstdc++-v3/doc/xml/manual/prerequisites.xml @@ -43,8 +43,8 @@ To generate the API documentation from the sources you will need - Doxygen, see Documentation - Style in the appendix for full details. + Doxygen, see Documentation + Hacking in the appendix for full details. -- 2.11.0