Commit Graph

565 Commits

Author SHA1 Message Date
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
6de8a0df09 * bin/autoscan.in (scan_file): Use `&used'. 2002-01-06 20:47:57 +00:00
Akim Demaille
4f944b43d5 * bin/autoscan.in (%c_keywords): Build it at top level.
Map to 1 in order to simplify its uses.
2001-11-26 10:53:00 +00:00
Akim Demaille
32e1426355 * bin/autoscan.in (&scan_c_file, &scan_sh_file, &scan_makefile):
Remove $filepath, useless.
(&scan_makefile): Don't remove the $(FOO), ${FOO} and @FOO@
variables, they are really part of the tokens.
Split the input line on spaces and then look for tokens.
Now autoscan ceases to ask for AC_PROG_LEX for the package Bison
because of `lex$U.$(OBJEXT)'.
(&scan_files): Use "@list" instead of join.
* doc/Makefile.am (CLEANFILES): Add *.fns.
2001-11-26 10:52:46 +00:00
Akim Demaille
d1228cd752 * bin/autoscan.in (used): New.
Use it.
2001-11-26 10:51:44 +00:00
Akim Demaille
6e35b89f81 * bin/autoscan.in (&scan_c_file): Better parsing of CPP
directives.
(&scan_sh_file): Remove a duplicate pattern.
(&check_configure_ac): Use long options.
* lib/autoscan/headers (alloca.h): Check with AC_FUNC_ALLOCA.
2001-11-26 10:51:29 +00:00
Akim Demaille
32598e1b56 * bin/autoscan.in (scan_c_file): Fix the handling of C comments.
Before, having a line containing the opening of a multi line
comment made the whole line be ignored.
2001-11-26 10:51:14 +00:00
Akim Demaille
b863f27fcc * bin/autoreconf.in (&autoreconf): Run aclocal before tracing, so
that we can trace macros from aclocal.m4.
Trace AC_PROG_LIBTOOL, not AM_PROG_LIBTOOL, since the latter is
obsoleted, and redirect to the former anyway.
Reported by Ralf Corsepius.
2001-11-08 17:21:38 +00:00
Akim Demaille
00b6183c8e * bin/autoreconf.in (&autoreconf): AC_CONFIG_SUBIDRS are to be
processed only if present.
* tests/torture.at (Configuring subdirectories): Use autoreconf
instead of successive calls to autoconf.
Add a nonexistent subdirectory to exercise the patch above.
Reported by Ralf Corsepius.
2001-11-08 16:15:20 +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
06de04bb1c * doc/autoconf.texi (testsuite Invocation): Update.
(Writing testsuite.at): Update.
2001-11-05 09:32:35 +00:00
Akim Demaille
8993e7a7fa * lib/Autom4te/General.pm: (&catfile, &canonfile)
(&file_name_is_absolute): New, wrappers around routines from
File::Spec.
Use and export them.
(&find_configure_ac): Optionally take a directory where to look at.
* bin/autoreconf.in (&parse_args): Trim the configure.ac part of
the arguments.
Default @ARGV to `.', not find_configure_ac.
(&autoreconf): Argument is a directory.
Trace AC_CONFIG_SUBDIRS and schedule the subdirs for autoreconf'ing.
* doc/autoconf.texi (autoreconf Invocation): Update.
2001-11-03 12:01:35 +00:00
Akim Demaille
3b536e758c * lib/Autom4te/General.pm (@export_vars, @export_subs)
(@export_forward_subs): New.
Add basename, dirname, and fileparse.
(@EXPORT): Adjust.
* bin/autoreconf.in (&autoreconf): Fix call to fileparse.
Don't look for aclocal flags if we already know aclocal is not
used.
Move aclocal.m4t only if it exists.
Reported by Ezra Peisach.
2001-11-03 11:59:48 +00:00
Akim Demaille
03cd990470 * bin/autoreconf.in (&parse_args): Work only on the configure.ac
passed on command line, defaulting to ./configure.ac if present.
(&maybe_autoreconf, File::Find): Remove, unused.
(&autoreconf): If autoconf is not used, don't try to trace.
2001-11-03 11:59:35 +00:00
Akim Demaille
5e98f4efcf * bin/autoreconf.in (&autoreconf): Set `$aclocal_flags' to ''.
Don't run aclocal when aclocal.m4 is not from aclocal.
From Ezra Peisach.
Don't run libtoolize and gettextize if --install is not given.
2001-11-02 16:28:33 +00:00
Akim Demaille
89af419b83 Regen. 2001-10-31 10:43:31 +00:00
Akim Demaille
d7089440fc * m4/: Remove, merged into...
* config/: here.
2001-10-24 13:30:56 +00:00
Akim Demaille
9958e7c098 * lib/Autom4te/General.pm (&update_file): If destination is
unchanged, remove the source.
(&up_to_date_p): Don't be verbose, be debug.
* bin/autoreconf.in: No longer support --m4dir.
(&autoreconf): Display the full path of the configure.ac we are
studying.
Trace it only once.
Be sure to honor --force with gettextize.
Always run aclocal.
* doc/autoconf.texi: Adjust.
2001-10-20 06:56:45 +00:00
Akim Demaille
56eefd1f8d * bin/autoheader.in ($localdir, $m4, $SIMPLE_BACKUP_SUFFIX):
Remove, dead.
* bin/autoreconf.in (&autoreconf): Do not run gettextize when
`intl' is already present, as it refuses unless --force.
(&parse_args): Use -I, --include instead of the old Autoconf
options.
($localdir, $autoconf_dir): Remove.
(@include): New.
(&maybe_autoreconf): New, to preserve $_ for File::Find.
2001-10-20 06:51:41 +00:00
Akim Demaille
c886cdc10e * bin/autoreconf.in (autoreconf): Display the path to the
configure.ac being studied.
2001-10-19 14:26:45 +00:00
Akim Demaille
6dfba95517 * bin/autoreconf.in (&autoreconf): Remove debugging code.
(&parse_args): Pass verbosity/debugging options to subtools when
--debug, not when --verbose.
* lib/autom4te.in (Autoreconf-preselections): New.
(Autoconf): Use it.
2001-10-08 09:40:33 +00:00
Akim Demaille
218609130b * bin/autoreconf.in (autoreconf): Run libtoolize when appropriate. 2001-10-08 08:27:15 +00:00
Akim Demaille
abeb5bf977 * doc/autoconf.texi (autoreconf Invocation): Adjust.
* bin/autoreconf.in (autoreconf): Run gettextize when appropriate.
2001-10-08 08:26:58 +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
eacc95ddc9 * lib/autotest/general.m4 (AT_INIT): Dump config.log last.
Pass $at_debug_args to the rerun test suite.
* lib/m4sugar/Makefile.am (DISTCLEANFILES): New.
* bin/Makefile.am (ETAGS_SH): Don't use characters ranges.
From Paul Eggert.
2001-09-23 17:16:43 +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
32672ba4a6 * bin/autoupdate.in (&handle_m4_macros) <unm4.m4>: Undefine iff
defined.
2001-09-05 07:06:18 +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
2d55f8a447 CVS GNU M4 doesn't like `undefine(undefined)'.
* bin/autoupdate.in (&handle_m4_macros, &handle_autoconf_macros):
New, extracted from main.
Use IO::File wherever possible.
(input.m4): Be constant, use -I instead of hard coding $tmp.
Therefore be a quoted heredoc.
Don't invoke `_au_disable', since ac was not loaded, but just
`unm4.m4'.
2001-09-05 07:04: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
daa8455624 * bin/autoupdate.in (@include): `installcheck' revealed the path
to m4sugar was lacking!
2001-08-31 13:35:17 +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
0e30eb6fc9 * tests/semantics.at (AC_C_BIGENDIAN): Missing eol.
* bin/autoheader.in (%symbol): Strip arguments of macros.
2001-08-31 13:34:01 +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
e3e7e0a0af * bin/autoheader.in: Handle the acconfig.h etc. junk files.
Check the completeness of the #template.
* lib/Autom4te/General.pm (&update_file): s/remove/unlink/.
* tests/semantics.at (AC_C_BIGENDIAN): Adjust AT_CHECK_AUTOHEADER
invocation.
2001-08-31 13:32:54 +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
d7d052d158 * bin/autoheader.in: Rewrite in Perl.
* tests/autoheader: Adjust.
2001-08-31 13:32:13 +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
1b9b5dd33a * configure.ac: Also find tested executables in bin.
* bin/autoconf.in, bin/autoheader.in, bin/autoreconf.in,
* bin/autoscan.in, autoupdate.in: Use exclusively the name of the
installed peer executables, only PATH is allowed to resolve it.
Pass `autoconf_dir' via options, not via invisible envvars.
* lib/Autom4te/General.pm (&find_peer): Remove.
* lib/autotest/general.m4 (AT_INIT): `AUTOTEST_PATH=a:b' gives
`abuild:asrc:bbuild:bsrc', not `abuild:bbuild:asrc:bsrc'.
* man/Makefile.am: Let help2man rely on PATH instead of trying to
find the executables for it.
* tests/Makefile.am: Major cleanup.  Too lazy to document...
* tests/atlocal.in: Remove all the obscure envvar manipulations.
We only need PERL.
* tests/atspecific.m4, tests/tools.at: Passing --localdir is
indeed related to running the test suite, while passing
--autoconf-dir and others is related to running non installed
Autoconf executables.  So don't do that, leave it to...
* tests/autoconf, tests/autoheader, tests/autom4te, tests/autoupdate,
* tests/autoscan: New.
* tests/atspecific.m4 (AT_CHECK_M4SUGAR, AT_CHECK_M4SH): Don't
refer to library files: rely on --language.
2001-08-31 13:30:11 +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
ba3b08af20 Automake 1.5.
* Makefile.am (AUTOMAKE_OPTIONS): Add 1.5 and dist-bzip2.
(AMTAR): Help automake define it.
(INSTALL, install-data-hook): The INSTALL.txt trick is no longer
needed, 1.5 can have a macro and a target with the same name.
* m4/auxdir.m4, m4/cond.m4, m4/depend.m4, m4/install-sh.m4,
* m4/strip.m4: New.
* m4/init.m4, m4/sanity.m4: Update.
* doc/Makefile.am (CLEANFILES): 1.5 knows the texi2dvi files.
* lib/autoconf/Makefile.am, lib/autotest/Makefile.am,
* lib/m4sugar/Makefile.am, lib/autoscan/Makefile.am,
* lib/Autom4te/Makefile.am, man/Makefile.am: Use dist/nodist.
2001-08-27 07:12:16 +00:00
Akim Demaille
f827e95708 Provide a mean to ``AC_PREREQ'' for M4sugar, M4sh and Autotest.
* lib/autoconf/version.in: Remove.
* lib/m4sugar/version.in: New.
* lib/m4sugar/m4sugar.m4 (m4_acversion, m4_version_prereq): New.
Adjust callers.
* bin/autoupdate.in: Distinguish M4sugar vs. Autoconf macros by
the name of the directory they're in, instead of the filename,
since version.m4 is now in m4sugar, but m4_acversion must not be
classified as an Autoconf macro.
($input_m4): Don't qualify the path to m4sugar.
Rather, pass autoconf_dir to m4.
* tests/Makefile.am (testsuite): Remove -I top_srcdir, unneeded.
* tests/suite.at: Require 2.52c.
2001-08-27 07:08:56 +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
40556ab827 * bin/Makefile.am, lib/Autom4te/Makefile.am, lib/autoconf/Makefile.am
* lib/autotest/Makefile.am, lib/m4sugar/Makefile.am: Add TAGS support.
2001-08-17 12:06:44 +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
01f2ae88a0 * bin/autoconf.in ($@): Work around the usual sh bug.
From Nicolas Joly.
2001-08-03 09:23: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
0a7e3d9bef Add. 2001-08-01 15:11:04 +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
Akim Demaille
8bd95d39ab Prepare file moves. 2001-07-30 08:50:22 +00:00
Pavel Roskin
9e7499b740 * autom4te.in (mktmpdir): Strip trailing newline from mktemp
output.
2001-07-25 14:39:18 +00:00
Akim Demaille
b8ad147903 * autoconf.in: Try to define the variables before using them.
* autom4te.in ($perllibdir): Use `$autom4te_perllibdir' as envvar
instead of `$perllibdir'.
* tests/atconfig.in ($autom4te_perllibdir): Export it.
2001-07-25 07:07:33 +00:00
Akim Demaille
db93100aac * autoconf.in (ac_LF_and_DOT): Remove, unused. 2001-07-25 07:06:59 +00:00
Akim Demaille
27103b83f0 Let autoconf use autom4te for traces.
* autoconf.in ($task, task trace): Remove, merely pass --trace to
autom4te.
* autoheader.in: Don't pass `-' to autoconf, rather, a tmp file.
(Because I found no way for autom4te to accept `-').
* autom4te.in (&Request::request): Beware of M4 builtins.
(END): Don't try to remove the content of an empty dir.
(&parse_args): Default is `$f:$l:$n:$%', not `$f:$l:$n:$*'.
(&handle_output): Set a default value to `$forbidden'.
* autoupdate.in (&verbose, &xsystem): New, from autom4te.in.
($autoconf): Pass --debug and --verbose.
* tests/atspecific.m4 (AT_CHECK_AUTOCONF): Clean up autom4te's
cache.
2001-07-24 09:05:28 +00:00
Akim Demaille
45929722e1 Let autoconf use autom4te to create configure.
* autoconf.in ($automate): New var.
(task script): Use autom4te.
* autom4te.in (File::Spec): Use it.
(&find_file): New.
(&parse_args): --warning is -W, not -w.
Find the top level files.
(&handle_m4): Pass the warnings flags.
Don't report verbosely m4's failures, unless requested.
(&handle_output): Don't complain for forbidden tokens in comments.
Be sure to report all the forbidden tokens within a single line.
(&trace_format_to_m4): Preserve `$_'.
(&handle_traces): Sort the output macros.
(&up_to_date_p): Find the files before trying to get its time stamp.
2001-07-24 08:57:55 +00:00
Akim Demaille
91fbae6966 * Makefile.am: Ship, build and install Autom4te.
(SUBDIRS): Add lib.
* lib/Autoconf/Struct.pm: New, from Automake 1.5.
* configure.in: Require Perl.
* man/autom4te.in: New.
2001-07-24 08:43:06 +00:00
Akim Demaille
beaa477c90 * autoscan.in: Use IO::File.
Adjust all the routines to use it.
($log): New file (autoscan.log).
(output): Dump detailed logs into $log, and a shortened version to
stderr.
(&scan_makefile): Refine the regexp catching tokens in the code.
* doc/autoconf.texi (autoscan Invocation): Document `autoscan.log'
and the `configure.ac' checking feature.
2001-07-14 14:19:19 +00:00
Akim Demaille
f25219dfd6 For some AWK, such as on HPUX 11, xfoo' does not match foo|^bar'.
Reported by Michael Elizabeth Chastain.
* autoconf.in: Refuse such AWK.
* configure.in: Likewise.
* Makefile.am (acversion.m4): Do not use move-if-change this file
has dependencies.
* doc/autoconf.texi (Fortran 77 Compiler): Some typos.
2001-07-12 12:42:46 +00:00
Akim Demaille
d026b456c5 * autoscan.in (&scan_makefile): Improve programs regexp to parse
things like "g++", "file.c" and "some-conf" as tokens.
(&scan_file): Match C++ files extensions.
If the filename extension is C++ then ask for c++.
2001-07-10 09:16:33 +00:00
Akim Demaille
043dcc81de * autoscan.in (&scan_file): Skip FILE if there is FILE.in.
From Jens Petersen.
2001-07-04 07:45:12 +00:00
Akim Demaille
02adf2d812 * autoscan.in ($initfile): Remove.
(&find_file): Rename as...
(&scan_file): this.
Immediately scan the current file, instead of gathering them, and
later having them handled by &scan_files.
(&scan_files): Merely invoke Find::File.
Adjust.
2001-07-03 14:11:06 +00:00
Akim Demaille
4155128221 * autoscan.in: Formatting changes, matching the invocation order.
(File::Find): Use it instead of Perl 4's `find.pl'.
(&wanted): Rename as...
(&find_file): this.
2001-07-03 14:10:41 +00:00
Akim Demaille
80dc65a8a0 * autoscan.in (%macro): Now maps from word to list of macros.
(&init_tables): Die when a word which is already handled by
explicit macros is mapped to the default macro.
(&print_unique): Remove, inlined in...
(&output_kind): here.
(File::Basename): Use it.
(&output): Sort the CONFIG_FILES.
* acheaders: Normalize.
* acfunctions: Likewise.
2001-06-25 06:15:07 +00:00
Akim Demaille
ca36be0606 * autoconf.in (Task traces): Separate the error messages from the
traces to improve robustness.
2001-06-23 22:58:54 +00:00
Akim Demaille
a89977e147 * autoconf.in (M4): Pass --nesting-limit=1024, unless already set
in $M4.
Suggested by Andreas Schwab.
2001-06-18 18:15:24 +00:00
Akim Demaille
9d948a65ed * autoscan.in (&output_kind): Output the comment only if it exists.
(%kind_comment): Add entry for `programs'.
(&output_programs): Use &output_kind.
(&output_functions, &output_identifiers, &output_headers)
(&output_programs): Inline, and remove.
2001-06-12 10:16:49 +00:00
Akim Demaille
49ee5178ef * autoscan.in (%kind_comment): New.
(output_kind): New.
(output_functions, output_identifiers, output_headers): Use it.
2001-06-12 10:05:27 +00:00
Akim Demaille
00e2194dad * autoscan.in (&print_unique): Take $kind' and $word' as
arguments, to factor indirections into `%macro' and `%used'.
(%generic_macro): Fix a typo.
2001-06-12 09:45:01 +00:00
Akim Demaille
54a953b733 * aclibraries: New.
* autoscan.in (@kinds): Add `libraries'.
Use `@kinds' instead of hard coded lists.
(%programs, %headers, %identifiers, %makevars, %libraries, %functions):
Remove, replaced by...
(%used): this.
2001-06-12 09:33:58 +00:00
Akim Demaille
c306314db9 * autoscan.in (%functions_macros %headers_macros)
(%identifiers_macros %programs_macros %makevars_macros): Remove,
replaced by...
(%macro): New.
2001-06-12 08:40:02 +00:00
Akim Demaille
eddc4ccb87 GNU getopt, when POSIXLY_CORRECT does not permute options and
arguments.  So pass the options first.
Fixes PR autoconf/184.
* autoconf.sh (m4_prefiles, m4f_prefiles): New variables.
(run_m4): Remove files.
(run_m4f): Remove.
Update remainder of script to use them.
(for warning in): Do not use a literal comma as it will not be
split by IFS.
2001-06-02 15:45:32 +00:00
Akim Demaille
32322098aa * autom4te.in (Request::@request): Declare with vars', not my',
as it prevents updates via `do FILENAME'.
2001-06-02 13:00:34 +00:00
Akim Demaille
4a8d7d11fb * autom4te.in: New. 2001-06-02 11:28:17 +00:00
Pavel Roskin
8dba4e28ab * acgeneral.m4 (_AC_INIT_PREPARE): Don't rely on $? in the traps
for signals other than 0 - exit with code 1.
* m4sh.m4 (AS_TMPDIR): Likewise.
* autoconf.in: Likewise. Also don't rely on exit == exit $?.
* autoheader.in: Likewise.
* autoreconf.in: Likewise.
* tests/torture.at (Signal handling): New test for the above.
2001-06-02 05:49:54 +00:00
Akim Demaille
f27d468f90 * autoconf.in, autoreconf.in, autoheader.in, autoscan.in, ifnames.in,
* autoupdate.in: Specify the Emacs mode.
* acversion.m4.in: Rename as...
* acversion.m4: this.
* tests/Makefile.am (CLEANFILES): More garbage.
2001-05-22 14:04:22 +00:00
Akim Demaille
259e7433b4 * autoconf.sh: s/undefined macro/possibly undefined macro/. 2001-05-19 16:55:05 +00:00
Akim Demaille
055b95929a * autoheader.sh: Fix file names used in error messages.
Reported by Rainer Orth as PR Autoconf/178.
2001-05-19 16:48:01 +00:00
Akim Demaille
48ecaeea39 * autoconf.sh (Task script): Be sure that `forbidden.rx' and
`allowed.rx' exist when AWK loads then.
Reported by Rainer Orth.
2001-04-11 16:29:14 +00:00
Lars J. Aas
f29d0d8fc5 use here-docs in print_usage/print_version 2001-04-10 11:29:53 +00:00
Akim Demaille
75a3a3d326 * m4sh.m4 (AS_BASENAME): New.
(AS_SHELL_SANITIZE): Set `$as_me'.
* acgeneral.m4: Don't set as_me; AS_SHELL_SANITIZE now does this.
* tests/atgeneral.m4: Likewise.
(AT_INIT): Use $PATH_SEPARATOR for walking the path.
* autoconf.sh: Be DOS-friendly when setting as_me and M4.
Add quotes to support spaces in $tmp.
Work around problem in DJGPP port of awk by using a temporary file.
* autoheader.sh: Be DOS-friendly when setting as_me.
* autoreconf.sh: Be DOS-friendly when setting as_me, dir and
template_dir.
2001-03-30 12:49:36 +00:00
Akim Demaille
2728d861ef * autoheader.sh (config_h): Be robust to new lines when extracting
the first argument of AC_CONFIG_HEADERS.
Reported by Lars J. Aas.
2001-03-27 16:47:10 +00:00
Akim Demaille
830cc1d4ba * configure.in: Bump to 2.49e. 2001-03-19 18:14:44 +00:00
Akim Demaille
260929dc38 * autoscan.pl, autoupdate.in: Use use' instead of require' to
require some version of Perl, so that the test is performed at
compile time, not run time.
Suggested by Nicolas Joly.
2001-03-13 18:15:58 +00:00
Akim Demaille
38fa78538d * tests/tools.at: Be sure to remove configure.ac~.
* autoupdate.in (File::Basename): Use package.
(%ac_macros, %au_macros): Save only base filenames.
2001-03-13 12:09:22 +00:00
Pavel Roskin
a3e2a92f9d * autoupdate.in: Preserve exit status of the failed command when
die() follows system() by dividing $! by 256.
2001-02-26 22:05:51 +00:00
Pavel Roskin
760abff068 * autoupdate.in (&mktmpdir): Strip the newline from the output
of mktemp.
2001-02-26 15:11:44 +00:00
Akim Demaille
e4a74027fd * autoupdate.in: Support DOS paths. Initialize $tmp to
avoid warnings.  Default $autoconf to 'autoconf'.
2001-02-25 20:10:19 +00:00
Akim Demaille
658c0cf23c * autoupdate.in (&END): Try to preserve the exit status.
Use backquotes where more readable.
Internal details should be dumped when $debug, not when $verbose.
2001-02-25 10:45:25 +00:00
Akim Demaille
92215a3452 * autoupdate.in (&mktmpdir): New.
(&END): Remove $tmp.
(&parse_args): Handle -d and -l.
2001-02-25 10:45:02 +00:00
Akim Demaille
8fa22f9fb7 * autoupdate.in (&parse_args): Support `-'. 2001-02-25 10:43:13 +00:00
Akim Demaille
216c0fe12e * autoupdate.in: Less Bournisms, more Wallisms. 2001-02-25 10:42:49 +00:00
Akim Demaille
5e0a2a0099 * autoupdate.in: New. Replaces autoupdate.sh. 2001-02-21 08:59:24 +00:00
Akim Demaille
3fd60be7b0 * autoscan.pl (&find_configure_ac): New. 2001-02-21 08:47:16 +00:00
Akim Demaille
a70d38879b * autoscan.pl (check_configure_ac): Pretty missing macro warnings
output.
2001-02-20 09:24:40 +00:00
Jim Meyering
d33b855c6c Misc. clean-up:
Move declarations of variables into the scope where they're used.
Use `qw'.  Don't use `$_'.
2001-02-11 17:15:03 +00:00
Jim Meyering
3e1011933f Ensure that even `autoscan --version' fails when e.g.,
writing to a full disk.

(END): New function.
2001-02-11 16:38:44 +00:00
Akim Demaille
05cb1a8393 * autoheader.sh: Only set config_h for the first call to
AC_CONFIG_HEADERS.
2001-02-06 13:47:52 +00:00
Pavel Roskin
9c5fe516c9 * autoscan.pl (scan_c_file): When in verbose mode, don't print
out hashes common for the whole package. Do it in scan_files()
instead.
(scan_makefile): Likewise.
(scan_sh_file): Likewise.
Thanks to Jim Meyering for improved implementation.
2001-02-02 18:15:36 +00:00
Pavel Roskin
7aaa1f5959 * autoreconf.sh: Fix the case when the verbose output was not
redirected to stderr as everywhere else.
2001-02-01 23:23:57 +00:00
Akim Demaille
4d2b6bfb9a * autoheader.sh: Don't pass a string to 'echo' that might
possibly contain backslashes.
2001-01-30 10:42:36 +00:00
Akim Demaille
6eaa0cd781 * 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'.
2001-01-29 09:50:01 +00:00
Akim Demaille
8af30c8986 * 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.
2001-01-29 09:24:13 +00:00
Akim Demaille
5b494c3353 * autoreconf.sh (find): Fix precedence.
(aclocal): Same as below for autoheader.
2001-01-26 16:10:42 +00:00
Akim Demaille
88d2fd8441 * autoreconf.sh (autoheader): Run it when there is no template, as
there is no risk to override a handwritten template.
From Assar Westerlund.
2001-01-26 14:42:14 +00:00
Akim Demaille
2092655553 * autoreconf.sh: Also find configure.in. 2001-01-25 16:02:08 +00:00
Akim Demaille
f2f63c8cb6 * autoscan.pl (output): Detect/report a close failure. 2001-01-24 17:44:59 +00:00
Akim Demaille
4c23c729fa * autoscan.pl (generic_macro): s/AC_CHECK_FUNCTIONS/AC_CHECK_FUNCS/.
* acfunctions: Just like the previous patch.
2001-01-24 07:58:59 +00:00
Akim Demaille
b6c86b528a * 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.
2001-01-24 07:58:46 +00:00
Akim Demaille
c0e271d2a6 * autoscan.pl: Just like the previous patch, but for
AC_CHECK_FUNCS, AC_CHECK_TYPES, and AC_CHECK_MEMBERS.
2001-01-24 07:58:31 +00:00
Akim Demaille
a29dd40a44 * 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.
2001-01-24 07:58:16 +00:00
Akim Demaille
8538546df6 * autoscan.pl: Don't use `defined' to check whether an array is
defined.
Don't use parens with `defined'.
2001-01-23 10:28:29 +00:00
Pavel Roskin
487edb489f * 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.
2001-01-22 20:21:33 +00:00
Akim Demaille
2b4643604b * autoscan.pl ($dir, $autoconf): New. 2001-01-22 19:05:16 +00:00
Akim Demaille
c3aa22ab53 * autoscan.pl ($headers, $functions, $identifiers, $libraries):
Also register locations of their requirement instead of a simple
counter.
(&check_configure_ac): Close TRACES.
2001-01-22 19:04:47 +00:00
Akim Demaille
9229a5416d * autoscan.pl: Formatting changes.
Check `configure.ac' or `configure.in' if present.
2001-01-22 19:04:00 +00:00
Akim Demaille
2711ab3056 * 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.
2001-01-22 19:01:40 +00:00
Akim Demaille
85065e6ad0 * 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.
2001-01-22 19:01:23 +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
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
3e7682ecb7 * autoconf.sh (M4): Handle PC drive letters.
* autoupdate.sh: Likewise.
2001-01-11 14:18:48 +00:00
Pavel Roskin
86ac9c829a * autoreconf.sh: s/localddir/localdir/.
Reported by Motoyuki Kasahara.
2000-12-25 14:57:53 +00:00
Akim Demaille
cd7cd7bf31 * 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'.
2000-12-23 10:11:57 +00:00
Pavel Roskin
21ca8441bc * 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.
2000-12-15 19:23:16 +00:00
Pavel Roskin
7173ba3da5 * autoscan.pl (init_tables): Allow spaces on the right hand side
in autoscan tables. Die if there are no spaces at all.
(scan_c_file): Use b instead of W so that keywords match at
the beginning and the end of the line.
(scan_sh_file): Likewise.
(scan_makefile): Likewise. Use B to match before `-l'.
(output): Suggest AC_CONFIG_HEADER if any C/C++ sources are
found.
* acidentifiers: Update macros for structure members st_blksize
and st_rdev.
2000-12-12 12:45: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
83e4065f15 * autoconf.sh (task trace): s/m4/$M4/.
* autoheader.sh: When loading trace.sh, catch errors and exit with
a decent error message.
* tests/tools.at: Be sure to test autoconf --trace before
autoheader.
2000-12-06 10:53:58 +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
5eb1d8aeb6 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.
2000-11-16 10:12:50 +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
Pavel Roskin
fddcd13579 * 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.
2000-11-10 15:49:15 +00:00
Pavel Roskin
603fad0c9c * 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.
2000-11-07 17:58:43 +00:00
Akim Demaille
f1ba26c218 * tests/tools.at (unexpanded macros): Strengthen.
* autoconf.sh (finalize.awk): Use `sub' instead of `index' +
`substr'.
More comments.
2000-11-03 15:08:28 +00:00
Pavel Roskin
48f158e039 * ifnames.sh: Put the opening brace on the same line with
patterns. Reported by Paul Martinolich.
        * tests/tools.at (AWK portability): Check ifnames.
        (ifnames): New test for ifnames.
        * THANKS: Updated.
2000-11-02 17:03:32 +00:00
Akim Demaille
5b4f860940 * autoconf.sh (trace.m4): Move all the M4 builtins into `at_'.
Catch the failures of the big pipe.
2000-11-02 16:03:58 +00:00
Akim Demaille
ff03218ac3 * tests/tools.at (Tracing M4 builtins): New test.
* autoconh.sh (trace_format): Fix its computation.
2000-11-02 15:32:23 +00:00
Akim Demaille
648bf798eb * autoconf.sh (task trace) [debug]: Instead of a long pipe, extend
trace.m4.
2000-11-02 15:06:02 +00:00
Akim Demaille
2353e0d366 * m4sugar.m4 (popdef, pushdef): Rename as...
(m4_popdef, m4_pushdef): these.
Adjust dependencies.
* acgeneral.m4: Adjust.
* aclang.m4: Likewise.
* autoconf.m4 (popdef, pushdef): Reactivate them.
2000-11-02 14:12:18 +00:00
Pavel Roskin
33de71ca28 * autoconf.sh: Using trap-safe "exit".
* autoreconf.sh: Likewise.
        * autoupdate.sh: Likewise.
        * tests/base.at: Use AS_EXIT instead of exit in configure.in.
        * tests/m4sh.at: Likewise.
        * tests/semantics.at: Likewise.
2000-11-01 19:57:54 +00:00
Akim Demaille
701a1dde55 GNU M4 1.4 improperly handle the traces of copies of builtins.
* autoconf.sh (task trace): When tracing `BUILTIN' also trace
`m4_BUILTIN'.
2000-11-01 17:02:34 +00:00
Pavel Roskin
a63489da61 * autoconf.sh: Typo: s/m4__warnings/m4_warnings/. 2000-11-01 15:01:54 +00:00
Akim Demaille
82756f7543 Move the handling of classified warnings into M4sugar.
* m4sugar.m4 (m4_diagnose): Remove.
(m4_warning): New.
* acgeneral.m4 (AC_WARNING_IFELSE, _AC_WARNING_IFELSE)
(_AC_WARNING_ERROR_IFELSE, __AC_WARNING_ERROR_IFELSE)
(_AC_DIAGNOSE, AC_DIAGNOSE): Rename as...
* m4sugar.m4 (m4_warning_ifelse, _m4_warning_ifelse)
(_m4_warning_error_ifelse, __m4_warning_error_ifelse)
(_m4_warn, m4_warn): these.
* acgeneral.m4 (AC_DIAGNOSE): Wrapper around `m4_warn'.
* autoconf.sh: Define `m4_warnings' instead of `_AC_WARNINGS'.
2000-10-31 15:20:15 +00:00
Pavel Roskin
80f8404bec * autoconf.sh: When scanning for unexpanded macros match only
words beginning with "A?_" and "m4_" or containing "_A?_".
        Strip the comments before the matching. Don't use character
        ranges.
2000-10-30 03:20:00 +00:00
Pavel Roskin
c46d9d8480 * autoconf.sh: Recognize short options followed by arguments
without separators.
        * autoheader.sh: Likewise.
        * autoreconf.sh: Likewise. Recognize abbreviations for
        "--autoconf-dir" and "--m4dir"
        * autoupdate.sh: Likewise. Recognize abbreviations for
        "--autoconf-dir"
2000-10-27 13:47:54 +00:00
Pavel Roskin
0dd3144b2e * autoconf.sh: Don't show obsolete options on "--help". Report
obsolete options to stderr. Adjust list of options. Correct
        processing of options. Process options with values separated by
        "=" first, so that abbreviations work. Don't accept "=" with
        short options.
        * autoheader.sh: Likewise.
        * autoreconf.sh: Likewise.
        * autoupdate.sh: Likewise.
        * ifnames.sh: There is no "--verbose" option.
        * doc/autoconf.texi: Option "-A" requires an argument.
        (autoreconf Invocation): Document "--install", "--symlink",
        "--m4dir" and the options passed to Automake.
2000-10-26 22:27:48 +00:00
Akim Demaille
161112fd78 In order to check that all the CPP symbols which are AC_DEFINE'd
are properly templated, autoheader traces
AC_DEFINE/AC_DEFINE_UNQUOTED.  Only literals can be traced, and
actually tracing non literals produces invalid autoheader input.
Hence, provide a means to trace calls to
AC_DEFINE/AC_DEFINE_UNQUOTED with literals.
* acgeneral.m4 (AC_DEFINE_TRACE, AC_DEFINE_TRACE_LITERAL): New
macros.
(AC_DEFINE, AC_DEFINE_UNQUOTED): Use AC_DEFINE_TRACE.
* autoheader.sh: Trace AC_DEFINE_TRACE_LITERAL, not
AC_DEFINE/AC_DEFINE_UNQUOTED.
2000-10-23 18:32:17 +00:00
Akim Demaille
1e3cdfe0a3 * acgeneral.m4: Adjust copyright notice.
* acspecific.m4: Likewise.
* acoldnames.m4: Likewise.
* acversion.m4.in: Likewise.
* autoconf.sh: Likewise.
* autoheader.sh: Likewise.
* autoreconf.sh: Likewise.
* autoscan.pl: Likewise.
* autoupdate.sh: Likewise.
* ifnames.sh: Likewise.
2000-10-16 18:25:55 +00:00
Akim Demaille
e6600f6485 * autoconf.sh: Report full macro name for missing macros. 2000-09-27 10:29:30 +00:00
Akim Demaille
c916e13f94 * autoheader.sh: Fix trap (EXIT) status.
* autoreconf.sh: Likewise.
* autoupdate.sh: Likewise.
* autoconf.sh: Change `exit' to `{ (exit 1); exit; }' after m4 and
awk commands to ensure exit state is in a defined state.
2000-09-27 10:02:27 +00:00
Pavel Roskin
480bbc8376 * autoheader.sh: Don't check status of variable assignments -
* it's undefined in ash 0.2.
* autoreconf.sh: Likewise.
* autoupdate.sh: Likewise.
* autoconf.sh: Likewise. Also eliminated command substitution
inside variable expansion - ash 0.2 coredumps on it.
2000-09-25 13:24:45 +00:00
Akim Demaille
66dcecdf2f * autoconf.sh (optarg): More robust expr invocation.
* autoreconf.sh: Likewise.
* autoupdate.sh: Likewise.
* autoheader.sh: Likewise.
Reported by Bernard Dautrevaux.
2000-09-19 12:35:01 +00:00
Akim Demaille
63ff24b580 * autoconf.sh: Proprerly report names of unexpanded macros that
begin with an underscore
2000-09-11 07:16:34 +00:00
Akim Demaille
82bbd6fe4e * autoconf.sh: Consider undefined macros as errors.
* tests/base.m4 (unexpanded macros): Expect error, not warning
2000-09-05 10:19:01 +00:00
Akim Demaille
287ac9cdb8 * autoscan.pl: Repair broken Getopt::Long use. 2000-09-04 14:50:50 +00:00
Akim Demaille
9fe002dcf5 * autoconf.sh: Change exit N' to (exit N); exit' to provide
the correct exit status when an exit trap is taken.
2000-08-11 08:51:34 +00:00
Akim Demaille
a950c6810a * autoreconf.sh (Installing Autoconf extensions files): Remove. 2000-08-09 09:56:30 +00:00
Akim Demaille
4df82da14e * autoconf.sh (finalize.awk): Don't leave spaces before the user
function calls.
Reported by John David Anglin.
* doc/autoconf.texi (Limitations of Usual Tools): Start the AWK
section.
* tests/tools.m4 (AWK portability): New test.
2000-08-09 06:53:07 +00:00
Akim Demaille
6b9ecd5669 * autoconf.sh (finalize.awk): New subtool, eved from the previous
literal AWK program that performed the `oline' and quadrigraphs
substitution.
Fix its `oline' computation which was dead wrong when there are
empty lines (i.e., always).
Enhance it in order to look for and report unexpanded macro.
Don't let it pretend there are bugs in Autoconf (c:, the test
suite makes this scenario pretty unlikely as opposed to an actual
user bug.
Catch `m4_' too.
Remove the shell snippet which used to do this.
2000-08-07 12:07:17 +00:00
Akim Demaille
89ffc0a2f2 * autoheader.sh (_ac_warnings): Be robust to LC_COLLATE.
`IFS=,; echo ,' will give a comma.  Take this into account.
2000-08-01 13:59:51 +00:00
Akim Demaille
6e867eb5ee * acgeneral.m4 (_AC_INIT_PREPARE_ENVIRONMENT): Neutralize also
LC_COLLATE and LC_NUMERIC.
* autoconf.m4: Don't rely on character ranges with tr.
* doc/autoconf.texi (Special Shell Variables): Adjust.
2000-08-01 11:22:42 +00:00
Akim Demaille
83afb4f7ce * autoscan.pl: Be ready to handle AC_CHECK_TYPES requests.
Quote properly the output.
Remove useless backslashes.
2000-08-01 11:12:12 +00:00
Akim Demaille
4d600514e0 * autoscan.pl: Use Getopt::Long;
* acidentifiers: Classify, sort.
2000-08-01 10:05:11 +00:00
Akim Demaille
b64f36dee1 * autoconf.sh (--warnings): Catch no-category', not nocategory'.
* autoheader.sh: Likewise.
* acgeneral.m4 (_AC_WARNING_IFELSE): Adjust.
2000-07-28 07:41:52 +00:00
Akim Demaille
20078ad516 * autoreconf.sh (dir): When verbose, say what are the tools you
will use.
2000-07-19 09:24:10 +00:00
Akim Demaille
b240f802f9 * autoreconf.sh: Accept --symbolic and -s. 2000-07-19 09:04:26 +00:00
Akim Demaille
9150c0ede6 Make it clear that the regular user does not need --macrodir.
In fact, rename this option as -A, --autoconf-dir.

* autoconf.sh: Complain when -m, --macrodir is used.
Accept -A, --autoconf-dir.
Use $autoconf_dir instead of $AC_MACRODIR.
Adjust --help.
* autoheader.sh: Likewise.
* autoscan.sh: Likewise.
* autoupdate.sh: Likewise.
Use $optarg.
* autoreconf.sh: Likewise.
* doc/autoconf.texi: Adjust.
* tests: Adjust the test suite.
2000-07-19 09:03:53 +00:00
Akim Demaille
80ad59d16d * autoreconf.sh: Forward --debug to sub tools.
Let them share the same tmp dir.
2000-07-19 08:54:44 +00:00
Akim Demaille
71773fbd5f * acspecific.m4 (AC_MING32): Rename as AC_MINGW32. 2000-07-19 08:22:58 +00:00
Akim Demaille
a057e62853 Make it easier to trace what autoreconf does.
* autoheader.sh: Be more verbose, and always report your name in
verbose messages.
* autoconf.sh: Likewise.
* autoreconf.sh: Likewise.
(update.sh): Redirect ls's stderr to /dev/null.
2000-07-13 13:38:45 +00:00
Akim Demaille
17680fe3fb * autoconf.sh (_ac_warnings): Fix call to tr.
Reported by Johan Danielsson.
2000-07-12 16:33:38 +00:00
Akim Demaille
609835a22f Alexandre's suggestions.
* autoreconf.sh (update.sh): Use `ls -1dt' instead of `-lt'.
Use test instead of sed.
<automake>: If automake is used, always run it: it has its own
mechanism not to update if unneeded.
2000-07-10 14:03:12 +00:00
Akim Demaille
d899114564 Set autoconf's default warnings to `syntax'.
In fact, honor the most recent specification in the concatenation
of `syntax',$WARNINGS,<options> in that order.
Implement support for `none' and `noCATEGORY' so that the options
may override the previous choices.
Suggested by Didier Verna.

* acgeneral.m4 (_AC_WARNING_IFELSE): New macro.
(AC_WARNING_IFELSE): Use this macro to implement the new specs.
(AC_WARNING): The empty category must not be used, default to
`syntax'.
* doc/autoconf.texi (autoconf Invocation, Reporting Messages): Adjust.
* autoconf.sh: Adjust.
Use `optarg' to fetch the arguments of options.
Fix a bug in the handling of `--trace='.

* acgeneral.m4 (AC_CACHE_VAL): Typo: the macro was complaining iff
it shouldn't have.
2000-07-10 10:23:08 +00:00
Akim Demaille
27b442f347 * autoreconf.sh (--install, --symlink): New options. 2000-07-10 10:22:06 +00:00
Akim Demaille
af73cb1d65 * autoreconf.sh (dots, aclocal_m4, acconfig_h): Remove.
Adjust dependencies.
When using $verbose, redirect to stderr.
2000-07-10 10:19:55 +00:00
Akim Demaille
6ab1be44a6 * autoreconf.sh: Clarify the difference between the location of
`aclocal.m4' and that of the location Autoconf extensions.
(-M, --m4dir): New option.
(aclocal_flags): Do not use $localdir, but $m4dir.
(localdir_opt): Remove, since $autoconf, $autoheader already
include `-l $localdir'.
2000-07-10 10:18:57 +00:00
Akim Demaille
289b6c7a22 * autoconf.sh (task install): We no longer use AC_INCLUDE. 2000-07-10 10:12:44 +00:00
Akim Demaille
00ac4eb3f1 * autoreconf.sh (debug): New variable.
(tmp): s/ac/ar/.
<options handling>: Support --debug.
* doc/autoconf.texi: Adjust.
2000-07-10 10:08:29 +00:00
Akim Demaille
8c56486b58 Fix the bugs recently introduced in autoreconf.
* autoreconf.sh: Don't run automake when the package is not using
it.
When checking whether autoheader should be rerun, don't ask
config.h to be newer than stamp-h and vice-versa.
Remove an unbalanced `fi'.
2000-07-10 10:07:41 +00:00
Akim Demaille
4e2f72941d * autoreconf.sh (run_aclocal): Rename as `uses_aclocal' to avoid
the convention clash with autoconf.sh where `run_foo' is the
command to run `foo'.
(uses_autoheader): New variable.
2000-07-10 10:06:48 +00:00
Akim Demaille
d0caf6df76 * autoreconf.sh (update.sh): New sub program.
Use it in the whole process.
(acconfig_h): New variable.
2000-07-10 10:01:42 +00:00
Akim Demaille
09c8c7c398 * autoreconf.sh <run_aclocal>: Use false/: instead of no/yes.
Formatting and factoring changes.
2000-07-10 08:59:11 +00:00
Akim Demaille
d70f10d81b * autoreconf.sh: You too can have a $tmp dir if you wish.
(alflags.sed): New sub sed program.
Compute the flags of aclocal from Makefile.am instead of
Makefile.in, it is unlikely that aclocal be used but not automake,
while it is convenient to be able to run autoreconf even if
automake was not run yet.
Use `autoconf --trace' to get the list of configuration headers.
2000-07-10 08:57:16 +00:00
Akim Demaille
d9c7337e87 * acgeneral.m4 (AC_PLAIN_SCRIPT): New macro.
* tests/base.m4 (m4_wrap, AC_REQUIRE, AC_SHELL_MKDIR_P): Use it.
* autoconf.sh: Properly handle the case where `$output' is `-'
(i.e., stdout).
Handle `-ofile', not only `-o file'.
2000-07-10 08:56:19 +00:00
Akim Demaille
c75d1d1975 * autoreconf.sh: Formatting changes.
When verbose, display exactly what you do, not just a synopsis.
When using `$verbose' don't use quotes to avoid spurious spaces
for empty arguments.
2000-07-10 08:55:48 +00:00
Akim Demaille
9cdafb9b2b * autoreconf.sh (force): Instead of yes/no, use :/false.
Adjust the code.
(automake_deps, automake_force): No longer used.
2000-07-10 08:54:41 +00:00
Akim Demaille
821185fa6b * autoconf.sh: When using `mktemp -d', be sure that the directory
was created.
* autoheader.sh: Likewise.
* autoreconf.sh: Likewise.
2000-07-10 08:41:59 +00:00
Akim Demaille
94939fa6c1 * autoreconf.sh (automake, aclocal): New variables. Import
$AUTOMAKE and $ACLOCAL.
Pass --verbose to the tools.
Avoid using plenty of variables, just append to existing
variables.
* doc/autoconf.texi: List options in the order --help, --version,
--verbose, --debug, and then specific options.
2000-06-26 10:51:17 +00:00
Akim Demaille
f3ace9be03 * autoconf.sh (option handling): Give a more understandable
message when an option is missing its argument.
* autoreconf.sh: Likewise.
* autoupdate.sh: Likewise.
* autoheader.sh: Likewise.
2000-06-15 11:33:04 +00:00
Akim Demaille
1708332550 autoconf --trace' dies on filenames with :'.
Reported by Mark Elbrecht.

* autoconf.sh <trace> (trace2m4.sed): Use `..*' instead of
`[^:][^:]*' to catch file names.  The rest of regex is probably
precise enough to avoid incorrect parsing.
2000-06-09 10:02:19 +00:00
Akim Demaille
7f448b314c Formatting changes. 2000-06-09 10:00:36 +00:00
Akim Demaille
66262a6fb1 * autoreconf.sh (autoconf, autoheader): Be more conscientious when
looking for the executable.
* autoupdate.sh: Likewise.
* autoheader.sh: Likewise.
Suggested by Alexandre Oliva.
2000-05-26 18:09:43 +00:00
Akim Demaille
1b6f086514 Thanks to --program-transform-name, `autoconf' might be install as
`yo-man-i-am-the-all-mighty-AVt0c0nF-eh-eh'.  But when
`yo-man-i-am-the-all-mighty-AVt0h3Ad3R-eh-eh' and the other tools
want to trace, they might stupidly invoke the program named
`autoconf' instead.  Pfff, stupid scripts :)

* Makefile.am (editsh): Transfer the names of the install
`autoconf' and `autoheader'.
* autoconf.sh: Add a missing period at the end of the comment
# Parse command line
Make sure to have a ChangeLog much longer than the patch.
* autoheader.sh: Use the right `autoconf'.
* autoupdate.sh: Likewise.
* autoreconf.sh: Likewise, and for `autoheader' too.
Simplify the handling of localdir and AC_MACRODIR.
* ifnames.sh: Formatting changes.
2000-05-26 17:45:10 +00:00
Akim Demaille
bbd3b7f40c Load the additions *before* running AC_INIT.
This is important if you want to redefine AC_INIT or some of its
sub macros (eeerk!), or if you want to use user defined macros
before AC_INIT.
Suggested by Didier Verna.

* acgeneral.m4 (_AC_INIT): Don't include `acsite.m4' and
`aclocal.m4'.
* autoconf.sh (run_m4, run_m4f): Do it.
2000-05-23 09:52:05 +00:00
Akim Demaille
7c8f0f7a69 * acgeneral.m4 (AC_MSG_WARN): s/warning/WARNING/.
* autoheader.sh: Likewise.
From Franois Pinard.
2000-05-19 13:21:05 +00:00
Akim Demaille
990ee90231 * autoheader.sh (config_h): Added templates sort. Under NetBSD 1.4.1
/bin/sh `set' command do not return a sorted variables list.
2000-05-03 15:43:40 +00:00
Akim Demaille
49ec438253 Simplify the handling of `acconfig.h'.
* autoheader.sh: No longer try to select the needed paragraphs of
`acconfig.h', just dump everything into `config.h.in'.
Implement support for `--warnings'.
Warn the users that these auxiliary files are obsolete when `-W
obsolete'.
* doc/autoconf.texi (Invoking autoheader): Adjust.
2000-05-03 11:22:50 +00:00
Akim Demaille
cc07253b22 Support of acconfig.h was broken. Fix and test.
Reported by Jim Meyering.

* autoheader.sh: Trace AC_DEFINE and AC_DEFINE_UNQUOTED to build
the list of $syms which are defined.
* tests/tools.m4 (autoheader): New test.
2000-05-03 11:00:46 +00:00
Akim Demaille
27aaac5d86 Don't double quote in AC_MSG_*.
* acgeneral.m4 (_AC_SH_QUOTE): Don't double quote.  Escape the
double quotes too.
(_AC_ECHO_UNQUOTED): Don't double quote :).
(_AC_ECHO, _AC_ECHO_N): Quote the call to _AC_SH_QUOTE.

The autoheader chain needs to be adjusted.

* acgeneral.m4 (AH_VERBATIM): Just pass two arguments to AH_OUTPUT
instead of trying to build what `autoheader' needs: let it handle
the format by itself.
* autoheader.m4: Adjust.
s,tmp/config.h,tmp/config.hin.

The adjustment revealed that `autoconf --trace' is not robust to
single quotes in its argument.

* autoconf.sh: Fix this issue.
Rename the escape `$*' as `$%'.  Implement `$@'.
* doc/autoconf.texi: Adjust.
2000-05-03 08:53:06 +00:00
Akim Demaille
2df476bb0c mawk suffers a severe performance loss when using `sub' with a
changing value.  On the `configure' script of the fileutils:
mawk '{ sub (/foo/, foo++) }'                  -> 14s.
mawk '{ if ($0 ~ /foo/) sub (/foo/, foo++) }'  -> 0.03s.
mawk '{ sub (/foo/, foo) }'                    -> 0.03s.

* autoconf.sh (task script, AWK script): Run `sub (__oline__,
oline)' only in the lines that match `__oline__'.
Suggested by Paul Eggert.
2000-04-28 09:46:55 +00:00
Akim Demaille
87108bf282 * autoconf.sh (options handling::-W*): Strip two leading chars, not
just one.
2000-04-28 09:07:21 +00:00
Akim Demaille
cc748d17e8 Provide a fine grained control over autoconf's warnings.
* acgeneral.m4 (AC_WARNING_IFELSE, _AC_DIAGNOSE, AC_DIAGNOSE):
New macros.
(AC_DEFUN_ONCE, AC_OBSOLETE, AC_BEFORE, AU_DEFUN, AC_PREREQ,
AC_WARNING, AC_FATAL, AC_TRY_RUN): Use AC_DIAGNOSE.
* autoconf.sh: Provide support for `--warnings', `-W'.
* doc/autoconf.texi (Invoking autoconf): Adjust.
(Reporting Messages): New section.
2000-04-13 08:25:11 +00:00
Akim Demaille
63d0122eb0 * autoscan.pl: Reindent using 2 spaces, not 4.
Use `#' to denote Autoconf comments, not `dnl'.
Put a few `' here and there to avoid misfontification and
misindentation.
Use your base name when reporting errors.
(parse_args::usage): Use $0, use the same order as the other
executables.
(parse_args): Don't dump `--help' on cmd line errors.
2000-04-11 12:06:12 +00:00
Akim Demaille
e727a08732 * autoheader.sh: Catch up with the `mktemp -d' changes in
autoconf.sh.
* autoupdate.sh: Likewise.
2000-03-31 08:20:09 +00:00
Akim Demaille
af8eb3314f Rewrite the autoheader chain on top of `autoconf --trace'.
* autoheader.m4: Dispatch the prototypes next to there AC_
siblings.
(AH_TEMPLATE, AH_VERBATIM): Move to...
* acgeneral.m4: here.
(AH_OUTPUT): New macro.
* autoheader.sh: Run `autoconf --trace' instead of `m4 autoheader.m4'.
* autoheader.m4: Remove.
* Makefile.am: Adjust.
* tests/tools.m4 (AH_DEFUN): Remove, no longer makes sense.
* tests/actests.m4 (autoheader::AC_TATOOINE): Remove, was used by
the test above.
2000-03-29 16:48:00 +00:00
Akim Demaille
8e30614b9a silent.m4 depends upon the current quotation in m4, which changes
if `-i' is used or not.

* autoconf.sh (trace::silent.m4): Removed.
(trace::run_m4_trace): Pass -Derrprint.
2000-03-29 16:18:52 +00:00
Akim Demaille
d629254b79 Fix the call to umask in the previous checkin. 2000-03-29 16:15:22 +00:00
Akim Demaille
15fc2d9ecb Use `mktemp -d' when possible to create securely a tmp work dir.
* autoconf.sh: Use it when possible to create the dir $tmp.
Stop using variables for tmp files, use their names in $tmp.
[install]: Use the new features of autoconf --trace.
2000-03-29 11:09:59 +00:00
Akim Demaille
9a26587828 * autoconf.sh (trace): Let translate_awk do the whole translation
from `$trace' to the m4 program.
2000-03-27 12:19:01 +00:00
Akim Demaille
4b6a9f36ba * autoconf.sh (translate_awk): `> "/dev/stderr"' is not portable
to systems without a real /dev/stderr in the file system or if not
using one of the three free awks.  Use
print message | "cat >&2"
...
END { close("cat >&2") }
From Aharon Robbins.
2000-03-25 09:17:40 +00:00
Akim Demaille
f684a9be3d * autoheader.sh (checking completeness): Be ready to recognize
patterns with a value, and spaces between `#' and the directive, e.g.
# define FOO FIXME:
Reported by John Fortin.
2000-03-25 09:16:53 +00:00
Akim Demaille
424aa5a02f * autoconf.sh (task trace): Pipe the output of the first m4 into
the second one, instead of saving to a tmp file, so that we can
trace endless configure.in expansion.
2000-03-21 12:06:30 +00:00
Akim Demaille
e140e3ce82 Don't rely on RS = "0" to swallow the whole input as a single
record, this is not portable: mawk and nawk understand it as RS =
"".  gawk understands it as expected.

* autoconf.sh (translate_awk::BEGIN): No longer change RS.
(translate_awk::body): Move to the END.
Instead, accumulate the input in `request'.
2000-03-20 10:30:54 +00:00
Akim Demaille
affebc0e90 Use a single tool to reformat the raw `configure' script output by
m4.
Suggested by Paul Eggert.

* autoconf.sh: Stop playing with 2 seds and an AWK to finalize
`configure', a single AWK program is enough.
2000-03-20 10:06:36 +00:00
Akim Demaille
dab489eba6 * autoheader.sh: Use run_m4f, not run_m4. 2000-03-14 09:34:42 +00:00
Akim Demaille
af8421f6c5 * autoconf.sh (trace_m4::smash): Double quote, we don't want the
result to be evaluated.
2000-03-14 08:30:41 +00:00
Akim Demaille
5c521a0948 * autoconf.sh (tmpbase): New var. Adjust trap code and other tmp
file names.
(translate_awk::BEGIN): Set RS to "0" so that the whole file be a
single record.
(translate_awk::trans): Convert from array to function.
(translate_awk::error): New function.
(translate_awk::main action): Implement support for ${sep}@ and
${sep}*.  Use trans() and error().
(translate_awk): Don't put space before user functions call, it is
not portable.
Remove trailing `;', this is not C :).
(task trace): Quote `$traces' when you eval it, to protect the
white spaces.
Propagate `translate_awk' failures to `autoconf.sh'.
Translate the quadrigraphs.
2000-03-13 17:30:32 +00:00
Akim Demaille
5e6f17e1f2 Trap on 0 is not executed when `exit' is called without argument.
* autoheader.sh (trap 1 2 13 15): s/exit/exit $?/.
* autoconf.sh: Likewise.
Remove translate_awk too.
* autoupdate.sh: Likewise.
Handle `--debug'.
2000-03-13 17:28:06 +00:00
Akim Demaille
c1c5314017 More uniform style is scripts.
* autoheader.sh: s/-eq/=/.
Uniform ordering of variable initializations, option handling.
Don't use quotes where useless (foo=$1, not foo="$1").
Propagate `run_m4' and `run_m4f'.
Use `$0' in --help.
* autoconf.sh: Likewise.
* autoreconf.sh: Likewise.
* autoupdate.sh: Likewise.
* ifnames.sh: Likewise.
* autoupdate.m4: Small bug: at the end `dnl' is disabled, so use
`m4_dnl'.
2000-03-13 17:26:21 +00:00
Akim Demaille
bc37b8f562 Typos in ChangeLog. 2000-03-13 15:31:26 +00:00