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)
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