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