getdefs(1)

AutoGen Definition Extraction Tool

Section 1 autogen bookworm source

Description

getdefs

NAME

getdefs - AutoGen Definition Extraction Tool

SYNOPSIS

getdefs [option-name value]

All arguments are named options.

If no input argument is provided or is set to simply "-", and if stdin is not a tty, then the list of input files will be read from stdin.

DESCRIPTION

This program extracts AutoGen definitions from a list of source files. Definitions are delimited by /*=<entry-type> <entry-name>0fP and =*/0fP.

OPTIONS

Specify which definitions are of interest and what to say about them

defs-to-get=reg-ex Regexp to look for after the "/*=".

If you want definitions only from a particular category, or even with names
matching particular patterns, then specify this regular expression for the
text that must follow the /*=.

subblock=sub-def subblock definition names. This option may appear an
unlimited number of times.

This option is used to create shorthand entries for nested definitions.
For example, with:

using subblock thus --subblock=arg=argname,type,null

and defining an arg thus arg: this, char *

will then expand to: arg = { argname = this; type = "char *"; @;}
The "this, char *" string is separated at the commas, with the white space
removed. You may use characters other than commas by starting the value
string with a punctuation character other than a single or double quote
character. You may also omit intermediate values by placing the commas
next to each other with no intervening white space. For example,
"+mumble++yes+" will expand to:
arg = { argname = mumble; null = "yes"; @
;}.

listattr=def attribute with list of values. This option may appear an
unlimited number of times.

This option is used to create shorthand entries for definitions that
generally appear several times. That is, they tend to be a list of values.
For example, with:
listattr=foo
defined, the text:
foo: this, is, a, multi-list
will then expand to:
foo = ’this’, ’is’, ’a’, ’multi-list’;

The texts are separated by the commas, with the white space removed. You
may use characters other than commas by starting the value string with a
punctuation character other than a single or double quote character.

specify how to number the definitions

ordering [=file-name], --no-ordering Alphabetize or use named file. The
no-ordering
form will disable the option. This option is enabled by
default.

By default, ordering is alphabetical by the entry name. Use, no-ordering
if order is unimportant. Use ordering with no argument to order without
case sensitivity. Use ordering=<file-name> if chronological order is
important. getdefs will maintain the text content of file-name. file-name
need not exist.

first-index=first-index The first index to apply to groups. This option
takes an integer number as its argument. The default first-index for this
option is:
0

By default, the first occurrence of a named definition will have an index
of zero. Sometimes, that needs to be a reserved value. Provide this
option to specify a different starting point.

Definition insertion options

filelist [=file] Insert source file names into defs.

Inserts the name of each input file into the output definitions. If no
argument is supplied, the format will be:
infile = ’%s’;
If an argument is supplied, that string will be used for the entry name
instead of infile.

assign=ag-def Global assignments. This option may appear an unlimited
number of times.

The argument to each copy of this option will be inserted into the output
definitions, with only a semicolon attached.

common-assign=ag-def Assignments common to all blocks. This option may
appear an unlimited number of times.

The argument to each copy of this option will be inserted into each output
definition, with only a semicolon attached.

copy=file File(s) to copy into definitions. This option may appear an
unlimited number of times.

The content of each file named by these options will be inserted into the
output definitions.

srcfile [=file] Insert source file name into each def.

Inserts the name of the input file where a definition was found into the
output definition. If no argument is supplied, the format will be:
srcfile = ’%s’;
If an argument is supplied, that string will be used for the entry name
instead of srcfile.

linenum [=def-name] Insert source line number into each def.

Inserts the line number in the input file where a definition was found into
the output definition. If no argument is supplied, the format will be:
linenum = ’%s’;
If an argument is supplied, that string will be used for the entry name
instead of linenum.

specify which files to search for markers

input=src-file Input file to search for defs. This option may appear an
unlimited number of times. This option is the default option.

All files that are to be searched for definitions must be named on the
command line or read from stdin. If there is only one input option and it
is the string, "-", then the input file list is read from stdin. If a
command line argument is not an option name and does not contain an
assignment operator (=), then it defaults to being an input file name. At
least one input file must be specified.

Definition output disposition options:

output=file Output file to open. This option is a member of the autogen
class of options.

If you are not sending the output to an AutoGen process, you may name an
output file instead.

autogen [=ag-cmd], --no-autogen Invoke AutoGen with defs. The no-autogen
form will disable the option. This option is enabled by default. This
option is a member of the autogen class of options.

This is the default output mode. Specifying no-autogen is equivalent to
output=-
. If you supply an argument to this option, that program will be
started as if it were AutoGen and its standard in will be set to the output
definitions of this program.

template=file Template Name.

Specifies the template name to be used for generating the final output.

agarg=ag-opt AutoGen Argument. This option may appear an unlimited number
of times. This option must not appear in combination with any of the
following options: output.

This is a pass-through argument. It allows you to specify any arbitrary
argument to be passed to AutoGen.

base-name=name Base name for output file(s). This option must not appear
in combination with any of the following options: output.

When output is going to AutoGen, a base name must either be supplied or
derived. If this option is not supplied, then it is taken from the
template
option. If that is not provided either, then it is set to the
base name of the current directory.

help Display usage information and exit.

more-help Pass the extended usage information through a pager.

save-opts [=cfgfile] Save the option state to cfgfile. The default is the
last
configuration file listed in the OPTION PRESETS section, below. The
command will exit after updating the config file.

load-opts=cfgfile, no-load-opts Load options from cfgfile. The
no-load-opts
form will disable the loading of earlier config/rc/ini files.
--no-load-opts
is handled early, out of order.

version [{v|c|n}] Output version of program and exit. The default mode is
‘v’, a simple version. The ‘c’ mode will print copyright information and
‘n’ will print the full copyright notice.

OPTION PRESETS

Any option that is not marked as not presettable may be preset by loading values from configuration ("RC" or ".INI") file(s). The homerc file is "/dev/null", unless that is a directory. In that case, the file ".getdefsrc" is searched for within that directory.

FILES

See OPTION PRESETS for configuration files.

EXIT STATUS

One of the following exit values will be returned:
0 (EXIT_SUCCESS) Successful program execution.

1 (EXIT_FAILURE) The operation failed or the command syntax was not
valid.

2 (EXIT_INVALID_INPUT) An input file was specified that is not a file

3 (EXIT_NO_MEM) Insufficient memory for operation

66 (EX_NOINPUT) A specified configuration file could not be loaded.

70 (EX_SOFTWARE) libopts had an internal operational error. Please
report it to autogen-users@lists.sourceforge.net. Thank you.

SEE ALSO

This program is documented more fully in the Getdefs section of the Add-On chapter in the AutoGen Info system documentation.

AUTHORS

Bruce Korb

COPYRIGHT

Copyright (C) 1999-2018 Bruce Korb all rights reserved. This program is released under the terms of the GNU General Public License, version 3 or later.

BUGS

Please send bug reports to: autogen-users@lists.sourceforge.net

NOTES

This manual page was AutoGen-erated from the getdefs option definitions.