williamr@2: /* williamr@2: * This file defines site configuration. 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: /* williamr@2: #define _NOTHREADS williamr@2: #define _STLP_NO_THREADS williamr@2: */ williamr@2: williamr@2: /* _PTHREADS: if defined, use POSIX threads for multithreading support. */ williamr@2: /* williamr@2: #define _PTHREADS williamr@2: */ williamr@2: williamr@2: /* compatibility section williamr@2: */ 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: #if !defined(_STLP_USE_DYNAMIC_LIB) && !defined(_STLP_USE_STATIC_LIB) 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 makefiles in "build" accordingly williamr@2: * and to rebuild STLPort library! williamr@2: * On UNIX, this has no effect, see build/lib/README for make tags. williamr@2: * See STLport configuration file (build/lib/configure.bat) for help in building williamr@2: * the require library versions. williamr@2: */ williamr@2: /* williamr@2: #define _STLP_USE_DYNAMIC_LIB williamr@2: */ 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 "build" accordingly williamr@2: * and to rebuild STLPort library! williamr@2: * On UNIX, this has no effect, see build/lib/README for make tags. williamr@2: * See STLport configuration file (build/lib/configure.bat) for help in building williamr@2: * the require library versions. williamr@2: */ williamr@2: /* williamr@2: #define _STLP_USE_STATIC_LIB williamr@2: */ williamr@2: #endif williamr@2: williamr@2: /* williamr@2: * Signal STLport that we are using the cygwin distrib with the -mno-cygwin option. williamr@2: * This is similar to a mingw environment except that relative path to native headers williamr@2: * is different, this is why we need this macro. williamr@2: */ williamr@2: /* williamr@2: #define _STLP_NO_CYGWIN 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: * for _STLP_NATIVE_INCLUDE_PATH, default for other macros is williamr@2: * _STLP_NATIVE_INCLUDE_PATH. williamr@2: * Hint: never install STLport in the directory that ends with "include" williamr@2: */ williamr@2: /* williamr@2: #undef _STLP_NATIVE_INCLUDE_PATH williamr@2: #define _STLP_NATIVE_INCLUDE_PATH ../include williamr@2: */ williamr@2: /* same for C library headers like */ williamr@2: /* williamr@2: #undef _STLP_NATIVE_CPP_C_INCLUDE_PATH williamr@2: #define _STLP_NATIVE_CPP_C_INCLUDE_PATH _STLP_NATIVE_INCLUDE_PATH williamr@2: */ williamr@2: /* same for C headers like */ williamr@2: /* williamr@2: #undef _STLP_NATIVE_C_INCLUDE_PATH williamr@2: #define _STLP_NATIVE_C_INCLUDE_PATH _STLP_NATIVE_INCLUDE_PATH williamr@2: */ williamr@2: /* Some compilers locate basic C++ runtime support headers (, , ) in separate directory */ williamr@2: /* williamr@2: #undef _STLP_NATIVE_CPP_RUNTIME_INCLUDE_PATH williamr@2: #define _STLP_NATIVE_CPP_RUNTIME_INCLUDE_PATH _STLP_NATIVE_INCLUDE_PATH williamr@2: */ williamr@2: williamr@2: /* williamr@2: * If namespases available, STLport use own namespace (and masquerade williamr@2: * it as std). Disable own namespace may cause undefined behaviour. williamr@2: */ williamr@2: /* williamr@2: #define _STLP_NO_OWN_NAMESPACE 1 williamr@2: */ williamr@2: williamr@2: /* williamr@2: * Uncomment _STLP_LEAKS_PEDANTIC to force deallocation of ALL allocated williamr@2: * memory chunks. Normally not required. But if you worry about quazi-leaks williamr@2: * (may be reported by some leaks detection tools), use williamr@2: * _STLP_LEAKS_PEDANTIC. It should be used with _STLP_USE_NEWALLOC or williamr@2: * _STLP_USE_MALLOC (see below), the default node_alloc allocator also clean williamr@2: * its internal memory pool but only if STLport is used as a dynamic library williamr@2: * under Win32 (using MSVC like compilers). williamr@2: */ williamr@2: /* williamr@2: #define _STLP_LEAKS_PEDANTIC 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: /* williamr@2: #define _STLP_USE_NEWALLOC 1 williamr@2: */ 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: /* williamr@2: #define _STLP_USE_MALLOC 1 williamr@2: */ williamr@2: williamr@2: /* williamr@2: * Uncomment _STLP_USE_PERTHREAD_ALLOC to force allocator to use williamr@2: * a specific implementation targetting the massively multi-threaded williamr@2: * environment. The implementation is based on the POSIX pthread williamr@2: * interface. williamr@2: */ williamr@2: /* williamr@2: #define _STLP_USE_PERTHREAD_ALLOC 1 williamr@2: */ 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: /* williamr@2: #define _STLP_DEBUG_ALLOC 1 williamr@2: */ williamr@2: williamr@2: /* williamr@2: * For compiler not supporting partial template specialization or ordering of williamr@2: * template functions STLport implement a workaround based on inheritance williamr@2: * detection. This inheritance can introduce trouble in client code when williamr@2: * a user class derived a STL container (which is not advised as STL containers williamr@2: * do not have virtual destructors). To disable this workaround turn this macro on: williamr@2: */ williamr@2: /* williamr@2: #define _STLP_DONT_USE_PARTIAL_SPEC_WRKD 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: /* williamr@2: #define _STLP_DEBUG_MESSAGE 1 williamr@2: */ 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 calls _STLP_ABORT(). williamr@2: * Note : If you set this macro, you must supply __stl_debug_terminate williamr@2: * function definition somewhere. williamr@2: */ williamr@2: /* williamr@2: #define _STLP_DEBUG_TERMINATE 1 williamr@2: */ williamr@2: williamr@2: /* williamr@2: * Uncomment that to disable exception handling code williamr@2: */ williamr@2: /* williamr@2: #define _STLP_DONT_USE_EXCEPTIONS 1 williamr@2: */ 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: /*========================================================== 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: /* williamr@2: #define _STLP_USE_ABBREVS williamr@2: */ 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: /* williamr@2: #define _STLP_NO_MSVC50_COMPATIBILITY 1 williamr@2: */ 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: /* williamr@2: #define _STLP_USE_RAW_SGI_ALLOCATORS 1 williamr@2: */ 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 simulated (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: /* 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: 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: williamr@2: #define _STLP_NO_UNCAUGHT_EXCEPT_SUPPORT williamr@2: #define _STLP_NO_UNEXPECTED_EXCEPT_SUPPORT williamr@2: williamr@2: /* williamr@2: Local Variables: williamr@2: mode:C++ williamr@2: End: williamr@2: */