autogen_back

AutoGen   Version 5.17.4
AutoOpts   Version 39.0

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

Autoconf
Config
Tests

create form
M4 Quoting

Automated
XDR

xdr project

i

Announcement for May, 2013

5.17.4

set membership options
A new function will allocate a string and insert the names of the bits set in the option (see optionMemberList(3-libopts)).

The syntax of the bit specifications is also now more forgiving.

here strings
A leading-tab-stripped "here string" will also strip a leading backslash, if it precedes a space or tab character. Thus, here strings may include lines that start with white space and their content will be clear to the reader of the source code.

ChangeLog
The "ChangeLog" file in the distribution is now derived from GIT.

Announcement for March, 2013

5.17.3

usage paragraphs
If an AutoOpt-ed project specifies the usage text for --help output, and if internationalization is active, then the text will be emitted a paragraph at a time. This makes it easier for translators. The paragraphing algorythm used at run time is also used to emit the xgettext-able dummy code.

autotools
some auto-retooling was done to catch up with current releases

Announcement for February, 2013

5.17.2

early signals
Autogen tries to catch most signals. This is done so that it can emit appropriate messages before dying. However, SIGPROF is often signaled extremely early, before initialization is complete. So, two fixes:
  • SIGPROF is now exempt from capture, and

  • the cleanup code will do nothing when the processing state is still in the initialization phase

AutoGen Definition Directives
Invalid directives can cause a seg fault. AutoGen recognizes all C directives, ignores some and provides a few of its own. Invalid directives are now warned about and otherwise ignored properly.

for-each main procedure
These procedures may now be specified as processing standard input as a data file instead of being replacement operands. Users can always have "stdin" treated as data by using a single hyphen on the command line.

internationalization
The translatable strings were not very. The stuff was reworked so that usage text can be constructed in English, specified as the full usage text and then readily translated a paragraph at a time. Consequently, larger blocks of help text are now broken down into paragraphs when NLS support has been specified. These paragraphs are emitted into an xgettext extractable form so translators have matching text to work from.

doxygen support
The option, enumeration and bitmap templates have support for adding definitions to Doxygen documentation groups. Setting the attribute addtogroup to mygroup will surround the generated code with:
/** @addtogroup mygroup
 * @{
 */
[...surrounded code...]
/** @} */

Announcement for January, 2013

5.17.1

File Formats
AutoOpts automatically supports parsing options from configuration files (AKA "rc files" or "ini files"). Traditionally, there is a man page written up to describe these files. In support of that tradition, three templates have been added to the collection of option handling templates. These will emit boiler plate documentation on the various formats accepted by the configuration file parsing code, plus the "doc" stanzas for the options that are recognized in these files.

build issues
Adjustments for various build environments were made.

Announcement for December, 2012

5.17

autogen for loop
It turns out to be difficult to detect gaps in a sparse array of string values. To support detecting them, a new scheme function has been created: (found-for?)

guile.m4
Guile supplies a configure script macro for detecting the compile and link options required to use Guile. It has some undocumented infrastructure dependencies that I happened to not need on my development platform. Other platforms need it. The infrastructure was added.

Guile and LD_LIBRARY_PATH
Guile fiddles it, wrecking the normal ld search path causing programs loaded by autogen to link against the wrong libraries. Pending a proper fix, autogen will erase LD_LIBRARY_PATH for Guile beyond version 2.0.1.

Bit fiddling templates
Enumerations and bit masks have been integrated.

str2enum will manage enumerations and converting these values backand forth between string and binary representations.

str2mask will layer bit mask management on top of that. You will be able to get the string version of a collection of bits so a human eyeball can decipher it, and you will be able to convert such a string into the binary mask.

Guile Version Checking
Problems have cropped up in version mismatch issues. Therefore, henceforth AutoGen will get the Guile version from libguile at startup. It will choke and die if the major/minor version numbers do not match the burned in version gotten at configure time.

shell script required options
If a "min" count value has been specified, the emitted code will now verify that the option appears that minimum number of times.

Announcement for August, 2012

5.16.2

Evade Guile bug
An ancient version of Guile on a BSD platform mishandles the "set!" function. Also, for 6+ year old Guile, the code was referencing an obsolete name of a string.

Announcement for June, 2012

5.16.1

Licensing fixes
Some incorporated files were still marked "GPL" instead of "LGPL".

Memory searching bug
A limit address used in a new scan memory macro was misused.

Announcement for May, 2012

5.16

die-code
A new AutoOpts attribute that specifies creating three new functions: vdie(), die() and fserr(). The "die" functions take an exit code as the first argument, followed by a formatting argument, and then arguments for that format. fserr() takes an operation string and a file-operated-on string and presumes that errno is set properly. None of these return.

-MP supports clean rules
The -M option supports several suboptions, similar to the ones chosen by GCC. -MP is now supported and it is used to mean creating a phoney target for removing the build products (the generated files, including the generated dependency file). Here's an example, for autogen options:

# Makefile dependency file created by:		-*- Mode: Makefile -*-
# /u/ROOT/usr/local/bin/autogen
# with the following command line arguments:
#   -L/u/bkorb/ag/ag/autoopts/tpl \
#   -L/u/bkorb/ag/ag/autoopts/tpl \
#   -MFstamp-opts \
#   -MP \
#   opts.def
AUTOGEN_stamp_opts_TList = \
	opts.h \
	opts.c

AUTOGEN_stamp_opts_SList = \
	opts.def \
	/u/bkorb/ag/ag/autoopts/tpl/options.tpl \
	/u/bkorb/ag/ag/autoopts/tpl/optlib.tlib \
	/u/bkorb/ag/ag/autoopts/tpl/tpl-config.tlib \
	/u/bkorb/ag/ag/autoopts/tpl/gpl.lic \
	/u/bkorb/ag/ag/autoopts/tpl/opthead.tlib \
	/u/bkorb/ag/ag/autoopts/tpl/optcode.tlib \
	/u/bkorb/ag/ag/autoopts/tpl/optmain.tlib

stamp-opts : $(AUTOGEN_stamp_opts_SList)

$(AUTOGEN_stamp_opts_TList) : stamp-opts
	@:

.PHONY : clean-stamp-opts

clean-stamp-opts :
	rm -f stamp-opts $(AUTOGEN_stamp_opts_TList)

top  Viewable With Any Browser  SourceForge Logo   Support This Project   Valid XHTML 1.0!


AutoGen, AutoOpts, columns, getdefs, AutoFSM, AutoXDR and these web pages copyright (c) 1999-2012 Bruce Korb, all rights reserved.
Last modified: Sat May 18 08:35:05 PDT 2013