]> git.saurik.com Git - apple/icu.git/blob - icuSources/common/unicode/ppalmos.h
ICU-400.42.tar.gz
[apple/icu.git] / icuSources / common / unicode / ppalmos.h
1 /*
2 ******************************************************************************
3 *
4 * Copyright (C) 1997-2006, International Business Machines
5 * Corporation and others. All Rights Reserved.
6 *
7 ******************************************************************************
8 *
9 * FILE NAME : ppalmos.h
10 *
11 * Date Name Description
12 * 05/10/04 Ken Krugler Creation (copied from pwin32.h & modified).
13 ******************************************************************************
14 */
15
16 #ifndef U_PPALMOS_H
17 #define U_PPALMOS_H
18
19 /**
20 * \file
21 * \brief Configuration constants for the Palm OS platform
22 */
23
24 /* Define the platform we're on. */
25 #ifndef U_PALMOS
26 #define U_PALMOS
27 #endif
28
29 /* _MSC_VER is used to detect the Microsoft compiler. */
30 #if defined(_MSC_VER)
31 #define U_INT64_IS_LONG_LONG 0
32 #else
33 #define U_INT64_IS_LONG_LONG 1
34 #endif
35
36 /* Define whether inttypes.h is available */
37 #ifndef U_HAVE_INTTYPES_H
38 #define U_HAVE_INTTYPES_H 1
39 #endif
40
41 /*
42 * Define what support for C++ streams is available.
43 * If U_IOSTREAM_SOURCE is set to 199711, then <iostream> is available
44 * (1997711 is the date the ISO/IEC C++ FDIS was published), and then
45 * one should qualify streams using the std namespace in ICU header
46 * files.
47 * If U_IOSTREAM_SOURCE is set to 198506, then <iostream.h> is
48 * available instead (198506 is the date when Stroustrup published
49 * "An Extensible I/O Facility for C++" at the summer USENIX conference).
50 * If U_IOSTREAM_SOURCE is 0, then C++ streams are not available and
51 * support for them will be silently suppressed in ICU.
52 *
53 */
54
55 #ifndef U_IOSTREAM_SOURCE
56 #define U_IOSTREAM_SOURCE 199711
57 #endif
58
59 /* Determines whether specific types are available */
60 #ifndef U_HAVE_INT8_T
61 #define U_HAVE_INT8_T U_HAVE_INTTYPES_H
62 #endif
63
64 #ifndef U_HAVE_UINT8_T
65 #define U_HAVE_UINT8_T U_HAVE_INTTYPES_H
66 #endif
67
68 #ifndef U_HAVE_INT16_T
69 #define U_HAVE_INT16_T U_HAVE_INTTYPES_H
70 #endif
71
72 #ifndef U_HAVE_UINT16_T
73 #define U_HAVE_UINT16_T U_HAVE_INTTYPES_H
74 #endif
75
76 #ifndef U_HAVE_INT32_T
77 #define U_HAVE_INT32_T U_HAVE_INTTYPES_H
78 #endif
79
80 #ifndef U_HAVE_UINT32_T
81 #define U_HAVE_UINT32_T U_HAVE_INTTYPES_H
82 #endif
83
84 #ifndef U_HAVE_INT64_T
85 #define U_HAVE_INT64_T U_HAVE_INTTYPES_H
86 #endif
87
88 #ifndef U_HAVE_UINT64_T
89 #define U_HAVE_UINT64_T U_HAVE_INTTYPES_H
90 #endif
91
92
93 /*===========================================================================*/
94 /* Generic data types */
95 /*===========================================================================*/
96
97 /* If your platform does not have the <inttypes.h> header, you may
98 need to edit the typedefs below. */
99 #if U_HAVE_INTTYPES_H
100 #include <inttypes.h>
101 #else /* U_HAVE_INTTYPES_H */
102
103 #if ! U_HAVE_INT8_T
104 typedef signed char int8_t;
105 #endif
106
107 #if ! U_HAVE_UINT8_T
108 typedef unsigned char uint8_t;
109 #endif
110
111 #if ! U_HAVE_INT16_T
112 typedef signed short int16_t;
113 #endif
114
115 #if ! U_HAVE_UINT16_T
116 typedef unsigned short uint16_t;
117 #endif
118
119 #if ! U_HAVE_INT32_T
120 typedef signed int int32_t;
121 #endif
122
123 #if ! U_HAVE_UINT32_T
124 typedef unsigned int uint32_t;
125 #endif
126
127 #if ! U_HAVE_INT64_T
128 #if U_INT64_IS_LONG_LONG
129 typedef signed long long int64_t;
130 #else
131 typedef signed __int64 int64_t;
132 #endif
133 #endif
134
135 #if ! U_HAVE_UINT64_T
136 #if U_INT64_IS_LONG_LONG
137 typedef unsigned long long uint64_t;
138 #else
139 typedef unsigned __int64 uint64_t;
140 #endif
141 #endif
142 #endif
143
144 /*===========================================================================*/
145 /* Compiler and environment features */
146 /*===========================================================================*/
147
148 /* Define whether namespace is supported */
149 #ifndef U_HAVE_NAMESPACE
150 #define U_HAVE_NAMESPACE 1
151 #endif
152
153 /* Determines the endianness of the platform */
154 #define U_IS_BIG_ENDIAN 0
155
156 /* 1 or 0 to enable or disable threads. If undefined, default is: enable threads. */
157 #define ICU_USE_THREADS 1
158
159 #ifndef U_DEBUG
160 #ifdef _DEBUG
161 #define U_DEBUG 1
162 #else
163 #define U_DEBUG 0
164 #endif
165 #endif
166
167 #ifndef U_RELEASE
168 #ifdef NDEBUG
169 #define U_RELEASE 1
170 #else
171 #define U_RELEASE 0
172 #endif
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 0
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 0
188 #endif
189 /* Determine whether to override new and delete for MFC. */
190 #if !defined(U_HAVE_DEBUG_LOCATION_NEW) && defined(_MSC_VER)
191 #define U_HAVE_DEBUG_LOCATION_NEW 0
192 #endif
193
194 /* Determine whether to enable tracing. */
195 #ifndef U_ENABLE_TRACING
196 #define U_ENABLE_TRACING 1
197 #endif
198
199 /* Do we allow ICU users to use the draft APIs by default? */
200 #ifndef U_DEFAULT_SHOW_DRAFT
201 #define U_DEFAULT_SHOW_DRAFT 1
202 #endif
203
204 /* Define the library suffix in a C syntax. */
205 #define U_HAVE_LIB_SUFFIX 0
206 #define U_LIB_SUFFIX_C_NAME
207 #define U_LIB_SUFFIX_C_NAME_STRING ""
208
209 /*===========================================================================*/
210 /* Information about wchar support */
211 /*===========================================================================*/
212
213 #define U_HAVE_WCHAR_H 1
214 #define U_SIZEOF_WCHAR_T 2
215
216 #define U_HAVE_WCSCPY 0
217
218 /*===========================================================================*/
219 /* Information about POSIX support */
220 /*===========================================================================*/
221
222
223 /* TODO: Fix Palm OS's determination of a timezone */
224 #if 0
225 #define U_TZSET _tzset
226 #endif
227 #if 0
228 #define U_TIMEZONE _timezone
229 #endif
230 #if 0
231 #define U_TZNAME _tzname
232 #endif
233
234 #define U_HAVE_MMAP 0
235 #define U_HAVE_POPEN 0
236
237 /*===========================================================================*/
238 /* Symbol import-export control */
239 /*===========================================================================*/
240
241 #define U_EXPORT
242 #define U_EXPORT2
243 #define U_IMPORT
244
245 /*===========================================================================*/
246 /* Code alignment and C function inlining */
247 /*===========================================================================*/
248
249 #ifndef U_INLINE
250 # ifdef __cplusplus
251 # define U_INLINE inline
252 # else
253 # define U_INLINE __inline
254 # endif
255 #endif
256
257 #if defined(_MSC_VER) && defined(_M_IX86)
258 #define U_ALIGN_CODE(val) __asm align val
259 #else
260 #define U_ALIGN_CODE(val)
261 #endif
262
263
264 /*===========================================================================*/
265 /* Programs used by ICU code */
266 /*===========================================================================*/
267
268 #ifndef U_MAKE
269 #define U_MAKE "nmake"
270 #define U_MAKE_IS_NMAKE 1
271 #endif
272
273 #endif