1 /* 2 * Copyright (c) 1999 3 * Boris Fomitchev 4 * 5 * This material is provided "as is", with absolutely no warranty expressed 6 * or implied. Any use is at your own risk. 7 * 8 * Permission to use or copy this software for any purpose is hereby granted 9 * without fee, provided the above notices are retained on all copies. 10 * Permission to modify the code and to distribute modified code is granted, 11 * provided the above notices are retained, and a notice that the code was 12 * modified is included with the above copyright notice. 13 * 14 */ 15 16 /* 17 * STLport configuration file 18 * It is internal STLport header - DO NOT include it directly 19 * Purpose of this file : to define STLport settings that depend on 20 * compiler flags or can be otherwise missed 21 * 22 */ 23 24 #ifndef _STLP_CONFIX_H 25 #define _STLP_CONFIX_H 26 27 /* If, by any chance, C compiler gets there, try to help it to pass smoothly */ 28 #if ! defined (__cplusplus) && ! defined (_STLP_HAS_NO_NAMESPACES) 29 # define _STLP_HAS_NO_NAMESPACES 30 #endif 31 32 #if defined (__MINGW32__) 33 # define _STLP_NO_DRAND48 34 #endif 35 36 /* Modena C++ library */ 37 #if defined (__MWERKS__) && __MWERKS__ <= 0x2303 || (defined (__KCC) && __KCC_VERSION < 3400) 38 # include <mcompile.h> 39 # define _STLP_USE_MSIPL 1 40 # if defined (__KCC) || (defined(__MSL_CPP__) && \ 41 ( (__MSL_CPP__ >= 0x5000 && defined( _MSL_NO_MESSAGE_FACET )) || \ 42 (__MSL_CPP__ < 0x5000 && defined( MSIPL_NL_TYPES )))) 43 # define _STLP_NO_NATIVE_MESSAGE_FACET 1 44 # endif 45 #endif 46 47 /* common switches for EDG front-end */ 48 /* __EDG_SWITCHES do not seem to be an official EDG macro. 49 * We keep it for historical reason. */ 50 #if defined (__EDG_SWITCHES) 51 # if !(defined(_TYPENAME) || defined (_TYPENAME_IS_KEYWORD)) 52 # undef _STLP_NEED_TYPENAME 53 # define _STLP_NEED_TYPENAME 1 54 # endif 55 # ifndef _WCHAR_T_IS_KEYWORD 56 # undef _STLP_NO_WCHAR_T 57 # define _STLP_NO_WCHAR_T 1 58 # endif 59 # ifndef _PARTIAL_SPECIALIZATION_OF_CLASS_TEMPLATES 60 # undef _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 61 # define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1 62 # endif 63 # ifndef _MEMBER_TEMPLATES 64 # undef _STLP_NO_MEMBER_TEMPLATES 65 # define _STLP_NO_MEMBER_TEMPLATES 1 66 # undef _STLP_NO_MEMBER_TEMPLATE_CLASSES 67 # define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1 68 # endif 69 # ifndef _MEMBER_TEMPLATE_KEYWORD 70 # undef _STLP_NO_MEMBER_TEMPLATE_KEYWORD 71 # define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1 72 # endif 73 # if !defined (__EXCEPTIONS) && ! defined (_EXCEPTIONS) 74 # undef _STLP_HAS_NO_EXCEPTIONS 75 # define _STLP_HAS_NO_EXCEPTIONS 76 # endif 77 # undef __EDG_SWITCHES 78 #endif /* EDG */ 79 80 /* __EDG_VERSION__ is an official EDG macro, compilers based 81 * on EDG have to define it. */ 82 #if defined (__EDG_VERSION__) 83 # if (__EDG_VERSION__ >= 244) && !defined (_STLP_HAS_INCLUDE_NEXT) && !defined(__ANDROID__) 84 # define _STLP_HAS_INCLUDE_NEXT 85 # endif 86 # if (__EDG_VERSION__ <= 240) && !defined (_STLP_DONT_RETURN_VOID) 87 # define _STLP_DONT_RETURN_VOID 88 # endif 89 # if !defined (__EXCEPTIONS) && !defined (_STLP_HAS_NO_EXCEPTIONS) 90 # define _STLP_HAS_NO_EXCEPTIONS 91 # endif 92 # if !defined (__NO_LONG_LONG) && !defined (_STLP_LONG_LONG) 93 # define _STLP_LONG_LONG long long 94 # endif 95 #endif 96 97 #endif 98