1 AC_INIT(include/opal/manager.h)
6 dnl this must be updated for every minor revision, and for
7 dnl builds when and as necessary
9 REQUIRED_PWLIB_MINOR=10
10 REQUIRED_PWLIB_BUILD=0
12 dnl ########################################################################
13 dnl set the OPAL directory to the current directory
18 dnl ########################################################################
19 dnl set the PREFIX accordingly
20 if test "x$prefix" = "xNONE"; then
21 INSTALLPREFIX="/usr/local"
23 INSTALLPREFIX="${prefix}"
26 AC_SUBST(INSTALLPREFIX)
28 dnl ########################################################################
29 dnl set LIBDIR accordingly
34 dnl ########################################################################
35 dnl extract the OPAL version
37 dnl MSWIN_DISPLAY version,Version
38 dnl MSWIN_VERSION version,OPAL_MAJOR=MAJOR_VERSION
39 dnl MSWIN_VERSION version,OPAL_MINOR=MINOR_VERSION
40 dnl MSWIN_VERSION version,OPAL_BUILD=BUILD_NUMBER
41 dnl MSWIN_VERSION version,OPAL_VERSION=VERSION
43 MAJOR_VERSION=`cat ${OPALDIR}/version.h | grep MAJOR_VERSION | cut -f3 -d' '`
44 MINOR_VERSION=`cat ${OPALDIR}/version.h | grep MINOR_VERSION | cut -f3 -d' '`
45 BUILD_NUMBER=`cat ${OPALDIR}/version.h | grep BUILD_NUMBER | cut -f3 -d' '`
46 OPAL_VERSION="${MAJOR_VERSION}.${MINOR_VERSION}.${BUILD_NUMBER}"
47 AC_DEFINE_UNQUOTED(OPAL_MAJOR, ${MAJOR_VERSION})
48 AC_DEFINE_UNQUOTED(OPAL_MINOR, ${MINOR_VERSION})
49 AC_DEFINE_UNQUOTED(OPAL_BUILD, ${BUILD_NUMBER})
50 AC_DEFINE_UNQUOTED(OPAL_VERSION, "$OPAL_VERSION")
53 dnl ########################################################################
54 dnl look for ptlib, use a preference order of explicit PWLIBDIR, directory
55 dnl at same level, home directory, /usr/local or /usr.
57 if test "${PWLIBDIR:-unset}" != "unset" ; then
58 AC_CHECK_FILE(${PWLIBDIR}/version.h, HAS_PTLIB=1)
60 if test "${HAS_PTLIB:-unset}" = "unset" ; then
61 AC_CHECK_FILE(${OPALDIR}/../pwlib/version.h, HAS_PTLIB=1)
62 if test "${HAS_PTLIB:-unset}" != "unset" ; then
63 PWLIBDIR="${OPALDIR}/../pwlib"
65 AC_CHECK_FILE(${HOME}/pwlib/include/ptlib.h, HAS_PTLIB=1)
66 if test "${HAS_PTLIB:-unset}" != "unset" ; then
67 PWLIBDIR="${HOME}/pwlib"
69 AC_CHECK_FILE(/usr/local/include/ptlib.h, HAS_PTLIB=1)
70 if test "${HAS_PTLIB:-unset}" != "unset" ; then
71 AC_PATH_PROG(PTLIB_CONFIG, ptlib-config, , /usr/local/bin)
73 AC_CHECK_FILE(/usr/include/ptlib.h, HAS_PTLIB=1)
74 if test "${HAS_PTLIB:-unset}" != "unset" ; then
75 AC_PATH_PROG(PTLIB_CONFIG, ptlib-config, , /usr/share/pwlib/make/)
82 if test "${HAS_PTLIB:-unset}" = "unset" ; then
83 echo "Cannot find pwlib - please install or set PWLIBDIR and try again"
87 if test "${PWLIBDIR:-unset}" = "unset" ; then
88 if test "${PTLIB_CONFIG:-unset}" = "unset" ; then
89 echo "Cannot find ptlib-config - please install and try again"
92 PWLIBDIR=`$PTLIB_CONFIG --prefix`
95 if test "x$PWLIBDIR" = "x/usr" -o "x$PWLIBDIR" = "x/usr/"; then
96 PWLIBDIR="/usr/share/pwlib/"
98 if test "x$PWLIBDIR" = "x/usr/local" -o "x$PWLIBDIR" = "x/usr/"; then
99 PWLIBDIR="/usr/local/share/pwlib/"
102 echo "PWLib prefix set to.... $PWLIBDIR"
104 if test "${PWLIBDIR:-unset}" = "unset" ; then
105 PWVERSION=`$PTLIB_CONFIG --version`
106 PW_MAJOR_VERSION=`echo $PW_VERSION | cut -d'.' -f1`
107 PW_MINOR_VERSION=`echo $PW_VERSION | cut -d'.' -f2`
108 PW_BUILD_NUMBER=`echo $PW_VERSION | cut -d'.' -f3`
111 PW_MAJOR_VERSION=`cat ${PWLIBDIR}/version.h | grep MAJOR_VERSION | cut -f3 -d' '`
112 PW_MINOR_VERSION=`cat ${PWLIBDIR}/version.h | grep MINOR_VERSION | cut -f3 -d' '`
113 PW_BUILD_NUMBER=`cat ${PWLIBDIR}/version.h | grep BUILD_NUMBER | cut -f3 -d' '`
114 PWVERSION="${PW_MAJOR_VERSION}.${PW_MINOR_VERSION}.${PW_BUILD_NUMBER}"
117 AC_ARG_ENABLE(versioncheck,
118 [ --disable-versioncheck disable PWLib version check],
119 PWLIB_VERSION_CHECK=$enableval)
121 AC_MSG_CHECKING(Checking PWLib version ${PWVERSION})
122 if test "${PWLIB_VERSION_CHECK}x" = "nox" ; then
123 AC_MSG_RESULT(check disabled)
125 if test $PW_MAJOR_VERSION -lt $REQUIRED_PWLIB_MAJOR ; then
126 AC_MSG_RESULT(Major version less than required $REQUIRED_PWLIB_MAJOR)
129 if test $PW_MINOR_VERSION -lt $REQUIRED_PWLIB_MINOR ; then
130 AC_MSG_RESULT(Minor version less than required $REQUIRED_PWLIB_MINOR)
133 if test $PW_BUILD_NUMBER -lt $REQUIRED_PWLIB_BUILD ; then
134 AC_MSG_RESULT(Build version less than required $REQUIRED_PWLIB_BUILD)
142 dnl ########################################################################
143 dnl get the gcc version
145 if test x$GXX = xyes ; then
147 gcc_version=`$CXX -dumpversion`
148 AC_MSG_NOTICE(gcc version is $gcc_version);
149 GXX_MAJOR=`echo $gcc_version | sed 's/\..*$//'`
150 GXX_MINOR=[`echo $gcc_version | sed -e 's/[0-9][0-9]*\.//' -e 's/\..*$//'`]
151 GXX_PATCH=[`echo $gcc_version | sed -e 's/[0-9][0-9]*\.[0-9][0-9]*\.//' -e 's/\..*$//'`]
153 dnl cannot compile for less than gcc 3
154 AC_MSG_CHECKING(checking if gcc version is valid)
155 if test ${GXX_MAJOR} -lt 3 ; then
157 AC_MSG_ERROR([OPAL requires gcc version 3 or later])
164 dnl ########################################################################
165 dnl Look for H263 codec
166 AC_ARG_ENABLE(h263avcodec,
167 [ --enable-h263avcodec specify RFC 2190 compatible avcodec
169 RFC2190_AVCODEC_DIR=$enableval)
171 if test "${RFC2190_AVCODEC_DIR}x" = "x" ; then
172 AC_MSG_NOTICE(Skipping tests for RFC 2190 H.263 support)
174 AC_MSG_NOTICE(Searching for standard RFC2190 compliant H.263 codec)
176 dnl ################################################################
177 dnl look for avcodec compatible with RFC 2190
179 dnl MSWIN_DISPLAY h263avcodec,ffmpeg RFC2190 Library
180 dnl MSWIN_CHECK_FILE h263avcodec,avcodec_rfc2190.h,RFC2190_AVCODEC=1
181 dnl MSWIN_DIR_SYMBOL h263avcodec,RFC2190_AVCODEC_DIR
182 dnl MSWIN_CHECK_DIR h263avcodec,..\ffmpeg\libavcodec\
183 dnl MSWIN_CHECK_DIR h263avcodec,..\external\ffmpeg\libavcodec\
184 dnl MSWIN_CHECK_DIR h263avcodec,\ffmpeg\libavcodec\
185 dnl MSWIN_CHECK_DIR h263avcodec,c:\ffmpeg\libavcodec\
187 AC_CHECK_HEADER(${RFC2190_AVCODEC_DIR}/avcodec.h, RFC2190_AVCODEC=1)
188 if test "${RFC2190_AVCODEC}" == "1" ; then
189 AC_SUBST(RFC2190_AVCODEC, 1)
190 AC_DEFINE(RFC2190_AVCODEC, 1, "FFMPEG standard, RFC2190 compliant H.263 codec found")
191 AC_SUBST(RFC2190_AVCODEC_DIR, ${RFC2190_AVCODEC_DIR})
192 STDCCFLAGS="${STDCCFLAGS} -I${RFC2190_AVCODEC_DIR}"
194 AC_SUBST(RFC2190_AVCODEC)
198 dnl ########################################################################
199 dnl Look for system libspeex
201 AC_ARG_ENABLE(localspeex,
202 [ --enable-localspeex use local version of Speex library rather than system version],
203 localspeex=$enableval)
205 AC_CHECK_SIZEOF(short)
207 AC_CHECK_SIZEOF(long)
208 AC_CHECK_SIZEOF(long long)
211 $ac_cv_sizeof_short) SIZE16="short";;
212 $ac_cv_sizeof_int) SIZE16="int";;
216 $ac_cv_sizeof_int) SIZE32="int";;
217 $ac_cv_sizeof_long) SIZE32="long";;
218 $ac_cv_sizeof_short) SIZE32="short";;
225 OPAL_HAVE_SPEEX_SPEEX_H=
226 AC_CHECK_HEADERS("speex.h", OPAL_HAVE_SPEEX_H=1)
227 if test "${OPAL_HAVE_SPEEX_H}x" != "x" ; then
228 AC_DEFINE(OPAL_HAVE_SPEEX_H)
230 AC_CHECK_HEADERS("speex/speex.h", OPAL_HAVE_SPEEX_SPEEX_H=1)
231 if test "${OPAL_HAVE_SPEEX_SPEEX_H}x" != "x" ; then
232 AC_DEFINE(OPAL_HAVE_SPEEX_SPEEX_H)
236 if test "${localspeex}" = "yes" ; then
237 AC_MSG_NOTICE(Forcing use of OPAL Speex sources)
238 elif test "${localspeex}" = "no" ; then
239 AC_MSG_NOTICE(Forcing use of system Speex library)
240 AC_DEFINE(OPAL_SYSTEM_SPEEX, 1)
241 AC_SUBST(OPAL_SYSTEM_SPEEX, 1)
243 AC_CHECK_LIB(speex, speex_encoder_destroy, SPEEX=1)
244 if test "${SPEEX}x" != "x" ; then
245 AC_CHECK_LIB(speex, speex_encode_int, SPEEX=1, unset SPEEX)
247 if test "x$SPEEX" = "x" -o \( "${OPAL_HAVE_SPEEX_H}x" = "x" -a "${OPAL_HAVE_SPEEX_SPEEX_H}x" = "x" \); then
248 AC_MSG_NOTICE(Forcing use of OPAL Speex library)
250 AC_MSG_CHECKING(system Speex version)
251 if test "${OPAL_HAVE_SPEEX_H}x" != "x" ; then
252 echo "#include <speex.h>" > t.c
253 echo "#include <speex_header.h>" >> t.c
255 echo "#include <speex/speex.h>" > t.c
256 echo "#include <speex/speex_header.h>" >> t.c
260 int main(int argc,char *argv[])
263 speex_init_header(&header, 1, 1, &speex_nb_mode);
264 printf("%s\n", header.speex_version);
267 cc -o t t.c -lspeex > /dev/null 2>&1
268 if test \! -x t ; then
269 AC_MSG_RESULT(cannot determine - using OPAL version)
272 AC_MSG_RESULT($SYSVER)
273 AC_MSG_CHECKING(library Speex version)
274 LIBVER=`grep "#define SPEEX_VERSION" ./src/codec/speex/libspeex/misc.h | sed -e 's/^.*[Ss][Pp][Ee][Ee][Xx]\-//' -e 's/\"//' -e 's/\/.*//'`
275 AC_MSG_RESULT($LIBVER)
276 AC_MSG_CHECKING(Speex versions)
281 @lib = split /\./, \$libver;
285 @sys = split /\./, \$sysver;
291 if (@sys[\$i] < @lib[\$i]) {
300 SPEEX=`perl t.pl $SYSVER $LIBVER`
302 if test "x$SPEEX" = "x0" ; then
303 AC_MSG_RESULT(OPAL version is more recent)
305 AC_MSG_RESULT(system version is more recent)
306 AC_DEFINE(OPAL_SYSTEM_SPEEX, 1)
307 AC_SUBST(OPAL_SYSTEM_SPEEX, 1)
308 AC_MSG_CHECKING(Speex noise type)
309 if test "${OPAL_HAVE_SPEEX_H}x" != "x" ; then
310 echo "#include <speex.h>" > t.c
311 echo "#include <speex_preprocess.h>" >> t.c
313 echo "#include <speex/speex.h>" > t.c
314 echo "#include <speex/speex_preprocess.h>" >> t.c
318 int main(int argc,char *argv[])
320 struct SpeexPreprocessState *st;
323 speex_preprocess(st, x, echo);
327 cc -Werror -o t t.c -lspeex > /dev/null 2>&1
328 if test \! -x t ; then
329 AC_MSG_RESULT(spx_int32_t)
332 AC_DEFINE(OPAL_SPEEX_FLOAT_NOISE)
340 AC_SUBST(OPAL_HAVE_SPEEX_SPEEX_H)
342 dnl ########################################################################
344 dnl Allow iLBC to be disabled for Debian compatibility
346 dnl MSWIN_DISPLAY ilbc,iLBC support
347 dnl MSWIN_DEFINE ilbc,OPAL_ILBC
351 [ --disable-ilbc disable iLBC codec support],
353 AC_MSG_CHECKING(iLBC codec)
354 if test "$ilbc" != "yes" ; then
356 AC_MSG_RESULT(disabled)
357 elif test -f src/codec/ilbccodec.cxx && test -f src/codec/iLBC/iLBC_encode.c ; then
359 AC_MSG_RESULT(enabled)
362 AC_MSG_RESULT(not present)
365 if test "$ilbc" = "yes" ; then
366 AC_SUBST(OPAL_ILBC, 1)
370 dnl ########################################################################
371 dnl enable audio, video, T.38
373 dnl MSWIN_DISPLAY audio,Audio
374 dnl MSWIN_DEFINE audio,OPAL_AUDIO
375 AC_SUBST(OPAL_AUDIO, 1)
376 AC_DEFINE(OPAL_AUDIO)
378 dnl MSWIN_DISPLAY video,Video
379 dnl MSWIN_DEFINE video,OPAL_VIDEO
380 AC_SUBST(OPAL_VIDEO, 1)
381 AC_DEFINE(OPAL_VIDEO)
383 dnl ########################################################################
384 dnl check if SIP, H.323, IAX2 and T.38 are enabled
386 dnl MSWIN_DISPLAY sip,SIP support
387 dnl MSWIN_DEFINE sip,OPAL_SIP
391 [ --disable-sip disable SIP protocol support],
393 AC_MSG_CHECKING(SIP protocol)
394 if test "$sip" = "yes" ; then
395 AC_SUBST(OPAL_SIP, 1)
397 AC_MSG_RESULT(enabled)
399 AC_MSG_RESULT(disabled)
402 dnl MSWIN_DISPLAY h323,H.323 support
403 dnl MSWIN_DEFINE h323,OPAL_H323
405 dnl MSWIN_DISPLAY t38,T.38
406 dnl MSWIN_DEFINE t38,OPAL_T38FAX
407 dnl MSWIN_IF_FEATURE t38,h323
412 [ --disable-h323 disable H.323 protocol support],
414 AC_MSG_CHECKING(H.323 protocol)
415 if test "$h323" = "yes" ; then
416 AC_SUBST(OPAL_H323, 1)
418 AC_MSG_RESULT(enabled)
420 AC_MSG_RESULT(disabled (T.38 also disabled))
423 AC_SUBST(OPAL_H323, $OPAL_H323)
425 if test "$t38" = "yes" ; then
427 [ --disable-t38 disable T.38 protocol support],
429 AC_MSG_CHECKING(T.38 protocol)
430 if test "$t38" = "yes" ; then
431 AC_SUBST(OPAL_T38FAX, 1)
432 AC_DEFINE(OPAL_T38FAX)
433 AC_MSG_RESULT(enabled)
435 AC_MSG_RESULT(disabled)
439 dnl MSWIN_DISPLAY iax2,IAX2 support
440 dnl MSWIN_DEFINE iax2,OPAL_IAX2
444 [ --disable-iax disable IAX2 protocol support],
446 AC_MSG_CHECKING(IAX2 protocol)
447 if test "$iax" = "yes" ; then
448 AC_SUBST(OPAL_IAX2, 1)
450 AC_MSG_RESULT(enabled)
452 AC_MSG_RESULT(disabled)
455 dnl MSWIN_DISPLAY h224,H.224 support
456 dnl MSWIN_DEFINE h224,OPAL_H224
460 [ --disable-h224 disable H.224 protocol support],
462 AC_MSG_CHECKING(H224 protocol)
463 if test "$h224" = "yes" ; then
464 AC_SUBST(OPAL_H224, 1)
466 AC_MSG_RESULT(enabled)
468 AC_MSG_RESULT(disabled)
471 dnl ########################################################################
475 dnl MSWIN_DISPLAY h460,H.460
476 dnl MSWIN_DEFINE h460,H323_H460
479 [ --disable-h460 disable H.460])
480 if test "${enable_h460}x" = "x" ; then
483 if test "$enable_h460" == "yes" ; then
485 AC_DEFINE(H323_H460, 1)
488 AC_MSG_NOTICE(Disabling H.460)
492 dnl ########################################################################
494 dnl Quicknet xJACK cards
496 dnl MSWIN_DISPLAY ixj,Quicknet Internet xJACK cards
497 dnl MSWIN_DEFINE ixj,HAS_IXJ
500 AC_CHECK_HEADERS(linux/telephony.h sys/telephony.h /usr/local/include/sys/telephony.h, HAS_IXJ=1)
501 if test "x$HAS_IXJ" != "x" ; then
502 AC_MSG_CHECKING(if ixjuser.h actually compiles)
503 AC_TRY_COMPILE([#include <linux/ixjuser.h>],
504 [int main(int ac,char **av) { return 0; }], HAS_IXJ=1, HAS_IXJ=)
505 if test "x$HAS_IXJ" != "x" ; then
507 AC_DEFINE(HAS_IXJ, 1)
516 dnl ########################################################################
520 dnl MSWIN_DISPLAY vblaster,Voice Blaster
521 dnl MSWIN_DEFINE vblaster,HAS_VBLASTER
523 dnl ########################################################################
525 dnl LID, used for vpb, dialogic etc ...
527 AC_DEFINE(OPAL_LID, 1)
531 dnl ########################################################################
533 dnl VoiceTronics VPB card
535 dnl MSWIN_DISPLAY vpb,VoiceTronics VPB
536 dnl MSWIN_CHECK_FILE vpb,src\vpbapi.h,HAS_VPB=1
537 dnl MSWIN_DIR_SYMBOL vpb,VPB_DIR
538 dnl MSWIN_CHECK_DIR vpb,..\vpb-driver\
539 dnl MSWIN_CHECK_DIR vpb,..\external\vpb-driver
540 dnl MSWIN_CHECK_DIR vpb,\vpb-driver
541 dnl MSWIN_CHECK_DIR vpb,c:\vpb-driver
543 dnl MSWIN_DISPLAY vpb,Voicetrnix vpb support
544 dnl MSWIN_DEFINE vpb,HAS_VPB
548 [ --enable-vpb enable voicetronix vpb],
550 AC_MSG_CHECKING(Voicetronix vpb)
551 if test "$vpb" = "yes" ; then
554 AC_MSG_RESULT(enabled)
555 AC_SUBST(OPAL_LID, 1)
559 AC_MSG_RESULT(disabled)
562 dnl ########################################################################
564 dnl Sangoma libraries
567 OLD_CPPFLAGS=$CPPFLAGS
571 AC_CHECK_HEADERS(/usr/local/include/libpri.h, HAS_SANGOMA=1)
572 if test "x$HAS_SANGOMA" != "x" ; then
573 AC_CHECK_HEADERS(/usr/local/include/libsangoma.h, HAS_SANGOMA=1)
574 if test "x$HAS_SANGOMA" != "x" ; then
575 AC_CHECK_LIB(pri, pri_new_cb, HAS_SANGOMA=1)
576 if test "x$HAS_SANGOMA" = "x" ; then
577 AC_MSG_NOTICE(*** If the latest libri is installed in /usr/local/lib, ensure it is not obscured by an older version in /usr/lib)
579 AC_CHECK_LIB(sangoma, sangoma_create_socket, HAS_SANGOMA=1)
580 if test "x$HAS_SANGOMA" != "x" ; then
581 AC_DEFINE(HAS_SANGOMA, 1)
587 AC_SUBST(HAS_SANGOMA)
589 CPPFLAGS=$OLD_CPPFLAGS
592 dnl ########################################################################
593 dnl output make directives
600 dnl ########################################################################
601 dnl output header file
603 AC_CONFIG_FILES(opal_inc.mak)
604 AC_CONFIG_FILES(Makefile)
605 AC_CONFIG_HEADERS(include/opal/buildopts.h)
607 AC_OUTPUT(src/codec/speex/libspeex/speex_config_types.h)