source: icXML/icXML-devel/m4/xerces_int_types.m4 @ 2723

Last change on this file since 2723 was 2723, checked in by cameron, 7 years ago

Add Xerces build system scripts

File size: 5.6 KB
Line 
1dnl @synopsis XERCES_INT_TYPES
2dnl
3dnl Determines what int types to use for various
4dnl Xerces standard integer types.
5dnl
6dnl @category C
7dnl @author James Berry
8dnl @version 2005-06-07
9dnl @license AllPermissive
10dnl
11dnl $Id: xerces_int_types.m4 834826 2009-11-11 10:03:53Z borisk $
12
13AC_DEFUN([XERCES_INT_TYPES],
14        [
15        AC_CHECK_HEADERS([inttypes.h])
16        AC_CHECK_SIZEOF(short)
17        AC_CHECK_SIZEOF(int)
18        AC_CHECK_SIZEOF(long)
19        AC_CHECK_SIZEOF(long long)
20        AC_CHECK_SIZEOF(__int64)
21        AC_CHECK_TYPE(int16_t)
22        AC_CHECK_TYPE(int32_t)
23        AC_CHECK_TYPE(int64_t)
24        AC_CHECK_TYPE(uint16_t)
25        AC_CHECK_TYPE(uint32_t)
26        AC_CHECK_TYPE(uint64_t)
27
28        #
29        # Select a signed 16 bit integer type
30        #
31        AC_CACHE_CHECK([for an appropriate signed 16 bit integer type], [xerces_cv_type_s16bit_int], [
32                AS_IF([test x$ac_cv_header_inttypes_h = xyes && test x$ac_cv_type_int16_t = xyes],
33                        [xerces_cv_type_s16bit_int=int16_t],
34                        [
35                                case $ac_cv_sizeof_int in
36                                2*) xerces_cv_type_s16bit_int=int;;
37                                *)
38                                        case $ac_cv_sizeof_short in
39                                        2*) xerces_cv_type_s16bit_int=short;;
40                                        *)  AC_MSG_ERROR([Couldn't find a signed 16 bit int type]);;
41                                        esac
42                                        ;;
43                                esac
44                        ])
45        ])
46
47        #
48        # Select an unsigned 16 bit integer type
49        #
50        AC_CACHE_CHECK([for an appropriate unsigned 16 bit integer type], [xerces_cv_type_u16bit_int], [
51                AS_IF([test x$ac_cv_header_inttypes_h = xyes && test x$ac_cv_type_uint16_t = xyes],
52                        [xerces_cv_type_u16bit_int=uint16_t],
53                        [
54                                case $ac_cv_sizeof_int in
55                                2*) xerces_cv_type_u16bit_int="unsigned int";;
56                                *)
57                                        case $ac_cv_sizeof_short in
58                                        2*) xerces_cv_type_u16bit_int="unsigned short";;
59                                        *)  AC_MSG_ERROR([Couldn't find an unsigned 16 bit int type]);;
60                                        esac
61                                        ;;
62                                esac
63                        ])
64        ])
65
66
67        #
68        # Select a signed 32 bit integer type
69        #
70        AC_CACHE_CHECK([for an appropriate signed 32 bit integer type], [xerces_cv_type_s32bit_int], [
71                AS_IF([test x$ac_cv_header_inttypes_h = xyes && test x$ac_cv_type_int32_t = xyes],
72                        [xerces_cv_type_s32bit_int=int32_t],
73                        [
74                                case $ac_cv_sizeof_int in
75                                4*) xerces_cv_type_s32bit_int=int;;
76                                *)
77                                        case $ac_cv_sizeof_long in
78                                        4*) xerces_cv_type_s32bit_int=long;;
79                                        *)  AC_MSG_ERROR([Couldn't find a signed 32 bit int type]);;
80                                        esac
81                                        ;;
82                                esac
83                        ])
84        ])
85
86        #
87        # Select an unsigned 32 bit integer type
88        #
89        AC_CACHE_CHECK([for an appropriate unsigned 32 bit integer type], [xerces_cv_type_u32bit_int], [
90                AS_IF([test x$ac_cv_header_inttypes_h = xyes && test x$ac_cv_type_uint32_t = xyes],
91                        [xerces_cv_type_u32bit_int=uint32_t],
92                        [
93                                case $ac_cv_sizeof_int in
94                                4*) xerces_cv_type_u32bit_int="unsigned int";;
95                                *)
96                                        case $ac_cv_sizeof_long in
97                                        4*) xerces_cv_type_u32bit_int="unsigned long";;
98                                        *)  AC_MSG_ERROR([Couldn't find an unsigned 32 bit int type]);;
99                                        esac
100                                        ;;
101                                esac
102                        ])
103        ])
104
105        #
106        # Select an signed 64 bit integer type
107        #
108        AC_CACHE_CHECK([for an appropriate signed 64 bit integer type], [xerces_cv_type_s64bit_int], [
109                AS_IF([test x$ac_cv_header_inttypes_h = xyes && test x$ac_cv_type_int64_t = xyes],
110                        [
111                                xerces_cv_type_s64bit_int=int64_t
112                                xerces_cv_sizeof_int64=8
113                        ],
114                        [
115                                case $ac_cv_sizeof_int in
116                                8*) xerces_cv_type_s64bit_int="int"
117                                    xerces_cv_sizeof_int64=8
118                                    ;;
119                                *)
120                                        case $ac_cv_sizeof_long in
121                                        8*) xerces_cv_type_s64bit_int="long"
122                                            xerces_cv_sizeof_int64=8
123                                            ;;
124                                        *)
125                                                case $ac_cv_sizeof_long_long in
126                                                8*) xerces_cv_type_s64bit_int="long long"
127                                                    xerces_cv_sizeof_int64=8
128                                                    ;;
129                                                *)
130                                                        case $ac_cv_sizeof___int64 in
131                                                        8*) xerces_cv_type_s64bit_int="__int64"
132                                                            xerces_cv_sizeof_int64=8
133                                                            ;;
134                                                        *)  xerces_cv_type_s64bit_int=$xerces_cv_type_s32bit_int
135                                                            xerces_cv_sizeof_int64=4
136                                                            ;;
137                                                        esac
138                                                        ;;
139                                                esac
140                                                ;;
141                                        esac
142                                        ;;
143                                esac
144                        ])
145        ])
146
147        #
148        # Select an unsigned 64 bit integer type
149        #
150        AC_CACHE_CHECK([for an appropriate unsigned 64 bit integer type], [xerces_cv_type_u64bit_int], [
151                AS_IF([test x$ac_cv_header_inttypes_h = xyes && test x$ac_cv_type_uint64_t = xyes],
152                        [xerces_cv_type_u64bit_int=uint64_t],
153                        [
154                                case $ac_cv_sizeof_int in
155                                8*) xerces_cv_type_u64bit_int="unsigned int";;
156                                *)
157                                        case $ac_cv_sizeof_long in
158                                        8*) xerces_cv_type_u64bit_int="unsigned long";;
159                                        *)
160                                                case $ac_cv_sizeof_long_long in
161                                                8*) xerces_cv_type_u64bit_int="unsigned long long";;
162                                                *)
163                                                        case $ac_cv_sizeof___int64 in
164                                                        8*) xerces_cv_type_u64bit_int="unsigned __int64";;
165                                                        *)  xerces_cv_type_u64bit_int=$xerces_cv_type_u32bit_int;;
166                                                        esac
167                                                        ;;
168                                                esac
169                                                ;;
170                                        esac
171                                        ;;
172                                esac
173                        ])
174        ])
175
176        AC_DEFINE_UNQUOTED([XERCES_S16BIT_INT], $xerces_cv_type_s16bit_int, [An appropriate signed 16 bit integer type])
177        AC_DEFINE_UNQUOTED([XERCES_U16BIT_INT], $xerces_cv_type_u16bit_int, [An appropriate unsigned 16 bit integer type])
178        AC_DEFINE_UNQUOTED([XERCES_S32BIT_INT], $xerces_cv_type_s32bit_int, [An appropriate signed 32 bit integer type])
179        AC_DEFINE_UNQUOTED([XERCES_U32BIT_INT], $xerces_cv_type_u32bit_int, [An appropriate unsigned 32 bit integer type])
180        AC_DEFINE_UNQUOTED([XERCES_S64BIT_INT], $xerces_cv_type_s64bit_int, [An appropriate signed 64 bit integer type])
181        AC_DEFINE_UNQUOTED([XERCES_U64BIT_INT], $xerces_cv_type_u64bit_int, [An appropriate unsigned 64 bit integer type])
182        ]
183)
Note: See TracBrowser for help on using the repository browser.