longlong.m4 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. # longlong.m4 serial 8
  2. dnl Copyright (C) 1999-2006 Free Software Foundation, Inc.
  3. dnl This file is free software; the Free Software Foundation
  4. dnl gives unlimited permission to copy and/or distribute it,
  5. dnl with or without modifications, as long as this notice is preserved.
  6. dnl From Paul Eggert.
  7. # Define HAVE_LONG_LONG_INT if 'long long int' works.
  8. # This fixes a bug in Autoconf 2.60, but can be removed once we
  9. # assume 2.61 everywhere.
  10. # Note: If the type 'long long int' exists but is only 32 bits large
  11. # (as on some very old compilers), AC_TYPE_LONG_LONG_INT will not be
  12. # defined. In this case you can treat 'long long int' like 'long int'.
  13. AC_DEFUN([AC_TYPE_LONG_LONG_INT],
  14. [
  15. AC_CACHE_CHECK([for long long int], [ac_cv_type_long_long_int],
  16. [AC_LINK_IFELSE(
  17. [AC_LANG_PROGRAM(
  18. [[long long int ll = 9223372036854775807ll;
  19. long long int nll = -9223372036854775807LL;
  20. typedef int a[((-9223372036854775807LL < 0
  21. && 0 < 9223372036854775807ll)
  22. ? 1 : -1)];
  23. int i = 63;]],
  24. [[long long int llmax = 9223372036854775807ll;
  25. return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i)
  26. | (llmax / ll) | (llmax % ll));]])],
  27. [ac_cv_type_long_long_int=yes],
  28. [ac_cv_type_long_long_int=no])])
  29. if test $ac_cv_type_long_long_int = yes; then
  30. AC_DEFINE([HAVE_LONG_LONG_INT], 1,
  31. [Define to 1 if the system has the type `long long int'.])
  32. fi
  33. ])
  34. # This macro is obsolescent and should go away soon.
  35. AC_DEFUN([gl_AC_TYPE_LONG_LONG],
  36. [
  37. AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
  38. ac_cv_type_long_long=$ac_cv_type_long_long_int
  39. if test $ac_cv_type_long_long = yes; then
  40. AC_DEFINE(HAVE_LONG_LONG, 1,
  41. [Define if you have the 'long long' type.])
  42. fi
  43. ])