19720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// STLport configuration file for Digital Mars C++ 29720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 3e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#define _STLP_COMPILER __DMC_VERSION_STRING__ 49720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 5e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if (__DMC__ < 0x849) 6e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# error "Digital Mars C++ compilers before version 8.49 are not supported!" 79720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif 89720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 9e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott/* DMC goes too far in template instanciation and tries to fully instanciate 10e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * slist<pair<const int, string> > for instance. The generation of assignment 11e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * operator fails of course so we are force to use mutable key for this compiler. 12e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott */ 13e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#define _STLP_NO_CONST_IN_PAIR 14e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#define _STLP_DONT_SUP_DFLT_PARAM 159720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 169720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#ifndef _CPPUNWIND 179720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# define _STLP_NO_EXCEPTIONS 189720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif 19e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 20e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#ifndef _CPPRTTI 21e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# define _STLP_NO_RTTI 22e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif 23e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 249720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#define _STLP_VENDOR_GLOBAL_CSTD 259720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 269720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block//DMC prefer enum to real static const variable because it do not consider 279720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block//static const as const enough to be used in switch declaration... 289720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#define _STLP_STATIC_CONST_INIT_BUG 299720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 309720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#if !defined (_WIN32) 319720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// it's not fully supported on non-Win32 platforms 329720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# define _STLP_NO_NATIVE_WIDE_FUNCTIONS 339720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif 349720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 359720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block/* _STLP_NO_OWN_NAMESPACE is defined because Digital Mars' linker and libarian 369720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block appear to have problems with STLport namespaces. Summary of the issues: 379720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 389720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block STATIC: Digital Mars' librarian (lib.exe) may fail with "len <= IDMAX" error 399720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block if _STLP_DEBUG is defined. This is because Digital Mars' librarian uses 409720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block Microsoft OMF format, which limits identifier length to about 512 bytes. 419720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block With STLport namespaces, some identifiers such as Category_Map in 429720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block src/locale_catalog.cpp may exceed the maximum OMF identifier length. 439720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 449720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block DYNAMIC: Export issues with cin, cout, cerr, clog in src/iostream.cpp. 459720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block Exports in Digital Mars 'def' file must match mangled names in iostream.cpp. 469720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block With STLport namespaces, the mangled names in the intermediate files no 479720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block longer match these pre-defined exports. To use STLport dynamic libraries 489720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block and STLport namespaces with Digital Mars, the pre-defined exports in 499720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block src/iostream.cpp and the related Digital Mars 'def' files would need to be 509720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block revised. */ 519720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#define _STLP_NO_OWN_NAMESPACE 1 529720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 539720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// select threads strategy 54e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if defined (_MT) && !defined (_STLP_NO_THREADS) 55e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# define _STLP_THREADS 569720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif 579720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 589720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#ifndef _BOOL_DEFINED 599720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# define _STLP_NO_BOOL 609720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#else 619720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# define _STLP_DONT_USE_BOOL_TYPEDEF 629720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif 639720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 649720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#if _INTEGRAL_MAX_BITS >= 64 659720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# define _STLP_LONG_LONG long long 669720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif 679720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 68e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#define _STLP_MARK_PARAMETER_AS_UNUSED(X) 699720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#define _STLP_DONT_USE_PRIV_NAMESPACE 70e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#define _STLP_PRIV 719720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#define _STLP_THROW_RETURN_BUG 729720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 739720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#if !defined (_DLL) 749720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# undef _STLP_NO_UNEXPECTED_EXCEPT_SUPPORT 759720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif 769720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 77e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if (__DMC__ < 0x849) 78e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# define _STLP_NO_BAD_ALLOC 79e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif 80e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 819720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#define _STLP_USE_ABBREVS 829720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER 839720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 84e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#define _STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND 859720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#define _STLP_EXPORT_DECLSPEC __declspec(dllexport) 869720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#define _STLP_IMPORT_DECLSPEC __declspec(dllimport) 879720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 889720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#define _STLP_CLASS_EXPORT_DECLSPEC __declspec(dllexport) 899720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#define _STLP_CLASS_IMPORT_DECLSPEC __declspec(dllimport) 909720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 91e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#define _STLP_NEED_ADDITIONAL_STATIC_DECLSPEC 92e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 93e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott//#define _STLP_IMPORT_TEMPLATE_KEYWORD __declspec(dllimport) 94e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott//#define _STLP_EXPORT_TEMPLATE_KEYWORD __declspec(dllexport) 959720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 969720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#if defined (_WINDLL) 979720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# define _STLP_DLL 989720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif 999720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#if defined (_DLL) 1009720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# define _STLP_RUNTIME_DLL 1019720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif 1029720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#include <stl/config/_detect_dll_or_lib.h> 1039720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#undef _STLP_RUNTIME_DLL 1049720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#undef _STLP_DLL 1059720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 1069720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#if defined (_STLP_USE_DYNAMIC_LIB) 1079720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# define _STLP_USE_DECLSPEC 1 1089720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# if defined (__BUILDING_STLPORT) 1099720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# define _STLP_CALL __export 1109720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# else 1119720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# define _STLP_CALL 1129720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# endif 1139720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#else 1149720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# define _STLP_CALL 1159720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif 1169720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 1179720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#include <stl/config/_auto_link.h> 1189720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 119e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#undef __SC__ 1209720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 121e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#include <stl/config/_feedback.h> 122