Commit Graph

68 Commits

Author SHA1 Message Date
Akim Demaille
de7bbeb9f4 * 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.
2001-01-29 15:24:10 +00:00
Akim Demaille
fea900426a 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.
2001-01-27 13:19:14 +00:00
Akim Demaille
ebec93d7e6 * 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.
2001-01-24 08:24:44 +00:00
Akim Demaille
6989c24425 * m4sugar.m4 (m4_expand_once): Accept a witness. 2001-01-24 07:47:12 +00:00
Akim Demaille
bddc739371 * acgeneral.m4 (AC_EXPAND_ONCE): Remove, use m4_expand_once.
(AC_DIVERT_ONCE): Move to...
* m4sugar.m4 (m4_expand_once): here.
2001-01-23 17:04:35 +00:00
Akim Demaille
a606e651c9 * 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.
2001-01-22 08:59:02 +00:00
Akim Demaille
960155df17 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.
2001-01-19 14:35:06 +00:00
Akim Demaille
3bb537f677 * sugar.m4 (m4_require): Missing dnl. 2001-01-19 11:27:40 +00:00
Akim Demaille
a8d8d481e5 * m4sh.m4 (AS_MKDIR_P): Properly support DOS-style paths. 2001-01-18 13:30:46 +00:00
Akim Demaille
722c1a86a0 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.
2001-01-18 09:16:08 +00:00
Akim Demaille
f81b72c915 * m4sugar.m4 (m4_defn, m4_undefine, m4_popdef): Unlike the
builtin, fail on undefined symbols.
* tests/torture.at (Torturing config.status): Stop playing nasty
tricks with changequote.
(AC_DEFUBST): Move here from...
* tests/aclocal.m4: there.
2001-01-18 09:15:52 +00:00
Akim Demaille
70b6f5cc93 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.
2001-01-18 09:15:31 +00:00
Akim Demaille
8a3c7070bd * 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.
2001-01-17 15:26:42 +00:00
Pavel Roskin
23ef1d703a * 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.
2001-01-17 15:23:31 +00:00
Akim Demaille
4c6ce32f58 * m4sh.m4 (AS_EXIT): Don't rely on exit == exit $?.
Reported by Tim Van Holder.
2001-01-16 10:27:19 +00:00
Akim Demaille
e2e36c55ce * 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.
2001-01-16 10:25:57 +00:00
Akim Demaille
bd16bfa0e3 * sh.m4 (AS_BOX, _AS_BOX_LITERAL, _AS_BOX_INDIR): New.
* tests/atgeneral.m4: Use it.
2001-01-15 07:29:48 +00:00
Akim Demaille
59ecd7666a * acgeneral.m4 (AC_VAR_INDIR_IFELSE): Move as...
* m4sh.m4 (AS_LITERAL_IF): this.
(AS_IFELSE): Rename as...
(AS_IF): this.
2001-01-15 07:29:24 +00:00
Akim Demaille
5058e82d54 * acgeneral.m4: Last changes for `configure.ac'.
(_AC_INIT_HELP, _AC_OUTPUT_SUBDIRS): Take `configure.ac' into
account.
* autoreconf.sh: Likewise.
2001-01-12 09:19:59 +00:00
Akim Demaille
feec4913d1 * m4sugar.m4 (m4_init): Catch `dnl'. 2000-12-15 07:46:47 +00:00
Pavel Roskin
26ce6814c0 * m4sh.sh (AS_ERROR): Restore dnl at the end of the macro. 2000-12-15 07:09:41 +00:00
Pavel Roskin
27853939be * 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.
2000-12-13 14:53:51 +00:00
Akim Demaille
1088d101b2 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.
2000-12-12 10:53:41 +00:00
Akim Demaille
9eb6e4e204 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.
2000-12-06 14:05:46 +00:00
Akim Demaille
482e84f65c * m4sugar.m4 (ifelse): Rename as...
(m4_if): this.
* autoconf.m4 (ifelse): Restore.
2000-12-06 08:58:41 +00:00
Akim Demaille
e43386442e * 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.
2000-12-06 08:58:13 +00:00
Akim Demaille
4867f191cb Adjust comments. 2000-11-30 17:35:16 +00:00
Akim Demaille
264fc11c21 * sh.m4 (AS_EXIT): Don't rely on false exiting 1.
Actually, always use `(exit $val); exit', don't try smart stuff.
* doc/autoconf.texi (Limitations of Builtins) <false>: new.
2000-11-30 17:27:32 +00:00
Akim Demaille
868bffa9a4 * 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!
2000-11-30 16:30:53 +00:00
Akim Demaille
296d30f795 Typo. 2000-11-29 16:13:48 +00:00
Akim Demaille
9f5b35eb49 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.
2000-11-29 15:52:02 +00:00
Akim Demaille
a8c122d0f2 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 $?.
2000-11-29 10:12:05 +00:00
Akim Demaille
acbcc5f2b7 * tests/atgeneral.m4 (AT_DEFINE, AT_UNDEFINE, AT_SHIFT)
(AT_INCLUDE): Remove, use the m4_ macros.
2000-11-29 10:11:38 +00:00
Akim Demaille
0af3f6af7b * m4sugar.m4 (ifval, ifset, ifdef, ifndef, m4_ifvanl): Rename as...
(m4_ifval, m4_ifset, m4_ifdef, m4_ifndef, m4_ifvaln): this.
(m4_n): New macro.
(m4_ifvaln): Use it.
* autoconf.m4 (ifdef): Restore it.
2000-11-29 10:09:44 +00:00
Akim Demaille
d4f4ec87f5 * m4sugar.m4 (m4_errprint, divnum, errprint, esyscmd): Rename as...
(m4_errprintn, m4_divnum, m4errprint, m4_esyscmd): this.
* autoconf.m4: Restore them.
2000-11-29 10:05:51 +00:00
Akim Demaille
2fc75f4ce5 * 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.
2000-11-23 09:53:26 +00:00
Akim Demaille
0280c4a535 * 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.
2000-11-23 09:52:35 +00:00
Akim Demaille
ce8108c250 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.
2000-11-23 09:47:45 +00:00
Akim Demaille
be1c95cd56 Move divert and undivert into m4_.
* m4sugar.m4 (m4_divert, divert, undivert): Rename as...
(m4_divert_text, m4_divert, m4_undivert): this.
* autoconf.m4 (divert, undivert): Restore them for user macros only.
2000-11-23 09:46:48 +00:00
Akim Demaille
a9e30cc83a 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.
2000-11-23 09:45:48 +00:00
Akim Demaille
e62a041a2f 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.
2000-11-16 08:33:46 +00:00
Akim Demaille
3e56675bc8 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.
2000-11-14 11:06:37 +00:00
Akim Demaille
d18e3cbb57 * acgeneral.m4 (_AC_INIT_DEFAULTS_ENVIRONMENT): Rename as...
* m4sh.m4 (AS_SHELL_SANITIZE): this.
2000-11-14 11:01:44 +00:00
Akim Demaille
cc2c99e90b Move AC_MSG_* into M4sh.
* acgeneral.m4 (_AC_SH_QUOTE, _AC_SH_QUOTE_IFELSE, _AC_ECHO): Move
to...
* m4sh.m4 (_AS_QUOTE, _AS_QUOTE_IFELSE, _AS_ECHO): here.
(AS_MESSAGE, AS_WARN, AS_ERROR): New.
* acgeneral.m4 (AC_MSG_NOTICE, AC_MSG_WARN, AC_MSG_ERROR): Use them.
(AC_FD_MSG, AC_FD_LOG): Be AU_ALIAS'es of...
(AS_MESSAGE_FD, AS_MESSAGE_LOG_FD): new.
Adjust all dependencies.
2000-11-14 10:11:43 +00:00
Akim Demaille
f9fd1e4edc * m4sh.m4 (AS_MKDIR_P, AS_DIRNAME_SED): Don't shell quote $1.
Adjust callers.
Reported by Paul Eggert.
* tests/m4sh.at: Sort.
2000-11-10 10:14:44 +00:00
Akim Demaille
97cdb56113 * m4sugar.m4 (_m4_expansion_stack_dump): Really rename as...
(m4_expansion_stack_dump): this.
2000-11-08 17:54:11 +00:00
Akim Demaille
674d4eef25 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.
2000-11-07 11:49:35 +00:00
Akim Demaille
43703ea9aa * 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.
2000-11-03 15:21:14 +00:00
Akim Demaille
e927749bb5 * 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.
2000-11-03 14:01:58 +00:00
Akim Demaille
7e4f776a09 * 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.
2000-11-03 11:14:48 +00:00