Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Search  

platform.h

Go to the documentation of this file.
00001 /*
00002 *******************************************************************************
00003 *
00004 *   Copyright (C) 1997-2003, International Business Machines
00005 *   Corporation and others.  All Rights Reserved.
00006 *
00007 *******************************************************************************
00008 *
00009 *  FILE NAME : platform.h
00010 *
00011 *   Date        Name        Description
00012 *   05/13/98    nos         Creation (content moved here from ptypes.h).
00013 *   03/02/99    stephen     Added AS400 support.
00014 *   03/30/99    stephen     Added Linux support.
00015 *   04/13/99    stephen     Reworked for autoconf.
00016 *******************************************************************************
00017 */
00018 
00019 /* Define the platform we're on. */
00020 #ifndef U_LINUX
00021 #define U_LINUX
00022 #endif
00023 
00024 /* Define whether inttypes.h is available */
00025 #ifndef U_HAVE_INTTYPES_H
00026 #define U_HAVE_INTTYPES_H 1
00027 #endif
00028 
00029 /*
00030  * Define what support for C++ streams is available.
00031  *     If U_IOSTREAM_SOURCE is set to 199711, then <iostream> is available
00032  * (1997711 is the date the ISO/IEC C++ FDIS was published), and then
00033  * one should qualify streams using the std namespace in ICU header
00034  * files.
00035  *     If U_IOSTREAM_SOURCE is set to 198506, then <iostream.h> is
00036  * available instead (198506 is the date when Stroustrup published
00037  * "An Extensible I/O Facility for C++" at the summer USENIX conference).
00038  *     If U_IOSTREAM_SOURCE is 0, then C++ streams are not available and
00039  * support for them will be silently suppressed in ICU.
00040  *
00041  */
00042 
00043 #ifndef U_IOSTREAM_SOURCE
00044 #define U_IOSTREAM_SOURCE 199711
00045 #endif
00046 
00047 #ifndef U_DEBUG
00048 #define U_DEBUG 0
00049 #endif
00050 
00051 #ifndef U_RELEASE
00052 #define U_RELEASE 1
00053 #endif
00054 
00055 /* Determines whether specific types are available */
00056 #ifndef U_HAVE_INT8_T
00057 #define U_HAVE_INT8_T 1
00058 #endif
00059 
00060 #ifndef U_HAVE_UINT8_T
00061 #define U_HAVE_UINT8_T 0
00062 #endif
00063 
00064 #ifndef U_HAVE_INT16_T
00065 #define U_HAVE_INT16_T 1
00066 #endif
00067 
00068 #ifndef U_HAVE_UINT16_T
00069 #define U_HAVE_UINT16_T 0
00070 #endif
00071 
00072 #ifndef U_HAVE_INT32_T
00073 #define U_HAVE_INT32_T 1
00074 #endif
00075 
00076 #ifndef U_HAVE_UINT32_T
00077 #define U_HAVE_UINT32_T 0
00078 #endif
00079 
00080 #ifndef U_HAVE_INT64_T
00081 #define U_HAVE_INT64_T 1
00082 #endif
00083 
00084 #ifndef U_HAVE_UINT64_T
00085 #define U_HAVE_UINT64_T 0
00086 #endif
00087 
00088 
00089 /* Define whether namespace is supported */
00090 #ifndef U_HAVE_NAMESPACE
00091 #define U_HAVE_NAMESPACE 1
00092 #endif
00093 
00094 /* Determines the endianness of the platform */
00095 #define U_IS_BIG_ENDIAN 0
00096 
00097 /* 1 or 0 to enable or disable threads.  If undefined, default is: enable threads. */
00098 #define ICU_USE_THREADS 1
00099 
00100 /* Determine whether to disable renaming or not. This overrides the
00101    setting in umachine.h which is for all platforms. */
00102 #ifndef U_DISABLE_RENAMING
00103 #define U_DISABLE_RENAMING 0
00104 #endif
00105 
00106 /* Determine whether to override new and delete. */
00107 #ifndef U_OVERRIDE_CXX_ALLOCATION
00108 #define U_OVERRIDE_CXX_ALLOCATION 1
00109 #endif
00110 /* Determine whether to override placement new and delete for STL. */
00111 #ifndef U_HAVE_PLACEMENT_NEW
00112 #define U_HAVE_PLACEMENT_NEW 1
00113 #endif
00114 
00115 /* Define the library suffix in a C syntax. */
00116 #define U_HAVE_LIB_SUFFIX 0
00117 #define U_LIB_SUFFIX_C_NAME 
00118 #define U_LIB_SUFFIX_C_NAME_STRING ""
00119 
00120 /*===========================================================================*/
00121 /* Platform/Language determination                                           */
00122 /*===========================================================================*/
00123 
00124 #ifdef macintosh
00125 #ifdef XP_MAC
00126 #undef XP_MAC
00127 #endif
00128 #define XP_MAC 1
00129 #include <string.h>
00130 #endif
00131 
00132 /*===========================================================================*/
00133 /* Generic data types                                                        */
00134 /*===========================================================================*/
00135 
00136 /* If your platform does not have the <inttypes.h> header, you may
00137    need to edit the typedefs below. */
00138 #if U_HAVE_INTTYPES_H
00139 
00140 /* autoconf 2.13 sometimes can't properly find the data types in <inttypes.h> */
00141 /* os/390 needs <inttypes.h>, but it doesn't have int8_t, and it sometimes */
00142 /* doesn't have uint8_t depending on the OS version. */
00143 /* So we have this work around. */
00144 #ifdef OS390
00145 /* The features header is needed to get (u)int64_t sometimes. */
00146 #include <features.h>
00147 #if ! U_HAVE_INT8_T
00148 typedef signed char int8_t;
00149 #endif
00150 #if !defined(__uint8_t)
00151 #define __uint8_t 1
00152 typedef unsigned char uint8_t;
00153 #endif
00154 #endif /* OS390 */
00155 
00156 #include <inttypes.h>
00157 
00158 #else /* U_HAVE_INTTYPES_H */
00159 
00160 #include <sys/types.h>
00161 #if STDC_HEADERS
00162 #include <stdlib.h>
00163 #include <stddef.h>
00164 #endif /* STDC_HEADERS */
00165 
00166 #if ! U_HAVE_INT8_T
00167 typedef signed char int8_t;
00168 #endif
00169 
00170 #if ! U_HAVE_UINT8_T
00171 typedef unsigned char uint8_t;
00172 #endif
00173 
00174 #if ! U_HAVE_INT16_T
00175 typedef signed short int16_t;
00176 #endif
00177 
00178 #if ! U_HAVE_UINT16_T
00179 typedef unsigned short uint16_t;
00180 #endif
00181 
00182 #if ! U_HAVE_INT32_T
00183 #   if defined(_LP64)
00184       typedef signed int  int32_t;
00185 #   else
00186       typedef signed long int32_t;
00187 #   endif
00188 #endif
00189 
00190 #if ! U_HAVE_UINT32_T
00191 #   if defined(_LP64)
00192       typedef unsigned int  uint32_t;
00193 #   else
00194       typedef unsigned long uint32_t;
00195 #   endif
00196 #endif
00197 
00198 #if ! U_HAVE_INT64_T
00199     typedef signed long long int64_t;
00200 /* else we may not have a 64-bit type */
00201 #endif
00202 
00203 #if ! U_HAVE_UINT64_T
00204     typedef unsigned long long uint64_t;
00205 /* else we may not have a 64-bit type */
00206 #endif
00207 
00208 #endif
00209 
00210 /*===========================================================================*/
00211 /* Character data types                                                      */
00212 /*===========================================================================*/
00213 
00214 #ifdef OS390
00215 #   define U_CHARSET_FAMILY 1
00216 #endif
00217 
00218 /*===========================================================================*/
00219 /* Information about wchar support                                           */
00220 /*===========================================================================*/
00221 
00222 #define U_HAVE_WCHAR_H      1
00223 #define U_SIZEOF_WCHAR_T    4
00224 
00225 #define U_HAVE_WCSCPY       1
00226 
00227 /*===========================================================================*/
00228 /* Information about POSIX support                                           */
00229 /*===========================================================================*/
00230 
00231 #define U_HAVE_NL_LANGINFO          1
00232 #define U_HAVE_NL_LANGINFO_CODESET  1
00233 #define U_NL_LANGINFO_CODESET       CODESET
00234 
00235 #define U_TZSET         tzset
00236 #define U_HAVE_TIMEZONE 1
00237 #if U_HAVE_TIMEZONE
00238 #   define U_TIMEZONE   timezone
00239 #endif
00240 #define U_TZNAME        tzname
00241 
00242 #define U_HAVE_MMAP     1
00243 #define U_HAVE_POPEN    1
00244 
00245 /*===========================================================================*/
00246 /* Symbol import-export control                                              */
00247 /*===========================================================================*/
00248 
00249 #define U_EXPORT
00250 /* U_CALLCONV is releated to U_EXPORT2 */
00251 #define U_EXPORT2
00252 
00253 /* cygwin needs to export/import data */
00254 #ifdef U_CYGWIN
00255 #define U_IMPORT __declspec(dllimport)
00256 #else
00257 #define U_IMPORT 
00258 #endif
00259 
00260 /*===========================================================================*/
00261 /* Code alignment and C function inlining                                    */
00262 /*===========================================================================*/
00263 
00264 #ifndef U_INLINE
00265 #define U_INLINE inline
00266 #endif
00267 
00268 #define U_ALIGN_CODE(n) 
00269 
00270 /*===========================================================================*/
00271 /* Programs used by ICU code                                                 */
00272 /*===========================================================================*/
00273 
00274 #define U_MAKE  "/usr/bin/gmake"

Generated on Mon Nov 24 14:21:09 2003 for ICU 2.8 by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001