"HP" and "HP-UX". Remove mention of OSF; the old version wasn't
quite right (it talked about "OSF/Tru64", even though the
operating systems were called OSF/1, Digital UNIX, and Tru64 UNIX,
and it even mentioned "OSF 4"!) and at this point there's little
reason to talk about OSF any more, since it died in 1994.
(Specific Compiler Characteristics): Simplify example of
negative-size array.
(File Descriptors): Reorder to make the text flow better.
Remove joke about "appreciate the various levels"; I didn't get it.
Add remark about HP-UX sh -x bug with stderr noted by Bob Proulx in
<http://lists.gnu.org/archive/html/bug-coreutils/2006-06/msg00225.html>.
(File Descriptors, Limitations of Usual Tools):
Tone down the advice against renaming or removing open files.
(Limitations of Usual Tools): Add a new section, on 'rm'.
datarootdir-related errors only if AC_DATAROOTDIR_CHECKED is
not defined.
* doc/autoconf.texi (Changed Directory Variables): New node,
to document the whole `datarootdir' business a bit better.
* NEWS: Update.
* tests/torture.at (datarootdir workaround): Extend test.
Prompted by report by Alexandre Julliard.
Problem reported by Eric Blake.
* doc/autoconf.texi: Likewise.
Use @acronym around BSD, GCC, and GNU when appropriate.
(Why GNU M4): Renamed from "Why GNU m4".
(Redefined M4 Macros): Mention that Posix
m4wrap takes only 1 argument, but GNU M4 1.4.x takes more.
(Buffer Overruns): Mention size_t and ptrdiff_t as alternatives
to int.
* doc/autoconf.texi (): Likewise.
Rework example of m4wrap token-pasting trouble so that it doesn't
care whether it's LIFO or FIFO.
Fix some "contrary to"s that are awkward in English.
(Installation Directory Variables, Build Directories):
(Automatic Remaking, Subdirectories, Fortran Compiler):
(Making testsuite Scripts, Defining Directories):
Quote variable usages better.
(Installation Directory Variables): Fix table item font.
Reword slightly to clarify. Generalize advice about
not using special characters to include all file-related
vars, not just VPATH.
(Special Chars in Variables): Warn about special characters in
$(srcdir) too.
(Assignments): Clarify default-value example as suggested by
Ralf Wildenhues in
<http://lists.gnu.org/archive/html/autoconf-patches/2006-06/msg00072.html>.
(Special Shell Variables): Note leading ./ or ../, as suggested
by Stepan Kasal.
(Limitations of Builtins): Under cd, warn about CDPATH.
(The Make Macro MAKEFLAGS): Untabify. Problem reported by
Ralf Wildenhues.
many suggested by Ralf Wildenhues.
Reword to avoid "@code{...}'s" and the like, since it's ugly
with Emacs info mode. discontents -> woes.
Put a few "will"s back. time stamp -> timestamp.
side-effect -> side effect.
follows. Use "makefile" when talking about makefiles
generally (which might be named "makefile" or "Makefile" or even
"foo.mk"), "Makefile" when talking about a specific makefile
called "Makefile". This unclutters the text from weird quotes
(e.g., "`Makefile's" in info mode). Similarly, use "@var{foo}
values" rather than "@var{foo}s" and similar constructs containing
"}s". Use "Make rules" rather than "Makefile rules". Minor
English-language improvements. Change the prefix "sub-" to "sub"
and "re-" to "re".
Put blank lines around examples more consistently.
Avoid "rather" and "very" as intensifiers.
Avoid "will" as an auxiliary.
(Limitations of Make): Split this node into....
(Portable Make, $< in Ordinary Make Rules, Failure in Make Rules):
(Leading _ in Macro Names, Backslash-Newline-Newline):
(Backslash-Newline Comments, Long Lines in Makefiles):
(Macros and Submakes, The Make Macro SHELL, Comments in Make Rules):
(obj/ and Make, make -k Status, VPATH and Make):
(VPATH and Double-colon, $< in Explicit Rules):
(Automatic Rule Rewriting, OSF/Tru64 Directory Magic):
(Make Target Lookup, Single Suffix Rules, Timestamps and Make):
New nodes, resulting from splitup of Limitations of Make.
All cross-references changed. Raise the top node from
a section to a chapter, and all subnodes accordingly.
Redo the introductory wording to match the new organization.
(Installation Directory Variables): Use an example that is
closer to what Autoconf actually does. Mention that VPATH's
value should not contain metacharacters or white space.
(Fortran Compiler): Fix a VPATH bug in an example.
(Leading _ in Macro Names): Mention that this problem is no longer
of practical concern.
(VPATH and Make): Reword the advice to make it clearer
that Autoconf and Automake support VPATH in non-GNU make, but
many packages have bugs in this area.
($< in Explicit Rules): Refer to Build Directories rather
than using a (non-VPATH-safe) example.
(Automatic Rule Rewriting): Mention the sort of disaster that
can ensue with Solaris-style rule rewriting with VPATH.
Drop extra @samp from `@table @samp' item.
(Limitations of Usual Tools): Comment fix.
Do not nest @samp just to point to other table items.
(Writing testsuite.at) <AT_CHECK>: The second argument to
`@dvar' is already @samp'ed.
(Making testsuite Scripts) <AC_CONFIG_TESTDIR>: Likewise,
do not use @var in the second argument.
Mention that some macros are now documented to be obsolescent.
* doc/autoconf.texi:
Prefer "current" to "modern" to describe
currently-used (albeit perhaps old-fashioned) hosts.
Mention which ancient features no longer need to be worried about.
setgid -> set-group-ID
setuid -> set-user-ID (these are the Posix terms)
Fix some misuses of "only".
(AC_C_BACKSLASH_A, AC_C_CONST, AC_C_PROTOTYPES):
(AC_C_STRINGIZE, AC_C_VOLATILE, AC_FUNC_CLOSEDIR_VOID):
(AC_FUNC_GETPGRP, AC_FUNC_LSTAT, AC_FUNC_MEMCMP):
(AC_FUNC_SELECT_ARGTYPES, AC_FUNC_SETPGRP):
(AC_FUNC_SETVBUF_REVERSED, AC_FUNC_STAT, AC_FUNC_STRFTIME):
(AC_FUNC_STRNLEN, AC_FUNC_UTIME_NULL, AC_FUNC_VPRINTF):
(AC_HEADER_DIRENT, AC_HEADER_STAT, AC_HEADER_STDC):
(AC_HEADER_SYS_WAIT, AC_HEADER_TIME, AC_ISC_POSIX):
(AC_PROG_GCC_TRADITIONAL, AC_STRUCT_TM):
Mention that these macros are obsolescent.
(Installation Directory Variables): shall -> should
(File Descriptors): Mention that 0, 1, 2 might get reopened.
Mention that it's now safe to use 3 and 4.
(Limitations of Usual Tools): cp -r is now specified by Posix.
Omit longwinded and obsolescent discussion of cp -f.
Modernize discussion of expr, ls.
(Limitations of Make): Modernize discussion of VPATH builds.
Mention $? as a workaround in some cases.
* doc/install.texi (Basic Installation):
Mention "./configure; make; make install" first. Be more
specific about why this file is generic. Remove unnecessary
parens. Remove misleading "only". Remove obsolete advice
about csh. Don't say "configure" takes awhile; say it
might take a while. Suggest CFLAGS=-g rather than CFLAGS=-O2,
and CC=c99 rather than CC=c89, as these are blessed by current
Posix. Recommend GNU make if doing a VPATH build.
about quoting the case statement, just in case.
* doc/autoconf.texi (Particular Programs) <AC_PROG_MKDIR_P>:
Document that ${MKDIR_P} understands --.
* lib/autoconf/programs.m4 (AC_PROG_MKDIR_P): Improve the
comment.
Use better wording to talk about AC_PROG_MKDIR_P's thread-safety.
Don't use the term "thread-safe" to talk about mkdir race
conditions, since the problem is more a process than a thread
issue. Problem reported by Stepan Kasal in:
http://lists.gnu.org/archive/html/autoconf-patches/2006-05/msg00088.html
* lib/autoconf/programs.m4 (AC_PROG_MKDIR_P): Use code that mimics
the test for 'install' more closely. Look at MKDIR_P first.
Look in the PATH, and at /opt/sfw/bin.
Look for a 'gmkdir' program as well (Solaris 10 /opt/sfw/bin/gmkdir).
Don't bother to try mkdir -p, since we already check mkdir --version;
just look at the version number. (There's no easy way to check
for race-free implementations.)
* tests/tools.at (autoconf: subdirectories): Adjust to above
changes, since MKDIR_P now might end in "/mkdir -p".
* doc/autoconf.texi (Special Chars in Variables): New section.
(Preset Output Variables): Warn about special chars in CPPFLAGS.
(Installation Directory Variables): Quote $(datadir) better.
(Limitations of Builtins): Describe some of eval's trickiness.
* lib/autoconf/c.m4 (AC_PROG_CC_C_O): Simplify quoting.
* lib/autoconf/fortram.m4 (_AC_PROG_FC_V_OUTPUT): Likewise.
* lib/autoconf/general.m4 (_AC_INIT_PREPARE): Put leading space
in front of every arg, not just trailing args. Quote apostrophes.
(_AC_EVAL_ECHO): New macro.
(_AC_EVAL, AC_EVAL_STDERR): Use it. Quote arg of eval.
(AC_TRY_EVAL, AC_TRY_COMMAND): Mention that these macros might get
removed.
(_AC_LINK_IFELSE): Use proper rule for shell continuation lines,
exposed by quoting of eval argument. Put the command on line line
so it logs better.
* lib/autoconf/libs.m4 (_AC_PATH_X_XMKMF): Use eval more safely.
(_AC_PATH_X, AC_PATH_X): Quote more safely.
* lib/autoconf/programs.m4 (AC_PROG_MAKE_SET): Use eval more safely.
* lib/autoconf/specific.m4 (AC_SYS_LONG_FILE_NAMES): Don't use eval.
* lib/autoconf/status.m4 (_AC_OUTPUT_SUBDIRS): Minor style change.
Handle special chars in prefix, ac_srcdir, ac_aux_dir.
Use eval more safely.
(_AC_OUTPUT_CONFIG_STATUS): Adjust to above changes.
* lib/m4sugar/m4sh.m4 (AS_VAR_GET): Note that this API needs
to be replaced.
* tests/base.at (AC_TRY_COMMAND): Use proper rule for shell continuation
lines, exposed by quoting of eval argument.
initialization of `ac_cv_exeext', do not override it if it was
already set, unless it was set to `no', for compatibility with
Autoconf-2.13, and comment this.
Do not export `ac_cv_exeext', Libtool hasn't needed this for years.
(_AC_COMPILER_EXEEXT_DEFAULT): Likewise, do not export it.
(_AC_COMPILER_EXEEXT_WORKS, _AC_COMPILER_EXEEXT_CROSS): Typos.
* doc/autoconf.texi (Compilers and Preprocessors) <EXEEXT>:
Document that this test may be overridden by setting
`ac_cv_exeext'.
we always prefer the GNU version of the program, and that we
search according to PATH; both rules can have exceptions.
Update description of AC_PROG_GREP, AC_PROG_EGREP, AC_PROG_FGREP,
AC_PROG_SED. Move descriptions of limitations
to the Limitations of Usual Tools section.
(Limitations of Usual Tools) <sed>: Mention script length
limitations with Solaris /usr/ucb/sed.
<grep>: Fix wording for empty alternative. Mention that -c and
-l should not be combined, and that -E and -F should not be
combined.
AC_DEFINE is now passed to m4_pattern_allow.
* NEWS: Mention that; likewise for AC_SUBST.
* lib/autoconf/general.m4 (AC_DEFINE_TRACE_LITERAL): Pass
the parameter to m4_pattern_allow.
* tests/tools.at: Add a check for that.
the HP-UX sed limitation of 99 commands, labels do not count.
* lib/autoconf/status.m4 (_AC_SED_CMD_LIMIT): Mention that
in the comment.
(_AC_OUTPUT_HEADER): Revert the change from 2006-05-19.
sets MKDIR_P, not mkdir_p, to avoid collisions with Automake.
Warn about obsolete install-sh files. Remove stray sentence
fragment and fix cross reference.
* lib/autoconf/programs.m4 (AC_PROG_INSTALL): Don't insist on
install -d; this undoes the 2006-05-10 change.
(MKDIR_P): Mark with AN_MAKEVAR.
(AC_PROG_MKDIR_P): Fall back on $ac_install_sh, not $INSTALL, so
that we don't require $INSTALL to be thread-safe. Move comments
out of generated code. Require AC_CONFIG_AUX_DIR_DEFAULT instead
of AC_PROG_INSTALL. Output a message saying that we're checking
mkdir -p. Set MKDIR_P rather than mkdir_p. Do special magic for
MKDIR_P instead of AC_SUBST.
* lib/autoconf/status.m4 (_AC_OUTPUT_FILE, _AC_OUTPUT_CONFIG_STATUS):
Special magic for MKDIR_P, too.
* lib/m4sugar/m4sh.m4 (AS_MKDIR_P): Remove comment that defeated
a dnl.
* tests/local.at (AT_CHECK_ENV): mkdir_p -> MKDIR_P.
* config/install-sh: Don't use 'path' to talk about file names,
as per GNU coding standards. Close a race condition reported by Ralf
Wildenhues and Stepan Kasal. There is still a race condition
on hosts that predate POSIX 1003.1-1992, but we can't help this.
Don't mishandle weird characters like space on pre-POSIX hosts.
Invoke mkdir at most once per dir arg on pre-POSIX hosts.
* doc/autoconf.texi (Programming in M4sh): Cross-reference to
AC_PROG_MKDIR_P from AS_MKDIR_P.
(Limitations of Usual Tools): Cross-reference to AC_PROG_MKDIR_P
from mkdir. Mention that Autoconf 2.60 install-sh is safe but
earlier editions are not (including Automake 1.8.3).
Do not suggest mkinstalldirs for thread-safety.
* lib/m4sugar/m4sh.m4 (AS_MKDIR_P): Make it more robust in the
presence of special characters and race conditions.
* tests/local.at (AT_CHECK_ENV): Add mkdir_p to the list of variables
in Autoconf's name space.
* lib/autoconf/programs.m4 (AC_PROG_MKDIR_P): New macro, taken
from Automake with minor changes.
* doc/autoconf.texi (Particular Programs): Document AC_PROG_MKDIR_P.
in URLs to improve DVI formatted output (requires texinfo 4.6).
(System Services, Systemology, Shellology): Likewise.
(Limitations of Usual Tools): Rewrite Mac OS X example for nicer
output.
(Integer Overflow, Null Pointers, Buffer Overruns):
(Floating Point Portability, Exiting Portably): New sections.
(Writing Test Programs): Fix some langauge. Recommend exiting
with status 1, not merely nonzero. Clarify exit declaration.
(Run Time): Move C exit status stuff to new Exiting Portably section.
(Systemology): Mention Posix and levenez. Update v7 reference.
(Portable Shell): Mention the Posix shell.
* doc/autoconf.texi (Programming in M4sh): Comment out the
documentation of AS_BASENAME, for now.
(Shell Substitutions): Do not use AS_DIRNAME in an example.
(Limitations of Builtins) <basename>: Do not refer to
AS_BASENAME.
* bin/autoconf.as (me): Don't use AS_BASENAME.
(dir): Remove the unused variable.
* lib/m4sugar/m4sh.m4 (_AS_DETECT_REQUIRED): Renamed from
AS_DETECT_REQUIRED. All uses changed.
(_AS_DETECT_SUGGESTED): Renamed from AS_DETECT_SUGGESTED.
All uses changed.
(_AS_DETECT_BETTER_SHELL): Put ;; at the end of a case.
(AS_BASENAME): Use "basename --" to protect against leading "-".
(_AS_BASENAME_EXPR): Renamed from AS_BASENAME_EXPR. All uses changed.
(_AS_BASENAME_SED): Renamed from AS_BASENAME_SED. All uses changed.
(_AS_BASENAME_PREPARE): Reject implementations that cannot handle "--".
(_AS_DIRNAME_PREPARE): Likewise.
(_AS_DIRNAME_EXPR): Renamed from AS_DIRNAME_EXPR. All uses changed.
(_AS_DIRNAME_SED): Renamed from AS_DIRNAME_SED. All uses changed.
(AS_DIRNAME): Use "dirname --".
of "run time" and "run-time" changed to "runtime", for consistency.
* lib/autoconf/fortran.m4: Likewise (in comment).
* lib/autoconf/functions.m4: Likewise.
* lib/autoconf/general.m4: Likewise.
* lib/autoconf/headers.m4: Likewise.
* doc/autoconf.texi (Programming in M4sh): Remove mention of
AS_VAR_SET_BASENAME, AS_VAR_SET_DIRNAME, and AS_BASENAME.
We have to keep AS_DIRNAME since it was part of a stable Autoconf,
but AS_BASENAME doesn't have to be supported.
AS_VAR_SET_DIRNAME and AS_VAR_SET_BASENAME.
* doc/autoconf.texi (Programming in M4sh): Document this. All uses
changed. The newer interfaces are more reliable, as they allow
implementations that handle trailing newline correctly. For now,
we're in a freeze, so I did not include the more-reliable
implementations, but I wanted to correct the interface before 2.60
goes out.
* lib/m4sugar/m4sh.m4 (_AS_DETECT_REQUIRED): Renamed from
AS_DETECT_REQUIRED. All uses changed.
(_AS_DETECT_SUGGESTED): Renamed from AS_DETECT_SUGGESTED.
All uses changed.
(_AS_DETECT_BETTER_SHELL): Put ;; at the end of a case.
(_AS_BASENAME): Renamed from AS_BASENAME. All uses changed.
Use "basename --" to protect against leading "-".
(_AS_BASENAME_EXPR): Renamed from AS_BASENAME_EXPR. All uses changed.
(_AS_BASENAME_SED): Renamed from AS_BASENAME_SED. All uses changed.
(_AS_BASENAME_PREPARE): Reject implementations that cannot handle "--".
(_AS_DIRNAME_PREPARE): Likewise.
(_AS_DIRNAME): Renamed from AS_DIRNAME. All uses changed.
(_AS_DIRNAME_EXPR): Renamed from AS_DIRNAME_EXPR. All uses changed.
(_AS_DIRNAME_SED): Renamed from AS_DIRNAME_SED. All uses changed.
Use "dirname --".
(AS_VAR_SET_BASENAME, AS_VAR_SET_DIRNAME): New macros.
* tests/m4sh.at (AS_VAR_SET_DIRNAME): Renamed from AS_DIRNAME.
Test the new API. Don't test internals, since they're probably
going to change anyway.
(AS_VAR_SET_BASENAME): Likewise, renamed from AS_BASENAME.
* bin/autoconf.as: Don't use AS_BASENAME or AS_DIRNAME. This
removes a bootstrapping problem with the changes described above.
The AS_DIRNAME part wasn't used, anyway, and the AS_BASENAME
part can be done portably without all the deep Autoconf magic.
top-level tests after micro-suite has been run. Used in...
(Debugging a successful test, Debugging script and environment),
(Debugging a failed test): ...these new tests. The first of these
is fixed by...
* lib/autotest/general.m4 (_AT_CREATE_DEBUGGING_SCRIPT): New
macro, split out from...
(AT_INIT): ...here, so that using -d also generates a run script.
Document that -d inhibits top-level logging.
* doc/autoconf.texi (testsuite Invocation): Document that -d only
inhibits top-level logging; debug scripts are created.
* lib/m4sugar/m4sh.m4 (AS_BOURNE_COMPATIBLE): Insert BIN_SH=xpg4
and DUALCASE=1.
(AS_SHELL_SANITIZE): Remove DUALCASE=1.
* doc/autoconf.texi (Special Shell Variables) <BIN_SH>: Say that
it is set.
Give an example for AS_DIRNAME instead of referring to Posix..
(File System Conventions): Put discussion of // versus / here, and
modernize it a bit.
(Limitations of Usual Tools): Add basename. Remove verbiage
after dirname, since it got moved to the above sections.
All this was inspired by a patch proposed earlier by Ralf Wildenhues.