1AC_DEFUN([CS_SETUP_DEFAULTS], [ 2 ac_default_prefix=/usr 3 if test ${sysconfdir} = '${prefix}/etc'; then 4 sysconfdir=/etc 5 fi 6 if test ${mandir} = '${prefix}/man'; then 7 mandir=/usr/share/man 8 fi 9]) 10 11AC_DEFUN([CS_SETUP_BUILD],[ 12 13 AC_PATH_TOOL([UNAME],[uname],[No]) 14 AC_PATH_PROGS([DATE],[date],[No]) 15 AC_PATH_PROGS([UNAME],[uname],[No]) 16 AC_PATH_PROGS([SED],[gsed sed],[No]) 17 AC_PATH_PROGS([ID],[id],[No]) 18 19 if test ! x"${UNAME}" = xNo; then 20 if test -n $BUILD_OS ; then 21 BUILD_DATE="`date -u "+%Y-%m-%d %H:%M:%S"` UTC" 22 BUILD_OS="`${UNAME} -s`" 23 BUILD_MACHINE="`${UNAME} -m`" 24 BUILD_HOSTNAME="`${UNAME} -n`" 25 BUILD_KERNEL="`${UNAME} -r`" 26 if test "_${SED}" != "_No" && test "_${ID}" != "_No"; then 27 BUILD_USER="`${ID} | ${SED} -n 's/.*(\(.*\)) .*/\1/p'`" 28 elif test ! -z "${USERNAME}"; then 29 BUILD_USER="${USERNAME}" 30 else 31 AC_PATH_PROGS([WHOAMI],[whoami],[No]) 32 BUILD_USER="`${WHOAMI}`" 33 fi 34 AC_DEFINE_UNQUOTED([BUILD_DATE],"`echo ${BUILD_DATE}`",[The date of this build]) 35 AC_DEFINE_UNQUOTED([BUILD_OS],"`echo ${BUILD_OS}`",[Operating System we are building on]) 36 AC_DEFINE_UNQUOTED([BUILD_MACHINE],"`echo ${BUILD_MACHINE}`",[Machine we are building on]) 37 AC_DEFINE_UNQUOTED([BUILD_HOSTNAME],"`echo ${BUILD_HOSTNAME}`",[Hostname of our Box]) 38 AC_DEFINE_UNQUOTED([BUILD_KERNEL],"`echo ${BUILD_KERNEL}`",[Kernel version of this build]) 39 AC_DEFINE_UNQUOTED([BUILD_USER],"`echo ${BUILD_USER}`",[building user]) 40 AC_SUBST([BUILD_DATE]) 41 AC_SUBST([BUILD_OS]) 42 AC_SUBST([BUILD_MACHINE]) 43 AC_SUBST([BUILD_HOSTNAME]) 44 AC_SUBST([BUILD_KERNEL]) 45 AC_SUBST([BUILD_USER]) 46 fi 47 fi 48 49 AS_IF([test "${AWK}" == "No"],[ 50 echo "Utility 'awk' is missing" 51 echo "===================================" 52 echo "The awk programm is missing on your platform, this is required though." 53 echo "Please install awk / gnu-awk / mawk / nawk or some other Posix compatible version of AWK" 54 echo "And then rerun the configure process" 55 echo "===================================" 56 echo "Exitting now." 57 exit 58 ]) 59 AC_SUBST(SED) 60 AC_SUBST(UNAME) 61 AC_SUBST(DATE) 62]) 63 64AC_DEFUN([CS_SETUP_HOST_PLATFORM],[ 65 astlibdir='' 66 strip_binaries=no 67 case "${host}" in 68 *-*-darwin*) 69 AC_DEFINE([__Darwin__],1,[Using Darwin / Apple OSX]) 70 AC_DEFINE([DARWIN],1,[Using Darwin / Apple OSX]) 71 AC_SUBST(__Darwin__) 72 use_poll_compat=yes 73 no_libcap=yes 74 ostype=bsd 75 ;; 76 *-*-freebsd*) 77 AC_DEFINE([BSD], 1, [using BSD]) 78 use_poll_compat=yes 79 no_libcap=yes 80 ostype=bsd 81 EXTRA_INCLUDE="-I/usr/local/include" 82 EXTRA_LIBS="-L/usr/local/lib" 83 ;; 84 *-*-netbsd*) 85 AC_DEFINE([BSD], 1, [using BSD]) 86 use_poll_compat=yes 87 no_libcap=yes 88 ostype=bsd 89 EXTRA_INCLUDE="-I/usr/local/include" 90 EXTRA_LIBS="-L/usr/local/lib" 91 ;; 92 *-*-openbsd*) 93 AC_DEFINE([BSD], 1, [using BSD]) 94 use_poll_compat=yes 95 no_libcap=yes 96 ostype=bsd 97 EXTRA_INCLUDE="-I/usr/local/include" 98 EXTRA_LIBS="-L/usr/local/lib" 99 ;; 100 *-*-dragonfly*) 101 AC_DEFINE([BSD], 1, [using BSD]) 102 use_poll_compat=yes 103 no_libcap=yes 104 ostype=bsd 105 EXTRA_INCLUDE="-I/usr/local/include" 106 EXTRA_LIBS="-L/usr/local/lib" 107 ;; 108 *-aix*) 109 AC_DEFINE([AIX], 1, [using IAX]) 110 use_poll_compat=yes 111 broken_types=yes 112 no_libcap=yes 113 ostype=aix 114 ;; 115 *-osf4*) 116 AC_DEFINE([OSF1], 1, [using my beloved Digital OS]) 117 use_poll_compat=yes 118 tru64_types=yes 119 no_libcap=yes 120 ostype=osf 121 ;; 122 *-osf5.1*) 123 AC_DEFINE([OSF1], 1, [using my beloved Digital OS]) 124 use_poll_compat=yes 125 no_libcap=yes 126 ostype=osf 127 ;; 128 *-tru64*) 129 AC_DEFINE([OSF1], 1, [using my beloved Digital OS]) 130 use_poll_compat=yes 131 tru64_types=yes 132 no_libcap=yes 133 ostype=osf 134 ;; 135 *-*-linux*) 136 AC_DEFINE([LINUX],[1],[using LINUX]) 137 LARGEFILE_FLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" 138 CFLAGS_saved="$CFLAGS_saved $LARGEFILE_FLAGS" 139 ostype=linux 140 ;; 141 *cygwin*) 142 AC_DEFINE([_WIN32_WINNT],[0x0500],[Heya, it's windows]) 143 AC_DEFINE([INET_ADDRSTRLEN],[16],[cygwin detection does not work for that, anybody has an idea ?]) 144 AC_DEFINE([INET6_ADDRSTRLEN],[46],[cygwin detection does not work for that, anybody has an idea ?]) 145 AC_DEFINE([__CYGWIN__],[1],[make sure __CYGWIN__ is defined ...]) 146 ostype=cygwin 147 ;; 148 *-*-solaris2*) 149 AC_DEFINE([SOLARIS],[1],[using SOLARIS]) 150 use_poll_compat=yes 151 no_libcap=yes 152 ostype=solaris 153 force_generic_timers=yes 154 ;; 155 *) 156 AC_MSG_RESULT(["Unsupported/Unknown operating system: ${host}"]) 157 use_poll_compat=yes 158 no_libcap=yes 159 ostype=unknown 160 ;; 161 esac 162 if test "x$use_poll_compat" = "xyes"; then 163 AC_DEFINE([CS_USE_POLL_COMPAT], 1, [Define to 1 if internal poll should be used.]) 164 fi 165 AC_MSG_RESULT([Running on: ${host}]) 166 AC_SUBST(ostype) 167]) 168 169AC_DEFUN([CS_SETUP_ENVIRONMENT], [ 170 AC_LANG_SAVE 171 AC_LANG_C 172 AC_DISABLE_STATIC 173 AS_IF( [test -z "`${CC} -std=gnu11 -fgnu89-inline -dM -E - </dev/null 2>&1 |grep 'unrecognized command line option'`" && test $? == 0], [CFLAGS_saved="$CFLAGS_saved -std=gnu11 -fgnu89-inline"], 174 [test -n "`${CC} -std=gnu99 -fgnu89-inline -Wno-ignored-qualifiers -dM -E - </dev/null 2>&1 |grep '__STDC_VERSION__ 1999'`" && test $? == 0], [CFLAGS_saved="$CFLAGS_saved -std=gnu99 -fgnu89-inline -Wno-ignored-qualifiers"], 175 [test -n "`${CC} -std=gnu99 -fgnu89-inline -Wno-return-type -dM -E - </dev/null 2>&1 |grep '__STDC_VERSION__ 1999'`" && test $? == 0], [CFLAGS_saved="$CFLAGS_saved -std=gnu99 -fgnu89-inline -Wno-return-type"], 176 [test -n "`${CC} -std=gnu89 -Wno-return-type -dM -E - </dev/null 2>&1 |grep '__STDC__ 1'`" && test $? == 0], [CFLAGS_saved="$CFLAGS_saved -std=gnu89 -Wno-return-type";CC_works=0], 177 [CFLAGS_saved="$CFLAGS_saved -Wno-return-type";CC_works=0]) 178 AS_IF( [test "${cross_compiling}" = "yes"], 179 [ 180 AC_CHECK_TOOL(CC, gcc, :) 181 AC_CHECK_TOOL(LD, ld, :) 182 AC_CHECK_TOOL(RANLIB, ranlib, :) 183 ]) 184]) 185 186AC_DEFUN([CS_FIND_PROGRAMS], [ 187 AC_LANG_SAVE 188 AC_LANG_C 189 dnl AC_PATH_PROGS([SVN],[svn],[echo Missing subversion],[${PATH}:/opt/csw/bin]) 190 dnl AC_PATH_PROGS([SVNVERSION],[svnversion], [echo Missing subversion],[${PATH}:/opt/csw/bin]) 191 AC_PATH_PROGS([GIT],[git],[No],[${PATH}:/opt/csw/bin]) 192 dnl AC_PATH_PROGS([HG],[hg],[echo Missing mercurial],[${PATH}:/opt/csw/bin]) 193 AC_PATH_PROGS([SHELL],[bash sh],[echo No compatible shell found]) 194 AC_PATH_PROGS([SH],[bash sh],[echo No compatible shell found]) 195 AC_PATH_PROGS([M4],[gm4 m4],[echo No m4 found, who will process my macros now ?]) 196 AC_PATH_PROGS([GREP],[ggrep grep],[echo Missing grep so skipping but I doubt we will get anywhere]) 197 AC_PATH_PROGS([CAT],[cat],[echo cat not found, Doh!]) 198 AC_PATH_PROGS([UNAME],[uname],[echo uname not found so no version info will be available]) 199 AC_PATH_PROGS([RPMBUILD],[rpmbuild],[echo rpmbuild not found so you cannot build rpm packages (no problem)]) 200 AC_PATH_PROGS([OBJCOPY],[objcopy],[echo objcopy not found so we can not safe debug information (no problem)]) 201 AC_PATH_PROGS([GDB],[gdb],[echo gdb not found so we can not generate backtraces (no problem)]) 202 AC_PATH_PROGS([HEAD],[head],[No]) 203 AC_PATH_PROGS([CUT],[cut],[No]) 204 AC_PATH_PROGS([TR],[tr],[No]) 205 AC_PATH_PROGS([AWK],[gawk awk],[No]) 206 AC_PATH_PROGS([PKGCONFIG],[pkg-config],[No]) 207 AC_PATH_PROGS([OPENSSL], [openssl], [No]) 208 AC_PROG_CC([clang llvm-gcc gcc]) 209 AC_PROG_CC_C_O 210 AC_PROG_GCC_TRADITIONAL 211 AC_PROG_CPP 212 AC_PROG_INSTALL 213 AC_PROG_AWK 214 AC_PROG_LN_S 215 AC_PROG_MAKE_SET 216 AC_C_CONST 217 AC_C_INLINE 218 AC_PROG_LIBTOOL 219 AC_SUBST([SVN]) 220 AC_SUBST([SVNVERSION]) 221 AC_SUBST([GIT]) 222 AC_SUBST([HG]) 223 AC_SUBST([GREP]) 224 AC_SUBST([RPMBUILD]) 225 AC_SUBST([OBJCOPY]) 226 AC_SUBST([GDB]) 227 AC_SUBST([HEAD]) 228 AC_SUBST([CUT]) 229 AC_SUBST([TR]) 230 AC_SUBST([AWK]) 231 AM_CONDITIONAL([ENABLE_RPMBUILD],[test "x${RPMBUILD}" != "xNo"]) 232]) 233 234AC_DEFUN([CS_FIND_LIBRARIES], [ 235 LIBS_save=$LIBS 236 LIBS="$LIBS $EXTRA_LIBS" 237 AC_CHECK_LIB([c], [main]) 238 AC_CHECK_LIB([pthread], [main]) 239 AC_CHECK_LIB([socket], [main]) 240dnl AC_CHECK_PROG([CURLCFG],[curl-config],[:]) 241dnl AS_IF([test -n "$CURLCFG"],[ 242dnl AC_SUBST([LIBCURL_CFLAGS],[$(curl-config --cflags)]) 243dnl AC_SUBST([LIBCURL_LIBS],[$(curl-config --libs)]) 244dnl AC_CHECK_LIB([curl], [curl_global_init]) 245dnl ]) 246 AC_CHECK_HEADERS([sys/ioctl.h]) 247 AC_CHECK_HEADERS([sys/socket.h]) 248 AC_CHECK_HEADERS([netinet/in.h]) 249 AC_CHECK_HEADERS([pthread.h]) 250 AC_CHECK_HEADERS([xlocale.h]) 251 AM_ICONV 252 AC_CHECK_LIB([iconv], [main]) 253 AC_CHECK_FUNCS([gethostbyname inet_ntoa mkdir]) 254 AC_HEADER_STDC 255 AC_HEADER_STDBOOL 256 AC_CHECK_HEADERS([netinet/in.h fcntl.h signal.h sys/signal.h stdio.h errno.h ctype.h assert.h sys/sysinfo.h]) 257 AC_STRUCT_TM 258 AC_STRUCT_TIMEZONE 259 CS_WITH_LIBSSL 260]) 261 262AC_DEFUN([CS_DISABLE_TLS], [ 263 AC_ARG_ENABLE(tls, 264 [AC_HELP_STRING([--disable-tls], [disable Transport Layer Security (EXPERIMENTAL)])], 265 [ac_cv_tls=$enableval], 266 [ac_cv_tls=yes] 267 ) 268 AS_IF([test "${ac_cv_tls}" == "yes"], [ 269 AS_IF([test "${ac_cv_tls}" == "yes"], [ 270 AC_DEFINE(CS_TLS, 1, [Transport Layer Security (EXPERIMENTAL) enabled]) 271 ]) 272 ]) 273dnl AC_MSG_RESULT([--enable-tls: ${ac_cv_tls}]) 274]) 275 276AC_DEFUN([CS_WITH_LIBSSL], [ 277 CS_DISABLE_TLS 278 if test "x${ac_cv_tls}" = "xyes"; then 279 dnl AC_CHECK_LIB([crypto], [EVP_EncryptInit], [], AC_MSG_FAILURE([can't find openssl crypto lib])) 280 dnl AC_CHECK_LIB([ssl], [SSL_CTX_new], [], AC_MSG_FAILURE([can't find openssl ssl lib])) 281 AC_CHECK_LIB([crypto], [EVP_EncryptInit], [], AC_MSG_NOTICE([can't find openssl crypto lib])) 282 AC_CHECK_LIB([ssl], [SSL_CTX_new], [], AC_MSG_NOTICE([can't find openssl ssl lib])) 283 fi 284]) 285 286AC_DEFUN([CS_CHECK_CROSSCOMPILE],[ 287 if test "$host" = "$build"; then 288 HOST_CC="${CC}" 289 else 290 HOST_CC="${HOST_CC-gcc}" 291 fi 292 AC_SUBST(HOST_CC) 293]) 294 295AC_DEFUN([CS_WITH_CCACHE],[ 296 AC_ARG_WITH(ccache, 297 AC_HELP_STRING([--with-ccache[=PATH]], [use ccache during compile]), [ac_cv_use_ccache="${withval}"], [ac_cv_use_ccache="yes"]) 298 AS_IF([test "_${ac_cv_use_ccache}" != "_no"], [ 299 AC_PATH_PROGS(CCACHE,ccache,[No],${withval}:${PATH}) 300 if test "${CCACHE}" != "No"; then 301 CC="$CCACHE $CC" 302 CPP="$CCACHE $CPP" 303 AC_SUBST([CC]) 304 AC_SUBST([CPP]) 305 AC_SUBST([CCACHE]) 306 dnl AC_MSG_NOTICE([using ccache: ${ac_cv_use_ccache}]) 307 else 308 CCACHE="" 309 fi 310 ]) 311]) 312 313AC_DEFUN([CS_SETUP_LIBTOOL], [ 314 CONFIGURE_PART([Checking Libtool:]) 315 LT_PREREQ([2.0.0]) 316 LT_INIT([dlopen]) 317 LTDL_INIT([]) 318 if test "x$with_included_ltdl" != "xyes"; then 319 save_CFLAGS="${CFLAGS}" 320 save_CPPFLAGS="${CPPFLAGS}" 321 save_LDFLAGS="${LDFLAGS}" 322 CFLAGS="${CFLAGS} ${LTDLINCL}" 323 LDFLAGS="${LDFLAGS} ${LIBLTDL}" 324 AC_CHECK_LIB([ltdl], [lt_dladvise_init],[],[AC_MSG_ERROR([installed libltdl is too old])]) 325 LDFLAGS="${save_LDFLAGS}" 326 CFLAGS="${save_CFLAGS}" 327 fi 328 AC_MSG_RESULT([libtool: setup done]) 329 AC_SUBST([LIBTOOL_DEPS]) 330]) 331 332AC_DEFUN([CS_CHECK_TYPES], [ 333 AC_MSG_CHECKING([sizeof(long long) == sizeof(long)]) 334 AC_RUN_IFELSE([AC_LANG_SOURCE([ 335 int main(void) 336 { 337 if (sizeof(long long) == sizeof(long)) 338 return 0; 339 else 340 return -1; 341 } 342 ])], [ 343 AC_DEFINE(ULONG, [unsigned long], [Define ULONG as long unsigned int]) 344 AC_DEFINE(UI64FMT, ["%lu"], [Define UI64FMT as "%lu"]) 345 AC_MSG_RESULT([yes]) 346 ], [ 347 AC_DEFINE(ULONG, [unsigned long long], [Define ULONG as long long unsigned int]) 348 AC_DEFINE(UI64FMT, ["%llu"], [Define UI64FMT as "%llu"]) 349 AC_MSG_RESULT([no]) 350 ], [ 351 dnl when cross compilation asume long long != long 352 AC_DEFINE(ULONG, [unsigned long long], [Define ULONG as long long unsigned int]) 353 AC_DEFINE(UI64FMT, ["%llu"], [Define UI64FMT as "%llu"]) 354 AC_MSG_RESULT([no]) 355 ]) 356 # Big Endian / Little Endian 357 AC_CHECK_HEADERS([endian.h sys/endian.h], [break]) 358 AC_C_BIGENDIAN(AC_DEFINE([SCCP_BIG_ENDIAN],1,[Big Endian]),AC_DEFINE([SCCP_LITTLE_ENDIAN],1,[Little Endian])) 359]) 360 361dnl Conditional Makefile.am Macros 362AC_DEFUN([AST_SET_PBX_AMCONDITIONALS],[ 363 AM_CONDITIONAL([BUILD_AST], test "$PBX_TYPE" == "Asterisk") 364 PBX_COND_SUBDIR= 365 PBX_COND_LIBADD= 366 PBXVER_COND_SUBDIR= 367 PBXVER_COND_LIBADD= 368 PBXVER_COND_ANNOUNCE_SUBDIR= 369 PBXVER_COND_ANNOUNCE_LIBADD= 370 if test "$PBX_TYPE" == "Asterisk"; then 371 PBX_COND_SUBDIR=pbx_impl/ast 372 PBX_COND_LIBADD=pbx_impl/ast/libast.la 373 PBXVER_COND_SUBDIR=pbx_impl/ast${ASTERISK_VER_GROUP}/ 374 PBXVER_COND_LIBADD=pbx_impl/ast${ASTERISK_VER_GROUP}/libast${ASTERISK_VER_GROUP}.la 375 if test ${ASTERISK_VER_GROUP} -gt 111;then 376 PBXVER_COND_ANNOUNCE_SUBDIR=pbx_impl/ast_announce 377 PBXVER_COND_ANNOUNCE_LIBADD=pbx_impl/ast_announce/libast_announce.la 378 fi 379 fi 380 AC_SUBST([PBX_COND_SUBDIR]) 381 AC_SUBST([PBX_COND_LIBADD]) 382 AC_SUBST([PBXVER_COND_SUBDIR]) 383 AC_SUBST([PBXVER_COND_LIBADD]) 384 AC_SUBST([PBXVER_COND_ANNOUNCE_SUBDIR]) 385 AC_SUBST([PBXVER_COND_ANNOUNCE_LIBADD]) 386 AM_CONDITIONAL([ASTERISK_VER_GROUP_106], [test x${ASTTERISK_VER_GROUP} = x106]) 387 AM_CONDITIONAL([ASTERISK_VER_GROUP_108], [test x${ASTTERISK_VER_GROUP} = x108]) 388 AM_CONDITIONAL([ASTERISK_VER_GROUP_110], [test x${ASTTERISK_VER_GROUP} = x110]) 389 AM_CONDITIONAL([ASTERISK_VER_GROUP_111], [test x${ASTTERISK_VER_GROUP} = x111]) 390 AM_CONDITIONAL([ASTERISK_VER_GROUP_112], [test x${ASTTERISK_VER_GROUP} = x112]) 391 AM_CONDITIONAL([ASTERISK_VER_GROUP_113], [test x${ASTTERISK_VER_GROUP} = x113]) 392 AM_CONDITIONAL([ASTERISK_VER_GROUP_114], [test x${ASTTERISK_VER_GROUP} = x114]) 393 AM_CONDITIONAL([ASTERISK_VER_GROUP_115], [test x${ASTTERISK_VER_GROUP} = x115]) 394 AM_CONDITIONAL([ASTERISK_VER_GROUP_116], [test x${ASTTERISK_VER_GROUP} = x116]) 395 AM_CONDITIONAL([ASTERISK_VER_GROUP_117], [test x${ASTTERISK_VER_GROUP} = x117]) 396 AM_CONDITIONAL([ASTERISK_VER_GROUP_118], [test x${ASTTERISK_VER_GROUP} = x118]) 397 AM_COND_IF([ASTERISK_VER_GROUP_106],[AC_CONFIG_FILES([src/pbx_impl/ast106/Makefile])]) 398 AM_COND_IF([ASTERISK_VER_GROUP_108],[AC_CONFIG_FILES([src/pbx_impl/ast108/Makefile])]) 399 AM_COND_IF([ASTERISK_VER_GROUP_110],[AC_CONFIG_FILES([src/pbx_impl/ast110/Makefile])]) 400 AM_COND_IF([ASTERISK_VER_GROUP_111],[AC_CONFIG_FILES([src/pbx_impl/ast111/Makefile])]) 401 AM_COND_IF([ASTERISK_VER_GROUP_112],[AC_CONFIG_FILES([src/pbx_impl/ast112/Makefile])]) 402 AM_COND_IF([ASTERISK_VER_GROUP_113],[AC_CONFIG_FILES([src/pbx_impl/ast113/Makefile])]) 403 AM_COND_IF([ASTERISK_VER_GROUP_114],[AC_CONFIG_FILES([src/pbx_impl/ast114/Makefile])]) 404 AM_COND_IF([ASTERISK_VER_GROUP_115],[AC_CONFIG_FILES([src/pbx_impl/ast115/Makefile])]) 405 AM_COND_IF([ASTERISK_VER_GROUP_116],[AC_CONFIG_FILES([src/pbx_impl/ast116/Makefile])]) 406 AM_COND_IF([ASTERISK_VER_GROUP_117],[AC_CONFIG_FILES([src/pbx_impl/ast117/Makefile])]) 407 AM_COND_IF([ASTERISK_VER_GROUP_118],[AC_CONFIG_FILES([src/pbx_impl/ast118/Makefile])]) 408]) 409 410AC_DEFUN([CS_WITH_PBX], [ 411 AC_ARG_WITH([asterisk], 412 [AC_HELP_STRING([--with-asterisk=PATH], [Location of the Asterisk installation])], 413 [NEW_PBX_PATH="${withval}"] 414 ) 415 416 if test "x${NEW_PBX_PATH}" != "xyes" && test "x${NEW_PBX_PATH}" != "x"; then 417 PBX_PATH="${NEW_PBX_PATH}"; 418 else 419 PBX_PATH="/usr /usr/local /opt" 420 if test -d /usr/pkg ; then 421 PBX_PATH="$PBX_PATH /usr/pkg" 422 fi 423 if test -d /usr/sfw ; then 424 PBX_PATH="$PBX_PATH /usr/sfw" 425 fi 426 fi 427 428 AC_SUBST([PBX_PATH]) 429 PBX_MANDATORY="yes" 430 431 CS_CHECK_PBX 432 433 if test "${PBX_TYPE}" = "Asterisk"; then 434 AC_DEFINE_UNQUOTED([PBX_TYPE],ASTERISK,[PBX Type]) 435 AC_DEFINE([HAVE_ASTERISK], 1, [Uses Asterisk as PBX]) 436 AST_GET_VERSION 437 AST_CHECK_HEADERS 438 elif test "${PBX_TYPE}" = "Callweaver"; then 439 AC_DEFINE_UNQUOTED([PBX_TYPE],CALLWEAVER,[PBX Type]) 440 AC_DEFINE([HAVE_CALLWEAVER], 1, [Uses Callweaver as PBX]) 441 echo "We are working on a Callweaver version" 442 else 443 echo "" 444 echo "" 445 echo "PBX type could not be determined" 446 echo "================================" 447 echo "Either install asterisk and asterisk-devel packages using your package manager." 448 echo "If you compiled asterisk manually, make sure you also run `make install-headers` so chan-sccp can find them." 449 echo "Or specify the location where asterisk can be found, using ./configure --with-asterisk=[path]" 450 exit 451 fi 452 AC_SUBST([PBX_TYPE]) 453]) 454 455AC_DEFUN([CS_SETUP_DOXYGEN], [ 456 CONFIGURE_PART([Checking for Doxygen:]) 457 AC_ARG_ENABLE([devdoc], 458 [AC_HELP_STRING([--enable-devdoc], [Generate developer documentation])], 459 [ac_cv_use_devdoc=$enableval], 460 [ac_cv_use_devdoc=no] 461 ) 462 AS_IF([test "_${ac_cv_use_devdoc}" == "_yes"], [DX_ENV_APPEND([INPUT],[. src src/pbx_impl src/pbx_impl/ast src/pbx_impl/ast116 src/pbx_impl/ast117 src/pbx_impl/ast118 src/pbx_impl/ast_announce])]) 463 DX_HTML_FEATURE(ON) 464 DX_CHM_FEATURE(OFF) 465 DX_CHI_FEATURE(OFF) 466 DX_MAN_FEATURE(OFF) 467 DX_RTF_FEATURE(OFF) 468 DX_XML_FEATURE(OFF) 469 DX_PDF_FEATURE(OFF) 470 DX_PS_FEATURE(OFF) 471 DX_INIT_DOXYGEN($PACKAGE, doc/doxygen.cfg) 472]) 473 474AC_DEFUN([CS_ENABLE_OPTIMIZATION], [ 475 AC_ARG_ENABLE(optimization, [ 476 AC_HELP_STRING([--enable-optimization],[do not detecti or tune flags for cpu version])], 477 [enable_optimization=$enableval], 478 [enable_optimization=no; if test "${REPOS_TYPE}" = "TGZ"; then enable_optimization=yes; fi] 479 ) 480 AC_ARG_ENABLE(debug, 481 [AC_HELP_STRING([--disable-debug],[disable debug information])], 482 [enable_debug=$enableval], 483 [enable_debug=yes;if test "${REPOS_TYPE}" = "TGZ"; then enable_debug=no; fi] 484 ) 485 486 LIBBFD="" 487 if test -n "${CPPFLAGS_saved}"; then 488 CPPFLAGS_saved="${CPPFLAGS_saved} -U_FORTIFY_SOURCE" 489 else 490 CPPFLAGS_saved="-U_FORTIFY_SOURCE" 491 fi 492 LDFLAGS_saved="${LDFLAGS}" 493 494 AS_IF([test "X$enable_optimization" == "Xyes"], [ 495 strip_binaries="yes" 496 AS_IF([test -z "`echo \"${CFLAGS_saved}\" | grep -e '\-O[0-9]'`"], [ 497 CFLAGS_saved="${CFLAGS_saved} -O3 " 498 ]) 499 CPPFLAGS_saved="${CPPFLAGS_saved} -D_FORTIFY_SOURCE=2" 500 GDB_FLAGS="" 501 AS_IF([test "x${GCC}" = "xyes"], [ 502 AC_LANG_SAVE 503 AC_LANG_C 504 AX_APPEND_COMPILE_FLAGS([ dnl 505 -fvisibility=hidden dnl 506 -fvisibility-inlines-hidden dnl 507 -fexcess-precision=fast dnl 508 -fvisibility=hidden dnl 509 -fwrapv dnl 510 -fno-delete-null-pointer-checks dnl 511 -xldscope=hidden dnl 512 -Wl,--as-needed dnl 513 -fPIE dnl 514 -fPIE -pie dnl 515 -Wno-format-truncation dnl 516 ], SUPPORTED_CFLAGS) 517 ]) 518 AC_SUBST([strip_binaries]) 519 ], [ 520 CFLAGS_saved="`echo ${CFLAGS_saved} |sed -e 's/\-O[0-9]\ \?//g' -e 's/[^|\ ]\-g[$|\ ]//g'`" 521 optimize_flag="-O0" 522 case "${CC}" in 523 *gcc*) 524 AX_CHECK_COMPILE_FLAG(-Og, [ 525 optimize_flag="-Og" 526 ]) 527 ;; 528 esac 529 CFLAGS_saved="${CFLAGS_saved} ${optimize_flag} " 530 ]) 531 532 AS_IF([test "X${enable_debug}" == "Xyes"], [ 533 AC_DEFINE([DEBUG],[1],[Extra debugging.]) 534 DEBUG=1 535 enable_do_crash="yes" 536 enable_debug_mutex="yes" 537 538 dnl Remove leading/ending spaces 539 CFLAGS_saved="${CFLAGS_saved} -Wall" 540 GDB_FLAGS="-g3 -ggdb3" 541 542 AS_IF([test "x${GCC}" = "xyes"], [ 543 AC_LANG_SAVE 544 AC_LANG_C 545 AX_APPEND_COMPILE_FLAGS([ dnl 546 -Wall dnl 547 -Wno-long-long dnl 548 -Wno-missing-field-initializers dnl 549 -Wmissing-declarations dnl 550 -Wnested-externs dnl 551 -Wnonnull dnl 552 -Wnonnull-compare dnl 553 -Wnull-dereference dnl 554 -Wcast-align dnl 555 -Wold-style-definition dnl 556 -Wformat-security dnl 557 -Wstrict-aliasing dnl 558 -Wmissing-format-attribute dnl 559 -Wmissing-noreturn dnl 560 -Wmissing-include-dirs dnl 561 -Winit-self dnl 562 -Warray-bounds dnl 563 -Wimplicit-function-declaration dnl 564 -Wreturn-type dnl 565 -Wsign-compare dnl 566 -Wstrict-prototypes dnl 567 -Wmissing-prototypes dnl 568 -Wempty-body dnl 569 -Wmissing-parameter-type dnl 570 -Woverride-init dnl 571 -Wtype-limits dnl 572 -Wuninitialized dnl 573 -Wshift-negative-value dnl 574 -Wendif-labels dnl 575 -Wformat-security dnl 576 -Waddress dnl 577 -Wno-pointer-sign dnl 578 -Wold-style-definition, dnl 579 -Wstrict-prototypes dnl 580 -Werror=implicit dnl 581 -Wunused dnl 582 -Wunused-const-variable dnl 583 -Wunused-function dnl 584 -Wunused-label dnl 585 -Wunused-local-typedefs dnl 586 -Wpragmas dnl 587 -Wno-overlength-strings dnl 588 -Wheader-guard dnl 589 -Wattributes dnl 590 -Wdiv-by-zero dnl 591 -Wmisleading-indentation dnl 592 -Wswitch dnl 593 -fstack-protector-all dnl 594 -fvisibility=hidden dnl 595 -fvisibility-inlines-hidden dnl 596 -fexcess-precision=fast dnl 597 -fvisibility=hidden dnl 598 -fwrapv dnl 599 -fno-delete-null-pointer-checks dnl 600 -xldscope=hidden dnl 601 -Wl,--as-needed dnl 602 -fPIE dnl 603 -fPIE -pie dnl 604 -Wno-format-truncation dnl 605 ], SUPPORTED_CFLAGS) 606 ]) 607 AS_IF([test "X${USE_MAINTAINER_MODE}" = "Xyes"], [ 608 AC_LANG_SAVE 609 AC_LANG_C 610 AX_APPEND_COMPILE_FLAGS([ dnl 611 -Wsuggest-attribute=const dnl 612 -Wsuggest-attribute=format dnl 613 -Wsuggest-attribute=noreturn dnl 614 -Wc++-compat dnl 615 -Wenum-compare dnl 616 -Wformat-truncation dnl 617 dnl -Wshorten-64-to-32 dnl 618 dnl -Wsuggest-attribute=pure dnl 619 dnl // should be added and fixed 620 dnl -Wswitch-enum dnl 621 dnl 622 dnl // somewhat pedantic 623 dnl -Wunused-parameter dnl 624 dnl -Wignored-qualifiers dnl 625 dnl -Wextra dnl 626 dnl -Wunused-macros dnl 627 dnl -Wunused-parameter dnl 628 dnl -Wvla dnl Variable Length Arrays not actually allowed in C90 629 dnl -Wjump-misses-init dnl Goto skipping variable declarations 630 dnl 631 dnl // do not add 632 dnl // has negative side effect on certain platforms (http://xen.1045712.n5.nabble.com/xen-4-0-testing-test-7147-regressions-FAIL-td4415622.html) dnl 633 dnl -Wno-unused-but-set-variable 634 ], SUPPORTED_CFLAGS) 635 AC_DEFINE(MAINTAINER_MODE, 1, [Define MAINTAINER_MODE]) 636 ]) 637 638 AS_IF([test "x${AST_C_COMPILER_FAMILY}" = "xgcc"], [ 639 AC_LANG_SAVE 640 AC_LANG_C 641 AX_APPEND_COMPILE_FLAGS([ dnl 642 -Wshadow dnl 643 -fno-strict-overflow dnl 644 -Wshorten-64-to-32 dnl 645 -Wno-pointer-arith dnl 646 dnl -Wpointer-arith dnl 647 ], SUPPORTED_CFLAGS) 648 ]) 649 AS_IF([test "x${AST_C_COMPILER_FAMILY}" = "xclang"], [ 650 AC_LANG_SAVE 651 AC_LANG_C 652 AX_APPEND_COMPILE_FLAGS([ dnl 653 -Warray-bounds dnl 654 -Wparentheses-equality dnl 655 -Wunevaluated-expression dnl 656 ], SUPPORTED_CFLAGS) 657 ]) 658 AS_IF([test ! -z "`echo ${CC} | grep ccc-analyzer`"], [ 659 AC_LANG_SAVE 660 AC_LANG_C 661 AX_APPEND_COMPILE_FLAGS([ dnl 662 -Wno-pointer-bool-conversion dnl Compensate for including NONENULL() attribute, null pointer checks should however remain for other compiler types 663 ], SUPPORTED_CFLAGS) 664 AC_DEFINE([CCC_ANALYZER], 1, [Running static analysis using clang scan-build]) 665 ]) 666 667 AX_APPEND_LINK_FLAGS([-Wl,--gc-sections], SECTION_LDFLAGS) 668 AS_IF([test -z "${SECTION_LDFLAGS}"], [ 669 ac_cv_section_relocation=no 670 ], [ 671 AX_APPEND_COMPILE_FLAGS([ dnl 672 -ffunction-sections dnl 673 -fdata-sections dnl 674 ], SECTION_CFLAGS) 675 ]) 676 677 AC_CHECK_HEADER([execinfo.h], 678 [ 679 AC_DEFINE(HAVE_EXECINFO_H,1,[Found 'execinfo.h']) 680 AC_CHECK_LIB([execinfo], [backtrace_symbols], [LIBEXECINFO="-lexecinfo"], [LIBEXECINFO=""]) 681 AC_CHECK_HEADER([dlfcn.h], [AC_DEFINE(HAVE_DLADDR_H, 1, [Found 'dlfcn.h'])]) 682 AC_SEARCH_LIBS([bfd_openr], [bfd], [ 683 AC_CHECK_HEADER([bfd.h], [AC_DEFINE(HAVE_BFD_H, 1, [Found 'bfd.h'])]) 684 LIBBFD="-lbfd" 685 ]) 686 ] 687 ) 688 ], [ 689 AC_DEFINE([DEBUG],[0],[No Extra debugging.]) 690 DEBUG=0 691 enable_do_crash="no" 692 enable_debug_mutex="no" 693 CFLAGS_saved="${CFLAGS_saved}" 694 AS_IF([test "x${GCC}" = "xyes"], [ 695 AC_LANG_SAVE 696 AC_LANG_C 697 AX_APPEND_COMPILE_FLAGS([ dnl 698 -fstack-protector dnl 699 -Wno-long-long dnl 700 -Wno-ignored-qualifiers dnl 701 -Wno-missing-field-initializers dnl 702 dnl // do not add 703 dnl // has negative side effect on certain platforms (http://xen.1045712.n5.nabble.com/xen-4-0-testing-test-7147-regressions-FAIL-td4415622.html) dnl 704 dnl -Wno-unused-but-set-variable 705 ], SUPPORTED_CFLAGS) 706 ]) 707 ]) 708 AC_LANG_SAVE 709 AC_LANG_C 710 CFLAGS_saved="`echo ${CFLAGS_saved}|sed 's/^[ \t]*//;s/[ \t]*$//'`" 711 CFLAGS_saved="${CFLAGS_saved} -I." dnl include our own directory first, so that we can find config.h when using a builddir 712 CFLAGS="${CFLAGS_saved} " 713 CPPFLAGS="${CPPFLAGS_saved} -I. " 714 LDFLAGS="${LDFLAGS_saved}" 715 AC_SUBST([DEBUG]) 716 AC_SUBST([GDB_FLAGS]) 717 AC_SUBST([LIBBFD]) 718 AC_SUBST([LIBEXECINFO]) 719]) 720 721# 722# LTO (link-time optimization) 723# 724AC_DEFUN([CS_ENABLE_LINK_TIME_OPTIMIZATION], [ 725 AC_ARG_ENABLE( 726 [lto], 727 AC_HELP_STRING([--enable-lto],[Enables or Disables Linktime Code Optimization (LTO is enabled by default)]), 728 [ 729 enable_lto="$enableval" 730 case $enableval in 731 "no");; 732 "yes");; 733 *) AC_MSG_ERROR([[invalid argument --enable-lto=$disableval... stopping]]);; 734 esac 735 ], 736 [enable_lto="no"] 737 ) 738 739 # 740 # LTO Support test 741 # 742 if test "$enable_lto" != "no" ; then 743 OLD_CXXFLAGS="$CFLAGS" 744 CXXFLAGS="$CXXFLAGS -flto" 745 OLD_CFLAGS="$CFLAGS" 746 CFLAGS="$CFLAGS -flto" 747 OLD_LDFLAGS="$LDFLAGS" 748 LDFLAGS="$LDFLAGS -flto" 749 AC_MSG_CHECKING([whether $CXX supports -flto]) 750 AC_RUN_IFELSE( 751 [ AC_LANG_SOURCE([[ 752 int main(int argc, char **argv){ 753 return 0; 754 } 755 ]]) 756 ], 757 [ 758 AC_MSG_RESULT([yes]) 759 ], 760 [ 761 AC_MSG_RESULT([no]) 762 CXXFLAGS="$OLD_CXXFLAGS" 763 CFLAGS="$OLD_CXXFLAGS" 764 LDFLAGS="$OLD_LDFLAGS" 765 ], 766 [ 767 AC_MSG_RESULT([guessing no]) 768 ]) 769 fi 770]) 771 772AC_DEFUN([CS_ENABLE_GCOV], [ 773 COVERAGE_CFLAGS='' 774 COVERAGE_LDFLAGS='' 775 AC_ARG_ENABLE([gcov], 776 [AS_HELP_STRING([--enable-gcov], [generate Gcov to profile sources])], 777 [ac_cv_enable_gcov=$enableval], 778 [ac_cv_enable_gcov=no] 779 ) 780 AS_IF([test "_${ac_cv_enable_gcov}" = "_yes"], [ 781 COVERAGE_CFLAGS='-fprofile-arcs -ftest-coverage' 782 COVERAGE_LDFLAGS='--coverage --no-inline' 783 ],[]) 784 AC_MSG_RESULT([--enable-gcov: ${ac_cv_enable_gcov}]) 785 AC_SUBST([COVERAGE_CFLAGS]) 786 AC_SUBST([COVERAGE_LDFLAGS]) 787]) 788 789AC_DEFUN([CS_ENABLE_REFCOUNT_DEBUG], [ 790 AC_ARG_ENABLE(refcount_debug, 791 [AC_HELP_STRING([--enable-refcount-debug], [enable refcount debugging (developer only)])], 792 [ac_cv_refcount_debug=$enableval], 793 [ac_cv_refcount_debug=no] 794 ) 795 AS_IF([test "_${ac_cv_refcount_debug}" == "_yes"], [AC_DEFINE(CS_REFCOUNT_DEBUG, 1, [refcount debug enabled])]) 796 AC_MSG_RESULT([--enable-refcount-debug: ${ac_cv_refcount_debug}]) 797]) 798 799AC_DEFUN([CS_ENABLE_ASTOBJ_REFCOUNT], [ 800 AS_IF([test "${ASTOBJ2_AVAILABLE}" == "yes"], 801 [ 802 AC_ARG_ENABLE(astobj_refcount, 803 [AC_HELP_STRING([--enable-astobj2-refcount], [enable using astobj2 refcount implementation])], 804 [ac_cv_astobj_refcount=$enableval], 805 [ac_cv_astobj_refcount=no] 806 ) 807 AS_IF([test "_${ac_cv_astobj_refcount}" == "_yes"], [AC_DEFINE(CS_ASTOBJ_REFCOUNT, 1, [astobj2 refcount enabled])]) 808 AC_MSG_RESULT([--enable-astobj2-refcount: ${ac_cv_astobj_refcount}]) 809 ], [ 810 AC_MSG_RESULT([--enable-astobj2-refcount: no (astobj2.h not available)]) 811 ]) 812]) 813 814AC_DEFUN([CS_ENABLE_LOCK_DEBUG], [ 815 AC_ARG_ENABLE(lock_debug, 816 [AC_HELP_STRING([--enable-lock-debug], [enable lock debugging (developer only)])], 817 [ac_cv_lock_debug=$enableval], 818 [ac_cv_lock_debug=no] 819 ) 820 AS_IF([test "_${ac_cv_lock_debug}" == "_yes"], [AC_DEFINE(CS_LOCK_DEBUG, 1, [lock debug enabled])]) 821 AC_MSG_RESULT([--enable-lock-debug: ${ac_cv_lock_debug}]) 822]) 823 824 825AC_DEFUN([CS_ENABLE_STRIP], [ 826 AC_ARG_ENABLE(strip, 827 [AC_HELP_STRING([--enable-strip], [strip the symbols from the binary during installation])], 828 [ac_cv_enable_strip=$enableval], 829 [ac_cv_enable_strip=no; if [ test "x$enable_optimization" == "xyes"; ] then ac_cv_enable_strip="yes";fi] 830 ) 831 strip_binaries="${ac_cv_enable_strip}" 832 AC_MSG_RESULT([--enable-strip: ${ac_cv_enable_strip}]) 833 AC_SUBST([strip_binaries]) 834]) 835 836AC_DEFUN([CS_DISABLE_SECTION_RELOCATION], [ 837 case "${host}" in 838 *-*-darwin*) 839 AC_MSG_RESULT([section relocation not supported on apple/darwin. skipping.]) 840 SECTION_LDFLAGS="" 841 SECTION_CFLAGS="" 842 ;; 843 *) 844 AC_ARG_ENABLE(section_relocation, 845 [AC_HELP_STRING([--enable-section-relocation], [enable compiler section relocation])], 846 [ac_cv_section_relocation=$enableval], 847 [ac_cv_section_relocation=no] 848 ) 849 AS_IF([test "_${ac_cv_section_relocation}" == "_no"], [ 850 SECTION_LDFLAGS="" 851 SECTION_CFLAGS="" 852 ]) 853 AC_MSG_RESULT([--enable-section_relocation: ${ac_cv_section_relocation}]) 854 ;; 855 esac 856 SUPPORTED_CFLAGS="$SECTION_CFLAGS $SUPPORTED_CFLAGS" 857 SUPPORTED_LDFLAGS="$SECTION_LDFLAGS $SUPPORTED_LDFLAGS" 858]) 859 860AC_DEFUN([CS_DISABLE_PICKUP], [ 861 AC_ARG_ENABLE(pickup, 862 [AC_HELP_STRING([--disable-pickup], [disable pickup function])], 863 [ac_cv_use_pickup=$enableval], 864 [ac_cv_use_pickup=yes] 865 ) 866 AS_IF([test "_${ac_cv_use_pickup}" == "_yes"], [AC_DEFINE(CS_SCCP_PICKUP, 1, [pickup function enabled])]) 867 AC_MSG_RESULT([--enable-pickup: ${ac_cv_use_pickup}]) 868]) 869 870AC_DEFUN([CS_DISABLE_PARK], [ 871 AC_ARG_ENABLE(park, 872 [AC_HELP_STRING([--disable-park], [disable park functionality])], 873 [ac_cv_use_park=$enableva]l, 874 [ac_cv_use_park=yes] 875 ) 876 AS_IF([test "_${ac_cv_use_park}" == "_yes"], [AC_DEFINE(CS_SCCP_PARK, 1, [park functionality enabled])]) 877 AC_MSG_RESULT([--enable-park: ${ac_cv_use_park}]) 878]) 879 880AC_DEFUN([CS_DISABLE_DIRTRFR], [ 881 AC_ARG_ENABLE(dirtrfr, 882 [AC_HELP_STRING([--disable-dirtrfr], [disable direct transfer])], 883 [ac_cv_use_dirtrfr=$enableval], 884 [ac_cv_use_dirtrfr=yes] 885 ) 886 AS_IF([test "_${ac_cv_use_dirtrfr}" == "_yes"], [AC_DEFINE(CS_SCCP_DIRTRFR, 1, [direct transfer enabled])]) 887 AC_MSG_RESULT([--enable-dirtrfr: ${ac_cv_use_dirtrfr}]) 888]) 889 890AC_DEFUN([CS_DISABLE_MONITOR], [ 891 AC_ARG_ENABLE(monitor, 892 [AC_HELP_STRING([--disable-monitor], [disable feature monitor)])], 893 [ac_cv_use_monitor=$enableval], 894 [ac_cv_use_monitor=yes] 895 ) 896 AS_IF([test "_${ac_cv_use_monitor}" == "_yes"], [AC_DEFINE(CS_SCCP_FEATURE_MONITOR, 1, [feature monitor enabled])]) 897 AC_MSG_RESULT([--enable-monitor: ${ac_cv_use_monitor}]) 898]) 899 900AC_DEFUN([CS_ENABLE_CONFERENCE], [ 901 AC_ARG_ENABLE(conference, 902 [AC_HELP_STRING([--enable-conference], [enable conference (>ast 1.6.2)])], 903 [ac_cv_use_conference=$enableval], 904 [ac_cv_use_conference=no] 905 ) 906 AS_IF([test "_${ac_cv_use_conference}" == "_yes"], [AC_DEFINE(CS_SCCP_CONFERENCE, 1, [conference enabled])]) 907 AC_MSG_RESULT([--enable-conference: ${ac_cv_use_conference}]) 908]) 909 910AC_DEFUN([CS_DISABLE_MANAGER], [ 911 AC_ARG_ENABLE(manager, 912 [AC_HELP_STRING([--disable-manager], [disabled ast manager events])], 913 [ac_cv_use_manager=$enableval], 914 [ac_cv_use_manager=yes] 915 ) 916 AS_IF([test "_${ac_cv_use_manager}" == "_yes"], [ 917 AC_DEFINE(CS_MANAGER_EVENTS, 1, [manager events enabled]) 918 AC_DEFINE(CS_SCCP_MANAGER, 1, [manager console control enabled]) 919 ]) 920 AC_MSG_RESULT([--enable-manager: ${ac_cv_use_manager}]) 921]) 922 923AC_DEFUN([CS_DISABLE_FUNCTIONS], [ 924 AC_ARG_ENABLE(functions, 925 [AC_HELP_STRING([--disable-functions], [disabled Dialplan functions])], 926 [ac_cv_use_functions=$enableval], 927 [ac_cv_use_functions=yes] 928 ) 929 AS_IF([test "_${ac_cv_use_functions}" == "_yes"], [AC_DEFINE(CS_SCCP_FUNCTIONS, 1, [dialplan function enabled])]) 930 AC_MSG_RESULT([--enable-functions: ${ac_cv_use_functions}]) 931]) 932 933AC_DEFUN([CS_ENABLE_INDICATIONS], [ 934 AC_ARG_ENABLE(indications, 935 [AC_HELP_STRING([--enable-indications], [enable debug indications]]), 936 [ac_cv_debug_indications=$enableval], 937 [ac_cv_debug_indications=no] 938 ) 939 AS_IF([test "_${ac_cv_debug_indications}" == "_yes"], [AC_DEFINE(CS_DEBUG_INDICATIONS, 1, [debug indications enabled])]) 940 AC_MSG_RESULT([--enable-indications: ${ac_cv_debug_indications}]) 941]) 942 943AC_DEFUN([CS_DISABLE_REALTIME], [ 944 AC_ARG_ENABLE(realtime, 945 [AC_HELP_STRING([--disable-realtime], [disable realtime support])], 946 [ac_cv_realtime=$enableval], 947 [ac_cv_realtime=yes] 948 ) 949 AS_IF([test "_${ac_cv_realtime}" == "_yes"], [AC_DEFINE(CS_SCCP_REALTIME, 1, [realtime enabled])]) 950 AC_MSG_RESULT([--enable-realtime: ${ac_cv_realtime}]) 951]) 952 953AC_DEFUN([CS_DISABLE_FEATURE_MONITOR], [ 954 AC_ARG_ENABLE(feature_monitor, 955 [AC_HELP_STRING([--disable-feature-monitor], [disable feature monitor])], 956 [ac_cv_feature_monitor=$enableval], 957 [ac_cv_feature_monitor=yes] 958 ) 959 AS_IF([test "_${ac_cv_feature_monitor}" == "_yes"], [AC_DEFINE(CS_SCCP_FEATURE_MONITOR, 1, [feature monitor enabled])]) 960 AC_MSG_RESULT([--enable-feature-monitor: ${ac_cv_feature_monitor}]) 961]) 962 963AC_DEFUN([CS_ENABLE_ADVANCED_FUNCTIONS], [ 964 AC_ARG_ENABLE(advanced_functions, 965 [AC_HELP_STRING([--enable-advanced-functions], [enable advanced functions (experimental)])], 966 [ac_cv_advanced_functions=$enableval], 967 [ac_cv_advanced_functions=no] 968 ) 969 AS_IF([test "_${ac_cv_advanced_functions}" == "_yes"], [AC_DEFINE(CS_ADV_FEATURES, 1, [advanced functions enabled])]) 970 AC_MSG_RESULT([--enable-advanced-functions: ${ac_cv_advanced_functions}]) 971]) 972 973AC_DEFUN([CS_ENABLE_EXPERIMENTAL_MODE], [ 974 AC_ARG_ENABLE(experimental_mode, 975 [AC_HELP_STRING([--enable-experimental-mode], [enable experimental mode (only for developers)])], 976 [ac_cv_experimental_mode=$enableval], 977 [ac_cv_experimental_mode=no] 978 ) 979 AS_IF([test "_${ac_cv_experimental_mode}" == "_yes"], [AC_DEFINE(CS_EXPERIMENTAL, 1, [experimental mode enabled])]) 980 AC_MSG_RESULT([--enable-experimental-mode: ${ac_cv_experimental_mode} (only for developers)]) 981]) 982 983AC_DEFUN([CS_ENABLE_EXPERIMENTAL_XML], [ 984 AC_LANG_SAVE 985 AC_LANG_C 986 CFLAGS_save=${CFLAGS} 987 CPPFLAGS_save=${CPPFLAGS} 988 LDFLAGS_save=${LDFLAGS} 989 AC_ARG_ENABLE(experimental_xml, 990 [AC_HELP_STRING([--enable-experimental-xml], [enable experimental xml (only for developers)])], 991 [ac_cv_experimental_xml=$enableval], 992 [ac_cv_experimental_xml=no] 993 ) 994 AM_CONDITIONAL([CS_EXPERIMENTAL_XML], test "_${ac_cv_experimental_xml}" == "_yes") 995 AS_IF([test "_${ac_cv_experimental_xml}" == "_yes" ], [ 996 CONFIGURE_PART([Checking XML2/EXSLT:]) 997 LIBEXSLT_CFLAGS=`${PKGCONFIG} libexslt --cflags` 998 LIBEXSLT_LIBS=`${PKGCONFIG} libexslt --libs` 999 CFLAGS="${LIBEXSLT_CFLAGS} " 1000 CPPFLAGS="${LIBEXSLT_CFLAGS} " 1001 LDFLAGS="${LIBEXSLT_LIBS} " 1002 AC_CHECK_LIB([xml2],[xmlInitParser], 1003 [ 1004 HAVE_LIBXML2=yes 1005 AC_DEFINE(HAVE_LIBXML2, 1, [Found 'LIBXML2']) 1006 ], [ 1007 HAVE_LIBXML2=no 1008 ]) 1009 AC_CHECK_HEADERS([libxml/tree.h libxml/parser.h libxml/xmlstring.h]) 1010 AC_CHECK_LIB([xslt],[xsltInit], 1011 [ 1012 HAVE_LIBXSLT=yes 1013 AC_DEFINE(HAVE_LIBXSLT, 1, [Found 'LIBXSLT']) 1014 ], [ 1015 HAVE_LIBXSLT=no 1016 ]) 1017 AC_CHECK_HEADERS([libxslt/xsltInternals.h libxslt/transform.h libxslt/xsltutils.h libxslt/extensions.h]) 1018 AC_CHECK_LIB([exslt],[exsltRegisterAll], 1019 [ 1020 HAVE_LIBEXSLT=yes 1021 AC_DEFINE(HAVE_LIBEXSLT, 1, [Found 'LIBEXSLT']) 1022 ], [ 1023 HAVE_LIBEXSLT=no 1024 ]) 1025 AC_CHECK_HEADERS([libexslt/exslt.h]) 1026 AC_CHECK_LIB([xml2],[xmlInitParser],[HAVE_LIBXML2=yes],[HAVE_LIBXML2=no]) 1027 AC_CHECK_LIB([xslt],[xsltInit],[HAVE_LIBXSLT=yes],[HAVE_LIBXSLT=no]) 1028 AC_CHECK_LIB([exslt],[exsltRegisterAll],[HAVE_LIBEXSLT=yes],[HAVE_LIBEXSLT=no]) 1029 AC_SUBST([LIBEXSLT_CFLAGS]) 1030 AC_SUBST([LIBEXSLT_LIBS]) 1031 AS_IF([test "_${HAVE_LIBEXSLT}" == "_yes"],[ 1032 AS_IF([test "_${HAVE_PBX_HTTP}" == "_yes"], [ 1033 AC_DEFINE(CS_EXPERIMENTAL_XML, 1, [experimental xml enabled]) 1034 CPPFLAGS_saved="${CPPFLAGS_saved} $LIBEXSLT_CFLAGS" 1035 ],[ 1036 AC_MSG_ERROR([asterisk/http.h required to enable-experimental-xml]) 1037 ]) 1038 ],[ 1039 AC_MSG_ERROR([libxslt required to enable-experimental-xml]) 1040 ]) 1041 ]) 1042 CFLAGS=${CFLAGS_save} 1043 CPPFLAGS=${CPPFLAGS_save} 1044 LDFLAGS=${LDFLAGS_save} 1045]) 1046 1047AC_DEFUN([CS_DISABLE_DEVSTATE_FEATURE], [ 1048 AC_ARG_ENABLE(devstate_feature, 1049 [AC_HELP_STRING([--disable-devstate-feature], [disable device state feature button])], 1050 [ac_cv_devstate_feature=$enableval], 1051 [ac_cv_devstate_feature=yes] 1052 ) 1053 AS_IF([test ${ASTERISK_VERSION_NUMBER} -lt 10601], [ac_cv_devstate_feature=no]) 1054 AS_IF([test "_${DEVICESTATE_H}" != "_yes"], [ac_cv_devstate_feature=no]) 1055 AS_IF([test "_${ac_cv_devstate_feature}" == "_yes"], [AC_DEFINE(CS_DEVSTATE_FEATURE, 1, [devstate feature enabled])]) 1056 AC_MSG_RESULT([--enable-devstate-feature: ${ac_cv_devstate_feature}]) 1057]) 1058 1059AC_DEFUN([CS_DISABLE_DYNAMIC_SPEEDDIAL], [ 1060 AC_ARG_ENABLE(dynamic_speeddial, 1061 [AC_HELP_STRING([--disable-dynamic-speeddial], [disable dynamic speeddials])], 1062 [ac_cv_dynamic_speeddial=$enableval], 1063 [ac_cv_dynamic_speeddial=yes] 1064 ) 1065 AS_IF([test "_${ac_cv_dynamic_speeddial}" == "_yes"], [AC_DEFINE(CS_DYNAMIC_SPEEDDIAL, 1, [dynamic speeddials enabled])]) 1066 AC_MSG_RESULT([--enable-dynamic-speeddial: ${ac_cv_dynamic_speeddial}]) 1067]) 1068 1069AC_DEFUN([CS_DISABLE_DYNAMIC_SPEEDDIAL_CID], [ 1070 AC_ARG_ENABLE(dynamic_speeddial_cid, 1071 [AC_HELP_STRING([--disable-dynamic-speeddial-cid], [disable dynamic speeddials with call info])], 1072 [ac_cv_dynamic_speeddial_cid=$enableval], 1073 [ac_cv_dynamic_speeddial_cid=yes] 1074 ) 1075 AS_IF([test "${ac_cv_dynamic_speeddial}" == "yes"], [ 1076 AS_IF([test "${ac_cv_dynamic_speeddial_cid}" == "yes"], [ 1077 AC_DEFINE(CS_DYNAMIC_SPEEDDIAL_CID, 1, [dynamic speeddials with callinfo enabled]) 1078 ]) 1079 ]) 1080 AC_MSG_RESULT([--enable-dynamic-speeddial_cid: ${ac_cv_dynamic_speeddial_cid}]) 1081]) 1082 1083AC_DEFUN([CS_ENABLE_VIDEO], [ 1084 AC_ARG_ENABLE(video, 1085 [AC_HELP_STRING([--enable-video], [enable streaming video (experimental)])], 1086 [ac_cv_streaming_video=$enableval], 1087 [ac_cv_streaming_video=no] 1088 ) 1089 AS_IF([test "_${ac_cv_streaming_video}" == "_yes"], [AC_DEFINE(CS_SCCP_VIDEO, 1, [Using streaming video])]) 1090 AC_MSG_RESULT([--enable-video: ${ac_cv_streaming_video}]) 1091]) 1092 1093AC_DEFUN([CS_ENABLE_DISTRIBUTED_DEVSTATE], [ 1094 AC_ARG_ENABLE(distributed_devicestate, 1095 [AC_HELP_STRING([--enable-distributed-devicestate], [enable distributed devicestate (ast 1.8 - 12)])], 1096 [ac_cv_use_distributed_devicestate=$enableval], 1097 [ac_cv_use_distributed_devicestate=no] 1098 ) 1099 AS_IF([test "_${ac_cv_use_distributed_devicestate}" == "_yes"], [AC_DEFINE(CS_USE_ASTERISK_DISTRIBUTED_DEVSTATE, 1, [distributed devicestate])]) 1100 AC_MSG_RESULT([--enable-distributed-devicestate: ${ac_cv_use_distributed_devicestate}]) 1101]) 1102 1103AC_DEFUN([CS_WITH_HASH_SIZE], [ 1104 AC_ARG_WITH(hash_size, 1105 [AC_HELP_STRING([--with-hash-size], [to provide room for higher number of phones (>100), specify a prime number, bigger then number of phones times 4 (default=563)])], 1106 [ac_cv_set_hashsize=$withval], [ac_cv_set_hashsize=563]) 1107 AS_CASE([${ac_cv_set_hashsize}], 1108 [''|'yes'|'no'|*[!0-9]*], [ 1109 ac_cv_set_hashsize=563 1110 AC_MSG_ERROR(['When using --with-hash-size, you need to supply a (prime) value, only needed when you have move than 100 phones']) 1111 ], 1112 [*], [ 1113 AS_IF([test 0${ac_cv_set_hashsize} -lt 563], [ac_cv_set_hashsize=563]) 1114 ] 1115 ) 1116 AC_DEFINE_UNQUOTED(SCCP_HASH_PRIME, `echo ${ac_cv_set_hashsize}`, [defined SCCP_HASH_PRIME]) 1117 AC_MSG_RESULT([--with-hash-size: ${ac_cv_set_hashsize}]) 1118]) 1119 1120 1121AC_DEFUN([CS_PARSE_WITH_AND_ENABLE], [ 1122 CS_DISABLE_SECTION_RELOCATION 1123 AC_MSG_RESULT([--enable-optimization: ${enable_optimization}]) 1124 AC_MSG_RESULT([--enable-debug: ${enable_debug}]) 1125 AC_MSG_RESULT([--enable-devdoc: ${ac_cv_use_devdoc}]) 1126 AC_MSG_RESULT([--enable-tls: ${ac_cv_tls}]) 1127 CS_ENABLE_GCOV 1128 CS_ENABLE_REFCOUNT_DEBUG 1129 CS_ENABLE_ASTOBJ_REFCOUNT 1130 CS_ENABLE_LOCK_DEBUG 1131 CS_ENABLE_STRIP 1132 CS_DISABLE_PICKUP 1133 CS_DISABLE_PARK 1134 CS_DISABLE_DIRTRFR 1135 CS_DISABLE_MONITOR 1136 CS_ENABLE_CONFERENCE 1137 CS_DISABLE_MANAGER 1138 CS_DISABLE_FUNCTIONS 1139 CS_DISABLE_REALTIME 1140 CS_DISABLE_FEATURE_MONITOR 1141 CS_ENABLE_ADVANCED_FUNCTIONS 1142 CS_DISABLE_DEVSTATE_FEATURE 1143 CS_DISABLE_DYNAMIC_SPEEDDIAL 1144 CS_DISABLE_DYNAMIC_SPEEDDIAL_CID 1145 CS_ENABLE_VIDEO 1146 CS_ENABLE_DISTRIBUTED_DEVSTATE 1147 CS_ENABLE_EXPERIMENTAL_MODE 1148 AC_MSG_RESULT([--enable-experimental-xml: ${ac_cv_experimental_xml}]) 1149 CS_WITH_HASH_SIZE 1150]) 1151 1152AC_DEFUN([CS_SETUP_MODULE_DIR], [ 1153 AC_ARG_WITH([astmoddir], 1154 [AC_HELP_STRING([--with-astmoddir=PATH],[Location of the Asterisk Module Directory])], 1155 [PBX_MODDIR="${withval}"], 1156 [PBX_MODDIR=${PBX_TEMPMODDIR} 1157 case "${host}" in 1158 *-*-darwin*) 1159 PBX_MODDIR='/Library/Application Support/Asterisk/Modules/modules' 1160 ;; 1161 *) 1162 if test -d "${PBX_TEMPMODDIR}"; then 1163 PBX_MODDIR="${PBX_TEMPMODDIR}" 1164 elif test "x${prefix}" != "xNONE"; then 1165 case "$build_cpu" in 1166 x86_64|amd64|ppc64) 1167 if test -d ${prefix}/lib64/asterisk/modules; then 1168 PBX_MODDIR=${prefix}/lib64/asterisk/modules 1169 else 1170 PBX_MODDIR=${prefix}/lib/asterisk/modules 1171 fi 1172 ;; 1173 *) 1174 PBX_MODDIR=${prefix}/lib/asterisk/modules; 1175 ;; 1176 esac 1177 fi 1178 ;; 1179 esac]) 1180 PBX_DEBUGMODDIR="$PBX_MODDIR/.debug/" 1181 AC_SUBST([PBX_MODDIR]) 1182 csmoddir=${PBX_MODDIR} 1183 AC_SUBST([csmoddir]) 1184 AC_SUBST([PBX_DEBUGMODDIR]) 1185]) 1186 1187AC_DEFUN([CS_PARSE_WITH_LIBEV], [ 1188 EVENT_LIBS="" 1189 EVENT_CFLAGS="" 1190 EVENT_TYPE="" 1191 AC_ARG_WITH(libevent, 1192 [AC_HELP_STRING([--with-libevent=yes|no],[use garbage collector (libgc) as allocator (experimental)])], 1193 uselibevent="$withval") 1194 if test "x$uselibevent" = "xyes"; then 1195 if test -z "$EVENT_HOME" ; then 1196 AC_CHECK_LIB([ev], [event_init], [HAVE_EVENT="yes"], []) 1197 if test "$HAVE_EVENT" = "yes" ; then 1198 EVENT_LIBS="-lev" 1199 EVENT_TYPE="ev" 1200 else 1201 AC_CHECK_LIB([event], [event_init], [HAVE_EVENT="yes"], []) 1202 if test "$HAVE_EVENT" = "yes" ; then 1203 EVENT_LIBS="-levent" 1204 EVENT_TYPE="event" 1205 fi 1206 fi 1207 else 1208 EVENT_OLD_LDFLAGS="$LDFLAGS" ; LDFLAGS="$LDFLAGS -L$EVENT_HOME/lib" 1209 EVENT_OLD_CFLAGS="$CFLAGS" ; CFLAGS="$CFLAGS -I$EVENT_HOME/include" 1210 AC_CHECK_LIB([ev], [event_init], [HAVE_EVENT="yes"], []) 1211 if test "$HAVE_EVENT" = "yes"; then 1212 CFLAGS="$EVENT_OLD_CFLAGS" 1213 LDFLAGS="$EVENT_OLD_LDFLAGS" 1214 if test "$HAVE_EVENT" = "yes" ; then 1215 EVENT_LIBS="-L$EVENT_HOME/lib -lev" 1216 test -d "$EVENT_HOME/include" && EVENT_CFLAGS="-I$EVENT_HOME/include" 1217 EVENT_TYPE="ev" 1218 fi 1219 else 1220 AC_CHECK_LIB([event], [event_init], [HAVE_EVENT="yes"], []) 1221 CFLAGS="$EVENT_OLD_CFLAGS" 1222 LDFLAGS="$EVENT_OLD_LDFLAGS" 1223 if test "$HAVE_EVENT" = "yes" ; then 1224 EVENT_LIBS="-L$EVENT_HOME/lib -levent" 1225 test -d "$EVENT_HOME/include" && EVENT_CFLAGS="-I$EVENT_HOME/include" 1226 EVENT_TYPE="event" 1227 fi 1228 fi 1229 fi 1230 AC_MSG_CHECKING([for libev/libevent...]) 1231 if test "$HAVE_EVENT" = "yes" ; then 1232 if test "$EVENT_TYPE" = "ev"; then 1233 AC_MSG_RESULT([libev]) 1234 AC_DEFINE(HAVE_LIBEV, 1, [Define to 1 if libev is available]) 1235 AC_DEFINE(HAVE_LIBEVENT_COMPAT, 1, [Define to 1 if libev-libevent is available]) 1236 else 1237 AC_MSG_RESULT([libevent]) 1238 AC_DEFINE(HAVE_LIBEVENT, 1, [Define to 1 if libevent is available]) 1239 fi 1240 else 1241 AC_MSG_RESULT([no]) 1242 dnl AC_MSG_ERROR([ 1243 dnl *** ERROR: cannot find libev or libevent! 1244 dnl *** 1245 dnl *** Either install libev + libev-libevent-dev (preferred) or the older libevent 1246 dnl *** Sources can be found here: http://software.schmorp.de/pkg/libev.html or http://www.monkey.org/~provos/libevent/ 1247 dnl *** If it's already installed, specify its path using --with-libevent=PATH 1248 dnl ]) 1249 fi 1250 fi 1251 AM_CONDITIONAL([BUILD_WITH_LIBEVENT], test "$EVENT_TYPE" != "") 1252 AC_SUBST([EVENT_LIBS]) 1253 AC_SUBST([EVENT_CFLAGS]) 1254 AC_SUBST([EVENT_TYPE]) 1255]) 1256 1257