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.
Akim Demaille [Tue, 14 Nov 2000 10:44:27 +0000 (10:44 +0000)]
Set AC_LANG_PREPROC_REQUIRE which replaces AC_REQUIRE_CPP.
The main difference is that the former requires AC_LANG_COMPILER.
* aclang (AC_LANG_PREPROC, AC_LANG_PREPROC(C), AC_LANG_PREPROC(C++))
(AC_LANG_PREPROC(Fortran 77), AC_LANG_PREPROC_REQUIRE): New
macros. Issue a warning when looking for the Fortran 77
preprocessor instead of an error.
(AC_LANG_COMPILER): Check that it is run before the corresponding
AC_LANG_PREPROC.
(AC_PROG_C
(AC_LANG_COMPILER_REQUIRE): Don't call directly
AC_LANG_COMPILER(_AC_LANG), rather invoke AC_LANG_COMPILER so that
the generic code in AC_LANG_COMPILER is run.
(AC_REQUIRE_CPP): Use AC_LANG_PREPROC_REQUIRE.
(AC_PROG_CC, AC_PROG_CXX): Don't require being run before the
corresponding AC_LANG_PREPROC: AC_LANG_COMPILER does it.
Propagate AC_LANG_PREPROC_REQUIRE.
* acgeneral.m4 (AC_TRY_CPP, AC_EGREP_CPP): Use it instead of
AC_REQUIRE_CPP.
* acspecific.m4 (_AC_DECL_YYTEXT, AC_PATH_X): Don't
AC_REQUIRE_CPP, inner macro will do it.
* aclang.m4 (AC_PROG_GCC_TRADITIONAL, AC_C_STRINGIZE)
(AC_C_PROTOTYPES): Likewise.
(AC_C_STRINGIZE): Yeeks! The body of AC_CACHE_CHECK was not
quoted. Use @%:@ do assist Emacs.
For some reason (don't ask), this revamping revealed that
AC_PROG_CC_STDC, because of the `break', does not clean its tmp
files.
* aclang.m4 (AC_PROG_CC_STDC): Extract the creation of conftest.c
out of AC_COMPILE_IFELSE.
Be sure to clean the tmp files.
Akim Demaille [Tue, 14 Nov 2000 10:38:57 +0000 (10:38 +0000)]
* acfunctions.m4 (AC_FUNC_ALLOCA): Don't require AC_PROG_CPP,
since (i) you actually need a compiler, (ii) AC_TRY_LINK handles
it.
* acheaders.m4 (AC_HEADER_STDC): Don't require AC_PROG_CPP,
AC_TRY_CPP does it.
Akim Demaille [Tue, 14 Nov 2000 10:05:14 +0000 (10:05 +0000)]
Use AC_MSG_ERROR in `config.status', but adjust AC_MSG_* to use $0
instead of hard coded `configure'.
* acgeneral.m4 (AC_COPYRIGHT): s/configure.in/__file__/.
(_AC_INIT_DEFAULTS_FDS): Append to AC_FD_LOG instead of creating
it. No longer insert the configure banner.
(_AC_INIT_DEFAULTS): Create config.log with the banner.
Define `as_me'.
(_AC_INIT_PARSE_ARGS, _AC_INIT_PREPARE, AC_MSG_NOTICE)
(AC_MSG_CHECKING, AC_MSG_RESULT, AC_MSG_RESULT_UNQUOTED)
(AC_MSG_WARN, AC_MSG_ERROR, AC_MSG_ERROR, AC_TRY_CPP)
(_AC_COMPILE_IFELSE, _AC_LINK_IFELSE, _AC_RUN_IFELSE)
(_AC_OUTPUT_FILES, _AC_OUTPUT_HEADERS, _AC_PROG_F77_V_OUTPUT): Use
`$as_me' instead of `configure'.
(AC_OUTPUT): Get rid of the UCA, and of the empty line when
dumping confdefs.h into config.log.
(_AC_OUTPUT_CONFIG_STATUS): Use _AC_INIT_DEFAULTS_FDS.
Print a banner.
Use AC_MSG_ERROR and AC_MSG_NOTICE.
* acgeneral.m4 (AC_CACHE_LOAD, _AC_OUTPUT_FILES, _AC_OUTPUT_LINKS)
(_AC_OUTPUT_HEADERS): Use AC_MSG_NOTICE.
* tests/semantics.at (missing templates): Adjust.
Pavel Roskin [Fri, 10 Nov 2000 15:49:15 +0000 (15:49 +0000)]
* autoscan.pl (scan_files): Eliminate a warning if no C files
are found.
(output): Likewise. Use AC_CONFIG_SRCDIR and AC_CONFIG_FILES
instead of old-style arguments for AC_INIT and AC_OUTPUT.
Akim Demaille [Fri, 10 Nov 2000 14:55:37 +0000 (14:55 +0000)]
* doc/autoconf.texi (Shell Substitutions): Some information about
Solaris' sh handling of ``foo=${foo='}'}'' collected by Alexandre,
reported by David Taylor.
Akim Demaille [Fri, 10 Nov 2000 12:10:13 +0000 (12:10 +0000)]
* doc/autoconf.texi (Shellology): Some about /usr/xpg4/bin/sh on
Solaris.
Sort the entries.
Some words about POSIX vs Bourne shell.
From Russ Allbery and Robert Lipe.
Akim Demaille [Fri, 10 Nov 2000 11:43:23 +0000 (11:43 +0000)]
* doc/autoconf.texi (Shell Substitutions): Split into...
(Shell Substitutions, Assignments): these.
Move them before `Special Shell Variables'.
(Shell Substitutions): Include information on `$()' from Russ
Allbery.
Akim Demaille [Fri, 10 Nov 2000 10:57:34 +0000 (10:57 +0000)]
When running
AC_INIT
AC_PROG_CC
AC_LANG_COMPILER_REQUIRE
AC_PROG_CC is expanded twice, because AC_PROG_CC provides
`AC_PROG_CC', and not `AC_LANG_COMPILER(C)' as expected by
AC_LANG_COMPILER_REQUIRE.
* aclang.m4 (AC_LANG_COMPILER(C)): Instead of calling AC_PROG_CC,
require it.
(AC_LANG_COMPILER(C++), AC_LANG_COMPILER(Fortran 77)): Likewise.
Pavel Roskin [Thu, 9 Nov 2000 18:59:18 +0000 (18:59 +0000)]
* acgeneral.m4 (_AC_COMPUTE_INT_COMPILE): Use ":" instead of
"true".
* tests/atgeneral.m4 (AT_INIT): Likewise.
* tests/tools.at (Syntax of the scripts): Likewise.
Akim Demaille [Wed, 8 Nov 2000 17:46:24 +0000 (17:46 +0000)]
* aclang.m4 (AC_LANG_PROGRAM(Fortran 77): Complain about $1 having
a value.
Reported by Paul Martinolich.
(_AC_LANG_COMPILER_GNU): Pass the test as the body of
AC_LANG_PROGRAM, not the prologue.
Pavel Roskin [Tue, 7 Nov 2000 17:58:43 +0000 (17:58 +0000)]
* autoconf.sh: Temporarily disable recognizing of abbreviated
long options - it's hard to maintain them by hand.
* autoheader.sh: Likewise.
* autoreconf.sh: Likewise.
* autoupdate.sh: Likewise.
* ifnames.sh: Likewise.
Akim Demaille [Tue, 7 Nov 2000 14:16:54 +0000 (14:16 +0000)]
* aclang.m4 (ac_cv_prog_gcc, ac_cv_prog_gxx, ac_cv_prog_g77):
Be AU_DEFUN'd, not AU_ALIAS'd.
Reported by Ralf Corsepius.
* tests/mktests.sh (exclude_list): Skip these variables.
Akim Demaille [Tue, 7 Nov 2000 11:49:35 +0000 (11:49 +0000)]
m4_syscmd was reestablished as `syscd' intead of `syscmd' because
instead of `s/^m4_//', m4_copy_unm4 was running `s/[m4_]//'.
* m4sugar.m4 (m4_copy_unm4): Fix.
Jim Meyering [Sat, 4 Nov 2000 22:07:50 +0000 (22:07 +0000)]
(AC_FUNC_FNMATCH): Add a test to detect the d*/*1 vs d/s/1 bug.
Add a couple more test cases to catch bugs in glibc 2.1.95.
Include fnmatch.h unconditionally
Mention the GNU C library.
From Paul Eggert.
Akim Demaille [Fri, 3 Nov 2000 15:21:14 +0000 (15:21 +0000)]
* m4sugar.m4 (m4_location): When using its value, don't use
`m4_defn', since m4_location is not a variable, it's a macro which
expands to __file__:__line__.
* tests/m4sugar.at (m4_warn): New test.
Akim Demaille [Fri, 3 Nov 2000 14:01:58 +0000 (14:01 +0000)]
* Makefile.am (.m4.m4f): Check that processing produces only
comments and empty lines.
Check that freezing produced no output.
* m4sugar.m4: Commentize what was not.
* m4sh.m4: Likewise.
* aclang.m4: Formatting changes.
Akim Demaille [Fri, 3 Nov 2000 11:59:39 +0000 (11:59 +0000)]
* acgeneral.m4 (AU_ALIAS): Don't forget to pass the arguments to
the new macro...
Reported by Ezra Peisach.
* tests/semantics.m4 (AC_HAVE_FUNCS): New test.
* tests/tools.at (autoupdate): As a benign side effect, updating a
macro that takes no argument produces `UPDATED([])', no longer
`UPDATED()'. Adjust the test.
Akim Demaille [Fri, 3 Nov 2000 11:14:48 +0000 (11:14 +0000)]
* autoconf.m4: Instead of reactivating the macros before reading
Autoconf's file, do it afterwards, so that Autoconf promotes the
right use, but users still can use the old names.
Of course this revealed numerous non updated uses of old macros in
Autoconf's files. Adjust them.
But for the time being, keep `define' alive for Autoconf.
Akim Demaille [Fri, 3 Nov 2000 10:39:27 +0000 (10:39 +0000)]
AC_REQUIRE and AC_DEFUN_ONCE don't work properly together. This
caused strange messages about AC_ARG_PROGRAM.
Reported by Jim Meyering.
* acgeneral.m4 (AC_DEFUN_ONCE): Fix the indirection to
m4_defun_once.
* m4sugar.m4 (m4_defun_once): Also define
`m4_location(MACRO-NAME)'. s/ac_warn/m4_warn/.
Use `m4_defn' to read `m4_location'.
* tests/base.at (AC_REQUIRE & AC_DEFUN_ONCE): Two new tests.
Akim Demaille [Fri, 3 Nov 2000 10:07:40 +0000 (10:07 +0000)]
Set up config.log earlier so that AC_MSG_ERROR and AC_MSG_WARN can
be used early.
* acgeneral.m4 (_AC_INIT_DEFAULTS): Call `_AC_INIT_PREPARE_FDS'.
(_AC_INIT_PREPARE): Don't.
(_AC_INIT_PREPARE_ENVIRONMENT, _AC_INIT_PREPARE_FDS): Rename as...
(_AC_INIT_DEFAULTS_ENVIRONMENT, _AC_INIT_DEFAULTS_FDS): these,
since they are called from `_AC_INIT_DEFAULTS', not
`_AC_INIT_PREPARE'.
(_AC_INIT_DEFAULTS_FDS): Dump `$@' in config.log, not
`$ac_configure_args' which is not computed yet.
Akim Demaille [Fri, 3 Nov 2000 09:16:21 +0000 (09:16 +0000)]
* m4sh.m4 (_AS_UNSET_PREPARE): New macro, eved from
_AC_INIT_PREPARE_ENVIRONMENT, and fixed: set `FOO' before trying
to unset it: `unset' exits 1 if the variable is not defined.
(AS_UNSET): Require it. Use `as_unset' not `ac_unset'.
* acgeneral.m4 (_AC_INIT_PREPARE_ENVIRONMENT): Use it.