GNU AutoGen 5.6
AutoGen is a tool designed to simplify the creation and
maintenance of programs that contain large amounts of repetitious
text. It is especially valuable in programs that have several
blocks of text that must be kept synchronized.
One common example is the problem of maintaining the code
required for processing program options. Processing options
requires a minimum of four different constructs be kept in proper
order generally in different places in your program. You need at
least:
- The flag character in the flag string,
- code to process the flag when it is encountered,
- a global state variable or two, and
- a line in the usage text.
AutoGen provides a general framework for handling this and
similar programming tasks.
Noteworthy changes since the last info-gnu announcement:
- “fmemopen” is now used for anonymous file output (aka an M4
type “diversion”). This functions on systems that support either
“fopencookie(3GNU)” or “funopen(3BSD)”. - The Guile/Scheme function “(chdir “xxx”)” is wrapped. AutoGen
needs to know if the current directory has changed. - The definitions parser was rewritten as a FSM parser. This
removes the limitation of several hundred definitions of the same
name (i.e. an array of values was limited to several hundred
entries). - The AutoOpts code now produces internationalizable output. This
means your long option names and usage text may be localized. If
you localize the program name, that will _also_ get printed
localized. - There is now an AutoOpts template for producing code that uses
either getopt(3C) or getopt_long(3GNU). AutoOpts features that
depend upon libopts will not work, but your generated code would
not depend upon the libopts external library either. You still get
generated man pages and texinfo “invoking” chapters. See: http://www.gnu.org/software/autogen/compare.html
and
http://www.gnu.org/software/autogen/manual/html_node/autogen_254.html#SEC254
(the latter works until section numbers change in my doc) - Lots of obscure polishing. 🙂