williamr@2: // STLport configuration file williamr@2: // It is internal STLport header - DO NOT include it directly williamr@2: williamr@2: # ifndef _STLP_NO_OWN_IOSTREAMS williamr@2: # define _STLP_NO_OWN_IOSTREAMS williamr@2: # endif williamr@2: williamr@2: # define _STLP_NO_RELOPS_NAMESPACE williamr@2: # define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX williamr@2: williamr@2: # define _STLP_HAS_SPECIFIC_PROLOG_EPILOG williamr@2: # define _STLP_DONT_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS williamr@2: # define _STLP_USE_OLD_HP_ITERATOR_QUERIES williamr@2: williamr@2: // On QNX, headers are supposed to be found in /usr/include, williamr@2: // so default "../include" should work. williamr@2: # ifndef __QNX__ williamr@2: # define _STLP_NATIVE_INCLUDE_PATH ../h williamr@2: # endif williamr@2: williamr@2: // Inline replacements for locking calls under Watcom williamr@2: // Define _STLP_NO_WATCOM_INLINE_INTERLOCK to keep using williamr@2: // standard WIN32 calls williamr@2: // Define _STL_MULTIPROCESSOR to enable lock williamr@2: #if !defined(_STLP_NO_WATCOM_INLINE_INTERLOCK) williamr@2: williamr@2: long __stl_InterlockedIncrement( long *var ); williamr@2: long __stl_InterlockedDecrement( long *var ); williamr@2: williamr@2: #ifdef _STL_MULTIPROCESSOR williamr@2: // Multiple Processors, add lock prefix williamr@2: #pragma aux __stl_InterlockedIncrement parm [ ecx ] = \ williamr@2: ".586" \ williamr@2: "mov eax, 1" \ williamr@2: "lock xadd [ecx], eax" \ williamr@2: "inc eax" \ williamr@2: value [eax]; williamr@2: williamr@2: williamr@2: #pragma aux __stl_InterlockedDecrement parm [ ecx ] = \ williamr@2: ".586" \ williamr@2: "mov eax, 0FFFFFFFFh" \ williamr@2: "lock xadd [ecx], eax" \ williamr@2: "dec eax" \ williamr@2: value [eax]; williamr@2: #else williamr@2: // Single Processor, lock prefix not needed williamr@2: #pragma aux __stl_InterlockedIncrement parm [ ecx ] = \ williamr@2: ".586" \ williamr@2: "mov eax, 1" \ williamr@2: "xadd [ecx], eax" \ williamr@2: "inc eax" \ williamr@2: value [eax]; williamr@2: williamr@2: #pragma aux __stl_InterlockedDecrement parm [ ecx ] = \ williamr@2: ".586" \ williamr@2: "mov eax, 0FFFFFFFFh" \ williamr@2: "xadd [ecx], eax" \ williamr@2: "dec eax" \ williamr@2: value [eax]; williamr@2: #endif // _STL_MULTIPROCESSOR williamr@2: williamr@2: long __stl_InterlockedExchange( long *Destination, long Value ); williamr@2: williamr@2: // xchg has auto-lock williamr@2: #pragma aux __stl_InterlockedExchange parm [ecx] [eax] = \ williamr@2: ".586" \ williamr@2: "xchg eax, [ecx]" \ williamr@2: value [eax]; williamr@2: #else williamr@2: williamr@2: #define __stl_InterlockedIncrement InterlockedIncrement williamr@2: #define __stl_InterlockedDecrement InterlockedDecrement williamr@2: #define __stl_InterlockedExchange InterlockedExchange williamr@2: #endif /* INLINE INTERLOCK */ williamr@2: williamr@2: #define _STLP_ATOMIC_INCREMENT(__x) __stl_InterlockedIncrement((long*)__x) williamr@2: #define _STLP_ATOMIC_DECREMENT(__x) __stl_InterlockedDecrement((long*)__x) williamr@2: #define _STLP_ATOMIC_EXCHANGE(__x, __y) __stl_InterlockedExchange((long*)__x, (long)__y) williamr@2: williamr@2: // boris : is this true or just the header is not in /usr/include ? williamr@2: # ifdef __QNX__ williamr@2: # define _STLP_NO_TYPEINFO 1 williamr@2: # endif williamr@2: williamr@2: # define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER 1 williamr@2: # define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1 williamr@2: # define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1 williamr@2: # define _STLP_NO_MEMBER_TEMPLATES 1 williamr@2: # define _STLP_NO_FRIEND_TEMPLATES 1 williamr@2: # define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1 williamr@2: williamr@2: williamr@2: # define _STLP_LIMITED_DEFAULT_TEMPLATES 1 williamr@2: # define _STLP_HAS_NO_NAMESPACES 1 williamr@2: # define _STLP_NEED_TYPENAME 1 williamr@2: williamr@2: # if __WATCOMC__ < 1100 williamr@2: # define _STLP_NO_WCHAR_T 1 williamr@2: # define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX 1 williamr@2: # endif williamr@2: williamr@2: # define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS 1 williamr@2: williamr@2: # define _STLP_STATIC_CONST_INIT_BUG 1 williamr@2: // # define _STLP_THROW_RETURN_BUG 1 williamr@2: # define _STLP_NO_TEMPLATE_CONVERSIONS 1 williamr@2: williamr@2: # define _STLP_BASE_TYPEDEF_OUTSIDE_BUG 1 williamr@2: williamr@2: # define _STLP_HAS_NO_NEW_IOSTREAMS 1 williamr@2: # define _STLP_HAS_NO_NEW_C_HEADERS 1 williamr@2: # define _STLP_NO_NEW_NEW_HEADER 1 williamr@2: # define _STLP_VENDOR_GLOBAL_STD williamr@2: williamr@2: # define _STLP_NO_DEFAULT_NON_TYPE_PARAM 1 williamr@2: # define _STLP_NON_TYPE_TMPL_PARAM_BUG 1 williamr@2: # define _STLP_NONTEMPL_BASE_MATCH_BUG williamr@2: # define _STLP_NO_EXCEPTION_HEADER 1 williamr@2: # define _STLP_NO_BAD_ALLOC 1 williamr@2: williamr@2: # define _STLP_NESTED_TYPE_PARAM_BUG 1 williamr@2: williamr@2: # define _STLP_NO_CSTD_FUNCTION_IMPORTS 1 williamr@2: williamr@2: # if (__WATCOM_CPLUSPLUS__ < 1100 ) williamr@2: # define _STLP_NO_BOOL 1 williamr@2: # define _STLP_NEED_EXPLICIT 1 williamr@2: # define _STLP_NEED_MUTABLE 1 williamr@2: # define _STLP_NO_ARROW_OPERATOR 1 williamr@2: # endif williamr@2: // This one is present in 11, but apparently has bugs (with auto_ptr). williamr@2: # define _STLP_NO_NEW_STYLE_CASTS 1 williamr@2: williamr@2: // Get rid of Watcom's min and max macros williamr@2: #undef min williamr@2: #undef max williamr@2: williamr@2: // for switches (-xs, -xss, -xst) williamr@2: // williamr@2: #if !(defined (__SW_XS) || defined (__SW_XSS) || defined(__SW_XST)) williamr@2: # define _STLP_HAS_NO_EXCEPTIONS 1 williamr@2: # endif williamr@2: williamr@2: # if defined ( _MT ) && !defined (_NOTHREADS) && !defined (_REENTRANT) williamr@2: # define _REENTRANT 1 williamr@2: # endif williamr@2: williamr@2: williamr@2: williamr@2: williamr@2: