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