blob: b115abe1b83ba9778d17b4f2aa858d4b1ac2173c [file] [log] [blame]
Benny Prijonoce1db762007-02-14 02:21:08 +00001AC_INIT(pjproject,0.5.10)
Benny Prijono5b818b22006-09-17 22:58:51 +00002
3host_orig="$host"
4
Benny Prijonoc4c61d02006-08-20 20:47:34 +00005AC_CANONICAL_BUILD
6AC_CANONICAL_HOST
Benny Prijonoa9b372a2006-07-24 02:07:11 +00007AC_CANONICAL_TARGET
Benny Prijonoc4c61d02006-08-20 20:47:34 +00008AC_CONFIG_HEADER([pjlib/include/pj/compat/os_auto.h
9 pjlib/include/pj/compat/m_auto.h
Benny Prijonofe9bffd2007-01-27 17:44:13 +000010 pjmedia/include/pjmedia/config_auto.h
11 pjmedia/include/pjmedia-codec/config_auto.h
Benny Prijono7e0d75f2006-12-25 20:34:14 +000012 pjsip/include/pjsip/sip_autoconf.h
Benny Prijonoc4c61d02006-08-20 20:47:34 +000013 ])
14AC_CONFIG_FILES([build.mak
15 build/os-auto.mak
16 pjlib/build/os-auto.mak
17 pjlib-util/build/os-auto.mak
18 pjmedia/build/os-auto.mak
19 pjsip/build/os-auto.mak
Benny Prijonod1872312007-04-09 20:54:12 +000020 third_party/build/portaudio/Makefile
Benny Prijonoc4c61d02006-08-20 20:47:34 +000021 ])
Benny Prijonoc1fe23d2006-09-13 09:38:06 +000022
Benny Prijono12483112007-03-12 10:44:38 +000023
Benny Prijonoc1fe23d2006-09-13 09:38:06 +000024dnl
25dnl Setup default CFLAGS
26dnl
27if test "$CFLAGS" = ""; then
Benny Prijonod1459822006-10-04 20:56:39 +000028 CFLAGS="-O2"
Benny Prijonoc1fe23d2006-09-13 09:38:06 +000029else
30 CFLAGS="$CFLAGS"
31fi
32
33CXXFLAGS="$CFLAGS $CXXFLAGS"
34
Benny Prijonoa9b372a2006-07-24 02:07:11 +000035AC_PROG_CC
Benny Prijonoc4c61d02006-08-20 20:47:34 +000036AC_PROG_CXX
Benny Prijonoa9b372a2006-07-24 02:07:11 +000037AC_LANG_C
38
Benny Prijono12483112007-03-12 10:44:38 +000039AC_SUBST(ac_pjdir)
40ac_pjdir=`pwd`
41
Benny Prijonoc4c61d02006-08-20 20:47:34 +000042AC_CHECK_LIB(pthread,pthread_create)
Benny Prijonoc5b6dbf2006-09-10 16:33:48 +000043AC_CHECK_LIB(wsock32,puts)
44AC_CHECK_LIB(ws2_32,puts)
45AC_CHECK_LIB(ole32,puts)
46AC_CHECK_LIB(winmm,puts)
47AC_CHECK_LIB(socket,puts)
48AC_CHECK_LIB(rt,puts)
49AC_CHECK_LIB(nsl,puts)
Benny Prijonoc4c61d02006-08-20 20:47:34 +000050
51AC_MSG_RESULT([Setting PJ_M_NAME to $target_cpu])
52AC_DEFINE_UNQUOTED(PJ_M_NAME,["$target_cpu"])
53
Benny Prijonoc5b6dbf2006-09-10 16:33:48 +000054dnl
Benny Prijono1d971622006-09-10 22:27:40 +000055dnl Memory alignment detection
56dnl
57AC_MSG_CHECKING([memory alignment])
58case $target in
59 ia64-* | x86_64-* )
60 AC_DEFINE(PJ_POOL_ALIGNMENT, 8)
61 AC_MSG_RESULT([8 bytes])
62 ;;
63 * )
64 AC_DEFINE(PJ_POOL_ALIGNMENT, 4)
65 AC_MSG_RESULT([4 bytes (default)])
66 ;;
67esac
68
69
70dnl
Benny Prijonoc5b6dbf2006-09-10 16:33:48 +000071dnl Endianness detection
72dnl
Benny Prijonob466e232006-09-10 08:53:59 +000073AC_C_BIGENDIAN
Benny Prijonoc4c61d02006-08-20 20:47:34 +000074
Benny Prijonoc5b6dbf2006-09-10 16:33:48 +000075dnl
76dnl Legacy macros
77dnl
78case $target in
79 *mingw* | *cygw* | *win32* | *w32* )
80 AC_DEFINE(PJ_WIN32,1)
81 AC_DEFINE(PJ_WIN32_WINNT,0x0400)
82 AC_DEFINE(WIN32_LEAN_AND_MEAN)
83 ;;
84 *darwin*)
85 AC_DEFINE(PJ_DARWINOS,1)
86 ;;
87 *linux*)
88 AC_DEFINE(PJ_LINUX,1)
89 ;;
90 *rtems*)
91 AC_DEFINE(PJ_RTEMS,1)
92 ;;
93 *sunos* | *solaris* )
94 AC_DEFINE(PJ_SUNOS,1)
95 ;;
96 *)
97 ;;
98esac
99
100
101
102
Benny Prijonob466e232006-09-10 08:53:59 +0000103dnl # --disable-floating-point option
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000104AC_ARG_ENABLE(floating-point,
105 AC_HELP_STRING([--disable-floating-point],
106 [Disable floating point where possible]),
107 [if test "$enable_floating_point" = "no"; then
108 AC_DEFINE(PJ_HAS_FLOATING_POINT,0)
109 AC_MSG_RESULT([Checking if floating point is disabled... yes])
110 fi],
111 [
112 AC_DEFINE(PJ_HAS_FLOATING_POINT,1)
113 AC_MSG_RESULT([Checking if floating point is disabled... no])
114 AC_CHECK_LIB(m,fmod)
115 ])
116
117
Benny Prijonoa9b372a2006-07-24 02:07:11 +0000118AC_CHECK_HEADER(arpa/inet.h,[AC_DEFINE(PJ_HAS_ARPA_INET_H,1)])
119AC_CHECK_HEADER(assert.h,[AC_DEFINE(PJ_HAS_ASSERT_H,1)])
120AC_CHECK_HEADER(ctype.h,[AC_DEFINE(PJ_HAS_CTYPE_H,1)])
Benny Prijonoc5b6dbf2006-09-10 16:33:48 +0000121
122case $target in
123 *mingw* | *cygw* | *win32* | *w32* )
124 AC_DEFINE(PJ_HAS_ERRNO_H,0)
125 ;;
126 *)
127 AC_CHECK_HEADER(errno.h,[AC_DEFINE(PJ_HAS_ERRNO_H,1)])
128 ;;
129esac
130
Benny Prijonoa9b372a2006-07-24 02:07:11 +0000131AC_CHECK_HEADER(linux/socket.h,[AC_DEFINE(PJ_HAS_LINUX_SOCKET_H,1)])
132AC_CHECK_HEADER(malloc.h,[AC_DEFINE(PJ_HAS_MALLOC_H,1)])
133AC_CHECK_HEADER(netdb.h,[AC_DEFINE(PJ_HAS_NETDB_H,1)])
134AC_CHECK_HEADER(netinet/in.h,[AC_DEFINE(PJ_HAS_NETINET_IN_H,1)])
Benny Prijono87a00892007-02-01 00:33:12 +0000135AC_CHECK_HEADER(netinet/ip.h,[AC_DEFINE(PJ_HAS_NETINET_IP_H,1)])
Benny Prijonoa9b372a2006-07-24 02:07:11 +0000136AC_CHECK_HEADER(setjmp.h,[AC_DEFINE(PJ_HAS_SETJMP_H,1)])
137AC_CHECK_HEADER(stdarg.h,[AC_DEFINE(PJ_HAS_STDARG_H,1)])
138AC_CHECK_HEADER(stddef.h,[AC_DEFINE(PJ_HAS_STDDEF_H,1)])
139AC_CHECK_HEADER(stdio.h,[AC_DEFINE(PJ_HAS_STDIO_H,1)])
140AC_CHECK_HEADER(stdlib.h,[AC_DEFINE(PJ_HAS_STDLIB_H,1)])
141AC_CHECK_HEADER(string.h,[AC_DEFINE(PJ_HAS_STRING_H,1)])
142AC_CHECK_HEADER(sys/ioctl.h,[AC_DEFINE(PJ_HAS_SYS_IOCTL_H,1)])
143AC_CHECK_HEADER(sys/select.h,[AC_DEFINE(PJ_HAS_SYS_SELECT_H,1)])
144AC_CHECK_HEADER(sys/socket.h,[AC_DEFINE(PJ_HAS_SYS_SOCKET_H,1)])
145AC_CHECK_HEADER(sys/time.h,[AC_DEFINE(PJ_HAS_SYS_TIME_H,1)])
146AC_CHECK_HEADER(sys/timeb.h,[AC_DEFINE(PJ_HAS_SYS_TIMEB_H,1)])
147AC_CHECK_HEADER(sys/types.h,[AC_DEFINE(PJ_HAS_SYS_TYPES_H,1)])
148AC_CHECK_HEADER(time.h,[AC_DEFINE(PJ_HAS_TIME_H,1)])
149AC_CHECK_HEADER(unistd.h,[AC_DEFINE(PJ_HAS_UNISTD_H,1)])
150AC_CHECK_HEADER(mswsock.h,[AC_DEFINE(PJ_HAS_MSWSOCK_H,1)])
151AC_CHECK_HEADER(winsock.h,[AC_DEFINE(PJ_HAS_WINSOCK_H,1)])
152AC_CHECK_HEADER(winsock2.h,[AC_DEFINE(PJ_HAS_WINSOCK2_H,1)])
153
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000154AC_MSG_RESULT([Setting PJ_OS_NAME to $target])
155AC_DEFINE_UNQUOTED(PJ_OS_NAME,["$target"])
156
157AC_MSG_RESULT([Setting PJ_HAS_ERRNO_VAR to 1])
158AC_DEFINE(PJ_HAS_ERRNO_VAR,1)
159
160AC_MSG_RESULT([Setting PJ_HAS_HIGH_RES_TIMER to 1])
161AC_DEFINE(PJ_HAS_HIGH_RES_TIMER,1)
162
163AC_MSG_RESULT([Setting PJ_HAS_MALLOC to 1])
164AC_DEFINE(PJ_HAS_MALLOC,1)
165
166AC_MSG_RESULT([Setting PJ_NATIVE_STRING_IS_UNICODE to 0])
167AC_DEFINE(PJ_NATIVE_STRING_IS_UNICODE,0)
168
169AC_MSG_RESULT([Setting PJ_ATOMIC_VALUE_TYPE to long])
170AC_DEFINE(PJ_ATOMIC_VALUE_TYPE,long)
Benny Prijonoa9b372a2006-07-24 02:07:11 +0000171
Benny Prijonob466e232006-09-10 08:53:59 +0000172dnl # Determine if inet_aton() is available
Benny Prijonoa9b372a2006-07-24 02:07:11 +0000173AC_MSG_CHECKING([if inet_aton is available])
Benny Prijonob466e232006-09-10 08:53:59 +0000174AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <arpa/inet.h>]],
Benny Prijonoa9b372a2006-07-24 02:07:11 +0000175 [inet_aton(0, 0);])],
176 [AC_DEFINE(PJ_SOCK_HAS_INET_ATON,1)
177 AC_MSG_RESULT(yes)],
178 [AC_MSG_RESULT(no)])
179
Benny Prijonob466e232006-09-10 08:53:59 +0000180dnl # Determine if sockaddr_in has sin_len member
Benny Prijonoa9b372a2006-07-24 02:07:11 +0000181AC_MSG_CHECKING([if sockaddr_in has sin_len member])
Benny Prijonob466e232006-09-10 08:53:59 +0000182AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
183 #include <sys/socket.h>
184 #include <netinet/in.h>
185 #include <arpa/inet.h>]],
Benny Prijonoa9b372a2006-07-24 02:07:11 +0000186 [struct sockaddr_in a; a.sin_len=0;])],
187 [AC_DEFINE(PJ_SOCKADDR_HAS_LEN,1)
188 AC_MSG_RESULT(yes)],
189 AC_MSG_RESULT(no))
190
Benny Prijonob466e232006-09-10 08:53:59 +0000191dnl # Determine if socklen_t is available
Benny Prijono30f85c62006-09-09 20:05:33 +0000192AC_MSG_CHECKING([if socklen_t is available])
Benny Prijono1d971622006-09-10 22:27:40 +0000193AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/socket.h>]],
Benny Prijono30f85c62006-09-09 20:05:33 +0000194 [socklen_t xxx = 0;])],
195 [AC_DEFINE(PJ_HAS_SOCKLEN_T,1)
196 AC_MSG_RESULT(yes)],
197 AC_MSG_RESULT(no))
198
Benny Prijonob466e232006-09-10 08:53:59 +0000199dnl # Determine if SO_ERROR is available
Benny Prijonoa9b372a2006-07-24 02:07:11 +0000200AC_MSG_CHECKING([if SO_ERROR is available])
Benny Prijonoc5b6dbf2006-09-10 16:33:48 +0000201case $target in
202 *mingw* | *cygw* | *win32* | *w32* )
203 AC_DEFINE(PJ_HAS_SO_ERROR,1)
204 AC_MSG_RESULT(yes)
205 ;;
206 *)
207 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
208 #include <sys/socket.h>
209 #include <netinet/in.h>
210 #include <arpa/inet.h>]],
211 [int i=SO_ERROR;])],
212 [AC_DEFINE(PJ_HAS_SO_ERROR,1)
213 AC_MSG_RESULT(yes)],
214 AC_MSG_RESULT(no))
215 ;;
216esac
217
Benny Prijonoa9b372a2006-07-24 02:07:11 +0000218
Benny Prijonob466e232006-09-10 08:53:59 +0000219dnl # Determine if RW-mutex is available
Benny Prijonoa9b372a2006-07-24 02:07:11 +0000220AC_MSG_CHECKING([if pthread_rwlock_t is available])
221AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>],
222 [pthread_rwlock_t *x;])],
223 [AC_DEFINE(PJ_EMULATE_RWMUTEX,0)
224 AC_MSG_RESULT(yes)],
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000225 [AC_DEFINE(PJ_EMULATE_RWMUTEX,1)
226 AC_MSG_RESULT(no)])
227
Benny Prijonoc5b6dbf2006-09-10 16:33:48 +0000228AC_SUBST(ac_os_objs)
229case $target in
230 *mingw* | *cygw* | *win32* | *w32* )
Benny Prijonoad086e02007-02-16 10:58:18 +0000231 ac_os_objs="file_access_win32.o file_io_win32.o os_core_win32.o os_error_win32.o os_time_win32.o os_timestamp_win32.o guid_win32.o ioqueue_select.o"
Benny Prijonoc5b6dbf2006-09-10 16:33:48 +0000232 ;;
233 *)
Benny Prijonoad086e02007-02-16 10:58:18 +0000234 ac_os_objs="file_access_unistd.o file_io_ansi.o os_core_unix.o os_error_unix.o os_time_unix.o os_timestamp_posix.o guid_simple.o ioqueue_select.o"
Benny Prijonoc5b6dbf2006-09-10 16:33:48 +0000235 ;;
236esac
237
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000238
Benny Prijonob466e232006-09-10 08:53:59 +0000239dnl ##########################################
240dnl #
241dnl # PJMEDIA
242dnl #
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000243
Benny Prijonob466e232006-09-10 08:53:59 +0000244dnl # Sound device backend selection
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000245AC_SUBST(ac_pjmedia_snd)
Benny Prijono1d971622006-09-10 22:27:40 +0000246AC_ARG_ENABLE(sound,
247 AC_HELP_STRING([--disable-sound],
248 [Exclude sound (i.e. use null sound)]),
249 [if test "$enable_sound" = "no"; then
250 [ac_pjmedia_snd=null]
251 AC_MSG_RESULT([Checking if sound is disabled... yes])
252 fi]
253 )
254
Benny Prijono39ae2da2006-10-13 17:57:42 +0000255AC_SUBST(ac_pa_cflags)
Benny Prijono1d971622006-09-10 22:27:40 +0000256if test "$enable_sound" = "no"; then
257 true;
258else
259 case $target in
Benny Prijonob466e232006-09-10 08:53:59 +0000260 *darwin*)
Benny Prijono39ae2da2006-10-13 17:57:42 +0000261 LIBS="$LIBS -framework CoreAudio -framework CoreServices -framework AudioUnit -framework AudioToolbox"
262 if test "`uname -r`" = "6.8"; then
263 #ac_pa_cflags="-DPA_OLD_CORE_AUDIO -DMOSX_USE_NON_ATOMIC_FLAG_BITS"
264 #AC_MSG_RESULT([Setting additional PortAudio CFLAGS.. -DPA_OLD_CORE_AUDIO -DMOSX_USE_NON_ATOMIC_FLAG_BITS])
265 ac_pjmedia_snd=pa_old_darwinos
266 AC_MSG_RESULT([Checking sound device backend... old coreaudio])
267 else
268 ac_pjmedia_snd=pa_darwinos
269 AC_MSG_RESULT([Checking sound device backend... coreaudio])
270 fi
Benny Prijonob466e232006-09-10 08:53:59 +0000271 ;;
272 *cygwin* | *mingw*)
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000273 ac_pjmedia_snd=pa_win32
274 AC_MSG_RESULT([Checking sound device backend... win32 sound])
275 ;;
276 *rtems*)
277 ac_pjmedia_snd=null
278 AC_MSG_RESULT([Checking sound device backend... null sound])
279 ;;
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000280 *)
281 ac_pjmedia_snd=pa_unix
282 AC_CHECK_HEADER(alsa/version.h,
283 [AC_SUBST(ac_pa_use_alsa,1)
284 LIBS="$LIBS -lasound"
285 ],
286 [AC_SUBST(ac_pa_use_alsa,0)])
287 AC_MSG_RESULT([Checking sound device backend... unix])
288 ;;
Benny Prijono1d971622006-09-10 22:27:40 +0000289 esac
290fi
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000291
Benny Prijonob466e232006-09-10 08:53:59 +0000292dnl # Include resampling small filter
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000293AC_SUBST(ac_no_small_filter)
294AC_ARG_ENABLE(small-filter,
295 AC_HELP_STRING([--disable-small-filter],
296 [Exclude small filter in resampling]),
297 [if test "$enable_small_filter" = "no"; then
298 [ac_no_small_filter='-DPJMEDIA_HAS_SMALL_FILTER=0']
299 AC_MSG_RESULT([Checking if small filter is disabled... yes])
300 fi],
301 AC_MSG_RESULT([Checking if small filter is disabled... no]))
302
Benny Prijonob466e232006-09-10 08:53:59 +0000303dnl # Include resampling large filter
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000304AC_SUBST(ac_no_large_filter)
305AC_ARG_ENABLE(large-filter,
306 AC_HELP_STRING([--disable-large-filter],
307 [Exclude large filter in resampling]),
308 [if test "$enable_large_filter" = "no"; then
309 [ac_no_large_filter='-DPJMEDIA_HAS_LARGE_FILTER=0']
310 AC_MSG_RESULT([Checking if large filter is disabled... yes])
311 fi],
312 AC_MSG_RESULT([Checking if large filter is disabled... no]))
313
Benny Prijonob466e232006-09-10 08:53:59 +0000314dnl # Include G.711 Annex A PLC
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000315AC_SUBST(ac_no_g711_plc)
316AC_ARG_ENABLE(g711-plc,
317 AC_HELP_STRING([--disable-g711-plc],
318 [Exclude G.711 Annex A PLC]),
319 [if test "$enable_g711_plc" = "no"; then
320 [ac_no_g711_plc='-DPJMEDIA_HAS_G711_PLC=0']
321 AC_MSG_RESULT([Checking if G.711 Annex A PLC is disabled...yes])
322 fi],
323 AC_MSG_RESULT([Checking if G.711 Annex A PLC is disabled...no]))
324
Benny Prijonob466e232006-09-10 08:53:59 +0000325dnl # Include Speex AEC
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000326AC_SUBST(ac_no_speex_aec)
327AC_ARG_ENABLE(speex-aec,
328 AC_HELP_STRING([--disable-speex-aec],
329 [Exclude Speex Acoustic Echo Canceller/AEC]),
330 [if test "$enable_speex_aec" = "no"; then
331 [ac_no_speex_aec='-DPJMEDIA_HAS_SPEEX_AEC=0']
332 AC_MSG_RESULT([Checking if Speex AEC is disabled...yes])
333 fi],
334 AC_MSG_RESULT([Checking if Speex AEC is disabled...no]))
335
Benny Prijonob466e232006-09-10 08:53:59 +0000336dnl # Include G711 codec
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000337AC_SUBST(ac_no_g711_codec)
338AC_ARG_ENABLE(g711-codec,
339 AC_HELP_STRING([--disable-g711-codec],
340 [Exclude G.711 codecs from the build]),
341 [if test "$enable_g711_codec" = "no"; then
342 [ac_no_g711_codec=1]
Benny Prijonofe9bffd2007-01-27 17:44:13 +0000343 AC_DEFINE(PJMEDIA_HAS_G711_CODEC,0)
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000344 AC_MSG_RESULT([Checking if G.711 codec is disabled...yes])
345 fi],
346 AC_MSG_RESULT([Checking if G.711 codec is disabled...no]))
347
348
Benny Prijonob466e232006-09-10 08:53:59 +0000349dnl # Include L16 codec
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000350AC_SUBST(ac_no_l16_codec)
351AC_ARG_ENABLE(l16-codec,
352 AC_HELP_STRING([--disable-l16-codec],
353 [Exclude Linear/L16 codec family from the build]),
354 [if test "$enable_l16_codec" = "no"; then
355 [ac_no_l16_codec=1]
Benny Prijonofe9bffd2007-01-27 17:44:13 +0000356 AC_DEFINE(PJMEDIA_HAS_L16_CODEC,0)
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000357 AC_MSG_RESULT([Checking if L16 codecs are disabled...yes])
358 fi],
Benny Prijonoc1fe23d2006-09-13 09:38:06 +0000359 AC_MSG_RESULT([Checking if L16 codec is disabled...no]))
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000360
361
Benny Prijonob466e232006-09-10 08:53:59 +0000362dnl # Include GSM codec
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000363AC_SUBST(ac_no_gsm_codec)
364AC_ARG_ENABLE(gsm-codec,
365 AC_HELP_STRING([--disable-gsm-codec],
366 [Exclude GSM codec in the build]),
367 [if test "$enable_gsm_codec" = "no"; then
368 [ac_no_gsm_codec=1]
Benny Prijonofe9bffd2007-01-27 17:44:13 +0000369 AC_DEFINE(PJMEDIA_HAS_GSM_CODEC,0)
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000370 AC_MSG_RESULT([Checking if GSM codec is disabled...yes])
371 fi],
372 AC_MSG_RESULT([Checking if GSM codec is disabled...no]))
373
Benny Prijonob466e232006-09-10 08:53:59 +0000374dnl # Include Speex codec
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000375AC_SUBST(ac_no_speex_codec)
376AC_ARG_ENABLE(speex-codec,
377 AC_HELP_STRING([--disable-speex-codec],
378 [Exclude Speex codecs in the build]),
379 [if test "$enable_speex_codec" = "no"; then
380 [ac_no_speex_codec=1]
Benny Prijonofe9bffd2007-01-27 17:44:13 +0000381 AC_DEFINE(PJMEDIA_HAS_SPEEX_CODEC,0)
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000382 AC_MSG_RESULT([Checking if Speex codec is disabled...yes])
383 fi],
384 AC_MSG_RESULT([Checking if Speex codec is disabled...no]))
385
Benny Prijonob466e232006-09-10 08:53:59 +0000386dnl # Include iLBC codec
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000387AC_SUBST(ac_no_ilbc_codec)
388AC_ARG_ENABLE(ilbc-codec,
389 AC_HELP_STRING([--disable-ilbc-codec],
390 [Exclude iLBC codec in the build]),
391 [if test "$enable_ilbc_codec" = "no"; then
392 [ac_no_ilbc_codec=1]
Benny Prijonofe9bffd2007-01-27 17:44:13 +0000393 AC_DEFINE(PJMEDIA_HAS_ILBC_CODEC,0)
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000394 AC_MSG_RESULT([Checking if iLBC codec is disabled...yes])
395 fi],
396 AC_MSG_RESULT([Checking if iLBC codec is disabled...no]))
397
398
399
Benny Prijonob466e232006-09-10 08:53:59 +0000400dnl ##########################################
401dnl #
Benny Prijono7e0d75f2006-12-25 20:34:14 +0000402dnl # PJSIP CONFIG
403dnl #
404
405dnl # Include SSL support
406AC_SUBST(ac_no_ssl)
407AC_ARG_ENABLE(ssl,
Benny Prijonoce1db762007-02-14 02:21:08 +0000408 AC_HELP_STRING([--disable-ssl],
409 [Exclude SSL support the build (default: autodetect)])
410 ,
Benny Prijono7e0d75f2006-12-25 20:34:14 +0000411 [
412 if test "$enable_ssl" = "no"; then
413 [ac_no_ssl=1]
414 AC_MSG_RESULT([Checking if SSL support is disabled... yes])
415 fi
416 ],
417 [
418 AC_MSG_RESULT([checking for OpenSSL installations..])
419 AC_SUBST(openssl_h_present)
420 AC_SUBST(libssl_present)
421 AC_SUBST(libcrypto_present)
422 AC_CHECK_HEADER(openssl/ssl.h,[openssl_h_present=1])
423 AC_CHECK_LIB(ssl,SSL_library_init,[libssl_present=1 && LIBS="$LIBS -lssl"])
424 AC_CHECK_LIB(crypto,ERR_load_BIO_strings,[libcrypto_present=1 && LIBS="$LIBS -lcrypto"])
425 if test "x$openssl_h_present" = "x1" -a "x$libssl_present" = "x1" -a "x$libcrypto_present" = "x1"; then
426 AC_MSG_RESULT([OpenSSL library found, SSL support enabled])
427 AC_DEFINE(PJSIP_HAS_TLS_TRANSPORT, 1)
428 else
429 AC_MSG_RESULT([** OpenSSL libraries not found, disabling SSL support **])
430 fi
431 ])
432
433
434dnl ##########################################
435dnl #
Benny Prijonob466e232006-09-10 08:53:59 +0000436dnl # MANUAL CONFIG
437dnl #
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000438
Benny Prijonoa9b372a2006-07-24 02:07:11 +0000439
Benny Prijonob466e232006-09-10 08:53:59 +0000440dnl # Determine if select() requires nfds to be filled up with
441dnl # correct value (max_fd+1). If zero, nfds will be filled up with
442dnl # PJ_FD_SETSIZE
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000443AC_MSG_CHECKING([if select() needs correct nfds])
Benny Prijonoa9b372a2006-07-24 02:07:11 +0000444case $target in
445 *rtems*) AC_DEFINE(PJ_SELECT_NEEDS_NFDS,1)
Benny Prijonoa9b372a2006-07-24 02:07:11 +0000446 AC_MSG_RESULT(yes)
447 ;;
448 *) AC_DEFINE(PJ_SELECT_NEEDS_NFDS,0)
449 AC_MSG_RESULT([no (default)])
450 AC_MSG_RESULT([** Decided that select() doesn't need correct nfds (please check)])
451 ;;
452esac
453
Benny Prijonob466e232006-09-10 08:53:59 +0000454dnl # Determine if pj_thread_create() should enforce thread stack size when
455dnl # creating thread. Default is zero, to allow OS to allocate appropriate
456dnl # thread's stack size.
Benny Prijonoa9b372a2006-07-24 02:07:11 +0000457AC_MSG_CHECKING([if pj_thread_create() should enforce stack size])
458case $target in
459 *rtems*) AC_DEFINE(PJ_THREAD_SET_STACK_SIZE,1)
460 AC_MSG_RESULT(yes)
461 ;;
462 *) AC_DEFINE(PJ_THREAD_SET_STACK_SIZE,0)
463 AC_MSG_RESULT([no (default)])
464 ;;
465esac
466
Benny Prijonob466e232006-09-10 08:53:59 +0000467dnl # Determine if pj_thread_create() should allocate thread's stack from
468dnl # the pool. Default is zero, to let OS allocate thread's stack.
Benny Prijonoa9b372a2006-07-24 02:07:11 +0000469AC_MSG_CHECKING([if pj_thread_create() should allocate stack])
470case $target in
471 *rtems*) AC_DEFINE(PJ_THREAD_ALLOCATE_STACK,1)
472 AC_MSG_RESULT(yes)
473 ;;
474 *) AC_DEFINE(PJ_THREAD_ALLOCATE_STACK,0)
475 AC_MSG_RESULT([no (default)])
476 ;;
477esac
478
Benny Prijonob466e232006-09-10 08:53:59 +0000479dnl # This value specifies the value set in errno by the OS when a non-blocking
480dnl # socket recv() can not return immediate data.
Benny Prijonoa9b372a2006-07-24 02:07:11 +0000481case $target in
Benny Prijonoc5b6dbf2006-09-10 16:33:48 +0000482 *mingw* | *cygw* | *win32* | *w32* )
483 AC_DEFINE(PJ_BLOCKING_ERROR_VAL,WSAEWOULDBLOCK)
484 ;;
Benny Prijonoa9b372a2006-07-24 02:07:11 +0000485 *) AC_DEFINE(PJ_BLOCKING_ERROR_VAL,EAGAIN)
486 AC_MSG_RESULT([** Setting non-blocking recv() retval to EAGAIN (please check)])
487 ;;
488esac
489
Benny Prijonob466e232006-09-10 08:53:59 +0000490dnl # This value specifies the value set in errno by the OS when a non-blocking
491dnl # socket connect() can not get connected immediately.
Benny Prijonoa9b372a2006-07-24 02:07:11 +0000492case $target in
Benny Prijonoc5b6dbf2006-09-10 16:33:48 +0000493 *mingw* | *cygw* | *win32* | *w32* )
494 AC_DEFINE(PJ_BLOCKING_CONNECT_ERROR_VAL,WSAEWOULDBLOCK)
495 ;;
Benny Prijonoa9b372a2006-07-24 02:07:11 +0000496 *) AC_DEFINE(PJ_BLOCKING_CONNECT_ERROR_VAL,EINPROGRESS)
497 AC_MSG_RESULT([** Setting non-blocking connect() retval to EINPROGRESS (please check)])
498 ;;
499esac
500
Benny Prijonoa9b372a2006-07-24 02:07:11 +0000501
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000502AC_SUBST(target)
503AC_SUBST(ac_cross_compile)
504if test "$build" = "$host"; then
505 ac_cross_compile=
506else
Benny Prijono5b818b22006-09-17 22:58:51 +0000507 ac_cross_compile=${host_orig}-
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000508fi
509AC_SUBST(ac_linux_poll,select)
510AC_SUBST(ac_host,unix)
511AC_SUBST(ac_main_obj)
512case $target in
513 *rtems*)
514 ac_main_obj=main_rtems.o
515 ;;
516 *)
517 ac_main_obj=main.o
518 ;;
519esac
520AC_SUBST(CC)
Benny Prijonoa9b372a2006-07-24 02:07:11 +0000521AC_OUTPUT()
522