williamr@2: williamr@2: // STLport configuration file williamr@2: // It is internal STLport header - DO NOT include it directly williamr@2: williamr@2: #define _STLP_COMPILER "Comeau" williamr@2: williamr@2: #include williamr@2: williamr@2: #define _STLP_UINT32_T unsigned int williamr@2: williamr@2: #define _STLP_HAS_NO_NEW_C_HEADERS williamr@2: // #define _STLP_VENDOR_GLOBAL_EXCEPT_STD williamr@2: #define _STLP_LONG_LONG long long williamr@2: williamr@2: williamr@2: // williamr@2: // ADDITIONS FOR COMEAU C++, made by Comeau Computing. williamr@2: // We can be reached through comeau@comeaucomputing.com williamr@2: // You shouldn't need to change anything below here for Comeau C++. williamr@2: // If you do, please tell us at comeau@comeaucomputing.com williamr@2: // williamr@2: // Changes made here, AND THROUGH ALL FILES, based upon the __COMO__ macro williamr@2: // (and SIMILAR NAMES INVOLVING COMO).... no doubt some of this will williamr@2: // change as SGI integrates the changes into their code base since williamr@2: // some changes are not really Comeau C++ specific, but required to williamr@2: // make the SGI code compliant with Standard C++). williamr@2: // williamr@2: // Testing was done with Comeau C++ 4.2.44 and 4.2.45.2. Changes were made for williamr@2: // both Comeau relaxed mode and Comeau strict mode, especially for end user code williamr@2: // (that is, some of the .cxx files cannot compile in strict mode, because they williamr@2: // contain extensions to Standard C++, however their object code forms can williamr@2: // be used once compiled in relaxed mode, even if the end user code uses williamr@2: // strict mode). williamr@2: // williamr@2: // These changes may also work for some earlier versions of Comeau C++, williamr@2: // though we have not tested them. williamr@2: // williamr@2: // Actual mods made under RedHat 6.1 LINUX, should be ok with SuSE too and williamr@2: // other LINUX's, and older Caldera LINUX, Solaris/SPARC, SunOS, SCO UNIX, williamr@2: // and NetBSD. Other platforms may be added. Comeau will also perform williamr@2: // custom ports for you. williamr@2: // williamr@2: // Check libcomo details at http://www.comeaucomputing.com/libcomo and williamr@2: // http://www.comeaucomputing.com williamr@2: // williamr@2: // History of Comeau changes (this is rough, as work was often going on in parallel): williamr@2: // BETA1 July 14, 2000, Initial port for RedHat 6.1 INTEL/ELF williamr@2: // BETA2 Aug 4, 2000, Stronger RedHat support williamr@2: // Support for Comeau strict mode for end user code williamr@2: // BETA3 Aug 22, 2000, Support for other LINUX/INTEL/ELF's, including older ones williamr@2: // BETA4 Sept 2, 2000, Initial support for SCO UNIX + other UNIX x86 SVR3's williamr@2: // Stronger support for end user Comeau strict mode williamr@2: // BETA5 Oct 5, 2000, Initial support for Solaris/SPARC williamr@2: // More SCO support (though still incomplete) williamr@2: // BETA6 Feb 5, 2001, Minor mods to accomodate Comeau C++ 4.2.45.1 williamr@2: // BETA7 Mar 13, 2001, Verified with Comeau C++ 4.2.45.2 williamr@2: // Minor NetBSD support williamr@2: // BETA8 Apr 1. 2001, Initial support for SunOS/SPARC williamr@2: // BETA9 Apr 7, 2001, Stronger SCO support + other UNIX x86 SVR3's williamr@2: // Mods for an fpos_t problem for some LINUXes williamr@2: // Mods since Destroy did not work in strict mode williamr@2: // BETA10 Apr 12. 2001, Stronger NetBSD support williamr@2: // williamr@2: // PLANNED: williamr@2: // BETAx TBA TBA, 2001, NetBSD, UNIXWARE, and Windows support expected williamr@2: // williamr@2: williamr@2: williamr@2: #ifdef __linux__ williamr@2: williamr@2: # define _STLP_NO_NATIVE_MBSTATE_T 1 williamr@2: # define _STLP_NO_NATIVE_WIDE_FUNCTIONS 1 williamr@2: # define _STLP_NO_NATIVE_WIDE_STREAMS 1 williamr@2: # define _STLP_NO_LONG_DOUBLE 1 williamr@2: williamr@2: // Comeau C++ under LINUX/INTEL/ELF williamr@2: // Preprocess away "long long" routines for now, even in relaxed mode williamr@2: # define __wcstoull_internal_defined 1 williamr@2: # define __wcstoll_internal_defined 1 williamr@2: williamr@2: #endif /* __COMO__ under __linux__ */ williamr@2: williamr@2: #ifdef __USING_x86SVR3x_WITH_COMO /* SCO et al */ williamr@2: /* UNIX 386+ SVR3 mods made with __USING_x86SVR3x_WITH_COMO williamr@2: in other sources, not here */ williamr@2: # define atan2l atan2 williamr@2: # define cosl cos williamr@2: # define sinl sin williamr@2: # define sqrtl sqrt williamr@2: # include williamr@2: inline long double expl(long double arg) { return exp(arg); } williamr@2: inline long double logl(long double arg) { return log(arg); } williamr@2: # define log10l log10 williamr@2: williamr@2: # define sinhl sinh williamr@2: # define coshl cosh williamr@2: # define fabsl fabs williamr@2: namespace std { williamr@2: inline int min(int a, int b) { return a>b ? b : a; } williamr@2: } williamr@2: #endif williamr@2: williamr@2: #ifdef sun williamr@2: // Comeau C++ under Solaris/SPARC or SunOS williamr@2: williamr@2: #ifdef solarissparc williamr@2: #define __USING_SOLARIS_SPARC_WITH_COMO /* show this in the source when grep'ing for COMO */ williamr@2: // Note comowchar.h for Solaris/SPARC wchar stuff williamr@2: williamr@2: #include williamr@2: # define sinf sin williamr@2: # define sinl sin williamr@2: # define sinhf sinh williamr@2: # define sinhl sinh williamr@2: # define cosf cos williamr@2: # define cosl cos williamr@2: # define coshf cosh williamr@2: # define coshl cosh williamr@2: # define atan2l atan2 williamr@2: # define atan2f atan2 williamr@2: inline float logf(float arg) { return log(arg); } williamr@2: inline long double logl(long double arg) { return log(arg); } williamr@2: # define log10f log10 williamr@2: # define log10l log10 williamr@2: # define expf exp williamr@2: inline long double expl(long double arg) { return exp(arg); } williamr@2: # define sqrtf sqrt williamr@2: # define sqrtl sqrt williamr@2: # define fabsf fabs williamr@2: # define fabsl fabs williamr@2: #else williamr@2: #define __USING_SUNOS_WITH_COMO williamr@2: williamr@2: #define __unix 1 williamr@2: #define __EXTENSIONS__ /* This might create undue noise somewhere */ williamr@2: #endif williamr@2: #endif /* sun */ williamr@2: williamr@2: #if defined(__NetBSD__) williamr@2: // From non-como #ifdef __GNUC__ above williamr@2: #undef _STLP_NO_FUNCTION_PTR_IN_CLASS_TEMPLATE williamr@2: #define __unix 1 williamr@2: williamr@2: #include williamr@2: // Some joker #define'd __END_DECLS as }; williamr@2: #undef __END_DECLS williamr@2: #define __END_DECLS } williamr@2: williamr@2: // prob williamr@2: #include williamr@2: #undef __RENAME williamr@2: #define __RENAME(x) williamr@2: williamr@2: #define wchar_t __COMO_WCHAR_T williamr@2: #include williamr@2: #undef wchar_t williamr@2: williamr@2: #include williamr@2: # ifdef BORIS_DISABLED williamr@2: # define atan2l atan2 williamr@2: # define cosl cos williamr@2: # define sinl sin williamr@2: # define sqrtl sqrt williamr@2: inline long double expl(long double arg) { return exp(arg); } williamr@2: inline long double logl(long double arg) { return log(arg); } williamr@2: # define log10l log10 williamr@2: # define sinhl sinh williamr@2: # define coshl cosh williamr@2: # define fabsl fabs williamr@2: # endif williamr@2: #endif /* __NetBSD__ under __COMO__ */ williamr@2: williamr@2: // Shouldn't need to change anything below here for Comeau C++ williamr@2: // If so, tell us at comeau@comeaucomputing.com williamr@2: williamr@2: #define _STLP_NO_DRAND48 williamr@2: williamr@2: #define _STLP_PARTIAL_SPECIALIZATION_SYNTAX williamr@2: #define _STLP_NO_USING_CLAUSE_IN_CLASS williamr@2: williamr@2: #if __COMO_VERSION__ < 4300 williamr@2: #if __COMO_VERSION__ >= 4245 williamr@2: #define _STLP_NO_EXCEPTION_HEADER /**/ williamr@2: // Is this needed? williamr@2: # include williamr@2: #endif williamr@2: #define _STLP_NO_BAD_ALLOC /**/ williamr@2: #define _STLP_USE_AUTO_PTR_CONVERSIONS /**/ williamr@2: #endif williamr@2: williamr@2: // this one is true only with MS williamr@2: # if defined (_MSC_VER) williamr@2: # define _STLP_WCHAR_T_IS_USHORT 1 williamr@2: # if _MSC_VER <= 1200 williamr@2: # define _STLP_VENDOR_GLOBAL_CSTD williamr@2: # endif williamr@2: # if _MSC_VER < 1100 williamr@2: # define _STLP_NO_BAD_ALLOC 1 williamr@2: # define _STLP_NO_EXCEPTION_HEADER 1 williamr@2: # define _STLP_NO_NEW_NEW_HEADER 1 williamr@2: # define _STLP_USE_NO_IOSTREAMS 1 williamr@2: # endif williamr@2: # endif williamr@2: williamr@2: // # define __EDG_SWITCHES williamr@2: williamr@2: