ppalmos.h revision 51cfa1a9a96cad34675a6415fe86dfdf3f525bb6
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
104typedef signed char int8_t;
105#endif
106
107#if ! U_HAVE_UINT8_T
108typedef unsigned char uint8_t;
109#endif
110
111#if ! U_HAVE_INT16_T
112typedef signed short int16_t;
113#endif
114
115#if ! U_HAVE_UINT16_T
116typedef unsigned short uint16_t;
117#endif
118
119#if ! U_HAVE_INT32_T
120typedef signed int int32_t;
121#endif
122
123#if ! U_HAVE_UINT32_T
124typedef 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
274