00001 /* 00002 ****************************************************************************** 00003 * 00004 * Copyright (C) 1997-2001, 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 /* Define whether inttypes.h is available */ 00025 #define U_HAVE_INTTYPES_H 0 00026 00027 /* 00028 * Define what support for C++ streams is available. 00029 * If U_IOSTREAM_SOURCE is set to 199711, then <iostream> is available 00030 * (1997711 is the date the ISO/IEC C++ FDIS was published), and then 00031 * one should qualify streams using the std namespace in ICU header 00032 * files. 00033 * If U_IOSTREAM_SOURCE is set to 198506, then <iostream.h> is 00034 * available instead (198506 is the date when Stroustrup published 00035 * "An Extensible I/O Facility for C++" at the summer USENIX conference). 00036 * If U_IOSTREAM_SOURCE is 0, then C++ streams are not available and 00037 * support for them will be silently suppressed in ICU. 00038 * 00039 */ 00040 00041 #ifndef U_IOSTREAM_SOURCE 00042 #define U_IOSTREAM_SOURCE 199711 00043 #endif 00044 00045 /* Determines whether specific types are available */ 00046 #define HAVE_INT8_T 0 00047 #define HAVE_UINT8_T 0 00048 #define HAVE_INT16_T 0 00049 #define HAVE_UINT16_T 0 00050 #define HAVE_INT32_T 0 00051 #define HAVE_UINT32_T 0 00052 #define HAVE_BOOL_T 0 00053 00054 /* Determines the endianness of the platform */ 00055 #define U_IS_BIG_ENDIAN 0 00056 00057 /*===========================================================================*/ 00058 /* Generic data types */ 00059 /*===========================================================================*/ 00060 00061 /* If your platform does not have the <inttypes.h> header, you may 00062 need to edit the typedefs below. */ 00063 #if U_HAVE_INTTYPES_H 00064 #include <inttypes.h> 00065 #else 00066 00067 #if ! HAVE_INT8_T 00068 typedef signed char int8_t; 00069 #endif 00070 00071 #if ! HAVE_UINT8_T 00072 typedef unsigned char uint8_t; 00073 #endif 00074 00075 #if ! HAVE_INT16_T 00076 typedef signed short int16_t; 00077 #endif 00078 00079 #if ! HAVE_UINT16_T 00080 typedef unsigned short uint16_t; 00081 #endif 00082 00083 #if ! HAVE_INT32_T 00084 # if defined(_LP64) 00085 typedef signed int int32_t; 00086 # else 00087 typedef signed long int32_t; 00088 # endif 00089 #endif 00090 00091 #if ! HAVE_UINT32_T 00092 # if defined(_LP64) 00093 typedef unsigned int uint32_t; 00094 # else 00095 typedef unsigned long uint32_t; 00096 # endif 00097 #endif 00098 00099 #endif 00100 00101 /*===========================================================================*/ 00102 /* Character data types */ 00103 /*===========================================================================*/ 00104 00105 #define U_SIZEOF_WCHAR_T 2 00106 00107 /*===========================================================================*/ 00108 /* Do we have wcscpy and other similar functions */ 00109 /*===========================================================================*/ 00110 00111 #define U_HAVE_WCSCPY 1 00112 00113 /*===========================================================================*/ 00114 /* Information about POSIX support */ 00115 /*===========================================================================*/ 00116 00117 #define U_TZSET _tzset 00118 #define U_TIMEZONE _timezone 00119 #define U_TZNAME _tzname 00120 00121 /*===========================================================================*/ 00122 /* Symbol import-export control */ 00123 /*===========================================================================*/ 00124 00125 #define U_EXPORT __declspec(dllexport) 00126 #define U_EXPORT2 00127 #define U_IMPORT __declspec(dllimport) 00128 00129 /*===========================================================================*/ 00130 /* Code alignment and C function inlining */ 00131 /*===========================================================================*/ 00132 00133 #define U_INLINE __inline 00134 00135 #ifdef _MSC_VER 00136 #define U_ALIGN_CODE(val) __asm align val 00137 #else 00138 #define U_ALIGN_CODE(val) 00139 #endif 00140 00141 00142 /*===========================================================================*/ 00143 /* Programs used by ICU code */ 00144 /*===========================================================================*/ 00145 00146 #define U_MAKE "nmake"