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