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