aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/docs/doxygen/guide.html
diff options
context:
space:
mode:
Diffstat (limited to 'libstdc++-v3/docs/doxygen/guide.html')
-rw-r--r--libstdc++-v3/docs/doxygen/guide.html107
1 files changed, 107 insertions, 0 deletions
diff --git a/libstdc++-v3/docs/doxygen/guide.html b/libstdc++-v3/docs/doxygen/guide.html
new file mode 100644
index 00000000000..814dc1debea
--- /dev/null
+++ b/libstdc++-v3/docs/doxygen/guide.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+ <title>Build and Writing Guide for libstdc++-v3 Doxygen</title>
+ <link href="style.css" rel="stylesheet" type="text/css">
+</head>
+
+<body bgcolor="#ffffff">
+
+<h1>libstdc++-v3 Source Documentation</h1>
+
+<p>This file is docs/doxygen/guide.html in the libstdc++-v3 source tree. It
+ is not included in the generated pages (no real point to doing that).
+</p>
+
+<ul>
+ <li><a href="#creating">Creating the pages</a></li>
+ <li><a href="#writing">Writing the markup</a></li>
+</ul>
+
+<hr />
+
+<a name="creating"><h2>Creating the pages</h2></a>
+<p>The Makefile rules <code>'make doxygen'</code>,
+ <code>'make doxygen-maint'</code>, and <code>'make doxygen-man'</code>
+ in the libstdc++-v3 build directory generate the user-level HTML docs, the
+ maintainer-level HTML docs, and the man pages, respectively. Prerequisite
+ tools are Bash 2.x,
+ <a href="http://www.doxygen.org/">
+ <!-- snagged from the generated page -->
+ <img src="doxygen.png" alt="Doxygen" align=center border=0 width=110 height=53>
+ </a>, a working version of <code>g++</code> somewhere in the PATH, and
+ the <a href="http://www.gnu.org/software/coreutils/">GNU coreutils</a>.
+ (g++ is used to build a program which manipulates man pages. GNU versions
+ of find, xargs, and possibly sed and grep are used, just because the GNU
+ versions make things very easy.)
+</p>
+
+<p>Careful observers will see that the Makefile rules simply call a script
+ from the source tree, <code>run_doxygen</code>, 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 <code>'--help'</code>.)
+</p>
+
+<p>If you wish to tweak the Doxygen settings, do so by editing
+ <code>docs/doxygen/user.cfg.in</code>. Notes to v3-hackers are written in
+ triple-# comments.
+</p>
+
+<a name="writing"><h2>Writing the markup</h2></a>
+<p>In general, libstdc++-v3 files should be formatted according to the GNU
+ C++ Coding Standard rules found in the file
+ <a href="http://gcc.gnu.org/onlinedocs/libstdc++/17_intro/C++STYLE">C++STYLE</a>.
+ Before any doxygen-specific formatting tweaks are made, please try to make
+ sure that the initial formatting is sound.
+</p>
+
+<p>Adding Doxygen markup to a file (informally called "doxygenating") is very
+ simple. The Doxygen manual can be found
+ <a href="http://www.stack.nl/~dimitri/doxygen/download.html#latestman">here</a>.
+ We try to use a very-recent version of Doxygen.
+</p>
+
+<h3>Doxygen style guide</h3>
+<p>[incomplete and constantly evolving]</p>
+
+<p>For classes, use deque/vector/list and std::pair as examples. For
+ functions, see their member functions, and the free functions in
+ <code>stl_algobase.h</code>. Member functions of other container-like
+ types should read similarly to these member functions.
+</p>
+
+<p>These points accompany the first list in section 3.1 of the Doxygen manual:
+</p>
+<ol>
+ <li>Use the Javadoc style...</li>
+ <li>...not the Qt style. The intermediate *'s are preferred.</li>
+ <li>Use the triple-slash style only for one-line comments (the "brief" mode).
+ Very recent versions of Doxygen permit full-mode comments in triple-slash
+ blocks, but the formatting still comes out wonky.</li>
+ <li>This is disgusting. Don't do this.</li>
+</ol>
+
+<p>Use the @-style of commands, not the !-style. Please be careful about
+ whitespace in your markup comments. Most of the time it doesn't matter;
+ doxygen absorbs most whitespace, and both HTML and *roff are agnostic about
+ whitespace. However, in &lt;pre&gt; blocks and @code/@endcode sections,
+ spacing can have "interesting" effects.
+</p>
+
+<p>Use either kind of grouping, as appropriate. <code>doxygroups.cc</code>
+ exists for this purpose. See <code>stl_iterator.h</code> for a good
+ example of the "other" kind of grouping.
+</p>
+
+<p>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.)
+</p>
+
+</body>
+</html>