spec files have been renamed
[vlc.git] / configure.ac
blobda361101ef8be68fc128c66b943a68ceed405d8f
1 dnl Autoconf settings for vlc
3 AC_INIT(vlc,0.9.0-svn)
4 VERSION_MAJOR="0"
5 VERSION_MINOR="9"
6 VERSION_REVISION="0"
7 VERSION_EXTRA="svn"
9 CONFIGURE_LINE="$0 $ac_configure_args"
10 CODENAME="Grishenko"
12 AC_PREREQ(2.59)
13 AC_CONFIG_SRCDIR(src/libvlc.c)
14 AC_CONFIG_AUX_DIR(autotools)
15 AC_CANONICAL_BUILD
16 AC_CANONICAL_HOST
18 AM_INIT_AUTOMAKE([1.7 check-news dist-bzip2])
19 AM_CONFIG_HEADER(config.h)
21 dnl Too many people are not aware of maintainer mode:
22 dnl If you want to use it, you definitely know what you are doing, so
23 dnl you can specify "--disable-maintainer-mode". But if you want the default
24 dnl automake behavior, you've likely never heard of maintainer mode, so we
25 dnl can't expect you to enable it manually.
27 AS_IF([test "x${enable_maintainer_mode}" != "xno"],
28         [enable_maintainer_mode="yes"])
30 dnl HA! HA!
31 AM_MAINTAINER_MODE
33 dnl
34 dnl  Save *FLAGS
35 dnl
36 VLC_SAVE_FLAGS
38 dnl
39 dnl Check for tools
40 dnl
41 AC_PROG_CC_C99
42 AC_USE_SYSTEM_EXTENSIONS
43 AM_PROG_CC_C_O
44 AC_PROG_CXX
45 AC_PROG_CPP
46 AC_PROG_OBJC
47 _AM_DEPENDENCIES([OBJC])
48 AC_PROG_EGREP
49 AC_PROG_MAKE_SET
50 AC_PROG_INSTALL
51 AM_PROG_AS
53 dnl Find the right ranlib, even when cross-compiling
54 AC_CHECK_TOOL(RANLIB, ranlib, :)
55 AC_CHECK_TOOL(STRIP, strip, :)
56 AC_CHECK_TOOL(AR, ar, :)
57 AC_CHECK_TOOL(LD, ld, :)
59 dnl Check for compiler properties
60 AC_C_CONST
61 AC_C_INLINE
62 AC_C_RESTRICT
64 dnl
65 dnl  Check for the contrib directory
66 dnl
67 AC_ARG_WITH(contrib,
68     [  --without-contrib       do not use the libraries in extras/contrib],[],[])
69   if test "${with_contrib}" != "no"; then 
70     AC_MSG_CHECKING([for libs in extras/contrib])
71     topdir="`dirname $0`"
72     if test "`echo \"$topdir\" | cut -c 1`" != "/"; then
73        topdir="`pwd`/$topdir"
74     fi
75    if test "`grep HOST ${topdir}/extras/contrib/config.mak 2>/dev/null|awk '{print $3}'`" != "`$CC -dumpmachine`"; then
76       if test "${with_contrib}" = "yes"; then
77         AC_MSG_RESULT([no])
78         AC_MSG_ERROR([ not using the libs in extras/contrib as it is not the same host])
79       else
80         AC_MSG_RESULT([no])
81         AC_MSG_WARN([ not using the libs in extras/contrib as it is not the same host])
82       fi
83      else
84   if test -d ${topdir}/extras/contrib/lib; then
85     AC_MSG_RESULT([yes])
86     export PATH=${topdir}/extras/contrib/bin:$PATH
87     CPPFLAGS="${CPPFLAGS} -I${topdir}/extras/contrib/include"
88     CPPFLAGS_save="${CPPFLAGS_save} -I${topdir}/extras/contrib/include"
89     CFLAGS="${CFLAGS} -I${topdir}/extras/contrib/include"
90     CFLAGS_save="${CFLAGS_save} -I${topdir}/extras/contrib/include"
91     CXXFLAGS="${CXXFLAGS} -I${topdir}/extras/contrib/include"
92     CXXFLAGS_save="${CXXFLAGS_save} -I${topdir}/extras/contrib/include"
93     OBJCFLAGS="${OBJCFLAGS} -I${topdir}/extras/contrib/include"
94     OBJCFLAGS_save="${OBJCFLAGS_save} -I${topdir}/extras/contrib/include"
95     if test $build = $host -o "$PKG_CONFIG_LIBDIR"; then
96         export PKG_CONFIG_PATH=${topdir}/extras/contrib/lib/pkgconfig:$PKG_CONFIG_PATH
97     else
98         export PKG_CONFIG_LIBDIR=${topdir}/extras/contrib/lib/pkgconfig
99     fi
100     LDFLAGS="${LDFLAGS} -L${topdir}/extras/contrib/lib"
101     LDFLAGS_save="${LDFLAGS_save} -L${topdir}/extras/contrib/lib"
103 dnl kludge because only the debian package provides a ffmpeg-config
104     if test -z $with_ffmpeg_config_path; then 
105        with_ffmpeg_config_path=${topdir}/extras/contrib/bin;
106     fi
107     if test -z $with_live555_tree; then
108        with_live555_tree=${topdir}/extras/contrib/src/live
109     fi
110     if test -z $with_goom_tree; then
111       with_goom_tree=${topdir}/extras/contrib/src/goom
112     fi
113     if test -z $with_mozilla_sdk_path; then
114        with_mozilla_sdk_path=${topdir}/extras/contrib/gecko-sdk
115     fi
116     if test -z $with_cyberlink_tree; then
117        with_cyberlink_tree=${topdir}/extras/contrib/src/clinkcc
118     fi
119     if test -z $with_libmpeg2_tree; then
120         with_libmpeg2_tree=${topdir}/extras/contrib/src/mpeg2dec
121     fi
123     if test ".`uname -s`" = ".Darwin"; then
124       export LD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$LD_LIBRARY_PATH
125       export DYLD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$DYLD_LIBRARY_PATH
126     elif test ".`uname -s`" = ".BeOS"; then
127       export LIBRARY_PATH=${topdir}/extras/contrib/lib:$LIBRARY_PATH
128       export BELIBRARIES=${topdir}/extras/contrib/lib:$BELIBRARIES
129     fi
130   else
131      AC_MSG_RESULT([no])
132   fi
133   fi
136 dnl  Set default values
138 LDFLAGS_vlc="${LDFLAGS}"
141 dnl  Check the operating system
143 case "${host_os}" in
144   "")
145     SYS=unknown
146     ;;
147   linux*)
148     SYS=linux
149     ;;
150   bsdi*)
151     SYS=bsdi
152     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
153     VLC_ADD_LDFLAGS([dvd dvdcss vcd cdda vcdx cddax],[-ldvd])
154     ;;
155   *bsd*)
156     SYS="${host_os}"
157     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
158     case "${host_os}" in
159       freebsd*)
160         CPPFLAGS_save="${CPPFLAGS_save} -I/usr/local/include"
161         CPPFLAGS="${CPPFLAGS_save}"
162         LDFLAGS_save="${LDFLAGS_save} -L/usr/local/lib"
163         LDFLAGS="${LDLFAGS_save}"
164         ;;
165     esac
166     ;;
167   darwin1.[0123])
168     dnl Mac OS X < 10.3
169     SYS=darwin
170     CFLAGS_save="${CFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
171     CXXFLAGS_save="${CXXFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
172     OBJCFLAGS_save="${OBJCFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS"; OBJCFLAGS="${OBJCFLAGS_save}"
173     VLC_ADD_LDFLAGS([vlc ffmpeg ffmpegaltivec],[-all_load])
174     VLC_ADD_LDFLAGS([mp4], [-framework IOKit -framework CoreFoundation])
175     VLC_ADD_CFLAGS([libvlc],[-x objective-c])
176     VLC_ADD_CFLAGS([vlc],[-x objective-c])
177     VLC_ADD_LDFLAGS([vlc],[-Wl,-m -Wl,-multiply_defined -Wl,suppress])
178     ;;
179   darwin*)
180     SYS=darwin
181     CFLAGS_save="${CFLAGS_save} -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
182     CXXFLAGS_save="${CXXFLAGS_save} -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
183     OBJCFLAGS_save="${OBJCFLAGS_save} -D_INTL_REDIRECT_MACROS"; OBJCFLAGS="${OBJCFLAGS_save}"
184     VLC_ADD_LDFLAGS([mp4], [-framework IOKit -framework CoreFoundation])
185     VLC_ADD_CFLAGS([libvlc],[-x objective-c])
186     VLC_ADD_CFLAGS([vlc],[-x objective-c])
187     ;;
188   *mingw32* | *cygwin* | *wince* | *mingwce* | *pe*)
189     AC_CHECK_TOOL(WINDRES, windres, :)
190     enable_libtool="no"
192     case "${host_os}" in
193       *mingw32*)
194         SYS=mingw32
195         ;;
196       *cygwin*)
197         dnl Check if we are using the mno-cygwin mode in which case we are
198         dnl actually dealing with a mingw32 compiler.
199         AC_EGREP_CPP(yes,
200             [#ifdef WIN32
201              yes
202              #endif],
203             SYS=mingw32, SYS=cygwin)
204         ;;
205       *wince* | *mingwce* | *pe*)
206         SYS=mingwce
207         ;;
208     esac
210     if test "${SYS}" = "mingw32"; then
211         # add ws2_32 for closesocket, select, recv
212         CPPFLAGS_save="${CPPFLAGS_save} -D_OFF_T_ -D_off_t=long"; CPPFLAGS="${CPPFLAGS_save}"
213         VLC_ADD_LDFLAGS([vlc],[-lws2_32 -lnetapi32 -lwinmm -mwindows])
214         VLC_ADD_LDFLAGS([cdda vcdx cddax],[-lwinmm])
215         VLC_ADD_LDFLAGS([ipv4 ipv6 access_http access_mms access_udp access_tcp access_ftp access_output_udp sap slp http stream_out_standard stream_out_rtp vod_rtsp telnet netsync growl],[-lws2_32])
216     fi
217     if test "${SYS}" = "mingwce"; then
218         # add ws2 for closesocket, select, recv
219         CPPFLAGS_save="${CPPFLAGS_save} -D_OFF_T_ -D_off_t=long"; CPPFLAGS="${CPPFLAGS_save}"
220         VLC_ADD_CPPFLAGS([vlc],[-Dmain(a,b)=maince(a,b)])
221         VLC_ADD_LDFLAGS([vlc],[-lws2 -e WinMainCRTStartup])
222         VLC_ADD_LDFLAGS([ipv4 ipv6 access_http access_mms access_udp access_tcp access_ftp access_output_udp sap http netsync],[-lws2])
223    fi
224     ;;
225   *nto*)
226     SYS=nto
227     VLC_ADD_LDFLAGS([x11 xvideo],[-lsocket])
228     ;;
229   solaris*)
230     SYS=solaris
231     # _POSIX_PTHREAD_SEMANTICS is needed to get the POSIX ctime_r
232     # Perhaps it is useful other places as well? 
233     CFLAGS_save="${CFLAGS_save} -D_POSIX_PTHREAD_SEMANTICS"; CFLAGS="${CFLAGS_save}"
234     ;;
235   hpux*)
236     SYS=hpux
237     ;;
238   beos)
239     SYS=beos
240     CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}"
241     CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}"
242     VLC_ADD_CXXFLAGS([beos],[])
243     VLC_ADD_LDFLAGS([vlc logger],[-lbe])
244     VLC_ADD_LDFLAGS([beos],[-lbe -lmedia -ltranslation -ltracker -lgame])
245     VLC_ADD_LDFLAGS([dvdnav dvdread],[-ldl])
246     VLC_ADD_LDFLAGS([access_file],[-lpoll])
247     LDFLAGS_save="${LDFLAGS_save} -lintl"; LDFLAGS="${CFLAGS_save}"
248     dnl Check for BONE
249     if test -f /boot/beos/system/lib/libbind.so; then
250         VLC_ADD_LDFLAGS([access_file access_ftp access_mms access_output_udp telnet netsync sap ipv4 vlc growl],[-lbind -lsocket])
251     else
252         VLC_ADD_LDFLAGS([access_file access_ftp access_mms access_output_udp telnet netsync sap ipv4 vlc growl],[-lnet])
253     fi
255     dnl Ugly check for Zeta
256     if test -f /boot/beos/system/lib/libzeta.so; then
257         VLC_ADD_LDFLAGS([beos],[-lzeta])
258     fi
259     ;;
260   *)
261     SYS="${host_os}"
262     ;;
263 esac
264 AM_CONDITIONAL(HAVE_BEOS, test "${SYS}" = "beos")
265 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
266 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
267 AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
270 dnl  Libtool
271 dnl  It's very bad, but our former custom system was worst
272 dnl  -- Courmisch
274 AC_DISABLE_STATIC
275 AC_LIBTOOL_DLOPEN
276 dnl AC_LIBTOOL_WIN32_DLL - couldn't get libtool to work on Win32 so far
277 m4_undefine([AC_PROG_F77])
278 m4_defun([AC_PROG_F77],[])
279 AC_PROG_LIBTOOL
281 AC_ARG_ENABLE(libtool,
282     [  --enable-libtool        use libtool (default disabled)])
283 AM_CONDITIONAL(USE_LIBTOOL, [test "x${enable_libtool}" != "xno"])
287 dnl  Check for Mac OS X SDK settings
289 AC_ARG_WITH(macosx-sdk,
290    [  --with-macosx-sdk       compile for Mac OS X 10.3 SDK],[], with_macosx_sdk=no)
291 if test "${with_macosx_sdk}" != "no" ; then
292   CFLAGS_save="${CFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=10.3 -isysroot /Developer/SDKs/MacOSX10.3.9.sdk"; CFLAGS="${CFLAGS_save}"
293   CXXFLAGS_save="${CXXFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=10.3 -isysroot /Developer/SDKs/MacOSX10.3.9.sdk"; CXXFLAGS="${CXXFLAGS_save}"
294   OBJCFLAGS_save="${OBJCFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=10.3 -isysroot /Developer/SDKs/MacOSX10.3.9.sdk"; OBJCFLAGS="${OBJCFLAGS_save}"
295   LDFLAGS_save="${LDFLAGS_save} -isysroot /Developer/SDKs/MacOSX10.3.9.sdk -Wl,-syslibroot,/Developer/SDKs/MacOSX10.3.9.sdk"; LDFLAGS="${LDFLAGS_save}"
296   export MACOSX_DEPLOYMENT_TARGET=10.3
297   MACOSX_DEPLOYMENT_TARGET="10.3"
301 dnl Gettext stuff
303 ALL_LINGUAS="ca cs da de en_GB es fr gl he hi hu it ja ka ko ms nl oc pt_BR ro ru sk sl sv tr zh_CN zh_TW"
304 AM_GNU_GETTEXT_VERSION(0.11.5)
305 AM_GNU_GETTEXT
306 AS_IF([test "${nls_cv_force_use_gnu_gettext}" = "yes"], [
307   AC_DEFINE(HAVE_INCLUDED_GETTEXT, 1, [Define if we use the local libintl])
308   AM_CPPFLAGS="${AM_CPPFLAGS} -I\$(top_builddir)/intl"
309   AS_IF([test "${enable_libtool}" != "no"], [
310     INCLUDED_LIBINTL="${LTLIBINTL}"
311   ],[
312     INCLUDED_LIBINTL="${LIBINTL}"
313   ])
314 ], [
315   AS_IF([test "${enable_libtool}" != "no"], [
316     VLC_ADD_LDFLAGS([vlc], [${LTLIBINTL}])
317   ], [
318     VLC_ADD_LDFLAGS([vlc], [${LIBINTL}])
319   ])
321 AC_SUBST(INCLUDED_LIBINTL)
322 XGETTEXT="${XGETTEXT} --keyword=_NS --keyword=_ANS" 
325 dnl Iconv stuff
327 if test "${SYS}" != "mingwce"; then
328 AS_IF([test "$am_cv_func_iconv" != "yes"],
329         [AC_MSG_ERROR([libiconv is needed for VLC to work properly])])
331 VLC_ADD_CFLAGS([vlc],[${INCICONV}])
332 AS_IF([test "${enable_libtool}" != "no"], [
333   VLC_ADD_LDFLAGS([vlc],[${LIBICONV}])
335   VLC_ADD_LDFLAGS([vlc],[${LTLIBICONV}])
338 dnl Check for the need to include the mingwex lib for mingw32
339 if test "${SYS}" = "mingw32"
340 then
341     AC_CHECK_LIB(mingwex,opendir,
342         AC_CHECK_LIB(mingw32,opendir,VLC_ADD_LDFLAGS([vlc],[]),
343             [VLC_ADD_LDFLAGS([vlc gtk],[-lmingwex])])
344     )
347 dnl Check for fnative-struct or mms-bitfields support for mingw32
348 if test "${SYS}" = "mingw32"
349 then
350     AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
351         [ac_cv_c_mms_bitfields],
352         [CFLAGS="${CFLAGS_save} -mms-bitfields"
353          AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
354     if test "${ac_cv_c_mms_bitfields}" != "no"; then
355         CFLAGS_save="${CFLAGS_save} -mms-bitfields";
356         CXXFLAGS_save="${CXXFLAGS_save} -mms-bitfields";
357     else
358         AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
359             [ac_cv_c_fnative_struct],
360             [CFLAGS="${CFLAGS_save} -fnative-struct"
361              AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
362         if test "${ac_cv_c_fnative_struct}" != "no"; then
363             CFLAGS_save="${CFLAGS_save} -fnative-struct";
364             CXXFLAGS_save="${CXXFLAGS_save} -fnative-struct";
365         fi
366     fi
368     CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
371 dnl Check for fvtable-thunks support for mingw32
372 if test "${SYS}" = "mingw32" -a "${CXX}" != ""
373 then
374 AC_LANG_PUSH(C++)
375     AC_CACHE_CHECK([if \$CXX accepts -fvtable-thunks],
376         [ac_cv_cxx_fvtable_thunks],
377         [CXXFLAGS="${CXXFLAGS_save} -Wall -Werror -fvtable-thunks"
378          AC_TRY_COMPILE([],,ac_cv_cxx_fvtable_thunks=yes,
379                         ac_cv_cxx_fvtable_thunks=no)])
380     if test "${ac_cv_cxx_fvtable_thunks}" = "yes"; then
381         CXXFLAGS_mingw32_special="-fvtable-thunks"
382     fi
384     CXXFLAGS_save="${CXXFLAGS_save} ${CXXFLAGS_mingw32_special}"; CXXFLAGS="${CXXFLAGS_save}"
385 AC_LANG_POP(C++)
388 dnl Plugin compilation stuff
390 VLC_LIBRARY_SUFFIX
392 VLC_SYMBOL_PREFIX
393 AC_SUBST(SYMPREF)
395 AS_IF([test "${enable_libtool}" = "no"], [
396 case "${SYS}" in
397   mingw32|cygwin)
398     VLC_ADD_CFLAGS([pic plugin mozilla activex],[${CFLAGS_mingw32_special}])
399     VLC_ADD_CXXFLAGS([pic plugin mozilla activex],[${CFLAGS_mingw32_special} ${CXXFLAGS_mingw32_special}])
400     VLC_ADD_OBJCFLAGS([pic plugin mozilla activex],[${CFLAGS_mingw32_special}])
401     ;;
402   mingwce)
403     ;;
404   *)
405     VLC_ADD_CFLAGS([pic plugin mozilla],[-fpic -fPIC])
406     VLC_ADD_CXXFLAGS([pic plugin mozilla],[-fpic -fPIC])
407     VLC_ADD_OBJCFLAGS([pic plugin mozilla],[-fpic -fPIC])
408     VLC_ADD_LDFLAGS([plugin mozilla],[-fpic -fPIC])
409     ;;
410 esac
413 dnl The -DSYS_FOO flag
414 CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
416 dnl Check for system libs needed
417 need_libc=false
419 AC_CHECK_FUNCS(gettimeofday strtod strtol strtof strtoll strtoull strsep isatty vasprintf asprintf swab sigrelse getpwuid memalign posix_memalign if_nametoindex atoll getenv putenv setenv gmtime_r ctime_r localtime_r lrintf daemon scandir fork bsearch lstat strlcpy)
421 dnl Check for usual libc functions
422 AC_CHECK_FUNCS(strdup strndup atof)
423 AC_CHECK_FUNCS(strcasecmp,,[AC_CHECK_FUNCS(stricmp)])
424 AC_CHECK_FUNCS(strncasecmp,,[AC_CHECK_FUNCS(strnicmp)])
425 AC_CHECK_FUNCS(strcasestr,,[AC_CHECK_FUNCS(stristr)])
427 dnl Check for setlocal and langinfo
428 AC_CHECK_FUNCS(setlocale)
429 AC_CHECK_HEADERS(langinfo.h)
430 AC_CHECK_FUNCS(nl_langinfo)
432 AC_CACHE_CHECK([for nl_langinfo and CODESET], ac_cv_langinfo_codeset,
433   [AC_TRY_LINK([#include <langinfo.h>],
434     [char* cs = nl_langinfo(CODESET);],
435     ac_cv_langinfo_codeset=yes,
436     ac_cv_langinfo_codeset=no)
437   ])
438 if test ${ac_cv_langinfo_codeset} = yes; then
439   AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
440     [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
443 AC_CHECK_FUNCS(connect,,[
444   AC_CHECK_LIB(socket,connect,[
445     VLC_ADD_LDFLAGS([vlc ipv4 ipv6 cdda cddax],-lsocket)
446     LIBS_socket="-lsocket"
447   ])
450 AC_CHECK_FUNCS(send,,[
451   AC_CHECK_LIB(socket,send,[
452     VLC_ADD_LDFLAGS([access_http access_mms access_udp access_tcp access_ftp sap access_output_udp stream_out_standard growl],[-lsocket])
453   ])
456 AC_CHECK_FUNCS(gethostbyname,,[
457   AC_CHECK_LIB(nsl,gethostbyname,[
458     VLC_ADD_LDFLAGS([cdda cddax ipv4 ipv6 vlc],[-lnsl])
459   ],[
460     AC_CHECK_LIB(bind,gethostbyname,[
461       VLC_ADD_LDFLAGS([ipv4 access_mms],[-lbind])
462     ])
463   ])
466 dnl Check for socklen_t
467 AC_CACHE_CHECK([for socklen_t], ac_cv_type_socklen_t,
468   [AC_TRY_COMPILE(
469      [#include <sys/types.h>
470       #include <sys/socket.h>],
471      [socklen_t len = 42; return len;],
472      ac_cv_type_socklen_t=yes,
473      ac_cv_type_socklen_t=no)])
474 if test "${ac_cv_type_socklen_t}" != "no"; then
475   AC_DEFINE(HAVE_SOCKLEN_T, 1, [Define if <sys/socket.h> defines socklen_t.])
478 dnl Check for struct sockaddr_storage
479 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.])
480 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.])
481 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
482   [AC_TRY_COMPILE(
483     [#include <sys/types.h>
484      #if defined( UNDER_CE )
485      # include <winsock.h>
486      #elif defined( WIN32 )
487      # include <winsock2.h>
488      #else
489      # include <sys/socket.h>
490      #endif], [struct sockaddr_storage addr;],
491      ac_cv_struct_sockaddr_storage=yes,
492      ac_cv_struct_sockaddr_storage=no)])
493 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
494   AC_DEFINE(sockaddr_storage, sockaddr)
495   AC_DEFINE(ss_family, sa_family)
498 dnl getaddrinfo, getnameinfo and gai_strerror check
499 dnl  -lnsl and -lsocket are needed on Solaris;
500 dnl  we purposedly make the test fail on Windows
501 LIBS_save="${LIBS}"
502 AH_TEMPLATE(HAVE_GETADDRINFO, [Define to 1 if you have the `getaddrinfo' function.])
503 AC_SEARCH_LIBS([getaddrinfo], [nsl], [AC_DEFINE(HAVE_GETADDRINFO)],, [${LIBS_socket}])
505 dnl NOTE: we assume getaddrinfo will be present if getnameinfo or gai_strerro
506 dnl are
507 LIBS="${LIBS_gai}"
508 AC_CHECK_FUNCS([getnameinfo gai_strerror])
509 LIBS="${LIBS_save}"
511 AH_TEMPLATE(HAVE_ADDRINFO, [Define to 1 if <netdb.h> defines `struct addrinfo'.])
512 AC_CHECK_TYPES([struct addrinfo],[AC_DEFINE(HAVE_ADDRINFO)],,
513 [#include <sys/types.h>
514 #if defined( WIN32 ) || defined( UNDER_CE )
515 # if defined(UNDER_CE) && defined(sockaddr_storage)
516 #  undef sockaddr_storage
517 # endif
518 # include <winsock2.h>
519 # include <ws2tcpip.h>
520 #else
521 # include <netdb.h>
522 #endif])
524 dnl Check for va_copy
525 AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
526   AC_TRY_LINK(
527     [#include <stdarg.h>],
528     [va_list ap1, ap2; va_copy(ap1,ap2);],
529     [ac_cv_c_va_copy="yes"],
530     [ac_cv_c_va_copy="no"]))
531 if test "${ac_cv_c_va_copy}" = "yes"; then
532   AC_DEFINE(HAVE_VA_COPY, 1, [Define if <stdarg.h> defines va_copy.])
534 AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
535   AC_TRY_LINK(
536     [#include <stdarg.h>],
537     [va_list ap1, ap2; __va_copy(ap1,ap2);],
538     [ac_cv_c___va_copy="yes"],
539     [ac_cv_c___va_copy="no"]))
540 if test "${ac_cv_c___va_copy}" = "yes"; then
541   AC_DEFINE(HAVE___VA_COPY, 1, [Define if <stdarg.h> defines __va_copy.])
544 AC_CHECK_FUNCS(inet_aton,,[
545   AC_CHECK_LIB(resolv,inet_aton,[
546     VLC_ADD_LDFLAGS([ipv4 vlc],[-lresolv])
547   ])
550 dnl Check for getopt (always use builtin one on win32)
551 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
552 need_getopt=:
553 else
554 need_getopt=false
555 AC_CHECK_FUNCS(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
556 [ # FreeBSD has a gnugetopt library for this:
557   AC_CHECK_LIB([gnugetopt],[getopt_long],
558     [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support)
559      VLC_ADD_LDFLAGS([vlc],[-lgnugetopt])],
560     [need_getopt=:])])
562 AM_CONDITIONAL(BUILD_GETOPT, ${need_getopt})
564 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
565 AC_TYPE_SIGNAL
566 AC_CHECK_LIB(m,cos,[
567   VLC_ADD_LDFLAGS([adjust wave ripple psychedelic gradient a52tofloat32 dtstofloat32 x264 goom visual panoramix rotate noise],[-lm])
569 AC_CHECK_LIB(m,pow,[
570   VLC_ADD_LDFLAGS([ffmpeg ffmpegaltivec stream_out_transrate i420_rgb faad twolame equalizer param_eq vlc vorbis freetype mod mpc dmo quicktime realaudio galaktos opengl],[-lm])
572 AC_CHECK_LIB(m,sqrt,[
573   VLC_ADD_LDFLAGS([headphone_channel_mixer normvol speex mono],[-lm])
575 AC_CHECK_LIB(m,ceil,[
576   VLC_ADD_LDFLAGS([mosaic],[-lm])
578 AC_CHECK_LIB(mx,sqrtf,[
579   VLC_ADD_LDFLAGS([x264],[-lmx])
581 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
583 dnl Check for dynamic plugins
584 ac_cv_have_plugins=no
586 # OS X style
587 AC_CHECK_HEADERS(mach-o/dyld.h,
588   [AC_CHECK_FUNCS(NSLinkModule,
589     [AC_DEFINE(HAVE_DL_DYLD, 1, [Define if you have the Darwin dyld API])
590      ac_cv_have_plugins=yes])])
592 # HP-UX style
593 if test "${ac_cv_have_plugins}" = "no"; then
594   AC_CHECK_HEADERS(dl.h)
595   ac_cv_my_have_shl_load=no
596   AC_CHECK_FUNC(shl_load,
597    [ac_cv_my_have_shl_load=yes,
598     AC_CHECK_LIB(dld, shl_load,
599      [ac_cv_my_have_shl_load=yes
600       VLC_ADD_LDFLAGS([vlc],[-ldld])])])
601   if test "${ac_cv_my_have_shl_load}" = "yes"; then
602     AC_DEFINE(HAVE_DL_SHL_LOAD, 1, [Define if you have the shl_load API])
603     ac_cv_have_plugins=yes
604   fi
607 # Whatever style
608 if test "${ac_cv_have_plugins}" = "no"; then
609   AC_CHECK_LIB(dld, dld_link,
610    [VLC_ADD_LDFLAGS([vlc],[-ldld])
611     AC_DEFINE(HAVE_DL_DLD_LINK, 1, [Define if you have the GNU dld library])
612     ac_cv_have_plugins=yes])
615 # Win32 style
616 if test "${ac_cv_have_plugins}" = "no"; then
617   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
618     AC_CHECK_LIB(kernel32, main,
619      [VLC_ADD_LDFLAGS([vlc],[-lkernel32])
620       AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
621       ac_cv_have_plugins=yes])
622   fi
625 # WinCE style
626 if test "${ac_cv_have_plugins}" = "no"; then
627   if test "${SYS}" = "mingwce"; then
628     AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
629     ac_cv_have_plugins=yes
630   fi
633 # BeOS style
634 if test "${ac_cv_have_plugins}" = "no"; then
635   AC_CHECK_HEADERS(image.h)
636   AC_CHECK_FUNCS(load_add_on,
637    [AC_DEFINE(HAVE_DL_BEOS, 1, [Define if you have the BeOS dl])
638     ac_cv_have_plugins=yes])
641 # Only test for dlopen() if the others didn't work
642 if test "${ac_cv_have_plugins}" = "no"; then
643   AC_CHECK_HEADERS(dlfcn.h sys/dl.h)
644   ac_cv_my_have_dlopen=no
645   AC_CHECK_FUNC(dlopen,
646     ac_cv_my_have_dlopen=yes,
647     AC_CHECK_LIB(dl, dlopen,
648       ac_cv_my_have_dlopen=yes
649       VLC_ADD_LDFLAGS([vlc],[-ldl]),
650       AC_CHECK_LIB(svld, dlopen,
651         ac_cv_my_have_dlopen=yes
652         VLC_ADD_LDFLAGS([vlc],[-lsvld]))))
653   if test "${ac_cv_my_have_dlopen}" = "yes"; then
654     AC_DEFINE(HAVE_DL_DLOPEN, 1, [Define if you have the dlopen API])
655     ac_cv_have_plugins=yes
656   fi
659 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
660 dnl Check for pthreads - borrowed from XMMS
661 THREAD_LIB=error
662 if test "${THREAD_LIB}" = "error"; then
663   AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
665 if test "${THREAD_LIB}" = "error"; then
666   AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
668 if test "${THREAD_LIB}" = "error"; then
669   AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
671 if test "${THREAD_LIB}" = "error"; then
672   AC_CHECK_FUNCS(pthread_mutex_lock)
673   THREAD_LIB=""
676 dnl Check for cthreads under GNU/Hurd for instance
677 AC_CHECK_LIB(threads,cthread_fork,THREAD_LIB="-lthreads")
680 dnl  GNU portable threads
682 AC_ARG_ENABLE(pth,
683   [  --enable-pth            GNU Pth support (default disabled)],
684   [ if test "${enable_pth}" = "yes"; then
685     AC_CHECK_LIB(pth,pth_init)
686     AC_MSG_CHECKING(for pth_init in pth.h)
687     AC_EGREP_HEADER(pth_init,pth.h,[
688       AC_MSG_RESULT(yes)
689       AC_DEFINE(PTH_INIT_IN_PTH_H, 1,
690                 Define if <pth.h> defines pth_init)
691       THREAD_LIB="-lpth"
692     ],[
693       AC_MSG_RESULT(no)
694     ])
695     fi
699 dnl  State Threads
701 AC_ARG_ENABLE(st,
702   [  --enable-st             State Threads (default disabled)],
703   [ if test "${enable_st}" = "yes"; then
704     AC_CHECK_LIB(st,st_init)
705     AC_MSG_CHECKING(for st_init in st.h)
706     AC_EGREP_HEADER(st_init,st.h,[
707       AC_MSG_RESULT(yes)
708       AC_DEFINE(ST_INIT_IN_ST_H, 1,
709                 Define if <st.h> defines st_init)
710       THREAD_LIB="-lst"
711     ],[
712       AC_MSG_RESULT(yes)
713     ])
714     fi
717 VLC_ADD_LDFLAGS([vlc plugin],[${THREAD_LIB}])
719 dnl Don't link with rt when using GNU-pth
720 if test "${THREAD_LIB}" != "-lpth" && test "${THREAD_LIB}" != "-lst"; then
721   AC_CHECK_LIB(rt, clock_nanosleep, [
722     VLC_ADD_LDFLAGS([vlc],[-lrt])
723     AC_DEFINE(HAVE_CLOCK_NANOSLEEP, 1, [Define to 1 if you have clock_nanosleep.])
724   ], [
725     dnl HP/UX port
726     AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LDFLAGS([vlc],[-lrt])])
727   ])
729   have_nanosleep=false
730   AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[
731     AC_CHECK_LIB(rt,nanosleep,
732       [VLC_ADD_LDFLAGS([vlc],[-lrt]) have_nanosleep=:],
733       [AC_CHECK_LIB(posix4,nanosleep,
734           [VLC_ADD_LDFLAGS([vlc],[-lposix4]) have_nanosleep=:])]
735     )
736   ])
737   if ${have_nanosleep}; then
738     AC_DEFINE(HAVE_NANOSLEEP, 1,
739               Define if nanosleep is available.)
740   fi
743 dnl Check for misc headers
744 AC_MSG_CHECKING(for pthread_cond_t in pthread.h)
745 AC_EGREP_HEADER(pthread_cond_t,pthread.h,[
746   AC_MSG_RESULT(yes)
747   AC_DEFINE(PTHREAD_COND_T_IN_PTHREAD_H, 1,
748             Define if <pthread.h> defines pthread_cond_t.)],[
749   AC_MSG_RESULT(no)])
751 AC_MSG_CHECKING(for pthread_once in pthread.h)
752 AC_EGREP_HEADER(pthread_once,pthread.h,[
753   AC_MSG_RESULT(yes)
754   AC_DEFINE(PTHREAD_ONCE_IN_PTHREAD_H, 1,
755             Define if <pthread.h> defines pthread_once.)],[
756   AC_MSG_RESULT(no)])
757 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
759 AC_MSG_CHECKING(for strncasecmp in strings.h)
760 AC_EGREP_HEADER(strncasecmp,strings.h,[
761   AC_MSG_RESULT(yes)
762   AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
763             Define if <strings.h> defines strncasecmp.)],[
764   AC_MSG_RESULT(no)])
766 dnl Check for headers
767 AC_CHECK_HEADERS(signal.h time.h errno.h stdint.h stdbool.h getopt.h strings.h inttypes.h sys/int_types.h wchar.h)
768 AC_CHECK_HEADERS(sys/sockio.h fcntl.h sys/types.h sys/time.h sys/times.h sys/ioctl.h sys/stat.h)
769 AC_CHECK_HEADERS(arpa/inet.h net/if.h netinet/in.h sys/socket.h)
770 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
771 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
772 AC_CHECK_HEADERS(linux/version.h)
773 AC_CHECK_HEADERS(syslog.h)
774 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
776 AC_HEADER_TIME
778 AC_CHECK_TYPE(ssize_t, int)
779 AC_SEARCH_LIBS(poll, [poll], [AC_DEFINE(HAVE_POLL, 1, [Define to 1 if the OS is usabl... err, has poll().])])
781 dnl Check for dirent
782 need_dirent=false
783 AC_CHECK_HEADERS(dirent.h,,[need_dirent=:])
784 AM_CONDITIONAL(BUILD_DIRENT, ${need_dirent})
786 dnl Mac OS X and other OSes don't have declaration for nanosleep
787 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
788 AC_MSG_CHECKING(for nanosleep in time.h)
789 AC_EGREP_HEADER(nanosleep,time.h,[
790   AC_MSG_RESULT(yes)
791   AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
792             Define if <time.h> defines nanosleep.)
794   AC_MSG_RESULT(no)
796 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
798 dnl Make sure we have timespecs
799 AC_MSG_CHECKING(for timespec in sys/time.h)
800 AC_EGREP_HEADER(timespec,sys/time.h,[
801   AC_MSG_RESULT(yes)
802   AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
803             Define if <sys/time.h> defines struct timespec.)
805   AC_MSG_RESULT(no)
808 dnl Check for threads library
809 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
810 AC_CHECK_HEADERS(cthreads.h pthread.h kernel/scheduler.h kernel/OS.h)
811 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
813 dnl Find where are the X headers and libraries
814 AC_PATH_XTRA()
816 dnl it seems that autoconf do the pkg-config detection only for the first PKG_CHECK_MODULES in the configure.ac ( which is logical) but in our case it is nested in a if so it was not working if you're not on linux or have disable hal.
818 PKG_PROG_PKG_CONFIG()
820 dnl Check for hal
821 AC_ARG_ENABLE(hal,
822   [  --enable-hal            Linux HAL services discovery (default enabled)])
824 if test "${enable_hal}" != "no"
825 then
826   PKG_CHECK_MODULES(HAL, hal >= 0.5.0,
827     [ AC_DEFINE( HAVE_HAL_1, [] , [Define if you have the new HAL library API])
828       AC_DEFINE( HAVE_HAL, [], [Define if you have the HAL library] )
829       VLC_ADD_PLUGINS([hal probe_hal]) 
830       VLC_ADD_LDFLAGS([vlc hal probe_hal],[$HAL_LIBS])
831       VLC_ADD_CFLAGS([vlc hal probe_hal],[$HAL_CFLAGS])],   
832     dnl No hal 0.5 Test for 0.2
833     [ PKG_CHECK_MODULES( HAL, hal >= 0.2.97, 
834        [AC_DEFINE(HAVE_HAL, [], [Define if you have the HAL library])
835         VLC_ADD_PLUGINS([hal])
836         VLC_ADD_LDFLAGS([vlc hal],[$HAL_LIBS])
837         VLC_ADD_CFLAGS([vlc hal],[$HAL_CFLAGS])],
838        [AC_MSG_WARN(HAL library not found)])
839     ]
840   )
843 dnl Check for dbus
844 AC_ARG_ENABLE(dbus,
845   [  --enable-dbus           Linux D-BUS message bus system (default enabled)])
847 if test "${enable_dbus}" != "no"
848 then
849   PKG_CHECK_MODULES(DBUS, dbus-1 >= 0.92,
850     [ AC_DEFINE( HAVE_DBUS_2, 1, [Define if you have the D-BUS library API >= 0.92] )
851       AC_DEFINE( HAVE_DBUS_1, 1, [Define if you have the D-BUS library API >= 0.30] )
852       AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
853       VLC_ADD_LDFLAGS([screensaver],[$DBUS_LIBS])
854       VLC_ADD_CFLAGS([screensaver],[$DBUS_CFLAGS])],
855     dnl older dbus
856     [ PKG_CHECK_MODULES(DBUS, dbus-1 >= 0.30,
857       [ AC_DEFINE( HAVE_DBUS_1, 1, [Define if you have the D-BUS library API >= 0.30 ] )
858         AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
859         VLC_ADD_LDFLAGS([screensaver],[$DBUS_LIBS])
860         VLC_ADD_CFLAGS([screensaver],[$DBUS_CFLAGS])],
861       dnl much older dbus
862       [ PKG_CHECK_MODULES( DBUS, dbus-1, 
863          [AC_DEFINE(HAVE_DBUS, 1, [Define if you have the D-BUS library])
864           VLC_ADD_LDFLAGS([screensaver],[$DBUS_LIBS])
865           VLC_ADD_CFLAGS([screensaver],[$DBUS_CFLAGS])],
866          [AC_MSG_WARN(DBUS library not found)])
867       ]
868    )]
869   )
872 dnl Build the gtk_main plugins?
873 NEED_GTK_MAIN=no
874 NEED_GNOME_MAIN=no
875 NEED_GTK2_MAIN=no
876 NEED_GNOME2_MAIN=no
878 dnl build the qte plugin ?
879 NEED_QTE_MAIN=no
881 dnl Check for ntohl, etc.
882 AC_CACHE_CHECK([for ntohl in sys/param.h],
883     [ac_cv_c_ntohl_sys_param_h],
884     [CFLAGS="${CFLAGS_save} -Wall -Werror"
885      AC_TRY_COMPILE([#include <sys/param.h>],
886         [int meuh; ntohl(meuh);],
887         ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
888 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
889     AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
891 CFLAGS="${CFLAGS_save}"
893 RDC_PROG_CC_WFLAGS([all extra no-unused-parameter sign-compare undef pointer-arith bad-function-cast cast-align write-strings old-style-definition missing-prototypes packed volatile-register-var])
894 RDC_PROG_CC_FLAGS_IFELSE([-pipe])
896 dnl This helps detect broken plugins with undefined symbols
897 dnl Better fail loudly at build-time than silenty at run-time.
898 RDC_PROG_LINK_FLAGS_IFELSE([-Wl,-z,defs], [
899   VLC_ADD_LDFLAGS([plugin],[-Wl,-z,defs])
902 dnl Check for various optimization flags
903 AC_CACHE_CHECK([if \$CC accepts -Os],
904     [ac_cv_c_os],
905     [CFLAGS="${CFLAGS_save} -Os"
906      AC_TRY_COMPILE([],,ac_cv_c_os=yes, ac_cv_c_os=no)])
907 if test "${ac_cv_c_os}" != "no" -a "${host_cpu}" = "mipsel"; then
908     CFLAGS_OPTIM="${CFLAGS_OPTIM} -Os"
911 AC_CACHE_CHECK([if \$CC accepts -O3],
912     [ac_cv_c_o3],
913     [CFLAGS="${CFLAGS_save} -O3"
914      AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
915 if test "${ac_cv_c_o3}" != "no" -a "${host_cpu}" != "mipsel"; then
916     CFLAGS_OPTIM="${CFLAGS_OPTIM} -O3"
919 AC_CACHE_CHECK([if \$CC accepts -O2],
920     [ac_cv_c_o2],
921     [CFLAGS="${CFLAGS_save} -O2"
922      AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
923 if test "${ac_cv_c_o2}" != "no" -a "${host_cpu}" != "mipsel"; then
924     if test "${ac_cv_c_o3}" = "no"; then
925         CFLAGS_OPTIM="${CFLAGS_OPTIM} -O2"
926     fi
927     CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O2"
928 else 
929     AC_CACHE_CHECK([if \$CC accepts -O],
930         [ac_cv_c_o],
931         [CFLAGS="${CFLAGS_save} -O"
932          AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
933     if test "${ac_cv_c_o}" != "no" -a "${host_cpu}" != "mipsel"; then
934         if test "${ac_cv_c_o3}" = "no"; then
935             CFLAGS_OPTIM="${CFLAGS_OPTIM} -O"
936         fi
937         CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O"
938     fi
941 dnl Check for -ffast-math
942 AC_CACHE_CHECK([if \$CC accepts -ffast-math],
943     [ac_cv_c_fast_math],
944     [CFLAGS="${CFLAGS_save} -ffast-math"
945      AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
946 if test "${ac_cv_c_fast_math}" != "no"; then
947     CFLAGS_OPTIM="${CFLAGS_OPTIM} -ffast-math"
950 dnl Check for -funroll-loops
951 dnl Disabled on BeOS because BeOS' gcc is buggy and may crash with it
952 if test "${SYS}" != "beos"
953 then
954   AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
955       [ac_cv_c_unroll_loops],
956       [CFLAGS="${CFLAGS_save} -funroll-loops"
957        AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
958   if test "${ac_cv_c_unroll_loops}" != "no"; then
959       CFLAGS_OPTIM="${CFLAGS_OPTIM} -funroll-loops"
960   fi
963 dnl Check for -fomit-frame-pointer
964 AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
965     [ac_cv_c_omit_frame_pointer],
966     [CFLAGS="${CFLAGS_save} -fomit-frame-pointer"
967      AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
968 if test "${ac_cv_c_omit_frame_pointer}" != "no"; then
969     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
970     # this plugin does not compile without -fomit-frame-pointer, damn gcc!
971     VLC_ADD_CFLAGS([i420_yuy2_mmx],[-fomit-frame-pointer])
974 dnl Check for -mdynamic-no-pic
975 AC_CACHE_CHECK([if \$CC accepts -mdynamic-no-pic],
976     [ac_cv_c_dynamic_no_pic],
977     [CFLAGS="${CFLAGS_save} -mdynamic-no-pic"
978      AC_TRY_COMPILE([],,ac_cv_c_dynamic_no_pic=yes, ac_cv_c_dynamic_no_pic=no)])
979 AS_IF([test "${enable_libtool}" = "no" && test "${ac_cv_c_dynamic_no_pic}" != "no"], [
980     VLC_ADD_CFLAGS([builtin],[-mdynamic-no-pic])
981     VLC_ADD_CFLAGS([libvlc],[-mdynamic-no-pic])
984 dnl Check for Darwin plugin linking flags
985 AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error],
986     [ac_cv_ld_darwin],
987     [CFLAGS="${CFLAGS_save} -bundle -undefined error"
988      AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
989 if test "${ac_cv_ld_darwin}" != "no"; then
990     VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
993 dnl Check for standard plugin linking flags
994 dnl BeOS' gcc needs -nostart instead of -shared, even if -shared isn't harmful (just a warning)
995 if test "${SYS}" = "beos"; then
996   VLC_ADD_LDFLAGS([plugin mozilla],[-nostart])
997 else
998   AC_CACHE_CHECK([if \$CC accepts -shared],
999       [ac_cv_ld_plugins],
1000       [CFLAGS="${CFLAGS_save} -shared"
1001        AC_TRY_COMPILE([],, ac_cv_ld_plugins=yes, ac_cv_ld_plugins=no)])
1002   if test "${ac_cv_ld_plugins}" != "no"; then
1003     VLC_ADD_LDFLAGS([plugin mozilla],[-shared])
1004   fi
1007 dnl Check for variadic macros
1008 AC_CACHE_CHECK([for variadic cpp macros],
1009     [ac_cv_cpp_variadic_macros],
1010     [CFLAGS="${CFLAGS_save}"
1011      AC_TRY_COMPILE(
1012          [#include <stdio.h>
1013           #define a(b,c...) printf(b,##c)],
1014          [a("foo");a("%s","bar");a("%s%s","baz","quux");],
1015          ac_cv_cpp_variadic_macros=yes,
1016          ac_cv_cpp_variadic_macros=no)])
1017 if test "${ac_cv_cpp_variadic_macros}" != "no"; then
1018     AC_DEFINE(HAVE_VARIADIC_MACROS, 1, Support for variadic macros)
1021 dnl Checks for __attribute__(aligned()) directive
1022 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1023     [ac_cv_c_attribute_aligned],
1024     [ac_cv_c_attribute_aligned=0
1025         CFLAGS="${CFLAGS_save} -Werror"
1026     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1027         AC_TRY_COMPILE([],
1028         [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1029         [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1030     done
1031         CFLAGS="${CFLAGS_save}"])
1032 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1033     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1034         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1037 dnl Checks for __attribute__(format()) directive
1038 AC_CACHE_CHECK([__attribute__ ((format ())) support with function pointers],
1039     [ac_cv_c_attribute_format],
1040     [ac_cv_c_attribute_format=no
1041         CFLAGS="${CFLAGS_save} -Werror"
1042         AC_TRY_COMPILE([],
1043         [static void (*pf_printf)(const char *, ...) __attribute__ ((format(printf,1,2)));(void)pf_printf;],
1044         [ac_cv_c_attribute_format=yes])
1045         CFLAGS="${CFLAGS_save}"])
1046 if test "${ac_cv_c_attribute_format}" != "no"; then
1047     AC_DEFINE(HAVE_ATTRIBUTE_FORMAT, 1, Support for __attribute__((format())) with function pointers)
1050 dnl Check for __attribute__(())
1051 AC_CACHE_CHECK([for __attribute__((packed))],
1052   [ac_cv_c_attribute_packed],
1053   [ac_cv_c_attribute_packed=no
1054    AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b;],
1055                     [ac_cv_c_attribute_packed=yes])])
1056 if test "${ac_cv_c_attribute_packed}" != "no"; then
1057   AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1061 dnl  Check the CPU
1063 case "${host_cpu}" in
1064   "")
1065     ARCH=unknown
1066     ;;
1067   *)
1068     ARCH="${host_cpu}"
1069     ;;
1070 esac
1073 dnl  Enable profiling
1075 AC_ARG_ENABLE(gprof,
1076 [  --enable-gprof          gprof profiling (default disabled)])
1077 AC_ARG_ENABLE(cprof,
1078 [  --enable-cprof          cprof profiling (default disabled)])
1079 test "${enable_gprof}" != "yes" && enable_gprof="no"
1080 test "${enable_cprof}" != "yes" && enable_cprof="no"
1083 dnl  default modules
1085 VLC_ADD_PLUGINS([dummy logger memcpy])
1086 VLC_ADD_PLUGINS([mpgv mpga m4v m4a h264 ps pva avi asf mp4 rawdv nsv real aiff mjpeg demuxdump flac tta])
1087 VLC_ADD_PLUGINS([cvdsub svcdsub spudec subsdec dvbsub mpeg_audio lpcm a52 dts cinepak flacdec])
1088 VLC_ADD_PLUGINS([deinterlace invert adjust transform wave ripple psychedelic gradient motionblur rv32 rotate noise])
1089 VLC_ADD_PLUGINS([fixed32tos16 s16tofixed32 u8tofixed32 mono])
1090 VLC_ADD_PLUGINS([trivial_resampler ugly_resampler])
1091 VLC_ADD_PLUGINS([trivial_channel_mixer trivial_mixer])
1092 VLC_ADD_PLUGINS([playlist export sgimb nsc xtag])
1093 VLC_ADD_PLUGINS([i420_rgb rawvideo blend scale image logo magnify])
1094 VLC_ADD_PLUGINS([wav araw subtitle vobsub adpcm a52sys dtssys au ty voc xa nuv])
1095 VLC_ADD_PLUGINS([access_directory access_file access_udp access_tcp])
1096 VLC_ADD_PLUGINS([access_http access_mms access_ftp ipv4])
1097 VLC_ADD_PLUGINS([packetizer_mpegvideo packetizer_h264])
1098 VLC_ADD_PLUGINS([packetizer_mpeg4video packetizer_mpeg4audio])
1101 if test "${SYS}" != "mingwce"; then
1102 dnl  VLC_ADD_PLUGINS([externrun])
1103   VLC_ADD_PLUGINS([access_fake access_filter_timeshift access_filter_record])
1104   VLC_ADD_PLUGINS([gestures rc telnet hotkeys netsync showintf marq podcast shout sap fake folder])
1105   VLC_ADD_PLUGINS([rss mosaic wall motiondetect clone crop])
1106   VLC_ADD_PLUGINS([i420_yuy2 i422_yuy2 i420_ymga])
1107   VLC_ADD_PLUGINS([aout_file linear_resampler bandlimited_resampler])
1108   VLC_ADD_PLUGINS([float32_mixer spdif_mixer simple_channel_mixer])
1109   VLC_ADD_PLUGINS([dolby_surround_decoder headphone_channel_mixer normvol equalizer param_eq])
1110   VLC_ADD_PLUGINS([fixed32tofloat32 float32tos16 float32tos8 float32tou16 float32tou8 a52tospdif dtstospdif s16tofloat32 s16tofloat32swab s8tofloat32 u8tofloat32 audio_format])
1114 dnl  Switch to enable a version of VLC where most modules will be builtin
1116 AC_ARG_ENABLE(mostly-builtin,
1117 [  --enable-mostly-builtin most modules will be built-in (default disabled)])
1118 if test "${enable_mostly_builtin}" = "yes"; then
1119   VLC_ADD_BUILTINS([${PLUGINS}])
1120   PLUGINS=""
1124 dnl Some plugins aren't useful on some platforms
1126 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1127     VLC_ADD_PLUGINS([screensaver motion])
1128 elif test "${SYS}" != "mingwce"; then
1129     VLC_ADD_PLUGINS([ntservice access_smb dmo msn])
1130     VLC_ADD_LDFLAGS([dmo],[-lole32])
1131 else
1132     VLC_ADD_PLUGINS([win32text])
1136 dnl  Accelerated modules
1138 MMX_MODULES="memcpymmx i420_rgb_mmx i422_yuy2_mmx i420_ymga_mmx"
1139 #MMX_MODULES="${MMX_MODULES} idctmmx motionmmx"
1140 MMXEXT_MODULES="memcpymmxext"
1141 #MMXEXT_MODULES="${MMXEXT_MODULES} idctmmxext motionmmxext"
1142 THREEDNOW_MODULES="memcpy3dn"
1143 SSE_MODULES=""
1144 ALTIVEC_MODULES="memcpyaltivec i420_yuy2_altivec"
1145 #ALTIVEC_MODULES="${ALTIVEC_MODULES} idctaltivec motionaltivec"
1147 if test "${enable_gprof}" != "yes"
1148 then
1149   MMX_MODULES="${MMX_MODULES} i420_yuy2_mmx"
1152 AC_CACHE_CHECK([if \$CC groks MMX inline assembly],
1153     [ac_cv_mmx_inline],
1154     [CFLAGS="${CFLAGS_save}"
1155      AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
1156                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
1157 if test "${ac_cv_mmx_inline}" != "no"; then
1158   AC_DEFINE(CAN_COMPILE_MMX, 1, Define if \$CC groks MMX inline assembly.)
1159   ACCEL_MODULES="${ACCEL_MODULES} ${MMX_MODULES}"
1162 dnl  Check for fully workin MMX intrinsics
1163 dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a
1164 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1165 AC_CACHE_CHECK([if \$CC groks MMX intrinsics],
1166     [ac_cv_c_mmx_intrinsics],
1167     [CFLAGS="${CFLAGS_save} -O -mmmx"
1168      AC_TRY_COMPILE([#include <mmintrin.h>
1169                      #include <stdint.h>
1170                      uint64_t frobzor;],
1171                     [__m64 a, b, c;
1172                      a = b = c = (__m64)frobzor;
1173                      a = _mm_slli_pi16(a, 3);
1174                      a = _mm_adds_pi16(a, b);
1175                      c = _mm_srli_pi16(c, 8);
1176                      c = _mm_slli_pi16(c, 3);
1177                      b = _mm_adds_pi16(b, c);
1178                      a = _mm_unpacklo_pi8(a, b);
1179                      frobzor = (uint64_t)a;],
1180                     [ac_cv_c_mmx_intrinsics=yes],
1181                     [ac_cv_c_mmx_intrinsics=no])])
1182 if test "${ac_cv_c_mmx_intrinsics}" != "no"; then
1183   AC_DEFINE(HAVE_MMX_INTRINSICS, 1, Define if MMX intrinsics are available.)
1184   VLC_ADD_CFLAGS([i420_rgb_mmx],[-mmmx])
1187 AC_CACHE_CHECK([if \$CC groks MMX EXT inline assembly],
1188     [ac_cv_mmxext_inline],
1189     [CFLAGS="${CFLAGS_save}"
1190      AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
1191                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
1192 if test "${ac_cv_mmxext_inline}" != "no"; then
1193   AC_DEFINE(CAN_COMPILE_MMXEXT, 1, Define if \$CC groks MMX EXT inline assembly.)
1194   ACCEL_MODULES="${ACCEL_MODULES} ${MMXEXT_MODULES}"
1197 AC_CACHE_CHECK([if \$CC groks 3D Now! inline assembly],
1198     [ac_cv_3dnow_inline],
1199     [CFLAGS="${CFLAGS_save}"
1200      AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
1201                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
1202 if test "${ac_cv_3dnow_inline}" != "no"; then
1203   AC_DEFINE(CAN_COMPILE_3DNOW, 1, Define if \$CC groks 3D Now! inline assembly.)
1204   ACCEL_MODULES="${ACCEL_MODULES} ${THREEDNOW_MODULES}"
1207 AC_CACHE_CHECK([if \$CC groks SSE inline assembly],
1208     [ac_cv_sse_inline],
1209     [CFLAGS="${CFLAGS_save}"
1210      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
1211                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
1212 if test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"; then
1213   AC_DEFINE(CAN_COMPILE_SSE, 1, Define if \$CC groks SSE inline assembly.)
1214   ACCEL_MODULES="${ACCEL_MODULES} ${SSE_MODULES}"
1217 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1218 AC_CACHE_CHECK([if \$CC groks AltiVec inline assembly],
1219     [ac_cv_altivec_inline],
1220     [CFLAGS="${CFLAGS_save}"
1221      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1222          ac_cv_altivec_inline=yes,
1223          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
1224           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1225             [ac_cv_altivec_inline="-Wa,-m7400"],
1226             ac_cv_altivec_inline=no)
1227          ])])
1228 if test "${ac_cv_altivec_inline}" != "no"; then
1229   AC_DEFINE(CAN_COMPILE_ALTIVEC, 1, Define if \$CC groks AltiVec inline assembly.)
1230   if test "${ac_cv_altivec_inline}" != "yes"; then
1231     VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
1232     VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
1233     VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1234     VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1235     VLC_ADD_CFLAGS([vlc],[${ac_cv_altivec_inline}])
1236   fi
1237   ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
1240 dnl The AltiVec C extensions
1242 dnl There are several possible cases:
1243 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1244 dnl                      need <altivec.h>
1245 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1246 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1247 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1248 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1249 dnl - Others: test should fail
1250 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1251   [ac_cv_c_altivec],
1252   [# OS X/PPC test (gcc 4.x)
1253    CFLAGS="${CFLAGS_save} -mpim-altivec -force_cpusubtype_ALL"
1254    AC_TRY_COMPILE([vector unsigned char foo;],
1255      [vec_ld(0, (unsigned char *)0);],
1256      [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1257      [# OS X/PPC test (gcc 3.x)
1258       CFLAGS="${CFLAGS_save} -faltivec"
1259       AC_TRY_COMPILE([vector unsigned char foo;],
1260         [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1261         [ac_cv_c_altivec="-faltivec"],
1262         dnl Below this are the Linux tests
1263         [# Linux/PPC test (gcc 4.x)
1264          CFLAGS="${CFLAGS_save} -maltivec"
1265          AC_TRY_COMPILE([#include <altivec.h>],
1266            [vec_ld(0, (unsigned char *)0);],
1267            [ac_cv_c_altivec="-maltivec"],
1268            [# Linux/PPC test (gcc 3.3)
1269             CFLAGS="${CFLAGS_save} -maltivec -mabi=altivec"
1270             AC_TRY_COMPILE([#include <altivec.h>],
1271               [vec_ld(0, (unsigned char *)0);],
1272               [ac_cv_c_altivec=""
1273                ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1274               [# Linux/PPC test (gcc 3.3)
1275                CFLAGS="${CFLAGS_save} -fvec"
1276                AC_TRY_COMPILE([#include <altivec.h>],
1277                  [vec_ld(0, (unsigned char *)0);],
1278                  [ac_cv_c_altivec="-fvec"],
1279                  [ac_cv_c_altivec=no])
1280               ])
1281            ])
1282         ])
1283      ])
1284    CFLAGS="${CFLAGS_save}"
1285   ])
1287 if test "${ac_cv_c_altivec}" != "no"; then
1288   CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
1290 AC_CHECK_HEADERS(altivec.h)
1291 CPPFLAGS="${CPPFLAGS_save}"
1293 if test "${ac_cv_c_altivec}" != "no"; then
1294   AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, Define if your compiler groks C AltiVec extensions.)
1295   VLC_ADD_CFLAGS([vlc],[${ac_cv_c_altivec}])
1296   VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
1297   VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1298   if test "${ac_cv_altivec_inline}" = "no"; then
1299     ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
1300   fi
1303 AC_CACHE_CHECK([if linker needs -framework vecLib],
1304     [ac_cv_ld_altivec],
1305     [LDFLAGS="${LDFLAGS_vlc} -framework vecLib"
1306      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
1307      LDFLAGS="${LDFLAGS_save}"
1308     ])
1309 if test "${ac_cv_ld_altivec}" != "no"; then
1310   VLC_ADD_LDFLAGS([vlc idctaltivec motionaltivec memcpyaltivec],[-framework vecLib])
1312 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
1314 AC_ARG_WITH(,[])
1315 AC_ARG_WITH(,[Optimization options:])
1318 dnl  Special arch tuning
1320 AC_ARG_WITH(tuning,
1321 [  --with-tuning=ARCH      enable special tuning for an architecture
1322                           (default Pentium 2 on IA-32 and G4 on PPC)])
1323 if test -n "${with_tuning}"; then
1324     if test "${with_tuning}" != "no"; then
1325         CFLAGS_TUNING="-mtune=${with_tuning}"
1326     fi
1327 else
1328     if test "${SYS}" = "darwin" -a "${host_cpu}" = "i686"; then
1329         CFLAGS_TUNING="-march=pentium-m -mtune=prescott"
1330     elif test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "i386"; then
1331         CFLAGS_TUNING="-mtune=pentium2"
1332     elif test "${host_cpu}" = "x86_64"; then
1333         CFLAGS_TUNING="-mtune=athlon64"
1334     elif test "${host_cpu}" = "powerpc"; then
1335         CFLAGS_TUNING="-mtune=G4";
1336     fi
1339 dnl NOTE: this can't be cached cleanly
1340 AS_IF([test "${CFLAGS_TUNING}"],
1341    [CFLAGS_save="${CFLAGS}"
1342     CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1344     AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1345     AC_COMPILE_IFELSE([ ],
1346                       [tuning="yes"],
1347                       [CFLAGS_TUNING=""; tuning="no"
1348                        AS_IF([test "${with_tuning}"],
1349                              [AC_MSG_ERROR([requested tuning not supported])])])
1351     AC_MSG_RESULT([$tuning])
1352     CFLAGS="${CFLAGS_save}"
1356 dnl  x86 accelerations
1358 if test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "x86" -o "${host_cpu}" = "i386" -o "${host_cpu}" = "x86_64"
1359 then
1360     ARCH="${ARCH} mmx"
1361     VLC_ADD_BUILTINS([${ACCEL_MODULES}])
1365 dnl  Memory usage
1367 AC_ARG_ENABLE(optimize-memory,
1368 [  --enable-optimize-memory      optimize memory usage over performance])
1369 if test "${enable_optimize_memory}" = "yes"; then
1370   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1374 dnl  Enable/disable optimizations
1376 AC_ARG_ENABLE(optimizations,
1377 [  --disable-optimizations disable compiler optimizations (default enabled)])
1378 test "${enable_optimizations}" != "no" && enable_optimizations="yes"
1381 dnl  AltiVec acceleration
1383 AC_ARG_ENABLE(altivec,
1384 [  --disable-altivec       disable AltiVec optimizations (default enabled on PPC)],
1385 [ if test "${enable_altivec}" = "yes"; then ARCH="${ARCH} altivec";
1386     VLC_ADD_BUILTINS([${ACCEL_MODULES}]) fi ],
1387 [ if test "${host_cpu}" = "powerpc"; then ARCH="${ARCH} altivec";
1388     VLC_ADD_BUILTINS([${ACCEL_MODULES}]) fi ])
1391 dnl  Debugging mode
1393 AC_ARG_ENABLE(debug,
1394 [  --enable-debug          debug mode (default disabled)])
1395 test "${enable_debug}" != "yes" && enable_debug="no"
1396 AH_TEMPLATE(NDEBUG,
1397             [Define to 1 if debug code should NOT be compiled])
1398 AS_IF([test "x${enable_debug}" = "xno"], [AC_DEFINE(NDEBUG)])
1401 dnl  Enable release-specific flags
1403 AC_ARG_ENABLE(release,
1404 [  --enable-release        activate extra optimizations (default disabled)])
1405 test "${enable_release}" != "yes" && enable_release="no"
1408 dnl  Is the shared libvlc forced ?
1410 AC_ARG_ENABLE(shared-libvlc,
1411   [  --enable-shared-libvlc  Win32 libvlc.dll build (default disabled)])
1412 AS_IF([test "${enable_libtool}" != "no" && test "${enable_shared_libvlc}"], [
1413   AC_MSG_ERROR([--enable-shared-libvlc and --enable-libtool are mutually exclusive])
1417 dnl Stream output
1419 AC_ARG_ENABLE(sout,
1420   [  --enable-sout           Stream output modules (default enabled)])
1421 if test "${enable_sout}" != "no"
1422 then
1423   VLC_ADD_PLUGINS([access_output_dummy access_output_udp access_output_file access_output_http])
1424   VLC_ADD_PLUGINS([mux_ps mux_avi mux_mp4 mux_asf mux_dummy mux_wav mux_mpjpeg])
1425   VLC_ADD_PLUGINS([packetizer_copy])
1427   VLC_ADD_PLUGINS([stream_out_dummy stream_out_standard stream_out_es stream_out_rtp stream_out_description vod_rtsp])
1428   VLC_ADD_PLUGINS([stream_out_duplicate stream_out_gather stream_out_display stream_out_transcode stream_out_bridge stream_out_mosaic_bridge])
1429 #  VLC_ADD_PLUGINS([stream_out_transrate])
1430   VLC_ADD_PLUGINS([profile_parser])
1432   AC_DEFINE(ENABLE_SOUT, 1, Define if you want the stream output support)
1435 AC_ARG_ENABLE(switcher,
1436   [  --enable-switcher       Stream-out switcher plugin (default disabled)])    
1438 dnl Check for libshout
1439 AC_ARG_ENABLE(shout,
1440   [  --enable-shout          libshout output plugin (default disabled)])
1441 if test "${enable_shout}" = "yes"; then
1442   PKG_CHECK_MODULES(SHOUT, shout >= 2.1,
1443     [AC_DEFINE(HAVE_SHOUT, [], [Define if you have the libshout library])
1444      VLC_ADD_PLUGINS([access_output_shout])
1445      VLC_ADD_LDFLAGS([access_output_shout],[$SHOUT_LIBS])
1446      VLC_ADD_CFLAGS([access_output_shout],[$SHOUT_CFLAGS])],
1447     [AC_MSG_WARN(libshout library not found)])
1451 dnl HTTP daemon
1453 AC_ARG_ENABLE(httpd,
1454   [  --enable-httpd          HTTP daemon (default enabled)])
1455 if test "${enable_httpd}" != "no"
1456 then
1457   VLC_ADD_PLUGINS([http])
1458   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
1462 dnl VideoLAN manager
1464 AC_ARG_ENABLE(vlm,
1465   [  --enable-vlm            VideoLAN manager (default enabled)])
1466 if test "${enable_vlm}" != "no"
1467 then
1468   AC_DEFINE(ENABLE_VLM, 1, Define if you want the VideoLAN manager support)
1472 dnl Growl notification plugin
1474 AC_ARG_ENABLE(growl,
1475   [  --enable-growl          growl notification plugin (default enabled)])
1476 AS_IF([test "${enable_growl}" != "no"], [
1477     VLC_ADD_PLUGINS([growl])
1478   ]
1482 dnl Libnotify notification plugin
1485 AC_ARG_ENABLE(notify,
1486   [  --enable-notify         libnotify notification plugin (default enabled)])
1487 AS_IF([test "${enable_notify}" != "no"], [
1488     PKG_CHECK_MODULES(NOTIFY, libnotify,
1489       [
1490         VLC_ADD_PLUGINS([notify])
1491         VLC_ADD_CFLAGS(notify, [$NOTIFY_CFLAGS])
1492         VLC_ADD_LDFLAGS(notify, [$NOTIFY_LIBS])
1493       ],[
1494         AS_IF([test "${enable_notify}" = "yes"],[
1495                AC_MSG_WARN( libnotify not found) ])
1496       ])
1497   ])
1500 dnl Audioscrobbler plugin
1503 AC_ARG_ENABLE(audioscrobbler,
1504   [  --enable-audioscrobbler Last.fm submission plugin (default enabled)])
1505 AS_IF([test "${enable_audioscrobbler}" != "no"], [
1506         VLC_ADD_PLUGINS([audioscrobbler])
1507   ])
1510 dnl Musicbrainz plugin
1512 AC_ARG_ENABLE(musicbrainz,
1513   [  --enable-musicbrainz    MusicBrainz support (default disabled) ])
1514   AS_IF([test "${enable_musicbrainz}" = "yes"],[
1515       PKG_CHECK_MODULES(MUSICBRAINZ, libmusicbrainz,
1516         [ VLC_ADD_PLUGINS([musicbrainz])
1517           VLC_ADD_LDFLAGS([musicbrainz],[$MUSICBRAINZ_LIBS]) 
1518           VLC_ADD_CFLAGS([musicbrainz],[$MUSICBRAINZ_CFLAGS])  ],
1519        [AC_MSG_WARN(MusicBrainz library not found)])
1520    ])
1524 dnl Taglibplugin
1526 AC_ARG_ENABLE(taglib,
1527   [  --enable-taglib Taglib support (default disabled) ])
1528   AS_IF([test "${enable_taglib}" = "yes"],[
1529     PKG_CHECK_MODULES(TAGLIB, taglib,
1530       [ VLC_ADD_PLUGINS([taglib])
1531         VLC_ADD_LDFLAGS([taglib],[$TAGLIB_LIBS])
1532        VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS]) ],
1533       [AC_MSG_WARN(TagLib library not found)])
1534   ])
1538 dnl  Input plugins
1541 AC_ARG_WITH(,[Input plugins:])
1543 dnl  live555 input
1545 if test "${enable_livedotcom}" 
1546 then
1547   AC_MSG_WARN(--{en|dis}able-livedotcom is deprecated. Use --{en|dis}able-live555 instead.)
1550 if test "${enable_livedotcom}" = "no"
1551 then
1552   enable_live555="no"
1554 AC_ARG_ENABLE(live555,
1555 [  --enable-live555        live555 RTSP input plugin (default enabled)])
1556 if test "${enable_live555}" != "no"; then
1557   AC_ARG_WITH(live555-tree,
1558     [    --with-live555-tree=PATH live.com tree for static linking])
1560   dnl
1561   dnl test for --with-live555-tree
1562   dnl
1563   if test "${with_livedotcom_tree}" 
1564   then
1565     AC_MSG_WARN(--with-livedotcom-tree is deprecated. Use --with-live555-tree instead.)
1566   with_live555_tree="${with_livedotcom_tree}"
1567   fi
1568   
1569   if test -z "${with_live555_tree}" -a "${CXX}" != ""; then
1570     AC_LANG_PUSH(C++)
1571     CPPFLAGS_save="${CPPFLAGS}"
1572     CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1573     if test "${SYS}" = "solaris"; then
1574       CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1575     fi
1576     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1577     AC_CHECK_HEADERS(liveMedia.hh, [
1578       VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1579       AC_CHECK_LIB(liveMedia_pic, main, [
1580         # We have -lliveMedia_pic, build plugins
1581         VLC_ADD_PLUGINS([live555])
1582         VLC_ADD_LDFLAGS([live555], [-lliveMedia_pic -lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic])
1583       ], [
1584         AC_CHECK_LIB(liveMedia, main, [
1585           # We only have -lliveMedia, do builtins
1586           VLC_ADD_BUILTINS([live555])
1587           VLC_ADD_LDFLAGS([live555], [-lliveMedia -lgroupsock -lBasicUsageEnvironment -lUsageEnvironment])
1588         ])
1589       ])
1590       if test "${SYS}" = "mingw32"; then
1591         # add ws2_32 for closesocket, select, recv
1592         VLC_ADD_LDFLAGS([live555],[-lws2_32])
1593       fi
1594     ])
1595     CPPFLAGS="${CPPFLAGS_save}"
1596     AC_LANG_POP(C++)
1597   else
1598     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_live555_tree})
1599     real_live555_tree="`cd ${with_live555_tree} 2>/dev/null && pwd`"
1600     if test -z "${real_live555_tree}"; then
1601       dnl  The given directory can't be found
1602       AC_MSG_RESULT(no)
1603       AC_MSG_ERROR([cannot cd to ${with_live555_tree}])
1604     fi
1605     if test -f "${real_live555_tree}/liveMedia/libliveMedia.a"; then
1606       AC_MSG_RESULT(${real_live555_tree}/liveMedia/libliveMedia.a)
1608       VLC_ADD_BUILTINS([live555])
1610       if test "${SYS}" = "mingw32"; then
1611         # add ws2_32 for closesocket, select, recv
1612         VLC_ADD_LDFLAGS([live555],[-lws2_32])
1613       fi
1615       VLC_ADD_LDFLAGS([live555],[-L${real_live555_tree}/liveMedia -lliveMedia])
1616       VLC_ADD_LDFLAGS([live555],[-L${real_live555_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1617       VLC_ADD_LDFLAGS([live555],[-L${real_live555_tree}/groupsock -lgroupsock])
1618       VLC_ADD_LDFLAGS([live555],[-L${real_live555_tree}/UsageEnvironment -lUsageEnvironment])
1620       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/BasicUsageEnvironment/include])
1621       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/groupsock/include])
1622       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/liveMedia/include])
1623       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/UsageEnvironment/include ])
1624       if test "${SYS}" = "solaris"; then
1625         VLC_ADD_CXXFLAGS([live555],[-DSOLARIS])
1626       fi
1627     else
1628       dnl  The given live555 wasn't built
1629         AC_MSG_RESULT(no)
1630       if test "${enable_live555}" = "yes"; then
1631         AC_MSG_ERROR([cannot find ${real_live555_tree}/liveMedia/libliveMedia.a, make sure you compiled live555 in ${with_live555_tree}])
1632       fi        
1633     fi
1634   fi
1638 dnl dv module: digital video module check for libraw1394
1640 AC_ARG_ENABLE(dv,
1641 [  --enable-dv             dv input module (default disabled)])
1642 if test "${enable_dv}" = "yes"
1643 then
1644   AC_ARG_WITH(dv-raw1394,
1645   [    --with-dv-raw1394=PATH   libraw1394 headers and libraries])
1646   AC_ARG_WITH(dv-raw1394-tree,
1647   [    --with-dv-raw1394=PATH   libraw1394 tree for static linking])
1649   if test -z "${with_dv_raw1394}" -a "${with_dv_raw1394}" != ""
1650   then
1651     AC_MSG_CHECKING(for raw1394 headers in ${with_dv_raw1394})
1652     if test -f ${with_dv_raw1394}/include/libraw1394/raw1394.h
1653     then
1654       dnl  Use ${with_dv_raw1394}/include/libraw1394/raw1394.h
1655       AC_MSG_RESULT(yes)
1656       VLC_ADD_PLUGINS([access_dv])
1657       VLC_ADD_LDFLAGS([access_dv],[-L${with_dv_raw1394}/lib -lraw1394 -lpthread])
1658       VLC_ADD_CPPFLAGS([access_dv],[-I${with_dv_raw1394}/include])
1659     else
1660       dnl  No libraw1394 could be found, sorry
1661       AC_MSG_RESULT(no)
1662       AC_MSG_ERROR([cannot find ${with_dv_raw1394}/include/libraw1394/raw1394.h])
1663     fi
1664   else
1665     AC_CHECK_HEADERS(libraw1394/raw1394.h,
1666     [ VLC_ADD_PLUGINS([access_dv])
1667         VLC_ADD_LDFLAGS([access_dv],[-lraw1394 -lavc1394])
1668     ],[
1669         if test -n "${enable_dv}"
1670         then
1671           AC_MSG_ERROR([cannot find libraw1394 headers])
1672         fi
1673     ])
1674   fi
1676   dnl Check for static linking of libraw1394
1677   if test -z "${with_dv_raw1394_tree}" -a "${with_dv_raw1394_tree}" != ""
1678   then
1679     AC_MSG_CHECKING(for libraw1394.a in ${with_dv_raw1394_tree})
1680     real_dv_raw1394_tree="`cd ${with_dv_raw1394_tree} 2>/dev/null && pwd`"
1681     if test -z "${real_dv_raw1394_tree}"
1682     then
1683       dnl  The given directory can't be found
1684       AC_MSG_RESULT(no)
1685       AC_MSG_ERROR([cannot cd to ${real_dv_raw1394_tree}])
1686     fi
1687     if test -f "${real_dv_raw1394_tree}/src/.libs/libraw1394.a"
1688     then
1689       dnl  Use a custom libraw1394
1690       AC_MSG_RESULT(${real_dv_raw1394_tree}/src/.libs/libraw1394.a)
1691       VLC_ADD_BUILTINS([access_dv])
1692       VLC_ADD_LDFLAGS([access_dv],[-L${real_dv_raw1394_tree}/src/.libs -lraw1394])
1693       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_raw1394_tree}])
1694     else
1695       dnl  The given libraw1394 wasn't built
1696       AC_MSG_RESULT(no)
1697       AC_MSG_ERROR([cannot find ${real_dv_raw1394_tree}/src/.libs/libraw1394.a, make sure you compiled libraw1394 in ${with_dv_raw1394_tree}])
1698     fi
1699   fi
1701   dnl
1702   dnl Check for libavc1394
1703   dnl
1705   AC_ARG_WITH(dv-avc1394,
1706   [    --with-dv-avc1394=PATH   libavc1394 headers and libraries])
1707   AC_ARG_WITH(dv-avc1394-tree,
1708   [    --with-dv-avc1394=PATH   libavc1394 tree for static linking])
1710   if test -z "${with_dv_avc1394}" -a "${with_dv_avc1394}" != ""
1711   then
1712     AC_MSG_CHECKING(for avc1394 headers in ${with_dv_avc1394})
1713     if test -f ${with_dv_avc1394}/include/libavc1394/avc1394.h
1714     then
1715       dnl  Use ${with_dv_avc1394}/include/libavc1394/avc1394.h
1716       AC_MSG_RESULT(yes)
1717       VLC_ADD_LDFLAGS([access_dv],[-L${with_dv_avc1394}/lib -lavc1394 -lrom1394 -lpthread])
1718       VLC_ADD_CPPFLAGS([access_dv],[-I${with_avc1394}/include])
1719     else
1720       dnl  No libavc1394 could be found, sorry
1721       AC_MSG_RESULT(no)
1722       AC_MSG_ERROR([cannot find ${with_dv_avc1394}/include/libavc1394/avc1394.h])
1723     fi
1724   else
1725     AC_CHECK_HEADERS(libavc1394/avc1394.h,
1726     [ VLC_ADD_LDFLAGS([access_dv],[-lavc1394 -lrom1394 -lpthread])
1727     ],[
1728         if test -n "${enable_dv}"
1729         then
1730           AC_MSG_ERROR([cannot find libavc1394 headers])
1731         fi
1732     ])
1733   fi
1735   dnl Check for static linking of libavc1394
1736   if test -z "${with_dv_avc1394_tree}" -a "${with_dv_avc1394_tree}" != ""
1737   then
1738     AC_MSG_CHECKING(for libavc1394.a in ${with_dv_avc1394_tree})
1739     real_dv_avc1394_tree="`cd ${with_dv_avc1394_tree} 2>/dev/null && pwd`"
1740     if test -z "${real_dv_avc1394_tree}"
1741     then
1742       dnl  The given directory can't be found
1743       AC_MSG_RESULT(no)
1744       AC_MSG_ERROR([cannot cd to ${real_dv_avc1394_tree}])
1745     fi
1746     if test -f "${real_dv_avc1394_tree}/src/.libs/libavc1394.a"
1747     then
1748       dnl  Use a custom libavc1394
1749       AC_MSG_RESULT(${real_dv_avc1394_tree}/src/.libs/libavc1394.a)
1750       VLC_ADD_LDFLAGS([access_dv],[-L${real_dv_avc1394_tree}/src/.libs -lavc1394 -lrom1394 -lpthread])
1751       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_avc1394_tree}])
1752     else
1753       dnl  The given libavc1394 wasn't built
1754       AC_MSG_RESULT(no)
1755       AC_MSG_ERROR([cannot find ${real_dv_avc1394_tree}/src/.libs/libavc1394.a, make sure you compiled libavc1394 in ${with_dv_avc1394_tree}])
1756     fi
1757   fi
1761 dnl dvdread module: check for libdvdread
1763 AC_ARG_ENABLE(dvdread,
1764 [  --enable-dvdread        dvdread input module (default disabled)])
1765 if test "${enable_dvdread}" != "no"
1766 then
1767   AC_ARG_WITH(dvdread,
1768   [    --with-dvdread=PATH   libdvdread headers and libraries])
1769   AC_ARG_WITH(dvdread-tree,
1770   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
1772   dnl Temporary hack (yeah, sure ;)
1773   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
1774       VLC_ADD_LDFLAGS([dvdread],[-ldvdcss])
1775   fi
1777   if test -z "${with_dvdread}"
1778   then
1779     if test -z "${with_dvdread_tree}"
1780     then
1781       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
1782         [ VLC_ADD_PLUGINS([dvdread])
1783           VLC_ADD_LDFLAGS([dvdread],[-ldvdread ${LDFLAGS_dvdcss}])
1784         ],[
1785           if test -n "${enable_dvdread}"
1786           then
1787             AC_MSG_ERROR([cannot find libdvdread headers])
1788           fi
1789         ])
1790     else
1791       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
1792       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
1793       if test -z "${real_dvdread_tree}"
1794       then
1795         dnl  The given directory can't be found
1796         AC_MSG_RESULT(no)
1797         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
1798       fi
1799       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
1800       then
1801         dnl  Use a custom libdvdread
1802         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
1803         VLC_ADD_BUILTINS([dvdread])
1804         VLC_ADD_LDFLAGS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LDFLAGS_dvdcss}])
1805         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
1806       else
1807         dnl  The given libdvdread wasn't built
1808         AC_MSG_RESULT(no)
1809         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
1810       fi
1811     fi
1812   else
1813     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
1814     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
1815     then
1816       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
1817       AC_MSG_RESULT(yes)
1818       VLC_ADD_PLUGINS([dvdread])
1819       VLC_ADD_LDFLAGS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LDFLAGS_dvdcss}])
1820       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
1821     else
1822       dnl  No libdvdread could be found, sorry
1823       AC_MSG_RESULT(no)
1824       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
1825     fi
1826   fi
1830 dnl  libdvdnav plugin
1832 AC_ARG_ENABLE(dvdnav,
1833   [  --enable-dvdnav         dvdnav input module (default enabled)])
1834 if test "${enable_dvdnav}" != "no"
1835 then
1836   dnl Same hack than dvdread
1837   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
1838       VLC_ADD_LDFLAGS([dvdnav],[-ldvdcss])
1839   fi
1841   DVDNAV_PATH="${PATH}"
1842   AC_ARG_WITH(dvdnav-config-path,
1843     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
1844     [ if test "${with_dvdnav_config_path}" != "no"
1845       then
1846         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
1847       fi ])
1848   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
1849   if test "${DVDNAV_CONFIG}" != "no"
1850   then
1851     VLC_ADD_PLUGINS([dvdnav])
1852     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
1853     VLC_ADD_LDFLAGS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
1854   fi
1858 dnl  Windows DirectShow access module
1860 AC_ARG_ENABLE(dshow,
1861   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
1862 if test "${enable_dshow}" != "no"
1863 then
1864   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
1865   then
1866     AC_LANG_PUSH(C++)
1867       AC_CHECK_HEADERS(dshow.h,
1868       [ VLC_ADD_PLUGINS([dshow])
1869         VLC_ADD_CXXFLAGS([dshow],[])
1870         VLC_ADD_LDFLAGS([dshow],[-lole32 -loleaut32 -luuid]) ])
1871     AC_LANG_POP(C++)
1872   fi
1877 dnl  OpenCV wrapper and example filters
1879 AC_ARG_ENABLE(opencv,
1880   [  --enable-opencv            OpenCV (computer vision) filter (default disabled)])
1881 if test "${enable_opencv}" = "yes" -a "${CXX}" != "";
1882 then
1883   AC_ARG_WITH(opencv-tree,
1884   [    --with-opencv-tree=PATH opencv tree for linking])
1885   if test -n "${with_opencv_tree}"
1886   then
1887     if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
1888     then
1889           AC_MSG_CHECKING(for opencv in ${with_opencv_tree})
1890           if test -f ${with_opencv_tree}/cv/include/cv.h -a -f ${with_opencv_tree}/cxcore/include/cxcore.h \
1891             -a -f ${with_opencv_tree}/cvaux/include/cvaux.h -a -f ${with_opencv_tree}/otherlibs/highgui/highgui.h
1892       then
1893         AC_MSG_RESULT(yes)
1894         VLC_ADD_PLUGINS([opencv_wrapper])
1895         VLC_ADD_LDFLAGS([opencv_wrapper],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
1896         VLC_ADD_CFLAGS([opencv_wrapper],[-I${with_opencv_tree}/cv/include -I${with_opencv_tree}/cxcore/include -I${with_opencv_tree}/cvaux/include -I${with_opencv_tree}/otherlibs/highgui])
1897         AC_LANG_PUSH(C++)
1898         VLC_ADD_PLUGINS([opencv_example])
1899         VLC_ADD_LDFLAGS([opencv_example],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
1900         VLC_ADD_CXXFLAGS([opencv_example],[-I${with_opencv_tree}/cv/include -I${with_opencv_tree}/cxcore/include -I${with_opencv_tree}/cvaux/include -I${with_opencv_tree}/otherlibs/highgui])
1901         AC_LANG_POP(C++)        
1902           else
1903         dnl  No opencv could be found, sorry
1904         AC_MSG_RESULT(no)
1905         AC_MSG_ERROR([cannot find opencv in ${with_opencv_tree}])
1906           fi
1907     else
1908           AC_MSG_WARN([--enable-opencv currently only works on windows])
1909     fi
1910   fi  
1915 dnl  libsmbclient plugin
1917 AC_ARG_ENABLE(smb,
1918   [  --enable-smb            smb input module (default enabled)])
1919 if test "${enable_smb}" != "no"; then
1920   AC_CHECK_HEADERS(libsmbclient.h,
1921     [ VLC_ADD_PLUGINS([access_smb])
1922       VLC_ADD_LDFLAGS([access_smb],[-lsmbclient]) ],
1923     [ if test -n "${enable_smb}"; then
1924         AC_MSG_ERROR([cannot find libsmbclient headers])
1925      fi ])
1926   AC_CHECK_MEMBER([struct _SMBCCTX.close_fn],
1927     AC_DEFINE([HAVE__SMBCCTX_CLOSE_FN], [1], [Define if samba has _SMBCCTX.close_fn]),,
1928     [#include <libsmbclient.h>])
1932 dnl  libdvbpsi ts demux/mux
1934 AC_ARG_ENABLE(dvbpsi,
1935   [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
1936 if test "${enable_dvbpsi}" != "no"
1937 then
1938   AC_ARG_WITH(dvbpsi,
1939   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
1940   AC_ARG_WITH(dvbpsi,
1941   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
1942   case "${with_dvbpsi}" in
1943   ""|yes)
1944     if test -z "${with_dvbpsi_tree}"
1945     then
1946       AC_CHECK_HEADERS(dvbpsi/dr.h,
1947         [ VLC_ADD_PLUGINS([ts])
1948           if test "${enable_sout}" != "no"; then
1949             VLC_ADD_PLUGINS([mux_ts])
1950           fi
1951           VLC_ADD_LDFLAGS([mux_ts ts dvb],[-ldvbpsi]) ],
1952         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
1953         [#if defined( HAVE_STDINT_H )
1954 #   include <stdint.h>
1955 #elif defined( HAVE_INTTYPES_H )
1956 #   include <inttypes.h>
1957 #endif
1958 #include <dvbpsi/dvbpsi.h>
1959 #include <dvbpsi/descriptor.h>
1960 #include <dvbpsi/pat.h>
1961 #include <dvbpsi/pmt.h>])
1962     else
1963       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
1964       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
1965       if test -z "${real_dvbpsi_tree}"
1966       then
1967         dnl  The given directory can't be found
1968         AC_MSG_RESULT(no)
1969         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
1970       fi
1971       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
1972       then
1973         dnl  Use a custom libdvbpsi
1974         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
1975         VLC_ADD_BUILTINS([ts])
1976         if test "${enable_sout}" != "no"; then
1977           VLC_ADD_BUILTINS([mux_ts])
1978         fi
1979         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
1980         VLC_ADD_LDFLAGS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
1981       else
1982         dnl  The given libdvbpsi wasn't built
1983         AC_MSG_RESULT(no)
1984         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
1985       fi
1986     fi
1987   ;;
1988   no)
1989     dnl  Compile without dvbpsi
1990   ;;
1991   *)
1992     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
1993     if test -z "${with_dvbpsi}"
1994     then
1995       LDFLAGS_test=""
1996       CPPFLAGS_test=""
1997     else
1998       LDFLAGS_test="-L${with_dvbpsi}/lib"
1999       CPPFLAGS_test="-I${with_dvbpsi}/include"
2000     fi
2001     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
2002     AC_CHECK_HEADERS([dvbpsi/dr.h],[
2003       VLC_ADD_PLUGINS([ts])
2004       if test "${enable_sout}" != "no"; then
2005         VLC_ADD_PLUGINS([mux_ts])
2006       fi
2007       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
2008       VLC_ADD_LDFLAGS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
2010     ],[
2011       if test -n "${enable_dvbpsi}"
2012       then
2013         AC_MSG_ERROR([Could not find libdvbpsi on your system: you may get it from www.videolan.org, you'll need at least version 0.1.1])
2014       fi
2015     ])
2016     CPPFLAGS="${CPPFLAGS_save}"
2017   ;;
2018   esac
2019   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
2020     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
2021   ], [], [${LDFLAGS_ts}])
2026 dnl  Video4Linux plugin
2028 AC_ARG_ENABLE(v4l,
2029   [  --enable-v4l            Video4Linux input support (default disabled)])
2030 if test "${enable_v4l}" = "yes"
2031 then
2032   AC_ARG_WITH(v4l,
2033     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
2034   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
2035   then
2036     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
2037   fi
2039   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
2040   AC_CHECK_HEADERS(linux/videodev.h, [
2041     VLC_ADD_PLUGINS([v4l])
2042   ],[])
2043   CPPFLAGS="${CPPFLAGS_save}"
2047 dnl  Video4Linux plugin
2049 AC_ARG_ENABLE(v4l2,
2050   [  --enable-v4l2            Video4Linux2 input support (default disabled)])
2051 if test "${enable_v4l2}" = "yes"
2052 then
2053   AC_ARG_WITH(v4l2,
2054     [    --with-v4l2=PATH       path to a v4l2-enabled kernel tree],[],[])
2055   if test "${with_v4l2}" != "no" -a -n "${with_v4l2}"
2056   then
2057     VLC_ADD_CPPFLAGS([v4l2],[-I${with_v4l2}/include])
2058   fi
2060   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l2}"
2061   AC_CHECK_HEADERS(linux/videodev2.h, [
2062     VLC_ADD_PLUGINS([v4l2])
2063   ],[])
2064   CPPFLAGS="${CPPFLAGS_save}"
2069 dnl  special access module for Hauppauge PVR cards
2071 AC_ARG_ENABLE(pvr,
2072   [  --enable-pvr            PVR cards access module (default disabled)])
2073 if test "${enable_pvr}" = "yes"
2074 then
2075   VLC_ADD_PLUGINS([pvr])
2079 dnl  gnomeVFS access module
2081 AC_ARG_ENABLE(gnomevfs,
2082   [  --enable-gnomevfs       GnomeVFS access module (default enabled)])
2083 if test "${enable_gnomevfs}" != "no" 
2084 then
2085   PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0,
2086     VLC_ADD_LDFLAGS([access_gnomevfs],[$GNOMEVFS_LIBS])
2087     VLC_ADD_CPPFLAGS([access_gnomevfs],[$GNOMEVFS_CPPFLAGS])
2088     VLC_ADD_CFLAGS([access_gnomevfs],[$GNOMEVFS_CFLAGS])
2089     VLC_ADD_PLUGINS([access_gnomevfs]),
2090     AC_MSG_WARN([GnomeVFS support disabled because GnomeVFS development headers not found]))
2093 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
2094 AC_ARG_ENABLE(libcdio,
2095   [  --enable-libcdio        CD input and control library support (default enabled)])
2098 have_libcdio=no
2099 have_libvcdinfo=no
2100 if test "${enable_libcdio}" != "no"
2101 then
2102   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.72,
2103      have_libcdio=yes
2104      AC_DEFINE(HAVE_LIBCDIO, [], 
2105      [Define if you have libcdio 0.72 or greater installed]),
2106      [AC_MSG_WARN(CD Reading and information library not found)])
2108   PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.21,
2109      [have_libvcdinfo=yes
2110      AC_DEFINE(HAVE_VCDINFO, [], 
2111      [Define if you have libvcdinfo 0.7.21 or greater installed])],
2112      [AC_MSG_WARN(VCD information library not found)])
2116 dnl  VCDX and CDDAX modules
2118 AC_ARG_ENABLE(cddax,
2119   [  --enable-cddax          audio CD plugin with CD Text and CD paranoia via libcdio (default disabled)])
2121 AC_ARG_ENABLE(libcddb,
2122   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
2124 if test "${enable_cddax}" = "yes"
2125 then
2126   if test "$have_libcdio" = "yes"
2127   then
2128     AC_DEFINE(HAVE_CDDAX, [], [Define for the audio CD plugin using libcdio])
2129     VLC_ADD_LDFLAGS([cddax],[$LIBCDIO_LIBS])
2130     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
2131     VLC_ADD_PLUGINS([cddax])
2132     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
2133     VLC_ADD_LDFLAGS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
2134     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
2135   else 
2136     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
2137     HAVE_CDDAX=no
2138   fi
2140   if test "$enable_libcddb" != "no"; then
2141     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2142       HAVE_LIBCDDB=yes 
2143       AC_DEFINE(HAVE_LIBCDDB, [], [Define this if you have libcddb installed])
2144       VLC_ADD_LDFLAGS([cddax],[$LIBCDDB_LIBS])
2145       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
2146       ],
2147       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2148       HAVE_LIBCDDB=no])
2149   fi
2153 AC_ARG_ENABLE(vcdx,
2154   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2156 if test "${enable_vcdx}" = "yes"
2157 then
2158   if test "${have_libvcdinfo}" = "yes"
2159   then
2160     VLC_ADD_LDFLAGS([vcdx],[$VCDINFO_LIBS])
2161     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2162   else 
2163     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
2164     HAVE_VCDX=no
2165   fi
2167   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
2168    [VLC_ADD_LDFLAGS([vcdx],[$LIBISO9660_LIBS])
2169     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
2170     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
2171     HAVE_VCDX=no])
2173   if test "$have_libvcdinfo" = "yes"
2174   then
2175     AC_DEFINE(HAVE_VCDX, [], 
2176     [Define for the VCD plugin using libcdio/libvcdinfo])
2177     VLC_ADD_LDFLAGS([vcdx],[$VCDINFO_LIBS])
2178     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2179     VLC_ADD_PLUGINS([vcdx])
2180   else 
2181     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
2182     HAVE_VCDX=no
2183   fi
2187 dnl  Built-in CD-DA and VCD module
2189 AC_ARG_ENABLE(cdda,           
2190   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
2192 AC_ARG_ENABLE(vcd,
2193   [  --enable-vcd            built-in VCD (default enabled)])
2195 if test "${enable_vcd}" != "no"
2196 then
2197   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2198   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2199     AC_MSG_RESULT(yes)
2200     VLC_ADD_PLUGINS([vcd cdda])
2201   ],[
2202     AC_MSG_RESULT(no)
2203   ])
2205   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2206   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2207     AC_MSG_RESULT(yes)
2208     VLC_ADD_PLUGINS([vcd cdda])
2209     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2210   ],[
2211     AC_MSG_RESULT(no)
2212   ])
2214   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2215   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2216     AC_MSG_RESULT(yes)
2217     VLC_ADD_PLUGINS([vcd cdda])
2218     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2219   ],[
2220     AC_MSG_RESULT(no)
2221   ])
2223   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2224   then
2225     VLC_ADD_PLUGINS([vcd cdda])
2226   fi
2228   if test "${SYS}" = "darwin"
2229   then
2230     VLC_ADD_PLUGINS([vcd cdda])
2231     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-framework IOKit -framework CoreFoundation])
2232     VLC_ADD_LDFLAGS([vcdx cddax cdda],[-liconv])
2233   fi
2235   if test "$enable_libcddb" != "no"; then
2236     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2237       HAVE_LIBCDDB=yes 
2238       AC_DEFINE(HAVE_LIBCDDB, [], [Define this if you have libcddb installed])
2239       VLC_ADD_LDFLAGS([cdda],[$LIBCDDB_LIBS])
2240       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2241       ],:
2242       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2243       HAVE_LIBCDDB=no])
2244   fi
2248 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2250 AC_ARG_ENABLE(dvb,
2251   [  --enable-dvb            DVB-S/T/C card support (default disabled)])
2253 if test "${enable_dvb}" = "yes"
2254 then
2255   AC_ARG_WITH(dvb,
2256   [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
2257   if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2258   then
2259     VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2260   fi
2261   CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2262   AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2263     if test -z "${with_dvbpsi_tree}"
2264     then
2265       VLC_ADD_PLUGINS([dvb])
2266     else
2267       VLC_ADD_BUILTINS([dvb])
2268     fi
2269   ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2270   CPPFLAGS="${CPPFLAGS_save}"
2274 dnl  Screen capture module
2276 AC_ARG_ENABLE(screen,
2277   [  --enable-screen         Screen capture support (default enabled)])
2278 if test "${enable_screen}" != "no"; then
2279   if test "${SYS}" = "darwin"; then
2280     AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2281       VLC_ADD_PLUGINS([screen])
2282       VLC_ADD_LDFLAGS([screen],[-framework ApplicationServices])
2283     ])
2284   elif test "${SYS}" = "mingw32"; then
2285     VLC_ADD_PLUGINS([screen])
2286     VLC_ADD_LDFLAGS([screen],[-lgdi32])
2287   elif test "${SYS}" = "mingwce"; then
2288     CPPFLAGS="${CPPFLAGS_save}"
2289   elif test "${SYS}" = "beos"; then
2290     VLC_ADD_PLUGINS([screen])
2291     VLC_ADD_CXXFLAGS([screen],[])
2292     VLC_ADD_LDFLAGS([screen],[-lbe])
2293   else
2294     CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
2295     AC_CHECK_HEADERS(X11/Xlib.h, [
2296       VLC_ADD_PLUGINS([screen])
2297       VLC_ADD_LDFLAGS([screen],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
2298       VLC_ADD_CPPFLAGS([screen],[${X_CFLAGS}])
2299     ])
2300     CPPFLAGS="${CPPFLAGS_save}"
2301   fi
2305 dnl  ipv6 plugin - not for QNX yet
2307 have_ipv6=no
2308 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2309   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2312 AS_IF([test "${have_ipv6}" = "yes"], [
2313   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2315 if test "${SYS}" != "nto" &&
2316    test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
2317 then
2318   AC_MSG_CHECKING(for sockaddr_in6 in netinet/in.h)
2319   AC_EGREP_HEADER(sockaddr_in6,netinet/in.h,
2320     [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no); have_ipv6=no])
2321   AS_IF([test "${have_ipv6}" != "no"], [
2322     VLC_ADD_PLUGINS([ipv6])])
2324 if test "${SYS}" = "mingw32"
2325 then
2326   AC_MSG_CHECKING(for getaddrinfo in ws2tcpip.h)
2327   AC_EGREP_HEADER(addrinfo,ws2tcpip.h,[AC_MSG_RESULT(yes)
2328     VLC_ADD_PLUGINS([ipv6])],[AC_MSG_RESULT(no)])
2332 dnl  ogg demux plugin
2334 AC_ARG_ENABLE(ogg,
2335   [  --enable-ogg            Ogg demux support (default enabled)])
2336 if test "${enable_ogg}" != "no"
2337 then
2338   AC_ARG_WITH(ogg-tree,
2339   [    --with-ogg-tree=PATH  ogg tree for static linking])
2340   if test -n "${with_ogg_tree}"
2341   then
2342     AC_MSG_CHECKING(for libogg.a in ${with_ogg_tree})
2343     real_ogg_tree="`cd ${with_ogg_tree} 2>/dev/null && pwd`"
2344     if test -z "${real_ogg_tree}"
2345     then
2346       dnl  The given directory can't be found
2347       AC_MSG_RESULT(no)
2348       AC_MSG_ERROR([cannot cd to ${with_ogg_tree}])
2349     fi
2350     if test -f "${real_ogg_tree}/src/.libs/libogg.a"
2351     then
2352       dnl  Use a custom ogg
2353       AC_MSG_RESULT(${real_ogg_tree}/src/.libs/libogg.a)
2354       VLC_ADD_PLUGINS([ogg])
2355       if test "${enable_sout}" != "no"; then
2356         VLC_ADD_PLUGINS([mux_ogg])
2357       fi
2358       VLC_ADD_LDFLAGS([ogg mux_ogg speex vorbis],[${real_ogg_tree}/src/.libs/libogg.a])
2359       VLC_ADD_CFLAGS([ogg mux_ogg speex vorbis],[-I${real_ogg_tree}/include])
2360     else
2361       dnl  The given ogg wasn't built
2362       AC_MSG_RESULT(no)
2363       AC_MSG_ERROR([cannot find ${real_ogg_tree}/src/.libs/libogg.a, make sure you compiled ogg in ${with_ogg_tree}])
2364     fi
2365   else
2366     AC_CHECK_HEADERS(ogg/ogg.h, [
2367       AC_CHECK_LIB( ogg, oggpack_read, [
2368         VLC_ADD_PLUGINS([ogg])
2369         if test "${enable_sout}" != "no"; then
2370           VLC_ADD_PLUGINS([mux_ogg])
2371         fi
2372         VLC_ADD_LDFLAGS([ogg mux_ogg],[-logg])])
2373      ],[])
2374   fi
2378 dnl  matroska demux plugin
2380 AC_ARG_ENABLE(mkv,
2381   [  --enable-mkv            Matroska demux support (default enabled)])
2382 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2383   AC_LANG_PUSH(C++)
2384   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2385     AC_MSG_CHECKING(for libebml version >= 0.7.6)
2386     AC_EGREP_CPP(yes,
2387       [#include <ebml/EbmlVersion.h>
2388        #ifdef LIBEBML_VERSION
2389        #if LIBEBML_VERSION >= 0x000706
2390        yes
2391        #endif
2392        #endif],
2393       [AC_MSG_RESULT([yes])
2394         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2395           AC_MSG_CHECKING(for libmatroska version >= 0.7.5)
2396           AC_EGREP_CPP(yes,
2397             [#include <matroska/KaxVersion.h>
2398              #ifdef LIBMATROSKA_VERSION
2399              #if LIBMATROSKA_VERSION >= 0x000705
2400              yes
2401              #endif
2402              #endif],
2403             [AC_MSG_RESULT([yes])
2404               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2405               VLC_ADD_CXXFLAGS([mkv],[])
2406               if test "${SYS}" = "darwin"; then
2407                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2408               fi
2409               AC_CHECK_LIB(ebml_pic, main, [
2410                 # We have ebml_pic, that's good, we can build an mkv.so plugin !
2411                 VLC_ADD_PLUGINS([mkv])
2412                 VLC_ADD_LDFLAGS([mkv],[-lmatroska_pic -lebml_pic])
2413               ], [
2414                 AC_CHECK_LIB(ebml, main, [
2415                   # We only have libebml, make mkv.a a builtin
2416                   VLC_ADD_BUILTINS([mkv])
2417                   VLC_ADD_LDFLAGS([mkv],[-lmatroska -lebml])
2418                 ])
2419               ])
2420             ],
2421             [AC_MSG_RESULT([no])
2422               AC_MSG_ERROR([Your libmatroska is too old: you may get a more recent one from http://dl.matroska.org/downloads/libmatroska/. Alternatively you can use --disable-mkv to disable the matroska plugin.])
2423           ])
2424         ])
2425       ],
2426       [AC_MSG_RESULT([no])
2427         AC_MSG_ERROR([Your libebml is too old: you may get a more recent one from http://dl.matroska.org/downloads/libebml/. Alternatively you can use --disable-mkv to disable the matroska plugin.])
2428     ])
2429   ])
2430   AC_LANG_POP(C++)
2434 dnl  modplug demux plugin
2436 AC_ARG_ENABLE(mod,
2437   [  --enable-mod            Mod demux support (default enabled)])
2438 if test "${enable_mod}" != "no"
2439 then
2440   AC_ARG_WITH(mod-tree,
2441   [    --with-mod-tree=PATH mod tree for static linking])
2442   if test -n "${with_mod_tree}"
2443   then
2444     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2445     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2446     if test -z "${real_mod_tree}"
2447     then
2448       dnl  The given directory can't be found
2449       AC_MSG_RESULT(no)
2450       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2451     fi
2452     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2453     then
2454       dnl  Use a custom mod
2455       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2456       VLC_ADD_PLUGINS([mod])
2457       VLC_ADD_LDFLAGS([mod],[${real_mod_tree}/src/.libs/libmodplug.a -lstdc++])
2458       VLC_ADD_CXXFLAGS([mod],[-I${real_mod_tree}/include])
2459     else
2460       dnl  The given mod wasn't built
2461       AC_MSG_RESULT(no)
2462       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2463     fi
2464   else
2465     AC_CHECK_HEADERS(libmodplug/modplug.h, [
2466       VLC_ADD_PLUGINS([mod])
2467       VLC_ADD_CXXFLAGS([mod],[])
2468       VLC_ADD_LDFLAGS([mod],[-lmodplug -lstdc++])])
2469   fi
2473 dnl  mpc demux plugin
2475 AC_ARG_ENABLE(mpc,
2476   [  --enable-mpc            Mpc demux support (default enabled)])
2477 if test "${enable_mpc}" != "no"
2478 then
2479   AC_CHECK_HEADERS(mpcdec/mpcdec.h, [
2480     VLC_ADD_PLUGINS([mpc])
2481     VLC_ADD_LDFLAGS([mpc],[-lmpcdec])])
2485 dnl  game music emu demux plugin
2487 AC_ARG_ENABLE(gme,
2488   [  --enable-gme            Game Music Emu demux support (default enabled)])
2489 if test "${enable_gme}" != "no" -a "${CXX}" != "";
2490 then
2491   AC_LANG_PUSH(C++)
2492   AC_ARG_WITH(gme-tree,
2493   [    --with-gme-tree=PATH gme tree for static linking])
2494   if test -n "${with_gme_tree}"
2495   then
2496     AC_MSG_CHECKING(for libgme.a in ${with_mod_tree})
2497     real_gme_tree="`cd ${with_gme_tree} 2>/dev/null && pwd`"
2498     if test -z "${real_gme_tree}"
2499     then
2500       dnl  The given directory can't be found
2501       AC_MSG_RESULT(no)
2502       AC_MSG_ERROR([cannot cd to ${with_gme_tree}])
2503     fi
2504     if test -f "${real_gme_tree}/gme/libgme.a"
2505     then
2506       dnl  Use a custom gme
2507       AC_MSG_RESULT(${real_gme_tree}/gme/libgme.a)
2508       VLC_ADD_PLUGINS([gme])
2509       VLC_ADD_LDFLAGS([gme],[${real_gme_tree}/gme/libgme.a])
2510       VLC_ADD_CXXFLAGS([gme],[-I${real_gme_tree}/gme])
2511     else
2512       dnl  The given gme wasn't built
2513       AC_MSG_RESULT(no)
2514       AC_MSG_ERROR([cannot find ${real_mod_tree}/gme/libgme.a, make sure you compiled gme in ${with_gme_tree}])
2515     fi
2516   else
2517       AC_MSG_WARN([only static linking is available, you must provide a gme-tree])
2518   fi
2519   AC_LANG_POP(C++)
2523 dnl  Codec plugins
2526 AC_ARG_WITH(,[Codec plugins:])
2529 dnl  mad plugin
2531 AC_ARG_ENABLE(mad,
2532   [  --enable-mad            libmad module (default enabled)])
2533 if test "${enable_mad}" != "no"
2534 then
2535   AC_ARG_WITH(mad,
2536     [    --with-mad=PATH       path to libmad],[],[])
2537   if test "${with_mad}" != "no" -a -n "${with_mad}"
2538   then
2539     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2540     VLC_ADD_LDFLAGS([mpgatofixed32],[-L${with_mad}/lib])
2541   fi
2543   AC_ARG_WITH(mad-tree,
2544     [    --with-mad-tree=PATH   mad tree for static linking],[],[])
2545   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2546   then
2547     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2548     if test -z "${real_mad_tree}"
2549     then
2550       dnl  The given directory can't be found
2551       AC_MSG_RESULT(no)
2552       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2553     fi
2554     dnl  Use a custom libmad
2555     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2556     if test -f ${real_mad_tree}/mad.h
2557     then
2558       AC_MSG_RESULT(yes)
2559       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2560       VLC_ADD_LDFLAGS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2561       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mpgatofixed32}"
2562       AC_CHECK_LIB(mad, mad_bit_init, [
2563         VLC_ADD_BUILTINS([mpgatofixed32])
2564         VLC_ADD_LDFLAGS([mpgatofixed32],[-lmad])
2565         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2566       ],[])
2567       LDFLAGS="${LDFLAGS_save}"
2568     else
2569       AC_MSG_RESULT(no)
2570       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2571     fi
2572   else
2573     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2574     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mpgatofixed32}"
2575     AC_CHECK_HEADERS(mad.h, ,
2576       [ AC_MSG_ERROR([Could not find libmad on your system: you may get it from http://www.underbit.com/products/mad/. Alternatively you can use --disable-mad to disable the mad plugin.]) ])
2577     AC_CHECK_LIB(mad, mad_bit_init, [
2578       VLC_ADD_PLUGINS([mpgatofixed32])
2579       VLC_ADD_LDFLAGS([mpgatofixed32],[-lmad])],
2580       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2581     CPPFLAGS="${CPPFLAGS_save}"
2582     LDFLAGS="${LDFLAGS_save}"
2583   fi
2587 dnl   libid3tag support (FIXME!!! doesn't work with new input)
2589 AC_CHECK_HEADERS(id3tag.h, [
2590   AC_CHECK_HEADERS(zlib.h, [
2591     VLC_ADD_LDFLAGS([id3tag],[-lid3tag -lz])
2592     VLC_ADD_PLUGINS([id3tag])]) ])
2595 dnl  ffmpeg decoder/demuxer plugin
2597 dnl we try to find ffmpeg using : 1- given tree 2- ffmpeg-config, 3- pkg-config
2598 dnl                             4- default place, 
2600 AC_ARG_ENABLE(ffmpeg,
2601 [  --enable-ffmpeg         ffmpeg codec (default enabled)])
2602 if test "${enable_ffmpeg}" != "no"
2603 then
2605 dnl Those options have to be here because the .pc can be bogus for ffmpeg previous nov 05
2607  AC_ARG_WITH(ffmpeg-mp3lame,
2608    [    --with-ffmpeg-mp3lame specify if ffmpeg has been compiled with mp3lame support],
2609    [
2610      if test "$with_ffmpeg_mp3lame" = "yes";    then
2611         VLC_ADD_LDFLAGS([ffmpeg],[-lmp3lame])
2612      fi])
2614  AC_ARG_WITH(ffmpeg-faac,
2615    [    --with-ffmpeg-faac    specify if ffmpeg has been compiled with faac support],
2616    [
2617      if test "$with_ffmpeg_faac" = "yes"; then
2618         VLC_ADD_LDFLAGS([ffmpeg],[-lfaac])
2619      fi])
2621  AC_ARG_WITH(ffmpeg-dts,
2622    [    --with-ffmpeg-dts     specify if ffmpeg has been compiled with dts support],
2623    [
2624      if test "$with_ffmpeg_dts" = "yes"; then
2625              LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2626              AC_CHECK_LIB(dts_pic, dts_free, 
2627                [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts_pic]) ],
2628                [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts]) ])
2629              LDFLAGS="${LDFLAGS_save}"
2630      fi])
2632  AC_ARG_WITH(ffmpeg-vorbis,
2633    [    --with-ffmpeg-vorbis    specify if ffmpeg has been compiled with vorbis support],
2634    [
2635      if test "$with_ffmpeg_vorbis" = "yes"; then
2636         VLC_ADD_LDFLAGS([ffmpeg],[-lvorbisenc -lvorbis])
2637      fi])
2639  AC_ARG_WITH(ffmpeg-theora,
2640    [    --with-ffmpeg-theora    specify if ffmpeg has been compiled with theora support],
2641    [
2642      if test "$with_ffmpeg_theora" = "yes"; then
2643         VLC_ADD_LDFLAGS([ffmpeg],[-ltheora])
2644      fi])
2646  AC_ARG_WITH(ffmpeg-ogg,
2647    [    --with-ffmpeg-ogg    specify if ffmpeg has been compiled with ogg support],
2648    [
2649      if test "$with_ffmpeg_ogg" = "yes"; then
2650         VLC_ADD_LDFLAGS([ffmpeg],[-logg])
2651      fi])
2653  AC_ARG_WITH(ffmpeg-zlib,
2654    [    --with-ffmpeg-zlib    specify if ffmpeg has been compiled with zlib support],
2655    [
2656      if test "$with_ffmpeg_zlib" = "yes"; then
2657                 VLC_ADD_LDFLAGS([ffmpeg],[-lz])
2658      fi])
2660  dnl
2661  dnl test for --with-ffmpeg-tree
2662  dnl
2663  AC_ARG_WITH(ffmpeg-tree,
2664    [    --with-ffmpeg-tree=PATH ffmpeg tree for static linking])
2666  if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
2667    AC_MSG_CHECKING(for libavcodec.a in ${with_ffmpeg_tree})
2668    real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
2669    if test -z "${real_ffmpeg_tree}"; then
2670      dnl  The given directory can't be found
2671      AC_MSG_RESULT(no)
2672      AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
2673    fi
2674    if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
2675      dnl  The given libavcodec wasn't built
2676      AC_MSG_RESULT(no)
2677      AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodec.a, make sure you compiled libavcodec in ${with_ffmpeg_tree}])
2678    fi
2679    if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
2680      if test -f "${real_ffmpeg_tree}/libavcodec/libpostproc/libpostproc.a"; then
2681        VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavcodec/libpostproc ${real_ffmpeg_tree}/libavcodec/libpostproc/libpostproc.a])        
2682      elif test -f "${real_ffmpeg_tree}/libpostproc/libpostproc.a"; then 
2683         VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libpostproc ${real_ffmpeg_tree}/libpostproc/libpostproc.a])
2684         VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}])
2685      else
2686        dnl  The given libavcodec wasn't built with --enable-pp
2687        AC_MSG_RESULT(no)
2688        AC_MSG_ERROR([cannot find libpostproc.a in ${real_ffmpeg_tree}/[libavcodec/]libpostproc/. Make sure you configured ffmpeg with --enable-pp])
2689      fi
2690    fi
2691    dnl  Use a custom libffmpeg
2692    AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodec.a)
2694    if fgrep -s "CONFIG_ZLIB=yes" "${real_ffmpeg_tree}/config.mak"; then
2695      if test "${with_ffmpeg_zlib}" != "yes"; then
2696        VLC_ADD_LDFLAGS([ffmpeg],[-lz])
2697      fi
2698    fi
2699    if fgrep -s "CONFIG_MP3LAME=yes" "${real_ffmpeg_tree}/config.mak"; then
2700      if test "${with_ffmpeg_mp3lame}" != "yes"; then
2701        VLC_ADD_LDFLAGS([ffmpeg],[-lmp3lame])
2702      fi
2703    fi
2704    if fgrep -s "CONFIG_FAAC=yes" "${real_ffmpeg_tree}/config.mak"; then
2705      if test "${with_ffmpeg_faac}" != "yes"; then
2706        VLC_ADD_LDFLAGS([ffmpeg],[-lfaac])
2707      fi
2708    fi
2709    if fgrep -s "CONFIG_DTS=yes" "${real_ffmpeg_tree}/config.mak"; then
2710      if test "${with_ffmpeg_dts}" != "yes"; then
2711        LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2712        AC_CHECK_LIB(dts_pic, dts_free, 
2713          [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts_pic]) ],
2714          [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts]) ])
2715        LDFLAGS="${LDFLAGS_save}"
2716      fi
2717    fi
2718    if fgrep -s "CONFIG_VORBIS=yes" "${real_ffmpeg_tree}/config.mak"; then
2719      VLC_ADD_LDFLAGS([ffmpeg],[-lvorbis -lvorbisenc])
2720    fi
2721    if fgrep -s "CONFIG_FAAD=yes" "${real_ffmpeg_tree}/config.mak"; then
2722      VLC_ADD_LDFLAGS([ffmpeg],[-lfaad])
2723    fi
2724    if fgrep -s "CONFIG_XVID=yes" "${real_ffmpeg_tree}/config.mak"; then
2725      VLC_ADD_LDFLAGS([ffmpeg],[-lxvidcore])
2726    fi
2728    VLC_ADD_BUILTINS([ffmpeg])
2729    if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes" ; then
2730      VLC_ADD_BUILTINS([stream_out_switcher])
2731    fi
2733    if test -f "${real_ffmpeg_tree}/libavutil/libavutil.a"; then
2734      VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavutil ${real_ffmpeg_tree}/libavutil/libavutil.a])
2735      VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavutil])
2736    fi
2738    VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavcodec ${real_ffmpeg_tree}/libavcodec/libavcodec.a])
2739    VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec])
2741    if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
2742      AC_DEFINE(HAVE_LIBAVFORMAT_TREE, 1, [Define if you have ffmpeg's libavformat.])
2743      VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavformat ${real_ffmpeg_tree}/libavformat/libavformat.a])
2744      VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavformat])
2745    fi
2746 else    
2747     
2748 dnl Look for a ffmpeg-config (we are on debian )
2750   FFMPEG_PATH="${PATH}"
2751   AC_ARG_WITH(ffmpeg-config-path,
2752     [    --with-ffmpeg-config-path=PATH ffmpeg-config path (default search in \$PATH)],
2753     [ if test "${with_ffmpeg_config_path}" != "no"
2754       then
2755         FFMPEG_PATH="${with_ffmpeg_config_path}"
2756       fi ])
2757   AC_PATH_PROG(FFMPEG_CONFIG, ffmpeg-config, no, ${FFMPEG_PATH})
2758   if test "${FFMPEG_CONFIG}" != "no"
2759   then
2760     AC_CHECK_HEADERS(ffmpeg/avcodec.h)
2761     AC_CHECK_HEADERS(ffmpeg/avformat.h)
2762     AC_CHECK_HEADERS(ffmpeg/avutil.h)
2763     AC_CHECK_HEADERS(postproc/postprocess.h)
2764     VLC_ADD_PLUGINS([ffmpeg])
2765     if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes"; then
2766         VLC_ADD_PLUGINS([stream_out_switcher])
2767     fi
2768     VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --cflags`])
2769     VLC_ADD_LDFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --plugin-libs avcodec avformat postproc`])
2771  else
2773 dnl Trying with pkg-config
2774    PKG_CHECK_MODULES(FFMPEG,[libavcodec, libavformat],
2775     [
2776      AC_CHECK_HEADERS(ffmpeg/avcodec.h)
2777      AC_CHECK_HEADERS(ffmpeg/avformat.h)
2778      AC_CHECK_HEADERS(ffmpeg/avutil.h)
2779      AC_CHECK_HEADERS(postproc/postprocess.h)
2780      if test "${SYS}" = "darwin"; then
2781         VLC_ADD_BUILTINS([ffmpeg])
2782      else
2783         VLC_ADD_PLUGINS([ffmpeg])
2784      fi
2785      if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes"; then
2786         if test "${SYS}" = "darwin"; then
2787             VLC_ADD_BUILTINS([stream_out_switcher])
2788         else
2789             VLC_ADD_PLUGINS([stream_out_switcher])
2790         fi
2791      fi
2792      VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[${FFMPEG_CFLAGS}])
2793      VLC_ADD_LDFLAGS([ffmpeg stream_out_switcher],[${FFMPEG_LIBS}])
2794      dnl newer ffmpeg have a separate libpostproc
2795      PKG_CHECK_MODULES(POSTPROC, libpostproc,[
2796        VLC_ADD_LDFLAGS([ffmpeg],[${POSTPROC_LIBS}]) 
2797        ],[ true ])
2798     ],[
2799      
2800     dnl
2801     dnl last chance: at the default place
2802     dnl
2803       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_ffmpeg}"
2804       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2805       AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] )
2806       AC_CHECK_HEADERS(ffmpeg/avformat.h)
2807       AC_CHECK_HEADERS(ffmpeg/avutil.h)
2808       AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] )
2810       AC_CHECK_LIB(avutil, av_crc_init, [
2811         VLC_ADD_LDFLAGS([ffmpeg],[-lavutil])
2812         LDAVUTIL="-lavutil"])
2814       AC_CHECK_LIB(avcodec, avcodec_init, [
2815         VLC_ADD_BUILTINS([ffmpeg])
2816         VLC_ADD_LDFLAGS([ffmpeg],[-lavcodec])
2817         if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes"; then
2818             VLC_ADD_BUILTINS([stream_out_switcher])
2819         fi],
2820          [ AC_MSG_ERROR([Could not find ffmpeg on your system: you may get it from http://ffmpeg.sf.net/ (svn version is recommended). Alternatively you can use --disable-ffmpeg to disable the ffmpeg plugins.]) ], [$LDAVUTIL])
2822       
2823       AC_CHECK_LIB(postproc, pp_postprocess, [
2824         VLC_ADD_LDFLAGS([ffmpeg],[-lpostproc])],
2825         AC_MSG_ERROR([Could not find libpostproc inside FFmpeg. You should configure FFmpeg with --enable-gpl --enable-pp.]),
2826         [$LDAVUTIL])
2828       AC_CHECK_LIB(avformat, av_open_input_stream, [
2829         VLC_ADD_LDFLAGS([ffmpeg],[-lavformat -lz]) ], [], [-lavcodec -lz $LDAVUTIL])
2830       LDFLAGS="${LDFLAGS_save}"
2831       CPPFLAGS="${CPPFLAGS_save}"
2832     ])
2833   fi
2834  fi 
2838 dnl  ffmpegaltivec plugin
2840 AC_ARG_ENABLE(ffmpegaltivec,
2841 [  --enable-ffmpegaltivec  ffmpegaltivec codec (DO NOT USE)])
2842 if test "${enable_ffmpegaltivec}" = "yes"
2843 then
2844   if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
2845     AC_MSG_CHECKING(for libavcodecaltivec.a in ${with_ffmpeg_tree})
2846     real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
2847     if test -z "${real_ffmpeg_tree}"; then
2848       dnl  The given directory can't be found
2849       AC_MSG_RESULT(no)
2850       AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
2851     fi
2852     if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
2853       dnl  The given libavcodecaltivec wasn't built
2854       AC_MSG_RESULT(no)
2855       AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a, make sure you compiled libavcodecaltivec in ${with_ffmpeg_tree}])
2856     fi
2857     if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
2858       dnl  The given libavcodecaltivec wasn't built with --enable-pp
2859       AC_MSG_RESULT(no)
2860       AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
2861     fi
2862     dnl  Use a custom libffmpeg
2863     AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a)
2864     VLC_ADD_BUILTINS([ffmpegaltivec])
2865     VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavcodec -lavcodecaltivec])
2866     VLC_ADD_CPPFLAGS([ffmpeg],[-DNO_ALTIVEC_IN_FFMPEG])
2867     VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
2869     if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
2870       AC_DEFINE(HAVE_LIBAVFORMAT_TREE, 1, [Define if you have ffmpeg's libavformat.])
2871       VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavformat -lavformataltivec -lz])
2872       VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavformat])
2873     fi
2874     VLC_ADD_LDFLAGS([stream_out_switcher],[-L${real_ffmpeg_tree}/libavcodec])
2875     VLC_ADD_CPPFLAGS([stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
2876   fi
2880 dnl  faad decoder plugin
2882 AC_ARG_ENABLE(faad,
2883 [  --enable-faad           faad codec (default disabled)])
2884 if test "${enable_faad}" = "yes"
2885 then
2886   AC_ARG_WITH(faad-tree,
2887   [    --with-faad-tree=PATH faad tree for static linking])
2888   if test -n "${with_faad_tree}"
2889   then
2890     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
2891     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
2892     if test -z "${real_faad_tree}"
2893     then
2894       dnl  The given directory can't be found
2895       AC_MSG_RESULT(no)
2896       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
2897     fi
2898     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
2899     then
2900       dnl  Use a custom faad
2901       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
2902       VLC_ADD_BUILTINS([faad])
2903       VLC_ADD_LDFLAGS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
2904       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
2905     else
2906       dnl  The given libfaad wasn't built
2907       AC_MSG_RESULT(no)
2908       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
2909     fi
2910   else
2911     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
2912     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_faad}"
2913     AC_CHECK_HEADERS(faad.h, ,
2914       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
2915     AC_CHECK_LIB(faad, faacDecOpen, [
2916       VLC_ADD_PLUGINS([faad])
2917       VLC_ADD_LDFLAGS([faad],[-lfaad]) ],
2918       AC_CHECK_LIB(faad, NeAACDecOpen, [
2919         VLC_ADD_PLUGINS([faad])
2920         VLC_ADD_LDFLAGS([faad],[-lfaad]) ],
2921         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
2922     LDFLAGS="${LDFLAGS_save}"
2923     CPPFLAGS="${CPPFLAGS_save}"
2924   fi
2928 dnl twolame encoder plugin
2930 AC_ARG_ENABLE(twolame,
2931 [  --enable-twolame        twolame codec (default disabled)])
2932 if test "${enable_twolame}" = "yes"
2933 then
2934   AC_ARG_WITH(twolame-tree,
2935   [    --with-twolame-tree=PATH twolame tree for static linking])
2936   if test -n "${with_twolame_tree}"
2937   then
2938     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
2939     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
2940     if test -z "${real_twolame_tree}"
2941     then
2942       dnl  The given directory can't be found
2943       AC_MSG_RESULT(no)
2944       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
2945     fi
2946     if test -f "${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a"
2947     then
2948       dnl  Use a custom twolame
2949       AC_MSG_RESULT(${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a)
2950       VLC_ADD_BUILTINS([twolame])
2951       VLC_ADD_LDFLAGS([twolame],[${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a])
2952       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/src/libtwolame])
2953     else
2954       dnl  The given libtwolame wasn't built
2955       AC_MSG_RESULT(no)
2956       AC_MSG_ERROR([cannot find ${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
2957     fi
2958   else
2959     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame}"
2960     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_twolame}"
2961     AC_CHECK_HEADERS(twolame.h, ,
2962       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
2963     AC_CHECK_LIB(twolame, twolame_init, [
2964       VLC_ADD_PLUGINS([twolame])
2965       VLC_ADD_LDFLAGS([twolame],[-ltwolame]) ],
2966         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
2967     LDFLAGS="${LDFLAGS_save}"  
2968     CPPFLAGS="${CPPFLAGS_save}"
2969   fi
2973 dnl  QuickTime plugin
2975 AC_ARG_ENABLE(quicktime,
2976   [  --enable-quicktime      QuickTime module (default enabled on MacOS X)])
2977 if test "${enable_quicktime}" != "no" &&
2978   (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
2979 then
2980   if test "${SYS}" = "mingw32"; then
2981     VLC_ADD_BUILTINS([quicktime])
2982   else
2983   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
2984     [ VLC_ADD_BUILTINS([quicktime])
2985       VLC_ADD_LDFLAGS([quicktime],[-framework QuickTime -framework Carbon])
2986     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
2987   fi
2991 dnl  Real plugin
2993 AC_ARG_ENABLE(real,
2994   [  --enable-real           Real audio module (default disabled)])
2995 if test "${enable_real}" = "yes"; then
2996   VLC_ADD_PLUGINS([realaudio])
3000 dnl  Real RTSP plugin
3002 AC_ARG_ENABLE(realrtsp,
3003   [  --enable-realrtsp       Real RTSP module (default disabled)])
3004 if test "${enable_realrtsp}" = "yes"; then
3005   VLC_ADD_PLUGINS([access_realrtsp])
3009 dnl MP4 module
3011 AC_CHECK_HEADERS(zlib.h, [
3012   VLC_ADD_LDFLAGS([mp4 skins2 sap mkv gme],[-lz])
3013 ] )
3015 AC_CHECK_HEADERS(sysfs/libsysfs.h, [
3016   VLC_ADD_LDFLAGS([mp4 mkv],[-lsysfs])
3017 ] )
3020 dnl skins2 module
3022 AC_CHECK_HEADERS(libtar.h, [
3023   VLC_ADD_LDFLAGS([skins2],[-ltar])
3024 ] )
3029 dnl A52/AC3 decoder plugin
3031 AC_ARG_ENABLE(a52,
3032   [  --enable-a52            A/52 support with liba52 (default enabled)])
3033 if test "${enable_a52}" != "no"
3034 then
3035   AC_ARG_WITH(a52,
3036     [    --with-a52=PATH       a52 headers and libraries])
3037   AC_ARG_WITH(a52-tree,
3038     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
3039   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
3040   then
3041     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
3042     if test -z "${real_a52_tree}"
3043     then
3044       dnl  The given directory can't be found
3045       AC_MSG_RESULT(no)
3046       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
3047     fi
3048     dnl  Use a custom a52dec
3049     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
3050     if test -f ${real_a52_tree}/include/a52.h
3051     then
3052       AC_MSG_RESULT(yes)
3053       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
3054       VLC_ADD_LDFLAGS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
3055       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_a52tofloat32}"
3056       AC_CHECK_LIB(a52, a52_free, [
3057         VLC_ADD_BUILTINS([a52tofloat32])
3058         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
3059         VLC_ADD_LDFLAGS([a52tofloat32],[-la52])
3060         ],[
3061         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
3062         then
3063           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3])
3064         else
3065           AC_MSG_ERROR([the specified tree hasn't been compiled])
3066         fi
3067       ])
3068       LDFLAGS="${LDFLAGS_save}"
3069     else
3070       AC_MSG_RESULT(no)
3071       AC_MSG_ERROR([the specified tree doesn't have a52.h])
3072     fi
3073   else
3074     if test -z "${with_a52}"
3075     then
3076       LDFLAGS_test=""
3077       CPPFLAGS_test=""
3078     else
3079       LDFLAGS_test="-L${with_a52}/lib"
3080       CPPFLAGS_test="-I${with_a52}/include"
3081     fi
3082     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
3083     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LDFLAGS_a52tofloat32}"
3084     AC_CHECK_HEADERS(a52dec/a52.h, [
3085       AC_CHECK_LIB(a52, a52_free, [
3086         VLC_ADD_PLUGINS([a52tofloat32])
3087         VLC_ADD_LDFLAGS([a52tofloat32],[${LDFLAGS_test} -la52])
3088         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
3089       ],[
3090         AC_MSG_ERROR([Could not find liba52 on your system: you may get it from http://liba52.sf.net/. Alternatively you can use --disable-a52 to disable the a52 plugin.])
3091       ])
3092     ])
3093     CPPFLAGS="${CPPFLAGS_save}"
3094     LDFLAGS="${LDFLAGS_save}"
3095   fi
3098 AC_ARG_WITH(a52-fixed,
3099       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
3100       [
3101         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
3104 dnl DTS Coherent Acoustics decoder plugin
3106 AC_ARG_ENABLE(dts,
3107   [  --enable-dts            DTS Coherent Acoustics support with libdca (default enabled)])
3108 if test "${enable_dts}" != "no"; then
3109   AC_ARG_WITH(dts-tree,
3110     [    --with-dts-tree=PATH  libdts tree for static linking ],[],[])
3111   if test "${with_dts_tree}" != "no" -a -n "${with_dts_tree}"
3112   then
3113     real_dts_tree="`cd ${with_dts_tree} 2>/dev/null && pwd`"
3114     if test -z "${real_dts_tree}"
3115     then
3116       dnl  The given directory can't be found
3117       AC_MSG_RESULT(no)
3118       AC_MSG_ERROR([${with_dts_tree} directory doesn't exist])
3119     fi
3120     dnl  Use a custom libdts
3121     AC_MSG_CHECKING(for dts.h in ${real_dts_tree}/include)
3122     if test -f ${real_dts_tree}/include/dts.h
3123     then
3124       AC_MSG_RESULT(yes)
3125       VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dts_tree}/include])
3126       VLC_ADD_LDFLAGS([dtstofloat32],[-L${real_dts_tree}/libdts])
3127       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_dtstofloat32}"
3128       AC_CHECK_LIB(dts_pic, dts_free, [
3129         VLC_ADD_PLUGINS([dtstofloat32])
3130         VLC_ADD_LDFLAGS([dtstofloat32],[-ldts_pic -lm])
3131         ],[
3132         AC_CHECK_LIB(dts, dts_free, [
3133           VLC_ADD_BUILTINS([dtstofloat32])
3134           VLC_ADD_LDFLAGS([dtstofloat32],[-ldts])
3135           ],[
3136           if test -f ${real_dts_tree}/libdts/libdts.a
3137           then
3138             AC_MSG_ERROR([make sure you have at least libdts-0.0.2])
3139           else
3140             AC_MSG_ERROR([the specified tree hasn't been compiled])
3141           fi
3142         ])
3143       ], [-lm])
3144       LDFLAGS="${LDFLAGS_save}"
3145     else
3146       AC_MSG_RESULT(no)
3147       AC_MSG_ERROR([the specified tree doesn't have dts.h])
3148     fi
3149   else
3150     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_dtstofloat32}"
3151     AC_CHECK_HEADERS(dts.h, [
3152       AC_CHECK_LIB(dts_pic, dts_free, [
3153         VLC_ADD_PLUGINS([dtstofloat32])
3154         VLC_ADD_LDFLAGS([dtstofloat32],[-ldts_pic -lm])
3155       ],[
3156         AC_CHECK_LIB(dts, dts_free, [
3157           VLC_ADD_BUILTINS([dtstofloat32])
3158           VLC_ADD_LDFLAGS([dtstofloat32],[-ldts])
3159         ],[
3160           if test "${enable_dts}" = "yes"; then
3161             AC_MSG_ERROR([Could not find libdts on your system: you may get it from http://www.videolan.org/dtsdec.html])
3162           fi
3163         ])
3164       ], [-lm])
3165     ])
3166     LDFLAGS="${LDFLAGS_save}"
3167   fi
3171 dnl  Flac plugin
3173 AC_ARG_ENABLE(flac,
3174   [  --enable-flac           flac decoder support (default disabled)])
3175 if test "${enable_flac}" = "yes"
3176 then
3177   AC_ARG_WITH(flac-tree,
3178   [    --with-flac-tree=PATH flac tree for static linking])
3179   if test -n "${with_flac_tree}"
3180   then
3181     AC_MSG_CHECKING(for libFLAC.a in ${with_flac_tree})
3182     real_flac_tree="`cd ${with_flac_tree} 2>/dev/null && pwd`"
3183     if test -z "${real_flac_tree}"
3184     then
3185       dnl  The given directory can't be found
3186       AC_MSG_RESULT(no)
3187       AC_MSG_ERROR([cannot cd to ${with_flac_tree}])
3188     fi
3189     if test -f "${real_flac_tree}/src/libFLAC/.libs/libFLAC.a"
3190     then
3191       dnl  Use a custom flac
3192       AC_MSG_RESULT(${real_flac_tree}/src/libFLAC/.libs/libFLAC.a)
3193       VLC_ADD_LDFLAGS([flacdec],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a])
3194       VLC_ADD_CFLAGS([flacdec],[-I${real_flac_tree}/include])
3195       AC_DEFINE(HAVE_FLAC_STREAM_DECODER_H, 1, [Define if you have FLAC])
3196     else
3197       dnl  The given flac wasn't built
3198       AC_MSG_RESULT(no)
3199       AC_MSG_ERROR([cannot find ${real_flac_tree}/src/libFLAC/.libs/libFLAC.a, make sure you compiled flac in ${with_flac_tree}])
3200     fi
3201   else
3202     AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
3203       VLC_ADD_LDFLAGS([flacdec],[-lFLAC])
3204      ],[])
3205   fi
3209 dnl  Libmpeg2 plugin
3211 AC_ARG_ENABLE(libmpeg2,
3212   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
3213 if test "${enable_libmpeg2}" != "no"
3214 then
3215   AC_ARG_WITH(libmpeg2-tree,
3216   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
3217   if test -n "${with_libmpeg2_tree}"
3218   then
3219     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
3220     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
3221     if test -z "${real_libmpeg2_tree}"
3222     then
3223       dnl  The given directory can't be found
3224       AC_MSG_RESULT(no)
3225       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
3226     fi
3227     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
3228     then
3229       dnl  Use a custom libmpeg2
3230       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
3231       VLC_ADD_BUILTINS([libmpeg2])
3232       VLC_ADD_LDFLAGS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
3233       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
3234       eval "`cd ${real_libmpeg2_tree}/include && ln -sf . mpeg2dec 2>/dev/null`"
3235     else
3236       dnl  The given libmpeg2 wasn't built
3237       AC_MSG_RESULT(no)
3238       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
3239     fi
3240   else
3241     AC_CHECK_HEADERS(mpeg2dec/mpeg2.h, [
3242       AC_MSG_CHECKING(for libmpeg2 version >= 0.3.2)
3243       AC_EGREP_CPP(yes,
3244         [#include <mpeg2dec/mpeg2.h>
3245          #ifdef MPEG2_RELEASE
3246          #if MPEG2_RELEASE >= MPEG2_VERSION(0,3,2)
3247          yes
3248          #endif
3249          #endif],
3250         [AC_MSG_RESULT([yes])
3251           VLC_ADD_PLUGINS([libmpeg2])
3252           VLC_ADD_LDFLAGS([libmpeg2],[-lmpeg2])],
3253         [AC_MSG_RESULT([no])
3254           AC_MSG_ERROR([Your libmpeg2 is too old (you need the cvs version): you may get a more recent one from http://libmpeg2.sf.net/. Alternatively you can use --disable-libmpeg2 to disable the libmpeg2 plugin.])])],
3256       [AC_MSG_ERROR([Could not find libmpeg2 on your system: you may get it from http://libmpeg2.sf.net/ (you need the cvs version). Alternatively you can use --disable-libmpeg2 to disable the libmpeg2 plugin.])]
3257     )
3258   fi
3262 dnl  Vorbis plugin
3264 AC_ARG_ENABLE(vorbis,
3265   [  --enable-vorbis         Vorbis decoder support (default enabled)])
3266 if test "${enable_vorbis}" != "no"
3267 then
3268   AC_ARG_WITH(vorbis-tree,
3269   [    --with-vorbis-tree=PATH vorbis tree for static linking])
3270   if test -n "${with_vorbis_tree}"
3271   then
3272     AC_MSG_CHECKING(for libvorbis.a in ${with_vorbis_tree})
3273     real_vorbis_tree="`cd ${with_vorbis_tree} 2>/dev/null && pwd`"
3274     if test -z "${real_vorbis_tree}"
3275     then
3276       dnl  The given directory can't be found
3277       AC_MSG_RESULT(no)
3278       AC_MSG_ERROR([cannot cd to ${with_vorbis_tree}])
3279     fi
3280     if test -f "${real_vorbis_tree}/lib/.libs/libvorbis.a"
3281     then
3282       dnl  Use a custom vorbis 
3283       AC_MSG_RESULT(${real_vorbis_tree}/lib/.libs/libvorbis.a)
3284       VLC_ADD_PLUGINS([vorbis])
3285       VLC_ADD_LDFLAGS([vorbis],[${real_vorbis_tree}/lib/.libs/libvorbis.a ${real_vorbis_tree}/lib/.libs/libvorbisenc.a])
3286       VLC_ADD_CFLAGS([vorbis],[-I${real_vorbis_tree}/include])
3287     else
3288       dnl  The given vorbis wasn't built
3289       AC_MSG_RESULT(no)
3290       AC_MSG_ERROR([cannot find ${real_vorbis_tree}/lib/.libs/libvorbis.a, make sure you compiled vorbis in ${with_vorbis_tree}])
3291     fi
3292   else
3293     AC_CHECK_HEADERS(vorbis/codec.h, [
3294       VLC_ADD_PLUGINS([vorbis])
3295       VLC_ADD_LDFLAGS([vorbis],[-lvorbis -logg -lm]) ],[])
3297     AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
3298       VLC_ADD_LDFLAGS([vorbis],[-lvorbisenc -lm]) ],[])
3299   fi
3303 dnl  Tremor plugin
3305 AC_ARG_ENABLE(tremor,
3306   [  --enable-tremor         Tremor decoder support (default disabled)])
3307 if test "${enable_tremor}" = "yes"
3308 then
3309   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3310     VLC_ADD_PLUGINS([tremor])
3311     VLC_ADD_LDFLAGS([tremor],[-lvorbisidec -logg])
3312    ],[])
3316 dnl  Speex plugin
3318 AC_ARG_ENABLE(speex,
3319   [  --enable-speex          Speex decoder support (default enabled)])
3320 if test "${enable_speex}" != "no"
3321 then
3322   AC_ARG_WITH(speex-tree,
3323   [    --with-speex-tree=PATH speex tree for static linking])
3324   if test -n "${with_speex_tree}"
3325   then
3326     AC_MSG_CHECKING(for libspeex.a in ${with_speex_tree})
3327     real_speex_tree="`cd ${with_speex_tree} 2>/dev/null && pwd`"
3328     if test -z "${real_speex_tree}"
3329     then
3330       dnl  The given directory can't be found
3331       AC_MSG_RESULT(no)
3332       AC_MSG_ERROR([cannot cd to ${with_speex_tree}])
3333     fi
3334     if test -f "${real_speex_tree}/libspeex/.libs/libspeex.a"
3335     then
3336       dnl  Use a custom speex
3337       AC_MSG_RESULT(${real_speex_tree}/libspeex/.libs/libspeex.a)
3338       VLC_ADD_PLUGINS([speex])
3339       VLC_ADD_LDFLAGS([speex],[${real_speex_tree}/libspeex/.libs/libspeex.a])
3340       VLC_ADD_CFLAGS([speex],[-I${real_speex_tree}/include])
3341     else
3342       dnl  The given speex wasn't built
3343       AC_MSG_RESULT(no)
3344       AC_MSG_ERROR([cannot find ${real_speex_tree}/libspeex/.libs/libspeex.a, make sure you compiled speex in ${with_speex_tree}])
3345     fi
3346   else
3347     AC_CHECK_HEADERS(speex/speex.h, [
3348       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_speex}"
3349       AC_CHECK_LIB(speex, speex_decode_int, [
3350         VLC_ADD_PLUGINS([speex])
3351         VLC_ADD_LDFLAGS([speex],[-lspeex]) ],
3352         [ AC_MSG_RESULT([no])
3353           AC_MSG_WARN([Your libspeex is too old, please get the development
3354                        version.]) ],[])
3355       LDFLAGS="${LDFLAGS_save}"
3356       ],[])
3357   fi
3361 dnl  tarkin decoder plugin
3363 AC_ARG_ENABLE(tarkin,
3364 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3365 if test "${enable_tarkin}" = "yes"
3366 then
3367   AC_ARG_WITH(tarkin-tree,
3368   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3369   if test -n "${with_tarkin_tree}"
3370   then
3371     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3372     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3373     if test -f "${real_tarkin_tree}/tarkin.o"
3374     then
3375       VLC_ADD_BUILTINS([tarkin])
3376       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3377       VLC_ADD_LDFLAGS([tarkin],[${real_tarkin_tree}/mem.o ${real_tarkin_tree}/pnm.o ${real_tarkin_tree}/wavelet.o ${real_tarkin_tree}/wavelet_xform.o ${real_tarkin_tree}/wavelet_coeff.o ${real_tarkin_tree}/yuv.o ${real_tarkin_tree}/tarkin.o ${real_tarkin_tree}/info.o -logg])
3378       AC_MSG_RESULT(yes)
3379     else
3380       dnl  The given tarkin tree wasn't built
3381       AC_MSG_RESULT(no)
3382       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3383                     make sure you compiled tarkin in ${with_tarkin_tree}])
3384     fi
3385   fi
3389 dnl  theora decoder plugin
3391 AC_ARG_ENABLE(theora,
3392 [  --enable-theora         experimental theora codec (default disabled)])
3393 if test "${enable_theora}" = "yes"
3394 then
3395   AC_CHECK_HEADERS(theora/theora.h, [
3396     AC_CHECK_LIB(theora, theora_granule_time, [
3397       VLC_ADD_PLUGINS([theora])
3398       theora_libs="-ltheora -logg"
3399       VLC_ADD_LDFLAGS([theora],[${theora_libs}]) ],[
3400       AC_MSG_ERROR([libtheora doesn't appear to be installed on your system.
3401 You also need to check that you have a libogg posterior to the 1.0 release.])],
3402       [-logg])
3403   ])
3407 dnl  dirac decoder plugin
3409 AC_ARG_ENABLE(dirac,
3410 [  --enable-dirac          experimental dirac codec (default disabled)])
3411 if test "${enable_dirac}" = "yes"; then
3412   PKG_CHECK_MODULES(DIRAC,dirac, [
3413       VLC_ADD_PLUGINS([dirac])
3414       VLC_ADD_CFLAGS([dirac],[$DIRAC_CFLAGS])
3415       VLC_ADD_LDFLAGS([dirac],[$DIRAC_LIBS -lstdc++]) ],[
3416       AC_MSG_ERROR([libdirac doesn't appear to be installed on you system.])
3417   ])
3421 dnl  PNG decoder module
3423 AC_ARG_ENABLE(png,
3424   [  --enable-png            PNG support (default enabled)])
3425 if test "${enable_png}" != "no"; then
3426 AC_CHECK_HEADERS(png.h, [
3427   LDFLAGS="${LDFLAGS_save} -lz"
3428   AC_CHECK_LIB(png, png_set_rows, [
3429     VLC_ADD_LDFLAGS([png],[-lpng -lz])
3430     VLC_ADD_PLUGINS([png])
3431     VLC_ADD_PLUGINS([osdmenu])
3432     AC_DEFINE(HAVE_LIBPNG, [], [Define if you have the PNG library: libpng])],
3433     [],[-lz])
3434   LDFLAGS="${LDFLAGS_save}"
3435   ])
3439 dnl H264 encoder plugin (using libx264)
3441 AC_ARG_ENABLE(x264,
3442   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3443 if test "${enable_x264}" != "no"; then
3444   AC_ARG_WITH(x264-tree,
3445     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3446   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3447   then
3448     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3449     if test -z "${real_x264_tree}"
3450     then
3451       dnl  The given directory can't be found
3452       AC_MSG_RESULT(no)
3453       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3454     fi
3455     dnl  Use a custom libx264
3456     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3457     if test -f ${real_x264_tree}/x264.h
3458     then
3459       AC_MSG_RESULT(yes)
3460       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3461       VLC_ADD_LDFLAGS([x264],[-L${real_x264_tree}])
3462       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264} ${THREAD_LIB}"
3463       AC_CHECK_LIB(x264, x264_encoder_open, [
3464         VLC_ADD_BUILTINS([x264])
3465         VLC_ADD_LDFLAGS([x264],[-lx264])
3466       ],[
3467         AC_MSG_ERROR([the specified tree hasn't been compiled])
3468       ])
3469       LDFLAGS="${LDFLAGS_save}"
3470     else
3471       AC_MSG_RESULT(no)
3472       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3473     fi
3474   else
3475     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264} ${THREAD_LIB}"
3476     AC_CHECK_HEADERS(x264.h, [
3477       AC_CHECK_LIB(x264, x264_encoder_open, [
3478         VLC_ADD_PLUGINS([x264])
3479         VLC_ADD_LDFLAGS([x264],[-lx264])
3480       ],[
3481         if test "${enable_x264}" = "yes"; then
3482             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
3483           fi
3484       ])
3485     ])
3486     LDFLAGS="${LDFLAGS_save}"
3487   fi
3491 dnl  CMML plugin
3493 AC_ARG_ENABLE(cmml,
3494   [  --enable-cmml           CMML support (default enabled)])
3495 if test "${enable_cmml}" != "no"
3496 then
3497   VLC_ADD_PLUGINS([cmml])
3502 dnl  Video plugins
3505 AC_ARG_WITH(,[Video plugins:])
3507 dnl Check for DPMS
3508 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
3509   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3510   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
3511     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
3512     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
3513       AC_MSG_RESULT(yes)
3514       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
3515                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
3516     ],[
3517       AC_MSG_RESULT(no)
3518     ])
3519   ],,[
3520     #include <X11/Xlib.h>
3521   ])
3522   CPPFLAGS="${CPPFLAGS_save}"
3526 dnl  X11 module
3527 dnl  (enabled by default except on win32)
3529 AC_ARG_ENABLE(x11,
3530   [  --enable-x11            X11 support (default enabled)])
3531 if test "${enable_x11}" != "no" &&
3532   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3533    test "${enable_x11}" = "yes"); then
3534   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3535   AC_CHECK_HEADERS(X11/Xlib.h, [
3536     VLC_ADD_PLUGINS([x11 panoramix])
3537     VLC_ADD_LDFLAGS([x11 panoramix],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
3538     VLC_ADD_CPPFLAGS([x11 panoramix],[${X_CFLAGS}])
3539   ])
3540   CPPFLAGS="${CPPFLAGS_save}"
3544 dnl  XVideo module
3545 dnl  (enabled by default except on win32)
3547 AC_ARG_ENABLE(xvideo,
3548   [  --enable-xvideo         XVideo support (default enabled)])
3549 if test "${enable_xvideo}" != "no" &&
3550   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3551    test "${enable_xvideo}" = "yes"); then
3552   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3553   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
3554     CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3555     AC_CHECK_LIB(Xv,XvPutImage,[
3556       # If libXv.so is available, xvideo can be a plugin. Otherwise, we
3557       # test for libXv_pic.
3558       if test -f /usr/X11R6/lib/libXv.so -o -f /usr/lib/libXv.so -o -f "${x_libraries}"/libXv.so; then
3559         VLC_ADD_PLUGINS([xvideo])
3560         VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3561         VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3562       else
3563         AC_CHECK_LIB(Xv_pic,XvPutImage,[
3564           VLC_ADD_PLUGINS([xvideo])
3565           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3566           VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv_pic])
3567         ],[
3568           VLC_ADD_BUILTINS([xvideo])
3569           VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3570           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3571         ])
3572       fi
3573     ])
3574     CFLAGS="${CFLAGS_save}"
3575   ]
3576   CPPFLAGS="${CPPFLAGS_save}")
3580 dnl  GLX module
3581 dnl  (enabled by default except on win32)
3583 AC_ARG_ENABLE(glx,
3584   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)])
3585 if test "${enable_glx}" != "no" &&
3586   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3587    test "${enable_glx}" = "yes"); then
3588   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3589   AC_CHECK_HEADERS(X11/Xlib.h GL/glu.h GL/glx.h, [
3590       VLC_ADD_PLUGINS([glx])
3591       VLC_ADD_LDFLAGS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU])
3592       VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}])
3593    ])
3594   CPPFLAGS="${CPPFLAGS_save}"
3598 dnl  XVMC module
3599 dnl  (enabled by default except on win32)
3601 AC_ARG_ENABLE(xvmc,
3602   [  --enable-xvmc            XVMC support (default disabled)])
3603 if test "${enable_xvmc}" = "yes" &&
3604   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3605    test "${enable_xvmc}" = "yes"); then
3606   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3607   AC_CHECK_HEADERS(X11/extensions/vldXvMC.h, [
3608     VLC_ADD_PLUGINS([xvmc])
3609     VLC_ADD_LDFLAGS([xvmc],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
3610     VLC_ADD_CPPFLAGS([xvmc],[${X_CFLAGS}])
3611   ])
3612   CPPFLAGS="${CPPFLAGS_save}"
3616 dnl  Check for the Xinerama extension
3618 AC_ARG_ENABLE(xinerama,
3619   [  --enable-xinerama       Xinerama support (default enabled)])
3620 if test "${enable_xvideo}" != "no" && test "${enable_xinerama}" != "no" &&
3621   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3622    test "${enable_xvideo}" = "yes"); then
3623   ac_cv_have_xinerama="no"
3624   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3625   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3626   AC_CHECK_HEADERS(X11/extensions/Xinerama.h,[
3627     AC_CHECK_LIB(Xinerama_pic, XineramaQueryExtension,[
3628       VLC_ADD_LDFLAGS([xvideo],[-lXinerama_pic])
3629       VLC_ADD_LDFLAGS([x11],[-lXinerama_pic])
3630       VLC_ADD_LDFLAGS([glx],[-lXinerama_pic])
3631       ac_cv_have_xinerama="yes"
3632     ],[
3633       AC_CHECK_LIB(Xinerama, XineramaQueryExtension,[
3634         VLC_ADD_LDFLAGS([xvideo],[-lXinerama])
3635         VLC_ADD_LDFLAGS([x11],[-lXinerama])
3636         VLC_ADD_LDFLAGS([glx],[-lXinerama])
3637         ac_cv_have_xinerama="yes"
3638       ])
3639     ])
3640   ])
3641   if test "${ac_cv_have_xinerama}" = "yes"; then
3642     AC_DEFINE(HAVE_XINERAMA, 1, [Define this if you have libXinerama installed])
3643   fi
3644   CFLAGS="${CFLAGS_save}"
3645   CPPFLAGS="${CPPFLAGS_save}"
3648 dnl  Check for XF86VidMode extension
3650   ac_cv_have_xf86vidmode="no"
3651   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3652   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3653   AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,[
3654     AC_CHECK_LIB(Xxf86vm_pic, XF86VidModeGetViewPort,[
3655       VLC_ADD_LDFLAGS([xvideo],[-lXxf86vm_pic])
3656       VLC_ADD_LDFLAGS([x11],[-lXxf86vm_pic])
3657       VLC_ADD_LDFLAGS([glx],[-lXxf86vm_pic])
3658       ac_cv_have_xf86vidmode="yes"
3659     ],[
3660       AC_CHECK_LIB(Xxf86vm, XF86VidModeGetViewPort,[
3661         VLC_ADD_LDFLAGS([xvideo],[-lXxf86vm])
3662         VLC_ADD_LDFLAGS([x11],[-lXxf86vm])
3663         VLC_ADD_LDFLAGS([glx],[-lXxf86vm])
3664         ac_cv_have_xf86vidmode="yes"
3665       ])
3666     ])
3667   ],[true],
3668 [#ifdef HAVE_X11_XLIB_H
3669 # include <X11/Xlib.h>
3670 #endif]
3671    )
3672   AS_IF([test "${ac_cv_have_xf86vidmode}" = "yes"],
3673     [AC_DEFINE(HAVE_XF86VIDMODE, 1, [Define this if you have libXxf86vm installed])
3674   ])
3675   CFLAGS="${CFLAGS_save}"
3676   CPPFLAGS="${CPPFLAGS_save}"
3681 dnl  OpenGL module
3682 dnl  (enabled by default except on beos)
3684 AC_ARG_ENABLE(opengl,
3685   [  --enable-opengl         OpenGL support (default enabled)])
3686 if test "${enable_opengl}" != "no" &&
3687    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
3688   if test "${SYS}" != "darwin"; then
3689     AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
3690       VLC_ADD_PLUGINS([opengl])
3691       if test "${SYS}" != "mingw32"; then
3692         VLC_ADD_LDFLAGS([opengl],[${X_LIBS} -lGL -lGLU])
3693       else
3694         VLC_ADD_LDFLAGS([opengl],[-lopengl32 -lglu32])
3695       fi
3696     ])
3697   else
3698     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
3699     VLC_ADD_PLUGINS([opengl])
3700     VLC_ADD_LDFLAGS([opengl],[-framework OpenGL])
3701   fi
3705 dnl  SDL module
3707 AC_ARG_ENABLE(sdl,
3708   [  --enable-sdl            SDL support (default enabled)])
3709 if test "${enable_sdl}" != "no"
3710 then
3711   SDL_PATH="${PATH}"
3712   AC_ARG_WITH(sdl-config-path,
3713     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
3714     [ if test "${with_sdl_config_path}" != "no"
3715       then
3716         SDL_PATH="${with_sdl_config_path}:${PATH}"
3717       fi ])
3718   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
3719   SDL_CONFIG="${SDL12_CONFIG}"
3720   SDL_HEADER="SDL12/SDL.h"
3721   SDL_IMAGE="SDL12/SDL_image.h"
3722   if test "${SDL_CONFIG}" = "no"
3723   then
3724     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
3725     SDL_CONFIG=${SDL11_CONFIG}
3726     SDL_HEADER="SDL11/SDL.h"
3727     SDL_IMAGE="SDL11/SDL_image.h"
3728   fi
3729   if test "${SDL_CONFIG}" = "no"
3730   then
3731     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
3732     SDL_HEADER="SDL/SDL.h"
3733     SDL_IMAGE="SDL/SDL_image.h"
3734   fi
3735   # check for cross-compiling
3736   SDL_PREFIX=
3737   AC_ARG_WITH(sdl-prefix,
3738     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
3739                                e.g use as:
3740                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
3741   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
3742   then
3743     SDL_PREFIX="--prefix=${with_sdl_prefix}"
3744   fi
3745   if test "${SDL_CONFIG}" != "no"
3746   then
3747     # SDL on Darwin is heavily patched and can only run SDL_image
3748     if test "${SYS}" != "darwin" -a "${SYS}" != "mingw32"; then
3749       VLC_ADD_PLUGINS([vout_sdl aout_sdl])
3750     fi
3751     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
3752     VLC_ADD_LDFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
3753     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
3754     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
3755       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
3756       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
3757           As a last resort we also test for SDL.h presence),
3758       [ AC_MSG_ERROR([The development package for SDL is not installed.
3759 Please install it and try again. Alternatively you can also configure with
3760 --disable-sdl.])
3761       ])])
3762     AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
3763       <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
3764       VLC_ADD_PLUGINS([sdl_image])
3765       AC_CHECK_LIB(png, png_set_rows,
3766         [VLC_ADD_LDFLAGS([sdl_image],[-lpng -lz])],[],[-lz])
3767       AC_CHECK_LIB(jpeg, jpeg_start_decompress,
3768         [VLC_ADD_LDFLAGS([sdl_image],[-ljpeg])])
3769       AC_CHECK_LIB(tiff, TIFFClientOpen,
3770         [VLC_ADD_LDFLAGS([sdl_image],[-ltiff])])
3771       VLC_ADD_LDFLAGS([sdl_image], [-lSDL_image])],
3772       [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
3773           As a last resort we also test for SDL_image.h presence),
3774       [ AC_MSG_WARN([The development package for SDL_image is not installed.
3775 You should install it alongside your SDL package.])
3776       ])])
3777     CPPFLAGS="${CPPFLAGS_save}"
3778     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
3779     then
3780       AC_MSG_ERROR([The development package for SDL is not installed.
3781 Please install it and try again. Alternatively you can also configure with
3782 --disable-sdl.])
3783     fi
3785   elif test "${enable_sdl}" =  "yes"
3786   then
3787     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
3788 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
3789     ])
3790   fi
3794 dnl  freetype module
3796 AC_ARG_ENABLE(freetype,
3797   [  --enable-freetype       freetype support (default enabled)])
3798 AC_ARG_ENABLE(fribidi,
3799   [  --enable-fribidi        fribidi support (default enabled)])
3800 if test "${enable_freetype}" != "no"
3801 then
3802   FREETYPE_PATH="${PATH}"
3803   AC_ARG_WITH(freetype-config-path,
3804     [    --with-freetype-config-path=PATH freetype-config path (default search in \$PATH)],
3805     [ if test "${with_freetype_config_path}" != "no"
3806       then
3807         FREETYPE_PATH="${with_freetype_config_path}:${PATH}"
3808       fi ])
3809   AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no, ${FREETYPE_PATH})
3811   if test "${FREETYPE_CONFIG}" != "no"
3812   then
3813     VLC_ADD_PLUGINS([freetype])
3814     VLC_ADD_CFLAGS([freetype],[`${FREETYPE_CONFIG} --cflags`])
3815     VLC_ADD_LDFLAGS([freetype],[`${FREETYPE_CONFIG} --libs`])
3816     AC_CHECK_HEADERS(Carbon/Carbon.h,
3817       [VLC_ADD_LDFLAGS([freetype],[-framework Carbon])])
3818   elif test "${enable_freetype}" =  "yes"
3819   then
3820     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
3821 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
3822     ])
3823   fi
3825   dnl fribidi support
3826   if test "${enable_fribidi}" != "no"
3827   then
3828     FRIBIDI_PATH="${PATH}"
3829     AC_ARG_WITH(fribidi-config-path,
3830       [    --with-fribidi-config-path=PATH fribidi-config path (default search in \$PATH)],
3831       [ if test "${with_fribidi_config_path}" != "no"
3832         then
3833           FRIBIDI_PATH="${with_fribidi_config_path}:${PATH}"
3834         fi ])
3835     AC_PATH_PROG(FRIBIDI_CONFIG, fribidi-config, no, ${FRIBIDI_PATH})
3837     if test "${FRIBIDI_CONFIG}" != "no"
3838     then
3839       VLC_ADD_CFLAGS([freetype], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
3840       VLC_ADD_CPPFLAGS([skins2], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
3841       VLC_ADD_LDFLAGS([freetype], [`${FRIBIDI_CONFIG} --libs`])
3842       VLC_ADD_LDFLAGS([skins2], [`${FRIBIDI_CONFIG} --libs`])
3843     fi
3844   fi
3848 dnl  libxml2 module
3850 AC_ARG_ENABLE(libxml2,
3851   [  --enable-libxml2        libxml2 support (default enabled)])
3852 if test "${enable_libxml2}" != "no"
3853 then
3854   XML2_PATH="${PATH}"
3855   AC_ARG_WITH(xml2-config-path,
3856     [    --with-xml2-config-path=PATH xml2-config path (default search in \$PATH)],
3857     [ if test "${with_xml2_config_path}" != "no"; then
3858         XML2_PATH="${with_xml2_config_path}:${PATH}"
3859       fi ])
3860   AC_PATH_PROG(XML2_CONFIG, xml2-config, no, ${XML2_PATH})
3861   if test "${XML2_CONFIG}" != "no"; then
3862     VLC_ADD_CPPFLAGS([xml],[`${XML2_CONFIG} --cflags`])
3863     VLC_ADD_LDFLAGS([xml],[`${XML2_CONFIG} --libs`])
3864     dnl depends on the xmlTextReader extension
3865     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_xml}"
3866     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_xml}"
3867     AC_CHECK_LIB(xml2,xmlTextReaderConstName,[
3868       AC_EGREP_HEADER(xmlTextReaderConstName,libxml/xmlreader.h,[
3869         VLC_ADD_PLUGINS([xml]) ],[
3870           AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
3871           if test "${enable_xml2}" = "yes"; then
3872             AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
3873           fi])
3874        ],[
3875       AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
3876       if test "${enable_xml2}" = "yes"; then
3877         AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
3878       fi])
3879     LDFLAGS="${LDFLAGS_save}"
3880     CPPFLAGS="${CPPFLAGS_save}"
3881   else
3882     if test "${enable_xml2}" = "yes"; then
3883       AC_MSG_ERROR([Could not find libxml2])
3884     fi
3885   fi
3889 dnl  SVG module
3891 AC_ARG_ENABLE(svg,
3892   [  --enable-svg            SVG support (default disabled)])
3893 if test "${enable_svg}" = "yes"
3894 then
3895   PKG_CHECK_MODULES(SVG, 
3896         librsvg-2.0 >= 2.9.0,
3897         [
3898           VLC_ADD_LDFLAGS([svg],[$SVG_LIBS])
3899           VLC_ADD_CFLAGS([svg],[$SVG_CFLAGS])
3900           VLC_ADD_PLUGINS([svg]) ],
3901         [AC_MSG_WARN(SVG library not found)])
3905 dnl Snapshot vout module (with cache)
3907 AC_ARG_ENABLE(snapshot,
3908   [  --enable-snapshot       snapshot module (default disabled)])
3909 if test "${enable_snapshot}" = "yes"
3910 then
3911   VLC_ADD_PLUGINS([snapshot])
3915 dnl  Qt Embedded module
3916 dnl  (disabled by default)
3918 AC_ARG_ENABLE(qte,
3919   [  --enable-qte            QT Embedded support (default disabled)])
3920 if test "${enable_qte}" = "yes"
3921 then
3922   AC_ARG_WITH(qte,
3923   [    --with-qte=PATH       Qt Embedded headers and libraries])
3924   if test "${with_qte}" != "no" -a -n "${with_qte}"
3925   then
3926     VLC_ADD_LDFLAGS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3927     VLC_ADD_CXXFLAGS([qte],[-I${with_qte}/include `echo -I${with_qte}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
3928   else
3929     VLC_ADD_LDFLAGS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3930     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
3931   fi
3932   VLC_ADD_PLUGINS([qte])
3933   NEED_QTE_MAIN=yes
3934   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
3935   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
3936     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
3937   ] )
3938   CPPFLAGS="${CPPFLAGS_save}"
3942 dnl  Qt Video output module
3943 dnl  (disabled by default)
3945 dnl AC_ARG_ENABLE(qt_video,
3946 dnl   [  --enable-qt_video            QT Video Output support (default disabled)])
3947 dnl if test "${enable_qt_video}" = "yes"
3948 dnl then
3949 dnl  VLC_ADD_PLUGINS([qt_video])
3950 dnl  VLC_ADD_LDFLAGS([qt_video],[-L${QTDIR}/lib])
3951 dnl  LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt_video}"
3952 dnl   AC_CHECK_LIB(qt-mt,main,[
3953 dnl    VLC_ADD_LDFLAGS([qt_video],[-lqt-mt])
3954 dnl  ],[
3955 dnl    AC_CHECK_LIB(qt,main,[
3956 dnl      VLC_ADD_LDFLAGS([qt_video],[-lqt])
3957 dnl    ])
3958 dnl  ])
3959 dnl  NEED_QTE_MAIN=yes
3960 dnl  LDFLAGS="${LDFLAGS_save}"
3961 dnl  VLC_ADD_CXXFLAGS([qt_video],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
3962 dnl fi
3965 dnl Roku HD1000 Video output module
3967 AC_ARG_ENABLE(hd1000v,
3968   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
3969 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
3970   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3971    test "${enable_hd1000v}" = "yes"); then
3972   AC_LANG_PUSH([C++])
3973   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
3974   [
3975     can_build_roku="yes"
3976   ],
3977   [
3978     can_build_roku="no"
3979     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
3980   ])
3981   if test "$can_build_roku" = "yes"
3982   then
3983     VLC_ADD_PLUGINS([hd1000v])
3984     VLC_ADD_LDFLAGS([hd1000v],[-lCascade -ldvbpsi -lmad])
3985   fi
3986   AC_LANG_POP([C++])
3990 dnl  Windows DirectX module
3993 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
3994 then
3995   VLC_ADD_PLUGINS([panoramix])
3998 AC_ARG_ENABLE(directx,
3999   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
4000 if test "${enable_directx}" != "no"
4001 then
4002   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4003   then
4004     AC_ARG_WITH(directx,
4005     [    --with-directx=PATH   Win32 DirectX headers])
4006     if test -z "${with_directx}"
4007     then
4008       AC_CHECK_HEADERS(ddraw.h,
4009       [ VLC_ADD_PLUGINS([vout_directx aout_directx])
4010         VLC_ADD_LDFLAGS([vout_directx],[-lgdi32])
4011       ])
4012       AC_CHECK_HEADERS(GL/gl.h,
4013       [ VLC_ADD_PLUGINS([glwin32])
4014         VLC_ADD_LDFLAGS([glwin32],[-lopengl32 -lgdi32])
4015       ])
4016       AC_CHECK_HEADERS(d3d9.h,
4017       [ VLC_ADD_PLUGINS([direct3d])
4018         VLC_ADD_LDFLAGS([direct3d],[-ld3d9 -lgdi32])
4019       ])
4020     else
4021       AC_MSG_CHECKING(for directX headers in ${with_directx})
4022       if test -f ${with_directx}/ddraw.h
4023       then
4024         VLC_ADD_PLUGINS([vout_directx aout_directx])
4025         VLC_ADD_CPPFLAGS([vout_directx aout_directx],[-I${with_directx}])
4026         VLC_ADD_LDFLAGS([vout_directx],[-lgdi32])
4027         AC_MSG_RESULT(yes)
4028       else
4029         AC_MSG_RESULT(no)
4030         AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
4031       fi
4032     fi
4033   fi
4037 dnl  Linux framebuffer module
4039 AC_ARG_ENABLE(fb,
4040   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
4041     if test "${enable_fb}" != "no"
4042     then
4043       AC_CHECK_HEADERS(linux/fb.h, [
4044         VLC_ADD_PLUGINS([fb])
4045       ])
4046     fi
4049 dnl  Linux MGA module
4051 AC_ARG_ENABLE(mga,
4052   [  --enable-mga            Linux kernel Matrox support (default disabled)],
4053   [ if test "${enable_mga}" = "yes"
4054     then
4055       VLC_ADD_PLUGINS([mga])
4056     fi ])
4059 dnl  SVGAlib module
4061 AC_ARG_ENABLE(svgalib,
4062   [  --enable-svgalib        SVGAlib support (default disabled)])
4063 if test "${enable_svgalib}" = "yes"
4064 then
4065   VLC_ADD_PLUGINS([svgalib])
4066   VLC_ADD_LDFLAGS([svgalib],[-lvgagl -lvga])
4070 dnl  DirectFB module
4072 AC_ARG_ENABLE(directfb,
4073   [  --enable-directfb       DirectFB support (default disabled)])
4074 if test "${enable_directfb}" = "yes"
4075 then
4076   if test "${with_directfb}" = "no"
4077   then
4078     AC_CHECK_HEADER(directfb.h, have_directfb="true", have_directfb="false")
4079     if test "${have_directfb}"= "true"
4080     then
4081         VLC_ADD_PLUGINS([directfb])
4082         VLC_ADD_LDFLAGS([directfb],[-ldirectfb -lfusion -ldirect -lpthread -ljpeg -lz -ldl])
4083         VLC_ADD_CPPFLAGS([directfb],[-I/usr/include/directfb -D_REENTRANT])
4084     else
4085         AC_MSG_ERROR([cannot find /usr/include/directfb headers, make sure directfb is installed on your system or use --disable-directfb])
4086     fi
4087   else
4088     CPPFLAGS_save="${CPPFLAGS}"
4089     CPPFLAGS="${CPPFLAGS} -I${with_directfb}/include"
4090     AC_CHECK_HEADER(directfb.h, have_directfb="true", have_directfb="false")
4091     CPPFLAGS="${CPPFLAGS_save}"
4092     AC_ARG_WITH(directfb,
4093         [    --with-directfb=PATH  path to directfb],
4094         [ if test "${with_directfb}" != "no" -a -n "${with_directfb}"
4095         then
4096             VLC_ADD_PLUGINS([directfb])
4097             VLC_ADD_CPPFLAGS([directfb],[-I${with_directfb}/include -D_REENTRANT])
4098             VLC_ADD_LDFLAGS([directfb],[-L${with_directfb}/lib -ldirectfb -lfusion -ldirect -lpthread -ljpeg -lz -ldl])
4099         fi ],
4100         [ AC_MSG_ERROR([cannot find directfb headers in ${with_directfb}/include]) ])
4101   fi
4105 dnl  GGI module
4107 AC_ARG_ENABLE(ggi,
4108   [  --enable-ggi            GGI support (default disabled)])
4109 if test "${enable_ggi}" = "yes"
4110 then
4111   VLC_ADD_PLUGINS([ggi])
4112   VLC_ADD_LDFLAGS([ggi],[-lggi])
4113   AC_ARG_WITH(ggi,
4114     [    --with-ggi=PATH       path to libggi],
4115     [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
4116       then
4117         VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
4118         VLC_ADD_LDFLAGS([ggi],[-L${with_ggi}/lib])
4119       fi ])
4123 dnl  Glide module
4125 AC_ARG_ENABLE(glide,
4126   [  --enable-glide          Glide (3dfx) support (default disabled)])
4127 if test "${enable_glide}" = "yes"
4128 then
4129   CFLAGS_save="${CFLAGS}"
4130   AC_ARG_WITH(glide,
4131     [    --with-glide=PATH     path to libglide],
4132     [ if test "${with_glide}" != "no" -a -n "${with_glide}"
4133       then
4134         VLC_ADD_CPPFLAGS([glide],[-I${with_glide}/include])
4135         VLC_ADD_LDFLAGS([glide],[-L${with_glide}/lib])
4136         CFLAGS="$CFLAGS -I${with_glide}/include"
4137     fi ])
4138    CFLAGS="$CFLAGS -I/usr/include/glide"
4139    AC_CHECK_HEADER(glide.h,[   
4140       VLC_ADD_PLUGINS([glide])
4141       VLC_ADD_LDFLAGS([glide],[-lglide2x -lm])
4142       VLC_ADD_CPPFLAGS([glide],[-I/usr/include/glide])
4143     ],[
4144       AC_MSG_ERROR([You don't have libglide. Install it or do not use --enable-glide])
4145      ])
4146    CFAGS="${CFLAGS_save}"
4150 dnl  AA plugin
4152 AC_ARG_ENABLE(aa,
4153   [  --enable-aa             aalib output (default disabled)])
4154 if test "${enable_aa}" = "yes"
4155 then
4156   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
4157   if test "${have_aa}" = "true"
4158   then
4159     VLC_ADD_PLUGINS([aa])
4160     VLC_ADD_LDFLAGS([aa],[-laa])
4161   fi
4165 dnl  libcaca plugin
4167 AC_ARG_ENABLE(caca,
4168   [  --enable-caca           libcaca output (default disabled)])
4169 if test "${enable_caca}" = "yes"
4170 then
4171   CACA_PATH="${PATH}"
4172   AC_ARG_WITH(caca-config-path,
4173     [    --with-caca-config-path=PATH caca-config path (default search in \$PATH)],
4174     [ if test "${with_caca_config_path}" != "no"
4175       then
4176         CACA_PATH="${with_caca_config_path}:${PATH}"
4177       fi ])
4178   AC_PATH_PROG(CACA_CONFIG, caca-config, no, ${CACA_PATH})
4179   if test "${CACA_CONFIG}" != "no"
4180   then
4181     VLC_ADD_PLUGINS([caca])
4182     VLC_ADD_CFLAGS([caca],[`${CACA_CONFIG} --cflags`])
4183     VLC_ADD_LDFLAGS([caca],[`${CACA_CONFIG} --plugin-libs`])
4184   fi
4188 dnl  win32 GDI plugin
4190 AC_ARG_ENABLE(wingdi,
4191   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
4192 if test "${enable_wingdi}" != "no"; then
4193   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4194     VLC_ADD_PLUGINS([wingdi])
4195     VLC_ADD_LDFLAGS([wingdi],[-lgdi32])
4196   fi
4197   if test "${SYS}" = "mingwce"; then
4198     VLC_ADD_PLUGINS([wingdi wingapi])
4199   fi
4203 dnl  Audio plugins
4206 AC_ARG_WITH(,[Audio plugins:])
4209 dnl  OSS /dev/dsp module (enabled by default except on win32)
4211 AC_ARG_ENABLE(oss,
4212   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
4214 if test "${enable_oss}" != "no" &&
4215   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4216    test "${enable_oss}" = "yes")
4217 then
4218   AC_CHECK_HEADERS(soundcard.h sys/soundcard.h machine/soundcard.h, [
4219     VLC_ADD_PLUGINS([oss])
4220     AC_CHECK_LIB(ossaudio,main,VLC_ADD_LDFLAGS([oss],[-lossaudio]))
4221   ])
4225 dnl  Esound module
4227 AC_ARG_ENABLE(esd,
4228   [  --enable-esd            Esound library support (default disabled)],
4229   [if test "${enable_esd}" = "yes"
4230    then
4231      AC_PATH_PROG(ESD_CONFIG, esd-config, no)
4232      if test "${ESD_CONFIG}" != "no"
4233      then
4234        VLC_ADD_PLUGINS([esd])
4235        VLC_ADD_CFLAGS([esd],[`${ESD_CONFIG} --cflags`])
4236        VLC_ADD_LDFLAGS([esd],[`${ESD_CONFIG} --libs`])
4237      fi
4238    fi])
4241 dnl  Portaudio module
4243 AC_ARG_ENABLE(portaudio,
4244   [  --enable-portaudio      Portaudio library support (default disabled)],
4245   [if test "${enable_portaudio}" = "yes"
4246    then
4247      VLC_ADD_PLUGINS([portaudio])
4248      VLC_ADD_CXXFLAGS([portaudio],[])
4249      if test "${SYS}" = "mingw32"; then
4250         VLC_ADD_LDFLAGS([portaudio],[-lportaudio -lwinmm -lole32])
4251      else
4252         VLC_ADD_LDFLAGS([portaudio],[-lportaudio])
4253      fi
4254    fi])
4257 dnl  aRts module -- broken (freeze wxWidgets)
4259 AC_ARG_ENABLE(arts,
4260  [  --enable-arts           aRts sound server (default disabled)],
4261  [if test "${enable_arts}" = "yes"
4262   then
4263     AC_PATH_PROG(ARTS_CONFIG, artsc-config, no)
4264     if test "${ARTS_CONFIG}" != "no"
4265     then
4266       VLC_ADD_PLUGINS([arts])
4267       VLC_ADD_CFLAGS([arts],[`${ARTS_CONFIG} --cflags`])
4268       VLC_ADD_LDFLAGS([arts],[`${ARTS_CONFIG} --libs `])
4269     fi
4270   fi])
4273 dnl  ALSA module
4275 AC_ARG_ENABLE(alsa,
4276   [  --enable-alsa           ALSA sound support for Linux (default enabled)])
4277 if test "${enable_alsa}" != "no"
4278 then
4279   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
4280   if test "${have_alsa}" = "true"
4281   then
4282     CFLAGS="${CFLAGS_save}"
4283     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
4284                     #define ALSA_PCM_NEW_SW_PARAMS_API
4285                     #include <alsa/asoundlib.h>],
4286        [snd_pcm_hw_params_get_period_time(0,0,0);],
4287         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
4288     VLC_ADD_PLUGINS([alsa])
4289     VLC_ADD_LDFLAGS([alsa],[-lasound -lm -ldl])
4290   else
4291     if test "${enable_alsa}" = "yes"; then
4292       AC_MSG_ERROR([Could not find ALSA development headers])
4293     fi
4294   fi
4298 dnl  win32 waveOut plugin
4300 AC_ARG_ENABLE(waveout,
4301   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
4302 if test "${enable_waveout}" != "no"; then
4303   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4304     VLC_ADD_PLUGINS([waveout])
4305     VLC_ADD_LDFLAGS([waveout],[-lwinmm])
4306   fi
4307   if test "${SYS}" = "mingwce"; then
4308     VLC_ADD_PLUGINS([waveout])
4309   fi
4313 dnl  CoreAudio plugin
4315 AC_ARG_ENABLE(macosx-audio,
4316   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
4317 if test "${enable_macosx-audio}" != "no" &&
4318   (test "${SYS}" = "darwin" || test "${enable_macosx-audio}" = "yes")
4319 then
4320   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h, 
4321     [ VLC_ADD_BUILTINS([auhal])
4322       VLC_ADD_LDFLAGS([auhal],[-framework CoreAudio -framework AudioUnit -framework AudioToolbox])
4323     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
4327 dnl  Roku HD1000 audio
4329 AC_ARG_ENABLE(hd1000a,
4330   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
4331 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
4332   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4333    test "${enable_hd1000a}" = "yes")
4334 then
4335   AC_LANG_PUSH([C++])
4336   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
4337     VLC_ADD_PLUGINS([hd1000a])
4338     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LDFLAGS([hd1000a],[-lHDMachineX225]))  ])
4339   AC_LANG_POP([C++])
4343 dnl  JACK module
4345 AC_ARG_ENABLE(jack,
4346  [  --enable-jack           JACK audio module (default disabled)],
4347  [if test "${enable_jack}" = "yes"
4348   then
4349     AC_CHECK_HEADERS(jack/jack.h, [
4350       VLC_ADD_PLUGINS([jack])
4351       VLC_ADD_LDFLAGS([jack],[-ljack]) ])
4352   fi])
4355 dnl  CyberLink for C++ UPnP stack
4357 AC_ARG_ENABLE(cyberlink,
4358   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
4359   AS_IF([test "${enable_cyberlink}" = "yes" ], [
4360   AC_ARG_WITH(cyberlink-tree,
4361     [    --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
4363   dnl
4364   dnl test for --with-cyberlink-tree
4365   dnl
4366   AS_IF([test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""], [
4367     AC_LANG_PUSH(C++)
4368     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
4369     AS_IF([test -z "${real_cyberlink_tree}"], [
4370       dnl  The given directory can't be found
4371       AC_MSG_RESULT(no)
4372       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
4373     ])
4374     CPPFLAGS_save="${CPPFLAGS}"
4375     CPPFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
4376     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_cyberlink}"
4377     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
4378       [ VLC_ADD_CXXFLAGS([upnp_cc], [${CPPFLAGS_cyberlink}])
4379         VLC_ADD_PLUGINS([upnp_cc]) 
4380       ],[
4381         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
4382       ])
4383     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
4384     AS_IF([test -f "${real_cyberlink_tree}/lib/unix/libclink.a"], [
4385       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
4386       dnl The mere fact that we have to make such an ugly check sucks
4387       AC_MSG_CHECKING(for XML parser to link CyberLink with)
4388       LIBS_save="$LIBS"
4389       LIBS_cclink="no"
4390       for l in "`xml2-config --libs`" -lexpat -lxerces-c; do
4391         LIBS="$LIBS_save ${real_cyberlink_tree}/lib/unix/libclink.a -lpthread $l"
4392         AC_LINK_IFELSE([AC_LANG_PROGRAM([
4393 #include <cybergarage/upnp/media/player/MediaPlayer.h>
4394 using namespace CyberLink;
4396 class testclass : public SearchResponseListener, public MediaPlayer
4398     virtual void deviceSearchResponseReceived( SSDPPacket *)
4399     {
4400     }
4402     public:
4403       testclass (void)
4404       {
4405         addSearchResponseListener (this);
4406         start ();
4407       }
4409 ],[testclass l;])],[LIBS_cclink="$l"])
4410       done
4411       LIBS="${LIBS_save}"
4412       dnl should not happen - otherwise this needs fixing - hence FAILURE
4413       AS_IF([test "${LIBS_cclink}" = "no"],
4414         [AC_MSG_FAILURE([cannot find XML parser for CyberLink])])
4415       AC_MSG_RESULT([${LIBS_cclink}])
4416       VLC_ADD_LDFLAGS([upnp_cc], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}])
4417     ], [
4418       AC_MSG_RESULT(no)
4419       AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
4420     ])
4421     CPPFLAGS="${CPPFLAGS_save}"
4422     AC_LANG_POP([C++])
4423   ])
4427 dnl UPnP Plugin (Intel SDK)
4429 AC_ARG_ENABLE(upnp,
4430   [  --enable-upnp           Intel UPnP SDK (default auto)])
4432 VLC_ADD_CXXFLAGS([upnp_intel], [ ])
4433 AS_IF([test "x${enable_upnp}" != "xno"], [
4434   AC_CHECK_LIB([upnp], [UpnpInit], [has_upnp="yes"], [has_upnp="no"], [-lpthread])
4435   AS_IF([test "x${enable_upnp}" != "x" && test "${has_upnp}" = "no"], [
4436     AC_MSG_ERROR([cannot find Intel UPnP SDK (libupnp)])
4437   ])
4438   AS_IF([test "${has_upnp}" = "yes"], [
4439     VLC_ADD_LDFLAGS([upnp_intel], [-lupnp -lixml])
4440   ])
4441 ], [
4442   has_upnp="no"
4445 AS_IF([test "${has_upnp}" = "yes"], [
4446   VLC_ADD_PLUGINS([upnp_intel])
4451 dnl  Interface plugins
4454 AC_ARG_WITH(,[Interface plugins:])
4456 dnl special case for BeOS
4457 if test "${SYS}" = "beos"
4458 then
4459     VLC_ADD_BUILTINS([beos])
4463 dnl Skins2 module
4465 AC_ARG_ENABLE(skins2,
4466   [  --enable-skins2         Skins2 interface module (experimental)])
4467 if test "${enable_skins2}" = "yes" ||
4468   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4469    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
4471   dnl test for the required libraries
4472   skins2_missing_lib="no"
4474   dnl freetype
4475   if test "${FREETYPE_CONFIG}" != "no"; then
4476     VLC_ADD_CPPFLAGS([skins2],[`${FREETYPE_CONFIG} --cflags`])
4477     VLC_ADD_LDFLAGS([skins2],[`${FREETYPE_CONFIG} --libs`])
4478   else
4479     skins2_missing_lib="yes"
4480     if test "${enable_skins2}" = "yes"; then
4481       AC_MSG_ERROR([Could not find freetype (required for skins2)])
4482     fi
4483   fi
4485   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"); then
4486     VLC_ADD_PLUGINS([skins2])
4487     ALIASES="${ALIASES} svlc"
4488     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
4489     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4490     VLC_ADD_LDFLAGS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
4492   else if test "${skins2_missing_lib}" = "no"; then
4493     VLC_ADD_PLUGINS([skins2])
4494     ALIASES="${ALIASES} svlc"
4495     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} -DX11_SKINS])
4496     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4497     VLC_ADD_LDFLAGS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lX11])
4498   fi fi
4502 dnl dnl
4503 dnl dnl  Gtk+ module
4504 dnl dnl
4505 dnl AC_ARG_ENABLE(gtk,
4506 dnl   [  --enable-gtk            Gtk+ support (default enabled)])
4507 dnl if test "${enable_gtk}" != "no"
4508 dnl then
4509 dnl   GTK_PATH="${PATH}"
4510 dnl   AC_ARG_WITH(gtk-config-path,
4511 dnl     [    --with-gtk-config-path=PATH gtk-config path (default search in \$PATH)],
4512 dnl     [ if test "${with_gtk_config_path}" != "no"
4513 dnl       then
4514 dnl         GTK_PATH="${with_gtk_config_path}:${PATH}"
4515 dnl       fi ])
4516 dnl   # look for gtk-config
4517 dnl   AC_PATH_PROG(GTK12_CONFIG, gtk12-config, no, ${GTK_PATH})
4518 dnl   GTK_CONFIG=${GTK12_CONFIG}
4519 dnl   if test "${GTK_CONFIG}" = "no"
4520 dnl   then
4521 dnl     AC_PATH_PROG(GTK_CONFIG, gtk-config, no, ${GTK_PATH})
4522 dnl   fi
4523 dnl   if test "${GTK_CONFIG}" != "no"
4524 dnl   then
4525 dnl     if expr 1.2.0 \> `${GTK_CONFIG} --version` >/dev/null
4526 dnl     then
4527 dnl       AC_MSG_ERROR([Your development package for Gtk+ is too old, you need at least version 1.2.0. Please upgrade and try again. Alternatively you can also configure with --disable-gtk.])
4528 dnl     fi
4529 dnl     if test "${SYS}" != "mingw32"; then
4530 dnl       VLC_ADD_CFLAGS([gtk],[`${GTK_CONFIG} --cflags gtk gthread`])
4531 dnl       VLC_ADD_LDFLAGS([gtk],[`${GTK_CONFIG} --libs gtk gthread | sed 's,-rdynamic,,'`])
4532 dnl     else
4533 dnl       VLC_ADD_CFLAGS([gtk],[`${GTK_CONFIG} --cflags gtk`])
4534 dnl       VLC_ADD_LDFLAGS([gtk],[`${GTK_CONFIG} --libs gtk | sed 's,-rdynamic,,'`])
4535 dnl     fi
4536 dnl     # now look for the gtk.h header
4537 dnl     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gtk}"
4538 dnl     ac_cv_gtk_headers=yes
4539 dnl     AC_CHECK_HEADERS(gtk/gtk.h glib.h gdk/gdk.h, , [
4540 dnl       ac_cv_gtk_headers=no
4541 dnl       echo "Cannot find gtk development headers."
4542 dnl     ])
4543 dnl     if test "${ac_cv_gtk_headers}" = "yes"
4544 dnl     then
4545 dnl       VLC_ADD_PLUGINS([gtk])
4546 dnl       if test "${SYS}" != "mingw32"; then
4547 dnl         NEED_GTK_MAIN=yes
4548 dnl       fi
4549 dnl       ALIASES="${ALIASES} gvlc"
4550 dnl     fi
4551 dnl     CPPFLAGS="${CPPFLAGS_save}"
4552 dnl   fi
4553 dnl fi
4554 dnl 
4556 dnl  Gtk+2 module ! Disabled for now as it is unusable and confuses users
4558 dnl AC_ARG_ENABLE(gtk2,
4559 dnl   [  --enable-gtk2           Gtk2 support (default disabled)])
4560 dnl if test "${enable_gtk2}" = "yes"
4561 dnl then
4562 dnl   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
4563 dnl   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
4564 dnl   VLC_ADD_LDFLAGS([gtk2],[${GTK2_LIBS}])
4565 dnl   VLC_ADD_PLUGINS([gtk2])
4566 dnl   if test "${SYS}" != "mingw32"; then
4567 dnl     NEED_GTK2_MAIN=yes
4568 dnl   fi
4569 dnl fi
4572 dnl  PDA Gtk+2 module
4574 AC_ARG_ENABLE(pda,
4575   [  --enable-pda            PDA interface needs Gtk2 support (default disabled)])
4576 if test "${enable_pda}" = "yes"
4577 then
4578   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
4579   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
4580   VLC_ADD_LDFLAGS([gtk2],[${GTK2_LIBS}])
4581   VLC_ADD_CFLAGS([pda],[${GTK2_CFLAGS} ${CFLAGS_pda}])
4582   VLC_ADD_LDFLAGS([pda],[${GTK2_LIBS} ${LDFLAGS_pda}])
4583   VLC_ADD_PLUGINS([pda])
4584   if test "${SYS}" != "mingw32"; then
4585     NEED_GTK2_MAIN=yes
4586   fi
4589 dnl dnl
4590 dnl dnl  Gnome module
4591 dnl dnl
4592 dnl AC_ARG_ENABLE(gnome,
4593 dnl   [  --enable-gnome          Gnome interface support (default disabled)],
4594 dnl   [if test "${enable_gnome}" = "yes"; then
4595 dnl     # look for gnome-config
4596 dnl     AC_PATH_PROG(GNOME_CONFIG, gnome-config, no)
4597 dnl     if test -x ${GNOME_CONFIG}
4598 dnl     then
4599 dnl        VLC_ADD_CFLAGS([gnome],[`${GNOME_CONFIG} --cflags gtk gnomeui`])
4600 dnl        VLC_ADD_LDFLAGS([gnome],[`${GNOME_CONFIG} --libs gnomeui | sed 's,-rdynamic,,'`])
4601 dnl     fi
4602 dnl     # now look for the gnome.h header
4603 dnl     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gnome}"
4604 dnl     AC_CHECK_HEADERS(gnome.h, [
4605 dnl       VLC_ADD_PLUGINS([gnome])
4606 dnl       NEED_GTK_MAIN=yes
4607 dnl       NEED_GNOME_MAIN=yes
4608 dnl       ALIASES="${ALIASES} gnome-vlc"
4609 dnl       dnl We need this because of some moronic gnomesupport.h flavours
4610 dnl       AC_MSG_CHECKING(for strndup in gnome.h)
4611 dnl       AC_EGREP_HEADER(strndup,gnome.h,[
4612 dnl         AC_MSG_RESULT(yes)
4613 dnl         AC_DEFINE(STRNDUP_IN_GNOME_H, 1,
4614 dnl                   Define if <gnome.h> defines strndup.)],[
4615 dnl         AC_MSG_RESULT(no)])
4616 dnl      ],[
4617 dnl       AC_MSG_ERROR([Can't find gnome headers. Please install the gnome
4618 dnl developement tools or remove the --enable-gnome option])
4619 dnl      ])
4620 dnl     CPPFLAGS="${CPPFLAGS_save}"
4621 dnl   fi])
4624 dnl  Gnome2 module ! Disabled for know as it is unuseable and confuses users
4626 dnl AC_ARG_ENABLE(gnome2,
4627 dnl   [  --enable-gnome2         Gnome2 support (default disabled)])
4628 dnl if test "${enable_gnome2}" = "yes"
4629 dnl then
4630 dnl   PKG_CHECK_MODULES(GNOME2, [libgnomeui-2.0])
4631 dnl   VLC_ADD_CFLAGS([gnome2],[${GNOME2_CFLAGS}])
4632 dnl   VLC_ADD_LDFLAGS([gnome2],[${GNOME2_LIBS}])
4633 dnl   VLC_ADD_PLUGINS([gnome2])
4634 dnl   if test "${SYS}" != "mingw32"; then
4635 dnl     NEED_GNOME2_MAIN=yes
4636 dnl   fi
4637 dnl fi
4640 dnl  wxWidgets module
4642 AC_ARG_ENABLE(wxwidgets,
4643   [  --enable-wxwidgets      wxWidgets support (default enabled)])
4644 if test "${enable_wxwindows}" 
4645 then
4646   AC_MSG_WARN(--{en|dis}able-wxwindows is deprecated. Use --{en|dis}able-wxwidgets instead.)
4649 if test "${enable_wxwindows}" = "no"
4650 then
4651   enable_wxwidgets="no"
4653 if test "${enable_wxwidgets}" != "no"
4654 then
4655   WXWIDGETS_PATH="${PATH}"
4656   AC_ARG_WITH(wx-config-path,
4657     [    --with-wx-config-path=PATH wx-config path (default search in \$PATH)],
4658     [ if test "${with_wx_config_path}" != "no"
4659       then
4660         WXWIDGETS_PATH="${with_wx_config_path}:${PATH}"
4661       fi ])
4662   WXWIDGETS_NAME="wx-config"
4663   AC_ARG_WITH(wx-config,
4664     [    --with-wx-config=NAME      wx-config name (default is wx-config)],
4665     [ if test "${with_wx_config}" != "no"
4666       then
4667         WXWIDGETS_NAME="${with_wx_config}"
4668       fi ])
4669   # look for wx-config
4670   AC_PATH_PROG(WX_CONFIG, ${WXWIDGETS_NAME}, no, ${WXWIDGETS_PATH})
4671   if test "${WX_CONFIG}" != "no" -a "${CXX}" != ""
4672   then
4673     if expr 2.6.0 \> `${WX_CONFIG} --version` >/dev/null ||  expr 2.7.0 \<= `${WX_CONFIG} --version` >/dev/null
4674     then
4675       AC_MSG_ERROR([You need wxWidgets of the 2.6 branch. Please upgrade and try again. Alternatively you can also configure with --disable-wxwidgets.])
4676     fi
4677     AC_LANG_PUSH(C++)
4678     # Turn this error:
4679     #   playlist.cpp:1351: error: ISO C++ forbids cast to non-reference type
4680     # into a warning. However better would be to fix playlist.cpp
4681     AC_CACHE_CHECK([if \$CXX accepts -fpermissive],
4682         [ac_cv_cxx_fpermissive],
4683         [CXXFLAGS="${CXXFLAGS_save} -fpermissive"
4684          AC_TRY_COMPILE([],,ac_cv_cxx_fpermissive=yes,
4685                         ac_cv_cxx_fpermissive=no)])
4686     if test "${ac_cv_cxx_fpermissive}" = "yes"; then
4687       VLC_ADD_CXXFLAGS([wxwidgets],-fpermissive)
4688     fi
4689     VLC_ADD_LDFLAGS([wxwidgets],[`${WX_CONFIG} --libs`])
4690     VLC_ADD_CXXFLAGS([wxwidgets],[`${WX_CONFIG} --cxxflags`])
4691     # check if we must link against gtk2 libs
4692     # if __WXGTK20__ && __WXGTK__ are defined
4693     # for modules/gui/wxwidgets/video.cpp
4694     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
4695 #include <wx/wx.h>
4696 #ifdef __WXGTK20__
4697 #error ok, we need to link against gtk2
4698 #endif
4699         ])],[WXGTK=no],[WXGTK=yes])
4700     if test "$WXGTK" = "yes"; then
4701       ${PKG_CONFIG} --exists gtk+-2.0 && VLC_ADD_LDFLAGS([wxwidgets],[`$PKG_CONFIG --libs gtk+-2.0`])
4702     fi
4703     if ${WX_CONFIG} --unicode
4704     then 
4705       # wxwidgets should provide the following flags but does not
4706       # the following is required to compile for win32
4707       VLC_ADD_CXXFLAGS([wxwidgets],[-D_UNICODE -DUNICODE])
4708     fi
4709     if test "$have_libcdio" = "yes"
4710     then 
4711       VLC_ADD_LDFLAGS([wxwidgets],[$LIBCDIO_LIBS])
4712       VLC_ADD_CXXFLAGS([wxwidgets],[$LIBCDIO_CFLAGS])
4713     else 
4714       AC_MSG_WARN([Probe disc disabled because ok libcdio library not found])
4715     fi
4717     if test "$have_libvcdinfo" = "yes"
4718     then 
4719       VLC_ADD_LDFLAGS([wxwidgets],[$VCDINFO_LIBS])
4720       VLC_ADD_CXXFLAGS([wxwidgets],[$VCDINFO_CFLAGS])
4721     else 
4722       AC_MSG_WARN([VCD information on Probe disc disabled because ok libvcdinfo not found])
4723     fi
4725     # now look for the wxprec.h header
4726     CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_wxwidgets}"
4727     ac_cv_wx_headers=yes
4728     AC_CHECK_HEADERS(wx/wxprec.h, , [
4729       ac_cv_wx_headers=no
4730       echo "Cannot find wxWidgets development headers."
4731     ])
4732     if test "${ac_cv_wx_headers}" = "yes"
4733     then
4734       VLC_ADD_PLUGINS([wxwidgets])
4735       ALIASES="${ALIASES} wxvlc"
4736     fi
4737     CPPFLAGS="${CPPFLAGS_save}"
4738     AC_LANG_POP(C++)
4739   fi
4740   dnl WxWidgets plugin will yield incorrect code without this
4741   VLC_ADD_CXXFLAGS([wxwidgets], [-fno-strict-aliasing])
4745 dnl QT 4
4747 enableqt4=false
4748 AC_ARG_ENABLE(qt4,
4749   [  --enable-qt4            QT 4 support (default disabled) ],
4750   [if test "${enable_qt4}" = "yes"; then
4751       PKG_CHECK_MODULES(QT4, QtCore QtGui,
4752         [ VLC_ADD_PLUGINS([qt4])
4753           ALIASES="${ALIASES} qvlc"
4754           enableqt4=true
4755           VLC_ADD_LDFLAGS([qt4],[$QT4_LIBS])
4756           VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS])
4757           MOC=`$PKG_CONFIG --variable=exec_prefix QtCore`/bin/moc
4758           RCC=`$PKG_CONFIG --variable=exec_prefix QtCore`/bin/rcc
4759           UIC=`$PKG_CONFIG --variable=exec_prefix QtCore`/bin/uic],
4760        [AC_MSG_WARN(QT4 library not found)])
4761    fi])
4762 AM_CONDITIONAL(ENABLE_QT4, test "$enableqt4" = "true")
4765 dnl  WinCE GUI module
4767 if test "${SYS}" = "mingwce"; then
4768   VLC_ADD_BUILTINS([wince])
4769   VLC_ADD_CXXFLAGS([wince],[])
4770   VLC_ADD_LDFLAGS([wince],[-lcommctrl -lcommdlg -laygshell])
4771   dnl Gross hack
4772   VLC_ADD_LDFLAGS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4773 elif test "${SYS}" = "mingw32"; then
4774   VLC_ADD_CXXFLAGS([wince],[])
4775   VLC_ADD_LDFLAGS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
4776   dnl Gross hack
4777   VLC_ADD_LDFLAGS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4781 dnl Simple test for skins2 dependency
4783 if test "${enable_skins2}" != "no"
4784 then
4785   if test "${WX_CONFIG}" = "no"
4786   then
4787     AC_MSG_ERROR([The skins2 module depends on the wxWidgets development package. Without it you won't be able to open any dialog box from the interface, which makes the skins2 interface rather useless. Install the wxWidgets development package or alternatively you can also configure with: --disable-wxwidgets --disable-skins2.])
4788   fi
4791 dnl dnl
4792 dnl dnl  Qt module
4793 dnl dnl
4794 dnl AC_ARG_ENABLE(qt,
4795 dnl   [  --enable-qt             Qt interface support (default disabled)],
4796 dnl   [if test "${enable_qt}" = "yes"; then
4797 dnl      VLC_ADD_PLUGINS([qt])
4798 dnl      ALIASES="${ALIASES} qvlc"
4799 dnl      VLC_ADD_LDFLAGS([qt],[-L${QTDIR}/lib])
4800 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt}"
4801 dnl      AC_CHECK_LIB(qt-mt,main,[
4802 dnl        VLC_ADD_LDFLAGS([qt],[-lqt-mt])
4803 dnl      ],[
4804 dnl        AC_CHECK_LIB(qt,main,[
4805 dnl          VLC_ADD_LDFLAGS([qt],[-lqt])
4806 dnl        ])
4807 dnl      ])
4808 dnl      LDFLAGS="${LDFLAGS_save}"
4809 dnl      VLC_ADD_CXXFLAGS([qt],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
4810 dnl      if test -x ${QTDIR}/bin/moc
4811 dnl      then
4812 dnl        MOC=${QTDIR}/bin/moc
4813 dnl      else
4814 dnl        MOC=moc
4815 dnl      fi
4816 dnl    fi])
4817 dnl 
4818 dnl dnl
4819 dnl dnl  KDE module
4820 dnl dnl
4821 dnl AC_ARG_ENABLE(kde,
4822 dnl   [  --enable-kde            KDE interface support (default disabled)],
4823 dnl   [if test "${enable_kde}" = "yes"; then
4824 dnl      VLC_ADD_PLUGINS([kde])
4825 dnl      ALIASES="${ALIASES} kvlc"
4826 dnl      VLC_ADD_LDFLAGS([kde],[-L${KDEDIR}/lib])
4827 dnl      dnl Check for -lkfile (only in KDE 2) or -lkdeui -lkio (KDE 3)
4828 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
4829 dnl      AC_CHECK_LIB(kfile,main,[
4830 dnl        VLC_ADD_LDFLAGS([kde],[-lkfile])
4831 dnl      ])
4832 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
4833 dnl      AC_CHECK_LIB(kdeui,main,[
4834 dnl        VLC_ADD_LDFLAGS([kde],[-lkdeui])
4835 dnl      ])
4836 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
4837 dnl      AC_CHECK_LIB(kio,main,[
4838 dnl        VLC_ADD_LDFLAGS([kde],[-lkio])
4839 dnl      ])
4840 dnl      LDFLAGS="${LDFLAGS_save}"
4841 dnl      VLC_ADD_CXXFLAGS([kde],[-I/usr/include/kde -I/usr/include/qt3 -I/usr/include/qt])
4842 dnl      VLC_ADD_CXXFLAGS([kde],[-I${KDEDIR}/include -I${QTDIR}/include])
4843 dnl      if test -x ${QTDIR}/bin/moc
4844 dnl      then
4845 dnl        MOC=${QTDIR}/bin/moc
4846 dnl      else
4847 dnl        MOC=moc
4848 dnl      fi
4849 dnl    fi])
4852 dnl  Opie QT embedded module
4854 AC_ARG_ENABLE(opie,
4855   [  --enable-opie           Qt embedded interface support (default disabled)],
4856   [if test "${enable_opie}" = "yes"; then
4857      AC_ARG_WITH(qte,
4858      [    --with-qte=PATH       Qt Embedded headers and libraries])
4859      if test "${with_qte}" != "no" -a -n "${with_qte}"
4860      then
4861        VLC_ADD_LDFLAGS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4862        VLC_ADD_CXXFLAGS([qte],[-I${with_qte}/include `echo -I${with_qte}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
4863      else
4864        VLC_ADD_LDFLAGS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
4865        VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
4866      fi
4867      CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4868      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4869        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4870      ] )
4871      CPPFLAGS="${CPPFLAGS_save}"
4873      VLC_ADD_PLUGINS([opie])
4874      NEED_QTE_MAIN=yes
4875      VLC_ADD_LDFLAGS([opie],[-lqpe ${LDFLAGS_qte}])
4876      VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
4877      if test "${with_qte}" != "no" -a -n "${with_qte}"
4878      then
4879        MOC=${with_qte}/bin/moc
4880      else
4881        MOC=${QTDIR}/bin/moc
4882      fi
4883    fi])
4886 dnl  MacOS X module
4888 ORIGCFLAGS=$CFLAGS
4889 CFLAGS="$CFLAGS -x objective-c"
4890 AC_ARG_ENABLE(macosx,
4891   [  --enable-macosx         MacOS X support (default enabled on MacOS X)],
4892   [if test "${enable_macosx}" = "yes"
4893    then
4894      VLC_ADD_BUILTINS([macosx])
4895      VLC_ADD_LDFLAGS([macosx],[-framework IOKit -framework Cocoa -framework Carbon -framework QuickTime -lobjc -ObjC -framework OpenGL -framework AGL])
4896      VLC_ADD_OBJCFLAGS( [macosx],[-fobjc-exceptions] )
4897    fi],
4898   [AC_CHECK_HEADERS(Cocoa/Cocoa.h,
4899      VLC_ADD_BUILTINS([macosx])
4900      VLC_ADD_LDFLAGS([macosx],[-framework IOKit -framework Cocoa -framework Carbon -framework QuickTime -lobjc -ObjC -framework OpenGL -framework AGL])
4901      VLC_ADD_OBJCFLAGS( [macosx],[-fobjc-exceptions] )
4902    )])
4903 CFLAGS=$ORIGCFLAGS
4906 dnl  QNX RTOS module
4908 AC_ARG_ENABLE(qnx,
4909   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
4910     if test "${enable_qnx}" != "no"
4911     then
4912       AC_CHECK_HEADERS(Ph.h, [
4913         VLC_ADD_PLUGINS([qnx])
4914         VLC_ADD_LDFLAGS([qnx],[-lasound -lph])
4915       ])
4916     fi
4919 dnl  ncurses module
4921 AC_ARG_ENABLE(ncurses,
4922   [  --enable-ncurses        ncurses interface support (default disabled)],
4923   [if test "${enable_ncurses}" = "yes"; then
4924      VLC_ADD_PLUGINS([ncurses])
4925      VLC_ADD_LDFLAGS([ncurses],[-lncurses])
4926    fi])
4929 dnl  XOSD plugin
4931 AC_ARG_ENABLE(xosd,
4932   [  --enable-xosd           xosd interface support (default disabled)])
4933 if test "${enable_xosd}" = "yes"
4934 then
4935   AC_CHECK_HEADER(xosd.h, have_xosd="true", have_xosd="false")
4936   AC_CHECK_LIB(xosd,xosd_set_offset,
4937       AC_DEFINE(HAVE_XOSD_VERSION_1, 1, Define if <xosd.h> is 1.0.x),
4938     AC_CHECK_LIB(xosd,xosd_set_horizontal_offset,
4939         AC_DEFINE(HAVE_XOSD_VERSION_2, 1, Define if <xosd.h> is 2.0.x),
4940       AC_TRY_COMPILE([#include <xosd.h>],
4941          [xosd_init("foo","bar",12,XOSD_top,2,12,42);],,
4942           AC_DEFINE(HAVE_XOSD_VERSION_0, 1, Define if <xosd.h> is pre-1.0.0))))
4943   if test "${have_xosd}" = "true"
4944   then
4945     VLC_ADD_PLUGINS([xosd])
4946     VLC_ADD_LDFLAGS([xosd],[-lxosd])
4947   fi
4951 dnl Visualisation plugin
4953 AC_ARG_ENABLE(visual,
4954   [  --enable-visual         visualisation plugin (default enabled)])
4955 if test "${enable_visual}" != "no"
4956 then
4957     VLC_ADD_PLUGINS([visual])
4961 dnl OpenGL visualisation plugin
4963 AC_ARG_ENABLE(galaktos,
4964   [  --enable-galaktos       OpenGL visualisation plugin (default disabled)])
4965 if test "${enable_galaktos}" = "yes"
4966 then
4967   AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
4968     VLC_ADD_PLUGINS([galaktos])
4969     if test "${SYS}" != "mingw32"; then
4970       VLC_ADD_LDFLAGS([galaktos],[${X_LIBS} -lGL -lGLU])
4971     else
4972       VLC_ADD_LDFLAGS([galaktos],[-lopengl32])
4973     fi
4974   ])
4978 dnl  goom visualization plugin
4980 AC_ARG_ENABLE(goom,
4981 [  --enable-goom           goom visualisation plugin (default disabled)])
4982 if test "${enable_goom}" = "yes"
4983 then
4984   AC_ARG_WITH(goom-tree,
4985     [    --with-goom-tree=PATH goom tree for static linking (required)])
4987   dnl
4988   dnl test for --with-goom-tree
4989   dnl
4990   if test "${with_goom_tree}" != "no" -a -n "${with_goom_tree}"; then
4991     AC_MSG_CHECKING(for libgoom2.a in ${with_goom_tree})
4992     real_goom_tree="`cd ${with_goom_tree} 2>/dev/null && pwd`"
4993     if test -z "${real_goom_tree}"; then
4994       dnl  The given directory can't be found
4995       AC_MSG_RESULT(no)
4996       AC_MSG_ERROR([cannot cd to ${with_goom_tree}])
4997     fi
4998     if test -f "${real_goom_tree}/src/.libs/libgoom2.a"; then
4999       AC_MSG_RESULT(${real_goom_tree}/src/.libs/libgoom2.a)
5000       VLC_ADD_BUILTINS([goom])
5001       VLC_ADD_LDFLAGS([goom],[-L${real_goom_tree}/src/.libs -lgoom2])
5002       VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree}/src -DUSE_GOOM_TREE])
5003     else
5004       dnl  The given libgoom2 wasn't built, try to look for the old goom
5005       AC_MSG_RESULT(no)
5006       AC_MSG_CHECKING(for libgoom.a in ${with_goom_tree})
5007       if test -f "${real_goom_tree}/libgoom.a"; then
5008         AC_MSG_RESULT(${real_goom_tree}/libgoom.a)
5009         VLC_ADD_BUILTINS([goom])
5010         VLC_ADD_LDFLAGS([goom],[-L${real_goom_tree} -lgoom])
5011         VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree} -DUSE_GOOM_TREE -DOLD_GOOM])
5012       else
5013         dnl  The given libgoom wasn't built
5014         AC_MSG_RESULT(no)
5015         AC_MSG_ERROR([cannot find ${real_goom_tree}/src/.libs/libgoom2.a, make sure you compiled goom in ${with_goom_tree}])
5016       fi
5017     fi
5018   else
5019     AC_CHECK_HEADERS(goom/goom.h, [
5020       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_goom}"
5021       AC_CHECK_LIB(goom2, goom_init, [
5022         VLC_ADD_PLUGINS([goom])
5023         VLC_ADD_LDFLAGS([goom],[-lgoom2])
5024       ],[
5025         AC_MSG_ERROR([Could not find goom on your system: you may get it from http://www.ios-software.com/.])
5026       ])
5027       LDFLAGS="${LDFLAGS_save}"
5028     ])
5029   fi
5033 dnl DAAP access plugin and services discovery 
5035 AC_ARG_ENABLE(daap,
5036   [  --enable-daap                DAAP shares services discovery support (default enabled)])
5037 if test "$enable_daap" != "no"
5038 then
5039    PKG_CHECK_MODULES(DAAP, opendaap >= 0.3.0,
5040       [ VLC_ADD_PLUGINS([daap])
5041        VLC_ADD_LDFLAGS([daap],[$DAAP_LIBS])
5042        VLC_ADD_CFLAGS([daap],[$DAAP_CFLAGS])]:,
5043       [AC_MSG_WARN(DAAP library not found)])
5047 dnl  Bonjour services discovery
5049 AC_ARG_ENABLE(bonjour,
5050   [  --enable-bonjour        Bonjour services discovery (default enabled)])
5051 if test "${enable_bonjour}" != "no"
5052 then
5053   PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.3,
5054     [PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.6,
5055        [AC_DEFINE(HAVE_AVAHI_06, [], [Define if you have avahi-client 0.6 or greater])],)
5056       AC_DEFINE(HAVE_AVAHI_CLIENT, [], [Define if you have the avahi-client library])
5057       VLC_ADD_LDFLAGS([bonjour access_output_http],[$BONJOUR_LIBS])
5058       VLC_ADD_CFLAGS([bonjour access_output_http],[$BONJOUR_CFLAGS])
5059       VLC_ADD_PLUGINS([bonjour]) ],
5060     [AC_MSG_WARN(avahi-client library not found)])
5064 dnl  Lirc plugin
5066 AC_ARG_ENABLE(lirc,
5067   [  --enable-lirc           lirc support (default disabled)])
5068 if test "${enable_lirc}" = "yes"
5069 then
5070   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
5071   if test "${have_lirc}" = "true"
5072   then
5073     VLC_ADD_PLUGINS([lirc])
5074     VLC_ADD_LDFLAGS([lirc],[-llirc_client])
5075   fi
5079 AC_ARG_WITH(,[Misc options:])
5082 dnl TLS/SSL
5084 AC_ARG_ENABLE(gnutls,
5085   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
5087 AS_IF([test "${enable_gnutls}" != "no"], [
5088   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.2.9], [have_gnutls="yes"], [have_gnutls="no"])
5090   AS_IF([test "${have_gnutls}" = "yes"], [
5091     VLC_ADD_PLUGINS([gnutls])
5092     VLC_ADD_CFLAGS([gnutls], [$GNUTLS_CFLAGS])
5093     VLC_ADD_LDFLAGS([gnutls], [$GNUTLS_LIBS])
5094   ], [
5095     AS_IF([test "${enable_gnutls}" = "yes"], [
5096       AC_MSG_ERROR([gnutls not present or too old (version 1.2.9 required)])
5097     ])
5098   ])
5099   AC_CHECK_LIB([gcrypt], [gcry_control], [
5100     VLC_ADD_LDFLAGS([gnutls], [-lgcrypt])
5101   ])
5106 dnl  Endianness check, AC_C_BIGENDIAN doesn't work if we are cross-compiling
5108 dnl  We give the user the opportunity to specify
5109 dnl  --with-words=big or --with-words=little ; otherwise, try to guess
5111 AC_ARG_WITH(words,
5112   [    --with-words=endianness set endianness (big or little)])
5113   case "${with_words}" in
5114     big)
5115       ac_cv_c_bigendian=yes
5116       ;;
5117     little)
5118       ac_cv_c_bigendian=no
5119       ;;
5120     *)
5121       dnl  Try to guess endianness by matching patterns on a compiled
5122       dnl  binary, by looking for an ASCII or EBCDIC string
5123       AC_CACHE_CHECK([whether the byte order is big-endian],
5124         [ac_cv_c_bigendian],
5125         [ac_cv_c_bigendian="unknown"
5126         [cat >conftest.c <<EOF
5127         short am[] = { 0x4249, 0x4765, 0x6e44, 0x6961, 0x6e53, 0x7953, 0 };
5128         short ai[] = { 0x694c, 0x5454, 0x656c, 0x6e45, 0x6944, 0x6e61, 0 };
5129         void _a(void) { char*s = (char*)am; s = (char *)ai; }
5130         short ei[] = { 0x89D3, 0xe3e3, 0x8593, 0x95c5, 0x89c4, 0x9581, 0 };
5131         short em[] = { 0xc2c9, 0xc785, 0x95c4, 0x8981, 0x95e2, 0xa8e2, 0 };
5132         void _e(void) { char*s = (char*)em; s = (char*)ei; }
5133         int main(void) { _a(); _e(); return 0; }
5135         ]
5136         if test -f conftest.c
5137         then
5138           if ${CC-cc} -c conftest.c -o conftest.o >>config.log 2>&1 \
5139               && test -f conftest.o
5140           then
5141             if test "`strings conftest.o | grep BIGenDianSyS`"
5142             then
5143               ac_cv_c_bigendian="yes"
5144             fi
5145             if test "`strings conftest.o | grep LiTTleEnDian`"
5146             then
5147               ac_cv_c_bigendian="no"
5148             fi
5149           fi
5150         fi
5151       ])
5152       if test "${ac_cv_c_bigendian}" = "unknown"
5153       then
5154         AC_MSG_ERROR([Could not guess endianness, please use --with-words])
5155       fi
5156       ;;
5157   esac
5158 dnl  Now we know what to use for endianness, just put it in the header
5159 if test "${ac_cv_c_bigendian}" = "yes"
5160 then
5161   AC_DEFINE(WORDS_BIGENDIAN, 1, big endian system)
5165 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
5167 loader=false
5168 AC_ARG_ENABLE(loader,
5169   [  --enable-loader         build DLL loader for ELF i386 platforms (default disabled)])
5170 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
5171 AS_IF([test "${enable_loader}" = "yes"],
5172   [ VLC_ADD_PLUGINS([dmo])
5173     VLC_ADD_CPPFLAGS([dmo],[-I../../../@top_srcdir@/loader])
5174     VLC_ADD_LDFLAGS([dmo],[../../../loader/libloader.la -lpthread])
5175     VLC_ADD_CPPFLAGS([quicktime],[-I../../@top_srcdir@/loader])
5176     VLC_ADD_LDFLAGS([quicktime],[../../loader/libloader.la -lpthread])
5177     VLC_ADD_CPPFLAGS([realaudio],[-I../../@top_srcdir@/loader -DLOADER])
5178     VLC_ADD_LDFLAGS([realaudio],[../../loader/libloader.la -ldl -lpthread])
5179   ])
5182 dnl  Microsoft ActiveX support
5184 activex=false
5185 AC_ARG_ENABLE(activex,
5186   [  --enable-activex        build a vlc-based ActiveX control (default enabled on Win32)])
5187 AC_ARG_WITH(wine-sdk-path,
5188   [    --with-wine-sdk-path=PATH path to wine sdk])
5189 if test "${enable_activex}" != "no"
5190 then
5191   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
5192   then
5193     AC_CHECK_PROGS(MIDL, [midl], no)
5194     if test "${with_wine_sdk_path}" != ""
5195     then
5196        WINE_SDK_PATH=${with_wine_sdk_path}
5197        AC_PATH_PROG(WIDL, widl, no, [$WINE_SDK_PATH/bin:$WINE_SDK_PATH/tools/widl])
5198     else
5199        WIDL=no
5200     fi
5201     AC_LANG_PUSH(C++)
5202     AC_CHECK_HEADERS(ole2.h olectl.h,
5203       [ VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
5204         VLC_ADD_LDFLAGS([activex],[-lole32 -loleaut32 -luuid -lshlwapi]) 
5205         AC_CHECK_HEADERS(objsafe.h,
5206           VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER]),,
5207           [#if HAVE_OLE2_H
5208            #   include <ole2.h>
5209            #endif]
5210         )
5211         activex=:
5212       ],
5213       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5214     )
5215     AC_LANG_POP(C++)
5216   fi
5218 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
5219 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
5220 AC_ARG_VAR(WIDL, [Wine IDL compiler (requires Wine SDK)])
5221 AM_CONDITIONAL(HAS_WIDL_COMPILER, test "${WIDL}" != "no")
5222 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
5225 dnl  Mozilla plugin
5227 mozilla=false
5228 AC_ARG_ENABLE(mozilla,
5229   [  --enable-mozilla        build a vlc-based Mozilla plugin (default disabled)])
5230 AC_ARG_WITH(mozilla-sdk-path,
5231   [    --with-mozilla-sdk-path=PATH path to mozilla sdk])
5233 if test "${enable_mozilla}" = "yes" 
5234 then
5235   dnl currently vlc plugin only needs headers, no xpcom support apis are actually used
5236   need_xpcom_libs=false
5237   if test "${with_mozilla_sdk_path}" = ""
5238   then
5239     AC_PATH_PROG(MOZILLA_CONFIG, mozilla-config, no)
5240     if test "${MOZILLA_CONFIG}" = "no"
5241     then
5242       AC_PATH_PROG(SEAMONKEY_CONFIG, seamonkey-config, no)
5243       if test "${SEAMONKEY_CONFIG}" = "no"
5244       then
5245         AC_PATH_PROG(XULRUNNER_CONFIG, xulrunner-config, no)
5246         if test "${XULRUNNER_CONFIG}" = "no"
5247         then
5248           AC_MSG_ERROR([Please install the Mozilla development tools, mozilla-config was not found.])
5249         else
5250           have_xul=true
5251           MOZILLA_CONFIG="${XULRUNNER_CONFIG}"
5252         fi
5253       else
5254         MOZILLA_CONFIG="${SEAMONKEY_CONFIG}"
5255       fi
5256     fi
5257     
5258     if ${MOZILLA_CONFIG} --defines | grep -q 'MOZ_X11=1'; then
5259       LDFLAGS="${LDFLAGS_save} ${X_LIBS} ${X_PRE_LIBS}"
5260       AC_CHECK_LIB(Xt,XtStrings,
5261        [
5262          VLC_ADD_CPPFLAGS([mozilla],[${X_CFLAGS}])
5263          VLC_ADD_LDFLAGS([mozilla],[${X_LIBS} ${X_PRE_LIBS} -lXt -lX11 -lSM -lICE])
5265        [],
5266        [[${X_LIBS} ${X_PRE_LIBS} -lX11 -lSM -lICE]
5267       ])
5268       LDFLAGS="${LDFLAGS_save}"
5269     fi
5270     
5271       mozilla=:
5272       dnl Workaround for http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=150490
5273       VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin xpcom java | sed 's,-I\([^ ]*\)/mozilla/\([^ ]*\),-I\1/\2 -I\1/mozilla/\2,g' | xargs`]])
5274       if ${need_xpcom_libs}; then
5275          VLC_ADD_LDFLAGS([mozilla],[`${MOZILLA_CONFIG} --libs plugin xpcom`])
5276       else
5277          VLC_ADD_LDFLAGS([mozilla],[`${MOZILLA_CONFIG} --libs plugin`])
5278       fi
5279       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
5280       AC_CHECK_HEADERS(mozilla-config.h)
5281       CPPFLAGS="${CPPFLAGS_save}"
5282       MOZILLA_SDK_PATH="`${MOZILLA_CONFIG} --prefix`"
5283       XPIDL_INCL="`${MOZILLA_CONFIG} --cflags plugin xpcom java` \
5284       `${MOZILLA_CONFIG} --idlflags plugin xpcom java` "
5285       if ${have_xul}
5286       then
5287         xpidl_path="`${MOZILLA_CONFIG} --prefix`/lib/xulrunner"
5288       else
5289         xpidl_path="`${MOZILLA_CONFIG} --prefix`/bin"
5290       fi        
5291     dnl End of moz_sdk = ""
5292   else
5293     dnl special case for mingw32
5294     if test "${SYS}" = "mingw32"
5295     then
5296       AC_CHECK_TOOL(CYGPATH, cygpath, "")
5297       dnl latest gecko sdk does not have an xpcom directory
5298       if test -d "${with_mozilla_sdk_path}/xpcom"; then
5299           mozilla_sdk_xpcom="/xpcom"
5300       fi
5301     fi
5302   
5303     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
5304     CPPFLAGS="${CPPFLAGS_save} -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include"
5305     AC_CHECK_HEADERS(mozilla-config.h, [
5306       mozilla=:
5307       VLC_ADD_CPPFLAGS([mozilla],[-DXPCOM_GLUE -DHAVE_CPP_MODERN_SPECIALIZE_TEMPLATE_SYNTAX -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include -I${real_mozilla_sdk}/embedstring/include -I${real_mozilla_sdk}/xpcom/include -I${real_mozilla_sdk}/nspr/include -I${real_mozilla_sdk}/string/include -I${real_mozilla_sdk}/plugin/include -I${real_mozilla_sdk}/java/include])
5308       if ${need_xpcom_libs}; then
5309          VLC_ADD_LDFLAGS([mozilla],[-L${real_mozilla_sdk}/embedstring/bin -L${real_mozilla_sdk}/xpcom/bin -L${real_mozilla_sdk}/nspr/bin -L${real_mozilla_sdk}/string/bin -L${real_mozilla_sdk}/lib -lnspr4 -lplds4 -lplc4 -lxpcomglue])
5310          if test "${SYS}" = "mingw32"; then
5311            dnl latest gecko sdk does not have embedstring
5312            if test -d "${real_mozilla_sdk}/embedstring/bin"
5313            then
5314              VLC_ADD_LDFLAGS([mozilla],[-lembedstring -Wl,--kill-at])
5315            fi
5316          fi
5317       fi
5318   
5319       MOZILLA_SDK_PATH="${real_mozilla_sdk}"
5320       XPIDL_INCL="-I${real_mozilla_sdk}${mozilla_sdk_xpcom}/idl"
5321       xpidl_path="${real_mozilla_sdk}${mozilla_sdk_xpcom}/bin"
5322   
5323       if test -n "${CYGPATH}"; then
5324         real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
5325         XPIDL_INCL="${XPIDL_INCL} -I\"${real_mozilla_sdk}${mozilla_sdk_xpcom}/idl\""
5326       fi ])
5327     CPPFLAGS="${CPPFLAGS_save}"
5328   fi
5329   
5330   if test "${enable_mozilla}" != "false"
5331   then
5332     AC_PATH_PROG(XPIDL, xpidl, no, ${xpidl_path}:/usr/lib/mozilla:/usr/lib64/mozilla:/usr/lib/xulrunner:/usr/lib64/xulrunner)
5333     if test "${XPIDL}" = "no"; then
5334       AC_MSG_ERROR([Please install the Mozilla development tools, xpidl was not found.])
5335     fi
5336   fi 
5338 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
5341 dnl  Mediacontrol Python bindings
5343 AC_ARG_ENABLE(python-bindings,
5344   [  --enable-python-bindings    Enable Python bindings (default disabled)])
5345 dnl TODO: look for python dev headers
5346 AM_CONDITIONAL(BUILD_PYTHON, [test "${enable_python_bindings}" = "yes"])
5349 dnl  Java bindings
5351 AC_ARG_ENABLE(java-bindings,
5352   [  --enable-java-bindings  Enable Java bindings (default disabled)])
5353 if test "${enable_java_bindings}" = "yes"
5354 then
5355   AS_IF([test "x${JAVA_HOME}" == "x"],
5356         [AC_MSG_ERROR([Please set the JAVA_HOME variable to your JDK environment])])
5357   AC_PROG_JAVAC
5358   AC_PROG_JAVA
5360 AM_CONDITIONAL(BUILD_JAVA, [test "${enable_java_bindings}" = "yes"])
5363 dnl  test plugins
5365 AC_ARG_ENABLE(testsuite,
5366   [  --enable-testsuite      build test modules (default disabled)])
5367 if test "${enable_testsuite}" = "yes"
5368 then
5369   TESTS="test1 test2 test3 test4"
5371   dnl  we define those so that bootstrap sets the right linker
5372   VLC_ADD_CXXFLAGS([test2],[])
5373   VLC_ADD_OBJCFLAGS([test3],[])
5374   dnl  this one is needed until automake knows what to do
5375   VLC_ADD_LDFLAGS([test3],[-lobjc])
5377   VLC_ADD_PLUGINS([${TESTS}])
5378   #VLC_ADD_BUILTINS([${TESTS}])
5382 dnl Microsoft Layer for Unicode for WIN9x/ME
5384 if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
5385 then
5386     AC_CHECK_LIB(unicows, LoadUnicowsSymbol, [
5387         VLC_ADD_LDFLAGS([vlc],[-Wl,--exclude-libs,libunicows.a -lunicows])
5388     ])
5392 dnl  gtk_main plugin
5394 if test "${NEED_GTK_MAIN}" != "no"
5395 then
5396     VLC_ADD_PLUGINS([gtk_main])
5397     VLC_ADD_CFLAGS([gtk_main],[${CFLAGS_gtk}])
5398     VLC_ADD_LDFLAGS([gtk_main],[${LDFLAGS_gtk}])
5401 if test "${NEED_GNOME_MAIN}" != "no"
5402 then
5403     VLC_ADD_PLUGINS([gnome_main])
5404     VLC_ADD_CFLAGS([gnome_main],[${CFLAGS_gtk} ${CFLAGS_gnome}])
5405     VLC_ADD_LDFLAGS([gnome_main],[${LDFLAGS_gtk} ${LDFLAGS_gnome}])
5408 if test "${NEED_GTK2_MAIN}" != "no"
5409 then
5410     VLC_ADD_PLUGINS([gtk2_main])
5411     VLC_ADD_CFLAGS([gtk2],[-DNEED_GTK2_MAIN])
5412     VLC_ADD_CFLAGS([pda],[-DNEED_GTK2_MAIN])
5413     VLC_ADD_CFLAGS([gtk2_main],[${CFLAGS_gtk2} ${CFLAGS_pda}])
5414     VLC_ADD_LDFLAGS([gtk2_main],[${LDFLAGS_gtk2} ${LDFLAGS_pda}])
5417 if test "${NEED_GNOME2_MAIN}" != "no"
5418 then
5419     VLC_ADD_PLUGINS([gnome2_main])
5420     VLC_ADD_CFLAGS([gnome2_main],[${CFLAGS_gtk2} ${CFLAGS_gnome2}])
5421     VLC_ADD_LDFLAGS([gnome2_main],[${LDFLAGS_gtk2} ${LDFLAGS_gnome2}])
5425 dnl  qte_main plugin
5427 if test "${NEED_QTE_MAIN}" != "no"
5428 then
5429     VLC_ADD_PLUGINS([qte_main])
5430     VLC_ADD_CXXFLAGS([opie qte qt_video],[-DNEED_QTE_MAIN])
5431     VLC_ADD_CXXFLAGS([qte_main],[${CXXFLAGS_qte} ${CXXFLAGS_qt_video}])
5432     VLC_ADD_LDFLAGS([qte_main],[${LDFLAGS_qte} ${LDFLAGS_qt_video}])
5437 dnl  Plugin and builtin checks
5439 builtin_support=false
5440 plugin_support=:
5442 dnl Support for plugins - this must be AT THE END
5443 AC_ARG_ENABLE(plugins,
5444   [  --disable-plugins       make all plugins built-in (default plugins enabled)],
5445   [if test "${enable_plugins}" = "no"
5446    then
5447      plugin_support=false
5448    fi])
5450 dnl Automagically disable plugins if there is no system support for
5451 dnl dynamically loadable files (.so, .dll, .dylib).
5452 dnl don't forget vlc-win32 still can load .dll as plugins
5453 if test "${ac_cv_have_plugins}" = "no"
5454 then
5455   echo "*** Your system doesn't have plugin support. All plugins will be built"
5456   echo "statically."
5457   plugin_support=false
5460 AS_IF([${plugin_support}], [
5461   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, Define if we have support for dynamic plugins)
5462 ], [
5463   VLC_ADD_BUILTINS([${PLUGINS}])
5464   PLUGINS=""
5468 dnl Pic and shared libvlc stuff
5470 AS_IF([test "x${enable_shared_libvlc}" = "x"], [enable_shared_libvlc=no])
5471 AM_CONDITIONAL(BUILD_SHARED, [test "${enable_shared_libvlc}" != "no"])
5472 AS_IF([test "${enable_shared_libvlc}" != "no" || test "${enable_libtool}" != "no"], [
5473   AC_DEFINE(HAVE_SHARED_LIBVLC, 1, [Define to 1 if libvlc is built as a shared library.])
5474   FILE_LIBVLC_DLL="!define LIBVLC_DLL libvlc.dll"
5475   VLC_ADD_PLUGINS([${BUILTINS}])
5476   BUILTINS=""
5477 ], [
5478   FILE_LIBVLC_DLL=""
5481  dnl Import conditional variables generated by bootstrap
5482 VLC_CONDITIONALS
5485 dnl  Stuff used by the program
5487 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION} ${CODENAME}", [Simple version string])
5488 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "VLC media player - version ${VERSION} ${CODENAME} - (c) 1996-2006 the VideoLAN team", [Copyright string])
5489 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
5490 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
5491 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
5492 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
5493 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
5494 AC_SUBST(VERSION_MAJOR)
5495 AC_SUBST(VERSION_MINOR)
5496 AC_SUBST(VERSION_REVISION)
5497 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure]) 
5498 AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [host which ran configure]) 
5499 AC_DEFINE_UNQUOTED(VLC_COMPILE_DOMAIN, "`dnsdomainname 2>/dev/null || domainname 2>/dev/null || echo unknown`", [domain of the host which ran configure]) 
5500 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler]) 
5502 dnl Old definitions for version-dependant plugins
5503 dnl VLC_SYMBOL="`echo ${VERSION} | sed -e 'y/.-+/___/'`"
5504 dnl AC_DEFINE_UNQUOTED(MODULE_SUFFIX, "__${VLC_SYMBOL}", [String suffix for module functions])
5505 dnl AC_DEFINE_UNQUOTED(MODULE_SYMBOL, ${VLC_SYMBOL}, [Symbol suffix for module functions])
5507 dnl New definitions with value matching 0.8.6 release
5508 module_symbol="0_8_6c"
5509 AC_DEFINE_UNQUOTED(MODULE_SUFFIX, "__${module_symbol}", [String suffix for module functions])
5510 AC_DEFINE_UNQUOTED(MODULE_SYMBOL, $module_symbol, [Symbol suffix for module functions])
5511 VLC_ENTRY="vlc_entry__${module_symbol}"
5512 AC_SUBST(VLC_ENTRY)
5515 dnl  Handle substvars that use $(top_srcdir)
5517 VLC_CONFIG="top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
5518 AC_SUBST(VLC_CONFIG)
5519 CPPFLAGS_save="${CPPFLAGS_save} -I\$(top_srcdir)/include"
5522 dnl  Restore *FLAGS
5524 VLC_RESTORE_FLAGS
5527 dnl  Create the vlc-config script
5529 LDFLAGS_libvlc="${LDFLAGS_vlc} ${LDFLAGS_builtin}"
5530 for i in `echo "${BUILTINS}" | sed -e 's@[^ ]*/@@g'` ; do LDFLAGS_libvlc="${LDFLAGS_libvlc} ${libdir}/vlc/${i}.a `eval echo '$'{LDFLAGS_${i}}`" ; done
5533 dnl  Configuration is finished
5535 AC_SUBST(SYS)
5536 AC_SUBST(ARCH)
5537 AC_SUBST(ALIASES)
5538 AC_SUBST(ASM)
5539 AC_SUBST(MOC)
5540 AC_SUBST(RCC)
5541 AC_SUBST(UIC)
5542 AC_SUBST(WINDRES)
5543 AC_SUBST(MOZILLA_SDK_PATH)
5544 AC_SUBST(WINE_SDK_PATH)
5545 AC_SUBST(XPIDL)
5546 AC_SUBST(XPIDL_INCL)
5547 AC_SUBST(LIBEXT)
5548 AC_SUBST(AM_CPPFLAGS)
5549 AC_SUBST(ALL_LINGUAS)
5550 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
5551 AC_SUBST(FILE_LIBVLC_DLL)
5553 dnl Import substitutions generated by bootstrap
5554 VLC_SUBSTS
5556 dnl Create vlc-config.in
5557 VLC_OUTPUT_VLC_CONFIG_IN
5559 AC_CONFIG_FILES([
5560   vlc.win32.nsi
5561   Makefile
5562   activex/Makefile
5563   activex/axvlc.inf
5564   bindings/Makefile
5565   bindings/java/Makefile
5566   bindings/java/src/Makefile
5567   bindings/python/Makefile
5568   doc/Makefile
5569   intl/Makefile
5570   ipkg/Makefile
5571   loader/Makefile
5572   modules/Makefile
5573   mozilla/Makefile
5574   m4/Makefile
5575   po/Makefile.in
5576   share/Makefile
5577   src/Makefile
5580 AC_CONFIG_FILES([
5581   modules/access/Makefile
5582   modules/access/dshow/Makefile
5583   modules/access/dvb/Makefile
5584   modules/access/mms/Makefile
5585   modules/access/cdda/Makefile
5586   modules/access/rtsp/Makefile
5587   modules/access/vcd/Makefile
5588   modules/access/vcdx/Makefile
5589   modules/access/screen/Makefile
5590   modules/access_filter/Makefile
5591   modules/access_output/Makefile
5592   modules/audio_filter/Makefile
5593   modules/audio_filter/channel_mixer/Makefile
5594   modules/audio_filter/converter/Makefile
5595   modules/audio_filter/resampler/Makefile
5596   modules/audio_mixer/Makefile
5597   modules/audio_output/Makefile
5598   modules/codec/Makefile
5599   modules/codec/cmml/Makefile
5600   modules/codec/dmo/Makefile
5601   modules/codec/ffmpeg/Makefile
5602   modules/codec/spudec/Makefile
5603   modules/control/Makefile
5604   modules/control/http/Makefile
5605   modules/demux/Makefile
5606   modules/demux/asf/Makefile
5607   modules/demux/avi/Makefile
5608   modules/demux/mp4/Makefile
5609   modules/demux/mpeg/Makefile
5610   modules/demux/playlist/Makefile
5611   modules/gui/Makefile
5612   modules/gui/beos/Makefile
5613   modules/gui/pda/Makefile
5614   modules/gui/macosx/Makefile
5615   modules/gui/qnx/Makefile
5616   modules/gui/qt4/Makefile
5617   modules/gui/skins2/Makefile
5618   modules/gui/wxwidgets/Makefile
5619   modules/gui/wince/Makefile
5620   modules/meta_engine/Makefile
5621   modules/misc/Makefile
5622   modules/misc/dummy/Makefile
5623   modules/misc/memcpy/Makefile
5624   modules/misc/network/Makefile
5625   modules/misc/notify/Makefile
5626   modules/misc/testsuite/Makefile
5627   modules/misc/playlist/Makefile
5628   modules/misc/xml/Makefile
5629   modules/misc/probe/Makefile
5630   modules/mux/Makefile
5631   modules/mux/mpeg/Makefile
5632   modules/mux/rtp/Makefile
5633   modules/packetizer/Makefile
5634   modules/services_discovery/Makefile
5635   modules/stream_out/Makefile
5636   modules/stream_out/transrate/Makefile
5637   modules/video_chroma/Makefile
5638   modules/video_filter/Makefile
5639   modules/video_filter/swscale/Makefile
5640   modules/video_output/Makefile
5641   modules/video_output/directx/Makefile
5642   modules/video_output/qte/Makefile
5643   modules/video_output/x11/Makefile
5644   modules/visualization/Makefile
5645   modules/visualization/visual/Makefile
5646   modules/visualization/galaktos/Makefile
5649 dnl Generate makefiles
5650 AC_OUTPUT
5652 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
5653 # not provided with the source
5654 ${SHELL} ./config.status --file=vlc-config
5655 chmod 0755 vlc-config
5657 dnl echo "Enabled builtin modules :"
5658 dnl for a in `./vlc-config --target builtin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)\.a,\2 (\1),'
5660 dnl echo "Enabled plugin modules :"
5661 dnl for a in `./vlc-config --target plugin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)_plugin,\2 (\1),'
5663 dnl Shortcut to nice compile message
5664 rm -f compile
5665 echo '#! /bin/sh' >compile
5667 echo "PATH=$PATH LANG=C make \$* 2>&1| \\" >> compile
5668 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/make.pl' >> compile
5669 chmod a+x compile
5671 printf "
5672 vlc configuration
5673 --------------------
5674 vlc version           : ${VERSION}
5675 system                : ${SYS}
5676 architecture          : ${ARCH}
5677 build flavour         : "
5678 test "${enable_debug}" = "yes" && printf "debug "
5679 test "${enable_cprof}" = "yes" && printf "cprof "
5680 test "${enable_gprof}" = "yes" && printf "gprof "
5681 test "${enable_optimizations}" = "yes" && printf "optim "
5682 test "${enable_release}" = "yes" && printf "release " || printf "devel "
5683 echo "
5684 vlc aliases           :${ALIASES}
5686 You can tune the compiler flags in vlc-config.
5687 To build vlc and its plugins, type \`./compile' or \`make'.