]>
Commit | Line | Data |
---|---|---|
4da77ea5 AM |
1 | # -*- Autoconf -*- |
2 | # Process this file with autoconf to produce a configure script. | |
3 | ||
7a5bc3b7 | 4 | |
4da77ea5 | 5 | AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS) |
e8b9a4f7 | 6 | AC_CONFIG_AUX_DIR(build/config) |
4da77ea5 AM |
7 | AM_INIT_AUTOMAKE(libfreeswitch,0.1) |
8 | AC_CONFIG_SRCDIR([src/switch.c]) | |
42e78242 MJ |
9 | AC_CONFIG_HEADER([src/include/switch_private.h]) |
10 | ||
a642381f | 11 | AC_PREFIX_DEFAULT(/usr/local/freeswitch) |
94206d80 MJ |
12 | # AC_PREFIX_DEFAULT does not get expanded until too late so we need to do this to use prefix in this script |
13 | if test "x$prefix" = "xNONE" ; then | |
14 | prefix='/usr/local/freeswitch' | |
15 | fi | |
55b3e6cb | 16 | |
31d1e20f BW |
17 | AC_CANONICAL_HOST |
18 | ||
55b3e6cb MJ |
19 | # Absolute source/build directory |
20 | switch_srcdir=`(cd $srcdir && pwd)` | |
21 | switch_builddir=`pwd` | |
22 | AC_SUBST(switch_srcdir) | |
23 | AC_SUBST(switch_builddir) | |
24 | ||
1481d37f MJ |
25 | moddir=$prefix/mod |
26 | AC_SUBST(moddir) | |
27 | ||
6bc48b70 MJ |
28 | #Set default language |
29 | AC_LANG_C | |
4da77ea5 AM |
30 | # Checks for programs. |
31 | AC_PROG_CC | |
bac1e3fd | 32 | AC_PROG_AWK |
4da77ea5 | 33 | AC_PROG_MAKE_SET |
4da77ea5 | 34 | AC_PROG_INSTALL |
bac1e3fd | 35 | AC_PROG_LIBTOOL |
4da77ea5 | 36 | |
6bc48b70 MJ |
37 | #Check for compiler vendor |
38 | AX_COMPILER_VENDOR | |
39 | ||
40 | # Optimize | |
41 | AC_ARG_ENABLE(optimization, | |
42 | [AC_HELP_STRING([--enable-optimization],[Set if you want us to add max optimising compiler flags])],[enable_optimizer="$enableval"],[enable_optimizer="no"]) | |
43 | ||
44 | if test "${enable_optimizer}" = "yes" ; then | |
45 | AC_DEFINE([OPTIMZER],[],[Enable Optimization.]) | |
46 | AX_CC_MAXOPT | |
47 | fi | |
48 | ||
49 | # Enable debugging | |
50 | AC_ARG_ENABLE(debug, | |
51 | [AC_HELP_STRING([--enable-debug],[build with debug information])],[enable_debug="$enable_debug"],[enable_debug="yes"]) | |
52 | ||
53 | if test "${enable_debug}" = "yes"; then | |
54 | AC_DEFINE([DEBUG],[],[Enable extra debugging.]) | |
55 | AX_CFLAGS_WARN_ALL_ANSI | |
56 | fi | |
57 | ||
58 | AM_CONDITIONAL([WANT_DEBUG],[test "${enable_debug}" = "yes"]) | |
59 | ||
4341b8e6 MJ |
60 | # Optional Features |
61 | ||
62 | AC_ARG_ENABLE(resample, | |
63 | [AC_HELP_STRING([--enable-resample],[build with embedded resamper])],[enable_resample="$enable_resample"],[enable_resample="yes"]) | |
64 | ||
65 | # We should add checking for out of tree libresample here | |
66 | RESAMPLE_LIB= | |
67 | RESAMPLE_CFLAGS= | |
68 | if test "${enable_resample}" = "yes"; then | |
69 | RESAMPLE_LIB="libs/libresample/libresample.la" | |
70 | RESAMPLE_CFLAGS="-I${switch_srcdir}/libs/libresample/include" | |
71 | else | |
72 | AC_DEFINE([DISABLE_RESAMPLE],[],[Disable the embedded resampler]) | |
73 | fi | |
74 | ||
75 | AC_SUBST(RESAMPLE_LIB) | |
76 | AC_SUBST(RESAMPLE_CFLAGS) | |
77 | ||
78 | AM_CONDITIONAL([USE_INTREE_RESAMPLE],[test "${enable_resample}" = "yes"]) | |
79 | ||
55b3e6cb | 80 | # set defaults for use on all platforms |
3a541262 AM |
81 | SWITCH_AM_CFLAGS="-I${switch_srcdir}/src/include -I${switch_srcdir}/libs/libteletone/src" |
82 | SWITCH_AM_CXXFLAGS="-I${switch_srcdir}/src/include -I${switch_srcdir}/libs/libteletone/src" | |
31d1e20f | 83 | SWITCH_AM_LDFLAGS="-lm -L/usr/local/lib" |
55b3e6cb MJ |
84 | |
85 | #set SOLINK variable based on compiler and host | |
86 | if test "x${ax_cv_c_compiler_vendor}" = "xsun" ; then | |
87 | SOLINK="-Bdynamic -dy -G" | |
88 | elif test "x${ax_cv_c_compiler_vendor}" = "xgnu" ; then | |
89 | case "$host" in | |
6ae16d15 | 90 | *darwin*) |
55b3e6cb MJ |
91 | SOLINK="-dynamic -bundle -force-flat-namespace" |
92 | ;; | |
93 | *) | |
94 | SOLINK="-shared -Xlinker -x" | |
95 | ;; | |
96 | esac | |
97 | else | |
98 | AC_ERROR([Please update configure.in with SOLINK values for your compiler]) | |
99 | fi | |
6bc48b70 | 100 | |
55b3e6cb MJ |
101 | # set DYNAMIC_LIB_EXTEN |
102 | # we should really be using libtool so we don't need to do this | |
6bc48b70 | 103 | case "$host" in |
6ae16d15 | 104 | *darwin*) |
55b3e6cb MJ |
105 | DYNAMIC_LIB_EXTEN="dylib" |
106 | ;; | |
107 | *cygwin* | *mingw*) | |
108 | DYNAMIC_LIB_EXTEN="dll" | |
109 | ;; | |
110 | *) | |
111 | DYNAMIC_LIB_EXTEN="so" | |
112 | ;; | |
6bc48b70 | 113 | esac |
55b3e6cb MJ |
114 | |
115 | # tweak compiler specific flags | |
116 | if test "x${ax_cv_c_compiler_vendor}" = "xsun" ; then | |
117 | APR_ADDTO(SWITCH_AM_CFLAGS, -KPIC) | |
118 | APR_ADDTO(SWITCH_AM_CFLAGS, -DPIC) | |
514bde18 MJ |
119 | APR_ADDTO(SWITCH_AM_CXXFLAGS, -KPIC) |
120 | APR_ADDTO(SWITCH_AM_CXXFLAGS, -DPIC) | |
55b3e6cb MJ |
121 | APR_ADDTO(SWITCH_AM_LDFLAGS, -R${prefix}/lib) |
122 | elif test "x${ax_cv_c_compiler_vendor}" = "xgnu" ; then | |
123 | APR_ADDTO(SWITCH_AM_CFLAGS, -fPIC) | |
514bde18 | 124 | APR_ADDTO(SWITCH_AM_CXXFLAGS, -fPIC) |
44ef8650 | 125 | APR_ADDTO(SWITCH_AM_CFLAGS, -Werror) |
55b3e6cb MJ |
126 | fi |
127 | ||
128 | # tweak platform specific flags | |
129 | case "$host" in | |
6ae16d15 | 130 | *darwin*) |
55b3e6cb MJ |
131 | APR_ADDTO(SWITCH_AM_CFLAGS, -DMACOSX) |
132 | APR_REMOVEFROM(SWITCH_AM_CFLAGS, -fPIC) | |
133 | ;; | |
134 | *-solaris2*) | |
135 | APR_ADDTO(SWITCH_AM_CFLAGS, -DPATH_MAX=2048) | |
136 | ;; | |
137 | esac | |
138 | ||
514bde18 MJ |
139 | APR_REMOVEFROM(SWITCH_AM_CXXFLAGS, -std=c99) |
140 | ||
55b3e6cb | 141 | AC_SUBST(SWITCH_AM_CFLAGS) |
514bde18 | 142 | AC_SUBST(SWITCH_AM_CXXFLAGS) |
55b3e6cb | 143 | AC_SUBST(SWITCH_AM_LDFLAGS) |
6bc48b70 MJ |
144 | AC_SUBST(SOLINK) |
145 | AC_SUBST(DYNAMIC_LIB_EXTEN) | |
6bc48b70 | 146 | |
4da77ea5 AM |
147 | # Checks for header files. |
148 | AC_HEADER_DIRENT | |
149 | AC_HEADER_STDC | |
a6e9f279 | 150 | AC_CHECK_HEADERS([sys/types.h]) |
4da77ea5 AM |
151 | |
152 | # Checks for typedefs, structures, and compiler characteristics. | |
153 | AC_C_CONST | |
154 | AC_C_INLINE | |
155 | AC_TYPE_SIZE_T | |
156 | AC_HEADER_TIME | |
157 | AC_STRUCT_TM | |
158 | ||
159 | # Checks for library functions. | |
160 | AC_PROG_GCC_TRADITIONAL | |
161 | AC_FUNC_MALLOC | |
162 | AC_TYPE_SIGNAL | |
163 | AC_FUNC_STRFTIME | |
1386d846 | 164 | AC_CHECK_FUNCS([gethostname vasprintf mmap mlock mlockall usleep]) |
4da77ea5 | 165 | |
44cc7d5c | 166 | AC_C_BIGENDIAN(AC_DEFINE([SWITCH_BYTE_ORDER],__BIG_ENDIAN,[Big Endian]),AC_DEFINE([SWITCH_BYTE_ORDER],__LITTLE_ENDIAN,[Little Endian])) |
49a0eb29 | 167 | |
42e78242 MJ |
168 | # Checks for integer size |
169 | AC_CHECK_SIZEOF(char, 1) | |
170 | AC_CHECK_SIZEOF(int, 4) | |
171 | AC_CHECK_SIZEOF(long, 4) | |
172 | AC_CHECK_SIZEOF(short, 2) | |
173 | AC_CHECK_SIZEOF(long long, 8) | |
174 | AC_TYPE_SIZE_T | |
175 | AC_CHECK_TYPE(ssize_t, int) | |
176 | ||
177 | # Checks for pointer size | |
178 | AC_CHECK_SIZEOF(void*, 4) | |
179 | ||
180 | if test "x$ac_cv_sizeof_voidp" != "x"; then | |
181 | voidp_size=$ac_cv_sizeof_voidp | |
182 | else | |
183 | AC_ERROR([Cannot determine size of void*]) | |
184 | fi | |
185 | ||
186 | if test "$ac_cv_sizeof_short" = "2"; then | |
187 | short_value=short | |
188 | fi | |
189 | if test "$ac_cv_sizeof_int" = "4"; then | |
190 | int_value=int | |
191 | fi | |
192 | ||
193 | if test "$ac_cv_sizeof_int" = "8"; then | |
194 | int64_t_fmt='#define SWITCH_INT64_T_FMT "d"' | |
195 | uint64_t_fmt='#define SWITCH_UINT64_T_FMT "u"' | |
196 | int64_value="int" | |
197 | long_value=int | |
198 | elif test "$ac_cv_sizeof_long" = "8"; then | |
199 | int64_t_fmt='#define SWITCH_INT64_T_FMT "ld"' | |
200 | uint64_t_fmt='#define SWITCH_UINT64_T_FMT "lu"' | |
201 | int64_value="long" | |
202 | long_value=long | |
203 | elif test "$ac_cv_sizeof_long_long" = "8"; then | |
204 | int64_t_fmt='#define SWITCH_INT64_T_FMT "lld"' | |
205 | uint64_t_fmt='#define SWITCH_UINT64_T_FMT "llu"' | |
206 | int64_value="long long" | |
207 | long_value="long long" | |
208 | elif test "$ac_cv_sizeof_longlong" = "8"; then | |
209 | int64_t_fmt='#define SWITCH_INT64_T_FMT "qd"' | |
210 | uint64_t_fmt='#define SWITCH_UINT64_T_FMT "qu"' | |
211 | int64_value="__int64" | |
212 | long_value="__int64" | |
213 | else | |
214 | AC_ERROR([could not detect a 64-bit integer type]) | |
215 | fi | |
216 | ||
217 | if test "$ac_cv_type_size_t" = "yes"; then | |
218 | size_t_value="size_t" | |
219 | else | |
220 | size_t_value="switch_int32_t" | |
221 | fi | |
222 | ||
223 | if test "$ac_cv_type_ssize_t" = "yes"; then | |
224 | ssize_t_value="ssize_t" | |
225 | else | |
226 | ssize_t_value="switch_int32_t" | |
227 | fi | |
228 | ||
229 | APR_CHECK_SIZEOF_EXTENDED([#include <sys/types.h>], ssize_t, 8) | |
230 | ||
231 | if test "$ac_cv_sizeof_ssize_t" = "$ac_cv_sizeof_int"; then | |
232 | ssize_t_fmt='#define SWITCH_SSIZE_T_FMT "d"' | |
233 | elif test "$ac_cv_sizeof_ssize_t" = "$ac_cv_sizeof_long"; then | |
234 | ssize_t_fmt='#define SWITCH_SSIZE_T_FMT "ld"' | |
235 | else | |
236 | ssize_t_fmt='#error Can not determine the proper size for ssize_t' | |
237 | fi | |
238 | ||
239 | APR_CHECK_SIZEOF_EXTENDED([#include <stddef.h>], size_t, 8) | |
240 | ||
241 | if test "$ac_cv_sizeof_size_t" = "$ac_cv_sizeof_int"; then | |
242 | size_t_fmt='#define SWITCH_SIZE_T_FMT "d"' | |
243 | elif test "$ac_cv_sizeof_size_t" = "$ac_cv_sizeof_long"; then | |
244 | size_t_fmt='#define SWITCH_SIZE_T_FMT "ld"' | |
245 | else | |
246 | size_t_fmt='#error Can not determine the proper size for size_t' | |
247 | fi | |
248 | ||
249 | # Basically, we have tried to figure out the correct format strings | |
250 | # for SWITCH types which vary between platforms, but we don't always get | |
251 | # it right. If you find that we don't get it right for your platform, | |
252 | # you can override our decision below. | |
253 | # NOTE: borrowed much of this logic from apr. | |
254 | case $host in | |
255 | s390*linux*) | |
256 | # uniquely, the 31-bit Linux/s390 uses "unsigned long int" | |
257 | # for size_t rather than "unsigned int": | |
258 | size_t_fmt='#define SWITCH_SIZE_T_FMT "lu"' | |
259 | ssize_t_fmt='#define SWITCH_SSIZE_T_FMT "ld"' | |
260 | ;; | |
261 | *-os2*) | |
262 | size_t_fmt='#define SWITCH_SIZE_T_FMT "lu"' | |
263 | ;; | |
264 | *aix4*|*aix5*) | |
265 | ssize_t_fmt='#define SWITCH_SSIZE_T_FMT "ld"' | |
266 | size_t_fmt='#define SWITCH_SIZE_T_FMT "ld"' | |
267 | ;; | |
268 | *beos*) | |
269 | ssize_t_fmt='#define SWITCH_SSIZE_T_FMT "ld"' | |
270 | size_t_fmt='#define SWITCH_SIZE_T_FMT "ld"' | |
271 | ;; | |
272 | *apple-darwin*) | |
273 | osver=`uname -r` | |
274 | case $osver in | |
275 | [0-7].*) | |
276 | ssize_t_fmt='#define SWITCH_SSIZE_T_FMT "d"' | |
277 | ;; | |
278 | *) | |
279 | ssize_t_fmt='#define SWITCH_SSIZE_T_FMT "ld"' | |
280 | ;; | |
281 | esac | |
282 | size_t_fmt='#define SWITCH_SIZE_T_FMT "lu"' | |
283 | ;; | |
284 | esac | |
285 | ||
286 | AC_SUBST(voidp_size) | |
287 | AC_SUBST(short_value) | |
288 | AC_SUBST(int_value) | |
289 | AC_SUBST(long_value) | |
290 | AC_SUBST(int64_value) | |
291 | AC_SUBST(size_t_value) | |
292 | AC_SUBST(ssize_t_value) | |
293 | AC_SUBST(int64_t_fmt) | |
294 | AC_SUBST(uint64_t_fmt) | |
295 | AC_SUBST(ssize_t_fmt) | |
296 | AC_SUBST(size_t_fmt) | |
42e78242 | 297 | |
bc34fb76 MJ |
298 | AC_PATH_PROGS(ZCAT, gunzip gzcat gzip zcat) |
299 | AC_PATH_PROGS(TAR, gtar tar) | |
300 | AC_PATH_PROGS(WGET, wget) | |
301 | AC_PATH_PROGS(CURL, curl) | |
c99d8c9b MJ |
302 | GETLIB="cd $switch_srcdir/libs && ${SHELL} $switch_srcdir/build/getlib.sh" |
303 | AC_SUBST(GETLIB) | |
304 | ||
bc34fb76 | 305 | |
f85be6ff MJ |
306 | 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']) |
307 | AC_SUBST(LIBCURL_DEPS) | |
308 | ||
28173df2 AM |
309 | AC_ARG_ENABLE(crash-protection, |
310 | [ --enable-crash-protection Compile with CRASH Protection],,[enable_crash_prot="no"]) | |
49a0eb29 | 311 | |
7df787b7 MJ |
312 | #AX_LIB_MYSQL([MINIMUM-VERSION]) |
313 | AX_LIB_MYSQL | |
314 | ||
28173df2 | 315 | AM_CONDITIONAL([CRASHPROT],[test "x$enable_crash_prot" != "xno"]) |
7df787b7 | 316 | AM_CONDITIONAL([HAVE_MYSQL],[test "$have_mysql" = "yes"]) |
49a0eb29 | 317 | |
42e78242 | 318 | AC_CONFIG_FILES([Makefile |
4ffd0bc0 | 319 | src/Makefile |
1481d37f | 320 | src/mod/Makefile |
7df787b7 | 321 | src/mod/event_handlers/mod_cdr/Makefile |
514bde18 | 322 | src/include/switch_am_config.h |
bc34fb76 | 323 | build/getlib.sh |
514bde18 | 324 | build/modmake.rules]) |
4da77ea5 | 325 | |
a6e9f279 | 326 | AM_CONDITIONAL(ISLINUX, [test `uname -s` = Linux]) |
db399276 | 327 | AM_CONDITIONAL(ISMAC, [test `uname -s` = Darwin]) |
a092a55a | 328 | AM_CONDITIONAL(IS64BITLINUX, [test `uname -m` = x86_64]) |
a6e9f279 | 329 | |
46f6981d MJ |
330 | # Run configure in all the subdirs |
331 | AC_CONFIG_SUBDIRS(libs/srtp) | |
332 | AC_CONFIG_SUBDIRS(libs/sqlite) | |
333 | AC_CONFIG_SUBDIRS(libs/libresample) | |
46f6981d MJ |
334 | AC_CONFIG_SUBDIRS(libs/pcre) |
335 | AC_CONFIG_SUBDIRS(libs/apr) | |
336 | AC_CONFIG_SUBDIRS(libs/apr-util) | |
ee3fc89f MJ |
337 | AC_CONFIG_SUBDIRS(libs/codec/g7xx) |
338 | AC_CONFIG_SUBDIRS(libs/codec/g726) | |
339 | AC_CONFIG_SUBDIRS(libs/codec/gsm) | |
340 | AC_CONFIG_SUBDIRS(libs/codec/ilbc) | |
341 | AC_CONFIG_SUBDIRS(libs/codec/lpc10) | |
342 | AC_CONFIG_SUBDIRS(libs/curl) | |
343 | AC_CONFIG_SUBDIRS(libs/iax) | |
344 | AC_CONFIG_SUBDIRS(libs/iksemel) | |
345 | AC_CONFIG_SUBDIRS(libs/js/nsprpub) | |
346 | AC_CONFIG_SUBDIRS(libs/js) | |
347 | AC_CONFIG_SUBDIRS(libs/libdingaling) | |
348 | AC_CONFIG_SUBDIRS(libs/libetpan) | |
349 | AC_CONFIG_SUBDIRS(libs/libsndfile) | |
350 | AC_CONFIG_SUBDIRS(libs/sofia-sip) | |
351 | AC_CONFIG_SUBDIRS(libs/speex) | |
352 | AC_CONFIG_SUBDIRS(libs/xmlrpc-c) | |
353 | AC_CONFIG_SUBDIRS(libs/portaudio) | |
354 | ||
6e81dda1 | 355 | AC_OUTPUT |