00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef _PLATFORM_H
00020 #define _PLATFORM_H
00021
00027
00028 #ifndef U_LINUX
00029 #define U_LINUX
00030 #endif
00031
00035 #ifndef U_HAVE_DIRENT_H
00036 #define U_HAVE_DIRENT_H 1
00037 #endif
00038
00040 #ifndef U_HAVE_INTTYPES_H
00041 #define U_HAVE_INTTYPES_H 1
00042 #endif
00043
00058 #ifndef U_IOSTREAM_SOURCE
00059 #define U_IOSTREAM_SOURCE 199711
00060 #endif
00061
00070 #ifndef U_HAVE_STD_STRING
00071 #define U_HAVE_STD_STRING 1
00072 #endif
00073
00075 #ifndef U_HAVE_INT8_T
00076 #define U_HAVE_INT8_T 1
00077 #endif
00078
00079 #ifndef U_HAVE_UINT8_T
00080 #define U_HAVE_UINT8_T 1
00081 #endif
00082
00083 #ifndef U_HAVE_INT16_T
00084 #define U_HAVE_INT16_T 1
00085 #endif
00086
00087 #ifndef U_HAVE_UINT16_T
00088 #define U_HAVE_UINT16_T 1
00089 #endif
00090
00091 #ifndef U_HAVE_INT32_T
00092 #define U_HAVE_INT32_T 1
00093 #endif
00094
00095 #ifndef U_HAVE_UINT32_T
00096 #define U_HAVE_UINT32_T 1
00097 #endif
00098
00099 #ifndef U_HAVE_INT64_T
00100 #define U_HAVE_INT64_T 1
00101 #endif
00102
00103 #ifndef U_HAVE_UINT64_T
00104 #define U_HAVE_UINT64_T 1
00105 #endif
00106
00109
00111
00112
00113 #include <sys/types.h>
00114
00115
00116
00117 #if U_HAVE_INTTYPES_H
00118
00119
00120
00121
00122
00123 #ifdef OS390
00124
00125 #include <features.h>
00126 #if ! U_HAVE_INT8_T
00127 typedef signed char int8_t;
00128 #endif
00129 #if !defined(__uint8_t)
00130 #define __uint8_t 1
00131 typedef unsigned char uint8_t;
00132 #endif
00133 #endif
00134
00135 #include <inttypes.h>
00136
00137 #else
00138
00139 #if ! U_HAVE_INT8_T
00140 typedef signed char int8_t;
00141 #endif
00142
00143 #if ! U_HAVE_UINT8_T
00144 typedef unsigned char uint8_t;
00145 #endif
00146
00147 #if ! U_HAVE_INT16_T
00148 typedef signed short int16_t;
00149 #endif
00150
00151 #if ! U_HAVE_UINT16_T
00152 typedef unsigned short uint16_t;
00153 #endif
00154
00155 #if ! U_HAVE_INT32_T
00156 typedef signed int int32_t;
00157 #endif
00158
00159 #if ! U_HAVE_UINT32_T
00160 typedef unsigned int uint32_t;
00161 #endif
00162
00163 #if ! U_HAVE_INT64_T
00164 typedef signed long long int64_t;
00165
00166 #endif
00167
00168 #if ! U_HAVE_UINT64_T
00169 typedef unsigned long long uint64_t;
00170
00171 #endif
00172
00173 #endif
00174
00177
00179
00180
00181
00182 #ifndef U_HAVE_NAMESPACE
00183 #define U_HAVE_NAMESPACE 1
00184 #endif
00185
00186
00187
00188
00189 #if defined(BYTE_ORDER) && defined(BIG_ENDIAN)
00190 #define U_IS_BIG_ENDIAN (BYTE_ORDER == BIG_ENDIAN)
00191 #else
00192 #define U_IS_BIG_ENDIAN 0
00193 #endif
00194
00195
00196 #define ICU_USE_THREADS 1
00197
00198
00199 #if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
00200 #define UMTX_STRONG_MEMORY_MODEL 1
00201 #endif
00202
00203 #ifndef U_DEBUG
00204 #define U_DEBUG 0
00205 #endif
00206
00207 #ifndef U_RELEASE
00208 #define U_RELEASE 1
00209 #endif
00210
00211
00212
00213 #ifndef U_DISABLE_RENAMING
00214 #define U_DISABLE_RENAMING 0
00215 #endif
00216
00217
00218 #ifndef U_OVERRIDE_CXX_ALLOCATION
00219 #define U_OVERRIDE_CXX_ALLOCATION 1
00220 #endif
00221
00222 #ifndef U_HAVE_PLACEMENT_NEW
00223 #define U_HAVE_PLACEMENT_NEW 1
00224 #endif
00225
00226
00227 #ifndef U_ENABLE_TRACING
00228 #define U_ENABLE_TRACING 0
00229 #endif
00230
00231
00232 #ifndef U_DEFAULT_SHOW_DRAFT
00233 #define U_DEFAULT_SHOW_DRAFT 1
00234 #endif
00235
00236
00237 #define U_HAVE_LIB_SUFFIX 0
00238 #define U_LIB_SUFFIX_C_NAME
00239 #define U_LIB_SUFFIX_C_NAME_STRING ""
00240
00243
00245
00246
00247 #if ((defined(OS390) && (!defined(__CHARSET_LIB) || !__CHARSET_LIB))) || defined(OS400)
00248 # define U_CHARSET_FAMILY 1
00249 #endif
00250
00253
00255
00256
00257 #ifndef U_HAVE_WCHAR_H
00258 #define U_HAVE_WCHAR_H 1
00259 #endif
00260
00261 #ifndef U_SIZEOF_WCHAR_T
00262 #define U_SIZEOF_WCHAR_T 4
00263 #endif
00264
00265 #ifndef U_HAVE_WCSCPY
00266 #define U_HAVE_WCSCPY 1
00267 #endif
00268
00278 #ifndef U_GNUC_UTF16_STRING
00279 #define U_GNUC_UTF16_STRING 0
00280 #endif
00281 #if 1 || defined(U_CHECK_UTF16_STRING)
00282 #if (defined(__xlC__) && defined(__IBM_UTF_LITERAL) && U_SIZEOF_WCHAR_T != 2) \
00283 || (defined(__HP_aCC) && __HP_aCC >= 035000) \
00284 || (defined(__HP_cc) && __HP_cc >= 111106) \
00285 || U_GNUC_UTF16_STRING
00286 #define U_DECLARE_UTF16(string) u ## string
00287 #elif (defined(__SUNPRO_CC) && __SUNPRO_CC >= 0x550)
00288
00289
00290 #define U_DECLARE_UTF16(string) U ## string
00291 #elif U_SIZEOF_WCHAR_T == 2 \
00292 && (U_CHARSET_FAMILY == 0 || ((defined(OS390) || defined(OS400)) && defined(__UCS2__)))
00293 #define U_DECLARE_UTF16(string) L ## string
00294 #endif
00295 #endif
00296
00299
00301
00302
00303 #ifndef U_HAVE_NL_LANGINFO_CODESET
00304 #define U_HAVE_NL_LANGINFO_CODESET 1
00305 #endif
00306
00307 #ifndef U_NL_LANGINFO_CODESET
00308 #define U_NL_LANGINFO_CODESET CODESET
00309 #endif
00310
00311 #if 1
00312 #define U_TZSET tzset
00313 #endif
00314 #if 1
00315 #define U_TIMEZONE __timezone
00316 #endif
00317 #if 1
00318 #define U_TZNAME tzname
00319 #endif
00320
00321 #define U_HAVE_MMAP 1
00322 #define U_HAVE_POPEN 1
00323
00326
00328
00329
00330 #if 1
00331 #define U_EXPORT __attribute__((visibility("default")))
00332 #elif (defined(__SUNPRO_CC) && __SUNPRO_CC >= 0x550) \
00333 || (defined(__SUNPRO_C) && __SUNPRO_C >= 0x550)
00334 #define U_EXPORT __global
00335
00336
00337 #else
00338 #define U_EXPORT
00339 #endif
00340
00341
00342 #define U_EXPORT2
00343
00344
00345 #ifdef U_CYGWIN
00346 #define U_IMPORT __declspec(dllimport)
00347 #else
00348 #define U_IMPORT
00349 #endif
00350
00351
00352
00353
00355
00356
00357 #ifndef U_INLINE
00358 # ifdef __cplusplus
00359 # define U_INLINE inline
00360 # else
00361 # define U_INLINE __inline__
00362 # endif
00363 #endif
00364
00365 #ifndef U_ALIGN_CODE
00366 #define U_ALIGN_CODE(n)
00367 #endif
00368
00371
00373
00374
00379 #ifndef U_MAKE
00380 #define U_MAKE "/usr/bin/gmake"
00381 #endif
00382
00385 #endif