| Back to the Main Page. | ac_define_integer_bits |
Download the M4 Source. |
AC_DEFINE_INTEGER_BITS (TYPE [, CANDIDATE-TYPE]...)
2002-01-31 0.5.65 : Misc
Scott Pakin <pakin@uiuc.edu>
license: AllPermissive
AC_DEFINE_INTEGER_BITS(uint64_t, unsigned long long, unsigned __int64, long) if test "$uint64_t" = no; then AC_MSG_ERROR([unable to continue without a 64-bit datatype]) fi #include "config.h" #if HAVE_INTTYPES_H # include <inttypes.h> #else # if HAVE_STDINT_H # include <stdint.h> # endif #endif
AC_DEFUN([AC_DEFINE_INTEGER_BITS],
[m4_define([ac_datatype_bits], [m4_translit($1, [a-zA-Z_])])
m4_define([ac_datatype_bytes], [m4_eval(ac_datatype_bits/8)])
AC_CHECK_TYPE($1, ,
[
AC_MSG_NOTICE([trying to find a suitable ]ac_datatype_bytes[-byte replacement for $1])
$1=no
find_$1 ()
{
_AC_DEFINE_INTEGER_BITS_HELPER($@)
:
}
find_$1
AC_DEFINE_UNQUOTED($1, $$1,
[If not already defined, then define as a datatype of *exactly* ]ac_datatype_bits[ bits.])
])
])
dnl Iterate over arguments $2..$N, trying to find a good match for $1.
m4_define([_AC_DEFINE_INTEGER_BITS_HELPER],
[ifelse($2, , ,
[m4_define([ac_datatype_bits], [m4_translit($1, [a-zA-Z_])])
m4_define([ac_datatype_bytes], [m4_eval(ac_datatype_bits/8)])
AC_CHECK_SIZEOF($2)
if test "$AS_TR_SH(ac_cv_sizeof_$2)" -eq ac_datatype_bytes; then
$1="$2"
return
fi
_AC_DEFINE_INTEGER_BITS_HELPER($1, m4_shift(m4_shift($@)))
])
])