Added classes for auto unlocking read only and read write mutex on
[pwlib.git] / include / ptbuildopts.h.in
blob573ca312ba6a995deafff007412646758f95ed7a
1 /*
2 * buildopts.h
4 * Build options generated by the configure script.
6 * Portable Windows Library
8 * Copyright (c) 2003 Equivalence Pty. Ltd.
10 * The contents of this file are subject to the Mozilla Public License
11 * Version 1.0 (the "License"); you may not use this file except in
12 * compliance with the License. You may obtain a copy of the License at
13 * http://www.mozilla.org/MPL/
15 * Software distributed under the License is distributed on an "AS IS"
16 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
17 * the License for the specific language governing rights and limitations
18 * under the License.
20 * The Original Code is Portable Windows Library.
22 * The Initial Developer of the Original Code is Equivalence Pty. Ltd.
24 * Contributor(s): ______________________________________.
26 * $Log$
27 * Revision 1.34 2004/06/01 07:42:19 csoutheren
28 * Restored memory allocation checking
29 * Added configure flag to enable, thanks to Derek Smithies
31 * Revision 1.33 2004/04/28 11:26:42 csoutheren
32 * Hopefully fixed SASL and SASL2 problems
34 * Revision 1.32 2004/04/21 11:22:48 csoutheren
35 * Modified to work with gcc 3.4.0
37 * Revision 1.31 2004/04/18 12:06:06 csoutheren
38 * Added classes for SASL authentication
39 * Thanks to Federico Pinna and Reitek S.p.A.
41 * Revision 1.30 2004/04/11 07:58:07 csoutheren
42 * Added configure.in check for recursive mutexes, and changed implementation
43 * without recursive mutexes to use PCriticalSection or atomic word structs
45 * Revision 1.29 2004/04/11 06:15:27 csoutheren
46 * Modified to use Atomic_word if available
48 * Revision 1.28 2004/04/09 11:54:46 csoutheren
49 * Added configure.in check for STL streams, and tested with gcc 2.95.3,
50 * gcc 3.3.1, and gcc 3.3.3
52 * Revision 1.27 2004/04/03 23:53:08 csoutheren
53 * Added various changes to improce compatibility with the Sun Forte compiler
54 * Thanks to Brian Cameron
55 * Added detection of readdir_r version
57 * Revision 1.26 2004/03/23 04:56:23 csoutheren
58 * Added patches to use XPG6 threading under Linux if available
59 * Thanks to Matthew Hodgson
61 * Revision 1.25 2004/02/04 02:34:38 csoutheren
62 * Added many new flags to configure to allow disabling of various features
63 * Fixed "swab" detection
64 * Improved detection of long double type
66 * Revision 1.24 2004/01/30 00:52:58 csoutheren
67 * Moved P_USE_PRAGMA back to the compiler flags as this cannot be
68 * put into a include file due to the way gcc implements vtable closure
70 * Revision 1.23 2004/01/29 13:43:59 csoutheren
71 * Moved some preprocessor symbols from the command line to include files
72 * Modified to set P_HAS_SEMAPHORES to 0 for Linux kernels >= 2.6
73 * Applied patches for Solaris thanks to Michal Zygmuntowicz
75 * Revision 1.22 2004/01/27 10:50:29 csoutheren
76 * Added versio information to ptbuildopts.h
78 * Revision 1.21 2003/12/02 08:34:44 rogerhardiman
79 * Tidy some comments
81 * Revision 1.20 2003/11/12 03:29:51 csoutheren
82 * Initial version of plugin code from Snark of GnomeMeeting with changes
83 * by Craig Southeren of Post Increment
85 * Revision 1.19 2003/11/06 09:13:20 rjongbloed
86 * Improved the Windows configure system to allow multiple defines based on file existence. Needed for SDL support of two different distros.
88 * Revision 1.18 2003/10/30 11:23:53 rjongbloed
89 * Added direcetory name for Speech API under Windows.
90 * Added automatic inclusion of Winsock2 library.
92 * Revision 1.17 2003/10/27 03:42:15 csoutheren
93 * Added support for QoS detection
95 * Revision 1.16 2003/10/23 20:43:38 dereksmithies
96 * Add fix for SDL video on Visual C. Thanks to Walter Whitlock.
98 * Revision 1.15 2003/10/20 23:13:26 csoutheren
99 * Restored after deletion by Damien
101 * Revision 1.13 2003/09/17 09:00:59 csoutheren
102 * Moved PSmartPointer and PNotifier into seperate files
103 * Added detection for system regex libraries on all platforms
105 * Revision 1.12 2003/07/29 11:25:23 csoutheren
106 * Added support for system swab function
108 * Revision 1.11 2003/06/23 15:17:20 ykiryanov
109 * Modified for WinCE compatibility - Undef'd P_HAS_IPV6 in case of WinCE build
111 * Revision 1.10 2003/05/22 12:20:16 dsandras
113 * Define or not TRY_1394AVC/TRY_1394DC after execution of the configure script.
115 * Revision 1.9 2003/05/17 03:22:47 rjongbloed
116 * Removed need to do strange things with main() function.
118 * Revision 1.8 2003/05/05 06:25:33 robertj
119 * Corrections to external libraries
121 * Revision 1.7 2003/04/28 08:32:01 craigs
122 * Added Linux SDL detection
124 * Revision 1.6 2003/04/28 07:27:38 craigs
125 * Added SDL libs
127 * Revision 1.5 2003/04/28 07:04:45 craigs
128 * Added SDL detection
130 * Revision 1.4 2003/04/17 06:14:31 robertj
131 * Changed link of openssl to be static.
133 * Revision 1.3 2003/04/17 01:22:29 craigs
134 * Fixed problem with OpenLDAP and OpenSSL-0.9.7
136 * Revision 1.2 2003/04/16 08:00:19 robertj
137 * Windoes psuedo autoconf support
139 * Revision 1.1 2003/04/16 07:15:59 craigs
140 * Initial version
144 #ifndef _PT_BUILDOPTS_H
145 #define _PT_BUILDOPTS_H
148 /////////////////////////////////////////////////
150 // host type
153 #undef P_LINUX
154 #undef P_FREEBSD
155 #undef P_OPENBSD
156 #undef P_NETBSD
157 #undef P_SOLARIS
158 #undef P_MACOSX
159 #undef P_UNKNOWN_OS
161 /////////////////////////////////////////////////
163 // Processor endianess
166 #undef PBYTE_ORDER
169 /////////////////////////////////////////////////
171 // IP v6 Support
174 #ifndef _WIN32_WCE
175 #undef P_HAS_IPV6
176 #endif // _WIN32_WCE
178 #if defined(_MSC_VER) && P_HAS_IPV6
180 #pragma include_alias(<winsock2.h>, <@IPV6_DIR@/winsock2.h>)
181 #pragma include_alias(<ws2tcpip.h>, <@IPV6_DIR@/ws2tcpip.h>)
183 #define P_WINSOCK2_LIBRARY "ws2_32.lib"
185 #endif
188 /////////////////////////////////////////////////
190 // QoS Support
194 #ifndef _WIN32_WCE
195 #undef P_HAS_QOS
196 #endif // _WIN32_WCE
198 #if defined(_MSC_VER) && P_HAS_QOS
200 #pragma include_alias(<qossp.h>, <@QOS_DIR@/qossp.h>)
202 #define P_WINSOCK2_LIBRARY "ws2_32.lib"
204 #endif
207 /////////////////////////////////////////////////
209 // OpenSSL library for secure sockets layer
212 #undef P_SSL
214 #if defined(_MSC_VER) && P_SSL
216 #pragma include_alias(<openssl/ssl.h>, <@SSL_DIR@/inc32/openssl/ssl.h>)
217 #pragma include_alias(<openssl/safestack.h>, <@SSL_DIR@/inc32/openssl/safestack.h>)
218 #pragma include_alias(<openssl/stack.h>, <@SSL_DIR@/inc32/openssl/stack.h>)
219 #pragma include_alias(<openssl/crypto.h>, <@SSL_DIR@/inc32/openssl/crypto.h>)
220 #pragma include_alias(<openssl/opensslv.h>, <@SSL_DIR@/inc32/openssl/opensslv.h>)
221 #pragma include_alias(<openssl/lhash.h>, <@SSL_DIR@/inc32/openssl/lhash.h>)
222 #pragma include_alias(<openssl/buffer.h>, <@SSL_DIR@/inc32/openssl/buffer.h>)
223 #pragma include_alias(<openssl/bio.h>, <@SSL_DIR@/inc32/openssl/bio.h>)
224 #pragma include_alias(<openssl/pem.h>, <@SSL_DIR@/inc32/openssl/pem.h>)
225 #pragma include_alias(<openssl/evp.h>, <@SSL_DIR@/inc32/openssl/evp.h>)
226 #pragma include_alias(<openssl/md2.h>, <@SSL_DIR@/inc32/openssl/md2.h>)
227 #pragma include_alias(<openssl/opensslconf.h>,<@SSL_DIR@/inc32/openssl/opensslconf.h>)
228 #pragma include_alias(<openssl/md5.h>, <@SSL_DIR@/inc32/openssl/md5.h>)
229 #pragma include_alias(<openssl/sha.h>, <@SSL_DIR@/inc32/openssl/sha.h>)
230 #pragma include_alias(<openssl/ripemd.h>, <@SSL_DIR@/inc32/openssl/ripemd.h>)
231 #pragma include_alias(<openssl/des.h>, <@SSL_DIR@/inc32/openssl/des.h>)
232 #pragma include_alias(<openssl/e_os2.h>, <@SSL_DIR@/inc32/openssl/e_os2.h>)
233 #pragma include_alias(<openssl/rc4.h>, <@SSL_DIR@/inc32/openssl/rc4.h>)
234 #pragma include_alias(<openssl/rc2.h>, <@SSL_DIR@/inc32/openssl/rc2.h>)
235 #pragma include_alias(<openssl/rc5.h>, <@SSL_DIR@/inc32/openssl/rc5.h>)
236 #pragma include_alias(<openssl/blowfish.h>, <@SSL_DIR@/inc32/openssl/blowfish.h>)
237 #pragma include_alias(<openssl/cast.h>, <@SSL_DIR@/inc32/openssl/cast.h>)
238 #pragma include_alias(<openssl/idea.h>, <@SSL_DIR@/inc32/openssl/idea.h>)
239 #pragma include_alias(<openssl/mdc2.h>, <@SSL_DIR@/inc32/openssl/mdc2.h>)
240 #pragma include_alias(<openssl/rsa.h>, <@SSL_DIR@/inc32/openssl/rsa.h>)
241 #pragma include_alias(<openssl/bn.h>, <@SSL_DIR@/inc32/openssl/bn.h>)
242 #pragma include_alias(<openssl/dsa.h>, <@SSL_DIR@/inc32/openssl/dsa.h>)
243 #pragma include_alias(<openssl/dh.h>, <@SSL_DIR@/inc32/openssl/dh.h>)
244 #pragma include_alias(<openssl/objects.h>, <@SSL_DIR@/inc32/openssl/objects.h>)
245 #pragma include_alias(<openssl/asn1.h>, <@SSL_DIR@/inc32/openssl/asn1.h>)
246 #pragma include_alias(<openssl/x509.h>, <@SSL_DIR@/inc32/openssl/x509.h>)
247 #pragma include_alias(<openssl/x509_vfy.h>, <@SSL_DIR@/inc32/openssl/x509_vfy.h>)
248 #pragma include_alias(<openssl/pkcs7.h>, <@SSL_DIR@/inc32/openssl/pkcs7.h>)
249 #pragma include_alias(<openssl/pem2.h>, <@SSL_DIR@/inc32/openssl/pem2.h>)
250 #pragma include_alias(<openssl/ssl2.h>, <@SSL_DIR@/inc32/openssl/ssl2.h>)
251 #pragma include_alias(<openssl/ssl3.h>, <@SSL_DIR@/inc32/openssl/ssl3.h>)
252 #pragma include_alias(<openssl/tls1.h>, <@SSL_DIR@/inc32/openssl/tls1.h>)
253 #pragma include_alias(<openssl/ssl23.h>, <@SSL_DIR@/inc32/openssl/ssl23.h>)
254 #pragma include_alias(<openssl/err.h>, <@SSL_DIR@/inc32/openssl/err.h>)
255 #pragma include_alias(<openssl/rand.h>, <@SSL_DIR@/inc32/openssl/rand.h>)
256 #pragma include_alias(<openssl/symhacks.h>, <@SSL_DIR@/inc32/openssl/symhacks.h>)
257 #pragma include_alias(<openssl/comp.h>, <@SSL_DIR@/inc32/openssl/comp.h>)
258 #pragma include_alias(<openssl/ossl_typ.h>, <@SSL_DIR@/inc32/openssl/ossl_typ.h>)
259 #pragma include_alias(<openssl/md4.h>, <@SSL_DIR@/inc32/openssl/md4.h>)
260 #pragma include_alias(<openssl/des_old.h>, <@SSL_DIR@/inc32/openssl/des_old.h>)
261 #pragma include_alias(<openssl/ui_compat.h>, <@SSL_DIR@/inc32/openssl/ui_compat.h>)
262 #pragma include_alias(<openssl/ui.h>, <@SSL_DIR@/inc32/openssl/ui.h>)
263 #pragma include_alias(<openssl/aes.h>, <@SSL_DIR@/inc32/openssl/aes.h>)
264 #pragma include_alias(<openssl/obj_mac.h>, <@SSL_DIR@/inc32/openssl/obj_mac.h>)
265 #pragma include_alias(<openssl/kssl.h>, <@SSL_DIR@/inc32/openssl/kssl.h>)
267 #ifdef _DEBUG
268 #define P_SSL_LIBDIR "out32.dbg"
269 #else
270 #define P_SSL_LIBDIR "out32"
271 #endif
273 #define P_SSL_LIB1 "@SSL_DIR@/" P_SSL_LIBDIR "/ssleay32.lib"
274 #define P_SSL_LIB2 "@SSL_DIR@/" P_SSL_LIBDIR "/libeay32.lib"
276 #endif
279 /////////////////////////////////////////////////
281 // EXPAT library for XML parsing
284 #undef P_EXPAT
286 #if defined(_MSC_VER) && P_EXPAT
288 #pragma include_alias(<expat.h>, <@EXPAT_DIR@/lib/expat.h>)
290 #ifdef _DEBUG
291 #define P_EXPAT_LIBDIR "Debug"
292 #else
293 #define P_EXPAT_LIBDIR "Release"
294 #endif
296 #define P_EXPAT_LIBRARY "@EXPAT_DIR@/" P_EXPAT_LIBDIR "/expat.lib"
298 #endif
301 /////////////////////////////////////////////////
303 // OpenLDAP
306 #undef P_LDAP
308 #if defined(_MSC_VER) && P_LDAP
310 #pragma include_alias(<ldap.h>, <@LDAP_DIR@/include/ldap.h>)
311 #pragma include_alias(<lber.h>, <@LDAP_DIR@/include/lber.h>)
312 #pragma include_alias(<lber_types.h>, <@LDAP_DIR@/include/lber_types.h>)
313 #pragma include_alias(<ldap_features.h>, <@LDAP_DIR@/include/ldap_features.h>)
314 #pragma include_alias(<ldap_cdefs.h>, <@LDAP_DIR@/include/ldap_cdefs.h>)
316 #ifdef _DEBUG
317 #define P_LDAP_LIBRARY "@LDAP_DIR@/DLLDebug/openldapd.lib"
318 #else
319 #define P_LDAP_LIBRARY "@LDAP_DIR@/DLLRelease/openldap.lib"
320 #endif
322 #endif
325 /////////////////////////////////////////////////
327 // DNS resolver
330 #undef P_DNS
332 #if defined(_MSC_VER) && P_DNS
334 #pragma include_alias(<windns.h>, <@DNS_DIR@/Include/windns.h>)
336 #define P_DNS_LIBRARY "@DNS_DIR@/Lib/DnsAPI.Lib"
338 #endif
342 /////////////////////////////////////////////////
344 // SAPI speech API (Windows only)
347 #undef P_SAPI
349 #if defined(_MSC_VER) && P_SAPI
351 #pragma include_alias(<sphelper.h>, <@SAPI_DIR@/include/sphelper.h>)
352 #pragma include_alias(<sapi.h>, <@SAPI_DIR@/include/sapi.h>)
353 #pragma include_alias(<sapiddk.h>, <@SAPI_DIR@/include/sapiddk.h>)
354 #pragma include_alias(<SPError.h>, <@SAPI_DIR@/include/SPError.h>)
355 #pragma include_alias(<SPDebug.h>, <@SAPI_DIR@/include/SPDebug.h>)
357 #define P_SAPI_LIBRARY "@SAPI_DIR@/Lib/i386/sapi.lib"
359 #endif
363 /////////////////////////////////////////////////
365 // Cyrus SASL
368 #undef P_SASL
369 #undef P_SASL2
370 #undef P_HAS_SASL_SASL_H
372 #if defined(_MSC_VER) && (defined(P_SASL) || defined(P_SASL2))
374 #pragma include_alias(<sasl/sasl.h>, <@SASL_DIR@/include/sasl.h>)
376 #define P_SASL_LIBRARY "@SASL_DIR@/lib/libsasl.lib"
377 #define P_HAS_SASL_SASL_H 1
379 #endif
383 /////////////////////////////////////////////////
385 // SDL toolkit
388 #undef P_SDL
390 #if defined(_MSC_VER) && P_SDL
391 #pragma include_alias(<SDL/SDL.h>, <@SDL_DIR@/include/SDL.h>)
393 #undef P_SDL_LIBDIR
395 #ifndef P_SDL_LIBDIR
396 #ifdef _DEBUG
397 #define P_SDL_LIBDIR "VisualC/SDL/Debug"
398 #else
399 #define P_SDL_LIBDIR "VisualC/SDL/Release"
400 #endif
401 #endif
403 #define P_SDL_LIBRARY "@SDL_DIR@/" P_SDL_LIBDIR "/SDL.lib"
405 #endif
408 /////////////////////////////////////////////////
410 // Runtime dynamic link libraries
413 #undef P_DYNALINK
414 #undef P_HAS_PLUGINS
415 #undef P_DEFAULT_PLUGIN_DIR
417 /////////////////////////////////////////////////
419 // Regex library
422 #undef P_REGEX
424 /////////////////////////////////////////////////
426 // Video capture (Linux and xBSD)
429 #undef NO_VIDEO_CAPTURE
432 /////////////////////////////////////////////////
434 // Firewire (Linux only)
437 #undef TRY_1394AVC
438 #undef TRY_1394DC
441 /////////////////////////////////////////////////
443 // PThreads and related vars
446 #undef P_PTHREADS
447 #undef P_HAS_SEMAPHORES
448 #undef P_PTHREADS_XPG6
449 #undef P_HAS_SEMAPHORES_XPG6
451 /////////////////////////////////////////////////
453 // various functions
455 #undef USE_SYSTEM_SWAB
457 #undef PWLIB_MAJOR
458 #undef PWLIB_MINOR
459 #undef PWLIB_BUILD
460 #undef PWLIB_VERSION
462 #undef P_64BIT
463 #undef PHAS_TEMPLATES
464 #undef PNO_LONG_DOUBLE
465 #undef P_HAS_POSIX_READDIR_R
466 #undef P_HAS_STL_STREAMS
467 #undef P_HAS_ATOMIC_INT
468 #undef P_HAS_RECURSIVE_MUTEX
469 #undef P_NEEDS_GNU_CXX_NAMESPACE
470 #undef PMEMORY_CHECK
472 #endif // _PT_BUILDOPTS_H
475 // End Of File ///////////////////////////////////////////////////////////////