williamr@2: // williamr@2: // This file defines site configuration. williamr@2: // williamr@2: // williamr@2: williamr@2: /* williamr@2: * _STLP_NO_THREADS: if defined, STLport don't use any williamr@2: * multithreading support. Synonym is _NOTHREADS williamr@2: */ williamr@2: // #define _NOTHREADS williamr@2: // #define _STLP_NO_THREADS williamr@2: williamr@2: /* _PTHREADS: if defined, use Posix threads for multithreading support. */ williamr@2: #define _PTHREADS williamr@2: williamr@2: // compatibility section williamr@2: williamr@2: # if defined (_STLP_NO_IOSTREAMS) || defined (_STLP_NO_NEW_IOSTREAMS) && ! defined ( _STLP_NO_OWN_IOSTREAMS ) williamr@2: # define _STLP_NO_OWN_IOSTREAMS williamr@2: # endif williamr@2: williamr@2: # if !defined (_STLP_NO_OWN_IOSTREAMS) && ! defined (_STLP_OWN_IOSTREAMS) williamr@2: # define _STLP_OWN_IOSTREAMS williamr@2: # endif williamr@2: williamr@2: # if (defined (_STLP_NOTHREADS) || defined (_STLP_NO_THREADS) || defined (NOTHREADS)) williamr@2: # if ! defined (_NOTHREADS) williamr@2: # define _NOTHREADS williamr@2: # endif williamr@2: # if ! defined (_STLP_NO_THREADS) williamr@2: # define _STLP_NO_THREADS williamr@2: # endif williamr@2: # endif williamr@2: williamr@2: /* williamr@2: * Turn _STLP_USE_DYNAMIC_LIB to enforce use of .dll version of STLport library. williamr@2: * NOTE : please do that only if you know what you are doing ! williamr@2: * Changing default will require you to change makefile in "src" accordingly williamr@2: * and to rebuild STLPort library ! williamr@2: * On UNIX, this has no effect. williamr@2: * williamr@2: */ williamr@2: // # define _STLP_USE_DYNAMIC_LIB williamr@2: williamr@2: /* williamr@2: * Turn _STLP_USE_STATIC_LIB to enforce use of static version of STLport library. williamr@2: * NOTE : please do that only if you know what you are doing ! williamr@2: * Changing default will require you to change makefile in "src" accordingly williamr@2: * and to rebuild STLPort library ! williamr@2: * On UNIX, this has no effect. williamr@2: * williamr@2: */ williamr@2: // # define _STLP_USE_STATIC_LIB williamr@2: williamr@2: williamr@2: /* williamr@2: * Edit relative path below (or put full path) to get native williamr@2: * compiler vendor's headers included. Default is "../include" williamr@2: * Hint : never install STLport in the directory that ends with "include" williamr@2: */ williamr@2: #if 0 williamr@2: # undef _STLP_NATIVE_INCLUDE_PATH williamr@2: # define _STLP_NATIVE_INCLUDE_PATH ../include williamr@2: same for C library headers like williamr@2: # undef _STLP_NATIVE_CPP_C_INCLUDE_PATH williamr@2: # define _STLP_NATIVE_CPP_C_INCLUDE_PATH ../include williamr@2: same for C headers like williamr@2: # undef _STLP_NATIVE_C_INCLUDE_PATH williamr@2: # define _STLP_NATIVE_C_INCLUDE_PATH ../include williamr@2: #endif williamr@2: williamr@2: /* williamr@2: * _STLP_USE_OWN_NAMESPACE/_STLP_NO_OWN_NAMESPACE williamr@2: * If defined, STLport uses _STL:: namespace, else std:: williamr@2: * The reason you have to use separate namespace in wrapper mode is that new-style IO williamr@2: * compiled library may have its own idea about STL stuff (string, vector, etc.), williamr@2: * so redefining them in the same namespace would break ODR and may cause williamr@2: * undefined behaviour. Rule of thumb is - if new-style iostreams are williamr@2: * available, there WILL be a conflict. Otherwise you should be OK. williamr@2: * In STLport iostreams mode, there is no need for this flag other than to facilitate williamr@2: * link with third-part libraries compiled with different standard library implementation. williamr@2: */ williamr@2: // # define _STLP_USE_OWN_NAMESPACE 1 williamr@2: # define _STLP_NO_OWN_NAMESPACE 1 williamr@2: williamr@2: williamr@2: /* williamr@2: * Uncomment _STLP_USE_NEWALLOC to force allocator to use plain "new" williamr@2: * instead of STLport optimized node allocator engine. williamr@2: */ williamr@2: // #define _STLP_USE_NEWALLOC 1 williamr@2: williamr@2: /* williamr@2: * Uncomment _STLP_USE_MALLOC to force allocator to use plain "malloc" williamr@2: * instead of STLport optimized node allocator engine. williamr@2: */ williamr@2: // #define _STLP_USE_MALLOC 1 williamr@2: williamr@2: /* williamr@2: * Set _STLP_DEBUG_ALLOC to use allocators that perform memory debugging, williamr@2: * such as padding/checking for memory consistency williamr@2: */ williamr@2: // #define _STLP_DEBUG_ALLOC 1 williamr@2: williamr@2: williamr@2: /* williamr@2: * Uncomment this to force all debug diagnostic to be directed through a williamr@2: * user-defined global function: williamr@2: * void __stl_debug_message(const char * format_str, ...) williamr@2: * instead of predefined STLport routine. williamr@2: * This allows you to take control of debug message output. williamr@2: * Default routine calls fprintf(stderr,...) williamr@2: * Note : If you set this macro, you must supply __stl_debug_message williamr@2: * function definition somewhere. williamr@2: */ williamr@2: //#define _STLP_DEBUG_MESSAGE 1 williamr@2: williamr@2: /* williamr@2: * Uncomment this to force all failed assertions to be executed through williamr@2: * user-defined global function: williamr@2: * void __stl_debug_terminate(void). This allows williamr@2: * you to take control of assertion behaviour for debugging purposes. williamr@2: * Default routine throws unique exception if _STLP_USE_EXCEPTIONS is set, williamr@2: * calls _STLP_ABORT() otherwise. williamr@2: * Note : If you set this macro, you must supply __stl_debug_terminate williamr@2: * function definition somewhere. williamr@2: */ williamr@2: //#define _STLP_DEBUG_TERMINATE 1 williamr@2: williamr@2: /* williamr@2: * Comment this out to enable throwing exceptions from default __stl_debug_terminate() williamr@2: * instead of calling _STLP_ABORT(). williamr@2: */ williamr@2: #define _STLP_NO_DEBUG_EXCEPTIONS 1 williamr@2: williamr@2: /* williamr@2: * Uncomment that to disable exception handling code williamr@2: */ williamr@2: // #define _STLP_NO_EXCEPTIONS 1 williamr@2: williamr@2: /* williamr@2: * _STLP_NO_NAMESPACES: if defined, don't put the library in namespace williamr@2: * stlport:: or std::, even if the compiler supports namespaces williamr@2: */ williamr@2: williamr@2: // #define _STLP_NO_NAMESPACES 1 williamr@2: williamr@2: //========================================================== williamr@2: // Compatibility section williamr@2: //========================================================== williamr@2: williamr@2: /* williamr@2: * Use abbreviated class names for linker benefit (don't affect interface). williamr@2: * This option is obsolete, but should work in this release. williamr@2: * williamr@2: */ williamr@2: // # define _STLP_USE_ABBREVS williamr@2: williamr@2: /* williamr@2: * This definition precludes STLport reverse_iterator to be compatible with williamr@2: * other parts of MSVC library. (With partial specialization, it just williamr@2: * has no effect). williamr@2: * Use it _ONLY_ if you use SGI-style reverse_iterator<> template explicitly williamr@2: */ williamr@2: // # define _STLP_NO_MSVC50_COMPATIBILITY 1 williamr@2: williamr@2: /* williamr@2: * _STLP_USE_RAW_SGI_ALLOCATORS is a hook so that users can disable use of williamr@2: * allocator as default parameter for containers, and use SGI williamr@2: * raw allocators as default ones, without having to edit library headers. williamr@2: * Use of this macro is strongly discouraged. williamr@2: */ williamr@2: // #define _STLP_USE_RAW_SGI_ALLOCATORS 1 williamr@2: williamr@2: /* williamr@2: * Use obsolete overloaded template functions iterator_category(), value_type(), distance_type() williamr@2: * for querying iterator properties. Please note those names are non-standard and are not guaranteed williamr@2: * to be used by every implementation. However, this setting is on by default when partial specialization williamr@2: * is not implemented in the compiler and cannot be sumulated (only if _STLP_NO_ANACHRONISMS is not set). williamr@2: * Use of those interfaces for user-defined iterators is strongly discouraged: williamr@2: * please use public inheritance from iterator<> template to achieve desired effect. williamr@2: * Second form is to disable old-style queries in any case. williamr@2: */ williamr@2: // # define _STLP_USE_OLD_HP_ITERATOR_QUERIES williamr@2: // # define _STLP_NO_OLD_HP_ITERATOR_QUERIES williamr@2: williamr@2: williamr@2: //========================================================================== williamr@2: williamr@2: // This section contains swithes which should be off by default, williamr@2: // but so few compilers would have it undefined, so that we set them here, williamr@2: // with the option to be turned off later in compiler-specific file williamr@2: williamr@2: # define _STLP_INCOMPLETE_EXCEPTION_HEADER williamr@2: