|
|
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 addversion-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.
|