]> git.ipfire.org Git - thirdparty/freeswitch.git/blame - configure.in
fix windows build issues from snapshot spandsp-20090131
[thirdparty/freeswitch.git] / configure.in
CommitLineData
4da77ea5
AM
1# -*- Autoconf -*-
2# Process this file with autoconf to produce a configure script.
3
8ef2aa54
MJ
4# Must change all of the below together
5# For a release, set revision for that tagged release as well and uncomment
4fa611e5 6AC_INIT([freeswitch], [1.0.trunk], BUG-REPORT-ADDRESS)
8ef2aa54
MJ
7AC_SUBST(SWITCH_VERSION_MAJOR, [1])
8AC_SUBST(SWITCH_VERSION_MINOR, [0])
d811f46f 9AC_SUBST(SWITCH_VERSION_MICRO, [trunk])
8ef2aa54
MJ
10#AC_SUBST(SWITCH_VERSION_REVISION, [svn-revision-here])
11
12AC_CONFIG_FILES([src/include/switch_version.h.in:src/include/switch_version.h.template])
7a5bc3b7 13
e8b9a4f7 14AC_CONFIG_AUX_DIR(build/config)
4da77ea5
AM
15AM_INIT_AUTOMAKE(libfreeswitch,0.1)
16AC_CONFIG_SRCDIR([src/switch.c])
42e78242 17AC_CONFIG_HEADER([src/include/switch_private.h])
4062b636 18AC_CONFIG_HEADER([libs/xmlrpc-c/xmlrpc_amconfig.h])
42e78242 19
a642381f 20AC_PREFIX_DEFAULT(/usr/local/freeswitch)
94206d80
MJ
21# AC_PREFIX_DEFAULT does not get expanded until too late so we need to do this to use prefix in this script
22if test "x$prefix" = "xNONE" ; then
23 prefix='/usr/local/freeswitch'
24fi
55b3e6cb 25
31d1e20f
BW
26AC_CANONICAL_HOST
27
55b3e6cb
MJ
28# Absolute source/build directory
29switch_srcdir=`(cd $srcdir && pwd)`
30switch_builddir=`pwd`
31AC_SUBST(switch_srcdir)
32AC_SUBST(switch_builddir)
33
b552cb3a 34# Where to install the modules
2bcd991b
SK
35AC_ARG_WITH([modinstdir],
36 [AS_HELP_STRING([--with-modinstdir=DIR], [Install modules into this location (default: $prefix/mod)])], [modinstdir="$withval"], [modinstdir="${prefix}/mod"])
b552cb3a 37
911e4a09 38
b552cb3a
MB
39AC_SUBST(modinstdir)
40AC_DEFINE_UNQUOTED([SWITCH_MOD_DIR],"${modinstdir}",[where to install the modules to])
1481d37f 41
911e4a09
MJ
42if test "$sysconfdir" = "\${prefix}/etc" ; then
43 confdir="$prefix/conf"
44else
45 confdir="$sysconfdir"
46fi
47
48AC_SUBST(confdir)
7da7790b 49AC_DEFINE_UNQUOTED([SWITCH_CONF_DIR],"${confdir}",[directory for configuration files])
911e4a09 50
6bc48b70
MJ
51#Set default language
52AC_LANG_C
4da77ea5
AM
53# Checks for programs.
54AC_PROG_CC
80eec6e5 55AC_PROG_CXX
bac1e3fd 56AC_PROG_AWK
4da77ea5 57AC_PROG_MAKE_SET
4da77ea5 58AC_PROG_INSTALL
3de6a7e9
MJ
59
60#override some default libtool behavior and invoke AC_PROG_LIBTOOL (see http://lists.gnu.org/archive/html/libtool/2007-03/msg00000.html)
61m4_defun([_LT_AC_LANG_F77_CONFIG], [:])
62m4_defun([_LT_AC_LANG_GCJ_CONFIG], [:])
63m4_defun([_LT_AC_LANG_RC_CONFIG], [:])
5b3f19fb 64AM_PROG_CC_C_O
bac1e3fd 65AC_PROG_LIBTOOL
4da77ea5 66
6bc48b70
MJ
67#Check for compiler vendor
68AX_COMPILER_VENDOR
69
70# Optimize
71AC_ARG_ENABLE(optimization,
72[AC_HELP_STRING([--enable-optimization],[Set if you want us to add max optimising compiler flags])],[enable_optimizer="$enableval"],[enable_optimizer="no"])
73
74if test "${enable_optimizer}" = "yes" ; then
75 AC_DEFINE([OPTIMZER],[],[Enable Optimization.])
76 AX_CC_MAXOPT
77fi
78
6bc48b70 79
4341b8e6
MJ
80# Optional Features
81
82AC_ARG_ENABLE(resample,
89dc2f83 83[AC_HELP_STRING([--disable-resample],[build without embedded resampler])],[enable_resample="$enableval"],[enable_resample="yes"])
4341b8e6
MJ
84
85# We should add checking for out of tree libresample here
86RESAMPLE_LIB=
87RESAMPLE_CFLAGS=
88if test "${enable_resample}" = "yes"; then
89 RESAMPLE_LIB="libs/libresample/libresample.la"
90 RESAMPLE_CFLAGS="-I${switch_srcdir}/libs/libresample/include"
91else
92 AC_DEFINE([DISABLE_RESAMPLE],[],[Disable the embedded resampler])
93fi
94
95AC_SUBST(RESAMPLE_LIB)
96AC_SUBST(RESAMPLE_CFLAGS)
97
98AM_CONDITIONAL([USE_INTREE_RESAMPLE],[test "${enable_resample}" = "yes"])
99
55b3e6cb 100# set defaults for use on all platforms
3a541262
AM
101SWITCH_AM_CFLAGS="-I${switch_srcdir}/src/include -I${switch_srcdir}/libs/libteletone/src"
102SWITCH_AM_CXXFLAGS="-I${switch_srcdir}/src/include -I${switch_srcdir}/libs/libteletone/src"
31d1e20f 103SWITCH_AM_LDFLAGS="-lm -L/usr/local/lib"
55b3e6cb
MJ
104
105#set SOLINK variable based on compiler and host
106if test "x${ax_cv_c_compiler_vendor}" = "xsun" ; then
107 SOLINK="-Bdynamic -dy -G"
108elif test "x${ax_cv_c_compiler_vendor}" = "xgnu" ; then
109 case "$host" in
6ae16d15 110 *darwin*)
55b3e6cb
MJ
111 SOLINK="-dynamic -bundle -force-flat-namespace"
112 ;;
872c349f
MB
113 *-solaris2*)
114 SOLINK="-shared -Xlinker"
115 ;;
55b3e6cb
MJ
116 *)
117 SOLINK="-shared -Xlinker -x"
118 ;;
119 esac
120else
121 AC_ERROR([Please update configure.in with SOLINK values for your compiler])
122fi
6bc48b70 123
55b3e6cb
MJ
124# set DYNAMIC_LIB_EXTEN
125# we should really be using libtool so we don't need to do this
6bc48b70 126case "$host" in
55b3e6cb
MJ
127 *cygwin* | *mingw*)
128 DYNAMIC_LIB_EXTEN="dll"
129 ;;
130 *)
131 DYNAMIC_LIB_EXTEN="so"
132 ;;
6bc48b70 133esac
55b3e6cb 134
0f6a6c31 135# Enable 64 bit build
6d45f5f5 136AC_ARG_ENABLE(64,
0f6a6c31 137[AC_HELP_STRING([--enable-64],[build with 64 bit support])],[enable_64="$enable_64"],[enable_64="no"])
6d45f5f5 138
55b3e6cb
MJ
139# tweak compiler specific flags
140if test "x${ax_cv_c_compiler_vendor}" = "xsun" ; then
141 APR_ADDTO(SWITCH_AM_CFLAGS, -KPIC)
142 APR_ADDTO(SWITCH_AM_CFLAGS, -DPIC)
514bde18
MJ
143 APR_ADDTO(SWITCH_AM_CXXFLAGS, -KPIC)
144 APR_ADDTO(SWITCH_AM_CXXFLAGS, -DPIC)
f32f6f24
MJ
145 APR_ADDTO(SWITCH_AM_CXXFLAGS, "-features=extensions")
146
55b3e6cb 147 APR_ADDTO(SWITCH_AM_LDFLAGS, -R${prefix}/lib)
6d45f5f5
MJ
148 if test "${enable_64}" = "yes"; then
149 APR_ADDTO(SWITCH_AM_CFLAGS, -m64)
5b2d20bf
MJ
150 APR_ADDTO(SWITCH_AM_CXXFLAGS, -m64)
151 APR_ADDTO(SWITCH_AM_LDFLAGS, -m64)
6d45f5f5 152 fi
55b3e6cb
MJ
153elif test "x${ax_cv_c_compiler_vendor}" = "xgnu" ; then
154 APR_ADDTO(SWITCH_AM_CFLAGS, -fPIC)
514bde18 155 APR_ADDTO(SWITCH_AM_CXXFLAGS, -fPIC)
44ef8650 156 APR_ADDTO(SWITCH_AM_CFLAGS, -Werror)
55b3e6cb
MJ
157fi
158
fcd2a7b0
SK
159# Enable debugging (default: on)
160# (rename option if the default is changed)
2faabff7 161AC_ARG_ENABLE(debug,
fcd2a7b0 162[AC_HELP_STRING([--disable-debug],[build without debug information])],[enable_debug="$enableval"],[enable_debug="yes"])
2faabff7
AM
163
164if test "${enable_debug}" = "yes"; then
165 AC_DEFINE([DEBUG],[],[Enable extra debugging.])
166 AX_CFLAGS_WARN_ALL_ANSI
167
168 if test "x${ax_cv_c_compiler_vendor}" = "xgnu" ; then
169 APR_ADDTO(SWITCH_AM_CFLAGS, -g -ggdb)
37845b42 170 export DEBUG_CFLAGS="-g -ggdb"
2faabff7
AM
171 fi
172
173fi
174
a4a52620
SK
175AM_CONDITIONAL([WANT_DEBUG],[test "${enable_debug}" = "yes"])
176
3ec59cdb 177ESL_LDFLAGS=
9a9ba4c3 178PLATFORM_CORE_DEPLIBS=
55b3e6cb
MJ
179# tweak platform specific flags
180case "$host" in
6ae16d15 181 *darwin*)
55b3e6cb
MJ
182 APR_ADDTO(SWITCH_AM_CFLAGS, -DMACOSX)
183 APR_REMOVEFROM(SWITCH_AM_CFLAGS, -fPIC)
9a9ba4c3
BW
184 if test "x$enable_core_odbc_support" != "xno"; then
185 APR_ADDTO(PLATFORM_CORE_DEPLIBS, --framework CoreFoundation)
186 fi
55b3e6cb
MJ
187 ;;
188 *-solaris2*)
189 APR_ADDTO(SWITCH_AM_CFLAGS, -DPATH_MAX=2048)
3ec59cdb 190 APR_ADDTO(ESL_LDFLAGS, -lnsl)
55b3e6cb 191 ;;
f0b58efb
MJ
192 *bsd*)
193 APR_ADDTO(SWITCH_AM_CFLAGS, -I/usr/local/include)
194 ;;
55b3e6cb
MJ
195esac
196
514bde18
MJ
197APR_REMOVEFROM(SWITCH_AM_CXXFLAGS, -std=c99)
198
55b3e6cb 199AC_SUBST(SWITCH_AM_CFLAGS)
514bde18 200AC_SUBST(SWITCH_AM_CXXFLAGS)
55b3e6cb 201AC_SUBST(SWITCH_AM_LDFLAGS)
3ec59cdb 202AC_SUBST(ESL_LDFLAGS)
9a9ba4c3 203AC_SUBST(PLATFORM_CORE_DEPLIBS)
6bc48b70
MJ
204AC_SUBST(SOLINK)
205AC_SUBST(DYNAMIC_LIB_EXTEN)
6bc48b70 206
4da77ea5
AM
207# Checks for header files.
208AC_HEADER_DIRENT
209AC_HEADER_STDC
286362ca 210AC_CHECK_HEADERS([sys/types.h sys/resource.h sched.h wchar.h sys/filio.h sys/ioctl.h netdb.h execinfo.h])
56008e2b
AM
211
212# for xmlrpc-c config.h
213if test x"$ac_cv_header_wchar_h" = xyes; then
214 HAVE_WCHAR_H_DEFINE=1
215else
216 HAVE_WCHAR_H_DEFINE=0
217fi
218AC_SUBST(HAVE_WCHAR_H_DEFINE)
4da77ea5
AM
219
220# Checks for typedefs, structures, and compiler characteristics.
221AC_C_CONST
222AC_C_INLINE
223AC_TYPE_SIZE_T
224AC_HEADER_TIME
225AC_STRUCT_TM
226
227# Checks for library functions.
228AC_PROG_GCC_TRADITIONAL
229AC_FUNC_MALLOC
230AC_TYPE_SIGNAL
231AC_FUNC_STRFTIME
1386d846 232AC_CHECK_FUNCS([gethostname vasprintf mmap mlock mlockall usleep])
b382c0a4 233AC_CHECK_FUNCS([sched_setscheduler setpriority setrlimit setgroups initgroups])
4062b636 234AC_CHECK_FUNCS([wcsncmp setgroups asprintf setenv pselect gettimeofday localtime_r gmtime_r strcasecmp stricmp _stricmp])
b382c0a4 235
eb9f9fb2
AM
236AC_CHECK_LIB(rt, clock_gettime, [AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [Define if you have clock_gettime()])])
237AC_CHECK_LIB(rt, clock_nanosleep, [AC_DEFINE(HAVE_CLOCK_NANOSLEEP, 1, [Define if you have clock_nanosleep()])])
4062b636 238AC_CHECK_FUNC(socket, , AC_CHECK_LIB(socket, socket))
eb9f9fb2 239
b382c0a4
MJ
240AC_CHECK_DECL([RLIMIT_MEMLOCK],
241 [AC_DEFINE([HAVE_RLIMIT_MEMLOCK],[1],[RLIMIT_MEMLOCK constant for setrlimit])],,
242 [#ifdef HAVE_SYS_RESOURCE_H
243 #include <sys/resource.h>
244 #endif])
245
246AC_CHECK_DECL([SCHED_RR],
247 [AC_DEFINE([HAVE_SCHED_RR],[1],[SCHED_RR constant for sched_setscheduler])],,
248 [#ifdef HAVE_SCHED_H
249 #include <sched.h>
250 #endif])
251
252#
253# use mlockall only on linux (for now; if available)
254#
255if test "x${ac_cv_func_mlockall}" = "xyes"; then
256 AC_MSG_CHECKING([whether to use mlockall])
257 case "$host" in
258 *-linux-*)
259 AC_DEFINE([USE_MLOCKALL],[1],[Enable mlockall support])
260 AC_MSG_RESULT([yes])
261 USE_MLOCKALL=yes
262 ;;
263 *-freebsd*)
264 AC_MSG_RESULT([no, broken for non-root users])
265 ;;
266 *)
267 AC_MSG_RESULT([no])
268 ;;
269 esac
270
271 #
272 # setrlimit prerequisites
273 #
274 if test "x${USE_MLOCKALL}" = "xyes" -a \
275 "x${ac_cv_func_setrlimit}" = "xyes" -a \
276 "x${ac_cv_have_decl_RLIMIT_MEMLOCK}" = "xyes"
277 then
278 AC_DEFINE([USE_SETRLIMIT],[1],[Use setrlimit to disable mlock limit for non-root users])
279 fi
280fi
281
282#
283# sched_setcheduler + round-robin scheduler prerequisites
284#
285if test "x${ac_cv_func_sched_setscheduler}" = "xyes" -a \
286 "x${ac_cv_have_decl_SCHED_RR}" = "xyes"
287then
288 AC_DEFINE([USE_SCHED_SETSCHEDULER],[1],[Enable round-robin scheduler using sched_setscheduler])
289fi
290
4062b636
AM
291#
292# xmlrpc-c checks
293#
294
295
296HAVE_LIBWWW_SSL_DEFINE=0
297AC_SUBST(HAVE_LIBWWW_SSL_DEFINE)
298
299DIRECTORY_SEPARATOR="/"
300AC_SUBST(DIRECTORY_SEPARATOR)
301
302va_list_is_array=no
303AC_MSG_CHECKING(whether va_list is an array)
304AC_TRY_COMPILE([
305#include <stdarg.h>
306], [va_list list1, list2; list1 = list2;], ,
307va_list_is_array=yes)
308AC_MSG_RESULT($va_list_is_array)
309if test x"$va_list_is_array" = xyes; then
310 VA_LIST_IS_ARRAY_DEFINE=1
311else
312 VA_LIST_IS_ARRAY_DEFINE=0
313fi
314AC_SUBST(VA_LIST_IS_ARRAY_DEFINE)
315
316AC_MSG_CHECKING(whether compiler has __attribute__)
317AC_TRY_COMPILE(, [int x __attribute__((__unused__));],
318compiler_has_attribute=yes,
319compiler_has_attribute=no)
320AC_MSG_RESULT($compiler_has_attribute)
321if test x"$compiler_has_attribute" = xyes; then
322 ATTR_UNUSED="__attribute__((__unused__))"
323else
324 ATTR_UNUSED=
325fi
326AC_SUBST(ATTR_UNUSED)
327
328
329
4da77ea5 330
44cc7d5c 331AC_C_BIGENDIAN(AC_DEFINE([SWITCH_BYTE_ORDER],__BIG_ENDIAN,[Big Endian]),AC_DEFINE([SWITCH_BYTE_ORDER],__LITTLE_ENDIAN,[Little Endian]))
49a0eb29 332
42e78242
MJ
333# Checks for integer size
334AC_CHECK_SIZEOF(char, 1)
335AC_CHECK_SIZEOF(int, 4)
336AC_CHECK_SIZEOF(long, 4)
337AC_CHECK_SIZEOF(short, 2)
338AC_CHECK_SIZEOF(long long, 8)
339AC_TYPE_SIZE_T
340AC_CHECK_TYPE(ssize_t, int)
341
342# Checks for pointer size
343AC_CHECK_SIZEOF(void*, 4)
344
345if test "x$ac_cv_sizeof_voidp" != "x"; then
346 voidp_size=$ac_cv_sizeof_voidp
347else
348 AC_ERROR([Cannot determine size of void*])
349fi
350
351if test "$ac_cv_sizeof_short" = "2"; then
352 short_value=short
353fi
354if test "$ac_cv_sizeof_int" = "4"; then
355 int_value=int
356fi
357
358if test "$ac_cv_sizeof_int" = "8"; then
359 int64_t_fmt='#define SWITCH_INT64_T_FMT "d"'
360 uint64_t_fmt='#define SWITCH_UINT64_T_FMT "u"'
361 int64_value="int"
362 long_value=int
363elif test "$ac_cv_sizeof_long" = "8"; then
364 int64_t_fmt='#define SWITCH_INT64_T_FMT "ld"'
365 uint64_t_fmt='#define SWITCH_UINT64_T_FMT "lu"'
366 int64_value="long"
367 long_value=long
368elif test "$ac_cv_sizeof_long_long" = "8"; then
369 int64_t_fmt='#define SWITCH_INT64_T_FMT "lld"'
370 uint64_t_fmt='#define SWITCH_UINT64_T_FMT "llu"'
371 int64_value="long long"
372 long_value="long long"
373elif test "$ac_cv_sizeof_longlong" = "8"; then
374 int64_t_fmt='#define SWITCH_INT64_T_FMT "qd"'
375 uint64_t_fmt='#define SWITCH_UINT64_T_FMT "qu"'
376 int64_value="__int64"
377 long_value="__int64"
378else
379 AC_ERROR([could not detect a 64-bit integer type])
380fi
381
382if test "$ac_cv_type_size_t" = "yes"; then
383 size_t_value="size_t"
384else
385 size_t_value="switch_int32_t"
386fi
387
388if test "$ac_cv_type_ssize_t" = "yes"; then
389 ssize_t_value="ssize_t"
390else
391 ssize_t_value="switch_int32_t"
392fi
393
394APR_CHECK_SIZEOF_EXTENDED([#include <sys/types.h>], ssize_t, 8)
395
396if test "$ac_cv_sizeof_ssize_t" = "$ac_cv_sizeof_int"; then
397 ssize_t_fmt='#define SWITCH_SSIZE_T_FMT "d"'
398elif test "$ac_cv_sizeof_ssize_t" = "$ac_cv_sizeof_long"; then
399 ssize_t_fmt='#define SWITCH_SSIZE_T_FMT "ld"'
400else
401 ssize_t_fmt='#error Can not determine the proper size for ssize_t'
402fi
403
404APR_CHECK_SIZEOF_EXTENDED([#include <stddef.h>], size_t, 8)
405
406if test "$ac_cv_sizeof_size_t" = "$ac_cv_sizeof_int"; then
407 size_t_fmt='#define SWITCH_SIZE_T_FMT "d"'
408elif test "$ac_cv_sizeof_size_t" = "$ac_cv_sizeof_long"; then
409 size_t_fmt='#define SWITCH_SIZE_T_FMT "ld"'
410else
411 size_t_fmt='#error Can not determine the proper size for size_t'
412fi
413
414# Basically, we have tried to figure out the correct format strings
415# for SWITCH types which vary between platforms, but we don't always get
416# it right. If you find that we don't get it right for your platform,
417# you can override our decision below.
418# NOTE: borrowed much of this logic from apr.
419case $host in
420 s390*linux*)
421 # uniquely, the 31-bit Linux/s390 uses "unsigned long int"
422 # for size_t rather than "unsigned int":
423 size_t_fmt='#define SWITCH_SIZE_T_FMT "lu"'
424 ssize_t_fmt='#define SWITCH_SSIZE_T_FMT "ld"'
425 ;;
426 *-os2*)
427 size_t_fmt='#define SWITCH_SIZE_T_FMT "lu"'
428 ;;
6d66ecfd
MJ
429 *-openbsd*)
430 size_t_fmt='#define SWITCH_SIZE_T_FMT "ld"'
431 ;;
42e78242
MJ
432 *aix4*|*aix5*)
433 ssize_t_fmt='#define SWITCH_SSIZE_T_FMT "ld"'
434 size_t_fmt='#define SWITCH_SIZE_T_FMT "ld"'
435 ;;
436 *beos*)
437 ssize_t_fmt='#define SWITCH_SSIZE_T_FMT "ld"'
438 size_t_fmt='#define SWITCH_SIZE_T_FMT "ld"'
439 ;;
440 *apple-darwin*)
441 osver=`uname -r`
442 case $osver in
443 [0-7].*)
444 ssize_t_fmt='#define SWITCH_SSIZE_T_FMT "d"'
445 ;;
446 *)
447 ssize_t_fmt='#define SWITCH_SSIZE_T_FMT "ld"'
448 ;;
449 esac
450 size_t_fmt='#define SWITCH_SIZE_T_FMT "lu"'
451 ;;
452esac
453
454AC_SUBST(voidp_size)
455AC_SUBST(short_value)
456AC_SUBST(int_value)
457AC_SUBST(long_value)
458AC_SUBST(int64_value)
459AC_SUBST(size_t_value)
460AC_SUBST(ssize_t_value)
461AC_SUBST(int64_t_fmt)
462AC_SUBST(uint64_t_fmt)
463AC_SUBST(ssize_t_fmt)
464AC_SUBST(size_t_fmt)
b552cb3a
MB
465AC_SUBST(libdir)
466AC_SUBST(bindir)
467AC_SUBST(includedir)
42e78242 468
bc34fb76
MJ
469AC_PATH_PROGS(ZCAT, gunzip gzcat gzip zcat)
470AC_PATH_PROGS(TAR, gtar tar)
471AC_PATH_PROGS(WGET, wget)
472AC_PATH_PROGS(CURL, curl)
c99d8c9b
MJ
473GETLIB="cd $switch_srcdir/libs && ${SHELL} $switch_srcdir/build/getlib.sh"
474AC_SUBST(GETLIB)
3d5fcabe
MJ
475GETSOUNDS="${SHELL} $switch_srcdir/build/getsounds.sh"
476AC_SUBST(GETSOUNDS)
c99d8c9b 477
bc34fb76 478
f85be6ff
MJ
479LIBCURL_CHECK_CONFIG([yes], [7.13.0], [LIBCURL_DEPS=''], [LIBCURL_DEPS='${switch_srcdir}/libs/curl/lib/libcurl.la';LIBCURL='${switch_srcdir}/libs/curl/lib/libcurl.la';LIBCURL_CPPFLAGS='-I${switch_srcdir}/libs/curl/include'])
480AC_SUBST(LIBCURL_DEPS)
481
4d62a1ad 482AC_ARG_ENABLE(core-odbc-support,
2bcd991b 483 [AS_HELP_STRING([--enable-core-odbc-support], [Compile with ODBC Support])],,[enable_core_odbc_support="no"])
4d62a1ad 484
c5c13c26 485AC_ARG_ENABLE(core-libedit-support,
2bcd991b 486 [AS_HELP_STRING([--disable-core-libedit-support], [Compile without libedit Support])], [enable_core_libedit_support="$enableval"], [enable_core_libedit_support="yes"])
c5c13c26 487
28213aad
AM
488if test "$enable_core_libedit_support" = "yes" ; then
489 AC_CHECK_LIB(ncurses, tgetent,,
490 [AC_CHECK_LIB(curses, tgetent,,
491 [AC_MSG_ERROR([libtermcap, libcurses or libncurses are required!])] )] )
492fi
493
e69fe7e3 494AX_CHECK_JAVA
7df787b7 495
4d62a1ad 496AM_CONDITIONAL([ADD_ODBC],[test "x$enable_core_odbc_support" != "xno"])
c5c13c26 497AM_CONDITIONAL([ADD_LIBEDIT],[test "x$enable_core_libedit_support" != "xno"])
778a82cc 498AM_CONDITIONAL([HAVE_MYSQL],[test "$found_mysql" = "yes"])
49a0eb29 499
e8c88aa1
SK
500#
501# Python checks for mod_python
502#
503AC_ARG_WITH(
504 [python],
505 [AS_HELP_STRING([--with-python], [Use system provided version of python (default: try)])],
506 [with_python="$withval"],
507 [with_python="try"]
508)
509
e8c88aa1
SK
510if test "$with_python" != "no"
511then
2d14539e
SK
512 save_CFLAGS="$CFLAGS"
513 save_LIBS="$LIBS"
514
e8c88aa1
SK
515 if test "$with_python" != "yes" -a "$with_python" != "try" ; then
516 AC_MSG_CHECKING([for python])
517 if test ! -x "$with_python" ; then
518 AC_MSG_ERROR([Specified python does not exist or is not executable: $with_python])
519 fi
520 AC_MSG_RESULT([$with_python])
521 AC_SUBST([PYTHON], ["$with_python"])
522 else
523 AC_PATH_PROG([PYTHON], ["python"], ["no"], ["$PATH:/usr/bin:/usr/local/bin"])
524 fi
525
526 if test "$PYTHON" != "no" ; then
527 AC_MSG_CHECKING([python version])
528 PYTHON_VER="`$PYTHON -V 2>&1 | cut -d' ' -f2`"
529
530 if test -z "$PYTHON_VER" ; then
531 AC_MSG_ERROR([Unable to detect python version])
532 fi
533 AC_MSG_RESULT([$PYTHON_VER])
534
2d14539e 535 AC_MSG_CHECKING([for python distutils])
baf944eb
SK
536 python_result="`$PYTHON -c 'import distutils;' 2>&1`"
537 if test -z "$python_result" ; then
2d14539e 538 python_has_distutils="yes"
baf944eb
SK
539 else
540 python_has_distutils="no"
2d14539e
SK
541 fi
542 AC_MSG_RESULT([$python_has_distutils])
543
baf944eb 544 if test "$python_has_distutils" != "no" ; then
f08ac862
SK
545 AC_MSG_CHECKING([location of site-packages])
546
baf944eb 547 PYTHON_SITE_DIR="`$PYTHON -c 'from distutils import sysconfig; print sysconfig.get_python_lib(0);'`"
f08ac862
SK
548
549 if test -z "$PYTHON_SITE_DIR" ; then
550 AC_MSG_ERROR([Unable to detect python site-packages path])
551 elif test ! -d "$PYTHON_SITE_DIR" ; then
552 AC_MSG_ERROR([Path $PYTHON_SITE_DIR returned by python does not exist!])
553 fi
554 AC_MSG_RESULT([$PYTHON_SITE_DIR])
555 AC_SUBST([PYTHON_SITE_DIR], [$PYTHON_SITE_DIR])
556
2d14539e
SK
557 #
558 # python distutils found, get settings from python directly
559 #
f08ac862
SK
560 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);'`"
561 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);'`"
562 PYTHON_LIB="`$PYTHON -c 'from distutils import sysconfig; print \"python\" + sysconfig.get_config_var(\"VERSION\");'`"
ba892c27
SK
563 PYTHON_LIBDIR="`$PYTHON -c 'from distutils import sysconfig; print sysconfig.get_config_var(\"LIBDIR\");'`"
564
565 # handle python being installed into /usr/local
566 AC_MSG_CHECKING([python libdir])
567 if test -z "`echo $PYTHON_LIBDIR | grep "/usr/lib"`" ; then
568 PYTHON_LDFLAGS="-L$PYTHON_LIBDIR $PYTHON_LDFLAGS"
569 LIBS="-L$PYTHON_LIBDIR $LIBS"
570 fi
571 AC_MSG_RESULT([$PYTHON_LIBDIR])
e8c88aa1 572
2d14539e
SK
573 # check libpython
574 AC_CHECK_LIB([$PYTHON_LIB], [main], [has_libpython="yes"], [has_libpython="no"])
575
576 if test "$has_libpython" = "no" ; then
577 AS_IF([test "$with_python" = "try"],
578 [AC_MSG_WARN([$PYTHON_LIB is unusable])],
579 [AC_MSG_ERROR([$PYTHON_LIB is unusable])]
580 )
581 fi
e8c88aa1
SK
582
583 # check whether system libpython is usable and has threads support
2d14539e 584 CFLAGS="$PYTHON_CFLAGS"
e8c88aa1
SK
585 LIBS="$PYTHON_LDFLAGS"
586 AC_CHECK_FUNC([PyThread_init_thread], [python_has_threads="yes"], [python_has_threads="no"])
e8c88aa1 587
2d14539e
SK
588 if test "$python_has_threads" = "no"; then
589 AS_IF([test "$with_python" = "try"],
590 [AC_MSG_WARN([Your python lacks threads support, can not build mod_python])],
591 [AC_MSG_ERROR([Your python lacks threads support, can not build mod_python])]
592 )
e8c88aa1
SK
593 else
594 AC_MSG_NOTICE([Your python seems OK, do not forget to enable mod_python in modules.conf])
2d14539e 595 AC_SUBST([PYTHON_CFLAGS], [$PYTHON_CFLAGS])
e8c88aa1
SK
596 AC_SUBST([PYTHON_LDFLAGS], [$PYTHON_LDFLAGS])
597 fi
598 else
2d14539e 599 AS_IF([test "$with_python" = "try"],
baf944eb
SK
600 [AC_MSG_WARN([Could not find or use python distutils module: $python_result])],
601 [AC_MSG_ERROR([Could not find or use python distutils module: $python_result])]
2d14539e 602 )
e8c88aa1
SK
603 fi
604
2d14539e
SK
605 LIBS="$save_LIBS"
606 CFLAGS="$save_CFLAGS"
607
608 unset python_has_threads
609 unset python_has_distutils
baf944eb 610 unset python_result
2d14539e
SK
611 else
612 AS_IF([test "$with_python" = "try"],
613 [AC_MSG_WARN([Could not find python, mod_python will not build, use --with-python to specify the location])],
614 [AC_MSG_ERROR([Could not find python, use --with-python to specify the location])]
615 )
e8c88aa1
SK
616 fi
617else
618 AC_MSG_WARN([python support disabled, building mod_python will fail!])
619fi
620
42e78242 621AC_CONFIG_FILES([Makefile
4ffd0bc0 622 src/Makefile
1481d37f 623 src/mod/Makefile
33d3c1c2 624 src/mod/endpoints/mod_sofia/Makefile
c33dc3eb 625 src/mod/event_handlers/mod_radius_cdr/Makefile
e69fe7e3 626 src/mod/languages/mod_java/Makefile
e8c88aa1 627 src/mod/languages/mod_python/Makefile
514bde18 628 src/include/switch_am_config.h
3d5fcabe 629 build/getsounds.sh
bc34fb76 630 build/getlib.sh
24248ae1 631 build/modmake.rules
56008e2b 632 libs/xmlrpc-c/include/xmlrpc-c/config.h
4062b636 633 libs/xmlrpc-c/xmlrpc_config.h
24248ae1 634 scripts/gentls_cert])
4da77ea5 635
a6e9f279 636AM_CONDITIONAL(ISLINUX, [test `uname -s` = Linux])
db399276 637AM_CONDITIONAL(ISMAC, [test `uname -s` = Darwin])
a092a55a 638AM_CONDITIONAL(IS64BITLINUX, [test `uname -m` = x86_64])
a6e9f279 639
c7753b06
MJ
640#some vars to sub into the Makefile.am's
641#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
642LIBTOOL='`if test -z "$(VERBOSE)" ; then echo $(SHELL) $(switch_builddir)/quiet_libtool ;else echo $(switch_builddir)/libtool; fi;`'
643TOUCH_TARGET='if test -f "$@";then touch "$@";fi;'
564cd368 644CONF_MODULES='\`grep -v "\#" $(switch_builddir)/modules.conf | sed -e "s|^.*/||" | sort | uniq \`'
ed960392 645CONF_DISABLED_MODULES='\`grep "\#" $(switch_builddir)/modules.conf | sed -e "s|^.*/||" | sort | uniq \`'
5f053e18
MJ
646OUR_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 `'
647OUR_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 `'
648OUR_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 `'
649OUR_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 `'
ed960392
AM
650OUR_DISABLED_MODS='`tmp_mods="$(CONF_DISABLED_MODULES)"; mods=\`for i in $$tmp_mods ; do echo $$i-all ; done \`; echo $$mods `'
651OUR_DISABLED_CLEAN_MODS='`tmp_mods="$(CONF_DISABLED_MODULES)"; mods=\`for i in $$tmp_mods ; do echo $$i-clean ; done \`; echo $$mods `'
652OUR_DISABLED_INSTALL_MODS='`tmp_mods="$(CONF_DISABLED_MODULES)"; mods=\`for i in $$tmp_mods ; do echo $$i-install ; done\`; echo $$mods `'
653OUR_DISABLED_UNINSTALL_MODS='`tmp_mods="$(CONF_DISABLED_MODULES)"; mods=\`for i in $$tmp_mods ; do echo $$i-uninstall ; done\`; echo $$mods `'
654
655AM_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`'
5f053e18 656#AM_MAKEFLAGS='`test -n "$(VERBOSE)" || echo -s`'
c7753b06
MJ
657AC_SUBST(LIBTOOL)
658AC_SUBST(TOUCH_TARGET)
ed960392 659AC_SUBST(CONF_DISABLED_MODULES)
5f053e18 660AC_SUBST(CONF_MODULES)
ed960392 661
5f053e18
MJ
662AC_SUBST(OUR_MODS)
663AC_SUBST(OUR_CLEAN_MODS)
664AC_SUBST(OUR_INSTALL_MODS)
665AC_SUBST(OUR_UNINSTALL_MODS)
ed960392
AM
666AC_SUBST(OUR_DISABLED_MODS)
667AC_SUBST(OUR_DISABLED_CLEAN_MODS)
668AC_SUBST(OUR_DISABLED_INSTALL_MODS)
669AC_SUBST(OUR_DISABLED_UNINSTALL_MODS)
c7753b06
MJ
670AC_SUBST(AM_MAKEFLAGS)
671
46f6981d
MJ
672# Run configure in all the subdirs
673AC_CONFIG_SUBDIRS(libs/srtp)
674AC_CONFIG_SUBDIRS(libs/sqlite)
675AC_CONFIG_SUBDIRS(libs/libresample)
99b12efe
MB
676if test "$enable_core_libedit_support" = "yes" ; then
677 AC_CONFIG_SUBDIRS(libs/libedit)
678fi
e1fe36f1 679
46f6981d
MJ
680AC_CONFIG_SUBDIRS(libs/pcre)
681AC_CONFIG_SUBDIRS(libs/apr)
682AC_CONFIG_SUBDIRS(libs/apr-util)
ad555456 683AC_CONFIG_SUBDIRS(libs/voipcodecs)
ee3fc89f 684AC_CONFIG_SUBDIRS(libs/codec/ilbc)
ee3fc89f 685AC_CONFIG_SUBDIRS(libs/curl)
ee3fc89f
MJ
686AC_CONFIG_SUBDIRS(libs/iksemel)
687AC_CONFIG_SUBDIRS(libs/js/nsprpub)
688AC_CONFIG_SUBDIRS(libs/js)
689AC_CONFIG_SUBDIRS(libs/libdingaling)
ee3fc89f
MJ
690AC_CONFIG_SUBDIRS(libs/libsndfile)
691AC_CONFIG_SUBDIRS(libs/sofia-sip)
692AC_CONFIG_SUBDIRS(libs/speex)
ee3fc89f 693AC_CONFIG_SUBDIRS(libs/portaudio)
6cc890bf 694AC_CONFIG_SUBDIRS(libs/openzap)
e1fe36f1 695AC_CHECK_LIB([tiff], [TIFFOpen], AC_CONFIG_SUBDIRS(libs/spandsp), , -lm)
ee3fc89f 696
6e81dda1 697AC_OUTPUT