ICU 4.4.2 4.4.2
|
00001 /* 00002 ****************************************************************************** 00003 * 00004 * Copyright (C) 1997-2010, International Business Machines 00005 * Corporation and others. All Rights Reserved. 00006 * 00007 ****************************************************************************** 00008 * 00009 * Note: autoconf creates platform.h from platform.h.in at configure time. 00010 * 00011 ****************************************************************************** 00012 * 00013 * FILE NAME : platform.h 00014 * 00015 * Date Name Description 00016 * 05/13/98 nos Creation (content moved here from ptypes.h). 00017 * 03/02/99 stephen Added AS400 support. 00018 * 03/30/99 stephen Added Linux support. 00019 * 04/13/99 stephen Reworked for autoconf. 00020 ****************************************************************************** 00021 */ 00022 00023 #ifndef _PLATFORM_H 00024 #define _PLATFORM_H 00025 00031 /* This file should be included before uvernum.h. */ 00032 #if defined(UVERNUM_H) 00033 # error Do not include unicode/uvernum.h before #including unicode/platform.h. Instead of unicode/uvernum.h, #include unicode/uversion.h 00034 #endif 00035 00040 #ifndef UCLN_NO_AUTO_CLEANUP 00041 #define UCLN_NO_AUTO_CLEANUP 1 00042 #endif 00043 00044 /* Need platform.h when using CYGWINMSVC to get definitions above. Ignore everything else. */ 00045 #ifndef CYGWINMSVC 00046 00048 #ifndef U_LINUX 00049 #define U_LINUX 00050 #endif 00051 00057 #ifndef U_HAVE_DIRENT_H 00058 #define U_HAVE_DIRENT_H 1 00059 #endif 00060 00062 #ifndef U_HAVE_INTTYPES_H 00063 #define U_HAVE_INTTYPES_H 1 00064 #endif 00065 00080 #ifndef U_IOSTREAM_SOURCE 00081 #define U_IOSTREAM_SOURCE 199711 00082 #endif 00083 00092 #ifndef U_HAVE_STD_STRING 00093 #define U_HAVE_STD_STRING 1 00094 #endif 00095 00097 #ifndef U_HAVE_INT8_T 00098 #define U_HAVE_INT8_T 1 00099 #endif 00100 00101 #ifndef U_HAVE_UINT8_T 00102 #define U_HAVE_UINT8_T 1 00103 #endif 00104 00105 #ifndef U_HAVE_INT16_T 00106 #define U_HAVE_INT16_T 1 00107 #endif 00108 00109 #ifndef U_HAVE_UINT16_T 00110 #define U_HAVE_UINT16_T 1 00111 #endif 00112 00113 #ifndef U_HAVE_INT32_T 00114 #define U_HAVE_INT32_T 1 00115 #endif 00116 00117 #ifndef U_HAVE_UINT32_T 00118 #define U_HAVE_UINT32_T 1 00119 #endif 00120 00121 #ifndef U_HAVE_INT64_T 00122 #define U_HAVE_INT64_T 1 00123 #endif 00124 00125 #ifndef U_HAVE_UINT64_T 00126 #define U_HAVE_UINT64_T 1 00127 #endif 00128 00131 /*===========================================================================*/ 00133 /*===========================================================================*/ 00134 00135 /* Define whether namespace is supported */ 00136 #ifndef U_HAVE_NAMESPACE 00137 #define U_HAVE_NAMESPACE 1 00138 #endif 00139 00140 /* Determines the endianness of the platform 00141 It's done this way in case multiple architectures are being built at once. 00142 For example, Darwin supports fat binaries, which can be both PPC and x86 based. */ 00143 #if defined(BYTE_ORDER) && defined(BIG_ENDIAN) 00144 #define U_IS_BIG_ENDIAN (BYTE_ORDER == BIG_ENDIAN) 00145 #else 00146 #define U_IS_BIG_ENDIAN 1 00147 #endif 00148 00149 /* 1 or 0 to enable or disable threads. If undefined, default is: enable threads. */ 00150 #ifndef ICU_USE_THREADS 00151 #define ICU_USE_THREADS 1 00152 #endif 00153 00154 /* On strong memory model CPUs (e.g. x86 CPUs), we use a safe & quick double check lock. */ 00155 #if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) 00156 #define UMTX_STRONG_MEMORY_MODEL 1 00157 #endif 00158 00159 #ifndef U_DEBUG 00160 #define U_DEBUG 0 00161 #endif 00162 00163 #ifndef U_RELEASE 00164 #define U_RELEASE 1 00165 #endif 00166 00167 /* Determine whether to disable renaming or not. This overrides the 00168 setting in umachine.h which is for all platforms. */ 00169 #ifndef U_DISABLE_RENAMING 00170 #define U_DISABLE_RENAMING 0 00171 #endif 00172 00173 /* Determine whether to override new and delete. */ 00174 #ifndef U_OVERRIDE_CXX_ALLOCATION 00175 #define U_OVERRIDE_CXX_ALLOCATION 1 00176 #endif 00177 /* Determine whether to override placement new and delete for STL. */ 00178 #ifndef U_HAVE_PLACEMENT_NEW 00179 #define U_HAVE_PLACEMENT_NEW 1 00180 #endif 00181 00182 /* Determine whether to enable tracing. */ 00183 #ifndef U_ENABLE_TRACING 00184 #define U_ENABLE_TRACING 0 00185 #endif 00186 00191 #ifndef U_ENABLE_DYLOAD 00192 #define U_ENABLE_DYLOAD 1 00193 #endif 00194 00199 #ifndef U_CHECK_DYLOAD 00200 #define U_CHECK_DYLOAD 1 00201 #endif 00202 00203 00205 #ifndef U_DEFAULT_SHOW_DRAFT 00206 #define U_DEFAULT_SHOW_DRAFT 1 00207 #endif 00208 00211 /*===========================================================================*/ 00213 /*===========================================================================*/ 00214 00215 #if ((defined(OS390) && (!defined(__CHARSET_LIB) || !__CHARSET_LIB))) || defined(OS400) 00216 # define U_CHARSET_FAMILY 1 00217 #endif 00218 00221 /*===========================================================================*/ 00223 /*===========================================================================*/ 00224 00225 #ifndef U_HAVE_WCHAR_H 00226 #define U_HAVE_WCHAR_H 1 00227 #endif 00228 00229 #ifndef U_SIZEOF_WCHAR_T 00230 #define U_SIZEOF_WCHAR_T 4 00231 #endif 00232 00233 #ifndef U_HAVE_WCSCPY 00234 #define U_HAVE_WCSCPY 1 00235 #endif 00236 00249 #ifndef U_GNUC_UTF16_STRING 00250 #define U_GNUC_UTF16_STRING 0 00251 #endif 00252 #if 1 || defined(U_CHECK_UTF16_STRING) 00253 #if (defined(__xlC__) && defined(__IBM_UTF_LITERAL) && U_SIZEOF_WCHAR_T != 2) \ 00254 || (defined(__HP_aCC) && __HP_aCC >= 035000) \ 00255 || (defined(__HP_cc) && __HP_cc >= 111106) \ 00256 || U_GNUC_UTF16_STRING 00257 #define U_DECLARE_UTF16(string) u ## string 00258 #elif (defined(__SUNPRO_CC) && __SUNPRO_CC >= 0x550) 00259 /* || (defined(__SUNPRO_C) && __SUNPRO_C >= 0x580) */ 00260 /* Sun's C compiler has issues with this notation, and it's unreliable. */ 00261 #define U_DECLARE_UTF16(string) U ## string 00262 #elif U_SIZEOF_WCHAR_T == 2 \ 00263 && (U_CHARSET_FAMILY == 0 || ((defined(OS390) || defined(OS400)) && defined(__UCS2__))) 00264 #define U_DECLARE_UTF16(string) L ## string 00265 #endif 00266 #endif 00267 00270 /*===========================================================================*/ 00272 /*===========================================================================*/ 00273 00274 #ifndef U_HAVE_NL_LANGINFO_CODESET 00275 #define U_HAVE_NL_LANGINFO_CODESET 1 00276 #endif 00277 00278 #ifndef U_NL_LANGINFO_CODESET 00279 #define U_NL_LANGINFO_CODESET CODESET 00280 #endif 00281 00282 #if 1 00283 #define U_TZSET tzset 00284 #endif 00285 #if 1 00286 #define U_TIMEZONE __timezone 00287 #endif 00288 #if 1 00289 #define U_TZNAME tzname 00290 #endif 00291 00292 #define U_HAVE_MMAP 1 00293 #define U_HAVE_POPEN 1 00294 00297 /*===========================================================================*/ 00299 /*===========================================================================*/ 00300 00301 #if 1 00302 #define U_EXPORT __attribute__((visibility("default"))) 00303 #elif (defined(__SUNPRO_CC) && __SUNPRO_CC >= 0x550) \ 00304 || (defined(__SUNPRO_C) && __SUNPRO_C >= 0x550) 00305 #define U_EXPORT __global 00306 /*#elif defined(__HP_aCC) || defined(__HP_cc) 00307 #define U_EXPORT __declspec(dllexport)*/ 00308 #else 00309 #define U_EXPORT 00310 #endif 00311 00312 /* U_CALLCONV is releated to U_EXPORT2 */ 00313 #define U_EXPORT2 00314 00315 /* cygwin needs to export/import data */ 00316 #if defined(U_CYGWIN) && !defined(__GNUC__) 00317 #define U_IMPORT __declspec(dllimport) 00318 #else 00319 #define U_IMPORT 00320 #endif 00321 00322 /* @} */ 00323 00324 /*===========================================================================*/ 00326 /*===========================================================================*/ 00327 00328 #ifndef U_INLINE 00329 # ifdef __cplusplus 00330 # define U_INLINE inline 00331 # else 00332 # define U_INLINE __inline__ 00333 # endif 00334 #endif 00335 00336 #ifndef U_ALIGN_CODE 00337 #define U_ALIGN_CODE(n) 00338 #endif 00339 00342 /*===========================================================================*/ 00344 /*===========================================================================*/ 00345 00350 #ifndef U_HAVE_GCC_ATOMICS 00351 #define U_HAVE_GCC_ATOMICS 1 00352 #endif 00353 00356 /*===========================================================================*/ 00358 /*===========================================================================*/ 00359 00364 #ifndef U_MAKE 00365 #define U_MAKE "/usr/bin/gmake" 00366 #endif 00367 00370 #endif /* CYGWINMSVC */ 00371 00372 /*===========================================================================*/ 00373 /* Custom icu entry point renaming */ 00374 /*===========================================================================*/ 00375 00380 # define U_LIB_SUFFIX_C_NAME 00381 00385 # define U_LIB_SUFFIX_C_NAME_STRING "" 00386 00390 # define U_HAVE_LIB_SUFFIX 0 00391 00392 #if U_HAVE_LIB_SUFFIX 00393 # ifndef U_ICU_ENTRY_POINT_RENAME 00394 /* Renaming pattern: u_strcpy_41_suffix */ 00395 # define U_ICU_ENTRY_POINT_RENAME(x) x ## _ ## 44 ## 00396 # define U_DEF_ICUDATA_ENTRY_POINT(major, minor) icudt####major##minor##_dat 00397 00398 # endif 00399 #endif 00400 00401 #endif