1/*
2 * This file defines site configuration.
3 */
4
5/*
6 * _STLP_NO_THREADS: if defined, STLport don't use any
7 * multithreading support. Synonym is _NOTHREADS
8 */
9/*
10#define _NOTHREADS
11#define _STLP_NO_THREADS
12*/
13
14/* _PTHREADS: if defined, use POSIX threads for multithreading support. */
15/*
16#define _PTHREADS
17*/
18
19/* compatibility section
20 */
21
22#if (defined (_STLP_NOTHREADS) || defined (_STLP_NO_THREADS) || defined (NOTHREADS))
23#  if !defined (_NOTHREADS)
24#    define _NOTHREADS
25#  endif
26#  if !defined (_STLP_NO_THREADS)
27#    define _STLP_NO_THREADS
28#  endif
29#endif
30
31#if !defined(_STLP_USE_DYNAMIC_LIB) && !defined(_STLP_USE_STATIC_LIB)
32/*
33 * Turn _STLP_USE_DYNAMIC_LIB to enforce use of .dll version of STLport library.
34 * NOTE: please do that only if you know what you are doing!
35 * Changing default will require you to change makefiles in "build" accordingly
36 * and to rebuild STLPort library!
37 * On UNIX, this has no effect, see build/lib/README for make tags.
38 * See STLport configuration file (build/lib/configure.bat) for help in building
39 * the require library versions.
40 */
41/*
42#define _STLP_USE_DYNAMIC_LIB
43*/
44
45/*
46 * Turn _STLP_USE_STATIC_LIB to enforce use of static version of STLport library.
47 * NOTE: please do that only if you know what you are doing!
48 * Changing default will require you to change makefile in "build" accordingly
49 * and to rebuild STLPort library!
50 * On UNIX, this has no effect, see build/lib/README for make tags.
51 * See STLport configuration file (build/lib/configure.bat) for help in building
52 * the require library versions.
53 */
54/*
55#define _STLP_USE_STATIC_LIB
56*/
57#endif
58
59/*
60 * Edit relative path below (or put full path) to get native
61 * compiler vendor's headers included. Default is "../include"
62 * for _STLP_NATIVE_INCLUDE_PATH, default for other macros is
63 * _STLP_NATIVE_INCLUDE_PATH.
64 * Hint: never install STLport in the directory that ends with "include"
65 */
66/*
67#undef _STLP_NATIVE_INCLUDE_PATH
68#define _STLP_NATIVE_INCLUDE_PATH ../include
69*/
70/* same for C library headers like <cstring> */
71/*
72#undef _STLP_NATIVE_CPP_C_INCLUDE_PATH
73#define _STLP_NATIVE_CPP_C_INCLUDE_PATH _STLP_NATIVE_INCLUDE_PATH
74*/
75/* same for C headers like <string.h> */
76/*
77#undef _STLP_NATIVE_C_INCLUDE_PATH
78#define _STLP_NATIVE_C_INCLUDE_PATH _STLP_NATIVE_INCLUDE_PATH
79*/
80/* Some compilers locate basic C++ runtime support headers (<new>, <typeinfo>, <exception>) in separate directory */
81/*
82#undef _STLP_NATIVE_CPP_RUNTIME_INCLUDE_PATH
83#define _STLP_NATIVE_CPP_RUNTIME_INCLUDE_PATH _STLP_NATIVE_INCLUDE_PATH
84*/
85
86/*
87 * If namespases available, STLport use own namespace (and masquerade
88 * it as std). Disable own namespace may cause undefined behaviour.
89 */
90/*
91#define _STLP_NO_OWN_NAMESPACE  1
92*/
93
94/*
95 * Uncomment _STLP_LEAKS_PEDANTIC to force deallocation of ALL allocated
96 * memory chunks. Normally not required. But if you worry about quazi-leaks
97 * (may be reported by some leaks detection tools), use
98 * _STLP_LEAKS_PEDANTIC. It should be used with _STLP_USE_NEWALLOC or
99 * _STLP_USE_MALLOC (see below), the default node_alloc allocator also clean
100 * its internal memory pool but only if STLport is used as a dynamic library
101 * under Win32 (using MSVC like compilers).
102 */
103/*
104#define _STLP_LEAKS_PEDANTIC 1
105*/
106
107/*
108 * Uncomment _STLP_USE_NEWALLOC to force allocator<T> to use plain "new"
109 * instead of STLport optimized node allocator engine.
110 */
111/*
112#define _STLP_USE_NEWALLOC 1
113*/
114
115/*
116 * Uncomment _STLP_USE_MALLOC to force allocator<T> to use plain "malloc"
117 * instead of STLport optimized node allocator engine.
118 *
119 * This is default allocator for glibc 2.3.x and later, if not mentioned other
120 */
121/*
122#define _STLP_USE_MALLOC 1
123*/
124
125/*
126 * Uncomment _STLP_USE_PERTHREAD_ALLOC to force allocator<T> to use
127 * a specific implementation targetting the massively multi-threaded
128 * environment. The implementation is based on the POSIX pthread
129 * interface.
130 */
131/*
132#define _STLP_USE_PERTHREAD_ALLOC 1
133*/
134
135/*
136 * Uncomment _STLP_USE_NODE_ALLOC if you want to force allocator<T> to use
137 * "node_alloc" allocator (this is default allocator for STLport, if not
138 * used other above, except glibc 2.3.x and later, where default is
139 * "malloc", due to better results)
140 */
141/*
142#define _STLP_USE_NODE_ALLOC 1
143*/
144
145/*
146 * Set _STLP_DEBUG_ALLOC to use allocators that perform memory debugging,
147 * such as padding/checking for memory consistency
148 */
149/*
150#define _STLP_DEBUG_ALLOC 1
151*/
152
153/*
154 * For compiler not supporting partial template specialization or ordering of
155 * template functions STLport implement a workaround based on inheritance
156 * detection. This inheritance can introduce trouble in client code when
157 * a user class derived a STL container (which is not advised as STL containers
158 * do not have virtual destructors). To disable this workaround turn this macro on:
159 */
160/*
161#define _STLP_DONT_USE_PARTIAL_SPEC_WRKD 1
162*/
163
164/*
165 * Uncomment this to force all debug diagnostic to be directed through a
166 * user-defined global function:
167 *  void __stl_debug_message(const char * format_str, ...)
168 * instead of predefined STLport routine.
169 * This allows you to take control of debug message output.
170 * Default routine calls fprintf(stderr,...)
171 * Note : If you set this macro, you must supply __stl_debug_message
172 * function definition somewhere.
173 */
174/*
175#define _STLP_DEBUG_MESSAGE 1
176*/
177
178/*
179 * Uncomment this to force all failed assertions to be executed through
180 * user-defined global function:
181 *  void __stl_debug_terminate(void). This allows
182 * you to take control of assertion behaviour for debugging purposes.
183 * Default routine calls _STLP_ABORT().
184 * Note : If you set this macro, you must supply __stl_debug_terminate
185 * function definition somewhere.
186 */
187/*
188#define _STLP_DEBUG_TERMINATE 1
189*/
190
191/*
192 * Uncomment that to disable exception handling code
193 */
194/*
195#define _STLP_DONT_USE_EXCEPTIONS 1
196*/
197
198/*
199 * _STLP_NO_NAMESPACES: if defined, don't put the library in namespace
200 * stlport:: or std::, even if the compiler supports namespaces
201 */
202/*
203#define _STLP_NO_NAMESPACES 1
204*/
205
206/*==========================================================
207 * Compatibility section
208 *==========================================================*/
209
210/*
211 * Use abbreviated class names for linker benefit (don't affect interface).
212 * This option is obsolete, but should work in this release.
213 *
214 */
215/*
216#define _STLP_USE_ABBREVS
217*/
218
219/*
220 * This definition precludes STLport reverse_iterator to be compatible with
221 * other parts of MSVC library. (With partial specialization, it just
222 * has no effect).
223 * Use it _ONLY_ if you use SGI-style reverse_iterator<> template explicitly
224 */
225/*
226#define _STLP_NO_MSVC50_COMPATIBILITY 1
227*/
228
229/*
230 * Use obsolete overloaded template functions iterator_category(), value_type(), distance_type()
231 * for querying iterator properties. Please note those names are non-standard and are not guaranteed
232 * to be used by every implementation. However, this setting is on by default when partial specialization
233 * is not implemented in the compiler and cannot be simulated (only if _STLP_NO_ANACHRONISMS is not set).
234 * Use of those interfaces for user-defined iterators is strongly discouraged:
235 * please use public inheritance from iterator<> template to achieve desired effect.
236 * Second form is to disable old-style queries in any case.
237 */
238/*
239#define _STLP_USE_OLD_HP_ITERATOR_QUERIES
240#define _STLP_NO_OLD_HP_ITERATOR_QUERIES
241*/
242
243
244/*
245 * On systems with support of large files (_LARGEFILE_SOURCE,
246 * _LARGEFILE64_SOURCE defined) we will use 64-bit file offset, even if
247 * __USE_FILE_OFFSET64 or _FILE_OFFSET_BITS not defined or _FILE_OFFSET_BITS
248 * less than 64. In the last case sizeof(std::streamoff) may not be equal to
249 * sizeof(off_t); if you want to force equal size of off_t and streamoff,
250 * uncomment macro below. But pay attention, this has influence on libstlport
251 * and in future usage it may cause conflict with defined _FILE_OFFSET_BITS macro.
252 */
253
254/*
255#define _STLP_USE_DEFAULT_FILE_OFFSET
256*/
257
258/*
259 * _STLP_USE_STDIO_IO, _STLP_USE_UNIX_IO: force selection of stdio calls
260 * (fopen/flose/fread/fwrite) under fstream buffers or unistd calls
261 * (open/close/read/write + mmap). On systems that have both (i.e. most Unixes)
262 * _STLP_USE_UNIX_IO is used.
263 *
264 * There is a third variant for Windows: _STLP_USE_WIN32_IO, that based
265 * on Windows calls (CreateFile/CloseHandle/ReadFile/WriteFile + CreateFileMapping,
266 * MapViewOfFile)
267 *
268 * Uncomment only one define here!
269 */
270/*
271#define _STLP_USE_UNIX_IO
272*/
273/*
274#define _STLP_USE_STDIO_IO
275*/
276/*
277#define _STLP_USE_WIN32_IO
278 */
279
280/*==========================================================================*/
281
282/* This section contains swithes which should be off by default,
283 * but so few compilers would have it undefined, so that we set them here,
284 * with the option to be turned off later in compiler-specific file
285 */
286
287#define _STLP_NO_UNCAUGHT_EXCEPT_SUPPORT
288#define _STLP_NO_UNEXPECTED_EXCEPT_SUPPORT
289
290/*==========================================================================*/
291
292#if defined(__sun) && defined(__GNUC__)
293/* __SunOS_5_x is not defined in headers, and there is no way to derive it from headers only;
294 * nevertheless this macro defined automagically by SunPro compilers family;
295 *
296 * gcc know nothing about it, but defining it with -D on compiler command line
297 * is a bad idea from one side, and this info still useful when we want to use
298 * (or don't use) some Solaris version-specific features from other side.
299 * Of course, the best way is to define it in spec file, but this is beyond our scope.
300 *
301 * Uncomment ONE of the following, depends on what Solaris version you use.
302 */
303
304/*
305#define __SunOS_5_5_1
306 */
307/*
308#define __SunOS_5_6
309 */
310/*
311#define __SunOS_5_7
312 */
313/*
314#define __SunOS_5_8
315 */
316/*
317#define __SunOS_5_9
318 */
319/*
320#define __SunOS_5_10
321 */
322#endif
323
324#if defined(__sun)
325/* With following patches Solaris 8 and 9 will have *l and *f (long double and float)
326 * variants of math functions:
327 *   SunOS 5.8 patch 111721-04 (May/08/2003)
328 *     <http://sunsolve.sun.com/search/document.do?assetkey=1-21-111721-04-1>
329 *   SunOS 5.9 patch 111722-04 (May/08/2003)
330 *     <http://sunsolve.sun.com/search/document.do?assetkey=1-21-111722-04-1>
331 * Solaris 10 has this functions from box.
332 */
333/*
334#define _STLP_SOLARIS_MATH_PATCH
335 */
336#endif
337
338/*
339  Local Variables:
340  mode:C++
341  End:
342*/
343