WebKit/mac/icu/unicode/platform.h
changeset 0 4f2f89ce4247
equal deleted inserted replaced
-1:000000000000 0:4f2f89ce4247
       
     1 /*
       
     2 ******************************************************************************
       
     3 *
       
     4 *   Copyright (C) 1997-2004, International Business Machines
       
     5 *   Corporation and others.  All Rights Reserved.
       
     6 *
       
     7 ******************************************************************************
       
     8 *
       
     9 *  FILE NAME : platform.h
       
    10 *
       
    11 *   Date        Name        Description
       
    12 *   05/13/98    nos         Creation (content moved here from ptypes.h).
       
    13 *   03/02/99    stephen     Added AS400 support.
       
    14 *   03/30/99    stephen     Added Linux support.
       
    15 *   04/13/99    stephen     Reworked for autoconf.
       
    16 ******************************************************************************
       
    17 */
       
    18 
       
    19 /* Define the platform we're on. */
       
    20 #ifndef U_DARWIN
       
    21 #define U_DARWIN
       
    22 #endif
       
    23 
       
    24 /* Define whether inttypes.h is available */
       
    25 #ifndef U_HAVE_INTTYPES_H
       
    26 #define U_HAVE_INTTYPES_H 1
       
    27 #endif
       
    28 
       
    29 /*
       
    30  * Define what support for C++ streams is available.
       
    31  *     If U_IOSTREAM_SOURCE is set to 199711, then <iostream> is available
       
    32  * (1997711 is the date the ISO/IEC C++ FDIS was published), and then
       
    33  * one should qualify streams using the std namespace in ICU header
       
    34  * files.
       
    35  *     If U_IOSTREAM_SOURCE is set to 198506, then <iostream.h> is
       
    36  * available instead (198506 is the date when Stroustrup published
       
    37  * "An Extensible I/O Facility for C++" at the summer USENIX conference).
       
    38  *     If U_IOSTREAM_SOURCE is 0, then C++ streams are not available and
       
    39  * support for them will be silently suppressed in ICU.
       
    40  *
       
    41  */
       
    42 
       
    43 #ifndef U_IOSTREAM_SOURCE
       
    44 #define U_IOSTREAM_SOURCE 199711
       
    45 #endif
       
    46 
       
    47 /* Determines whether specific types are available */
       
    48 #ifndef U_HAVE_INT8_T
       
    49 #define U_HAVE_INT8_T 1
       
    50 #endif
       
    51 
       
    52 #ifndef U_HAVE_UINT8_T
       
    53 #define U_HAVE_UINT8_T 0
       
    54 #endif
       
    55 
       
    56 #ifndef U_HAVE_INT16_T
       
    57 #define U_HAVE_INT16_T 1
       
    58 #endif
       
    59 
       
    60 #ifndef U_HAVE_UINT16_T
       
    61 #define U_HAVE_UINT16_T 0
       
    62 #endif
       
    63 
       
    64 #ifndef U_HAVE_INT32_T
       
    65 #define U_HAVE_INT32_T 1
       
    66 #endif
       
    67 
       
    68 #ifndef U_HAVE_UINT32_T
       
    69 #define U_HAVE_UINT32_T 0
       
    70 #endif
       
    71 
       
    72 #ifndef U_HAVE_INT64_T
       
    73 #define U_HAVE_INT64_T 1
       
    74 #endif
       
    75 
       
    76 #ifndef U_HAVE_UINT64_T
       
    77 #define U_HAVE_UINT64_T 0
       
    78 #endif
       
    79 
       
    80 /*===========================================================================*/
       
    81 /* Generic data types                                                        */
       
    82 /*===========================================================================*/
       
    83 
       
    84 #include <sys/types.h>
       
    85 
       
    86 /* If your platform does not have the <inttypes.h> header, you may
       
    87    need to edit the typedefs below. */
       
    88 #if U_HAVE_INTTYPES_H
       
    89 
       
    90 /* autoconf 2.13 sometimes can't properly find the data types in <inttypes.h> */
       
    91 /* os/390 needs <inttypes.h>, but it doesn't have int8_t, and it sometimes */
       
    92 /* doesn't have uint8_t depending on the OS version. */
       
    93 /* So we have this work around. */
       
    94 #ifdef OS390
       
    95 /* The features header is needed to get (u)int64_t sometimes. */
       
    96 #include <features.h>
       
    97 #if ! U_HAVE_INT8_T
       
    98 typedef signed char int8_t;
       
    99 #endif
       
   100 #if !defined(__uint8_t)
       
   101 #define __uint8_t 1
       
   102 typedef unsigned char uint8_t;
       
   103 #endif
       
   104 #endif /* OS390 */
       
   105 
       
   106 #include <inttypes.h>
       
   107 
       
   108 #else /* U_HAVE_INTTYPES_H */
       
   109 
       
   110 #if ! U_HAVE_INT8_T
       
   111 typedef signed char int8_t;
       
   112 #endif
       
   113 
       
   114 #if ! U_HAVE_UINT8_T
       
   115 typedef unsigned char uint8_t;
       
   116 #endif
       
   117 
       
   118 #if ! U_HAVE_INT16_T
       
   119 typedef signed short int16_t;
       
   120 #endif
       
   121 
       
   122 #if ! U_HAVE_UINT16_T
       
   123 typedef unsigned short uint16_t;
       
   124 #endif
       
   125 
       
   126 #if ! U_HAVE_INT32_T
       
   127 typedef signed int int32_t;
       
   128 #endif
       
   129 
       
   130 #if ! U_HAVE_UINT32_T
       
   131 typedef unsigned int uint32_t;
       
   132 #endif
       
   133 
       
   134 #if ! U_HAVE_INT64_T
       
   135     typedef signed long long int64_t;
       
   136 /* else we may not have a 64-bit type */
       
   137 #endif
       
   138 
       
   139 #if ! U_HAVE_UINT64_T
       
   140     typedef unsigned long long uint64_t;
       
   141 /* else we may not have a 64-bit type */
       
   142 #endif
       
   143 
       
   144 #endif
       
   145 
       
   146 /*===========================================================================*/
       
   147 /* Compiler and environment features                                         */
       
   148 /*===========================================================================*/
       
   149 
       
   150 /* Define whether namespace is supported */
       
   151 #ifndef U_HAVE_NAMESPACE
       
   152 #define U_HAVE_NAMESPACE 1
       
   153 #endif
       
   154 
       
   155 /* Determines the endianness of the platform
       
   156    It's done this way in case multiple architectures are being built at once.
       
   157    For example, Darwin supports fat binaries, which can be both PPC and x86 based. */
       
   158 #if defined(BYTE_ORDER) && defined(BIG_ENDIAN)
       
   159 #define U_IS_BIG_ENDIAN (BYTE_ORDER == BIG_ENDIAN)
       
   160 #else
       
   161 #define U_IS_BIG_ENDIAN 1
       
   162 #endif
       
   163 
       
   164 /* 1 or 0 to enable or disable threads.  If undefined, default is: enable threads. */
       
   165 #define ICU_USE_THREADS 1
       
   166 
       
   167 #ifndef U_DEBUG
       
   168 #define U_DEBUG 0
       
   169 #endif
       
   170 
       
   171 #ifndef U_RELEASE
       
   172 #define U_RELEASE 1
       
   173 #endif
       
   174 
       
   175 /* Determine whether to disable renaming or not. This overrides the
       
   176    setting in umachine.h which is for all platforms. */
       
   177 #ifndef U_DISABLE_RENAMING
       
   178 #define U_DISABLE_RENAMING 1
       
   179 #endif
       
   180 
       
   181 /* Determine whether to override new and delete. */
       
   182 #ifndef U_OVERRIDE_CXX_ALLOCATION
       
   183 #define U_OVERRIDE_CXX_ALLOCATION 1
       
   184 #endif
       
   185 /* Determine whether to override placement new and delete for STL. */
       
   186 #ifndef U_HAVE_PLACEMENT_NEW
       
   187 #define U_HAVE_PLACEMENT_NEW 1
       
   188 #endif
       
   189 
       
   190 /* Determine whether to enable tracing. */
       
   191 #ifndef U_ENABLE_TRACING
       
   192 #define U_ENABLE_TRACING 1
       
   193 #endif
       
   194 
       
   195 /* Define the library suffix in a C syntax. */
       
   196 #define U_HAVE_LIB_SUFFIX 0
       
   197 #define U_LIB_SUFFIX_C_NAME 
       
   198 #define U_LIB_SUFFIX_C_NAME_STRING ""
       
   199 
       
   200 /*===========================================================================*/
       
   201 /* Character data types                                                      */
       
   202 /*===========================================================================*/
       
   203 
       
   204 #if defined(OS390) || defined(OS400)
       
   205 #   define U_CHARSET_FAMILY 1
       
   206 #endif
       
   207 
       
   208 /*===========================================================================*/
       
   209 /* Information about wchar support                                           */
       
   210 /*===========================================================================*/
       
   211 
       
   212 #define U_HAVE_WCHAR_H      1
       
   213 #define U_SIZEOF_WCHAR_T    4
       
   214 
       
   215 #define U_HAVE_WCSCPY       1
       
   216 
       
   217 /*===========================================================================*/
       
   218 /* Information about POSIX support                                           */
       
   219 /*===========================================================================*/
       
   220 
       
   221 #define U_HAVE_NL_LANGINFO          1
       
   222 #define U_HAVE_NL_LANGINFO_CODESET  1
       
   223 #define U_NL_LANGINFO_CODESET       CODESET
       
   224 
       
   225 #if 1
       
   226 #define U_TZSET         tzset
       
   227 #endif
       
   228 #if 0
       
   229 #define U_TIMEZONE      
       
   230 #endif
       
   231 #if 1
       
   232 #define U_TZNAME        tzname
       
   233 #endif
       
   234 
       
   235 #define U_HAVE_MMAP     1
       
   236 #define U_HAVE_POPEN    1
       
   237 
       
   238 /*===========================================================================*/
       
   239 /* Symbol import-export control                                              */
       
   240 /*===========================================================================*/
       
   241 
       
   242 #define U_EXPORT
       
   243 /* U_CALLCONV is releated to U_EXPORT2 */
       
   244 #define U_EXPORT2
       
   245 
       
   246 /* cygwin needs to export/import data */
       
   247 #ifdef U_CYGWIN
       
   248 #define U_IMPORT __declspec(dllimport)
       
   249 #else
       
   250 #define U_IMPORT 
       
   251 #endif
       
   252 
       
   253 /*===========================================================================*/
       
   254 /* Code alignment and C function inlining                                    */
       
   255 /*===========================================================================*/
       
   256 
       
   257 #ifndef U_INLINE
       
   258 #define U_INLINE inline
       
   259 #endif
       
   260 
       
   261 #define U_ALIGN_CODE(n) 
       
   262 
       
   263 /*===========================================================================*/
       
   264 /* Programs used by ICU code                                                 */
       
   265 /*===========================================================================*/
       
   266 
       
   267 #define U_MAKE  "/usr/bin/gnumake"