Akim Demaille [Mon, 29 Jan 2001 15:24:10 +0000 (15:24 +0000)]
* m4sh.m4 (_AS_TEST_PREPARE): Discard output when testing `test
-x' and `test -f' to avoid confusing users with error messages.
(AS_MKDIR_P): Invert order of separators in IFS to avoid problem
with some shells adding backslash between fields and parsing the
result for escapes.
* doc/autoconf.texi (Special Shell Variables): Document IFS.
Akim Demaille [Mon, 29 Jan 2001 11:54:43 +0000 (11:54 +0000)]
* aclang.m4 (AC_PROG_F77): Improve documentation of the compilers
that are tried, add a few new ones (cft77, af77, epcf90, xlf95, g95),
and put pgf90 in the right place (before the F95 compilers).
Akim Demaille [Mon, 29 Jan 2001 09:50:01 +0000 (09:50 +0000)]
* autoscan.pl: Do scan `configure.ac' when you claim it.
From Raja R Harinath.
(@kinds): Use `qw', rather than lots of quotes and commas.
(%generic_macro): Use single quotes around literals.
($configure_scan): Define global, and use it instead of the literal.
Use `warn' in place of `printf STDERR'.
Akim Demaille [Mon, 29 Jan 2001 09:24:13 +0000 (09:24 +0000)]
* autoscan.pl: `Formatting++' changes: prototypes all the
functions, no longer use `&' to call functions as it disables
prototype checking, topological sort so that functions are defined
before being used, and put an Autoconf like nice comment to
describe the functions.
(output): Accept an CONFIGURE_SCAN parameters, and open CONF.
Akim Demaille [Sat, 27 Jan 2001 13:19:14 +0000 (13:19 +0000)]
Follow Tim Van Holder's suggestions for a uniform handling of
symlinks.
* m4sh.m4: Stay in `as_', not `ac_'.
(_AS_LN_S_PREPARE): Eve out from...
* acspecific.m4 (AC_PROG_LN_S): here. Adjust.
* m4sh.m4 (AS_LN_S): New.
(AS_SHELL_PREPARE): Call _AS_LN_S_PREPARE.
Akim Demaille [Fri, 26 Jan 2001 11:59:49 +0000 (11:59 +0000)]
* tests/mktests.sh: Handle DOS issues: directory separator, single
dot in file names, and one actual bug: when set -e, running
(false; true) will of course fail, use (false || true).
From Tim Van Holder.
Akim Demaille [Wed, 24 Jan 2001 13:41:52 +0000 (13:41 +0000)]
Preserve INSTALL too.
* acgeneral.m4 (_AC_OUTPUT_FILES): Use ac_INSTALL for internal
computations, and therefore use INSTALL where ac_given_INSTALL
was used.
(_AC_OUTPUT_SUBDIRS): There is no point in computing INSTALL in
here. It's not even used.
Akim Demaille [Wed, 24 Jan 2001 13:19:10 +0000 (13:19 +0000)]
While preserved in configure, srcdir is trashed in config.status.
Reported by Ralf Corsepius.
* tests/aclocal.m4 (AC_STATE_SAVE): It is ok to modify
CONFIG_STATUS, DEFS, prefix and exec_prefix.
It is OK to produce config.* files.
* tests/atspecific.m4 (AT_CONFIGURE_AC): Save the env *after*
AC_OUTPUT to check that it doesn't break anything by itself.
* tests/torture.m4 (srcdir): New test, from Ralf Corsepius.
* acgeneral.m4 (_AC_OUTPUT_FILES): Use ac_top_srcdir and ac_srcdir
to preserve srcdir and top_srcdir.
Remove any use of `ac_given_srcdir' as `$srcdir' being preserved
is usable.
Akim Demaille [Wed, 24 Jan 2001 10:04:47 +0000 (10:04 +0000)]
configure -q did not work since 2000-11-03.
* acgeneral.m4 (_AC_INIT_DEFAULTS_FDS): Don't check for $silent,
tie AS_MESSAGE_FD to stdout unconditionally.
(_AC_INIT_PARSE_ARGS): If $silent redirect AS_MESSAGE_FD to
/dev/null.
* tests/base.at (AC_CACHE_CHECK): New test.
Akim Demaille [Wed, 24 Jan 2001 08:24:44 +0000 (08:24 +0000)]
* m4sh.m4 (AS_EXECUTABLE_P, _AS_TEST_PREPARE): New macros.
(AS_SANITIZE_SHELL): Call _AS_TEST_PREPARE.
* acgeneral.m4 (AC_CHECK_PROG, AC_PATH_PROG): Use AS_EXECUTABLE_P
instead of test -f.
Akim Demaille [Wed, 24 Jan 2001 07:58:46 +0000 (07:58 +0000)]
* autoscan.pl (@kinds, %generic_macro): New.
(&init_tables): Use them.
* acheaders: Run `autoconf -t AC_CHECK_HEADERS:'$1'' on the fileutils,
and include all these headers in here.
Don't specify `AC_CHECK_HEADERS' as it's the default.
Akim Demaille [Wed, 24 Jan 2001 07:58:16 +0000 (07:58 +0000)]
* autoscan.pl (print_unique): Push all the macro invocation
locations.
(output_headers): For headers that need to be checked, push either
the specialized macro, or the generic macro call.
(check_configure_ac): Handle AC_CHECK_HEADERS.
Akim Demaille [Wed, 24 Jan 2001 07:50:55 +0000 (07:50 +0000)]
Don't AC_SUBST too much, as it makes Automake include those
variables in Makefiles, and drives autoscan to require unneeded
programs.
* acgeneral.m4 (_AC_INIT_PREPARE): Don't AC_SUBST CFLAGS,
CPPFLAGS, CXXFLAGS and LDFLAGS.
(AC_ARG_VAR): AC_SUBST the var.
Document it only once, even if there are several different docs.
* aclang.m4 (AC_PROG_CPP): Declare CPP and CPPFLAGS to AC_ARG_VAR.
(AC_PROG_CXXCPP): Declare CXXCPP and CPPFLAGS.
Akim Demaille [Tue, 23 Jan 2001 08:44:49 +0000 (08:44 +0000)]
* aclang.m4 (_AC_COMPILER_EXEEXT_O): Use
AS_IF([AC_TRY_EVAL(ac_link)]) instead of AC_LINK_IFELSE to
avoid depending on ac_exeext before it's found.
(AC_PROG_CC, AC_PROG_CXX, AC_PROG_F77): Check for the
executable extension BEFORE checking whether the compiler
works, as that test depends on a correct ac_exeext.
Pavel Roskin [Mon, 22 Jan 2001 20:21:33 +0000 (20:21 +0000)]
* autoscan.pl: Use "use strict". Declare all global variables
or make them private. Make all local variables private.
(find_autoconf): New, moved some code from the top level.
Use %ENV outside quotes to eliminate a warning.
Akim Demaille [Mon, 22 Jan 2001 19:04:47 +0000 (19:04 +0000)]
* autoscan.pl ($headers, $functions, $identifiers, $libraries):
Also register locations of their requirement instead of a simple
counter.
(&check_configure_ac): Close TRACES.
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!