Pavel Roskin [Tue, 12 Dec 2000 12:45:41 +0000 (12:45 +0000)]
* autoscan.pl (init_tables): Allow spaces on the right hand side
in autoscan tables. Die if there are no spaces at all.
(scan_c_file): Use b instead of W so that keywords match at
the beginning and the end of the line.
(scan_sh_file): Likewise.
(scan_makefile): Likewise. Use B to match before `-l'.
(output): Suggest AC_CONFIG_HEADER if any C/C++ sources are
found.
* acidentifiers: Update macros for structure members st_blksize
and st_rdev.
Akim Demaille [Tue, 12 Dec 2000 10:53:41 +0000 (10:53 +0000)]
AS_ERROR was not properly saving data in the log file.
* sh.m4 (AS_WARN, AS_ERROR): Use AS_MESSAGE.
(_AS_ECHO): Fix quotation.
(AS_MESSAGE): Use `as_me'.
* acgeneral.m4: More banners in the log.
(_AC_INIT_DEFAULTS): Compute as_me before using it.
Akim Demaille [Wed, 6 Dec 2000 16:29:50 +0000 (16:29 +0000)]
Stop playing with FDs in Autotest.
* tests/atgeneral.m4 (AT_INIT): Set up FD 5.
(AT_CHECK): Instead of using exec to globally change the FDs of
`testsuite', enclose the body of the test into a
`(..) >stdout 2>stderr'.
In every case, when verbose, display the differences between
expected and oberved (stdout, stderr, exit status).
Let `0' be the default for EXIT-STATUS.
Support EXIT-STATUS == `ignore'.
Akim Demaille [Wed, 6 Dec 2000 15:00:45 +0000 (15:00 +0000)]
* doc/autoconf.texi (Limitations of Usual Tools) <awk>: `for' on
arrays is nondeterministic across AWK implementations.
* tests/tools.at (autoconf: forbidden tokens): Sort the error
message to guarantee its uniqueness.
Akim Demaille [Wed, 6 Dec 2000 14:05:46 +0000 (14:05 +0000)]
The SunOS' egrep fails to process properly the `egrep' invocations
of the test suite.
* tests/aclocal.m4 (AC_STATE_SAVE): If egrep fails, remove the
output file.
* tests/atspecific.m4 (_AT_CHECK_AC_MACRO): Don't check `state-*'
if the files are not present.
* m4sugar.m4 (m4_join): Rename as...
(m4_smash): this.
* tests/aclocal.m4 (join): Move as...
* m4sugar.m4 (m4_flatten): this.
* autoconf.sh (trace.m4): Rename m4_smash as m4_flatten.
Akim Demaille [Wed, 6 Dec 2000 10:53:58 +0000 (10:53 +0000)]
* autoconf.sh (task trace): s/m4/$M4/.
* autoheader.sh: When loading trace.sh, catch errors and exit with
a decent error message.
* tests/tools.at: Be sure to test autoconf --trace before
autoheader.
Akim Demaille [Wed, 6 Dec 2000 08:59:08 +0000 (08:59 +0000)]
* aclang.m4 (AC_LANG): Be `smart': don't issue the sh code if the
current language did not change.
(AC_LANG_ASSERT): New.
(AC_PROG_CPP, AC_PROG_CXXCPP): Assert the language.
(_AC_PROG_F77_V, _AC_F77_NAME_MANGLING): Don't require
AC_PROG_F77, the code you include does it.
(AC_F77_LIBRARY_LDFLAGS): Set the language.
Akim Demaille [Wed, 6 Dec 2000 08:58:13 +0000 (08:58 +0000)]
* m4sugar.m4 (m4_dquote, m4_pattern_forbid, m4_pattern_allow)
(m4_cr_letters, m4_cr_LETTERS, m4_cr_Letters, m4_cr_digits)
(m4_cr_symbols1, m4_cr_symbols2, m4_re_string, m4_re_word)
(m4_init): New macros.
(m4_token_allow): Remove.
* acgeneral.m4: Don't push BODY into the diversion stack.
(AC_PLAIN_SCRIPT): Do it.
Call m4_init, define the Autoconf patterns.
(AC_INIT): Use AC_PLAIN_SCRIPT.
Remove the useless `dnl' (those where the current diversion is
KILL).
* autoconf.sh (m4_common): Fix quotation.
(finalize.awk): Load forbidden.rx and allowed.rx.
Split the line into tokens, and check their validity.
* tests/tools.at (Forbidden tokens): Adjust.
Akim Demaille [Tue, 5 Dec 2000 14:08:35 +0000 (14:08 +0000)]
* aclang.m4 (AC_PROG_F77): Temporarily set ac_ext to F to run
_AC_LANG_COMPILER_GNU.
From Steven G. Johnson.
* tests/compile.at (GNU Fortran 77): New test.
Akim Demaille [Thu, 30 Nov 2000 16:30:53 +0000 (16:30 +0000)]
* sh.m4 (_AS_EXPR_PREPARE): Don't rely on the exit status of a
back quote evaluation since the very system for which the test was
written does not propagate it. Groumph!
Akim Demaille [Thu, 30 Nov 2000 15:24:13 +0000 (15:24 +0000)]
* acspecific.m4 (_AC_EXEEXT, _AC_OBJEXT): Make the two macros more
alike: a loop over a sorted list of possible files.
Don't cleanup on errors, the trap will do it.
Cleanup when there are no errors.
(_AC_EXEEXT): Use the empty string instead of `no' as the cached
value.
Be sure to prefer `.exe' to `' when the two are observable.
Suggested by Lars and Earnie.
Akim Demaille [Thu, 30 Nov 2000 14:49:43 +0000 (14:49 +0000)]
When using Cygwin, in spite of all their efforts, it may happen
that `confestval' be read in binary mode. The shell then fails to
properly strip the rn.
Reported by Lars J. Aas.
* aclang.m4 (AC_LANG_INT_SAVE): Don't add any trailing new line,
and close the file.
Suggested by Peter Eisentraut.
Akim Demaille [Wed, 29 Nov 2000 18:20:01 +0000 (18:20 +0000)]
* acgeneral.m4 (_AC_OUTPUT_CONFIG_STATUS): Fix the portability of
the default assignment of CONFIG_FILES, CONFIG_HEADERS,
CONFIG_LINKS and CONFIG_COMMANDS.
Akim Demaille [Wed, 29 Nov 2000 18:07:06 +0000 (18:07 +0000)]
* acgeneral.m4 (AC_CACHE_SAVE): Use the `clear' trick to work
around broken seds.
(_AC_OUTPUT_HEADERS, _AC_OUTPUT_FILES): Rename the sed labels to
match the Autoconf documentation.
Akim Demaille [Wed, 29 Nov 2000 17:57:55 +0000 (17:57 +0000)]
* acgeneral.m4 (AC_CACHE_SAVE): Use the `clear' trick to work
around broken seds.
(_AC_OUTPUT_HEADERS, _AC_OUTPUT_FILES): Rename the sed labels to
match the Autoconf documentation.
Akim Demaille [Wed, 29 Nov 2000 17:43:00 +0000 (17:43 +0000)]
* doc/autoconf.texi (Shell Substitutions): More on the variations
around ${foo=bar}.
(Assignments): Rewrite as a summary of the previous section.
* acgeneral.m4 (AC_CACHE_SAVE): Be protected against the Solaris'
`${foo='${bar}'}' bug.
Akim Demaille [Wed, 29 Nov 2000 16:08:43 +0000 (16:08 +0000)]
* acgeneral.m4 (_AC_OUTPUT_HEADERS, _AC_OUTPUT_FILES): Don't use
`... echo "error: \`$f'" ...`
as it's not portable to BSDI 1.3.
Do this instead:
`... echo "error: $f" ...`
Reported by Daniele Arena.
Akim Demaille [Wed, 29 Nov 2000 15:52:02 +0000 (15:52 +0000)]
QNX 4.2.5's expr always exits 1 when `:' is used with parens.
* doc/autoconf.texi (Limitations of Usual Tools) <expr>: More
information, thanks to Paul Berrevoets, Paul Eggert and David
Morgan.
* sh.m4 (_AS_EXPR_PREPARE): New.
(AS_DIRNAME): Use it.
Akim Demaille [Wed, 29 Nov 2000 14:14:10 +0000 (14:14 +0000)]
sizeof (struct {char a,b; }) is not required to be 2.
Reported by Johan Danielsson.
* tests/semantics.at (AC_CHECK_SIZEOF): Define charchar as an
array of 2 chars.
Suggested by Alexandre.
Akim Demaille [Wed, 29 Nov 2000 10:12:05 +0000 (10:12 +0000)]
Provide a means to display banners in the test suite.
* tests/atgeneral.m4 (AT_INIT): Initialize AT_banner_ordinal.
Execute the epilogue of the tests only if a test was run.
Don't built the value of `at_tests_all' by a for loop: expand
AT_TESTS_ALL.
(AT_SETUP): Build AT_TESTS_ALL.
(AT_BANNER): New.
Adjust all the former banners to use it.
(AT_CHECK): Don't trace the decoding of $?.
Akim Demaille [Thu, 23 Nov 2000 09:53:52 +0000 (09:53 +0000)]
Have the test suite list of the test groups and their references.
* tests/atgeneral.m4 (_m4_divert(SUITE_PRO)): Remove, replaced
by...
(_m4_divert(DEFAULT), _m4_divert(OPTIONS), _m4_divert(HELP))
(_m4_divert(SETUP)): these.
(_m4_divert(SUITE_EPI)): Rename as...
(_m4_divert(TAIL)): this.
(AT_INIT): Adjust to the new diversions.
Insert the magic number.
Accept test groups as cli argument.
List the test groups.
Rename TESTS, test, and tests as at_tests_all, at_test, and
at_tests.
Have the debug scripts pass options to test suite.
Remove their banner.
* tests/atspecific.m4: Don't divert to 0.
* suite.at: Don't insert the magic number.
Akim Demaille [Thu, 23 Nov 2000 09:53:26 +0000 (09:53 +0000)]
* m4sugar.m4 (m4_divert, m4_undivert): Support named diversions.
* tests/atgeneral.m4 (_m4_divert(SUITE_PRO), _m4_divert(TESTS))
(_m4_divert(SUITE_EPI), _m4_divert(TEST)): New diversions.
Push the first two diversions.
(AT_INIT): Don't.
(AT_INIT, AT_SETUP, AT_CLEANUP): Adjust to use the named
diversions.
Akim Demaille [Thu, 23 Nov 2000 09:52:58 +0000 (09:52 +0000)]
* tests/atgeneral.m4 (AT_CLEANUP): Factor the computation of
at_test_count into...
(AT_INIT): here.
Use an sh variable, at_data_files, instead of an hard coded list.
Akim Demaille [Thu, 23 Nov 2000 09:52:35 +0000 (09:52 +0000)]
* tests/atgeneral.m4 (AT_CLEAN_FILE_IFELSE, AT_CLEANUP_FILE)
(AT_CLEANUP_FILES): New macros.
(AT_SETUP, AT_CHECK, AT_CLEANUP): Use them.
(AT_CHECK): Fix a use of at_verbose.
* tests/atspecific.m4 (AT_CHECK_AUTOCONF, AT_CHECK_AUTOHEADER)
(AT_CHECK_CONFIGURE): New macros.
Akim Demaille [Thu, 23 Nov 2000 09:51:33 +0000 (09:51 +0000)]
Factor part of the prologue of the tests.
* tests/atgeneral.m4 (AT_SETUP, AT_CLEANUP): No longer handle
at_stop_on_error.
(AT_INIT): After having checked whether the test failed, break out
of the loop if requested (-e).
Akim Demaille [Thu, 23 Nov 2000 09:48:28 +0000 (09:48 +0000)]
The debug scripts are only wrapper around testsuite, asking for a
specific test.
* tests/atgeneral.m4 (AC_INIT) <at_debug>: New variable, new
option, -d, to disable the creation of the debug scripts (when
testsuite was already launched from one).
<at_test_count>: Really compute it instead of using the number of
the last test run.
Akim Demaille [Thu, 23 Nov 2000 09:47:45 +0000 (09:47 +0000)]
Transform Autotest's body into a `for test; case $test'.
As a known side effect, currently any code outside
AT_SETUP/AT_CLEANUP is discarded.
* acgeneral.m4 (_m4_divert(KILL)): Move to...
* m4sugar.m4: here.
* tests/atgeneral.m4 (AT_INIT): Use m4_divert_push/pop instead of
m4_divert.
Put all the tests inside a for;case.
Define TESTS.
(AT_SETUP, AT_CLEANUP): Open/close each case.
Akim Demaille [Thu, 23 Nov 2000 09:45:48 +0000 (09:45 +0000)]
Move Autotest on top of M4sh.
* tests/atgeneral.m4: Import M4sh.
Adjust the differences on the names of the builtins (define etc.).
(AT_CASE): Remove, use m4_case.
(AT_SETUP): Don't use `AT_group_description', `$1' is OK.
* tests/atspecific.m4 (m4_for, m4_foreach): Remove, use those of
M4sugar.
* tests/m4sugar.at: Strengthen the quotation and adjust to the new
macro names.
* tests/m4sh.at: Ditto.
* tests/torture.at: Ditto.
* tests/base.at: Ditto.
* m4sh.m4: Import M4sugar.
* autoconf.m4: Don't import M4sugar, M4sh does.
Akim Demaille [Fri, 17 Nov 2000 16:56:16 +0000 (16:56 +0000)]
Let AC_TRY_RUN be more verbose
* acgeneral.m4 (_AC_RUN_IFELSE): Instead of canceling the output
of the test program, save it into the log.
Save the exit status, and report it in the log when non zero.
Just use `(./conftest)' instead of `(./conftest; exit)'.
Akim Demaille [Thu, 16 Nov 2000 14:56:17 +0000 (14:56 +0000)]
Reorder the test suite so that low level features are tested
before high level ones.
* tests/semantics.at (AC_CONFIG_FILES, HEADERS, LINKS and COMMANDS):
(missing templates): Move to...
* tests/torture.at: here.
Reorder the file so that the torture test is last.
* tests/semantics.at (AC_TRY_LINK_FUNC, AC_PROG_CPP with warnings)
(AC_PROG_CPP without warnings): Move to...
* tests/compile.at: here, new file.
* tests/suite.at: Run `torture' and then `compile' before
`semantics'.
Akim Demaille [Thu, 16 Nov 2000 10:12:50 +0000 (10:12 +0000)]
POSIX doesn't require s/[^/]// to work.
From Paul Eggert and Johan Danielsson.
* doc/autoconf.texi (Limitations of Usual Tools) <sed>:
Reorganize. Document this issue.
* autoupdate.sh (dir): Use `,' as separator instead of `/'
* autoreconf.sh: Likewise.
* autoupdate.sh: Ditto.
Akim Demaille [Thu, 16 Nov 2000 08:52:54 +0000 (08:52 +0000)]
* m4/largefile.m4 (_AC_SYS_LARGEFILE_SOURCE): Remove, replaced by...
(_AC_SYS_LARGEFILE_TEST_INCLUDES): this.
(AC_SYS_LARGEFILE_MACRO_VALUE): Use AC_LANG_PROGRAM instead of
_AC_SYS_LARGEFILE_SOURCE, i.e., don't pass
_AC_SYS_LARGEFILE_TEST_INCLUDES by default: this isn't desirable
when checking for fseeko.
(AC_SYS_LARGEFILE): Pass AC_SYS_LARGEFILE_TEST_INCLUDES to
_AC_SYS_LARGEFILE_MACRO_VALUE, since it no longer does this for us.
Akim Demaille [Thu, 16 Nov 2000 08:33:46 +0000 (08:33 +0000)]
Provide a means for escaping the forbidden patterns test.
* tests/tools.at (Forbidden tokens): Test m4_token_allow.
* m4sugar.m4 (m4_file_append, m4_token_allow): New macros.
* autoconf.sh (task script): Pass `tmp' and `verbose' to
finalize.awk.
(finalize.awk::check_patterns): Eve out from the body.
(finalize.awk): Read `$tmp/tokens_allowed', and don't complain for
these exceptions.
Akim Demaille [Tue, 14 Nov 2000 16:01:05 +0000 (16:01 +0000)]
* acspecific.m4 (AC_SYS_LARGEFILE): Don't worry about
whether fseeko and ftello are properly declared.
* acfunctions.m4 (AC_FUNC_FSEEKO): New macro, which worries about
fseeko (and presumably ftello). Do not set _XOPEN_SOURCE; that
causes too many problems in practice.
* acfunctions (fteelo, fseeko): Trigger AC_FUNC_FSEEKO.
* doc/autoconf.texi: Adjust.
Akim Demaille [Tue, 14 Nov 2000 13:25:35 +0000 (13:25 +0000)]
* BUGS: New file.
Be sure to read this file if you're using a non released Autoconf.
* tests/tools.at (Syntax of the scripts): The non built tools are
in `$top_srcdir', not `..'.
(autoconf --trace): When using `-i' we need the src tree, not the
build tree.
Akim Demaille [Tue, 14 Nov 2000 11:06:37 +0000 (11:06 +0000)]
A single m4_require is enough.
* m4sugar.m4 (_m4_require): $2 defaults to $1.
Rename as...
(m4_require): this.
* acgeneral.m4 (_AC_REQUIRE): Remove, use m4_require if you want
to get into the gory details.