autogen_back

AutoGen   Version 5.14
AutoOpts   Version 36.1

Main
AutoGen
Pages

Home
Announce
FAQ
docs
XML Defs
testimonials
downloads

Automated
Options

AutoOpts
Comparison
Man example
Redistribute
Licensing
local use
using getopt

GCC's
Fixincludes

fixincludes

Automated
FSM

description
example
usagefsm

Addons
addon

Project GNU
Home Page

Automated
XDR

xdr project

i

Announcement for December 30, 2011

makefile script
Lines ending with the words "then", "else" or "in" will be spliced only with a backslash, and not a semi-colon and a backslash.

Additionally, it produces text that can be post-processed at configure time in that it will leave alone any lines starting with "@ifdef", "@ifndef", "@else" and "@endif". See the second argument to the AC_CONFIG_FILES() autoconf macro for details.

make dependency improvements
When an output file was renamed, the dependency still showed the original file name. Also, when license text files were read, their dependency was not added to the source dependency list.

pzProgPath
Used to be whatever was in argv[0]. If this is not a full path, pathfind(3GEN) is now used to resolve the full path.

the getopt template needed improvement
The generated code still required access to the autoopts/options.h header, meaning that developers still had to jigger a way to get it included at their project's build time. The template now does two extra things: 1) the structures from options.h are added to one of the generated headers, and 2) the template generates the option handling code with an embedded invocation inside the template, so only one invocation is now required by users of the getopt template.

build tree vs. installed templates
In the build environment, many of the templates need to be accessing templates and programs from the build tree and not the installed versions. Contrariwise, the installed templates must never reach into build trees for any data. Each of the templates that must vary their behavior in this way have now been modified so that the search-the-build-tree code is sedded away at install time and the use-only-installed-stuff code is only active in the installed templates.

Announcement for December, 2011

version-proc
Some projects have version numbers that vary for every compilation during development. To accommodate this practice, one could add
include = '#define optionPrintVersion YOUR_PROC_NAME';
but now you may add
version-proc = YOUR_PROC_NAME;
Either way, YOUR_PROC_NAME will get called to display the current program version.

AutoOpts
Under the covers, AutoOpts generated many, many strings. At load time, the addresses of each of these had to get "fixed up". The option templates now take advantage of the string table functions.

These functions now emit the string table with the offset of the start of each contained string in a comment so a human eyeball can find the string associated with (autogen_opt_strs+1510), for example (/* 1510 */ "Allow output files to be writable\0").

Support for -W vendor option

If an application has an interface defined by POSIX, then extensions to that interface should be made with a vendor-extension option, specified to be -W. By adding the vendor-opt attribute to your definitions, AutoOpts will now support that flag.

If you do this, long-opts must not be specified. POSIX does not define long options. Application users will need to specify

-W long-name[=option-arg]

Announcement for June 2011

5.12

man pages
man page templates have been regularized so it is now easier to use doc-section stanzas in the option definition files.

ambiguous options
If a partial long option name matches 2, 3 or 4 options, the error message will list them. If more are matched, the assumption will be that you have yet a long way to go and either should know how to fix it, or use the --help option for some guidance.

Announcement for May, 2011

5.11.9

New AutoOpts attribute: usage-message
When specified, this attribute will cause two new functions to be generated: usage_message and vusage_message with the following profiles:
extern void vusage_message(char const * fmt, va_list ap);
extern void usage_message(char const * fmt, ...);

Licensing text
The text for the various common licenses now gets installed. You may extend the licensing by adding a "xxx.lic" file to a directory that you have searched with the -L option to autogen.

The Scheme functions gpl, lgpl, bsd and agpl are now also deprecated. Please use license-info or license-description instead.

Announcement for February, 2011

5.11.6

Exit code enumeration
All program option headers will now contain an enumeration of the known exit codes. By default, it will be only PROGRAM_EXIT_SUCCESS (0) and PROGRAM_EXIT_FAILURE (1). These can be augmented (and renamed) by adding an array of exit-name and exit-desc entries to your option definition file. The list of exit-names is used for this enumeration, and the description is used in the generated man pages.

package data dir
If PKGDATADIR is defined during the compilation of the option code, the pzPkgDataDir field of the option structure will be initialized to that value. This value can be utilized for finding global initialization files by prefixing file names with $@.

Packager information
The configure script now accepts --with-packager, --with-packager-version and --with-packager-bug-reports options. If specified, the values will get inserted into the config.h header and compiled into the options data structure.

That also means that the option templates will emit packager information into the option structure for display with --help and --version options.


top  Viewable With Any Browser  Valid XHTML 1.0!


AutoGen, AutoOpts, columns, getdefs, AutoFSM, AutoXDR and these web pages copyright (c) 1999-2002 Bruce Korb, all rights reserved.

Return to GNU's home page.

Please send FSF & GNU inquiries & questions to gnu@gnu.org. There are also other ways to contact the FSF.

Please send comments on these web pages to webmasters@www.gnu.org, send other questions to gnu@gnu.org.

This article, Copyright © 2000-2002 by Bruce Korb

Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. Last modified: Wed Dec 28 17:05:31 PST 2011