`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.
* 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.
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'.
* acoldnames.m4: Use `#', not `dnl'.
Don't spread `dnl' everywhere, anyway, we are in a divert(-1).
* autoconf.m4: Likewise.
* autoheader.m4: Likewise.
* autoheader.m4 (AH_HOOK): Removed.
(AH_DEFUN): Define in the `autoheader' name space.
Use only AH_DEFUN to define macros in this file.
(epilogue): No longer run the `AH_HOOKS', enter the `autoheader'
name space.
condition out the test case if __cpluscplus.
Don't document the autoheader template twice, one is enough.
* autoheader.m4 (AC_CONFIG_HEADER): don't hook on this guy, but
on...
(AC_CONFIG_HEADERS), since the former is defined on the latter.
* acgeneral.m4 (AC_CHECK_MEMBER): It is not smart to define
ac_Foo, and use AC_Foo. Got rid of AC_Member_Aggregate and
AC_Member_Member which were complicating more than simplifying.
(AC_CHECK_DECLS): Use m4 lists.
(AC_CHECK_TYPES): A comma was missing.
* autoheader.m4: (AC_CHECK_DECLS): Use m4 lists.
* doc/autoconf.texi (Generic Declarations): AC_CHECK_DELCS uses m4
lists.
* tests/semantics.m4: New file. Collection of semantical tests:
verify that the tests are positive and negative when appropriate.
Test AC_CHECK_MEMBERS, AC_CHECK_DECLS and AC_CHECK_TYPES.
* autoheader.m4 (AH_DEFUN): New macro. Combination of define and
AH_HOOK.
(AC_TRY_RUN, AC_DEFINE, AC_DEFINE_UNQUOTED, AC_CHECK_LIB,
AC_CHECK_HEADERS, AC_CHECK_HEADERS_DIRENT, AC_CHECK_DECLS,
AC_CHECK_FUNCS, AC_CHECK_SIZEOF, AC_PROG_LEX, AC_CHECK_MEMBERS,
AC_CHECK_TYPE, AC_FUNC_ALLOCA, AC_CHECK_TYPES, AC_C_CHAR_UNSIGNED,
AC_AIX, AC_F77_WRAPPERS, AC_CONFIG_HEADER): All the former calls
to define and AH_HOOK in autoheader.m4 are replaced by AH_DEFUN.
Fix the discovered bugs.
* tests/atgeneral.m4 (AT_CHECK): Don't just exit 1 when you want
to propagate the failure of a test: exit with the same exit
status, at least to preserve 77 (=ignore).
* tests/syntax.m4 (TEST_MACRO): Run also autoheader. Don't run
this test on all the macros, some just cannot run without
arguments.
* acgeneral.m4 (AC_OUTPUT_CONFIG_STATUS): In the if egrep/fi for
#define templates, add a `:' to prevent syntax errors in
config.status when there are no AC_DEFINE performed.
* autoheader.m4 (AH_TEMPLATE): Don't use _AC_SH_QUOTE here, use it
in...
(AH_VERBATIM): here. Now AH_C_UNSIGNED_CHAR is no longer failing
(formerly it would produce a non backslashed backquote, which
made sh choke).
Fix a bit of the brokenness of AC_CHECK_TYPE.
* acgeneral.m4 (AC_CHECK_TYPE_INTERNAL): New macro, inspired from
the former AC_CHECK_TYPE. This macro is exactly the one that
ought to be named AC_CHECK_TYPE: it just checks, and executes user
actions. In the future, this macro ought to be renamed
AC_CHECK_TYPE.
There is a big difference with the former AC_CHECK_TYPE: instead
of grepping in the headers, it tries to compile a variable
declaration. This is both safer, slower, and better, since now we
can check for compiler types (e.g., unsigned long long).
(AC_CHECK_TYPES): The looping and AC_DEFINEing version of the
previous macro. Uses m4 loops.
(AC_CHECK_TYPE): Reimplemented on top of AC_CHECK_TYPE_INTERNAL.
* autoheader.m4 (AH_CHECK_TYPE, AH_CHECK_TYPES): New macros,
hooked.
* autoconf.texi (@ovar): New macro, for optional variables.
(Generic Typedefs): Document AC_CHECK_TYPES.
* autoheader.texi: (AH_CHECK_TYPE, AH_CHECK_TYPES): New macros.
(Epilogue): Hooks them.
Perform a better checking for missing templates in autoheader.
* autoheader.m4 (AH_HOOK): When hook AC_FOO on AH_FOO, define the
new AC_FOO to be the expansion of both AH_FOO *and* AC_FOO. See
its definition for the motivations.
* autoheader.m4 (AH_FUNC_ALLOCA): Remove the now useless
additional templates.
Rename the family AC_NEED_DECL as AC_CHECK: it is more uniform,
but keep defining NEED_FOO_DECL when `foo' is not declared. Files
not using Autoconf behave better when declarations lacks than when
they are wrong. So the unset position should off, hence #if NEEDS
instead of #if !HAVE (which is triggered when HAVE is not set).
* acgeneral.m4 (AC_NEED_DECL): Renamed as...
(AC_CHECK_DECL): This. Make sure the arguments are the usual
IF-FOUND, IF-NOT-FOUND.
(AC_NEED_DECLS, AC_CHECK_DECLS): Likewise.
* autoconf.texi (Generic Declarations): Document the changes
aforementioned.
* autoheader.m4 (AH_NEED_DECLS): Renamed as
(AH_CHECK_DECLS): This.
(AH_HOOKS): Hook AH_CHECK_DECLS on AC_CHECK_DECLS instead of
_NEED_.
Revamp the handling of the arguments of config.status: instead of
looping over config_files etc. to recognize the file names, use
the case which handles the options.
Suggested by Alexandre Oliva.
* acgeneral.m4 (ifset): Renamed as...
(ifval): This. All callers changed.
(ifset): New macro, which tests if a macro is set to a non empty
value.
* acgeneral.m4: Initialize growing lists and strings to empty, to
ease the tests.
(AC_CONFIG_HEADER): Quote AC_LIST_HEADERS in the define, to handle
the case AC_LIST_HEADERS is initialized.
* acgeneral.m4: (AC_OUTPUT_CONFIG_STATUS): New macro, pulled out
from...
(AC_OUTPUT): Instead of using $1, $2 and $3, pass them to the
official macros (AC_CONFIG_FILES, AC_OUTPUT_COMMANTS).
Call AC_OUTPUT_CONFIG_STATUS.
(option handling): Use the case-esac to recognize arguments.
(AC_OUTPUT_COMMANDS): Fix the missing fi;done.
Provide the m4 infrastructure for defining AH_ hooks.
* autoheader.m4 (AH_HOOK): New macro.
Hook all the AC_ macros to their AH_siblings in AH_HOOKS.
Run AH_HOOKS.
* acgeneral.m4 (m4_append): New macro.
(m4_list_append, m4_list_add): Removed.
* autoheader.m4 (AC_FUNC_ALLOCA): Rename from this ...
(AH_FUNC_ALLOCA): ... to this. Includes all the needed templates.
(AC_C_CHAR_UNSIGNED): Rename from this ...
(AH_C_CHAR_UNSIGNED): ... to this.
* autoconf.texi (Defining Symbols): Documented third argument to
AC_DEFINE.
* autoheader.m4 (AC_DEFINE_UNQUOTED): Generate `verbatim'
assignment if third argument given.
(AC_DEFINE): Likewise.
* acgeneral.m4 (AC_DEFINE): Handle case where $# is 3.
(AC_DEFINE_UNQUOTED): Likewise.
* autoheader.sh: Echo $verbatim if not empty.