]>
Commit | Line | Data |
---|---|---|
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 | 6 | AC_INIT([freeswitch], [1.0.trunk], BUG-REPORT-ADDRESS) |
8ef2aa54 MJ |
7 | AC_SUBST(SWITCH_VERSION_MAJOR, [1]) |
8 | AC_SUBST(SWITCH_VERSION_MINOR, [0]) | |
d811f46f | 9 | AC_SUBST(SWITCH_VERSION_MICRO, [trunk]) |
8ef2aa54 MJ |
10 | #AC_SUBST(SWITCH_VERSION_REVISION, [svn-revision-here]) |
11 | ||
12 | AC_CONFIG_FILES([src/include/switch_version.h.in:src/include/switch_version.h.template]) | |
7a5bc3b7 | 13 | |
e8b9a4f7 | 14 | AC_CONFIG_AUX_DIR(build/config) |
4da77ea5 AM |
15 | AM_INIT_AUTOMAKE(libfreeswitch,0.1) |
16 | AC_CONFIG_SRCDIR([src/switch.c]) | |
42e78242 | 17 | AC_CONFIG_HEADER([src/include/switch_private.h]) |
4062b636 | 18 | AC_CONFIG_HEADER([libs/xmlrpc-c/xmlrpc_amconfig.h]) |
42e78242 | 19 | |
a642381f | 20 | AC_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 |
22 | if test "x$prefix" = "xNONE" ; then | |
23 | prefix='/usr/local/freeswitch' | |
24 | fi | |
55b3e6cb | 25 | |
31d1e20f BW |
26 | AC_CANONICAL_HOST |
27 | ||
55b3e6cb MJ |
28 | # Absolute source/build directory |
29 | switch_srcdir=`(cd $srcdir && pwd)` | |
30 | switch_builddir=`pwd` | |
31 | AC_SUBST(switch_srcdir) | |
32 | AC_SUBST(switch_builddir) | |
33 | ||
b552cb3a | 34 | # Where to install the modules |
2bcd991b SK |
35 | AC_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 |
39 | AC_SUBST(modinstdir) |
40 | AC_DEFINE_UNQUOTED([SWITCH_MOD_DIR],"${modinstdir}",[where to install the modules to]) | |
1481d37f | 41 | |
911e4a09 MJ |
42 | if test "$sysconfdir" = "\${prefix}/etc" ; then |
43 | confdir="$prefix/conf" | |
44 | else | |
45 | confdir="$sysconfdir" | |
46 | fi | |
47 | ||
48 | AC_SUBST(confdir) | |
7da7790b | 49 | AC_DEFINE_UNQUOTED([SWITCH_CONF_DIR],"${confdir}",[directory for configuration files]) |
911e4a09 | 50 | |
6bc48b70 MJ |
51 | #Set default language |
52 | AC_LANG_C | |
4da77ea5 AM |
53 | # Checks for programs. |
54 | AC_PROG_CC | |
80eec6e5 | 55 | AC_PROG_CXX |
bac1e3fd | 56 | AC_PROG_AWK |
4da77ea5 | 57 | AC_PROG_MAKE_SET |
4da77ea5 | 58 | AC_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) | |
61 | m4_defun([_LT_AC_LANG_F77_CONFIG], [:]) | |
62 | m4_defun([_LT_AC_LANG_GCJ_CONFIG], [:]) | |
63 | m4_defun([_LT_AC_LANG_RC_CONFIG], [:]) | |
5b3f19fb | 64 | AM_PROG_CC_C_O |
bac1e3fd | 65 | AC_PROG_LIBTOOL |
4da77ea5 | 66 | |
6bc48b70 MJ |
67 | #Check for compiler vendor |
68 | AX_COMPILER_VENDOR | |
69 | ||
70 | # Optimize | |
71 | AC_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 | ||
74 | if test "${enable_optimizer}" = "yes" ; then | |
75 | AC_DEFINE([OPTIMZER],[],[Enable Optimization.]) | |
76 | AX_CC_MAXOPT | |
77 | fi | |
78 | ||
6bc48b70 | 79 | |
4341b8e6 MJ |
80 | # Optional Features |
81 | ||
82 | AC_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 | |
86 | RESAMPLE_LIB= | |
87 | RESAMPLE_CFLAGS= | |
88 | if test "${enable_resample}" = "yes"; then | |
89 | RESAMPLE_LIB="libs/libresample/libresample.la" | |
90 | RESAMPLE_CFLAGS="-I${switch_srcdir}/libs/libresample/include" | |
91 | else | |
92 | AC_DEFINE([DISABLE_RESAMPLE],[],[Disable the embedded resampler]) | |
93 | fi | |
94 | ||
95 | AC_SUBST(RESAMPLE_LIB) | |
96 | AC_SUBST(RESAMPLE_CFLAGS) | |
97 | ||
98 | AM_CONDITIONAL([USE_INTREE_RESAMPLE],[test "${enable_resample}" = "yes"]) | |
99 | ||
55b3e6cb | 100 | # set defaults for use on all platforms |
3a541262 AM |
101 | SWITCH_AM_CFLAGS="-I${switch_srcdir}/src/include -I${switch_srcdir}/libs/libteletone/src" |
102 | SWITCH_AM_CXXFLAGS="-I${switch_srcdir}/src/include -I${switch_srcdir}/libs/libteletone/src" | |
31d1e20f | 103 | SWITCH_AM_LDFLAGS="-lm -L/usr/local/lib" |
55b3e6cb MJ |
104 | |
105 | #set SOLINK variable based on compiler and host | |
106 | if test "x${ax_cv_c_compiler_vendor}" = "xsun" ; then | |
107 | SOLINK="-Bdynamic -dy -G" | |
108 | elif 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 | |
120 | else | |
121 | AC_ERROR([Please update configure.in with SOLINK values for your compiler]) | |
122 | fi | |
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 | 126 | case "$host" in |
55b3e6cb MJ |
127 | *cygwin* | *mingw*) |
128 | DYNAMIC_LIB_EXTEN="dll" | |
129 | ;; | |
130 | *) | |
131 | DYNAMIC_LIB_EXTEN="so" | |
132 | ;; | |
6bc48b70 | 133 | esac |
55b3e6cb | 134 | |
0f6a6c31 | 135 | # Enable 64 bit build |
6d45f5f5 | 136 | AC_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 |
140 | if 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 |
153 | elif 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 |
157 | fi |
158 | ||
fcd2a7b0 SK |
159 | # Enable debugging (default: on) |
160 | # (rename option if the default is changed) | |
2faabff7 | 161 | AC_ARG_ENABLE(debug, |
fcd2a7b0 | 162 | [AC_HELP_STRING([--disable-debug],[build without debug information])],[enable_debug="$enableval"],[enable_debug="yes"]) |
2faabff7 AM |
163 | |
164 | if 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 | ||
173 | fi | |
174 | ||
a4a52620 SK |
175 | AM_CONDITIONAL([WANT_DEBUG],[test "${enable_debug}" = "yes"]) |
176 | ||
3ec59cdb | 177 | ESL_LDFLAGS= |
9a9ba4c3 | 178 | PLATFORM_CORE_DEPLIBS= |
55b3e6cb MJ |
179 | # tweak platform specific flags |
180 | case "$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 |
195 | esac |
196 | ||
514bde18 MJ |
197 | APR_REMOVEFROM(SWITCH_AM_CXXFLAGS, -std=c99) |
198 | ||
55b3e6cb | 199 | AC_SUBST(SWITCH_AM_CFLAGS) |
514bde18 | 200 | AC_SUBST(SWITCH_AM_CXXFLAGS) |
55b3e6cb | 201 | AC_SUBST(SWITCH_AM_LDFLAGS) |
3ec59cdb | 202 | AC_SUBST(ESL_LDFLAGS) |
9a9ba4c3 | 203 | AC_SUBST(PLATFORM_CORE_DEPLIBS) |
6bc48b70 MJ |
204 | AC_SUBST(SOLINK) |
205 | AC_SUBST(DYNAMIC_LIB_EXTEN) | |
6bc48b70 | 206 | |
4da77ea5 AM |
207 | # Checks for header files. |
208 | AC_HEADER_DIRENT | |
209 | AC_HEADER_STDC | |
286362ca | 210 | AC_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 | |
213 | if test x"$ac_cv_header_wchar_h" = xyes; then | |
214 | HAVE_WCHAR_H_DEFINE=1 | |
215 | else | |
216 | HAVE_WCHAR_H_DEFINE=0 | |
217 | fi | |
218 | AC_SUBST(HAVE_WCHAR_H_DEFINE) | |
4da77ea5 AM |
219 | |
220 | # Checks for typedefs, structures, and compiler characteristics. | |
221 | AC_C_CONST | |
222 | AC_C_INLINE | |
223 | AC_TYPE_SIZE_T | |
224 | AC_HEADER_TIME | |
225 | AC_STRUCT_TM | |
226 | ||
227 | # Checks for library functions. | |
228 | AC_PROG_GCC_TRADITIONAL | |
229 | AC_FUNC_MALLOC | |
230 | AC_TYPE_SIGNAL | |
231 | AC_FUNC_STRFTIME | |
1386d846 | 232 | AC_CHECK_FUNCS([gethostname vasprintf mmap mlock mlockall usleep]) |
b382c0a4 | 233 | AC_CHECK_FUNCS([sched_setscheduler setpriority setrlimit setgroups initgroups]) |
4062b636 | 234 | AC_CHECK_FUNCS([wcsncmp setgroups asprintf setenv pselect gettimeofday localtime_r gmtime_r strcasecmp stricmp _stricmp]) |
b382c0a4 | 235 | |
eb9f9fb2 AM |
236 | AC_CHECK_LIB(rt, clock_gettime, [AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [Define if you have clock_gettime()])]) |
237 | AC_CHECK_LIB(rt, clock_nanosleep, [AC_DEFINE(HAVE_CLOCK_NANOSLEEP, 1, [Define if you have clock_nanosleep()])]) | |
4062b636 | 238 | AC_CHECK_FUNC(socket, , AC_CHECK_LIB(socket, socket)) |
eb9f9fb2 | 239 | |
b382c0a4 MJ |
240 | AC_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 | ||
246 | AC_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 | # | |
255 | if 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 | |
280 | fi | |
281 | ||
282 | # | |
283 | # sched_setcheduler + round-robin scheduler prerequisites | |
284 | # | |
285 | if test "x${ac_cv_func_sched_setscheduler}" = "xyes" -a \ | |
286 | "x${ac_cv_have_decl_SCHED_RR}" = "xyes" | |
287 | then | |
288 | AC_DEFINE([USE_SCHED_SETSCHEDULER],[1],[Enable round-robin scheduler using sched_setscheduler]) | |
289 | fi | |
290 | ||
4062b636 AM |
291 | # |
292 | # xmlrpc-c checks | |
293 | # | |
294 | ||
295 | ||
296 | HAVE_LIBWWW_SSL_DEFINE=0 | |
297 | AC_SUBST(HAVE_LIBWWW_SSL_DEFINE) | |
298 | ||
299 | DIRECTORY_SEPARATOR="/" | |
300 | AC_SUBST(DIRECTORY_SEPARATOR) | |
301 | ||
302 | va_list_is_array=no | |
303 | AC_MSG_CHECKING(whether va_list is an array) | |
304 | AC_TRY_COMPILE([ | |
305 | #include <stdarg.h> | |
306 | ], [va_list list1, list2; list1 = list2;], , | |
307 | va_list_is_array=yes) | |
308 | AC_MSG_RESULT($va_list_is_array) | |
309 | if test x"$va_list_is_array" = xyes; then | |
310 | VA_LIST_IS_ARRAY_DEFINE=1 | |
311 | else | |
312 | VA_LIST_IS_ARRAY_DEFINE=0 | |
313 | fi | |
314 | AC_SUBST(VA_LIST_IS_ARRAY_DEFINE) | |
315 | ||
316 | AC_MSG_CHECKING(whether compiler has __attribute__) | |
317 | AC_TRY_COMPILE(, [int x __attribute__((__unused__));], | |
318 | compiler_has_attribute=yes, | |
319 | compiler_has_attribute=no) | |
320 | AC_MSG_RESULT($compiler_has_attribute) | |
321 | if test x"$compiler_has_attribute" = xyes; then | |
322 | ATTR_UNUSED="__attribute__((__unused__))" | |
323 | else | |
324 | ATTR_UNUSED= | |
325 | fi | |
326 | AC_SUBST(ATTR_UNUSED) | |
327 | ||
328 | ||
329 | ||
4da77ea5 | 330 | |
44cc7d5c | 331 | AC_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 |
334 | AC_CHECK_SIZEOF(char, 1) | |
335 | AC_CHECK_SIZEOF(int, 4) | |
336 | AC_CHECK_SIZEOF(long, 4) | |
337 | AC_CHECK_SIZEOF(short, 2) | |
338 | AC_CHECK_SIZEOF(long long, 8) | |
339 | AC_TYPE_SIZE_T | |
340 | AC_CHECK_TYPE(ssize_t, int) | |
341 | ||
342 | # Checks for pointer size | |
343 | AC_CHECK_SIZEOF(void*, 4) | |
344 | ||
345 | if test "x$ac_cv_sizeof_voidp" != "x"; then | |
346 | voidp_size=$ac_cv_sizeof_voidp | |
347 | else | |
348 | AC_ERROR([Cannot determine size of void*]) | |
349 | fi | |
350 | ||
351 | if test "$ac_cv_sizeof_short" = "2"; then | |
352 | short_value=short | |
353 | fi | |
354 | if test "$ac_cv_sizeof_int" = "4"; then | |
355 | int_value=int | |
356 | fi | |
357 | ||
358 | if 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 | |
363 | elif 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 | |
368 | elif 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" | |
373 | elif 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" | |
378 | else | |
379 | AC_ERROR([could not detect a 64-bit integer type]) | |
380 | fi | |
381 | ||
382 | if test "$ac_cv_type_size_t" = "yes"; then | |
383 | size_t_value="size_t" | |
384 | else | |
385 | size_t_value="switch_int32_t" | |
386 | fi | |
387 | ||
388 | if test "$ac_cv_type_ssize_t" = "yes"; then | |
389 | ssize_t_value="ssize_t" | |
390 | else | |
391 | ssize_t_value="switch_int32_t" | |
392 | fi | |
393 | ||
394 | APR_CHECK_SIZEOF_EXTENDED([#include <sys/types.h>], ssize_t, 8) | |
395 | ||
396 | if test "$ac_cv_sizeof_ssize_t" = "$ac_cv_sizeof_int"; then | |
397 | ssize_t_fmt='#define SWITCH_SSIZE_T_FMT "d"' | |
398 | elif test "$ac_cv_sizeof_ssize_t" = "$ac_cv_sizeof_long"; then | |
399 | ssize_t_fmt='#define SWITCH_SSIZE_T_FMT "ld"' | |
400 | else | |
401 | ssize_t_fmt='#error Can not determine the proper size for ssize_t' | |
402 | fi | |
403 | ||
404 | APR_CHECK_SIZEOF_EXTENDED([#include <stddef.h>], size_t, 8) | |
405 | ||
406 | if test "$ac_cv_sizeof_size_t" = "$ac_cv_sizeof_int"; then | |
407 | size_t_fmt='#define SWITCH_SIZE_T_FMT "d"' | |
408 | elif test "$ac_cv_sizeof_size_t" = "$ac_cv_sizeof_long"; then | |
409 | size_t_fmt='#define SWITCH_SIZE_T_FMT "ld"' | |
410 | else | |
411 | size_t_fmt='#error Can not determine the proper size for size_t' | |
412 | fi | |
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. | |
419 | case $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 | ;; | |
452 | esac | |
453 | ||
454 | AC_SUBST(voidp_size) | |
455 | AC_SUBST(short_value) | |
456 | AC_SUBST(int_value) | |
457 | AC_SUBST(long_value) | |
458 | AC_SUBST(int64_value) | |
459 | AC_SUBST(size_t_value) | |
460 | AC_SUBST(ssize_t_value) | |
461 | AC_SUBST(int64_t_fmt) | |
462 | AC_SUBST(uint64_t_fmt) | |
463 | AC_SUBST(ssize_t_fmt) | |
464 | AC_SUBST(size_t_fmt) | |
b552cb3a MB |
465 | AC_SUBST(libdir) |
466 | AC_SUBST(bindir) | |
467 | AC_SUBST(includedir) | |
42e78242 | 468 | |
bc34fb76 MJ |
469 | AC_PATH_PROGS(ZCAT, gunzip gzcat gzip zcat) |
470 | AC_PATH_PROGS(TAR, gtar tar) | |
471 | AC_PATH_PROGS(WGET, wget) | |
472 | AC_PATH_PROGS(CURL, curl) | |
c99d8c9b MJ |
473 | GETLIB="cd $switch_srcdir/libs && ${SHELL} $switch_srcdir/build/getlib.sh" |
474 | AC_SUBST(GETLIB) | |
3d5fcabe MJ |
475 | GETSOUNDS="${SHELL} $switch_srcdir/build/getsounds.sh" |
476 | AC_SUBST(GETSOUNDS) | |
c99d8c9b | 477 | |
bc34fb76 | 478 | |
f85be6ff MJ |
479 | LIBCURL_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']) |
480 | AC_SUBST(LIBCURL_DEPS) | |
481 | ||
4d62a1ad | 482 | AC_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 | 485 | AC_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 |
488 | if 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!])] )] ) | |
492 | fi | |
493 | ||
e69fe7e3 | 494 | AX_CHECK_JAVA |
7df787b7 | 495 | |
4d62a1ad | 496 | AM_CONDITIONAL([ADD_ODBC],[test "x$enable_core_odbc_support" != "xno"]) |
c5c13c26 | 497 | AM_CONDITIONAL([ADD_LIBEDIT],[test "x$enable_core_libedit_support" != "xno"]) |
778a82cc | 498 | AM_CONDITIONAL([HAVE_MYSQL],[test "$found_mysql" = "yes"]) |
49a0eb29 | 499 | |
e8c88aa1 SK |
500 | # |
501 | # Python checks for mod_python | |
502 | # | |
503 | AC_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 |
510 | if test "$with_python" != "no" |
511 | then | |
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 |
617 | else | |
618 | AC_MSG_WARN([python support disabled, building mod_python will fail!]) | |
619 | fi | |
620 | ||
42e78242 | 621 | AC_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 | 636 | AM_CONDITIONAL(ISLINUX, [test `uname -s` = Linux]) |
db399276 | 637 | AM_CONDITIONAL(ISMAC, [test `uname -s` = Darwin]) |
a092a55a | 638 | AM_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 | |
642 | LIBTOOL='`if test -z "$(VERBOSE)" ; then echo $(SHELL) $(switch_builddir)/quiet_libtool ;else echo $(switch_builddir)/libtool; fi;`' | |
643 | TOUCH_TARGET='if test -f "$@";then touch "$@";fi;' | |
564cd368 | 644 | CONF_MODULES='\`grep -v "\#" $(switch_builddir)/modules.conf | sed -e "s|^.*/||" | sort | uniq \`' |
ed960392 | 645 | CONF_DISABLED_MODULES='\`grep "\#" $(switch_builddir)/modules.conf | sed -e "s|^.*/||" | sort | uniq \`' |
5f053e18 MJ |
646 | OUR_MODS='`if test -z "$(MODULES)" ; then tmp_mods="$(CONF_MODULES)"; else tmp_mods="$(MODULES)" ; fi ; mods=\`for i in $$tmp_mods ; do echo $$i-all ; done \`; echo $$mods `' |
647 | OUR_CLEAN_MODS='`if test -z "$(MODULES)" ; then tmp_mods="$(CONF_MODULES)"; else tmp_mods="$(MODULES)" ; fi ; mods=\`for i in $$tmp_mods ; do echo $$i-clean ; done \`; echo $$mods `' | |
648 | OUR_INSTALL_MODS='`if test -z "$(MODULES)" ; then tmp_mods="$(CONF_MODULES)"; else tmp_mods="$(MODULES)" ; fi ; mods=\`for i in $$tmp_mods ; do echo $$i-install ; done\`; echo $$mods `' | |
649 | OUR_UNINSTALL_MODS='`if test -z "$(MODULES)" ; then tmp_mods="$(CONF_MODULES)"; else tmp_mods="$(MODULES)" ; fi ; mods=\`for i in $$tmp_mods ; do echo $$i-uninstall ; done\`; echo $$mods `' | |
ed960392 AM |
650 | OUR_DISABLED_MODS='`tmp_mods="$(CONF_DISABLED_MODULES)"; mods=\`for i in $$tmp_mods ; do echo $$i-all ; done \`; echo $$mods `' |
651 | OUR_DISABLED_CLEAN_MODS='`tmp_mods="$(CONF_DISABLED_MODULES)"; mods=\`for i in $$tmp_mods ; do echo $$i-clean ; done \`; echo $$mods `' | |
652 | OUR_DISABLED_INSTALL_MODS='`tmp_mods="$(CONF_DISABLED_MODULES)"; mods=\`for i in $$tmp_mods ; do echo $$i-install ; done\`; echo $$mods `' | |
653 | OUR_DISABLED_UNINSTALL_MODS='`tmp_mods="$(CONF_DISABLED_MODULES)"; mods=\`for i in $$tmp_mods ; do echo $$i-uninstall ; done\`; echo $$mods `' | |
654 | ||
655 | 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`' | |
5f053e18 | 656 | #AM_MAKEFLAGS='`test -n "$(VERBOSE)" || echo -s`' |
c7753b06 MJ |
657 | AC_SUBST(LIBTOOL) |
658 | AC_SUBST(TOUCH_TARGET) | |
ed960392 | 659 | AC_SUBST(CONF_DISABLED_MODULES) |
5f053e18 | 660 | AC_SUBST(CONF_MODULES) |
ed960392 | 661 | |
5f053e18 MJ |
662 | AC_SUBST(OUR_MODS) |
663 | AC_SUBST(OUR_CLEAN_MODS) | |
664 | AC_SUBST(OUR_INSTALL_MODS) | |
665 | AC_SUBST(OUR_UNINSTALL_MODS) | |
ed960392 AM |
666 | AC_SUBST(OUR_DISABLED_MODS) |
667 | AC_SUBST(OUR_DISABLED_CLEAN_MODS) | |
668 | AC_SUBST(OUR_DISABLED_INSTALL_MODS) | |
669 | AC_SUBST(OUR_DISABLED_UNINSTALL_MODS) | |
c7753b06 MJ |
670 | AC_SUBST(AM_MAKEFLAGS) |
671 | ||
46f6981d MJ |
672 | # Run configure in all the subdirs |
673 | AC_CONFIG_SUBDIRS(libs/srtp) | |
674 | AC_CONFIG_SUBDIRS(libs/sqlite) | |
675 | AC_CONFIG_SUBDIRS(libs/libresample) | |
99b12efe MB |
676 | if test "$enable_core_libedit_support" = "yes" ; then |
677 | AC_CONFIG_SUBDIRS(libs/libedit) | |
678 | fi | |
e1fe36f1 | 679 | |
46f6981d MJ |
680 | AC_CONFIG_SUBDIRS(libs/pcre) |
681 | AC_CONFIG_SUBDIRS(libs/apr) | |
682 | AC_CONFIG_SUBDIRS(libs/apr-util) | |
ad555456 | 683 | AC_CONFIG_SUBDIRS(libs/voipcodecs) |
ee3fc89f | 684 | AC_CONFIG_SUBDIRS(libs/codec/ilbc) |
ee3fc89f | 685 | AC_CONFIG_SUBDIRS(libs/curl) |
ee3fc89f MJ |
686 | AC_CONFIG_SUBDIRS(libs/iksemel) |
687 | AC_CONFIG_SUBDIRS(libs/js/nsprpub) | |
688 | AC_CONFIG_SUBDIRS(libs/js) | |
689 | AC_CONFIG_SUBDIRS(libs/libdingaling) | |
ee3fc89f MJ |
690 | AC_CONFIG_SUBDIRS(libs/libsndfile) |
691 | AC_CONFIG_SUBDIRS(libs/sofia-sip) | |
692 | AC_CONFIG_SUBDIRS(libs/speex) | |
ee3fc89f | 693 | AC_CONFIG_SUBDIRS(libs/portaudio) |
6cc890bf | 694 | AC_CONFIG_SUBDIRS(libs/openzap) |
e1fe36f1 | 695 | AC_CHECK_LIB([tiff], [TIFFOpen], AC_CONFIG_SUBDIRS(libs/spandsp), , -lm) |
ee3fc89f | 696 | |
6e81dda1 | 697 | AC_OUTPUT |