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