1/*
2 * buildopts.h
3 *
4 * Build options generated by the configure script.
5 *
6 * Portable Windows Library
7 *
8 * Copyright (c) 2003 Equivalence Pty. Ltd.
9 *
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/
14 *
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.
19 *
20 * The Original Code is Portable Windows Library.
21 *
22 * The Initial Developer of the Original Code is Equivalence Pty. Ltd.
23 *
24 * Contributor(s): ______________________________________.
25 *
26 * $Revision: 28259 $
27 * $Author: rjongbloed $
28 * $Date: 2012-08-28 00:01:10 -0500 (Tue, 28 Aug 2012) $
29 */
30
31#ifndef OPAL_BUILDOPTS_H
32#define OPAL_BUILDOPTS_H
33
34#include <ptbuildopts.h>
35
36/////////////////////////////////////////////////
37//
38// OPAL Version
39//
40
41#undef OPAL_MAJOR
42#undef OPAL_MINOR
43#undef OPAL_BUILD
44#undef OPAL_VERSION
45
46#define OPAL_CHECK_VERSION(major,minor,build) \
47          (PTLIB_VERSION_INT(OPAL_MAJOR,OPAL_MINOR,OPAL_BUILD) >= PTLIB_VERSION_INT(major,minor,build))
48
49#undef  OPAL_PTLIB_SSL
50#undef  OPAL_PTLIB_SSL_AES
51#undef  OPAL_PTLIB_ASN
52#undef  OPAL_PTLIB_EXPAT
53#undef  OPAL_PTLIB_AUDIO
54#undef  OPAL_PTLIB_VIDEO
55#undef  OPAL_PTLIB_WAVFILE
56#undef  OPAL_PTLIB_DTMF
57#undef  OPAL_PTLIB_IPV6
58#ifndef _WIN32_WCE
59#undef  OPAL_PTLIB_DNS
60#endif
61#ifndef P_IPHONEOS
62#undef  OPAL_PTLIB_LDAP
63#endif
64#undef  OPAL_PTLIB_VXML
65#undef  OPAL_PTLIB_CONFIG_FILE
66#undef  OPAL_AEC
67
68
69// If a "configure" did not set these variables above then they get set from PTlib variables
70
71#if defined(P_SSL) && !defined(OPAL_PTLIB_SSL)
72  #define  OPAL_PTLIB_SSL P_SSL
73#endif
74#if defined(P_SSL_AES) && !defined(OPAL_PTLIB_SSL_AES)
75  #define  OPAL_PTLIB_SSL_AES P_SSL_AES
76#endif
77#if defined(P_ASN) && !defined(OPAL_PTLIB_ASN)
78  #define  OPAL_PTLIB_ASN P_ASN
79#endif
80#if defined(P_EXPAT) && !defined(OPAL_PTLIB_EXPAT)
81  #define  OPAL_PTLIB_EXPAT P_EXPAT
82#endif
83#if defined(P_AUDIO) && !defined(OPAL_PTLIB_AUDIO)
84  #define  OPAL_PTLIB_AUDIO P_AUDIO
85#endif
86#if defined(P_VIDEO) && !defined(OPAL_PTLIB_VIDEO)
87  #define  OPAL_PTLIB_VIDEO P_VIDEO
88#endif
89#if defined(P_WAVFILE) && !defined(OPAL_PTLIB_WAVFILE)
90  #define  OPAL_PTLIB_WAVFILE P_WAVFILE
91#endif
92#if defined(P_DTMF) && !defined(OPAL_PTLIB_DTMF)
93  #define  OPAL_PTLIB_DTMF P_DTMF
94#endif
95#if defined(P_HAS_IPV6) && !defined(OPAL_PTLIB_IPV6)
96  #define  OPAL_PTLIB_IPV6 P_HAS_IPV6
97#endif
98#if defined(P_DNS) && !defined(OPAL_PTLIB_DNS)
99  #define  OPAL_PTLIB_DNS P_DNS
100#endif
101#if defined(P_LDAP) && !defined(OPAL_PTLIB_LDAP)
102  #define  OPAL_PTLIB_LDAP P_LDAP
103#endif
104#if defined(P_VXML) && !defined(OPAL_PTLIB_VXML)
105  #define  OPAL_PTLIB_VXML P_VXML
106#endif
107#if defined(P_CONFIG_FILE) && !defined(OPAL_PTLIB_CONFIG_FILE)
108  #define  OPAL_PTLIB_CONFIG_FILE P_CONFIG_FILE
109#endif
110
111#undef  OPAL_PLUGIN_DIR
112
113// Video
114#if P_VIDEO
115  #undef  OPAL_VIDEO
116#endif
117
118
119/////////////////////////////////////////////////
120//
121// Protocol support
122//
123
124#undef  OPAL_IAX2
125#undef	OPAL_SIP
126#undef	OPAL_H323
127#undef  OPAL_LID
128#undef  OPAL_CAPI
129#undef  OPAL_T120DATA
130
131#if OPAL_PTLIB_VXML
132  #undef  OPAL_IVR
133#endif
134
135#if OPAL_H323
136  #if OPAL_VIDEO
137    #undef  OPAL_H239
138  #endif
139  #undef  OPAL_H501
140
141  #undef  OPAL_H450
142  #if OPAL_H450
143    #define H323_H450   OPAL_H450
144  #endif
145
146  #undef  OPAL_H460
147  #if OPAL_H460
148    #define H323_H460   OPAL_H460
149  #endif
150#else // OPAL_H323
151  #define H323_DISABLE_H225 1
152  #define H323_DISABLE_H235 1
153  #define H323_DISABLE_H245 1
154#endif // OPAL_H323
155
156
157#if !OPAL_H450
158  #define H323_DISABLE_X880 1
159  #define H323_DISABLE_H4501 1
160  #define H323_DISABLE_H4502 1
161  #define H323_DISABLE_H4503 1
162  #define H323_DISABLE_H4504 1
163  #define H323_DISABLE_H4505 1
164  #define H323_DISABLE_H4506 1
165  #define H323_DISABLE_H4507 1
166  #define H323_DISABLE_H4508 1
167  #define H323_DISABLE_H4509 1
168  #define H323_DISABLE_H45010 1
169  #define H323_DISABLE_H45011 1
170#endif
171
172
173#if !OPAL_T120DATA
174  #define H323_DISABLE_GCC 1
175  #define H323_DISABLE_MCS 1
176#endif // OPAL_T120DATA
177
178
179#if !OPAL_H501
180  #define H323_DISABLE_H501 1
181#endif
182
183
184/////////////////////////////////////////////////
185//
186// Various options
187//
188
189#undef  OPAL_STATISTICS
190#undef  OPAL_RTCP_XR
191#undef GCC_HAS_CLZ
192
193#undef OPAL_HAS_MIXER
194#if OPAL_PTLIB_AUDIO
195  #undef OPAL_HAS_PCSS
196#endif
197
198
199/////////////////////////////////////////////////
200//
201// Media support
202//
203
204// G.711 Packet Loss Concealment
205#undef  OPAL_G711PLC
206
207#if OPAL_VIDEO
208  // Uncompressed video over RTP
209  #undef  OPAL_RFC4175
210
211  // JPEG over RTP
212  #undef  OPAL_RFC2435
213
214  #if OPAL_RFC2435
215    #if defined(_MSC_VER)
216      #define JPEGLIB_LIBRARY "@JPEGLIB_DIR@/../lib/jpeg.lib"
217      #pragma include_alias(<jpeglib.h>, <@JPEGLIB_DIR@/jpeglib.h>)
218    #endif
219  #endif
220#endif
221
222
223// T.38 Fax
224#undef  OPAL_T38_CAPABILITY
225
226#if OPAL_T38_CAPABILITY
227  #if OPAL_PTLIB_ASN
228    #undef  OPAL_FAX
229  #endif
230#endif
231
232#if !OPAL_FAX
233  #define H323_DISABLE_T38 1
234#endif
235
236
237// Instant Messaging
238#undef OPAL_HAS_MSRP
239#if OPAL_SIP
240  #undef OPAL_HAS_SIPIM
241#endif
242#undef OPAL_HAS_RFC4103
243
244#define OPAL_HAS_IM    (OPAL_HAS_SIPIM || OPAL_HAS_MSRP || OPAL_HAS_RFC4103)
245
246
247// Far end camera control
248#undef  OPAL_HAS_H224
249#undef  OPAL_HAS_H281
250
251
252// Use system Speex audio codec
253#undef	OPAL_SYSTEM_SPEEX
254#undef  OPAL_HAVE_SPEEX_SPEEX_H
255#undef  OPAL_SPEEX_FLOAT_NOISE
256
257
258/////////////////////////////////////////////////
259//
260// VoiceTronic VPB Line Interface Devide support
261//
262
263#if OPAL_LID
264  #undef HAS_VPB
265
266  #if HAS_VPB
267    #if defined(_MSC_VER)
268      #pragma include_alias(<vpbapi.h>, <@VPB_DIR@/src/vpbapi.h>)
269      #define VPB_LIBRARY "@VPB_DIR@/win32/libvpb/Debug/libvpb.lib"
270    #endif
271  #endif
272#endif
273
274
275/////////////////////////////////////////////////
276//
277// libSRTP support
278//
279
280/* Temporarily disabled as is currently broken, doesn't work,
281    probably doesn't even compile, need to sort out API to enable/disable,
282    add SDP and H.245 handling, and link into libsrtp
283*/
284//#undef HAS_LIBSRTP
285
286#if HAS_LIBSRTP && !OPAL_ZRTP && !defined(_WIN32_WCE)
287
288  #define OPAL_SRTP  1
289
290  #if defined(_MSC_VER)
291
292    #pragma include_alias("srtp/srtp.h",         "@LIBSRTP_DIR@/include/srtp.h")
293    #pragma include_alias(<srtp/include/srtp.h>, <@LIBSRTP_DIR@/include/srtp.h>)
294    #pragma include_alias("crypto_kernel.h",     "@LIBSRTP_DIR@/crypto/include/crypto_kernel.h")
295    #pragma include_alias("rdbx.h",              "@LIBSRTP_DIR@/crypto/include/rdbx.h")
296    #pragma include_alias("rdb.h",               "@LIBSRTP_DIR@/crypto/include/rdb.h")
297    #pragma include_alias("integers.h",          "@LIBSRTP_DIR@/crypto/include/integers.h")
298
299    #ifdef _DEBUG
300      #define LIBSRTP_LIBRARY "@LIBSRTP_DIR@/Debug/libsrtp.lib"
301    #else
302      #define LIBSRTP_LIBRARY "@LIBSRTP_DIR@/Release/libsrtp.lib"
303    #endif
304  #endif
305#endif
306
307
308/////////////////////////////////////////////////
309//
310// libZRTP support
311//
312
313/* Temporarily disabled as is currently broken, doesn't work,
314    probably doesn't even compile, need to sort out API to enable/disable as
315    well as getting the pass code back to user, and link into libzrtp
316*/
317//#undef HAS_LIBZRTP
318
319#if defined(OPAL_SRTP) && defined(HAS_LIBZRTP) && !defined(_WIN32_WCE)
320
321  #define OPAL_ZRTP  1
322
323  #if defined(_MSC_VER)
324
325    #ifdef _DEBUG
326      #define LIBZRTP_LIBRARY "@LIBZRTP_DIR@/Debug/libzrtp.lib"
327    #else
328      #define LIBZRTP_LIBRARY "@LIBZRTP_DIR@/Release/libzrtp.lib"
329    #endif
330
331    #pragma comment(lib, LIBZRTP_LIBRARY)
332
333    #pragma include_alias("WINCONFIG/config.h",         "@LIBZRTP_DIR@/srtp_win32k/WINCONFIG/config.h")
334    #pragma include_alias("WINCONFIG\config.h",         "@LIBZRTP_DIR@/srtp_win32k/WINCONFIG/config.h")
335
336    #pragma include_alias(<zrtp.h>,                     <@LIBZRTP_DIR@/include/zrtp.h>)
337    #pragma include_alias(<zrtp_log.h>,                 <@LIBZRTP_DIR@/include/zrtp_log.h>)
338    #pragma include_alias(<zrtp_types.h>,               <@LIBZRTP_DIR@/include/zrtp_types.h>)
339    #pragma include_alias(<zrtp_crypto.h>,              <@LIBZRTP_DIR@/include/zrtp_crypto.h>)
340    #pragma include_alias(<zrtp_protocol.h>,            <@LIBZRTP_DIR@/include/zrtp_protocol.h>)
341    #pragma include_alias(<zrtp_string.h>,              <@LIBZRTP_DIR@/include/zrtp_string.h>)
342    #pragma include_alias(<zrtp_iface.h>,               <@LIBZRTP_DIR@/include/zrtp_iface.h>)
343    #pragma include_alias(<zrtp_error.h>,               <@LIBZRTP_DIR@/include/zrtp_error.h>)
344    #pragma include_alias(<zrtp_net.h>,                 <@LIBZRTP_DIR@/include/zrtp_net.h>)
345    #pragma include_alias(<zrtp_system.h>,              <@LIBZRTP_DIR@/include/zrtp_system.h>)
346    #pragma include_alias("bn.h",                       "@LIBZRTP_DIR@/bnlib/bn.h")
347    #pragma include_alias(<bn.h>,                       <@LIBZRTP_DIR@/bnlib/bn.h>)
348    #pragma include_alias("bnsize00.h",                 "@LIBZRTP_DIR@/bnlib/bnsize00.h")
349    #pragma include_alias(<bnsize00.h>,                 <@LIBZRTP_DIR@/bnlib/bnsize00.h>)
350
351    #pragma include_alias("aes.h",                      "@LIBZRTP_DIR@/bgaes/aes.h")
352    #pragma include_alias("sha2.h",                     "@LIBZRTP_DIR@/bgaes/sha2.h")
353
354    #pragma include_alias("zrtp_win_config.h",          "@LIBZRTP_DIR@/config/zrtp_win_config.h")
355
356
357    // ZRTP includes SRTP, so include SRTP headers
358
359    #pragma include_alias("srtp.h",              "@LIBZRTP_DIR@/srtp_win32k/include/srtp.h")
360    #pragma include_alias(<srtp.h>,              <@LIBZRTP_DIR@/srtp_win32k/include/srtp.h>)
361    #pragma include_alias("srtp/srtp.h",         "@LIBZRTP_DIR@/srtp_win32k/include/srtp.h")
362    #pragma include_alias(<srtp/include/srtp.h>, <@LIBZRTP_DIR@/srtp_win32k/include/srtp.h>)
363    #pragma include_alias("crypto_kernel.h",     "@LIBZRTP_DIR@/srtp_win32k/crypto/include/crypto_kernel.h")
364    #pragma include_alias("rdbx.h",              "@LIBZRTP_DIR@/srtp_win32k/crypto/include/rdbx.h")
365    #pragma include_alias("rdb.h",               "@LIBZRTP_DIR@/srtp_win32k/crypto/include/rdb.h")
366    #pragma include_alias("integers.h",          "@LIBZRTP_DIR@/srtp_win32k/crypto/include/integers.h")
367
368    // end of SRTP headers
369
370  #endif
371#endif
372
373
374/////////////////////////////////////////////////
375//
376// Java JNI support
377//
378
379#undef OPAL_JAVA
380
381#if OPAL_JAVA
382  #if defined(_MSC_VER)
383    #pragma include_alias(<jni.h>,    <@JAVA_DIR@/include/jni.h>)
384    #pragma include_alias("jni_md.h", "@JAVA_DIR@/include/win32/jni_md.h")
385  #endif
386#endif
387
388
389/////////////////////////////////////////////////
390//
391// Ruby support
392//
393
394#if !defined(_WIN32_WCE)
395#undef OPAL_RUBY
396#endif
397
398#if OPAL_RUBY
399
400  #if defined(_MSC_VER)
401    #define RUBY_MSC_VER 1200
402
403    #pragma include_alias(<ruby.h>, <@RUBY_DIR@/ruby.h>)
404    #pragma include_alias("ruby/config.h", "@RUBY_DIR@/i386-mswin32/ruby/config.h")
405    #pragma include_alias("ruby/io.h", "@RUBY_DIR@/ruby/io.h")
406    #pragma include_alias("ruby/encoding.h", "@RUBY_DIR@/ruby/encoding.h")
407    #pragma include_alias("ruby/oniguruma.h", "@RUBY_DIR@/ruby/oniguruma.h")
408
409    #define RUBY_LIBRARY "@RUBY_DIR@/../../lib/msvcrt-ruby191.lib"
410  #endif
411
412#endif
413
414
415#endif // OPAL_BUILDOPTS_H
416
417
418// End Of File ///////////////////////////////////////////////////////////////
419