blob: 374332e491682b36ee454b9c5442154967684e85 [file] [log] [blame]
Benny Prijono28d3c562012-03-30 07:10:13 +00001AC_INIT(pjproject,2.x)
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
Benny Prijono8ec5eae2010-05-12 10:59:20 +000016 build/cc-auto.mak
Benny Prijono8a9b3b22010-01-14 14:46:54 +000017 pjlib/build/os-auto.mak
18 pjlib-util/build/os-auto.mak
Benny Prijonoc4c61d02006-08-20 20:47:34 +000019 pjmedia/build/os-auto.mak
20 pjsip/build/os-auto.mak
Benny Prijonod9627842007-04-18 09:24:31 +000021 third_party/build/os-auto.mak
Benny Prijono8a9b3b22010-01-14 14:46:54 +000022 third_party/build/portaudio/os-auto.mak
23 ])
Benny Prijonoc1fe23d2006-09-13 09:38:06 +000024
Benny Prijono12483112007-03-12 10:44:38 +000025
Benny Prijonoc1fe23d2006-09-13 09:38:06 +000026dnl
27dnl Setup default CFLAGS
28dnl
29if test "$CFLAGS" = ""; then
Benny Prijonod1459822006-10-04 20:56:39 +000030 CFLAGS="-O2"
Benny Prijonoc1fe23d2006-09-13 09:38:06 +000031else
32 CFLAGS="$CFLAGS"
33fi
34
35CXXFLAGS="$CFLAGS $CXXFLAGS"
36
Benny Prijono8ec5eae2010-05-12 10:59:20 +000037dnl #
38dnl # Configure tools
39dnl #
Benny Prijonoa9b372a2006-07-24 02:07:11 +000040AC_PROG_CC
Benny Prijonoc4c61d02006-08-20 20:47:34 +000041AC_PROG_CXX
Benny Prijonoa9b372a2006-07-24 02:07:11 +000042AC_LANG_C
43
Benny Prijonofe3bf0e2010-08-05 06:27:20 +000044dnl #
45dnl # Setup CROSS_COMPILE variable
46dnl #
47if test -z "$CROSS_COMPILE"; then
48 CROSS_COMPILE=`echo ${CC} | sed 's/gcc//'`
49fi
50
Benny Prijono2d1f1b62010-05-17 16:09:12 +000051if test "$AR" = ""; then AR="${CROSS_COMPILE}ar rv"; fi
Benny Prijono8ec5eae2010-05-12 10:59:20 +000052AC_SUBST(AR)
53if test "$LD" = ""; then LD="$CC"; fi
54AC_SUBST(LD)
Sauw Minge7dbbc82011-10-24 09:28:13 +000055if test "$LDOUT" = ""; then LDOUT="-o "; fi
Benny Prijono8ec5eae2010-05-12 10:59:20 +000056AC_SUBST(LDOUT)
Benny Prijono2d1f1b62010-05-17 16:09:12 +000057if test "$RANLIB" = ""; then RANLIB="${CROSS_COMPILE}ranlib"; fi
Benny Prijono8ec5eae2010-05-12 10:59:20 +000058AC_SUBST(RANLIB)
59if test "$OBJEXT" = ""; then OBJEXT='o'; fi
60AC_SUBST(OBJEXT)
61if test "$LIBEXT" = ""; then LIBEXT='a'; fi
62AC_SUBST(LIBEXT)
63if test "$LIBEXT2" = ""; then LIBEXT2=""; fi
64AC_SUBST(LIBEXT2)
Sauw Minge7dbbc82011-10-24 09:28:13 +000065if test "$CC_OUT" = ""; then CC_OUT="-o "; fi
Benny Prijono8ec5eae2010-05-12 10:59:20 +000066AC_SUBST(CC_OUT)
67if test "$CC_INC" = ""; then CC_INC="-I"; fi
68AC_SUBST(CC_INC)
69if test "$CC_DEF" = ""; then CC_DEF="-D"; fi
70AC_SUBST(CC_DEF)
71if test "$CC_OPTIMIZE" = ""; then CC_OPTIMIZE="-O2"; fi
72AC_SUBST(CC_OPTIMIZE)
73if test "$CC_CFLAGS" = ""; then CC_CFLAGS="-Wall"; fi
74AC_SUBST(CC_CFLAGS)
75
76
77
Benny Prijono12483112007-03-12 10:44:38 +000078AC_SUBST(ac_pjdir)
Benny Prijono0822c192008-08-21 20:59:58 +000079AC_SUBST(ac_build_mak_vars)
Benny Prijonofe3bf0e2010-08-05 06:27:20 +000080
81case $host in
Benny Prijono53847a32007-09-24 16:10:13 +000082 *mingw* | *cygw* | *win32* | *w32* )
Benny Prijonofe3bf0e2010-08-05 06:27:20 +000083 if pwd -W 2&> /dev/null; then
84 ac_pjdir=`pwd -W`
85 else
86 # We're probably cross-compiling mingw on Linux
87 ac_pjdir=`pwd`
88 fi
Benny Prijono53847a32007-09-24 16:10:13 +000089 ;;
90 *)
91 ac_pjdir=`pwd`
92 ;;
93esac
Benny Prijono12483112007-03-12 10:44:38 +000094
Benny Prijono28d3c562012-03-30 07:10:13 +000095AC_SUBST(ac_shlib_suffix)
96case $target in
97 *mingw* | *cygw* | *win32* | *w32* )
98 ac_shlib_suffix=dll
99 ;;
100 *darwin*)
101 ac_shlib_suffix=dylib
102 ;;
103 *)
104 ac_shlib_suffix=so
105 ;;
106esac
107
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000108AC_CHECK_LIB(pthread,pthread_create)
Benny Prijonoc5b6dbf2006-09-10 16:33:48 +0000109AC_CHECK_LIB(wsock32,puts)
110AC_CHECK_LIB(ws2_32,puts)
111AC_CHECK_LIB(ole32,puts)
112AC_CHECK_LIB(winmm,puts)
113AC_CHECK_LIB(socket,puts)
114AC_CHECK_LIB(rt,puts)
115AC_CHECK_LIB(nsl,puts)
Benny Prijono4e48b512007-05-16 13:41:00 +0000116AC_CHECK_LIB(uuid,uuid_generate)
117AC_CHECK_LIB(uuid,uuid_generate,[ac_has_uuid_lib=1])
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000118
119AC_MSG_RESULT([Setting PJ_M_NAME to $target_cpu])
120AC_DEFINE_UNQUOTED(PJ_M_NAME,["$target_cpu"])
121
Benny Prijonoc5b6dbf2006-09-10 16:33:48 +0000122dnl
Benny Prijono1d971622006-09-10 22:27:40 +0000123dnl Memory alignment detection
124dnl
125AC_MSG_CHECKING([memory alignment])
126case $target in
Benny Prijonob18e9502010-05-19 05:51:38 +0000127 sparc64-* | ia64-* | x86_64-* )
Benny Prijono1d971622006-09-10 22:27:40 +0000128 AC_DEFINE(PJ_POOL_ALIGNMENT, 8)
129 AC_MSG_RESULT([8 bytes])
130 ;;
131 * )
132 AC_DEFINE(PJ_POOL_ALIGNMENT, 4)
133 AC_MSG_RESULT([4 bytes (default)])
134 ;;
135esac
136
137
138dnl
Benny Prijonoc5b6dbf2006-09-10 16:33:48 +0000139dnl Endianness detection
140dnl
Benny Prijonob466e232006-09-10 08:53:59 +0000141AC_C_BIGENDIAN
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000142
Sauw Minge7dbbc82011-10-24 09:28:13 +0000143if test "x$ac_cv_c_bigendian" = "xyes"; then
144 CFLAGS="$CFLAGS -DPJ_IS_BIG_ENDIAN=1 -DPJ_IS_LITTLE_ENDIAN=0"
145else
146 CFLAGS="$CFLAGS -DPJ_IS_BIG_ENDIAN=0 -DPJ_IS_LITTLE_ENDIAN=1"
147fi
148
Benny Prijonoc5b6dbf2006-09-10 16:33:48 +0000149dnl
150dnl Legacy macros
151dnl
152case $target in
153 *mingw* | *cygw* | *win32* | *w32* )
154 AC_DEFINE(PJ_WIN32,1)
155 AC_DEFINE(PJ_WIN32_WINNT,0x0400)
156 AC_DEFINE(WIN32_LEAN_AND_MEAN)
157 ;;
158 *darwin*)
159 AC_DEFINE(PJ_DARWINOS,1)
160 ;;
161 *linux*)
162 AC_DEFINE(PJ_LINUX,1)
163 ;;
164 *rtems*)
165 AC_DEFINE(PJ_RTEMS,1)
166 ;;
167 *sunos* | *solaris* )
168 AC_DEFINE(PJ_SUNOS,1)
169 ;;
170 *)
171 ;;
172esac
173
174
175
176
Benny Prijonob466e232006-09-10 08:53:59 +0000177dnl # --disable-floating-point option
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000178AC_ARG_ENABLE(floating-point,
179 AC_HELP_STRING([--disable-floating-point],
180 [Disable floating point where possible]),
181 [if test "$enable_floating_point" = "no"; then
182 AC_DEFINE(PJ_HAS_FLOATING_POINT,0)
183 AC_MSG_RESULT([Checking if floating point is disabled... yes])
184 fi],
185 [
186 AC_DEFINE(PJ_HAS_FLOATING_POINT,1)
187 AC_MSG_RESULT([Checking if floating point is disabled... no])
188 AC_CHECK_LIB(m,fmod)
189 ])
190
191
Benny Prijonoa9b372a2006-07-24 02:07:11 +0000192AC_CHECK_HEADER(arpa/inet.h,[AC_DEFINE(PJ_HAS_ARPA_INET_H,1)])
193AC_CHECK_HEADER(assert.h,[AC_DEFINE(PJ_HAS_ASSERT_H,1)])
194AC_CHECK_HEADER(ctype.h,[AC_DEFINE(PJ_HAS_CTYPE_H,1)])
Benny Prijonoc5b6dbf2006-09-10 16:33:48 +0000195
196case $target in
197 *mingw* | *cygw* | *win32* | *w32* )
198 AC_DEFINE(PJ_HAS_ERRNO_H,0)
199 ;;
200 *)
201 AC_CHECK_HEADER(errno.h,[AC_DEFINE(PJ_HAS_ERRNO_H,1)])
202 ;;
203esac
204
Benny Prijono1d481ab2008-01-24 15:27:30 +0000205AC_CHECK_HEADER(fcntl.h,[AC_DEFINE(PJ_HAS_FCNTL_H,1)])
Benny Prijonoa9b372a2006-07-24 02:07:11 +0000206AC_CHECK_HEADER(linux/socket.h,[AC_DEFINE(PJ_HAS_LINUX_SOCKET_H,1)])
Benny Prijonoe3e65802011-02-28 07:44:19 +0000207AC_CHECK_HEADER(limits.h,[AC_DEFINE(PJ_HAS_LIMITS_H,1)])
Benny Prijonoa9b372a2006-07-24 02:07:11 +0000208AC_CHECK_HEADER(malloc.h,[AC_DEFINE(PJ_HAS_MALLOC_H,1)])
209AC_CHECK_HEADER(netdb.h,[AC_DEFINE(PJ_HAS_NETDB_H,1)])
Benny Prijono37fc9de2008-08-04 14:45:02 +0000210AC_CHECK_HEADER(netinet/in_systm.h,[AC_DEFINE(PJ_HAS_NETINET_IN_SYSTM_H,1)])
Benny Prijonoa9b372a2006-07-24 02:07:11 +0000211AC_CHECK_HEADER(netinet/in.h,[AC_DEFINE(PJ_HAS_NETINET_IN_H,1)])
Benny Prijono37fc9de2008-08-04 14:45:02 +0000212AC_CHECK_HEADER(netinet/ip.h,[AC_DEFINE(PJ_HAS_NETINET_IP_H,1)],[],
Benny Prijonod5233702010-01-13 13:09:45 +0000213 [#if PJ_HAS_SYS_TYPES_H
214 # include <sys/types.h>
215 #endif
216 #if PJ_HAS_NETINET_IN_SYSTM_H
Benny Prijono37fc9de2008-08-04 14:45:02 +0000217 # include <netinet/in_systm.h>
218 #endif
Benny Prijonod5233702010-01-13 13:09:45 +0000219 #if PJ_HAS_NETINET_IN_H
220 # include <netinet/in.h>
221 #endif
Benny Prijono37fc9de2008-08-04 14:45:02 +0000222 ])
Benny Prijono1d61ba52009-10-24 00:00:40 +0000223AC_CHECK_HEADER(netinet/tcp.h,[AC_DEFINE(PJ_HAS_NETINET_TCP_H,1)])
Benny Prijono5bbebc02010-06-15 05:21:43 +0000224AC_CHECK_HEADER(ifaddrs.h,
225 [AC_CHECK_FUNC(getifaddrs,[AC_DEFINE(PJ_HAS_IFADDRS_H,1)])])
Benny Prijono1c5f4e42008-02-07 13:11:39 +0000226AC_CHECK_HEADER(semaphore.h,[AC_DEFINE(PJ_HAS_SEMAPHORE_H,1)])
Benny Prijonoa9b372a2006-07-24 02:07:11 +0000227AC_CHECK_HEADER(setjmp.h,[AC_DEFINE(PJ_HAS_SETJMP_H,1)])
228AC_CHECK_HEADER(stdarg.h,[AC_DEFINE(PJ_HAS_STDARG_H,1)])
229AC_CHECK_HEADER(stddef.h,[AC_DEFINE(PJ_HAS_STDDEF_H,1)])
230AC_CHECK_HEADER(stdio.h,[AC_DEFINE(PJ_HAS_STDIO_H,1)])
Benny Prijonofdafd402008-01-23 14:34:46 +0000231AC_CHECK_HEADER(stdint.h,[AC_DEFINE(PJ_HAS_STDINT_H,1)])
Benny Prijonoa9b372a2006-07-24 02:07:11 +0000232AC_CHECK_HEADER(stdlib.h,[AC_DEFINE(PJ_HAS_STDLIB_H,1)])
233AC_CHECK_HEADER(string.h,[AC_DEFINE(PJ_HAS_STRING_H,1)])
234AC_CHECK_HEADER(sys/ioctl.h,[AC_DEFINE(PJ_HAS_SYS_IOCTL_H,1)])
235AC_CHECK_HEADER(sys/select.h,[AC_DEFINE(PJ_HAS_SYS_SELECT_H,1)])
236AC_CHECK_HEADER(sys/socket.h,[AC_DEFINE(PJ_HAS_SYS_SOCKET_H,1)])
237AC_CHECK_HEADER(sys/time.h,[AC_DEFINE(PJ_HAS_SYS_TIME_H,1)])
238AC_CHECK_HEADER(sys/timeb.h,[AC_DEFINE(PJ_HAS_SYS_TIMEB_H,1)])
239AC_CHECK_HEADER(sys/types.h,[AC_DEFINE(PJ_HAS_SYS_TYPES_H,1)])
Benny Prijonoa1aec0e2010-01-13 21:28:06 +0000240AC_CHECK_HEADER(sys/filio.h,[AC_DEFINE(PJ_HAS_SYS_FILIO_H,1)])
241AC_CHECK_HEADER(sys/sockio.h,[AC_DEFINE(PJ_HAS_SYS_SOCKIO_H,1)])
Benny Prijonoe3e65802011-02-28 07:44:19 +0000242AC_CHECK_HEADER(sys/utsname.h,[AC_DEFINE(PJ_HAS_SYS_UTSNAME_H,1)])
Benny Prijonoa9b372a2006-07-24 02:07:11 +0000243AC_CHECK_HEADER(time.h,[AC_DEFINE(PJ_HAS_TIME_H,1)])
244AC_CHECK_HEADER(unistd.h,[AC_DEFINE(PJ_HAS_UNISTD_H,1)])
Benny Prijonoa9b372a2006-07-24 02:07:11 +0000245AC_CHECK_HEADER(winsock.h,[AC_DEFINE(PJ_HAS_WINSOCK_H,1)])
246AC_CHECK_HEADER(winsock2.h,[AC_DEFINE(PJ_HAS_WINSOCK2_H,1)])
Benny Prijonoa9948e62008-03-25 14:03:01 +0000247AC_CHECK_HEADER(mswsock.h,[AC_DEFINE(PJ_HAS_MSWSOCK_H,1)],[],
248 [#if PJ_HAS_WINSOCK2_H
249 # include <winsock2.h>
250 #elif PJ_HAS_WINSOCK_H
251 # include <winsock.h>
252 #endif
253 ])
Benny Prijonoe2746132008-09-27 13:16:35 +0000254AC_CHECK_HEADER(ws2tcpip.h,[AC_DEFINE(PJ_HAS_WS2TCPIP_H,1)])
Benny Prijono4e48b512007-05-16 13:41:00 +0000255AC_CHECK_HEADER(uuid/uuid.h,[ac_has_uuid_h=1])
Benny Prijonoa9948e62008-03-25 14:03:01 +0000256AC_CHECK_HEADER(net/if.h,[AC_DEFINE(PJ_HAS_NET_IF_H,1)],[],
Benny Prijonod5233702010-01-13 13:09:45 +0000257 [#if PJ_HAS_SYS_TYPES_H
258 # include <sys/types.h>
259 #endif
260 #if PJ_HAS_SYS_SOCKET_H
261
Benny Prijono188ba7e2008-03-25 13:53:16 +0000262 # include <sys/socket.h>
263 #endif
264 ])
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000265AC_MSG_RESULT([Setting PJ_OS_NAME to $target])
266AC_DEFINE_UNQUOTED(PJ_OS_NAME,["$target"])
267
268AC_MSG_RESULT([Setting PJ_HAS_ERRNO_VAR to 1])
269AC_DEFINE(PJ_HAS_ERRNO_VAR,1)
270
271AC_MSG_RESULT([Setting PJ_HAS_HIGH_RES_TIMER to 1])
272AC_DEFINE(PJ_HAS_HIGH_RES_TIMER,1)
273
274AC_MSG_RESULT([Setting PJ_HAS_MALLOC to 1])
275AC_DEFINE(PJ_HAS_MALLOC,1)
276
277AC_MSG_RESULT([Setting PJ_NATIVE_STRING_IS_UNICODE to 0])
278AC_DEFINE(PJ_NATIVE_STRING_IS_UNICODE,0)
279
280AC_MSG_RESULT([Setting PJ_ATOMIC_VALUE_TYPE to long])
281AC_DEFINE(PJ_ATOMIC_VALUE_TYPE,long)
Benny Prijonoa9b372a2006-07-24 02:07:11 +0000282
Benny Prijonob466e232006-09-10 08:53:59 +0000283dnl # Determine if inet_aton() is available
Benny Prijonoc16c6e32007-11-18 14:53:47 +0000284AC_MSG_CHECKING([if inet_aton() is available])
285AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
286 #include <sys/socket.h>
287 #include <arpa/inet.h>]],
Benny Prijonoa9b372a2006-07-24 02:07:11 +0000288 [inet_aton(0, 0);])],
289 [AC_DEFINE(PJ_SOCK_HAS_INET_ATON,1)
290 AC_MSG_RESULT(yes)],
291 [AC_MSG_RESULT(no)])
292
Benny Prijonoc16c6e32007-11-18 14:53:47 +0000293dnl # Determine if inet_pton() is available
294AC_MSG_CHECKING([if inet_pton() is available])
295AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
296 #include <sys/socket.h>
297 #include <arpa/inet.h>]],
298 [inet_pton(0, 0, 0);])],
299 [AC_DEFINE(PJ_SOCK_HAS_INET_PTON,1)
300 AC_MSG_RESULT(yes)],
301 [AC_MSG_RESULT(no)])
302
303dnl # Determine if inet_ntop() is available
304AC_MSG_CHECKING([if inet_ntop() is available])
305AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
306 #include <sys/socket.h>
307 #include <arpa/inet.h>]],
308 [inet_ntop(0, 0, 0, 0);])],
309 [AC_DEFINE(PJ_SOCK_HAS_INET_NTOP,1)
310 AC_MSG_RESULT(yes)],
311 [AC_MSG_RESULT(no)])
312
313dnl # Determine if getaddrinfo() is available
314AC_MSG_CHECKING([if getaddrinfo() is available])
315AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
316 #include <sys/socket.h>
317 #include <netdb.h>]],
318 [getaddrinfo(0, 0, 0, 0);])],
319 [AC_DEFINE(PJ_SOCK_HAS_GETADDRINFO,1)
320 AC_MSG_RESULT(yes)],
321 [AC_MSG_RESULT(no)])
322
Benny Prijonob466e232006-09-10 08:53:59 +0000323dnl # Determine if sockaddr_in has sin_len member
Benny Prijonoa9b372a2006-07-24 02:07:11 +0000324AC_MSG_CHECKING([if sockaddr_in has sin_len member])
Benny Prijonob466e232006-09-10 08:53:59 +0000325AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
326 #include <sys/socket.h>
327 #include <netinet/in.h>
328 #include <arpa/inet.h>]],
Benny Prijonoa9b372a2006-07-24 02:07:11 +0000329 [struct sockaddr_in a; a.sin_len=0;])],
330 [AC_DEFINE(PJ_SOCKADDR_HAS_LEN,1)
331 AC_MSG_RESULT(yes)],
332 AC_MSG_RESULT(no))
333
Benny Prijonob466e232006-09-10 08:53:59 +0000334dnl # Determine if socklen_t is available
Benny Prijono30f85c62006-09-09 20:05:33 +0000335AC_MSG_CHECKING([if socklen_t is available])
Benny Prijonod5233702010-01-13 13:09:45 +0000336AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
337 #include <sys/socket.h>]],
Benny Prijono30f85c62006-09-09 20:05:33 +0000338 [socklen_t xxx = 0;])],
339 [AC_DEFINE(PJ_HAS_SOCKLEN_T,1)
340 AC_MSG_RESULT(yes)],
341 AC_MSG_RESULT(no))
342
Benny Prijonob466e232006-09-10 08:53:59 +0000343dnl # Determine if SO_ERROR is available
Benny Prijonoa9b372a2006-07-24 02:07:11 +0000344AC_MSG_CHECKING([if SO_ERROR is available])
Benny Prijonoc5b6dbf2006-09-10 16:33:48 +0000345case $target in
346 *mingw* | *cygw* | *win32* | *w32* )
347 AC_DEFINE(PJ_HAS_SO_ERROR,1)
348 AC_MSG_RESULT(yes)
349 ;;
350 *)
351 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
352 #include <sys/socket.h>
353 #include <netinet/in.h>
354 #include <arpa/inet.h>]],
355 [int i=SO_ERROR;])],
356 [AC_DEFINE(PJ_HAS_SO_ERROR,1)
357 AC_MSG_RESULT(yes)],
358 AC_MSG_RESULT(no))
359 ;;
360esac
361
Benny Prijonoa9b372a2006-07-24 02:07:11 +0000362
Benny Prijonob466e232006-09-10 08:53:59 +0000363dnl # Determine if RW-mutex is available
Benny Prijonoa9b372a2006-07-24 02:07:11 +0000364AC_MSG_CHECKING([if pthread_rwlock_t is available])
365AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>],
366 [pthread_rwlock_t *x;])],
367 [AC_DEFINE(PJ_EMULATE_RWMUTEX,0)
Benny Prijono1c5f4e42008-02-07 13:11:39 +0000368 ac_rwmutex="yes"
Benny Prijonoa9b372a2006-07-24 02:07:11 +0000369 AC_MSG_RESULT(yes)],
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000370 [AC_DEFINE(PJ_EMULATE_RWMUTEX,1)
Benny Prijono1c5f4e42008-02-07 13:11:39 +0000371 ac_rwmutex="no"
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000372 AC_MSG_RESULT(no)])
373
Benny Prijono1c5f4e42008-02-07 13:11:39 +0000374dnl # If rwmutex is not detected, check again but this time
375dnl # with _POSIX_READER_WRITER_LOCKS defined (newlib needs this)
376if test "$ac_rwmutex" = "no"; then
377 AC_MSG_CHECKING([if pthread_rwlock_t is available with _POSIX_READER_WRITER_LOCKS])
378 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#define _POSIX_READER_WRITER_LOCKS
379 #include <pthread.h>]],
380 [pthread_rwlock_t *x;])],
381 [AC_DEFINE(PJ_EMULATE_RWMUTEX,0)
382 CFLAGS="$CFLAGS -D_POSIX_THREADS -D_POSIX_READER_WRITER_LOCKS"
383 AC_MSG_RESULT(yes)],
384 [AC_DEFINE(PJ_EMULATE_RWMUTEX,1)
385 AC_MSG_RESULT(no)])
386fi
387
388dnl # Do we have pthread_mutexattr_settype()?
389AC_MSG_CHECKING([if pthread_mutexattr_settype() is available])
390AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>],
391 [pthread_mutexattr_settype(0,PTHREAD_MUTEX_FAST_NP);])],
392 [AC_DEFINE(PJ_HAS_PTHREAD_MUTEXATTR_SETTYPE,1)
393 AC_MSG_RESULT(yes)],
394 [AC_MSG_RESULT(no)])
395
396dnl # Does pthread_mutexattr_t has "recursive" member?
397AC_MSG_CHECKING([if pthread_mutexattr_t has recursive member])
398AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>],
399 [[pthread_mutexattr_t attr;
400 attr.recursive=1;]])],
401 [AC_DEFINE(PJ_PTHREAD_MUTEXATTR_T_HAS_RECURSIVE,1)
402 AC_MSG_RESULT(yes)],
403 [AC_MSG_RESULT(no)])
404
Benny Prijono99eec382008-09-18 21:22:16 +0000405dnl ######################
406dnl # ioqueue selection
407dnl #
Benny Prijonoc5b6dbf2006-09-10 16:33:48 +0000408AC_SUBST(ac_os_objs)
Benny Prijono99eec382008-09-18 21:22:16 +0000409AC_MSG_CHECKING([ioqueue backend])
410AC_ARG_ENABLE(epoll,
411 AC_HELP_STRING([--enable-epoll],
Benny Prijono9489e7a2008-09-19 22:18:50 +0000412 [Use /dev/epoll ioqueue on Linux (experimental)]),
Benny Prijono99eec382008-09-18 21:22:16 +0000413 [
414 ac_os_objs=ioqueue_epoll.o
415 AC_MSG_RESULT([/dev/epoll])
416 ],
417 [
418 ac_os_objs=ioqueue_select.o
419 AC_MSG_RESULT([select()])
420 ])
421
422
423dnl ######################
424dnl # OS specific files
425dnl #
Benny Prijonoc5b6dbf2006-09-10 16:33:48 +0000426case $target in
427 *mingw* | *cygw* | *win32* | *w32* )
Benny Prijono99eec382008-09-18 21:22:16 +0000428 ac_os_objs="$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"
Benny Prijonoc5b6dbf2006-09-10 16:33:48 +0000429 ;;
430 *)
Benny Prijono99eec382008-09-18 21:22:16 +0000431 ac_os_objs="$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"
Sauw Ming6a970a32011-03-01 05:25:27 +0000432 case $target in
433 arm-apple-darwin*)
434 ac_os_objs="$ac_os_objs os_info_iphone.o"
435 ;;
436 esac
Benny Prijono4e48b512007-05-16 13:41:00 +0000437 # UUID
438 if test "$ac_has_uuid_lib" = "1" -a "$ac_has_uuid_h" = "1"; then
439 ac_os_objs="$ac_os_objs guid_uuid.o"
440 else
441 ac_os_objs="$ac_os_objs guid_simple.o"
442 fi
Benny Prijonoc5b6dbf2006-09-10 16:33:48 +0000443 ;;
444esac
445
Sauw Ming68c14572011-07-20 03:00:48 +0000446case $target in
447 *darwin*)
448 ac_os_objs="$ac_os_objs os_core_darwin.o"
449 ;;
450esac
Benny Prijono4e48b512007-05-16 13:41:00 +0000451
Benny Prijonob466e232006-09-10 08:53:59 +0000452dnl ##########################################
453dnl #
454dnl # PJMEDIA
455dnl #
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000456
Benny Prijono8a9b3b22010-01-14 14:46:54 +0000457dnl # Use external Speex installation
458AC_SUBST(ac_external_speex,0)
459AC_ARG_WITH(external-speex,
460 AC_HELP_STRING([--with-external-speex],
461 [Use external Speex development files, not the one in "third_party" directory. When this option is set, make sure that Speex is accessible to use (hint: use CFLAGS and LDFLAGS env var to set the include/lib paths)]),
462 [
463 if test "x$with_external_speex" != "xno"; then
464 # Test Speex installation
465 AC_MSG_CHECKING([if external Speex devkit is installed])
466 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <speex/speex.h>
467 #include <speex/speex_echo.h>
468 ]],
469 [speex_echo_state_init(0, 0); speex_encoder_init(0); ])],
470 [AC_MSG_RESULT(yes!!)
471 AC_DEFINE(PJMEDIA_EXTERNAL_SPEEX_CODEC, 1)
472 ac_external_speex="1"
473 ],
474 [AC_MSG_ERROR([Unable to use external Speex library. If Speex development files are not available in the default locations, use CFLAGS and LDFLAGS env var to set the include/lib paths])])
475 fi
476 ]
477 )
478
479dnl # Use external GSM codec library installation
480AC_SUBST(ac_external_gsm,0)
481AC_ARG_WITH(external-gsm,
482 AC_HELP_STRING([--with-external-gsm],
483 [Use external GSM codec library, not the one in "third_party" directory. When this option is set, make sure that the GSM include/lib files are accessible to use (hint: use CFLAGS and LDFLAGS env var to set the include/lib paths)]),
484 [
485 if test "x$with_external_gsm" != "xno"; then
Benny Prijonod4306432010-05-01 22:05:41 +0000486 # Test GSM library installation
487 AC_MSG_CHECKING([if external GSM devkit is installed as gsm/gsm.h])
488 AC_COMPILE_IFELSE(
489 [AC_LANG_PROGRAM([[#include <gsm/gsm.h> ]], [gsm_create(); ]) ],
490 [AC_MSG_RESULT(yes!!)
491 AC_DEFINE(PJMEDIA_EXTERNAL_GSM_CODEC, 1)
492 AC_DEFINE(PJMEDIA_EXTERNAL_GSM_GSM_H, 1)
493 ac_external_gsm="1"
494 ],
495 [
496 AC_MSG_RESULT(no)
497 AC_MSG_CHECKING([if external GSM devkit is installed as gsm.h])
498 AC_COMPILE_IFELSE(
499 [AC_LANG_PROGRAM([[#include <gsm.h> ]], [gsm_create(); ]) ],
500 [AC_MSG_RESULT(yes!!)
501 AC_DEFINE(PJMEDIA_EXTERNAL_GSM_CODEC, 1)
502 AC_DEFINE(PJMEDIA_EXTERNAL_GSM_H, 1)
503 ac_external_gsm="1"
504 ],
505 [AC_MSG_ERROR([Unable to use external GSM library. If GSM development files are not available in the default locations, use CFLAGS and LDFLAGS env var to set the include/lib paths])
506 ]
507 )
508 ]
509 )
Benny Prijono8a9b3b22010-01-14 14:46:54 +0000510 fi
511 ]
512 )
513
514
515
Benny Prijonob466e232006-09-10 08:53:59 +0000516dnl # Sound device backend selection
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000517AC_SUBST(ac_pjmedia_snd)
Benny Prijono1d971622006-09-10 22:27:40 +0000518AC_ARG_ENABLE(sound,
519 AC_HELP_STRING([--disable-sound],
520 [Exclude sound (i.e. use null sound)]),
521 [if test "$enable_sound" = "no"; then
522 [ac_pjmedia_snd=null]
523 AC_MSG_RESULT([Checking if sound is disabled... yes])
524 fi]
525 )
526
Benny Prijono8a9b3b22010-01-14 14:46:54 +0000527dnl # Use external PortAudio installation
528AC_SUBST(ac_external_pa,0)
529AC_ARG_WITH(external-pa,
530 AC_HELP_STRING([--with-external-pa],
531 [Use external PortAudio development files, not the one in "third_party" directory. When this option is set, make sure that PortAudio is accessible to use (hint: use CFLAGS and LDFLAGS env var to set the include/lib paths)]),
Benny Prijonofe0c1272010-01-13 16:28:15 +0000532 [
Benny Prijono8a9b3b22010-01-14 14:46:54 +0000533 if test "x$with_external_pa" != "xno"; then
534 # Test PortAudio installation
535 AC_MSG_CHECKING([if external PortAudio devkit is installed])
536 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <portaudio.h>
537 ]],
538 [Pa_Initialize();])],
539 [AC_MSG_RESULT(yes!!)
540 ac_external_pa="1"
541 ],
542 [AC_MSG_ERROR([Unable to use PortAudio. If PortAudio development files are not available in the default locations, use CFLAGS and LDFLAGS env var to set the include/lib paths])])
Benny Prijonofe0c1272010-01-13 16:28:15 +0000543 fi
544 ]
545 )
546
Benny Prijono39ae2da2006-10-13 17:57:42 +0000547AC_SUBST(ac_pa_cflags)
Benny Prijono27c98722007-04-09 21:28:15 +0000548AC_CHECK_HEADER(sys/soundcard.h,
549 [ac_pa_cflags="$ac_pa_cflags -DHAVE_SYS_SOUNDCARD_H"])
550AC_CHECK_HEADER(linux/soundcard.h,
551 [ac_pa_cflags="$ac_pa_cflags -DHAVE_LINUX_SOUNDCARD_H"])
552AC_CHECK_HEADER(machine/soundcard.h,
553 [ac_pa_cflags="$ac_pa_cflags -DHAVE_MACHINE_SOUNDCARD_H"])
554
Benny Prijono3e091672008-01-09 15:43:02 +0000555if test "x$ac_cv_c_bigendian" = "xyes"; then
556 ac_pa_cflags="$ac_pa_cflags -DPA_BIG_ENDIAN"
557else
558 ac_pa_cflags="$ac_pa_cflags -DPA_LITTLE_ENDIAN"
559fi
560
Benny Prijono1d971622006-09-10 22:27:40 +0000561if test "$enable_sound" = "no"; then
562 true;
563else
564 case $target in
Benny Prijono8ec5eae2010-05-12 10:59:20 +0000565 arm-apple-darwin*)
Sauw Ming6a970a32011-03-01 05:25:27 +0000566 LIBS="$LIBS -framework CoreAudio -framework CoreFoundation -framework AudioToolbox -framework CFNetwork -framework UIKit"
Benny Prijono8ec5eae2010-05-12 10:59:20 +0000567 AC_MSG_RESULT([Checking sound device backend... AudioUnit])
568 ;;
Benny Prijonob466e232006-09-10 08:53:59 +0000569 *darwin*)
Benny Prijono39ae2da2006-10-13 17:57:42 +0000570 LIBS="$LIBS -framework CoreAudio -framework CoreServices -framework AudioUnit -framework AudioToolbox"
571 if test "`uname -r`" = "6.8"; then
Benny Prijono27c98722007-04-09 21:28:15 +0000572 #ac_pa_cflags="$ac_pa_cflags -DPA_OLD_CORE_AUDIO -DMOSX_USE_NON_ATOMIC_FLAG_BITS"
Benny Prijono39ae2da2006-10-13 17:57:42 +0000573 #AC_MSG_RESULT([Setting additional PortAudio CFLAGS.. -DPA_OLD_CORE_AUDIO -DMOSX_USE_NON_ATOMIC_FLAG_BITS])
574 ac_pjmedia_snd=pa_old_darwinos
575 AC_MSG_RESULT([Checking sound device backend... old coreaudio])
576 else
577 ac_pjmedia_snd=pa_darwinos
578 AC_MSG_RESULT([Checking sound device backend... coreaudio])
579 fi
Benny Prijonob466e232006-09-10 08:53:59 +0000580 ;;
581 *cygwin* | *mingw*)
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000582 ac_pjmedia_snd=pa_win32
583 AC_MSG_RESULT([Checking sound device backend... win32 sound])
584 ;;
585 *rtems*)
586 ac_pjmedia_snd=null
587 AC_MSG_RESULT([Checking sound device backend... null sound])
588 ;;
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000589 *)
Benny Prijono0b462322008-03-12 22:44:24 +0000590 dnl # Check if ALSA is available
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000591 ac_pjmedia_snd=pa_unix
592 AC_CHECK_HEADER(alsa/version.h,
593 [AC_SUBST(ac_pa_use_alsa,1)
594 LIBS="$LIBS -lasound"
595 ],
596 [AC_SUBST(ac_pa_use_alsa,0)])
597 AC_MSG_RESULT([Checking sound device backend... unix])
Benny Prijono0b462322008-03-12 22:44:24 +0000598
599 dnl # Check if OSS is disabled
600 AC_SUBST(ac_pa_use_oss,1)
601 AC_ARG_ENABLE(oss,
602 AC_HELP_STRING([--disable-oss],
Benny Prijonoc45d9512010-12-10 11:04:30 +0000603 [Disable OSS audio (default: not disabled)]),
Benny Prijono0b462322008-03-12 22:44:24 +0000604 [
605 if test "$enable_oss" = "no"; then
606 [ac_pa_use_oss=0]
607 AC_MSG_RESULT([Checking if OSS audio is disabled... yes])
608 fi
609 ])
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000610 ;;
Benny Prijono1d971622006-09-10 22:27:40 +0000611 esac
612fi
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000613
Sauw Ming6e6c2152010-12-14 13:03:10 +0000614AC_SUBST(ac_pjmedia_video)
615if test "$enable_video" = "no"; then
616 true;
617else
618 case $target in
619 arm-apple-darwin*)
620 ac_pjmedia_video=iphone_os
Sauw Ming24c39a32011-08-16 05:44:46 +0000621 AC_SUBST(ac_pjmedia_video_has_ios)
Sauw Ming6e6c2152010-12-14 13:03:10 +0000622 AC_SUBST(ac_ios_cflags)
Sauw Ming24c39a32011-08-16 05:44:46 +0000623 SAVED_LIBS="$LIBS"
624 LIBS="-framework AVFoundation -framework UIKit -framework CoreGraphics -framework QuartzCore -framework CoreVideo -framework CoreMedia"
625 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [])],[ac_pjmedia_video_has_ios=yes],[ac_pjmedia_video_has_ios=no])
626 LIBS="$SAVED_LIBS"
627 if test "$ac_pjmedia_video_has_ios" = "yes"; then
628 ac_ios_cflags="-DPJMEDIA_VIDEO_DEV_HAS_IOS=1"
629 LIBS="$LIBS -framework AVFoundation -framework UIKit -framework CoreGraphics -framework QuartzCore -framework CoreVideo -framework CoreMedia"
630 AC_MSG_RESULT([Checking if AVFoundation framework is available... yes])
631 else
632 AC_MSG_RESULT([Checking if AVFoundation framework is available... no])
633 fi
Sauw Ming6e6c2152010-12-14 13:03:10 +0000634 ;;
635 *darwin*)
636 ac_pjmedia_video=mac_os
637 AC_SUBST(ac_pjmedia_video_has_qt)
638 AC_SUBST(ac_qt_cflags)
639 SAVED_LIBS="$LIBS"
640 LIBS="-framework QTKit"
641 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [])],[ac_pjmedia_video_has_qt=yes],[ac_pjmedia_video_has_qt=no])
642 LIBS="$SAVED_LIBS"
643 if test "$ac_pjmedia_video_has_qt" = "yes"; then
644 ac_qt_cflags="-DPJMEDIA_VIDEO_DEV_HAS_QT=1"
Sauw Ming21bd3fd2011-04-06 11:30:18 +0000645 LIBS="$LIBS -framework QTKit -framework Foundation -framework AppKit -framework QuartzCore -framework OpenGL"
Sauw Ming6e6c2152010-12-14 13:03:10 +0000646 AC_MSG_RESULT([Checking if QTKit framework is available... yes])
647 else
648 AC_MSG_RESULT([Checking if QTKit framework is available... no])
649 fi
650 ;;
651 esac
652fi
653
Benny Prijonoebb2c332008-07-28 23:40:58 +0000654AC_ARG_ENABLE(ext_sound,
655 AC_HELP_STRING([--enable-ext-sound],
656 [PJMEDIA will not provide any sound device backend]),
657 [if test "$enable_ext_sound" = "yes"; then
658 [ac_pjmedia_snd=external]
659 AC_MSG_RESULT([Checking if external sound is set... yes])
660 fi]
661 )
662
Benny Prijonob466e232006-09-10 08:53:59 +0000663dnl # Include resampling small filter
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000664AC_SUBST(ac_no_small_filter)
665AC_ARG_ENABLE(small-filter,
666 AC_HELP_STRING([--disable-small-filter],
667 [Exclude small filter in resampling]),
668 [if test "$enable_small_filter" = "no"; then
669 [ac_no_small_filter='-DPJMEDIA_HAS_SMALL_FILTER=0']
670 AC_MSG_RESULT([Checking if small filter is disabled... yes])
671 fi],
672 AC_MSG_RESULT([Checking if small filter is disabled... no]))
673
Benny Prijonob466e232006-09-10 08:53:59 +0000674dnl # Include resampling large filter
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000675AC_SUBST(ac_no_large_filter)
676AC_ARG_ENABLE(large-filter,
677 AC_HELP_STRING([--disable-large-filter],
678 [Exclude large filter in resampling]),
679 [if test "$enable_large_filter" = "no"; then
680 [ac_no_large_filter='-DPJMEDIA_HAS_LARGE_FILTER=0']
681 AC_MSG_RESULT([Checking if large filter is disabled... yes])
682 fi],
683 AC_MSG_RESULT([Checking if large filter is disabled... no]))
684
Benny Prijonob466e232006-09-10 08:53:59 +0000685dnl # Include Speex AEC
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000686AC_SUBST(ac_no_speex_aec)
687AC_ARG_ENABLE(speex-aec,
688 AC_HELP_STRING([--disable-speex-aec],
689 [Exclude Speex Acoustic Echo Canceller/AEC]),
690 [if test "$enable_speex_aec" = "no"; then
691 [ac_no_speex_aec='-DPJMEDIA_HAS_SPEEX_AEC=0']
692 AC_MSG_RESULT([Checking if Speex AEC is disabled...yes])
693 fi],
694 AC_MSG_RESULT([Checking if Speex AEC is disabled...no]))
695
Benny Prijonob466e232006-09-10 08:53:59 +0000696dnl # Include G711 codec
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000697AC_SUBST(ac_no_g711_codec)
698AC_ARG_ENABLE(g711-codec,
699 AC_HELP_STRING([--disable-g711-codec],
700 [Exclude G.711 codecs from the build]),
701 [if test "$enable_g711_codec" = "no"; then
702 [ac_no_g711_codec=1]
Benny Prijonofe9bffd2007-01-27 17:44:13 +0000703 AC_DEFINE(PJMEDIA_HAS_G711_CODEC,0)
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000704 AC_MSG_RESULT([Checking if G.711 codec is disabled...yes])
705 fi],
706 AC_MSG_RESULT([Checking if G.711 codec is disabled...no]))
707
708
Benny Prijonob466e232006-09-10 08:53:59 +0000709dnl # Include L16 codec
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000710AC_SUBST(ac_no_l16_codec)
711AC_ARG_ENABLE(l16-codec,
712 AC_HELP_STRING([--disable-l16-codec],
713 [Exclude Linear/L16 codec family from the build]),
714 [if test "$enable_l16_codec" = "no"; then
715 [ac_no_l16_codec=1]
Benny Prijonofe9bffd2007-01-27 17:44:13 +0000716 AC_DEFINE(PJMEDIA_HAS_L16_CODEC,0)
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000717 AC_MSG_RESULT([Checking if L16 codecs are disabled...yes])
718 fi],
Benny Prijonoc1fe23d2006-09-13 09:38:06 +0000719 AC_MSG_RESULT([Checking if L16 codec is disabled...no]))
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000720
721
Benny Prijonob466e232006-09-10 08:53:59 +0000722dnl # Include GSM codec
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000723AC_SUBST(ac_no_gsm_codec)
724AC_ARG_ENABLE(gsm-codec,
725 AC_HELP_STRING([--disable-gsm-codec],
726 [Exclude GSM codec in the build]),
727 [if test "$enable_gsm_codec" = "no"; then
728 [ac_no_gsm_codec=1]
Benny Prijonofe9bffd2007-01-27 17:44:13 +0000729 AC_DEFINE(PJMEDIA_HAS_GSM_CODEC,0)
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000730 AC_MSG_RESULT([Checking if GSM codec is disabled...yes])
731 fi],
732 AC_MSG_RESULT([Checking if GSM codec is disabled...no]))
733
Benny Prijono71f657d2008-03-17 14:24:21 +0000734dnl # Include G.722 codec
735AC_SUBST(ac_no_g722_codec)
736AC_ARG_ENABLE(g722-codec,
737 AC_HELP_STRING([--disable-g722-codec],
738 [Exclude G.722 codec in the build]),
739 [if test "$enable_g722_codec" = "no"; then
740 [ac_no_g722_codec=1]
741 AC_DEFINE(PJMEDIA_HAS_G722_CODEC,0)
742 AC_MSG_RESULT([Checking if G.722 codec is disabled...yes])
743 fi],
744 AC_MSG_RESULT([Checking if G.722 codec is disabled...no]))
745
Nanang Izzuddin56e380a2009-04-15 14:45:41 +0000746dnl # Include G722.1 codec
747AC_SUBST(ac_no_g7221_codec)
748AC_ARG_ENABLE(g7221-codec,
749 AC_HELP_STRING([--disable-g7221-codec],
750 [Exclude G.7221 codec in the build]),
751 [if test "$enable_g7221_codec" = "no"; then
752 [ac_no_g7221_codec=1]
753 AC_DEFINE(PJMEDIA_HAS_G7221_CODEC,0)
754 AC_MSG_RESULT([Checking if G.722.1 codec is disabled...yes])
755 fi],
756 AC_MSG_RESULT([Checking if G.722.1 codec is disabled...no]))
757
Benny Prijonob466e232006-09-10 08:53:59 +0000758dnl # Include Speex codec
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000759AC_SUBST(ac_no_speex_codec)
760AC_ARG_ENABLE(speex-codec,
761 AC_HELP_STRING([--disable-speex-codec],
762 [Exclude Speex codecs in the build]),
763 [if test "$enable_speex_codec" = "no"; then
764 [ac_no_speex_codec=1]
Benny Prijonofe9bffd2007-01-27 17:44:13 +0000765 AC_DEFINE(PJMEDIA_HAS_SPEEX_CODEC,0)
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000766 AC_MSG_RESULT([Checking if Speex codec is disabled...yes])
767 fi],
768 AC_MSG_RESULT([Checking if Speex codec is disabled...no]))
769
Benny Prijonob466e232006-09-10 08:53:59 +0000770dnl # Include iLBC codec
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000771AC_SUBST(ac_no_ilbc_codec)
772AC_ARG_ENABLE(ilbc-codec,
773 AC_HELP_STRING([--disable-ilbc-codec],
774 [Exclude iLBC codec in the build]),
775 [if test "$enable_ilbc_codec" = "no"; then
776 [ac_no_ilbc_codec=1]
Benny Prijonofe9bffd2007-01-27 17:44:13 +0000777 AC_DEFINE(PJMEDIA_HAS_ILBC_CODEC,0)
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000778 AC_MSG_RESULT([Checking if iLBC codec is disabled...yes])
779 fi],
780 AC_MSG_RESULT([Checking if iLBC codec is disabled...no]))
781
Benny Prijono550a1a62007-10-16 08:54:00 +0000782dnl # Include libsamplerate
783AC_ARG_ENABLE(libsamplerate,
784 AC_HELP_STRING([--enable-libsamplerate],
785 [Link with libsamplerate when available. Note that PJMEDIA_RESAMPLE_IMP must also be configured]),
786 [ AC_CHECK_LIB(samplerate,src_new) ],
787 AC_MSG_RESULT([Skipping libsamplerate detection])
788 )
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000789
Benny Prijono28d3c562012-03-30 07:10:13 +0000790dnl # Include libsamplerate
791AC_SUBST(ac_resample_dll)
792AC_ARG_ENABLE(resample_dll,
793 AC_HELP_STRING([--enable-resample-dll],
794 [Build libresample as shared library]),
795 [if test "$enable_resample_dll" = "yes"; then
796 [ac_resample_dll=1]
797 AC_MSG_RESULT([Building libresample as shared library... yes])
798 fi],
799 AC_MSG_RESULT([Building libresample as shared library... no])
800 )
801
Benny Prijono5b0af632011-07-20 03:16:25 +0000802dnl # SDL alt prefix
803AC_ARG_WITH(sdl,
804 AC_HELP_STRING([--with-sdl=DIR],
805 [Specify alternate libSDL prefix]),
806 [],
807 [with_sdl=no]
808 )
809
Benny Prijonoc45d9512010-12-10 11:04:30 +0000810dnl # SDL
811AC_ARG_ENABLE(sdl,
812 AC_HELP_STRING([--disable-sdl],
813 [Disable SDL (default: not disabled)]),
814 [
815 if test "$enable_sdl" = "no"; then
816 AC_MSG_RESULT([Checking if SDL is disabled... yes])
817 fi
818 ],
819 [
Benny Prijono5b0af632011-07-20 03:16:25 +0000820 SDL_CONFIG="sdl-config"
821 if test "x$with_sdl" != "xno" -a "x$with_sdl" != "x"; then
822 SDL_CONFIG=$with_sdl/bin/sdl-config
823 AC_MSG_RESULT([Using SDL prefix... $with_sdl])
824 fi
825
Benny Prijonoc45d9512010-12-10 11:04:30 +0000826 AC_MSG_CHECKING([SDL availability..])
Sauw Ming1d8ceb12011-08-24 05:54:25 +0000827 if (sh -c "$SDL_CONFIG --version" | grep 1.3) then
Benny Prijono5b0af632011-07-20 03:16:25 +0000828 AC_SUBST(ac_sdl_cflags)
Benny Prijonoc45d9512010-12-10 11:04:30 +0000829 AC_SUBST(ac_sdl_ldflags)
Benny Prijono5b0af632011-07-20 03:16:25 +0000830 ac_sdl_cflags=`$SDL_CONFIG --cflags`
Benny Prijonoc45d9512010-12-10 11:04:30 +0000831 ac_sdl_cflags="-DPJMEDIA_VIDEO_DEV_HAS_SDL=1 $ac_sdl_cflags"
Benny Prijono5b0af632011-07-20 03:16:25 +0000832 ac_sdl_ldflags=`$SDL_CONFIG --libs`
Benny Prijono69b1f822010-12-10 11:33:01 +0000833 LIBS="$LIBS $ac_sdl_ldflags"
Sauw Ming1d8ceb12011-08-24 05:54:25 +0000834 else
835 AC_MSG_RESULT([Unsupported SDL version])
Benny Prijonoc45d9512010-12-10 11:04:30 +0000836 fi
837 ])
838
839
840dnl # FFMPEG stuffs
841AC_ARG_ENABLE(ffmpeg,
842 AC_HELP_STRING([--disable-ffmpeg],
843 [Disable ffmpeg (default: not disabled)]),
844 [
845 AC_SUBST(ac_has_ffmpeg,0)
846 if test "$enable_ffmpeg" = "no"; then
847 AC_MSG_RESULT([Checking if ffmpeg is disabled... yes])
848 fi
849 ],
850 [
851 AC_SUBST(ac_ffmpeg_cflags)
852 AC_SUBST(ac_ffmpeg_ldflags)
853
Benny Prijonoc8ef0ac2011-04-13 19:13:56 +0000854 FFMPEG_PREFIX=""
Benny Prijonoeeebfab2012-04-23 13:46:21 +0000855 AC_SUBST(SAVED_PKG_CONFIG_PATH)
856 SAVED_PKG_CONFIG_PATH=$PKG_CONFIG_PATH
Benny Prijonoc8ef0ac2011-04-13 19:13:56 +0000857 if test "x$with_ffmpeg" != "xno" -a "x$with_ffmpeg" != "x"; then
858 FFMPEG_PREFIX=$with_ffmpeg
859 AC_MSG_RESULT([Using ffmpeg prefix... $FFMPEG_PREFIX])
Benny Prijonoeeebfab2012-04-23 13:46:21 +0000860 PKG_CONFIG_PATH=$FFMPEG_PREFIX/lib/pkgconfig
861 fi
862
863 AC_CHECK_PROGS(PKG_CONFIG,pkg-config "python pkgconfig.py",none)
864
865 if test "$PKG_CONFIG" != "none"; then
866 AC_MSG_CHECKING([ffmpeg packages])
867 av_pkg=""
868 if $PKG_CONFIG --exists libdevice; then
869 ac_ffmpeg_cflags="$ac_ffmpeg_cflags -DPJMEDIA_HAS_LIBAVDEVICE=1"
870 av_pkg="$av_pkg libdevice"
871 fi
872 if $PKG_CONFIG --exists libavformat; then
873 ac_ffmpeg_cflags="$ac_ffmpeg_cflags -DPJMEDIA_HAS_LIBAVFORMAT=1"
874 av_pkg="$av_pkg libavformat"
875 fi
876 if $PKG_CONFIG --exists libavcodec; then
877 ac_ffmpeg_cflags="$ac_ffmpeg_cflags -DPJMEDIA_HAS_LIBAVCODEC=1"
878 av_pkg="$av_pkg libavcodec"
879 fi
880 if $PKG_CONFIG --exists libswscale; then
881 ac_ffmpeg_cflags="$ac_ffmpeg_cflags -DPJMEDIA_HAS_LIBSWSCALE=1"
882 av_pkg="$av_pkg libswscale"
883 fi
884 if $PKG_CONFIG --exists libavutil; then
885 ac_ffmpeg_cflags="$ac_ffmpeg_cflags -DPJMEDIA_HAS_LIBAVUTIL=1"
886 av_pkg="$av_pkg libavutil"
887 fi
888 if $PKG_CONFIG --exists libavcore; then
889 ac_ffmpeg_cflags="$ac_ffmpeg_cflags -DPJMEDIA_HAS_LIBAVCORE=1"
890 av_pkg="$av_pkg libavcore"
891 fi
892
893 if test "x$av_pkg" == "x"; then
894 AC_MSG_RESULT([none detected (check the prefix)! **])
895 else
896 AC_MSG_RESULT([$av_pkg])
897 fi
898
899 ac_ffmpeg_cflags="$ac_ffmpeg_cflags `$PKG_CONFIG --cflags $av_pkg`"
900 ac_ffmpeg_ldflags="$ac_ffmpeg_ldflags `$PKG_CONFIG --libs $av_pkg`"
901
902 else
903 dnl #
904 dnl # Use hardcoded values to configure ffmpeg
905 dnl #
906
907 AC_MSG_RESULT([*** Warning: neither pkg-config nor python is available, ffmpeg dependency cannot be calculated. If ffmpeg libraries are not detected, you need to specify the correct CFLAGS and LDFLAGS settings for ffmpeg prior to invoking configure ***])
908
Benny Prijonoc8ef0ac2011-04-13 19:13:56 +0000909 LIBS="-L$FFMPEG_PREFIX/lib $LIBS"
910 LDFLAGS="-L$FFMPEG_PREFIX/lib $LDFLAGS"
911 CFLAGS="-I$FFMPEG_PREFIX/include $CFLAGS"
Benny Prijonoeeebfab2012-04-23 13:46:21 +0000912
913 AC_CHECK_LIB(avdevice,
914 avdevice_version,
915 [ac_ffmpeg_cflags="$ac_ffmpeg_cflags -DPJMEDIA_HAS_LIBAVDEVICE=1"
916 ac_ffmpeg_ldflags="$ac_ffmpeg_ldflags -lavdevice"
917 ]
918 )
919 AC_CHECK_LIB(avutil,
920 av_malloc,
921 [ac_ffmpeg_cflags="$ac_ffmpeg_cflags -DPJMEDIA_HAS_LIBAVUTIL=1"
922 ac_ffmpeg_ldflags="$ac_ffmpeg_ldflags -lavutil"
923 ]
924 )
925 AC_CHECK_LIB(avcodec,
926 avcodec_init,
927 [ac_ffmpeg_cflags="$ac_ffmpeg_cflags -DPJMEDIA_HAS_LIBAVCODEC=1"
928 ac_ffmpeg_ldflags="$ac_ffmpeg_ldflags -lavcodec"
929 ],
930 [],
931 [-lavutil]
932 )
933 AC_CHECK_LIB(avformat,
934 av_register_all,
935 [ac_ffmpeg_cflags="$ac_ffmpeg_cflags -DPJMEDIA_HAS_LIBAVFORMAT=1"
936 ac_ffmpeg_ldflags="$ac_ffmpeg_ldflags -lavformat"
937 ],
938 [],
939 [-lavcodec -lavutil]
940 )
941 AC_CHECK_LIB(swscale,
942 sws_scale,
943 [ac_ffmpeg_cflags="$ac_ffmpeg_cflags -DPJMEDIA_HAS_LIBSWSCALE=1"
944 ac_ffmpeg_ldflags="$ac_ffmpeg_ldflags -lswscale"
945 ],
946 [],
947 [-lavutil]
948 )
949 AC_CHECK_LIB(avcore,
950 avcore_version,
951 [ac_ffmpeg_cflags="$ac_ffmpeg_cflags -DPJMEDIA_HAS_LIBAVCORE=1"
952 ac_ffmpeg_ldflags="$ac_ffmpeg_ldflags -lavcore"
953 ]
954 )
955
Benny Prijonoc8ef0ac2011-04-13 19:13:56 +0000956 fi
Benny Prijonoeeebfab2012-04-23 13:46:21 +0000957
Benny Prijono69b1f822010-12-10 11:33:01 +0000958 LIBS="$LIBS $ac_ffmpeg_ldflags"
Benny Prijonoeeebfab2012-04-23 13:46:21 +0000959 PKG_CONFIG_PATH=$SAVED_PKG_CONFIG_PATH
Benny Prijonoc45d9512010-12-10 11:04:30 +0000960 ]
961 )
962
Benny Prijonoc8ef0ac2011-04-13 19:13:56 +0000963AC_ARG_WITH(ffmpeg,
964 AC_HELP_STRING([--with-ffmpeg=DIR],
965 [Specify alternate FFMPEG prefix]),
966 [],
967 [with_ffmpeg=no]
968 )
969
970
Benny Prijonoc45d9512010-12-10 11:04:30 +0000971dnl # Video for Linux 2
972AC_ARG_ENABLE(v4l2,
973 AC_HELP_STRING([--disable-v4l2],
974 [Disable Video4Linux2 (default: not disabled)]),
975 [
976 if test "$enable_v4l2" = "no"; then
977 AC_MSG_RESULT([Checking if V4L2 is disabled... yes])
978 fi
979 ],
980 [
981 AC_SUBST(ac_v4l2_cflags)
982 AC_SUBST(ac_v4l2_ldflags)
983 AC_CHECK_LIB(v4l2,
984 v4l2_open,
985 [ac_v4l2_cflags="-DPJMEDIA_VIDEO_DEV_HAS_V4L2=1"
986 ac_v4l2_ldflags="-lv4l2"
Benny Prijono69b1f822010-12-10 11:33:01 +0000987 LIBS="$LIBS -lv4l2"
Benny Prijonoc45d9512010-12-10 11:04:30 +0000988 ]
989 )
990 ])
Benny Prijonoc4c61d02006-08-20 20:47:34 +0000991
Benny Prijono0822c192008-08-21 20:59:58 +0000992dnl ########################################################
993dnl # Intel IPP support
994dnl #
995AC_ARG_ENABLE(ipp,
996 AC_HELP_STRING([--enable-ipp],
997 [Enable Intel IPP support. Specify the Intel IPP package and samples location using IPPROOT and IPPSAMPLES env var or with --with-ipp and --with-ipp-samples options]),
998 [],
999 [enable_ipp=no]
1000 )
1001
Benny Prijono3965f192010-02-10 18:46:05 +00001002AC_ARG_WITH(ipp,
Benny Prijono0822c192008-08-21 20:59:58 +00001003 AC_HELP_STRING([--with-ipp=DIR],
1004 [Specify the Intel IPP location]),
1005 [],
1006 [with_ipp=no]
1007 )
1008
Benny Prijono3965f192010-02-10 18:46:05 +00001009AC_ARG_WITH(ipp-samples,
Benny Prijono0822c192008-08-21 20:59:58 +00001010 AC_HELP_STRING([--with-ipp-samples=DIR],
1011 [Specify the Intel IPP samples location]),
1012 [],
1013 [with_ipp_samples=no]
1014 )
1015
Benny Prijono3965f192010-02-10 18:46:05 +00001016AC_ARG_WITH(ipp-arch,
1017 AC_HELP_STRING([--with-ipp-arch=ARCH],
1018 [Specify the Intel IPP ARCH suffix, e.g. "64" or "em64t. Default is blank for IA32"]),
1019 [],
1020 [with_ipp_arch=no]
1021 )
1022
Benny Prijono0822c192008-08-21 20:59:58 +00001023if test "x$enable_ipp" != "xno"; then
1024 dnl #
1025 dnl # Verifying Intel IPP path
1026 dnl #
1027 AC_MSG_CHECKING([Intel IPP location])
1028
1029 if test "x$with_ipp" != "xno" -a "x$with_ipp" != "x"; then
1030 AC_MSG_RESULT([$with_ipp])
1031 IPPROOT=$with_ipp
1032 elif test "x$IPPROOT" = "x"; then
1033 if test -d /opt/intel/ipp; then
1034 IPPROOT=`ls -d /opt/intel/ipp/*/* | head -1`
1035 AC_MSG_RESULT([autodetected in $IPPROOT])
1036 fi
1037 else
1038 AC_MSG_RESULT([$IPPROOT])
1039 fi
1040
Benny Prijono3965f192010-02-10 18:46:05 +00001041 if test "x$with_ipp_arch" != "xno"; then
Benny Prijono896be292010-08-17 12:16:46 +00001042 IPP_SUFFIX=$with_ipp_arch
Benny Prijono3965f192010-02-10 18:46:05 +00001043 AC_MSG_RESULT([IPP arch suffix is set to $IPP_SUFFIX])
1044 else
1045 IPP_SUFFIX=""
1046 AC_MSG_RESULT([IPP arch suffix is set to empty])
1047 fi
1048
Benny Prijono0822c192008-08-21 20:59:58 +00001049 if test x$IPPROOT = x; then
1050 AC_MSG_ERROR([the location is neither specified nor can be guessed. Please specify with IPPROOT env var or with --with-ipp option])
1051 elif test ! -d $IPPROOT; then
1052 AC_MSG_ERROR([not found])
1053 elif test ! -d $IPPROOT/include; then
1054 AC_MSG_ERROR([directory doesn't seem to be valid])
1055 else
1056 # IPP directory looks okay.
1057 # Remove trailing backslash
Benny Prijono3965f192010-02-10 18:46:05 +00001058 IPPROOT=`echo $IPPROOT | sed 's/\/$//'`
Benny Prijono0822c192008-08-21 20:59:58 +00001059
1060 SAVED_CFLAGS="$CFLAGS"
1061 SAVED_LDFLAGS="$LDFLAGS"
1062 SAVED_LIBS="$LIBS"
1063
1064 IPP_CFLAGS="-I$IPPROOT/include"
Benny Prijonocd62c4e2011-03-18 08:33:29 +00001065 IPP_LIBS="-lippsc${IPP_SUFFIX} -lipps${IPP_SUFFIX} -lippcore${IPP_SUFFIX}"
Benny Prijono46bd0842010-02-12 14:12:41 +00001066
Benny Prijonocd62c4e2011-03-18 08:33:29 +00001067#
Benny Prijono46bd0842010-02-12 14:12:41 +00001068 # Some differences between Mac OS X and Linux
1069 case $target in
1070 *darwin* )
1071 IPP_LDFLAGS="-L$IPPROOT/Libraries -L$IPPROOT/lib"
1072 ;;
1073 *)
Benny Prijonocd62c4e2011-03-18 08:33:29 +00001074 # Find out where the libraries live.
1075 IPP7_ARCH=""
1076 if test -d $IPPROOT/lib/intel64; then
1077 IPP7_ARCH="intel64"
1078 elif test -d $IPPROOT/lib/ia32; then
1079 IPP7_ARCH="ia32"
1080 elif test -d $IPPROOT/lib/mic; then
1081 IPP7_ARCH="mic"
1082 fi
1083
1084 if test -z "$IPP7_ARCH"; then
1085 # IPP6 (and possibly below)
1086 IPP_LDFLAGS="-L$IPPROOT/sharedlib"
1087 IPP_LIBS="$IPP_LIBS -lippsr${IPP_SUFFIX} -lguide"
1088 else
1089 # IPP7
1090 if ! test -d $IPPROOT/../compiler; then
1091 AC_MSG_ERROR([Cannot find $IPPROOT/../compiler directory. Please set IPPROOT variable correctly])
1092 fi
1093 IPP_CFLAGS="$IPP_CFLAGS"
1094 IPP_LDFLAGS="-L$IPPROOT/lib/intel64 -L$IPPROOT/../compiler/lib/$IPP7_ARCH"
1095 IPP_LIBS="$IPP_LIBS -liomp5"
1096 fi
Benny Prijono46bd0842010-02-12 14:12:41 +00001097 ;;
1098 esac
1099
Benny Prijono0822c192008-08-21 20:59:58 +00001100 #IPP_LDFLAGS="-L$IPPROOT/sharedlib"
Benny Prijono46bd0842010-02-12 14:12:41 +00001101 #Static:
Benny Prijono0822c192008-08-21 20:59:58 +00001102 #IPP_LIBS="-lippscmerged -lippsrmerged -lippsmerged -lippcore"
1103
1104 CFLAGS="$CFLAGS $IPP_CFLAGS"
1105 LDFLAGS="$LDFLAGS $IPP_LDFLAGS"
1106 LIBS="$IPP_LIBS $LIBS"
1107
1108
1109 AC_MSG_CHECKING([Intel IPP usability])
1110 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <ippcore.h>
1111 ]],
1112 [ippStaticInit();])],
1113 [AC_MSG_RESULT(ok)],
Benny Prijono3965f192010-02-10 18:46:05 +00001114 [AC_MSG_FAILURE(Error: unable to recognize your IPP installation. Make sure the paths and ARCH suffix are set correctly, run with --help for more info)])
Benny Prijono0822c192008-08-21 20:59:58 +00001115
1116 CFLAGS="$SAVED_CFLAGS"
1117 LDFLAGS="$SAVED_LDFLAGS"
1118 LIBS="$SAVED_LIBS"
1119 fi
1120
1121 dnl #
1122 dnl # Verifying Intel IPP samples path
1123 dnl #
1124 AC_MSG_CHECKING([Intel IPP samples location])
1125
1126 if test "x$with_ipp_samples" != "xno" -a "x$with_ipp_samples" != "x"; then
1127 AC_MSG_RESULT([$with_ipp_samples])
1128 IPPSAMPLES=$with_ipp_samples
1129 elif test "x$IPPSAMPLES" = "x"; then
1130 if test -d /opt/intel/ipp-samples; then
1131 IPPSAMPLES=/opt/intel/ipp-samples
1132 AC_MSG_RESULT([autodetected in $IPPSAMPLES])
1133 fi
1134 else
1135 AC_MSG_RESULT([$IPPSAMPLES])
1136 fi
1137
1138 if test x$IPPSAMPLES = x; then
1139 AC_MSG_ERROR([the location is neither specified nor can be guessed. Please specify with IPPSAMPLES env var or with --with-ipp-samples option])
1140 elif test ! -d $IPPSAMPLES; then
1141 AC_MSG_ERROR([not found])
1142 elif test ! -d $IPPSAMPLES/speech-codecs; then
1143 AC_MSG_ERROR([directory doesn't seem to be valid])
1144 else
1145 # Remove trailing backslash
1146 IPPSAMPLES=`echo $IPPSAMPLES | sed 's/\/$//'`
Benny Prijono3965f192010-02-10 18:46:05 +00001147
1148 # Guess the libusc.a/libspeech.a build location
Benny Prijono0822c192008-08-21 20:59:58 +00001149 AC_MSG_CHECKING([Intel IPP USC build location])
Benny Prijono3965f192010-02-10 18:46:05 +00001150 if test -d $IPPSAMPLES/speech-codecs/bin; then
1151 IPPVER=5
1152 IPPSAMP_DIR=`ls -d $IPPSAMPLES/speech-codecs/bin/*gcc*/lib | head -1`
1153 elif test -d $IPPSAMPLES/speech-codecs/_bin; then
1154 IPPVER=6
Benny Prijono46bd0842010-02-12 14:12:41 +00001155 if test -d $IPPSAMPLES/speech-codecs/_bin/*gcc*; then
1156 # gcc compiler
1157 IPPSAMP_DIR=`ls -d $IPPSAMPLES/speech-codecs/_bin/*gcc*/lib | head -1`
1158 elif test -d $IPPSAMPLES/speech-codecs/_bin/*icc*; then
1159 # icc compiler
1160 IPPSAMP_DIR=`ls -d $IPPSAMPLES/speech-codecs/_bin/*icc*/lib | head -1`
1161 else
1162 AC_MSG_FAILURE([Unable to find to find built binaries under $IPPSAMPLES/speech-codecs/{bin,_bin}. Have you built the IPP samples?])
1163 fi
Benny Prijono3965f192010-02-10 18:46:05 +00001164 else
1165 AC_MSG_FAILURE([unable to find $IPPSAMPLES/speech-codecs/bin/*gcc*/lib or $IPPSAMPLES/speech-codecs/_bin/*gcc*/lib directory. Have you built the samples?])
Benny Prijono0822c192008-08-21 20:59:58 +00001166 fi
Benny Prijono3965f192010-02-10 18:46:05 +00001167
1168 # Test the directory
1169 if test ! -d $IPPSAMP_DIR; then
1170 AC_MSG_FAILURE([There's something wrong with this script, directory $IPPSAMP_DIR does not exist])
1171 exit 1;
Benny Prijono0822c192008-08-21 20:59:58 +00001172 fi
Benny Prijono3965f192010-02-10 18:46:05 +00001173
1174 if test "x$IPPVER" = "x5"; then
1175 IPPSAMP_LIBS="libusc.a"
1176 IPPSAMP_LDLIBS="-lusc"
1177 elif test "x$IPPVER" = "x6"; then
1178 IPPSAMP_LIBS="libspeech.a"
1179 IPPSAMP_LDLIBS="-lspeech"
1180 else
1181 AC_MSG_FAILURE([bug in this script: unsupported IPP version])
1182 fi
1183
1184 if test ! -f $IPPSAMP_DIR/$IPPSAMP_LIBS; then
1185 AC_MSG_FAILURE([$IPPSAMP_LIBS doesn't exist in $IPPSAMP_DIR])
1186 fi
1187
1188 AC_MSG_RESULT([$IPPSAMP_DIR])
Benny Prijono0822c192008-08-21 20:59:58 +00001189
1190 SAVED_CFLAGS="$CFLAGS"
1191 SAVED_LDFLAGS="$LDFLAGS"
1192 SAVED_LIBS="$LIBS"
1193
Benny Prijono3965f192010-02-10 18:46:05 +00001194 IPPSAMP_INC="-I$IPPSAMPLES/speech-codecs/core/usc/include"
1195 CFLAGS="$CFLAGS $IPPSAMP_INC"
1196 LDFLAGS="$LDFLAGS -L$IPPSAMP_DIR"
1197 LIBS="$IPPSAMP_LDLIBS $LIBS"
Benny Prijono0822c192008-08-21 20:59:58 +00001198
1199 AC_MSG_CHECKING([Intel IPP USC usability])
1200 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <usc.h>
1201 ]],
1202 [extern USC_Fxns USC_G729AFP_Fxns;])],
1203 [AC_MSG_RESULT(ok)],
1204 [AC_MSG_FAILURE(failed)])
1205
1206 CFLAGS="$SAVED_CFLAGS"
Benny Prijono3965f192010-02-10 18:46:05 +00001207 LDFLAGS="$IPP_LDFLAGS $SAVED_LDFLAGS"
1208 LIBS="$IPP_LIBS $SAVED_LIBS"
Benny Prijono0822c192008-08-21 20:59:58 +00001209
Benny Prijono3965f192010-02-10 18:46:05 +00001210 IPP_CFLAGS="$IPP_CFLAGS $IPPSAMP_INC"
1211 IPP_LDFLAGS="$IPP_LDFLAGS -L$IPPSAMP_DIR"
1212 IPP_LIBS="$IPPSAMP_LDLIBS $IPP_LIBS"
Benny Prijono0822c192008-08-21 20:59:58 +00001213 fi
1214
Benny Prijono3965f192010-02-10 18:46:05 +00001215 CFLAGS="$CFLAGS $IPP_CFLAGS"
1216 LDFLAGS="$LDFLAGS $IPP_LDFLAGS"
1217 LIBS="$LIBS $IPP_LIBS"
1218
Benny Prijono0822c192008-08-21 20:59:58 +00001219 ac_build_mak_vars="$ac_build_mak_vars\n\
1220export IPP_CFLAGS=$IPP_CFLAGS\n\
1221export IPP_LDFLAGS=$IPP_LDFLAGS\n\
1222export IPP_LIBS=$IPP_LIBS"
1223else
1224 AC_MSG_RESULT([Skipping Intel IPP settings (not wanted)])
1225fi
1226
1227
Benny Prijonob466e232006-09-10 08:53:59 +00001228dnl ##########################################
1229dnl #
Benny Prijono7e0d75f2006-12-25 20:34:14 +00001230dnl # PJSIP CONFIG
1231dnl #
1232
1233dnl # Include SSL support
1234AC_SUBST(ac_no_ssl)
1235AC_ARG_ENABLE(ssl,
Benny Prijonoce1db762007-02-14 02:21:08 +00001236 AC_HELP_STRING([--disable-ssl],
1237 [Exclude SSL support the build (default: autodetect)])
1238 ,
Benny Prijono7e0d75f2006-12-25 20:34:14 +00001239 [
1240 if test "$enable_ssl" = "no"; then
1241 [ac_no_ssl=1]
1242 AC_MSG_RESULT([Checking if SSL support is disabled... yes])
1243 fi
1244 ],
1245 [
1246 AC_MSG_RESULT([checking for OpenSSL installations..])
1247 AC_SUBST(openssl_h_present)
1248 AC_SUBST(libssl_present)
1249 AC_SUBST(libcrypto_present)
1250 AC_CHECK_HEADER(openssl/ssl.h,[openssl_h_present=1])
Benny Prijono7e0d75f2006-12-25 20:34:14 +00001251 AC_CHECK_LIB(crypto,ERR_load_BIO_strings,[libcrypto_present=1 && LIBS="$LIBS -lcrypto"])
Benny Prijonod5233702010-01-13 13:09:45 +00001252 AC_CHECK_LIB(ssl,SSL_library_init,[libssl_present=1 && LIBS="$LIBS -lssl"])
Benny Prijono7e0d75f2006-12-25 20:34:14 +00001253 if test "x$openssl_h_present" = "x1" -a "x$libssl_present" = "x1" -a "x$libcrypto_present" = "x1"; then
1254 AC_MSG_RESULT([OpenSSL library found, SSL support enabled])
Nanang Izzuddin9c7616f2009-10-28 06:09:15 +00001255 # PJSIP_HAS_TLS_TRANSPORT setting follows PJ_HAS_SSL_SOCK
1256 #AC_DEFINE(PJSIP_HAS_TLS_TRANSPORT, 1)
Nanang Izzuddinea6d3c42009-10-26 15:47:52 +00001257 AC_DEFINE(PJ_HAS_SSL_SOCK, 1)
Benny Prijono7e0d75f2006-12-25 20:34:14 +00001258 else
1259 AC_MSG_RESULT([** OpenSSL libraries not found, disabling SSL support **])
1260 fi
1261 ])
1262
Sauw Minge7dbbc82011-10-24 09:28:13 +00001263dnl # Include opencore-amrnb support
1264AC_SUBST(ac_no_opencore_amrnb)
1265AC_ARG_ENABLE(opencore_amrnb,
1266 AC_HELP_STRING([--disable-opencore-amrnb],
1267 [Exclude OpenCORE AMR-NB support from the build (default: autodetect)])
1268 ,
1269 [
1270 if test "$enable_opencore_amrnb" = "no"; then
1271 [ac_no_opencore_amrnb=1]
1272 AC_DEFINE(PJMEDIA_HAS_OPENCORE_AMRNB_CODEC,0)
1273 AC_MSG_RESULT([Checking if OpenCORE AMR-NB support is disabled... yes])
1274 fi
1275 ],
1276 [
1277 AC_MSG_RESULT([checking for OpenCORE AMR-NB installations..])
1278 AC_SUBST(opencore_amrnb_h_present)
1279 AC_SUBST(opencore_amrnb_present)
1280 AC_CHECK_HEADER(opencore-amrnb/interf_enc.h,[opencore_amrnb_h_present=1])
1281 AC_CHECK_LIB(opencore-amrnb,Encoder_Interface_init,[opencore_amrnb_present=1 && LIBS="$LIBS -lopencore-amrnb"])
1282 if test "x$opencore_amrnb_h_present" = "x1" -a "x$opencore_amrnb_present" = "x1"; then
1283 AC_MSG_RESULT([OpenCORE AMR-NB library found, AMR-NB support enabled])
1284 AC_DEFINE(PJMEDIA_HAS_OPENCORE_AMRNB_CODEC,1)
1285 else
1286 [ac_no_opencore_amrnb=1]
1287 AC_DEFINE(PJMEDIA_HAS_OPENCORE_AMRNB_CODEC,0)
1288 fi
1289 ])
1290
Benny Prijono7e0d75f2006-12-25 20:34:14 +00001291dnl ##########################################
1292dnl #
Benny Prijonob466e232006-09-10 08:53:59 +00001293dnl # MANUAL CONFIG
1294dnl #
Benny Prijonoc4c61d02006-08-20 20:47:34 +00001295
Benny Prijonoa9b372a2006-07-24 02:07:11 +00001296
Benny Prijonob466e232006-09-10 08:53:59 +00001297dnl # Determine if select() requires nfds to be filled up with
1298dnl # correct value (max_fd+1). If zero, nfds will be filled up with
1299dnl # PJ_FD_SETSIZE
Benny Prijonoc4c61d02006-08-20 20:47:34 +00001300AC_MSG_CHECKING([if select() needs correct nfds])
Benny Prijonoa9b372a2006-07-24 02:07:11 +00001301case $target in
1302 *rtems*) AC_DEFINE(PJ_SELECT_NEEDS_NFDS,1)
Benny Prijonoa9b372a2006-07-24 02:07:11 +00001303 AC_MSG_RESULT(yes)
1304 ;;
1305 *) AC_DEFINE(PJ_SELECT_NEEDS_NFDS,0)
1306 AC_MSG_RESULT([no (default)])
1307 AC_MSG_RESULT([** Decided that select() doesn't need correct nfds (please check)])
1308 ;;
1309esac
1310
Benny Prijonob466e232006-09-10 08:53:59 +00001311dnl # Determine if pj_thread_create() should enforce thread stack size when
1312dnl # creating thread. Default is zero, to allow OS to allocate appropriate
1313dnl # thread's stack size.
Benny Prijonoa9b372a2006-07-24 02:07:11 +00001314AC_MSG_CHECKING([if pj_thread_create() should enforce stack size])
1315case $target in
1316 *rtems*) AC_DEFINE(PJ_THREAD_SET_STACK_SIZE,1)
1317 AC_MSG_RESULT(yes)
1318 ;;
1319 *) AC_DEFINE(PJ_THREAD_SET_STACK_SIZE,0)
1320 AC_MSG_RESULT([no (default)])
1321 ;;
1322esac
1323
Benny Prijonob466e232006-09-10 08:53:59 +00001324dnl # Determine if pj_thread_create() should allocate thread's stack from
1325dnl # the pool. Default is zero, to let OS allocate thread's stack.
Benny Prijonoa9b372a2006-07-24 02:07:11 +00001326AC_MSG_CHECKING([if pj_thread_create() should allocate stack])
1327case $target in
1328 *rtems*) AC_DEFINE(PJ_THREAD_ALLOCATE_STACK,1)
1329 AC_MSG_RESULT(yes)
1330 ;;
1331 *) AC_DEFINE(PJ_THREAD_ALLOCATE_STACK,0)
1332 AC_MSG_RESULT([no (default)])
1333 ;;
1334esac
1335
Benny Prijonob466e232006-09-10 08:53:59 +00001336dnl # This value specifies the value set in errno by the OS when a non-blocking
1337dnl # socket recv() can not return immediate data.
Benny Prijonoa9b372a2006-07-24 02:07:11 +00001338case $target in
Benny Prijonoc5b6dbf2006-09-10 16:33:48 +00001339 *mingw* | *cygw* | *win32* | *w32* )
1340 AC_DEFINE(PJ_BLOCKING_ERROR_VAL,WSAEWOULDBLOCK)
1341 ;;
Benny Prijonoa9b372a2006-07-24 02:07:11 +00001342 *) AC_DEFINE(PJ_BLOCKING_ERROR_VAL,EAGAIN)
1343 AC_MSG_RESULT([** Setting non-blocking recv() retval to EAGAIN (please check)])
1344 ;;
1345esac
1346
Benny Prijonob466e232006-09-10 08:53:59 +00001347dnl # This value specifies the value set in errno by the OS when a non-blocking
1348dnl # socket connect() can not get connected immediately.
Benny Prijonoa9b372a2006-07-24 02:07:11 +00001349case $target in
Benny Prijonoc5b6dbf2006-09-10 16:33:48 +00001350 *mingw* | *cygw* | *win32* | *w32* )
1351 AC_DEFINE(PJ_BLOCKING_CONNECT_ERROR_VAL,WSAEWOULDBLOCK)
1352 ;;
Benny Prijonoa9b372a2006-07-24 02:07:11 +00001353 *) AC_DEFINE(PJ_BLOCKING_CONNECT_ERROR_VAL,EINPROGRESS)
1354 AC_MSG_RESULT([** Setting non-blocking connect() retval to EINPROGRESS (please check)])
1355 ;;
1356esac
1357
Benny Prijonoa9b372a2006-07-24 02:07:11 +00001358
Benny Prijonoc4c61d02006-08-20 20:47:34 +00001359AC_SUBST(target)
1360AC_SUBST(ac_cross_compile)
1361if test "$build" = "$host"; then
1362 ac_cross_compile=
1363else
Benny Prijono5b818b22006-09-17 22:58:51 +00001364 ac_cross_compile=${host_orig}-
Benny Prijonoc4c61d02006-08-20 20:47:34 +00001365fi
1366AC_SUBST(ac_linux_poll,select)
1367AC_SUBST(ac_host,unix)
1368AC_SUBST(ac_main_obj)
1369case $target in
1370 *rtems*)
1371 ac_main_obj=main_rtems.o
1372 ;;
1373 *)
1374 ac_main_obj=main.o
1375 ;;
1376esac
1377AC_SUBST(CC)
Benny Prijono0822c192008-08-21 20:59:58 +00001378
1379ac_build_mak_vars=`echo $ac_build_mak_vars | sed 's/\\\\n/\n/g'`
Benny Prijonoa9b372a2006-07-24 02:07:11 +00001380AC_OUTPUT()
1381
Benny Prijonod9627842007-04-18 09:24:31 +00001382
1383AC_MSG_RESULT([
1384
Benny Prijonoc16c6e32007-11-18 14:53:47 +00001385Configurations for current target have been written to 'build.mak', and 'os-auto.mak' in various build directories, and pjlib/include/pj/compat/os_auto.h.
Benny Prijonod9627842007-04-18 09:24:31 +00001386
Benny Prijonoc16c6e32007-11-18 14:53:47 +00001387Further customizations can be put in:
Benny Prijonod9627842007-04-18 09:24:31 +00001388 - 'user.mak'
1389 - 'pjlib/include/pj/config_site.h'
1390
1391The next step now is to run 'make dep' and 'make'.
1392])
1393