Home | History | Annotate | Download | only in config
      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