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
ac_cv_type_
type 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 ofAC_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.