summaryrefslogtreecommitdiff
path: root/configure.in
diff options
context:
space:
mode:
authornaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-03-14 01:47:02 +0000
committernaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-03-14 01:47:02 +0000
commit668af7e99d8458e3033d3641b25656ab8401ad74 (patch)
tree50f6949c02dfd7433ca503e2bdaa516dd4903836 /configure.in
parent4b31c84daedaeb6ae802e30c1652a5546f977ac0 (diff)
* configure.in (int8_t, uint8_t, int16_t, uint16_t int32_t,
uint32_t int64_t, uint64_t, int128_t, uint128_t, intptr_t, uintptr_t): check if defined. * win32/Makefile.sub: follow configure.in. * ext/digest/defs.h: remove checks for uint8_t, uint32_t and uint64_t. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15772 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'configure.in')
-rw-r--r--configure.in43
1 files changed, 32 insertions, 11 deletions
diff --git a/configure.in b/configure.in
index 45011a7209..16066f3e24 100644
--- a/configure.in
+++ b/configure.in
@@ -620,18 +620,39 @@ AC_CHECK_TYPES(struct timespec)
AC_CHECK_TYPE(fd_mask, [AC_DEFINE(HAVE_RB_FD_INIT, 1)])
-test ${rb_cv_type_uint32_t+set} && ac_cv_type_uint32_t=yes
-AC_CHECK_TYPE(uint32_t)
-if test ${ac_cv_type_uint32_t} != yes; then
- AC_CACHE_CHECK([unsigned 32bit int],
- rb_cv_type_uint32_t,
- [for type in short int long; do
- type="unsigned $type"
- AC_COMPILE_IFELSE(AC_LANG_BOOL_COMPILE_TRY([], [sizeof($type) == 4]),
- [rb_cv_type_uint32_t=$type; break], [])
- done])
- AC_DEFINE_UNQUOTED(uint32_t, $rb_cv_type_uint32_t)
+dnl RUBY_DEFINT [typename] [size] [signed]
+AC_DEFUN([RUBY_DEFINT], [dnl
+AC_CACHE_CHECK([for $1], [rb_cv_type_$1],
+[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT([$4])
+typedef $1 t; int s = sizeof(t) == 42;])],
+ [rb_cv_type_$1=yes],
+ [case m4_bmatch([$2], [^[1-9][0-9]*$], $2, [$ac_cv_sizeof_]AS_TR_SH($2)) in
+ "1") rb_cv_type_$1="m4_if([$3], [], [signed ], [$3 ])char";;
+ "$ac_cv_sizeof_short") rb_cv_type_$1="m4_if([$3], [], [], [$3 ])short";;
+ "$ac_cv_sizeof_int") rb_cv_type_$1="m4_if([$3], [], [], [$3 ])int";;
+ "$ac_cv_sizeof_long") rb_cv_type_$1="m4_if([$3], [], [], [$3 ])long";;
+ "$ac_cv_sizeof_long_long") rb_cv_type_$1="m4_if([$3], [], [], [$3 ])long long";;
+ "$ac_cv_sizeof___int64") rb_cv_type_$1="m4_if([$3], [], [], [$3 ])__int64";;
+ *) rb_cv_type_$1=no;;
+ esac])])
+if test "${rb_cv_type_$1}" != no; then
+ AC_DEFINE([HAVE_]AS_TR_CPP($1), 1)
+ test "${rb_cv_type_$1}" = yes || AC_DEFINE_UNQUOTED($1, [$rb_cv_type_$1])
fi
+])
+
+RUBY_DEFINT(int8_t, 1)
+RUBY_DEFINT(uint8_t, 1, unsigned)
+RUBY_DEFINT(int16_t, 2)
+RUBY_DEFINT(uint16_t, 2, unsigned)
+RUBY_DEFINT(int32_t, 4)
+RUBY_DEFINT(uint32_t, 4, unsigned)
+RUBY_DEFINT(int64_t, 8)
+RUBY_DEFINT(uint64_t, 8, unsigned)
+RUBY_DEFINT(int128_t, 16)
+RUBY_DEFINT(uint128_t, 16, unsigned)
+RUBY_DEFINT(intptr_t, void*)
+RUBY_DEFINT(uintptr_t, void*, unsigned)
AC_CACHE_CHECK(for stack end address, rb_cv_stack_end_address,
[rb_cv_stack_end_address=no