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