]> git.buserror.net Git - polintos/scott/priv.git/blob - include/c++/stl/stl/config/_dm.h
Add STLport 5.1.4
[polintos/scott/priv.git] / include / c++ / stl / stl / config / _dm.h
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