/* ******************************************************************************* * * Copyright (C) 1997-2001, International Business Machines * Corporation and others. All Rights Reserved. * ******************************************************************************* * * FILE NAME : platform.h * * Date Name Description * 05/13/98 nos Creation (content moved here from ptypes.h). * 03/02/99 stephen Added AS400 support. * 03/30/99 stephen Added Linux support. * 04/13/99 stephen Reworked for autoconf. ******************************************************************************* */ /* Define the platform we're on. */ #ifndef @platform@ #define @platform@ #endif /* Define whether inttypes.h is available */ #ifndef U_HAVE_INTTYPES_H #define U_HAVE_INTTYPES_H @U_HAVE_INTTYPES_H@ #endif /* * Define what support for C++ streams is available. * If U_IOSTREAM_SOURCE is set to 199711, then is available * (1997711 is the date the ISO/IEC C++ FDIS was published), and then * one should qualify streams using the std namespace in ICU header * files. * If U_IOSTREAM_SOURCE is set to 198506, then is * available instead (198506 is the date when Stroustrup published * "An Extensible I/O Facility for C++" at the summer USENIX conference). * If U_IOSTREAM_SOURCE is 0, then C++ streams are not available and * support for them will be silently suppressed in ICU. * */ #ifndef U_IOSTREAM_SOURCE #define U_IOSTREAM_SOURCE @U_IOSTREAM_SOURCE@ #endif /* Determines whether specific types are available */ #ifndef U_HAVE_INT8_T #define U_HAVE_INT8_T @HAVE_INT8_T@ #endif #ifndef U_HAVE_UINT8_T #define U_HAVE_UINT8_T @HAVE_UINT8_T@ #endif #ifndef U_HAVE_INT16_T #define U_HAVE_INT16_T @HAVE_INT16_T@ #endif #ifndef U_HAVE_UINT16_T #define U_HAVE_UINT16_T @HAVE_UINT16_T@ #endif #ifndef U_HAVE_INT32_T #define U_HAVE_INT32_T @HAVE_INT32_T@ #endif #ifndef U_HAVE_UINT32_T #define U_HAVE_UINT32_T @HAVE_UINT32_T@ #endif #ifndef U_HAVE_INT64_T #define U_HAVE_INT64_T @HAVE_INT64_T@ #endif #ifndef U_HAVE_UINT64_T #define U_HAVE_UINT64_T @HAVE_UINT64_T@ #endif /* Define whether namespace is supported */ #ifndef U_HAVE_NAMESPACE #define U_HAVE_NAMESPACE @U_HAVE_NAMESPACE@ #endif /* Determines the endianness of the platform */ #define U_IS_BIG_ENDIAN @U_IS_BIG_ENDIAN@ /* 1 or 0 to enable or disable threads. If undefined, default is: enable threads. */ #define ICU_USE_THREADS @ICU_USE_THREADS@ /* Determine whether to disable renaming or not. This overrides the setting in umachine.h which is for all platforms. */ #ifndef U_DISABLE_RENAMING #define U_DISABLE_RENAMING @U_DISABLE_RENAMING@ #endif /* Determine whether to disable renaming or not. This overrides the setting in umachine.h which is for all platforms. */ #ifndef U_OVERRIDE_CXX_ALLOCATION #define U_OVERRIDE_CXX_ALLOCATION @U_OVERRIDE_CXX_ALLOCATION@ #endif /* Define the library suffix in a C syntax. */ #define U_HAVE_LIB_SUFFIX @U_HAVE_LIB_SUFFIX@ #define U_LIB_SUFFIX_C_NAME @ICULIBSUFFIXCNAME@ #define U_LIB_SUFFIX_C_NAME_STRING "@ICULIBSUFFIXCNAME@" /*===========================================================================*/ /* Platform/Language determination */ /*===========================================================================*/ #ifdef macintosh #ifdef XP_MAC #undef XP_MAC #endif #define XP_MAC 1 #include #endif /*===========================================================================*/ /* Generic data types */ /*===========================================================================*/ /* If your platform does not have the header, you may need to edit the typedefs below. */ #if U_HAVE_INTTYPES_H /* autoconf 2.13 sometimes can't properly find the data types in */ /* os/390 needs , but it doesn't have int8_t, and it sometimes */ /* doesn't have uint8_t depending on the OS version. */ /* So we have this work around. */ #ifdef OS390 /* The features header is needed to get (u)int64_t sometimes. */ #include #if ! U_HAVE_INT8_T typedef signed char int8_t; #endif #if !defined(__uint8_t) #define __uint8_t 1 typedef unsigned char uint8_t; #endif #endif /* OS390 */ #include #else /* U_HAVE_INTTYPES_H */ #include #if STDC_HEADERS #include #include #endif /* STDC_HEADERS */ #if ! U_HAVE_INT8_T typedef signed char int8_t; #endif #if ! U_HAVE_UINT8_T typedef unsigned char uint8_t; #endif #if ! U_HAVE_INT16_T typedef signed short int16_t; #endif #if ! U_HAVE_UINT16_T typedef unsigned short uint16_t; #endif #if ! U_HAVE_INT32_T # if defined(_LP64) typedef signed int int32_t; # else typedef signed long int32_t; # endif #endif #if ! U_HAVE_UINT32_T # if defined(_LP64) typedef unsigned int uint32_t; # else typedef unsigned long uint32_t; # endif #endif #if ! U_HAVE_INT64_T typedef signed long long int64_t; /* else we may not have a 64-bit type */ #endif #if ! U_HAVE_UINT64_T typedef unsigned long long uint64_t; /* else we may not have a 64-bit type */ #endif #endif /*===========================================================================*/ /* Character data types */ /*===========================================================================*/ #ifdef OS390 # define U_CHARSET_FAMILY 1 #endif /*===========================================================================*/ /* Information about wchar support */ /*===========================================================================*/ #define U_HAVE_WCHAR_H @U_HAVE_WCHAR_H@ #define U_SIZEOF_WCHAR_T @U_SIZEOF_WCHAR_T@ #define U_HAVE_WCSCPY @U_HAVE_WCSCPY@ /*===========================================================================*/ /* Information about POSIX support */ /*===========================================================================*/ #define U_HAVE_NL_LANGINFO @U_HAVE_NL_LANGINFO@ #define U_HAVE_NL_LANGINFO_CODESET @U_HAVE_NL_LANGINFO_CODESET@ #define U_NL_LANGINFO_CODESET @U_NL_LANGINFO_CODESET@ #define U_TZSET @U_TZSET@ #define U_HAVE_TIMEZONE @U_HAVE_TIMEZONE@ #if U_HAVE_TIMEZONE # define U_TIMEZONE @U_TIMEZONE@ #endif #define U_TZNAME @U_TZNAME@ #define U_HAVE_MMAP @HAVE_MMAP@ #define U_HAVE_POPEN @U_HAVE_POPEN@ /*===========================================================================*/ /* Symbol import-export control */ /*===========================================================================*/ #define U_EXPORT /* U_CALLCONV is releated to U_EXPORT2 */ #define U_EXPORT2 /* cygwin needs to export/import data */ #ifdef U_CYGWIN #define U_IMPORT __declspec(dllimport) #else #define U_IMPORT #endif /*===========================================================================*/ /* Code alignment and C function inlining */ /*===========================================================================*/ #ifndef U_INLINE #define U_INLINE @U_INLINE@ #endif #define U_ALIGN_CODE(n) /*===========================================================================*/ /* Programs used by ICU code */ /*===========================================================================*/ #define U_MAKE "@U_MAKE@"