Commit Graph

381 Commits

Author SHA1 Message Date
Akim Demaille
08de8c9f93 Honor properly the `#define' config.h.in templates.
Test it.

* acgeneral.m4 (AC_OUTPUT_HEADERS): Renamed as...
(_AC_OUTPUT_HEADERS): this.  All callers changed.
Don't mess with changequote, just quote properly.
Bug 1.  Because of the `#' in `ac_dA', the quotes <<>> were not
removed, and therefore the sed script contained `<<define>>'
instead of `define'.  Now that the block is properly quoted, there
is no need to quote `define'.
Bug 2.  Once a `#define' substitution performed, we were branching
to the top of the sed script (`t top').  This resulted in an
endless substitution of `#define foo 1' to `#define foo 1'.
Branching is not enough: you also have to fetch the next input
line, i.e., use `t' instead of `t t' in ac_dD, and don't output
`: top' in `config.defines'.
Though it was correct for `#undef' templates, just apply the same
transformation to `ac_uD' and `config.undefs'.
Bug 3.  Don't try to preserve what was behind the value in the
template, since on
	#define NAME "bar baz"
it leads to
	#define NAME 1 baz"
Now `ac_dB' catches everything behind the NAME (making sure there
is at least a space) and `ac_dC' only outputs a space.
* tests/torture.m4: Check that various forms of `#define' header
templates are properly handled.
2000-02-10 10:38:59 +00:00
Akim Demaille
14930dcc79 Avoid calling `rm' without arguments.
* acgeneral.m4 (_AC_OUTPUT_CONFIG_STATUS): It is smarter to use a
quoted here doc to output the section providing defaults for
CONFIG_*.
Don't rm the CONFIG_FILES here but in..
(AC_OUTPUT_FILES) [test -n "$CONFIG_FILES"]: here.
Hm, actually, no, just don't remove them at all, let the newly
created files replace the old ones, exactly as in
AC_OUTPUT_HEADERS.
From Graham Jenkins.
2000-02-10 10:37:03 +00:00
Akim Demaille
529087d2d7 * acgeneral.m4 (AC_LIST_MEMBER_OF): s/ac_$exists/$ac_exists/! 2000-02-10 10:36:13 +00:00
Akim Demaille
0eecbaadac * acgeneral.m4: Formatting changes.
* acspecific.m4: Likewise.
2000-02-10 10:35:18 +00:00
Akim Demaille
2d177917ef * acgeneral.m4 (_AC_OUTPUT_CONFIG_STATUS): Don't
: ${FOO="$foo"}
but
  : ${FOO=$foo}
Since Ultrix will also assign the quotes to FOO.
Reported by Harlan Stenn.
2000-02-10 10:25:23 +00:00
Akim Demaille
c7bd04fb16 Keep `AC_CHECK_TYPE' backward compatibility and provide a proper
`AC_CHECK_TYPE',
Based on ideas from Paul Eggert and Alexandre Oliva.

* acgeneral.m4 (AC_CHECK_TYPE_INTERNAL): Renamed as
(_AC_CHECK_TYPE_NEW): this.
(AC_CHECK_TYPES): Adjusted.
(AC_CHECK_TYPE): Renamed as
(_AC_CHECK_TYPE_OLD): This.  Adjusted to _AC_CHECK_TYPE_NEW.
No longer support extra includes, stick to 2.13's interface.
(_AC_CHECK_TYPE_BUILTIN_P): New macro.
(AC_CHECK_TYPE): New macro.
* autoheader.m4 (autoheader::AC_CHECK_TYPE): Renamed as...
(autoheader::_AC_CHECK_TYPE_OLD): this.
* tests/atspecific.m4 (TEST_MACRO): Skip /^_AC_/ macros.
* tests/semantics.m4: Test the choices of AC_CHECK_TYPE (wrt _NEW
or _OLD implemenation).
* doc/autoconf.texi (Generic Types): Reorganized.  Explain
everything about AC_CHECK_TYPE and Co.
2000-02-10 10:24:10 +00:00
Akim Demaille
2f752e0e19 * libm4.m4 (near m4_split): Remove the buggy additional
changequote.
Quote properly `m4_split' when registering it.
2000-02-10 09:46:57 +00:00
Akim Demaille
dc6fcad969 The AU-glue code for AC_LINK_FILES was not fully compatible: in
AC_LINK_FILES($from, $to)
`$from' and `$to' can be lists, hence `AC_CONFIG_LINKS($to:$from)'
is wrong.
Reported by H.J. Lu.

* acgeneral.m4 (AC_LINK_FILES): Replace the m4-glue code from
AC_LINK_FILES to AC_CONFIG_LINKS, with sh-glue code.
Give a detailed update message.
(_AC_LINK_FILES_CNT): New variable.  Initialize.
* tests/tools.m4 (autoupdate): No longer exercise `autoupdate'
with AC_LINK_FILES.
2000-02-10 09:45:25 +00:00
Akim Demaille
3dbe69988a * acspecific.m4 (AC_PROG_SED): Removed. 2000-02-10 09:42:36 +00:00
Akim Demaille
d6ef78697d AC_CHECK_FILES has never worked properly.
* acgeneral.m4 (AC_CHECK_FILE): Use AC_CACHE_CHECK.
* autoheader.m4 (AC_CHECK_FILES): AH-define.
* tests/semantics.m4: Test AC_CHECK_FILES.
* tests/atspecific.m4 (TEST_MACRO): Don't.
2000-02-10 09:40:55 +00:00
Akim Demaille
abe94c7473 No longer use a diversion to store the sed program implementing
AC_SUBST.

* acgeneral.m4 (_AC_SUBST): New macro.
(_AC_SUBST_SED_PROGRAM): Initialize.
(AC_SUBST): Use _AC_SUBST.
(AC_SUBST_FILE): Likewise.
(AC_DIVERSION_SED): Removed.  Renumber the AC_DIVERSIONs.
(AC_OUTPUT_FILES): Instead on undiverting AC_DIVERSION_SED, output
_AC_SUBST_SED_PROGRAM.
2000-02-10 09:40:09 +00:00
Akim Demaille
fe71f613f1 Standardize the error messages in the options handling of
`configure' and `config.status'.

* acgeneral.m4 (AC_OUTPUT_CONFIG_STATUS): Renamed as...
(_AC_OUTPUT_CONFIG_STATUS): this.
Change the error messages from
  value: invalid feature name
to
  invalid feature: value
Invite the user to try --help for invalid options.
(AC_INIT_PARSE_ARGS): Likewise.
2000-02-10 09:37:37 +00:00
Akim Demaille
8bf7d7ef60 * acgeneral.m4 (AC_OUTPUT_COMMANDS_COMMANDS): Renamed as...
(_AC_OUTPUT_COMMANDS): This.  All callers changed.
Disable the verbose message until Automake uses the new features
of `config.status'.
Reported by Jim Meyering.
2000-02-10 09:35:00 +00:00
Akim Demaille
c4e67f0abd Clean up a few changequotes.
* acgeneral.m4 (AC_INIT_PARSE_ARGS): Instead of using changequote
to protect a few `[ ]', double quote the constant sections.
2000-02-10 08:52:56 +00:00
Akim Demaille
c979e7622f Restore AC_HAVE_LIBRARY.
* acgeneral.m4 (AC_HAVE_LIBRARY): AU_DEFUNed in terms of
AC_CHECK_LIB.
* doc/autoconf.texi (Libraries): Document.
2000-02-10 08:42:26 +00:00
Akim Demaille
e1b31f306e Fix the handling of `./configure foo=bar' and test it.
* acgeneral.m4 (AC_INIT_PARSE_ARGS, getopt loop): Always define
ac_optarg as the rhs of the first `=', not only on `-.*=', so that
`configure var=val' defines ac_optarg=val.
Improve the robustness to shell special characters:
 - Use grep when checking that shell variable names are valid.
 - Quote the quotes in ac_optarg before `eval var='$ac_optarg''.
 - Quote the quotes when building ac_configure_args.

* tests/torture.m4: Test that `./configure foo=bar' works properly.
2000-02-09 18:24:24 +00:00
Akim Demaille
c60a188814 Resynchronize INSTALL' with the current configure', and
conversely...

* acgeneral.m4 (AC_INIT_PARSE_ARGS): Let `configure' support `-h =
--help' and `-n = --no-create'.
Document -h, -n and -q in configure's help message.
* install.texi (Operation Controls): Formatting changes.
Document `configure -h'.
2000-02-09 18:19:58 +00:00
Akim Demaille
3ac8cf6f90 Spell checked ChangeLog. 2000-02-09 18:17:50 +00:00
Akim Demaille
b8d672b4c7 Spell checked ChangeLog. 2000-02-09 18:16:34 +00:00
Akim Demaille
8daef5980a * ChangeLog.1: Formatting changes. 2000-02-09 18:09:50 +00:00
Akim Demaille
d7e3c874ea * Makefile.am (CLEANFILES): Added autoupdate.m4f and autoconf.tmp. 2000-02-09 18:08:37 +00:00
Akim Demaille
8ba96e391b Test `autoupdate'.
* tests/tools.m4 (AH_DEFUN): Fix the comments.
Quote properly.
(autoupdate): New test.
2000-02-09 18:02:18 +00:00
Akim Demaille
0586da3a49 AU_ glue code for AC_OUTPUT with arguments.
* acgeneral.m4 (AU_DEFINE): New macros, pulled out from AU_DEFUN.
Defines a macro in `autoupdate::' with all the required wrapping
for `autoupdate'.
(AU_DEFUN): Use it.
(AC_OUTPUT): When dispatching your arguments, use ifval, not
ifset!
Dispath actions to AC_CONFIG_COMMANDS not AC_OUTPUT_COMMANDS, to
avoid unneeded warnings for obsolete use of AC_OUTPUT_COMMANDS.
(autoupdate::AC_OUTPUT): New macro.
* doc/autoconf.texi (Writing configure.in, the example): Don't
advocate AC_OUTPUT with args.
(Output, AC_OUTPUT with args): Simplify the documentation, and
provide the translation into the new scheme.
Propagate what remained into the proper sections.
2000-02-09 17:47:47 +00:00
Akim Demaille
367368c916 AU_ glue code for AC_OUTPUT_COMMANDS.
* acgeneral.m4 (AC_OUTPUT_COMMANDS): AU_DEFUNed in terms of
AC_CONFIG_COMMANDS.
(AC_OUTPUT_COMMANDS_CNT): New variable, declared both in
`autoconf::' and `autoupdate::'.
(AC_OUTPUT): Register your arguments to AC_OUTPUT_COMMANDS only if
there are to avoid spurious `run autoupdate' messages.
* doc/autoconf.texi (Libraries): Document the changes.
2000-02-09 17:42:53 +00:00
Akim Demaille
a3df6b1558 Avoid outputting config_files' code in config.status' if there
are none.

* acgeneral.m4 (AC_OUTPUT): Don't register $1 to `AC_CONFIG_FILES'
if $1 is empty.
Normalize the names of the sections in `config.status --help'.
2000-02-09 17:36:03 +00:00
Akim Demaille
cd2c46e4ab * README-alpha: New file, based on Automake's.
* Makefile.am: Tuned.
2000-02-09 17:05:21 +00:00
Akim Demaille
c0bc015e7b Extend the concept of `INIT-CMDS' to the AC_CONFIG_FOOS.
* acgeneral.m4 (_AC_CONFIG_COMMANDS_INIT): New macro which will
collect the `INIT-CMDS'.
(AC_CONFIG_COMMANDS, AC_CONFIG_LINKS, AC_CONFIG_HEADERS,
AC_CONFIG_FILES): Use it, and also temporarily divert to -1
instead of spamming dnl everywhere.
(AC_OUTPUT_CONFIG_STATUS): Make sure to output the INIT-CMDS
before the other sections, it'd be a pity to initialize after the
use :).

* doc/autoconf.texi (Configuration Actions): New section,
documenting the common behavior of AC_CONFIG_FILES,
AC_CONFIG_HEADERS, macro AC_CONFIG_COMMANDS, and AC_CONFIG_LINKS.
(Configuration Files): Document $2 and $3 of AC_CONFIG_FILES.
(Configuration Headers): Document $2 and $3 of AC_CONFIG_HEADERS.
(Configuration Commands): Document $2 and $3 of AC_CONFIG_COMMANDS.
(Configuration Links): Document $2 and $3 of AC_CONFIG_FILES.
2000-02-09 17:01:44 +00:00
Akim Demaille
ba05e82224 * libm4.m4 (m4_sign, m4_cmp, m4_list_cmp): New macros.
* acgeneral.m4 (AC_UNGNITS): Renamed as...
(_AC_VERSION_UNLETTER): this.  All callers changed.
Implement the scheme proposed by Alexandre Oliva:
	Nl -> (N+1).-1.(l#)
(_AC_VERSION_COMPARE): New macro.
(AC_PREREQ): Use it.
2000-02-09 11:59:24 +00:00
Akim Demaille
d21aeb1510 * tests/base.m4: Really added to the CVS repository.
* tests/tools.m4: Likewise.
2000-02-09 08:36:01 +00:00
Akim Demaille
f14cd77f30 * tests/base.m4: s/m4 -I ../m4 -I $at_top_srcdir/. 2000-02-09 08:31:39 +00:00
Akim Demaille
b62028d508 * autoheader.sh (debug): Initialize to `false', not 0. 2000-02-08 17:23:25 +00:00
Akim Demaille
5ad32e051d Fix a bug: `libm4::define' was incorrectly registered.
* libm4.m4 (libm4::define): Not only register, define too.
2000-02-08 16:51:19 +00:00
Akim Demaille
60c3912450 * acgeneral.m4 (AC_COMPILE_CHECK): Use AU_DEFUN, remove the call
to AC_OBSOLETE.
2000-02-08 13:58:13 +00:00
Akim Demaille
3986defac7 * acgeneral.m4 (AC_PROVIDE): Use m4_define', not define'.
Because of the namespace machinery this change makes `autoconf'
about four times faster on complex `configure.in's.
2000-02-08 13:55:52 +00:00
Akim Demaille
b54d44e0c3 Open the access to AH_ to users.
* autoheader.m4 (autoheader::AH_DEFUN): New macro.
* tests/tools.m4: New file, in charge of testing the scripts.
All the dependencies adapted.
* tests/actest.m4 (autoheader::AC_TATOOINE): New macro, used while
testing autoheader.
* tests/atspecific.m4: Create config.hin instead of config.h.in.
2000-02-08 13:54:48 +00:00
Akim Demaille
881b4d908f Because of commas and brackets, m4_split must mess with the
quotes.

* libm4.m4 (m4_split): Quote the elements of the list you produce.
* tests/base.m4: New file, testing libm4.
All callers adapted.
Test m4_wrap.
2000-02-08 13:53:32 +00:00
Akim Demaille
b39821a30a * acgeneral.m4 (AC_CONFIG_UNIQUE): Strip the `:foo.in' part
yourself, in order to give better error messages.
(AC_CONFIG_IF_MEMBER): Adapted to the above change.
Quote some regexp active characters ([+.*]).
Suggested by Alexandre Oliva.
2000-02-08 13:51:55 +00:00
Akim Demaille
ecf746f564 * acgeneral.m4 (AC_INCLUDES_DEFAULT): Make it more robust to
the fact it is used non quoted.
Reported by Jim Meyering.
2000-02-08 13:50:52 +00:00
Akim Demaille
90cea7798f * acgeneral.m4 (AC_OUTPUT_FILES): Simplify some excess in
changequote.
(AC_OUTPUT_SUBDIRS): Likewise.
2000-02-08 13:47:29 +00:00
Akim Demaille
ed706fc1bf * autoupdate.sh: Don't dump --help on --wrong-option.
* autoconf.sh: Reformating, and use >&2 instead of 1>&2.
* autoreconf.sh: Likewise.
* autoheader.sh: Likewise.
2000-02-08 13:45:24 +00:00
Akim Demaille
30387328fa * libm4.m4 (m4_namespace_push, m4_namespace_pop): Use the private
macros to be robust to name space changes.
(m4_popdef, m4_pushdef): New private macros.
2000-02-08 13:43:58 +00:00
Akim Demaille
11eaab70bd Let the doc catch up.
* doc/autoconf.texi (Common Behavior): New section, to document
the common behavior of the macros.
(Standard Symbols): New subsection.  Describes the transformation
of the AC_DEFINEd names.
(Default Includes): New subsection.  Obvious content.
All the ``callers'' updated.
2000-02-08 13:42:51 +00:00
Akim Demaille
738595fda3 * acgeneral.m4 (AC_OUTPUT_HEADERS): Don't use `break' to exit the
while loops which are breaking conftest.defines and
conftest.undefs into smaller snippets: just use the proper
condition for the while.
Suggested by Alexandre Oliva.
2000-02-08 13:41:51 +00:00
Akim Demaille
36dcb4d62b * doc/autoconf.texi (Configuration Commands): New section, for
AC_CONFIG_COMMANDS.
Move the definition of AC_OUTPUT_COMMANDS here.
(Configuration Links): New section, for AC_CONFIG_LINKS and
AC_LINK_FILES.
(Configuration Files): New section, for AC_CONFIG_FILES.
(Globally) Promote AC_CONFIG_HEADERS over AC_CONFIG_HEADER.
(Using System Type): Don't document AC_CONFIG_LINKS and
AC_LINK_FILES.
(Invoking config.status): Mention CONFIG_COMMANDS.
Document --file and --header.
Talk first of the newest interface of config.status.
2000-02-08 13:40:26 +00:00
Akim Demaille
eb835e21d2 Introduce a concept index, and update a bit the documentation.
* doc/autoconf.texi (Concept Index): New section.
Various entries added.
(Typedefs): Renamed as...
(Types): this.  Pay attention to not limiting the documentation to
the typedefs.
(Particular Types): Mention the equivalent generic test.
Promote the GNU coding style at various places.
2000-02-08 13:38:45 +00:00
Akim Demaille
c7eb9bd99e Revamp the autoupdate/AC_OBSOLETE chain. All the details are
given in the prologue of acobsolete.m4.

* acgeneral.m4 (Prologue): Enter the `autoconf' name space.
(AU_DEFUN): New macro.

* autoupdate.m4: New file.
Disable the name spaces `autoconf', and `libm4'.  Disable libm4.
* Makefile.am: Tuned to support the changes above.

* autoupdate.sh: Model after autoconf.sh.
Can run on several files at once (for instance m4/*.m4).
Don't touch files that are up to date.
Run m4 on autoupdate.m4f instead of playing with sed.


Use AU_DEFUN.

* acgeneral.m4 (AC_LINK_FILES, AC_ENABLE, AC_WITH): Use AU_DEFUN,
remove the call to AC_OBSOLETE.
* acspecific.m4 (AC_CYGWIN32): Likewise.
* acoldnames.m4: Replaced all the definitions via `define' or
`AC_DEFUN' to use `AU_DEFUN'.
2000-02-08 13:25:49 +00:00
Akim Demaille
5ea4b5387a Clean up some m4 files.
* acoldnames.m4: Use `#', not `dnl'.
Don't spread `dnl' everywhere, anyway, we are in a divert(-1).
* autoconf.m4: Likewise.
* autoheader.m4: Likewise.
2000-02-08 13:16:01 +00:00
Akim Demaille
0ba85ee10a Clean up autoconf.
* autoconf.sh: Minor reorganizations to clearly separate the
prologue, which is almost common to all the shell scripts of
Autoconf, and the body.
2000-02-08 13:12:49 +00:00
Akim Demaille
df16b72f85 Improve support of name spaces in libm4. Put the m4 builtins
in the `libm4' name space.

* libm4 (m4_changequote, m4_define, m4_defn, m4_dnl, m4_indir,
m4_undefine): Private copies in the global name space.  Used by
the name space mechanisms.
(m4_namespace_register): New macro.
(m4_namespace_define): Use it.
(builtin, changequote, defn, dnl, esyscmd, ifdef, ifelse, indir,
patsubst, popdef, pushdef, regexp, undefine, syscmd, sysval): Put
in the `libm4' name space.
(m4_disable, m4_enable): Use the private m4_indir, otherwise once
`libm4' closed, there is no `indir' available, and therefore no
means to reopen a name space.
2000-02-08 13:11:21 +00:00
Akim Demaille
47f9aa62a1 Output really nothing if AC_INIT was not given. Unconditional
output can be problematic with autoupdate.

* acgeneral.m4 (AC_INIT_NOTICE): Output ac_includes_default.
(Default includes section): No longer dump ac_includes_default in
AC_DIVERSION_INIT.
2000-02-08 13:06:17 +00:00