]> git.ipfire.org Git - thirdparty/freeswitch.git/blame - configure.in
doh
[thirdparty/freeswitch.git] / configure.in
CommitLineData
4da77ea5
AM
1# -*- Autoconf -*-
2# Process this file with autoconf to produce a configure script.
3
7a5bc3b7 4
4da77ea5 5AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS)
e8b9a4f7 6AC_CONFIG_AUX_DIR(build/config)
4da77ea5
AM
7AM_INIT_AUTOMAKE(libfreeswitch,0.1)
8AC_CONFIG_SRCDIR([src/switch.c])
42e78242
MJ
9AC_CONFIG_HEADER([src/include/switch_private.h])
10
a642381f 11AC_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
13if test "x$prefix" = "xNONE" ; then
14 prefix='/usr/local/freeswitch'
15fi
55b3e6cb 16
31d1e20f
BW
17AC_CANONICAL_HOST
18
55b3e6cb
MJ
19# Absolute source/build directory
20switch_srcdir=`(cd $srcdir && pwd)`
21switch_builddir=`pwd`
22AC_SUBST(switch_srcdir)
23AC_SUBST(switch_builddir)
24
1481d37f
MJ
25moddir=$prefix/mod
26AC_SUBST(moddir)
27
6bc48b70
MJ
28#Set default language
29AC_LANG_C
4da77ea5
AM
30# Checks for programs.
31AC_PROG_CC
bac1e3fd 32AC_PROG_AWK
4da77ea5 33AC_PROG_MAKE_SET
4da77ea5 34AC_PROG_INSTALL
bac1e3fd 35AC_PROG_LIBTOOL
4da77ea5 36
6bc48b70
MJ
37#Check for compiler vendor
38AX_COMPILER_VENDOR
39
40# Optimize
41AC_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
44if test "${enable_optimizer}" = "yes" ; then
45 AC_DEFINE([OPTIMZER],[],[Enable Optimization.])
46 AX_CC_MAXOPT
47fi
48
49# Enable debugging
50AC_ARG_ENABLE(debug,
51[AC_HELP_STRING([--enable-debug],[build with debug information])],[enable_debug="$enable_debug"],[enable_debug="yes"])
52
53if test "${enable_debug}" = "yes"; then
54 AC_DEFINE([DEBUG],[],[Enable extra debugging.])
55 AX_CFLAGS_WARN_ALL_ANSI
56fi
57
58AM_CONDITIONAL([WANT_DEBUG],[test "${enable_debug}" = "yes"])
59
4341b8e6
MJ
60# Optional Features
61
62AC_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
66RESAMPLE_LIB=
67RESAMPLE_CFLAGS=
68if test "${enable_resample}" = "yes"; then
69 RESAMPLE_LIB="libs/libresample/libresample.la"
70 RESAMPLE_CFLAGS="-I${switch_srcdir}/libs/libresample/include"
71else
72 AC_DEFINE([DISABLE_RESAMPLE],[],[Disable the embedded resampler])
73fi
74
75AC_SUBST(RESAMPLE_LIB)
76AC_SUBST(RESAMPLE_CFLAGS)
77
78AM_CONDITIONAL([USE_INTREE_RESAMPLE],[test "${enable_resample}" = "yes"])
79
55b3e6cb 80# set defaults for use on all platforms
3a541262
AM
81SWITCH_AM_CFLAGS="-I${switch_srcdir}/src/include -I${switch_srcdir}/libs/libteletone/src"
82SWITCH_AM_CXXFLAGS="-I${switch_srcdir}/src/include -I${switch_srcdir}/libs/libteletone/src"
31d1e20f 83SWITCH_AM_LDFLAGS="-lm -L/usr/local/lib"
55b3e6cb
MJ
84
85#set SOLINK variable based on compiler and host
86if test "x${ax_cv_c_compiler_vendor}" = "xsun" ; then
87 SOLINK="-Bdynamic -dy -G"
88elif 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
97else
98 AC_ERROR([Please update configure.in with SOLINK values for your compiler])
99fi
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 103case "$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 113esac
55b3e6cb
MJ
114
115# tweak compiler specific flags
116if 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)
122elif 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
126fi
127
128# tweak platform specific flags
129case "$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 ;;
137esac
138
514bde18
MJ
139APR_REMOVEFROM(SWITCH_AM_CXXFLAGS, -std=c99)
140
55b3e6cb 141AC_SUBST(SWITCH_AM_CFLAGS)
514bde18 142AC_SUBST(SWITCH_AM_CXXFLAGS)
55b3e6cb 143AC_SUBST(SWITCH_AM_LDFLAGS)
6bc48b70
MJ
144AC_SUBST(SOLINK)
145AC_SUBST(DYNAMIC_LIB_EXTEN)
6bc48b70 146
4da77ea5
AM
147# Checks for header files.
148AC_HEADER_DIRENT
149AC_HEADER_STDC
a6e9f279 150AC_CHECK_HEADERS([sys/types.h])
4da77ea5
AM
151
152# Checks for typedefs, structures, and compiler characteristics.
153AC_C_CONST
154AC_C_INLINE
155AC_TYPE_SIZE_T
156AC_HEADER_TIME
157AC_STRUCT_TM
158
159# Checks for library functions.
160AC_PROG_GCC_TRADITIONAL
161AC_FUNC_MALLOC
162AC_TYPE_SIGNAL
163AC_FUNC_STRFTIME
1386d846 164AC_CHECK_FUNCS([gethostname vasprintf mmap mlock mlockall usleep])
4da77ea5 165
44cc7d5c 166AC_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
169AC_CHECK_SIZEOF(char, 1)
170AC_CHECK_SIZEOF(int, 4)
171AC_CHECK_SIZEOF(long, 4)
172AC_CHECK_SIZEOF(short, 2)
173AC_CHECK_SIZEOF(long long, 8)
174AC_TYPE_SIZE_T
175AC_CHECK_TYPE(ssize_t, int)
176
177# Checks for pointer size
178AC_CHECK_SIZEOF(void*, 4)
179
180if test "x$ac_cv_sizeof_voidp" != "x"; then
181 voidp_size=$ac_cv_sizeof_voidp
182else
183 AC_ERROR([Cannot determine size of void*])
184fi
185
186if test "$ac_cv_sizeof_short" = "2"; then
187 short_value=short
188fi
189if test "$ac_cv_sizeof_int" = "4"; then
190 int_value=int
191fi
192
193if 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
198elif 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
203elif 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"
208elif 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"
213else
214 AC_ERROR([could not detect a 64-bit integer type])
215fi
216
217if test "$ac_cv_type_size_t" = "yes"; then
218 size_t_value="size_t"
219else
220 size_t_value="switch_int32_t"
221fi
222
223if test "$ac_cv_type_ssize_t" = "yes"; then
224 ssize_t_value="ssize_t"
225else
226 ssize_t_value="switch_int32_t"
227fi
228
229APR_CHECK_SIZEOF_EXTENDED([#include <sys/types.h>], ssize_t, 8)
230
231if test "$ac_cv_sizeof_ssize_t" = "$ac_cv_sizeof_int"; then
232 ssize_t_fmt='#define SWITCH_SSIZE_T_FMT "d"'
233elif test "$ac_cv_sizeof_ssize_t" = "$ac_cv_sizeof_long"; then
234 ssize_t_fmt='#define SWITCH_SSIZE_T_FMT "ld"'
235else
236 ssize_t_fmt='#error Can not determine the proper size for ssize_t'
237fi
238
239APR_CHECK_SIZEOF_EXTENDED([#include <stddef.h>], size_t, 8)
240
241if test "$ac_cv_sizeof_size_t" = "$ac_cv_sizeof_int"; then
242 size_t_fmt='#define SWITCH_SIZE_T_FMT "d"'
243elif test "$ac_cv_sizeof_size_t" = "$ac_cv_sizeof_long"; then
244 size_t_fmt='#define SWITCH_SIZE_T_FMT "ld"'
245else
246 size_t_fmt='#error Can not determine the proper size for size_t'
247fi
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.
254case $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 ;;
284esac
285
286AC_SUBST(voidp_size)
287AC_SUBST(short_value)
288AC_SUBST(int_value)
289AC_SUBST(long_value)
290AC_SUBST(int64_value)
291AC_SUBST(size_t_value)
292AC_SUBST(ssize_t_value)
293AC_SUBST(int64_t_fmt)
294AC_SUBST(uint64_t_fmt)
295AC_SUBST(ssize_t_fmt)
296AC_SUBST(size_t_fmt)
42e78242 297
bc34fb76
MJ
298AC_PATH_PROGS(ZCAT, gunzip gzcat gzip zcat)
299AC_PATH_PROGS(TAR, gtar tar)
300AC_PATH_PROGS(WGET, wget)
301AC_PATH_PROGS(CURL, curl)
c99d8c9b
MJ
302GETLIB="cd $switch_srcdir/libs && ${SHELL} $switch_srcdir/build/getlib.sh"
303AC_SUBST(GETLIB)
304
bc34fb76 305
f85be6ff
MJ
306LIBCURL_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'])
307AC_SUBST(LIBCURL_DEPS)
308
28173df2
AM
309AC_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])
313AX_LIB_MYSQL
314
28173df2 315AM_CONDITIONAL([CRASHPROT],[test "x$enable_crash_prot" != "xno"])
7df787b7 316AM_CONDITIONAL([HAVE_MYSQL],[test "$have_mysql" = "yes"])
49a0eb29 317
42e78242 318AC_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 326AM_CONDITIONAL(ISLINUX, [test `uname -s` = Linux])
db399276 327AM_CONDITIONAL(ISMAC, [test `uname -s` = Darwin])
a092a55a 328AM_CONDITIONAL(IS64BITLINUX, [test `uname -m` = x86_64])
a6e9f279 329
46f6981d
MJ
330# Run configure in all the subdirs
331AC_CONFIG_SUBDIRS(libs/srtp)
332AC_CONFIG_SUBDIRS(libs/sqlite)
333AC_CONFIG_SUBDIRS(libs/libresample)
46f6981d
MJ
334AC_CONFIG_SUBDIRS(libs/pcre)
335AC_CONFIG_SUBDIRS(libs/apr)
336AC_CONFIG_SUBDIRS(libs/apr-util)
ee3fc89f
MJ
337AC_CONFIG_SUBDIRS(libs/codec/g7xx)
338AC_CONFIG_SUBDIRS(libs/codec/g726)
339AC_CONFIG_SUBDIRS(libs/codec/gsm)
340AC_CONFIG_SUBDIRS(libs/codec/ilbc)
341AC_CONFIG_SUBDIRS(libs/codec/lpc10)
342AC_CONFIG_SUBDIRS(libs/curl)
343AC_CONFIG_SUBDIRS(libs/iax)
344AC_CONFIG_SUBDIRS(libs/iksemel)
345AC_CONFIG_SUBDIRS(libs/js/nsprpub)
346AC_CONFIG_SUBDIRS(libs/js)
347AC_CONFIG_SUBDIRS(libs/libdingaling)
348AC_CONFIG_SUBDIRS(libs/libetpan)
349AC_CONFIG_SUBDIRS(libs/libsndfile)
350AC_CONFIG_SUBDIRS(libs/sofia-sip)
351AC_CONFIG_SUBDIRS(libs/speex)
352AC_CONFIG_SUBDIRS(libs/xmlrpc-c)
353AC_CONFIG_SUBDIRS(libs/portaudio)
354
6e81dda1 355AC_OUTPUT