1AC_INIT(include/ptlib.h) 2 3AC_CONFIG_SUBDIRS(plugins) 4 5PKG_PROG_PKG_CONFIG() 6if test -z "$PKG_CONFIG" ; then 7 AC_MSG_ERROR(PTLib must have pkg-config installed, 1) 8fi 9 10AC_PROG_CC 11AC_PROG_CXX 12 13AC_LANG(C++) 14 15m4_include(ptlib.m4) 16 17dnl ######################################################################## 18dnl set the PREFIX accordingly 19if test "x$prefix" = "xNONE"; then 20 if test "x$PTLIBDIR" = "x"; then 21 prefix="/usr/local" 22 else 23 prefix="$PTLIBDIR" 24 AC_MSG_NOTICE(PTLIBDIR detected - setting install prefix to ${PTLIBDIR}) 25 fi 26fi 27 28 29dnl ######################################################################## 30dnl set the PTLIB directory to the current directory 31 32if test "x$PTLIBDIR" = "x"; then 33 PTLIBDIR=`pwd` 34fi 35 36AC_SUBST(PTLIBDIR) 37 38dnl set the PTLib installation dir for ptlib-config 39AC_SUBST(PTINSTDIR) 40 41 42dnl ######################################################################## 43dnl extract the PTLib version 44dnl MSWIN_DISPLAY version,Version 45dnl MSWIN_VERSION version,PTLIB_MAJOR=MAJOR_VERSION 46dnl MSWIN_VERSION version,PTLIB_MINOR=MINOR_VERSION 47dnl MSWIN_VERSION version,PTLIB_BUILD=BUILD_NUMBER 48dnl MSWIN_VERSION version,PTLIB_VERSION=VERSION 49 50MAJOR_VERSION=`cat ${PTLIBDIR}/version.h | grep MAJOR_VERSION | cut -f3 -d' '` 51MINOR_VERSION=`cat ${PTLIBDIR}/version.h | grep MINOR_VERSION | cut -f3 -d' '` 52BUILD_NUMBER=`cat ${PTLIBDIR}/version.h | grep BUILD_NUMBER | cut -f3 -d' '` 53PTLIB_VERSION="${MAJOR_VERSION}.${MINOR_VERSION}.${BUILD_NUMBER}" 54BUILD_TYPE=`cat ${PTLIBDIR}/version.h | grep BUILD_TYPE | cut -f 3 -d ' ' | sed 's/BetaCode/-beta/' | sed 's/AlphaCode/-alpha/' | sed 's/ReleaseCode/\./'` 55 56AC_SUBST(MAJOR_VERSION) 57AC_SUBST(MINOR_VERSION) 58AC_SUBST(BUILD_NUMBER) 59AC_SUBST(PTLIB_VERSION) 60AC_SUBST(BUILD_TYPE) 61AC_SUBST(MAJOR_VERSION, $MAJOR_VERSION) 62AC_SUBST(MINOR_VERSION, $MINOR_VERSION) 63AC_SUBST(BUILD_NUMBER, $BUILD_NUMBER) 64 65AC_MSG_NOTICE(PTLib version is ${PTLIB_VERSION}); 66 67AC_DEFINE_UNQUOTED([PTLIB_MAJOR], [$MAJOR_VERSION], [Major version]) 68AC_DEFINE_UNQUOTED([PTLIB_MINOR], [$MINOR_VERSION], [Minor version]) 69AC_DEFINE_UNQUOTED([PTLIB_BUILD], [$BUILD_NUMBER], [Build number]) 70AC_DEFINE_UNQUOTED([PTLIB_VERSION], ["$PTLIB_VERSION"], [PTLib version]) 71 72dnl ######################################################################## 73dnl check for minimum sizing 74 75AC_ARG_ENABLE(minsize,AS_HELP_STRING([--enable-minsize],[Minimise the size of the lib by disabling least used options])) 76 77dnl these are the default configure settings 78HAS_SAMPLES=no 79default_tracing=yes 80default_resolver=yes 81default_openldap=yes 82default_openssl=yes 83default_expat=yes 84default_sdl=yes 85default_sasl=yes 86default_mlib=no 87HAS_PLUGINS=1 88HAS_TTS=1 89HAS_ASN=1 90HAS_STUN=1 91HAS_PIPECHAN=1 92HAS_DTMF=1 93HAS_WAVFILE=1 94HAS_SOCKS=1 95HAS_FTP=1 96HAS_SNMP=1 97HAS_TELNET=1 98HAS_REMCONN=1 99HAS_SERIAL=1 100HAS_POP3SMTP=1 101HAS_AUDIO=1 102HAS_VIDEO=1 103HAS_URL=1 104HAS_HTTP=1 105HAS_HTTPFORMS=1 106HAS_HTTPSVC=1 107HAS_SOAP=1 108HAS_XMLRPC=1 109HAS_JABBER=1 110HAS_CONFIG_FILE=1 111default_ipv6=no 112HAS_QOS=1 113HAS_VIDFILE=1 114HAS_FFVDEV=1 115HAS_APPSHARE= 116HAS_SHM_VIDEO=1 117HAS_VXML=1 118HAS_LUA=1 119HAS_EXCEPTIONS= 120HAS_VFW_CAPTURE= 121 122if test "${enable_minsize}x" = "yesx" ; then 123 default_resolver=no 124 default_openldap=no 125 default_openssl=no 126 default_expat=no 127 default_sdl=no 128 default_sasl=no 129 default_mlib=no 130 HAS_PLUGINS=1 131 HAS_TTS= 132 HAS_ASN=1 133 HAS_STUN=1 134 HAS_PIPECHAN= 135 HAS_DTMF= 136 HAS_WAVFILE= 137 HAS_SOCKS= 138 HAS_FTP= 139 HAS_SNMP= 140 HAS_TELNET= 141 HAS_REMCONN= 142 HAS_SERIAL= 143 HAS_POP3SMTP= 144 HAS_AUDIO=1 145 HAS_VIDEO=1 146 HAS_URL=1 147 HAS_HTTP=1 148 HAS_HTTPFORMS= 149 HAS_HTTPSVC= 150 HAS_SOAP= 151 HAS_XMLRPC= 152 HAS_JABBER= 153 HAS_CONFIG_FILE=0 154 default_ipv6=no 155 HAS_QOS= 156 HAS_VIDFILE= 157 HAS_FFVDEV= 158 HAS_APPSHARE= 159 HAS_VXML= 160 HAS_SHM_VIDEO= 161 HAS_EXCEPTIONS= 162 HAS_VFW_CAPTURE= 163 HAS_LUA= 164fi 165 166dnl ######################################################################## 167dnl set the OSTYPE and MACHTYPE 168 169dnl MSWIN_DISPLAY winver,Advanced Windows API 170dnl MSWIN_DEFINE winver,WINVER=0x502 171 172 173AC_CANONICAL_TARGET() 174 175 176TARGETDIR=unix 177OSTYPE= 178NEEDS_PTHREADS=yes 179 180case "$target_os" in 181 linux*) OSTYPE=linux ; 182 OSRELEASE="\"`uname -r`\""; 183 OS_TAG="P_LINUX" ; 184 need_pragma=yes ; 185 AC_DEFINE(P_PTHREADS, 1, "PThreads found") 186 AC_CHECK_FUNC([swab], [AC_DEFINE([USE_SYSTEM_SWAB], [], [Use system swab()] )] ) 187 ;; 188 189 gnu*) OSTYPE=gnu ; 190 OSRELEASE="\"`uname -r`\""; 191 OS_TAG="P_GNU_HURD" ; 192 need_pragma=yes ; 193 AC_DEFINE(P_PTHREADS, 1, "PThreads found") 194 AC_CHECK_FUNC([swab], [AC_DEFINE([USE_SYSTEM_SWAB], [], [Use system swab()] )] ) 195 ;; 196 197 freebsd*|kfreebsd*) OSTYPE=FreeBSD ; 198 OS_TAG="P_FREEBSD" ; 199 if test "x$OSRELEASE" = "x"; then 200 OSRELEASE="`sysctl -n kern.osreldate`" ; 201 fi 202 need_pragma=yes ; 203 AC_DEFINE(P_PTHREADS, 1, "PThreads found") 204 AC_CHECK_FUNC([swab], [AC_DEFINE([USE_SYSTEM_SWAB], [], [Use system swab()] )] ) 205 ;; 206 207 openbsd* ) OSTYPE=OpenBSD ; 208 OS_TAG="P_OPENBSD" ; 209 OSRELEASE="`sysctl -n kern.osrevision`" ; 210 ENDLDLIBS="-lossaudio" ; 211 need_pragma=yes ; 212 AC_DEFINE(P_PTHREADS, 1, "PThreads found") 213 AC_CHECK_FUNC([swab], [AC_DEFINE([USE_SYSTEM_SWAB], [], [Use system swab()] )] ) 214 ;; 215 216 netbsd* ) OSTYPE=NetBSD ; 217 OS_TAG="P_NETBSD" ; 218 OSRELEASE="`/sbin/sysctl -n kern.osrevision`" ; 219 ENDLDLIBS="-lossaudio" ; 220 need_pragma=yes ; 221 AC_DEFINE(P_PTHREADS, 1, "PThreads found") 222 AC_CHECK_FUNC([swab], [AC_DEFINE([USE_SYSTEM_SWAB], [], [Use system swab()] )] ) 223 ;; 224 225 solaris* | sunos* ) OSTYPE=solaris ; 226 OS_TAG="P_SOLARIS" ; 227 OSRELEASE=`uname -r | sed "s/5\.//g"` ; 228 STDCCFLAGS="$STDCCFLAGS -D__inline=inline -DSOLARIS" 229 need_pragma=yes ; 230 AC_DEFINE(P_PTHREADS, 1, "PThreads found") 231 dnl According to Andre Schulze <as8@rncmm2.urz.tu-dresden.de> 232 dnl Solaris swab should not be used 233 PTLIB_CHECK_UPAD128( [AC_DEFINE(P_HAS_UPAD128_T)] ) 234 PTLIB_CHECK_FDSIZE() 235 ;; 236 237 darwin* ) OSTYPE=Darwin ; 238 OS_TAG="P_MACOSX" ; 239 OS_MAJOR=`uname -r | sed 's/\..*$//'` 240 OS_MAJOR=`expr $OS_MAJOR \* 100` 241 OS_MINOR=[`uname -r | sed -e 's/[0-9][0-9]*\.//' -e 's/\..*$//'`] 242 OSRELEASE=`expr $OS_MAJOR + $OS_MINOR` 243 SHAREDLIBEXT="dylib"; 244 AC_DEFINE(P_PTHREADS, 1, "PThreads found") 245 AC_CHECK_FUNC([swab], [AC_DEFINE([USE_SYSTEM_SWAB], [], [Use system swab()] )] ) 246 ;; 247 248 beos*) OSTYPE=beos ; 249 OS_TAG="P_BEOS" ; 250 OSRELEASE=`uname -r` ; 251 STDCCFLAGS="$STDCCFLAGS -D__BEOS__" 252 AC_CHECK_FUNC([swab], [AC_DEFINE([USE_SYSTEM_SWAB], [], [Use system swab()] )] ) 253 ;; 254 255 cygwin*) OSTYPE=cygwin ; 256 OS_TAG="P_CYGWIN" ; 257 OSRELEASE="`uname -r`"; 258 AC_CHECK_FUNC([swab], [AC_DEFINE([USE_SYSTEM_SWAB], [], [Use system swab()] )] ) 259 HAS_SHM_VIDEO= 260 ;; 261 262 mingw*) OSTYPE=mingw ; 263 OS_TAG="P_MINGW" ; 264 OSRELEASE=`uname -r` ; 265 TARGETDIR=msos ; 266 SHAREDLIBEXT="dll" ; 267 STDCCFLAGS="$STDCCFLAGS -mms-bitfields" ; 268 ENDLDLIBS="-lwinmm -lwsock32 -lws2_32 -lsnmpapi -lmpr -lcomdlg32 -lgdi32 -lavicap32 -liphlpapi -lole32" ; 269 NEEDS_PTHREADS=no ; 270 AC_CHECK_FUNC([swab], [AC_DEFINE([USE_SYSTEM_SWAB], [], [Use system swab()] )] ) 271 HAS_SHM_VIDEO= 272 ;; 273 274 * ) OSTYPE="$target_os" ; 275 OS_TAG="P_UNKNOWN_OS" ; 276 OSRELEASE="\"${OSTYPE}_`uname -r`\"" ; 277 AC_CHECK_FUNC([swab], [AC_DEFINE([USE_SYSTEM_SWAB], [], [Use system swab()] )] ) 278 AC_MSG_WARN("OS $target_os not recognized - proceed with caution!") ; 279 ;; 280esac 281 282MACHTYPE= 283P_64BIT=0 284 285case "$target_cpu" in 286 x86 | i686 | i586 | i486 | i386 ) 287 AC_COMPILE_IFELSE( 288 [AC_LANG_SOURCE([[int t = __amd64__;]])], 289 [[MACHTYPE=x86_64 290 P_64BIT=1]], 291 [[MACHTYPE=x86]] 292 ) 293 PBYTE_ORDER=PLITTLE_ENDIAN 294 ;; 295 296 x86_64 | amd64) 297 MACHTYPE=$target_cpu 298 P_64BIT=1 299 LIB64=1 300 ;; 301 302 alpha | alphaev56 | alphaev6 | alphaev67 | alphaev7) 303 MACHTYPE=alpha 304 P_64BIT=1 305 ;; 306 307 hppa ) 308 MACHTYPE=hppa 309 ;; 310 311 hppa64 ) 312 MACHTYPE=hppa64 313 P_64BIT=1 314 LIB64=1 315 ;; 316 317 sparc | sparc64 ) 318 MACHTYPE=sparc 319 P_64BIT=1 320 LIB64=1 321 ;; 322 323 ppc | powerpc ) 324 MACHTYPE=ppc 325 ;; 326 327 ppc64 | powerpc64 ) 328 MACHTYPE=ppc64 329 P_64BIT=1 330 LIB64=1 331 ;; 332 333 ia64 ) 334 MACHTYPE=ia64 335 P_64BIT=1 336 ;; 337 338 s390x ) 339 MACHTYPE=s390x 340 P_64BIT=1 341 LIB64=1 342 ;; 343 344 s390 ) 345 MACHTYPE=s390 346 ;; 347 348 * ) 349 MACHTYPE=$target_cpu 350 AC_MSG_WARN("CPU $target_cpu not recognized - proceed with caution!") 351 ;; 352esac 353 354 355AC_ARG_ENABLE(force32, AS_HELP_STRING([--enable-force32],[Force 32-bit x86 build])) 356if test "$MACHTYPE" = "x86_64" -a "${enable_force32}" = "yes" ; then 357 if test "$OSTYPE" = "Darwin"; then 358 STDCCFLAGS="$STDCCFLAGS -arch i386" 359 LDFLAGS="$LDFLAGS -arch i386" 360 else 361 STDCCFLAGS="$STDCCFLAGS -m32" 362 LDFLAGS="$LDFLAGS -m32" 363 fi 364 365 MACHTYPE=x86 366 P_64BIT=0 367 LIB64=0 368 AC_MSG_NOTICE(Forcing 32 bit x86 compile) 369fi 370 371 372AC_MSG_NOTICE(OSTYPE set to $OSTYPE); 373AC_MSG_NOTICE(OSRELEASE set to $OSRELEASE); 374AC_MSG_NOTICE(MACHTYPE set to $MACHTYPE); 375 376AC_SUBST(MACHTYPE, $MACHTYPE) 377AC_SUBST(OSTYPE, $OSTYPE) 378AC_SUBST(OSRELEASE, $OSRELEASE) 379AC_SUBST(TARGETDIR, $TARGETDIR) 380 381AC_DEFINE_UNQUOTED($OS_TAG, $OSRELEASE) 382 383if test "$P_64BIT" = "1" ; then 384 AC_DEFINE([P_64BIT], [1], [64bit architecture]) 385 STDCCFLAGS="$STDCCFLAGS -DP_64BIT" 386fi 387 388if test "$target_os" = "linux-gnulp" ; then 389 AC_DEFINE([P_LPIA], [1], [Low Power Intel Architecture]) 390fi 391 392 393dnl ######################################################################## 394dnl set LIBDIR accordingly 395if test "$prefix" = "$PTLIBDIR"; then 396 LIBDIR=${libdir}_${OSTYPE}_${MACHTYPE} 397else 398 LIBDIR=${libdir} 399fi 400AC_SUBST(LIBDIR) 401 402 403dnl ######################################################################## 404dnl get the gcc version 405 406USE_GCC= 407USE_PCH= 408 409if test x$GXX = xyes ; then 410 USE_GCC=yes 411 gcc_version=`$CXX -dumpversion` 412 AC_MSG_NOTICE(gcc version is $gcc_version); 413 GXX_MAJOR=`echo $gcc_version | sed 's/\..*$//'` 414 GXX_MINOR=[`echo $gcc_version | sed -e 's/[0-9][0-9]*\.//' -e 's/\..*$//'`] 415 GXX_PATCH=[`echo $gcc_version | sed -e 's/[0-9][0-9]*\.[0-9][0-9]*\.//' -e 's/\..*$//'`] 416 417 dnl only enable pragma for gcc 4.0 and later 418 AC_MSG_CHECKING(checking if pragma implementation should be used) 419 if test ${GXX_MAJOR} -lt 4 ; then 420 if test "${need_pragma}" = "yes" ; then 421 STDCCFLAGS="$STDCCFLAGS -DP_USE_PRAGMA" 422 AC_MSG_RESULT(yes) 423 else 424 AC_MSG_RESULT(no) 425 fi 426 else 427 AC_MSG_RESULT(no) 428 fi 429 430 dnl only enable PCH for gcc 4.0 and later 431 AC_MSG_CHECKING(checking if precompiled headers available) 432 if test ${GXX_MAJOR} -lt 4 ; then 433 enable_pch=no 434 else 435 AC_ARG_ENABLE(pch, AS_HELP_STRING([--enable-pch],[Enable precompiled headers])) 436 fi 437 if test "${enable_pch}" = "yes" ; then 438 AC_MSG_RESULT(yes) 439 USE_PCH=1 440 else 441 AC_MSG_RESULT(no) 442 fi 443else 444 USE_GCC=no 445fi 446 447AC_SUBST(USE_GCC) 448AC_SUBST(USE_PCH) 449 450dnl ######################################################################## 451dnl check if precompiled headers available, or disabled 452 453dnl ######################################################################## 454dnl set the shared library extension, if not already set 455 456if test "x${SHAREDLIBEXT}" = "x" ; then 457 SHAREDLIBEXT="so" 458fi 459AC_SUBST(SHAREDLIBEXT, $SHAREDLIBEXT) 460AC_DEFINE([P_SHAREDLIBEXT], [$SHAREDLIBEXT], [shared library extension]) 461 462dnl ######################################################################## 463dnl check the endianness 464 465dnl MSWIN_DISPLAY byteorder,Byte Order 466dnl MSWIN_DEFINE byteorder,PBYTE_ORDER=PLITTLE_ENDIAN 467 468if test ${OSTYPE} != "Darwin" ; then 469 AC_C_BIGENDIAN() 470 if test ${ac_cv_c_bigendian} = yes ; then 471 PBYTE_ORDER=PBIG_ENDIAN 472 else 473 PBYTE_ORDER=PLITTLE_ENDIAN 474 fi 475 476 AC_DEFINE_UNQUOTED(PBYTE_ORDER, $PBYTE_ORDER, "byte order") 477fi 478 479AC_MSG_NOTICE(Default extension for C++ files is $ac_ext) 480 481dnl ######################################################################## 482dnl look for compile flags 483AC_LANG_PUSH(C++) 484 485AC_MSG_CHECKING(if compiler accepts -felide-constructors) 486AC_LANG_CONFTEST([AC_LANG_PROGRAM([[]],[[]])]) 487$CXX $CXXFLAGS -felide-constructors conftest.$ac_ext > /dev/null 2>&1 488if test $? = 0 ; then 489 AC_MSG_RESULT(yes) 490 STDCXXFLAGS="$STDCXXFLAGS -felide-constructors" 491else 492 AC_MSG_RESULT(no) 493fi 494 495AC_MSG_CHECKING(if linker accepts -Wreorder) 496AC_LANG_CONFTEST([AC_LANG_PROGRAM([[]],[[]])]) 497$CXX $CXXFLAGS -Wreorder conftest.$ac_ext > /dev/null 2>&1 498if test $? = 0 ; then 499 AC_MSG_RESULT(yes) 500 STDCXXFLAGS="$STDCXXFLAGS -Wreorder" 501else 502 AC_MSG_RESULT(no) 503fi 504 505 506dnl add additional information for the debugger to ensure the user can indeed 507dnl debug coredumps and macros. 508 509AC_MSG_CHECKING(if debug build accepts -g3 -ggdb -O0) 510AC_LANG_CONFTEST([AC_LANG_PROGRAM([[]],[[]])]) 511$CXX $CXXFLAGS -g3 -ggdb -O0 conftest.$ac_ext > /dev/null 2>&1 512if test $? = 0 ; then 513 AC_MSG_RESULT(yes) 514 DEBUG_FLAG="-g3 -ggdb -O0" 515else 516 AC_MSG_RESULT(no) 517 DEBUG_FLAG="-g" 518fi 519 520 521AC_MSG_CHECKING(if compiler uses RTTI by default) 522AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <typeinfo>]], 523[[ class A 524 { 525 public: 526 virtual void fred() { } 527 }; 528 class B : public A 529 { 530 public: 531 void fred() { } 532 }; 533 B t; 534 A * p = dynamic_cast<A *>(&t); 535 return 0; 536]])],DEFAULT_RTTI=1, DEFAULT_RTTI=0) 537if test "$DEFAULT_RTTI" = "1" ; then 538 AC_MSG_RESULT(yes) 539else 540 AC_MSG_RESULT(no) 541 STDCXXFLAGS="$STDCCFLAGS -frtti" 542fi 543 544AC_LANG_POP(C++) 545 546dnl ######################################################################## 547dnl check for the size of int 548AC_CHECK_SIZEOF(int) 549 550dnl ######################################################################## 551dnl check for long double 552 553AC_C_LONG_DOUBLE 554if test $ac_cv_c_long_double != yes ; then 555 AC_DEFINE([PNO_LONG_DOUBLE], [], [No long double]) 556fi 557 558dnl if test ${OSTYPE} = Darwin ; then 559dnl STDCCFLAGS="$STDCCFLAGS -Wno-long-double" 560dnl fi 561 562dnl ######################################################################## 563dnl we need flex, so we better make sure it's there 564AC_PATH_PROG(FLEX, flex) 565if test -z "$FLEX" ; then 566 AC_MSG_ERROR(PTLib needs the GNU Project fast lexical analyzer generator flex, 1) 567fi 568 569dnl ######################################################################## 570dnl most systems have "ar", but some use "gar" 571AC_CHECK_TOOL(AR, ar) 572if test -z "$AR" ; then 573 AC_CHECK_TOOL(AR, gar) 574fi 575 576dnl ######################################################################## 577dnl we need bison, so we better make sure it's there 578AC_PATH_PROG(BISON, bison) 579if test -z "$BISON" ; then 580 AC_MSG_ERROR(PTLib needs the GNU Project parser generator bison, 1) 581fi 582 583dnl ######################################################################## 584dnl check for number of parms to readdir 585AC_MSG_CHECKING(if readdir_r has 2 parms) 586AC_TRY_COMPILE([#define _POSIX_PTHREAD_SEMANTICS 587 #include <dirent.h>], 588 [DIR *s; struct dirent * e; readdir_r(s, e);], P_HAS_POSIX_READDIR_R=2, P_HAS_POSIX_READDIR_R=0) 589if test ${P_HAS_POSIX_READDIR_R} = 2 ; then 590 AC_MSG_RESULT(yes) 591else 592 AC_MSG_RESULT(no) 593 AC_MSG_CHECKING(if readdir_r has 3 parms) 594 AC_TRY_COMPILE([#include <dirent.h>], 595 [DIR *s; struct dirent * e; struct dirent * p; readdir_r(s, e, &p);], P_HAS_POSIX_READDIR_R=3, P_HAS_POSIX_READDIR_R=0) 596 if test ${P_HAS_POSIX_READDIR_R} = 3 ; then 597 AC_MSG_RESULT(yes) 598 else 599 AC_MSG_RESULT(no) 600 fi 601fi 602AC_DEFINE_UNQUOTED(P_HAS_POSIX_READDIR_R, ${P_HAS_POSIX_READDIR_R}) 603 604 605 606dnl ######################################################################## 607dnl check for tracing 608dnl 609 610AC_ARG_ENABLE(tracing, AS_HELP_STRING([--disable-tracing],[Remove PTRACE and all trace logging])) 611 612if test "x${enable_tracing}" = "xno" ; then 613 AC_MSG_NOTICE(PTRACE and all trace logging removed) 614 STDCCFLAGS="$STDCCFLAGS -DPTRACING=0 -DPASN_NOPRINTON -DPASN_LEANANDMEAN" 615else 616 AC_MSG_NOTICE(PTRACE and all trace logging included) 617 STDCCFLAGS="$STDCCFLAGS -DPTRACING=1" 618fi 619 620 621dnl ######################################################################## 622dnl check for Windows-like integer BOOL 623dnl 624dnl MSWIN_DISPLAY ansi-bool,ANSI C++ bool 625dnl MSWIN_DEFINE ansi-bool,P_USE_STANDARD_CXX_BOOL 626 627AC_ARG_ENABLE(ansi-bool,AS_HELP_STRING([--disable-ansi-bool],[Use Windows-like integer BOOL over ANSI C++ bool])) 628 629if test "x${enable_ansi_bool}" = "xno" ; then 630 AC_MSG_NOTICE(Using Windows-like integer BOOL for PBoolean: (PFalse=0 PTrue=1)) 631else 632 AC_MSG_NOTICE(Using ANSI C++ bool for PBoolean: (PFalse=false PTrue=true)) 633 AC_DEFINE(P_USE_STANDARD_CXX_BOOL) 634fi 635 636 637dnl ######################################################################## 638dnl check for recvmsg 639 640P_HAS_RECVMSG= 641AC_MSG_CHECKING(for recvmsg) 642AC_TRY_COMPILE([#include <sys/types.h> 643 #include <sys/socket.h> 644 #include <netinet/in.h>], 645 [int t = SOL_IP; t = IP_PKTINFO; struct msghdr *msg; recvmsg(0, msg, 0);], P_HAS_RECVMSG=1) 646if test "x${P_HAS_RECVMSG}" = "x1" ; then 647 AC_MSG_RESULT(yes) 648 AC_DEFINE(P_HAS_RECVMSG, 1) 649else 650 AC_MSG_RESULT(no) 651fi 652 653dnl ######################################################################## 654dnl check for IPV6_ADD_MEMBERSHIP 655 656P_HAS_IPV6_ADD_MEMBERSHIP= 657AC_MSG_CHECKING(for IPV6_ADD_MEMBERSHIP) 658AC_TRY_COMPILE([#include <netinet/in.h>], 659 [int x = IPV6_ADD_MEMBERSHIP;], 660 P_HAS_IPV6_ADD_MEMBERSHIP=1) 661if test "x${P_HAS_IPV6_ADD_MEMBERSHIP}" = "x1" ; then 662 AC_MSG_RESULT(yes) 663 AC_DEFINE(P_HAS_IPV6_ADD_MEMBERSHIP, 1) 664else 665 AC_MSG_RESULT(no) 666fi 667 668dnl ######################################################################## 669dnl check for NetLink support 670 671P_HAS_NETLINK=0 672AC_MSG_CHECKING(for NetLink support) 673AC_TRY_COMPILE([#include <asm/types.h> 674 #include <sys/socket.h> 675 #include <linux/netlink.h> 676 #include <linux/rtnetlink.h> 677 #include <linux/genetlink.h> 678 #include <memory.h>], 679 [struct sockaddr_nl sa; memset(&sa, 0, sizeof(sa)); 680 sa.nl_family = AF_NETLINK; sa.nl_groups = RTMGRP_LINK | RTMGRP_IPV4_IFADDR; 681 int fd = socket(AF_NETLINK, SOCK_RAW, NETLINK_ROUTE);], P_HAS_NETLINK=1) 682if test "${P_HAS_NETLINK}" = "1" ; then 683 AC_MSG_RESULT(yes) 684 AC_DEFINE(P_HAS_NETLINK, 1) 685else 686 AC_MSG_RESULT(no) 687fi 688 689dnl ######################################################################## 690dnl check for streams types 691 692P_HAS_STL_STREAMS=0 693AC_MSG_CHECKING(if using STL streams) 694AC_TRY_COMPILE([#include <iostream>], 695 [int v = (int)std::ios_base::seekdir();], P_HAS_STL_STREAMS=1) 696if test "${P_HAS_STL_STREAMS}" = 1 ; then 697 AC_MSG_RESULT(yes) 698else 699 AC_MSG_RESULT(no) 700fi 701AC_DEFINE_UNQUOTED(P_HAS_STL_STREAMS, ${P_HAS_STL_STREAMS}) 702 703dnl ######################################################################## 704dnl see if using GNU glibc++, because then we have atomic integer operations 705 706AC_ARG_ENABLE(atomicity,AS_HELP_STRING([--disable-atomicity],[Do not use atomicity.h])) 707 708P_HAS_ATOMIC_INT=0 709P_NEEDS_GNU_CXX_NAMESPACE=0 710AC_MSG_CHECKING(if atomic integer available) 711if test "${enable_atomicity}" = "no" ; then 712 AC_MSG_RESULT(disabled) 713else 714 AC_TRY_COMPILE([#include <bits/atomicity.h>], 715 [_Atomic_word val;], P_HAS_ATOMIC_INT=1, 716 AC_TRY_COMPILE([#include <ext/atomicity.h>], 717 [_Atomic_word val;], P_HAS_ATOMIC_INT=2) 718 ) 719 if test ${P_HAS_ATOMIC_INT} != 0 ; then 720 AC_MSG_RESULT(yes) 721 AC_MSG_CHECKING(if __exchange_and_add is in __gnu_cxx namespace) 722 if test ${P_HAS_ATOMIC_INT} = 1 ; then 723 AC_TRY_COMPILE([#include <bits/atomicity.h>], 724 [_Atomic_word val; __gnu_cxx::__exchange_and_add(&val, 1)], 725 P_NEEDS_GNU_CXX_NAMESPACE=1) 726 else 727 P_HAS_ATOMIC_INT=1 728 AC_TRY_COMPILE([#include <ext/atomicity.h>], 729 [_Atomic_word val; __gnu_cxx::__exchange_and_add(&val, 1)], 730 P_NEEDS_GNU_CXX_NAMESPACE=1) 731 fi 732 if test ${P_NEEDS_GNU_CXX_NAMESPACE} = 1 ; then 733 AC_MSG_RESULT(yes) 734 else 735 AC_MSG_RESULT(no) 736 fi 737 else 738 AC_MSG_RESULT(no) 739 fi 740fi 741 742AC_DEFINE_UNQUOTED(P_HAS_ATOMIC_INT, ${P_HAS_ATOMIC_INT}) 743AC_DEFINE_UNQUOTED(P_NEEDS_GNU_CXX_NAMESPACE, ${P_NEEDS_GNU_CXX_NAMESPACE}) 744 745dnl ######################################################################## 746dnl check for Unix semaphores 747 748# mingw implements itself the semaphores in src/ptlib/msos/win32.cxx 749if test ${OSTYPE} != mingw ; then 750 751dnl posix unnamed semaphore support in darwin/macosx is broken 752if test ${OSTYPE} != Darwin ; then 753 AC_TRY_COMPILE([#include <semaphore.h>], 754 [sem_t *s; sem_init(s, 0, 0);], P_HAS_SEMAPHORES=1) 755 AC_MSG_CHECKING(if Unix semaphores are available) 756 if test "${P_HAS_SEMAPHORES}x" != "x" ; then 757 AC_DEFINE(P_HAS_SEMAPHORES) 758 AC_MSG_RESULT(yes) 759 else 760 AC_MSG_RESULT(no) 761 fi 762fi 763 764if test "${P_HAS_SEMAPHORES}x" = "x" ; then 765 766 AC_TRY_COMPILE([#include <semaphore.h>], 767 [sem_t *s = sem_open("test", O_CREAT)], 768 P_HAS_NAMED_SEMAPHORES=1 ) 769 AC_MSG_CHECKING(if named semaphores are available) 770 if test "${P_HAS_NAMED_SEMAPHORES}x" != "x"; then 771 AC_DEFINE(P_HAS_NAMED_SEMAPHORES) 772 AC_MSG_RESULT(yes) 773 else 774 AC_MSG_RESULT(no) 775 AC_MSG_WARN(This host does not support semaphores which are essential) 776 AC_MSG_WARN(to implement 'critical sections'. This feature was added) 777 AC_MSG_WARN(in PWLib 1.7.0 and improves the stability of multithreaded) 778 AC_MSG_WARN(programs. This feature has been disabled for this host) 779 fi 780fi 781 782fi # mingw 783 784dnl ######################################################################## 785dnl check for pthreads library 786 787dnl MSWIN_DISPLAY semaphore,Semaphore Support 788dnl MSWIN_DEFINE semaphore,P_HAS_SEMAPHORES 789 790dnl Linux, Mac OS X use libpthread and -lpthread 791dnl FreeBSD uses the -pthread compiler option and uses libc_r 792 793AC_CHECK_LIB(pthread, pthread_create, HAS_PTHREADS=yes, HAS_PTHREADS=no) 794if test ${HAS_PTHREADS} = yes ; then 795 ENDLDLIBS="$ENDLDLIBS -lpthread" 796 STDCCFLAGS="$STDCCFLAGS -D_REENTRANT" 797else 798 if test ${OSTYPE} = FreeBSD ; then 799 HAS_PTHREADS=yes 800 ENDLDLIBS="$ENDLDLIBS -pthread" 801 STDCCFLAGS="$STDCCFLAGS -D_REENTRANT -pthread" 802 fi 803fi 804 805 806if test ${HAS_PTHREADS} != yes -a ${NEEDS_PTHREADS} = yes; then 807 AC_MSG_ERROR(must have pthreads!) 808fi 809 810dnl ######################################################################## 811dnl check for rt library 812 813AC_CHECK_LIB(rt, clock_gettime, HAS_RT=yes, HAS_RT=no) 814if test ${HAS_RT} = yes ; then 815 ENDLDLIBS="$ENDLDLIBS -lrt" 816fi 817 818 819if test ${HAS_PTHREADS} != yes -a ${NEEDS_PTHREADS} = yes; then 820 AC_MSG_ERROR(must have pthreads!) 821fi 822 823dnl ######################################################################## 824dnl check for XPG6 compliant pthreads (timed spinlocks) 825 826if test ${HAS_PTHREADS} = yes ; then 827 AC_MSG_CHECKING(if pthread_mutex_timedlock is available) 828 AC_TRY_COMPILE([#include <pthread.h>], 829 [pthread_mutex_timedlock(NULL, NULL);], HAS_PTHREADS_XPG6=yes, HAS_PTHREADS_XPG6=no) 830 if test ${HAS_PTHREADS_XPG6} = yes ; then 831 AC_MSG_RESULT(yes) 832 AC_DEFINE(P_PTHREADS_XPG6, 1, "XPG6 compliant pthreads found") 833 else 834 AC_MSG_RESULT(no) 835 fi 836 837 AC_CHECK_LIB(pthread, sem_timedwait, HAS_SEMAPHORES_XPG6=yes, HAS_SEMAPHORES_XPG6=no) 838 if test ${HAS_SEMAPHORES_XPG6} = yes ; then 839 AC_MSG_CHECKING(if sem_timedwait is compilable) 840 AC_TRY_COMPILE([#include <semaphore.h>], 841 [sem_t *s; const struct timespec * t; sem_timedwait(s, t);], HAS_SEMAPHORES_XPG6=yes, HAS_SEMAPHORES_XPG6=no) 842 if test ${HAS_SEMAPHORES_XPG6} = yes ; then 843 AC_DEFINE(P_HAS_SEMAPHORES_XPG6, 1, "Supports XPG6 Semaphores") 844 AC_MSG_RESULT(yes) 845 else 846 AC_MSG_RESULT(no) 847 fi 848 fi 849fi 850 851dnl ######################################################################## 852dnl check for recursive mutexes 853P_HAS_RECURSIVE_MUTEX=0 854AC_MSG_CHECKING(if recursive mutexes are available) 855AC_TRY_COMPILE([#include <pthread.h>], 856 [pthread_mutexattr_t attr; pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE_NP);], P_HAS_RECURSIVE_MUTEX=1) 857if test ${P_HAS_RECURSIVE_MUTEX} = 1 ; then 858 AC_MSG_RESULT(PTHREAD_MUTEX_RECURSIVE_NP) 859else 860 AC_TRY_COMPILE([#include <pthread.h>], 861 [pthread_mutexattr_t attr; pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);], P_HAS_RECURSIVE_MUTEX=2) 862 if test ${P_HAS_RECURSIVE_MUTEX} = 2 ; then 863 AC_MSG_RESULT(PTHREAD_MUTEX_RECURSIVE) 864 else 865 AC_MSG_RESULT(no) 866 fi 867fi 868AC_DEFINE_UNQUOTED(P_HAS_RECURSIVE_MUTEX, ${P_HAS_RECURSIVE_MUTEX}) 869 870 871dnl ######################################################################## 872dnl check if setpgrp takes non or two arguments 873P_SETPGRP_SYSTEMV=0 874P_SETPGRP_NOPARM=0 875AC_MSG_CHECKING(if setpgrp takes no parameters) 876AC_TRY_COMPILE([#include <unistd.h>], 877 [pid_t p = setpgrp();], P_SETPGRP_NOPARM=1) 878if test ${P_SETPGRP_NOPARM} = 1 ; then 879 AC_MSG_RESULT(yes) 880else 881 AC_MSG_RESULT(no) 882fi 883AC_DEFINE_UNQUOTED(P_SETPGRP_NOPARM, ${P_SETPGRP_NOPARM}) 884 885 886dnl ######################################################################## 887dnl check for regex library 888 889dnl yes this test needs to be outside the if below 890dnl because autoconf needs to initialise stuff. without this 891dnl all sorts of strange things happen 892AC_CHECK_HEADERS(regex.h, HAS_REGEX=yes) 893 894AC_ARG_ENABLE(internalregex, 895 AS_HELP_STRING([--enable-internalregex],[Force internal regex library]), 896 internalregex=$enableval) 897if test "$internalregex" = "yes" ; then 898 AC_MSG_NOTICE(Forcing use of internal regex library) 899else 900 if test "$HAS_REGEX" = "yes" ; then 901 AC_CHECK_FUNC(regcomp, HAS_REGEX=yes) 902 if test "$HAS_REGEX" = "yes" ; then 903 AC_SUBST(HAS_REGEX, 1) 904 AC_DEFINE(P_REGEX, 1, "Regex library found") 905 if test ${OSTYPE} = mingw ; then 906 ENDLDLIBS="$ENDLDLIBS -lregex" 907 fi 908 fi 909 fi 910fi 911 912 913dnl ######################################################################## 914dnl check for dynamic library code (dlopen and friends) 915 916dnl MSWIN DLL Support,,P_DYNALINK 917 918case "$target_os" in 919 cygwin* | mingw* ) 920 PTLIB_SIMPLE_OPTION([plugins], [PLUGINS], [enable plugin support]) 921 AC_DEFINE(P_DYNALINK, 1, "Support for dynamic loading of libraries") 922 ;; 923 *) 924 PTLIB_FIND_LIBDL([HAS_LIBDL=1], [HAS_LIBDL=]) 925 if test "x$HAS_LIBDL" = "x1" ; then 926 AC_DEFINE(P_DYNALINK, 1, "Support for dynamic loading of libraries") 927 dnl The rest is done further down... 928 fi 929 930 dnl ######################################################################### 931 dnl check to see if plugins enabled 932 dnl MSWIN_DISPLAY plugins,Plugin Support 933 dnl MSWIN_DEFINE plugins,P_PLUGINS 934 935 PTLIB_SIMPLE_OPTION([plugins], [PLUGINS], [enable plugin support], [HAS_LIBDL]) 936 ;; 937esac 938 939AC_MSG_CHECKING(where plugins are being installed) 940AC_ARG_WITH([plugin-installdir], 941 AS_HELP_STRING([--with-plugin-installdir=DIR],[Location where plugins are installed, starting at the lib dir]), 942 [PLUGIN_DIR="$withval"], 943 [PLUGIN_DIR="ptlib-${PTLIB_VERSION}"] 944 ) 945 946EXPANDED_PLUGIN_DIR="${LIBDIR}/${PLUGIN_DIR}" 947if test "x${exec_prefix}" = "xNONE" ; then 948 if test "x${prefix}" = "xNONE" ; then 949 EXPANDED_PLUGIN_DIR=`echo ${EXPANDED_PLUGIN_DIR} | sed s#\\${exec_prefix}#/usr/local#` 950 else 951 EXPANDED_PLUGIN_DIR=`echo ${EXPANDED_PLUGIN_DIR} | sed s#\\${exec_prefix}#${prefix}#` 952 fi 953else 954 EXPANDED_PLUGIN_DIR=`echo ${EXPANDED_PLUGIN_DIR} | sed s#\\${exec_prefix}#${exec_prefix}#` 955fi 956 957case "$target_os" in 958 cygwin* | mingw* ) 959 EXPANDED_PLUGIN_DIR="plugins" 960 ;; 961esac 962 963AC_MSG_RESULT(${EXPANDED_PLUGIN_DIR}) 964 965AC_DEFINE_UNQUOTED([P_DEFAULT_PLUGIN_DIR], ["${EXPANDED_PLUGIN_DIR}"], [Default plugin directory]) 966 967DEV_PLUGIN_DIR="${PLUGIN_DIR}/devices" 968AC_SUBST(DEV_PLUGIN_DIR) 969 970dnl ######################################################################### 971dnl check to see if samples are enabled 972 973PTLIB_SIMPLE_OPTION([samples], [SAMPLES], [enable samples build]) 974 975dnl ######################################################################## 976dnl look for DNS resolver code (must be done before OpenLDAP) 977dnl on some systems, the resolver is in libc 978dnl but needs resolv.h included which defines res_search as __res_search 979 980dnl MSWIN_DISPLAY resolver,DNS Resolver 981dnl MSWIN_CHECK_FILE resolver,include\windns.h,P_DNS=1 982 983AC_ARG_ENABLE([resolver], 984 AS_HELP_STRING([--disable-resolver],[disable DNS resolver support]), 985 [enable_resolver=$enableval], 986 [enable_resolver=$default_resolver] 987 ) 988 989HAS_RESOLVER= 990if test "$enable_resolver" = "no" ; then 991 AC_MSG_NOTICE(DNS resolver disabled) 992else 993 PTLIB_FIND_RESOLVER([HAS_RESOLVER=1], [HAS_RESOLVER=]) 994 995 if test "x${HAS_RESOLVER}" = "x1" ; then 996 AC_DEFINE(P_DNS, 1, "resolver libraries found") 997 if test "${HAS_RES_NINIT}z" != "z" ; then 998 AC_DEFINE(P_HAS_RES_NINIT) 999 fi 1000 fi 1001fi 1002 1003AC_SUBST(HAS_RESOLVER) 1004 1005dnl ######################################################################## 1006dnl Look for SASL 1007 1008dnl MSWIN_DISPLAY sasl,Cyrus SASL 1009dnl MSWIN_CHECK_FILE sasl,include\sasl.h,P_SASL=1 1010dnl MSWIN_DIR_SYMBOL sasl,SASL_DIR 1011dnl MSWIN_CHECK_DIR sasl,..\sasl\ 1012dnl MSWIN_CHECK_DIR sasl,..\cyrus-sasl\ 1013dnl MSWIN_CHECK_DIR sasl,..\external\sasl\ 1014dnl MSWIN_CHECK_DIR sasl,..\external\cyrus-sasl\ 1015dnl MSWIN_CHECK_DIR sasl,\sasl\ 1016dnl MSWIN_CHECK_DIR sasl,\cyrus-sasl\ 1017dnl MSWIN_CHECK_DIR sasl,c:\sasl\ 1018dnl MSWIN_CHECK_DIR sasl,c:\cyrus-sasl\ 1019 1020AC_ARG_ENABLE([sasl], 1021 AS_HELP_STRING([--disable-sasl],[disable SASL support]), 1022 [enable_sasl=$enableval], 1023 [enable_sasl=$default_sasl] 1024 ) 1025 1026if test "$enable_sasl" = "no" ; then 1027 AC_MSG_NOTICE(SASL disabled) 1028else 1029 1030 AC_CHECK_LIB([sasl2], [sasl_version], [HAS_SASL2=1], [HAS_SASL2=]) 1031 AC_CHECK_LIB([sasl], [sasl_client_out], [HAS_SASL=1], [HAS_SASL=]) 1032 1033 PTLIB_CHECK_SASL_INCLUDE([ 1034 if test "x${SASL_HEADER}" = "xsasl" ; then 1035 AC_DEFINE(P_HAS_SASL_SASL_H) 1036 fi 1037 ], 1038 [ 1039 HAS_SASL= 1040 HAS_SASL2= 1041 ]) 1042 1043 if test "x${HAS_SASL2}" = "x1" ; then 1044 ENDLDLIBS="$ENDLDLIBS -lsasl2" 1045 AC_DEFINE_UNQUOTED(P_SASL,2) 1046 elif test "x${HAS_SASL}" = "x1" ; then 1047 ENDLDLIBS="$ENDLDLIBS -lsasl" 1048 AC_DEFINE_UNQUOTED(P_SASL,1) 1049 fi 1050fi dnl disable_Sasl 1051AC_SUBST(HAS_SASL2) 1052AC_SUBST(HAS_SASL) 1053 1054 1055dnl ######################################################################## 1056dnl check for SUN mediaLib library 1057 1058AC_ARG_ENABLE([mlib], 1059 AS_HELP_STRING([--enable-mlib],[enable SUN mlib support]), 1060 [enable_mlib=$enableval], 1061 [enable_mlib=$default_mlib] 1062 ) 1063if test "$enable_mlib" = "no" ; then 1064 AC_MSG_NOTICE(SUN mlib disabled) 1065else 1066 HAS_MEDIALIB=no 1067 AC_CHECK_LIB(mlib, mlib_VideoColorJFIFYCC2RGB420_Nearest, HAS_MEDIALIB=yes, HAS_MEDIALIB=no) 1068 if test $HAS_MEDIALIB = yes; then 1069 AC_MSG_NOTICE(SUN mlib enabled) 1070 AC_DEFINE(P_MEDIALIB) 1071 ENDLDLIBS="-lmlib $ENDLDLIBS" 1072 else 1073 AC_MSG_ERROR(SUN mlib not found, 1) 1074 fi 1075fi 1076 1077dnl ######################################################################## 1078dnl look for OpenLDAP (requires SASL) 1079 1080dnl MSWIN_DISPLAY openldap,Open LDAP 1081dnl MSWIN_IF_FEATURE openldap,sasl 1082dnl MSWIN_CHECK_FILE openldap,include\ldap.h|OpenLDAP,P_LDAP=1 1083dnl MSWIN_DIR_SYMBOL openldap,LDAP_DIR 1084dnl MSWIN_CHECK_DIR openldap,..\openldap\ 1085dnl MSWIN_CHECK_DIR openldap,..\external\openldap\ 1086dnl MSWIN_CHECK_DIR openldap,\openldap\ 1087dnl MSWIN_CHECK_DIR openldap,c:\openldap\ 1088 1089AC_ARG_ENABLE([openldap], 1090 AS_HELP_STRING([--disable-openldap],[disable OpenLDAP support]), 1091 [enable_openldap=$enableval], 1092 [enable_openldap=$default_openldap] 1093 ) 1094 1095HAS_OPENLDAP= 1096if test "$enable_openldap" = "no" ; then 1097 AC_MSG_NOTICE(OpenLDAP disabled) 1098else 1099 PTLIB_FIND_OPENLDAP([HAS_OPENLDAP=1], [HAS_OPENLDAP=]) 1100 if test "x${HAS_OPENLDAP}" = "x1" ; then 1101 AC_DEFINE(P_LDAP, 1, "OpenLDAP found") 1102 ENDLDLIBS="$ENDLDLIBS $OPENLDAP_LIBS" 1103 STDCCFLAGS="$STDCCFLAGS $OPENLDAP_CFLAGS" 1104 fi 1105fi 1106 1107AC_SUBST(HAS_OPENLDAP) 1108 1109dnl ######################################################################## 1110dnl look for OpenSSL 1111dnl check for environment variable, then assume standard system install 1112dnl this process is made incredibly more complex by the fact that RedHad 9 1113dnl is completely fscked. The default OpenSSL installation requires Kerberos, 1114dnl even when Kerberos is not installed, requiring an explicit #define to 1115dnl make it compile 1116dnl As if that is not enough, autoconf gets very confused if configure.in 1117dnl contains a AC_CHECK_HEADER directive that never gets used. So we have 1118dnl to ensure that it is always called 1119 1120dnl MSWIN_DISPLAY openssl,Open SSL 1121dnl MSWIN_CHECK_FILE openssl,inc32\openssl\ssl.h,P_OSSL=1 1122dnl MSWIN_CHECK_FILE openssl,include\openssl\ssl.h,P_OSSL=2 1123dnl MSWIN_FIND_FILE openssl,P_OSSL_AES,aes.h,... 1124dnl MSWIN_DIR_SYMBOL openssl,SSL_DIR 1125dnl MSWIN_CHECK_DIR openssl,..\openssl\ 1126dnl MSWIN_CHECK_DIR openssl,..\external\openssl\ 1127dnl MSWIN_CHECK_DIR openssl,\openssl\ 1128dnl MSWIN_CHECK_DIR openssl,\libs\openssl\ 1129dnl MSWIN_CHECK_DIR openssl,\Program Files\OpenSSL\ 1130dnl MSWIN_CHECK_DIR openssl,\Program Files (x86)\OpenSSL\ 1131dnl MSWIN_CHECK_DIR openssl,c:\openssl\ 1132dnl MSWIN_CHECK_DIR openssl,c:\OpenSSL-Win32 1133dnl MSWIN_CHECK_DIR openssl,c:\OpenSSL-Win64 1134 1135AC_ARG_ENABLE([openssl], 1136 AS_HELP_STRING([--disable-openssl],[disable OpenSSL support]), 1137 [enable_openssl=$enableval], 1138 [enable_openssl=$default_openssl] 1139 ) 1140 1141if test "$enable_openssl" = "no" ; then 1142 AC_MSG_NOTICE(disabled) 1143else 1144 PKG_CHECK_MODULES([OPENSSL], 1145 [openssl], 1146 [ 1147 HAS_OPENSSL=1 1148 AC_DEFINE(P_OSSL, 1, "OpenSSL found") 1149 PTLIB_CHECK_OPENSSL_AES([ 1150 AC_DEFINE([P_OSSL_AES], [1],[openssl with AES yes]) 1151 HAS_OPENSSL_AES=1 1152 ]) 1153 PTLIB_OPENSSL_CONST( [AC_DEFINE([P_SSL_USE_CONST], [1], [SSL with const])] ) 1154 STDCCFLAGS="$STDCCFLAGS ${OPENSSL_CFLAGS}" 1155 ENDLDLIBS="$ENDLDLIBS ${OPENSSL_LIBS}" 1156dnl PKG_REQUIRES="$PKG_REQUIRES ssl" 1157 ], 1158 [HAS_OPENSSL=]) 1159fi 1160 1161AC_SUBST(HAS_OPENSSL) 1162 1163dnl For now... 1164AC_SUBST(P_STATIC_ENDLDLIBS) 1165AC_SUBST(P_STATIC_LDFLAGS) 1166 1167 1168 1169dnl ######################################################################## 1170dnl check for variants of d2i_DHparams_bio from OpenSSL 1171 1172 1173AC_MSG_CHECKING(for d2i_DHparams_bio variants) 1174AC_TRY_COMPILE([#include <openssl/dh.h> 1175 #include <openssl/asn1.h>], 1176 [ BIO * in; d2i_DHparams_bio(in, NULL);],,P_d2i_DHparams_bio_OLD=1) 1177if test "x$P_d2i_DHparams_bio_OLD" = "x1" ; then 1178 AC_MSG_RESULT(old) 1179 AC_DEFINE(P_d2i_DHparams_bio_OLD, 1) 1180else 1181 AC_MSG_RESULT(new) 1182fi 1183 1184 1185 1186dnl ######################################################################## 1187dnl look for expat XML parser 1188 1189dnl MSWIN_DISPLAY expat,Expat XML 1190dnl MSWIN_CHECK_FILE expat,lib\expat.h,P_WINEXPAT=1 1191dnl MSWIN_CHECK_FILE expat,Source\lib\expat.h,P_WINEXPAT=2 1192dnl MSWIN_DIR_SYMBOL expat,EXPAT_DIR 1193dnl MSWIN_FIND_FILE expat,P_EXPAT_LIBRARY_W32_DEBUG,expat.lib,Debug 1194dnl MSWIN_FIND_FILE expat,P_EXPAT_LIBRARY_W32_RELEASE,expat.lib,Release 1195dnl MSWIN_FIND_FILE expat,P_EXPAT_LIBRARY_W32_DEBUG,libexpat.lib,win32/bin/Debug 1196dnl MSWIN_FIND_FILE expat,P_EXPAT_LIBRARY_W32_RELEASE,libexpat.lib,win32/bin/Release 1197dnl MSWIN_FIND_FILE expat,P_EXPAT_LIBRARY_W32_DEBUG,libexpatMT.lib,win32/bin/Debug 1198dnl MSWIN_FIND_FILE expat,P_EXPAT_LIBRARY_W32_RELEASE,libexpatMT.lib,win32/bin/Release 1199dnl MSWIN_FIND_FILE expat,P_EXPAT_LIBRARY_WM5_DEBUG,expat.lib,wm5/Debug 1200dnl MSWIN_FIND_FILE expat,P_EXPAT_LIBRARY_WM5_RELEASE,expat.lib,wm5/Release 1201dnl MSWIN_FIND_FILE expat,P_EXPAT_LIBRARY_WM6_DEBUG,expat.lib,wm6/Debug 1202dnl MSWIN_FIND_FILE expat,P_EXPAT_LIBRARY_WM6_RELEASE,expat.lib,wm6/Release 1203dnl MSWIN_FIND_FILE expat,P_EXPAT_LIBRARY_V1,libexpat.lib,lib 1204dnl MSWIN_FIND_FILE expat,P_EXPAT_LIBRARY_V2,libexpatMT.lib,bin 1205dnl MSWIN_CHECK_DIR expat,..\expat\ 1206dnl MSWIN_CHECK_DIR expat,..\external\expat\ 1207dnl MSWIN_CHECK_DIR expat,\expat 1208dnl MSWIN_CHECK_DIR expat,c:\expat\ 1209dnl MSWIN_CHECK_DIR expat,\libs\expat\ 1210dnl MSWIN_CHECK_DIR expat,\Program Files\Expat 2.* 1211dnl MSWIN_CHECK_DIR expat,\Program Files (x86)\Expat 2.* 1212 1213AC_ARG_ENABLE([expat], 1214 AS_HELP_STRING([--disable-expat],[disable expat XML support]), 1215 [enable_expat=$enableval], 1216 [enable_expat=$default_expat] 1217 ) 1218 1219 1220if test "$enable_expat" = "no" ; then 1221 AC_MSG_NOTICE(Expat disabled) 1222else 1223 PTLIB_FIND_EXPAT([HAS_EXPAT=1], [HAS_EXPAT=]) 1224 1225 if test "x${HAS_EXPAT}" = "x1" ; then 1226 AC_DEFINE(P_OEXPAT, 1, "expat found") 1227 STDCCFLAGS="$STDCCFLAGS $EXPAT_CFLAGS" 1228 ENDLDLIBS="$ENDLDLIBS $EXPAT_LIBS" 1229 fi 1230fi 1231AC_SUBST(HAS_EXPAT) 1232 1233 1234dnl ######################################################################## 1235dnl look for Lua library 1236dnl MSWIN_DISPLAY lua,Lua interpreter 1237dnl MSWIN_CHECK_FILE lua,include\lua.h,P_LUA=1 1238dnl MSWIN_DIR_SYMBOL lua,LUA_DIR 1239dnl MSWIN_CHECK_DIR lua,\Program Files\Lua\5.1 1240dnl MSWIN_CHECK_DIR lua,\Program Files (x86)\Lua\5.1 1241 1242AC_ARG_ENABLE([lua], 1243 AS_HELP_STRING([--disable-lua],[disable Lua script support]), 1244 [enable_lua=$enableval], 1245 [enable_lua=$default_lua] 1246 ) 1247 1248if test "$enable_lua" = "no" ; then 1249 AC_MSG_NOTICE(Lua disabled) 1250else 1251 PTLIB_FIND_LUA([HAS_LUA=1], [HAS_LUA=]) 1252 1253 if test "x${HAS_LUA}" = "x1" ; then 1254 AC_DEFINE(P_LUA, 1, "Lua found") 1255 STDCCFLAGS="$STDCCFLAGS $LUA_CFLAGS" 1256 ENDLDLIBS="$ENDLDLIBS $LUA_LIBS" 1257 fi 1258fi 1259AC_SUBST(HAS_LUA) 1260 1261 1262 1263 1264dnl ######################################################################## 1265dnl look for IPV6 functions 1266 1267dnl MSWIN_DISPLAY ipv6,IPv6 Support 1268dnl MSWIN_CHECK_FILE ipv6,include\ws2tcpip.h,P_HAS_IPV6=1 1269 1270AC_ARG_ENABLE(ipv6, AS_HELP_STRING([--enable-ipv6],[enable IPV6 support])) 1271 1272if test "${enable_ipv6}z" = "z" ; then 1273 enable_ipv6=$default_ipv6 1274fi 1275 1276HAS_IPV6= 1277 1278if test "$enable_ipv6" = "no" ; then 1279 AC_MSG_NOTICE(IPV6 disabled) 1280else 1281 AC_MSG_CHECKING(for IPv6 support) 1282 AC_TRY_COMPILE([#include <sys/types.h> 1283 #include <netinet/in.h>], 1284 [struct sockaddr_in6 s; s.sin6_scope_id = 0;], HAS_IPV6=yes, HAS_IPV6=no) 1285 if test $HAS_IPV6 = no ; then 1286 AC_MSG_RESULT(no) 1287 else 1288 AC_TRY_COMPILE([#include <sys/socket.h> 1289 #include <netdb.h>], 1290 [getnameinfo(0, 0, 0, 0, 0, 0, 0);], HAS_IPV6=yes, HAS_IPV6=no) 1291 if test $HAS_IPV6 = no ; then 1292 AC_MSG_RESULT(no) 1293 else 1294 AC_MSG_RESULT(yes) 1295 AC_DEFINE(P_HAS_IPV6, 1, "IPV6 enabled") 1296 HAS_IPV6=1 1297 fi 1298 fi 1299fi 1300AC_SUBST(HAS_IPV6) 1301 1302HAS_INET_NTOP= 1303AC_MSG_CHECKING(for inet_ntop) 1304AC_TRY_COMPILE([#include <sys/types.h> 1305 #include <netinet/in.h> 1306 #include <arpa/inet.h>], 1307 [int af; void * src; char * dst; socklen_t len; inet_ntop(af, src, dst, len);], HAS_INET_NTOP=yes, HAS_INET_NTOP=no) 1308if test $HAS_INET_NTOP = no ; then 1309 AC_MSG_RESULT(no) 1310else 1311 AC_DEFINE(P_HAS_INET_NTOP, 1) 1312 AC_MSG_RESULT(yes) 1313fi 1314 1315dnl ######################################################################## 1316dnl check for enabling config file support 1317dnl MSWIN_DISPLAY configfile,Config file protocol support 1318dnl MSWIN_DEFINE configfile,P_CONFIG_FILE 1319 1320PTLIB_SIMPLE_OPTION([configfile], [CONFIG_FILE], [enable config file support]) 1321 1322dnl ######################################################################## 1323dnl check for URL support 1324dnl MSWIN_DISPLAY url,URL Support 1325dnl MSWIN_DEFINE url,P_URL 1326 1327PTLIB_SIMPLE_OPTION([url], [URL], [enable URL support]) 1328 1329dnl ######################################################################## 1330dnl check for HTTP support 1331dnl MSWIN_DISPLAY http,HTTP Support 1332dnl MSWIN_DEFINE http,P_HTTP 1333dnl MSWIN_IF_FEATURE http,url 1334 1335PTLIB_SIMPLE_OPTION([http], [HTTP], [enable HTTP support], [HAS_URL]) 1336 1337dnl ######################################################################## 1338dnl check for HTTPFORMS support 1339dnl MSWIN_DISPLAY httpforms,HTTP forms Support 1340dnl MSWIN_DEFINE httpforms,P_HTTPFORMS 1341dnl MSWIN_IF_FEATURE httpforms,http&configfile 1342 1343PTLIB_SIMPLE_OPTION([httpforms], [HTTPFORMS], [enable HTTP forms support], [HAS_HTTP], [HAS_CONFIG_FILE]) 1344 1345 1346dnl ######################################################################## 1347dnl check for HTTPSVC support 1348dnl MSWIN_DISPLAY httpsvc,HTTP service Support 1349dnl MSWIN_DEFINE httpsvc,P_HTTPSVC 1350dnl MSWIN_IF_FEATURE httpsvc,httpforms 1351 1352PTLIB_SIMPLE_OPTION([httpsvc], [HTTPSVC], [enable HTTP server support], [HAS_HTTPFORMS]) 1353 1354dnl ######################################################################## 1355dnl Jabber 1356dnl MSWIN_DISPLAY jabber,Jabber 1357dnl MSWIN_DEFINE jabber,P_JABBER 1358dnl MSWIN_IF_FEATURE jabber,expat 1359 1360PTLIB_SIMPLE_OPTION([jabber], [JABBER], [enable Jabber support], [HAS_EXPAT]) 1361 1362dnl ######################################################################## 1363dnl VXML 1364dnl MSWIN_DISPLAY vxml,VXML Support 1365dnl MSWIN_DEFINE vxml,P_VXML 1366dnl MSWIN_IF_FEATURE vxml,http&expat 1367 1368PTLIB_SIMPLE_OPTION([vxml], [VXML], [enable VXML support], [HAS_EXPAT], [HAS_HTTP]) 1369 1370dnl ######################################################################## 1371dnl XMLRPC 1372dnl MSWIN_DISPLAY xmlrpc,XMLRPC Support 1373dnl MSWIN_DEFINE xmlrpc,P_XMLRPC 1374dnl MSWIN_IF_FEATURE xmlrpc,http&expat 1375 1376PTLIB_SIMPLE_OPTION([xmlrpc], [XMLRPC], [enable XMLRPC support], [HAS_EXPAT], [HAS_HTTP]) 1377 1378dnl ######################################################################## 1379dnl SOAP 1380dnl MSWIN_DISPLAY soap,SOAP Support 1381dnl MSWIN_DEFINE soap,P_SOAP 1382dnl MSWIN_IF_FEATURE soap,http&expat 1383 1384PTLIB_SIMPLE_OPTION([soap], [SOAP], [enable SOAP support], [HAS_EXPAT], [HAS_HTTP]) 1385 1386dnl ######################################################################## 1387dnl MSWIN_DISPLAY atl,Active Template Library 1388dnl MSWIN_CHECK_FILE atl,atlbase.h,P_ATL=1 1389 1390dnl ######################################################################## 1391dnl Speech 1392dnl MSWIN_DISPLAY sapi,Speech API 1393dnl MSWIN_CHECK_FILE sapi,include\sphelper.h,P_SAPI=1 1394dnl MSWIN_DEFINE sapi,P_TTS 1395 1396 1397PTLIB_SIMPLE_OPTION([tts], [TTS], [enable Text-To-Speech server support]) 1398 1399dnl ######################################################################## 1400dnl check for enabling ASN support 1401dnl MSWIN_DISPLAY asn,ASN Support 1402dnl MSWIN_DEFINE asn,P_ASN 1403 1404PTLIB_SIMPLE_OPTION([asn], [ASN], [enable ASN decoding/encoding support]) 1405 1406dnl ######################################################################## 1407dnl check for enabling STUN support 1408dnl MSWIN_DISPLAY stun,STUN Support 1409dnl MSWIN_DEFINE stun,P_STUN 1410 1411PTLIB_SIMPLE_OPTION([stun], [STUN], [enable STUN support]) 1412 1413dnl ######################################################################## 1414dnl check for enabling PIPECHAN support 1415dnl MSWIN_DISPLAY pipechan,pipe channel Support 1416dnl MSWIN_DEFINE pipechan,P_PIPECHAN 1417 1418PTLIB_SIMPLE_OPTION([pipechan], [PIPECHAN], [enable pipechannel support]) 1419 1420dnl ######################################################################## 1421dnl check for enabling DTMF support 1422dnl MSWIN_DISPLAY dtmf,DTMF encoding/decoding support 1423dnl MSWIN_DEFINE dtmf,P_DTMF 1424 1425PTLIB_SIMPLE_OPTION([dtmf], [DTMF], [enable DTMF protocol support]) 1426 1427dnl ######################################################################## 1428dnl check for enabling SOCKS support 1429dnl MSWIN_DISPLAY socks,SOCKS protocol support 1430dnl MSWIN_DEFINE socks,P_SOCKS 1431 1432PTLIB_SIMPLE_OPTION([socks], [SOCKS], [enable SOCKS protocol support]) 1433 1434dnl ######################################################################## 1435dnl check for enabling FTP support 1436dnl MSWIN_DISPLAY ftp,FTP protocol support 1437dnl MSWIN_DEFINE ftp,P_FTP 1438 1439PTLIB_SIMPLE_OPTION([ftp], [FTP], [enable FTP protocol support]) 1440 1441dnl ######################################################################## 1442dnl check for enabling SNMP support 1443dnl MSWIN_DISPLAY snmp,SNMP protocol support 1444dnl MSWIN_DEFINE snmp,P_SNMP 1445 1446PTLIB_SIMPLE_OPTION([snmp], [SNMP], [enable SNMP protocol support]) 1447 1448dnl ######################################################################## 1449dnl check for enabling TELNET support 1450dnl MSWIN_DISPLAY telnet,Telnet protocol support 1451dnl MSWIN_DEFINE telnet,P_TELNET 1452 1453PTLIB_SIMPLE_OPTION([telnet], [TELNET], [enable TELNET protocol support]) 1454 1455dnl ######################################################################## 1456dnl check for enabling REMCONN support 1457dnl MSWIN_DISPLAY remconn,remote connection support 1458dnl MSWIN_DEFINE remconn,P_REMCONN 1459 1460PTLIB_SIMPLE_OPTION([remconn], [REMCONN], [enable remote connection support], [HAS_CONFIG_FILE]) 1461 1462dnl ######################################################################## 1463dnl check for enabling serial port handling 1464dnl MSWIN_DISPLAY serial,Serial Support 1465dnl MSWIN_DEFINE serial,P_SERIAL 1466 1467PTLIB_SIMPLE_OPTION([serial], [SERIAL], [enable serial port support]) 1468 1469dnl ######################################################################## 1470dnl check for POP3/SMTP support 1471dnl MSWIN_DISPLAY pop3smtp,POP3/SMTP Support 1472dnl MSWIN_DEFINE pop3smtp,P_POP3SMTP 1473 1474PTLIB_SIMPLE_OPTION([pop3smtp], [POP3SMTP], [enable POP3/SMTP support]) 1475 1476dnl ######################################################################## 1477dnl check for sound support 1478dnl MSWIN_DISPLAY audio,Sound support 1479dnl MSWIN_DEFINE audio,P_AUDIO 1480 1481PTLIB_SIMPLE_OPTION([audio], [AUDIO], [enable audio support]) 1482 1483dnl ######################################################################## 1484dnl check for enabling WAVFILE support 1485dnl MSWIN_DISPLAY wavfile,WAV file support 1486dnl MSWIN_DEFINE wavfile,P_WAVFILE 1487 1488PTLIB_SIMPLE_OPTION([wavfile], [WAVFILE], [enable WAVFILE support], [HAS_AUDIO]) 1489 1490 1491dnl ######################################################################## 1492dnl look for QoS functions 1493 1494dnl MSWIN_DISPLAY qos,QoS Support 1495dnl MSWIN_CHECK_FILE qos,include\qossp.h|QOS_DESTADDR,P_QOS=1 1496 1497PTLIB_SIMPLE_OPTION([qos], [QOS], [enable QOS support]) 1498 1499dnl ######################################################################## 1500dnl check for video support 1501dnl MSWIN_DISPLAY video,Video Support 1502dnl MSWIN_DEFINE video,P_VIDEO 1503 1504PTLIB_SIMPLE_OPTION([video], [VIDEO], [enable video device support]) 1505if test "x${HAS_VIDEO}" != "x1" ; then 1506 AC_DEFINE([NO_VIDEO_CAPTURE], [], [No video capture]) 1507fi 1508 1509dnl ######################################################################## 1510dnl check for enabling video file support 1511dnl MSWIN_DISPLAY vidfile,Video file support 1512dnl MSWIN_DEFINE vidfile,P_VIDFILE 1513 1514PTLIB_SIMPLE_OPTION([vidfile], [VIDFILE], [enable video file support], [HAS_VIDEO]) 1515 1516dnl ######################################################################## 1517dnl check for enabling FFMpeg video file support 1518dnl MSWIN_DISPLAY ffvdev,FFMpeg video file support 1519dnl MSWIN_DEFINE ffvdev,P_FFVDEV 1520 1521PTLIB_SIMPLE_OPTION([ffvdev], [FFVDEV], [enable FFMpeg video file support], [HAS_FFVDEV], [HAS_PIPECHAN]) 1522 1523dnl ######################################################################## 1524dnl check for enabling app share support 1525dnl MSWIN_DISPLAY appshare,Application share support 1526dnl MSWIN_DEFINE appshare,P_APPSHARE 1527 1528PTLIB_SIMPLE_OPTION([appshare], [APPSHARE], [enable application sharing support], [HAS_VIDEO]) 1529 1530dnl ######################################################################## 1531dnl enable shared memory video devices (static video plugin) 1532 1533PTLIB_SIMPLE_OPTION([shmvideo], [SHM_VIDEO], [enable shared memory video devices]) 1534 1535dnl ######################################################################## 1536dnl look for SDL, but only if we have pthreads 1537 1538dnl MSWIN_DISPLAY libsdl,Simple DirectMedia Layer 1539dnl MSWIN_CHECK_FILE libsdl,include\SDL.h,P_SDL=1 1540dnl MSWIN_CHECK_FILE libsdl,include\SDL\SDL.h,P_SDL=2 1541dnl MSWIN_DIR_SYMBOL libsdl,SDL_DIR 1542dnl MSWIN_FIND_FILE libsdl,P_SDL_LIBRARY,SDL.lib,lib 1543dnl MSWIN_CHECK_DIR libsdl,..\sdl* 1544dnl MSWIN_CHECK_DIR libsdl,..\external\sdl* 1545dnl MSWIN_CHECK_DIR libsdl,\sdl\ 1546dnl MSWIN_CHECK_DIR libsdl,c:\sdl\ 1547dnl MSWIN_CHECK_DIR libsdl,\Program Files (x86)\OSSBuild\GStreamer\v0.10.6\sdk 1548 1549AC_ARG_ENABLE([sdl], 1550 AS_HELP_STRING([--disable-sdl],[disable SDL support]), 1551 [enable_sdl=$enableval], 1552 [enable_sdl=$default_sdl] 1553 ) 1554 1555HAS_SDL= 1556if test "x${HAS_VIDEO}" != "x1" ; then 1557 AC_MSG_NOTICE(SDL disabled due to disabled dependency HAS_VIDEO) 1558else 1559 if test "$enable_sdl" = "no" ; then 1560 AC_MSG_NOTICE(SDL disabled) 1561 else 1562 PKG_CHECK_MODULES([SDL], 1563 [sdl], 1564 [ 1565 HAS_SDL=1 1566 AC_DEFINE(P_SDL, 1, "SDL found") 1567 STDCCFLAGS="$STDCCFLAGS ${SDL_CFLAGS}" 1568 LDFLAGS="$LDFLAGS `pkg-config --libs-only-L sdl`" 1569 ENDLDLIBS="$ENDLDLIBS `pkg-config --libs-only-l sdl`" 1570 ],[HAS_SDL=]) 1571 fi 1572fi 1573AC_SUBST(HAS_SDL) 1574 1575 1576dnl ######################################################################## 1577dnl check for video capture support. 1578dnl videodev.h on linux 1579dnl machine/ioctl_meteor on FreeBSD 1580dnl i386/ioctl_meteor on OpenBSD 1581dnl dev/ic/bt8xx on NetBSD 1582 1583HAS_VIDEO_CAPTURE= 1584if test "x${HAS_VIDEO}" = "x1" ; then 1585 if test "x${HAS_PLUGINS}" = "x1" ; then 1586 HAS_VIDEO_CAPTURE=1 1587 fi 1588 case "$target_os" in 1589 cygwin* | mingw* ) 1590 PTLIB_FIND_DIRECTX([HAS_VIDEO_CAPTURE=1 1591 ENDLDLIBS="$ENDLDLIBS ${DIRECTX_LIBS}" 1592 STDCCFLAGS="$STDCCFLAGS ${DIRECTX_INCLUDES}" 1593 HAS_DIRECTSHOW=1 1594 HAS_DIRECTSOUND=1 1595 AC_DEFINE(P_DIRECTSHOW, 1) 1596 AC_DEFINE(P_DIRECTX, 1) 1597 AC_DEFINE(P_DIRECTSOUND, 1) 1598 ]) 1599 ;; 1600 esac 1601 1602 if test "${HAS_VIDEO_CAPTURE}z" = "z" ; then 1603 AC_MSG_NOTICE(No Video Capture support) 1604 AC_DEFINE([NO_VIDEO_CAPTURE], [], [No video capture]) 1605 fi 1606 1607 dnl these are needed to pass through to plugin configure 1608 AC_ARG_ENABLE(v4l, [ --enable-v4l enable V4L video support]) 1609 AC_ARG_ENABLE(v4l2, [ --enable-v4l2 enable V4L2 video support]) 1610 AC_ARG_ENABLE(bsdvideo, [ --enable-bsdvideo enable BSD video support]) 1611 AC_ARG_ENABLE(avc, [ --enable-avc enable IEEE1394/AVC video support]) 1612 AC_ARG_ENABLE(dc, [ --enable-dc enable IEEE1394/DC video support]) 1613fi 1614 1615AC_SUBST(HAS_DIRECTSHOW) 1616AC_SUBST(HAS_DIRECTSOUND) 1617AC_SUBST(HAS_VIDEO_CAPTURE) 1618 1619PTLIB_SIMPLE_OPTION([vfw], [VFW_CAPTURE], [enable video for windows capture], [HAS_VIDEO]) 1620 1621if test "x${HAS_AUDIO}" = "x1" ; then 1622 1623 dnl these are needed to pass through to the plugin configure program 1624 AC_ARG_ENABLE(alsa, [ --enable-alsa enable ALSA audio support],enable_alsa=$enableval) 1625 AC_ARG_ENABLE(oss, [ --enable-oss enable OSS audio support],enable_oss=$enableval) 1626 AC_ARG_ENABLE(pulse, [ --enable-pulse enable PULSE audio support],enable_pulse=$enableval) 1627fi 1628 1629 1630 1631dnl ######################################################################## 1632dnl look for Direct Sound 1633 1634dnl MSWIN_DISPLAY dsound,Direct Sound Support 1635dnl MSWIN_CHECK_FILE dsound,include\dsound.h,P_DIRECTSOUND=1 1636dnl MSWIN_FIND_FILE dsound,P_DIRECTSOUND_DXERR_H,dxerr.h,include 1637dnl MSWIN_FIND_FILE dsound,P_DIRECTSOUND_LIB,dsound.lib,lib 1638 1639 1640dnl ######################################################################## 1641dnl look for Direct Show (video) 1642 1643dnl MSWIN_DISPLAY dshow,Direct Show Support 1644dnl MSWIN_CHECK_FILE dshow,include\dshow.h,P_DIRECTSHOW=1 1645dnl MSWIN_FIND_FILE dshow,P_DIRECTSHOW_QEDIT_H,Qedit.h,include 1646 1647 1648dnl ######################################################################## 1649dnl look for MEMORY_CHECK enabled. 1650 1651AC_ARG_ENABLE(memcheck, 1652 AS_HELP_STRING([--enable-memcheck],[enable leak testing code (off by default)]), 1653 memcheck=$enableval) 1654 1655if test "$memcheck" = "yes" ; then 1656 AC_DEFINE(PMEMORY_CHECK, 1) 1657 AC_MSG_NOTICE(Memory checking enabled) 1658fi 1659 1660 1661dnl ######################################################################## 1662dnl look for ODBC code 1663 1664dnl MSWIN_DISPLAY odbc,ODBC support 1665dnl MSWIN_CHECK_FILE odbc,include\odbcinst.h,P_ODBC=1 1666 1667AC_ARG_ENABLE([odbc], 1668 AS_HELP_STRING([--disable-odbc],[disable ODBC support]), 1669 [enable_odbc=$enableval], 1670 [enable_odbc=$default_odbc] 1671 ) 1672 1673if test "$enable_odbc" = "no" ; then 1674 AC_MSG_NOTICE(ODBC disabled) 1675else 1676 PTLIB_FIND_ODBC([HAS_ODBC=1], [HAS_ODBC=]) 1677 1678 if test "x${HAS_ODBC}" = "x1" ; then 1679 AC_DEFINE(P_ODBC, 1, "ODBC found") 1680 STDCCFLAGS="$STDCCFLAGS $ODBC_CFLAGS" 1681 ENDLDLIBS="$ENDLDLIBS $ODBC_LIBS" 1682 AC_MSG_NOTICE(ODBC support enabled) 1683 fi 1684fi 1685AC_SUBST(HAS_ODBC) 1686 1687dnl ######################################################################## 1688dnl output make directives 1689 1690dnl resolver needs to be at the end 1691if test "${HAS_RESOLVER:-unset}" != "unset" ; then 1692 ENDLDLIBS="$ENDLDLIBS ${RESOLVER_LIBS}" 1693dnl PKG_LIBS="$PKG_LIBS ${RESOLVER_LIBS}" 1694fi 1695 1696dnl dl needs to be at the end 1697if test "x${HAS_LIBDL}" = "x1" ; then 1698 ENDLDLIBS="$ENDLDLIBS $DL_LIBS" 1699dnl PKG_LIBS="$PKG_LIBS $DL_LIBS" 1700 STDCCFLAGS="$STDCCFLAGS $DL_CFLAGS" 1701dnl PKG_CFLAGS="$PKG_CFLAGS $DL_CFLAGS" 1702fi 1703 1704 1705dnl ######################################################################## 1706dnl this reduces the size of all executables and libraries 1707 1708case "$target_os" in 1709 solaris* | sunos* ) ;; 1710 *) 1711 PTLIB_SIMPLE_OPTION([exceptions], [EXCEPTIONS], [enable C++ exceptions]) 1712 1713 if test "x${HAS_EXCEPTIONS}" = "x1" ; then 1714 STDCCFLAGS="$STDCCFLAGS -fexceptions" 1715 else 1716 STDCCFLAGS="$STDCCFLAGS -fno-exceptions" 1717 fi 1718 ;; 1719esac 1720 1721 1722dnl Forward compatibility for pkg-config options 1723AC_DEFUN([PTLIB_NEW_OPTION], 1724 [ 1725 if test "x${HAS_$1}" = "x1" ; then 1726 AC_SUBST([PTLIB_$1], [yes]) 1727 else 1728 AC_SUBST([PTLIB_$1], [no]) 1729 fi 1730 ] 1731 ) 1732 1733PTLIB_NEW_OPTION(IPV6) 1734PTLIB_NEW_OPTION(RESOLVER) 1735PTLIB_NEW_OPTION(OPENSSL) 1736PTLIB_NEW_OPTION(OPENSSL_AES) 1737PTLIB_NEW_OPTION(OPENLDAP) 1738PTLIB_NEW_OPTION(SASL) 1739PTLIB_NEW_OPTION(SASL2) 1740PTLIB_NEW_OPTION(EXPAT) 1741PTLIB_NEW_OPTION(REGEX) 1742PTLIB_NEW_OPTION(SDL) 1743PTLIB_NEW_OPTION(VIDEO_CAPTURE) 1744 1745PTLIB_NEW_OPTION(TTS) 1746PTLIB_NEW_OPTION(ASN) 1747PTLIB_NEW_OPTION(STUN) 1748PTLIB_NEW_OPTION(PIPECHAN) 1749PTLIB_NEW_OPTION(DTMF) 1750PTLIB_NEW_OPTION(WAVFILE) 1751PTLIB_NEW_OPTION(SOCKS) 1752PTLIB_NEW_OPTION(FTP) 1753PTLIB_NEW_OPTION(SNMP) 1754PTLIB_NEW_OPTION(TELNET) 1755PTLIB_NEW_OPTION(REMCONN) 1756PTLIB_NEW_OPTION(SERIAL) 1757PTLIB_NEW_OPTION(POP3SMTP) 1758PTLIB_NEW_OPTION(AUDIO) 1759PTLIB_NEW_OPTION(VIDEO) 1760PTLIB_NEW_OPTION(SHM_VIDEO) 1761 1762PTLIB_NEW_OPTION(VXML) 1763PTLIB_NEW_OPTION(JABBER) 1764PTLIB_NEW_OPTION(XMLRPC) 1765PTLIB_NEW_OPTION(SOAP) 1766PTLIB_NEW_OPTION(URL) 1767PTLIB_NEW_OPTION(HTTP) 1768PTLIB_NEW_OPTION(HTTPFORMS) 1769PTLIB_NEW_OPTION(HTTPSVC) 1770PTLIB_NEW_OPTION(CONFIG_FILE) 1771PTLIB_NEW_OPTION(VIDFILE) 1772PTLIB_NEW_OPTION(FFVDEV) 1773PTLIB_NEW_OPTION(ODBC) 1774 1775dnl /Forward compatibility for pkg-config options 1776 1777dnl ######################################################################## 1778dnl final declarations 1779 1780AC_SUBST(CC) 1781AC_SUBST(CXX) 1782AC_SUBST(STDCCFLAGS) 1783AC_SUBST(STDCXXFLAGS) 1784AC_SUBST(OPTSTDCCFLAGS) 1785AC_SUBST(LDFLAGS) 1786AC_SUBST(ENDLDLIBS) 1787AC_SUBST(DEBUG_FLAG) 1788AC_SUBST(OSTYPE) 1789AC_SUBST(MACHTYPE) 1790AC_PROG_INSTALL 1791 1792AC_CONFIG_FILES(make/ptbuildopts.mak) 1793AC_CONFIG_FILES([make/ptlib-config], [chmod a+x make/ptlib-config]) 1794AC_CONFIG_FILES(Makefile) 1795AC_CONFIG_FILES(ptlib_cfg.dxy) 1796AC_CONFIG_FILES(ptlib.pc) 1797 1798dnl ######################################################################## 1799dnl output header file 1800AC_CONFIG_HEADERS(include/ptbuildopts.h) 1801 1802AC_OUTPUT() 1803