Home | History | Annotate | Download | only in unicode
      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
    274