Ralf Wildenhues [Tue, 9 May 2006 21:26:36 +0000 (21:26 +0000)]
* tests/Makefile.am (AUTOTEST): Use `$(MY_AUTOM4TE)' instead of
`./autom4te' to create `./testsuite', since the `all' target
will ensure its presence, but `installcheck' should not create
the uninstalled wrappers.
Ralf Wildenhues [Sun, 7 May 2006 20:36:01 +0000 (20:36 +0000)]
* lib/autoconf/c.m4 (AC_PROG_CC_STDC): If ac_cv_prog_cc_stdc
is set to `no', then that overrides and sets ac_cv_prog_cc_c89
and ac_cv_prog_cc_c99 to `no', for backward compatibility.
* NEWS: Update.
Ralf Wildenhues [Sat, 6 May 2006 05:53:50 +0000 (05:53 +0000)]
* lib/autoconf/status.m4 (_AC_OUTPUT_SUBDIRS): Take care not to
munge (multiple) white space and other oddities.
* tests/torture.at (AT_CHECK_AC_ARG_VAR): Make sure to M4-escape
single quotes in variable assignment.
(AC_ARG_VAR, configure invocation): Adjust tests to expose this
and similar failures by adding multiple spaces, tabs, and other
special characters.
Report and different test suggested by Francesco Romani
<fromani@gmail.com> and Andrew Church <achurch@achurch.org>.
Ralf Wildenhues [Sat, 6 May 2006 05:52:28 +0000 (05:52 +0000)]
* lib/autoconf/general.m4 (_AC_INIT_PREPARE): When we escape
single quotes, we only need to search for single quotes; this
both simplifies the search pattern, and makes us less
susceptible to `echo' variations for arguments not containing
single quotes.
(_AC_ARG_VAR_VALIDATE): Likewise.
Ralf Wildenhues [Thu, 4 May 2006 07:08:19 +0000 (07:08 +0000)]
* doc/autoconf.texi (Special Shell Variables) <IFS>: Document
`$*' and IFS concatenation issue with traditional shells and
bash-2.04. Report by Seanster@Seanster.com.
Ralf Wildenhues [Tue, 2 May 2006 20:09:24 +0000 (20:09 +0000)]
* lib/autoconf/general.m4 (_AC_CANONICAL_SPLIT): Cater for
traditional shells like the Solaris one that do not use the
first IFS character for assembling `$*'.
Prompted by a related report from autoconf_bug@nro.ca.
* doc/autoconf.texi (Introduction, Pointers): Use `@/' liberally
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.
Paul Eggert [Wed, 26 Apr 2006 20:30:54 +0000 (20:30 +0000)]
* doc/autoconf.texi (Portable C and C++, Varities of Unportability):
(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.
Paul Eggert [Mon, 24 Apr 2006 19:36:01 +0000 (19:36 +0000)]
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 --".
Paul Eggert [Mon, 24 Apr 2006 06:51:53 +0000 (06:51 +0000)]
* doc/autoconf.texi (Runtime): Renamed from "Run Time". All uses
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.
Paul Eggert [Sun, 23 Apr 2006 08:41:06 +0000 (08:41 +0000)]
* NEWS: Remove mention of AS_VAR_SET_BASENAME and AS_VAR_SET_DIRNAME.
* 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.
Paul Eggert [Sun, 23 Apr 2006 08:13:43 +0000 (08:13 +0000)]
* 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.
* doc/autoconf.texi (Introduction): The GNU Autoconf Macro
Archive is not officially `GNU' any more. Update URL.
(Defining Directories): Likewise
* lib/autoconf/c.m4 (AC_C_RESTRICT): Update URL.
Paul Eggert [Sun, 23 Apr 2006 06:49:53 +0000 (06:49 +0000)]
* 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.
Paul Eggert [Wed, 19 Apr 2006 18:16:36 +0000 (18:16 +0000)]
* lib/autoconf/general.m4 (_AC_INIT_PREPARE): Remove the leading
newline from the `trap' code to finish `config.log'; the NetBSD
/bin/sh resets the exit status after an empty command, as
documented in doc/autoconf.texi.
Paul Eggert [Wed, 19 Apr 2006 04:13:48 +0000 (04:13 +0000)]
* configure.ac (ac_cv_sh_n_works): Don't try to test for it, since
some shells (e.g., Solaris 8 /bin/sh) implement it verrrry slowly.
Instead, just list the shells that we know work.
* tests/local.at (AT_CHECK_SHELL_SYNTAX): Remove 2nd arg. All uses
changed. Be more cautious about the _cv_ variable.
* tests/tools.at (Syntax of the shell scripts): Check the
_cv_ variable once, at first, to avoid an internal autoconf error
when sh -n does not work.
Paul Eggert [Mon, 17 Apr 2006 06:10:50 +0000 (06:10 +0000)]
* lib/autoconf/general.m4 (_AC_INIT_CONFIG_LOG): Don't
use ">&-" since we're only 99.999% sure that this is portable,
and since the MinGW bug is fixed in a different way.
* lib/autotest/general.m4 (AT_INIT): Likewise.
* lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS): Handle --recheck
before opening config.log, to avoid hitting a bug on MinGW.
Paul Eggert [Sat, 15 Apr 2006 01:13:32 +0000 (01:13 +0000)]
* lib/autoconf/general.m4 (_AC_INIT_CONFIG_LOG): Close
AS_MESSAGE_LOG_FD before reopening it onto the log file.
This works around a MinGW bug reported by Eric Paire.
Make sure that all writes to the log file append to it,
rather than possibly losing data.
* lib/autotest/general.m4 (AT_INIT): Likewise.
* lib/autoconf/status.m4 (_AC_OUTPUT_FILE): If the templates for
the instantiated file do not contain the string 'datarootdir'
but contain @datadir@, @docdir@, @infodir@, @localedir@, or
@mandir@, replace the reference '${datarootdir}' by the value.
* tests/torture.at (datarootdir workaround): New test.
* NEWS: Advertise this temporary fixup.
Based on a patch by Bruno Haible, reported and analyzed by
Paul Eggert and Noah Misch.
* 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.
* lib/autotest/general.m4 (AT_INIT): Store quoted variable
assignments in `at_debug_args', so that we put them correctly
in the `run' script.
* tests/autotest.at (Debugging a failed test): Unmark XFAIL.
Reported by Eric Blake.
* tests/autotest.at (AT_CHECK_AT): Add new argument, to allow
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.
* tests/mktests.sh: Use "trap '' 0", not "trap 0". Do not touch
the files if a problem appears. Make the empty *.at files
read-only, too. Proposed by Ralf Wildenhues.
* lib/freeze.mk: Fix typo in comment. Unlike the last, white
space only patch to this file, this patch causes the Makefile.in
files that include freeze.mk to be updated, and thus have a
newer time stamp again, which in turn makes a pristine CVS
checkout have correct time stamps.
* Makefile.maint (cvs-sv): New macro, to be used..
(config.guess-url_prefix, config.sub-url_prefix)
(texinfo.tex-url_prefix, standards.texi-url_prefix): ..here;
point to CVS text checkout of Gnulib files.
(copyright-check): Bump current year.
(announcement): Do not hard-wire `./announce-gen'.
(cvs-update): Propagate failures of `cvs' and `move-if-change'
correctly.
* Makefile.cfg (executable-update): Use `chmod a+x' instead of
`chmod +x'.
(wget_files): Update config.guess, config.sub, texinfo.tex by
`wget-update', now that their URLs work again.
* doc/autoconf.texi: Remove unused words from word list.
* .x-sc_prohibit_atoi_atof, .x-sc_space_tab, .x-sc_sun_os_names,
.x-sc_trailing_space: New files.
* 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>.
Paul Eggert [Mon, 10 Apr 2006 09:15:11 +0000 (09:15 +0000)]
* lib/autoconf/general.m4 (_AC_INIT_PREPARE): Just output
confdefs.h as-is. In general, if it has backslash-newline or the
like, then it doesn't work either to sort or to remove empty
lines.
Paul Eggert [Sun, 9 Apr 2006 06:22:28 +0000 (06:22 +0000)]
* lib/autoconf/general.m4 (_AC_INIT_PREPARE): Use '\'' for an
apostrophe within a single-quoted string, as this is the usual
tradition and is easier to read than '"'"'. Don't rely on the
shell treating "$/" like '$/'. Use a more-consistent indenting
style for the trap.
* tests/autotest.at (Backquote command substitution),
(Multiline backquote command substitution): Remove mistaken
AT_NO_CMDSUBST from the 2006-03-14 patch, which was meant to be
applied...
(Parenthetical command substitution, Multiline parenthetical
command substitution): here.
* lib/autoconf/general.m4 (AC_CACHE_SAVE): All `ac_cv_env_foo'
variables shall be overriden by the cache.
* tests/torture.at (AC_ARG_VAR): Test also with a first value
that contains braces.
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.
* bin/autoupdate.in (handle_autoconf_patches): Change the way we
distinguish m4sugar macros.
* tests/tools.at (autoupdating with aclocal and m4_include):
New test. Bug reported by Gary V. Vaughan <gary@gnu.org>,
test case by Noah Misch <noah@cs.caltech.edu>.
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.