Akim Demaille [Mon, 22 Jan 2001 19:01:40 +0000 (19:01 +0000)]
* autoscan.pl (&wanted): Don't register `Makefile' when
`Makefile.in' is present.
Factor the simplification of $name.
(&scan_makefile, &scan_sh_file): Instead of counting the number of
occurrences where a program/makevar is wanted, register file:line.
Adjust the verbose output.
(&check_configure_ac): Report the location where the macro is required.
Akim Demaille [Mon, 22 Jan 2001 19:01:23 +0000 (19:01 +0000)]
* autoscan.pl: Instead of undefined globals, set them to empty
values.
(%needed_macros): New.
(&check_configure_ac): New. Call it.
(&output_libraries): Eve out from &output_programs.
(&print_unique): For the time being register in %needed_macros
only argument less macros.
Akim Demaille [Mon, 22 Jan 2001 14:07:09 +0000 (14:07 +0000)]
* acgeneral.m4 (_AC_COMPILE_IFELSE): Wrap the test -s in
AC_TRY_COMMAND to improve config.log.
(_AC_INIT_DEFAULTS): Don't define ac_exeext and ac_objext to
highlight failures.
Akim Demaille [Mon, 22 Jan 2001 11:14:37 +0000 (11:14 +0000)]
* acgeneral.m4 (_AC_OUTPUT_CONFIG_STATUS): Work around a currently
impossible to describe bug of SunOS 4.1.3 which causes a shell
crash when using `VAR=${VAR="$default"}'.
Reported and diagnosed by Kevin Ryde.
Akim Demaille [Mon, 22 Jan 2001 09:10:55 +0000 (09:10 +0000)]
* aclang.m4 (_AC_COMPILER_EXEEXT_DEFAULT, _AC_COMPILER_EXEEXT_O):
Export ac_cv_exeext so ltconfig believes the value is cached and
skips its own faulty test.
Akim Demaille [Mon, 22 Jan 2001 09:03:38 +0000 (09:03 +0000)]
* tests/atgeneral.m4 (AT_INIT): Include a default case for non
existing tests.
* tests/atspecific.m4 (AT_CONFIGURE_AC, AT_CHECK_ENV)
(AT_CHECK_AUTOUPDATE, AT_CHECK_AU_MACRO): New.
Spread their use.
(AT_CHECK_MACRO): Pass `-W obsolete' to autoconf.
* tests/semantics.at (AC_HAVE_FUNCS): Obsolete, don't check.
* tests/mktest.sh: Create one test file per Autoconf source
file instead of separating syntax/update.
Akim Demaille [Mon, 22 Jan 2001 08:59:02 +0000 (08:59 +0000)]
* sh.m4 (AS_ESCAPE): New.
(_AS_QUOTE_IFELSE): Use it.
* tests/atgeneral.m4 (AT_INIT) <SHELL>: Define and use.
<--help> Don't display the options help when tests were selected.
Document -d.
<at_skip_list>: New.
<testsuite.log>: Give a banner, include ChangeLog snippets, list
the failed and skipped tests.
Remove useless $at_traceoff in sub shells, this improves the
readability of the traces by removing testsuite's implementation
details.
(AT_CHECK): Filter out the shell traces from the tested command's
stderr.
Use AS_ESCAPE.
Don't register experr and expout for clean up, as it's hairy and
easier to do from...
Support STDOUT = stdout, and STDERR = stderr.
Force the output of shell traces.
(AT_INIT): Here.
Akim Demaille [Fri, 19 Jan 2001 14:35:06 +0000 (14:35 +0000)]
Catch only used patterns.
Reported by the whole Autoconf community.
* m4sh.m4 (AS_INIT): New.
* acgeneral.m4 (AC_PLAIN_SCRIPT): Use it.
Forbid only AC, AU, AH and AM.
Akim Demaille [Fri, 19 Jan 2001 14:03:14 +0000 (14:03 +0000)]
Optimizing AC_LANG was broken. Test and fix.
* aclang.m4 (AC_LANG(C), AC_LANG(C++), AC_LANG(Fortran 77)): Don't
use _AC_LANG_ABBREV so that you don't depend upon _AC_LANG.
(_AC_LANG_SET): New.
(AC_LANG, AC_LANG_PUSH, AC_LANG_POP): Use it.
* tests/compile.at: Test AC_LANG, AC_LANG_PUSH & AC_LANG_POP.
Akim Demaille [Thu, 18 Jan 2001 13:16:02 +0000 (13:16 +0000)]
* tests/foreign.at (Autoconf & Libtool): `configure.in', not `.ac'
since Libtool does not yet support it.
Let the test suite be more verbose about at-path.
From Patrick Welche.
Akim Demaille [Thu, 18 Jan 2001 10:00:00 +0000 (10:00 +0000)]
* tests/atspecific.m4 (AT_CHECK_DEFINES): Discard
STDLIB|INTTYPES|MEMORY|STRING|UNISTD.
* tests/semantics.at (AC_CHECK_SIZEOF): Don't check the presence
of default headers, as it's machine dependent.
Reported by Jim Meyering and Nicolas Joly.
Akim Demaille [Thu, 18 Jan 2001 09:16:39 +0000 (09:16 +0000)]
Medium term goal: AC_ macros can be tested with -W obsolete.
* acgeneral.m4 (AC_RUN_IFELSE): Accept IF-CROSS-COMPILING.
(AC_TRY_RUN): Use it.
* acfunctions.m4: Start ousting AC_TRY_RUN and AC_TRY_COMPILE.
* acspecific.m4 (AC_AIX, AC_MINIX, AC_ISC_POSIX): AC_BEFORE on
AC_COMPILE_IFELSE and AC_RUN_IFELSE.
Akim Demaille [Thu, 18 Jan 2001 09:16:08 +0000 (09:16 +0000)]
Require a perfect divert push/pop balance.
* m4sugar.m4 (m4_divert, m4_divert_push, m4_divert_pop): Keep
track of them in m4_divert_stack.
(m4_divert_pop): Accept the expected current diversion as
argument and m4_fatal if incorrect, or if there is nothing to pop.
(globally): Specify the known m4_divert_pop.
Preserve symbolic values when possible.
* acgeneral.m4: No longer push the first diversion.
Specify the known m4_divert_pop.
(AC_PLAIN_SCRIPT): When m4_divert_push a diversion, m4_wrap its
pop.
(AC_INIT): Run AC_PLAIN_SCRIPT first, not last.
* tests/m4sh.at (AS_DIRNAME & AS_DIRNAME_SED): Can't use m4_defun
without m4_init.
* m4sugar.m4: Likewise.
Akim Demaille [Thu, 18 Jan 2001 09:15:31 +0000 (09:15 +0000)]
Various cleanups and consistency checks.
* m4sugar.m4: Formatting changes.
* acgeneral.m4 (AC_DIVERT_PUSH, AC_DIVERT_POP, AC_REQUIRE)
(AC_DIAGNOSE, AC_FATAL, AC_MSG_WARN, AC_MSG_NOTICE, AC_MSG_ERROR):
Use m4_copy to define them, in order to keep a good $0.
(AC_INIT): AC_LANG_PUSH C, not AC_LANG, to initialize the stack.
* aclang.m4 (AC_LANG_PUSH): Dont't use m4_defn on undefined macros.
(AC_LANG_POP): Admit an argument specifying the language we quit
when popping.
Adjust Autoconf's AC_LANG_POPs.
* tests/tools.at (AWK portability): Don't depend on AC_INIT.
(autoconf --trace: user macros): Obviously I
meant TRACE1, not AC_TRACE1.
Akim Demaille [Wed, 17 Jan 2001 15:26:42 +0000 (15:26 +0000)]
* m4sugar.m4 (m4_undefine, m4_popdef): Don't tolerate undefined
arguments.
(_m4_expansion_stack): Rename as...
(m4_expansion_stack): this, and change its value: instead of using
the pushdef stack to stack each *line* of the stack, each
definition contains the whole stack. I.e., to display the whole
stack, instead of popdefing and displaying each definition, just
display the current definition.
(m4_expansion_stack_push, m4_expansion_stack_pop): New.
* tests/atspecific.m4 (AT_CHECK_AUTOCONF): Let $2 be the expected
exit status.
* tests/m4sugar.m4 (m4_require: circular dependencies): New test.
Pavel Roskin [Wed, 17 Jan 2001 15:23:31 +0000 (15:23 +0000)]
* m4sugar.m4 (m4_normalize): New macro - superposition of
m4_flatten and m4_strip.
(m4_join): Use m4_normalize.
* acgeneral.m4 (AC_FOREACH): Use m4_normalize.
(AC_CONFIG_HEADERS): Normalize the first argument.
(AC_CONFIG_LINKS): Likewise.
(AC_CONFIG_SUBDIRS): Likewise.
Akim Demaille [Tue, 16 Jan 2001 20:46:00 +0000 (20:46 +0000)]
Work around the Ultrix limitations on ``multiple redirections''.
Reported by Harlan Stenn.
* acgeneral.m4 (_AC_EVAL_STDERR): New.
(_AC_PREPROC_IFELSE): Use it.
Akim Demaille [Tue, 16 Jan 2001 10:25:57 +0000 (10:25 +0000)]
* Makefile.am (editpl, editsh): Merge into...
(edit).
* m4sh.m4 (AS_UNAME): Eved out from...
* acgeneral.m4 (_AC_INIT_DEFAULTS): here.
(_AC_INIT_PACKAGE): Define AC_PACKAGE_NAME.
(_AC_INIT_PARSE_ARGS): AC_SUBST the PACKAGE_ variables.
Propagate their use in the executables and the test suite.
* tests/atgeneral.m4 (PATH): Include only absolute paths.
(AT_INIT): Use AS_UNAME.
Akim Demaille [Tue, 16 Jan 2001 10:21:44 +0000 (10:21 +0000)]
When default headers are used, check for their presence.
Suggested by Jim.
* acgeneral.m4 (_AC_INIT_DEFAULTS): Don't define
ac_includes_default, since...
(_AC_INCLUDES_DEFAULT_REQUIREMENTS): this new macro does.
(AC_INCLUDES_DEFAULT): Require the former when default includes
are used.
(AC_CHECK_MEMBERS, _AC_CHECK_TYPE_NEW): Don't require
AC_HEADERS_STDC, that's a job for stupendous AC_INCLUDES_DEFAULT.
* acfunctions.m4 (AC_FUNC_MALLOC): Check for stdlib.h.
Akim Demaille [Mon, 15 Jan 2001 07:35:36 +0000 (07:35 +0000)]
* tests/atgeneral.m4 (AT_INIT): When the suite failed, complain
before creating the debug scripts.
Create a log file.
When ignoring a test, display a reassuring `ok' for stressed
users, and say `skipped' instead.
Simply run `testsuite' with the failed tests instead of running
the debug scripts, this avoids having zillions of banners `Testing
Blabla 2.13' (another means to avoid these banners is to have the
test suite succeed :-).
Akim Demaille [Thu, 11 Jan 2001 15:17:13 +0000 (15:17 +0000)]
* aclang.m4 (_AC_PROG_CXX_EXIT_DECLARATION): New.
(AC_PROG_CC, AC_PROG_CXX): Use it.
(AC_PROG_CC_STDC): Be sure to remove tmp files.
* tests/compile.at (AC_TRY_LINK_FUNC): Don't use exit to test it,
since it produces a prototype which conflicts with the one
computed by _AC_PROG_CXX_EXIT_DECLARATION.
* tests/semantics.at (AC_CHECK_FUNCS, AC_HAVE_FUNCS): Likewise.
(AC_HAVE_FUNCS): Test AC_HAVE_FUNCS!
Akim Demaille [Thu, 11 Jan 2001 10:06:39 +0000 (10:06 +0000)]
* aclang.m4: Use m4_copy to duplicate macros.
(AC_LANG_PUSH): In order to have AC_LANG's simplifications
effective, be sure to let _AC_LANG be the old language before
calling AC_LANG.
Akim Demaille [Sat, 23 Dec 2000 10:11:57 +0000 (10:11 +0000)]
* autoconf.sh: Promote `configure.ac' over `configure.in'.
* autoreconf.sh: Likewise.
* autoheader.sh: Ditto.
* autoupdate.sh: Similarly.
* doc/autoconf.texi: Adjust.
* tests/atspecific.m4: Be sure to remove configure.in.
Adjust the test suite to use `configure.ac'.
Akim Demaille [Wed, 20 Dec 2000 18:41:10 +0000 (18:41 +0000)]
* aclang.m4 (_AC_COMPILER_OBJEXT, _AC_COMPILER_EXEEXT_O):
Make the order of arguments for ls count by splitting the ls
command into a sequence of ls commands.
Akim Demaille [Wed, 20 Dec 2000 09:15:59 +0000 (09:15 +0000)]
* tests/atgeneral.m4 (AT_CLEANUP_FILE_IFELSE): Fix the regexp: the
pattern ` state* ' was added many times for `*' was improperly
escaped.
(AT_INIT): Remove the data files before running the tests.
Define AT_data_files and output it.
(AT_SETUP): Don't.
(_m4_divert(TEST)): Remove, now useless.
Akim Demaille [Wed, 20 Dec 2000 09:13:54 +0000 (09:13 +0000)]
* aclang.m4: `dnl' the AC_LANG_PUSH and AC_LANG_POP.
(AC_PROG_CXXCPP, AC_PROG_CPP): Set the current language instead of
just asserting it, since these macros can be called directly.
Reported by Raja R. Harinath.
Akim Demaille [Tue, 19 Dec 2000 08:15:48 +0000 (08:15 +0000)]
* tests/atgeneral.m4 (AT_CHECK): Make exit status report more
visible.
* tests/atspecific.m4 (AT_CHECK_AUTOCONF): Support FLAGS, STDOUT
and STDERR.
(AT_CHECK_CONFIGURE): Support plenty, cleanup defs when needed.
Spread their use in the whole suite.
Simplify a few AT_CLEANUPs.
Akim Demaille [Tue, 19 Dec 2000 08:15:20 +0000 (08:15 +0000)]
* tests/atgeneral.m4 (AT_CHECK): Accept if-failed and
if-not-failed.
* tests/atspecific.m4 (AT_CHECK_CONFIGURE): Use it in order to
dump config.log when configure failed. Before, the log was
reported only on success.
Pavel Roskin [Fri, 15 Dec 2000 19:23:16 +0000 (19:23 +0000)]
* autoconf.sh: If the "allowed" pattern is not defined set it
to "^$".
* tests/tools.at (autoconf: forbidden tokens, basic): New test.
(autoconf: forbidden tokens): Renamed to ...
(autoconf: forbidden tokens, exceptions): ... this.
Akim Demaille [Fri, 15 Dec 2000 07:49:13 +0000 (07:49 +0000)]
* aclang.m4 (AC_LANG(C), AC_LANG(C++), AC_LANG(Fortran 77))
(AC_PROG_CPP, AC_PROG_CXXCPP, AC_PROG_GCC_TRADITIONAL)
(_AC_PROG_CC_G, AC_PROG_CC_C_O, _AC_PROG_CXX_G, AC_PROG_CC_STDC):
Don't use `${CC-cc}' since now the AC_REQUIRE machinery guarantees
that $CC is defined. And if not, it's a bug which must be
observable.
* acspecific.m4 (AC_SYS_LARGEFILE): Likewise.
Akim Demaille [Fri, 15 Dec 2000 07:48:41 +0000 (07:48 +0000)]
* acgeneral.m4 (_AC_PREPROC_IFELSE): Use ac_status as set by
AC_TRY_EVAL.
(_AC_COMPILE_IFELSE, _AC_LINK_IFELSE, _AC_RUN_IFELSE): More alike,
using AS_IFELSE, and systematically AC_TRY_COMMAND when testing
something (for the logs).
Akim Demaille [Fri, 15 Dec 2000 07:48:17 +0000 (07:48 +0000)]
* aclang.m4 (_AC_PROG_PREPROC_WORKS): Use _AC_PREPROC_IFELSE.
* acgeneral.m4 (_AC_TRY_CPP): Its last use was that above, so
inline it into...
(_AC_PREPROC_IFELSE): here.
Pavel Roskin [Thu, 14 Dec 2000 15:36:47 +0000 (15:36 +0000)]
* tests/semantics.at (AC_CHECK_TYPES): There are two tests with
this name. Rename the second one to "AC_CHECK_TYPES: backward
compatibility"
(AC_TRY_LINK_FUNC): Removed. It's now in tests/compile.at.
(C keywords): Likewise.
(AC_PROG_CPP with warnings): Likewise.
(AC_PROG_CPP without warnings): Likewise.
Akim Demaille [Thu, 14 Dec 2000 09:39:33 +0000 (09:39 +0000)]
Put back AC_CYGWIN etc. under the responsibility of the
configure.in maintainer, but discourage its use.
* acspecific.m4 (_AC_CYGWIN, _AC_MINGW32, _AC_EMXOS2): Rename as...
(AC_CYGWIN, AC_MINGW32, AC_EMXOS2): these.
AU defined on top of AC_CANONICAL_HOST and $host_os.
* tests/mktests.sh (update_exclude_list): Add AC_CYGWIN,
AC_MINGW32, and AC_EMXOS2.
Pavel Roskin [Wed, 13 Dec 2000 14:53:51 +0000 (14:53 +0000)]
* m4sugar.m4 (m4_file_append): Add a newline after _m4eof,
otherwise _m4eof is appended to the output on FreeBSD 4.0.
* tests/atgeneral.m4 (AT_INIT): Avoid using unbalanced "y"
in sed, use "s" instead.
* tests/mktests.sh: Don't use ? in sed - it's a GNU extension.
Use separate patterns for A[CU]_DEFUN and AC_DEFUN_ONCE.
Akim Demaille [Wed, 13 Dec 2000 12:36:54 +0000 (12:36 +0000)]
EXEEXT and OBJEXT don't need to know $CYGWIN etc.
* acspecific.m4 (AC_EXEEXT, AC_OBJEXT, _AC_EXEEXT, _AC_OBJEXT):
Move as...
* aclang.m4 (AC_EXEEXT, AC_OBJEXT, _AC_COMPILER_EXEEXT)
(_AC_COMPILER_OBJEXT): these.
(_AC_COMPILER_EXEEXT): Use _AC_LINK_IFELSE.
Don't depend upon $CYGWIN and the like.
(_AC_COMPILER_OBJEXT): Model after _AC_COMPILER_EXEEXT.
Skip more extensions.
Use _AC_COMPILE_IFELSE.