Commit Graph

56 Commits

Author SHA1 Message Date
Akim Demaille
b0f1186048 Implement `autom4te --freeze'.
* bin/autom4te.in (&freeze): New.
* lib/autoconf/autoconf.m4, lib/autotest/general.m4,
* lib/m4sugar/m4sh.m4: Don't include files given by autom4te.
2002-02-05 08:12:46 +00:00
Akim Demaille
542109e14f * bin/autom4te.in (&parse_args): Implement `frozen files are
optional are the sum of the previous files on the command line'.
Also, pass `--reload-state=' on them, so...
(handle_m4): don't.
* lib/autom4te.in (Autotest, Autoconf): Rely on M4sh.
(M4sh): Rely on M4sugar.
(Autotest, M4sh, M4sugar): Use frozen files.
2002-02-05 08:11:32 +00:00
Akim Demaille
a3b5a2e1b3 * lib/Autom4te/General.pm (getopt): Use a more GNUish error
message on invalid options.
* bin/autom4te.in (parse_args): Don't use
Autoconf::General::getopt with non valid options.
2002-01-21 13:00:52 +00:00
Akim Demaille
21b8d2f2dc * lib/m4sugar/m4sugar.m4 (m4_pattern_forbid): Accepts $2.
* lib/autoconf/general.m4 (AC_INTI): Forbid LIBOBJS.
(_AC_LIBOBJ): s/LIBOBJS/LIB@&t@OBJS/.
* bin/autom4te.in (warn_forbidden): New.
(handle_output): Use it.
Read m4_pattern_forbid with messages.
2001-11-07 19:34:20 +00:00
Akim Demaille
eec4a3470d * bin/autom4te.in (--normalize): Remove.
* lib/autom4te.in: Adjust.
2001-11-05 17:39:33 +00:00
Akim Demaille
fa70471557 * tests/tools.at (AT_CHECK_PERL_SYNTAX): Check autoreconf.
(Syntax of the shell scripts): Don't.
* bin/autoheader.in, bin/autom4te.in, bin/autoreconf.in: Don't
bother with $force since...
* lib/Autom4te/General.pm: does.
2001-10-08 08:26:43 +00:00
Akim Demaille
788b2078c0 * bin/autoreconf.in: Rewrite in Perl.
* configure.ac: Adjust.
* lib/Autom4te/General.pm (&up_to_date_p): New.
* bin/autom4te.in (&up_to_date_p): Use it.
Rename as...
(&up_to_date): this.
2001-10-08 08:25:44 +00:00
Akim Demaille
969517ed7b * bin/autom4te.in (parse_args): There can be several invocations
of --language now.
2001-09-23 17:18:20 +00:00
Akim Demaille
f69035452d * bin/autom4te.in (@my_warning): Remove, handled by `autom4te.cfg'. 2001-09-23 17:16:28 +00:00
Akim Demaille
d3bcaf7a86 * lib/Autom4te/General.pm (&debug): New.
* bin/autom4te.in ($language): Move to...
(parse_args): here.
Handle --language in languages.
* lib/autom4te.in (Automake-selections, Autoheader-selections)
(Autoscan-selections): New.
(Autoconf): Adjust.
2001-09-23 17:16:01 +00:00
Tim Van Holder
79bc254fde * bin/autoscan.in: Add 'exec-perl-if-not-run-by-perl'.
* bin/autoupdate.in: Ditto.
* bin/autoheader.in: Reworded a few comments.
* bin/autoconf.in: Reworded help text for a few options.
* bin/autoheader.in, bin/autom4te.in, bin/autoreconf.in,
* bin/autoscan.in, bin/autoupdate.in: Ditto.
2001-09-20 14:55:49 +00:00
Akim Demaille
c737451f8c * bin/ifnames.in: Rewrite in Perl.
* configure.ac: Don't look for AWK.
* tests/tools.at (AWK portability): Remove.
(Syntax of the shell scripts): Don't check ifnames.
(AT_CHECK_PERL_SYNTAX): New.
(Syntax of the Perl scripts): Check ifnames.
* tests/ifnames: New.
2001-09-13 06:54:35 +00:00
Akim Demaille
5fd6e6f70a * bin/autom4te.in (&handle_m4): `< /dev/null' so that GNU M4 1.5
doesn't neutralize SIGINT, making autoconf etc. non interruptible.
* lib/autoconf/autotest.m4 (AC_CONFIG_TESTDIR): Move the package
related variables into `at_package_*'.
* lib/autotest/general.m4 (AT_VICTIMS): New.
(AT_INIT): Adjust for stand-alone/embedded test suites.
(AS_MESSAGE_LOG_FD): Define and use it.
* tests/suite.at (AT_VICTIMS): Use it.
* tests/tools.at (autoupdating AC_PREREQ): Don't depend upon
at_version.
2001-09-07 08:26:57 +00:00
Akim Demaille
15d0a48936 * bin/autom4te.in: --language is -l, not -s. 2001-09-05 07:48:11 +00:00
Akim Demaille
7d6abb82f3 Be ready to handle filenames as stupid as `dnl.at', for if even
the maintainer is dumb enough to do that...
* lib/autotest/general.m4 (AT_SETUP, AT_LINE): Demonstrates your
excellence in M4 quotation: consider `__file__' is active.
And BTW, when invoking m4, pass the --include in the right order:
the wrong one.
* bin/autom4te.in, bin/autoupdate.in: Use reverse when kingtal to
4m.
2001-09-05 07:06:58 +00:00
Akim Demaille
d134e3aa8d * lib/Autom4te/XFile.pm: New lib file.
* bin/autoupdate.in, bin/autoscan.pl, bin/autom4te.in,
* bin/autoheader.in: Use it.
2001-09-05 07:06:40 +00:00
Akim Demaille
d3f9e418ab * lib/Autom4te/General.pm (&getopt): Work around the `-' Getopt bug.
* bin/autoheader.in, bin/autoupdate.in (&parse_args): Adjust.
* bin/autoscan.in: Use `getopt' and `find_files' etc.
Add -I, --include support.
* doc/autoconf.texi (autoscan Invocation): Adjust.
2001-09-05 07:06:02 +00:00
Akim Demaille
ff07c5ffe4 * doc/autoconf.texi (Quadrigraphs): Document `@&t@'.
(testsuite Scripts): There is no such thing as `atconfig.in'.
And actually one diagram is missing: test suite runtime.
2001-08-31 13:36:05 +00:00
Akim Demaille
bf0d5c6195 * bin/autom4te.in (&parse_args): Strip .' from @include'.
* bin/autoupdate.in: Use --include, -I, and --force, -f, too.
Use directly autom4te, not autoconf.
* tests/autoupdate: $top_srcdir/lib is needed too for melt files.
2001-08-31 13:34:30 +00:00
Akim Demaille
1776c542d1 * bin/autom4te.in (&parse_args): Die on unknown languages.
* bin/autoheader.in: Run directly autom4te --mode=autoconf, no
need for autoconf.
Promote --include over --macrodir and other obsolete options.
2001-08-31 13:33:26 +00:00
Akim Demaille
b7e99feee5 * lib/Autom4te/General.pm ($version, $help, &getopt): New.
* bin/autoupdate.in, bin/autoheader.in, bin/autom4te.in: Use them.
* bin/autom4te.in ($autoconf): Pass --force.
`print $out' doesn't print `$_' but `$out'.
* tests/tools.at (Syntax of the Perl scripts): Pass the lib dir.
(autoheader): Pass --force since the test suite goes too fast for
the time stamps.
Adjust to the new autoheader messages.
2001-08-31 13:33:10 +00:00
Akim Demaille
aa8dfa178d * lib/Autom4te/General.pm (&find_file, &update_file): New.
* bin/autoupdate.in, bin/autoheader.in: Adjust.
Drop AC_MACRODIR dead for real.
* tests/atspecific.m4 (AT_CHECK_AUTOHEADER): Now autoheader says
`autoheader: `config.hin' is created'.
* tests/tools.at (Syntax of the Perl scripts): Check autoheader.
2001-08-31 13:32:35 +00:00
Akim Demaille
cd0e85de14 * bin/autoconf.in (--include, -I): New option.
Map --localdir, --autoconf-dir onto it.
Forward autom4te's options instead of interpreting them.
* bin/autoconf.in, bin/autoheader.in (AC_MACRODIR, autoconf_dir):
There is no such envvar since the inception of autom4te.cfg.
* bin/autom4te.in (&parse_args): Uniquify `@include'.
* bin/autoupdate.in: Adjust, and perform more control.
* tests/atspecific.m4 (AT_CHECK_AUTOCONF): Adjust.
* tests/autoconf: Dittowise.
2001-08-31 13:31:54 +00:00
Akim Demaille
d19fa10fd6 * bin/autoconf.in: Don't bother with acsite.m4' and aclocal.m4'.
* bin/autom4te.in (&find_file): Support `FILE?' standing for
optionally `FILE'.
Use -e, not -f, since /dev/null for instance is OK.
(&parse_args): Adjust.
* lib/autom4te.in (Autoconf): Add `acsite.m4?' and `aclocal.m4?'.
2001-08-31 13:31:37 +00:00
Akim Demaille
8f108edc8e * bin/autom4te.in, lib/autom4te.in, bin/autoconf.in:
s/--set/--language/.
2001-08-29 13:30:27 +00:00
Akim Demaille
0b057944a7 * bin/autom4te.in (&handle_output): s/@__@/@&t@/.
Suggested by Paul Eggert.
2001-08-29 13:11:16 +00:00
Akim Demaille
6acd8f5313 * lib/autom4te.in: New.
* lib/Makefile.am (edit, autom4te.cfg): New.
* bin/autom4te.in (BEGIN): Simplify.
Rely on `AC_MACRODIR' in addition of `autom4te_perllibdir'.
(&load_configuration): New.  Use it.
(&parse_args): Support --mode, --set, and --melt.
* bin/autoconf.in: Simplify and adjust.
* tests/Makefile.am (AUTOMAKE): Use --set.
* tests/atlocal.in: Adjust.
* BUGS: distcheck and check are weak.
2001-08-29 09:52:49 +00:00
Akim Demaille
22d6c214ea * bin/autom4te.in (handle_output): Handle @__@. 2001-08-20 14:44:26 +00:00
Akim Demaille
d69c3d31b4 * bin/autom4te.in (&parse_args): Recognize --normalize. 2001-08-17 12:38:53 +00:00
Akim Demaille
80001aa3dc * bin/autom4te.in: --normalize is a new option.
* bin/autoconf.in: Use it.
2001-08-17 12:06:56 +00:00
Akim Demaille
283bf6a536 * bin/autom4te.in (@m4_warning): New.
(&handle_m4): Use it.
* tests/m4sugar.at (m4_warn): Pass `-f' to autom4te to ensure the
warnings are issued at each run.
* tests/atspecific.m4 (AT_CHECK_M4SUGAR, AT_CHECK_M4SH): M4sugar
is in the src tree.
2001-08-15 07:49:59 +00:00
Akim Demaille
14a3c0c717 * bin/autom4te.in (&handle_output): Don't use `grep' with side
effects.
Suggested by Russ Allbery.
2001-08-10 07:48:09 +00:00
Akim Demaille
0b0cae0fed * bin/autom4te.in ($icache): Load it only if older than autom4te. 2001-08-09 10:27:40 +00:00
Akim Demaille
dbf7fc61b5 * bin/autoconf.in, bin/autoheader.in: --force, -f is a new option. 2001-08-07 07:55:07 +00:00
Akim Demaille
bbfdf23a93 Don't rely on M4sugar outputting the patterns in files, since we
might process the output _without_ running m4, hence without these
files.
* lib/m4sugar/m4sugar.m4 (m4_init): No need for `m4_tmpdir'.
* bin/autom4te.in (@Request::includes): Remove, unused.
(@Request::source): Rename as...
(@Request::input): this.
(@preselect): Add `m4_pattern_forbid' and `m4_pattern_allow'.
(&handle_output): Fetch the patterns from the traces.
`$forbidden' and `$allowed' are constant: use m//o.
(&handle_m4): M4sugar no longer wants `m4_tmpdir'.
(m4_pattern_forbid, m4_pattern_allow): Adjust for tracing only.
2001-08-04 13:16:47 +00:00
Akim Demaille
f12c18c780 autoconf && autoheader' is sped up. Now, speed up autoheader &&
autoconf', i.e., in addition to caching traces, cache the output.
* bin/autom4te.in (Request::cache): Rename as...
(Request::id): this.
($cache, $icache, $tcache, $ocache): New.
(&handle_m4): Save M4 output in the cache instead of $tmp.
(&handle_output): Adjust.
(&up_to_date_p): Check that the output cache is up to date too.
(top level): Run `&handle_m4' iff force or the cache is invalid.
Run `&handle_output' if the output cache is more recent.
2001-08-04 13:16:30 +00:00
Akim Demaille
337c1e9594 * bin/autom4te.in ($force): New.
(&parse_args, &print_usage): -f, --force is a new option.
(&handle_output): CPP directives might have spaces after `#'.
(&parse_args): The first file only can be frozen.
2001-08-04 13:16:15 +00:00
Akim Demaille
4ffd4212d6 Don't let autom4te compute the `include' traces several times:
first check that the trace cache file is up to date, and then
compare its timestamp with that of the output.
* bin/autom4te.in, bin/autoupdate.in, bin/autoscan.in: Normalize
the preamble.  Don't require 5.005 as Autom4te::General does it,
and better yet (use `use', not `require'!).
* lib/Autom4te/Struct.pm: Rename the last occurrences of
Class::Struct as Autom4te::Struct.
* lib/Autom4te/General.pm (File::stat): Use it.
(&mtime): New, export it.
* bin/autom4te.in: Use it.
Declare `$req' is invalid if it is outdated.
Don't declare it valid before saving it if something went wrong.
2001-08-04 13:14:39 +00:00
Akim Demaille
4eea9f6530 Autom4te shall not encode Autoconf data, and preselecting traces
must be proposed to the users.
* bin/autom4te.in (@required_trace): Remove.
(@preselect): New.
(&parse_args, &print_usage): -p, --preselect is a new option.
(&up_to_date_p): Adjust.
* bin/autoconf.in: Preselect some Autoconf macros.
2001-08-04 13:14:10 +00:00
Alexandre Duret-Lutz
8fffbbe523 * bin/autom4te.in (handle_traces): Fix rewriting of traces without 2001-08-03 15:22:34 +00:00
Akim Demaille
9fcd1589f5 Clean up the handling of the M4 builtins tracing exception.
* bin/autom4te.in (Request::request): Don't complete M4 builtins
trace requests.
(@m4_builtins): Rename as...
(@m4_builtin): this.
(%m4_builtin_alternate_name): New.
(&parse_args): Complete the trace requests with alternate names.
(&handle_traces): Hence no longer do it here.
(&trace_requests): Remove, unused.
2001-08-03 09:14:38 +00:00
Akim Demaille
7d26817715 * lib/m4sugar/m4sugar.m4 (m4_init): Also forbid `_m4_*' tokens.
(m4_divert_pop): Dump the whole diversion stack when a diversion
mismatch happens.
* bin/autom4te.in (&handle_output): Remember of the first
occurrence of a possibly undefined macro, not the last.
Complain about the possibly undefined macros in the same order as
the appear in the output.
* lib/autoconf/Makefile.am (autoconf.m4f): List its dependencies.
* tests/tools.at (autoconf: forbidden tokens, basic)
(autoconf: forbidden tokens, exceptions): No longer sort
autoconf's stderr, as it is now deterministic.
Check that `dnl' is caught.
2001-08-03 09:09:45 +00:00
Akim Demaille
ca7d52c867 * lib/Autom4te/General.pm: Use carp' and croak', not `warn' and
`die'.
(&END): New.
* bin/autoconf.in, bin/autom4te.in, bin/autoupdate.in: Remove your
`END', as `Autom4te::General::END' will be triggered.
* bin/autoupdate.in, bin/autoscan.in: Improve error messages accuracy.
* bin/autoupdate.in (File::Compare, File::Copy): Use them instead of
system to run `mv', `rm', and `cmp'.
2001-08-01 15:10:36 +00:00
Akim Demaille
f0cd6d6a75 * lib/Autom4te/General.pm (&unique): New.
* bin/autoscan.in (&output): Use it to issue trace requests once.
2001-08-01 15:02:36 +00:00
Akim Demaille
2892d23307 * lib/Autom4te/General.pm: New.
* bin/autom4te.in (Autom4te::General): Use it.
($me, $tmp, $verbose, $debug, &mktmpdir, &verbose, &xsystem)
(&find_configure_ac, &find_slave): Remove.
* bin/autoscan.in: Likewise.
* bin/autoupdate.in: Likewise.
2001-08-01 15:01:16 +00:00
Akim Demaille
93fec71c13 * autoconf.in, autom4te.in, autoscan.in, ifnames.in,
* autoheader.in, autoreconf.in, autoupdate.in: Move to...
* bin: here, new directory.
* lib/Autoconf: Rename as...
* lib/Autom4te: this, to please case insensitive junkie OSes.
2001-08-01 14:28:57 +00:00
Akim Demaille
26056c4bef * autom4te.in ($m4): Handle the --nesting-limit.
* autoconf.in (M4): Remove.
2001-08-01 13:58:44 +00:00
Akim Demaille
ca0684ddb6 * autoconf.in ($AWK): Remove, no longer used.
* test/tools.at: Use AT_CHECK_AUTOCONF.
(AWK portability): Remove, for autoconf no longer uses AWK.
(Syntax of the Perl scripts): New.
* configure.ac: autoconf no longer needs an AWK with a good
regexp engine.
Use a static test on AC_PACKAGE_VERSION.
* autom4te.in (&up_to_date_p): Output depends on the arguments.
* lib/autoconf/Makefile.am: Ship version.m4, maintainer file.
* tests/atconfig.in (PERL): New.
2001-08-01 13:56:52 +00:00
Akim Demaille
b21ca4dd20 * acfunctions.m4: Rename as...
* lib/autoconf/functions.m4: this.
* acgeneral.m4: Rename as...
* lib/autoconf/general.m4: this.
* acheaders.m4: Rename as...
* lib/autoconf/headers.m4: this.
* aclang.m4: Rename as...
* lib/autoconf/lang.m4: this.
* acoldnames.m4: Rename as...
* lib/autoconf/oldnames.m4: this.
* acspecific.m4: Rename as...
* lib/autoconf/specific.m4: this.
* actypes.m4: Rename as...
* lib/autoconf/types.m4: this.
* autoconf.m4: Rename as...
* lib/autoconf/autoconf.m4: this.
* m4sugar.m4: Rename as...
* lib/m4sugar/m4sugar.m4: this.
* m4sh.m4: Rename as...
* lib/m4sugar/m4sh.m4: this.
* tests/atgeneral.m4: Rename as...
* lib/autotest/general.m4: this.
* acfunctions: Rename as...
* lib/autoscan/functions: this.
* acheaders: Rename as...
* lib/autoscan/headers: this.
* acidentifiers: Rename as...
* lib/autoscan/identifiers: this.
* aclibraries: Rename as...
* lib/autoscan/libraries: this.
* acmakevars: Rename as...
* lib/autoscan/makevars: this.
* acprograms: Rename as...
* lib/autoscan/programs: this.
2001-08-01 13:46:22 +00:00
Pavel Roskin
9e7499b740 * autom4te.in (mktmpdir): Strip trailing newline from mktemp
output.
2001-07-25 14:39:18 +00:00