Release Digest: GNU, March 1, 2004

Written By
Web Webster
Web Webster
Mar 2, 2004

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:

  1. The flag character in the flag string,
  2. code to process the flag when it is encountered,
  3. a global state variable or two, and
  4. 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. 🙂
Web Webster

Web Webster

Web Webster has more than 20 years of writing and editorial experience in the tech sector. He’s written and edited news, demand generation, user-focused, and thought leadership content for business software solutions, consumer tech, and Linux Today, he edits and writes for a portfolio of tech industry news and analysis websites including webopedia.com, and DatabaseJournal.com.

Linux Today Logo

LinuxToday is a trusted, contributor-driven news resource supporting all types of Linux users. Our thriving international community engages with us through social media and frequent content contributions aimed at solving problems ranging from personal computing to enterprise-level IT operations. LinuxToday serves as a home for a community that struggles to find comparable information elsewhere on the web.

Property of TechnologyAdvice. © 2026 TechnologyAdvice. All Rights Reserved

Advertiser Disclosure: Some of the products that appear on this site are from companies from which TechnologyAdvice receives compensation. This compensation may impact how and where products appear on this site including, for example, the order in which they appear. TechnologyAdvice does not include all companies or all types of products available in the marketplace.