Commit Graph

322 Commits

Author SHA1 Message Date
Paul Eggert
a5272ddcec * lib/autoconf/functions.m4 (AC_REPLACE_FNMATCH, AC_FUNC_FNMATCH_GNU):
Quote some uses of shell variables if they might suffer unexpected
globbing.  This doesn't fix all instances of quoting problems that
I found, just the easy ones that look safe.
* lib/autoconf/general.m4 (_AC_INIT_SRCDIR, _AC_INIT_HELP):
(AC_CONFIG_AUX_DIR, AC_CONFIG_AUX_DIR_DEFAULT, AC_CONFIG_AUX_DIRS):
(AC_CANONICAL_BUILD, AC_CANONICAL_HOST, AC_CANONICAL_TARGET):
(AC_CACHE_LOAD, AC_CACHE_SAVE): Likewise.
* lib/autoconf/libs.m4 (_AC_PATH_X_XMKMF, _AC_PATH_X_DIRECT): Likewise.
* lib/autoconf/specific.m4 (AC_SYS_LONG_FILE_NAMES): Likewise.
* lib/autoconf/status.m4 (_AC_OUTPUT_LINK, _AC_OUTPUT_SUBDIRS):
Likewise.
* lib/autotest/general.m4 (_AC_INIT_PARSE_ARGS): Likewise.
* lib/m4sugar/m4sh.m4 (_AS_DETECT_BETTER_SHELL): Likewise.
2006-05-19 02:57:45 +00:00
Paul Eggert
9479591b3e * doc/autoconf.texi (Particular Programs): AC_PROG_MKDIR_P now
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.
2006-05-13 09:54:51 +00:00
Paul Eggert
0f696b8be5 * NEWS: New macro AC_PROG__MKDIR_P. AS_MKDIR_P is now more robust.
* 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.
2006-05-10 23:05:15 +00:00
Paul Eggert
a87d7437dc * lib/m4sugar/m4sh.m4 (AS_SHELL_SANITIZE): Don't use AS_ERROR,
since as_me isn't set yet.
2006-04-25 12:27:45 +00:00
Paul Eggert
9aed71b2ec Undo many of the recent changes, substituting these instead:
* 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 --".
2006-04-24 19:36:01 +00:00
Paul Eggert
24a8c2d4a5 * NEWS: Update wording to say merely "should" for AS_DIRNAME
and AS_BASENAME.
* lib/m4sugar/m4sh.m4 (AS_BASENAME, AS_DIRNAME): Bring these
back, albeit undocumented.  Programs now have a grace period
to switch to AS_VAR_SET_DIRNAME and AS_VAR_SET_BASENAME.
2006-04-23 08:13:43 +00:00
Paul Eggert
52d54c54e3 * NEWS: Remove AS_DIRNAME and AS_BASENAME, replacing them with
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.
2006-04-23 06:49:53 +00:00
Stepan Kasal
b3c78a065b * lib/m4sugar/m4sh.m4 (_AS_LN_S_PREPARE): Simplify the summary of
all the changes since 2006-04-07.
2006-04-12 12:20:13 +00:00
Ralf Wildenhues
f05b9c77f0 * lib/m4sugar/m4sh.m4 (_AS_LN_S_PREPARE): If `ln -s file1 file2'
succeeded, but `ln -s file dir' failed, take care to remove the
leftover target before the next test, to prevent its spurious
failure; also make sure `ln file dir' works before selecting it.
Thanks to Keith Marshall for pointing this out.
* THANKS: Update.
2006-04-11 17:34:03 +00:00
Ralf Wildenhues
6d2c0bd7e5 Regenerate. 2006-04-10 20:40:49 +00:00
Ralf Wildenhues
6ca1cfdde2 * lib/m4sugar/m4sh.m4 (_AS_LN_S_PREPARE): MSYS `ln -s' fails
with a target directory; it's internally implemented as `cp'
anyway, but since Autoconf advertises the possibility to use
a target directory when LN_S is `ln -s', we need to find out.
Reported by Rolf Ebert <rolf.ebert.gcc@gmx.de> against MSYS,
analyzed by Keith Marshall <keith.marshall@total.com>.
2006-04-10 17:55:33 +00:00
Ralf Wildenhues
9e365d1e0b Revert the patch from 2006-04-01 and only improve
_AS_DETECT_BETTER_SHELL:

* lib/m4sugar/m4sh.m4 (_AS_PATH_WALK): Do not optimize; do not
skip nonexistent directories.
(_AS_DETECT_BETTER_SHELL): The optimization is moved here--try
only shell candidates which exist.
(AS_UNAME): No need to give three parameters to _AS_PATH_WALK.
* lib/autotest/general.m4 (AT_INIT): No need to give three
parameters to _AS_PATH_WALK.
2006-04-07 18:31:09 +00:00
Stepan Kasal
67b61ef700 Revert my change from 2006-03-17, in other words:
* 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.
2006-04-07 18:00:55 +00:00
Paul Eggert
cf298164fe * lib/m4sugar/m4sh.m4 (AS_BASENAME_EXPR, AS_DIRNAME_EXPR):
Use simplified args that Eric Blake originally suggested.
2006-04-05 08:01:04 +00:00
Stepan Kasal
e5c9d58fcb Add _AS_DIRNAME_PREPARE to _AS_PREPARE. 2006-04-01 22:55:15 +00:00
Stepan Kasal
2af85b096a _AS_DIRNAME_PREPARE 2006-04-01 20:06:12 +00:00
Stepan Kasal
a7ee4bb357 back out _AS_DIRNAME_PREPARE 2006-04-01 19:54:55 +00:00
Stepan Kasal
0435cce62a _AS_DIRNAME_PREPARE 2006-04-01 19:48:14 +00:00
Stepan Kasal
784f54dfcd Fix typos. 2006-04-01 19:38:07 +00:00
Stepan Kasal
6f39626778 _AS_PATH_WALK: Skip nonexistent dirs, unless told otherwise. 2006-04-01 18:32:10 +00:00
Stepan Kasal
a9b857317c Sort the macros and fix typos. 2006-04-01 18:26:46 +00:00
Stepan Kasal
1a74a211bc Be tolerant if rm was not able to remove the test directory. 2006-04-01 16:09:13 +00:00
Paul Eggert
e4913c88f3 * lib/m4sugar/m4sh.m4 (AS_BASENAME_EXPR): Handle ///, ////, etc.
correctly.  Problem reported by Eric Blake.
(_AS_EXPR_PREPARE): Detect Tru64 expr bug.  Problem reported by
Ralf Wildenhues.
2006-03-31 18:46:47 +00:00
Ralf Wildenhues
ff15ef7a2c * lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Quote
`$0' to protect against spaces.
* lib/autotest/general.m4 (AT_INIT): Likewise.
* lib/m4sugar/m4sh.m4 (_AS_LINENO_PREPARE): Likewise, for
`$0', $as_me.
2006-03-27 17:42:17 +00:00
Stepan Kasal
13324b1dfd Removed BIN_SH=xpg4, moved DUALCASE=1 to AS_SHELL_SANITIZE. 2006-03-17 19:32:53 +00:00
Ralf Wildenhues
c5982aeff4 * lib/m4sugar/m4sh.m4 (_AS_DETECT_BETTER_SHELL): Prepend
the directory `/usr/bin/posix' in the shell search, to prefer
the Posix shell not only in subsequent spawns as with `$BIN_SH'
on Tru64.
2006-03-17 17:09:21 +00:00
Stepan Kasal
a7791c7782 Move the IFS setup and CDPATH sanitizing to AS_SHELL_SANITIZE. 2006-03-16 13:33:18 +00:00
Ralf Wildenhues
6f4a6a0740 * lib/m4sugar/m4sh.m4 (_AS_PATH_WALK): Do not forget to reset
IFS even in case of empty `$PATH'.
2006-03-14 07:18:18 +00:00
Ralf Wildenhues
a628e04465 * lib/m4sugar/m4sh.m4 (AS_IF): Extend to allow more than one
test, as in `if tests; then cmd1; elif ...; else ...; fi'.
* doc/autoconf.texi (Programming in M4sh): Adjusted.
* tests/m4sh.at (AS_IF and AS_CASE): Test this.  Also make sure
both macros are defun'ed so that required macros are evaluated
outside.
2006-02-21 09:30:01 +00:00
Ralf Wildenhues
14f61daa3c * doc/autoconf.texi (Looping constructs): New node, to
document m4_for, m4_foreach, m4_foreach_w, and mention
obsolete AC_FOREACH.
(Obsolete Macros): Document AC_FOREACH.
* lib/m4sugar/m4sugar.m4 (_m4_for): Fix declaration comment.
(m4_for): Fix to never loop (almost) endlessly, work correctly
with arithmetic expressions in arguments, a step of zero or
non-integer multiple of the interval, and avoid integer
overflow.
* tests/m4sugar.at: New test for m4_for, m4_foreach, and
m4_foreach_w.
2006-02-20 21:43:05 +00:00
Paul Eggert
cf77d083f0 Regenerate. 2006-02-20 19:46:52 +00:00
Paul Eggert
b7484c4c76 Regenerate. 2006-02-20 08:59:37 +00:00
Ralf Wildenhues
6fab15fe41 * lib/m4sugar/m4sh.m4 (AS_CASE): New macro.
(_AS_CASE): Private helper macro.
* tests/m4sh.at: Basic tests for AS_IF and AS_CASE.
* doc/autoconf.texi (Programming in M4sh): Document AS_CASE.
Fix syntax of AS_IF description
(Prerequisite Macros): Mention AS_IF and AS_CASE as workarounds
for the AC_REQUIRE mess.
* NEWS: Mention AS_CASE, AS_BOURNE_COMPATIBLE, and
AS_SHELL_SANITIZE.
2006-02-15 07:00:29 +00:00
Paul Eggert
9a0e3a3558 * doc/autoconf.texi (Programming in M4sh): Document
AS_BOURNE_COMPATIBLE and AS_SHELL_SANITIZE.
* lib/m4sugar/m4sh.m4 (_AS_BOURNE_COMPATIBLE): Renamed to..
(AS_BOURNE_COMPATIBLE): ..this.
(_AS_RUN, AS_SHELL_SANITIZE): Adjusted all callers.
2006-02-13 18:46:04 +00:00
Paul Eggert
cec2431f10 * lib/m4sugar/m4sh.m4 (_AS_BOURNE_COMPATIBLE): Look at the output
of (set -o) rather than testing whether (set -o posix) succeeds,
to work around a bug in the AIX 5.3 shell.
2006-02-13 07:45:03 +00:00
Ralf Wildenhues
72c832bf54 * lib/m4sugar/m4sh.m4 (AS_TMPDIR): Do not pass `-q' to mktemp.
* lib/Autom4te/General.pm (mktmpdir): Likewise.
(END): Improve error message a bit.
Reported by Bruce Korb <bkorb@gnu.org>.
2006-01-21 09:09:46 +00:00
Ralf Wildenhues
f124168ce6 * lib/m4sugar/m4sugar.m4 (m4_text_wrap): Handle quadrigraphs
correctly: pad with spaces after FIRST_PREFIX if necessary,
and compute string lenghts with `m4_qlen' instead of `m4_len'.
* lib/m4sugar/m4sh.m4 (AS_HELP_STRING): Comments updated.
* tests/m4sh.at (AS_HELP_STRING): Test extended.
* NEWS: Updated.
Reported by numerous people, numerous times.
2006-01-11 08:05:55 +00:00
Paul Eggert
f292fd9dd5 * Makefile.maint (sc_root_tests): Use recommend style s/a/b/ for
sed substitutions.
* doc/autoconf.texi (Installation Directory Variables): Use s|a|b|
for file names, again.  Reported by Noah Misch.
(Coding Style): Explain that s|a|b| is preferred for file names.
* lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE): Prefer s/a/b/.
(AC_OUTPUT_MAKE_DEFS): Likewise.
* lib/autotest/general.m4 (AT_INIT): Likewise.
* lib/m4sugar/m4sh.m4 (_AS_LINENO_PREPARE): Likewise.
* tests/local.at (AT_CHECK_AUTOM4TE): Likewise.
2006-01-06 00:02:26 +00:00
Paul Eggert
0ee621917a Fix Posix-conformance bugs re use of { command in sed scripts,
and improve the sed-related documentation a bit.
* doc/autoconf.texi (Installation Directory Variables): Use
our own style advice re 's,a,b,' versus 's|a|b|'.  Use "Sed"
rather than "sed" when talking about Sed in general.
(Particular Programs): Likewise.
(Coding Style): y is like s with respect to / and ,.
(Limitations of Usual Tools): Document the weird restrictions
that Posix has about { }.  Use better quoting.
* lib/autoconf/status.m4 (_AC_OUTPUT_FILES_PREPARE, _AC_OUTPUT_HEADER):
Rewrite to conform to Posix rules about { } in sed scripts.
* lib/m4sugar/m4sh.m4 (AS_DIRNAME_SED, AS_BASENAME_SED): Likewise.
* tests/foreign.at (Libtool): Likewise.
* tests/semantics.at (AC_CHECK_PROG & AC_CHECK_PROGS):
Use our own style advice re 's,a,b,' versus 's|a|b|'.
2006-01-05 21:43:44 +00:00
Paul Eggert
93f53cfee7 (_AS_BOURNE_COMPATIBLE): Try `set -o
posix' unconditionally, for pdksh in `native sh' emulation.
2005-12-02 19:22:49 +00:00
Paul Eggert
cf3b3ede92 * lib/m4sugar/m4sugar.m4 (_m4_map): New macro.
(m4_map, m4_map_sep): Use it.  Handle the empty list correctly.
2005-10-05 21:27:43 +00:00
Stepan Kasal
d8e678e2d0 (AS_IF): Use m4_default. 2005-09-06 15:37:55 +00:00
Paul Eggert
7385854c54 (_AS_VERSION_COMPARE_PREPARE):
The previous patch didn't work, so try a better one.
2005-08-26 18:49:23 +00:00
Paul Eggert
7753b867c0 Regenerate. 2005-08-25 21:33:19 +00:00
Paul Eggert
ffea2f0089 * lib/m4sugar/m4sh.m4 (_AS_VERSION_COMPARE_PREPARE):
Work around bug in Solaris 9 (and 10) /usr/xpg4/bin/awk.
2005-08-25 21:29:54 +00:00
Paul Eggert
3774d96668 Comment fix: change tab to "<tab>" in comment, so that the point is
understandable.
2005-07-25 17:47:08 +00:00
Stepan Kasal
8c60c99222 Obsolete AC_FOREACH. 2005-07-01 08:45:22 +00:00
Paul Eggert
124c037f3d Regenerate. 2005-06-23 20:11:18 +00:00
Stepan Kasal
0ed02e1aa5 fix m4split([]) 2005-06-21 15:38:24 +00:00
Paul Eggert
f149ecd2b8 * lib/m4sugar/m4sh.m4 (as_awk_strverscmp): Port to Solaris /bin/awk.
* doc/autoconf.texi:
Don't mention Solaris versions so much, if a
problem is common to all extant versions of Solaris.  Say "SunOS
4" instead of "SunOS" for SunOS 4.
(awk): Mention more of the limitations of traditional Awk.
(cat): Don't talk about cat -v.
2005-06-17 20:37:36 +00:00