1 // STLport configuration file for Digital Mars C++
2 
3 #define _STLP_COMPILER __DMC_VERSION_STRING__
4 
5 #if (__DMC__ < 0x849)
6 #  error "Digital Mars C++ compilers before version 8.49 are not supported!"
7 #endif
8 
9 /* DMC goes too far in template instanciation and tries to fully instanciate
10  * slist<pair<const int, string> > for instance. The generation of assignment
11  * operator fails of course so we are force to use mutable key for this compiler.
12  */
13 #define _STLP_NO_CONST_IN_PAIR
14 #define _STLP_DONT_SUP_DFLT_PARAM
15 
16 #ifndef _CPPUNWIND
17 #  define _STLP_NO_EXCEPTIONS
18 #endif
19 
20 #ifndef _CPPRTTI
21 #  define _STLP_NO_RTTI
22 #endif
23 
24 #define _STLP_VENDOR_GLOBAL_CSTD
25 
26 //DMC prefer enum to real static const variable because it do not consider
27 //static const as const enough to be used in switch declaration...
28 #define _STLP_STATIC_CONST_INIT_BUG
29 
30 #if !defined (_WIN32)
31 // it's not fully supported on non-Win32 platforms
32 #  define _STLP_NO_NATIVE_WIDE_FUNCTIONS
33 #endif
34 
35 /* _STLP_NO_OWN_NAMESPACE is defined because Digital Mars' linker and libarian
36    appear to have problems with STLport namespaces. Summary of the issues:
37 
38    STATIC: Digital Mars' librarian (lib.exe) may fail with "len <= IDMAX" error
39    if _STLP_DEBUG is defined.  This is because Digital Mars' librarian uses
40    Microsoft OMF format, which limits identifier length to about 512 bytes.
41    With STLport namespaces, some identifiers such as Category_Map in
42    src/locale_catalog.cpp may exceed the maximum OMF identifier length.
43 
44    DYNAMIC: Export issues with cin, cout, cerr, clog in src/iostream.cpp.
45    Exports in Digital Mars 'def' file must match mangled names in iostream.cpp.
46    With STLport namespaces, the mangled names in the intermediate files no
47    longer match these pre-defined exports. To use STLport dynamic libraries
48    and STLport namespaces with Digital Mars, the pre-defined exports in
49    src/iostream.cpp and the related Digital Mars 'def' files would need to be
50    revised. */
51 #define _STLP_NO_OWN_NAMESPACE 1
52 
53 // select threads strategy
54 #if defined (_MT) && !defined (_STLP_NO_THREADS)
55 #  define _STLP_THREADS
56 #endif
57 
58 #ifndef _BOOL_DEFINED
59 #  define _STLP_NO_BOOL
60 #else
61 #  define _STLP_DONT_USE_BOOL_TYPEDEF
62 #endif
63 
64 #if _INTEGRAL_MAX_BITS >= 64
65 #  define _STLP_LONG_LONG long long
66 #endif
67 
68 #define _STLP_MARK_PARAMETER_AS_UNUSED(X)
69 #define _STLP_DONT_USE_PRIV_NAMESPACE
70 #define _STLP_PRIV
71 #define _STLP_THROW_RETURN_BUG
72 
73 #if !defined (_DLL)
74 #  undef _STLP_NO_UNEXPECTED_EXCEPT_SUPPORT
75 #endif
76 
77 #if (__DMC__ < 0x849)
78 #  define _STLP_NO_BAD_ALLOC
79 #endif
80 
81 #define _STLP_USE_ABBREVS
82 #define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER
83 
84 #define _STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND
85 #define _STLP_EXPORT_DECLSPEC __declspec(dllexport)
86 #define _STLP_IMPORT_DECLSPEC __declspec(dllimport)
87 
88 #define _STLP_CLASS_EXPORT_DECLSPEC __declspec(dllexport)
89 #define _STLP_CLASS_IMPORT_DECLSPEC __declspec(dllimport)
90 
91 #define _STLP_NEED_ADDITIONAL_STATIC_DECLSPEC
92 
93 //#define _STLP_IMPORT_TEMPLATE_KEYWORD __declspec(dllimport)
94 //#define _STLP_EXPORT_TEMPLATE_KEYWORD __declspec(dllexport)
95 
96 #if defined (_WINDLL)
97 #  define _STLP_DLL
98 #endif
99 #if defined (_DLL)
100 #  define _STLP_RUNTIME_DLL
101 #endif
102 #include <stl/config/_detect_dll_or_lib.h>
103 #undef _STLP_RUNTIME_DLL
104 #undef _STLP_DLL
105 
106 #if defined (_STLP_USE_DYNAMIC_LIB)
107 #  define _STLP_USE_DECLSPEC 1
108 #  if defined (__BUILDING_STLPORT)
109 #    define _STLP_CALL __export
110 #  else
111 #    define _STLP_CALL
112 #  endif
113 #else
114 #  define _STLP_CALL
115 #endif
116 
117 #include <stl/config/_auto_link.h>
118 
119 #undef __SC__
120 
121 #include <stl/config/_feedback.h>
122