ax_define_integer_bits

Synopsis

AX_DEFINE_INTEGER_BITS (TYPE [, CANDIDATE-TYPE]...)

Description

Given a TYPE of the form "int##_t" or "uint##_t", see if the datatype TYPE is predefined. If not, then define TYPE – both with AC_DEFINE and as a shell variable – to the first datatype of exactly ## bits in a list of CANDIDATE-TYPEs. If none of the CANDIDATE-TYPEs contains exactly ## bits, then set the TYPE shell variable to "no".

For example, the following ensures that uint64_t is defined as a 64-bit datatype:

  AX_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

You should then put the following in your C code to ensure that all datatypes defined by AX_DEFINE_INTEGER_BITS are visible to your program:

  #include "config.h"
  #if HAVE_INTTYPES_H
  # include <inttypes.h>
  #else
  # if HAVE_STDINT_H
  #  include <stdint.h>
  # endif
  #endif

Source Code

Download the latest version of ax_define_integer_bits.m4 or browse the macro’s revision history.

License

Copyright © 2008 Scott Pakin 

Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without any warranty.