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