]> git.ipfire.org Git - thirdparty/freeswitch.git/blob - configure.ac
[core] remove libdingaling from tree
[thirdparty/freeswitch.git] / configure.ac
1 # -*- Autoconf -*-
2 # Process this file with autoconf to produce a configure script.
3
4 # Must change all of the below together
5 # For a release, set revision for that tagged release as well and uncomment
6 AC_INIT([freeswitch], [1.10.8-dev], bugs@freeswitch.org)
7 AC_SUBST(SWITCH_VERSION_MAJOR, [1])
8 AC_SUBST(SWITCH_VERSION_MINOR, [10])
9 AC_SUBST(SWITCH_VERSION_MICRO, [8-dev])
10 AC_SUBST(SWITCH_VERSION_REVISION, [])
11 AC_SUBST(SWITCH_VERSION_REVISION_HUMAN, [])
12
13 AC_CONFIG_FILES([src/include/switch_version.h.in:src/include/switch_version.h.template])
14
15 AC_CONFIG_AUX_DIR(build/config)
16 AM_INIT_AUTOMAKE
17 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
18 AC_CONFIG_SRCDIR([src/switch.c])
19 AC_CONFIG_HEADER([src/include/switch_private.h])
20 AC_CONFIG_HEADER([libs/esl/src/include/esl_config_auto.h])
21 AC_CONFIG_HEADER([libs/xmlrpc-c/xmlrpc_amconfig.h])
22
23 AC_CANONICAL_HOST
24
25 # Absolute source/build directory
26 switch_srcdir=`(cd $srcdir && pwd)`
27 switch_builddir=`pwd`
28 AC_SUBST(switch_srcdir)
29 AC_SUBST(switch_builddir)
30
31 #
32 # --enable-64 has been moved up higher prior to AC_PROG_CC so that we can tuck in the -m64 flag
33 # so devs on with Solaris wanting to build 64bit can not bother with adding any additional
34 # flags on the ./configure line. User friendly.
35 #
36
37 # Enable 64 bit build
38 AC_ARG_ENABLE(64,
39 [AC_HELP_STRING([--enable-64],[build with 64 bit support])],[enable_64="$enable_64"],[enable_64="no"])
40
41 if test "${enable_64}" = "yes"; then
42 case "$host" in
43 *-solaris2*)
44 # All three have to have -m64 for AC_PROG_CC to pick the right libtool
45 CFLAGS="$CFLAGS -m64"
46 LDFLAGS="$LDFLAGS -m64"
47 CXXFLAGS="$CXXFLAGS -m64"
48 ;;
49 *)
50 ;;
51 esac
52 fi
53
54 # use mtmalloc on Solaris SPARC if available
55 AS_CASE([$host], [sparc-*-solaris2*], [AC_CHECK_LIB(mtmalloc, malloc)])
56
57 # Whether to follow FHS
58 AC_ARG_ENABLE([fhs],[AS_HELP_STRING([--disable-fhs],
59 [Do Not follow the FHS when placing files and directories (default only when not specifying prefix])],[enable_fhs="$enableval"],[enable_fhs="yes"])
60
61 AC_PREFIX_DEFAULT(/usr/local/freeswitch)
62 # AC_PREFIX_DEFAULT does not get expanded until too late so we need to do this to use prefix in this script
63
64 if test "x$prefix" = "xNONE" ; then
65 enable_fhs=no
66 prefix='/usr/local/freeswitch'
67 fi
68
69 if test "x${exec_prefix}" = "xNONE" ; then
70 exec_prefix="$prefix"
71 fi
72
73 default_scriptdir="$prefix/scripts"
74 default_grammardir="$prefix/grammar"
75 default_soundsdir="$prefix/sounds"
76 default_htdocsdir="$prefix/htdocs"
77 default_modulesdir="$prefix/mod"
78 default_dbdir="$prefix/db"
79 default_storagedir="$prefix/storage"
80 default_cachedir="$prefix/cache"
81 default_recordingsdir="$prefix/recordings"
82 rundir="$prefix/run"
83 logdir="${prefix}/log"
84 confdir="$prefix/conf"
85 default_certsdir="$prefix/certs"
86 default_fontsdir="$prefix/fonts"
87 default_imagesdir="$prefix/images"
88
89 if test "${enable_fhs}" = "yes"; then
90 eval full_datadir="${datadir}/freeswitch"
91 eval datadir=$full_datadir
92 eval full_localstatedir="${localstatedir}"
93 eval localstatedir=$full_localstatedir
94 eval libdir=$libdir
95 default_cachedir="${localstatedir}/cache/freeswitch"
96 rundir="${localstatedir}/run/freeswitch"
97 logdir="${localstatedir}/log/freeswitch"
98 localstatedir="${localstatedir}/lib/freeswitch"
99 default_scriptdir="${datadir}/scripts"
100 default_grammardir="${datadir}/grammar"
101 default_soundsdir="${datadir}/sounds"
102 default_htdocsdir="${datadir}/htdocs"
103 default_fontsdir="${datadir}/fonts"
104 default_modulesdir="${libdir}/freeswitch/mod"
105 default_dbdir="${localstatedir}/db"
106 default_storagedir="${localstatedir}/storage"
107 default_recordingsdir="${localstatedir}/recordings"
108 default_imagesdir="${localstatedir}/images"
109 eval confdir="${sysconfdir}/freeswitch"
110 eval default_certsdir="${confdir}/tls"
111 else
112 if test "$datadir" = "\${datarootdir}" ; then
113 datadir="${prefix}"
114 fi
115 if test "$localstatedir" = "\${prefix}/var" ; then
116 localstatedir="${prefix}"
117 fi
118 fi
119
120 if test "$includedir" = "\${prefix}/include" ; then
121 includedir="${prefix}/include/freeswitch"
122 fi
123
124 default_pkgconfigdir="$libdir/pkgconfig"
125 default_runtimedir="$rundir"
126 default_logfiledir="$logdir"
127
128 AC_SUBST(libdir)
129
130 # Where to install the modules
131 AC_ARG_WITH([modinstdir],
132 [AS_HELP_STRING([--with-modinstdir=DIR], [Install modules into this location (default: $prefix/mod)])], [modulesdir="$withval"], [modulesdir="${default_modulesdir}"])
133 eval modulesdir="${modulesdir}"
134 AC_SUBST(modulesdir)
135 AC_DEFINE_UNQUOTED([SWITCH_MOD_DIR],"${modulesdir}",[where to install the modules to])
136
137 # Where to put pidfile
138 AC_ARG_WITH([rundir],
139 [AS_HELP_STRING([--with-rundir=DIR], [Put pidfile into this location (default: $prefix/run)])], [runtimedir="$withval"], [runtimedir="${default_runtimedir}"])
140 AC_SUBST(runtimedir)
141 AC_DEFINE_UNQUOTED([SWITCH_RUN_DIR],"${runtimedir}",[where to put pidfile to])
142
143 AC_ARG_WITH([logfiledir],
144 [AS_HELP_STRING([--with-logfiledir=DIR], [Put logfiles into this location (default: $localstatedir/log)])], [logfiledir="$withval"], [logfiledir="${default_logfiledir}"])
145 AC_SUBST(logfiledir)
146 AC_DEFINE_UNQUOTED([SWITCH_LOG_DIR],"${logfiledir}",[where to put log files])
147
148 AC_ARG_WITH([dbdir],
149 [AS_HELP_STRING([--with-dbdir=DIR], [Put database files into this location (default: $prefix/db)])], [dbdir="$withval"], [dbdir="${default_dbdir}"])
150 AC_SUBST(dbdir)
151 AC_DEFINE_UNQUOTED([SWITCH_DB_DIR],"${dbdir}",[where to put db files])
152
153 AC_ARG_WITH([htdocsdir],
154 [AS_HELP_STRING([--with-htdocsdir=DIR], [Put html files into this location (default: $prefix/htdocs)])], [htdocsdir="$withval"], [htdocsdir="${default_htdocsdir}"])
155 AC_SUBST(htdocsdir)
156 AC_DEFINE_UNQUOTED([SWITCH_HTDOCS_DIR],"${htdocsdir}",[where to put htdocs files])
157
158 AC_ARG_WITH([fontsdir],
159 [AS_HELP_STRING([--with-fontsdir=DIR], [Put font files into this location (default: $prefix/fonts)])], [fontsdir="$withval"], [fontsdir="${default_fontsdir}"])
160 AC_SUBST(fontsdir)
161 AC_DEFINE_UNQUOTED([SWITCH_FONTS_DIR],"${fontsdir}",[where to put font files])
162
163 AC_ARG_WITH([soundsdir],
164 [AS_HELP_STRING([--with-soundsdir=DIR], [Put sound files into this location (default: $prefix/sounds)])], [soundsdir="$withval"], [soundsdir="${default_soundsdir}"])
165 AC_SUBST(soundsdir)
166 AC_DEFINE_UNQUOTED([SWITCH_SOUNDS_DIR],"${soundsdir}",[where to put sounds files])
167
168 AC_ARG_WITH([grammardir],
169 [AS_HELP_STRING([--with-grammardir=DIR], [Put grammar files into this location (default: $prefix/grammar)])], [grammardir="$withval"], [grammardir="${default_grammardir}"])
170 AC_SUBST(grammardir)
171 AC_DEFINE_UNQUOTED([SWITCH_GRAMMAR_DIR],"${grammardir}",[where to put grammar files])
172
173 AC_ARG_WITH([certsdir],
174 [AS_HELP_STRING([--with-certsdir=DIR], [Put certs files into this location (default: $prefix/certs)])], [certsdir="$withval"], [certsdir="${default_certsdir}"])
175 AC_SUBST(certsdir)
176 AC_DEFINE_UNQUOTED([SWITCH_CERTS_DIR],"${certsdir}",[where to put certs files])
177
178 AC_ARG_WITH([scriptdir],
179 [AS_HELP_STRING([--with-scriptdir=DIR], [Put script files into this location (default: $prefix/scripts)])], [scriptdir="$withval"], [scriptdir="${default_scriptdir}"])
180 AC_SUBST(scriptdir)
181 AC_DEFINE_UNQUOTED([SWITCH_SCRIPT_DIR],"${scriptdir}",[where to put script files])
182
183 AC_ARG_WITH([recordingsdir],
184 [AS_HELP_STRING([--with-recordingsdir=DIR], [Put recordings files into this location (default: $prefix/recordings)])], [recordingsdir="$withval"], [recordingsdir="${default_recordingsdir}"])
185 AC_SUBST(recordingsdir)
186 AC_DEFINE_UNQUOTED([SWITCH_RECORDINGS_DIR],"${recordingsdir}",[where to put recording files])
187
188 AC_ARG_WITH([imagesdir],
189 [AS_HELP_STRING([--with-imagesdir=DIR], [Put images files into this location (default: $prefix/images)])], [imagesdir="$withval"], [imagesdir="${default_imagesdir}"])
190 AC_SUBST(imagesdir)
191 AC_DEFINE_UNQUOTED([SWITCH_IMAGES_DIR],"${imagesdir}",[where to put image files])
192
193 AC_ARG_WITH([storagedir],
194 [AS_HELP_STRING([--with-storagedir=DIR], [Put storage files into this location (default: $prefix/storage)])], [storagedir="$withval"], [storagedir="${default_storagedir}"])
195 AC_SUBST(storagedir)
196 AC_DEFINE_UNQUOTED([SWITCH_STORAGE_DIR],"${storagedir}",[where to put storage files])
197
198 AC_ARG_WITH([cachedir],
199 [AS_HELP_STRING([--with-cachedir=DIR], [Put cache files into this location (default: $prefix/cache)])], [cachedir="$withval"], [cachedir="${default_cachedir}"])
200 AC_SUBST(cachedir)
201 AC_DEFINE_UNQUOTED([SWITCH_CACHE_DIR],"${cachedir}",[where to put cache files])
202
203 AC_SUBST(confdir)
204 AC_DEFINE_UNQUOTED([SWITCH_CONF_DIR],"${confdir}",[directory for configuration files])
205
206 AC_SUBST(datadir)
207 AC_DEFINE_UNQUOTED([SWITCH_DATA_DIR],"${datadir}",[directory for data files])
208
209 AC_SUBST(localstatedir)
210 AC_DEFINE_UNQUOTED([SWITCH_LOCALSTATE_DIR],"${localstatedir}",[directory for local state files])
211 AC_SUBST(bindir)
212 AC_SUBST(includedir)
213
214 AC_ARG_WITH([pkgconfigdir],
215 [AS_HELP_STRING([--with-pkgconfigdir=DIR], [Installation directory for pkgconfig file (default: ${libdir}/pkgconfig)])],
216 [case "${withval}" in
217 yes|no) AC_MSG_ERROR([Invalid value ${withval} for option --with-pkgconfigdir]) ;;
218 *) pkgconfigdir="${withval}" ;;
219 esac
220 ],
221 [pkgconfigdir="${default_pkgconfigdir}"]
222 )
223 AC_SUBST([pkgconfigdir])
224
225 #Set default language
226 AC_LANG_C
227 # Checks for programs.
228 AC_PROG_CC
229 AC_PROG_CXX
230
231 #check if the g++ compiler works
232 AC_CACHE_CHECK([whether the C++ compiler works], [ac_cv_sys_cxx_works], [
233 AC_LANG_PUSH([C++])
234 AC_COMPILE_IFELSE([AC_LANG_SOURCE([int main() { }])], [ac_cv_sys_cxx_works=yes],
235 [ac_cv_sys_cxx_works=no])
236 AC_LANG_POP([C++])
237 ])
238 [ if [ "x$ac_cv_sys_cxx_works" = "xno" ]; then ]
239 AC_MSG_FAILURE([The C++ compiler does not work. Please (re)install the C++ compiler])
240 [ fi ]
241
242 AC_PROG_AWK
243 AC_PROG_MAKE_SET
244 AC_PROG_INSTALL
245
246 #override some default libtool behavior and invoke AC_PROG_LIBTOOL (see http://lists.gnu.org/archive/html/libtool/2007-03/msg00000.html)
247 m4_defun([_LT_AC_LANG_F77_CONFIG], [:])
248 m4_defun([_LT_AC_LANG_GCJ_CONFIG], [:])
249 m4_defun([_LT_AC_LANG_RC_CONFIG], [:])
250 AM_PROG_CC_C_O
251 AC_PROG_LIBTOOL
252
253 #Check for compiler vendor
254 AX_COMPILER_VENDOR
255
256 # Set CC_FOR_BUILD
257 if test "x${cross_compiling}" = "xyes"; then
258 CC_FOR_BUILD=${CC_FOR_BUILD-gcc}
259 case "$host" in
260 arm*-linux-gnueabi*|arm*-*-linux-gnueabi*)
261 # spandsp modem
262 ac_cv_file__dev_ptmx=yes
263 # libjs
264 export ac_cv_va_copy=yes
265 # srtp
266 export ac_cv_file__dev_urandom=yes
267 # rpl_malloc
268 export ac_cv_func_realloc_0_nonnull=yes
269 export ac_cv_func_malloc_0_nonnull=yes
270 # apr
271 export ac_cv_func_setpgrp_void=yes
272 export ac_cv_file__dev_zero=yes
273 export apr_cv_tcp_nodelay_with_cork=yes
274 export ac_cv_file_dbd_apr_dbd_mysql_c=no
275 export ac_cv_sizeof_ssize_t=4
276 export apr_cv_mutex_recursive=yes
277 export ac_cv_func_pthread_rwlock_init=yes
278 export apr_cv_type_rwlock_t=yes
279 export apr_cv_process_shared_works=yes
280 export apr_cv_mutex_robust_shared=yes
281 ;;
282 esac
283 else
284 CC_FOR_BUILD='$(CC)'
285 fi
286 AC_SUBST(CC_FOR_BUILD)
287
288 if test -n "$lt_sysroot" ; then
289 APR_ADDTO(CFLAGS, --sysroot=$lt_sysroot)
290 APR_ADDTO(CXXFLAGS, --sysroot=$lt_sysroot)
291 APR_ADDTO(CPPFLAGS, --sysroot=$lt_sysroot)
292 APR_ADDTO(LDFLAGS, --sysroot=$lt_sysroot)
293 PKG_CONFIG_SYSROOT_DIR=$lt_sysroot
294 fi
295
296 # Optimize
297 AC_ARG_ENABLE(optimization,
298 [AC_HELP_STRING([--enable-optimization],[Set if you want us to add max optimising compiler flags])],[enable_optimizer="$enableval"],[enable_optimizer="no"])
299
300 if test "${enable_optimizer}" = "yes" ; then
301 AC_DEFINE([OPTIMZER],[],[Enable Optimization.])
302 AX_CC_MAXOPT
303 fi
304
305 # set defaults for use on all platforms
306 SWITCH_AM_CFLAGS="-I${switch_srcdir}/src/include -I${switch_builddir}/src/include -I${switch_srcdir}/libs/libteletone/src"
307 SWITCH_AM_CXXFLAGS="-I${switch_srcdir}/src/include -I${switch_builddir}/src/include -I${switch_srcdir}/libs/libteletone/src"
308 SWITCH_AM_CPPFLAGS="-I${switch_srcdir}/src/include -I${switch_builddir}/src/include -I${switch_srcdir}/libs/libteletone/src"
309 SWITCH_AM_LDFLAGS="-lm"
310
311 #set SOLINK variable based on compiler and host
312 if test "x${ax_cv_c_compiler_vendor}" = "xsun" ; then
313 SOLINK="-Bdynamic -dy -G"
314 elif test "x${ax_cv_c_compiler_vendor}" = "xclang" ; then
315 case "$host" in
316 *darwin*)
317 SOLINK="-dynamic -force-flat-namespace"
318 ;;
319 *)
320 SOLINK="-shared -Xlinker -x"
321 ;;
322
323 esac
324 elif test "x${ax_cv_c_compiler_vendor}" = "xgnu" ; then
325 case "$host" in
326 # older Xcode test for darwin, Xcode 4/5 use clang above
327 *darwin*)
328 SOLINK="-dynamic -bundle -force-flat-namespace"
329 ;;
330 *-solaris2*)
331 SOLINK="-shared -Xlinker"
332 ;;
333 *)
334 SOLINK="-shared -Xlinker -x"
335 ;;
336 esac
337 elif test "x${ax_cv_c_compiler_vendor}" = "xintel" ; then
338 case "$host" in
339 *)
340 SOLINK="-shared -Xlinker -x"
341 ;;
342 esac
343 else
344 AC_ERROR([Please update configure.in with SOLINK values for your compiler])
345 fi
346
347 ##
348 # detect libtool major version,
349 # set libtool library extension based on this
350 # to work around some brokeness when using 'la' with libtool-1.5
351 #
352 AC_MSG_CHECKING([libtool major version])
353 libtool="${switch_builddir}/libtool"
354 LIBTOOL_MAJOR_VERSION="`$libtool --version 2>/dev/null| sed -e 's/([[^)]]*)//g;s/^[[^0-9]]*//;s/[[- ]].*//g;q'| awk 'BEGIN { FS = "." } { print $1 }' `"
355 if test -z "$LIBTOOL_MAJOR_VERSION" ; then
356 LIBTOOL_MAJOR_VERSION="`sed -n -e '/^VERSION/{s/^.*=\"\{0,1\}\([[0-9]]\{1,\}\)\..*/\1/;p;}' ${switch_srcdir}/build/config/ltmain.sh`"
357 fi
358 if test -z "$LIBTOOL_MAJOR_VERSION" ; then
359 AC_MSG_ERROR([Failed to detect your libtool version, please open a bug report on https://freeswitch.org/jira])
360 fi
361 AC_MSG_RESULT([${LIBTOOL_MAJOR_VERSION}])
362
363 LIBTOOL_LIB_EXTEN=so
364
365 if test "${LIBTOOL_MAJOR_VERSION}" = "2" ; then
366 LIBTOOL_LIB_EXTEN="la"
367 fi
368 AC_MSG_RESULT([using libtool library extension... ${LIBTOOL_LIB_EXTEN}])
369
370 if test "$ax_cv_c_compiler_vendor" = "gnu"; then
371 saved_CFLAGS="$CFLAGS"
372 AC_CACHE_CHECK([whether compiler supports -Wno-unused-result],
373 [ac_cv_gcc_supports_w_no_unused_result], [
374 CFLAGS="$CFLAGS -Wno-unused-result -Wno-error=unused-result"
375 AC_TRY_COMPILE([],[return 0;],
376 [ac_cv_gcc_supports_w_no_unused_result=yes],
377 [ac_cv_gcc_supports_w_no_unused_result=no])])
378 CFLAGS="$saved_CFLAGS"
379 AC_MSG_RESULT($ac_cv_gcc_supports_w_no_unused_result)
380
381 saved_CFLAGS="$CFLAGS"
382 AC_CACHE_CHECK([whether compiler supports -Wno-misleading-indentation],
383 [ac_cv_gcc_supports_w_no_misleading_indentation], [
384 CFLAGS="$CFLAGS -Wno-misleading-indentation -Wno-error=misleading-indentation"
385 AC_TRY_COMPILE([],[return 0;],
386 [ac_cv_gcc_supports_w_no_misleading_indentation=yes],
387 [ac_cv_gcc_supports_w_no_misleading_indentation=no])])
388 CFLAGS="$saved_CFLAGS"
389 AC_MSG_RESULT($ac_cv_gcc_supports_w_no_misleading_indentation)
390 fi
391
392 # tweak compiler specific flags
393 if test "x${ax_cv_c_compiler_vendor}" = "xsun" ; then
394 APR_ADDTO(SWITCH_AM_CFLAGS, -KPIC)
395 APR_ADDTO(SWITCH_AM_CFLAGS, -DPIC)
396 APR_ADDTO(SWITCH_AM_CFLAGS, -erroff=E_END_OF_LOOP_CODE_NOT_REACHED)
397 APR_ADDTO(SWITCH_AM_CFLAGS, -errtags=yes)
398 APR_ADDTO(SWITCH_AM_CFLAGS, -D__FUNCTION__=__func__ )
399 APR_ADDTO(SWITCH_AM_CFLAGS, -mt)
400 APR_ADDTO(SWITCH_AM_CXXFLAGS, -errtags=yes)
401 APR_ADDTO(SWITCH_AM_CXXFLAGS, -KPIC)
402 APR_ADDTO(SWITCH_AM_CXXFLAGS, -DPIC)
403 APR_ADDTO(SWITCH_AM_CXXFLAGS, "-features=extensions")
404 APR_ADDTO(SWITCH_AM_CXXFLAGS, -D__FUNCTION__=__func__)
405 APR_ADDTO(SWITCH_AM_CXXFLAGS, -mt)
406
407 APR_ADDTO(SWITCH_AM_LDFLAGS, -R${prefix}/lib)
408 if test "${enable_64}" = "yes"; then
409 APR_ADDTO(SWITCH_AM_CFLAGS, -m64)
410 APR_ADDTO(SWITCH_AM_CXXFLAGS, -m64)
411 APR_ADDTO(SWITCH_AM_LDFLAGS, -m64)
412 LIBS="$LIBS -m64"
413 fi
414 elif test "x${ax_cv_c_compiler_vendor}" = "xclang" ; then
415 APR_ADDTO(SWITCH_AM_CFLAGS, -fPIC -ffast-math)
416 APR_ADDTO(SWITCH_AM_CXXFLAGS, -fPIC -ffast-math)
417 APR_ADDTO(SWITCH_AM_CFLAGS, -Werror)
418 elif test "x${ax_cv_c_compiler_vendor}" = "xgnu" ; then
419 APR_ADDTO(SWITCH_AM_CFLAGS, -fPIC -ffast-math)
420 APR_ADDTO(SWITCH_AM_CXXFLAGS, -fPIC -ffast-math)
421 AC_SUBST([AM_MOD_AVMD_CXXFLAGS], [-std=gnu99]) # FS-8809, needed for MAP_POPULATE
422 if test "$ac_cv_gcc_supports_w_no_unused_result" = yes; then
423 APR_ADDTO(SWITCH_AM_CFLAGS, -Werror)
424 APR_ADDTO(SWITCH_AM_CFLAGS, -Wno-unused-result)
425 fi
426 if test "$ac_cv_gcc_supports_w_no_misleading_indentation" = yes; then
427 APR_ADDTO(SWITCH_AM_CFLAGS, -Wno-misleading-indentation)
428 fi
429 if test "${enable_64}" = "yes"; then
430 case "$host" in
431 *darwin*)
432 osxvrm=`sw_vers -productVersion` # Get version.release.modlevel
433 osxrel=`echo $osxvrm | cut -d. -f2` # Get release only
434 if test "$osxrel" -ge 4; then # 10.4 and up are x64
435 APR_ADDTO(CFLAGS, -arch x86_64)
436 APR_ADDTO(LDFLAGS, -arch x86_64)
437 APR_ADDTO(CXXFLAGS, -arch x86_64)
438 fi
439 ;;
440 *-solaris2*)
441 APR_ADDTO(CFLAGS, -m64)
442 APR_ADDTO(LDFLAGS, -m64)
443 APR_ADDTO(CXXFLAGS, -m64)
444 ;;
445 *)
446 LIBS="$LIBS -m64"
447 ;;
448 esac
449 fi
450 fi
451
452 case "${ax_cv_c_compiler_vendor}" in
453 sun)
454 VISIBILITY_FLAG=-xldscope=hidden
455 ;;
456 *)
457 VISIBILITY_FLAG=-fvisibility=hidden
458 ;;
459 esac
460 AC_SUBST(VISIBILITY_FLAG)
461
462 #
463 # gcc visibility cflag checks
464 #
465 AC_ARG_ENABLE([visibility],
466 [AS_HELP_STRING([--disable-visibility], [Disable or enable API visibility support (default: use if available)])],
467 [enable_visibility="${enableval}"],
468 [enable_visibility="detect"]
469 )
470 HAVE_VISIBILITY="no"
471
472 if test "x${enable_visibility}" != "xno" ; then
473
474 case "${ax_cv_c_compiler_vendor}" in
475 gnu)
476 save_CFLAGS="${CFLAGS}"
477 CFLAGS="${CFLAGS} -fvisibility=hidden"
478 AC_MSG_CHECKING([whether the compiler supports -fvisibility=hidden])
479 AC_COMPILE_IFELSE(
480 [AC_LANG_PROGRAM(
481 [int foo __attribute__ ((visibility("default")));],
482 [;]
483 )],
484
485 [AC_MSG_RESULT([yes])
486 APR_ADDTO([SWITCH_AM_CFLAGS], [-fvisibility=hidden -DSWITCH_API_VISIBILITY=1 -DCJSON_API_VISIBILITY=1 -DHAVE_VISIBILITY=1])
487 APR_ADDTO([SWITCH_AM_CXXFLAGS], [-fvisibility=hidden -DSWITCH_API_VISIBILITY=1 -DCJSON_API_VISIBILITY=1 -DHAVE_VISIBILITY=1])
488 HAVE_VISIBILITY="yes"],
489
490 [AC_MSG_RESULT([no])]
491 )
492 CFLAGS="${save_CFLAGS}"
493 ;;
494
495 sun)
496 # save_CFLAGS="${CFLAGS}"
497 # CFLAGS="${CFLAGS} -xldscope=hidden"
498 # AC_MSG_CHECKING([whether the compiler supports -xldscope=hidden])
499 # AC_COMPILE_IFELSE(
500 # [AC_LANG_PROGRAM(
501 # [int foo __attribute__ ((visibility("default")));],
502 # [;]
503 # )],
504 #
505 # [AC_MSG_RESULT([yes])
506 # APR_ADDTO([SWITCH_AM_CFLAGS], [-xldscope=hidden -DSWITCH_API_VISIBILITY=1 -DHAVE_VISIBILITY=1])
507 # APR_ADDTO([SWITCH_AM_CXXFLAGS], [-xldscope=hidden -DSWITCH_API_VISIBILITY=1 -DHAVE_VISIBILITY=1])
508 # HAVE_VISIBILITY="yes"],
509 #
510 # [AC_MSG_RESULT([no])]
511 # )
512 # CFLAGS="${save_CFLAGS}"
513 ;;
514
515 *)
516 if test "x${enable_visibility}" = "xyes" ; then
517 AC_MSG_ERROR([Non-GNU / SUN compilers are currently unsupported])
518 else
519 AC_MSG_WARN([Non-GNU / SUN compilers are currently unsupported])
520 fi
521 ;;
522 esac
523
524 #
525 # visibility explicitly requested but not supported by this compiler => error
526 #
527 if test "x${enable_visibility}" = "xyes" -a "x${HAVE_VISIBILITY}" = "xno" ; then
528 AC_MSG_ERROR([API visibility not supported by this compiler])
529 fi
530 fi
531
532 # Enable debugging (default: on)
533 # (rename option if the default is changed)
534 AC_ARG_ENABLE(debug,
535 [AC_HELP_STRING([--disable-debug],[build without debug information])],[enable_debug="$enableval"],[enable_debug="yes"])
536
537 if test "${enable_debug}" = "yes"; then
538 AC_DEFINE([DEBUG],[],[Enable extra debugging.])
539 saved_CFLAGS="$CFLAGS"
540 CFLAGS=
541 AX_CFLAGS_WARN_ALL_ANSI
542 SWITCH_ANSI_CFLAGS=$CFLAGS
543 CFLAGS="$saved_CFLAGS"
544
545 if test "x${ax_cv_c_compiler_vendor}" = "xgnu" ; then
546 if test "$ac_cv_gcc_supports_w_no_unused_result" = yes; then
547 APR_ADDTO(SWITCH_AM_CFLAGS, -Wno-unused-result)
548 fi
549 APR_ADDTO(SWITCH_AM_CFLAGS, -g -ggdb)
550 export DEBUG_CFLAGS="-g -ggdb"
551 fi
552
553 fi
554
555 AC_ARG_ENABLE(libyuv,
556 [AC_HELP_STRING([--disable-libyuv],[build without libyuv])],[enable_libyuv="$enableval"],[enable_libyuv="yes"])
557
558 AM_CONDITIONAL([ENABLE_LIBYUV],[test "${enable_libyuv}" = "yes"])
559
560 AC_ARG_ENABLE(libvpx,
561 [AC_HELP_STRING([--disable-libvpx],[build without libvpx])],[enable_libvpx="$enableval"],[enable_libvpx="yes"])
562
563 AM_CONDITIONAL([ENABLE_LIBVPX],[test "${enable_libvpx}" = "yes"])
564
565 AC_ARG_ENABLE(cpp,
566 [AC_HELP_STRING([--disable-cpp],[build without cpp code])],[enable_cpp="$enableval"],[enable_cpp="yes"])
567
568 AM_CONDITIONAL([ENABLE_CPP],[test "${enable_cpp}" = "yes"])
569
570 AM_CONDITIONAL([DISABLE_CC],[test "${disable_cc}" = "yes"])
571
572 AC_ARG_ENABLE([system-xmlrpc-c],
573 [AS_HELP_STRING([--enable-system-xmlrpc-c],
574 [use system lib for xmlrpc-c])],,
575 [enable_xmlrpcc="no"])
576
577 if test "${enable_xmlrpcc}" = "yes" ; then
578 SYS_XMLRPC_CFLAGS=`xmlrpc-c-config --cflags`
579 SYS_XMLRPC_LDFLAGS=`xmlrpc-c-config --libs`
580 fi
581 AC_SUBST(SYS_XMLRPC_CFLAGS)
582 AC_SUBST(SYS_XMLRPC_LDFLAGS)
583 AM_CONDITIONAL([SYSTEM_XMLRPCC],[test "${enable_xmlrpcc}" = "yes"])
584
585 for luaversion in luajit lua5.2 lua-5.2 lua52 lua5.1 lua-5.1 lua; do
586 PKG_CHECK_MODULES([LUA],[${luaversion}],[have_lua=yes],[have_lua=no])
587 if test ${have_lua} = yes; then
588 break
589 fi
590 done
591 if test x"${LUA_LIBS}" = x"" ; then
592 LUA_LIBS="-llua"
593 fi
594
595 AC_ARG_ENABLE(srtp,
596 [AC_HELP_STRING([--disable-srtp],[build without srtp support])],[enable_srtp="$enableval"],[enable_srtp="yes"])
597
598 AM_CONDITIONAL([ENABLE_SRTP],[test "${enable_srtp}" = "yes"])
599
600 have_openal=no
601 AC_CHECK_LIB(openal, alcLoopbackOpenDeviceSOFT, [have_openal="yes"])
602 AM_CONDITIONAL([HAVE_OPENAL],[test "${have_openal}" = "yes"])
603
604 AC_ARG_ENABLE(zrtp,
605 [AS_HELP_STRING([--enable-zrtp], [Compile with zrtp Support])],,[enable_zrtp="no"])
606 if test "x$enable_zrtp" = "xyes" ; then
607 LIBS="-lpthread $LIBS"
608 APR_ADDTO(SWITCH_AM_CFLAGS, -DENABLE_ZRTP)
609 fi
610
611 PA_LIBS=
612
613 PKG_CHECK_MODULES(JACK, jack, have_jack=yes, have_jack=no)
614 if test "x$have_jack" = "xyes" ; then
615 PA_LIBS+=$JACK_LIBS
616 fi
617
618 AC_CHECK_LIB(asound, snd_pcm_open, have_alsa=yes, have_alsa=no)
619 if test "x$have_alsa" = "xyes" ; then
620 PA_LIBS+=-lasound
621 fi
622
623 AC_SUBST(PA_LIBS)
624
625 AM_CONDITIONAL([ENABLE_ZRTP],[test "x$enable_zrtp" != "xno"])
626
627 AM_CONDITIONAL([WANT_DEBUG],[test "${enable_debug}" = "yes"])
628
629 AC_ARG_ENABLE(core-odbc-support,
630 [AS_HELP_STRING([--enable-core-odbc-support], [Compile with ODBC Support (default is optional)])],,[enable_core_odbc_support="optional"])
631 if ! test "$enable_core_odbc_support" = "no"; then
632 AX_LIB_ODBC
633 if test "$ac_cv_found_odbc" = "yes" ; then
634 enable_core_odbc_support="yes"
635 elif test "$enable_core_odbc_support" = "yes"; then
636 AC_MSG_ERROR([no usable libodbc; please install unixodbc devel package or equivalent])
637 else
638 enable_core_odbc_support="no"
639 fi
640 fi
641
642 CHECK_LIBUUID
643 SWITCH_AM_LDFLAGS="$LIBUUID_LIBS $SWITCH_AM_LDFLAGS"
644 SWITCH_AM_CFLAGS="$LIBUUID_CFLAGS $SWITCH_AM_CFLAGS"
645
646 AC_ARG_ENABLE(core-pgsql-pkgconfig,
647 [AS_HELP_STRING([--disable-core-pgsql-pkgconfig], [Use pg_config to get PGQSL build options])],[enable_core_pgsql_pkgconfig="$enableval"],[enable_core_pgsql_pkgconfig="yes"])
648
649 path_remove () {
650 echo "$1" | tr ':' '\n' | grep -Fxv "$2" | tr '\n' ':' | sed 's/:$//'
651 }
652 path_push_unique () {
653 x="$(eval echo \$$1)"
654 x="$(path_remove "$x" "$2")"
655 if test -z "$x"; then
656 eval export $1="$2"
657 else
658 eval export $1="$2:$x"
659 fi
660 }
661
662 AC_PATH_PROG([PG_CONFIG], [pg_config], [no])
663 AC_PATH_PROG([PKG_CONFIG], [pkg-config], [no])
664
665 case $host in
666 *-darwin*)
667 path_push_unique PKG_CONFIG_PATH /usr/local/opt/libpq/lib/pkgconfig
668 path_push_unique PKG_CONFIG_PATH /usr/local/opt/openssl/lib/pkgconfig
669 ;;
670 esac
671
672 if test "$PKG_CONFIG" = "no" \
673 || test x"$enable_core_pgsql_pkgconfig" = x"no" \
674 || ! pkg-config --modversion libpq > /dev/null; then
675 if test "$PG_CONFIG" != "no"; then
676 AC_MSG_CHECKING([for PostgreSQL libraries via pg_config])
677 POSTGRESQL_CFLAGS="-I`$PG_CONFIG --includedir`"
678 POSTGRESQL_LIBDIR="-L`$PG_CONFIG --libdir`"
679 POSTGRESQL_LDFLAGS="-L`$PG_CONFIG --libdir` -lpq"
680 POSTGRESQL_VERSION=`$PG_CONFIG --version | awk '{ print $NF }'`
681 POSTGRESQL_MAJOR_VERSION=`$PG_CONFIG --version | awk '{ print $NF }' | awk -F. '{ print $1 }'`
682 POSTGRESQL_MINOR_VERSION=`$PG_CONFIG --version | awk '{ print $NF }' | awk -F. '{ print $2 }'`
683 POSTGRESQL_PATCH_VERSION=`$PG_CONFIG --version | awk '{ print $NF }' | awk -F. '{ print $3 }'`
684 fi
685 else
686 AC_MSG_CHECKING([for PostgreSQL libraries via pkg_config])
687 POSTGRESQL_CFLAGS="`$PKG_CONFIG --cflags libpq`"
688 POSTGRESQL_LIBDIR="`$PKG_CONFIG libpq --libs-only-L`"
689 POSTGRESQL_LDFLAGS="`$PKG_CONFIG --libs libpq`"
690 POSTGRESQL_VERSION="`$PKG_CONFIG --modversion libpq`"
691 POSTGRESQL_MAJOR_VERSION="`echo $POSTGRESQL_VERSION | cut -d. -f1 | sed 's/^\([[0-9]]*\)[[^0-9]].*/\1/'`"
692 POSTGRESQL_MINOR_VERSION="`echo $POSTGRESQL_VERSION | cut -d. -f2 | sed 's/^\([[0-9]]*\)[[^0-9]].*/\1/'`"
693 POSTGRESQL_PATCH_VERSION="`echo $POSTGRESQL_VERSION | cut -d. -f3 | sed 's/^\([[0-9]]*\)[[^0-9]].*/\1/'`"
694 test -n "$POSTGRESQL_PATCH_VERSION" || POSTGRESQL_PATCH_VERSION=0
695 fi
696 AC_MSG_RESULT([$POSTGRESQL_LIBDIR])
697 AC_DEFINE_UNQUOTED([POSTGRESQL_VERSION], "${POSTGRESQL_VERSION}", [Specifies the version of PostgreSQL we are linking against])
698 AC_DEFINE_UNQUOTED([POSTGRESQL_MAJOR_VERSION], ${POSTGRESQL_MAJOR_VERSION}, [Specifies the version of PostgreSQL we are linking against])
699 AC_DEFINE_UNQUOTED([POSTGRESQL_MINOR_VERSION], ${POSTGRESQL_MINOR_VERSION}, [Specifies the version of PostgreSQL we are linking against])
700 AC_DEFINE_UNQUOTED([POSTGRESQL_PATCH_VERSION], ${POSTGRESQL_PATCH_VERSION}, [Specifies the version of PostgreSQL we are linking against])
701 have_libpq=no
702 save_LIBS="${LIBS}"
703 save_CPPFLAGS="${CPPFLAGS}"
704 LIBS="${POSTGRESQL_LDFLAGS}"
705 CPPFLAGS="${POSTGRESQL_CFLAGS}"
706 AC_CHECK_LIB([pq], [PQgetvalue], [have_libpq="yes"])
707 LIBS="${save_LIBS}"
708 CPPFLAGS="${save_CPPFLAGS}"
709 AM_CONDITIONAL([HAVE_PGSQL],[test "${have_libpq}" = "yes"])
710 AC_SUBST([POSTGRESQL_CFLAGS], [$POSTGRESQL_CFLAGS])
711 AC_SUBST([POSTGRESQL_LDFLAGS], [$POSTGRESQL_LDFLAGS])
712 AC_SUBST([POSTGRESQL_LIBDIR], [$POSTGRESQL_LIBDIR])
713
714
715 PKG_CHECK_MODULES([MARIADB], [libmariadb >= 3.0.9],[
716 AM_CONDITIONAL([HAVE_MARIADB],[true])],[
717 PKG_CHECK_MODULES([MARIADB], [mariadb >= 3.0.9],[
718 AM_CONDITIONAL([HAVE_MARIADB],[true])],[
719 AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_MARIADB],[false])
720 ])
721 ])
722
723 PKG_CHECK_MODULES([SPANDSP], [spandsp >= 3.0],[
724 AM_CONDITIONAL([HAVE_SPANDSP],[true])],[
725 AC_MSG_ERROR([no usable spandsp; please install spandsp3 devel package or equivalent])
726 ])
727
728 PKG_CHECK_MODULES([SOFIA_SIP], [sofia-sip-ua >= 1.13.6],[
729 AM_CONDITIONAL([HAVE_SOFIA_SIP],[true])],[
730 AC_MSG_ERROR([no usable sofia-sip; please install sofia-sip-ua devel package or equivalent])
731 ])
732
733 AC_ARG_ENABLE(deprecated-core-db-events,
734 [AS_HELP_STRING([--enable-deprecated-core-db-events], [Keep deprecated core db events])],,[enable_deprecated_core_db_events="no"])
735
736 if test x"$enable_deprecated_core_db_events" = x"yes" ; then
737 AC_DEFINE([SWITCH_DEPRECATED_CORE_DB], [1], [Define to 1 to enable deprecated core db events])
738 fi
739
740 ESL_LDFLAGS=
741 PLATFORM_CORE_LDFLAGS=
742 PLATFORM_CORE_LIBS=
743
744 # tweak platform specific flags
745 case "$host" in
746 *darwin*)
747 # Common Apple Darwin settings
748 APR_ADDTO(SWITCH_AM_CFLAGS, -DMACOSX)
749 APR_REMOVEFROM(SWITCH_AM_CFLAGS, -fPIC)
750 APR_ADDTO(CPPFLAGS, -I/usr/local/opt/openssl/include)
751 APR_ADDTO(LDFLAGS, -L/usr/local/opt/openssl/lib)
752 if test "x$enable_core_odbc_support" != "xno"; then
753 APR_ADDTO([PLATFORM_CORE_LDFLAGS], [--framework CoreFoundation])
754 fi
755 APR_ADDTO([PLATFORM_CORE_LIBS], [-ldl])
756 # Get OSX and clang version
757 osxvrm=`sw_vers -productVersion` # Get version.release.modlevel
758 osxrel=`echo $osxvrm | cut -d. -f2` # Get release only
759 clangvers="`clang -v 2>&1 >/dev/null | grep version | sed -e 's/.*version \([[0-9]]*\).*$/\1/'`"
760 if test "$clangvers" -ge 6; then # Xcode 6 drops std lib search, add it to clang
761 APR_ADDTO(LDFLAGS, -L/usr/local/lib)
762 APR_ADDTO(CPPFLAGS, -I/usr/local/include)
763 fi
764 if test "$clangvers" -ge 4; then # Xcode 4 / 10.7 and up
765 APR_ADDTO(CFLAGS, -Wno-deprecated-declarations)
766 fi
767 if test "$osxrel" -ge 6; then # 10.6 and up
768 APR_ADDTO(CFLAGS, -pipe -no-cpp-precomp)
769 APR_ADDTO(LDFLAGS, -pipe -bind_at_load)
770 APR_ADDTO(CXXFLAGS, -pipe)
771 fi
772 ;;
773 *-solaris2*)
774 if test "${enable_64}" = "yes"; then
775 APR_ADDTO(CPPFLAGS, [-I/opt/64/include])
776 APR_ADDTO(LDFLAGS, [-L/opt/64/lib -Wl,-rpath,/opt/64/lib])
777 APR_ADDTO(SWITCH_AM_CFLAGS, [-I/opt/64/include])
778 APR_ADDTO(SWITCH_AM_LDFLAGS, [-L/opt/64/lib -Wl,-rpath,/opt/64/lib])
779 else
780 APR_ADDTO(CPPFLAGS, [-I/opt/include])
781 APR_ADDTO(LDFLAGS, [-L/opt/lib -Wl,-rpath,/opt/lib])
782 APR_ADDTO(SWITCH_AM_CFLAGS, [-I/opt/include])
783 APR_ADDTO(SWITCH_AM_LDFLAGS, [-L/opt/lib -Wl,-rpath,/opt/lib])
784 fi
785 APR_ADDTO(SWITCH_AM_CFLAGS, -DPATH_MAX=2048 -D__EXTENSIONS__)
786 APR_ADDTO(SWITCH_AM_LDFLAGS, -lsendfile -lresolv -lsocket -lnsl -luuid)
787 APR_ADDTO(ESL_LDFLAGS, -lnsl -lsocket)
788 APR_ADDTO([PLATFORM_CORE_LIBS], [-ldl -lcrypt -lrt -lsendfile -lresolv -lsocket -lnsl -luuid])
789 ;;
790 *dragonfly*)
791 APR_ADDTO(CPPFLAGS, -I/usr/local/include)
792 APR_ADDTO(LDFLAGS, -L/usr/local/lib)
793 APR_ADDTO(SWITCH_AM_CFLAGS, -I/usr/local/include)
794 ;;
795 *openbsd*)
796 APR_ADDTO(CPPFLAGS, -I/usr/local/include)
797 APR_ADDTO(LDFLAGS, -L/usr/local/lib -ltermcap)
798 APR_ADDTO(SWITCH_AM_CFLAGS, -I/usr/local/include)
799 ;;
800 *netbsd*)
801 APR_ADDTO(CPPFLAGS, -I/usr/pkg/include)
802 APR_ADDTO(LDFLAGS, [-L/usr/pkg/lib -Wl,-rpath,/usr/pkg/lib])
803 APR_ADDTO(SWITCH_AM_CFLAGS, -I/usr/pkg/include)
804 ;;
805 *bsd*)
806 APR_ADDTO(CPPFLAGS, -I/usr/local/include)
807 APR_ADDTO(LDFLAGS, -L/usr/local/lib)
808 APR_ADDTO(SWITCH_AM_CFLAGS, -I/usr/local/include)
809 APR_ADDTO([PLATFORM_CORE_LIBS], [-lcrypt -lrt])
810 ;;
811 *linux*)
812 APR_ADDTO([PLATFORM_CORE_LIBS], [-ldl -lcrypt -lrt])
813 ;;
814 esac
815
816 APR_REMOVEFROM(SWITCH_AM_CXXFLAGS, -std=c99)
817
818 # check for usable system MD5 library
819 AS_CASE([$host],
820 [*-solaris2*], [AC_CHECK_LIB(md5, MD5Init)],
821 [*-freebsd*], [AC_CHECK_LIB(md, MD5Init)],
822 [*-openbsd*|*-netbsd*], [AC_CHECK_FUNCS([MD5Init])])
823
824 AC_CHECK_LIB(z, inflateReset, have_libz=yes, AC_MSG_ERROR([no usable zlib; please install zlib devel package or equivalent]))
825 if test "x$have_libz" = "xyes" ; then
826 APR_ADDTO([PLATFORM_CORE_LIBS], [-lz])
827 fi
828
829 PKG_CHECK_MODULES([MPG123], [libmpg123 >= 1.16.0],[
830 AM_CONDITIONAL([HAVE_MPG123],[true])],[
831 AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_MPG123],[false])])
832
833 PKG_CHECK_MODULES([AMR], [opencore-amrnb >= 0.1.0],[
834 AM_CONDITIONAL([HAVE_AMR],[true])],[
835 AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_AMR],[false])])
836
837 PKG_CHECK_MODULES([AMRWB], [opencore-amrwb >= 0.1.0 vo-amrwbenc >= 0.1.0],[
838 AM_CONDITIONAL([HAVE_AMRWB],[true])],[
839 AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_AMRWB],[false])])
840
841 PKG_CHECK_MODULES([STIRSHAKEN], [stirshaken],[
842 AM_CONDITIONAL([HAVE_STIRSHAKEN],[true])],[
843 AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_STIRSHAKEN],[false])])
844
845 AC_CHECK_LIB(apr-1, apr_pool_mutex_set, use_system_apr=yes, use_system_apr=no)
846 AM_CONDITIONAL([SYSTEM_APR],[test "${use_system_apr}" = "yes"])
847
848 save_LIBS="$LIBS"
849 LIBS=
850 AC_CHECK_LIB(jpeg, jpeg_std_error,, AC_MSG_ERROR([no usable libjpeg; please install libjpeg devel package or equivalent]))
851
852 AC_CHECK_LIB(jbig, jbg_enc_out, have_libjbig=yes, have_libjbig=no)
853 if test "x$have_libjbig" = "xyes" ; then
854 SPANDSP_LA_JBIG="-ljbig $LIBS"
855 AC_SUBST(SPANDSP_LA_JBIG)
856 fi
857 LIBS="$save_LIBS"
858
859 AC_CHECK_LIB(lzma, lzma_code, have_liblzma=yes, have_liblzma=no)
860 if test "x$have_liblzma" = "xyes" ; then
861 SPANDSP_LA_LZMA="-llzma"
862 AC_SUBST(SPANDSP_LA_LZMA)
863 fi
864
865 AC_CHECK_LIB(resolv, res_init, have_libresolv=yes, have_libresolv=no)
866 if test "x$have_libresolv" = "xyes" ; then
867 APR_ADDTO(SWITCH_AM_LDFLAGS, -lresolv)
868 fi
869
870 AC_SUBST(SWITCH_AM_CFLAGS)
871 AC_SUBST(SWITCH_ANSI_CFLAGS)
872 AC_SUBST(SWITCH_AM_CXXFLAGS)
873 AC_SUBST(SWITCH_AM_CPPFLAGS)
874 AC_SUBST(SWITCH_AM_LDFLAGS)
875 AC_SUBST(ESL_LDFLAGS)
876 AC_SUBST(PLATFORM_CORE_LDFLAGS)
877 AC_SUBST(PLATFORM_CORE_LIBS)
878 AC_SUBST(SOLINK)
879 AC_SUBST(LIBTOOL_LIB_EXTEN)
880
881 # Checks for header files.
882 AC_HEADER_DIRENT
883 AC_HEADER_STDC
884 AC_CHECK_HEADERS([sys/types.h sys/resource.h sched.h wchar.h sys/filio.h sys/ioctl.h sys/prctl.h sys/select.h netdb.h sys/time.h])
885
886 # Solaris 11 privilege management
887 AS_CASE([$host],
888 [*-*-solaris2.11], [AC_CHECK_HEADER([priv.h], [AC_DEFINE([SOLARIS_PRIVILEGES],[1],[Solaris 11 privilege management])])]
889 )
890
891
892 if test x"$ac_cv_header_wchar_h" = xyes; then
893 HAVE_WCHAR_H_DEFINE=1
894 else
895 HAVE_WCHAR_H_DEFINE=0
896 fi
897 AC_SUBST(HAVE_WCHAR_H_DEFINE)
898
899 # Needed by Abyss on Solaris:
900
901 if test x"$ac_cv_header_sys_filio_h" = xyes; then
902 HAVE_SYS_FILIO_H_DEFINE=1
903 else
904 HAVE_SYS_FILIO_H_DEFINE=0
905 fi
906 AC_SUBST(HAVE_SYS_FILIO_H_DEFINE)
907
908 # Needed by Abyss on Solaris:
909
910 if test x"$ac_cv_header_sys_ioctl_h" = xyes; then
911 HAVE_SYS_IOCTL_H_DEFINE=1
912 else
913 HAVE_SYS_IOCTL_H_DEFINE=0
914 fi
915 AC_SUBST(HAVE_SYS_IOCTL_H_DEFINE)
916
917 if test x"$ac_cv_header_sys_select_h" = xyes; then
918 HAVE_SYS_SELECT_H_DEFINE=1
919 else
920 HAVE_SYS_SELECT_H_DEFINE=0
921 fi
922 AC_SUBST(HAVE_SYS_SELECT_H_DEFINE)
923
924 # Checks for typedefs, structures, and compiler characteristics.
925 AC_C_CONST
926 AC_C_INLINE
927 AC_TYPE_SIZE_T
928 AC_HEADER_TIME
929 AC_STRUCT_TM
930
931 # Checks for library functions.
932 AC_PROG_GCC_TRADITIONAL
933 AC_FUNC_MALLOC
934 AC_TYPE_SIGNAL
935 AC_FUNC_STRFTIME
936 AC_CHECK_FUNCS([gethostname vasprintf mmap mlock mlockall usleep getifaddrs timerfd_create getdtablesize posix_openpt poll])
937 AC_CHECK_FUNCS([sched_setscheduler setpriority setrlimit setgroups initgroups getrusage])
938 AC_CHECK_FUNCS([wcsncmp setgroups asprintf setenv pselect gettimeofday localtime_r gmtime_r strcasecmp stricmp _stricmp])
939
940 # Check availability and return type of strerror_r
941 # (NOTE: apr-1-config sets -D_GNU_SOURCE at build-time, need to run the check with it too)
942 save_CPPFLAGS="$CPPFLAGS"
943 CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
944 AC_FUNC_STRERROR_R
945 CPPFLAGS="$save_CPPFLAGS"
946
947 AX_HAVE_CPU_SET
948
949 AC_CHECK_LIB(rt, clock_gettime, [AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [Define if you have clock_gettime()])])
950 AC_CHECK_LIB(rt, clock_getres, [AC_DEFINE(HAVE_CLOCK_GETRES, 1, [Define if you have clock_getres()])])
951 AC_CHECK_LIB(rt, clock_nanosleep, [AC_DEFINE(HAVE_CLOCK_NANOSLEEP, 1, [Define if you have clock_nanosleep()])])
952 AC_CHECK_LIB(pthread, pthread_setschedparam, [AC_DEFINE(HAVE_PTHREAD_SETSCHEDPARAM, 1, [Define if you have pthread_setschedparam()])])
953
954 AC_CHECK_FUNC(socket, , AC_CHECK_LIB(socket, socket))
955
956 AC_CHECK_FILE(/dev/ptmx, [AC_DEFINE(HAVE_DEV_PTMX, 1, [Define if you have /dev/ptmx])])
957 AC_CHECK_LIB(util, openpty, [AC_DEFINE(HAVE_OPENPTY, 1, [Define if you have openpty()])])
958
959 AC_CHECK_MEMBERS([struct tm.tm_gmtoff],,,[
960 #include <sys/types.h>
961 #include <time.h>])
962
963 AC_CHECK_MEMBERS([struct tm.tm_zone],,,[
964 #include <sys/types.h>
965 #include <time.h>])
966
967 AC_CHECK_DECL([RLIMIT_MEMLOCK],
968 [AC_DEFINE([HAVE_RLIMIT_MEMLOCK],[1],[RLIMIT_MEMLOCK constant for setrlimit])],,
969 [#ifdef HAVE_SYS_RESOURCE_H
970 #include <sys/resource.h>
971 #endif])
972
973 AC_CHECK_DECL([SCHED_RR],
974 [AC_DEFINE([HAVE_SCHED_RR],[1],[SCHED_RR constant for sched_setscheduler])],,
975 [#ifdef HAVE_SCHED_H
976 #include <sched.h>
977 #endif])
978
979 AC_CHECK_DECL([SCHED_FIFO],
980 [AC_DEFINE([HAVE_SCHED_FIFO],[1],[SCHED_FIFO constant for sched_setscheduler])],,
981 [#ifdef HAVE_SCHED_H
982 #include <sched.h>
983 #endif])
984
985 #
986 # use mlockall only on linux (for now; if available)
987 #
988 if test "x${ac_cv_func_mlockall}" = "xyes"; then
989 AC_MSG_CHECKING([whether to use mlockall])
990 case "$host" in
991 *-linux-*)
992 AC_DEFINE([USE_MLOCKALL],[1],[Enable mlockall support])
993 AC_MSG_RESULT([yes])
994 USE_MLOCKALL=yes
995 ;;
996 *-freebsd*)
997 APR_ADDTO(SWITCH_AM_CFLAGS, -fPIC)
998 APR_ADDTO(SWITCH_AM_CXXFLAGS, -fPIC)
999 AC_MSG_RESULT([no, broken for non-root users])
1000 ;;
1001 *)
1002 AC_MSG_RESULT([no])
1003 ;;
1004 esac
1005
1006 #
1007 # setrlimit prerequisites
1008 #
1009 if test "x${USE_MLOCKALL}" = "xyes" -a \
1010 "x${ac_cv_func_setrlimit}" = "xyes" -a \
1011 "x${ac_cv_have_decl_RLIMIT_MEMLOCK}" = "xyes"
1012 then
1013 AC_DEFINE([USE_SETRLIMIT],[1],[Use setrlimit to disable mlock limit for non-root users])
1014 fi
1015 fi
1016
1017 #
1018 # sched_setcheduler + round-robin scheduler prerequisites
1019 #
1020 if test "x${ac_cv_func_sched_setscheduler}" = "xyes" -a \
1021 "x${ac_cv_have_decl_SCHED_RR}" = "xyes"
1022 then
1023 AC_DEFINE([USE_SCHED_SETSCHEDULER],[1],[Enable round-robin scheduler using sched_setscheduler])
1024 fi
1025 #
1026 # xmlrpc-c checks
1027 #
1028
1029 AC_CHECK_FUNCS(setenv strtoll strtoull strtoq strtouq __strtoll __strtoull)
1030
1031 HAVE_LIBWWW_SSL_DEFINE=0
1032 AC_SUBST(HAVE_LIBWWW_SSL_DEFINE)
1033
1034 DIRECTORY_SEPARATOR="/"
1035 AC_SUBST(DIRECTORY_SEPARATOR)
1036
1037 va_list_is_array=no
1038 AC_MSG_CHECKING(whether va_list is an array)
1039 AC_TRY_COMPILE([
1040 #include <stdarg.h>
1041 ], [va_list list1, list2; list1 = list2;], ,
1042 va_list_is_array=yes)
1043 AC_MSG_RESULT($va_list_is_array)
1044 if test x"$va_list_is_array" = xyes; then
1045 VA_LIST_IS_ARRAY_DEFINE=1
1046 else
1047 VA_LIST_IS_ARRAY_DEFINE=0
1048 fi
1049 AC_SUBST(VA_LIST_IS_ARRAY_DEFINE)
1050
1051
1052 AC_MSG_CHECKING(whether compiler has __attribute__)
1053 AC_TRY_COMPILE(, [int x __attribute__((__unused__));],
1054 compiler_has_attribute=yes,
1055 compiler_has_attribute=no)
1056 AC_MSG_RESULT($compiler_has_attribute)
1057 if test x"$compiler_has_attribute" = xyes; then
1058 ATTR_UNUSED="__attribute__((__unused__))"
1059 else
1060 ATTR_UNUSED=
1061 fi
1062 AC_SUBST(ATTR_UNUSED)
1063
1064
1065 saved_CFLAGS="$CFLAGS"
1066 AC_CACHE_CHECK([whether compiler supports -Wdeclaration-after-statement], [ac_cv_gcc_declaration_after_statement], [
1067 CFLAGS="$CFLAGS -Wdeclaration-after-statement"
1068 AC_TRY_COMPILE([],[return 0;],[ac_cv_gcc_declaration_after_statement=yes],[ac_cv_gcc_declaration_after_statement=no])
1069 ])
1070 AC_MSG_RESULT($ac_cv_gcc_declaration_after_statement)
1071 if test x"$ac_cv_gcc_declaration_after_statement" = xyes; then
1072 APR_ADDTO(SWITCH_ANSI_CFLAGS, -Wdeclaration-after-statement)
1073 fi
1074 CFLAGS="$saved_CFLAGS"
1075
1076 if test "x${ax_cv_c_compiler_vendor}" = "xclang" ; then
1077 saved_CFLAGS="$CFLAGS"
1078 # Next check added for Xcode 5 and systems with clang 5 llvm 3.3 or above, extended offset must be off
1079 AC_CACHE_CHECK([whether compiler supports -Wextended-offsetof], [ac_cv_clang_extended_offsetof], [
1080 CFLAGS="$CFLAGS -Wno-extended-offsetof"
1081 AC_TRY_COMPILE([],[return 0;],[ac_cv_clang_extended_offsetof=yes],[ac_cv_clang_extended_offsetof=no])
1082 ])
1083 AC_MSG_RESULT($ac_cv_clang_extended_offsetof)
1084 if test x"$ac_cv_clang_extended_offsetof" = xyes; then
1085 APR_ADDTO(CFLAGS, -Wno-extended-offsetof)
1086 fi
1087 CFLAGS="$saved_CFLAGS"
1088 fi
1089
1090 # Tested and fixed lot of modules, but some are untested. Will be added back when the core team decide it ready
1091 # Untested modules : mod_osp mod_soundtouch mod_sangoma_codec mod_opal mod_h323 mod_khomp
1092 # mod_unimrcp mod_cepstral mod_erlang_event mod_snmp mod_perl mod_java mod_managed
1093 #
1094 #saved_CFLAGS="$CFLAGS"
1095 #AC_CACHE_CHECK([whether compiler supports -Wunused-but-set-variable], [ac_cv_gcc_unused_but_set_variable], [
1096 #CFLAGS="$CFLAGS -Wunused-but-set-variable"
1097 #AC_TRY_COMPILE([],[return 0;],[ac_cv_gcc_unused_but_set_variable=yes],[ac_cv_gcc_unused_but_set_variable=no])
1098 #])
1099 #AC_MSG_RESULT($ac_cv_gcc_unused_but_set_variable)
1100 #if test x"$ac_cv_gcc_unused_but_set_variable" = xyes; then
1101 # APR_ADDTO(SWITCH_ANSI_CFLAGS, -Wunused-but-set-variable)
1102 #fi
1103 #CFLAGS="$saved_CFLAGS"
1104
1105 AC_C_BIGENDIAN(AC_DEFINE([SWITCH_BYTE_ORDER],__BIG_ENDIAN,[Big Endian]),AC_DEFINE([SWITCH_BYTE_ORDER],__LITTLE_ENDIAN,[Little Endian]))
1106
1107 # Checks for integer size
1108 AC_CHECK_SIZEOF(char, 1)
1109 AC_CHECK_SIZEOF(int, 4)
1110 AC_CHECK_SIZEOF(long, 4)
1111 AC_CHECK_SIZEOF(short, 2)
1112 AC_CHECK_SIZEOF(long long, 8)
1113 AC_TYPE_SIZE_T
1114 AC_CHECK_TYPE(ssize_t, int)
1115
1116 # Checks for pointer size
1117 AC_CHECK_SIZEOF(void*, 4)
1118
1119 if test "x$ac_cv_sizeof_voidp" != "x"; then
1120 voidp_size=$ac_cv_sizeof_voidp
1121 else
1122 AC_ERROR([Cannot determine size of void*])
1123 fi
1124
1125 if test "$ac_cv_sizeof_short" = "2"; then
1126 short_value=short
1127 fi
1128 if test "$ac_cv_sizeof_int" = "4"; then
1129 int_value=int
1130 fi
1131
1132 if test "$ac_cv_sizeof_int" = "8"; then
1133 int64_t_fmt='#define SWITCH_INT64_T_FMT "d"'
1134 uint64_t_fmt='#define SWITCH_UINT64_T_FMT "u"'
1135 int64_value="int"
1136 long_value=int
1137 elif test "$ac_cv_sizeof_long" = "8"; then
1138 int64_t_fmt='#define SWITCH_INT64_T_FMT "ld"'
1139 uint64_t_fmt='#define SWITCH_UINT64_T_FMT "lu"'
1140 int64_value="long"
1141 long_value=long
1142 case "$host" in
1143 *pc-solaris2*)
1144 ;;
1145 sparc-*-solaris2*)
1146 ;;
1147 *-solaris2*|*apple-darwin*|*-openbsd*)
1148 if test "$ac_cv_sizeof_long_long" = "8"; then
1149 int64_t_fmt='#define SWITCH_INT64_T_FMT "lld"'
1150 uint64_t_fmt='#define SWITCH_UINT64_T_FMT "llu"'
1151 int64_value="long long"
1152 long_value="long long"
1153 fi
1154 ;;
1155 esac
1156 elif test "$ac_cv_sizeof_long_long" = "8"; then
1157 int64_t_fmt='#define SWITCH_INT64_T_FMT "lld"'
1158 uint64_t_fmt='#define SWITCH_UINT64_T_FMT "llu"'
1159 int64_value="long long"
1160 long_value="long long"
1161 elif test "$ac_cv_sizeof_longlong" = "8"; then
1162 int64_t_fmt='#define SWITCH_INT64_T_FMT "qd"'
1163 uint64_t_fmt='#define SWITCH_UINT64_T_FMT "qu"'
1164 int64_value="__int64"
1165 long_value="__int64"
1166 else
1167 AC_ERROR([could not detect a 64-bit integer type])
1168 fi
1169
1170 if test "$ac_cv_type_size_t" = "yes"; then
1171 size_t_value="size_t"
1172 else
1173 size_t_value="switch_int32_t"
1174 fi
1175
1176 if test "$ac_cv_type_ssize_t" = "yes"; then
1177 ssize_t_value="ssize_t"
1178 else
1179 ssize_t_value="switch_int32_t"
1180 fi
1181
1182 APR_CHECK_SIZEOF_EXTENDED([#include <sys/types.h>], ssize_t, 8)
1183
1184 if test "$ac_cv_sizeof_ssize_t" = "$ac_cv_sizeof_int"; then
1185 ssize_t_fmt='#define SWITCH_SSIZE_T_FMT "d"'
1186 elif test "$ac_cv_sizeof_ssize_t" = "$ac_cv_sizeof_long"; then
1187 ssize_t_fmt='#define SWITCH_SSIZE_T_FMT "ld"'
1188 else
1189 ssize_t_fmt='#error Can not determine the proper size for ssize_t'
1190 fi
1191
1192 APR_CHECK_SIZEOF_EXTENDED([#include <stddef.h>], size_t, 8)
1193
1194 if test "$ac_cv_sizeof_size_t" = "$ac_cv_sizeof_int"; then
1195 size_t_fmt='#define SWITCH_SIZE_T_FMT "d"'
1196 elif test "$ac_cv_sizeof_size_t" = "$ac_cv_sizeof_long"; then
1197 size_t_fmt='#define SWITCH_SIZE_T_FMT "ld"'
1198 else
1199 size_t_fmt='#define SWITCH_SIZE_T_FMT "zu"'
1200 fi
1201
1202 # Basically, we have tried to figure out the correct format strings
1203 # for SWITCH types which vary between platforms, but we don't always get
1204 # it right. If you find that we don't get it right for your platform,
1205 # you can override our decision below.
1206 # NOTE: borrowed much of this logic from apr.
1207 case $host in
1208 s390*linux*)
1209 # uniquely, the 31-bit Linux/s390 uses "unsigned long int"
1210 # for size_t rather than "unsigned int":
1211 size_t_fmt='#define SWITCH_SIZE_T_FMT "lu"'
1212 ssize_t_fmt='#define SWITCH_SSIZE_T_FMT "ld"'
1213 ;;
1214 *-os2*)
1215 size_t_fmt='#define SWITCH_SIZE_T_FMT "lu"'
1216 ;;
1217 *-openbsd*)
1218 size_t_fmt='#define SWITCH_SIZE_T_FMT "ld"'
1219 ;;
1220 *aix4*|*aix5*)
1221 ssize_t_fmt='#define SWITCH_SSIZE_T_FMT "ld"'
1222 size_t_fmt='#define SWITCH_SIZE_T_FMT "ld"'
1223 ;;
1224 *beos*)
1225 ssize_t_fmt='#define SWITCH_SSIZE_T_FMT "ld"'
1226 size_t_fmt='#define SWITCH_SIZE_T_FMT "ld"'
1227 ;;
1228 *apple-darwin*)
1229 ssize_t_fmt='#define SWITCH_SSIZE_T_FMT "ld"'
1230 size_t_fmt='#define SWITCH_SIZE_T_FMT "lu"'
1231 ;;
1232 esac
1233
1234 AC_SUBST(voidp_size)
1235 AC_SUBST(short_value)
1236 AC_SUBST(int_value)
1237 AC_SUBST(long_value)
1238 AC_SUBST(int64_value)
1239 AC_SUBST(size_t_value)
1240 AC_SUBST(ssize_t_value)
1241 AC_SUBST(int64_t_fmt)
1242 AC_SUBST(uint64_t_fmt)
1243 AC_SUBST(ssize_t_fmt)
1244 AC_SUBST(size_t_fmt)
1245
1246 case $host in
1247 *-openbsd*)
1248 # OpenBSD's gunzip and friends don't like -d because its redundant, only gzip does
1249 AC_PATH_PROGS(ZCAT, gzip)
1250 ;;
1251 *)
1252 AC_PATH_PROGS(ZCAT, gunzip gzcat gzip zcat)
1253 ;;
1254 esac
1255
1256 AC_PATH_PROGS(BZIP, bzip2)
1257 AC_PATH_PROGS(XZ, xz)
1258 AC_PATH_PROGS(TAR, gtar tar)
1259 AC_PATH_PROGS(WGET, wget)
1260 AC_PATH_PROGS(CURL, curl)
1261 GETLIB="cd $switch_srcdir/libs && ${SHELL} $switch_builddir/build/getlib.sh"
1262 AC_SUBST(GETLIB)
1263 GETG729="cd $switch_srcdir/libs && ${SHELL} $switch_builddir/build/getg729.sh"
1264 AC_SUBST(GETG729)
1265 GETSOUNDS="${SHELL} $switch_builddir/build/getsounds.sh"
1266 AC_SUBST(GETSOUNDS)
1267
1268 case $host in
1269 *-darwin*)
1270 path_push_unique PKG_CONFIG_PATH /usr/local/opt/curl/lib/pkgconfig
1271 path_push_unique PKG_CONFIG_PATH /usr/local/opt/sqlite/lib/pkgconfig/
1272 path_push_unique PKG_CONFIG_PATH /usr/local/opt/ldns/lib/pkgconfig/
1273 path_push_unique PKG_CONFIG_PATH /usr/local/opt/portaudio/lib/pkgconfig/
1274 path_push_unique PKG_CONFIG_PATH /usr/local/opt/ffmpeg/lib/pkgconfig/
1275 ;;
1276 esac
1277
1278 if ! (test -x "$PKG_CONFIG" || test -x "$(which pkg-config)"); then
1279 AC_MSG_ERROR([You need to install pkg-config to configure FreeSWITCH.])
1280 fi
1281
1282 # temporary workaround for Debian libldns-dev package bug
1283 if test "$cross_compiling" != "yes" && test -f /usr/lib/pkg-config/libldns.pc; then
1284 path_push_unique PKG_CONFIG_PATH /usr/lib/pkg-config
1285 fi
1286
1287 module_enabled() {
1288 grep -v -e "\#" -e "^\$" modules.conf | sed 's/|.*//' | sed -e "s|^.*/||" | grep "^${1}\$" >/dev/null
1289 }
1290
1291 AC_ARG_WITH(png,
1292 [AS_HELP_STRING([--without-png],
1293 [disable support for libpng])],
1294 [with_png="$withval"],
1295 [with_png="yes"])
1296 if test "$with_png" = "yes"; then
1297 PKG_CHECK_MODULES([LIBPNG], [libpng >= 1.6.16],[
1298 AM_CONDITIONAL([HAVE_PNG],[true])],[
1299 PKG_CHECK_MODULES([LIBPNG], [libpng16 >= 1.6.16],[
1300 AM_CONDITIONAL([HAVE_PNG],[true])],[
1301 PKG_CHECK_MODULES([LIBPNG], [libpng >= 1.2.49],[
1302 AM_CONDITIONAL([HAVE_PNG],[true])],[
1303 AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_PNG],[false])])])])
1304 else
1305 AM_CONDITIONAL([HAVE_PNG],[false])
1306 fi
1307
1308 AC_ARG_WITH(freetype,
1309 [AS_HELP_STRING([--without-freetype],
1310 [disable support for freetype])],
1311 [with_freetype="$withval"],
1312 [with_freetype="yes"])
1313 if test "$with_freetype" = "yes"; then
1314 PKG_CHECK_MODULES([FREETYPE], [freetype2 >= 2.4.9],[
1315 AM_CONDITIONAL([HAVE_FREETYPE],[true])],[
1316 AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_FREETYPE],[false])])
1317 else
1318 AM_CONDITIONAL([HAVE_FREETYPE],[false])
1319 fi
1320
1321 PKG_CHECK_MODULES([GUMBO], [gumbo >= 0.10.1],[
1322 AM_CONDITIONAL([HAVE_GUMBO],[true])],[
1323 AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_GUMBO],[false])])
1324
1325 PKG_CHECK_MODULES([FVAD], [libfvad >= 1.0],[
1326 AM_CONDITIONAL([HAVE_FVAD],[true])],[
1327 AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_FVAD],[false])])
1328
1329 PKG_CHECK_MODULES([TPL], [libtpl >= 1.5],[
1330 AC_DEFINE([HAVE_LIBTPL],[1],[Define to 1 if you have libtpl])],[
1331 AC_MSG_RESULT([no])])
1332
1333 PKG_CHECK_MODULES([SQLITE], [sqlite3 >= 3.6.20])
1334 PKG_CHECK_MODULES([CURL], [libcurl >= 7.19])
1335 PKG_CHECK_MODULES([PCRE], [libpcre >= 7.8])
1336 PKG_CHECK_MODULES([SPEEX], [speex >= 1.2rc1 speexdsp >= 1.2rc1])
1337 PKG_CHECK_MODULES([YAML], [yaml-0.1 >= 0.1.4],[
1338 AM_CONDITIONAL([HAVE_YAML],[true])],[
1339 AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_YAML],[false])])
1340 PKG_CHECK_MODULES([PORTAUDIO], [portaudio-2.0 >= 19],[
1341 AM_CONDITIONAL([HAVE_PORTAUDIO],[true])],[
1342 AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_PORTAUDIO],[false])])
1343 PKG_CHECK_MODULES([LDNS], [libldns-fs >= 1.6.6],[
1344 AM_CONDITIONAL([HAVE_LDNS],[true])],[
1345 PKG_CHECK_MODULES([LDNS], [libldns >= 1.6.6],[
1346 AM_CONDITIONAL([HAVE_LDNS],[true])],[
1347 AC_CHECK_LIB([ldns], [ldns_str2rdf_a], [LDNS_LIBS=-lldns])
1348 AS_IF([test -z "$LDNS_LIBS"],[
1349 if module_enabled mod_enum; then
1350 AC_MSG_ERROR([You need to either install libldns-dev or disable mod_enum in modules.conf])
1351 else
1352 AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_LDNS],[false])
1353 fi],[
1354 AM_CONDITIONAL([HAVE_LDNS],[true])])])])
1355 PKG_CHECK_MODULES([SNDFILE], [sndfile >= 1.0.20],[
1356 AM_CONDITIONAL([HAVE_SNDFILE],[true])],[
1357 AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_SNDFILE],[false])])
1358
1359 PKG_CHECK_MODULES([MPG123], [libmpg123 >= 1.16.0],[
1360 AM_CONDITIONAL([HAVE_MPG123],[true])],[
1361 AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_MPG123],[false])])
1362
1363 PKG_CHECK_MODULES([SHOUT], [shout >= 2.2.2],[
1364 AM_CONDITIONAL([HAVE_SHOUT],[true])],[
1365 AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_SHOUT],[false])])
1366
1367 mp3lame=false
1368 AC_CHECK_LIB([mp3lame], [lame_init],[
1369 AC_CHECK_HEADER([lame/lame.h],[
1370 mp3lame=true
1371 AC_SUBST([MP3LAME_LIBS], [-lmp3lame])
1372 AC_SUBST([MP3LAME_CFLAGS], [$CPPFLAGS])])])
1373 AM_CONDITIONAL([HAVE_MP3LAME],[$mp3lame])
1374
1375 PKG_CHECK_MODULES([AVCODEC], [libavcodec >= 53.35.0],[
1376 AM_CONDITIONAL([HAVE_AVCODEC],[true])],[
1377 AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_AVCODEC],[false])])
1378
1379 PKG_CHECK_MODULES([X264], [x264 >= 0.142.2431],[
1380 AM_CONDITIONAL([HAVE_X264],[true])],[
1381 AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_X264],[false])])
1382
1383 PKG_CHECK_MODULES([AVFORMAT], [libavformat >= 53.21.1],[
1384 AM_CONDITIONAL([HAVE_AVFORMAT],[true])],[
1385 AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_AVFORMAT],[false])])
1386
1387 PKG_CHECK_MODULES([AVUTIL], [libavutil >= 54.3.0],[
1388 AM_CONDITIONAL([HAVE_AVUTIL],[true])],[
1389 AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_AVUTIL],[false])])
1390
1391 PKG_CHECK_MODULES([AVRESAMPLE], [libavresample >= 2.1.0],[
1392 AM_CONDITIONAL([HAVE_AVRESAMPLE],[true])],[
1393 AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_AVRESAMPLE],[false])])
1394
1395 PKG_CHECK_MODULES([SWRESAMPLE], [libswresample >= 2.1.0],[
1396 AM_CONDITIONAL([HAVE_SWRESAMPLE],[true])],[
1397 AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_SWRESAMPLE],[false])])
1398
1399 PKG_CHECK_MODULES([SWSCALE], [libswscale >= 3.0.0],[
1400 AM_CONDITIONAL([HAVE_SWSCALE],[true])],[
1401 AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_SWSCALE],[false])])
1402
1403 PKG_CHECK_MODULES([VLC], [libvlc >= 2.1.0],[
1404 AM_CONDITIONAL([HAVE_VLC],[true])],[
1405 AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_VLC],[false])])
1406
1407 PKG_CHECK_MODULES([OPENCV], [opencv >= 2.4.5],[
1408 AM_CONDITIONAL([HAVE_OPENCV],[true])],[
1409 PKG_CHECK_MODULES([OPENCV], [opencv4 >= 2.4.5],[
1410 AM_CONDITIONAL([HAVE_OPENCV],[true])],[
1411 AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_OPENCV],[false])])])
1412
1413 PKG_CHECK_MODULES([OPUSFILE_DECODE], [opusfile >= 0.5],[
1414 AM_CONDITIONAL([HAVE_OPUSFILE_DECODE],[true])],[
1415 AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_OPUSFILE_DECODE],[false])])
1416 PKG_CHECK_MODULES([OPUSFILE_ENCODE], [libopusenc >= 0.1],[
1417 AM_CONDITIONAL([HAVE_OPUSFILE_ENCODE],[true])],[
1418 AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_OPUSFILE_ENCODE],[false])])
1419
1420
1421 PKG_CHECK_MODULES([MAGICK], [ImageMagick >= 6.0.0],[
1422 AM_CONDITIONAL([HAVE_MAGICK],[true])],[
1423 AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_MAGICK],[false])])
1424
1425 PKG_CHECK_MODULES([MAGICK7], [ImageMagick >= 7.0.0],[
1426 AM_CONDITIONAL([HAVE_MAGICK7],[true])],[
1427 AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_MAGICK7],[false])])
1428
1429 PKG_CHECK_MODULES([SILK], [silk >= 1.0.8],[
1430 AM_CONDITIONAL([HAVE_SILK],[true])],[
1431 AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_SILK],[false])])
1432
1433 PKG_CHECK_MODULES([BROADVOICE], [broadvoice >= 0.1.0],[
1434 AM_CONDITIONAL([HAVE_BROADVOICE],[true])],[
1435 AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_BROADVOICE],[false])])
1436
1437 PKG_CHECK_MODULES([ILBC], [ilbc2 >= 0.0.1],[
1438 AM_CONDITIONAL([HAVE_ILBC],[true])],[
1439 PKG_CHECK_MODULES([ILBC], [ilbc >= 0.0.1],[
1440 AM_CONDITIONAL([HAVE_ILBC],[true])],[
1441 AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_ILBC],[false])])])
1442
1443 PKG_CHECK_MODULES([G7221], [g722_1 >= 0.2.0],[
1444 AM_CONDITIONAL([HAVE_G7221],[true])],[
1445 AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_G7221],[false])])
1446
1447 codec2="true"
1448 PKG_CHECK_MODULES([CODEC2], [codec2 >= 0.5],[],[
1449 AC_CHECK_LIB([codec2], [codec2_create],[
1450 AC_CHECK_HEADERS([codec2/codec2.h],[
1451 CODEC2_LIBS="-lcodec2"
1452 CODEC2_CFLAGS=""
1453 ], [
1454 codec2="false"
1455 if module_enabled mod_codec2; then
1456 AC_MSG_ERROR([You must install libcodec2-dev to build mod_codec2])
1457 else
1458 AC_MSG_RESULT([no])
1459 fi
1460 ])
1461 ])
1462 ])
1463
1464 AM_CONDITIONAL([HAVE_CODEC2],[$codec2])
1465
1466
1467 PKG_CHECK_MODULES([OPUS], [opus >= 1.1],[
1468 AM_CONDITIONAL([HAVE_OPUS],[true])],[
1469 AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_OPUS],[false])])
1470
1471 PKG_CHECK_MODULES([SOUNDTOUCH], [soundtouch >= 1.7.0],[
1472 AM_CONDITIONAL([HAVE_SOUNDTOUCH],[true])],[
1473 AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_SOUNDTOUCH],[false])])
1474
1475 flite="true"
1476 PKG_CHECK_MODULES([FLITE], [flite >= 2],[],[
1477 AC_CHECK_LIB([flite], [flite_init],[
1478 AC_CHECK_HEADERS([flite/flite.h],[
1479 FLITE_LIBS="-lflite -lflite_cmu_grapheme_lang -lflite_cmu_grapheme_lex -lflite_cmu_indic_lang -lflite_cmu_indic_lex -lflite_cmulex -lflite_cmu_time_awb -lflite_cmu_us_awb -lflite_cmu_us_kal16 -lflite_cmu_us_kal -lflite_cmu_us_rms -lflite_cmu_us_slt -lflite_usenglish"
1480 FLITE_CFLAGS=""
1481 ], [
1482 flite="false"
1483 if module_enabled mod_flite; then
1484 AC_MSG_ERROR([You must install libflite-dev to build mod_flite])
1485 else
1486 AC_MSG_RESULT([no])
1487 fi
1488 ])
1489 ])
1490 ])
1491
1492 AM_CONDITIONAL([HAVE_FLITE],[$flite])
1493
1494 PKG_CHECK_MODULES([MONGOC], [libmongoc-1.0 >= 1.0.8],[
1495 AM_CONDITIONAL([HAVE_MONGOC],[true])],[
1496 AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_MONGOC],[false])])
1497
1498 PKG_CHECK_MODULES([MEMCACHED], [libmemcached >= 0.31],[
1499 AM_CONDITIONAL([HAVE_MEMCACHED],[true])
1500 MEMCACHED_LIBS="${MEMCACHED_LIBS} -lpthread"
1501 save_LIBS="${LIBS}"
1502 save_CPPFLAGS="${CPPFLAGS}"
1503 LIBS="${MEMCACHED_LIBS}"
1504 CPPFLAGS="${MEMCACHED_CFLAGS}"
1505 AC_CHECK_FUNCS([memcached_server_name memcached_stat_execute])
1506 AC_CHECK_TYPES([memcached_instance_st*],,, [[#include <libmemcached/memcached.h>]])
1507 LIBS="${save_LIBS}"
1508 CPPFLAGS="${save_CPPFLAGS}"
1509 ],[
1510 AC_MSG_RESULT([no])
1511 AM_CONDITIONAL([HAVE_MEMCACHED],[false])
1512 ])
1513
1514 PKG_CHECK_MODULES([V8FS_STATIC], [v8-6.1_static >= 6.1.298],[
1515 AM_CONDITIONAL([HAVE_V8FS],[true])],[
1516 PKG_CHECK_MODULES([V8FS_STATIC], [v8fs_static >= 6.1.298],[
1517 AM_CONDITIONAL([HAVE_V8FS],[true])],[
1518 PKG_CHECK_MODULES([V8FS_STATIC], [v8 >= 6.1.298],[
1519 AM_CONDITIONAL([HAVE_V8FS],[true])],[
1520 if module_enabled mod_v8; then
1521 AC_MSG_ERROR([You need to either install libv8-6.1-dev (>= 6.1.298), libv8fs-dev (>= 6.1.298) or disable mod_v8 in modules.conf])
1522 else
1523 AC_MSG_RESULT([no])
1524 AM_CONDITIONAL([HAVE_V8FS],[false])
1525 fi
1526 ])
1527 ])
1528 ])
1529
1530 PKG_CHECK_MODULES([KS], [libks >= 1.1.0],[
1531 AM_CONDITIONAL([HAVE_KS],[true])],[
1532 if module_enabled mod_verto; then
1533 AC_MSG_ERROR([You need to either install libks or disable mod_verto in modules.conf])
1534 else
1535 if module_enabled mod_signalwire; then
1536 AC_MSG_ERROR([You need to either install libks or disable mod_signalwire in modules.conf])
1537 else
1538 AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_KS],[false])
1539 fi
1540 fi
1541 ])
1542
1543 PKG_CHECK_MODULES([SIGNALWIRE_CLIENT], [signalwire_client >= 1.0.0],[
1544 AM_CONDITIONAL([HAVE_SIGNALWIRE_CLIENT],[true])],[
1545 if module_enabled mod_signalwire; then
1546 AC_MSG_ERROR([You need to either install signalwire-client-c or disable mod_signalwire in modules.conf])
1547 else
1548 AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_SIGNALWIRE_CLIENT],[false])
1549 fi
1550 ])
1551
1552 PKG_CHECK_MODULES([AMQP], [librabbitmq >= 0.5.2],[
1553 AM_CONDITIONAL([HAVE_AMQP],[true])],[
1554 AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_AMQP],[false])])
1555
1556 PKG_CHECK_MODULES([H2O], [libh2o-evloop >= 0.11.0],[
1557 AM_CONDITIONAL([HAVE_H2O],[true])],[
1558 AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_H2O],[false])])
1559
1560 PKG_CHECK_MODULES([BROTLIENC], [libbrotlienc >= 0.1.0],[
1561 AM_CONDITIONAL([HAVE_BROTLIENC],[true])],[
1562 AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_BROTLIENC],[false])])
1563
1564 PKG_CHECK_MODULES([BROTLIDEC], [libbrotlidec >= 0.1.0],[
1565 AM_CONDITIONAL([HAVE_BROTLIDEC],[true])],[
1566 AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_BROTLIDEC],[false])])
1567
1568 PKG_CHECK_MODULES([TAP], [tap >= 0.1.0],[
1569 AM_CONDITIONAL([HAVE_TAP],[true])],[
1570 AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_TAP],[false])])
1571
1572 PKG_CHECK_MODULES([SMPP34], [libsmpp34 >= 1.10],[
1573 AM_CONDITIONAL([HAVE_SMPP34],[true])],[
1574 AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_SMPP34],[false])])
1575
1576 PKG_CHECK_MODULES([HIREDIS], [hiredis >= 0.10.0],[
1577 AM_CONDITIONAL([HAVE_HIREDIS],[true])],[
1578 AC_MSG_RESULT([no]); AM_CONDITIONAL([HAVE_HIREDIS],[false])])
1579
1580 AC_ARG_ENABLE(core-libedit-support,
1581 [AS_HELP_STRING([--disable-core-libedit-support], [Compile without libedit Support])])
1582
1583 AS_IF([test "x$enable_core_libedit_support" != "xno"],[
1584 PKG_CHECK_MODULES([LIBEDIT], [libedit >= 2.11],,[
1585 AC_MSG_RESULT([no])
1586 AC_CHECK_LIB([edit], [el_line], [LIBEDIT_LIBS=-ledit])
1587 AC_CHECK_LIB([edit], [el_cursor], [ac_cv_has_el_cursor=yes])
1588 AC_CHECK_HEADER([histedit.h], [], [unset LIBEDIT_LIBS])
1589 AS_IF([test "x$LIBEDIT_LIBS" = "x"], [
1590 AC_MSG_ERROR([You need to either install libedit-dev (>= 2.11) or configure with --disable-core-libedit-support])
1591 ])])])
1592
1593 AC_ARG_ENABLE(systemd,
1594 [AS_HELP_STRING([--enable-systemd], [Compile with systemd notify support])])
1595
1596 AS_IF([test "x$enable_systemd" = "xyes"],[
1597 PKG_CHECK_MODULES([SYSTEMD], [libsystemd >= 219], [
1598 AC_DEFINE([HAVE_SYSTEMD], [1], [Define to 1 if systemd is available])])
1599 ])
1600
1601 AC_SUBST(SYSTEMD_LIBS)
1602
1603
1604 dnl ---------------------------------------------------------------------------
1605 dnl - OpenLDAP SDK
1606 dnl ---------------------------------------------------------------------------
1607
1608 AC_CHECK_LIB(ldap, ldap_search, with_ldap=yes)
1609 dnl Check for other libraries we need to link with to get the main routines.
1610 test "$with_ldap" != "yes" && { AC_CHECK_LIB(ldap, ldap_open, [with_ldap=yes with_ldap_lber=yes], , -llber) }
1611 test "$with_ldap" != "yes" && { AC_CHECK_LIB(ldap, ldap_open, [with_ldap=yes with_ldap_lber=yes with_ldap_krb=yes], , -llber -lkrb) }
1612 test "$with_ldap" != "yes" && { AC_CHECK_LIB(ldap, ldap_open, [with_ldap=yes with_ldap_lber=yes with_ldap_krb=yes with_ldap_des=yes], , -llber -lkrb -ldes) }
1613 test "$with_ldap_lber" != "yes" && { AC_CHECK_LIB(lber, ber_pvt_opt_on, with_ldap_lber=yes) }
1614
1615 if test "$with_ldap" = "yes"; then
1616 if test "$with_ldap_des" = "yes" ; then
1617 OPENLDAP_LIBS="${OPENLDAP_LIBS} -ldes"
1618 fi
1619 if test "$with_ldap_krb" = "yes" ; then
1620 OPENLDAP_LIBS="${OPENLDAP_LIBS} -lkrb"
1621 fi
1622 if test "$with_ldap_lber" = "yes" ; then
1623 OPENLDAP_LIBS="${OPENLDAP_LIBS} -llber"
1624 fi
1625 OPENLDAP_LIBS="${OPENLDAP_LIBS} -lldap"
1626 fi
1627
1628 AM_CONDITIONAL([HAVE_LDAP],[test "x$with_ldap" = "xyes"])
1629
1630 AC_SUBST(OPENLDAP_LIBS)
1631
1632 AS_IF([test "x$enable_core_libedit_support" != "xno"], [
1633 # If making changes here, don't forget to run autoheader and
1634 # update libs/esl/src/include/esl_config_auto.h.in manually.
1635 AC_DEFINE([HAVE_LIBEDIT], [1], [Define to 1 if you have libedit is available])
1636 if test x$ac_cv_has_el_cursor = xyes; then
1637 AC_DEFINE([HAVE_EL_CURSOR], [1], [Define to 1 if you have libedit el_cursor support])
1638 fi
1639 save_LIBS="${LIBS}"
1640 save_CPPFLAGS="${CPPFLAGS}"
1641 LIBS="${LIBEDIT_LIBS}"
1642 CPPFLAGS="${LIBEDIT_CFLAGS}"
1643 AC_CHECK_DECLS([EL_PROMPT_ESC, EL_REFRESH],,, [[#include <histedit.h>]])
1644 AC_CHECK_FUNCS([el_wset])
1645 LIBS="${save_LIBS}"
1646 CPPFLAGS="${save_CPPFLAGS}"
1647 ])
1648
1649 SAC_OPENSSL
1650
1651 if test x$HAVE_OPENSSL = x1; then
1652 openssl_CFLAGS="$openssl_CFLAGS -DHAVE_OPENSSL";
1653 APR_ADDTO(SWITCH_AM_CFLAGS, -DHAVE_OPENSSL)
1654 AC_CHECK_LIB(ssl, SSL_CTX_set_tlsext_use_srtp, AC_DEFINE_UNQUOTED(HAVE_OPENSSL_DTLS_SRTP, 1, HAVE_OPENSSL_DTLS_SRTP), AC_MSG_ERROR([OpenSSL >= 1.0.1e and associated developement headers required]))
1655 AC_CHECK_LIB(ssl, DTLSv1_method, AC_DEFINE_UNQUOTED(HAVE_OPENSSL_DTLS, 1, HAVE_OPENSSL_DTLS), AC_MSG_ERROR([OpenSSL >= 1.0.1e and associaed developement headers required]))
1656 AC_CHECK_LIB(ssl, DTLSv1_2_method, AC_DEFINE_UNQUOTED(HAVE_OPENSSL_DTLSv1_2_method, 1, [DTLS version 1.2 is available]))
1657 else
1658 AC_MSG_ERROR([OpenSSL >= 1.0.1e and associated developement headers required])
1659 fi
1660
1661 AX_CHECK_JAVA
1662
1663 AM_CONDITIONAL([HAVE_ODBC],[test "x$enable_core_odbc_support" != "xno"])
1664 AM_CONDITIONAL([HAVE_MYSQL],[test "$found_mysql" = "yes"])
1665
1666 #
1667 # perl checks
1668 #
1669
1670 AC_CHECK_PROG(PERL,perl,[ac_cv_have_perl=yes],[ac_cv_have_perl=no])
1671
1672 # -a "x$ac_cv_have_EXTERN_h" != "xno"
1673
1674 if test "x$ac_cv_have_perl" != "xno"; then
1675 PERL=perl
1676 PERL_SITEDIR="`$PERL -MConfig -e 'print $Config{archlib}'`"
1677 PERL_LIBDIR="-L`$PERL -MConfig -e 'print $Config{archlib}'`/CORE"
1678 PERL_LIBS="`$PERL -MConfig -e 'print $Config{libs}'`"
1679 PERL_CFLAGS="-w -DMULTIPLICITY `$PERL -MExtUtils::Embed -e ccopts | sed -e 's|-arch x86_64 -arch i386||'` -DEMBED_PERL"
1680 PERL_LDFLAGS="`$PERL -MExtUtils::Embed -e ldopts| sed -e 's|-arch x86_64 -arch i386||'`"
1681 PERL_INC="`$PERL -MExtUtils::Embed -e perl_inc`"
1682
1683 save_CFLAGS="$CFLAGS"
1684 CFLAGS="$PERL_CFLAGS"
1685 AC_CHECK_HEADER([EXTERN.h], [ac_cv_have_EXTERN_h=yes], [ac_cv_have_EXTERN_h=no], [[#include <EXTERN.h>
1686 # include <perl.h>]])
1687 CFLAGS="$save_CFLAGS"
1688
1689 save_LDFLAGS="$LDFLAGS"
1690 LDFLAGS="$PERL_LDFLAGS"
1691 AC_CHECK_LIB([perl], [perl_alloc], ac_cv_use_libperl=yes, ac_cv_use_libperl=no)
1692 LDFLAGS="$save_LDFLAGS"
1693
1694 AC_SUBST(PERL_SITEDIR)
1695 AC_SUBST(PERL_LIBDIR)
1696 AC_SUBST(PERL_LIBS)
1697 AC_SUBST(PERL_CFLAGS)
1698 AC_SUBST(PERL_LDFLAGS)
1699 AC_SUBST(PERL_INC)
1700 fi
1701
1702 AM_CONDITIONAL([HAVE_PERL],[test "x$ac_cv_have_perl" != "xno" -a "x$ac_cv_have_EXTERN_h" != "xno" -a "x$ac_cv_use_libperl" != "xno"])
1703
1704 #
1705 # php checks
1706 #
1707
1708 AC_CHECK_PROG(PHP,php,[ac_cv_have_php=yes],[ac_cv_have_php=no])
1709 AC_CHECK_PROG(PHP_CONFIG,php-config,[ac_cv_have_php_config=yes],[ac_cv_have_php_config=no])
1710 AM_CONDITIONAL([HAVE_PHP],[test "x$ac_cv_have_php" != "xno" -a "x$ac_cv_have_php_config" != "xno"])
1711
1712 if test "x$ac_cv_have_php" != "xno" -a "x$ac_cv_have_php_config" != "xno"; then
1713 PHP=php
1714 PHP_CONFIG=php-config
1715 PHP_LDFLAGS="`$PHP_CONFIG --ldflags`"
1716 PHP_LIBS="`$PHP_CONFIG --libs | sed -r 's/ ?-l(bz2|pcre2-8|xml2|gssapi_krb5|krb5|k5crypto|com_err|history|z|readline|gmp|ssl|crypto|argon2|sodium)//g'`"
1717 PHP_EXT_DIR="`$PHP_CONFIG --extension-dir`"
1718 PHP_INC_DIR="`$PHP -r 'echo ini_get("include_path");' | cut -d: -f2`"
1719 PHP_INI_DIR="`$PHP_CONFIG --configure-options | tr " " "\n" | grep -- --with-config-file-scan-dir | cut -f2 -d=`"
1720 PHP_CFLAGS="`$PHP_CONFIG --includes`"
1721 AC_SUBST(PHP_LDFLAGS)
1722 AC_SUBST(PHP_LIBS)
1723 AC_SUBST(PHP_EXT_DIR)
1724 AC_SUBST(PHP_INC_DIR)
1725 AC_SUBST(PHP_INI_DIR)
1726 AC_SUBST(PHP_CFLAGS)
1727 fi
1728
1729 #
1730 # Python checks for mod_python (scroll down to see python3 checks for mod_python3)
1731 #
1732 AC_ARG_WITH(
1733 [python],
1734 [AS_HELP_STRING([--with-python], [Use system provided version of python (default: try)])],
1735 [with_python="$withval"],
1736 [with_python="try"]
1737 )
1738
1739 if test "$with_python" != "no"
1740 then
1741 save_CFLAGS="$CFLAGS"
1742 save_LIBS="$LIBS"
1743
1744 if test "$with_python" != "yes" -a "$with_python" != "try" ; then
1745 AC_MSG_CHECKING([for python])
1746 if test ! -x "$with_python" ; then
1747 AC_MSG_ERROR([Specified python does not exist or is not executable: $with_python])
1748 fi
1749 AC_MSG_RESULT([$with_python])
1750 AC_SUBST([PYTHON], ["$with_python"])
1751 else
1752 AC_PATH_PROG([PYTHON], ["python"], ["no"], ["$PATH:/usr/bin:/usr/local/bin"])
1753 fi
1754
1755 if test "$PYTHON" != "no" ; then
1756 AC_MSG_CHECKING([python version])
1757 PYTHON_VER="`$PYTHON -V 2>&1 | cut -d' ' -f2`"
1758
1759 if test -z "$PYTHON_VER" ; then
1760 AC_MSG_ERROR([Unable to detect python version])
1761 fi
1762 AC_MSG_RESULT([$PYTHON_VER])
1763
1764 AC_MSG_CHECKING([for python distutils])
1765 python_result="`$PYTHON -c 'import distutils;' 2>&1`"
1766 if test -z "$python_result" ; then
1767 python_has_distutils="yes"
1768 else
1769 python_has_distutils="no"
1770 fi
1771 AC_MSG_RESULT([$python_has_distutils])
1772
1773 if test "$python_has_distutils" != "no" ; then
1774 AC_MSG_CHECKING([location of site-packages])
1775
1776 PYTHON_SITE_DIR="`$PYTHON -c 'from distutils import sysconfig; print(sysconfig.get_python_lib(0));'`"
1777
1778 if test -z "$PYTHON_SITE_DIR" ; then
1779 AC_MSG_ERROR([Unable to detect python site-packages path])
1780 elif test ! -d "$PYTHON_SITE_DIR" ; then
1781 AC_MSG_ERROR([Path $PYTHON_SITE_DIR returned by python does not exist!])
1782 fi
1783 AC_MSG_RESULT([$PYTHON_SITE_DIR])
1784 AC_SUBST([PYTHON_SITE_DIR], [$PYTHON_SITE_DIR])
1785
1786 #
1787 # python distutils found, get settings from python directly
1788 #
1789 PYTHON_CFLAGS="`$PYTHON -c 'from distutils import sysconfig; flags = [[\"-I\" + sysconfig.get_python_inc(0), \"-I\" + sysconfig.get_python_inc(1), \" \".join(sysconfig.get_config_var(\"CFLAGS\").split())]]; print(\" \".join(flags));' | sed -e 's/-arch i386//g;s/-arch x86_64//g'`"
1790 PYTHON_LDFLAGS="`$PYTHON -c 'from distutils import sysconfig; libs = sysconfig.get_config_var(\"LIBS\").split() + sysconfig.get_config_var(\"SYSLIBS\").split(); libs.append(\"-lpython\"+sysconfig.get_config_var(\"VERSION\")); print(\" \".join(libs));'`"
1791 PYTHON_LIB="`$PYTHON -c 'from distutils import sysconfig; print(\"python\" + sysconfig.get_config_var(\"VERSION\"));'`"
1792 PYTHON_LIBDIR="`$PYTHON -c 'from distutils import sysconfig; print(sysconfig.get_config_var(\"LIBDIR\"));'`"
1793
1794 # handle python being installed into /usr/local
1795 AC_MSG_CHECKING([python libdir])
1796 if test -z "`echo $PYTHON_LIBDIR | grep "/usr/lib"`" ; then
1797 PYTHON_LDFLAGS="-L$PYTHON_LIBDIR $PYTHON_LDFLAGS"
1798 LIBS="-L$PYTHON_LIBDIR $LIBS"
1799 fi
1800 AC_MSG_RESULT([$PYTHON_LIBDIR])
1801
1802 # check libpython
1803 AC_CHECK_LIB([$PYTHON_LIB], [main], [has_libpython="yes"], [has_libpython="no"])
1804
1805 if test "$has_libpython" = "no" ; then
1806 AS_IF([test "$with_python" = "try"],
1807 [AC_MSG_WARN([$PYTHON_LIB is unusable])],
1808 [AC_MSG_ERROR([$PYTHON_LIB is unusable])]
1809 )
1810 fi
1811
1812 # check whether system libpython is usable and has threads support
1813 CFLAGS="$PYTHON_CFLAGS"
1814 LIBS="$PYTHON_LDFLAGS"
1815 AC_CHECK_FUNC([PyThread_init_thread], [python_has_threads="yes"], [python_has_threads="no"])
1816
1817 if test "$python_has_threads" = "no"; then
1818 AS_IF([test "$with_python" = "try"],
1819 [AC_MSG_WARN([Your python lacks threads support, can not build mod_python])],
1820 [AC_MSG_ERROR([Your python lacks threads support, can not build mod_python])]
1821 )
1822 else
1823 AC_MSG_NOTICE([Your python seems OK, do not forget to enable mod_python in modules.conf])
1824 AC_SUBST([PYTHON_CFLAGS], [$PYTHON_CFLAGS])
1825 AC_SUBST([PYTHON_LDFLAGS], [$PYTHON_LDFLAGS])
1826 fi
1827 else
1828 AS_IF([test "$with_python" = "try"],
1829 [AC_MSG_WARN([Could not find or use python distutils module: $python_result])],
1830 [AC_MSG_ERROR([Could not find or use python distutils module: $python_result])]
1831 )
1832 fi
1833
1834 LIBS="$save_LIBS"
1835 CFLAGS="$save_CFLAGS"
1836
1837 unset python_has_threads
1838 unset python_has_distutils
1839 unset python_result
1840 else
1841 AS_IF([test "$with_python" = "try"],
1842 [AC_MSG_WARN([Could not find python, mod_python will not build, use --with-python to specify the location])],
1843 [AC_MSG_ERROR([Could not find python, use --with-python to specify the location])]
1844 )
1845 fi
1846 else
1847 AC_MSG_WARN([python support disabled, building mod_python will fail!])
1848 fi
1849
1850 #
1851 # Python3 checks for mod_python3
1852 #
1853 AC_ARG_WITH(
1854 [python3],
1855 [AS_HELP_STRING([--with-python3], [Use system provided version of python3 (default: try)])],
1856 [with_python3="$withval"],
1857 [with_python3="try"]
1858 )
1859
1860 if test "$with_python3" != "no"
1861 then
1862 save_CFLAGS="$CFLAGS"
1863 save_LIBS="$LIBS"
1864
1865 if test "$with_python3" != "yes" -a "$with_python3" != "try" ; then
1866 AC_MSG_CHECKING([for python3])
1867 if test ! -x "$with_python3" ; then
1868 AC_MSG_ERROR([Specified python3 does not exist or is not executable: $with_python3])
1869 fi
1870 AC_MSG_RESULT([$with_python3])
1871 AC_SUBST([PYTHON3], ["$with_python3"])
1872 else
1873 AC_PATH_PROG([PYTHON3], ["python3"], ["no"], ["$PATH:/usr/bin:/usr/local/bin"])
1874 fi
1875
1876 if test "$PYTHON3" != "no" ; then
1877 AC_MSG_CHECKING([python3 version])
1878 PYTHON3_VER="`$PYTHON3 -V 2>&1 | cut -d' ' -f2`"
1879
1880 if test -z "$PYTHON3_VER" ; then
1881 AC_MSG_ERROR([Unable to detect python3 version])
1882 fi
1883 AC_MSG_RESULT([$PYTHON3_VER])
1884
1885 AC_MSG_CHECKING([for python3 distutils])
1886 python3_result="`$PYTHON3 -c 'import distutils;' 2>&1`"
1887 if test -z "$python3_result" ; then
1888 python3_has_distutils="yes"
1889 else
1890 python3_has_distutils="no"
1891 fi
1892 AC_MSG_RESULT([$python3_has_distutils])
1893
1894 if test "$python3_has_distutils" != "no" ; then
1895 AC_MSG_CHECKING([location of python3 site-packages])
1896
1897 PYTHON3_SITE_DIR="`$PYTHON3 -c 'from distutils import sysconfig; print(sysconfig.get_python_lib(0));'`"
1898
1899 if test -z "$PYTHON3_SITE_DIR" ; then
1900 AC_MSG_ERROR([Unable to detect python3 site-packages path])
1901 elif test ! -d "$PYTHON3_SITE_DIR" ; then
1902 AC_MSG_ERROR([Path $PYTHON3_SITE_DIR returned by python3 does not exist!])
1903 fi
1904 AC_MSG_RESULT([$PYTHON3_SITE_DIR])
1905 AC_SUBST([PYTHON3_SITE_DIR], [$PYTHON3_SITE_DIR])
1906
1907 #
1908 # python3 distutils found, get settings from python3 directly
1909 #
1910 PYTHON3_CFLAGS="`$PYTHON3 -c 'from distutils import sysconfig; flags = [[\"-I\" + sysconfig.get_python_inc(0), \"-I\" + sysconfig.get_python_inc(1), \" \".join(sysconfig.get_config_var(\"CFLAGS\").split())]]; print(\" \".join(flags));' | sed -e 's/-arch i386//g;s/-arch x86_64//g'`"
1911 PYTHON3_LDFLAGS="`$PYTHON3 -c 'from distutils import sysconfig; ldver = sysconfig.get_config_var(\"LDVERSION\"); libs = sysconfig.get_config_var(\"LIBS\").split() + sysconfig.get_config_var(\"SYSLIBS\").split(); libs.append(\"-lpython\" + [[ldver,sysconfig.get_config_var(\"VERSION\")]][[ldver==None]]); print(\" \".join(libs));'`"
1912 PYTHON3_LIB="`$PYTHON3 -c 'from distutils import sysconfig; ldver = sysconfig.get_config_var(\"LDVERSION\"); print(\"python\" + [[ldver,sysconfig.get_config_var(\"VERSION\")]][[ldver==None]]);'`"
1913 PYTHON3_LIBDIR="`$PYTHON3 -c 'from distutils import sysconfig; print(sysconfig.get_config_var(\"LIBDIR\"));'`"
1914
1915 # handle python3 being installed into /usr/local
1916 AC_MSG_CHECKING([python3 libdir])
1917 if test -z "`echo $PYTHON3_LIBDIR | grep "/usr/lib"`" ; then
1918 PYTHON3_LDFLAGS="-L$PYTHON3_LIBDIR $PYTHON3_LDFLAGS"
1919 LIBS="-L$PYTHON3_LIBDIR $LIBS"
1920 fi
1921 AC_MSG_RESULT([$PYTHON3_LIBDIR])
1922
1923 # check libpython3
1924 AC_CHECK_LIB([$PYTHON3_LIB], [main], [has_libpython3="yes"], [has_libpython3="no"])
1925
1926 if test "$has_libpython3" = "no" ; then
1927 AS_IF([test "$with_python3" = "try"],
1928 [AC_MSG_WARN([$PYTHON3_LIB is unusable])],
1929 [AC_MSG_ERROR([$PYTHON3_LIB is unusable])]
1930 )
1931 fi
1932
1933 # check whether system libpython3 is usable and has threads support
1934 CFLAGS="$PYTHON3_CFLAGS"
1935 LIBS="$PYTHON3_LDFLAGS"
1936 AC_CHECK_FUNC([PyThread_init_thread], [python3_has_threads="yes"], [python3_has_threads="no"])
1937
1938 if test "$python3_has_threads" = "no"; then
1939 AS_IF([test "$with_python3" = "try"],
1940 [AC_MSG_WARN([Your python3 lacks threads support, can not build mod_python3])],
1941 [AC_MSG_ERROR([Your python3 lacks threads support, can not build mod_python3])]
1942 )
1943 else
1944 AC_MSG_NOTICE([Your python3 seems OK, do not forget to enable mod_python3 in modules.conf])
1945 AC_SUBST([PYTHON3_CFLAGS], [$PYTHON3_CFLAGS])
1946 AC_SUBST([PYTHON3_LDFLAGS], [$PYTHON3_LDFLAGS])
1947 fi
1948 else
1949 AS_IF([test "$with_python3" = "try"],
1950 [AC_MSG_WARN([Could not find or use python3 distutils module: $python3_result])],
1951 [AC_MSG_ERROR([Could not find or use python3 distutils module: $python3_result])]
1952 )
1953 fi
1954
1955 LIBS="$save_LIBS"
1956 CFLAGS="$save_CFLAGS"
1957
1958 unset python3_has_threads
1959 unset python3_has_distutils
1960 unset python3_result
1961 else
1962 AS_IF([test "$with_python3" = "try"],
1963 [AC_MSG_WARN([Could not find python3, mod_python3 will not build, use --with-python3 to specify the location])],
1964 [AC_MSG_ERROR([Could not find python3, use --with-python3 to specify the location])]
1965 )
1966 fi
1967 else
1968 AC_MSG_WARN([python3 support disabled, building mod_python3 will fail!])
1969 fi
1970
1971 # pcap lib for unit-testing
1972 AC_MSG_CHECKING(libpcap)
1973 AC_CHECK_PROG(HAVE_PCAP_CONFIG,pcap-config,[true],[false])
1974 if test x"$HAVE_PCAP_CONFIG" = x"true"; then
1975 AC_MSG_RESULT(yes)
1976 PCAP_CONFIG=pcap-config
1977 PCAP_LIBS="`$PCAP_CONFIG --libs`"
1978 PCAP_CFLAGS="`$PCAP_CONFIG --cflags`"
1979 AM_CONDITIONAL([HAVE_PCAP], [true])
1980 else
1981 AC_MSG_RESULT(no)
1982 AM_CONDITIONAL([HAVE_PCAP], [false])
1983 fi
1984 AC_SUBST([PCAP_CFLAGS])
1985 AC_SUBST([PCAP_LIBS])
1986
1987 #
1988 # SNMP checks for mod_snmp
1989 #
1990 AC_PATH_PROG([NET_SNMP_CONFIG], [net-snmp-config], [no])
1991 if test "$NET_SNMP_CONFIG" != "no"; then
1992 AC_MSG_CHECKING([for Net-SNMP libraries via net-snmp-config])
1993 SNMP_LIBS="`$NET_SNMP_CONFIG --base-agent-libs`"
1994 else
1995 # net-snmp-config not in path, fallback to sensible defaults
1996 SNMP_LIBS="-lnetsnmpmibs -lnetsnmpagent -lnetsnmp"
1997 fi
1998
1999 # fix linking error on Solaris patched Net-SNMP
2000 AS_CASE([$host], [*-solaris2*], [AC_CHECK_LIB([dladm], [dladm_open], [SNMP_LIBS="$SNMP_LIBS -ldladm"])])
2001 AC_SUBST(SNMP_LIBS)
2002
2003 CHECK_ERLANG
2004
2005 # Enable clang address sanitizer bit build
2006 AC_ARG_ENABLE(address_sanitizer,
2007 [AC_HELP_STRING([--enable-address-sanitizer],[build with address sanitizer])],
2008 [enable_address_sanitizer="$enable_address_sanitizer"],
2009 [enable_address_sanitizer="no"])
2010
2011 if test "${enable_address_sanitizer}" = "yes"; then
2012 APR_ADDTO(CFLAGS, -fsanitize=address -fno-omit-frame-pointer -fstack-protector-strong)
2013 APR_ADDTO(CXXFLAGS, -fsanitize=address -fno-omit-frame-pointer -fstack-protector-strong)
2014 APR_ADDTO(LDFLAGS, -fsanitize=address)
2015 fi
2016
2017 # Enable HEAP profiler (requires libgoogle-perftools-dev package)
2018 AC_ARG_ENABLE(heap_profiler,
2019 [AC_HELP_STRING([--enable-heap-profiler],[build with google heap profiler])],
2020 [enable_heap_profiler="$enable_heap_profiler"],
2021 [enable_heap_profiler="no"])
2022
2023 # Enable CPU profiler (requires libgoogle-perftools-dev package)
2024 AC_ARG_ENABLE(cpu_profiler,
2025 [AC_HELP_STRING([--enable-cpu-profiler],[build with google cpu profiler])],
2026 [enable_cpu_profiler="$enable_cpu_profiler"],
2027 [enable_cpu_profiler="no"])
2028
2029 PKG_CHECK_MODULES([TCMALLOC], [libtcmalloc], [have_tcmalloc=yes], [have_tcmalloc=no])
2030
2031 if test "${enable_heap_profiler}" = "yes" || test "${enable_cpu_profiler}" = "yes"; then
2032 if test "x$have_tcmalloc" != "xyes" ; then
2033 AC_MSG_ERROR([You must install libgoogle-perftools-dev in order to use heap or cpu profiler])
2034 fi
2035 fi
2036
2037 # WARNING: When both enabled you can NOT link them statically and MUST use the special library
2038 if test "${enable_heap_profiler}" = "yes" && test "${enable_cpu_profiler}" = "yes"; then
2039 APR_ADDTO(CFLAGS, -ltcmalloc_and_profiler)
2040 APR_ADDTO(CXXFLAGS, -ltcmalloc_and_profiler)
2041 APR_ADDTO(LDFLAGS, -ltcmalloc_and_profiler)
2042 else
2043 if test "${enable_heap_profiler}" = "yes"; then
2044 APR_ADDTO(CFLAGS, -ltcmalloc)
2045 APR_ADDTO(CXXFLAGS, -ltcmalloc)
2046 APR_ADDTO(LDFLAGS, -ltcmalloc)
2047 fi
2048
2049 if test "${enable_cpu_profiler}" = "yes"; then
2050 APR_ADDTO(CFLAGS, -lprofiler)
2051 APR_ADDTO(CXXFLAGS, -lprofiler)
2052 APR_ADDTO(LDFLAGS, -lprofiler)
2053 fi
2054 fi
2055
2056 # Enable fake dlclose
2057 AC_ARG_ENABLE(fake_dlclose,
2058 [AC_HELP_STRING([--enable-fake-dlclose],[Do not unload dynamic libraries])],
2059 [enable_fake_dlclose="$enable_fake_dlclose"],
2060 [enable_fake_dlclose="no"])
2061
2062 if test "${enable_fake_dlclose}" = "yes"; then
2063 APR_ADDTO(SWITCH_AM_CFLAGS, -DHAVE_FAKE_DLCLOSE)
2064 fi
2065
2066 AC_ARG_ENABLE(,
2067 [AC_HELP_STRING([--enable-pool-sanitizer],[build with sanitizer friendly pool behavior])],
2068 [enable_pool_sanitizer="$enable_pool_sanitizer"],
2069 [enable_pool_sanitizer="no"])
2070
2071 if test "${enable_pool_sanitizer}" = "yes"; then
2072 APR_ADDTO(CFLAGS, -DDESTROY_POOLS)
2073 ac_configure_args="$ac_configure_args --enable-pool-debug=yes"
2074 fi
2075
2076 # we never use this, and hard setting it will make cross compile work better
2077 ac_cv_file_dbd_apr_dbd_mysql_c=no
2078
2079 AC_CONFIG_FILES([Makefile
2080 build/Makefile
2081 tests/unit/Makefile
2082 src/Makefile
2083 src/mod/Makefile
2084 src/mod/applications/mod_abstraction/Makefile
2085 src/mod/applications/mod_avmd/Makefile
2086 src/mod/applications/mod_bert/Makefile
2087 src/mod/applications/mod_blacklist/Makefile
2088 src/mod/applications/mod_callcenter/Makefile
2089 src/mod/applications/mod_cidlookup/Makefile
2090 src/mod/applications/mod_cluechoo/Makefile
2091 src/mod/applications/mod_commands/Makefile
2092 src/mod/applications/mod_conference/Makefile
2093 src/mod/applications/mod_curl/Makefile
2094 src/mod/applications/mod_cv/Makefile
2095 src/mod/applications/mod_db/Makefile
2096 src/mod/applications/mod_directory/Makefile
2097 src/mod/applications/mod_distributor/Makefile
2098 src/mod/applications/mod_dptools/Makefile
2099 src/mod/applications/mod_easyroute/Makefile
2100 src/mod/applications/mod_enum/Makefile
2101 src/mod/applications/mod_esf/Makefile
2102 src/mod/applications/mod_esl/Makefile
2103 src/mod/applications/mod_expr/Makefile
2104 src/mod/applications/mod_fifo/Makefile
2105 src/mod/applications/mod_fsk/Makefile
2106 src/mod/applications/mod_fsv/Makefile
2107 src/mod/applications/mod_hash/Makefile
2108 src/mod/applications/mod_hiredis/Makefile
2109 src/mod/applications/mod_httapi/Makefile
2110 src/mod/applications/mod_http_cache/Makefile
2111 src/mod/applications/mod_ladspa/Makefile
2112 src/mod/applications/mod_lcr/Makefile
2113 src/mod/applications/mod_limit/Makefile
2114 src/mod/applications/mod_memcache/Makefile
2115 src/mod/applications/mod_mongo/Makefile
2116 src/mod/applications/mod_mp4/Makefile
2117 src/mod/applications/mod_mp4v2/Makefile
2118 src/mod/applications/mod_nibblebill/Makefile
2119 src/mod/applications/mod_oreka/Makefile
2120 src/mod/applications/mod_osp/Makefile
2121 src/mod/applications/mod_prefix/Makefile
2122 src/mod/applications/mod_rad_auth/Makefile
2123 src/mod/applications/mod_random/Makefile
2124 src/mod/applications/mod_redis/Makefile
2125 src/mod/applications/mod_rss/Makefile
2126 src/mod/applications/mod_skel/Makefile
2127 src/mod/applications/mod_signalwire/Makefile
2128 src/mod/applications/mod_sms/Makefile
2129 src/mod/applications/mod_sms_flowroute/Makefile
2130 src/mod/applications/mod_snapshot/Makefile
2131 src/mod/applications/mod_snom/Makefile
2132 src/mod/applications/mod_sonar/Makefile
2133 src/mod/applications/mod_soundtouch/Makefile
2134 src/mod/applications/mod_spandsp/Makefile
2135 src/mod/applications/mod_spy/Makefile
2136 src/mod/applications/mod_stress/Makefile
2137 src/mod/applications/mod_test/Makefile
2138 src/mod/applications/mod_translate/Makefile
2139 src/mod/applications/mod_valet_parking/Makefile
2140 src/mod/applications/mod_vmd/Makefile
2141 src/mod/applications/mod_voicemail/Makefile
2142 src/mod/applications/mod_voicemail_ivr/Makefile
2143 src/mod/asr_tts/mod_cepstral/Makefile
2144 src/mod/asr_tts/mod_flite/Makefile
2145 src/mod/asr_tts/mod_pocketsphinx/Makefile
2146 src/mod/asr_tts/mod_tts_commandline/Makefile
2147 src/mod/asr_tts/mod_unimrcp/Makefile
2148 src/mod/codecs/mod_amr/Makefile
2149 src/mod/codecs/mod_amrwb/Makefile
2150 src/mod/codecs/mod_b64/Makefile
2151 src/mod/codecs/mod_bv/Makefile
2152 src/mod/codecs/mod_clearmode/Makefile
2153 src/mod/codecs/mod_codec2/Makefile
2154 src/mod/codecs/mod_com_g729/Makefile
2155 src/mod/codecs/mod_dahdi_codec/Makefile
2156 src/mod/codecs/mod_g723_1/Makefile
2157 src/mod/codecs/mod_g729/Makefile
2158 src/mod/codecs/mod_h26x/Makefile
2159 src/mod/codecs/mod_ilbc/Makefile
2160 src/mod/codecs/mod_isac/Makefile
2161 src/mod/codecs/mod_mp4v/Makefile
2162 src/mod/codecs/mod_opus/Makefile
2163 src/mod/codecs/mod_openh264/Makefile
2164 src/mod/codecs/mod_sangoma_codec/Makefile
2165 src/mod/codecs/mod_silk/Makefile
2166 src/mod/codecs/mod_siren/Makefile
2167 src/mod/codecs/mod_skel_codec/Makefile
2168 src/mod/codecs/mod_theora/Makefile
2169 src/mod/databases/mod_mariadb/Makefile
2170 src/mod/databases/mod_pgsql/Makefile
2171 src/mod/dialplans/mod_dialplan_asterisk/Makefile
2172 src/mod/dialplans/mod_dialplan_directory/Makefile
2173 src/mod/dialplans/mod_dialplan_xml/Makefile
2174 src/mod/directories/mod_ldap/Makefile
2175 src/mod/endpoints/mod_alsa/Makefile
2176 src/mod/endpoints/mod_gsmopen/Makefile
2177 src/mod/endpoints/mod_h323/Makefile
2178 src/mod/endpoints/mod_khomp/Makefile
2179 src/mod/endpoints/mod_loopback/Makefile
2180 src/mod/endpoints/mod_opal/Makefile
2181 src/mod/endpoints/mod_portaudio/Makefile
2182 src/mod/endpoints/mod_reference/Makefile
2183 src/mod/endpoints/mod_rtmp/Makefile
2184 src/mod/endpoints/mod_skinny/Makefile
2185 src/mod/endpoints/mod_sofia/Makefile
2186 src/mod/endpoints/mod_unicall/Makefile
2187 src/mod/endpoints/mod_rtc/Makefile
2188 src/mod/endpoints/mod_verto/Makefile
2189 src/mod/event_handlers/mod_amqp/Makefile
2190 src/mod/event_handlers/mod_cdr_csv/Makefile
2191 src/mod/event_handlers/mod_cdr_mongodb/Makefile
2192 src/mod/event_handlers/mod_cdr_pg_csv/Makefile
2193 src/mod/event_handlers/mod_cdr_sqlite/Makefile
2194 src/mod/event_handlers/mod_erlang_event/Makefile
2195 src/mod/event_handlers/mod_event_multicast/Makefile
2196 src/mod/event_handlers/mod_event_socket/Makefile
2197 src/mod/event_handlers/mod_event_test/Makefile
2198 src/mod/event_handlers/mod_fail2ban/Makefile
2199 src/mod/event_handlers/mod_format_cdr/Makefile
2200 src/mod/event_handlers/mod_json_cdr/Makefile
2201 src/mod/event_handlers/mod_kazoo/Makefile
2202 src/mod/event_handlers/mod_radius_cdr/Makefile
2203 src/mod/event_handlers/mod_odbc_cdr/Makefile
2204 src/mod/event_handlers/mod_rayo/Makefile
2205 src/mod/event_handlers/mod_smpp/Makefile
2206 src/mod/event_handlers/mod_snmp/Makefile
2207 src/mod/event_handlers/mod_event_zmq/Makefile
2208 src/mod/formats/mod_imagick/Makefile
2209 src/mod/formats/mod_local_stream/Makefile
2210 src/mod/formats/mod_native_file/Makefile
2211 src/mod/formats/mod_opusfile/Makefile
2212 src/mod/formats/mod_png/Makefile
2213 src/mod/formats/mod_shell_stream/Makefile
2214 src/mod/formats/mod_shout/Makefile
2215 src/mod/formats/mod_sndfile/Makefile
2216 src/mod/formats/mod_ssml/Makefile
2217 src/mod/formats/mod_tone_stream/Makefile
2218 src/mod/formats/mod_vlc/Makefile
2219 src/mod/formats/mod_portaudio_stream/Makefile
2220 src/mod/languages/mod_java/Makefile
2221 src/mod/languages/mod_lua/Makefile
2222 src/mod/languages/mod_managed/Makefile
2223 src/mod/languages/mod_perl/Makefile
2224 src/mod/languages/mod_python/Makefile
2225 src/mod/languages/mod_python3/Makefile
2226 src/mod/languages/mod_v8/Makefile
2227 src/mod/languages/mod_yaml/Makefile
2228 src/mod/languages/mod_basic/Makefile
2229 src/mod/loggers/mod_console/Makefile
2230 src/mod/loggers/mod_graylog2/Makefile
2231 src/mod/loggers/mod_logfile/Makefile
2232 src/mod/loggers/mod_syslog/Makefile
2233 src/mod/loggers/mod_raven/Makefile
2234 src/mod/say/mod_say_de/Makefile
2235 src/mod/say/mod_say_en/Makefile
2236 src/mod/say/mod_say_es/Makefile
2237 src/mod/say/mod_say_es_ar/Makefile
2238 src/mod/say/mod_say_fa/Makefile
2239 src/mod/say/mod_say_fr/Makefile
2240 src/mod/say/mod_say_he/Makefile
2241 src/mod/say/mod_say_hr/Makefile
2242 src/mod/say/mod_say_hu/Makefile
2243 src/mod/say/mod_say_it/Makefile
2244 src/mod/say/mod_say_ja/Makefile
2245 src/mod/say/mod_say_nl/Makefile
2246 src/mod/say/mod_say_pl/Makefile
2247 src/mod/say/mod_say_pt/Makefile
2248 src/mod/say/mod_say_ru/Makefile
2249 src/mod/say/mod_say_sv/Makefile
2250 src/mod/say/mod_say_th/Makefile
2251 src/mod/say/mod_say_zh/Makefile
2252 src/mod/timers/mod_posix_timer/Makefile
2253 src/mod/timers/mod_timerfd/Makefile
2254 src/mod/xml_int/mod_xml_cdr/Makefile
2255 src/mod/xml_int/mod_xml_curl/Makefile
2256 src/mod/xml_int/mod_xml_ldap/Makefile
2257 src/mod/xml_int/mod_xml_radius/Makefile
2258 src/mod/xml_int/mod_xml_rpc/Makefile
2259 src/mod/xml_int/mod_xml_scgi/Makefile
2260 src/mod/applications/mod_av/Makefile
2261 src/mod/applications/mod_video_filter/Makefile
2262 src/include/switch_am_config.h
2263 build/getsounds.sh
2264 build/getlib.sh
2265 build/getg729.sh
2266 build/freeswitch.pc
2267 build/standalone_module/freeswitch.pc
2268 build/modmake.rules
2269 libs/esl/Makefile
2270 libs/esl/perl/Makefile
2271 libs/esl/php/Makefile
2272 libs/xmlrpc-c/include/xmlrpc-c/config.h
2273 libs/xmlrpc-c/xmlrpc_config.h
2274 libs/xmlrpc-c/config.mk
2275 libs/xmlrpc-c/srcdir.mk
2276 libs/xmlrpc-c/stamp-h
2277 scripts/gentls_cert])
2278
2279 AM_CONDITIONAL(ISLINUX, [test `uname -s` = Linux])
2280 AM_CONDITIONAL(ISMAC, [test `uname -s` = Darwin])
2281 AM_CONDITIONAL(ISFREEBSD, [test `uname -s` = FreeBSD])
2282 AM_CONDITIONAL(IS64BITLINUX, [test `uname -m` = x86_64])
2283
2284 AM_CONDITIONAL(HAVE_G723_1, [ test -d ${switch_srcdir}/libs/libg723_1 ])
2285 AM_CONDITIONAL(HAVE_G729, [ test -d ${switch_srcdir}/libs/libg729 ])
2286
2287 #some vars to sub into the Makefile.am's
2288 #LIBS+=> core.log || error="yes";if test -n "$(VERBOSE)" -o "$$error" = "yes";then cat core.log;fi;if test "$$error" = "yes";then exit 1;fi
2289 LIBTOOL='$(SHELL) $(switch_builddir)/libtool'
2290 TOUCH_TARGET='if test -f "$@";then touch "$@";fi;'
2291 CONF_MODULES='$$(grep -v "\#" $(switch_builddir)/modules.conf | sed "s/|.*//" | sed -e "s|^.*/||" | sort | uniq )'
2292 CONF_DISABLED_MODULES='$$(grep "\#" $(switch_builddir)/modules.conf | grep -v "\#\#" | sed "s/|.*//" | sed "s/\#/\#\//"| sed -e "s|^.*/||" | sort | uniq )'
2293 OUR_MODS='$$(if test -z "$(MODULES)" ; then tmp_mods="$(CONF_MODULES)"; else tmp_mods="$(MODULES)" ; fi ; mods="$$(for i in $$tmp_mods ; do echo $$i-all ; done )"; echo $$mods )'
2294 OUR_CLEAN_MODS='$$(if test -z "$(MODULES)" ; then tmp_mods="$(CONF_MODULES)"; else tmp_mods="$(MODULES)" ; fi ; mods="$$(for i in $$tmp_mods ; do echo $$i-clean ; done )"; echo $$mods )'
2295 OUR_INSTALL_MODS='$$(if test -z "$(MODULES)" ; then tmp_mods="$(CONF_MODULES)"; else tmp_mods="$(MODULES)" ; fi ; mods="$$(for i in $$tmp_mods ; do echo $$i-install ; done)"; echo $$mods )'
2296 OUR_UNINSTALL_MODS='$$(if test -z "$(MODULES)" ; then tmp_mods="$(CONF_MODULES)"; else tmp_mods="$(MODULES)" ; fi ; mods="$$(for i in $$tmp_mods ; do echo $$i-uninstall ; done)"; echo $$mods )'
2297 OUR_TEST_MODS='$$(if test -z "$(MODULES)" ; then tmp_mods="$(CONF_MODULES)"; else tmp_mods="$(MODULES)" ; fi ; mods="$$(for i in $$tmp_mods ; do echo $$i-print_tests ; done )"; echo $$mods )'
2298 OUR_CHECK_MODS='$$(if test -z "$(MODULES)" ; then tmp_mods="$(CONF_MODULES)"; else tmp_mods="$(MODULES)" ; fi ; mods="$$(for i in $$tmp_mods ; do echo $$i-check ; done )"; echo $$mods )'
2299 OUR_DISABLED_MODS='$$(tmp_mods="$(CONF_DISABLED_MODULES)"; mods="$$(for i in $$tmp_mods ; do echo $$i-all ; done )"; echo $$mods )'
2300 OUR_DISABLED_CLEAN_MODS='$$(tmp_mods="$(CONF_DISABLED_MODULES)"; mods="$$(for i in $$tmp_mods ; do echo $$i-clean ; done )"; echo $$mods )'
2301 OUR_DISABLED_INSTALL_MODS='$$(tmp_mods="$(CONF_DISABLED_MODULES)"; mods="$$(for i in $$tmp_mods ; do echo $$i-install ; done)"; echo $$mods )'
2302 OUR_DISABLED_UNINSTALL_MODS='$$(tmp_mods="$(CONF_DISABLED_MODULES)"; mods="$$(for i in $$tmp_mods ; do echo $$i-uninstall ; done)"; echo $$mods )'
2303
2304 #AM_MAKEFLAGS='"OUR_MODULES=$(OUR_MODS)" "OUR_CLEAN_MODULES=$(OUR_CLEAN_MODS)" "OUR_INSTALL_MODULES=$(OUR_INSTALL_MODS)" "OUR_UNINSTALL_MODULES=$(OUR_UNINSTALL_MODS)" "OUR_DISABLED_MODULES=$(OUR_DISABLED_MODS)" "OUR_DISABLED_CLEAN_MODULES=$(OUR_DISABLED_CLEAN_MODS)" "OUR_DISABLED_INSTALL_MODULES=$(OUR_DISABLED_INSTALL_MODS)" "OUR_DISABLED_UNINSTALL_MODULES=$(OUR_DISABLED_UNINSTALL_MODS)" `test -n "$(VERBOSE)" || echo -s`'
2305 #AM_MAKEFLAGS='`test -n "$(VERBOSE)" || echo -s`'
2306 AC_SUBST(LIBTOOL)
2307 AC_SUBST(TOUCH_TARGET)
2308 AC_SUBST(CONF_DISABLED_MODULES)
2309 AC_SUBST(CONF_MODULES)
2310
2311 AC_SUBST(OUR_MODS)
2312 AC_SUBST(OUR_CLEAN_MODS)
2313 AC_SUBST(OUR_TEST_MODS)
2314 AC_SUBST(OUR_CHECK_MODS)
2315 AC_SUBST(OUR_INSTALL_MODS)
2316 AC_SUBST(OUR_UNINSTALL_MODS)
2317 AC_SUBST(OUR_DISABLED_MODS)
2318 AC_SUBST(OUR_DISABLED_CLEAN_MODS)
2319 AC_SUBST(OUR_DISABLED_INSTALL_MODS)
2320 AC_SUBST(OUR_DISABLED_UNINSTALL_MODS)
2321 AC_SUBST(AM_MAKEFLAGS)
2322
2323 ac_configure_args="$ac_configure_args --with-modinstdir=${modulesdir} CONFIGURE_CFLAGS='$CFLAGS $CPPFLAGS' CONFIGURE_CXXFLAGS='$CXXFLAGS $CPPFLAGS' CONFIGURE_LDFLAGS='$LDFLAGS' "
2324
2325 # --prefix='$prefix' --exec_prefix='$exec_prefix' --libdir='$libdir' --libexecdir='$libexecdir' --bindir='$bindir' --sbindir='$sbindir' \
2326 # --localstatedir='$localstatedir' --datadir='$datadir'"
2327
2328 # Run configure in all the subdirs
2329 AC_CONFIG_SUBDIRS([libs/srtp])
2330 if test "$use_system_apr" != "yes"; then
2331 AC_CONFIG_SUBDIRS([libs/apr])
2332 fi
2333 AC_CONFIG_SUBDIRS([libs/iksemel])
2334 #AC_CONFIG_SUBDIRS([libs/unimrcp])
2335 if test "x${enable_zrtp}" = "xyes"; then
2336 AC_CONFIG_SUBDIRS([libs/libzrtp])
2337 fi
2338
2339 case $host in
2340 *-openbsd*|*-netbsd*)
2341 # libtool won't link static libs against shared ones on NetBSD/OpenBSD unless we tell it not to be stupid
2342 AC_CONFIG_COMMANDS([hacklibtool], [cp libtool libtool.orig && sed -e "s/deplibs_check_method=.*/deplibs_check_method=pass_all/g" libtool.orig > libtool])
2343 ;;
2344 esac
2345
2346
2347 AC_OUTPUT
2348
2349 ##
2350 ## Configuration summary
2351 ##
2352
2353 echo
2354 echo "-------------------------- FreeSWITCH configuration --------------------------"
2355 echo ""
2356 echo " Locations:"
2357 echo ""
2358 echo " prefix: ${prefix}"
2359 echo " exec_prefix: ${exec_prefix}"
2360 echo " bindir: ${bindir}"
2361 echo " confdir: ${confdir}"
2362 echo " libdir: ${libdir}"
2363 echo " datadir: ${datadir}"
2364 echo " localstatedir: ${localstatedir}"
2365 echo " includedir: ${includedir}"
2366 echo ""
2367 echo " certsdir: ${certsdir}"
2368 echo " dbdir: ${dbdir}"
2369 echo " grammardir: ${grammardir}"
2370 echo " htdocsdir: ${htdocsdir}"
2371 echo " fontsdir: ${fontsdir}"
2372 echo " logfiledir: ${logfiledir}"
2373 echo " modulesdir: ${modulesdir}"
2374 echo " pkgconfigdir: ${pkgconfigdir}"
2375 echo " recordingsdir: ${recordingsdir}"
2376 echo " imagesdir: ${imagesdir}"
2377 echo " runtimedir: ${runtimedir}"
2378 echo " scriptdir: ${scriptdir}"
2379 echo " soundsdir: ${soundsdir}"
2380 echo " storagedir: ${storagedir}"
2381 echo " cachedir: ${cachedir}"
2382 echo ""
2383 echo "------------------------------------------------------------------------------"