Paul Eggert [Fri, 19 Apr 2002 21:23:16 +0000 (21:23 +0000)]
* doc/autoconf.texi: Follow the outline suggested in the GNU
Sample Texts sections of the Texinfo 4.2 manual. Most
importantly, this makes sure that the copyright notices appear in
all output formats. You probably need Texinfo 4.2 to generate
the manual now.
Paul Eggert [Fri, 19 Apr 2002 21:22:50 +0000 (21:22 +0000)]
Follow the outline suggested in the GNU Sample Texts sections of the
Texinfo 4.2 manual. Most importantly, this makes sure that the
copyright notices appear in all output formats. You probably need
Texinfo 4.2 to generate the manual now.
Paul Eggert [Fri, 19 Apr 2002 19:08:24 +0000 (19:08 +0000)]
Fix some bugs when using "$@" when there might be zero positional
arguments in cases where this matters.
* bin/autoconf.as: Rewrite so that the problem does not come up.
* lib/autoconf/programs.m4 (AC_CHECK_PROG): Likewise.
* lib/autoconf/status.m4 (AC_OUTPUT): Likewise.
* lib/autotest/general.m4 (AT_INIT): Likewise.
* bin/autoheader.in: Use 'case' statement to work around problem.
* bin/auto4mte.in: Likewise.
* bin/autoreconf.in: Likewise.
* bin/autoscan.in: Likewise.
* bin/autoupdate.in: Likewise.
* bin/ifnames.in: Likewise.
* doc/autoconf.texi (Shell Substitutions): Document the problem.
* lib/autotest/general.m4 (AT_INIT):
Use Zsh alias to work around problem.
* tests/atgeneral.m4 (AT_INIT): Likewise.
* tests/c.at: We can't have zero arguments, so remove workaround
that is not portable to Zsh.
* lib/m4sugar/m4sh.m4 (AS_SHELL_SANITIZE): Install the Zsh
workaround for ${1+"$@"}.
* doc/autoconf.texi (Shell Substitutions): Explain it.
From Oliver Kiddle and Peter Stephenson.
Have M4sh perform minimal shell sanitizing.
* lib/m4sugar/m4sh.at (AS_SHELL_SANITIZE): Split the `_AS_PREPARE_*'
part into...
(_AS_PREPARE): this new macro.
(AS_PREPARE): New.
(AS_INIT): Invoke AS_SHELL_SANITIZE.
* tests/m4sh.at (AT_DATA_LINENO): Use _AS_PREPARE.
Adjust Autoconf and Autotest.
* lib/autoconf/general.m4 (_AC_INIT_DEFAULTS): Don't invoke
AS_SHELL_SANITIZE, AS_INIT did it, but invoke AS_PREPARE.
* lib/autotest/general.m4 (AT_INIT): Likewise.
* lib/autoconf/status.m4 (_AC_OUTPUT_CONFIG_STATUS):
Invoke _AS_PREPARE (not AS_PREPARE) in addition to
AS_SHELL_SANITIZE.
Use this M4sh to generate Autoconf's shell scripts.
* tests/wrapsh.as: New, precursor of wrapsh.in.
* tests/Makefile.am: Include lib/freeze.mk to get the dependencies
on Autotest and M4sh.
($(TESTSUITE)): Use $(autotest_m4f_dependencies).
(wrapsh.in): New target.
* bin/autoconf.as: New, precursor of autoconf.in.
(autoconf.in): New target.
* lib/autoconf/status.m4 (_AC_CONFIG_FILE, _AC_CONFIG_HEADER)
(_AC_CONFIG_COMMAND, _AC_CONFIG_LINK): New.
Use dnl, not the KILL diversion.
Extracted from...
(AC_CONFIG_FILES, AC_CONFIG_HEADERS, AC_CONFIG_COMMANDS)
(AC_CONFIG_LINKS): here.
Adjust.
Don't use the KILL diversion, as it kills spurious output, which
results in failures being hidden.
Use m4_defn where appropriate.
(AC_CONFIG_IF_MEMBER): Kill the real bug: a spurious parenthesis
after the second argument.
Use m4_defn.
* lib/autom4te.in (Autoconf, Autotest, M4sh): Don't pass --warning
syntax, as it is provided by M4sugar.
* tests/torture.at (Multiple AC_CONFIG_FILES): New.
Paul Eggert [Mon, 25 Mar 2002 22:03:16 +0000 (22:03 +0000)]
* tests/m4sh.at: Don't rely on "PATH=test:$PATH test-1" working
as POSIX requires, as it doesn't work with Zsh.
* doc/autoconf.texi (Assignments): Document the problem.
Paul Eggert [Fri, 22 Mar 2002 05:37:22 +0000 (05:37 +0000)]
* lib/m4sugar/m4sh.m4 (_AS_LINENO_PREPARE): Unset ENV and BASH_ENV
when reinvoking the shell, to work around problems with installers
who put strange things like "cd" commands in their environments.
Paul Eggert [Fri, 22 Mar 2002 05:35:53 +0000 (05:35 +0000)]
(_AS_LINENO_PREPARE): Unset ENV and BASH_ENV when reinvoking the
shell, to work around problems with installers who put strange things
like "cd" commands in their environments.
Paul Eggert [Tue, 19 Mar 2002 06:44:36 +0000 (06:44 +0000)]
* doc/autoconf.texi (Programming in M4sh): Add AS_MKDIR_P.
(Limitations of Usual Tools): Add mkdir section.
* lib/m4sugar/m4sh.m4 (_AS_MKDIR_P_PREPARE): New macro.
(AS_MKDIR_P): Require it. Use mkdir -p if available, falling
back on AS_DIRNAME to compute prefixes otherwise; this is
roughly what mkinstalldirs does. That way, we need not have
our own filename disassembler. The old disassembler did not
work with Solaris 8 dtksh, which is ksh Version M-12/28/93d.
* lib/autotest/general.m4 (AT_INIT, AT_CLEANUP):
Create at_test_all by a series of assignments,
not by a single assignment of a long string. The latter causes ksh
version 11/16/88g to silently misbehave on OpenServer 5.0.6a,
presumably because of a buffer overrun.
Paul Eggert [Tue, 19 Mar 2002 06:43:17 +0000 (06:43 +0000)]
(AT_INIT, AT_CLEANUP):
Create at_test_all by a series of assignments,
not by a single assignment of a long string. The latter causes ksh
version 11/16/88g to silently misbehave on OpenServer 5.0.6a,
presumably because of a buffer overrun.
Paul Eggert [Tue, 19 Mar 2002 06:23:15 +0000 (06:23 +0000)]
(_AS_MKDIR_P_PREPARE): New macro.
(AS_MKDIR_P): Require it. Use mkdir -p if available, falling
back on AS_DIRNAME to compute prefixes otherwise; this is
roughly what mkinstalldirs does. That way, we need not have
our own filename disassembler. The old disassembler did not
work with Solaris 8 dtksh, which is ksh Version M-12/28/93d.
Paul Eggert [Thu, 14 Mar 2002 18:15:55 +0000 (18:15 +0000)]
* lib/autotest/general.m4 (at_times_skip):
Renamed from at_times. Now a boolean.
ksh93 Version M-12/28/93d doesn't like 'x=times; $x'; it
says 'times: not found'.