configure.in.int64_t
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:2k
源码类别:

通讯编程

开发平台:

Visual C++

  1. dnl autoconf rules for 64-bit integers
  2. dnl $Id: configure.in.int64_t,v 1.7 2005/09/01 01:54:05 tom_henderson Exp $
  3. dnl
  4. dnl start by looking for supporting functions
  5. dnl
  6. AC_CHECK_FUNCS(strtoq strtoll)
  7. dnl
  8. dnl int64_t seems to be what C 9x will have (in stdint.h),
  9. dnl but we're not there yet, so poke around for alternatives.
  10. dnl
  11. INT64_T_ALTERNATIVE=none
  12. HAVE_SUPPORTING_FUNC=false
  13. AC_CHECK_SIZEOF(long,0)
  14. if test $ac_cv_sizeof_long -ge 8
  15. then
  16. INT64_T_ALTERNATIVE=long
  17. AC_CHECK_FUNC(strtol)
  18. fi
  19. AC_CACHE_CHECK([for __int64_t],int64_t_HAVE___INT64_T,[
  20. AC_TRY_RUN([
  21. main() { __int64_t x; exit (sizeof(x) >= 8 ? 0 : 1); }
  22. ],
  23. int64_t_HAVE___INT64_T=yes,int64_t_HAVE___INT64_T=no,int64_t_HAVE___INT64_T=cross)])
  24. if test x"$int64_t_HAVE___INT64_T" = x"yes" -a "x$INT64_T_ALTERNATIVE" = xnone; then
  25. INT64_T_ALTERNATIVE=__int64_t
  26. fi
  27. AC_CACHE_CHECK([for long long],int64_t_HAVE_LONG_LONG,[
  28. AC_TRY_RUN([
  29. main() { long long x; exit (sizeof(x) >= 8 ? 0 : 1); }
  30. ],
  31. int64_t_HAVE_LONG_LONG=yes,int64_t_HAVE_LONG_LONG=no,int64_t_HAVE_LONG_LONG=cross)])
  32. if test x"$int64_t_HAVE_LONG_LONG" = x"yes" -a "x$INT64_T_ALTERNATIVE" = xnone; then
  33. INT64_T_ALTERNATIVE="long long"
  34. fi
  35. dnl
  36. dnl icky icky
  37. dnl
  38. dnl AC_CHECK_TYPE_UNQUOTED(TYPE, DEFAULT)
  39. AC_DEFUN(AC_CHECK_TYPE_UNQUOTED,
  40. [AC_REQUIRE([AC_HEADER_STDC])dnl
  41. AC_MSG_CHECKING(for $1)
  42. AC_CACHE_VAL(ac_cv_type_$1,
  43. [AC_EGREP_CPP(dnl
  44. changequote(<<,>>)dnl
  45. <<(^|[^a-zA-Z_0-9])$1[^a-zA-Z_0-9]>>dnl
  46. changequote([,]), [#include <sys/types.h>
  47. #if STDC_HEADERS
  48. #include <stdlib.h>
  49. #include <stddef.h>
  50. #endif], ac_cv_type_$1=yes, ac_cv_type_$1=no)])dnl
  51. AC_MSG_RESULT($ac_cv_type_$1)
  52. if test $ac_cv_type_$1 = no; then
  53.   AC_DEFINE_UNQUOTED([$1], [$2], [description])
  54. fi
  55. ])
  56. dnl
  57. dnl now set up int64_t
  58. dnl
  59. AC_CHECK_TYPE_UNQUOTED(int64_t,$INT64_T_ALTERNATIVE)
  60. dnl
  61. dnl and broadcast our discovery
  62. dnl
  63. AC_MSG_CHECKING([which kind of 64-bit int to use])
  64. if test $ac_cv_type_int64_t = yes -o "$INT64_T_ALTERNATIVE" != none
  65. then
  66. if test "$INT64_T_ALTERNATIVE" = long -o "$ac_cv_func_strtoq" = yes -o "$ac_cv_func_strtoll" = yes
  67. then
  68. AC_DEFINE([HAVE_INT64], [1], ["do we have int64 type ?"])
  69. if test $ac_cv_type_int64_t = yes
  70. then
  71. AC_MSG_RESULT([int64_t])
  72. else
  73. AC_MSG_RESULT($INT64_T_ALTERNATIVE)
  74. fi
  75. else
  76. AC_MSG_RESULT([missing strto 64-bit-type])
  77. fi
  78. else
  79. AC_MSG_RESULT(none)
  80. fi
  81. dnl
  82. dnl see tclcl or ns's config.h for other STRTOI64 and STRTOI64_FMTSTR
  83. dnl