]> git.ipfire.org Git - thirdparty/freeswitch.git/blame - configure.in
Tue Jun 23 10:07:20 CDT 2009 Pekka Pessi <first.last@nokia.com>
[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
MB
37
38AC_SUBST(modinstdir)
39AC_DEFINE_UNQUOTED([SWITCH_MOD_DIR],"${modinstdir}",[where to install the modules to])
1481d37f 40
911e4a09
MJ
41if test "$sysconfdir" = "\${prefix}/etc" ; then
42 confdir="$prefix/conf"
43else
44 confdir="$sysconfdir"
45fi
46
47AC_SUBST(confdir)
7da7790b 48AC_DEFINE_UNQUOTED([SWITCH_CONF_DIR],"${confdir}",[directory for configuration files])
911e4a09 49
6bc48b70
MJ
50#Set default language
51AC_LANG_C
4da77ea5
AM
52# Checks for programs.
53AC_PROG_CC
80eec6e5 54AC_PROG_CXX
40f18d30
MJ
55
56#check if the g++ compiler works
57AC_CACHE_CHECK([whether the C++ compiler works], [ac_cv_sys_cxx_works], [
58 AC_LANG_PUSH([C++])
59 AC_COMPILE_IFELSE([int main() { }], [ac_cv_sys_cxx_works=yes],
60 [ac_cv_sys_cxx_works=no])
61 AC_LANG_POP([C++])
62 ])
63[ if [ "x$ac_cv_sys_cxx_works" = "xno" ]; then ]
64 AC_MSG_FAILURE([The C++ compiler does not work. Please (re)install the C++ compiler])
65[ fi ]
66
bac1e3fd 67AC_PROG_AWK
4da77ea5 68AC_PROG_MAKE_SET
4da77ea5 69AC_PROG_INSTALL
3de6a7e9
MJ
70
71#override some default libtool behavior and invoke AC_PROG_LIBTOOL (see http://lists.gnu.org/archive/html/libtool/2007-03/msg00000.html)
72m4_defun([_LT_AC_LANG_F77_CONFIG], [:])
73m4_defun([_LT_AC_LANG_GCJ_CONFIG], [:])
74m4_defun([_LT_AC_LANG_RC_CONFIG], [:])
5b3f19fb 75AM_PROG_CC_C_O
bac1e3fd 76AC_PROG_LIBTOOL
4da77ea5 77
6bc48b70
MJ
78#Check for compiler vendor
79AX_COMPILER_VENDOR
80
81# Optimize
82AC_ARG_ENABLE(optimization,
83[AC_HELP_STRING([--enable-optimization],[Set if you want us to add max optimising compiler flags])],[enable_optimizer="$enableval"],[enable_optimizer="no"])
84
85if test "${enable_optimizer}" = "yes" ; then
86 AC_DEFINE([OPTIMZER],[],[Enable Optimization.])
87 AX_CC_MAXOPT
88fi
89
55b3e6cb 90# set defaults for use on all platforms
3a541262
AM
91SWITCH_AM_CFLAGS="-I${switch_srcdir}/src/include -I${switch_srcdir}/libs/libteletone/src"
92SWITCH_AM_CXXFLAGS="-I${switch_srcdir}/src/include -I${switch_srcdir}/libs/libteletone/src"
1953ac5c 93SWITCH_AM_LDFLAGS="-lm"
55b3e6cb
MJ
94
95#set SOLINK variable based on compiler and host
96if test "x${ax_cv_c_compiler_vendor}" = "xsun" ; then
97 SOLINK="-Bdynamic -dy -G"
98elif test "x${ax_cv_c_compiler_vendor}" = "xgnu" ; then
99 case "$host" in
6ae16d15 100 *darwin*)
55b3e6cb
MJ
101 SOLINK="-dynamic -bundle -force-flat-namespace"
102 ;;
872c349f
MB
103 *-solaris2*)
104 SOLINK="-shared -Xlinker"
105 ;;
55b3e6cb
MJ
106 *)
107 SOLINK="-shared -Xlinker -x"
108 ;;
109 esac
110else
111 AC_ERROR([Please update configure.in with SOLINK values for your compiler])
112fi
6bc48b70 113
55b3e6cb
MJ
114# set DYNAMIC_LIB_EXTEN
115# we should really be using libtool so we don't need to do this
6bc48b70 116case "$host" in
55b3e6cb
MJ
117 *cygwin* | *mingw*)
118 DYNAMIC_LIB_EXTEN="dll"
119 ;;
120 *)
121 DYNAMIC_LIB_EXTEN="so"
122 ;;
6bc48b70 123esac
55b3e6cb 124
4a77854b
SK
125##
126# detect libtool major version,
127# set libtool library extension based on this
128# to work around some brokeness when using 'la' with libtool-1.5
129#
130AC_MSG_CHECKING([libtool major version])
131libtool="${switch_builddir}/libtool"
771bc514 132LIBTOOL_MAJOR_VERSION="`$libtool --version 2>/dev/null| sed -e 's/([[^)]]*)//g;s/^[[^0-9]]*//;s/[[- ]].*//g;q'| awk -F . '{print $1}'`"
0c0a4a53 133if test -z "$LIBTOOL_MAJOR_VERSION" ; then
38b02f8b 134 LIBTOOL_MAJOR_VERSION="`sed -n -e '/^VERSION/{s/^.*=\"\?\([[0-9]]\+\)\..\+/\1/;p}' ${switch_srcdir}/build/config/ltmain.sh`"
0c0a4a53
SK
135fi
136if test -z "$LIBTOOL_MAJOR_VERSION" ; then
137 AC_MSG_ERROR([Failed to detect your libtool version, please open a bug report on http://jira.freeswitch.org/])
138fi
4a77854b 139AC_MSG_RESULT([${LIBTOOL_MAJOR_VERSION}])
02141e30
MJ
140
141LIBTOOL_LIB_EXTEN="$DYNAMIC_LIB_EXTEN"
142
4a77854b 143if test "${LIBTOOL_MAJOR_VERSION}" = "2" ; then
02141e30
MJ
144 LIBTOOL_LIB_EXTEN="la"
145fi
4a77854b
SK
146AC_MSG_RESULT([using libtool library extension... ${LIBTOOL_LIB_EXTEN}])
147
02141e30 148
0f6a6c31 149# Enable 64 bit build
6d45f5f5 150AC_ARG_ENABLE(64,
0f6a6c31 151[AC_HELP_STRING([--enable-64],[build with 64 bit support])],[enable_64="$enable_64"],[enable_64="no"])
6d45f5f5 152
55b3e6cb
MJ
153# tweak compiler specific flags
154if test "x${ax_cv_c_compiler_vendor}" = "xsun" ; then
155 APR_ADDTO(SWITCH_AM_CFLAGS, -KPIC)
156 APR_ADDTO(SWITCH_AM_CFLAGS, -DPIC)
99913ce3
MJ
157 APR_ADDTO(SWITCH_AM_CFLAGS, -erroff=E_END_OF_LOOP_CODE_NOT_REACHED)
158 APR_ADDTO(SWITCH_AM_CFLAGS, -errtags=yes)
159 APR_ADDTO(SWITCH_AM_CXXFLAGS, -errtags=yes)
514bde18
MJ
160 APR_ADDTO(SWITCH_AM_CXXFLAGS, -KPIC)
161 APR_ADDTO(SWITCH_AM_CXXFLAGS, -DPIC)
f32f6f24
MJ
162 APR_ADDTO(SWITCH_AM_CXXFLAGS, "-features=extensions")
163
55b3e6cb 164 APR_ADDTO(SWITCH_AM_LDFLAGS, -R${prefix}/lib)
6d45f5f5
MJ
165 if test "${enable_64}" = "yes"; then
166 APR_ADDTO(SWITCH_AM_CFLAGS, -m64)
5b2d20bf
MJ
167 APR_ADDTO(SWITCH_AM_CXXFLAGS, -m64)
168 APR_ADDTO(SWITCH_AM_LDFLAGS, -m64)
1953ac5c 169 LIBS="$LIBS -m64"
6d45f5f5 170 fi
55b3e6cb
MJ
171elif test "x${ax_cv_c_compiler_vendor}" = "xgnu" ; then
172 APR_ADDTO(SWITCH_AM_CFLAGS, -fPIC)
514bde18 173 APR_ADDTO(SWITCH_AM_CXXFLAGS, -fPIC)
44ef8650 174 APR_ADDTO(SWITCH_AM_CFLAGS, -Werror)
1953ac5c
MJ
175 if test "${enable_64}" = "yes"; then
176 LIBS="$LIBS -m64"
177 fi
55b3e6cb
MJ
178fi
179
ffe2ad4b
MJ
180#
181# gcc visibility cflag checks
182#
183AC_ARG_ENABLE([visibility],
184 [AS_HELP_STRING([--disable-visibility], [Disable or enable API visibility support (default: use if available)])],
185 [enable_visibility="${enableval}"],
186 [enable_visibility="detect"]
187)
188HAVE_VISIBILITY="no"
189
190if test "x${enable_visibility}" != "xno" ; then
191
192 case "${ax_cv_c_compiler_vendor}" in
193 gnu)
194 save_CFLAGS="${CFLAGS}"
195 CFLAGS="${CFLAGS} -fvisibility=hidden"
196 AC_MSG_CHECKING([whether the compiler supports -fvisibility=hidden])
197 AC_COMPILE_IFELSE(
198 [AC_LANG_PROGRAM(
199 [int foo __attribute__ ((visibility("default")));],
200 [;]
201 )],
202
203 [AC_MSG_RESULT([yes])
204 APR_ADDTO([SWITCH_AM_CFLAGS], [-fvisibility=hidden -DSWITCH_API_VISIBILITY=1 -DHAVE_VISIBILITY=1])
205 APR_ADDTO([SWITCH_AM_CXXFLAGS], [-fvisibility=hidden -DSWITCH_API_VISIBILITY=1 -DHAVE_VISIBILITY=1])
206 HAVE_VISIBILITY="yes"],
207
208 [AC_MSG_RESULT([no])]
209 )
210 CFLAGS="${save_CFLAGS}"
211 ;;
212
900907a2 213 sun)
96114867
SK
214 # save_CFLAGS="${CFLAGS}"
215 # CFLAGS="${CFLAGS} -xldscope=hidden"
216 # AC_MSG_CHECKING([whether the compiler supports -xldscope=hidden])
217 # AC_COMPILE_IFELSE(
218 # [AC_LANG_PROGRAM(
219 # [int foo __attribute__ ((visibility("default")));],
220 # [;]
221 # )],
222 #
223 # [AC_MSG_RESULT([yes])
224 # APR_ADDTO([SWITCH_AM_CFLAGS], [-xldscope=hidden -DSWITCH_API_VISIBILITY=1 -DHAVE_VISIBILITY=1])
225 # APR_ADDTO([SWITCH_AM_CXXFLAGS], [-xldscope=hidden -DSWITCH_API_VISIBILITY=1 -DHAVE_VISIBILITY=1])
226 # HAVE_VISIBILITY="yes"],
227 #
228 # [AC_MSG_RESULT([no])]
229 # )
230 # CFLAGS="${save_CFLAGS}"
900907a2
MJ
231 ;;
232
ffe2ad4b
MJ
233 *)
234 if test "x${enable_visibility}" = "xyes" ; then
900907a2 235 AC_MSG_ERROR([Non-GNU / SUN compilers are currently unsupported])
ffe2ad4b 236 else
900907a2 237 AC_MSG_WARN([Non-GNU / SUN compilers are currently unsupported])
ffe2ad4b
MJ
238 fi
239 ;;
240 esac
241
242 #
243 # visibility explicitly requested but not supported by this compiler => error
244 #
245 if test "x${enable_visibility}" = "xyes" -a "x${HAVE_VISIBILITY}" = "xno" ; then
246 AC_MSG_ERROR([API visibility not supported by this compiler])
247 fi
248fi
249
fcd2a7b0
SK
250# Enable debugging (default: on)
251# (rename option if the default is changed)
2faabff7 252AC_ARG_ENABLE(debug,
fcd2a7b0 253[AC_HELP_STRING([--disable-debug],[build without debug information])],[enable_debug="$enableval"],[enable_debug="yes"])
2faabff7
AM
254
255if test "${enable_debug}" = "yes"; then
256 AC_DEFINE([DEBUG],[],[Enable extra debugging.])
257 AX_CFLAGS_WARN_ALL_ANSI
258
259 if test "x${ax_cv_c_compiler_vendor}" = "xgnu" ; then
260 APR_ADDTO(SWITCH_AM_CFLAGS, -g -ggdb)
37845b42 261 export DEBUG_CFLAGS="-g -ggdb"
2faabff7
AM
262 fi
263
264fi
265
861bd209
BW
266AC_ARG_ENABLE(zrtp,
267 [AS_HELP_STRING([--enable-zrtp], [Compile with zrtp Support])],,[enable_zrtp="no"])
268if test "x$enable_zrtp" = "xyes" ; then
269 saved_LIBS=$LIBS
270 LIBS="$saved_LIBS -L/usr/local/lib -lbn -lpthread"
271 AC_CHECK_LIB(zrtp, zrtp_init, [has_zrtp="yes"], [has_zrtp="no"])
272 LIBS=$saved_LIBS
273 if test "x$has_zrtp" = "xno"; then
274 AC_ERROR([Cannot locate zrtp libraries])
275 fi
276 APR_ADDTO(SWITCH_AM_CFLAGS, -DENABLE_ZRTP)
277fi
278AM_CONDITIONAL([ENABLE_ZRTP],[test "x$enable_zrtp" != "xno"])
279
280
a4a52620
SK
281AM_CONDITIONAL([WANT_DEBUG],[test "${enable_debug}" = "yes"])
282
cd788c1a
MJ
283AC_ARG_ENABLE(core-odbc-support,
284 [AS_HELP_STRING([--enable-core-odbc-support], [Compile with ODBC Support])],,[enable_core_odbc_support="no"])
285AX_LIB_ODBC
286if test "$ac_cv_found_odbc" = "yes" ; then
287 enable_core_odbc_support="yes"
288fi
289
3ec59cdb 290ESL_LDFLAGS=
9a9ba4c3 291PLATFORM_CORE_DEPLIBS=
55b3e6cb
MJ
292# tweak platform specific flags
293case "$host" in
6ae16d15 294 *darwin*)
55b3e6cb
MJ
295 APR_ADDTO(SWITCH_AM_CFLAGS, -DMACOSX)
296 APR_REMOVEFROM(SWITCH_AM_CFLAGS, -fPIC)
9a9ba4c3
BW
297 if test "x$enable_core_odbc_support" != "xno"; then
298 APR_ADDTO(PLATFORM_CORE_DEPLIBS, --framework CoreFoundation)
299 fi
55b3e6cb
MJ
300 ;;
301 *-solaris2*)
302 APR_ADDTO(SWITCH_AM_CFLAGS, -DPATH_MAX=2048)
bb33c4e7 303 APR_ADDTO(ESL_LDFLAGS, -lnsl -lsocket)
55b3e6cb 304 ;;
f0b58efb
MJ
305 *bsd*)
306 APR_ADDTO(SWITCH_AM_CFLAGS, -I/usr/local/include)
307 ;;
55b3e6cb
MJ
308esac
309
514bde18
MJ
310APR_REMOVEFROM(SWITCH_AM_CXXFLAGS, -std=c99)
311
55b3e6cb 312AC_SUBST(SWITCH_AM_CFLAGS)
514bde18 313AC_SUBST(SWITCH_AM_CXXFLAGS)
55b3e6cb 314AC_SUBST(SWITCH_AM_LDFLAGS)
3ec59cdb 315AC_SUBST(ESL_LDFLAGS)
9a9ba4c3 316AC_SUBST(PLATFORM_CORE_DEPLIBS)
6bc48b70
MJ
317AC_SUBST(SOLINK)
318AC_SUBST(DYNAMIC_LIB_EXTEN)
02141e30 319AC_SUBST(LIBTOOL_LIB_EXTEN)
6bc48b70 320
4da77ea5
AM
321# Checks for header files.
322AC_HEADER_DIRENT
323AC_HEADER_STDC
286362ca 324AC_CHECK_HEADERS([sys/types.h sys/resource.h sched.h wchar.h sys/filio.h sys/ioctl.h netdb.h execinfo.h])
56008e2b
AM
325
326# for xmlrpc-c config.h
327if test x"$ac_cv_header_wchar_h" = xyes; then
328 HAVE_WCHAR_H_DEFINE=1
329else
330 HAVE_WCHAR_H_DEFINE=0
331fi
332AC_SUBST(HAVE_WCHAR_H_DEFINE)
4da77ea5
AM
333
334# Checks for typedefs, structures, and compiler characteristics.
335AC_C_CONST
336AC_C_INLINE
337AC_TYPE_SIZE_T
338AC_HEADER_TIME
339AC_STRUCT_TM
340
341# Checks for library functions.
342AC_PROG_GCC_TRADITIONAL
343AC_FUNC_MALLOC
344AC_TYPE_SIGNAL
345AC_FUNC_STRFTIME
8bebb6f1 346AC_CHECK_FUNCS([gethostname vasprintf mmap mlock mlockall usleep getifaddrs])
b382c0a4 347AC_CHECK_FUNCS([sched_setscheduler setpriority setrlimit setgroups initgroups])
4062b636 348AC_CHECK_FUNCS([wcsncmp setgroups asprintf setenv pselect gettimeofday localtime_r gmtime_r strcasecmp stricmp _stricmp])
b382c0a4 349
eb9f9fb2
AM
350AC_CHECK_LIB(rt, clock_gettime, [AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [Define if you have clock_gettime()])])
351AC_CHECK_LIB(rt, clock_nanosleep, [AC_DEFINE(HAVE_CLOCK_NANOSLEEP, 1, [Define if you have clock_nanosleep()])])
4062b636 352AC_CHECK_FUNC(socket, , AC_CHECK_LIB(socket, socket))
eb9f9fb2 353
bf988471 354AC_CHECK_MEMBERS([struct tm.tm_gmtoff],,,[
21159328
MJ
355#include <sys/types.h>
356#include <time.h>])
357
bf988471 358AC_CHECK_MEMBERS([struct tm.tm_zone],,,[
21159328
MJ
359#include <sys/types.h>
360#include <time.h>])
361
b382c0a4
MJ
362AC_CHECK_DECL([RLIMIT_MEMLOCK],
363 [AC_DEFINE([HAVE_RLIMIT_MEMLOCK],[1],[RLIMIT_MEMLOCK constant for setrlimit])],,
364 [#ifdef HAVE_SYS_RESOURCE_H
365 #include <sys/resource.h>
366 #endif])
367
368AC_CHECK_DECL([SCHED_RR],
369 [AC_DEFINE([HAVE_SCHED_RR],[1],[SCHED_RR constant for sched_setscheduler])],,
370 [#ifdef HAVE_SCHED_H
371 #include <sched.h>
372 #endif])
373
374#
375# use mlockall only on linux (for now; if available)
376#
377if test "x${ac_cv_func_mlockall}" = "xyes"; then
378 AC_MSG_CHECKING([whether to use mlockall])
379 case "$host" in
380 *-linux-*)
381 AC_DEFINE([USE_MLOCKALL],[1],[Enable mlockall support])
382 AC_MSG_RESULT([yes])
383 USE_MLOCKALL=yes
384 ;;
385 *-freebsd*)
386 AC_MSG_RESULT([no, broken for non-root users])
387 ;;
388 *)
389 AC_MSG_RESULT([no])
390 ;;
391 esac
392
393 #
394 # setrlimit prerequisites
395 #
396 if test "x${USE_MLOCKALL}" = "xyes" -a \
397 "x${ac_cv_func_setrlimit}" = "xyes" -a \
398 "x${ac_cv_have_decl_RLIMIT_MEMLOCK}" = "xyes"
399 then
400 AC_DEFINE([USE_SETRLIMIT],[1],[Use setrlimit to disable mlock limit for non-root users])
401 fi
402fi
403
404#
405# sched_setcheduler + round-robin scheduler prerequisites
406#
407if test "x${ac_cv_func_sched_setscheduler}" = "xyes" -a \
408 "x${ac_cv_have_decl_SCHED_RR}" = "xyes"
409then
410 AC_DEFINE([USE_SCHED_SETSCHEDULER],[1],[Enable round-robin scheduler using sched_setscheduler])
411fi
412
4062b636
AM
413#
414# xmlrpc-c checks
415#
416
417
418HAVE_LIBWWW_SSL_DEFINE=0
419AC_SUBST(HAVE_LIBWWW_SSL_DEFINE)
420
421DIRECTORY_SEPARATOR="/"
422AC_SUBST(DIRECTORY_SEPARATOR)
423
424va_list_is_array=no
425AC_MSG_CHECKING(whether va_list is an array)
426AC_TRY_COMPILE([
427#include <stdarg.h>
428], [va_list list1, list2; list1 = list2;], ,
429va_list_is_array=yes)
430AC_MSG_RESULT($va_list_is_array)
431if test x"$va_list_is_array" = xyes; then
432 VA_LIST_IS_ARRAY_DEFINE=1
433else
434 VA_LIST_IS_ARRAY_DEFINE=0
435fi
436AC_SUBST(VA_LIST_IS_ARRAY_DEFINE)
437
438AC_MSG_CHECKING(whether compiler has __attribute__)
439AC_TRY_COMPILE(, [int x __attribute__((__unused__));],
440compiler_has_attribute=yes,
441compiler_has_attribute=no)
442AC_MSG_RESULT($compiler_has_attribute)
443if test x"$compiler_has_attribute" = xyes; then
444 ATTR_UNUSED="__attribute__((__unused__))"
445else
446 ATTR_UNUSED=
447fi
448AC_SUBST(ATTR_UNUSED)
449
450
451
4da77ea5 452
44cc7d5c 453AC_C_BIGENDIAN(AC_DEFINE([SWITCH_BYTE_ORDER],__BIG_ENDIAN,[Big Endian]),AC_DEFINE([SWITCH_BYTE_ORDER],__LITTLE_ENDIAN,[Little Endian]))
49a0eb29 454
42e78242
MJ
455# Checks for integer size
456AC_CHECK_SIZEOF(char, 1)
457AC_CHECK_SIZEOF(int, 4)
458AC_CHECK_SIZEOF(long, 4)
459AC_CHECK_SIZEOF(short, 2)
460AC_CHECK_SIZEOF(long long, 8)
461AC_TYPE_SIZE_T
462AC_CHECK_TYPE(ssize_t, int)
463
464# Checks for pointer size
465AC_CHECK_SIZEOF(void*, 4)
466
467if test "x$ac_cv_sizeof_voidp" != "x"; then
468 voidp_size=$ac_cv_sizeof_voidp
469else
470 AC_ERROR([Cannot determine size of void*])
471fi
472
473if test "$ac_cv_sizeof_short" = "2"; then
474 short_value=short
475fi
476if test "$ac_cv_sizeof_int" = "4"; then
477 int_value=int
478fi
479
480if test "$ac_cv_sizeof_int" = "8"; then
481 int64_t_fmt='#define SWITCH_INT64_T_FMT "d"'
482 uint64_t_fmt='#define SWITCH_UINT64_T_FMT "u"'
483 int64_value="int"
484 long_value=int
485elif test "$ac_cv_sizeof_long" = "8"; then
486 int64_t_fmt='#define SWITCH_INT64_T_FMT "ld"'
487 uint64_t_fmt='#define SWITCH_UINT64_T_FMT "lu"'
488 int64_value="long"
489 long_value=long
490elif test "$ac_cv_sizeof_long_long" = "8"; then
491 int64_t_fmt='#define SWITCH_INT64_T_FMT "lld"'
492 uint64_t_fmt='#define SWITCH_UINT64_T_FMT "llu"'
493 int64_value="long long"
494 long_value="long long"
495elif test "$ac_cv_sizeof_longlong" = "8"; then
496 int64_t_fmt='#define SWITCH_INT64_T_FMT "qd"'
497 uint64_t_fmt='#define SWITCH_UINT64_T_FMT "qu"'
498 int64_value="__int64"
499 long_value="__int64"
500else
501 AC_ERROR([could not detect a 64-bit integer type])
502fi
503
504if test "$ac_cv_type_size_t" = "yes"; then
505 size_t_value="size_t"
506else
507 size_t_value="switch_int32_t"
508fi
509
510if test "$ac_cv_type_ssize_t" = "yes"; then
511 ssize_t_value="ssize_t"
512else
513 ssize_t_value="switch_int32_t"
514fi
515
516APR_CHECK_SIZEOF_EXTENDED([#include <sys/types.h>], ssize_t, 8)
517
518if test "$ac_cv_sizeof_ssize_t" = "$ac_cv_sizeof_int"; then
519 ssize_t_fmt='#define SWITCH_SSIZE_T_FMT "d"'
520elif test "$ac_cv_sizeof_ssize_t" = "$ac_cv_sizeof_long"; then
521 ssize_t_fmt='#define SWITCH_SSIZE_T_FMT "ld"'
522else
523 ssize_t_fmt='#error Can not determine the proper size for ssize_t'
524fi
525
526APR_CHECK_SIZEOF_EXTENDED([#include <stddef.h>], size_t, 8)
527
528if test "$ac_cv_sizeof_size_t" = "$ac_cv_sizeof_int"; then
529 size_t_fmt='#define SWITCH_SIZE_T_FMT "d"'
530elif test "$ac_cv_sizeof_size_t" = "$ac_cv_sizeof_long"; then
531 size_t_fmt='#define SWITCH_SIZE_T_FMT "ld"'
532else
533 size_t_fmt='#error Can not determine the proper size for size_t'
534fi
535
536# Basically, we have tried to figure out the correct format strings
537# for SWITCH types which vary between platforms, but we don't always get
538# it right. If you find that we don't get it right for your platform,
539# you can override our decision below.
540# NOTE: borrowed much of this logic from apr.
541case $host in
542 s390*linux*)
543 # uniquely, the 31-bit Linux/s390 uses "unsigned long int"
544 # for size_t rather than "unsigned int":
545 size_t_fmt='#define SWITCH_SIZE_T_FMT "lu"'
546 ssize_t_fmt='#define SWITCH_SSIZE_T_FMT "ld"'
547 ;;
548 *-os2*)
549 size_t_fmt='#define SWITCH_SIZE_T_FMT "lu"'
550 ;;
6d66ecfd
MJ
551 *-openbsd*)
552 size_t_fmt='#define SWITCH_SIZE_T_FMT "ld"'
553 ;;
42e78242
MJ
554 *aix4*|*aix5*)
555 ssize_t_fmt='#define SWITCH_SSIZE_T_FMT "ld"'
556 size_t_fmt='#define SWITCH_SIZE_T_FMT "ld"'
557 ;;
558 *beos*)
559 ssize_t_fmt='#define SWITCH_SSIZE_T_FMT "ld"'
560 size_t_fmt='#define SWITCH_SIZE_T_FMT "ld"'
561 ;;
562 *apple-darwin*)
563 osver=`uname -r`
564 case $osver in
565 [0-7].*)
566 ssize_t_fmt='#define SWITCH_SSIZE_T_FMT "d"'
567 ;;
568 *)
569 ssize_t_fmt='#define SWITCH_SSIZE_T_FMT "ld"'
570 ;;
571 esac
572 size_t_fmt='#define SWITCH_SIZE_T_FMT "lu"'
573 ;;
574esac
575
576AC_SUBST(voidp_size)
577AC_SUBST(short_value)
578AC_SUBST(int_value)
579AC_SUBST(long_value)
580AC_SUBST(int64_value)
581AC_SUBST(size_t_value)
582AC_SUBST(ssize_t_value)
583AC_SUBST(int64_t_fmt)
584AC_SUBST(uint64_t_fmt)
585AC_SUBST(ssize_t_fmt)
586AC_SUBST(size_t_fmt)
b552cb3a
MB
587AC_SUBST(libdir)
588AC_SUBST(bindir)
589AC_SUBST(includedir)
42e78242 590
bc34fb76
MJ
591AC_PATH_PROGS(ZCAT, gunzip gzcat gzip zcat)
592AC_PATH_PROGS(TAR, gtar tar)
593AC_PATH_PROGS(WGET, wget)
594AC_PATH_PROGS(CURL, curl)
c99d8c9b
MJ
595GETLIB="cd $switch_srcdir/libs && ${SHELL} $switch_srcdir/build/getlib.sh"
596AC_SUBST(GETLIB)
3d5fcabe
MJ
597GETSOUNDS="${SHELL} $switch_srcdir/build/getsounds.sh"
598AC_SUBST(GETSOUNDS)
c99d8c9b 599
bc34fb76 600
f85be6ff
MJ
601LIBCURL_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'])
602AC_SUBST(LIBCURL_DEPS)
603
4d62a1ad 604
c5c13c26 605AC_ARG_ENABLE(core-libedit-support,
2bcd991b 606 [AS_HELP_STRING([--disable-core-libedit-support], [Compile without libedit Support])], [enable_core_libedit_support="$enableval"], [enable_core_libedit_support="yes"])
c5c13c26 607
28213aad
AM
608if test "$enable_core_libedit_support" = "yes" ; then
609 AC_CHECK_LIB(ncurses, tgetent,,
610 [AC_CHECK_LIB(curses, tgetent,,
611 [AC_MSG_ERROR([libtermcap, libcurses or libncurses are required!])] )] )
612fi
613
219a2ecc
AT
614SAC_OPENSSL
615
e69fe7e3 616AX_CHECK_JAVA
7df787b7 617
753fa8fb 618
4d62a1ad 619AM_CONDITIONAL([ADD_ODBC],[test "x$enable_core_odbc_support" != "xno"])
c5c13c26 620AM_CONDITIONAL([ADD_LIBEDIT],[test "x$enable_core_libedit_support" != "xno"])
778a82cc 621AM_CONDITIONAL([HAVE_MYSQL],[test "$found_mysql" = "yes"])
49a0eb29 622
e8c88aa1
SK
623#
624# Python checks for mod_python
625#
626AC_ARG_WITH(
627 [python],
628 [AS_HELP_STRING([--with-python], [Use system provided version of python (default: try)])],
629 [with_python="$withval"],
630 [with_python="try"]
631)
632
e8c88aa1
SK
633if test "$with_python" != "no"
634then
2d14539e
SK
635 save_CFLAGS="$CFLAGS"
636 save_LIBS="$LIBS"
637
e8c88aa1
SK
638 if test "$with_python" != "yes" -a "$with_python" != "try" ; then
639 AC_MSG_CHECKING([for python])
640 if test ! -x "$with_python" ; then
641 AC_MSG_ERROR([Specified python does not exist or is not executable: $with_python])
642 fi
643 AC_MSG_RESULT([$with_python])
644 AC_SUBST([PYTHON], ["$with_python"])
645 else
646 AC_PATH_PROG([PYTHON], ["python"], ["no"], ["$PATH:/usr/bin:/usr/local/bin"])
647 fi
648
649 if test "$PYTHON" != "no" ; then
650 AC_MSG_CHECKING([python version])
651 PYTHON_VER="`$PYTHON -V 2>&1 | cut -d' ' -f2`"
652
653 if test -z "$PYTHON_VER" ; then
654 AC_MSG_ERROR([Unable to detect python version])
655 fi
656 AC_MSG_RESULT([$PYTHON_VER])
657
2d14539e 658 AC_MSG_CHECKING([for python distutils])
baf944eb
SK
659 python_result="`$PYTHON -c 'import distutils;' 2>&1`"
660 if test -z "$python_result" ; then
2d14539e 661 python_has_distutils="yes"
baf944eb
SK
662 else
663 python_has_distutils="no"
2d14539e
SK
664 fi
665 AC_MSG_RESULT([$python_has_distutils])
666
baf944eb 667 if test "$python_has_distutils" != "no" ; then
f08ac862
SK
668 AC_MSG_CHECKING([location of site-packages])
669
baf944eb 670 PYTHON_SITE_DIR="`$PYTHON -c 'from distutils import sysconfig; print sysconfig.get_python_lib(0);'`"
f08ac862
SK
671
672 if test -z "$PYTHON_SITE_DIR" ; then
673 AC_MSG_ERROR([Unable to detect python site-packages path])
674 elif test ! -d "$PYTHON_SITE_DIR" ; then
675 AC_MSG_ERROR([Path $PYTHON_SITE_DIR returned by python does not exist!])
676 fi
677 AC_MSG_RESULT([$PYTHON_SITE_DIR])
678 AC_SUBST([PYTHON_SITE_DIR], [$PYTHON_SITE_DIR])
679
2d14539e
SK
680 #
681 # python distutils found, get settings from python directly
682 #
f08ac862
SK
683 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);'`"
684 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);'`"
685 PYTHON_LIB="`$PYTHON -c 'from distutils import sysconfig; print \"python\" + sysconfig.get_config_var(\"VERSION\");'`"
ba892c27
SK
686 PYTHON_LIBDIR="`$PYTHON -c 'from distutils import sysconfig; print sysconfig.get_config_var(\"LIBDIR\");'`"
687
688 # handle python being installed into /usr/local
689 AC_MSG_CHECKING([python libdir])
690 if test -z "`echo $PYTHON_LIBDIR | grep "/usr/lib"`" ; then
691 PYTHON_LDFLAGS="-L$PYTHON_LIBDIR $PYTHON_LDFLAGS"
692 LIBS="-L$PYTHON_LIBDIR $LIBS"
693 fi
694 AC_MSG_RESULT([$PYTHON_LIBDIR])
e8c88aa1 695
2d14539e
SK
696 # check libpython
697 AC_CHECK_LIB([$PYTHON_LIB], [main], [has_libpython="yes"], [has_libpython="no"])
698
699 if test "$has_libpython" = "no" ; then
700 AS_IF([test "$with_python" = "try"],
701 [AC_MSG_WARN([$PYTHON_LIB is unusable])],
702 [AC_MSG_ERROR([$PYTHON_LIB is unusable])]
703 )
704 fi
e8c88aa1
SK
705
706 # check whether system libpython is usable and has threads support
2d14539e 707 CFLAGS="$PYTHON_CFLAGS"
e8c88aa1
SK
708 LIBS="$PYTHON_LDFLAGS"
709 AC_CHECK_FUNC([PyThread_init_thread], [python_has_threads="yes"], [python_has_threads="no"])
e8c88aa1 710
2d14539e
SK
711 if test "$python_has_threads" = "no"; then
712 AS_IF([test "$with_python" = "try"],
713 [AC_MSG_WARN([Your python lacks threads support, can not build mod_python])],
714 [AC_MSG_ERROR([Your python lacks threads support, can not build mod_python])]
715 )
e8c88aa1
SK
716 else
717 AC_MSG_NOTICE([Your python seems OK, do not forget to enable mod_python in modules.conf])
2d14539e 718 AC_SUBST([PYTHON_CFLAGS], [$PYTHON_CFLAGS])
e8c88aa1
SK
719 AC_SUBST([PYTHON_LDFLAGS], [$PYTHON_LDFLAGS])
720 fi
721 else
2d14539e 722 AS_IF([test "$with_python" = "try"],
baf944eb
SK
723 [AC_MSG_WARN([Could not find or use python distutils module: $python_result])],
724 [AC_MSG_ERROR([Could not find or use python distutils module: $python_result])]
2d14539e 725 )
e8c88aa1
SK
726 fi
727
2d14539e
SK
728 LIBS="$save_LIBS"
729 CFLAGS="$save_CFLAGS"
730
731 unset python_has_threads
732 unset python_has_distutils
baf944eb 733 unset python_result
2d14539e
SK
734 else
735 AS_IF([test "$with_python" = "try"],
736 [AC_MSG_WARN([Could not find python, mod_python will not build, use --with-python to specify the location])],
737 [AC_MSG_ERROR([Could not find python, use --with-python to specify the location])]
738 )
e8c88aa1
SK
739 fi
740else
741 AC_MSG_WARN([python support disabled, building mod_python will fail!])
742fi
743
ea0316b8
AT
744CHECK_ERLANG
745
42e78242 746AC_CONFIG_FILES([Makefile
4ffd0bc0 747 src/Makefile
1481d37f 748 src/mod/Makefile
33d3c1c2 749 src/mod/endpoints/mod_sofia/Makefile
2ab491b1 750 src/mod/asr_tts/mod_unimrcp/Makefile
c33dc3eb 751 src/mod/event_handlers/mod_radius_cdr/Makefile
e69fe7e3 752 src/mod/languages/mod_java/Makefile
e8c88aa1 753 src/mod/languages/mod_python/Makefile
ea0316b8 754 src/mod/event_handlers/mod_erlang_event/Makefile
514bde18 755 src/include/switch_am_config.h
3d5fcabe 756 build/getsounds.sh
bc34fb76 757 build/getlib.sh
24248ae1 758 build/modmake.rules
56008e2b 759 libs/xmlrpc-c/include/xmlrpc-c/config.h
4062b636 760 libs/xmlrpc-c/xmlrpc_config.h
24248ae1 761 scripts/gentls_cert])
4da77ea5 762
a6e9f279 763AM_CONDITIONAL(ISLINUX, [test `uname -s` = Linux])
db399276 764AM_CONDITIONAL(ISMAC, [test `uname -s` = Darwin])
a092a55a 765AM_CONDITIONAL(IS64BITLINUX, [test `uname -m` = x86_64])
a6e9f279 766
c7753b06
MJ
767#some vars to sub into the Makefile.am's
768#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
769LIBTOOL='`if test -z "$(VERBOSE)" ; then echo $(SHELL) $(switch_builddir)/quiet_libtool ;else echo $(switch_builddir)/libtool; fi;`'
770TOUCH_TARGET='if test -f "$@";then touch "$@";fi;'
564cd368 771CONF_MODULES='\`grep -v "\#" $(switch_builddir)/modules.conf | sed -e "s|^.*/||" | sort | uniq \`'
ed960392 772CONF_DISABLED_MODULES='\`grep "\#" $(switch_builddir)/modules.conf | sed -e "s|^.*/||" | sort | uniq \`'
5f053e18
MJ
773OUR_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 `'
774OUR_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 `'
775OUR_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 `'
776OUR_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
777OUR_DISABLED_MODS='`tmp_mods="$(CONF_DISABLED_MODULES)"; mods=\`for i in $$tmp_mods ; do echo $$i-all ; done \`; echo $$mods `'
778OUR_DISABLED_CLEAN_MODS='`tmp_mods="$(CONF_DISABLED_MODULES)"; mods=\`for i in $$tmp_mods ; do echo $$i-clean ; done \`; echo $$mods `'
779OUR_DISABLED_INSTALL_MODS='`tmp_mods="$(CONF_DISABLED_MODULES)"; mods=\`for i in $$tmp_mods ; do echo $$i-install ; done\`; echo $$mods `'
780OUR_DISABLED_UNINSTALL_MODS='`tmp_mods="$(CONF_DISABLED_MODULES)"; mods=\`for i in $$tmp_mods ; do echo $$i-uninstall ; done\`; echo $$mods `'
781
782AM_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 783#AM_MAKEFLAGS='`test -n "$(VERBOSE)" || echo -s`'
c7753b06
MJ
784AC_SUBST(LIBTOOL)
785AC_SUBST(TOUCH_TARGET)
ed960392 786AC_SUBST(CONF_DISABLED_MODULES)
5f053e18 787AC_SUBST(CONF_MODULES)
ed960392 788
5f053e18
MJ
789AC_SUBST(OUR_MODS)
790AC_SUBST(OUR_CLEAN_MODS)
791AC_SUBST(OUR_INSTALL_MODS)
792AC_SUBST(OUR_UNINSTALL_MODS)
ed960392
AM
793AC_SUBST(OUR_DISABLED_MODS)
794AC_SUBST(OUR_DISABLED_CLEAN_MODS)
795AC_SUBST(OUR_DISABLED_INSTALL_MODS)
796AC_SUBST(OUR_DISABLED_UNINSTALL_MODS)
c7753b06
MJ
797AC_SUBST(AM_MAKEFLAGS)
798
46f6981d
MJ
799# Run configure in all the subdirs
800AC_CONFIG_SUBDIRS(libs/srtp)
801AC_CONFIG_SUBDIRS(libs/sqlite)
99b12efe
MB
802if test "$enable_core_libedit_support" = "yes" ; then
803 AC_CONFIG_SUBDIRS(libs/libedit)
804fi
e1fe36f1 805
46f6981d
MJ
806AC_CONFIG_SUBDIRS(libs/pcre)
807AC_CONFIG_SUBDIRS(libs/apr)
808AC_CONFIG_SUBDIRS(libs/apr-util)
ad555456 809AC_CONFIG_SUBDIRS(libs/voipcodecs)
749114b7 810AC_CONFIG_SUBDIRS(libs/ilbc)
ee3fc89f 811AC_CONFIG_SUBDIRS(libs/curl)
ee3fc89f
MJ
812AC_CONFIG_SUBDIRS(libs/iksemel)
813AC_CONFIG_SUBDIRS(libs/js/nsprpub)
814AC_CONFIG_SUBDIRS(libs/js)
815AC_CONFIG_SUBDIRS(libs/libdingaling)
ee3fc89f
MJ
816AC_CONFIG_SUBDIRS(libs/libsndfile)
817AC_CONFIG_SUBDIRS(libs/sofia-sip)
818AC_CONFIG_SUBDIRS(libs/speex)
ee3fc89f 819AC_CONFIG_SUBDIRS(libs/portaudio)
6cc890bf 820AC_CONFIG_SUBDIRS(libs/openzap)
dfbd361b 821AC_CONFIG_SUBDIRS(libs/unimrcp)
e1fe36f1 822AC_CHECK_LIB([tiff], [TIFFOpen], AC_CONFIG_SUBDIRS(libs/spandsp), , -lm)
ee3fc89f 823
6e81dda1 824AC_OUTPUT