This file is indexed.

/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> &nbsp; [<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>&lsquo;<samp>name</samp>&rsquo;</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>&lsquo;<samp>documentation</samp>&rsquo;</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>&lsquo;<samp>descrip</samp>&rsquo;</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>&lsquo;<samp>lib-name</samp>&rsquo;</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* &lt;&lt;lib-name&gt;&gt;_&lt;&lt;name&gt;&gt;_optDesc_p;
</pre></div>
<p>and is used in the macros generated for the library&rsquo;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>&lt;&lt;lib-name&gt;&gt;_&lt;&lt;name&gt;&gt;_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> &nbsp; [<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>