ICU 4.4.2 4.4.2

platform.h

Go to the documentation of this file.
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 0
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
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines