summaryrefslogtreecommitdiff
path: root/util
diff options
context:
space:
mode:
authorGravatar Craig Fields <cfields@mit.edu>1994-10-26 01:56:09 +0000
committerGravatar Craig Fields <cfields@mit.edu>1994-10-26 01:56:09 +0000
commit3dbe801c58450f1acc0135bc66debaa8af848a26 (patch)
treef9039736130490714cea4692a11acad698d57713 /util
parent08be7e2f80ccdfff742ce30c924c71ddc9ed8702 (diff)
Initial revision
Diffstat (limited to 'util')
-rw-r--r--util/autoconf/ChangeLog.11920
-rw-r--r--util/autoconf/TODO102
-rw-r--r--util/autoconf/acfunctions58
-rw-r--r--util/autoconf/acheaders27
-rw-r--r--util/autoconf/acidentifiers22
-rw-r--r--util/autoconf/acmakevars11
-rw-r--r--util/autoconf/acoldnames.m479
-rw-r--r--util/autoconf/acprograms18
-rw-r--r--util/autoconf/autoconf.info-5607
-rw-r--r--util/autoconf/autoconf.m427
-rw-r--r--util/autoconf/autoheader.m484
-rw-r--r--util/autoconf/autoupdate.sh112
-rw-r--r--util/autoconf/ifnames.sh93
-rwxr-xr-xutil/autoconf/install-sh238
-rw-r--r--util/autoconf/install.texi193
-rw-r--r--util/autoconf/standards.info-11188
-rw-r--r--util/autoconf/standards.info-21691
17 files changed, 6470 insertions, 0 deletions
diff --git a/util/autoconf/ChangeLog.1 b/util/autoconf/ChangeLog.1
new file mode 100644
index 0000000..5e2f017
--- /dev/null
+++ b/util/autoconf/ChangeLog.1
@@ -0,0 +1,1920 @@
+Thu May 12 15:55:40 1994 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
+
+ * Version 1.11.
+
+ * autoconf.texi: Document filename restriction on CPP.
+
+Thu May 12 10:11:20 1994 David J. MacKenzie (djm@hill.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_OUTPUT): Treat "./Makefile" like "Makefile".
+ From Karl Berry.
+
+Tue May 10 00:08:19 1994 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_OUTPUT): Set prefix and exec_prefix if they
+ weren't set already.
+
+Sat May 7 20:06:59 1994 Noah Friedman (friedman@kropotkin.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_PROG_INSTALL): If using install.sh, add `-c'
+ to INSTALL.
+
+Sat May 7 15:36:22 1994 David J. MacKenzie (djm@aria.eng.umd.edu)
+
+ * acgeneral.m4 (AC_OUTPUT): If configuring in the source tree,
+ don't end top_srcdir with "/.".
+ * acspecific.m4 (AC_SET_MAKE): Remove temp file.
+ From John Interrante <interran@uluru.stanford.edu>.
+
+Fri May 6 15:26:48 1994 David J. MacKenzie (djm@aria.eng.umd.edu)
+
+ * acgeneral.m4 (AC_SIZEOF_TYPE): Fatal error if test program fails.
+
+Fri May 6 12:52:19 1994 David J. MacKenzie (djm@gamera.eng.umd.edu)
+
+ * acgeneral.m4 (AC_OUTPUT): Run "./config.status", not "config.status".
+ From Kevin Gallagher <kgallagh@spd.dsccc.com>.
+
+Fri May 6 00:45:29 1994 David J. MacKenzie (djm@aria.eng.umd.edu)
+
+ * acspecific.m4 (AC_WAIT3): Sleep in the parent to avoid rm
+ problems on fast machines. From david d zuhn.
+
+Thu May 5 12:51:32 1994 David J. MacKenzie (djm@gamera.eng.umd.edu)
+
+ * Version 1.10.
+
+ * Makefile.in (install): Don't install INSTALL.
+ (installcheck, install-info): New targets.
+
+Mon May 2 16:31:33 1994 David J. MacKenzie (djm@aria.eng.umd.edu)
+
+ * autoconf.sh, autoheader.sh: If M4 is an absolute file name that
+ no longer exists, use M4=m4.
+
+Mon May 2 13:06:06 1994 David J. MacKenzie (djm@burnout.eng.umd.edu)
+
+ * acspecific.m4 (AC_HAVE_POUNDBANG): Quote # in message.
+ From schwab@issan.informatik.uni-dortmund.de (Andreas Schwab).
+
+ * autoconf.texi: Document config.h.bot. Fix typo in AC_HAVE_POUNDBANG.
+
+ * acspecific.m4 (AC_PROG_CXX): Look for "cxx" (DEC C++ compiler) too.
+
+ * autoheader.sh: Fix tr string for Solaris tr.
+ Add config.h.bot if present.
+ From richard@sol.kbsi.com (Richard Henderson).
+
+Fri Apr 29 12:53:53 1994 David J. MacKenzie (djm@burnout.eng.umd.edu)
+
+ * acspecific.m4 (AC_PROG_INSTALL): Use install.sh from srcdir
+ or srcdir/.. or srcdir/../.. and never default to cp.
+
+Thu Apr 28 12:01:01 1994 David J. MacKenzie (djm@burnout.eng.umd.edu)
+
+ * acconfig.h: Add HAVE_MMAP entry.
+ * acspecific.m4 (AC_MMAP): If NBPC is not defined, use PAGESIZE.
+ From "Kaveh R. Ghazi" <ghazi@eden.rutgers.edu>.
+
+ * acgeneral.m4 (AC_OUTPUT_HEADER): For each file being created,
+ munge a copy of conftest.sed rather than the original.
+ From brook@trillium.botany.utexas.edu (Brook Milligan).
+
+Tue Apr 26 00:27:21 1994 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_LANG_C, AC_LANG_CPLUSPLUS): Remove CFLAGS and
+ CXXFLAGS from ac_cpp.
+
+Thu Apr 21 19:43:20 1994 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
+
+ * Version 1.9.
+
+ * autoconf.texi: Document special AC_FIND_XTRA ordering
+ dependencies.
+
+ * acspecific.m4 (AC_FIND_XTRA): Reorder AC_REQUIREs.
+
+ * acspecific.m4 (AC_FIND_X): AC_REQUIRE_CPP.
+
+ * acspecific.m4 (AC_PROG_LEX): Say what we set LEXLIB to.
+
+Wed Apr 20 13:17:05 1994 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_PARSEARGS): Allow . in hostnames. Use string
+ comparison on them.
+ (AC_HAVE_LIBRARY): namespace cleanup.
+
+ * autoconf.texi: Describe changes to AC_FIND_X, AC_FIND_XTRA, and
+ AC_YYTEXT_POINTER.
+
+ * acconfig.h: Replace DECLARE_YYTEXT with YYTEXT_POINTER.
+
+ * acgeneral.m4 (AC_PARSEARGS): --gas and --x set with_gas and
+ with_x to yes, not 1.
+
+ * acspecific.m4 (AC_YYTEXT_POINTER): New macro, replacing
+ AC_DECLARE_YYTEXT.
+ (AC_FIND_X): Assume no X if --without-x was given.
+ (AC_FIND_XTRA): Quotes AC_REQUIRE args. Run uname in a subshell in
+ case it's missing. Put -l options in X_EXTRA_LIBS. Print values
+ of the variables we set if verbose.
+
+Tue Apr 19 14:14:25 1994 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
+
+ * autoconf.texi: Note GNU m4 1.0 bugs.
+
+ * acspecific.m4 (AC_FIND_X_XMKMF): Set variables correctly.
+
+ * autoconf.texi: Don't @setchapternewpage odd by default. Mention
+ autoheader AC_SIZEOF_TYPE symbol generation.
+
+ * acgeneral.m4 (AC_SIZEOF_TYPE): Fix typo.
+
+ * Makefile.in (install): Don't install aclocal.m4.
+
+ * autoheader.sh: Generate entries for AC_SIZEOF_TYPE
+ automatically.
+
+Mon Apr 18 22:14:59 1994 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_SIZEOF_TYPE): Remove second arg, and generate a
+ symbol name automatically.
+
+ * autoconf.texi: Document new AC_SIZEOF_TYPE usage.
+
+ * acspecific.m4 (AC_PROG_INSTALL): Only filter out "install"
+ containing "dspmsg".
+ (AC_FIND_X_XMKMF): Fix variable names to not conflict with grep -v.
+
+ * autoconf.texi: Various small fixes.
+
+ * INSTALL: Say configure takes "awhile".
+
+Sat Apr 16 15:05:31 1994 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
+
+ * acgeneral.m4: Call AC_LANG_C in AC_PREPARE, not AC_INIT.
+
+Fri Apr 15 07:00:37 1994 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
+
+ * Version 1.8.
+
+ * acgeneral.m4: Rename ac_configure_args back to configure_args,
+ since some people have been using it.
+
+Thu Apr 14 14:45:29 1994 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
+
+ * autoconf.texi: Note that AC_ENABLE and AC_WITH arguments
+ shouldn't contain blanks, for now.
+
+Wed Apr 13 17:26:36 1994 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_SET_MAKE): Use $MAKE if defined, else "make".
+
+ * autoconf.texi: Add missing files to diagram.
+
+ * acgeneral.m4 (AC_TEST_CPP): Propogate comment about Coherent
+ lossage into configures.
+
+Sat Apr 9 17:34:29 1994 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_PARSEARGS): Unknown option is a fatal error.
+
+ * acgeneral.m4: Remove ac_ prefix from some variables set by
+ options, for consistency and backward compatibility.
+
+Fri Apr 8 13:24:29 1994 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_FIND_XTRA): Don't test for -lsocket on IRIX.
+ From Karl Berry.
+
+ * acspecific.m4 (AC_FIND_X_XMKMF, AC_FIND_X_DIRECT): Don't
+ override --x-includes and --x-libraries. Check openwin last due
+ to its bugs.
+
+ * acgeneral.m4: Add --x-includes, --x-libraries options. Document
+ them and --build, --host, --target.
+
+ * autoconf.texi: Mention --x-includes and --x-libraries.
+
+ * INSTALL: Mention --x-includes and --x-libraries.
+
+Tue Apr 5 12:46:47 1994 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
+
+ * autoconf.texi: Document top_srcdir substitution.
+
+ * acspecific.m4 (AC_PROG_INSTALL): Look for install.sh in
+ @top_srcdir@, not $srcdir.
+
+ * acgeneral.m4 (AC_OUTPUT): AC_SUBST top_srcdir. Set it.
+
+Mon Apr 4 20:13:08 1994 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
+
+ * autoconf.texi: Fix dependencies examples.
+
+ * Makefile.in: Update configuration dependencies.
+
+ * acgeneral.m4: Add back --no-create option. Make config.status
+ --recheck use it.
+
+ * autoheader.sh: Go back to doing move-if-change. (Work around in
+ dependencies by using stamp files.)
+
+Thu Mar 31 11:34:50 1994 David J. MacKenzie (djm@hill.gnu.ai.mit.edu)
+
+ * Makefile.in (autoconf, autoheader, configure): Write to $@.tmp
+ instead of to $@ directly so that after a disk full error, the
+ targets to not exist. Otherwise, a subsequent make could install
+ a corrupt (but not executable) script. From Jim Meyering.
+
+Thu Mar 31 08:22:29 1994 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
+
+ * autoconf.texi: Re-document --with argument.
+
+ * acgeneral.m4 (AC_PARSEARGS): --with can take an argument again.
+
+Wed Mar 30 20:01:57 1994 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
+
+ * autoconf.texi: Document --disable- options.
+
+ * acgeneral.m4 (AC_PARSEARGS): Add --disable-FEATURE.
+
+ * INSTALL: Mention --enable- options.
+
+Mon Mar 28 17:43:22 1994 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_PARSEARGS): Make multiple non-option args a
+ fatal error.
+
+ * acspecific.m4: Change all occurrences of $(MAKE_VAR) to
+ ${MAKE_VAR}.
+
+ * autoconf.texi (Command Line): New node. Move some descriptions
+ here from General Feature Tests. Describe --without- options.
+
+ * acgeneral.m4 (AC_PARSEARGS): Rewrite again, using ideas from the
+ GNU libc configure.in. All options that take an argument set
+ shell variables.
+ (AC_COMPILE_CHECK): Add `return' in `int' function.
+
+ * INSTALL: Fix typo.
+
+Sun Mar 27 00:44:07 1994 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_NOTICE): Don't save original args or initialize
+ options here.
+ (AC_PARSEARGS): Do them here.
+ (AC_PREPARE): Save a copy of original args here, if it hasn't been
+ done yet.
+
+Sat Mar 26 01:32:40 1994 David J. MacKenzie (djm@geech.gnu.ai.mit.edu)
+
+ * acgeneral.m4: Omit obsolete options from usage message.
+ Quote args to AC_CHECKING that contain m4 variables.
+
+ * INSTALL: Note that env can be used to set env vars.
+
+ * autoconf.texi: Document AC_SET_MAKE.
+ Note that vsprintf and vfprintf come with vprintf.
+ Note that env can be used to set env vars.
+
+ * acspecific.m4 (AC_SET_MAKE): New macro.
+ (AC_PROG_INSTALL): Find scoinst as a good install program.
+
+ * acgeneral.m4: Initialize variables set by options.
+ (AC_HAVE_HEADERS): Require cpp.
+
+ * autoconf.texi: Document AC_ENABLE and @prefix@ and @exec_prefix@
+ substitutions.
+
+ * acgeneral.m4: Recognize all the Cygnus configure options; warn
+ about other arguments. Make default value for --with "yes", not
+ "1". AC_SUBST for prefix and exec_prefix.
+ (AC_ENABLE): New macro.
+
+Thu Mar 24 18:11:00 1994 David J. MacKenzie (djm@geech.gnu.ai.mit.edu)
+
+ * INSTALL: Describe recently added configure options.
+
+ * autoconf.texi: Style cleanups. Mention config.h.top.
+
+ * autoheader.sh: Add ${config_h}.top to the output, if it's
+ present.
+
+Thu Mar 24 13:36:19 1994 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
+
+ * autoconf.sh: Remove all temp files when exiting. If m4 fails,
+ produce no output and exit with the m4 exit status.
+
+ * autoconf.texi: Document AC_PREREQ.
+
+ * acgeneral.m4 (AC_PREREQ): New macro, with some helper macros.
+
+Thu Mar 24 01:20:49 1994 David J. MacKenzie (djm@geech.gnu.ai.mit.edu)
+
+ * Makefile.in (acdatadir): New variable based on datadir, giving
+ Autoconf lib files their own subdirectory. Use it instead of
+ datadir.
+
+Wed Mar 23 22:41:54 1994 David J. MacKenzie (djm@geech.gnu.ai.mit.edu)
+
+ * autoconf.texi: Change names of nodes that describe invoking
+ configure and config.status to conform to coding standards.
+ Document --version, --help, --silent/--quiet, --verbose options to
+ configure and config.status.
+
+ * acgeneral.m4 (AC_PARSEARGS): Add --help and --version to
+ configure. Simplify getting option arguments. Complain about
+ impossible host arguments.
+ (AC_OUTPUT): Add --help and --version to config.status.
+
+Wed Mar 23 00:16:28 1994 Roland McGrath (roland@mole.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_CHECKING): Do nothing if $ac_silent is set.
+ (AC_PARSEARGS): Grok -q/--quiet/--silent and set $ac_silent.
+
+Tue Mar 22 18:28:30 1994 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
+
+ * autoconf.texi: Document AC_SIZEOF_TYPE.
+
+ * acspecific.m4 (AC_INT_16_BITS, AC_LONG_64_BITS): Mark obsolete
+ with advice to use AC_SIZEOF_TYPE instead.
+
+ * acgeneral.m4 (AC_SIZEOF_TYPE): New macro.
+
+Tue Mar 22 08:44:40 1994 David J. MacKenzie (djm@geech.gnu.ai.mit.edu)
+
+ * autoconf.texi: Describe AC_CHECKING et al.
+
+ * acspecific.m4: Use AC_CHECKING et al. where appropriate.
+
+ * acgeneral.m4 (AC_CHECKING, AC_VERBOSE, AC_ERROR, AC_WARN): New
+ macros. Use them where appropriate.
+ (AC_LANG_C, AC_LANG_CPLUSPLUS): Fix quoting of ac_cpp.
+
+ * acspecific.m4 (AC_PROG_CPP): Don't add $CFLAGS to CPP.
+ (AC_PROG_CXXCPP): Don't add $CXXFLAGS to CXXCPP.
+
+ * acgeneral.m4 (AC_OUTPUT): Don't remove VPATH lines containing
+ colons. From Jim Meyering (meyering@comco.com).
+ (AC_LANG_C): Add CFLAGS to ac_cpp.
+ (AC_LANG_CPLUSPLUS): Add CXXFLAGS to ac_cpp.
+
+Sat Mar 19 16:38:03 1994 David J. MacKenzie (djm@geech.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_LANG_RESTORE): Only emit shell code to change
+ the current language if it actually changed.
+
+ * autoconf.texi: Add info dir entry. Describe new C++ macros and
+ AC_MMAP.
+ (Language Choice): New section.
+ Add another example of dependencies.
+
+ * acspecific.m4 (AC_PROG_CXX, AC_PROG_CXXCPP, AC_REQUIRE_CPP): New
+ macros based on work by zoo@aggregate.com (david d zuhn).
+ (AC_DECLARE_YYTEXT): Use AC_REQUIRE_CPP. Warn that it's broken.
+ (AC_STDC_HEADERS): Use AC_REQUIRE_CPP.
+ (AC_MMAP): New macro from Mike Haertel and Jim Avera.
+
+ * acgeneral.m4 (AC_PARSEARGS): Check for missing arguments to
+ options. Recognize --target. Save the original args before
+ modifying them.
+ (AC_INIT): Call AC_LANG_C.
+ (AC_PREPARE): Don't save the original args here (too late).
+ (AC_LANG_C, AC_LANG_CPLUSPLUS, AC_LANG_SAVE, AC_LANG_RESTORE):
+ New macros based on work by zoo@aggregate.com (david d zuhn).
+ (AC_HEADER_EGREP, AC_PROGRAM_EGREP, AC_COMPILE_CHECK,
+ AC_TEST_PROGRAM, AC_TEST_CPP): Use AC_REQUIRE_CPP and ac_ext and
+ ac_cpp.
+
+ * autoheader.sh: Update the file even if it is unchanged, to avoid
+ foiling a Makefile rule that makes it from configure.in. If you
+ let the rule for making config.status from configure create
+ config.h from config.h.in, then an unnecessary update here will
+ not cause unneeded recompilation. Recompilation should only
+ happen if config.h is updated, which won't occur if config.h.in
+ had the same contents, even if its timestamp changed. (Ick.)
+
+ * Makefile.in (Makefile): Don't depend on config.status, to avoid
+ running config.status too many times.
+
+Fri Mar 18 00:43:21 1994 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu)
+
+ * autoconf.texi: Document AC_FIND_XTRA.
+
+ * acgeneral.m4 (AC_OUTPUT): Remove VPATH lines if srcdir=., to
+ work around Sun make bug. From Karl Berry.
+
+ Rename internal use shell variables to start with "ac_".
+
+ Trap signal 2 (SIGINT), not signal 3 (SIGQUIT), which means stop
+ without cleaning up. From eggert@twinsun.com (Paul Eggert).
+
+ * acspecific.m4 (AC_FIND_XTRA): New macro from Karl Berry
+ (karl@cs.umb.edu).
+ (AC_FIND_X, AC_ISC_POSIX): Provide self.
+
+ (AC_DECLARE_YYTEXT): Move AC_SUBST. Don't quote value of
+ DECLARE_YYTEXT. From Karl Berry.
+
+ (AC_PROG_CPP): Include $CFLAGS in CPP.
+
+ Rename internal use shell variables to start with "ac_".
+
+ * autoconf.sh, autoheader.sh: Trap signal 2 (SIGINT), not signal 3
+ (SIGQUIT), which means stop without cleaning up. From
+ eggert@twinsun.com (Paul Eggert).
+
+ * autoconf.texi: Mention shell variable prefixes.
+
+ * autoconf.texi: Work around RCS substitution in AC_REVISION
+ example.
+
+Wed Mar 16 19:55:17 1994 Noah Friedman (friedman@prep.ai.mit.edu)
+
+ * acgeneral.m4 (compile): Include $LDFLAGS.
+
+Thu Mar 10 01:27:20 1994 David J. MacKenzie (djm@churchy.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_PREPARE): Don't absolutize relative paths.
+ (AC_OUTPUT): For relative paths, prepend to $srcdir as many
+ "../" as the number of subdirectories deep the file being created is.
+
+Tue Feb 15 16:02:19 1994 Noah Friedman (friedman@prep.ai.mit.edu)
+
+ * acspecific.m4 (AC_PROG_INSTALL): Reject /sbin/install.
+
+Sun Feb 13 21:15:45 1994 Noah Friedman (friedman@prep.ai.mit.edu)
+
+ * autoconf.texi (Setting Variables, Sample configure.in): Replace
+ references to AC_UNISTD_H with AC_HAVE_HEADERS(unistd.h).
+
+Thu Feb 10 21:39:43 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_SYS_SIGLIST_DECLARED): New macro.
+
+Sat Feb 5 13:35:52 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_GETLOADAVG): Check for -lkvm separately after
+ -lutil check.
+
+Fri Feb 4 17:17:11 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_OUTPUT_HEADER): Move creation of conftest.sed
+ outside of `for' loop. We need only do this once for all the
+ output files.
+
+Fri Jan 21 16:35:00 1994 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_PROG_INSTALL_INSTALL_SH): New macro for
+ INSTALL value to use install.sh.
+ (AC_PROG_INSTALL): Use it.
+
+Thu Jan 6 16:22:25 1994 Noah Friedman (friedman@nutrimat.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_DEFINE): Use AC_QUOTE_SQUOTE instead of
+ AC_DEFINE_QUOTE on AC_VAL. From Bruno Haible
+ <haible@ma2s2.mathematik.uni-karlsruhe.de>.
+ * acgeneral.m4 (AC_DEFINE_UNQUOTED): pushdef/popdef
+ AC_QUOTE_SQUOTE instead of AC_DEFINE_QUOTE.
+
+Wed Dec 22 03:51:53 1993 Noah Friedman (friedman@nutrimat.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_DEFINE): in verbose strings, put
+ AC_DEFINE_QUOTE exprs in double quotes to avoid shell wildcard
+ expansion.
+
+ * acgeneral.m4 (AC_PROGRAM_PATH, AC_PROGRAMS_PATH): New macros.
+ * autoconf.texi (General Tests): Document them.
+
+ * configure.in: Use AC_PROGRAMS_PATH to find m4, not AC_PROGRAMS_CHECK.
+ Put `m4' in the list of progs-to-check, since we want the absolute
+ pathname for that too if we can get it.
+
+Fri Dec 17 13:44:24 1993 Noah Friedman (friedman@nutrimat.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_ALLOCA): define HAVE_ALLOCA if alloca is
+ present in system libraries.
+
+Tue Dec 14 14:53:55 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_PREPARE): Remove $ac_clean_files in traps.
+
+ * acspecific.m4 (AC_STDC_HEADERS): Check that free appears in stdlib.h.
+
+Fri Dec 10 06:35:25 1993 Noah Friedman (friedman@gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_PROG_INSTALL): Don't look for install in `.'.
+
+Wed Dec 8 12:10:59 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_FIND_X_XMKMF): Redirect stderr to /dev/null in
+ eval'd make pipeline.
+
+ * acgeneral.m4 (AC_QUOTE_SED): Quote ! as well.
+
+Mon Dec 6 23:41:05 1993 Noah Friedman (friedman@gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_PROG_CPP): Try 'cc -E -traditional-cpp' for NeXT.
+
+Thu Dec 2 02:25:39 1993 Noah Friedman (friedman@gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_PREPARE): use rm -r to remove conftest* both in
+ exit traps and at start of script.
+
+Wed Dec 1 03:22:21 1993 Noah Friedman (friedman@gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_FIND_X_DIRECT): Search for includes and libs
+ in more places.
+
+Sun Nov 28 21:57:31 1993 Noah Friedman (friedman@gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_NOTICE): Replace "this program" with "this
+ configure script" to disambiguate between configure and the
+ program it is distributed with (which can have different terms).
+
+Tue Nov 23 19:41:53 1993 Noah Friedman (friedman@gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_FIND_X_DIRECT): Use the shell variable
+ `x_direct_test_include' to choose the include file to search for.
+
+Sat Nov 20 17:58:09 1993 Noah Friedman (friedman@gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_FIND_X_DIRECT): Search for R6 includes & libs
+ in various places. Look for /usr/athena/include & /usr/athena/lib.
+ Make AC_HAVE_LIBRARY check for the library specified by the shell
+ variable `x_direct_test_library', rather than hardcoding Xt (to
+ which the shell variable now defaults).
+
+Thu Nov 18 18:17:21 1993 David J. MacKenzie (djm@kropotkin.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_OUTPUT_HEADER): Use ! instead of @ as the
+ sed substitution separator.
+
+ * install.sh: New file.
+ * Makefile.in (DISTFILES): Add it.
+ * acspecific.m4 (AC_PROG_INSTALL): Use it as the default
+ instead of cp, if it's there.
+
+Sat Nov 13 12:24:57 1993 David J. MacKenzie (djm@kropotkin.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_OUTPUT): Extend that last change to also
+ happen for .C, .cc, and .m (objc) files.
+
+Wed Nov 10 09:26:35 1993 Noah Friedman (friedman@gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_OUTPUT): When substituting .c or .h files, put
+ autoconf-added comments in '/* ... */'.
+
+Mon Nov 8 16:22:48 1993 Noah Friedman (friedman@nutrimat.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_NOTICE): Put autoconf version number in configure.
+
+Fri Nov 5 23:31:28 1993 Noah Friedman (friedman@nutrimat.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_FIND_X_XMKMF): properly quote `acfindx' rule.
+
+Fri Oct 29 21:46:57 1993 Jim Meyering (meyering@comco.com)
+
+ * acspecific.m4 (HAVE_LONG_DOUBLE): Add code to detect Stardent
+ Vistra lossage. From Kaveh R. Ghazi (ghazi@noc.rutgers.edu).
+
+Tue Oct 26 15:24:33 1993 David J. MacKenzie (djm@churchy.gnu.ai.mit.edu)
+
+ * Version 1.7.
+
+Tue Oct 19 23:49:50 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_TEST_PROGRAM): Don't remove conftest* before
+ running $2 or $3 or $4; just once at the end.
+
+Mon Oct 18 01:38:00 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_PREPARE): Echo a newline into confdefs.h so it
+ is never empty.
+
+Fri Oct 15 18:49:20 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_CONST): Added test of trivial use for broken
+ Ultrix-32 V3.1 Rev 9 vcc.
+
+Fri Oct 15 15:44:39 1993 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_OBSOLETE): New macro.
+ * acspecific.m4 (AC_UNISTD_H, AC_USG, AC_MEMORY_H): Call it.
+
+ * acspecific.m4 (AC_LONG_FILE_NAMES): Try to create files in
+ ${prefix}/lib and ${exec_prefix}/lib instead of ${prefix} and
+ ${exec_prefix}; they are more likely to be writable.
+
+ * Makefile.in (clean): Remove *.ma and *.mas, the macro index files.
+
+Tue Oct 12 16:02:52 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_RETSIGTYPE): AC_PROVIDE self.
+
+Mon Oct 11 19:09:20 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * Makefile.in (editsh): Obfuscate @M4@ and @datadir@ references so
+ configure doesn't edit them.
+
+Sun Oct 10 14:01:35 1993 Jim Meyering (meyering@comco.com)
+
+ * autoconf.sh (--help): Exit successfully.
+
+Sat Oct 9 08:29:15 1993 David J. MacKenzie (djm@kropotkin.gnu.ai.mit.edu)
+
+ * Version 1.6.
+
+ * acconfig.h (inline): New entry.
+
+ * acspecific.m4 (AC_DIR_HEADER_CHECK): Don't call opendir, in
+ case the needed libraries (e.g., -ldir on Xenix) aren't in
+ LIBS yet. From Jim Meyering (meyering@comco.com).
+
+ * acspecific.m4 (AC_PROG_LEX): Fix typo.
+
+ * acgeneral.m4 (AC_HEADER_EGREP, AC_PROGRAM_EGREP,
+ AC_COMPILE_CHECK, AC_TEST_PROGRAM, AC_TEST_CPP): Remove any
+ temporary files before doing the actions, in case they're
+ nested tests. From gray@antaire.com (Gray Watson).
+
+ * configure.in: Check for GNU m4 under several names.
+ * Makefile.in: Use that value.
+ From Franc,ois Pinard.
+
+ * acspecific.m4 (AC_STRUCT_TM): Use a member of struct tm, to
+ make sure the compiler complains if it's not defined.
+ From Bruno Haible (haible@ma2s2.mathematik.uni-karlsruhe.de).
+
+ * acspecific.m4 (AC_FIND_X_XMKMF): If libX11.a isn't in
+ USRLIBDIR, check in LIBDIR. Filter out any make verbose messages.
+
+Tue Oct 05 19:21:29 1993 Jim Meyering (meyering@comco.com)
+
+ * acspecific.m4 (AC_LONG_DOUBLE): Announce that this feature is being
+ checked even if the test is simply whether $CC is gcc.
+
+Tue Oct 5 14:23:28 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * autoheader.sh: Produce HAVE_LIBfoo for AC_HAVE_LIBRARY.
+
+Sun Oct 3 15:41:36 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_OUTPUT): Write assignment for `extrasub'; in sed
+ cmds, write "$extrasub" so configure.in can set it to do sed frobs.
+ Take second arg and write it to config.status before `exit 0'.
+
+ * acspecific.m4 (AC_CONST): Say `checking for lack of working
+ const'. That is precisely accurate.
+
+Wed Sep 22 15:47:50 1993 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu)
+
+ * acgeneral.m4: If not using GNU m4, abort.
+
+ * acgeneral.m4 (AC_PREPARE): Lose if we're not in the srcdir,
+ not if we're in it. But disable the check for now.
+
+Mon Sep 20 15:32:30 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_PREPARE): Check for $srcdir being configured,
+ diagnose and lose.
+
+ * acgeneral.m4 (AC_QUOTE_SED): Quote @ and %.
+
+ * acgeneral.m4 (AC_OUTPUT): Say "$file is unchanged" when it is.
+
+Sat Sep 18 14:32:04 1993 Ian Lance Taylor (ian@airs.com)
+
+ * acgeneral.m4: Substitute for CONFIG_FILES and CONFIG_HEADERS
+ before using them, in case they have multiple values.
+
+Fri Sep 17 14:40:20 1993 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_WAIT3): wait3 works if ru_stime is
+ nonzero, too.
+
+Thu Sep 16 15:39:53 1993 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_FIND_X_XMKMF): Code moved from AC_FIND_X.
+ (AC_FIND_X_DIRECT): New function, derived from code by Karl
+ Berry and Rob Savoye.
+ (AC_FIND_X): Call them.
+
+Wed Sep 15 19:06:46 1993 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_PREPARE): Remove confdefs* on exit with trap 0.
+ (AC_OUTPUT): Don't bother removing it.
+
+ * acgeneral.m4: Remove --no-create option; not useful.
+
+Mon Sep 13 21:54:46 1993 Paul Eggert (eggert@twinsun.com)
+
+ * autoheader.sh: Rename the temporary output to the real
+ output if their contents differ, not if their contents are identical.
+ This fixes bug introduced in Aug 30 change.
+
+Mon Sep 13 16:50:30 1993 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_OUTPUT): Run config.status with
+ CONFIG_SHELL if defined. Same for configure run from config.status.
+ Rename gen_files to CONFIG_FILES and gen_config to CONFIG_HEADERS.
+
+ * acgeneral.m4 (AC_PREPARE): Remove confdefs* in trap.
+
+Fri Sep 10 00:29:20 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_LONG_FILE_NAMES): Test /var/tmp as well.
+ In loop, skip past nonexistent dirs.
+
+ * acspecific.m4 (AC_CONST): Say "working", not "broken". We are
+ checking for a working const as opposed to a broken or absent
+ const, not for a broken const as opposed to a working one.
+
+Thu Sep 9 09:25:49 1993 Jim Meyering (meyering@comco.com)
+
+ * acspecific.m4, acconfig.h (AC_LONG_64_BITS): New macro.
+
+Wed Sep 1 18:54:12 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_PROGRAM_CHECK): Use && instead of test -a.
+
+Tue Aug 31 19:21:35 1993 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_OUTPUT_HEADER): Support generating multiple
+ .h files. From gray@antaire.com (Gray Watson).
+
+ * acspecific.m4 (AC_ALLOCA): If using alloca.o, define C_ALLOCA.
+
+ * acgeneral.m4 (compile, AC_HEADER_EGREP, AC_PROGRAM_EGREP,
+ AC_COMPILE_CHECK, AC_TEST_PROGRAM, AC_TEST_CPP): Remove $DEFS
+ from cc and cpp command lines; include "confdefs.h" in test
+ files.
+ (AC_DEFINE): Append a #define to confdefs.h.
+ Reduce duplicated code by introducing a temp variable, AC_VAL.
+
+Mon Aug 30 17:36:54 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * autoheader.sh: Don't write output if it is the same as output file.
+
+Wed Aug 25 14:14:33 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_VFORK): Check for SunOS 5.2 bug with ignoring
+ signal in parent before vfork. From eggert.
+
+Fri Aug 20 10:14:42 1993 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_PARSEARGS): Support giving values to --with
+ options. Go back to using sed for invalid test, but without
+ using '*' in the regex.
+
+Thu Aug 19 14:53:29 1993 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_LONG_FILE_NAMES): eval the args.
+
+ * acgeneral.m4 (AC_PARSEARGS): Use case instead of sed and
+ test to detect invalid package names. Remove =value from
+ --with options until we support it.
+
+Wed Aug 11 18:52:41 1993 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_FIND_X): Don't set x_includes if it's
+ /usr/include or x_libraries if it's /lib or /usr/lib.
+
+Wed Aug 11 13:00:18 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_LONG_FILE_NAMES): If we cannot write $dir, echo
+ a warning msg and continue the loop to skip that directory.
+
+ * acgeneral.m4 (AC_REVISION): Also eat double quotes.
+
+Thu Aug 5 14:55:59 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acconfig.h: Add TIME_WITH_SYS_TIME.
+
+Mon Aug 2 14:55:16 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_DECLARE_YYTEXT): \-escape "s in rhs of
+ AC_DEFINE_UNQUOTED.
+ Remove gratuitous second arg to AC_SUBST.
+
+Sun Aug 1 19:13:08 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_GETLOADAVG): Define HAVE_GETLOADAVG if we find
+ one and don't use our own getloadavg.c.
+ * acconfig.h: Add HAVE_GETLOADAVG.
+
+Sat Jul 31 17:28:48 1993 Karl Berry (karl@cs.umb.edu)
+
+ * acspecific.m4 (AC_PROG_INSTALL): Report results under -v.
+
+Fri Jul 30 18:08:30 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * autoheader.sh (syms, headers, funcs, libs): Run values through
+ sort|uniq to remove duplicates.
+
+Wed Jul 28 00:02:34 1993 David J. MacKenzie (djm@wookumz.gnu.ai.mit.edu)
+
+ * Makefile.in (config.status): Run config.status --recheck,
+ not configure.
+ (install): Remove refs to install-info until it's released,
+ because people are getting confused.
+
+ * acgeneral.m4 (AC_OUTPUT): For config.status --recheck, echo
+ the configure command line that we run.
+
+ * acspecific.m4 (AC_PROG_FLEX): Use AC_HAVE_LIBRARY.
+
+Mon Jul 26 19:11:01 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_GETLOADAVG): Check that both -lutil and -lkvm
+ exist before choosing them in hopes they will define getloadavg.
+
+ * autoheader.sh (frob): Put $2 and $3 in the expansion of
+ AC_HAVE_LIBRARY, so AC_DEFINE there is noticed.
+
+Mon Jul 26 14:21:33 1993 David J. MacKenzie (djm@wookumz.gnu.ai.mit.edu)
+
+ * acspecific.m4 (INT_16_BITS): Check the obvious way, so it
+ doesn't pick up machines with 64 bit longs.
+
+Mon Jul 26 14:01:38 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_GETLOADAVG): Check for -lelf with
+ AC_HAVE_LIBRARY instead of checking for <elf.h> with AC_HEADER_CHECK.
+
+Mon Jul 26 13:58:39 1993 David J. MacKenzie (djm@wookumz.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_SCO_INTL, AC_IRIX_SUN, AC_DYNIX_SEQ): Use
+ AC_HAVE_LIBRARY.
+
+Mon Jul 26 13:55:17 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * autoheader.sh (eval frob): Restore hairy sed use; we need it to
+ handle multi-line macro invocations.
+
+Mon Jul 26 00:50:43 1993 David J. MacKenzie (djm@wookumz.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_FIND_X): Quote the Imakefile.
+
+Sun Jul 25 08:17:11 1993 Jim Meyering (meyering@comco.com)
+
+ * acconfig.h (CRAY_STACKSEG_END): New #undef.
+
+Thu Jul 22 20:26:12 1993 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu)
+
+ * Version 1.5.
+
+ * acspecific.m4 (AC_FIND_X): Let make substitute any variables
+ in INCROOT and USRLIBDIR, instead of using sed.
+ From wojo@veritas.com (Jack Woychowski).
+
+ * acgeneral.m4 (AC_DEFINE): When printing value verbosely, use
+ double quotes and AC_DEFINE_QUOTE, like we do when assigning
+ the value, so shell variables get expanded the same way.
+
+ * acgeneral.m4 (AC_REVISION): New macro.
+ From wollman@uvm-gen.EMBA.UVM.EDU (Garrett Wollman).
+
+ * acgeneral.m4 (AC_DEFINE): Add newline before open brace.
+
+Thu Jul 22 17:07:15 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_STAT_MACROS_BROKEN): New macro.
+ * acconfig.h (STAT_MACROS_BROKEN): New #undef.
+
+Wed Jul 21 15:44:32 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_DECLARE_YYTEXT): Use AC_DEFINE_UNQUOTED so
+ shell var is replaced in rhs.
+
+Wed Jul 21 13:31:38 1993 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu)
+
+ * acconfig.h (size_t, mode_t, off_t): Added.
+ * acspecific.m4 (AC_OFF_T): New macro.
+
+Tue Jul 20 15:39:44 1993 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu)
+
+ * autoheader.sh: Put header-file.in in comment at top.
+
+ * acconfig.h (NDIR): Added.
+
+Mon Jul 19 22:10:49 1993 David J. MacKenzie (djm@churchy.gnu.ai.mit.edu)
+
+ * Makefile.in (info, dvi): New targets.
+
+Sun Jul 18 22:36:33 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * autoheader.sh (frob): Use `#' as the first line of each definition.
+ (eval frob): Totally simplify sed use to just handle "^@@@.*@@@$".
+
+Wed Jul 14 22:44:25 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acconfig.h: Restore blank lines between paragraphs.
+
+ * autoheader.sh (libs): New variable and frob to set it from
+ AC_HAVE_LIBRARY uses. Produce #undef HAVE_* for each $libs.
+
+Tue Jul 13 19:03:46 1993 David J. MacKenzie (djm@kropotkin.gnu.ai.mit.edu)
+
+ * acconfig.h: Sort the entries, like the comment says.
+
+ * acspecific.m4 (AC_GETLOADAVG): Only check for the AIX library
+ once, looking in both local and system dirs.
+ Consolidate SVR4 and Solaris cases.
+
+Mon Jul 12 20:33:36 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_GETLOADAVG): If we find sys/dg_sys_info.h, do
+ AC_HAVE_LIBRARY on -ldgc.
+
+Sun Jul 11 00:43:51 1993 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_GETLOADAVG): BSD library is -lutil, not
+ -lutils, and requires -lkvm too.
+ Check for local AIX library using AC_HAVE_LIBRARY, not
+ AC_COMPILE_CHECK.
+ Un-nest some conditionals. Stop checking once we've
+ found a way to get getloadavg.
+
+Thu Jul 8 20:21:28 1993 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu)
+
+ * Makefile.in: Remove rules for making *.conf; make
+ Autoconf's configure script semi-normally.
+
+Wed Jul 7 14:37:35 1993 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu)
+
+ * autoheader.sh (--help): Print help message to stdout and exit 0.
+ (--version): Exit after printing version number.
+ * autoconf.sh (--version): Exit after printing version number.
+
+ * acspecific.m4 (AC_LONG_DOUBLE): Make sure that long double
+ isn't smaller than double, as in Ultrix 4.[23] cc.
+
+ * acgeneral.m4 (AC_REPLACE_FUNCS): Include ctype.h in the test
+ program to get stubs.
+
+ * acspecific.m4 (AC_FIND_X): New macro.
+
+Tue Jul 6 19:15:17 1993 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_GETLOADAVG): Try ls -L first, in case
+ /dev/kmem is a symlink (as on Solaris).
+
+Wed Jun 30 22:08:22 1993 Noah Friedman (friedman@nutrimat.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_MINUS_C_MINUS_O): Remove spurious `then'.
+
+Fri Jun 25 23:16:42 1993 Paul Eggert (eggert@twinsun.com)
+
+ * acspecific.m4 (AC_CONST): Replace `p = <const char** expr>'
+ with `ccp = <const char** expr>'; the former wasn't ANSI C, and
+ was causing working compilers to be rejected.
+
+Fri Jun 25 13:26:34 1993 Noah Friedman (friedman@nutrimat.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_LONG_FILE_NAMES): Redirect rm's stderr to
+ /dev/null.
+
+Thu Jun 24 15:58:04 1993 Noah Friedman (friedman@nutrimat.gnu.ai.mit.edu)
+
+ * autoconf.sh, autoheader.sh, acgeneral.m4 (AC_PREPARE): Undo
+ change of Jun 16 1993. Only set `LANG' and `LC_ALL' to "C" if
+ already set.
+
+Sat Jun 19 00:01:51 1993 Jim Meyering (meyering@comco.com)
+
+ * acgeneral.m4: Undefine m4's `format' builtin.
+ * acspecific.m4 (AC_HAVE_POUNDBANG): Make conftest executable,
+ but not necessarily writable by group or other.
+
+Thu Jun 17 21:10:33 1993 Noah Friedman (friedman@nutrimat.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_PROG_CPP): Put double quotes around ${CC-cc},
+ not single quotes.
+ If --verbose option given, say what CPP is being set to.
+
+Wed Jun 16 17:50:00 1993 Jim Blandy (jimb@wookumz.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_PROG_CPP): Make sure that `cc -E` doesn't
+ run the program through the C compiler too. Bob Olson
+ <olson@mcs.anl.gov> says it does on the NeXT.
+
+Wed Jun 16 16:17:05 1993 Noah Friedman (friedman@nutrimat.gnu.ai.mit.edu)
+
+ * autoconf.sh, autoheader.sh, acgeneral.m4 (AC_PREPARE): Always set
+ `LANG' and `LC_ALL' environment variables to `C'.
+
+Fri Jun 11 14:29:31 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_MINUS_C_MINUS_O): Test that cc works at all,
+ and only test it for -c -o if it does.
+
+Tue Jun 8 01:47:22 1993 Paul Eggert (eggert@twinsun.com)
+
+ * acgeneral.m4 (AC_OUTPUT): The line
+ DEFS="`echo \"$DEFS\" | sed 's%[&\\\]%\\\&%g'`"
+ doesn't work in some shells, which don't allow nesting
+ \"\" inside `` inside "", and which don't unescape \\\& in the
+ expected (?) way. Also, some versions of echo interpret
+ backslashes inside $DEFS. Put $DEFS into a temporary file
+ to avoid these portability minefields.
+
+Mon Jun 7 20:11:50 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_GETLOADAVG): In setting KMEM_GROUP, use new sed
+ magic from friedman which should win with both meanings of ls -lg.
+
+Mon Jun 7 06:48:49 1993 Noah Friedman (friedman@nutrimat.gnu.ai.mit.edu)
+
+ * Makefile.in (dist): Change gzipped tar file extension to `.gz'.
+ Use explicit --gzip option to tar to make sure tar uses the right
+ compression program (or else exits from failure to understand the
+ option).
+
+ * acgeneral.m4 (AC_OUTPUT): Don't split sed expr for exec_prefix
+ across two lines, since not all versions of sed understand that.
+
+ * acspecific.m4 (AC_HAVE_POUNDBANG): Complete rewrite which doesn't
+ depend on csh.
+
+Tue Jun 1 03:06:28 1993 Noah Friedman (friedman@nutrimat.gnu.ai.mit.edu)
+
+ * Version 1.4.1 (not announced to the general public, but
+ a snapshot was put on the June '93 GNU CDROM).
+
+ * Makefile.in (dist): If ln fails (e.g. because of cross-device
+ links), mention on stdout that file is being copied.
+
+ * acgeneral.m4 (AC_PREPARE): Use `[$]*' in assignment to
+ configure_args to get shell positional args, rather than m4 args to
+ AC_PREPARE.
+ (AC_OUTPUT): Use `configure_args' in config.status
+ when invoked with --recheck, rather than $*.
+
+Mon May 31 13:12:56 1993 Paul Eggert (eggert@twinsun.com)
+
+ * acspecific.m4 (AC_LONG_FILE_NAMES): rm $dir/conftest*,
+ not conftest*.
+
+Mon May 31 04:18:18 1993 Roland McGrath (friedman@nutrimat.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_HAVE_LIBRARY): Quote libname in define.
+
+Sun May 30 19:52:24 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_SETVBUF_REVERSED): Pass (char *) main to
+ setvbuf instead of zero.
+
+Thu May 27 20:30:53 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_PREPARE): Save $* in shell var `configure_args'.
+ (AC_OUTPUT): Use $configure_args in place of $*.
+
+Wed May 26 16:19:51 1993 Noah Friedman (friedman@nutrimat.gnu.ai.mit.edu)
+
+ * autoconf.texi (AC_PROG_INSTALL): Doc fix.
+ (Automatic Remaking): Put code fragment in @example ... @end example.
+
+Mon May 24 15:46:47 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * autoheader.sh (frob): Redefine AC_CONFIG_HEADER to set shell
+ variable `config_h'.
+ (config_h): New variable, initialize to "config.h" before frobbing.
+ (final output): Write ${config_h}.in.
+
+Sat May 22 17:45:19 1993 Noah Friedman (friedman@nutrimat.gnu.ai.mit.edu)
+
+ * Version 1.4 released.
+
+Thu May 20 20:25:45 1993 Jim Blandy (jimb@geech.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_IDENTITY): New function.
+ (AC_DEFINE_UNQUOTED): Use it to fix this; due to a
+ misunderstanding of m4, this was using its first argument as
+ the definition.
+
+Thu May 20 09:21:55 1993 Jim Meyering (meyering@comco.com)
+
+ * acspecific.m4 (AC_ALLOCA) [find_stack_direction]: Return the
+ value from the recursive call. If it worked before, it was by luck.
+ From Bruno Haible <haible@ma2s2.mathematik.uni-karlsruhe.de>.
+
+Tue May 18 23:40:21 1993 Noah Friedman (friedman@nutrimat.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_STDC_HEADERS): Require AC_PROG_CPP.
+
+Mon May 17 18:01:09 1993 Karl Berry (karl@hal.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_OUTPUT): Use variables gen_files and
+ gen_config in the loop that generates the output (Make)files,
+ instead of hardwiring the filenames.
+
+Sat May 15 17:23:19 1993 Roland McGrath (roland@geech.gnu.ai.mit.edu)
+
+ * autoconf.sh: Accept `-' to mean read stdin as input.
+ * autoheader.sh: Likewise.
+
+Fri May 14 12:41:02 1993 Noah Friedman (friedman@nutrimat.gnu.ai.mit.edu)
+
+ * autoheader.sh, acspecific.m4 (AC_PREPARE): If `LANG' environment
+ variable is set, reset its value to `C'. This is so `tr [...]'
+ works more portably.
+
+Thu May 13 22:56:20 1993 Paul Eggert (eggert@twinsun.com)
+
+ * acspecific.m4 (VOID_CLOSEDIR): Test closedir instead of assuming
+ that it works. E.g. dynix closedir yields garbage, but has no
+ prototype. Presumably Xenix closedir had the same problem, so
+ stop special-casing it.
+
+Wed May 12 20:25:36 1993 Jim Meyering (meyering@comco.com)
+
+ * acconfig.h: Add HAVE_LONG_DOUBLE.
+
+Wed May 12 15:07:36 1993 Roland McGrath (roland@geech.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_DEFINE_UNQUOTED): New macro.
+
+ * acgeneral.m4 (AC_FUNC_CHECK): Include ctype.h instead of stdio.h.
+ We want it only to define __stub_* in glibc. Using stdio.h lost
+ when it contained a conflicting prototype for $1; ctype.h has fewer
+ prototypes.
+
+ * acconfig.h: Add GETGROUPS_T.
+
+ * acspecific.m4 (AC_PROG_RANLIB): Use : instead of @: for no-op.
+ Some braindead make does bizarre magical things with @ in variables.
+
+Mon May 10 14:24:27 1993 Noah Friedman (friedman@nutrimat.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_HAVE_POUNDBANG): New feature.
+
+ * acgeneral.m4 (AC_OUTPUT): Add more backslashes to character class
+ in DEFS filter (sigh).
+
+Sun May 9 14:04:31 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_DEFINE_QUOTE): No AC_QUOTE_SED (was innermost).
+ (AC_HEADER_EGREP, AC_PROGRAM_EGREP, AC_TEST_CPP): Put a \ before
+ $DEFS in string to be evalled.
+ (AC_OUTPUT): Run DEFS through a sed filter that quotes things in it
+ from sed (woo woo!) before writing it into config.status.
+
+ * acspecific.m4 (AC_ALLOCA): Use AC_PROGRAM_EGREP to test for [CRAY
+ && !CRAY2], instead of AC_TEST_PROGRAM. No need to run a program
+ for this.
+
+ * acgeneral.m4 (AC_PROGRAM_CHECK): Extract the first word of $2
+ when looking for it in PATH, so it can be a program name with args.
+ Omit default assignment if $4 is empty.
+ Only write verbose msg if $1 was set nonempty.
+ * acspecific.m4 (AC_PROG_YACC): Pass 'bison -y' (quoted like that)
+ in list to AC_PROGRAMS_CHECK. Don't test for bison later to add -y
+ flag.
+
+Sat May 8 00:23:58 1993 Jim Meyering (meyering@comco.com)
+
+ * acgeneral.m4 (AC_REPLACE_FUNCS): Add a trailing newline in
+ code for AC_COMPILE_CHECK. Otherwise it got spurious failures.
+
+ * acspecific.m4 (TIME_WITH_SYS_TIME): New macro.
+
+ * Makefile.in (dist): Depend on Makefile. Use gzip instead
+ of compress. Link files individually instead of en masse;
+ if a link fails, use `cp -f' on the losing file.
+
+ * acspecific.m4 (AC_ALLOCA): Define CRAY_STACKSEG_END (the
+ name of a function used in alloca.c) for CRAY-1, CRAY X-MP,
+ and CRAY Y-MP.
+
+Fri May 7 15:56:26 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_GETLOADAVG): Check for mach/mach.h, but don't
+ disable nlist checks if found.
+
+Fri May 7 04:59:25 1993 Noah Friedman (friedman@nutrimat.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_PROG_INSTALL): Don't look for `install' in
+ /usr/ucb.
+
+Thu May 6 20:41:35 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_FUNC_CHECK): The test program should choke on
+ #ifdef __stub___$1 as well.
+ (AC_REPLACE_FUNCS): Make the test program choke on stubs.
+
+Wed May 5 20:43:13 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * autoconf.sh ($infile existence check): Fixed test for
+ nonemptiness of $print_version to not always be true.
+
+Wed May 5 17:22:42 1993 David J. MacKenzie (djm@wookumz.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_PREFIX, AC_PROGRAM_CHECK), acspecific.m4
+ (AC_PROG_INSTALL): If IFS wasn't set initially, give it a
+ normal default value. Happens on LynxOS (x86), says
+ Pete Klammer <PKLAMMER@cudnvr.denver.colorado.edu>.
+
+Wed May 5 13:22:52 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acgeneral.m4: Undefine the `shift' builtin.
+
+ * acspecific.m4 (AC_PROG_YACC): Use AC_PROGRAMS_CHECK to check for
+ both bison and yacc, instead of two AC_PROGRAM_CHECK uses.
+
+ * autoheader.sh ($# -eq 0): Set var $tmpout to name of temp file,
+ send stdout there instead of config.h.in.
+ (just before exit): If $# -eq 0, then move $tmpout to config.h.in
+ if $status -eq 0, or remove $tmpout otherwise.
+
+ * acspecific.m4 (AC_STRCOLL): Rewritten to use a test program that
+ verifies that `strcoll' does vaguely reasonable ordering.
+
+Tue May 4 19:59:00 1993 Jim Meyering (meyering@comco.com)
+
+ * acspecific.m4 (AC_LONG_DOUBLE): Don't explicitely echo
+ `checking for long double'.
+
+Mon May 3 22:04:35 1993 Jim Meyering (meyering@comco.com)
+
+ * acspecific.m4 (AC_GETGROUPS_T): New macro.
+
+Sat May 1 22:37:55 1993 Jim Meyering (meyering@comco.com)
+
+ * acspecific.m4 (AC_LONG_DOUBLE): New macro.
+
+Wed Apr 28 15:52:42 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_PROGRAM_CHECK): Write msg under --verbose.
+
+Thu Apr 22 18:24:40 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_FUNC_CHECK): Remove spurious `#endif' line at end.
+
+ * acgeneral.m4 (AC_WITH): Fix reversed args to patsubst.
+ Test $with_FOO, not $FOO.
+
+Wed Apr 21 18:14:19 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_QUOTE_TOKEN): New macro.
+ (AC_DEFINE_QUOTE): Use it.
+
+Tue Apr 20 18:02:46 1993 Noah Friedman (friedman@nutrimat.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_DECLARE_YYTEXT): Guess name of lex output file
+ and do AC_SUBST of `LEX_OUTPUT_ROOT'.
+ Add `dnl' after calling some autoconf macros.
+
+Mon Apr 19 15:46:24 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_MINUS_C_MINUS_O): Do each compile a second time
+ after testing for the existence of the output. Some compilers
+ refuse to overwrite an existing .o file with -o, though they will
+ create one.
+
+ * acspecific.m4 (AC_DECLARE_YYTEXT): Changed lex input to two lines
+ of "%%", not just one.
+
+Sat Apr 17 17:26:12 1993 Jim Meyering (meyering@comco.com)
+
+ * acgeneral.m4 (AC_COMPILE_CHECK): Don't print `checking for ...'
+ message if first argument is empty.
+
+Sat Apr 17 01:18:41 1993 Noah Friedman (friedman@nutrimat.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_PID_T): provide self.
+ (AC_VFORK): Require AC_PID_T.
+
+Fri Apr 16 11:57:35 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_PROGRAMS_CHECK): Take optional third arg; if
+ given, use it as the default value.
+
+Thu Apr 15 16:43:45 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_REPLACE_FUNCS): Print a message under --verbose.
+
+ * acgeneral.m4 (AC_HAVE_LIBRARY): Use m4's patsubst and translit
+ instead of running sed and tr at runtime.
+
+ * acconfig.h: Add STACK_DIRECTION.
+
+Wed Apr 14 17:08:47 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_ALLOCA): If we chose alloca.c, run a test
+ program to define STACK_DIRECTION.
+
+Mon Apr 5 19:02:52 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_LONG_FILE_NAMES): Put test inside a for loop on
+ several directories: . /tmp $prefix $exec_prefix. Define
+ HAVE_LONG_FILE_NAMES iff long names win in all those directories.
+
+Sun Apr 4 18:38:23 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * Makefile.in (%.info): Removed pattern rule.
+ (autoconf.info, standards.info): New rules.
+
+ * autoconf.sh (version_only): New variable, set nonempty for
+ `autoconf --version' with no input file.
+ (output writing): No output if $version_only is set.
+
+Wed Mar 31 17:33:57 1993 Jim Meyering (meyering@comco.com)
+
+ * acspecific.m4 (AC_CONST): Uncomment and fix second AIX test.
+
+Wed Mar 31 16:58:12 1993 Roland McGrath (roland@geech.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_CONST): Rewrite first AIX XL C 1.02.0.0 test.
+ Comment out bogosity in second AIX test.
+
+Wed Mar 31 12:45:59 1993 Jim Meyering (meyering@comco.com)
+
+ * acgeneral.m4 (AC_DEFINE): Put single quotes around definition
+ that is echoed with --verbose. AC_DEFINE(MVDIR, "$(libdir)/mvdir")
+ was generating losing code.
+
+Mon Mar 29 15:44:24 1993 David J. MacKenzie (djm@kropotkin.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_STDC_HEADERS): Add a missing pair of [quotes].
+
+Mon Mar 29 14:54:00 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_DECLARE_YYTEXT): Change sed regexp so it won't
+ match other identifiers beginning with `yytext'.
+
+Sat Mar 27 00:11:16 1993 Paul Eggert (eggert@twinsun.com)
+
+ * acspecific.m4 (AC_CONST): Detect broken AIX XL C 1.2.0.0 compiler.
+
+Thu Mar 25 19:54:50 1993 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_CONST): Remove single quotes from the C
+ program; they produce shell syntax errors.
+
+ * acgeneral.m4 (AC_DEFINE): Add a newline after "}" to prevent
+ commands following on the same line of configure.in from
+ generating shell syntax errors.
+
+ * acgeneral.m4 (AC_COMPILE_CHECK): Use explicit return types
+ to avoid warnings.
+ (AC_TEST_CPP): Add parens to force redirection order.
+ (AC_OUTPUT): Allow hostname to return bogus exit status.
+ From Jean-loup Gailly <jloup@chorus.fr>.
+
+Mon Mar 22 16:53:01 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * autoconf.sh: Use $M4, not m4 explicitly.
+ (M4): If unset in env, initialize to @m4@.
+ * autoheader.sh: Likewise.
+ * Makefile.in (M4): Define new variable.
+ (autoconf.conf, %.conf): Use it.
+ (editsh): New variable: sed command to replace @datadir@; also
+ replace @M4@ with $(M4).
+ (autoconf, autoheader): Use $(editsh) instead of explicit sed command.
+
+Mon Mar 22 13:08:10 1993 Jim Meyering (meyering@comco.com)
+
+ * acspecific.m4 (AC_CONST): IBM's /bin/cc under AIX-3.2 on an rs6000
+ rejects attempts to modify *any* member of a struct that has a
+ member declared like `const int *ap[2]'.
+
+Wed Mar 17 18:08:30 1993 Noah Friedman (friedman@nutrimat.gnu.ai.mit.edu)
+
+ * autoconf.sh, autoheader.sh (MACRODIR): Variable renamed to
+ AC_MACRODIR. Don't initialize it at runtime if it is already set
+ in the environment.
+ (MACROFILES): Don't set until after options are processed.
+ (print_version): New temp variable.
+
+ * autoconf.sh, autoheader.sh: Rewrote argument parsing.
+ Added `-m', `--macrodir', `-h', `--help', and `--' options.
+ Updated usage string.
+
+ * autoconf.texi: Documented --macrodir option and its effects for
+ both scripts.
+
+Tue Mar 16 09:10:48 1993 Jim Meyering (meyering@comco.com)
+
+ * acspecific.m4 (AC_CONST): Sun's SC1.0 ANSI compiler (acc) won't
+ increment a `const int *' pointer declared through a typedef.
+
+Mon Mar 15 16:08:42 1993 Roland McGrath (roland@geech.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_PARSEARGS): Grok `--verbose' flag; set verbose=yes.
+ (AC_DEFINE): Only echo "defining $1" if $verbose is set.
+
+Sun Mar 14 18:19:21 1993 Roland McGrath (roland@geech.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_PROG_INSTALL): Choose `installbsd' if we find
+ it, in preference to `install'.
+
+ * acspecific.m4 (AC_CONST): Add a check for `const int *foo' not
+ allowing modification of FOO (not *FOO).
+
+Fri Mar 12 15:27:53 1993 Roland McGrath (roland@geech.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_OUTPUT_HEADER): Remove conftest.sh before
+ creating it.
+
+Thu Mar 11 12:57:53 1993 Roland McGrath (roland@geech.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_DEFINE): Surround defn with { and }.
+
+ * acgeneral.m4 (AC_OUTPUT_HEADER): Split up $SEDDEFS into smaller
+ chunks, since some shells can't handle large here documents.
+ We write several commands in config.status to create conftest.sed
+ in pieces.
+
+Mon Mar 8 14:40:53 1993 Roland McGrath (roland@geech.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_WITH): Don't echo anything.
+ Use the m4 patsubst fn instead of a run-time sed invocation to
+ massage $1.
+
+ * acspecific.m4 (AC_DIR_HEADER_CHECK): #include <sys/types.h>
+ before the header we are testing.
+
+ * acgeneral.m4 (AC_DEFINE): If $2 is empty, echo "defining $1 to be
+ empty", rather than "defining $1 to be ".
+
+ * acspecific.m4 (AC_DIR_HEADER_CHECK): New; subr of AC_DIR_HEADER.
+ (AC_DIR_HEADER): Use it to test for each possible header file.
+
+Tue Mar 2 01:06:25 1993 Noah Friedman (friedman@nutrimat.gnu.ai.mit.edu)
+
+ * autoheader.sh: Don't use /p1/,/p2/ construct with sed---it's not
+ portable. Handle broken AIX sed that strips \n from hold space
+ when it shouldn't. From Jun Hamano <junio@twinsun.com>.
+
+Tue Mar 02 00:08:39 1993 Jim Meyering (meyering@comco.com)
+
+ * acspecific.m4 (AC_CONST): Fix typo that caused spurious lossage
+ with /bin/cc from Irix-4. From Karl Berry.
+
+Fri Feb 26 17:14:58 1993 Roland McGrath (roland@geech.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_CONST): Add bizarre case that loses on SCO 3.2v4.
+
+Mon Feb 22 13:02:27 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_QUOTE_HERE, AC_QUOTE_SED): Change the quote
+ chars to { and } instead of nothing. Then use {} (empty quotes) to
+ separate the patsubst forms from the following dnl. Otherwise the
+ result of patsubst is pasted together with dnl and the result is
+ seen as a single token.
+
+ * acspecific.m4 (AC_MINUS_C_MINUS_O): Print msg saying what we are
+ doing before we do it.
+
+ * acgeneral.m4 (AC_PREFIX): Print out the choice made.
+ (AC_DEFINE): Print out the definition being done.
+
+ * acgeneral.m4 (AC_DEFINE_QUOTE): Add dnl at end of line.
+
+ * acspecific.m4 (AC_GETLOADAVG): Do changequote around listing of
+ /dev/kmem and sed frobbing which needs to use [ and ].
+
+Sun Feb 21 13:57:55 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * autoheader.sh: Use brackets in tr range args.
+
+ * acspecific.m4 (AC_SETVBUF_REVERSED): Make the test fail if
+ setvbuf returns nonzero.
+
+ * acspecific.m4 (AC_GETLOADAVG): If we need to install setgid,
+ figure out what group owns /dev/kmem, and set KMEM_GROUP to that.
+
+ * acspecific.m4 (AC_MINUS_C_MINUS_O): Test plain `cc' after testing
+ $CC. We want to make sure both compilers grok -c -o.
+
+Thu Feb 18 18:05:14 1993 Roland McGrath (roland@geech.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_QUOTE_{DQUOTE,SQUOTE,HERE,SED}): New macros.
+ (AC_DEFINE_{QUOTE,SEDQUOTE}): New macros; subrs of AC_DEFINE.
+ (AC_DEFINE): Use them to quote $2.
+
+Wed Feb 17 14:49:14 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_TIMEZONE): Fixed quoting in tzname check.
+ changequote inside quotes lost.
+
+Mon Feb 8 14:22:11 1993 Roland McGrath (roland@geech.gnu.ai.mit.edu)
+
+ * acconfig.h (_ALL_SOURCE): Use #ifndef; AIX compiler way too dumb.
+
+Sun Jan 31 16:39:46 1993 Roland McGrath (roland@geech.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_TIMEZONE): Put newlines before `#include ...'
+ in $defs value.
+
+Thu Jan 28 18:06:53 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acconfig.h (_ALL_SOURCE): Use "!defined (_ALL_SOURCE) ||
+ _ALL_SOURCE == 0" rather than "!_ALL_SOURCE", which bombs on the
+ AIX compiler.
+
+Mon Jan 25 12:09:43 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acconfig.h (HAVE_UNION_WAIT, SYS_SIGLIST_DECLARED): New #undef's.
+
+ * acconfig.h (_ALL_SOURCE): Surround with #if !_ALL_SOURCE.
+
+Fri Jan 22 15:08:33 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_GETLOADAVG): If /usr/local/lib/libgetloadavg.a
+ exists, add -L/usr/local/lib to LDFLAGS.
+
+Fri Jan 22 12:49:11 1993 David J. MacKenzie (djm@kropotkin.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_OUTPUT_HEADER): Only comment out the #undef NAME
+ part of the line, to avoid causing errors from existing comments.
+
+Thu Jan 21 14:50:20 1993 Roland McGrath (roland@geech.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_HAVE_LIBRARY): Use $libname in "checking for"
+ message, not $1, to avoid "checking for -l-lfoo".
+
+ * acgeneral.m4 (AC_PREPARE): In compile defn, include $CFLAGS.
+
+ * acgeneral.m4 (AC_OUTPUT): Broke AC_CONFIG_NAME writing out into:
+ (AC_OUTPUT_HEADER): New macro broken out of AC_OUTPUT.
+ Add to conftest.sed a new sed command to turn #undef's into comments.
+
+ * acgeneral.m4 (AC_OUTPUT): Use new shell variable, $maxsedlines,
+ for max number of lines to feed to one sed invocation.
+ Lower this limit to 20; UTekV 3.2e can't cope with 40.
+
+Tue Jan 19 13:21:02 1993 David J. MacKenzie (djm@kropotkin.gnu.ai.mit.edu)
+
+ * Version 1.3.
+
+Fri Jan 15 16:28:18 1993 David J. MacKenzie (djm@kropotkin.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_CONFIG_HEADER, AC_HEADER_EGREP,
+ AC_TEST_PROGRAM): Make DEFS always contain -D commands,
+ not C code.
+
+Thu Jan 14 17:05:17 1993 David J. MacKenzie (djm@kropotkin.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_GETLOADAVG): Check for -lkvm; don't assume it.
+
+Thu Jan 14 16:46:41 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * autoheader.sh (selecting $syms from $TEMPLATES): Use sed to
+ replace lines containing only blanks with empty lines.
+
+Thu Jan 14 15:15:31 1993 David J. MacKenzie (djm@kropotkin.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_MODE_T): New macro.
+
+ * acgeneral.m4 (AC_OUTPUT): Check for grep -c returning
+ nothing (AIX 3.1) as well as returning 0.
+
+Wed Jan 13 16:05:59 1993 David J. MacKenzie (djm@kropotkin.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_FUNC_CHECK): Add missing #endif.
+
+ * acgeneral.m4 (AC_OUTPUT): Use sed, not basename.
+ From Francois Pinard.
+
+Wed Jan 13 15:49:18 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_OUTPUT): Set exec_prefix to ${prefix}, not
+ $(prefix); it now works in both makefiles and shell scripts.
+
+Wed Jan 13 15:29:04 1993 David J. MacKenzie (djm@kropotkin.gnu.ai.mit.edu)
+
+ * autoheader.sh: If input is empty, don't print all of
+ acconfig.h. From Francois Pinard.
+
+ * acgeneral.m4 (AC_OUTPUT): Have config.status check all of its
+ args for validity.
+
+Tue Jan 12 11:11:45 1993 Roland McGrath (roland@geech.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_OUTPUT): Preserve whitespace around = in prefix
+ and exec_prefix assignments.
+
+ * acspecific.m4 (AC_GETLOADAVG): Values for getloadavg_missing were
+ reversed.
+
+Fri Jan 8 18:45:59 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_OUTPUT): Make config.status not complain with
+ usage msg when given no args.
+
+ * acgeneral.m4 (AC_HAVE_LIBRARY): Say "checking for -lfoo", not
+ just "checking for foo".
+
+ * acgeneral.m4 (AC_HAVE_LIBRARY): Remove excess quoting around $2
+ and $3.
+
+ * acspecific.m4 (AC_GETLOADAVG): Check for getloadavg library, both
+ a normally installed one, and one in /usr/local/lib.
+ After figuring out params for getloadavg.c, figure out whether it
+ defined LDAV_PRIVILEGED, and if so, set NEED_SETGID to true, and
+ define GETLOADAVG_PRIVILEGED.
+ * acconfig.h: Added GETLOADAVG_PRIVILEGED.
+
+Fri Jan 8 16:16:35 1993 David J. MacKenzie (djm@kropotkin.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_DEFINE, AC_OUTPUT): Restore the third sed string.
+
+ * acgeneral.m4 (AC_FUNC_CHECK): Use __stub_funcname.
+
+ * autoheader.sh: Use Autoconf version number.
+
+ * acgeneral.m4 (AC_OUTPUT): Diagnose usage errors for
+ config.status. Use grep -c to count nonempty lines instead of
+ test -s.
+
+ * acspecific.m4 (AC_GETLOADAVG): Use AC_HAVE_LIBRARY.
+
+Wed Jan 6 19:54:47 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * autoheader.sh (coverage check): Use $TEMPLATES in error msg, not
+ hard-wired "config.h".
+
+Wed Jan 6 18:24:41 1993 David J. MacKenzie (djm@kropotkin.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_OUTPUT): If AC_CONFIG_NAME, change
+ @DEFS@ to -DHAVE_CONFIG_H in Makefiles etc. Idea from Roland McGrath.
+
+ * acgeneral.m4 (AC_FUNC_CHECK): If __STUB_funcname is defined,
+ assume the function isn't present.
+
+ * acgeneral.m4 (AC_OUTPUT): Make no args to AC_OUTPUT work
+ again. From Ian Lance Taylor.
+
+ * acspecific.m4 (AC_CONST): Fix quoting problem.
+
+ * acconfig.h [const]: New addition.
+
+Thu Dec 31 17:56:18 1992 David J. MacKenzie (djm@kropotkin.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_HAVE_LIBRARY): New macro from Noah Friedman.
+
+ * acconfig.h: Renamed from config.h.
+
+ * autoheader.sh: Renamed from autohead.sh.
+ Support a local acconfig.h.
+ Use \\012 instead of \\n for tr for portability.
+
+Thu Dec 31 12:30:34 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu)
+
+ * config.h: Added #undef vfork.
+
+Tue Dec 29 14:26:43 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_COMPILE_CHECK): Use cat rather than echo to
+ create conftest.c, to avoid " problems.
+
+Fri Dec 25 15:07:06 1992 David J. MacKenzie (djm@kropotkin.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_CONST): Don't define HAVE_CONST.
+
+ * acgeneral.m4 (AC_OUTPUT, AC_DEFINE): Combine the two sed
+ commands for #undef lines.
+ * acgeneral.m4 (AC_PROGRAM_EGREP, AC_TEST_PROGRAM,
+ AC_TEST_CPP, AC_OUTPUT), acspecific.m4 (AC_PROG_CC): Put >
+ before << when using both, to avoid HP-UX sh bug.
+
+Wed Dec 23 20:47:53 1992 David J. MacKenzie (djm@kropotkin.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_PARSEARGS): Use if, not &&, for --with.
+ From Jan Brittenson.
+
+Mon Dec 21 17:13:57 1992 David J. MacKenzie (djm@kropotkin.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_OUTPUT): Use sed instead of head and tail.
+ Trap to remove the temp files.
+
+ * acgeneral.m4 (AC_OUTPUT): Quote DEFS assignment.
+ From Ian Lance Taylor.
+
+Mon Dec 21 14:27:44 1992 Jim Meyering (meyering@comco.com)
+
+ * acspecific.m4 (AC_STDC_HEADERS): Make sure ctype.h macros
+ are ANSI. Nest tests so we don't need shell temporary variable.
+
+Sun Dec 20 18:12:33 1992 Roland McGrath (roland@albert.gnu.ai.mit.edu)
+
+ * Makefile.in (%.h: %.in): New rule using autohead.
+ (all): Do autohead.
+ (install): Install autohead and config.h.
+ (autohead): New rule.
+ (DISTFILES): Added autohead.sh.
+ * autohead: New script.
+
+Fri Dec 18 00:21:23 1992 David J. MacKenzie (djm@kropotkin.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_HAVE_FUNCS, AC_HAVE_HEADERS): Change method
+ of tr quoting to keep old shells happy. From Ian Lance Taylor.
+
+ * acgeneral.m4 (AC_DEFINE): Add to SEDDEFS.
+ (AC_OUTPUT): Use sed instead of awk.
+ From Ian Lance Taylor.
+
+Mon Dec 14 14:33:29 1992 David J. MacKenzie (djm@kropotkin.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_STDC_HEADERS): Check for string.h
+ declaring memchr.
+
+ * acgeneral.m4 (AC_NOTICE): Fix comment.
+
+Fri Dec 11 17:59:23 1992 David J. MacKenzie (djm@kropotkin.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_ALLOCA): Don't use libPW; it causes too
+ much trouble.
+
+Wed Dec 9 14:04:30 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu)
+
+ * config.h: Added HAVE_SYS_WAIT, HAVE_WAITPID, SVR4, UMAX,
+ [ugp]id_t, UMAX4_3, DGUX.
+
+Thu Dec 3 13:37:17 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_PROG_INSTALL): Ignore AFS install.
+ From James Clark, jjc@jclark.com.
+
+Tue Nov 24 07:47:45 1992 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_PROG_LEX, AC_DECLARE_YYTEXT, AC_VFORK, AC_WAIT3,
+ AC_INT_16_BITS, AC_WORDS_BIGENDIAN, AC_ARG_ARRAY): End with a newline.
+
+ * acspecific.m4 (AC_DIR_HEADER): If ndir.h exists and the other
+ choices don't, define NDIR.
+
+Sat Nov 21 00:14:51 1992 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_RETSIGTYPE): Instead of grepping for the signal
+ declaration, try redeclaring it and see if we get an error.
+ Always define RETSIGTYPE, not just if it's int.
+ From Ian Lance Taylor.
+
+Fri Nov 20 17:06:09 1992 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_DEFINE): Only put -D option in quotes if it
+ actually contains blanks.
+
+Thu Nov 19 17:18:40 1992 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_PARSEARGS): Set a shell var for --with-*.
+ (AC_WITH): New macro.
+
+ * acspecific.m4 (AC_CONST): If const works, define HAVE_CONST.
+
+ * acspecific.m4 (AC_ALLOCA): Don't use libPW on HP-UX.
+
+Wed Nov 18 17:36:08 1992 Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_DEFINE): When writing a -D with a value,
+ surround it with 's so the value can contain spaces.
+
+Thu Nov 12 22:49:35 1992 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_PROG_CC): Don't add -O to CC if GNU C.
+ (-O2, or nothing, might be more appropriate.)
+
+Sun Nov 8 23:33:23 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com)
+
+ * acspecific.m4 (AC_GETLOADAVG): Check for dwarf.h for general
+ svr4, then elf.h for Solaris 2, which needs additional libraries.
+
+Thu Nov 12 22:18:54 1992 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_PARSEARGS): --exec_prefix -> --exec-prefix.
+
+Tue Nov 10 16:15:10 1992 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu)
+
+ * acgeneral.m4: undef m4 `include' builtin.
+
+ * acspecific.m4 (AC_STDC_HEADERS): Don't test for limits.h
+ due to Ultrix conflict with float.h.
+
+Thu Oct 29 16:16:11 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_PARSEARGS, AC_PREPARE): New macros, broken out
+ parts of AC_INIT.
+ (AC_INIT): Use them.
+
+Thu Oct 22 20:48:12 1992 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_INSTALL): Comment out arg to `:'.
+ AIX doesn't like it.
+
+Wed Oct 14 12:41:02 1992 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu)
+
+ * Version 1.2.
+
+ * acspecific.m4 (AC_INSTALL): Avoid the AIX install script.
+
+ * acspecific.m4 (AC_RESTARTABLE_SYSCALLS): Wait for child if
+ sys calls are not restarted, to avoid leaving the child still
+ running. From Ian Lance Taylor.
+
+Tue Oct 13 15:43:56 1992 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_CONST): Add more tests for brokenness.
+ From Jim Meyering.
+
+ * acgeneral.m4: Use % instead of ? to avoid shell variable expansion.
+
+Fri Oct 2 06:55:05 1992 David J. MacKenzie (djm@goldman.gnu.ai.mit.edu)
+
+ * acgeneral.m4: Use ? instead of , to separate parts of sed arg.
+
+Mon Sep 14 12:33:41 1992 David J. MacKenzie (djm@apple-gunkies.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_STDC_HEADERS): Also check for float.h.
+
+ * acspecific.m4 (AC_TIMEZONE): Protect [] from being quotes.
+
+Thu Sep 10 17:12:10 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_OUTPUT): Include the hostname in config.status.
+
+ * acgeneral.m4 (AC_OUTPUT): Use a separate flag in the awk
+ script instead of checking for non-empty values, so things
+ like defining const as empty work. From
+ Steve Emmerson <steve@unidata.ucar.edu>.
+
+Fri Aug 28 18:51:13 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_INIT): If there's no path on $0, use '.'.
+
+Thu Aug 27 16:15:14 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
+
+ * config.h: New file.
+
+ * acgeneral.m4 (AC_INIT): Look for source files in the
+ directory containing `configure', if not given explicitly.
+
+ * acspecific.m4 (AC_TIMEZONE): Adjust tzname decl for RS6000.
+
+ * acspecific.m4 (AC_GETLOADAVG): Don't use double quotes in
+ the test program.
+
+Thu Aug 27 15:26:49 1992 Roland McGrath (roland@wookumz.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_GETLOADAVG): Don't check nlist.h if we found
+ one of specific things.
+
+Mon Aug 24 16:22:45 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
+
+ * Version 1.1.
+
+ * acspecific.m4 (AC_TIMEZONE): Include time.h. Don't
+ declare tzname if it's a macro. From Jim Meyering.
+
+Fri Aug 21 14:12:35 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_ALLOCA): Check whether the alloca defined by
+ alloca.h works when given a non-constant argument.
+
+ * acspecific.m4 (AC_GETLOADAVG): Define NLIST_STRUCT and
+ NLIST_NAME_UNION if appropriate.
+
+ * acgeneral.m4 (AC_OUTPUT): If no args are given, omit the loop to
+ produce output files.
+
+ * acgeneral.m4 (AC_TEST_PROGRAM): Add a call to exit to try to
+ suppress core dumped message. From Ian Lance Taylor.
+
+ * acgeneral.m4 (AC_PREFIX): Only print the message if prefix
+ hasn't been set. From James Clark.
+
+ * acspecific.m4 (AC_SIZE_T, AC_UID_T, AC_PID_T,
+ AC_RETSIGTYPE): Print a message saying what it's checking for.
+ (AC_SIZE_T): Define size_t to be unsigned, not int, for
+ ANSI-friendliness.
+
+ * acspecific.m4 (AC_GETLOADAVG): Just check for elf.h, not
+ dwarf.h too.
+
+ * autoconf.sh: Exit with status 1 if there are unresolved macros.
+ Isolate the pattern to make adding other prefixes easy.
+ Look for aclocal.m4 in . as well as MACRODIR.
+
+Tue Aug 18 16:35:46 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_STRCOLL): New macro.
+
+Tue Aug 18 15:22:45 1992 Roland McGrath (roland@geech.gnu.ai.mit.edu)
+
+ * acspecific.m4 (AC_GETLOADAVG): elf.h implies SVR4.
+
+Mon Jul 27 14:20:32 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_TEST_PROGRAM): Check for cross-compiling
+ was missing "test -n". From Ian Lance Taylor.
+
+Sun Jul 26 16:25:19 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
+
+ * acgeneral.m4 (AC_SUBST): Support multiple substitutions in a
+ line.
+
+Mon Jul 20 01:08:01 1992 David J. MacKenzie (djm@nutrimat.gnu.ai.mit.edu)
+
+ * Version 1.0.
diff --git a/util/autoconf/TODO b/util/autoconf/TODO
new file mode 100644
index 0000000..89c3229
--- /dev/null
+++ b/util/autoconf/TODO
@@ -0,0 +1,102 @@
+-*- outline -*-
+
+Things it might be nice to do someday:
+
+------------------------------------------------------------------------------
+
+* Make AC_CHECK_LIB check whether the function is already available
+ before checking for the library. This might involve adding another
+ kind of cache variable to indicate whether a given function needs a
+ given library. The current ac_cv_func_ variables are intended to
+ indicate whether the function is in the default libraries, but
+ actually also take into account whatever value LIBS had when they
+ were checked for.
+
+------------------------------------------------------------------------------
+
+* Add AC_PROG_CC_POSIX to replace the current ad-hoc macros for AIX,
+ Minix, ISC, etc.
+
+------------------------------------------------------------------------------
+
+* Use AC_EGREP_CPP instead of AC_TRY_LINK to detect structures and members.
+
+------------------------------------------------------------------------------
+
+* Make AC_CHECK_FUNC[S] automatically use any particular macros for the
+ listed functions.
+
+------------------------------------------------------------------------------
+
+* Support creating both config.h and DEFS in the same configure.
+
+------------------------------------------------------------------------------
+
+* Select the right CONFIG_SHELL automatically (for Ultrix, Lynx especially.)
+
+------------------------------------------------------------------------------
+
+* Doc: Add concept index.
+
+------------------------------------------------------------------------------
+
+* Doc: Centralize information on POSIX, MS-DOS, cross-compiling, and
+ other important topics.
+
+------------------------------------------------------------------------------
+
+* Split up AC_SUBST substitutions using a loop to accomodate shells
+ with severely limited here document sizes, if it turns out to be a problem.
+ I'm not sure whether the limit is on lines or bytes; if bytes, it
+ will be less of a problem than it was with the long lines used for
+ creating a header file.
+ There has also been a report that HPUX and OSF/1 seds only allow 100
+ commands.
+
+------------------------------------------------------------------------------
+
+* Allow [ and ] in egrep patterns and AC_DEFINE args.
+
+------------------------------------------------------------------------------
+
+* Add a Makefile generator that supports the standard GNU targets.
+ (Being worked on.)
+
+------------------------------------------------------------------------------
+
+* Mike Haertel's suggestions:
+
+** Provide files containing decls for alloca, strings, etc.
+
+** Cross compiling:
+
+*** Error messages include instructions for overriding defaults using
+config.site.
+
+*** Distribute a config.site corresponding to a hypothetical bare POSIX system with c89.
+
+*** Cache consistency checking: ignore cache if environment
+(CC or PATH) differs.
+
+** Site defaults:
+
+*** Convention for consistency checking of env vars and options in config.site so config.site can print obnoxious messages if it doesn't like options or env vars that users use.
+
+------------------------------------------------------------------------------
+
+* autoscan: Tell the files that caused inclusion of each macro,
+in a dnl comment. (Seems to be hard.)
+
+------------------------------------------------------------------------------
+
+* Look at user contributed macros: prototypes, IEEE double precision math,
+shared libraries, various other things.
+
+------------------------------------------------------------------------------
+
+* Test suite: more things to test:
+** That the shell scripts produce correct output on some simple data.
+** Configuration header files. That autoheader does the right thing,
+ and so does AC_CONFIG_HEADER when autoconf is run.
+
+------------------------------------------------------------------------------
diff --git a/util/autoconf/acfunctions b/util/autoconf/acfunctions
new file mode 100644
index 0000000..5947ba6
--- /dev/null
+++ b/util/autoconf/acfunctions
@@ -0,0 +1,58 @@
+# Ones that have their own macros.
+major AC_HEADER_MAJOR
+minor AC_HEADER_MAJOR
+makedev AC_HEADER_MAJOR
+bcopy AC_HEADER_STDC
+bcmp AC_HEADER_STDC
+bzero AC_HEADER_STDC
+ioctl AC_PROG_GCC_TRADITIONAL
+memchr AC_HEADER_STDC
+memcpy AC_HEADER_STDC
+memcmp AC_FUNC_MEMCMP
+memmove AC_HEADER_STDC
+memset AC_HEADER_STDC
+index AC_HEADER_STDC
+rindex AC_HEADER_STDC
+getgroups AC_TYPE_GETGROUPS
+signal AC_TYPE_SIGNAL
+alloca AC_FUNC_ALLOCA
+getloadavg AC_FUNC_GETLOADAVG
+mmap AC_FUNC_MMAP
+setvbuf AC_FUNC_SETVBUF_REVERSED
+strcoll AC_FUNC_STRCOLL
+utime AC_FUNC_UTIME_NULL
+vfork AC_FUNC_VFORK
+vprintf AC_FUNC_VPRINTF
+vfprintf AC_FUNC_VPRINTF
+vsprintf AC_FUNC_VPRINTF
+wait3 AC_FUNC_WAIT3
+
+# Others.
+fnmatch AC_CHECK_FUNCS
+ftime AC_CHECK_FUNCS
+gethostname AC_CHECK_FUNCS
+gettimeofday AC_CHECK_FUNCS
+getusershell AC_CHECK_FUNCS
+getcwd AC_CHECK_FUNCS
+getwd AC_CHECK_FUNCS
+mkdir AC_CHECK_FUNCS
+mkfifo AC_CHECK_FUNCS
+mktime AC_CHECK_FUNCS
+putenv AC_CHECK_FUNCS
+re_comp AC_CHECK_FUNCS
+regcmp AC_CHECK_FUNCS
+regcomp AC_CHECK_FUNCS
+rmdir AC_CHECK_FUNCS
+select AC_CHECK_FUNCS
+socket AC_CHECK_FUNCS
+stime AC_CHECK_FUNCS
+strcspn AC_CHECK_FUNCS
+strdup AC_CHECK_FUNCS
+strerror AC_CHECK_FUNCS
+strftime AC_CHECK_FUNCS
+strspn AC_CHECK_FUNCS
+strstr AC_CHECK_FUNCS
+strtod AC_CHECK_FUNCS
+strtol AC_CHECK_FUNCS
+strtoul AC_CHECK_FUNCS
+uname AC_CHECK_FUNCS
diff --git a/util/autoconf/acheaders b/util/autoconf/acheaders
new file mode 100644
index 0000000..0363a38
--- /dev/null
+++ b/util/autoconf/acheaders
@@ -0,0 +1,27 @@
+# Ones that have their own macros.
+dirent.h AC_HEADER_DIRENT
+sys/ndir.h AC_HEADER_DIRENT
+sys/dir.h AC_HEADER_DIRENT
+ndir.h AC_HEADER_DIRENT
+sys/mkdev.h AC_HEADER_MAJOR
+string.h AC_HEADER_STDC
+strings.h AC_HEADER_STDC
+stdlib.h AC_HEADER_STDC
+stddef.h AC_HEADER_STDC
+stdarg.h AC_HEADER_STDC
+float.h AC_HEADER_STDC
+sys/wait.h AC_HEADER_SYS_WAIT
+X11/Xlib.h AC_PATH_X
+
+# Others.
+fcntl.h AC_CHECK_HEADERS
+limits.h AC_CHECK_HEADERS
+paths.h AC_CHECK_HEADERS
+sgtty.h AC_CHECK_HEADERS
+sys/file.h AC_CHECK_HEADERS
+sys/ioctl.h AC_CHECK_HEADERS
+sys/time.h AC_CHECK_HEADERS
+sys/window.h AC_CHECK_HEADERS
+syslog.h AC_CHECK_HEADERS
+termio.h AC_CHECK_HEADERS
+unistd.h AC_CHECK_HEADERS
diff --git a/util/autoconf/acidentifiers b/util/autoconf/acidentifiers
new file mode 100644
index 0000000..a7979c0
--- /dev/null
+++ b/util/autoconf/acidentifiers
@@ -0,0 +1,22 @@
+sys_siglist AC_DECL_SYS_SIGLIST
+mode_t AC_TYPE_MODE_T
+off_t AC_TYPE_OFF_T
+pid_t AC_TYPE_PID_T
+size_t AC_TYPE_SIZE_T
+uid_t AC_TYPE_UID_T
+gid_t AC_TYPE_UID_T
+S_ISDIR AC_HEADER_STAT
+S_ISREG AC_HEADER_STAT
+S_ISCHR AC_HEADER_STAT
+S_ISBLK AC_HEADER_STAT
+S_ISFIFO AC_HEADER_STAT
+S_ISLNK AC_HEADER_STAT
+S_ISSOCK AC_HEADER_STAT
+st_blksize AC_STRUCT_ST_BLKSIZE
+st_blocks AC_STRUCT_ST_BLOCKS
+st_rdev AC_STRUCT_ST_RDEV
+timeval AC_HEADER_TIME
+tm AC_STRUCT_TM
+tm_zone AC_STRUCT_TIMEZONE
+const AC_C_CONST
+inline AC_C_INLINE
diff --git a/util/autoconf/acmakevars b/util/autoconf/acmakevars
new file mode 100644
index 0000000..721b79b
--- /dev/null
+++ b/util/autoconf/acmakevars
@@ -0,0 +1,11 @@
+LN AC_PROG_LN_S
+AWK AC_PROG_AWK
+CC AC_PROG_CC
+CPP AC_PROG_CPP
+CXX AC_PROG_CXX
+INSTALL AC_PROG_INSTALL
+LEX AC_PROG_LEX
+RANLIB AC_PROG_RANLIB
+YACC AC_PROG_YACC
+BISON AC_PROG_YACC
+MAKE AC_PROG_MAKE_SET
diff --git a/util/autoconf/acoldnames.m4 b/util/autoconf/acoldnames.m4
new file mode 100644
index 0000000..39e20b7
--- /dev/null
+++ b/util/autoconf/acoldnames.m4
@@ -0,0 +1,79 @@
+dnl Map old names of Autoconf macros to new regularized names.
+dnl This file is part of Autoconf.
+dnl Copyright (C) 1994 Free Software Foundation, Inc.
+dnl
+dnl This program is free software; you can redistribute it and/or modify
+dnl it under the terms of the GNU General Public License as published by
+dnl the Free Software Foundation; either version 2, or (at your option)
+dnl any later version.
+dnl
+dnl This program is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+dnl GNU General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU General Public License
+dnl along with this program; if not, write to the Free Software
+dnl Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+dnl
+dnl General macros.
+dnl
+define(AC_WARN, [indir([AC_MSG_WARN], $@)])dnl
+define(AC_ERROR, [indir([AC_MSG_ERROR], $@)])dnl
+AC_DEFUN(AC_PROGRAM_CHECK, [indir([AC_CHECK_PROG], $@)])dnl
+AC_DEFUN(AC_PROGRAM_PATH, [indir([AC_PATH_PROG], $@)])dnl
+AC_DEFUN(AC_PROGRAMS_CHECK, [indir([AC_CHECK_PROGS], $@)])dnl
+AC_DEFUN(AC_PROGRAMS_PATH, [indir([AC_PATH_PROGS], $@)])dnl
+AC_DEFUN(AC_PREFIX, [indir([AC_PREFIX_PROGRAM], $@)])dnl
+AC_DEFUN(AC_HEADER_EGREP, [indir([AC_EGREP_HEADER], $@)])dnl
+AC_DEFUN(AC_PROGRAM_EGREP, [indir([AC_EGREP_CPP], $@)])dnl
+AC_DEFUN(AC_TEST_PROGRAM, [indir([AC_TRY_RUN], $@)])dnl
+AC_DEFUN(AC_TEST_CPP, [indir([AC_TRY_CPP], $@)])dnl
+AC_DEFUN(AC_HEADER_CHECK, [indir([AC_CHECK_HEADER], $@)])dnl
+AC_DEFUN(AC_FUNC_CHECK, [indir([AC_CHECK_FUNC], $@)])dnl
+AC_DEFUN(AC_HAVE_FUNCS, [indir([AC_CHECK_FUNCS], $@)])dnl
+AC_DEFUN(AC_HAVE_HEADERS, [indir([AC_CHECK_HEADERS], $@)])dnl
+AC_DEFUN(AC_SIZEOF_TYPE, [indir([AC_CHECK_SIZEOF], $@)])dnl
+dnl
+dnl Specific macros.
+dnl
+AC_DEFUN(AC_GCC_TRADITIONAL, [indir([AC_PROG_GCC_TRADITIONAL])])dnl
+AC_DEFUN(AC_MINUS_C_MINUS_O, [indir([AC_PROG_CC_C_O])])dnl
+AC_DEFUN(AC_SET_MAKE, [indir([AC_PROG_MAKE_SET])])dnl
+AC_DEFUN(AC_YYTEXT_POINTER, [indir([AC_DECL_YYTEXT])])dnl
+AC_DEFUN(AC_LN_S, [indir([AC_PROG_LN_S])])dnl
+AC_DEFUN(AC_STDC_HEADERS, [indir([AC_HEADER_STDC])])dnl
+AC_DEFUN(AC_MAJOR_HEADER, [indir([AC_HEADER_MAJOR])])dnl
+AC_DEFUN(AC_STAT_MACROS_BROKEN, [indir([AC_HEADER_STAT])])dnl
+AC_DEFUN(AC_SYS_SIGLIST_DECLARED, [indir([AC_DECL_SYS_SIGLIST])])dnl
+AC_DEFUN(AC_GETGROUPS_T, [indir([AC_TYPE_GETGROUPS])])dnl
+AC_DEFUN(AC_UID_T, [indir([AC_TYPE_UID_T])])dnl
+AC_DEFUN(AC_SIZE_T, [indir([AC_TYPE_SIZE_T])])dnl
+AC_DEFUN(AC_PID_T, [indir([AC_TYPE_PID_T])])dnl
+AC_DEFUN(AC_OFF_T, [indir([AC_TYPE_OFF_T])])dnl
+AC_DEFUN(AC_MODE_T, [indir([AC_TYPE_MODE_T])])dnl
+AC_DEFUN(AC_RETSIGTYPE, [indir([AC_TYPE_SIGNAL])])dnl
+AC_DEFUN(AC_MMAP, [indir([AC_FUNC_MMAP])])dnl
+AC_DEFUN(AC_VPRINTF, [indir([AC_FUNC_VPRINTF])])dnl
+AC_DEFUN(AC_VFORK, [indir([AC_FUNC_VFORK])])dnl
+AC_DEFUN(AC_WAIT3, [indir([AC_FUNC_WAIT3])])dnl
+AC_DEFUN(AC_ALLOCA, [indir([AC_FUNC_ALLOCA])])dnl
+AC_DEFUN(AC_GETLOADAVG, [indir([AC_FUNC_GETLOADAVG])])dnl
+AC_DEFUN(AC_UTIME_NULL, [indir([AC_FUNC_UTIME_NULL])])dnl
+AC_DEFUN(AC_STRCOLL, [indir([AC_FUNC_STRCOLL])])dnl
+AC_DEFUN(AC_SETVBUF_REVERSED, [indir([AC_FUNC_SETVBUF_REVERSED])])dnl
+AC_DEFUN(AC_TIME_WITH_SYS_TIME, [indir([AC_HEADER_TIME])])dnl
+AC_DEFUN(AC_TIMEZONE, [indir([AC_STRUCT_TIMEZONE])])dnl
+AC_DEFUN(AC_ST_BLOCKS, [indir([AC_STRUCT_ST_BLOCKS])])dnl
+AC_DEFUN(AC_ST_BLKSIZE, [indir([AC_STRUCT_ST_BLKSIZE])])dnl
+AC_DEFUN(AC_ST_RDEV, [indir([AC_STRUCT_ST_RDEV])])dnl
+AC_DEFUN(AC_CROSS_CHECK, [indir([AC_C_CROSS])])dnl
+AC_DEFUN(AC_CHAR_UNSIGNED, [indir([AC_C_CHAR_UNSIGNED])])dnl
+AC_DEFUN(AC_LONG_DOUBLE, [indir([AC_C_LONG_DOUBLE])])dnl
+AC_DEFUN(AC_WORDS_BIGENDIAN, [indir([AC_C_BIGENDIAN])])dnl
+AC_DEFUN(AC_INLINE, [indir([AC_C_INLINE])])dnl
+AC_DEFUN(AC_CONST, [indir([AC_C_CONST])])dnl
+AC_DEFUN(AC_LONG_FILE_NAMES, [indir([AC_SYS_LONG_FILE_NAMES])])dnl
+AC_DEFUN(AC_RESTARTABLE_SYSCALLS, [indir([AC_SYS_RESTARTABLE_SYSCALLS])])dnl
+AC_DEFUN(AC_FIND_X, [indir([AC_PATH_X])])dnl
+AC_DEFUN(AC_FIND_XTRA, [indir([AC_PATH_XTRA])])dnl
diff --git a/util/autoconf/acprograms b/util/autoconf/acprograms
new file mode 100644
index 0000000..be237e3
--- /dev/null
+++ b/util/autoconf/acprograms
@@ -0,0 +1,18 @@
+ln AC_PROG_LN_S
+awk AC_PROG_AWK
+nawk AC_PROG_AWK
+gawk AC_PROG_AWK
+mawk AC_PROG_AWK
+cc AC_PROG_CC
+gcc AC_PROG_CC
+cpp AC_PROG_CPP
+CC AC_PROG_CXX
+g++ AC_PROG_CXX
+install AC_PROG_INSTALL
+lex AC_PROG_LEX
+flex AC_PROG_LEX
+ranlib AC_PROG_RANLIB
+yacc AC_PROG_YACC
+byacc AC_PROG_YACC
+bison AC_PROG_YACC
+make AC_PROG_MAKE_SET
diff --git a/util/autoconf/autoconf.info-5 b/util/autoconf/autoconf.info-5
new file mode 100644
index 0000000..b18e2b3
--- /dev/null
+++ b/util/autoconf/autoconf.info-5
@@ -0,0 +1,607 @@
+This is Info file autoconf.info, produced by Makeinfo-1.55 from the
+input file ./autoconf.texi.
+
+START-INFO-DIR-ENTRY
+* Autoconf: (autoconf). Create source code configuration scripts.
+END-INFO-DIR-ENTRY
+
+ This file documents the GNU Autoconf package for creating scripts to
+configure source code packages using templates and an `m4' macro
+package.
+
+ Copyright (C) 1992, 1993, 1994 Free Software Foundation, Inc.
+
+ Permission is granted to make and distribute verbatim copies of this
+manual provided the copyright notice and this permission notice are
+preserved on all copies.
+
+ Permission is granted to copy and distribute modified versions of
+this manual under the conditions for verbatim copying, provided that
+the entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+ Permission is granted to copy and distribute translations of this
+manual into another language, under the above conditions for modified
+versions, except that this permission notice may be stated in a
+translation approved by the Foundation.
+
+
+File: autoconf.info, Node: Old Macro Names, Next: Environment Variable Index, Prev: History, Up: Top
+
+Old Macro Names
+***************
+
+ In version 2 of Autoconf, most of the macros were renamed to use a
+more uniform and descriptive naming scheme. Here are the old names of
+the macros that were renamed, followed by the current names of those
+macros. Although the old names are still accepted by the `autoconf'
+program for backward compatibility, the old names are considered
+obsolete. *Note Macro Names::, for a description of the new naming
+scheme.
+
+`AC_ALLOCA'
+ `AC_FUNC_ALLOCA'
+
+`AC_ARG_ARRAY'
+ removed because of limited usefulness
+
+`AC_CHAR_UNSIGNED'
+ `AC_C_CHAR_UNSIGNED'
+
+`AC_CONST'
+ `AC_C_CONST'
+
+`AC_CROSS_CHECK'
+ `AC_C_CROSS'
+
+`AC_ERROR'
+ `AC_MSG_ERROR'
+
+`AC_FIND_X'
+ `AC_PATH_X'
+
+`AC_FIND_XTRA'
+ `AC_PATH_XTRA'
+
+`AC_FUNC_CHECK'
+ `AC_CHECK_FUNC'
+
+`AC_GCC_TRADITIONAL'
+ `AC_PROG_GCC_TRADITIONAL'
+
+`AC_GETGROUPS_T'
+ `AC_TYPE_GETGROUPS'
+
+`AC_GETLOADAVG'
+ `AC_FUNC_GETLOADAVG'
+
+`AC_HAVE_FUNCS'
+ `AC_CHECK_FUNCS'
+
+`AC_HAVE_HEADERS'
+ `AC_CHECK_HEADERS'
+
+`AC_HAVE_POUNDBANG'
+ `AC_SYS_INTERPRETER' (different calling convention)
+
+`AC_HEADER_CHECK'
+ `AC_CHECK_HEADER'
+
+`AC_HEADER_EGREP'
+ `AC_EGREP_HEADER'
+
+`AC_INLINE'
+ `AC_C_INLINE'
+
+`AC_LN_S'
+ `AC_PROG_LN_S'
+
+`AC_LONG_DOUBLE'
+ `AC_C_LONG_DOUBLE'
+
+`AC_LONG_FILE_NAMES'
+ `AC_SYS_LONG_FILE_NAMES'
+
+`AC_MAJOR_HEADER'
+ `AC_HEADER_MAJOR'
+
+`AC_MINUS_C_MINUS_O'
+ `AC_PROG_CC_C_O'
+
+`AC_MMAP'
+ `AC_FUNC_MMAP'
+
+`AC_MODE_T'
+ `AC_TYPE_MODE_T'
+
+`AC_OFF_T'
+ `AC_TYPE_OFF_T'
+
+`AC_PID_T'
+ `AC_TYPE_PID_T'
+
+`AC_PREFIX'
+ `AC_PREFIX_PROGRAM'
+
+`AC_PROGRAMS_CHECK'
+ `AC_CHECK_PROGS'
+
+`AC_PROGRAMS_PATH'
+ `AC_PATH_PROGS'
+
+`AC_PROGRAM_CHECK'
+ `AC_CHECK_PROG'
+
+`AC_PROGRAM_EGREP'
+ `AC_EGREP_CPP'
+
+`AC_PROGRAM_PATH'
+ `AC_PATH_PROG'
+
+`AC_REMOTE_TAPE'
+ removed because of limited usefulness
+
+`AC_RESTARTABLE_SYSCALLS'
+ `AC_SYS_RESTARTABLE_SYSCALLS'
+
+`AC_RETSIGTYPE'
+ `AC_TYPE_SIGNAL'
+
+`AC_RSH'
+ removed because of limited usefulness
+
+`AC_SETVBUF_REVERSED'
+ `AC_FUNC_SETVBUF_REVERSED'
+
+`AC_SET_MAKE'
+ `AC_PROG_MAKE_SET'
+
+`AC_SIZEOF_TYPE'
+ `AC_CHECK_SIZEOF'
+
+`AC_SIZE_T'
+ `AC_TYPE_SIZE_T'
+
+`AC_STAT_MACROS_BROKEN'
+ `AC_HEADER_STAT'
+
+`AC_STDC_HEADERS'
+ `AC_HEADER_STDC'
+
+`AC_STRCOLL'
+ `AC_FUNC_STRCOLL'
+
+`AC_ST_BLKSIZE'
+ `AC_STRUCT_ST_BLKSIZE'
+
+`AC_ST_BLOCKS'
+ `AC_STRUCT_ST_BLOCKS'
+
+`AC_ST_RDEV'
+ `AC_STRUCT_ST_RDEV'
+
+`AC_SYS_SIGLIST_DECLARED'
+ `AC_DECL_SYS_SIGLIST'
+
+`AC_TEST_CPP'
+ `AC_TRY_CPP'
+
+`AC_TEST_PROGRAM'
+ `AC_TRY_RUN'
+
+`AC_TIMEZONE'
+ `AC_STRUCT_TIMEZONE'
+
+`AC_TIME_WITH_SYS_TIME'
+ `AC_HEADER_TIME'
+
+`AC_UID_T'
+ `AC_TYPE_UID_T'
+
+`AC_UTIME_NULL'
+ `AC_FUNC_UTIME_NULL'
+
+`AC_VFORK'
+ `AC_FUNC_VFORK'
+
+`AC_VPRINTF'
+ `AC_FUNC_VPRINTF'
+
+`AC_WAIT3'
+ `AC_FUNC_WAIT3'
+
+`AC_WARN'
+ `AC_MSG_WARN'
+
+`AC_WORDS_BIGENDIAN'
+ `AC_C_BIGENDIAN'
+
+`AC_YYTEXT_POINTER'
+ `AC_DECL_YYTEXT'
+
+
+File: autoconf.info, Node: Environment Variable Index, Next: Output Variable Index, Prev: Old Macro Names, Up: Top
+
+Environment Variable Index
+**************************
+
+ This is an alphabetical list of the environment variables that
+Autoconf checks.
+
+* Menu:
+
+* AC_MACRODIR: Invoking autoupdate.
+* AC_MACRODIR: Invoking autoscan.
+* AC_MACRODIR: Invoking autoreconf.
+* AC_MACRODIR: Invoking ifnames.
+* AC_MACRODIR: Invoking autoheader.
+* AC_MACRODIR: Invoking autoconf.
+* CONFIG_FILES: Invoking config.status.
+* CONFIG_HEADERS: Invoking config.status.
+* CONFIG_SHELL: Invoking config.status.
+* CONFIG_SITE: Site Defaults.
+* CONFIG_STATUS: Invoking config.status.
+* SIMPLE_BACKUP_SUFFIX: Invoking autoupdate.
+
+
+File: autoconf.info, Node: Output Variable Index, Next: Preprocessor Symbol Index, Prev: Environment Variable Index, Up: Top
+
+Output Variable Index
+*********************
+
+ This is an alphabetical list of the variables that Autoconf can
+substitute into files that it creates, typically one or more
+`Makefile's. *Note Setting Output Variables::, for more information on
+how this is done.
+
+* Menu:
+
+* ALLOCA: Particular Functions.
+* AWK: Particular Programs.
+* build: System Type Variables.
+* build_alias: System Type Variables.
+* build_cpu: System Type Variables.
+* build_os: System Type Variables.
+* build_vendor: System Type Variables.
+* CC: Particular Programs.
+* CC: UNIX Variants.
+* CC: Particular Programs.
+* CFLAGS: Preset Output Variables.
+* CFLAGS: Particular Programs.
+* configure_input: Preset Output Variables.
+* CPP: Particular Programs.
+* CPPFLAGS: Preset Output Variables.
+* CXX: Particular Programs.
+* CXXCPP: Particular Programs.
+* CXXFLAGS: Preset Output Variables.
+* CXXFLAGS: Particular Programs.
+* DEFS: Preset Output Variables.
+* exec_prefix: Preset Output Variables.
+* host: System Type Variables.
+* host_alias: System Type Variables.
+* host_cpu: System Type Variables.
+* host_os: System Type Variables.
+* host_vendor: System Type Variables.
+* INSTALL: Particular Programs.
+* INSTALL_DATA: Particular Programs.
+* INSTALL_PROGRAM: Particular Programs.
+* KMEM_GROUP: Particular Functions.
+* LDFLAGS: Preset Output Variables.
+* LEX: Particular Programs.
+* LEXLIB: Particular Programs.
+* LEX_OUTPUT_ROOT: Particular Programs.
+* LIBOBJS: Particular Functions.
+* LIBOBJS: Particular Functions.
+* LIBOBJS: Generic Functions.
+* LIBOBJS: Structures.
+* LIBS: UNIX Variants.
+* LIBS: UNIX Variants.
+* LIBS: Preset Output Variables.
+* LN_S: Particular Programs.
+* NEED_SETGID: Particular Functions.
+* prefix: Preset Output Variables.
+* program_transform_name: Transforming Names.
+* RANLIB: Particular Programs.
+* SET_MAKE: Output.
+* srcdir: Preset Output Variables.
+* subdirs: Subdirectories.
+* target: System Type Variables.
+* target_alias: System Type Variables.
+* target_cpu: System Type Variables.
+* target_os: System Type Variables.
+* target_vendor: System Type Variables.
+* top_srcdir: Preset Output Variables.
+* X_CFLAGS: System Services.
+* X_EXTRA_LIBS: System Services.
+* X_LIBS: System Services.
+* X_PRE_LIBS: System Services.
+* YACC: Particular Programs.
+
+
+File: autoconf.info, Node: Preprocessor Symbol Index, Next: Macro Index, Prev: Output Variable Index, Up: Top
+
+Preprocessor Symbol Index
+*************************
+
+ This is an alphabetical list of the C preprocessor symbols that the
+Autoconf macros define. To work with Autoconf, C source code needs to
+use these names in `#if' directives.
+
+* Menu:
+
+* CLOSEDIR_VOID: Particular Functions.
+* const: Compiler Characteristics.
+* C_ALLOCA: Particular Functions.
+* DGUX: Particular Functions.
+* DIRENT: Particular Headers.
+* GETGROUPS_T: Particular Typedefs.
+* GETLODAVG_PRIVILEGED: Particular Functions.
+* gid_t: Particular Typedefs.
+* HAVE_FUNCTION: Generic Functions.
+* HAVE_HEADER: Generic Headers.
+* HAVE_ALLOCA_H: Particular Functions.
+* HAVE_CONFIG_H: Configuration Headers.
+* HAVE_DIRENT_H: Particular Headers.
+* HAVE_DOPRNT: Particular Functions.
+* HAVE_GETMNTENT: Particular Functions.
+* HAVE_LONG_DOUBLE: Compiler Characteristics.
+* HAVE_LONG_FILE_NAMES: System Services.
+* HAVE_MMAP: Particular Functions.
+* HAVE_NDIR_H: Particular Headers.
+* HAVE_RESTARTABLE_SYSCALLS: System Services.
+* HAVE_STRCOLL: Particular Functions.
+* HAVE_STRFTIME: Particular Functions.
+* HAVE_ST_BLKSIZE: Structures.
+* HAVE_ST_BLOCKS: Structures.
+* HAVE_ST_RDEV: Structures.
+* HAVE_SYS_DIR_H: Particular Headers.
+* HAVE_SYS_NDIR_H: Particular Headers.
+* HAVE_SYS_WAIT_H: Particular Headers.
+* HAVE_TM_ZONE: Structures.
+* HAVE_TZNAME: Structures.
+* HAVE_UNISTD_H: Particular Headers.
+* HAVE_UTIME_NULL: Particular Functions.
+* HAVE_VFORK_H: Particular Functions.
+* HAVE_VPRINTF: Particular Functions.
+* HAVE_WAIT3: Particular Functions.
+* inline: Compiler Characteristics.
+* INT_16_BITS: Compiler Characteristics.
+* LONG_64_BITS: Compiler Characteristics.
+* MAJOR_IN_MKDEV: Particular Headers.
+* MAJOR_IN_SYSMACROS: Particular Headers.
+* mode_t: Particular Typedefs.
+* NDIR: Particular Headers.
+* NEED_MEMORY_H: Particular Headers.
+* NEED_SETGID: Particular Functions.
+* NLIST_NAME_UNION: Particular Functions.
+* NLIST_STRUCT: Particular Functions.
+* NO_MINUS_C_MINUS_O: Particular Programs.
+* off_t: Particular Typedefs.
+* pid_t: Particular Typedefs.
+* RETSIGTYPE: Particular Typedefs.
+* SETVBUF_REVERSED: Particular Functions.
+* size_t: Particular Typedefs.
+* STDC_HEADERS: Particular Headers.
+* SVR4: Particular Functions.
+* SYSDIR: Particular Headers.
+* SYSNDIR: Particular Headers.
+* SYS_SIGLIST_DECLARED: Particular Headers.
+* TIME_WITH_SYS_TIME: Structures.
+* TM_IN_SYS_TIME: Structures.
+* uid_t: Particular Typedefs.
+* UMAX: Particular Functions.
+* UMAX4_3: Particular Functions.
+* USG: Particular Headers.
+* vfork: Particular Functions.
+* VOID_CLOSEDIR: Particular Headers.
+* WORDS_BIGENDIAN: Compiler Characteristics.
+* YYTEXT_POINTER: Particular Programs.
+* _ALL_SOURCE: UNIX Variants.
+* _MINIX: UNIX Variants.
+* _POSIX_1_SOURCE: UNIX Variants.
+* _POSIX_SOURCE: UNIX Variants.
+* _POSIX_SOURCE: UNIX Variants.
+* _POSIX_VERSION: Particular Headers.
+* __CHAR_UNSIGNED__: Compiler Characteristics.
+
+
+File: autoconf.info, Node: Macro Index, Prev: Preprocessor Symbol Index, Up: Top
+
+Macro Index
+***********
+
+ This is an alphabetical list of the Autoconf macros. To make the
+list easier to use, the macros are listed without their preceding `AC_'.
+
+* Menu:
+
+* AIX: UNIX Variants.
+* ALLOCA: Old Macro Names.
+* ARG_ARRAY: Old Macro Names.
+* ARG_ENABLE: Package Options.
+* ARG_PROGRAM: Transforming Names.
+* ARG_WITH: External Software.
+* BEFORE: Suggested Ordering.
+* CACHE_VAL: Caching Results.
+* CANONICAL_HOST: Canonicalizing.
+* CANONICAL_SYSTEM: Canonicalizing.
+* CHAR_UNSIGNED: Old Macro Names.
+* CHECKING: Printing Messages.
+* CHECK_FUNC: Generic Functions.
+* CHECK_FUNCS: Generic Functions.
+* CHECK_HEADER: Generic Headers.
+* CHECK_HEADERS: Generic Headers.
+* CHECK_LIB: Libraries.
+* CHECK_PROG: Generic Programs.
+* CHECK_PROGS: Generic Programs.
+* CHECK_SIZEOF: Compiler Characteristics.
+* CHECK_TYPE: Generic Typedefs.
+* COMPILE_CHECK: Examining Libraries.
+* CONFIG_AUX_DIR: Input.
+* CONFIG_HEADER: Configuration Headers.
+* CONFIG_SUBDIRS: Subdirectories.
+* CONST: Old Macro Names.
+* CROSS_CHECK: Old Macro Names.
+* C_BIGENDIAN: Compiler Characteristics.
+* C_CHAR_UNSIGNED: Compiler Characteristics.
+* C_CONST: Compiler Characteristics.
+* C_CROSS: Test Programs.
+* C_INLINE: Compiler Characteristics.
+* C_LONG_DOUBLE: Compiler Characteristics.
+* DECL_SYS_SIGLIST: Particular Headers.
+* DECL_YYTEXT: Particular Programs.
+* DEFINE: Defining Symbols.
+* DEFINE_UNQUOTED: Defining Symbols.
+* DEFUN: Macro Definitions.
+* DIR_HEADER: Particular Headers.
+* DYNIX_SEQ: UNIX Variants.
+* EGREP_CPP: Examining Declarations.
+* EGREP_HEADER: Examining Declarations.
+* ENABLE: Package Options.
+* ERROR: Old Macro Names.
+* FIND_X: Old Macro Names.
+* FIND_XTRA: Old Macro Names.
+* FUNC_ALLOCA: Particular Functions.
+* FUNC_CHECK: Old Macro Names.
+* FUNC_CLOSEDIR_VOID: Particular Functions.
+* FUNC_GETLOADAVG: Particular Functions.
+* FUNC_GETMNTENT: Particular Functions.
+* FUNC_MEMCMP: Particular Functions.
+* FUNC_MMAP: Particular Functions.
+* FUNC_SETVBUF_REVERSED: Particular Functions.
+* FUNC_STRCOLL: Particular Functions.
+* FUNC_STRFTIME: Particular Functions.
+* FUNC_UTIME_NULL: Particular Functions.
+* FUNC_VFORK: Particular Functions.
+* FUNC_VPRINTF: Particular Functions.
+* FUNC_WAIT3: Particular Functions.
+* GCC_TRADITIONAL: Old Macro Names.
+* GETGROUPS_T: Old Macro Names.
+* GETLOADAVG: Old Macro Names.
+* HAVE_FUNCS: Old Macro Names.
+* HAVE_HEADERS: Old Macro Names.
+* HAVE_LIBRARY: Libraries.
+* HAVE_POUNDBANG: Old Macro Names.
+* HEADER_CHECK: Old Macro Names.
+* HEADER_DIRENT: Particular Headers.
+* HEADER_EGREP: Old Macro Names.
+* HEADER_MAJOR: Particular Headers.
+* HEADER_STAT: Structures.
+* HEADER_STDC: Particular Headers.
+* HEADER_SYS_WAIT: Particular Headers.
+* HEADER_TIME: Structures.
+* INIT: Input.
+* INLINE: Old Macro Names.
+* INT_16_BITS: Compiler Characteristics.
+* IRIX_SUN: UNIX Variants.
+* ISC_POSIX: UNIX Variants.
+* LANG_C: Language Choice.
+* LANG_CPLUSPLUS: Language Choice.
+* LANG_RESTORE: Language Choice.
+* LANG_SAVE: Language Choice.
+* LINK_FILES: Using System Type.
+* LN_S: Old Macro Names.
+* LONG_64_BITS: Compiler Characteristics.
+* LONG_DOUBLE: Old Macro Names.
+* LONG_FILE_NAMES: Old Macro Names.
+* MAJOR_HEADER: Old Macro Names.
+* MEMORY_H: Particular Headers.
+* MINIX: UNIX Variants.
+* MINUS_C_MINUS_O: Old Macro Names.
+* MMAP: Old Macro Names.
+* MODE_T: Old Macro Names.
+* MSG_CHECKING: Printing Messages.
+* MSG_ERROR: Printing Messages.
+* MSG_RESULT: Printing Messages.
+* MSG_WARN: Printing Messages.
+* OBSOLETE: Obsolete Macros.
+* OFF_T: Old Macro Names.
+* OUTPUT: Output.
+* PATH_PROG: Generic Programs.
+* PATH_PROGS: Generic Programs.
+* PATH_X: System Services.
+* PATH_XTRA: System Services.
+* PID_T: Old Macro Names.
+* PREFIX: Old Macro Names.
+* PREFIX_PROGRAM: Default Prefix.
+* PREREQ: Versions.
+* PROGRAMS_CHECK: Old Macro Names.
+* PROGRAMS_PATH: Old Macro Names.
+* PROGRAM_CHECK: Old Macro Names.
+* PROGRAM_EGREP: Old Macro Names.
+* PROGRAM_PATH: Old Macro Names.
+* PROG_AWK: Particular Programs.
+* PROG_CC: Particular Programs.
+* PROG_CC_C_O: Particular Programs.
+* PROG_CPP: Particular Programs.
+* PROG_CXX: Particular Programs.
+* PROG_CXXCPP: Particular Programs.
+* PROG_GCC_TRADITIONAL: Particular Programs.
+* PROG_INSTALL: Particular Programs.
+* PROG_LEX: Particular Programs.
+* PROG_LN_S: Particular Programs.
+* PROG_MAKE_SET: Output.
+* PROG_RANLIB: Particular Programs.
+* PROG_YACC: Particular Programs.
+* PROVIDE: Prerequisite Macros.
+* REMOTE_TAPE: Old Macro Names.
+* REPLACE_FUNCS: Generic Functions.
+* REQUIRE: Prerequisite Macros.
+* REQUIRE_CPP: Language Choice.
+* RESTARTABLE_SYSCALLS: Old Macro Names.
+* RETSIGTYPE: Old Macro Names.
+* REVISION: Versions.
+* RSH: Old Macro Names.
+* SCO_INTL: UNIX Variants.
+* SETVBUF_REVERSED: Old Macro Names.
+* SET_MAKE: Old Macro Names.
+* SIZEOF_TYPE: Old Macro Names.
+* SIZE_T: Old Macro Names.
+* STAT_MACROS_BROKEN: Structures.
+* STAT_MACROS_BROKEN: Old Macro Names.
+* STDC_HEADERS: Old Macro Names.
+* STRCOLL: Old Macro Names.
+* STRUCT_ST_BLKSIZE: Structures.
+* STRUCT_ST_BLOCKS: Structures.
+* STRUCT_ST_RDEV: Structures.
+* STRUCT_TIMEZONE: Structures.
+* STRUCT_TM: Structures.
+* ST_BLKSIZE: Old Macro Names.
+* ST_BLOCKS: Old Macro Names.
+* ST_RDEV: Old Macro Names.
+* SUBST: Setting Output Variables.
+* SUBST_FILE: Setting Output Variables.
+* SYS_INTERPRETER: System Services.
+* SYS_LONG_FILE_NAMES: System Services.
+* SYS_RESTARTABLE_SYSCALLS: System Services.
+* SYS_SIGLIST_DECLARED: Old Macro Names.
+* TEST_CPP: Old Macro Names.
+* TEST_PROGRAM: Old Macro Names.
+* TIMEZONE: Old Macro Names.
+* TIME_WITH_SYS_TIME: Old Macro Names.
+* TRY_COMPILE: Examining Syntax.
+* TRY_CPP: Examining Declarations.
+* TRY_LINK: Examining Libraries.
+* TRY_RUN: Test Programs.
+* TYPE_GETGROUPS: Particular Typedefs.
+* TYPE_MODE_T: Particular Typedefs.
+* TYPE_OFF_T: Particular Typedefs.
+* TYPE_PID_T: Particular Typedefs.
+* TYPE_SIGNAL: Particular Typedefs.
+* TYPE_SIZE_T: Particular Typedefs.
+* TYPE_UID_T: Particular Typedefs.
+* UID_T: Old Macro Names.
+* UNISTD_H: Particular Headers.
+* USG: Particular Headers.
+* UTIME_NULL: Old Macro Names.
+* VERBOSE: Printing Messages.
+* VFORK: Old Macro Names.
+* VPRINTF: Old Macro Names.
+* WAIT3: Old Macro Names.
+* WARN: Old Macro Names.
+* WITH: External Software.
+* WORDS_BIGENDIAN: Old Macro Names.
+* XENIX_DIR: UNIX Variants.
+* YYTEXT_POINTER: Old Macro Names.
+
+
diff --git a/util/autoconf/autoconf.m4 b/util/autoconf/autoconf.m4
new file mode 100644
index 0000000..2b17435
--- /dev/null
+++ b/util/autoconf/autoconf.m4
@@ -0,0 +1,27 @@
+dnl Driver that loads the Autoconf macro files.
+dnl Requires GNU m4.
+dnl This file is part of Autoconf.
+dnl Copyright (C) 1994 Free Software Foundation, Inc.
+dnl
+dnl This program is free software; you can redistribute it and/or modify
+dnl it under the terms of the GNU General Public License as published by
+dnl the Free Software Foundation; either version 2, or (at your option)
+dnl any later version.
+dnl
+dnl This program is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+dnl GNU General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU General Public License
+dnl along with this program; if not, write to the Free Software
+dnl Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+dnl
+dnl Written by David MacKenzie.
+dnl
+include(acgeneral.m4)dnl
+builtin(include, acspecific.m4)dnl
+builtin(include, acoldnames.m4)dnl
+dnl Do not sinclude acsite.m4 here, because it may not be installed
+dnl yet when Autoconf is frozen.
+dnl Do not sinclude ./aclocal.m4 here, to prevent it from being frozen.
diff --git a/util/autoconf/autoheader.m4 b/util/autoconf/autoheader.m4
new file mode 100644
index 0000000..62427d9
--- /dev/null
+++ b/util/autoconf/autoheader.m4
@@ -0,0 +1,84 @@
+dnl Driver and redefinitions of some Autoconf macros for autoheader.
+dnl This file is part of Autoconf.
+dnl Copyright (C) 1994 Free Software Foundation, Inc.
+dnl
+dnl This program is free software; you can redistribute it and/or modify
+dnl it under the terms of the GNU General Public License as published by
+dnl the Free Software Foundation; either version 2, or (at your option)
+dnl any later version.
+dnl
+dnl This program is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+dnl GNU General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU General Public License
+dnl along with this program; if not, write to the Free Software
+dnl Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+dnl
+dnl Written by Roland McGrath.
+dnl
+include(acgeneral.m4)dnl
+builtin(include, acspecific.m4)dnl
+builtin(include, acoldnames.m4)dnl
+
+dnl These are alternate definitions of some macros, which produce
+dnl strings in the output marked with "@@@" so we can easily extract
+dnl the information we want. The `#' at the end of the first line of
+dnl each definition seems to be necessary to prevent m4 from eating
+dnl the newline, which makes the @@@ not always be at the beginning of
+dnl a line.
+
+define([AC_CHECK_FUNCS], [#
+@@@funcs="$funcs $1"@@@
+])
+
+define([AC_CHECK_HEADERS], [#
+@@@headers="$headers $1"@@@
+])
+
+define([AC_CHECK_HEADERS_DIRENT], [#
+@@@headers="$headers $1"@@@
+])
+
+define([AC_CHECK_LIB], [#
+ ifelse([$3], , [
+@@@libs="$libs $1"@@@
+], [
+# If it was found, we do:
+$3
+# If it was not found, we do:
+$4
+])
+])
+
+define([AC_HAVE_LIBRARY], [#
+changequote(<<, >>)dnl
+define(<<AC_LIB_NAME>>, dnl
+patsubst(patsubst($1, <<lib\([^\.]*\)\.a>>, <<\1>>), <<-l>>, <<>>))dnl
+changequote([, ])dnl
+ ifelse([$2], , [
+@@@libs="$libs AC_LIB_NAME"@@@
+], [
+# If it was found, we do:
+$2
+# If it was not found, we do:
+$3
+])
+])
+
+define([AC_CHECK_SIZEOF], [#
+@@@types="$types,$1"@@@
+])
+
+define([AC_CONFIG_HEADER], [#
+@@@config_h=$1@@@
+])
+
+define([AC_DEFINE], [#
+@@@syms="$syms $1"@@@
+])
+
+define([AC_DEFINE_UNQUOTED], [#
+@@@syms="$syms $1"@@@
+])
diff --git a/util/autoconf/autoupdate.sh b/util/autoconf/autoupdate.sh
new file mode 100644
index 0000000..8fd1442
--- /dev/null
+++ b/util/autoconf/autoupdate.sh
@@ -0,0 +1,112 @@
+#!/bin/sh
+# autoupdate - modernize a configure.in
+# Copyright (C) 1994 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+# If given no args, update `configure.in';
+# With one arg, write on the standard output from the given template file.
+#
+# Written by David MacKenzie <djm@gnu.ai.mit.edu>
+
+usage="\
+Usage: autoupdate [-h] [--help] [-m dir] [--macrodir=dir]
+ [--version] [template-file]"
+
+sedtmp=/tmp/acups.$$
+# For debugging.
+#sedtmp=/tmp/acups
+show_version=no
+test -z "${AC_MACRODIR}" && AC_MACRODIR=@datadir@
+
+while test $# -gt 0 ; do
+ case "${1}" in
+ -h | --help | --h* )
+ echo "${usage}" 1>&2; exit 0 ;;
+ --macrodir=* | --m*=* )
+ AC_MACRODIR="`echo \"${1}\" | sed -e 's/^[^=]*=//'`"
+ shift ;;
+ -m | --macrodir | --m* )
+ shift
+ test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
+ AC_MACRODIR="${1}"
+ shift ;;
+ --version | --versio | --versi | --vers)
+ show_version=yes; shift ;;
+ -- ) # Stop option processing
+ shift; break ;;
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+ echo "${usage}" 1>&2; exit 1 ;;
+ * )
+ break ;;
+ esac
+done
+
+if test $show_version = yes; then
+ version=`sed -n 's/define.AC_ACVERSION.[ ]*\([0-9.]*\).*/\1/p' \
+ $AC_MACRODIR/acgeneral.m4`
+ echo "Autoconf version $version"
+ exit 0
+fi
+
+: ${SIMPLE_BACKUP_SUFFIX='~'}
+
+tmpout=acupo.$$
+trap 'rm -f $sedtmp $tmpout; exit 1' 1 2 15
+case $# in
+ 0) infile=configure.in; out="> $tmpout"
+ # Make sure $infile can be read, and $tmpout has the same permissions.
+ cp $infile $tmpout || exit
+
+ # Make sure $infile can be written.
+ if test ! -w $infile; then
+ rm -f $tmpout
+ echo "$0: $infile: cannot write" >&2
+ exit 1
+ fi
+ ;;
+ 1) infile="$1"; out= ;;
+ *) echo "$usage" >&2; exit 1 ;;
+esac
+
+# Turn the m4 macro file into a sed script.
+# For each old macro name, make one substitution command to replace it
+# at the end of a line, and one when followed by ( or whitespace.
+# That is easier than splitting the macros up into those that take
+# arguments and those that don't.
+sed -n -e '
+/^AC_DEFUN(/ {
+ s//s%/
+ s/, *\[indir(\[/$%/
+ s/\].*/%/
+ p
+ s/\$//
+ s/%/^/
+ s/%/\\([( ]\\)^/
+ s/%/\\1^/
+ s/\^/%/g
+ p
+}' ${AC_MACRODIR}/acoldnames.m4 > $sedtmp
+eval sed -f $sedtmp $infile $out
+
+case $# in
+ 0) mv configure.in configure.in${SIMPLE_BACKUP_SUFFIX} &&
+ mv $tmpout configure.in ;;
+esac
+
+rm -f $sedtmp $tmpout
+exit 0
diff --git a/util/autoconf/ifnames.sh b/util/autoconf/ifnames.sh
new file mode 100644
index 0000000..cd95da8
--- /dev/null
+++ b/util/autoconf/ifnames.sh
@@ -0,0 +1,93 @@
+#!/bin/sh
+# ifnames - print the identifiers used in C preprocessor conditionals
+# Copyright (C) 1994 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+# Reads from stdin if no files are given.
+# Writes to stdout.
+
+# Written by David MacKenzie <djm@gnu.ai.mit.edu>
+
+usage="\
+Usage: ifnames [-h] [--help] [-m dir] [--macrodir=dir] [--version] [file...]"
+show_version=no
+
+test -z "$AC_MACRODIR" && AC_MACRODIR=@datadir@
+
+while test $# -gt 0; do
+ case "$1" in
+ -h | --help | --h* )
+ echo "$usage"; exit 0 ;;
+ --macrodir=* | --m*=* )
+ AC_MACRODIR="`echo \"$1\" | sed -e 's/^[^=]*=//'`"
+ shift ;;
+ -m | --macrodir | --m* )
+ shift
+ test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
+ AC_MACRODIR="$1"
+ shift ;;
+ --version | --versio | --versi | --vers)
+ show_version=yes; shift ;;
+ --) # Stop option processing.
+ shift; break ;;
+ -*) echo "$usage" 1>&2; exit 1 ;;
+ *) break ;;
+ esac
+done
+
+if test $show_version = yes; then
+ version=`sed -n 's/define.AC_ACVERSION.[ ]*\([0-9.]*\).*/\1/p' \
+ $AC_MACRODIR/acgeneral.m4`
+ echo "Autoconf version $version"
+ exit 0
+fi
+
+if test $# -eq 0; then
+ cat > stdin
+ set stdin
+ trap 'rm -f stdin' 0
+ trap 'rm -f stdin; exit 1' 1 3 15
+fi
+
+for arg
+do
+# The first two substitutions remove comments. Not perfect, but close enough.
+# The second is for comments that end on a later line. The others do:
+# Enclose identifiers in @ and a space.
+# Handle "#if 0" -- there are no @s to trigger removal.
+# Remove non-identifiers.
+# Remove any spaces at the end.
+# Translate any other spaces to newlines.
+sed -n '
+s%/\*[^/]*\*/%%g
+s%/\*[^/]*%%g
+/^[ ]*#[ ]*ifn*def[ ][ ]*\([A-Za-z0-9_]*\).*/s//\1/p
+/^[ ]*#[ ]*e*l*if[ ]/{
+ s///
+ s/@//g
+ s/\([A-Za-z_][A-Za-z_0-9]*\)/@\1 /g
+ s/$/@ /
+ s/@defined //g
+ s/[^@]*@\([^ ]* \)[^@]*/\1/g
+ s/ *$//
+ s/ /\
+/g
+ p
+}
+' $arg | sort -u | sed 's%$% '$arg'%'
+done | awk '
+{ files[$1] = files[$1] " " $2 }
+END { for (sym in files) print sym files[sym] }' | sort
diff --git a/util/autoconf/install-sh b/util/autoconf/install-sh
new file mode 100755
index 0000000..ab74c88
--- /dev/null
+++ b/util/autoconf/install-sh
@@ -0,0 +1,238 @@
+#!/bin/sh
+#
+# install - install a program, script, or datafile
+# This comes from X11R5.
+#
+# Calling this script install-sh is preferred over install.sh, to prevent
+# `make' implicit rules from creating a file called install from it
+# when there is no Makefile.
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch.
+#
+
+
+# set DOITPROG to echo to test this script
+
+# Don't use :- since 4.3BSD and earlier shells don't like it.
+doit="${DOITPROG-}"
+
+
+# put in absolute paths if you don't have them in your path; or use env. vars.
+
+mvprog="${MVPROG-mv}"
+cpprog="${CPPROG-cp}"
+chmodprog="${CHMODPROG-chmod}"
+chownprog="${CHOWNPROG-chown}"
+chgrpprog="${CHGRPPROG-chgrp}"
+stripprog="${STRIPPROG-strip}"
+rmprog="${RMPROG-rm}"
+mkdirprog="${MKDIRPROG-mkdir}"
+
+tranformbasename=""
+transform_arg=""
+instcmd="$mvprog"
+chmodcmd="$chmodprog 0755"
+chowncmd=""
+chgrpcmd=""
+stripcmd=""
+rmcmd="$rmprog -f"
+mvcmd="$mvprog"
+src=""
+dst=""
+dir_arg=""
+
+while [ x"$1" != x ]; do
+ case $1 in
+ -c) instcmd="$cpprog"
+ shift
+ continue;;
+
+ -d) dir_arg=true
+ shift
+ continue;;
+
+ -m) chmodcmd="$chmodprog $2"
+ shift
+ shift
+ continue;;
+
+ -o) chowncmd="$chownprog $2"
+ shift
+ shift
+ continue;;
+
+ -g) chgrpcmd="$chgrpprog $2"
+ shift
+ shift
+ continue;;
+
+ -s) stripcmd="$stripprog"
+ shift
+ continue;;
+
+ -t=*) transformarg=`echo $1 | sed 's/-t=//'`
+ shift
+ continue;;
+
+ -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
+ shift
+ continue;;
+
+ *) if [ x"$src" = x ]
+ then
+ src=$1
+ else
+ # this colon is to work around a 386BSD /bin/sh bug
+ :
+ dst=$1
+ fi
+ shift
+ continue;;
+ esac
+done
+
+if [ x"$src" = x ]
+then
+ echo "install: no input file specified"
+ exit 1
+else
+ true
+fi
+
+if [ x"$dir_arg" != x ]; then
+ dst=$src
+ src=""
+
+ if [ -d $dst ]; then
+ instcmd=:
+ else
+ instcmd=mkdir
+ fi
+else
+
+# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
+# might cause directories to be created, which would be especially bad
+# if $src (and thus $dsttmp) contains '*'.
+
+ if [ -f $src -o -d $src ]
+ then
+ true
+ else
+ echo "install: $src does not exist"
+ exit 1
+ fi
+
+ if [ x"$dst" = x ]
+ then
+ echo "install: no destination specified"
+ exit 1
+ else
+ true
+ fi
+
+# If destination is a directory, append the input filename; if your system
+# does not like double slashes in filenames, you may need to add some logic
+
+ if [ -d $dst ]
+ then
+ dst="$dst"/`basename $src`
+ else
+ true
+ fi
+fi
+
+## this sed command emulates the dirname command
+dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
+
+# Make sure that the destination directory exists.
+# this part is taken from Noah Friedman's mkinstalldirs script
+
+# Skip lots of stat calls in the usual case.
+if [ ! -d "$dstdir" ]; then
+defaultIFS='
+'
+IFS="${IFS-${defaultIFS}}"
+
+oIFS="${IFS}"
+# Some sh's can't handle IFS=/ for some reason.
+IFS='%'
+set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
+IFS="${oIFS}"
+
+pathcomp=''
+
+while [ $# -ne 0 ] ; do
+ pathcomp="${pathcomp}${1}"
+ shift
+
+ if [ ! -d "${pathcomp}" ] ;
+ then
+ $mkdirprog "${pathcomp}"
+ else
+ true
+ fi
+
+ pathcomp="${pathcomp}/"
+done
+fi
+
+if [ x"$dir_arg" != x ]
+then
+ $doit $instcmd $dst &&
+
+ if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
+ if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
+ if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
+ if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
+else
+
+# If we're going to rename the final executable, determine the name now.
+
+ if [ x"$transformarg" = x ]
+ then
+ dstfile=`basename $dst`
+ else
+ dstfile=`basename $dst $transformbasename |
+ sed $transformarg`$transformbasename
+ fi
+
+# don't allow the sed command to completely eliminate the filename
+
+ if [ x"$dstfile" = x ]
+ then
+ dstfile=`basename $dst`
+ else
+ true
+ fi
+
+# Make a temp file name in the proper directory.
+
+ dsttmp=$dstdir/#inst.$$#
+
+# Move or copy the file name to the temp name
+
+ $doit $instcmd $src $dsttmp &&
+
+ trap "rm -f ${dsttmp}" 0 &&
+
+# and set any options; do chmod last to preserve setuid bits
+
+# If any of these fail, we abort the whole thing. If we want to
+# ignore errors from any of these, just make sure not to ignore
+# errors from the above "$doit $instcmd $src $dsttmp" command.
+
+ if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
+ if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
+ if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
+ if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
+
+# Now rename the file to the real destination.
+
+ $doit $rmcmd -f $dstdir/$dstfile &&
+ $doit $mvcmd $dsttmp $dstdir/$dstfile
+
+fi &&
+
+
+exit 0
diff --git a/util/autoconf/install.texi b/util/autoconf/install.texi
new file mode 100644
index 0000000..bff0738
--- /dev/null
+++ b/util/autoconf/install.texi
@@ -0,0 +1,193 @@
+@c This file is included by autoconf.texi and is used to produce
+@c the INSTALL file.
+
+@node Basic Installation
+@section Basic Installation
+
+These are generic installation instructions.
+
+The @code{configure} shell script attempts to guess correct values for
+various system-dependent variables used during compilation. It uses
+those values to create a @file{Makefile} in each directory of the
+package. It may also create one or more @file{.h} files containing
+system-dependent definitions. Finally, it creates a shell script
+@file{config.status} that you can run in the future to recreate the
+current configuration, a file @file{config.cache} that saves the results
+of its tests to speed up reconfiguring, and a file @file{config.log}
+containing compiler output (useful mainly for debugging
+@code{configure}).
+
+If you need to do unusual things to compile the package, please try to
+figure out how @code{configure} could check whether to do them, and mail
+diffs or instructions to the address given in the @file{README} so they
+can be considered for the next release. If at some point
+@file{config.cache} contains results you don't want to keep, you may
+remove or edit it.
+
+The file @file{configure.in} is used to create @file{configure} by a
+program called @code{autoconf}. You only need @file{configure.in} if
+you want to change it or regenerate @file{configure} using a newer
+version of @code{autoconf}.
+
+@noindent
+The simplest way to compile this package is:
+
+@enumerate
+@item
+@code{cd} to the directory containing the package's source code and type
+@samp{./configure} to configure the package for your system. If you're
+using @code{csh} on an old version of System V, you might need to type
+@samp{sh ./configure} instead to prevent @code{csh} from trying to
+execute @code{configure} itself.
+
+Running @code{configure} takes awhile. While running, it prints some
+messages telling which features it is checking for.
+
+@item
+Type @samp{make} to compile the package.
+
+@item
+Optionally, type @samp{make check} to run any self-tests that come with
+the package.
+
+@item
+Type @samp{make install} to install the programs and any data files and
+documentation.
+
+@item
+You can remove the program binaries and object files from the source
+directory by typing @samp{make clean}. To also remove the files that
+@code{configure} created (so you can compile the package for a different
+kind of computer), type @samp{make distclean}.
+@end enumerate
+
+@node Compilers and Options
+@section Compilers and Options
+
+Some systems require unusual options for compilation or linking that
+the @code{configure} script does not know about. You can give
+@code{configure} initial values for variables by setting them in the
+environment. Using a Bourne-compatible shell, you can do that on the
+command line like this:
+@example
+CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
+@end example
+
+@noindent
+Or on systems that have the @code{env} program, you can do it like this:
+@example
+env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
+@end example
+
+@node Build Directory
+@section Using a Different Build Directory
+
+You can compile the package in a different directory from the one
+containing the source code. Doing so allows you to compile it on more
+than one kind of computer at the same time. To do this, you must use a
+version of @code{make} that supports the @code{VPATH} variable, such as
+GNU @code{make}. @code{cd} to the directory where you want the object
+files and executables to go and run the @code{configure} script.
+@code{configure} automatically checks for the source code in the
+directory that @code{configure} is in and in @file{..}.
+
+@node Installation Names
+@section Installation Names
+
+By default, @samp{make install} will install the package's files in
+@file{/usr/local/bin}, @file{/usr/local/man}, etc. You can specify an
+installation prefix other than @file{/usr/local} by giving
+@code{configure} the option @samp{--prefix=@var{path}}.
+
+You can specify separate installation prefixes for architecture-specific
+files and architecture-independent files. If you give @code{configure}
+the option @samp{--exec-prefix=@var{path}}, the package will use
+@var{path} as the prefix for installing programs and libraries.
+Documentation and other data files will still use the regular prefix.
+
+If the package supports it, you can cause programs to be installed with
+an extra prefix or suffix on their names by giving @code{configure} the
+option @samp{--program-prefix=@var{PREFIX}} or
+@samp{--program-suffix=@var{SUFFIX}}.
+
+@node Optional Features
+@section Optional Features
+
+Some packages pay attention to @samp{--enable-@var{feature}} options to
+@code{configure}, where @var{feature} indicates an optional part of the
+package. They may also pay attention to @samp{--with-@var{package}}
+options, where @var{package} is something like @samp{gnu-as} or @samp{x}
+(for the X Window System). The @file{README} should mention any
+@samp{--enable-} and @samp{--with-} options that the package recognizes.
+
+For packages that use the X Window System, @code{configure} can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the @code{configure} options @samp{--x-includes=@var{dir}}
+and @samp{--x-libraries=@var{dir}} to specify their locations.
+
+@node System Type
+@section Specifying the System Type
+
+There may be some features @code{configure} can not figure out
+automatically, but needs to determine by the type of host the package
+will run on. Usually @code{configure} can figure that out, but if it
+prints a message saying it can not guess the host type, give it the
+@samp{--host=@var{type}} option. @var{type} can either be a short name
+for the system type, such as @samp{sun4}, or a canonical name with three
+fields:
+@example
+@var{cpu}-@var{company}-@var{system}
+@end example
+@noindent
+See the file @file{config.sub} for the possible values of each field.
+If @file{config.sub} isn't included in this package, then this package
+doesn't need to know the host type.
+
+If you are building compiler tools for cross-compiling, you can also use
+the @samp{--target=@var{type}} option to select the type of system
+they will produce code for and the @samp{--build=@var{type}} option
+to select the type of system on which you are compiling the package.
+
+@node Sharing Defaults
+@section Sharing Defaults
+
+If you want to set default values for @code{configure} scripts to share,
+you can create a site shell script called @file{config.site} that gives
+default values for variables like @code{CC}, @code{cache_file}, and
+@code{prefix}. @code{configure} looks for
+@file{@var{prefix}/share/config.site} if it exists, then
+@file{@var{prefix}/etc/config.site} if it exists. Or, you can set
+the @code{CONFIG_SITE} environment variable to the location of the site
+script. A warning: not all @code{configure} scripts look for a site script.
+
+@node Operation Controls
+@section Operation Controls
+
+@code{configure} recognizes the following options to control how it
+operates.
+
+@table @code
+@item --cache-file=@var{file}
+Save the results of the tests in @var{file} instead of
+@file{config.cache}. Set @var{file} to @file{/dev/null} to disable
+caching, for debugging @code{configure}.
+
+@item --help
+Print a summary of the options to @code{configure}, and exit.
+
+@item --quiet
+@itemx --silent
+@itemx -q
+Do not print messages saying which checks are being made.
+
+@item --srcdir=@var{dir}
+Look for the package's source code in directory @var{dir}. Usually
+@code{configure} can determine that directory automatically.
+
+@item --version
+Print the version of Autoconf used to generate the @code{configure}
+script, and exit.
+@end table
+
+@noindent
+@code{configure} also accepts some other, not widely useful, options.
diff --git a/util/autoconf/standards.info-1 b/util/autoconf/standards.info-1
new file mode 100644
index 0000000..05178a0
--- /dev/null
+++ b/util/autoconf/standards.info-1
@@ -0,0 +1,1188 @@
+This is Info file ../standards.info, produced by Makeinfo-1.55 from the
+input file ../standards.texi.
+
+START-INFO-DIR-ENTRY
+* Standards: (standards). GNU coding standards.
+END-INFO-DIR-ENTRY
+
+ GNU Coding Standards Copyright (C) 1992, 1993, 1994 Free Software
+Foundation, Inc.
+
+ Permission is granted to make and distribute verbatim copies of this
+manual provided the copyright notice and this permission notice are
+preserved on all copies.
+
+ Permission is granted to copy and distribute modified versions of
+this manual under the conditions for verbatim copying, provided that
+the entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+ Permission is granted to copy and distribute translations of this
+manual into another language, under the above conditions for modified
+versions, except that this permission notice may be stated in a
+translation approved by the Free Software Foundation.
+
+
+File: standards.info, Node: Top, Next: Preface, Prev: (dir), Up: (dir)
+
+Version
+*******
+
+ Last updated 21 September 1994.
+
+* Menu:
+
+* Preface:: About the GNU Coding Standards
+* Reading Non-Free Code:: Referring to Proprietary Programs
+* Contributions:: Accepting Contributions
+* Change Logs:: Recording Changes
+* Compatibility:: Compatibility with Other Implementations
+* Makefile Conventions:: Makefile Conventions
+* Configuration:: How Configuration Should Work
+* Source Language:: Using Languages Other Than C
+* Formatting:: Formatting Your Source Code
+* Comments:: Commenting Your Work
+* Syntactic Conventions:: Clean Use of C Constructs
+* Names:: Naming Variables and Functions
+* Using Extensions:: Using Non-standard Features
+* System Functions:: Portability and "standard" library functions
+* Semantics:: Program Behavior for All Programs
+* Errors:: Formatting Error Messages
+* Libraries:: Library Behavior
+* Portability:: Portability As It Applies to GNU
+* User Interfaces:: Standards for Command Line Interfaces
+* Documentation:: Documenting Programs
+* Releases:: Making Releases
+
+
+File: standards.info, Node: Preface, Next: Reading Non-Free Code, Prev: Top, Up: Top
+
+About the GNU Coding Standards
+******************************
+
+ The GNU Coding Standards were written by Richard Stallman and other
+GNU Project volunteers. Their purpose is to make the GNU system clean,
+consistent, and easy to install. This document can also be read as a
+guide to write portable, robust and reliable programs. It focuses on
+programs written in C, but many of the rules and principles are useful
+even if you write in another programming language. The rules often
+state reasons for writing in a certain way.
+
+ Corrections or suggestions regarding this document should be sent to
+`gnu@prep.ai.mit.edu'. If you make a suggestion, please include a
+suggested new wording for it; our time is limited. We prefer a context
+diff to the `standards.texi' or `make-stds.texi' files, but if you
+don't have those files, please mail your suggestion anyway.
+
+ This release of the GNU Coding Standards was last updated 21
+September 1994.
+
+
+File: standards.info, Node: Reading Non-Free Code, Next: Contributions, Prev: Preface, Up: Top
+
+Referring to Proprietary Programs
+*********************************
+
+ Don't in any circumstances refer to Unix source code for or during
+your work on GNU! (Or to any other proprietary programs.)
+
+ If you have a vague recollection of the internals of a Unix program,
+this does not absolutely mean you can't write an imitation of it, but
+do try to organize the imitation internally along different lines,
+because this is likely to make the details of the Unix version
+irrelevant and dissimilar to your results.
+
+ For example, Unix utilities were generally optimized to minimize
+memory use; if you go for speed instead, your program will be very
+different. You could keep the entire input file in core and scan it
+there instead of using stdio. Use a smarter algorithm discovered more
+recently than the Unix program. Eliminate use of temporary files. Do
+it in one pass instead of two (we did this in the assembler).
+
+ Or, on the contrary, emphasize simplicity instead of speed. For some
+applications, the speed of today's computers makes simpler algorithms
+adequate.
+
+ Or go for generality. For example, Unix programs often have static
+tables or fixed-size strings, which make for arbitrary limits; use
+dynamic allocation instead. Make sure your program handles NULs and
+other funny characters in the input files. Add a programming language
+for extensibility and write part of the program in that language.
+
+ Or turn some parts of the program into independently usable
+libraries. Or use a simple garbage collector instead of tracking
+precisely when to free memory, or use a new GNU facility such as
+obstacks.
+
+
+File: standards.info, Node: Contributions, Next: Change Logs, Prev: Reading Non-Free Code, Up: Top
+
+Accepting Contributions
+***********************
+
+ If someone else sends you a piece of code to add to the program you
+are working on, we need legal papers to use it--the same sort of legal
+papers we will need to get from you. *Each* significant contributor to
+a program must sign some sort of legal papers in order for us to have
+clear title to the program. The main author alone is not enough.
+
+ So, before adding in any contributions from other people, tell us so
+we can arrange to get the papers. Then wait until we tell you that we
+have received the signed papers, before you actually use the
+contribution.
+
+ This applies both before you release the program and afterward. If
+you receive diffs to fix a bug, and they make significant change, we
+need legal papers for it.
+
+ You don't need papers for changes of a few lines here or there, since
+they are not significant for copyright purposes. Also, you don't need
+papers if all you get from the suggestion is some ideas, not actual code
+which you use. For example, if you write a different solution to the
+problem, you don't need to get papers.
+
+ I know this is frustrating; it's frustrating for us as well. But if
+you don't wait, you are going out on a limb--for example, what if the
+contributor's employer won't sign a disclaimer? You might have to take
+that code out again!
+
+ The very worst thing is if you forget to tell us about the other
+contributor. We could be very embarrassed in court some day as a
+result.
+
+
+File: standards.info, Node: Change Logs, Next: Compatibility, Prev: Contributions, Up: Top
+
+Change Logs
+***********
+
+ Keep a change log for each directory, describing the changes made to
+source files in that directory. The purpose of this is so that people
+investigating bugs in the future will know about the changes that might
+have introduced the bug. Often a new bug can be found by looking at
+what was recently changed. More importantly, change logs can help
+eliminate conceptual inconsistencies between different parts of a
+program; they can give you a history of how the conflicting concepts
+arose.
+
+ Use the Emacs command `M-x add-change' to start a new entry in the
+change log. An entry should have an asterisk, the name of the changed
+file, and then in parentheses the name of the changed functions,
+variables or whatever, followed by a colon. Then describe the changes
+you made to that function or variable.
+
+ Separate unrelated entries with blank lines. When two entries
+represent parts of the same change, so that they work together, then
+don't put blank lines between them. Then you can omit the file name
+and the asterisk when successive entries are in the same file.
+
+ Here are some examples:
+
+ * register.el (insert-register): Return nil.
+ (jump-to-register): Likewise.
+
+ * sort.el (sort-subr): Return nil.
+
+ * tex-mode.el (tex-bibtex-file, tex-file, tex-region):
+ Restart the tex shell if process is gone or stopped.
+ (tex-shell-running): New function.
+
+ * expr.c (store_one_arg): Round size up for move_block_to_reg.
+ (expand_call): Round up when emitting USE insns.
+ * stmt.c (assign_parms): Round size up for move_block_from_reg.
+
+ It's important to name the changed function or variable in full.
+Don't abbreviate them; don't combine them. Subsequent maintainers will
+often search for a function name to find all the change log entries that
+pertain to it; if you abbreviate the name, they won't find it when they
+search. For example, some people are tempted to abbreviate groups of
+function names by writing `* register.el ({insert,jump-to}-register)';
+this is not a good idea, since searching for `jump-to-register' or
+`insert-register' would not find the entry.
+
+ There's no need to describe the full purpose of the changes or how
+they work together. It is better to put such explanations in comments
+in the code. That's why just "New function" is enough; there is a
+comment with the function in the source to explain what it does.
+
+ However, sometimes it is useful to write one line to describe the
+overall purpose of a large batch of changes.
+
+ You can think of the change log as a conceptual "undo list" which
+explains how earlier versions were different from the current version.
+People can see the current version; they don't need the change log to
+tell them what is in it. What they want from a change log is a clear
+explanation of how the earlier version differed.
+
+ When you change the calling sequence of a function in a simple
+fashion, and you change all the callers of the function, there is no
+need to make individual entries for all the callers. Just write in the
+entry for the function being called, "All callers changed."
+
+ When you change just comments or doc strings, it is enough to write
+an entry for the file, without mentioning the functions. Write just,
+"Doc fix." There's no need to keep a change log for documentation
+files. This is because documentation is not susceptible to bugs that
+are hard to fix. Documentation does not consist of parts that must
+interact in a precisely engineered fashion; to correct an error, you
+need not know the history of the erroneous passage.
+
+
+File: standards.info, Node: Compatibility, Next: Makefile Conventions, Prev: Change Logs, Up: Top
+
+Compatibility with Other Implementations
+****************************************
+
+ With certain exceptions, utility programs and libraries for GNU
+should be upward compatible with those in Berkeley Unix, and upward
+compatible with ANSI C if ANSI C specifies their behavior, and upward
+compatible with POSIX if POSIX specifies their behavior.
+
+ When these standards conflict, it is useful to offer compatibility
+modes for each of them.
+
+ ANSI C and POSIX prohibit many kinds of extensions. Feel free to
+make the extensions anyway, and include a `--ansi' or `--compatible'
+option to turn them off. However, if the extension has a significant
+chance of breaking any real programs or scripts, then it is not really
+upward compatible. Try to redesign its interface.
+
+ Many GNU programs suppress extensions that conflict with POSIX if the
+environment variable `POSIXLY_CORRECT' is defined (even if it is
+defined with a null value). Please make your program recognize this
+variable if appropriate.
+
+ When a feature is used only by users (not by programs or command
+files), and it is done poorly in Unix, feel free to replace it
+completely with something totally different and better. (For example,
+vi is replaced with Emacs.) But it is nice to offer a compatible
+feature as well. (There is a free vi clone, so we offer it.)
+
+ Additional useful features not in Berkeley Unix are welcome.
+Additional programs with no counterpart in Unix may be useful, but our
+first priority is usually to duplicate what Unix already has.
+
+
+File: standards.info, Node: Makefile Conventions, Next: Configuration, Prev: Compatibility, Up: Top
+
+Makefile Conventions
+********************
+
+ This chapter describes conventions for writing the Makefiles for GNU
+programs.
+
+* Menu:
+
+* Makefile Basics::
+* Utilities in Makefiles::
+* Standard Targets::
+* Command Variables::
+* Directory Variables::
+
+
+File: standards.info, Node: Makefile Basics, Next: Utilities in Makefiles, Up: Makefile Conventions
+
+General Conventions for Makefiles
+=================================
+
+ Every Makefile should contain this line:
+
+ SHELL = /bin/sh
+
+to avoid trouble on systems where the `SHELL' variable might be
+inherited from the environment. (This is never a problem with GNU
+`make'.)
+
+ Different `make' programs have incompatible suffix lists and
+implicit rules, and this sometimes creates confusion or misbehavior. So
+it is a good idea to set the suffix list explicitly using only the
+suffixes you need in the particular Makefile, like this:
+
+ .SUFFIXES:
+ .SUFFIXES: .c .o
+
+The first line clears out the suffix list, the second introduces all
+suffixes which may be subject to implicit rules in this Makefile.
+
+ Don't assume that `.' is in the path for command execution. When
+you need to run programs that are a part of your package during the
+make, please make sure that it uses `./' if the program is built as
+part of the make or `$(srcdir)/' if the file is an unchanging part of
+the source code. Without one of these prefixes, the current search
+path is used.
+
+ The distinction between `./' and `$(srcdir)/' is important when
+using the `--srcdir' option to `configure'. A rule of the form:
+
+ foo.1 : foo.man sedscript
+ sed -e sedscript foo.man > foo.1
+
+will fail when the current directory is not the source directory,
+because `foo.man' and `sedscript' are not in the current directory.
+
+ When using GNU `make', relying on `VPATH' to find the source file
+will work in the case where there is a single dependency file, since
+the `make' automatic variable `$<' will represent the source file
+wherever it is. (Many versions of `make' set `$<' only in implicit
+rules.) A makefile target like
+
+ foo.o : bar.c
+ $(CC) -I. -I$(srcdir) $(CFLAGS) -c bar.c -o foo.o
+
+should instead be written as
+
+ foo.o : bar.c
+ $(CC) -I. -I$(srcdir) $(CFLAGS) -c $< -o $@
+
+in order to allow `VPATH' to work correctly. When the target has
+multiple dependencies, using an explicit `$(srcdir)' is the easiest way
+to make the rule work well. For example, the target above for `foo.1'
+is best written as:
+
+ foo.1 : foo.man sedscript
+ sed -e $(srcdir)/sedscript $(srcdir)/foo.man > $@
+
+
+File: standards.info, Node: Utilities in Makefiles, Next: Standard Targets, Prev: Makefile Basics, Up: Makefile Conventions
+
+Utilities in Makefiles
+======================
+
+ Write the Makefile commands (and any shell scripts, such as
+`configure') to run in `sh', not in `csh'. Don't use any special
+features of `ksh' or `bash'.
+
+ The `configure' script and the Makefile rules for building and
+installation should not use any utilities directly except these:
+
+ cat cmp cp echo egrep expr grep
+ ln mkdir mv pwd rm rmdir sed test touch
+
+ Stick to the generally supported options for these programs. For
+example, don't use `mkdir -p', convenient as it may be, because most
+systems don't support it.
+
+ The Makefile rules for building and installation can also use
+compilers and related programs, but should do so via `make' variables
+so that the user can substitute alternatives. Here are some of the
+programs we mean:
+
+ ar bison cc flex install ld lex
+ make makeinfo ranlib texi2dvi yacc
+
+ Use the following `make' variables:
+
+ $(AR) $(BISON) $(CC) $(FLEX) $(INSTALL) $(LD) $(LEX)
+ $(MAKE) $(MAKEINFO) $(RANLIB) $(TEXI2DVI) $(YACC)
+
+ When you use `ranlib', you should make sure nothing bad happens if
+the system does not have `ranlib'. Arrange to ignore an error from
+that command, and print a message before the command to tell the user
+that failure of the `ranlib' command does not mean a problem.
+
+ If you use symbolic links, you should implement a fallback for
+systems that don't have symbolic links.
+
+ It is ok to use other utilities in Makefile portions (or scripts)
+intended only for particular systems where you know those utilities to
+exist.
+
+
+File: standards.info, Node: Standard Targets, Next: Command Variables, Prev: Utilities in Makefiles, Up: Makefile Conventions
+
+Standard Targets for Users
+==========================
+
+ All GNU programs should have the following targets in their
+Makefiles:
+
+`all'
+ Compile the entire program. This should be the default target.
+ This target need not rebuild any documentation files; Info files
+ should normally be included in the distribution, and DVI files
+ should be made only when explicitly asked for.
+
+`install'
+ Compile the program and copy the executables, libraries, and so on
+ to the file names where they should reside for actual use. If
+ there is a simple test to verify that a program is properly
+ installed, this target should run that test.
+
+ The commands should create all the directories in which files are
+ to be installed, if they don't already exist. This includes the
+ directories specified as the values of the variables `prefix' and
+ `exec_prefix', as well as all subdirectories that are needed. One
+ way to do this is by means of an `installdirs' target as described
+ below.
+
+ Use `-' before any command for installing a man page, so that
+ `make' will ignore any errors. This is in case there are systems
+ that don't have the Unix man page documentation system installed.
+
+ The way to install Info files is to copy them into `$(infodir)'
+ with `$(INSTALL_DATA)' (*note Command Variables::.), and then run
+ the `install-info' program if it is present. `install-info' is a
+ script that edits the Info `dir' file to add or update the menu
+ entry for the given Info file; it will be part of the Texinfo
+ package. Here is a sample rule to install an Info file:
+
+ $(infodir)/foo.info: foo.info
+ # There may be a newer info file in . than in srcdir.
+ -if test -f foo.info; then d=.; \
+ else d=$(srcdir); fi; \
+ $(INSTALL_DATA) $$d/foo.info $@; \
+ # Run install-info only if it exists.
+ # Use `if' instead of just prepending `-' to the
+ # line so we notice real errors from install-info.
+ # We use `$(SHELL) -c' because some shells do not
+ # fail gracefully when there is an unknown command.
+ if $(SHELL) -c 'install-info --version' \
+ >/dev/null 2>&1; then \
+ install-info --infodir=$(infodir) $$d/foo.info; \
+ else true; fi
+
+`uninstall'
+ Delete all the installed files that the `install' target would
+ create (but not the noninstalled files such as `make all' would
+ create).
+
+`clean'
+ Delete all files from the current directory that are normally
+ created by building the program. Don't delete the files that
+ record the configuration. Also preserve files that could be made
+ by building, but normally aren't because the distribution comes
+ with them.
+
+ Delete `.dvi' files here if they are not part of the distribution.
+
+`distclean'
+ Delete all files from the current directory that are created by
+ configuring or building the program. If you have unpacked the
+ source and built the program without creating any other files,
+ `make distclean' should leave only the files that were in the
+ distribution.
+
+`mostlyclean'
+ Like `clean', but may refrain from deleting a few files that people
+ normally don't want to recompile. For example, the `mostlyclean'
+ target for GCC does not delete `libgcc.a', because recompiling it
+ is rarely necessary and takes a lot of time.
+
+`realclean'
+ Delete everything from the current directory that can be
+ reconstructed with this Makefile. This typically includes
+ everything deleted by `distclean', plus more: C source files
+ produced by Bison, tags tables, Info files, and so on.
+
+ One exception, however: `make realclean' should not delete
+ `configure' even if `configure' can be remade using a rule in the
+ Makefile. More generally, `make realclean' should not delete
+ anything that needs to exist in order to run `configure' and then
+ begin to build the program.
+
+`TAGS'
+ Update a tags table for this program.
+
+`info'
+ Generate any Info files needed. The best way to write the rules
+ is as follows:
+
+ info: foo.info
+
+ foo.info: foo.texi chap1.texi chap2.texi
+ $(MAKEINFO) $(srcdir)/foo.texi
+
+ You must define the variable `MAKEINFO' in the Makefile. It should
+ run the `makeinfo' program, which is part of the Texinfo
+ distribution.
+
+`dvi'
+ Generate DVI files for all TeXinfo documentation. For example:
+
+ dvi: foo.dvi
+
+ foo.dvi: foo.texi chap1.texi chap2.texi
+ $(TEXI2DVI) $(srcdir)/foo.texi
+
+ You must define the variable `TEXI2DVI' in the Makefile. It should
+ run the program `texi2dvi', which is part of the Texinfo
+ distribution. Alternatively, write just the dependencies, and
+ allow GNU Make to provide the command.
+
+`dist'
+ Create a distribution tar file for this program. The tar file
+ should be set up so that the file names in the tar file start with
+ a subdirectory name which is the name of the package it is a
+ distribution for. This name can include the version number.
+
+ For example, the distribution tar file of GCC version 1.40 unpacks
+ into a subdirectory named `gcc-1.40'.
+
+ The easiest way to do this is to create a subdirectory
+ appropriately named, use `ln' or `cp' to install the proper files
+ in it, and then `tar' that subdirectory.
+
+ The `dist' target should explicitly depend on all non-source files
+ that are in the distribution, to make sure they are up to date in
+ the distribution. *Note Making Releases: (standards)Releases.
+
+`check'
+ Perform self-tests (if any). The user must build the program
+ before running the tests, but need not install the program; you
+ should write the self-tests so that they work when the program is
+ built but not installed.
+
+ The following targets are suggested as conventional names, for
+programs in which they are useful.
+
+`installcheck'
+ Perform installation tests (if any). The user must build and
+ install the program before running the tests. You should not
+ assume that `$(bindir)' is in the search path.
+
+`installdirs'
+ It's useful to add a target named `installdirs' to create the
+ directories where files are installed, and their parent
+ directories. There is a script called `mkinstalldirs' which is
+ convenient for this; find it in the Texinfo package.You can use a
+ rule like this:
+
+ # Make sure all installation directories (e.g. $(bindir))
+ # actually exist by making them if necessary.
+ installdirs: mkinstalldirs
+ $(srcdir)/mkinstalldirs $(bindir) $(datadir) \
+ $(libdir) $(infodir) \
+ $(mandir)
+
+
+File: standards.info, Node: Command Variables, Next: Directory Variables, Prev: Standard Targets, Up: Makefile Conventions
+
+Variables for Specifying Commands
+=================================
+
+ Makefiles should provide variables for overriding certain commands,
+options, and so on.
+
+ In particular, you should run most utility programs via variables.
+Thus, if you use Bison, have a variable named `BISON' whose default
+value is set with `BISON = bison', and refer to it with `$(BISON)'
+whenever you need to use Bison.
+
+ File management utilities such as `ln', `rm', `mv', and so on, need
+not be referred to through variables in this way, since users don't
+need to replace them with other programs.
+
+ Each program-name variable should come with an options variable that
+is used to supply options to the program. Append `FLAGS' to the
+program-name variable name to get the options variable name--for
+example, `BISONFLAGS'. (The name `CFLAGS' is an exception to this
+rule, but we keep it because it is standard.) Use `CPPFLAGS' in any
+compilation command that runs the preprocessor, and use `LDFLAGS' in
+any compilation command that does linking as well as in any direct use
+of `ld'.
+
+ If there are C compiler options that *must* be used for proper
+compilation of certain files, do not include them in `CFLAGS'. Users
+expect to be able to specify `CFLAGS' freely themselves. Instead,
+arrange to pass the necessary options to the C compiler independently
+of `CFLAGS', by writing them explicitly in the compilation commands or
+by defining an implicit rule, like this:
+
+ CFLAGS = -g
+ ALL_CFLAGS = -I. $(CFLAGS)
+ .c.o:
+ $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $<
+
+ Do include the `-g' option in `CFLAGS', because that is not
+*required* for proper compilation. You can consider it a default that
+is only recommended. If the package is set up so that it is compiled
+with GCC by default, then you might as well include `-O' in the default
+value of `CFLAGS' as well.
+
+ Put `CFLAGS' last in the compilation command, after other variables
+containing compiler options, so the user can use `CFLAGS' to override
+the others.
+
+ Every Makefile should define the variable `INSTALL', which is the
+basic command for installing a file into the system.
+
+ Every Makefile should also define the variables `INSTALL_PROGRAM'
+and `INSTALL_DATA'. (The default for each of these should be
+`$(INSTALL)'.) Then it should use those variables as the commands for
+actual installation, for executables and nonexecutables respectively.
+Use these variables as follows:
+
+ $(INSTALL_PROGRAM) foo $(bindir)/foo
+ $(INSTALL_DATA) libfoo.a $(libdir)/libfoo.a
+
+Always use a file name, not a directory name, as the second argument of
+the installation commands. Use a separate command for each file to be
+installed.
+
+
+File: standards.info, Node: Directory Variables, Prev: Command Variables, Up: Makefile Conventions
+
+Variables for Installation Directories
+======================================
+
+ Installation directories should always be named by variables, so it
+is easy to install in a nonstandard place. The standard names for these
+variables are as follows.
+
+ These two variables set the root for the installation. All the other
+installation directories should be subdirectories of one of these two,
+and nothing should be directly installed into these two directories.
+
+`prefix'
+ A prefix used in constructing the default values of the variables
+ listed below. The default value of `prefix' should be `/usr/local'
+ (at least for now).
+
+`exec_prefix'
+ A prefix used in constructing the default values of some of the
+ variables listed below. The default value of `exec_prefix' should
+ be `$(prefix)'.
+
+ Generally, `$(exec_prefix)' is used for directories that contain
+ machine-specific files (such as executables and subroutine
+ libraries), while `$(prefix)' is used directly for other
+ directories.
+
+ Executable programs are installed in one of the following
+directories.
+
+`bindir'
+ The directory for installing executable programs that users can
+ run. This should normally be `/usr/local/bin', but write it as
+ `$(exec_prefix)/bin'.
+
+`sbindir'
+ The directory for installing executable programs that can be run
+ from the shell, but are only generally useful to system
+ administrators. This should normally be `/usr/local/sbin', but
+ write it as `$(exec_prefix)/sbin'.
+
+`libexecdir'
+ The directory for installing executable programs to be run by other
+ programs rather than by users. This directory should normally be
+ `/usr/local/libexec', but write it as `$(exec_prefix)/libexec'.
+
+ Data files used by the program during its execution are divided into
+categories in two ways.
+
+ * Some files are normally modified by programs; others are never
+ normally modified (though users may edit some of these).
+
+ * Some files are architecture-independent and can be shared by all
+ machines at a site; some are architecture-dependent and can be
+ shared only by machines of the same kind and operating system;
+ others may never be shared between two machines.
+
+ This makes for six different possibilities. However, we want to
+discourage the use of architecture-dependent files, aside from of object
+files and libraries. It is much cleaner to make other data files
+architecture-independent, and it is generally not hard.
+
+ Therefore, here are the variables makefiles should use to specify
+directories:
+
+`datadir'
+ The directory for installing read-only architecture independent
+ data files. This should normally be `/usr/local/share', but write
+ it as `$(prefix)/share'. As a special exception, see `$(infodir)'
+ and `$(includedir)' below.
+
+`sysconfdir'
+ The directory for installing read-only data files that pertain to a
+ single machine-that is to say, files for configuring a host.
+ Mailer and network configuration files, `/etc/passwd', and so
+ forth belong here. All the files in this directory should be
+ ordinary ASCII text files. This directory should normally be
+ `/usr/local/etc', but write it as `$(prefix)/etc'.
+
+ Do not install executables in this directory (they probably belong
+ in `$(libexecdir)' or `$(sbindir))'. Also do not install files
+ that are modified in the normal course of their use (programs
+ whose purpose is to change the configuration of the system
+ excluded). Those probably belong in `$(localstatedir)'.
+
+`sharedstatedir'
+ The directory for installing architecture-independent data files
+ which the programs modify while they run. This should normally be
+ `/usr/local/com', but write it as `$(prefix)/com'.
+
+`localstatedir'
+ The directory for installing data files which the programs modify
+ while they run, and that pertain to one specific machine. Users
+ should never need to modify files in this directory to configure
+ the package's operation; put such configuration information in
+ separate files that go in `datadir' or `$(sysconfdir)'.
+ `$(localstatedir)' should normally be `/usr/local/var', but write
+ it as `$(prefix)/var'.
+
+`libdir'
+ The directory for object files and libraries of object code. Do
+ not install executables here, they probably belong in
+ `$(libexecdir)' instead. The value of `libdir' should normally be
+ `/usr/local/lib', but write it as `$(exec_prefix)/lib'.
+
+`infodir'
+ The directory for installing the Info files for this package. By
+ default, it should be `/usr/local/info', but it should be written
+ as `$(prefix)/info'.
+
+`includedir'
+ The directory for installing header files to be included by user
+ programs with the C `#include' preprocessor directive. This
+ should normally be `/usr/local/include', but write it as
+ `$(prefix)/include'.
+
+ Most compilers other than GCC do not look for header files in
+ `/usr/local/include'. So installing the header files this way is
+ only useful with GCC. Sometimes this is not a problem because some
+ libraries are only really intended to work with GCC. But some
+ libraries are intended to work with other compilers. They should
+ install their header files in two places, one specified by
+ `includedir' and one specified by `oldincludedir'.
+
+`oldincludedir'
+ The directory for installing `#include' header files for use with
+ compilers other than GCC. This should normally be `/usr/include'.
+
+ The Makefile commands should check whether the value of
+ `oldincludedir' is empty. If it is, they should not try to use
+ it; they should cancel the second installation of the header files.
+
+ A package should not replace an existing header in this directory
+ unless the header came from the same package. Thus, if your Foo
+ package provides a header file `foo.h', then it should install the
+ header file in the `oldincludedir' directory if either (1) there
+ is no `foo.h' there or (2) the `foo.h' that exists came from the
+ Foo package.
+
+ To tell whether `foo.h' came from the Foo package, put a magic
+ string in the file--part of a comment--and grep for that string.
+
+ Unix-style man pages are installed in one of the following:
+
+`mandir'
+ The directory for installing the man pages (if any) for this
+ package. It should include the suffix for the proper section of
+ the manual--usually `1' for a utility. It will normally be
+ `/usr/local/man/man1', but you should write it as
+ `$(prefix)/man/man1'.
+
+`man1dir'
+ The directory for installing section 1 man pages.
+
+`man2dir'
+ The directory for installing section 2 man pages.
+
+`...'
+ Use these names instead of `mandir' if the package needs to
+ install man pages in more than one section of the manual.
+
+ *Don't make the primary documentation for any GNU software be a
+ man page. Write a manual in Texinfo instead. Man pages are just
+ for the sake of people running GNU software on Unix, which is a
+ secondary application only.*
+
+`manext'
+ The file name extension for the installed man page. This should
+ contain a period followed by the appropriate digit; it should
+ normally be `.1'.
+
+`man1ext'
+ The file name extension for installed section 1 man pages.
+
+`man2ext'
+ The file name extension for installed section 2 man pages.
+
+`...'
+ Use these names instead of `manext' if the package needs to
+ install man pages in more than one section of the manual.
+
+ And finally, you should set the following variable:
+
+`srcdir'
+ The directory for the sources being compiled. The value of this
+ variable is normally inserted by the `configure' shell script.
+
+ For example:
+
+ # Common prefix for installation directories.
+ # NOTE: This directory must exist when you start the install.
+ prefix = /usr/local
+ exec_prefix = $(prefix)
+ # Where to put the executable for the command `gcc'.
+ bindir = $(exec_prefix)/bin
+ # Where to put the directories used by the compiler.
+ libexecdir = $(exec_prefix)/libexec
+ # Where to put the Info files.
+ infodir = $(prefix)/info
+
+ If your program installs a large number of files into one of the
+standard user-specified directories, it might be useful to group them
+into a subdirectory particular to that program. If you do this, you
+should write the `install' rule to create these subdirectories.
+
+ Do not expect the user to include the subdirectory name in the value
+of any of the variables listed above. The idea of having a uniform set
+of variable names for installation directories is to enable the user to
+specify the exact same values for several different GNU packages. In
+order for this to be useful, all the packages must be designed so that
+they will work sensibly when the user does so.
+
+
+File: standards.info, Node: Configuration, Next: Source Language, Prev: Makefile Conventions, Up: Top
+
+How Configuration Should Work
+*****************************
+
+ Each GNU distribution should come with a shell script named
+`configure'. This script is given arguments which describe the kind of
+machine and system you want to compile the program for.
+
+ The `configure' script must record the configuration options so that
+they affect compilation.
+
+ One way to do this is to make a link from a standard name such as
+`config.h' to the proper configuration file for the chosen system. If
+you use this technique, the distribution should *not* contain a file
+named `config.h'. This is so that people won't be able to build the
+program without configuring it first.
+
+ Another thing that `configure' can do is to edit the Makefile. If
+you do this, the distribution should *not* contain a file named
+`Makefile'. Instead, include a file `Makefile.in' which contains the
+input used for editing. Once again, this is so that people won't be
+able to build the program without configuring it first.
+
+ If `configure' does write the `Makefile', then `Makefile' should
+have a target named `Makefile' which causes `configure' to be rerun,
+setting up the same configuration that was set up last time. The files
+that `configure' reads should be listed as dependencies of `Makefile'.
+
+ All the files which are output from the `configure' script should
+have comments at the beginning explaining that they were generated
+automatically using `configure'. This is so that users won't think of
+trying to edit them by hand.
+
+ The `configure' script should write a file named `config.status'
+which describes which configuration options were specified when the
+program was last configured. This file should be a shell script which,
+if run, will recreate the same configuration.
+
+ The `configure' script should accept an option of the form
+`--srcdir=DIRNAME' to specify the directory where sources are found (if
+it is not the current directory). This makes it possible to build the
+program in a separate directory, so that the actual source directory is
+not modified.
+
+ If the user does not specify `--srcdir', then `configure' should
+check both `.' and `..' to see if it can find the sources. If it finds
+the sources in one of these places, it should use them from there.
+Otherwise, it should report that it cannot find the sources, and should
+exit with nonzero status.
+
+ Usually the easy way to support `--srcdir' is by editing a
+definition of `VPATH' into the Makefile. Some rules may need to refer
+explicitly to the specified source directory. To make this possible,
+`configure' can add to the Makefile a variable named `srcdir' whose
+value is precisely the specified directory.
+
+ The `configure' script should also take an argument which specifies
+the type of system to build the program for. This argument should look
+like this:
+
+ CPU-COMPANY-SYSTEM
+
+ For example, a Sun 3 might be `m68k-sun-sunos4.1'.
+
+ The `configure' script needs to be able to decode all plausible
+alternatives for how to describe a machine. Thus, `sun3-sunos4.1'
+would be a valid alias. So would `sun3-bsd4.2', since SunOS is
+basically BSD and no other BSD system is used on a Sun. For many
+programs, `vax-dec-ultrix' would be an alias for `vax-dec-bsd', simply
+because the differences between Ultrix and BSD are rarely noticeable,
+but a few programs might need to distinguish them.
+
+ There is a shell script called `config.sub' that you can use as a
+subroutine to validate system types and canonicalize aliases.
+
+ Other options are permitted to specify in more detail the software
+or hardware present on the machine, and include or exclude optional
+parts of the package:
+
+`--enable-FEATURE[=PARAMETER]'
+ Configure the package to build and install an optional user-level
+ facility called FEATURE. This allows users to choose which
+ optional features to include. Giving an optional PARAMETER of
+ `no' should omit FEATURE, if it is built by default.
+
+ No `--enable' option should *ever* cause one feature to replace
+ another. No `--enable' option should ever substitute one useful
+ behavior for another useful behavior. The only proper use for
+ `--enable' is for questions of whether to build part of the program
+ or exclude it.
+
+`--with-PACKAGE'
+ The package PACKAGE will be installed, so configure this package
+ to work with PACKAGE.
+
+ Possible values of PACKAGE include `x', `x-toolkit', `gnu-as' (or
+ `gas'), `gnu-ld', `gnu-libc', and `gdb'.
+
+ Do not use a `--with' option to specify the file name to use to
+ find certain files. That is outside the scope of what `--with'
+ options are for.
+
+`--nfp'
+ The target machine has no floating point processor.
+
+`--gas'
+ The target machine assembler is GAS, the GNU assembler. This is
+ obsolete; users should use `--with-gnu-as' instead.
+
+`--x'
+ The target machine has the X Window System installed. This is
+ obsolete; users should use `--with-x' instead.
+
+ All `configure' scripts should accept all of these "detail" options,
+whether or not they make any difference to the particular package at
+hand. In particular, they should accept any option that starts with
+`--with-' or `--enable-'. This is so users will be able to configure
+an entire GNU source tree at once with a single set of options.
+
+ You will note that the categories `--with-' and `--enable-' are
+narrow: they *do not* provide a place for any sort of option you might
+think of. That is deliberate. We want to limit the possible
+configuration options in GNU software. We do not want GNU programs to
+have idiosyncratic configuration options.
+
+ Packages that perform part of compilation may support
+cross-compilation. In such a case, the host and target machines for
+the program may be different. The `configure' script should normally
+treat the specified type of system as both the host and the target,
+thus producing a program which works for the same type of machine that
+it runs on.
+
+ The way to build a cross-compiler, cross-assembler, or what have
+you, is to specify the option `--host=HOSTTYPE' when running
+`configure'. This specifies the host system without changing the type
+of target system. The syntax for HOSTTYPE is the same as described
+above.
+
+ Bootstrapping a cross-compiler requires compiling it on a machine
+other than the host it will run on. Compilation packages accept a
+configuration option `--build=HOSTTYPE' for specifying the
+configuration on which you will compile them, in case that is different
+from the host.
+
+ Programs for which cross-operation is not meaningful need not accept
+the `--host' option, because configuring an entire operating system for
+cross-operation is not a meaningful thing.
+
+ Some programs have ways of configuring themselves automatically. If
+your program is set up to do this, your `configure' script can simply
+ignore most of its arguments.
+
+
+File: standards.info, Node: Source Language, Next: Formatting, Prev: Configuration, Up: Top
+
+Using Languages Other Than C
+****************************
+
+ Using a language other than C is like using a non-standard feature:
+it will cause trouble for users. Even if GCC supports the other
+language, users may find it inconvenient to have to install the
+compiler for that other language in order to build your program. So
+please write in C.
+
+ There are three exceptions for this rule:
+
+ * It is okay to use a special language if the same program contains
+ an interpreter for that language.
+
+ Thus, it is not a problem that GNU Emacs contains code written in
+ Emacs Lisp, because it comes with a Lisp interpreter.
+
+ * It is okay to use another language in a tool specifically intended
+ for use with that language.
+
+ This is okay because the only people who want to build the tool
+ will be those who have installed the other language anyway.
+
+ * If an application is not of extremely widespread interest, then
+ perhaps it's not important if the application is inconvenient to
+ install.
+
+
+File: standards.info, Node: Formatting, Next: Comments, Prev: Source Language, Up: Top
+
+Formatting Your Source Code
+***************************
+
+ It is important to put the open-brace that starts the body of a C
+function in column zero, and avoid putting any other open-brace or
+open-parenthesis or open-bracket in column zero. Several tools look
+for open-braces in column zero to find the beginnings of C functions.
+These tools will not work on code not formatted that way.
+
+ It is also important for function definitions to start the name of
+the function in column zero. This helps people to search for function
+definitions, and may also help certain tools recognize them. Thus, the
+proper format is this:
+
+ static char *
+ concat (s1, s2) /* Name starts in column zero here */
+ char *s1, *s2;
+ { /* Open brace in column zero here */
+ ...
+ }
+
+or, if you want to use ANSI C, format the definition like this:
+
+ static char *
+ concat (char *s1, char *s2)
+ {
+ ...
+ }
+
+ In ANSI C, if the arguments don't fit nicely on one line, split it
+like this:
+
+ int
+ lots_of_args (int an_integer, long a_long, short a_short,
+ double a_double, float a_float)
+ ...
+
+ For the body of the function, we prefer code formatted like this:
+
+ if (x < foo (y, z))
+ haha = bar[4] + 5;
+ else
+ {
+ while (z)
+ {
+ haha += foo (z, z);
+ z--;
+ }
+ return ++x + bar ();
+ }
+
+ We find it easier to read a program when it has spaces before the
+open-parentheses and after the commas. Especially after the commas.
+
+ When you split an expression into multiple lines, split it before an
+operator, not after one. Here is the right way:
+
+ if (foo_this_is_long && bar > win (x, y, z)
+ && remaining_condition)
+
+ Try to avoid having two operators of different precedence at the same
+level of indentation. For example, don't write this:
+
+ mode = (inmode[j] == VOIDmode
+ || GET_MODE_SIZE (outmode[j]) > GET_MODE_SIZE (inmode[j])
+ ? outmode[j] : inmode[j]);
+
+ Instead, use extra parentheses so that the indentation shows the
+nesting:
+
+ mode = ((inmode[j] == VOIDmode
+ || (GET_MODE_SIZE (outmode[j]) > GET_MODE_SIZE (inmode[j])))
+ ? outmode[j] : inmode[j]);
+
+ Insert extra parentheses so that Emacs will indent the code properly.
+For example, the following indentation looks nice if you do it by hand,
+but Emacs would mess it up:
+
+ v = rup->ru_utime.tv_sec*1000 + rup->ru_utime.tv_usec/1000
+ + rup->ru_stime.tv_sec*1000 + rup->ru_stime.tv_usec/1000;
+
+ But adding a set of parentheses solves the problem:
+
+ v = (rup->ru_utime.tv_sec*1000 + rup->ru_utime.tv_usec/1000
+ + rup->ru_stime.tv_sec*1000 + rup->ru_stime.tv_usec/1000);
+
+ Format do-while statements like this:
+
+ do
+ {
+ a = foo (a);
+ }
+ while (a > 0);
+
+ Please use formfeed characters (control-L) to divide the program into
+pages at logical places (but not within a function). It does not matter
+just how long the pages are, since they do not have to fit on a printed
+page. The formfeeds should appear alone on lines by themselves.
+
+
+File: standards.info, Node: Comments, Next: Syntactic Conventions, Prev: Formatting, Up: Top
+
+Commenting Your Work
+********************
+
+ Every program should start with a comment saying briefly what it is
+for. Example: `fmt - filter for simple filling of text'.
+
+ Please put a comment on each function saying what the function does,
+what sorts of arguments it gets, and what the possible values of
+arguments mean and are used for. It is not necessary to duplicate in
+words the meaning of the C argument declarations, if a C type is being
+used in its customary fashion. If there is anything nonstandard about
+its use (such as an argument of type `char *' which is really the
+address of the second character of a string, not the first), or any
+possible values that would not work the way one would expect (such as,
+that strings containing newlines are not guaranteed to work), be sure
+to say so.
+
+ Also explain the significance of the return value, if there is one.
+
+ Please put two spaces after the end of a sentence in your comments,
+so that the Emacs sentence commands will work. Also, please write
+complete sentences and capitalize the first word. If a lower-case
+identifer comes at the beginning of a sentence, don't capitalize it!
+Changing the spelling makes it a different identifier. If you don't
+like starting a sentence with a lower case letter, write the sentence
+differently (e.g., "The identifier lower-case is ...").
+
+ The comment on a function is much clearer if you use the argument
+names to speak about the argument values. The variable name itself
+should be lower case, but write it in upper case when you are speaking
+about the value rather than the variable itself. Thus, "the inode
+number NODE_NUM" rather than "an inode".
+
+ There is usually no purpose in restating the name of the function in
+the comment before it, because the reader can see that for himself.
+There might be an exception when the comment is so long that the
+function itself would be off the bottom of the screen.
+
+ There should be a comment on each static variable as well, like this:
+
+ /* Nonzero means truncate lines in the display;
+ zero means continue them. */
+ int truncate_lines;
+
+ Every `#endif' should have a comment, except in the case of short
+conditionals (just a few lines) that are not nested. The comment should
+state the condition of the conditional that is ending, *including its
+sense*. `#else' should have a comment describing the condition *and
+sense* of the code that follows. For example:
+
+ #ifdef foo
+ ...
+ #else /* not foo */
+ ...
+ #endif /* not foo */
+
+but, by contrast, write the comments this way for a `#ifndef':
+
+ #ifndef foo
+ ...
+ #else /* foo */
+ ...
+ #endif /* foo */
+
diff --git a/util/autoconf/standards.info-2 b/util/autoconf/standards.info-2
new file mode 100644
index 0000000..25570a0
--- /dev/null
+++ b/util/autoconf/standards.info-2
@@ -0,0 +1,1691 @@
+This is Info file ../standards.info, produced by Makeinfo-1.55 from the
+input file ../standards.texi.
+
+START-INFO-DIR-ENTRY
+* Standards: (standards). GNU coding standards.
+END-INFO-DIR-ENTRY
+
+ GNU Coding Standards Copyright (C) 1992, 1993, 1994 Free Software
+Foundation, Inc.
+
+ Permission is granted to make and distribute verbatim copies of this
+manual provided the copyright notice and this permission notice are
+preserved on all copies.
+
+ Permission is granted to copy and distribute modified versions of
+this manual under the conditions for verbatim copying, provided that
+the entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+ Permission is granted to copy and distribute translations of this
+manual into another language, under the above conditions for modified
+versions, except that this permission notice may be stated in a
+translation approved by the Free Software Foundation.
+
+
+File: standards.info, Node: Syntactic Conventions, Next: Names, Prev: Comments, Up: Top
+
+Clean Use of C Constructs
+*************************
+
+ Please explicitly declare all arguments to functions. Don't omit
+them just because they are `int's.
+
+ Declarations of external functions and functions to appear later in
+the source file should all go in one place near the beginning of the
+file (somewhere before the first function definition in the file), or
+else should go in a header file. Don't put `extern' declarations inside
+functions.
+
+ It used to be common practice to use the same local variables (with
+names like `tem') over and over for different values within one
+function. Instead of doing this, it is better declare a separate local
+variable for each distinct purpose, and give it a name which is
+meaningful. This not only makes programs easier to understand, it also
+facilitates optimization by good compilers. You can also move the
+declaration of each local variable into the smallest scope that includes
+all its uses. This makes the program even cleaner.
+
+ Don't use local variables or parameters that shadow global
+identifiers.
+
+ Don't declare multiple variables in one declaration that spans lines.
+Start a new declaration on each line, instead. For example, instead of
+this:
+
+ int foo,
+ bar;
+
+write either this:
+
+ int foo, bar;
+
+or this:
+
+ int foo;
+ int bar;
+
+(If they are global variables, each should have a comment preceding it
+anyway.)
+
+ When you have an `if'-`else' statement nested in another `if'
+statement, always put braces around the `if'-`else'. Thus, never write
+like this:
+
+ if (foo)
+ if (bar)
+ win ();
+ else
+ lose ();
+
+always like this:
+
+ if (foo)
+ {
+ if (bar)
+ win ();
+ else
+ lose ();
+ }
+
+ If you have an `if' statement nested inside of an `else' statement,
+either write `else if' on one line, like this,
+
+ if (foo)
+ ...
+ else if (bar)
+ ...
+
+with its `then'-part indented like the preceding `then'-part, or write
+the nested `if' within braces like this:
+
+ if (foo)
+ ...
+ else
+ {
+ if (bar)
+ ...
+ }
+
+ Don't declare both a structure tag and variables or typedefs in the
+same declaration. Instead, declare the structure tag separately and
+then use it to declare the variables or typedefs.
+
+ Try to avoid assignments inside `if'-conditions. For example, don't
+write this:
+
+ if ((foo = (char *) malloc (sizeof *foo)) == 0)
+ fatal ("virtual memory exhausted");
+
+instead, write this:
+
+ foo = (char *) malloc (sizeof *foo);
+ if (foo == 0)
+ fatal ("virtual memory exhausted");
+
+ Don't make the program ugly to placate `lint'. Please don't insert
+any casts to `void'. Zero without a cast is perfectly fine as a null
+pointer constant.
+
+
+File: standards.info, Node: Names, Next: Using Extensions, Prev: Syntactic Conventions, Up: Top
+
+Naming Variables and Functions
+******************************
+
+ Please use underscores to separate words in a name, so that the Emacs
+word commands can be useful within them. Stick to lower case; reserve
+upper case for macros and `enum' constants, and for name-prefixes that
+follow a uniform convention.
+
+ For example, you should use names like `ignore_space_change_flag';
+don't use names like `iCantReadThis'.
+
+ Variables that indicate whether command-line options have been
+specified should be named after the meaning of the option, not after
+the option-letter. A comment should state both the exact meaning of
+the option and its letter. For example,
+
+ /* Ignore changes in horizontal whitespace (-b). */
+ int ignore_space_change_flag;
+
+ When you want to define names with constant integer values, use
+`enum' rather than `#define'. GDB knows about enumeration constants.
+
+ Use file names of 14 characters or less, to avoid creating gratuitous
+problems on System V. You can use the program `doschk' to test for
+this. `doschk' also tests for potential name conflicts if the files
+were loaded onto an MS-DOS file system--something you may or may not
+care about.
+
+
+File: standards.info, Node: Using Extensions, Next: System Functions, Prev: Names, Up: Top
+
+Using Non-standard Features
+***************************
+
+ Many GNU facilities that already exist support a number of convenient
+extensions over the comparable Unix facilities. Whether to use these
+extensions in implementing your program is a difficult question.
+
+ On the one hand, using the extensions can make a cleaner program.
+On the other hand, people will not be able to build the program unless
+the other GNU tools are available. This might cause the program to
+work on fewer kinds of machines.
+
+ With some extensions, it might be easy to provide both alternatives.
+For example, you can define functions with a "keyword" `INLINE' and
+define that as a macro to expand into either `inline' or nothing,
+depending on the compiler.
+
+ In general, perhaps it is best not to use the extensions if you can
+straightforwardly do without them, but to use the extensions if they
+are a big improvement.
+
+ An exception to this rule are the large, established programs (such
+as Emacs) which run on a great variety of systems. Such programs would
+be broken by use of GNU extensions.
+
+ Another exception is for programs that are used as part of
+compilation: anything that must be compiled with other compilers in
+order to bootstrap the GNU compilation facilities. If these require
+the GNU compiler, then no one can compile them without having them
+installed already. That would be no good.
+
+ Since most computer systems do not yet implement ANSI C, using the
+ANSI C features is effectively using a GNU extension, so the same
+considerations apply. (Except for ANSI features that we discourage,
+such as trigraphs--don't ever use them.)
+
+
+File: standards.info, Node: System Functions, Next: Semantics, Prev: Using Extensions, Up: Top
+
+Calling System Functions
+************************
+
+ C implementations differ substantially. ANSI C reduces but does not
+eliminate the incompatibilities; meanwhile, many users wish to compile
+GNU software with pre-ANSI compilers. This chapter gives
+recommendations for how to use the more or less standard C library
+functions to avoid unnecessary loss of portability.
+
+ * Don't use the value of `sprintf'. It returns the number of
+ characters written on some systems, but not on all systems.
+
+ * Don't declare system functions explicitly.
+
+ Almost any declaration for a system function is wrong on some
+ system. To minimize conflicts, leave it to the system header
+ files to declare system functions. If the headers don't declare a
+ function, let it remain undeclared.
+
+ While it may seem unclean to use a function without declaring it,
+ in practice this works fine for most system library functions on
+ the systems where this really happens. The problem is only
+ theoretical. By contrast, actual declarations have frequently
+ caused actual conflicts.
+
+ * If you must declare a system function, don't specify the argument
+ types. Use an old-style declaration, not an ANSI prototype. The
+ more you specify about the function, the more likely a conflict.
+
+ * In particular, don't unconditionally declare `malloc' or `realloc'.
+
+ Most GNU programs use those functions just once, in functions
+ conventionally named `xmalloc' and `xrealloc'. These functions
+ call `malloc' and `realloc', respectively, and check the results.
+
+ Because `xmalloc' and `xrealloc' are defined in your program, you
+ can declare them in other files without any risk of type conflict.
+
+ On most systems, `int' is the same length as a pointer; thus, the
+ calls to `malloc' and `realloc' work fine. For the few
+ exceptional systems (mostly 64-bit machines), you can use
+ *conditionalized* declarations of `malloc' and `realloc'--or put
+ these declarations in configuration files specific to those
+ systems.
+
+ * The string functions require special treatment. Some Unix systems
+ have a header file `string.h'; other have `strings.h'. Neither
+ file name is portable. There are two things you can do: use
+ Autoconf to figure out which file to include, or don't include
+ either file.
+
+ * If you don't include either strings file, you can't get
+ declarations for the string functions from the header file in the
+ usual way.
+
+ That causes less of a problem than you might think. The newer ANSI
+ string functions are off-limits anyway because many systems still
+ don't support them. The string functions you can use are these:
+
+ strcpy strncpy strcat strncat
+ strlen strcmp strncmp
+ strchr strrchr
+
+ The copy and concatenate functions work fine without a declaration
+ as long as you don't use their values. Using their values without
+ a declaration fails on systems where the width of a pointer
+ differs from the width of `int', and perhaps in other cases. It
+ is trivial to avoid using their values, so do that.
+
+ The compare functions and `strlen' work fine without a declaration
+ on most systems, possibly all the ones that GNU software runs on.
+ You may find it necessary to declare them *conditionally* on a few
+ systems.
+
+ The search functions must be declared to return `char *'. Luckily,
+ there is no variation in the data type they return. But there is
+ variation in their names. Some systems give these functions the
+ names `index' and `rindex'; other systems use the names `strchr'
+ and `strrchr'. Some systems support both pairs of names, but
+ neither pair works on all systems.
+
+ You should pick a single pair of names and use it throughout your
+ program. (Nowadays, it is better to choose `strchr' and
+ `strrchr'.) Declare both of those names as functions returning
+ `char *'. On systems which don't support those names, define them
+ as macros in terms of the other pair. For example, here is what
+ to put at the beginning of your file (or in a header) if you want
+ to use the names `strchr' and `strrchr' throughout:
+
+ #ifndef HAVE_STRCHR
+ #define strchr index
+ #endif
+ #ifndef HAVE_STRRCHR
+ #define strrchr rindex
+ #endif
+
+ char *strchr ();
+ char *strrchr ();
+
+ Here we assume that `HAVE_STRCHR' and `HAVE_STRRCHR' are macros
+defined in systems where the corresponding functions exist. One way to
+get them properly defined is to use Autoconf.
+
+
+File: standards.info, Node: Semantics, Next: Errors, Prev: System Functions, Up: Top
+
+Program Behavior for All Programs
+*********************************
+
+ Avoid arbitrary limits on the length or number of *any* data
+structure, including filenames, lines, files, and symbols, by allocating
+all data structures dynamically. In most Unix utilities, "long lines
+are silently truncated". This is not acceptable in a GNU utility.
+
+ Utilities reading files should not drop NUL characters, or any other
+nonprinting characters *including those with codes above 0177*. The
+only sensible exceptions would be utilities specifically intended for
+interface to certain types of printers that can't handle those
+characters.
+
+ Check every system call for an error return, unless you know you
+wish to ignore errors. Include the system error text (from `perror' or
+equivalent) in *every* error message resulting from a failing system
+call, as well as the name of the file if any and the name of the
+utility. Just "cannot open foo.c" or "stat failed" is not sufficient.
+
+ Check every call to `malloc' or `realloc' to see if it returned
+zero. Check `realloc' even if you are making the block smaller; in a
+system that rounds block sizes to a power of 2, `realloc' may get a
+different block if you ask for less space.
+
+ In Unix, `realloc' can destroy the storage block if it returns zero.
+GNU `realloc' does not have this bug: if it fails, the original block
+is unchanged. Feel free to assume the bug is fixed. If you wish to
+run your program on Unix, and wish to avoid lossage in this case, you
+can use the GNU `malloc'.
+
+ You must expect `free' to alter the contents of the block that was
+freed. Anything you want to fetch from the block, you must fetch before
+calling `free'.
+
+ If `malloc' fails in a noninteractive program, make that a fatal
+error. In an interactive program (one that reads commands from the
+user), it is better to abort the command and return to the command
+reader loop. This allows the user to kill other processes to free up
+virtual memory, and then try the command again.
+
+ Use `getopt_long' to decode arguments, unless the argument syntax
+makes this unreasonable.
+
+ When static storage is to be written in during program execution, use
+explicit C code to initialize it. Reserve C initialized declarations
+for data that will not be changed.
+
+ Try to avoid low-level interfaces to obscure Unix data structures
+(such as file directories, utmp, or the layout of kernel memory), since
+these are less likely to work compatibly. If you need to find all the
+files in a directory, use `readdir' or some other high-level interface.
+These will be supported compatibly by GNU.
+
+ By default, the GNU system will provide the signal handling
+functions of BSD and of POSIX. So GNU software should be written to use
+these.
+
+ In error checks that detect "impossible" conditions, just abort.
+There is usually no point in printing any message. These checks
+indicate the existence of bugs. Whoever wants to fix the bugs will have
+to read the source code and run a debugger. So explain the problem with
+comments in the source. The relevant data will be in variables, which
+are easy to examine with the debugger, so there is no point moving them
+elsewhere.
+
+
+File: standards.info, Node: Errors, Next: Libraries, Prev: Semantics, Up: Top
+
+Formatting Error Messages
+*************************
+
+ Error messages from compilers should look like this:
+
+ SOURCE-FILE-NAME:LINENO: MESSAGE
+
+ Error messages from other noninteractive programs should look like
+this:
+
+ PROGRAM:SOURCE-FILE-NAME:LINENO: MESSAGE
+
+when there is an appropriate source file, or like this:
+
+ PROGRAM: MESSAGE
+
+when there is no relevant source file.
+
+ In an interactive program (one that is reading commands from a
+terminal), it is better not to include the program name in an error
+message. The place to indicate which program is running is in the
+prompt or with the screen layout. (When the same program runs with
+input from a source other than a terminal, it is not interactive and
+would do best to print error messages using the noninteractive style.)
+
+ The string MESSAGE should not begin with a capital letter when it
+follows a program name and/or filename. Also, it should not end with a
+period.
+
+ Error messages from interactive programs, and other messages such as
+usage messages, should start with a capital letter. But they should not
+end with a period.
+
+
+File: standards.info, Node: Libraries, Next: Portability, Prev: Errors, Up: Top
+
+Library Behavior
+****************
+
+ Try to make library functions reentrant. If they need to do dynamic
+storage allocation, at least try to avoid any nonreentrancy aside from
+that of `malloc' itself.
+
+ Here are certain name conventions for libraries, to avoid name
+conflicts.
+
+ Choose a name prefix for the library, more than two characters long.
+All external function and variable names should start with this prefix.
+In addition, there should only be one of these in any given library
+member. This usually means putting each one in a separate source file.
+
+ An exception can be made when two external symbols are always used
+together, so that no reasonable program could use one without the
+other; then they can both go in the same file.
+
+ External symbols that are not documented entry points for the user
+should have names beginning with `_'. They should also contain the
+chosen name prefix for the library, to prevent collisions with other
+libraries. These can go in the same files with user entry points if
+you like.
+
+ Static functions and variables can be used as you like and need not
+fit any naming convention.
+
+
+File: standards.info, Node: Portability, Next: User Interfaces, Prev: Libraries, Up: Top
+
+Portability As It Applies to GNU
+********************************
+
+ Much of what is called "portability" in the Unix world refers to
+porting to different Unix versions. This is a secondary consideration
+for GNU software, because its primary purpose is to run on top of one
+and only one kernel, the GNU kernel, compiled with one and only one C
+compiler, the GNU C compiler. The amount and kinds of variation among
+GNU systems on different cpu's will be like the variation among Berkeley
+4.3 systems on different cpu's.
+
+ All users today run GNU software on non-GNU systems. So supporting a
+variety of non-GNU systems is desirable; simply not paramount. The
+easiest way to achieve portability to a reasonable range of systems is
+to use Autoconf. It's unlikely that your program needs to know more
+information about the host machine than Autoconf can provide, simply
+because most of the programs that need such knowledge have already been
+written.
+
+ It is difficult to be sure exactly what facilities the GNU kernel
+will provide, since it isn't finished yet. Therefore, assume you can
+use anything in 4.3; just avoid using the format of semi-internal data
+bases (e.g., directories) when there is a higher-level alternative
+(`readdir').
+
+ You can freely assume any reasonably standard facilities in the C
+language, libraries or kernel, because we will find it necessary to
+support these facilities in the full GNU system, whether or not we have
+already done so. The fact that there may exist kernels or C compilers
+that lack these facilities is irrelevant as long as the GNU kernel and
+C compiler support them.
+
+ It remains necessary to worry about differences among cpu types, such
+as the difference in byte ordering and alignment restrictions. It's
+unlikely that 16-bit machines will ever be supported by GNU, so there
+is no point in spending any time to consider the possibility that an
+int will be less than 32 bits.
+
+ You can assume that all pointers have the same format, regardless of
+the type they point to, and that this is really an integer. There are
+some weird machines where this isn't true, but they aren't important;
+don't waste time catering to them. Besides, eventually we will put
+function prototypes into all GNU programs, and that will probably make
+your program work even on weird machines.
+
+ Since some important machines (including the 68000) are big-endian,
+it is important not to assume that the address of an `int' object is
+also the address of its least-significant byte. Thus, don't make the
+following mistake:
+
+ int c;
+ ...
+ while ((c = getchar()) != EOF)
+ write(file_descriptor, &c, 1);
+
+ You can assume that it is reasonable to use a meg of memory. Don't
+strain to reduce memory usage unless it can get to that level. If your
+program creates complicated data structures, just make them in core and
+give a fatal error if malloc returns zero.
+
+ If a program works by lines and could be applied to arbitrary
+user-supplied input files, it should keep only a line in memory, because
+this is not very hard and users will want to be able to operate on input
+files that are bigger than will fit in core all at once.
+
+
+File: standards.info, Node: User Interfaces, Next: Documentation, Prev: Portability, Up: Top
+
+Standards for Command Line Interfaces
+*************************************
+
+ Please don't make the behavior of a utility depend on the name used
+to invoke it. It is useful sometimes to make a link to a utility with
+a different name, and that should not change what it does.
+
+ Instead, use a run time option or a compilation switch or both to
+select among the alternate behaviors.
+
+ Likewise, please don't make the behavior of the program depend on the
+type of output device it is used with. Device independence is an
+important principle of the system's design; do not compromise it merely
+to save someone from typing an option now and then.
+
+ If you think one behavior is most useful when the output is to a
+terminal, and another is most useful when the output is a file or a
+pipe, then it is usually best to make the default behavior the one that
+is useful with output to a terminal, and have an option for the other
+behavior.
+
+ Compatibility requires certain programs to depend on the type of
+output device. It would be disastrous if `ls' or `sh' did not do so in
+the way all users expect. In some of these cases, we supplement the
+program with a preferred alternate version that does not depend on the
+output device type. For example, we provide a `dir' program much like
+`ls' except that its default output format is always multi-column
+format.
+
+ It is a good idea to follow the POSIX guidelines for the
+command-line options of a program. The easiest way to do this is to use
+`getopt' to parse them. Note that the GNU version of `getopt' will
+normally permit options anywhere among the arguments unless the special
+argument `--' is used. This is not what POSIX specifies; it is a GNU
+extension.
+
+ Please define long-named options that are equivalent to the
+single-letter Unix-style options. We hope to make GNU more user
+friendly this way. This is easy to do with the GNU function
+`getopt_long'.
+
+ One of the advantages of long-named options is that they can be
+consistent from program to program. For example, users should be able
+to expect the "verbose" option of any GNU program which has one, to be
+spelled precisely `--verbose'. To achieve this uniformity, look at the
+table of common long-option names when you choose the option names for
+your program. The table appears below.
+
+ If you use names not already in the table, please send
+`gnu@prep.ai.mit.edu' a list of them, with their meanings, so we can
+update the table.
+
+ It is usually a good idea for file names given as ordinary arguments
+to be input files only; any output files would be specified using
+options (preferably `-o'). Even if you allow an output file name as an
+ordinary argument for compatibility, try to provide a suitable option
+as well. This will lead to more consistency among GNU utilities, so
+that there are fewer idiosyncracies for users to remember.
+
+ Programs should support an option `--version' which prints the
+program's version number on standard output and exits successfully, and
+an option `--help' which prints option usage information on standard
+output and exits successfully. These options should inhibit the normal
+function of the command; they should do nothing except print the
+requested information.
+
+`auto-check'
+ `-a' in `recode'.
+
+`auto-reference'
+ `-A' in `ptx'.
+
+`after-date'
+ `-N' in `tar'.
+
+`all'
+ `-a' in `du', `ls', `nm', `stty', `uname', and `unexpand'.
+
+`all-text'
+ `-a' in `diff'.
+
+`almost-all'
+ `-A' in `ls'.
+
+`append'
+ `-a' in `etags', `tee', `time'; `-r' in `tar'.
+
+`archive'
+ `-a' in `cp'.
+
+`archive-name'
+ `-n' in `shar'.
+
+`arglength'
+ `-l' in `m4'.
+
+`ascii'
+ `-a' in `diff'.
+
+`assume-new'
+ `-W' in Make.
+
+`assume-old'
+ `-o' in Make.
+
+`backward-search'
+ `-B' in etags.
+
+`basename'
+ `-f' in `shar'.
+
+`batch'
+ Used in GDB.
+
+`baud'
+ Used in GDB.
+
+`before'
+ `-b' in `tac'.
+
+`binary'
+ `-b' in `cpio' and `diff'.
+
+`bits-per-code'
+ `-b' in `shar'.
+
+`block-size'
+ Used in `cpio' and `tar'.
+
+`blocks'
+ `-b' in `head' and `tail'.
+
+`break-file'
+ `-b' in `ptx'.
+
+`brief'
+ Used in various programs to make output shorter.
+
+`bytes'
+ `-c' in `head', `split', and `tail'.
+
+`c++'
+ `-C' in `etags'.
+
+`catenate'
+ `-A' in `tar'.
+
+`cd'
+ Used in various programs to specify the directory to use.
+
+`changes'
+ `-c' in `chgrp' and `chown'.
+
+`classify'
+ `-F' in `ls'.
+
+`colons'
+ `-c' in `recode'.
+
+`command'
+ `-c' in `su'; `-x' in GDB.
+
+`compare'
+ `-d' in `tar'.
+
+`compress'
+ `-Z' in `tar' and `shar'.
+
+`concatenate'
+ `-A' in `tar'.
+
+`confirmation'
+ `-w' in `tar'.
+
+`context'
+ Used in `diff'.
+
+`copyright'
+ `-C' in `ptx' and `recode'.
+
+`core'
+ Used in GDB.
+
+`count'
+ `-q' in `who'.
+
+`count-links'
+ `-l' in `du'.
+
+`create'
+ Used in `tar' and `cpio'.
+
+`cut-mark'
+ `-c' in `shar'.
+
+`cxref'
+ `-x' in `etags'.
+
+`date'
+ `-d' in `touch'.
+
+`debug'
+ `-d' in Make and `m4'; `-t' in Bison.
+
+`define'
+ `-D' in `m4'.
+
+`defines'
+ `-d' in Bison and `etags'.
+
+`delete'
+ `-D' in `tar'.
+
+`dereference'
+ `-L' in `chgrp', `chown', `cpio', `du', `ls', and `tar'.
+
+`dereference-args'
+ `-D' in `du'.
+
+`diacritics'
+ `-d' in `recode'.
+
+`dictionary-order'
+ `-d' in `look'.
+
+`diff'
+ `-d' in `tar'.
+
+`digits'
+ `-n' in `csplit'.
+
+`directory'
+ Specify the directory to use, in various programs. In `ls', it
+ means to show directories themselves rather than their contents.
+ In `rm' and `ln', it means to not treat links to directories
+ specially.
+
+`discard-all'
+ `-x' in `strip'.
+
+`discard-locals'
+ `-X' in `strip'.
+
+`diversions'
+ `-N' in `m4'.
+
+`dry-run'
+ `-n' in Make.
+
+`ed'
+ `-e' in `diff'.
+
+`elide-empty-files'
+ `-z' in `csplit'.
+
+`entire-new-file'
+ `-N' in `diff'.
+
+`environment-overrides'
+ `-e' in Make.
+
+`eof'
+ `-e' in `xargs'.
+
+`epoch'
+ Used in GDB.
+
+`error-limit'
+ Used in Makeinfo.
+
+`error-output'
+ `-o' in `m4'.
+
+`escape'
+ `-b' in `ls'.
+
+`exclude-from'
+ `-X' in `tar'.
+
+`exec'
+ Used in GDB.
+
+`exit'
+ `-x' in `xargs'.
+
+`exit-0'
+ `-e' in `unshar'.
+
+`expand-tabs'
+ `-t' in `diff'.
+
+`expression'
+ `-e' in `sed'.
+
+`extern-only'
+ `-g' in `nm'.
+
+`extract'
+ `-i' in `cpio'; `-x' in `tar'.
+
+`faces'
+ `-f' in `finger'.
+
+`fast'
+ `-f' in `su'.
+
+`fatal-warnings'
+ `-E' in `m4'.
+
+`file'
+ `-f' in `info', Make, `mt', and `tar'; `-n' in `sed'; `-r' in
+ `touch'.
+
+`file-prefix'
+ `-b' in Bison.
+
+`file-type'
+ `-F' in `ls'.
+
+`files-from'
+ `-T' in `tar'.
+
+`fill-column'
+ Used in Makeinfo.
+
+`flag-truncation'
+ `-F' in `ptx'.
+
+`fixed-output-files'
+ `-y' in Bison.
+
+`follow'
+ `-f' in `tail'.
+
+`footnote-style'
+ Used in Makeinfo.
+
+`force'
+ `-f' in `cp', `ln', `mv', and `rm'.
+
+`force-prefix'
+ `-F' in `shar'.
+
+`format'
+ Used in `ls', `time', and `ptx'.
+
+`forward-search'
+ `-F' in `etags'.
+
+`fullname'
+ Used in GDB.
+
+`gap-size'
+ `-g' in `ptx'.
+
+`get'
+ `-x' in `tar'.
+
+`graphic'
+ `-i' in `ul'.
+
+`graphics'
+ `-g' in `recode'.
+
+`group'
+ `-g' in `install'.
+
+`gzip'
+ `-z' in `tar' and `shar'.
+
+`hashsize'
+ `-H' in `m4'.
+
+`header'
+ `-h' in `objdump' and `recode'
+
+`heading'
+ `-H' in `who'.
+
+`help'
+ Used to ask for brief usage information.
+
+`here-delimiter'
+ `-d' in `shar'.
+
+`hide-control-chars'
+ `-q' in `ls'.
+
+`idle'
+ `-u' in `who'.
+
+`ifdef'
+ `-D' in `diff'.
+
+`ignore'
+ `-I' in `ls'; `-x' in `recode'.
+
+`ignore-all-space'
+ `-w' in `diff'.
+
+`ignore-backups'
+ `-B' in `ls'.
+
+`ignore-blank-lines'
+ `-B' in `diff'.
+
+`ignore-case'
+ `-f' in `look' and `ptx'; `-i' in `diff'.
+
+`ignore-errors'
+ `-i' in Make.
+
+`ignore-file'
+ `-i' in `ptx'.
+
+`ignore-indentation'
+ `-S' in `etags'.
+
+`ignore-init-file'
+ `-f' in Oleo.
+
+`ignore-interrupts'
+ `-i' in `tee'.
+
+`ignore-matching-lines'
+ `-I' in `diff'.
+
+`ignore-space-change'
+ `-b' in `diff'.
+
+`ignore-zeros'
+ `-i' in `tar'.
+
+`include'
+ `-i' in `etags'; `-I' in `m4'.
+
+`include-dir'
+ `-I' in Make.
+
+`incremental'
+ `-G' in `tar'.
+
+`info'
+ `-i', `-l', and `-m' in Finger.
+
+`initial'
+ `-i' in `expand'.
+
+`initial-tab'
+ `-T' in `diff'.
+
+`inode'
+ `-i' in `ls'.
+
+`interactive'
+ `-i' in `cp', `ln', `mv', `rm'; `-e' in `m4'; `-p' in `xargs';
+ `-w' in `tar'.
+
+`intermix-type'
+ `-p' in `shar'.
+
+`jobs'
+ `-j' in Make.
+
+`just-print'
+ `-n' in Make.
+
+`keep-going'
+ `-k' in Make.
+
+`keep-files'
+ `-k' in `csplit'.
+
+`kilobytes'
+ `-k' in `du' and `ls'.
+
+`level-for-gzip'
+ `-g' in `shar'.
+
+`line-bytes'
+ `-C' in `split'.
+
+`lines'
+ Used in `split', `head', and `tail'.
+
+`link'
+ `-l' in `cpio'.
+
+`list'
+ `-t' in `cpio'; `-l' in `recode'.
+
+`list'
+ `-t' in `tar'.
+
+`literal'
+ `-N' in `ls'.
+
+`load-average'
+ `-l' in Make.
+
+`login'
+ Used in `su'.
+
+`machine'
+ No listing of which programs already use this; someone should
+ check to see if any actually do and tell `gnu@prep.ai.mit.edu'.
+
+`macro-name'
+ `-M' in `ptx'.
+
+`mail'
+ `-m' in `hello' and `uname'.
+
+`make-directories'
+ `-d' in `cpio'.
+
+`makefile'
+ `-f' in Make.
+
+`mapped'
+ Used in GDB.
+
+`max-args'
+ `-n' in `xargs'.
+
+`max-chars'
+ `-n' in `xargs'.
+
+`max-lines'
+ `-l' in `xargs'.
+
+`max-load'
+ `-l' in Make.
+
+`max-procs'
+ `-P' in `xargs'.
+
+`mesg'
+ `-T' in `who'.
+
+`message'
+ `-T' in `who'.
+
+`minimal'
+ `-d' in `diff'.
+
+`mixed-uuencode'
+ `-M' in `shar'.
+
+`mode'
+ `-m' in `install', `mkdir', and `mkfifo'.
+
+`modification-time'
+ `-m' in `tar'.
+
+`multi-volume'
+ `-M' in `tar'.
+
+`name-prefix'
+ `-a' in Bison.
+
+`nesting-limit'
+ `-L' in `m4'.
+
+`net-headers'
+ `-a' in `shar'.
+
+`new-file'
+ `-W' in Make.
+
+`no-builtin-rules'
+ `-r' in Make.
+
+`no-character-count'
+ `-w' in `shar'.
+
+`no-check-existing'
+ `-x' in `shar'.
+
+`no-create'
+ `-c' in `touch'.
+
+`no-defines'
+ `-D' in `etags'.
+
+`no-dereference'
+ `-d' in `cp'.
+
+`no-keep-going'
+ `-S' in Make.
+
+`no-lines'
+ `-l' in Bison.
+
+`no-piping'
+ `-P' in `shar'.
+
+`no-prof'
+ `-e' in `gprof'.
+
+`no-sort'
+ `-p' in `nm'.
+
+`no-split'
+ Used in Makeinfo.
+
+`no-static'
+ `-a' in `gprof'.
+
+`no-time'
+ `-E' in `gprof'.
+
+`no-timestamp'
+ `-m' in `shar'.
+
+`no-validate'
+ Used in Makeinfo.
+
+`no-verbose'
+ `-v' in `shar'.
+
+`no-warn'
+ Used in various programs to inhibit warnings.
+
+`node'
+ `-n' in `info'.
+
+`nodename'
+ `-n' in `uname'.
+
+`nonmatching'
+ `-f' in `cpio'.
+
+`nstuff'
+ `-n' in `objdump'.
+
+`null'
+ `-0' in `xargs'.
+
+`number'
+ `-n' in `cat'.
+
+`number-nonblank'
+ `-b' in `cat'.
+
+`numeric-sort'
+ `-n' in `nm'.
+
+`numeric-uid-gid'
+ `-n' in `cpio' and `ls'.
+
+`nx'
+ Used in GDB.
+
+`old-archive'
+ `-o' in `tar'.
+
+`old-file'
+ `-o' in Make.
+
+`one-file-system'
+ `-l' in `tar', `cp', and `du'.
+
+`only-file'
+ `-o' in `ptx'.
+
+`only-prof'
+ `-f' in `gprof'.
+
+`only-time'
+ `-F' in `gprof'.
+
+`output'
+ In various programs, specify the output file name.
+
+`output-prefix'
+ `-o' in `shar'.
+
+`override'
+ `-o' in `rm'.
+
+`overwrite'
+ `-c' in `unshar'.
+
+`owner'
+ `-o' in `install'.
+
+`paginate'
+ `-l' in `diff'.
+
+`paragraph-indent'
+ Used in Makeinfo.
+
+`parents'
+ `-p' in `mkdir' and `rmdir'.
+
+`pass-all'
+ `-p' in `ul'.
+
+`pass-through'
+ `-p' in `cpio'.
+
+`port'
+ `-P' in `finger'.
+
+`portability'
+ `-c' in `cpio' and `tar'.
+
+`prefix-builtins'
+ `-P' in `m4'.
+
+`prefix'
+ `-f' in `csplit'.
+
+`preserve'
+ Used in `tar' and `cp'.
+
+`preserve-environment'
+ `-p' in `su'.
+
+`preserve-modification-time'
+ `-m' in `cpio'.
+
+`preserve-order'
+ `-s' in `tar'.
+
+`preserve-permissions'
+ `-p' in `tar'.
+
+`print'
+ `-l' in `diff'.
+
+`print-chars'
+ `-L' in `cmp'.
+
+`print-data-base'
+ `-p' in Make.
+
+`print-directory'
+ `-w' in Make.
+
+`print-file-name'
+ `-o' in `nm'.
+
+`print-symdefs'
+ `-s' in `nm'.
+
+`query-user'
+ `-X' in `shar'.
+
+`question'
+ `-q' in Make.
+
+`quiet'
+ Used in many programs to inhibit the usual output. *Note:* every
+ program accepting `--quiet' should accept `--silent' as a synonym.
+
+`quote-name'
+ `-Q' in `ls'.
+
+`rcs'
+ `-n' in `diff'.
+
+`read-full-blocks'
+ `-B' in `tar'.
+
+`readnow'
+ Used in GDB.
+
+`recon'
+ `-n' in Make.
+
+`record-number'
+ `-R' in `tar'.
+
+`recursive'
+ Used in `chgrp', `chown', `cp', `ls', `diff', and `rm'.
+
+`reference-limit'
+ Used in Makeinfo.
+
+`references'
+ `-r' in `ptx'.
+
+`regex'
+ `-r' in `tac'.
+
+`release'
+ `-r' in `uname'.
+
+`relocation'
+ `-r' in `objdump'.
+
+`rename'
+ `-r' in `cpio'.
+
+`replace'
+ `-i' in `xargs'.
+
+`report-identical-files'
+ `-s' in `diff'.
+
+`reset-access-time'
+ `-a' in `cpio'.
+
+`reverse'
+ `-r' in `ls' and `nm'.
+
+`reversed-ed'
+ `-f' in `diff'.
+
+`right-side-defs'
+ `-R' in `ptx'.
+
+`same-order'
+ `-s' in `tar'.
+
+`same-permissions'
+ `-p' in `tar'.
+
+`save'
+ `-g' in `stty'.
+
+`se'
+ Used in GDB.
+
+`sentence-regexp'
+ `-S' in `ptx'.
+
+`separate-dirs'
+ `-S' in `du'.
+
+`separator'
+ `-s' in `tac'.
+
+`sequence'
+ Used by `recode' to chose files or pipes for sequencing passes.
+
+`shell'
+ `-s' in `su'.
+
+`show-all'
+ `-A' in `cat'.
+
+`show-c-function'
+ `-p' in `diff'.
+
+`show-ends'
+ `-E' in `cat'.
+
+`show-function-line'
+ `-F' in `diff'.
+
+`show-tabs'
+ `-T' in `cat'.
+
+`silent'
+ Used in many programs to inhibit the usual output. *Note:* every
+ program accepting `--silent' should accept `--quiet' as a synonym.
+
+`size'
+ `-s' in `ls'.
+
+`sort'
+ Used in `ls'.
+
+`sparse'
+ `-S' in `tar'.
+
+`speed-large-files'
+ `-H' in `diff'.
+
+`split-at'
+ `-E' in `unshar'.
+
+`split-size-limit'
+ `-L' in `shar'.
+
+`squeeze-blank'
+ `-s' in `cat'.
+
+`starting-file'
+ Used in `tar' and `diff' to specify which file within a directory
+ to start processing with.
+
+`stdin-file-list'
+ `-S' in `shar'.
+
+`stop'
+ `-S' in Make.
+
+`strict'
+ `-s' in `recode'.
+
+`strip'
+ `-s' in `install'.
+
+`strip-all'
+ `-s' in `strip'.
+
+`strip-debug'
+ `-S' in `strip'.
+
+`submitter'
+ `-s' in `shar'.
+
+`suffix'
+ `-S' in `cp', `ln', `mv'.
+
+`suffix-format'
+ `-b' in `csplit'.
+
+`sum'
+ `-s' in `gprof'.
+
+`summarize'
+ `-s' in `du'.
+
+`symbolic'
+ `-s' in `ln'.
+
+`symbols'
+ Used in GDB and `objdump'.
+
+`synclines'
+ `-s' in `m4'.
+
+`sysname'
+ `-s' in `uname'.
+
+`tabs'
+ `-t' in `expand' and `unexpand'.
+
+`tabsize'
+ `-T' in `ls'.
+
+`terminal'
+ `-T' in `tput' and `ul'.
+
+`text'
+ `-a' in `diff'.
+
+`text-files'
+ `-T' in `shar'.
+
+`time'
+ Used in `ls' and `touch'.
+
+`to-stdout'
+ `-O' in `tar'.
+
+`total'
+ `-c' in `du'.
+
+`touch'
+ `-t' in Make, `ranlib', and `recode'.
+
+`trace'
+ `-t' in `m4'.
+
+`traditional'
+ `-t' in `hello'; `-G' in `m4' and `ptx'.
+
+`tty'
+ Used in GDB.
+
+`typedefs'
+ `-t' in `etags'.
+
+`typedefs-and-c++'
+ `-T' in `etags'.
+
+`typeset-mode'
+ `-t' in `ptx'.
+
+`uncompress'
+ `-z' in `tar'.
+
+`unconditional'
+ `-u' in `cpio'.
+
+`undefine'
+ `-U' in `m4'.
+
+`undefined-only'
+ `-u' in `nm'.
+
+`update'
+ `-u' in `cp', `etags', `mv', `tar'.
+
+`uuencode'
+ `-B' in `shar'.
+
+`vanilla-operation'
+ `-V' in `shar'.
+
+`verbose'
+ Print more information about progress. Many programs support this.
+
+`verify'
+ `-W' in `tar'.
+
+`version'
+ Print the version number.
+
+`version-control'
+ `-V' in `cp', `ln', `mv'.
+
+`vgrind'
+ `-v' in `etags'.
+
+`volume'
+ `-V' in `tar'.
+
+`what-if'
+ `-W' in Make.
+
+`whole-size-limit'
+ `-l' in `shar'.
+
+`width'
+ `-w' in `ls' and `ptx'.
+
+`word-regexp'
+ `-W' in `ptx'.
+
+`writable'
+ `-T' in `who'.
+
+`zeros'
+ `-z' in `gprof'.
+
+
+File: standards.info, Node: Documentation, Next: Releases, Prev: User Interfaces, Up: Top
+
+Documenting Programs
+********************
+
+ Please use Texinfo for documenting GNU programs. See the Texinfo
+manual, either the hardcopy or the version in the GNU Emacs Info
+subsystem (`C-h i'). See existing GNU Texinfo files (e.g., those under
+the `man/' directory in the GNU Emacs distribution) for examples.
+
+ The title page of the manual should state the version of the program
+which the manual applies to. The Top node of the manual should also
+contain this information. If the manual is changing more frequently
+than or independent of the program, also state a version number for the
+manual in both of these places.
+
+ The manual should document all command-line arguments and all
+commands. It should give examples of their use. But don't organize
+the manual as a list of features. Instead, organize it by the concepts
+a user will have before reaching that point in the manual. Address the
+goals that a user will have in mind, and explain how to accomplish
+them. Don't use Unix man pages as a model for how to write GNU
+documentation; they are a bad example to follow.
+
+ The manual should have a node named `PROGRAM Invocation' or
+`Invoking PROGRAM', where PROGRAM stands for the name of the program
+being described, as you would type it in the shell to run the program.
+This node (together with its subnodes, if any) should describe the
+program's command line arguments and how to run it (the sort of
+information people would look in a man page for). Start with an
+`@example' containing a template for all the options and arguments that
+the program uses.
+
+ Alternatively, put a menu item in some menu whose item name fits one
+of the above patterns. This identifies the node which that item points
+to as the node for this purpose, regardless of the node's actual name.
+
+ There will be automatic features for specifying a program name and
+quickly reading just this part of its manual.
+
+ If one manual describes several programs, it should have such a node
+for each program described.
+
+ In addition to its manual, the package should have a file named
+`NEWS' which contains a list of user-visible changes worth mentioning.
+In each new release, add items to the front of the file and identify
+the version they pertain to. Don't discard old items; leave them in
+the file after the newer items. This way, a user upgrading from any
+previous version can see what is new.
+
+ If the `NEWS' file gets very long, move some of the older items into
+a file named `ONEWS' and put a note at the end referring the user to
+that file.
+
+ Please do not use the term "pathname" that is used in Unix
+documentation; use "file name" (two words) instead. We use the term
+"path" only for search paths, which are lists of file names.
+
+ It is ok to supply a man page for the program as well as a Texinfo
+manual if you wish to. But keep in mind that supporting a man page
+requires continual effort, each time the program is changed. Any time
+you spend on the man page is time taken away from more useful things you
+could contribute.
+
+ Thus, even if a user volunteers to donate a man page, you may find
+this gift costly to accept. Unless you have time on your hands, it may
+be better to refuse the man page unless the same volunteer agrees to
+take full responsibility for maintaining it--so that you can wash your
+hands of it entirely. If the volunteer ceases to do the job, then
+don't feel obliged to pick it up yourself; it may be better to withdraw
+the man page until another volunteer offers to carry on with it.
+
+ Alternatively, if you expect the discrepancies to be small enough
+that the man page remains useful, put a prominent note near the
+beginning of the man page explaining that you don't maintain it and
+that the Texinfo manual is more authoritative, and describing how to
+access the Texinfo documentation.
+
+
+File: standards.info, Node: Releases, Prev: Documentation, Up: Top
+
+Making Releases
+***************
+
+ Package the distribution of Foo version 69.96 in a gzipped tar file
+named `foo-69.96.tar.gz'. It should unpack into a subdirectory named
+`foo-69.96'.
+
+ Building and installing the program should never modify any of the
+files contained in the distribution. This means that all the files
+that form part of the program in any way must be classified into "source
+files" and "non-source files". Source files are written by humans and
+never changed automatically; non-source files are produced from source
+files by programs under the control of the Makefile.
+
+ Naturally, all the source files must be in the distribution. It is
+okay to include non-source files in the distribution, provided they are
+up-to-date and machine-independent, so that building the distribution
+normally will never modify them. We commonly include non-source files
+produced by Bison, Lex, TeX, and Makeinfo; this helps avoid unnecessary
+dependencies between our distributions, so that users can install
+whichever packages they want to install.
+
+ Non-source files that might actually be modified by building and
+installing the program should *never* be included in the distribution.
+So if you do distribute non-source files, always make sure they are up
+to date when you make a new distribution.
+
+ Make sure that the directory into which the distribution unpacks (as
+well as any subdirectories) are all world-writable (octal mode 777).
+This is so that old versions of `tar' which preserve the ownership and
+permissions of the files from the tar archive will be able to extract
+all the files even if the user is unprivileged.
+
+ Make sure that all the files in the distribution are world-readable.
+
+ Make sure that no file name in the distribution is more than 14
+characters long. Likewise, no file created by building the program
+should have a name longer than 14 characters. The reason for this is
+that some systems adhere to a foolish interpretation of the POSIX
+standard, and refuse to open a longer name, rather than truncating as
+they did in the past.
+
+ Don't include any symbolic links in the distribution itself. If the
+tar file contains symbolic links, then people cannot even unpack it on
+systems that don't support symbolic links. Also, don't use multiple
+names for one file in different directories, because certain file
+systems cannot handle this and that prevents unpacking the distribution.
+
+ Try to make sure that all the file names will be unique on MS-DOG. A
+name on MS-DOG consists of up to 8 characters, optionally followed by a
+period and up to three characters. MS-DOG will truncate extra
+characters both before and after the period. Thus, `foobarhacker.c'
+and `foobarhacker.o' are not ambiguous; they are truncated to
+`foobarha.c' and `foobarha.o', which are distinct.
+
+ Include in your distribution a copy of the `texinfo.tex' you used to
+test print any `*.texinfo' files.
+
+ Likewise, if your program uses small GNU software packages like
+regex, getopt, obstack, or termcap, include them in the distribution
+file. Leaving them out would make the distribution file a little
+smaller at the expense of possible inconvenience to a user who doesn't
+know what other files to get.
+
+