blob: 78e6c9ef74f1274539119c51ba4a667221e169da [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (C) 1988-2015 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being "Funding Free Software", the Front-Cover
Texts being (a) (see below), and with the Back-Cover Texts being (b)
(see below). A copy of the license is included in the section entitled
"GNU Free Documentation License".
(a) The FSF's Front-Cover Text is:
A GNU Manual
(b) The FSF's Back-Cover Text is:
You have freedom to copy and modify this GNU Manual, like GNU
software. Copies published by the Free Software Foundation raise
funds for GNU development. -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>GNU Compiler Collection (GCC) Internals: Man Page Generation</title>
<meta name="description" content="GNU Compiler Collection (GCC) Internals: Man Page Generation">
<meta name="keywords" content="GNU Compiler Collection (GCC) Internals: Man Page Generation">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Option-Index.html#Option-Index" rel="index" title="Option Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Documentation.html#Documentation" rel="up" title="Documentation">
<link href="Miscellaneous-Docs.html#Miscellaneous-Docs" rel="next" title="Miscellaneous Docs">
<link href="Texinfo-Manuals.html#Texinfo-Manuals" rel="prev" title="Texinfo Manuals">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Man-Page-Generation"></a>
<div class="header">
<p>
Next: <a href="Miscellaneous-Docs.html#Miscellaneous-Docs" accesskey="n" rel="next">Miscellaneous Docs</a>, Previous: <a href="Texinfo-Manuals.html#Texinfo-Manuals" accesskey="p" rel="prev">Texinfo Manuals</a>, Up: <a href="Documentation.html#Documentation" accesskey="u" rel="up">Documentation</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Option-Index.html#Option-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Man-Page-Generation-1"></a>
<h4 class="subsubsection">6.3.7.2 Man Page Generation</h4>
<p>Because of user demand, in addition to full Texinfo manuals, man pages
are provided which contain extracts from those manuals. These man
pages are generated from the Texinfo manuals using
<samp>contrib/texi2pod.pl</samp> and <code>pod2man</code>. (The man page for
<code>g++</code>, <samp>cp/g++.1</samp>, just contains a &lsquo;<samp>.so</samp>&rsquo; reference
to <samp>gcc.1</samp>, but all the other man pages are generated from
Texinfo manuals.)
</p>
<p>Because many systems may not have the necessary tools installed to
generate the man pages, they are only generated if the
<samp>configure</samp> script detects that recent enough tools are
installed, and the Makefiles allow generating man pages to fail
without aborting the build. Man pages are also included in release
distributions. They are generated in the source directory.
</p>
<p>Magic comments in Texinfo files starting &lsquo;<samp>@c man</samp>&rsquo; control what
parts of a Texinfo file go into a man page. Only a subset of Texinfo
is supported by <samp>texi2pod.pl</samp>, and it may be necessary to add
support for more Texinfo features to this script when generating new
man pages. To improve the man page output, some special Texinfo
macros are provided in <samp>doc/include/gcc-common.texi</samp> which
<samp>texi2pod.pl</samp> understands:
</p>
<dl compact="compact">
<dt><code>@gcctabopt</code></dt>
<dd><p>Use in the form &lsquo;<samp>@table @gcctabopt</samp>&rsquo; for tables of options,
where for printed output the effect of &lsquo;<samp>@code</samp>&rsquo; is better than
that of &lsquo;<samp>@option</samp>&rsquo; but for man page output a different effect is
wanted.
</p></dd>
<dt><code>@gccoptlist</code></dt>
<dd><p>Use for summary lists of options in manuals.
</p></dd>
<dt><code>@gol</code></dt>
<dd><p>Use at the end of each line inside &lsquo;<samp>@gccoptlist</samp>&rsquo;. This is
necessary to avoid problems with differences in how the
&lsquo;<samp>@gccoptlist</samp>&rsquo; macro is handled by different Texinfo formatters.
</p></dd>
</dl>
<p>FIXME: describe the <samp>texi2pod.pl</samp> input language and magic
comments in more detail.
</p>
<hr>
<div class="header">
<p>
Next: <a href="Miscellaneous-Docs.html#Miscellaneous-Docs" accesskey="n" rel="next">Miscellaneous Docs</a>, Previous: <a href="Texinfo-Manuals.html#Texinfo-Manuals" accesskey="p" rel="prev">Texinfo Manuals</a>, Up: <a href="Documentation.html#Documentation" accesskey="u" rel="up">Documentation</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Option-Index.html#Option-Index" title="Index" rel="index">Index</a>]</p>
</div>
</body>
</html>