Akim Demaille [Mon, 20 Mar 2000 10:30:54 +0000 (10:30 +0000)]
Don't rely on RS = "0" to swallow the whole input as a single
record, this is not portable: mawk and nawk understand it as RS =
"". gawk understands it as expected.
* autoconf.sh (translate_awk::BEGIN): No longer change RS.
(translate_awk::body): Move to the END.
Instead, accumulate the input in `request'.
Akim Demaille [Mon, 20 Mar 2000 10:10:06 +0000 (10:10 +0000)]
* doc/autoconf.texi (Testing Values and Files): Be a subsection of
`Portable Shell Programming'.
(Shell Substitutions, Limitations of Usual Tools): New subsections.
Akim Demaille [Fri, 17 Mar 2000 10:07:56 +0000 (10:07 +0000)]
In Autoconf 2.13, although AC_OUTPUT_COMMANDS did double quote its
arguments, AC_OUTPUT arguments 2 and 3 were not! Currently,
AC_OUTPUT over quotes too: stop that.
Reported by Martin Buchholz.
* doc/autoconf.texi (Output): Don't expand on the ternary
AC_OUTPUT.
* acgeneral.m4 (AC_OUTPUT): Don't over quote $2 and $3.
Akim Demaille [Fri, 17 Mar 2000 08:37:50 +0000 (08:37 +0000)]
Install the IFS we need once for all.
* acgeneral.m4 (_AC_INIT_PREPARE_ENVIRONMENT): New macro.
Handle the NLS envvars, and IFS.
(_AC_INIT_PREPARE): Use it, no longer set the NLS envvars.
(_AC_WHICH_A, AC_PATH_PROG): Rely on the default IFS.
* acspecific.m4 (AC_PROG_INSTALL, AC_FUNC_SELECT_ARGTYPES):
Likewise.
Akim Demaille [Fri, 17 Mar 2000 08:31:49 +0000 (08:31 +0000)]
* acgeneral.m4 (AC_TRY_CPP, AC_EGREP_CPP, AC_TRY_COMPILE,
AC_TRY_LINK, AC_TRY_RUN_NATIVE): Simplify the removal of the
contest files: don't remove them before running the actions, just
remove them at the end of the macro.
Akim Demaille [Thu, 16 Mar 2000 18:12:58 +0000 (18:12 +0000)]
* acspecific.m4 (AC_FUNC_SELECT_ARGTYPES): Use
: ${foo='some words'}
not
: ${foo=some words}
since this is not portable: Digital Unix v5.0: `bad substitution'.
From Nicolas Joly.
Akim Demaille [Thu, 16 Mar 2000 15:17:26 +0000 (15:17 +0000)]
* libm4.m4 (m4_assert, m4_shiftn): New macros.
(m4_case,m4_match): Rewrite to use m4_shiftn (for readability reasons).
(m4_for): Add the STEP argument and some argument-verifying asserts.
(m4_split): Correct spaces to tabulator in regexp.
Akim Demaille [Wed, 15 Mar 2000 09:55:21 +0000 (09:55 +0000)]
Revamp AC_FUNC_SELECT_ARGTYPES.
* acspecific.m4 (AC_FUNC_SELECT_ARGTYPES): Use a single cache
variable instead of three.
Use AC_CACHE_CHECK.
Shorten the name of the var loops, they are no longer cached.
Include sys/types.h unconditionally.
`select' returns an int, fixes Autoconf/46.
Don't display parens in the user messages.
Akim Demaille [Tue, 14 Mar 2000 08:37:27 +0000 (08:37 +0000)]
* acgeneral.m4 (_AC_INIT_PREPARE): Insert the Autoconf version in
config.log, and the command line which ran configure.
Kill a couple of useless quote around dollars.
Akim Demaille [Tue, 14 Mar 2000 08:32:35 +0000 (08:32 +0000)]
* acgeneral.m4 (_AC_INIT_BINSH): Remove, useless now that...
(AC_REVISION): Require AC_INIT, not _AC_INIT_BINSH.
(AC_INIT): Do what _AC_INIT_BINSH used to.
Don't require _AC_INIT_VERSION, just call it.
Rename as _AC_INIT.
(AC_INIT): New macro, single expansion wrapper around _AC_INIT.
(_AC_COPYRIGHT_SEPARATOR): New.
(AC_COPYRIGHT): Use it.
Require AC_INIT, not _AC_INIT_VERSION.
* doc/autoconf.texi (Versions): Promote as first section of
`Setup'.
Rename as `Notices'.
Document AC_COPYRIGHT.
Don't give false reasons for placing AC_REVISION before AC_INIT,
the place no longer matters.
Akim Demaille [Tue, 14 Mar 2000 08:27:19 +0000 (08:27 +0000)]
* acgeneral.m4 (_AC_OUTPUT_CONFIG_STATUS): When there were no
CONFIG_FILES, we had to expand _AC_OUTPUT_FILES into the KILL
diversion, because it is AC_OUTPUT_FILES which undiverted the
AC_SUBST sed script at its proper place, otherwise it would have
been undiverted at the end of `configure', leading to an sh syntax
error.
Now that we no longer use a diversion, we don't need to call
AC_OUTPUT_FILES if useless.
(AC_OUTPUT_FILES): Rename as _AC_OUTPUT_FILES.
(AC_OUTPUT_LINKS): Rename as _AC_OUTPUT_LINKS.
Akim Demaille [Tue, 14 Mar 2000 08:20:25 +0000 (08:20 +0000)]
AC_ARG_PROGRAM must not be expanded twice, which is likely since
Automake calls it, and usually users do too. If it happens,
`--program-prefix=g' actually prepend two (or more) `g'.
* acgeneral.m4 (AC_DEFUN_ONCE): New macro.
(AC_ARG_PROGRAM): AC_DEFUNed_ONCE. Or is it AC_DEFUN_ONCE'd? :).
No longer AC_EXPAND_ONCE the help string, the macro itself is
expanded at most once.
Rename the here-doc tag EOF_SED as EOF.
Akim Demaille [Tue, 14 Mar 2000 08:09:32 +0000 (08:09 +0000)]
Introduce AC_SUBST(VAR, VAL).
* acgeneral.m4 (_AC_INIT_PARSE_ARGS): Stop global double quoting,
failed experiment.
Merge all the var=val AC_SUBST(var) into AC_SUBST(var, val).
(AC_SUBST): Implement support for 2nd arg.
* doc/autoconf.texi (Setting Output Variables): Adjust.
Akim Demaille [Mon, 13 Mar 2000 17:52:26 +0000 (17:52 +0000)]
Simplify the diversions naming system.
Suggested by Alexandre Oliva and Lars J. Aas
* libm4.m4 (ifndef): New macro.
* acgeneral.m4 (AC_DIVERT): New macro, maps a diversion name to
its value. The diversions now have a short name, e.g., `NOTICE',
instead of the former macros which had long names, e.g.,
`AC_DIVERSION_NOTICE'.
(AC_DIVERT_PUSH): Adjust.
(AC_DIVERT_POP): Use ifndef.
(AC_DIVERSION_CURRENT): Rename as `AC_DIVERT_DIVERSION' to stay
within the `AC_DIVERT' name domain.
Adjust all callers.
* acspecific.m4: Adjust all callers.
Akim Demaille [Mon, 13 Mar 2000 17:30:32 +0000 (17:30 +0000)]
* autoconf.sh (tmpbase): New var. Adjust trap code and other tmp
file names.
(translate_awk::BEGIN): Set RS to "0" so that the whole file be a
single record.
(translate_awk::trans): Convert from array to function.
(translate_awk::error): New function.
(translate_awk::main action): Implement support for ${sep}@ and
${sep}*. Use trans() and error().
(translate_awk): Don't put space before user functions call, it is
not portable.
Remove trailing `;', this is not C :).
(task trace): Quote `$traces' when you eval it, to protect the
white spaces.
Propagate `translate_awk' failures to `autoconf.sh'.
Translate the quadrigraphs.
Akim Demaille [Mon, 13 Mar 2000 17:26:21 +0000 (17:26 +0000)]
More uniform style is scripts.
* autoheader.sh: s/-eq/=/.
Uniform ordering of variable initializations, option handling.
Don't use quotes where useless (foo=$1, not foo="$1").
Propagate `run_m4' and `run_m4f'.
Use `$0' in --help.
* autoconf.sh: Likewise.
* autoreconf.sh: Likewise.
* autoupdate.sh: Likewise.
* ifnames.sh: Likewise.
* autoupdate.m4: Small bug: at the end `dnl' is disabled, so use
`m4_dnl'.
Akim Demaille [Mon, 13 Mar 2000 15:28:55 +0000 (15:28 +0000)]
`autoconf --trace': faster.
* autoconf.sh (initialization): New var, new option.
(option loop): When you need an arg, make sure there is one.
(run_m4f): New var, which content is that of the former...
(run_m4): Don't use m4 frozen state files.
Change all callers.
Don't pass AC_LOCALDIR, not documented, and unused.
(task trace): Honor `--verbose' and `--initialization'.
(globally): Send `--verbose' messages in stderr.
Fix random typos.
Akim Demaille [Mon, 13 Mar 2000 15:18:20 +0000 (15:18 +0000)]
Start revamping `autoconf --trace'.
* autoconf.sh (debug): New var, new option.
Adjust the trap code.
(task trace): Instead of decoding `m4 --trace' with sed, decode it
with m4 itself.
($silent_m4): New file, which disables m4's `errprint'.
($trace_m4): New file. Logistic for the m4 which is in charge of
decoding the traces of the first.
($translate_awk): Transform a user trace request into $trace_m4
code.
Akim Demaille [Fri, 10 Mar 2000 15:22:13 +0000 (15:22 +0000)]
Multiple `-e' to egrep are not portable. On IRIX 6.5 and Solaris
2.5.1 only the last one is honored:
> echo "foonbar" | egrep -e 'foo' -e 'bar'
bar
> echo "foonbar" | egrep -e 'bar' -e 'foo'
foo
Reported by Nicolas Joly.
An alternative would have to use `sed', unfortunately alternation
is not portable.
* tests/actest.m4 (join): New macro.
(AC_ENV_SAVE): Join the egrep patterns into a single big one.
* tests/Makefile.am (EGREP_EXCLUDE): Rename as FILTER_MACROS.
Join the egrep patterns into a single big one.
Jim Meyering [Fri, 10 Mar 2000 11:32:08 +0000 (11:32 +0000)]
(_AC_CHECK_TOOL_PREFIX): Correct typos in definition:
add `_' prefix to make the function name match comments and existing
uses. Remove leading prefix from _AC_CANONICAL_HOST.
Akim Demaille [Thu, 9 Mar 2000 15:44:40 +0000 (15:44 +0000)]
* acspecific.m4 (AC_SYS_RESTARTABLE_SYSCALLS): Added some missing
headers if they exist (needed for some missing prototypes) and
corrects the signal handler prototype/definition. The signal
handler prototype is now prepended with an `extern "C"' for C++
compilers since some platforms explicitly require an `extern "C"'
signal handler.
Akim Demaille [Wed, 8 Mar 2000 18:38:53 +0000 (18:38 +0000)]
* autoheader.m4 (autoheader::AC_CHECK_HEADERS_DIRENT): Renamed as
(autoheader::_AC_CHECK_HEADERS_DIRENT): to cope with the new name
of the autoconf:: macro.
Fixes autoconf/119, reported by Raja R Harinath.
Akim Demaille [Wed, 8 Mar 2000 16:13:32 +0000 (16:13 +0000)]
The argument of AC_COPYRIGHT should be plain text, not an sh
comment.
* libm4.m4 (m4_quote): s/$@/$*/.
* acgeneral.m4 (AC_COPYRIGHT): Prepend `# ' to the lines that goes
on the top of `configure'. Actually, prepend `@%:@ ' so that
there are as many evaluations on both sides.
(_AC_INIT_VERSION): No longer strip `# '.
Akim Demaille [Wed, 8 Mar 2000 16:12:09 +0000 (16:12 +0000)]
* tests/Makefile.am (all-local): Remove. It wastes time to have
testsuite rebuilt each time an ac*.m4 file changes. It is enough
to build it for each `make check'.
Akim Demaille [Wed, 8 Mar 2000 13:22:42 +0000 (13:22 +0000)]
Provide a means to specify more Copyright information in
`configure'. And after all, it suits to `configure --version' too.
* acgeneral.m4 (AC_DIVERSION_DEFAULTS, AC_DIVERSION_INIT_PREPARE):
New diversion numbers.
(AC_DIVERSION_INIT): Renamed as...
(AC_DIVERSION_INIT_PARSE_ARGS): this.
(AC_DIVERT_POP): Instead of going into wild endless loops when
there are more pops than pushes, die with dignity.
(AC_COPYRIGHT): New macro.
(_AC_INIT_NOTICE): Move definition of `ac_includes_default' from
here...
(_AC_INIT_PREPARE): to here.
(_AC_INIT_NOTICE): Remove.
(AC_INIT): Use it to install Autoconf's Copyright.
(_AC_INIT_DEFAULTS): New macro.
(AC_INIT): Use it.
(AC_PREFIX_DEFAULTS): Dump in AC_DIVERSION_DEFAULTS.
(_AC_INIT_PARSE_ARGS): Dump in AC_DIVERSION_INIT_PREPARE.
Akim Demaille [Wed, 8 Mar 2000 11:15:14 +0000 (11:15 +0000)]
Leave a diversion exclusively for Copyright notices.
* acgeneral.m4 (AC_DIVERSION_DEFAULTS): New diversion number.
(_AC_INIT_NOTICE): Move definition of `ac_includes_default' from
here...
(_AC_INIT_PREPARE): to here.
(_AC_INIT_NOTICE): Play with your diversion yourself, don't let
(AC_INIT): do it for you.
(_AC_INIT_DEFAULTS): New macro.
(AC_INIT): Use it.
Akim Demaille [Wed, 8 Mar 2000 11:14:09 +0000 (11:14 +0000)]
We don't need _AC_ARG_*_HELP_PROLOGUE.
* acgeneral.m4 (AC_EXPAND_ONCE): AC_PROVIDE yourself, in case
there is no AC_DEFUN associated with the text to expand.
(_AC_ARG_ENABLE_HELP_PROLOGUE, _AC_ARG_WITH_HELP_PROLOGUE,
_AC_ARG_VAR_HELP_PROLOGUE): Remove, instead...
(AC_ARG_ENABLE, AC_ARG_WITH, AC_ARG_VAR): do it yourself.
Akim Demaille [Wed, 8 Mar 2000 11:13:31 +0000 (11:13 +0000)]
* acgeneral.m4 (_AC_INIT_PARSE_ARGS): Fix copy n' paste typos in
`--with-*', `--without-*' and `*' decoding.
Reported by Raja R Harinath.
Fixes autoconf/119.
Akim Demaille [Wed, 8 Mar 2000 11:08:29 +0000 (11:08 +0000)]
No longer rely on /bin/sh to compose the optional parts of
`configure --help'.
* acgeneral.m4 (AC_DIVERSION_HELP_BEGIN, AC_DIVERSION_HELP_ENABLE,
AC_DIVERSION_HELP_WITH, AC_DIVERSION_HELP_VAR,
AC_DIVERSION_HELP_END): New diversion numbers.
(AC_EXPAND_ONCE): New macro.
(AC_PROVIDE_IF): New macro.
(AC_BEFORE, AC_REQUIRE): Use it.
(AC_REQUIRE): Don't use indir.
(_AC_ARG_ENABLE_HELP_PROLOGUE, _AC_ARG_WITH_HELP_PROLOGUE,
_AC_ARG_VAR_HELP_PROLOGUE): New macros.
(AC_ARG_ENABLE, AC_ARG_WITH, AC_ARG_VAR): Expand once the
_HELP_PROLOGUE macro which corresponds.
(_AC_INIT_HELP): Adjust to AC_DIVERSION_HELP_BEGIN and
AC_DIVERSION_HELP_END.
(_AC_INIT_NOTICE, _AC_INIT_HELP): Remove the sh code which handled
the optional help strings.
Akim Demaille [Wed, 8 Mar 2000 11:03:33 +0000 (11:03 +0000)]
* acgeneral.m4 (AC_INIT_PARSE_ARGS): Rename as...
(_AC_INIT_PARSE_ARGS): this.
Move the display of help and version strings to...
(_AC_INIT_HELP, _AC_INIT_VERSION): here.
(AC_INIT): Adjust. Also, fix quotation.
Akim Demaille [Tue, 7 Mar 2000 14:24:49 +0000 (14:24 +0000)]
Support absolute DOS-style paths.
Any character before the colon is accepted because network drives
can be assigned characters outside the [a-zA-Z] range. DOS-style
relative paths (?:foo/bar) are also considered absolute for
Autoconf's purposes since the path '../?:foo/bar' is invalid.
* acgeneral.m4 (AC_OUTPUT_FILES): Treat DOS-style paths (?:*') as
absolute.
(AC_OUTPUT_SUBDIRS): Likewise.
(AC_PATH_PROG): Make pattern for matching DOS-style paths the same
as that used in AC_OUTPUT_FILES and AC_OUTPUT_SUBDIRS.
Akim Demaille [Fri, 3 Mar 2000 14:15:41 +0000 (14:15 +0000)]
* acgeneral.m4 (_AC_WHICH_A): New macro.
(AC_CHECK_PROG): Use it. Use ifval.
(AC_CHECK_PROGS): Use ifval. Fix the quoting.
* tests/semantics.m4: Test AC_CHECK_PROG.
* tests/Makefile.am (EGREP_EXCLUDE): Add /AC_CHECK_PROGS?/.
Akim Demaille [Wed, 1 Mar 2000 17:01:29 +0000 (17:01 +0000)]
The empty regexp cannot be portably used in egrep's alternation.
For instance with Digital Unix v5.0:
> echo "foo" | egrep -e "^(|foo|bar)$"
> echo "|foo" | egrep -e "^(|foo|bar)$"
|foo
> echo "|bar" | egrep -e "^(|foo|bar)$"
> echo "bar" | egrep -e "^(|foo|bar)$"
bar
Reported by Nicolas Joly.
Akim Demaille [Wed, 1 Mar 2000 08:22:40 +0000 (08:22 +0000)]
Test suite: instead of using a full list of the AC macros and an
AT macro with selects which are the AC macros to test, just
produce the list of the AC macros we want to test.
* tests/atspecific.m4 (TEST_MACRO): Removed.
* tests/Makefile.am (EGREP_EXCLUDE): New variable, performing the
selection TEST_MACRO used to do.
(macros.m4): Use it. Use AT_TEST_MACRO, not TEST_MACRO. Check
also AU macros.