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