These macros are used to check for types not covered by the “particular” test macros.
Check whether type is defined. It may be a compiler builtin type
or defined by the includes. includes is a series of include
directives, defaulting to
AC_INCLUDES_DEFAULT (see Default Includes), which are used prior to the type under test.
In C, type must be a type-name, so that the expression ‘sizeof (type)’ is valid (but ‘sizeof ((type))’ is not). The same test is applied when compiling for C++, which means that in C++ type should be a type-id and should not be an anonymous ‘struct’ or ‘union’.
This macro caches its result in the
variable, with ‘*’ mapped to ‘p’ and other characters not
suitable for a variable name mapped to underscores.
For each type of the types that is defined, define
HAVE_type (in all capitals). Each type must follow
the rules of
AC_CHECK_TYPE. If no includes are
specified, the default includes are used (see Default Includes). If
action-if-found is given, it is additional shell code to execute
when one of the types is found. If action-if-not-found is given,
it is executed when one of the types is not found.
This macro uses M4 lists:
AC_CHECK_TYPES([ptrdiff_t]) AC_CHECK_TYPES([unsigned long long int, uintmax_t]) AC_CHECK_TYPES([float_t], , , [[#include <math.h>]])
Autoconf, up to 2.13, used to provide to another version of
AC_CHECK_TYPE, broken by design. In order to keep backward
compatibility, a simple heuristic, quite safe but not totally, is
implemented. In case of doubt, read the documentation of the former
AC_CHECK_TYPE, see Obsolete Macros.