/usr/share/doc/autogen-doc/autogen.html/lib-and-program.html is in autogen-doc 1:5.18.7-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This manual is for GNU AutoGen version 5.18, updated December 2015.
Copyright (C) 1992-2015 by Bruce Korb.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with no
Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. -->
<!-- Created by GNU Texinfo 6.0, http://www.gnu.org/software/texinfo/ -->
<head>
<title>GNU AutoGen - The Automated Program Generator: lib and program</title>
<meta name="description" content="GNU AutoGen - The Automated Program Generator: lib and program">
<meta name="keywords" content="GNU AutoGen - The Automated Program Generator: lib and program">
<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="AutoOpts.html#AutoOpts" rel="index" title="AutoOpts">
<link href="Function-Index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="library-attributes.html#library-attributes" rel="up" title="library attributes">
<link href="lib-called.html#lib-called" rel="next" title="lib called">
<link href="library-attributes.html#library-attributes" rel="prev" title="library attributes">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
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">
<a name="lib-and-program"></a>
<div class="header">
<p>
Next: <a href="lib-called.html#lib-called" accesskey="n" rel="next">lib called</a>, Up: <a href="library-attributes.html#library-attributes" accesskey="u" rel="up">library attributes</a> [<a href="Function-Index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="AutoOpts.html#AutoOpts" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="AutoOpt_002ded-Library-for-AutoOpt_002ded-Program"></a>
<h4 class="subsubsection">7.5.2.1 AutoOpt-ed Library for AutoOpt-ed Program</h4>
<p>The library source code must provide an option definition file that consists
of only the attribute <code>library</code>
<a name="index-library"></a>
and <code>flag</code> entries. The <code>library</code> attribute does not need any
associated value, so it will generally appeary by itself on a line folowed
by a semi-colon. The first <code>flag</code> entry must contain the following
attributes:
</p>
<dl compact="compact">
<dt>‘<samp>name</samp>’</dt>
<dd><p>This name is used in the construction of a global pointer of type
<code>tOptDesc const*</code>. It is always required.
</p></dd>
<dt>‘<samp>documentation</samp>’</dt>
<dd><a name="index-documentation"></a>
<p>It tells <code>AutoOpts</code> that this option serves no normal purpose.
It will be used to add usage clarity and to locate option descriptors
in the library code.
</p></dd>
<dt>‘<samp>descrip</samp>’</dt>
<dd><p>This is a string that is inserted in the extended usage display
before the options specific to the current library. It is always required.
</p></dd>
<dt>‘<samp>lib-name</samp>’</dt>
<dd><a name="index-lib_002dname"></a>
<p>This should match the name of the library. This string is also used in
the construction of the option descriptor pointer name. In the end, it
looks like this:
</p><div class="example">
<pre class="example">extern tOptDesc const* <<lib-name>>_<<name>>_optDesc_p;
</pre></div>
<p>and is used in the macros generated for the library’s <samp>.h</samp> file.
</p></dd>
</dl>
<p>In order to compile this <code>AutoOpts</code> using library, you must create a
special header that is not used by the client program. This is accomplished
by creating an option definition file that contains essentially exactly the
following:
</p>
<div class="example">
<pre class="example">AutoGen definitions options;
prog-name = does-not-matter; // but is always required
prog-title = 'also does not matter'; // also required
config-header = 'config.h'; // optional, but common
library;
#include library-options-only.def
</pre></div>
<p>and nothing else. AutoGen will produce only the <samp>.h</samp> file.
You may now compile your library, referencing just this <samp>.h</samp> file.
The macros it creates will utilize a global variable that will be defined
by the <code>AutoOpts</code>-using client program. That program will need to
have the following <code>#include</code> in <i>its</i> option definition file:
</p>
<div class="example">
<pre class="example">#include library-options-only.def
</pre></div>
<p>All the right things will magically happen so that the global variables
named <var><<lib-name>>_<<name>>_optDesc_p</var> are initialized correctly.
For an example, please see the <code>AutoOpts</code> test script:
<samp>autoopts/test/library.test</samp>.
</p>
<hr>
<div class="header">
<p>
Next: <a href="lib-called.html#lib-called" accesskey="n" rel="next">lib called</a>, Up: <a href="library-attributes.html#library-attributes" accesskey="u" rel="up">library attributes</a> [<a href="Function-Index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="AutoOpts.html#AutoOpts" title="Index" rel="index">Index</a>]</p>
</div>
</body>
</html>
|