Main Page | Class Hierarchy | Alphabetical List | Data Structures | File List | Data Fields | Globals

pwin32.h

00001 /*
00002 ******************************************************************************
00003 *
00004 *   Copyright (C) 1997-2004, 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 WIN32
00021 #define WIN32
00022 #endif
00023 
00024 #if defined(__BORLANDC__)
00025 #define U_HAVE_PLACEMENT_NEW 0
00026 #define U_HAVE_INTTYPES_H 1
00027 #define __STDC_CONSTANT_MACROS
00028 #endif
00029 
00030 /* Define whether inttypes.h is available */
00031 #ifndef U_HAVE_INTTYPES_H
00032 #define U_HAVE_INTTYPES_H 0
00033 #endif
00034 
00035 /*
00036  * Define what support for C++ streams is available.
00037  *     If U_IOSTREAM_SOURCE is set to 199711, then <iostream> is available
00038  * (1997711 is the date the ISO/IEC C++ FDIS was published), and then
00039  * one should qualify streams using the std namespace in ICU header
00040  * files.
00041  *     If U_IOSTREAM_SOURCE is set to 198506, then <iostream.h> is
00042  * available instead (198506 is the date when Stroustrup published
00043  * "An Extensible I/O Facility for C++" at the summer USENIX conference).
00044  *     If U_IOSTREAM_SOURCE is 0, then C++ streams are not available and
00045  * support for them will be silently suppressed in ICU.
00046  *
00047  */
00048 
00049 #ifndef U_IOSTREAM_SOURCE
00050 #define U_IOSTREAM_SOURCE 199711
00051 #endif
00052 
00053 /* Determines whether specific types are available */
00054 #ifndef U_HAVE_INT8_T
00055 #define U_HAVE_INT8_T U_HAVE_INTTYPES_H
00056 #endif
00057 
00058 #ifndef U_HAVE_UINT8_T
00059 #define U_HAVE_UINT8_T U_HAVE_INTTYPES_H
00060 #endif
00061 
00062 #ifndef U_HAVE_INT16_T
00063 #define U_HAVE_INT16_T U_HAVE_INTTYPES_H
00064 #endif
00065 
00066 #ifndef U_HAVE_UINT16_T
00067 #define U_HAVE_UINT16_T U_HAVE_INTTYPES_H
00068 #endif
00069 
00070 #ifndef U_HAVE_INT32_T
00071 #define U_HAVE_INT32_T U_HAVE_INTTYPES_H
00072 #endif
00073 
00074 #ifndef U_HAVE_UINT32_T
00075 #define U_HAVE_UINT32_T U_HAVE_INTTYPES_H
00076 #endif
00077 
00078 #ifndef U_HAVE_INT64_T
00079 #define U_HAVE_INT64_T U_HAVE_INTTYPES_H
00080 #endif
00081 
00082 #ifndef U_HAVE_UINT64_T
00083 #define U_HAVE_UINT64_T U_HAVE_INTTYPES_H
00084 #endif
00085 
00086 /* Define 64 bit limits */
00087 #define INT64_C(x) ((int64_t)x)
00088 #define UINT64_C(x) ((uint64_t)x)
00089 
00090 /*===========================================================================*/
00091 /* Generic data types                                                        */
00092 /*===========================================================================*/
00093 
00094 /* If your platform does not have the <inttypes.h> header, you may
00095    need to edit the typedefs below. */
00096 #if U_HAVE_INTTYPES_H
00097 #include <inttypes.h>
00098 #else /* U_HAVE_INTTYPES_H */
00099 
00100 #if ! U_HAVE_INT8_T
00101 typedef signed char int8_t;
00102 #endif
00103 
00104 #if ! U_HAVE_UINT8_T
00105 typedef unsigned char uint8_t;
00106 #endif
00107 
00108 #if ! U_HAVE_INT16_T
00109 typedef signed short int16_t;
00110 #endif
00111 
00112 #if ! U_HAVE_UINT16_T
00113 typedef unsigned short uint16_t;
00114 #endif
00115 
00116 #if ! U_HAVE_INT32_T
00117 typedef signed int int32_t;
00118 #endif
00119 
00120 #if ! U_HAVE_UINT32_T
00121 typedef unsigned int uint32_t;
00122 #endif
00123 
00124 #if ! U_HAVE_INT64_T
00125 /* _MSC_VER is used to detect the Microsoft compiler. */
00126 #ifdef _MSC_VER
00127     typedef signed __int64 int64_t;
00128 #else
00129     typedef signed long long int64_t;
00130 #endif
00131 #endif
00132 
00133 #if ! U_HAVE_UINT64_T
00134 /* _MSC_VER is used to detect the Microsoft compiler. */
00135 #ifdef _MSC_VER
00136     typedef unsigned __int64 uint64_t;
00137 #else
00138     typedef unsigned long long uint64_t;
00139 #endif
00140 #endif
00141 #endif
00142 
00143 /*===========================================================================*/
00144 /* Compiler and environment features                                         */
00145 /*===========================================================================*/
00146 
00147 /* Define whether namespace is supported */
00148 #ifndef U_HAVE_NAMESPACE
00149 #define U_HAVE_NAMESPACE 1
00150 #endif
00151 
00152 /* Determines the endianness of the platform */
00153 #define U_IS_BIG_ENDIAN 0
00154 
00155 /* 1 or 0 to enable or disable threads.  If undefined, default is: enable threads. */
00156 #define ICU_USE_THREADS 1
00157 
00158 /* Windows currently only runs on x86 CPUs which currently all have strong memory models. */
00159 #define UMTX_STRONG_MEMORY_MODEL 1
00160 
00161 #ifndef U_DEBUG
00162 #ifdef _DEBUG
00163 #define U_DEBUG 1
00164 #else
00165 #define U_DEBUG 0
00166 #endif
00167 #endif
00168 
00169 #ifndef U_RELEASE
00170 #ifdef NDEBUG
00171 #define U_RELEASE 1
00172 #else
00173 #define U_RELEASE 0
00174 #endif
00175 #endif
00176 /* Determine whether to disable renaming or not. This overrides the
00177    setting in umachine.h which is for all platforms. */
00178 #ifndef U_DISABLE_RENAMING
00179 #define U_DISABLE_RENAMING 0
00180 #endif
00181 
00182 /* Determine whether to override new and delete. */
00183 #ifndef U_OVERRIDE_CXX_ALLOCATION
00184 #define U_OVERRIDE_CXX_ALLOCATION 1
00185 #endif
00186 /* Determine whether to override placement new and delete for STL. */
00187 #ifndef U_HAVE_PLACEMENT_NEW
00188 #define U_HAVE_PLACEMENT_NEW 1
00189 #endif
00190 
00191 /* Determine whether to enable tracing. */
00192 #ifndef U_ENABLE_TRACING
00193 #define U_ENABLE_TRACING 1
00194 #endif
00195 
00196 /* Define the library suffix in a C syntax. */
00197 #define U_HAVE_LIB_SUFFIX 0
00198 #define U_LIB_SUFFIX_C_NAME 
00199 #define U_LIB_SUFFIX_C_NAME_STRING ""
00200 
00201 /*===========================================================================*/
00202 /* Information about wchar support                                           */
00203 /*===========================================================================*/
00204 
00205 #define U_HAVE_WCHAR_H 1
00206 #define U_SIZEOF_WCHAR_T 2
00207 
00208 #define U_HAVE_WCSCPY 1
00209 
00210 /*===========================================================================*/
00211 /* Information about POSIX support                                           */
00212 /*===========================================================================*/
00213 
00214 #define U_TZSET         _tzset
00215 #define U_HAVE_TIMEZONE 1
00216 #if U_HAVE_TIMEZONE
00217 #   define U_TIMEZONE   _timezone
00218 #endif
00219 #define U_TZNAME        _tzname
00220 
00221 #define U_HAVE_MMAP 0
00222 #define U_HAVE_POPEN 0
00223 
00224 /*===========================================================================*/
00225 /* Symbol import-export control                                              */
00226 /*===========================================================================*/
00227 
00228 #ifdef U_STATIC_IMPLEMENTATION
00229 #define U_EXPORT
00230 #else
00231 #define U_EXPORT __declspec(dllexport)
00232 #endif
00233 #define U_EXPORT2 __cdecl
00234 #define U_IMPORT __declspec(dllimport)
00235 
00236 /*===========================================================================*/
00237 /* Code alignment and C function inlining                                    */
00238 /*===========================================================================*/
00239 
00240 #ifndef U_INLINE
00241 #define U_INLINE __inline
00242 #endif
00243 
00244 #if defined(_MSC_VER) && defined(_M_IX86)
00245 #define U_ALIGN_CODE(val)    __asm      align val
00246 #else
00247 #define U_ALIGN_CODE(val)
00248 #endif
00249       
00250 
00251 /*===========================================================================*/
00252 /* Programs used by ICU code                                                 */
00253 /*===========================================================================*/
00254 
00255 #ifndef U_MAKE
00256 #define U_MAKE  "nmake"
00257 #define U_MAKE_IS_NMAKE 1
00258 #endif

Generated on Tue Jul 26 00:39:58 2005 for ICU 3.2 by  doxygen 1.3.9.1