5223ed70f155647cb8740a23d64797e3bf0e1c51
[vlc.git] / configure.ac
1 dnl Autoconf settings for vlc
2
3 AC_INIT(vlc,0.9.0-svn)
4 VERSION_MAJOR="0"
5 VERSION_MINOR="9"
6 VERSION_REVISION="0"
7 VERSION_EXTRA="svn"
8
9 CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
10 CODENAME="Grishenko"
11 COPYRIGHT_YEARS="1996-2008"
12
13 AC_PREREQ(2.59) dnl this really should be 2.59c
14 AC_CONFIG_SRCDIR(src/libvlc.c)
15 AC_CONFIG_AUX_DIR(autotools)
16 AC_CANONICAL_BUILD
17 AC_CANONICAL_HOST
18
19 AM_INIT_AUTOMAKE([1.9 check-news dist-bzip2 no-dist-gzip -Wall])
20 AM_CONFIG_HEADER(config.h)
21
22 dnl Too many people are not aware of maintainer mode:
23 dnl If you want to use it, you definitely know what you are doing, so
24 dnl you can specify "--disable-maintainer-mode". But if you want the default
25 dnl automake behavior, you've likely never heard of maintainer mode, so we
26 dnl can't expect you to enable it manually.
27
28 AS_IF([test "x${enable_maintainer_mode}" != "xno"],
29         [enable_maintainer_mode="yes"])
30 AM_MAINTAINER_MODE
31
32 dnl
33 dnl  Save *FLAGS
34 dnl
35 VLC_SAVE_FLAGS
36
37 dnl
38 dnl Check for tools
39 dnl
40 AC_PROG_CC_C99
41 AC_USE_SYSTEM_EXTENSIONS
42 AC_DEFINE([_FORTIFY_SOURCE], 2, [Define to `2' to get glibc warnings.])
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
52
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, :)
58 AC_CHECK_TOOL(DLLTOOL, dlltool, :)
59
60 dnl Check for compiler properties
61 AC_C_CONST
62 AC_C_INLINE
63 AC_C_RESTRICT
64
65 dnl
66 dnl  Check for the contrib directory
67 dnl
68 AC_ARG_WITH(contrib,
69     [  --without-contrib       do not use the libraries in extras/contrib],[],[])
70   if test "${with_contrib}" != "no"; then 
71     AC_MSG_CHECKING([for libs in extras/contrib])
72     topdir="`dirname $0`"
73     if test "`echo \"$topdir\" | cut -c 1`" != "/"; then
74        topdir="`pwd`/$topdir"
75     fi
76    if test "`grep HOST ${topdir}/extras/contrib/config.mak 2>/dev/null|awk '{print $3}'`" != "`$CC -dumpmachine`"; then
77       if test "${with_contrib}" = "yes"; then
78         AC_MSG_RESULT([no])
79         AC_MSG_ERROR([ not using the libs in extras/contrib as it is not the same host])
80       else
81         AC_MSG_RESULT([no])
82         AC_MSG_WARN([ not using the libs in extras/contrib as it is not the same host])
83       fi
84      else
85   if test -d ${topdir}/extras/contrib/lib; then
86     AC_MSG_RESULT([yes])
87     export PATH=${topdir}/extras/contrib/bin:$PATH
88     CPPFLAGS="${CPPFLAGS} -I${topdir}/extras/contrib/include"
89     CPPFLAGS_save="${CPPFLAGS_save} -I${topdir}/extras/contrib/include"
90     CFLAGS="${CFLAGS} -I${topdir}/extras/contrib/include"
91     CFLAGS_save="${CFLAGS_save} -I${topdir}/extras/contrib/include"
92     CXXFLAGS="${CXXFLAGS} -I${topdir}/extras/contrib/include"
93     CXXFLAGS_save="${CXXFLAGS_save} -I${topdir}/extras/contrib/include"
94     OBJCFLAGS="${OBJCFLAGS} -I${topdir}/extras/contrib/include"
95     OBJCFLAGS_save="${OBJCFLAGS_save} -I${topdir}/extras/contrib/include"
96     if test $build = $host -o "$PKG_CONFIG_LIBDIR"; then
97         export PKG_CONFIG_PATH=${topdir}/extras/contrib/lib/pkgconfig:$PKG_CONFIG_PATH
98     else
99         export PKG_CONFIG_LIBDIR=${topdir}/extras/contrib/lib/pkgconfig
100     fi
101     LDFLAGS="${LDFLAGS} -L${topdir}/extras/contrib/lib"
102     LDFLAGS_save="${LDFLAGS_save} -L${topdir}/extras/contrib/lib"
103
104     if test -z $with_live555_tree; then
105        with_live555_tree=${topdir}/extras/contrib/src/live
106     fi
107     if test -z $with_goom_tree; then
108        with_goom_tree=${topdir}/extras/contrib/src/goom
109     fi
110     if test -z $with_mozilla_sdk_path; then
111        with_mozilla_sdk_path=${topdir}/extras/contrib/gecko-sdk
112     fi
113     if test -z $with_cyberlink_tree; then
114        with_cyberlink_tree=${topdir}/extras/contrib/src/clinkcc
115     fi
116     if test -z $with_libmpeg2_tree; then
117        with_libmpeg2_tree=${topdir}/extras/contrib/src/mpeg2dec
118     fi
119     if test -z $with_a52_tree; then
120        with_a52_tree=${topdir}/extras/contrib/src/a52dec
121     fi
122
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
134 fi
135 dnl
136 dnl  Set default values
137 dnl
138 LDFLAGS_vlc="${LDFLAGS}"
139
140 dnl
141 dnl  Check the operating system
142 dnl
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_LIBS([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="${LDFLAGS_save}"
164         ;;
165     esac
166     ;;
167   darwin*)
168     SYS=darwin
169     CFLAGS_save="${CFLAGS_save} -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
170     CXXFLAGS_save="${CXXFLAGS_save} -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
171     OBJCFLAGS_save="${OBJCFLAGS_save} -D_INTL_REDIRECT_MACROS -std=gnu99"; OBJCFLAGS="${OBJCFLAGS_save}"
172     LDFLAGS_save="${LDFLAGS_save} -Wl,-headerpad_max_install_names"; LDFLAGS="${LDFLAGS_save}"
173     VLC_ADD_LDFLAGS([mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
174     VLC_ADD_LDFLAGS([mkv mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
175     VLC_ADD_CFLAGS([libvlc vlc],[-x objective-c])
176     VLC_ADD_LDFLAGS([vlc],[-Wl,-undefined,dynamic_lookup])
177     VLC_ADD_LDFLAGS([libvlc_control],[-Wl,dynamic_lookup])
178     VLC_ADD_LDFLAGS([ffmpeg i420_rgb_mmx],[-Wl,-read_only_relocs,suppress])
179     VLC_ADD_CFLAGS([motion],[-fconstant-cfstrings])
180     VLC_ADD_LDFLAGS([libvlc],[-Wl,-framework,Cocoa,-framework,CoreFoundation])
181     VLC_ADD_LDFLAGS([motion],[-Wl,-framework,IOKit,-framework,CoreFoundation])
182     AC_ARG_ENABLE(macosx-defaults,
183         [  --enable-macosx-defaults Build the default configuration on Mac OS X (default enabled)])
184     if test "x${enable_macosx_defaults}" != "xno"
185     then
186         echo ""
187         echo "Building with Mac OS X defaults:"
188         with_macosx_version_min="10.4"
189         echo "  Assuming --with-macosx-version-min=10.4"
190         enable_macosx="yes"
191         echo "  Assuming --enable-macosx"
192         enable_faad="yes"
193         echo "  Assuming --enable-faad"
194         enable_flac="yes"
195         echo "  Assuming --enable-flac"
196         enable_theora="yes"
197         echo "  Assuming --enable-theora"
198         enable_shout="yes"
199         echo "  Assuming --enable-shout"
200         enable_cddax="yes"
201         echo "  Assuming --enable-cddax"
202         enable_vcdx="yes"
203         echo "  Assuming --enable-vcdx"
204         enable_caca="yes"
205         echo "  Assuming --enable-caca"
206         enable_goom="yes"
207         echo "  Assuming --enable-goom"
208         enable_ncurses="yes"
209         echo "  Assuming --enable-ncurses"
210         enable_twolame="yes"
211         echo "  Assuming --enable-twolame"
212         enable_realrtsp="yes"
213         echo "  Assuming --enable-realrtsp"
214
215         enable_skins2="no"
216         echo "  Assuming --disable-skins2"
217         enable_x11="no"
218         echo "  Assuming --disable-x11"
219         enable_glx="no"
220         echo "  Assuming --disable-glx"
221         enable_xvideo="no"
222         echo "  Assuming --disable-xvideo"
223
224         with_macosx_sdk=""
225         echo "  Compiling with default SDK"
226     fi
227     if test ".`uname -p`" = ".i386"; then
228         dnl Due to a ld(64) bug in 10.5 we cannot use our mmx code
229         dnl without hacking it a lot, we disable mmx and sse.
230         dnl (that bug is about ld being unable to handle
231         dnl text relocation)
232         save_cflags="$CFLAGS"
233         CFLAGS="$CFLAGS -dynamiclib -single_module -read_only_relocs suppress"
234         AC_TRY_LINK(
235             [int a;], [asm("movq _a,%mm0\n");],
236             ac_ld_does_not_support_text_reloc=no,
237             ac_ld_does_not_support_text_reloc=yes)
238         CFLAGS="$save_cflags"
239
240         if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
241             enable_mmx="no"
242             echo "  Assuming --disable-mmx (due to a bug in ld)"
243             enable_sse="no"
244             echo "  Assuming --disable-sse (due to a bug in ld)"
245         fi
246     fi
247     dnl
248     dnl  Check for Mac OS X SDK settings
249     dnl
250     AC_ARG_WITH(macosx-sdk,
251        [  --with-macosx-sdk=DIR   compile using the SDK in DIR])
252     if test "${with_macosx_sdk}" != "" ; then
253         CC="${CC} -isysroot ${with_macosx_sdk}" 
254         CXX="${CXX} -isysroot ${with_macosx_sdk}"
255         OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
256         LD="${LD} -syslibroot ${with_macosx_sdk}"
257     fi
258     AC_ARG_WITH(macosx-version-min,
259        [  --with-macosx-version-min=VERSION  compile for MacOSX VERSION and above])
260     if test "${with_macosx_version_min}" != "" ; then
261         CC="${CC} -mmacosx-version-min=${with_macosx_version_min}" 
262         CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
263         OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
264         LD="${LD} -macosx_version_min=${with_macosx_version_min}"
265         CFLAGS_save="${CFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CFLAGS="${CFLAGS_save}"
266         CXXFLAGS_save="${CXXFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CXXFLAGS="${CXXFLAGS_save}"
267         OBJCFLAGS_save="${OBJCFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; OBJCFLAGS="${OBJCFLAGS_save}"
268         MACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}
269         export MACOSX_DEPLOYMENT_TARGET
270     fi
271     ;;
272   *mingw32* | *cygwin* | *wince* | *mingwce* | *pe*)
273     AC_CHECK_TOOL(WINDRES, windres, :)
274
275     case "${host_os}" in
276       *mingw32*)
277         SYS=mingw32
278         ;;
279       *cygwin*)
280         dnl Check if we are using the mno-cygwin mode in which case we are
281         dnl actually dealing with a mingw32 compiler.
282         AC_EGREP_CPP(yes,
283             [#ifdef WIN32
284              yes
285              #endif],
286             SYS=mingw32, SYS=cygwin)
287         ;;
288       *wince* | *mingwce* | *pe*)
289         SYS=mingwce
290         ;;
291     esac
292
293     if test "${SYS}" = "mingw32"; then
294         # add ws2_32 for closesocket, select, recv
295         VLC_ADD_LIBS([libvlc],[-lws2_32 -lnetapi32 -lwinmm])
296         VLC_ADD_LDFLAGS([vlc],[-mwindows])
297         VLC_ADD_LIBS([activex mozilla],[-lgdi32])
298         VLC_ADD_LIBS([cdda vcdx cddax sdl_image],[-lwinmm])
299         VLC_ADD_LIBS([access_http access_mms access_udp access_tcp access_ftp access_output_udp access_output_shout sap slp http stream_out_standard stream_out_rtp vod_rtsp access_realrtsp telnet rc netsync gnutls growl flac ts audioscrobbler lua],[-lws2_32])
300     fi
301     if test "${SYS}" = "mingwce"; then
302         # add ws2 for closesocket, select, recv
303         VLC_ADD_CPPFLAGS([libvlc vlc],[-Dmain(a,b)=maince(a,b)])
304         VLC_ADD_LDFLAGS([libvlc vlc],[-e WinMainCRTStartup])
305         VLC_ADD_LIBS([libvlc access_http access_mms access_udp access_tcp access_ftp access_output_udp sap http netsync],[-lws2])
306    fi
307     ;;
308   *nto*)
309     SYS=nto
310     VLC_ADD_LIBS([x11 xvideo],[-lsocket])
311     ;;
312   solaris*)
313     SYS=solaris
314     # _POSIX_PTHREAD_SEMANTICS is needed to get the POSIX ctime_r
315     # Perhaps it is useful other places as well? 
316     CFLAGS_save="${CFLAGS_save} -D_POSIX_PTHREAD_SEMANTICS"; CFLAGS="${CFLAGS_save}"
317     ;;
318   hpux*)
319     SYS=hpux
320     ;;
321   beos)
322     SYS=beos
323     CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}"
324     CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}"
325     VLC_ADD_CXXFLAGS([beos],[])
326     VLC_ADD_LIBS([vlc libvlc logger],[-lbe])
327     VLC_ADD_LIBS([beos],[-lbe -lmedia -ltranslation -ltracker -lgame])
328     VLC_ADD_LIBS([dvdnav dvdread],[-ldl])
329     VLC_ADD_LIBS([access_file],[-lpoll])
330     LDFLAGS_save="${LDFLAGS_save} -lintl"; LDFLAGS="${LDFLAGS_save}"
331     dnl Check for BONE
332     if test -f /boot/beos/system/lib/libbind.so; then
333         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlc growl],[-lbind -lsocket])
334     else
335         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlc growl],[-lnet])
336     fi
337
338     dnl Ugly check for Zeta
339     if test -f /boot/beos/system/lib/libzeta.so; then
340         VLC_ADD_LIBS([beos],[-lzeta])
341     fi
342     ;;
343   *)
344     SYS="${host_os}"
345     ;;
346 esac
347 AM_CONDITIONAL(HAVE_BEOS, test "${SYS}" = "beos")
348 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
349 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
350 AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
351
352 dnl
353 dnl Sadly autoconf doesn't think about testing foo.exe when ask to test 
354 dnl for program foo on win32
355
356 case "${build_os}" in
357     cygwin|msys)
358         ac_executable_extensions=".exe"
359         ;;
360     *)
361         ;;
362 esac
363
364 dnl 
365 dnl  Libtool
366 dnl  It's very bad, but our former custom system was worst
367 dnl  -- Courmisch
368 dnl
369
370 dnl override platform specific check for dependent libraries
371 dnl otherwise libtool linking of shared libraries will
372 dnl fail on anything other than pass_all.
373 AC_CACHE_VAL(lt_cv_deplibs_check_method,
374     [lt_cv_deplibs_check_method=pass_all])
375
376 AC_DISABLE_STATIC
377 AC_DISABLE_FAST_INSTALL
378 AC_LIBTOOL_DLOPEN
379 AC_LIBTOOL_WIN32_DLL
380 m4_undefine([AC_PROG_F77])
381 m4_defun([AC_PROG_F77],[])
382 AC_PROG_LIBTOOL
383
384 m4_undefine([AC_DEPLIBS_CHECK_METHOD])
385 m4_defun([AC_DEPLIBS_CHECK_METHOD],[])
386
387 lt_cv_deplibs_check_method=pass_all
388
389
390 dnl
391 dnl Gettext stuff
392 dnl
393 AM_GNU_GETTEXT_VERSION(0.16.1)
394 AM_GNU_GETTEXT
395 AS_IF([test "${nls_cv_force_use_gnu_gettext}" = "yes"], [
396   AC_DEFINE(HAVE_INCLUDED_GETTEXT, 1, [Define if we use the local libintl])
397   AM_CPPFLAGS="${AM_CPPFLAGS} -I\$(top_builddir)/intl"
398 ], [
399   VLC_ADD_LIBS([libvlc vlc], [${LTLIBINTL}])
400 ])
401
402 dnl
403 dnl Iconv stuff
404 dnl
405 AS_IF([test "$am_cv_func_iconv" != "yes"],
406         [AC_MSG_ERROR([libiconv is needed for VLC to work properly])])
407 VLC_ADD_CFLAGS([libvlc],[${INCICONV}])
408 VLC_ADD_LIBS([libvlc],[${LTLIBICONV}])
409
410 dnl Check for the need to include the mingwex lib for mingw32
411 if test "${SYS}" = "mingw32"
412 then
413     AC_CHECK_LIB(mingwex,opendir,
414         AC_CHECK_LIB(mingw32,opendir,,
415             [VLC_ADD_LIBS([libvlc gtk],[-lmingwex])])
416     )
417 fi
418
419 dnl Check for fnative-struct or mms-bitfields support for mingw32
420 if test "${SYS}" = "mingw32"
421 then
422     AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
423         [ac_cv_c_mms_bitfields],
424         [CFLAGS="${CFLAGS_save} -mms-bitfields"
425          AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
426     if test "${ac_cv_c_mms_bitfields}" != "no"; then
427         CFLAGS_save="${CFLAGS_save} -mms-bitfields";
428         CXXFLAGS_save="${CXXFLAGS_save} -mms-bitfields";
429     else
430         AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
431             [ac_cv_c_fnative_struct],
432             [CFLAGS="${CFLAGS_save} -fnative-struct"
433              AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
434         if test "${ac_cv_c_fnative_struct}" != "no"; then
435             CFLAGS_save="${CFLAGS_save} -fnative-struct";
436             CXXFLAGS_save="${CXXFLAGS_save} -fnative-struct";
437         fi
438     fi
439
440     CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
441 fi
442
443 dnl Check for fvtable-thunks support for mingw32
444 if test "${SYS}" = "mingw32" -a "${CXX}" != ""
445 then
446 AC_LANG_PUSH(C++)
447     AC_CACHE_CHECK([if \$CXX accepts -fvtable-thunks],
448         [ac_cv_cxx_fvtable_thunks],
449         [CXXFLAGS="${CXXFLAGS_save} -Wall -Werror -fvtable-thunks"
450          AC_TRY_COMPILE([],,ac_cv_cxx_fvtable_thunks=yes,
451                         ac_cv_cxx_fvtable_thunks=no)])
452     if test "${ac_cv_cxx_fvtable_thunks}" = "yes"; then
453         CXXFLAGS_mingw32_special="-fvtable-thunks"
454     fi
455
456     CXXFLAGS_save="${CXXFLAGS_save} ${CXXFLAGS_mingw32_special}"; CXXFLAGS="${CXXFLAGS_save}"
457 AC_LANG_POP(C++)
458 fi
459
460 dnl Plugin compilation stuff
461
462 VLC_LIBRARY_SUFFIX
463
464 VLC_SYMBOL_PREFIX
465 AC_SUBST(SYMPREF)
466
467 dnl The -DSYS_FOO flag
468 CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
469
470 dnl Check for system libs needed
471 need_libc=false
472
473 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)
474
475 dnl Check for usual libc functions
476 AC_CHECK_FUNCS(strdup strndup strnlen atof)
477 AC_CHECK_FUNCS(strcasecmp,,[AC_CHECK_FUNCS(stricmp)])
478 AC_CHECK_FUNCS(strncasecmp,,[AC_CHECK_FUNCS(strnicmp)])
479 AC_CHECK_FUNCS(strcasestr,,[AC_CHECK_FUNCS(stristr)])
480
481 AS_IF([test "${SYS}" = "linux"], [
482   AC_CHECK_FUNCS(tee)
483 ])
484
485 dnl Check for setlocal and langinfo
486 AC_CHECK_FUNCS(setlocale)
487 AC_CHECK_HEADERS(langinfo.h)
488 AC_CHECK_FUNCS(nl_langinfo)
489
490 AC_CACHE_CHECK([for nl_langinfo and CODESET], ac_cv_langinfo_codeset,
491   [AC_TRY_LINK([#include <langinfo.h>],
492     [char* cs = nl_langinfo(CODESET);],
493     ac_cv_langinfo_codeset=yes,
494     ac_cv_langinfo_codeset=no)
495   ])
496 if test ${ac_cv_langinfo_codeset} = yes; then
497   AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
498     [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
499 fi
500
501 AC_CHECK_FUNCS(connect,,[
502   AC_CHECK_LIB(socket,connect,[
503     VLC_ADD_LIBS([libvlc cdda cddax],-lsocket)
504     LIBS_socket="-lsocket"
505   ])
506 ])
507
508 AC_CHECK_FUNCS(send,,[
509   AC_CHECK_LIB(socket,send,[
510     VLC_ADD_LIBS([access_http access_mms access_udp access_tcp access_ftp sap access_output_udp stream_out_standard growl],[-lsocket])
511   ])
512 ])
513
514 AC_CHECK_FUNCS(gethostbyname,,[
515   AC_CHECK_LIB(nsl,gethostbyname,[
516     VLC_ADD_LIBS([cdda cddax libvlc],[-lnsl])
517   ],[
518     AC_CHECK_LIB(bind,gethostbyname,[
519       VLC_ADD_LIBS([access_mms],[-lbind])
520     ])
521   ])
522 ])
523
524 AC_CHECK_HEADERS(zlib.h, [
525   VLC_ADD_LIBS([access_http],[-lz])
526 ])
527
528 dnl Check for socklen_t
529 AC_CACHE_CHECK([for socklen_t], ac_cv_type_socklen_t,
530   [AC_TRY_COMPILE(
531      [#include <sys/types.h>
532       #include <sys/socket.h>],
533      [socklen_t len = 42; return len;],
534      ac_cv_type_socklen_t=yes,
535      ac_cv_type_socklen_t=no)])
536 if test "${ac_cv_type_socklen_t}" != "no"; then
537   AC_DEFINE(HAVE_SOCKLEN_T, 1, [Define if <sys/socket.h> defines socklen_t.])
538 fi
539
540 dnl Check for struct sockaddr_storage
541 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.])
542 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.])
543 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
544   [AC_TRY_COMPILE(
545     [#include <sys/types.h>
546      #if defined( UNDER_CE )
547      # include <winsock.h>
548      #elif defined( WIN32 )
549      # include <winsock2.h>
550      #else
551      # include <sys/socket.h>
552      #endif], [struct sockaddr_storage addr;],
553      ac_cv_struct_sockaddr_storage=yes,
554      ac_cv_struct_sockaddr_storage=no)])
555 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
556   AC_DEFINE(sockaddr_storage, sockaddr)
557   AC_DEFINE(ss_family, sa_family)
558 ])
559
560 dnl getaddrinfo, getnameinfo and gai_strerror check
561 dnl  -lnsl and -lsocket are needed on Solaris;
562 dnl  we purposedly make the test fail on Windows
563 LIBS_save="${LIBS}"
564 AH_TEMPLATE(HAVE_GETADDRINFO, [Define to 1 if you have the `getaddrinfo' function.])
565 AC_SEARCH_LIBS([getaddrinfo], [nsl], [AC_DEFINE(HAVE_GETADDRINFO)], 1, [${LIBS_socket}])
566
567 dnl NOTE: we assume getaddrinfo will be present if getnameinfo or gai_strerro
568 dnl are
569 LIBS="${LIBS_gai}"
570 AC_CHECK_FUNCS([getnameinfo gai_strerror])
571 LIBS="${LIBS_save}"
572
573 AH_TEMPLATE(HAVE_ADDRINFO, [Define to 1 if <netdb.h> defines `struct addrinfo'.])
574 AC_CHECK_TYPES([struct addrinfo],[AC_DEFINE(HAVE_ADDRINFO)],,
575 [#include <sys/types.h>
576 #if defined( WIN32 ) || defined( UNDER_CE )
577 # if defined(UNDER_CE) && defined(sockaddr_storage)
578 #  undef sockaddr_storage
579 # endif
580 # include <winsock2.h>
581 # include <ws2tcpip.h>
582 #else
583 # include <netdb.h>
584 #endif])
585
586 dnl Check for va_copy
587 AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
588   AC_TRY_LINK(
589     [#include <stdarg.h>],
590     [va_list ap1, ap2; va_copy(ap1,ap2);],
591     [ac_cv_c_va_copy="yes"],
592     [ac_cv_c_va_copy="no"]))
593 if test "${ac_cv_c_va_copy}" = "yes"; then
594   AC_DEFINE(HAVE_VA_COPY, 1, [Define if <stdarg.h> defines va_copy.])
595 fi
596 AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
597   AC_TRY_LINK(
598     [#include <stdarg.h>],
599     [va_list ap1, ap2; __va_copy(ap1,ap2);],
600     [ac_cv_c___va_copy="yes"],
601     [ac_cv_c___va_copy="no"]))
602 if test "${ac_cv_c___va_copy}" = "yes"; then
603   AC_DEFINE(HAVE___VA_COPY, 1, [Define if <stdarg.h> defines __va_copy.])
604 fi
605
606 AC_CHECK_FUNCS(inet_aton,,[
607   AC_CHECK_LIB(resolv,inet_aton,[
608     VLC_ADD_LIBS([libvlc],[-lresolv])
609   ])
610 ])
611
612 dnl Check for getopt (always use builtin one on win32)
613 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
614 need_getopt=:
615 else
616 need_getopt=false
617 AC_CHECK_FUNCS(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
618 [ # FreeBSD has a gnugetopt library for this:
619   AC_CHECK_LIB([gnugetopt],[getopt_long],
620     [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support)
621      VLC_ADD_LIBS([libvlc],[-lgnugetopt])],
622     [need_getopt=:])])
623 fi
624 AM_CONDITIONAL(BUILD_GETOPT, ${need_getopt})
625
626 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
627 AC_TYPE_SIGNAL
628 AC_CHECK_LIB(m,cos,[
629   VLC_ADD_LIBS([adjust wave ripple psychedelic gradient a52tofloat32 dtstofloat32 x264 goom visual panoramix rotate noise grain],[-lm])
630 ])
631 AC_CHECK_LIB(m,pow,[
632   VLC_ADD_LIBS([ffmpeg ffmpegaltivec stream_out_transrate i420_rgb faad twolame equalizer spatializer param_eq libvlc vorbis freetype mod mpc dmo quicktime realaudio galaktos opengl],[-lm])
633 ])
634 AC_CHECK_LIB(m,sqrt,[
635   VLC_ADD_LIBS([headphone_channel_mixer normvol speex mono colorthres extract],[-lm])
636 ])
637 AC_CHECK_LIB(m,ceil,[
638   VLC_ADD_LIBS([mosaic],[-lm])
639 ])
640 AC_CHECK_LIB(m,exp,[
641   VLC_ADD_LIBS([gaussianblur],[-lm])
642 ])
643 AC_CHECK_LIB(mx,sqrtf,[
644   VLC_ADD_LIBS([x264],[-lmx])
645 ])
646 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
647
648 dnl Check for dynamic plugins
649 ac_cv_have_plugins=no
650
651 # OS X style
652 AC_CHECK_HEADERS(mach-o/dyld.h,
653   [AC_CHECK_FUNCS(NSLinkModule,
654     [AC_DEFINE(HAVE_DL_DYLD, 1, [Define if you have the Darwin dyld API])
655      ac_cv_have_plugins=yes])])
656
657 # HP-UX style
658 if test "${ac_cv_have_plugins}" = "no"; then
659   AC_CHECK_HEADERS(dl.h)
660   ac_cv_my_have_shl_load=no
661   AC_CHECK_FUNC(shl_load,
662    [ac_cv_my_have_shl_load=yes,
663     AC_CHECK_LIB(dld, shl_load,
664      [ac_cv_my_have_shl_load=yes
665       VLC_ADD_LIBS([libvlc],[-ldld])])])
666   if test "${ac_cv_my_have_shl_load}" = "yes"; then
667     AC_DEFINE(HAVE_DL_SHL_LOAD, 1, [Define if you have the shl_load API])
668     ac_cv_have_plugins=yes
669   fi
670 fi
671
672 # Whatever style
673 if test "${ac_cv_have_plugins}" = "no"; then
674   AC_CHECK_LIB(dld, dld_link,
675    [VLC_ADD_LIBS([libvlc],[-ldld])
676     AC_DEFINE(HAVE_DL_DLD_LINK, 1, [Define if you have the GNU dld library])
677     ac_cv_have_plugins=yes])
678 fi
679
680 # Win32 style
681 if test "${ac_cv_have_plugins}" = "no"; then
682   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
683     AC_CHECK_LIB(kernel32, main,
684      [VLC_ADD_LIBS([libvlc],[-lkernel32])
685       AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
686       ac_cv_have_plugins=yes])
687   fi
688 fi
689
690 # WinCE style
691 if test "${ac_cv_have_plugins}" = "no"; then
692   if test "${SYS}" = "mingwce"; then
693     AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
694     ac_cv_have_plugins=yes
695   fi
696 fi
697
698 # BeOS style
699 if test "${ac_cv_have_plugins}" = "no"; then
700   AC_CHECK_HEADERS(image.h)
701   AC_CHECK_FUNCS(load_add_on,
702    [AC_DEFINE(HAVE_DL_BEOS, 1, [Define if you have the BeOS dl])
703     ac_cv_have_plugins=yes])
704 fi
705
706 # Only test for dlopen() if the others didn't work
707 if test "${ac_cv_have_plugins}" = "no"; then
708   AC_CHECK_HEADERS(dlfcn.h sys/dl.h)
709   ac_cv_my_have_dlopen=no
710   AC_CHECK_FUNC(dlopen,
711     ac_cv_my_have_dlopen=yes,
712     AC_CHECK_LIB(dl, dlopen,
713       ac_cv_my_have_dlopen=yes
714       VLC_ADD_LIBS([libvlc],[-ldl]),
715       AC_CHECK_LIB(svld, dlopen,
716         ac_cv_my_have_dlopen=yes
717         VLC_ADD_LIBS([libvlc],[-lsvld]))))
718   if test "${ac_cv_my_have_dlopen}" = "yes"; then
719     AC_DEFINE(HAVE_DL_DLOPEN, 1, [Define if you have the dlopen API])
720     ac_cv_have_plugins=yes
721   fi
722 fi
723
724 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
725 dnl Check for pthreads - borrowed from XMMS
726 THREAD_LIB=error
727 if test "${THREAD_LIB}" = "error"; then
728   AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
729 fi
730 if test "${THREAD_LIB}" = "error"; then
731   AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
732 fi
733 if test "${THREAD_LIB}" = "error"; then
734   AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
735 fi
736 if test "${THREAD_LIB}" = "error"; then
737   AC_CHECK_FUNCS(pthread_mutex_lock)
738   THREAD_LIB=""
739 fi
740
741 dnl Check for cthreads under GNU/Hurd for instance
742 AC_CHECK_LIB(threads,cthread_fork,THREAD_LIB="-lthreads")
743
744 dnl
745 dnl  State Threads
746 dnl
747 AC_ARG_ENABLE(st,
748   [  --enable-st             State Threads (default disabled)],
749   [ if test "${enable_st}" = "yes"; then
750     AC_CHECK_LIB(st,st_init)
751     AC_MSG_CHECKING(for st_init in st.h)
752     AC_EGREP_HEADER(st_init,st.h,[
753       AC_MSG_RESULT(yes)
754       AC_DEFINE(ST_INIT_IN_ST_H, 1,
755                 Define if <st.h> defines st_init)
756       THREAD_LIB="-lst"
757     ],[
758       AC_MSG_RESULT(yes)
759     ])
760     fi
761 ])
762
763 VLC_ADD_LIBS([libvlc plugin],[${THREAD_LIB}])
764
765 dnl Don't link with rt when using GNU-pth
766 if test "${THREAD_LIB}" != "-lst"; then
767   AC_CHECK_LIB(rt, clock_nanosleep, [
768     VLC_ADD_LIBS([libvlc],[-lrt])
769     AC_DEFINE(HAVE_CLOCK_NANOSLEEP, 1, [Define to 1 if you have clock_nanosleep.])
770   ], [
771     dnl HP/UX port
772     AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LIBS([libvlc],[-lrt])])
773   ])
774
775   have_nanosleep=false
776   AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[
777     AC_CHECK_LIB(rt,nanosleep,
778       [VLC_ADD_LIBS([libvlc],[-lrt]) have_nanosleep=:],
779       [AC_CHECK_LIB(posix4,nanosleep,
780           [VLC_ADD_LIBS([libvlc],[-lposix4]) have_nanosleep=:])]
781     )
782   ])
783   if ${have_nanosleep}; then
784     AC_DEFINE(HAVE_NANOSLEEP, 1,
785               Define if nanosleep is available.)
786   fi
787 fi
788
789 dnl Check for misc headers
790 AC_MSG_CHECKING(for pthread_cond_t in pthread.h)
791 AC_EGREP_HEADER(pthread_cond_t,pthread.h,[
792   AC_MSG_RESULT(yes)
793   AC_DEFINE(PTHREAD_COND_T_IN_PTHREAD_H, 1,
794             Define if <pthread.h> defines pthread_cond_t.)],[
795   AC_MSG_RESULT(no)])
796
797 AC_MSG_CHECKING(for pthread_once in pthread.h)
798 AC_EGREP_HEADER(pthread_once,pthread.h,[
799   AC_MSG_RESULT(yes)
800   AC_DEFINE(PTHREAD_ONCE_IN_PTHREAD_H, 1,
801             Define if <pthread.h> defines pthread_once.)],[
802   AC_MSG_RESULT(no)])
803 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
804
805 AC_MSG_CHECKING(for strncasecmp in strings.h)
806 AC_EGREP_HEADER(strncasecmp,strings.h,[
807   AC_MSG_RESULT(yes)
808   AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
809             Define if <strings.h> defines strncasecmp.)],[
810   AC_MSG_RESULT(no)])
811
812 dnl Check for headers
813 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 locale.h)
814 AC_CHECK_HEADERS(sys/sockio.h fcntl.h sys/types.h sys/time.h sys/times.h sys/ioctl.h sys/stat.h)
815 AC_CHECK_HEADERS([arpa/inet.h netinet/in.h sys/socket.h netinet/udplite.h])
816 AC_CHECK_HEADERS([net/if.h], [], [],
817   [
818     #if HAVE_SYS_SOCKET_H
819     # include <sys/socket.h>
820     #endif
821   ])
822 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
823 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
824 AC_CHECK_HEADERS([linux/version.h linux/dccp.h])
825 AC_CHECK_HEADERS(syslog.h)
826 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
827
828 AC_HEADER_TIME
829
830 AC_CHECK_TYPE(ssize_t, int)
831 AC_SEARCH_LIBS(poll, [poll], [AC_DEFINE(HAVE_POLL, 1, [Define to 1 if the OS is usabl... err, has poll().])])
832
833 dnl Check for dirent
834 need_dirent=false
835 AC_CHECK_HEADERS(dirent.h,,[need_dirent=:])
836 AM_CONDITIONAL(BUILD_DIRENT, ${need_dirent})
837
838 dnl Mac OS X and other OSes don't have declaration for nanosleep
839 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
840 AC_MSG_CHECKING(for nanosleep in time.h)
841 AC_EGREP_HEADER(nanosleep,time.h,[
842   AC_MSG_RESULT(yes)
843   AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
844             Define if <time.h> defines nanosleep.)
845 ],[
846   AC_MSG_RESULT(no)
847 ])
848 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
849
850 dnl Make sure we have timespecs
851 AC_MSG_CHECKING(for timespec in sys/time.h)
852 AC_EGREP_HEADER(timespec,sys/time.h,[
853   AC_MSG_RESULT(yes)
854   AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
855             Define if <sys/time.h> defines struct timespec.)
856 ],[
857   AC_MSG_RESULT(no)
858 ])
859
860 dnl Check for threads library
861 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
862 AC_CHECK_HEADERS(cthreads.h pthread.h kernel/scheduler.h kernel/OS.h)
863 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
864
865 dnl Find where are the X headers and libraries
866 AC_PATH_XTRA()
867
868 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.
869
870 PKG_PROG_PKG_CONFIG()
871
872 dnl Check for hal
873 AC_ARG_ENABLE(hal,
874   [  --enable-hal            Linux HAL services discovery (default enabled)])
875  
876 if test "${enable_hal}" != "no"
877 then
878   PKG_CHECK_MODULES(HAL, hal >= 0.5.0,
879     [ AC_DEFINE( HAVE_HAL_1, 1 , [Define if you have the new HAL library API])
880       AC_DEFINE( HAVE_HAL, 1, [Define if you have the HAL library] )
881       VLC_ADD_PLUGINS([hal probe_hal]) 
882       VLC_ADD_LIBS([libvlc hal probe_hal],[$HAL_LIBS])
883       VLC_ADD_CFLAGS([libvlc hal probe_hal],[$HAL_CFLAGS])],   
884     dnl No hal 0.5 Test for 0.2
885     [ PKG_CHECK_MODULES( HAL, hal >= 0.2.97, 
886        [AC_DEFINE(HAVE_HAL, 1, [Define if you have the HAL library])
887         VLC_ADD_PLUGINS([hal])
888         VLC_ADD_LIBS([libvlc hal],[$HAL_LIBS])
889         VLC_ADD_CFLAGS([libvlc hal],[$HAL_CFLAGS])],
890        [AC_MSG_WARN(HAL library not found)])
891     ]
892   )
893 fi
894
895 dnl Check for dbus
896 AC_ARG_ENABLE(dbus,
897   [  --enable-dbus           Linux D-BUS message bus system (default enabled)])
898 case "${SYS}" in
899     linux*|*bsd*)
900 if test "${enable_dbus}" != "no"
901 then
902   dnl api stable dbus
903   PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.0.0,
904     [ AC_DEFINE( HAVE_DBUS_3, 1, [Define if you have the D-BUS library API >= 1.0.0] )
905       AC_DEFINE( HAVE_DBUS_2, 1, [Define if you have the D-BUS library API >= 0.92] )
906       AC_DEFINE( HAVE_DBUS_1, 1, [Define if you have the D-BUS library API >= 0.30] )
907       AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
908       VLC_ADD_LIBS([screensaver libvlc],[$DBUS_LIBS])
909       VLC_ADD_CFLAGS([screensaver libvlc],[$DBUS_CFLAGS])
910       dnl Check for dbus control interface
911         AC_ARG_ENABLE(dbus-control, [  --disable-dbus-control  D-BUS control interface (default enabled)])
912         if test "${enable_dbus_control}" != "no"
913         then
914           VLC_ADD_PLUGINS([dbus])
915           VLC_ADD_LIBS([dbus],[$DBUS_LIBS])
916           VLC_ADD_CFLAGS([dbus],[$DBUS_CFLAGS])
917         fi
918       dnl Check for Telepathy
919         AC_ARG_ENABLE(telepathy, [  --enable-telepathy      Telepathy Presence plugin through DBus(default enabled)])
920         if test "${enable_telepathy}" != "no"; then
921           VLC_ADD_PLUGINS([telepathy])
922           VLC_ADD_LIBS([telepathy],[$DBUS_LIBS])
923           VLC_ADD_CFLAGS([telepathy],[$DBUS_CFLAGS])
924         fi
925         dnl Power Management Inhibiter
926         VLC_ADD_PLUGINS([inhibit])
927         VLC_ADD_LIBS([inhibit],[$DBUS_LIBS])
928         VLC_ADD_CFLAGS([inhibit],[$DBUS_CFLAGS])
929         ],
930     if ${PKG_CONFIG} --exists dbus-1
931     then
932       [AC_ARG_ENABLE(old-dbus,
933         [  --enable-old-dbus       Deprecated D-Bus support (default disabled)])]
934
935       if test "${enable_old_dbus}" != "yes"
936       then
937         echo ""
938         echo "****** WARNING **** WARNING ***** WARNING *************"
939         echo "*** Your D-Bus version is < 1.0.0"
940         echo "*** You are using old and buggy software and so"
941         echo "*** D-Bus support has been disabled."
942         echo "*** Please upgrade D-Bus : http://dbus.freedesktop.org"
943         echo "*** Alternatively you can force the use of your old and"
944         echo "*** buggy D-Bus version by specifying --enable-old-dbus"
945         echo "*******************************************************"
946         echo ""
947       else
948         dnl not too old dbus
949         [ PKG_CHECK_MODULES(DBUS, dbus-1 >= 0.92,
950           [ AC_DEFINE( HAVE_DBUS_2, 1, [Define if you have the D-BUS library API >= 0.92] )
951             AC_DEFINE( HAVE_DBUS_1, 1, [Define if you have the D-BUS library API >= 0.30] )
952             AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
953             VLC_ADD_LIBS([screensaver],[$DBUS_LIBS])
954             VLC_ADD_CFLAGS([screensaver],[$DBUS_CFLAGS])],
955           dnl older dbus
956           [ PKG_CHECK_MODULES(DBUS, dbus-1 >= 0.30,
957             [ AC_DEFINE( HAVE_DBUS_1, 1, [Define if you have the D-BUS library API >= 0.30 ] )
958               AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
959               VLC_ADD_LIBS([screensaver],[$DBUS_LIBS])
960               VLC_ADD_CFLAGS([screensaver],[$DBUS_CFLAGS])],
961             dnl much older dbus
962             [ PKG_CHECK_MODULES( DBUS, dbus-1, 
963                [AC_DEFINE(HAVE_DBUS, 1, [Define if you have the D-BUS library])
964                 VLC_ADD_LIBS([screensaver],[$DBUS_LIBS])
965                 VLC_ADD_CFLAGS([screensaver],[$DBUS_CFLAGS])],
966                [AC_MSG_WARN(DBUS library not found)])
967             ]
968           )]
969         )]
970       fi
971     fi
972   )
973 fi
974 ;;
975 esac
976
977 dnl Build the gtk_main plugins?
978 NEED_GTK_MAIN=no
979 NEED_GNOME_MAIN=no
980 NEED_GTK2_MAIN=no
981 NEED_GNOME2_MAIN=no
982
983 dnl build the qte plugin ?
984 NEED_QTE_MAIN=no
985
986 dnl Check for ntohl, etc.
987 AC_CACHE_CHECK([for ntohl in sys/param.h],
988     [ac_cv_c_ntohl_sys_param_h],
989     [CFLAGS="${CFLAGS_save} -Wall -Werror"
990      AC_TRY_COMPILE([#include <sys/param.h>],
991         [int meuh; ntohl(meuh);],
992         ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
993 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
994     AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
995 fi
996 CFLAGS="${CFLAGS_save}"
997
998 RDC_PROG_CC_WFLAGS([all extra no-unused-parameter sign-compare undef pointer-arith bad-function-cast cast-align write-strings missing-prototypes volatile-register-var])
999 RDC_PROG_CC_FLAGS_IFELSE([-pipe])
1000
1001 dnl This helps detect broken plugins with undefined symbols
1002 dnl Better fail loudly at build-time than silenty at run-time.
1003 dnl Unfortunately, this sucks on FreeBSD (won't even link with -lc)
1004 dnl RDC_PROG_LINK_FLAGS_IFELSE([-Wl,-z,defs], [
1005 dnl   VLC_ADD_LDFLAGS([plugin],[-Wl,-z,defs])
1006 dnl ])
1007
1008 dnl Check for various optimization flags
1009 AC_CACHE_CHECK([if \$CC accepts -Os],
1010     [ac_cv_c_os],
1011     [CFLAGS="${CFLAGS_save} -Os"
1012      AC_TRY_COMPILE([],,ac_cv_c_os=yes, ac_cv_c_os=no)])
1013 if test "${ac_cv_c_os}" != "no"; then
1014     CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -Os"
1015 else 
1016     AC_CACHE_CHECK([if \$CC accepts -O],
1017         [ac_cv_c_o],
1018         [CFLAGS="${CFLAGS_save} -O"
1019          AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
1020     if test "${ac_cv_c_o}" != "no"; then
1021         if test "${ac_cv_c_o3}" = "no"; then
1022             CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -O"
1023         fi
1024     fi
1025 fi
1026
1027 AC_CACHE_CHECK([if \$CC accepts -O3],
1028     [ac_cv_c_o3],
1029     [CFLAGS="${CFLAGS_save} -O3"
1030      AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
1031 if test "${ac_cv_c_o3}" != "no" -a "x${enable_debug}" = "xno"; then
1032     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O3"
1033 else
1034     AC_CACHE_CHECK([if \$CC accepts -O2],
1035         [ac_cv_c_o2],
1036         [CFLAGS="${CFLAGS_save} -O2"
1037          AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
1038     if test "${ac_cv_c_o2}" != "no"; then
1039         CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O2"
1040     else
1041         AC_CACHE_CHECK([if \$CC accepts -O],
1042             [ac_cv_c_o],
1043             [CFLAGS="${CFLAGS_save} -O"
1044              AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
1045         if test "${ac_cv_c_o}" != "no"; then
1046             CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O"
1047         fi
1048     fi
1049 fi
1050
1051 AC_CACHE_CHECK([if \$CC accepts -O0],
1052     [ac_cv_c_o0],
1053     [CFLAGS="${CFLAGS_save} -O0"
1054      AC_TRY_COMPILE([],,ac_cv_c_o0=yes, ac_cv_c_o0=no)])
1055 if test "${ac_cv_c_o0}" != "no"; then
1056     CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O0"
1057 fi
1058
1059 dnl Check for -ffast-math
1060 AC_CACHE_CHECK([if \$CC accepts -ffast-math],
1061     [ac_cv_c_fast_math],
1062     [CFLAGS="${CFLAGS_save} -ffast-math"
1063      AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
1064 if test "${ac_cv_c_fast_math}" != "no"; then
1065     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -ffast-math"
1066 fi
1067
1068 dnl Check for -funroll-loops
1069 dnl Disabled on BeOS because BeOS' gcc is buggy and may crash with it
1070 if test "${SYS}" != "beos"
1071 then
1072   AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
1073       [ac_cv_c_unroll_loops],
1074       [CFLAGS="${CFLAGS_save} -funroll-loops"
1075        AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
1076   if test "${ac_cv_c_unroll_loops}" != "no"; then
1077       CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -funroll-loops"
1078   fi
1079 fi
1080
1081 dnl Check for -fomit-frame-pointer
1082 AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
1083     [ac_cv_c_omit_frame_pointer],
1084     [CFLAGS="${CFLAGS_save} -fomit-frame-pointer"
1085      AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
1086 if test "${ac_cv_c_omit_frame_pointer}" != "no"; then
1087     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
1088 fi
1089
1090 dnl Check for -fvisibility=hidden
1091 AC_CACHE_CHECK([if \$CC accepts -fvisibility=hidden],
1092     [ac_cv_c_visibility_hidden],
1093     [CFLAGS="${CFLAGS_save} -fvisibility=hidden"
1094      AC_TRY_COMPILE([],,ac_cv_c_visibility_hidden=yes, ac_cv_c_visibility_hidden=no)])
1095 if test "${ac_cv_c_visibility_hidden}" != "no"; then
1096     VLC_ADD_CFLAGS([libvlc plugin],[-fvisibility=hidden])
1097 fi
1098
1099 AM_CONDITIONAL(HAVE_COMPILER_EXPORT, [test "$SYS" = "mingw32" -o "${ac_cv_c_visibility_hidden}" != "no"])
1100
1101 dnl Check for -fvisibility-inlines-hidden (breaks x86_64 linkers)
1102 dnl AC_LANG_PUSH(C++)
1103 dnl     AC_CACHE_CHECK([if \$CXX accepts -fvisibility-inlines-hidden],
1104 dnl         [ac_cv_c_visibility_inlines_hidden],
1105 dnl         [CXXFLAGS="${CXXFLAGS_save} -fvisibility-inlines-hidden"
1106 dnl          AC_TRY_COMPILE([],,ac_cv_c_visibility_inlines_hidden=yes, ac_cv_c_visibility_inlines_hidden=no)])
1107 dnl     if test "${ac_cv_c_visibility_inlines_hidden}" != "no"; then
1108 dnl         VLC_ADD_CXXFLAGS([libvlc plugin],[-fvisibility-inlines-hidden])
1109 dnl     fi
1110 dnl     CXXFLAGS="${CXXFLAGS_save}"
1111 dnl AC_LANG_POP(C++)
1112
1113 dnl Check for -mdynamic-no-pic
1114 dnl AC_CACHE_CHECK([if \$CC accepts -mdynamic-no-pic],
1115 dnl     [ac_cv_c_dynamic_no_pic],
1116 dnl     [CFLAGS="${CFLAGS_save} -mdynamic-no-pic"
1117 dnl      AC_TRY_COMPILE([],,ac_cv_c_dynamic_no_pic=yes, ac_cv_c_dynamic_no_pic=no)])
1118 dnl AS_IF([test "${ac_cv_c_dynamic_no_pic}" != "no"], [
1119 dnl     VLC_ADD_CFLAGS([builtin],[-mdynamic-no-pic])
1120 dnl     VLC_ADD_CFLAGS([libvlc],[-mdynamic-no-pic])
1121 dnl ])
1122
1123 dnl Check for Darwin plugin linking flags
1124 AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error],
1125     [ac_cv_ld_darwin],
1126     [CFLAGS="${CFLAGS_save} -bundle -undefined error"
1127      AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
1128 if test "${ac_cv_ld_darwin}" != "no"; then
1129     VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
1130 fi
1131
1132 dnl Check for standard plugin linking flags
1133 dnl BeOS' gcc needs -nostart instead of -shared, even if -shared isn't harmful (just a warning)
1134 dnl AS_IF([test "${SYS}" = "beos"], [
1135 dnl   VLC_ADD_LDFLAGS([plugin mozilla],[-nostart])
1136 dnl ], [
1137 dnl   AC_CACHE_CHECK([if \$CC accepts -shared],
1138 dnl         [ac_cv_ld_plugins],
1139 dnl         [CFLAGS="${CFLAGS_save} -shared"
1140 dnl        AC_TRY_COMPILE([],, ac_cv_ld_plugins=yes, ac_cv_ld_plugins=no)])
1141 dnl   AS_IF([test "${ac_cv_ld_plugins}" != "no"], [
1142 dnl     VLC_ADD_LDFLAGS([plugin mozilla],[-shared])
1143 dnl   ])
1144 dnl ])
1145
1146 dnl Check for variadic macros
1147 AC_CACHE_CHECK([for variadic cpp macros],
1148     [ac_cv_cpp_variadic_macros],
1149     [CFLAGS="${CFLAGS_save}"
1150      AC_TRY_COMPILE(
1151          [#include <stdio.h>
1152           #define a(b,c...) printf(b,##c)],
1153          [a("foo");a("%s","bar");a("%s%s","baz","quux");],
1154          ac_cv_cpp_variadic_macros=yes,
1155          ac_cv_cpp_variadic_macros=no)])
1156 if test "${ac_cv_cpp_variadic_macros}" != "no"; then
1157     AC_DEFINE(HAVE_VARIADIC_MACROS, 1, Support for variadic macros)
1158 fi
1159
1160 dnl Checks for __attribute__(aligned()) directive
1161 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1162     [ac_cv_c_attribute_aligned],
1163     [ac_cv_c_attribute_aligned=0
1164         CFLAGS="${CFLAGS_save} -Werror"
1165     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1166         AC_TRY_COMPILE([],
1167         [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1168         [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1169     done
1170         CFLAGS="${CFLAGS_save}"])
1171 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1172     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1173         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1174 fi
1175
1176 dnl Checks for __attribute__(format()) directive
1177 AC_CACHE_CHECK([__attribute__ ((format ())) support with function pointers],
1178     [ac_cv_c_attribute_format],
1179     [ac_cv_c_attribute_format=no
1180         CFLAGS="${CFLAGS_save} -Werror"
1181         AC_TRY_COMPILE([],
1182         [static void (*pf_printf)(const char *, ...) __attribute__ ((format(printf,1,2)));(void)pf_printf;],
1183         [ac_cv_c_attribute_format=yes])
1184         CFLAGS="${CFLAGS_save}"])
1185 if test "${ac_cv_c_attribute_format}" != "no"; then
1186     AC_DEFINE(HAVE_ATTRIBUTE_FORMAT, 1, Support for __attribute__((format())) with function pointers)
1187 fi
1188
1189 dnl Check for __attribute__((packed))
1190 AC_CACHE_CHECK([for __attribute__((packed))],
1191   [ac_cv_c_attribute_packed],
1192   [ac_cv_c_attribute_packed=no
1193    AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b;],
1194                     [ac_cv_c_attribute_packed=yes])])
1195 if test "${ac_cv_c_attribute_packed}" != "no"; then
1196   AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1197 fi
1198
1199 dnl Check for __attribute__((visibility()))
1200 AC_CACHE_CHECK([for __attribute__((visibility()))],
1201   [ac_cv_c_attribute_visibility],
1202   [ac_cv_c_attribute_visibility=no
1203    AC_TRY_COMPILE(, [extern __attribute__((visibility("default"))) int foo(int);],
1204                     [ac_cv_c_attribute_visibility=yes])])
1205 if test "${ac_cv_c_attribute_visibility}" != "no"; then
1206   AC_DEFINE(HAVE_ATTRIBUTE_VISIBILITY, 1, Support for __attribute__((visibility())) for exporting symbols)
1207 fi
1208
1209 dnl
1210 dnl  Check the CPU
1211 dnl
1212 case "${host_cpu}" in
1213   "")
1214     ARCH=unknown
1215     ;;
1216   *)
1217     ARCH="${host_cpu}"
1218     ;;
1219 esac
1220
1221 dnl
1222 dnl  Enable profiling
1223 dnl
1224 AC_ARG_ENABLE(gprof,
1225 [  --enable-gprof          gprof profiling (default disabled)])
1226 AC_ARG_ENABLE(cprof,
1227 [  --enable-cprof          cprof profiling (default disabled)])
1228 test "${enable_gprof}" != "yes" && enable_gprof="no"
1229 test "${enable_cprof}" != "yes" && enable_cprof="no"
1230
1231 dnl
1232 dnl  default modules
1233 dnl
1234 VLC_ADD_PLUGINS([dummy logger memcpy])
1235 VLC_ADD_PLUGINS([mpgv mpga m4v m4a h264 vc1 demux_cdg cdg ps pva avi asf mp4 rawdv rawvid nsv real aiff mjpeg demuxdump flacsys tta])
1236 VLC_ADD_PLUGINS([cvdsub svcdsub spudec subsdec subsusf t140 dvbsub cc mpeg_audio lpcm a52 dts cinepak flac])
1237 VLC_ADD_PLUGINS([deinterlace invert adjust transform wave ripple psychedelic gradient motionblur rv32 rotate noise grain extract sharpen seamcarving])
1238 VLC_ADD_PLUGINS([converter_fixed mono])
1239 VLC_ADD_PLUGINS([trivial_resampler ugly_resampler])
1240 VLC_ADD_PLUGINS([trivial_channel_mixer trivial_mixer])
1241 VLC_ADD_PLUGINS([playlist export nsc xtag])
1242 VLC_ADD_PLUGINS([i420_rgb grey_yuv rawvideo blend scale image logo magnify puzzle colorthres])
1243 VLC_ADD_PLUGINS([wav araw subtitle vobsub adpcm a52sys dtssys au ty voc xa nuv smf])
1244 VLC_ADD_PLUGINS([access_directory access_file access_udp access_tcp])
1245 VLC_ADD_PLUGINS([access_http access_mms access_ftp])
1246 VLC_ADD_PLUGINS([access_filter_bandwidth])
1247 VLC_ADD_PLUGINS([packetizer_mpegvideo packetizer_h264])
1248 VLC_ADD_PLUGINS([packetizer_mpeg4video packetizer_mpeg4audio])
1249 VLC_ADD_PLUGINS([packetizer_vc1])
1250
1251 ALIASES="${ALIASES} cvlc"
1252
1253 dnl
1254 dnl default modules that need g++
1255 dnl
1256 AC_LANG_PUSH(C++)
1257 VLC_ADD_PLUGINS([spatializer])
1258 AC_LANG_POP(C++)
1259
1260 if test "${SYS}" != "mingwce"; then
1261   VLC_ADD_PLUGINS([access_fake access_filter_timeshift access_filter_record access_filter_dump])
1262   VLC_ADD_PLUGINS([gestures rc telnet hotkeys showintf marq podcast shout sap fake folder])
1263   VLC_ADD_PLUGINS([rss mosaic wall motiondetect clone crop erase bluescreen alphamask gaussianblur])
1264   VLC_ADD_PLUGINS([i420_yuy2 i422_yuy2 i420_ymga i422_i420 yuy2_i422 yuy2_i420 chroma_chain])
1265   VLC_ADD_PLUGINS([aout_file linear_resampler bandlimited_resampler])
1266   VLC_ADD_PLUGINS([float32_mixer spdif_mixer simple_channel_mixer])
1267   VLC_ADD_PLUGINS([dolby_surround_decoder headphone_channel_mixer normvol equalizer param_eq])
1268   VLC_ADD_PLUGINS([converter_float a52tospdif dtstospdif audio_format])
1269   ALIASES="${ALIASES} rvlc"
1270 fi
1271
1272 dnl
1273 dnl Some plugins aren't useful on some platforms
1274 dnl
1275 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1276     VLC_ADD_PLUGINS([screensaver motion])
1277 elif test "${SYS}" != "mingwce"; then
1278     VLC_ADD_PLUGINS([ntservice access_smb dmo msn])
1279     VLC_ADD_LIBS([dmo],[-lole32 -luuid])
1280 else
1281     VLC_ADD_PLUGINS([win32text])
1282 fi
1283 if test "${SYS}" = "darwin"; then
1284     VLC_ADD_PLUGINS([quartztext])
1285     VLC_ADD_LDFLAGS([quartztext],[-Wl,-framework,Carbon,-framework,ApplicationServices])
1286 fi
1287
1288 dnl
1289 dnl  Accelerated modules
1290 dnl
1291 MMX_MODULES="memcpymmx i420_rgb_mmx i420_yuy2_mmx i422_yuy2_mmx i420_ymga_mmx"
1292 #MMX_MODULES="${MMX_MODULES} idctmmx motionmmx"
1293 MMXEXT_MODULES="memcpymmxext"
1294 #MMXEXT_MODULES="${MMXEXT_MODULES} idctmmxext motionmmxext"
1295 THREEDNOW_MODULES="memcpy3dn"
1296 SSE_MODULES=""
1297 SSE2_MODULES="i420_rgb_sse2 i420_yuy2_sse2 i422_yuy2_sse2"
1298 ALTIVEC_MODULES="memcpyaltivec i420_yuy2_altivec"
1299 #ALTIVEC_MODULES="${ALTIVEC_MODULES} idctaltivec motionaltivec"
1300
1301 dnl  Check for fully workin MMX intrinsics
1302 dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a
1303 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1304 AC_CACHE_CHECK([if \$CC groks MMX intrinsics],
1305     [ac_cv_c_mmx_intrinsics],
1306     [CFLAGS="${CFLAGS_save} -O -mmmx"
1307      AC_TRY_COMPILE([#include <mmintrin.h>
1308                      #include <stdint.h>
1309                      uint64_t frobzor;],
1310                     [__m64 a, b, c;
1311                      a = b = c = (__m64)frobzor;
1312                      a = _mm_slli_pi16(a, 3);
1313                      a = _mm_adds_pi16(a, b);
1314                      c = _mm_srli_pi16(c, 8);
1315                      c = _mm_slli_pi16(c, 3);
1316                      b = _mm_adds_pi16(b, c);
1317                      a = _mm_unpacklo_pi8(a, b);
1318                      frobzor = (uint64_t)a;],
1319                     [ac_cv_c_mmx_intrinsics=yes],
1320                     [ac_cv_c_mmx_intrinsics=no])])
1321 if test "${ac_cv_c_mmx_intrinsics}" != "no"; then
1322   AC_DEFINE(HAVE_MMX_INTRINSICS, 1, Define if MMX intrinsics are available.)
1323   VLC_ADD_CFLAGS([${MMX_MODULES}],[-mmmx])
1324 fi
1325
1326 dnl  Check for fully workin SSE2 intrinsics
1327 dnl  We need support for -mmmx, we need <emmintrin.h>, and we also need a
1328 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1329 AC_CACHE_CHECK([if \$CC groks SSE2 intrinsics],
1330     [ac_cv_c_sse2_intrinsics],
1331     [CFLAGS="${CFLAGS_save} -O -msse2"
1332      AC_TRY_COMPILE([#include <emmintrin.h>
1333                      #include <stdint.h>
1334                      uint64_t frobzor;],
1335                     [__m128i a, b, c;
1336                      a = b = c = _mm_set1_epi64((__m64)frobzor);
1337                      a = _mm_slli_epi16(a, 3);
1338                      a = _mm_adds_epi16(a, b);
1339                      c = _mm_srli_epi16(c, 8);
1340                      c = _mm_slli_epi16(c, 3);
1341                      b = _mm_adds_epi16(b, c);
1342                      a = _mm_unpacklo_epi8(a, b);
1343                      frobzor = (uint64_t)_mm_movepi64_pi64(a);],
1344                     [ac_cv_c_sse2_intrinsics=yes],
1345                     [ac_cv_c_sse2_intrinsics=no])])
1346 if test "${ac_cv_c_sse2_intrinsics}" != "no"; then
1347   AC_DEFINE(HAVE_SSE2_INTRINSICS, 1, Define if SSE2 intrinsics are available.)
1348   VLC_ADD_CFLAGS([${SSE2_MODULES}],[-msse2])
1349 fi
1350
1351 AC_CACHE_CHECK([if \$CC groks MMX inline assembly],
1352     [ac_cv_mmx_inline],
1353     [CFLAGS="${CFLAGS_save}"
1354      AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
1355                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
1356 if test "${ac_cv_mmx_inline}" != "no"; then
1357   AC_DEFINE(CAN_COMPILE_MMX, 1, Define if \$CC groks MMX inline assembly.)
1358   ACCEL_MODULES="${ACCEL_MODULES} ${MMX_MODULES}"
1359 fi
1360
1361 AC_CACHE_CHECK([if \$CC groks MMX EXT inline assembly],
1362     [ac_cv_mmxext_inline],
1363     [CFLAGS="${CFLAGS_save}"
1364      AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
1365                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
1366 if test "${ac_cv_mmxext_inline}" != "no"; then
1367   AC_DEFINE(CAN_COMPILE_MMXEXT, 1, Define if \$CC groks MMX EXT inline assembly.)
1368   ACCEL_MODULES="${ACCEL_MODULES} ${MMXEXT_MODULES}"
1369 fi
1370
1371 AC_CACHE_CHECK([if \$CC groks 3D Now! inline assembly],
1372     [ac_cv_3dnow_inline],
1373     [CFLAGS="${CFLAGS_save}"
1374      AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
1375                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
1376 if test "${ac_cv_3dnow_inline}" != "no"; then
1377   AC_DEFINE(CAN_COMPILE_3DNOW, 1, Define if \$CC groks 3D Now! inline assembly.)
1378   ACCEL_MODULES="${ACCEL_MODULES} ${THREEDNOW_MODULES}"
1379 fi
1380
1381 AC_CACHE_CHECK([if \$CC groks SSE inline assembly],
1382     [ac_cv_sse_inline],
1383     [CFLAGS="${CFLAGS_save}"
1384      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
1385                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
1386 if test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"; then
1387   AC_DEFINE(CAN_COMPILE_SSE, 1, Define if \$CC groks SSE inline assembly.)
1388   ACCEL_MODULES="${ACCEL_MODULES} ${SSE_MODULES}"
1389 fi
1390
1391 AC_CACHE_CHECK([if \$CC groks SSE2 inline assembly],
1392     [ac_cv_sse2_inline],
1393     [CFLAGS="${CFLAGS_save}"
1394      AC_TRY_COMPILE(,[void *p;asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p));],
1395                     ac_cv_sse2_inline=yes, ac_cv_sse2_inline=no)])
1396 if test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"; then
1397   AC_DEFINE(CAN_COMPILE_SSE2, 1, Define if \$CC groks SSE2 inline assembly.)
1398   ACCEL_MODULES="${ACCEL_MODULES} ${SSE2_MODULES}"
1399 fi
1400
1401 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1402 AC_CACHE_CHECK([if \$CC groks AltiVec inline assembly],
1403     [ac_cv_altivec_inline],
1404     [CFLAGS="${CFLAGS_save}"
1405      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1406          ac_cv_altivec_inline=yes,
1407          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
1408           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1409             [ac_cv_altivec_inline="-Wa,-m7400"],
1410             ac_cv_altivec_inline=no)
1411          ])])
1412 if test "${ac_cv_altivec_inline}" != "no"; then
1413   AC_DEFINE(CAN_COMPILE_ALTIVEC, 1, Define if \$CC groks AltiVec inline assembly.)
1414   if test "${ac_cv_altivec_inline}" != "yes"; then
1415     VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
1416     VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
1417     VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1418     VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1419     VLC_ADD_CFLAGS([libvlc],[${ac_cv_altivec_inline}])
1420   fi
1421   ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
1422 fi
1423
1424 dnl The AltiVec C extensions
1425 dnl
1426 dnl There are several possible cases:
1427 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1428 dnl                      need <altivec.h>
1429 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1430 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1431 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1432 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1433 dnl - Others: test should fail
1434 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1435   [ac_cv_c_altivec],
1436   [# OS X/PPC test (gcc 4.x)
1437    CFLAGS="${CFLAGS_save} -mpim-altivec -force_cpusubtype_ALL"
1438    AC_TRY_COMPILE([vector unsigned char foo;],
1439      [vec_ld(0, (unsigned char *)0);],
1440      [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1441      [# OS X/PPC test (gcc 3.x)
1442       CFLAGS="${CFLAGS_save} -faltivec"
1443       AC_TRY_COMPILE([vector unsigned char foo;],
1444         [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1445         [ac_cv_c_altivec="-faltivec"],
1446         dnl Below this are the Linux tests
1447         [# Linux/PPC test (gcc 4.x)
1448          CFLAGS="${CFLAGS_save} -maltivec"
1449          AC_TRY_COMPILE([#include <altivec.h>],
1450            [vec_ld(0, (unsigned char *)0);],
1451            [ac_cv_c_altivec="-maltivec"],
1452            [# Linux/PPC test (gcc 3.3)
1453             CFLAGS="${CFLAGS_save} -maltivec -mabi=altivec"
1454             AC_TRY_COMPILE([#include <altivec.h>],
1455               [vec_ld(0, (unsigned char *)0);],
1456               [ac_cv_c_altivec=""
1457                ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1458               [# Linux/PPC test (gcc 3.3)
1459                CFLAGS="${CFLAGS_save} -fvec"
1460                AC_TRY_COMPILE([#include <altivec.h>],
1461                  [vec_ld(0, (unsigned char *)0);],
1462                  [ac_cv_c_altivec="-fvec"],
1463                  [ac_cv_c_altivec=no])
1464               ])
1465            ])
1466         ])
1467      ])
1468    CFLAGS="${CFLAGS_save}"
1469   ])
1470
1471 if test "${ac_cv_c_altivec}" != "no"; then
1472   CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
1473 fi
1474
1475 AS_IF( test "${enable_altivec}" != "no",
1476 [
1477   AC_CHECK_HEADERS(altivec.h)
1478   CPPFLAGS="${CPPFLAGS_save}"
1479   
1480   if test "${ac_cv_c_altivec}" != "no"; then
1481     AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, Define if your compiler groks C AltiVec extensions.)
1482     VLC_ADD_CFLAGS([libvlc],[${ac_cv_c_altivec}])
1483     VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
1484     VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1485     if test "${ac_cv_altivec_inline}" = "no"; then
1486       ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
1487     fi
1488   fi
1489 ],[
1490   CPPFLAGS="${CPPFLAGS_save}"
1491 ])
1492
1493 AC_CACHE_CHECK([if linker needs -framework vecLib],
1494     [ac_cv_ld_altivec],
1495     [LDFLAGS="${LDFLAGS_vlc} -Wl,-framework,vecLib"
1496      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
1497      LDFLAGS="${LDFLAGS_save}"
1498     ])
1499 if test "${ac_cv_ld_altivec}" != "no"; then
1500   VLC_ADD_LDFLAGS([libvlc idctaltivec motionaltivec memcpyaltivec],[-Wl,-framework,vecLib])
1501 fi
1502 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
1503
1504 AC_ARG_WITH(,[])
1505 AC_ARG_WITH(,[Optimization options:])
1506
1507 dnl
1508 dnl  Special arch tuning
1509 dnl
1510 AC_ARG_WITH(tuning,
1511 [  --with-tuning=ARCH      enable special tuning for an architecture
1512                           (default Pentium 2 on IA-32 and G4 on PPC)])
1513 if test -n "${with_tuning}"; then
1514     if test "${with_tuning}" != "no"; then
1515         CFLAGS_TUNING="-mtune=${with_tuning}"
1516     fi
1517 else
1518     if test "${SYS}" = "darwin" -a "${host_cpu}" != "powerpc"; then
1519         CFLAGS_TUNING="-march=pentium-m -mtune=prescott"
1520     elif test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "i386"; then
1521         CFLAGS_TUNING="-mtune=pentium2"
1522     elif test "${host_cpu}" = "x86_64"; then
1523         CFLAGS_TUNING="-mtune=athlon64"
1524     elif test "${host_cpu}" = "powerpc"; then
1525         CFLAGS_TUNING="-mtune=G4";
1526     fi
1527 fi
1528
1529 dnl NOTE: this can't be cached cleanly
1530 AS_IF([test "${CFLAGS_TUNING}"],
1531    [CFLAGS_save="${CFLAGS}"
1532     CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1533
1534     AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1535     AC_COMPILE_IFELSE([ ],
1536                       [tuning="yes"],
1537                       [CFLAGS_TUNING=""; tuning="no"
1538                        AS_IF([test "${with_tuning}"],
1539                              [AC_MSG_ERROR([requested tuning not supported])])])
1540
1541     AC_MSG_RESULT([$tuning])
1542     CFLAGS="${CFLAGS_save}"
1543 ])
1544
1545 dnl
1546 dnl  x86 accelerations
1547 dnl
1548 AC_ARG_ENABLE(mmx,
1549 [  --disable-mmx       disable MMX optimizations (default enabled on x86)],
1550 [ if test "${enable_mmx}" = "yes"; then ARCH="${ARCH} mmx";
1551     VLC_ADD_PLUGINS([${ACCEL_MODULES}]) fi ],
1552 [ if test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "x86" -o "${host_cpu}" = "i386" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "x86_64"; then
1553     ARCH="${ARCH} mmx"
1554     VLC_ADD_PLUGINS([${ACCEL_MODULES}]) fi ])
1555
1556 AC_ARG_ENABLE(sse,
1557 [  --disable-sse       disable SSE (1 and 2) optimizations (default enabled on i686 and x86_64)],
1558 [ if test "${enable_sse}" = "yes"; then ARCH="${ARCH} sse sse2";
1559     VLC_ADD_PLUGINS([${ACCEL_MODULES}]) fi ],
1560 [ if test "${host_cpu}" = "i686" -o "${host_cpu}" = "x86_64"; then ARCH="${ARCH} sse sse2";
1561     VLC_ADD_PLUGINS([${ACCEL_MODULES}]) fi ])
1562
1563 dnl
1564 dnl  Memory usage
1565 dnl
1566 AC_ARG_ENABLE(optimize-memory,
1567 [  --enable-optimize-memory optimize memory usage over performance])
1568 if test "${enable_optimize_memory}" = "yes"; then
1569   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1570 fi
1571
1572 dnl
1573 dnl  Enable/disable optimizations
1574 dnl
1575 AC_ARG_ENABLE(optimizations,
1576 [  --disable-optimizations disable compiler optimizations (default enabled)])
1577 if test "${enable_optimizations}" != "no"; then
1578    if test "${enable_optimize_memory}" = "yes"; then
1579       enable_optimizations="size"
1580    else
1581       enable_optimizations="speed"
1582    fi
1583 fi
1584
1585 dnl
1586 dnl  AltiVec acceleration
1587 dnl
1588 AC_ARG_ENABLE(altivec,
1589 [  --disable-altivec       disable AltiVec optimizations (default enabled on PPC)],
1590 [ if test "${enable_altivec}" = "yes"; then ARCH="${ARCH} altivec";
1591     VLC_ADD_PLUGINS([${ACCEL_MODULES}]) fi ],
1592 [ if test "${host_cpu}" = "powerpc"; then ARCH="${ARCH} altivec";
1593     VLC_ADD_PLUGINS([${ACCEL_MODULES}]) fi ])
1594
1595 dnl
1596 dnl  Debugging mode
1597 dnl
1598 AC_ARG_ENABLE(debug,
1599 [  --enable-debug          debug mode (default disabled)])
1600 test "${enable_debug}" != "yes" && enable_debug="no"
1601 AH_TEMPLATE(NDEBUG,
1602             [Define to 1 if debug code should NOT be compiled])
1603 AS_IF([test "x${enable_debug}" = "xno"], [AC_DEFINE(NDEBUG)])
1604
1605 dnl
1606 dnl  Test coverage
1607 dnl
1608 AC_ARG_ENABLE(coverage,
1609         [  --enable-coverage       build for test coverage (default disabled)],,
1610         [enable_coverage="no"])
1611 AS_IF([test "${enable_coverage}" != "no"], [
1612         CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
1613         CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
1614         LDFLAGS="-lgcov ${LDFLAGS}"
1615         dnl ugly...
1616         CFLAGS_save="${CFLAGS}"
1617         CXXFLAGS_save="${CXXFLAGS}"
1618         LDFLAGS_save="${LDFLAGS}"
1619 ])
1620
1621 dnl
1622 dnl  Enable release-specific flags
1623 dnl
1624 AC_ARG_ENABLE(release,
1625 [  --enable-release        activate extra optimizations (default disabled)])
1626 test "${enable_release}" != "yes" && enable_release="no"
1627
1628 dnl
1629 dnl Stream output
1630 dnl
1631 AC_ARG_ENABLE(sout,
1632   [  --enable-sout           Stream output modules (default enabled)])
1633 if test "${enable_sout}" != "no"
1634 then
1635   VLC_ADD_PLUGINS([access_output_dummy access_output_udp access_output_file access_output_http])
1636   VLC_ADD_PLUGINS([mux_ps mux_avi mux_mp4 mux_asf mux_dummy mux_wav mux_mpjpeg])
1637   VLC_ADD_PLUGINS([packetizer_copy])
1638
1639   VLC_ADD_PLUGINS([stream_out_dummy stream_out_standard stream_out_es stream_out_rtp stream_out_description vod_rtsp])
1640   VLC_ADD_PLUGINS([stream_out_duplicate stream_out_display stream_out_transcode stream_out_bridge stream_out_mosaic_bridge stream_out_autodel])
1641   VLC_ADD_PLUGINS([stream_out_gather])
1642 #  VLC_ADD_PLUGINS([stream_out_transrate])
1643 #  VLC_ADD_PLUGINS([rtcp])
1644   VLC_ADD_PLUGINS([profile_parser])
1645
1646   AC_DEFINE(ENABLE_SOUT, 1, Define if you want the stream output support)
1647 fi
1648
1649 AC_ARG_ENABLE(switcher,
1650   [  --enable-switcher       Stream-out switcher plugin (default disabled)])
1651
1652 dnl Check for libshout
1653 AC_ARG_ENABLE(shout,
1654   [  --enable-shout          libshout output plugin (default disabled)])
1655 if test "${enable_shout}" = "yes"; then
1656   PKG_CHECK_MODULES(SHOUT, shout >= 2.1,
1657     [AC_DEFINE(HAVE_SHOUT, 1, [Define if you have the libshout library])
1658      VLC_ADD_PLUGINS([access_output_shout])
1659      VLC_ADD_LIBS([access_output_shout],[$SHOUT_LIBS])
1660      VLC_ADD_CFLAGS([access_output_shout],[$SHOUT_CFLAGS])],
1661     [AC_MSG_WARN(libshout library not found)])
1662 fi
1663
1664 dnl Lua modules
1665 AC_ARG_ENABLE(lua,
1666   [  --enable-lua            lua playlist and metafetcher plugins (default enabled)])
1667 if test "${enable_lua}" != "no"
1668 then
1669   PKG_CHECK_MODULES(LUA, lua5.1,
1670     [ have_lua=yes ],
1671     [
1672     AC_MSG_WARN([lua5.1 not found, trying lua >= 5.1 instead])
1673     PKG_CHECK_MODULES(LUA, lua >= 5.1,
1674       [ have_lua=yes ],
1675       [ 
1676         have_lua=yes
1677         AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h], 
1678           [],  
1679           [ have_lua=no ] )
1680         AC_CHECK_LIB(  lua5.1 , luaL_newstate, 
1681           [LUA_LIBS="-llua5.1"],
1682           AC_CHECK_LIB( lua51 , luaL_newstate, 
1683             [LUA_LIBS="-llua51"],
1684                   AC_CHECK_LIB( lua , luaL_newstate, 
1685                     [LUA_LIBS="-llua"],
1686               [ have_lua=no
1687                 AC_MSG_WARN([lua >= 5.1 not found!])
1688               ])
1689             )
1690           )
1691       ])
1692     ])
1693   if test "x${have_lua}" = "xyes" ;  then
1694      AC_DEFINE(HAVE_LUA, 1, [Define if you have the lua library])
1695      VLC_ADD_PLUGINS([lua])
1696      VLC_ADD_LIBS([lua],[$LUA_LIBS])
1697      VLC_ADD_CFLAGS([lua],[$LUA_CFLAGS])
1698   fi
1699 fi
1700
1701 dnl
1702 dnl HTTP daemon
1703 dnl
1704 AC_ARG_ENABLE(httpd,
1705   [  --enable-httpd          HTTP daemon (default enabled)])
1706 if test "${enable_httpd}" != "no"
1707 then
1708   VLC_ADD_PLUGINS([http])
1709   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
1710 fi
1711
1712 dnl
1713 dnl VideoLAN manager
1714 dnl
1715 AC_ARG_ENABLE(vlm,
1716   [  --enable-vlm            VideoLAN manager (default enabled)])
1717 if test "${enable_vlm}" != "no"
1718 then
1719   AC_DEFINE(ENABLE_VLM, 1, Define if you want the VideoLAN manager support)
1720 fi
1721
1722 dnl
1723 dnl Growl notification plugin
1724 dnl
1725 AC_ARG_ENABLE(growl,
1726   [  --enable-growl          growl notification plugin (default enabled)])
1727 AS_IF([test "${enable_growl}" != "no"], [
1728     VLC_ADD_PLUGINS([growl])
1729   ]
1730 )
1731
1732 dnl
1733 dnl Libnotify notification plugin
1734 dnl
1735
1736 AC_ARG_ENABLE(notify,
1737   [  --enable-notify         libnotify notification plugin (default enabled)])
1738 AS_IF([test "${enable_notify}" != "no" -a "${SYS}" != "mingw32"], [
1739     PKG_CHECK_MODULES(NOTIFY, libnotify,
1740       [
1741         VLC_ADD_PLUGINS([notify])
1742         VLC_ADD_CFLAGS(notify, [$NOTIFY_CFLAGS])
1743         VLC_ADD_LIBS(notify, [$NOTIFY_LIBS])
1744       ],[
1745         AS_IF([test "${enable_notify}" = "yes"],[
1746                AC_MSG_WARN( libnotify not found) ])
1747       ])
1748   ])
1749
1750 dnl
1751 dnl Audioscrobbler plugin
1752 dnl
1753
1754 AC_ARG_ENABLE(audioscrobbler,
1755   [  --disable-audioscrobbler Last.fm submission plugin (default enabled)])
1756 AS_IF([test "${enable_audioscrobbler}" != "no"], [
1757         VLC_ADD_PLUGINS([audioscrobbler])
1758   ])
1759
1760 dnl
1761 dnl Musicbrainz plugin
1762 dnl
1763 AC_ARG_ENABLE(musicbrainz,
1764   [  --enable-musicbrainz    MusicBrainz support (default disabled) ])
1765   AS_IF([test "${enable_musicbrainz}" = "yes"],[
1766       PKG_CHECK_MODULES(MUSICBRAINZ, libmusicbrainz,
1767         [ VLC_ADD_PLUGINS([musicbrainz])
1768           VLC_ADD_LIBS([musicbrainz],[$MUSICBRAINZ_LIBS]) 
1769           VLC_ADD_CFLAGS([musicbrainz],[$MUSICBRAINZ_CFLAGS])  ],
1770        [AC_MSG_WARN(MusicBrainz library not found)])
1771    ])
1772
1773
1774 dnl
1775 dnl Taglibplugin
1776 dnl
1777 AC_ARG_ENABLE(taglib,
1778   [  --disable-taglib Taglib support (default enabled) ])
1779   AS_IF([test "${enable_taglib}" != "no"],[
1780     PKG_CHECK_MODULES(TAGLIB, taglib,
1781       [ AC_DEFINE( HAVE_TAGLIB, 1, [Define if you have taglib plugin built] )
1782         VLC_ADD_PLUGINS([taglib])
1783         VLC_ADD_LIBS([taglib],[$TAGLIB_LIBS -lz])
1784        VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS]) ],
1785       [AC_MSG_WARN(TagLib library not found)])
1786   ])
1787
1788
1789 dnl
1790 dnl  Input plugins
1791 dnl
1792
1793 AC_ARG_WITH(,[Input plugins:])
1794
1795 dnl  live555 input
1796 dnl
1797 if test "${enable_livedotcom}" 
1798 then
1799   AC_MSG_WARN(--{en|dis}able-livedotcom is deprecated. Use --{en|dis}able-live555 instead.)
1800 fi
1801
1802 if test "${enable_livedotcom}" = "no"
1803 then
1804   enable_live555="no"
1805 fi
1806 AC_ARG_ENABLE(live555,
1807 [  --enable-live555        live555 RTSP input plugin (default enabled)])
1808 if test "${enable_live555}" != "no"; then
1809   AC_ARG_WITH(live555-tree,
1810     [    --with-live555-tree=PATH live.com tree for static linking])
1811
1812   dnl
1813   dnl test for --with-live555-tree
1814   dnl
1815   if test "${with_livedotcom_tree}" 
1816   then
1817     AC_MSG_WARN(--with-livedotcom-tree is deprecated. Use --with-live555-tree instead.)
1818   with_live555_tree="${with_livedotcom_tree}"
1819   fi
1820
1821   if test -z "${with_live555_tree}" -a "${CXX}" != ""; then
1822     AC_LANG_PUSH(C++)
1823     CPPFLAGS_save="${CPPFLAGS}"
1824     CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1825     if test "${SYS}" = "solaris"; then
1826       CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1827     fi
1828     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1829     AC_CHECK_HEADERS(liveMedia.hh, [
1830       VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1831       AC_CHECK_LIB(liveMedia_pic, main, [
1832         # We have -lliveMedia_pic, build plugins
1833         VLC_ADD_PLUGINS([live555])
1834         VLC_ADD_LIBS([live555], [-lliveMedia_pic -lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic])
1835       ], [
1836         AC_CHECK_LIB(liveMedia, main, [
1837           # We only have -lliveMedia, do builtins
1838           VLC_ADD_BUILTINS([live555])
1839           VLC_ADD_LIBS([live555], [-lliveMedia -lgroupsock -lBasicUsageEnvironment -lUsageEnvironment])
1840         ])
1841       ])
1842       if test "${SYS}" = "mingw32"; then
1843         # add ws2_32 for closesocket, select, recv
1844         VLC_ADD_LIBS([live555],[-lws2_32])
1845       fi
1846     ])
1847     CPPFLAGS="${CPPFLAGS_save}"
1848     AC_LANG_POP(C++)
1849   else
1850     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_live555_tree})
1851     real_live555_tree="`cd ${with_live555_tree} 2>/dev/null && pwd`"
1852     if test -z "${real_live555_tree}"; then
1853       dnl  The given directory can't be found
1854       AC_MSG_RESULT(no)
1855       AC_MSG_ERROR([cannot cd to ${with_live555_tree}])
1856     fi
1857     if test -f "${real_live555_tree}/liveMedia/libliveMedia.a"; then
1858       AC_MSG_RESULT(${real_live555_tree}/liveMedia/libliveMedia.a)
1859
1860       VLC_ADD_BUILTINS([live555])
1861
1862       if test "${SYS}" = "mingw32"; then
1863         # add ws2_32 for closesocket, select, recv
1864         VLC_ADD_LIBS([live555],[-lws2_32])
1865       fi
1866
1867       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/liveMedia -lliveMedia])
1868       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1869       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/groupsock -lgroupsock])
1870       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/UsageEnvironment -lUsageEnvironment])
1871
1872       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/BasicUsageEnvironment/include])
1873       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/groupsock/include])
1874       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/liveMedia/include])
1875       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/UsageEnvironment/include ])
1876       if test "${SYS}" = "solaris"; then
1877         VLC_ADD_CXXFLAGS([live555],[-DSOLARIS])
1878       fi
1879     else
1880       dnl  The given live555 wasn't built
1881         AC_MSG_RESULT(no)
1882       if test "${enable_live555}" = "yes"; then
1883         AC_MSG_ERROR([cannot find ${real_live555_tree}/liveMedia/libliveMedia.a, make sure you compiled live555 in ${with_live555_tree}])
1884       fi        
1885     fi
1886   fi
1887 fi
1888
1889 dnl
1890 dnl  special access module for dc1394 input
1891 dnl
1892 AC_ARG_ENABLE(dc1394,
1893   [  --enable-dc1394         dc1394 access module (default disabled)])
1894 if test "${enable_dc1394}" = "yes"
1895 then
1896   AC_CHECK_HEADERS(libraw1394/raw1394.h, [
1897     AC_CHECK_LIB( raw1394, raw1394_get_nodecount, [
1898         AC_CHECK_HEADERS(libdc1394/dc1394_control.h , [
1899 dnl         AC_CHECK_LIB( dc1394_control, dc1394_setup_capture, [
1900               VLC_ADD_PLUGINS([dc1394])
1901               VLC_ADD_LIBS([dc1394],[-ldc1394_control -lraw1394])
1902 dnl         ],
1903 dnl         [
1904 dnl           AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1905 dnl         ])
1906       ],
1907       [
1908         AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1909       ])
1910     ],
1911     [
1912       AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1913     ])
1914   ],
1915   [
1916     AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1917   ])
1918 fi
1919
1920 dnl
1921 dnl dv module: digital video module check for libraw1394
1922 dnl
1923 AC_ARG_ENABLE(dv,
1924 [  --enable-dv             dv input module (default disabled)])
1925 if test "${enable_dv}" = "yes"
1926 then
1927   AC_ARG_WITH(dv-raw1394,
1928   [    --with-dv-raw1394=PATH   libraw1394 headers and libraries])
1929   AC_ARG_WITH(dv-raw1394-tree,
1930   [    --with-dv-raw1394=PATH   libraw1394 tree for static linking])
1931
1932   if test -z "${with_dv_raw1394}" -a "${with_dv_raw1394}" != ""
1933   then
1934     AC_MSG_CHECKING(for raw1394 headers in ${with_dv_raw1394})
1935     if test -f ${with_dv_raw1394}/include/libraw1394/raw1394.h
1936     then
1937       dnl  Use ${with_dv_raw1394}/include/libraw1394/raw1394.h
1938       AC_MSG_RESULT(yes)
1939       VLC_ADD_PLUGINS([access_dv])
1940       VLC_ADD_LIBS([access_dv],[-L${with_dv_raw1394}/lib -lraw1394 -lpthread])
1941       VLC_ADD_CPPFLAGS([access_dv],[-I${with_dv_raw1394}/include])
1942     else
1943       dnl  No libraw1394 could be found, sorry
1944       AC_MSG_RESULT(no)
1945       AC_MSG_ERROR([cannot find ${with_dv_raw1394}/include/libraw1394/raw1394.h])
1946     fi
1947   else
1948     AC_CHECK_HEADERS(libraw1394/raw1394.h,
1949     [ VLC_ADD_PLUGINS([access_dv])
1950         VLC_ADD_LIBS([access_dv],[-lraw1394 -lavc1394])
1951     ],[
1952         if test -n "${enable_dv}"
1953         then
1954           AC_MSG_ERROR([cannot find libraw1394 headers])
1955         fi
1956     ])
1957   fi
1958
1959   dnl Check for static linking of libraw1394
1960   if test -z "${with_dv_raw1394_tree}" -a "${with_dv_raw1394_tree}" != ""
1961   then
1962     AC_MSG_CHECKING(for libraw1394.a in ${with_dv_raw1394_tree})
1963     real_dv_raw1394_tree="`cd ${with_dv_raw1394_tree} 2>/dev/null && pwd`"
1964     if test -z "${real_dv_raw1394_tree}"
1965     then
1966       dnl  The given directory can't be found
1967       AC_MSG_RESULT(no)
1968       AC_MSG_ERROR([cannot cd to ${real_dv_raw1394_tree}])
1969     fi
1970     if test -f "${real_dv_raw1394_tree}/src/.libs/libraw1394.a"
1971     then
1972       dnl  Use a custom libraw1394
1973       AC_MSG_RESULT(${real_dv_raw1394_tree}/src/.libs/libraw1394.a)
1974       VLC_ADD_BUILTINS([access_dv])
1975       VLC_ADD_LIBS([access_dv],[-L${real_dv_raw1394_tree}/src/.libs -lraw1394])
1976       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_raw1394_tree}])
1977     else
1978       dnl  The given libraw1394 wasn't built
1979       AC_MSG_RESULT(no)
1980       AC_MSG_ERROR([cannot find ${real_dv_raw1394_tree}/src/.libs/libraw1394.a, make sure you compiled libraw1394 in ${with_dv_raw1394_tree}])
1981     fi
1982   fi
1983
1984   dnl
1985   dnl Check for libavc1394
1986   dnl
1987
1988   AC_ARG_WITH(dv-avc1394,
1989   [    --with-dv-avc1394=PATH   libavc1394 headers and libraries])
1990   AC_ARG_WITH(dv-avc1394-tree,
1991   [    --with-dv-avc1394=PATH   libavc1394 tree for static linking])
1992
1993   if test -z "${with_dv_avc1394}" -a "${with_dv_avc1394}" != ""
1994   then
1995     AC_MSG_CHECKING(for avc1394 headers in ${with_dv_avc1394})
1996     if test -f ${with_dv_avc1394}/include/libavc1394/avc1394.h
1997     then
1998       dnl  Use ${with_dv_avc1394}/include/libavc1394/avc1394.h
1999       AC_MSG_RESULT(yes)
2000       VLC_ADD_LIBS([access_dv],[-L${with_dv_avc1394}/lib -lavc1394 -lrom1394 -lpthread])
2001       VLC_ADD_CPPFLAGS([access_dv],[-I${with_avc1394}/include])
2002     else
2003       dnl  No libavc1394 could be found, sorry
2004       AC_MSG_RESULT(no)
2005       AC_MSG_ERROR([cannot find ${with_dv_avc1394}/include/libavc1394/avc1394.h])
2006     fi
2007   else
2008     AC_CHECK_HEADERS(libavc1394/avc1394.h,
2009     [ VLC_ADD_LIBS([access_dv],[-lavc1394 -lrom1394 -lpthread])
2010     ],[
2011         if test -n "${enable_dv}"
2012         then
2013           AC_MSG_ERROR([cannot find libavc1394 headers])
2014         fi
2015     ])
2016   fi
2017
2018   dnl Check for static linking of libavc1394
2019   if test -z "${with_dv_avc1394_tree}" -a "${with_dv_avc1394_tree}" != ""
2020   then
2021     AC_MSG_CHECKING(for libavc1394.a in ${with_dv_avc1394_tree})
2022     real_dv_avc1394_tree="`cd ${with_dv_avc1394_tree} 2>/dev/null && pwd`"
2023     if test -z "${real_dv_avc1394_tree}"
2024     then
2025       dnl  The given directory can't be found
2026       AC_MSG_RESULT(no)
2027       AC_MSG_ERROR([cannot cd to ${real_dv_avc1394_tree}])
2028     fi
2029     if test -f "${real_dv_avc1394_tree}/src/.libs/libavc1394.a"
2030     then
2031       dnl  Use a custom libavc1394
2032       AC_MSG_RESULT(${real_dv_avc1394_tree}/src/.libs/libavc1394.a)
2033       VLC_ADD_LIBS([access_dv],[-L${real_dv_avc1394_tree}/src/.libs -lavc1394 -lrom1394 -lpthread])
2034       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_avc1394_tree}])
2035     else
2036       dnl  The given libavc1394 wasn't built
2037       AC_MSG_RESULT(no)
2038       AC_MSG_ERROR([cannot find ${real_dv_avc1394_tree}/src/.libs/libavc1394.a, make sure you compiled libavc1394 in ${with_dv_avc1394_tree}])
2039     fi
2040   fi
2041 fi
2042
2043 dnl
2044 dnl dvdread module: check for libdvdread
2045 dnl
2046 AC_ARG_ENABLE(dvdread,
2047 [  --enable-dvdread        dvdread input module (default disabled)])
2048 if test "${enable_dvdread}" != "no"
2049 then
2050   AC_ARG_WITH(dvdread,
2051   [    --with-dvdread=PATH   libdvdread headers and libraries])
2052   AC_ARG_WITH(dvdread-tree,
2053   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
2054
2055   dnl Temporary hack (yeah, sure ;)
2056   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2057       VLC_ADD_LIBS([dvdread],[-ldvdcss])
2058   fi
2059
2060   if test -z "${with_dvdread}"
2061   then
2062     if test -z "${with_dvdread_tree}"
2063     then
2064       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
2065         [ VLC_ADD_PLUGINS([dvdread])
2066           VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
2067         ],[
2068           if test -n "${enable_dvdread}"
2069           then
2070             AC_MSG_ERROR([cannot find libdvdread headers])
2071           fi
2072         ])
2073     else
2074       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
2075       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
2076       if test -z "${real_dvdread_tree}"
2077       then
2078         dnl  The given directory can't be found
2079         AC_MSG_RESULT(no)
2080         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
2081       fi
2082       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
2083       then
2084         dnl  Use a custom libdvdread
2085         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
2086         VLC_ADD_BUILTINS([dvdread])
2087         VLC_ADD_LIBS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LIBS_dvdcss}])
2088         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
2089       else
2090         dnl  The given libdvdread wasn't built
2091         AC_MSG_RESULT(no)
2092         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
2093       fi
2094     fi
2095   else
2096     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
2097     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
2098     then
2099       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
2100       AC_MSG_RESULT(yes)
2101       VLC_ADD_PLUGINS([dvdread])
2102       VLC_ADD_LIBS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LIBS_dvdcss}])
2103       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
2104     else
2105       dnl  No libdvdread could be found, sorry
2106       AC_MSG_RESULT(no)
2107       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
2108     fi
2109   fi
2110 fi
2111
2112 dnl
2113 dnl  libdvdnav plugin
2114 dnl
2115 AC_ARG_ENABLE(dvdnav,
2116   [  --enable-dvdnav         dvdnav input module (default enabled)])
2117 if test "${enable_dvdnav}" != "no"
2118 then
2119   dnl Same hack than dvdread
2120   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2121       VLC_ADD_LIBS([dvdnav],[-ldvdcss])
2122   fi
2123
2124   DVDNAV_PATH="${PATH}"
2125   AC_ARG_WITH(dvdnav-config-path,
2126     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
2127     [ if test "${with_dvdnav_config_path}" != "no"
2128       then
2129         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
2130       fi ])
2131   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
2132   if test "${DVDNAV_CONFIG}" != "no"
2133   then
2134     VLC_ADD_PLUGINS([dvdnav])
2135     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
2136     VLC_ADD_LIBS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
2137   fi
2138 fi
2139
2140 dnl
2141 dnl  Windows DirectShow access module
2142 dnl
2143 AC_ARG_ENABLE(dshow,
2144   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
2145 if test "${enable_dshow}" != "no"
2146 then
2147   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2148   then
2149     AC_LANG_PUSH(C++)
2150       AC_CHECK_HEADERS(dshow.h,
2151       [ VLC_ADD_PLUGINS([dshow])
2152         VLC_ADD_CXXFLAGS([dshow],[])
2153         VLC_ADD_LIBS([dshow],[-lole32 -loleaut32 -luuid]) ])
2154     AC_LANG_POP(C++)
2155   fi
2156 fi
2157
2158 dnl
2159 dnl  Windows DirectShow BDA access module
2160 dnl
2161 AC_ARG_ENABLE(bda,
2162   [  --enable-bda            Win32 DirectShow BDA support (default enabled on Win32)])
2163 if test "${enable_bda}" != "no"
2164 then
2165   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2166   then
2167       AC_CHECK_HEADERS(dshow.h,
2168       [ VLC_ADD_PLUGINS([bda])
2169         VLC_ADD_CXXFLAGS([bda],[])
2170         VLC_ADD_LIBS([bda],[-lstrmiids -lole32 -loleaut32 -luuid]) ])
2171   fi
2172 fi
2173
2174
2175 dnl
2176 dnl  OpenCV wrapper and example filters
2177 dnl
2178 AC_ARG_ENABLE(opencv,
2179   [  --enable-opencv         OpenCV (computer vision) filter (default disabled)])
2180 if test "${enable_opencv}" = "yes" -a "${CXX}" != "";
2181 then
2182   AC_ARG_WITH(opencv-tree,
2183   [    --with-opencv-tree=PATH opencv tree for linking])
2184   if test -n "${with_opencv_tree}"
2185   then
2186     if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2187     then
2188           AC_MSG_CHECKING(for opencv in ${with_opencv_tree})
2189           if test -f ${with_opencv_tree}/cv/include/cv.h -a -f ${with_opencv_tree}/cxcore/include/cxcore.h \
2190             -a -f ${with_opencv_tree}/cvaux/include/cvaux.h -a -f ${with_opencv_tree}/otherlibs/highgui/highgui.h
2191       then
2192         AC_MSG_RESULT(yes)
2193         VLC_ADD_PLUGINS([opencv_wrapper])
2194         VLC_ADD_LIBS([opencv_wrapper],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2195         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])
2196         AC_LANG_PUSH(C++)
2197         VLC_ADD_PLUGINS([opencv_example])
2198         VLC_ADD_LIBS([opencv_example],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2199         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])
2200         AC_LANG_POP(C++)        
2201           else
2202         dnl  No opencv could be found, sorry
2203         AC_MSG_RESULT(no)
2204         AC_MSG_ERROR([cannot find opencv in ${with_opencv_tree}])
2205           fi
2206     else
2207           AC_MSG_WARN([--enable-opencv currently only works on windows])
2208     fi
2209   fi  
2210 fi
2211
2212
2213 dnl
2214 dnl  libsmbclient plugin
2215 dnl
2216 AC_ARG_ENABLE(smb,
2217   [  --enable-smb            smb input module (default enabled)])
2218 if test "${enable_smb}" != "no"; then
2219   AC_CHECK_HEADERS(libsmbclient.h,
2220     [ VLC_ADD_PLUGINS([access_smb])
2221       VLC_ADD_LIBS([access_smb],[-lsmbclient]) ],
2222     [ if test -n "${enable_smb}"; then
2223         AC_MSG_ERROR([cannot find libsmbclient headers])
2224      fi ])
2225   AC_CHECK_MEMBER([struct _SMBCCTX.close_fn],
2226     AC_DEFINE([HAVE__SMBCCTX_CLOSE_FN], 1, [Define if samba has _SMBCCTX.close_fn]),,
2227     [#include <libsmbclient.h>])
2228 fi
2229
2230 dnl
2231 dnl  libdvbpsi ts demux/mux
2232 dnl
2233 AC_ARG_ENABLE(dvbpsi,
2234   [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
2235 if test "${enable_dvbpsi}" != "no"
2236 then
2237   AC_ARG_WITH(dvbpsi,
2238   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
2239   AC_ARG_WITH(dvbpsi,
2240   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
2241   case "${with_dvbpsi}" in
2242   ""|yes)
2243     if test -z "${with_dvbpsi_tree}"
2244     then
2245       AC_CHECK_HEADERS(dvbpsi/dr.h,
2246         [ VLC_ADD_PLUGINS([ts])
2247           if test "${enable_sout}" != "no"; then
2248             VLC_ADD_PLUGINS([mux_ts])
2249           fi
2250           VLC_ADD_LIBS([mux_ts ts dvb],[-ldvbpsi]) ],
2251         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
2252         [#if defined( HAVE_STDINT_H )
2253 #   include <stdint.h>
2254 #elif defined( HAVE_INTTYPES_H )
2255 #   include <inttypes.h>
2256 #endif
2257 #include <dvbpsi/dvbpsi.h>
2258 #include <dvbpsi/descriptor.h>
2259 #include <dvbpsi/pat.h>
2260 #include <dvbpsi/pmt.h>])
2261     else
2262       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
2263       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
2264       if test -z "${real_dvbpsi_tree}"
2265       then
2266         dnl  The given directory can't be found
2267         AC_MSG_RESULT(no)
2268         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
2269       fi
2270       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
2271       then
2272         dnl  Use a custom libdvbpsi
2273         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
2274         VLC_ADD_BUILTINS([ts])
2275         if test "${enable_sout}" != "no"; then
2276           VLC_ADD_BUILTINS([mux_ts])
2277         fi
2278         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
2279         VLC_ADD_LIBS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
2280       else
2281         dnl  The given libdvbpsi wasn't built
2282         AC_MSG_RESULT(no)
2283         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
2284       fi
2285     fi
2286   ;;
2287   no)
2288     dnl  Compile without dvbpsi
2289   ;;
2290   *)
2291     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
2292     if test -z "${with_dvbpsi}"
2293     then
2294       LDFLAGS_test=""
2295       CPPFLAGS_test=""
2296     else
2297       LDFLAGS_test="-L${with_dvbpsi}/lib"
2298       CPPFLAGS_test="-I${with_dvbpsi}/include"
2299     fi
2300     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
2301     AC_CHECK_HEADERS([dvbpsi/dr.h],[
2302       VLC_ADD_PLUGINS([ts])
2303       if test "${enable_sout}" != "no"; then
2304         VLC_ADD_PLUGINS([mux_ts])
2305       fi
2306       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
2307       VLC_ADD_LIBS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
2308
2309     ],[
2310       if test -n "${enable_dvbpsi}"
2311       then
2312         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])
2313       fi
2314     ])
2315     CPPFLAGS="${CPPFLAGS_save}"
2316   ;;
2317   esac
2318   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
2319     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
2320   ], [], [${LIBS_ts}])
2321
2322 fi
2323
2324 dnl
2325 dnl  Video4Linux plugin
2326 dnl
2327 AC_ARG_ENABLE(v4l,
2328   [  --enable-v4l            Video4Linux input support (default disabled)])
2329 if test "${enable_v4l}" = "yes"
2330 then
2331   AC_ARG_WITH(v4l,
2332     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
2333   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
2334   then
2335     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
2336   fi
2337
2338   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
2339   AC_CHECK_HEADERS(linux/videodev.h, [
2340     VLC_ADD_PLUGINS([v4l])
2341   ],[])
2342   CPPFLAGS="${CPPFLAGS_save}"
2343 fi
2344
2345 dnl
2346 dnl  Video4Linux2 plugin
2347 dnl
2348 AC_ARG_ENABLE(v4l2,
2349   [  --enable-v4l2           Video4Linux2 input support (default disabled)])
2350 if test "${enable_v4l2}" = "yes"
2351 then
2352   AC_ARG_WITH(v4l2,
2353     [    --with-v4l2=PATH       path to a v4l2-enabled kernel tree],[],[])
2354   if test "${with_v4l2}" != "no" -a -n "${with_v4l2}"
2355   then
2356     VLC_ADD_CPPFLAGS([v4l2],[-I${with_v4l2}/include])
2357   fi
2358
2359   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_v4l2_alsa="true", have_v4l2_alsa="false"),have_v4l2_alsa="false")
2360   if test "${have_v4l2_alsa}" = "true"
2361   then
2362     CFLAGS="${CFLAGS_save}"
2363     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
2364                     #define ALSA_PCM_NEW_SW_PARAMS_API
2365                     #include <alsa/asoundlib.h>],
2366        [snd_pcm_hw_params_get_period_time(0,0,0);],
2367         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
2368     VLC_ADD_LDFLAGS([v4l2],[-lasound -lm -ldl])
2369     AC_DEFINE(HAVE_ALSA, 1, Define if ALSA is present.)
2370   fi
2371
2372   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l2}"
2373   AC_CHECK_HEADERS(linux/videodev2.h, [
2374     VLC_ADD_PLUGINS([v4l2])
2375   ],[])
2376   CPPFLAGS="${CPPFLAGS_save}"
2377 fi
2378
2379
2380 dnl
2381 dnl  special access module for Hauppauge PVR cards
2382 dnl
2383 AC_ARG_ENABLE(pvr,
2384   [  --enable-pvr            PVR cards access module (default disabled)])
2385 if test "${enable_pvr}" = "yes"
2386 then
2387   VLC_ADD_PLUGINS([pvr])
2388   AC_ARG_WITH(videodev2,
2389     [  --with-videodev2=FILE   Location of videodev2.h file (default /usr/include/linux/videodev2.h)],[],[])
2390   if test "${with_videodev2}" != "no" -a -n "${with_videodev2}"
2391   then
2392     AC_DEFINE_UNQUOTED(VIDEODEV2_H_FILE, "${with_videodev2}", [Location of videodev2.h])
2393   fi
2394     
2395
2396   AC_CACHE_CHECK([for new linux/videodev2.h],
2397       [new_linux_videodev2_h],
2398       [AC_TRY_COMPILE([
2399           #include <sys/types.h>
2400           #   ifdef VIDEODEV2_H_FILE
2401           #   include VIDEODEV2_H_FILE
2402           #   else
2403           #   include <linux/videodev2.h>
2404           #   endif
2405           ],
2406           [struct v4l2_ext_controls ctrls; ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG; ],
2407           new_linux_videodev2_h=yes,
2408           new_linux_videodev2_h=no)])
2409   if test "${new_linux_videodev2_h}" != "no"; then
2410     AC_DEFINE(HAVE_NEW_LINUX_VIDEODEV2_H, 1, [Define if new linux/videodev2.h present])
2411   fi
2412 fi
2413
2414 dnl
2415 dnl  gnomeVFS access module
2416 dnl
2417 AC_ARG_ENABLE(gnomevfs,
2418   [  --enable-gnomevfs       GnomeVFS access module (default disabled)])
2419 if test "${enable_gnomevfs}" = "yes" 
2420 then
2421   PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0,
2422     VLC_ADD_LIBS([access_gnomevfs],[$GNOMEVFS_LIBS])
2423     VLC_ADD_CPPFLAGS([access_gnomevfs],[$GNOMEVFS_CPPFLAGS])
2424     VLC_ADD_CFLAGS([access_gnomevfs],[$GNOMEVFS_CFLAGS])
2425     VLC_ADD_PLUGINS([access_gnomevfs]),
2426     AC_MSG_WARN([GnomeVFS support disabled because GnomeVFS development headers not found]))
2427 fi
2428
2429 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
2430 AC_ARG_ENABLE(libcdio,
2431   [  --enable-libcdio        CD input and control library support (default enabled)])
2432
2433
2434 have_libcdio=no
2435 have_libvcdinfo=no
2436 if test "${enable_libcdio}" != "no"
2437 then
2438   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.78.2,
2439      have_libcdio=yes
2440      AC_DEFINE(HAVE_LIBCDIO, 1, 
2441      [Define if you have libcdio 0.78.2 or greater installed]),
2442      [AC_MSG_WARN(CD Reading and information library not found)])
2443
2444   PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.22,
2445      [have_libvcdinfo=yes
2446      AC_DEFINE(HAVE_VCDINFO, 1, 
2447      [Define if you have libvcdinfo 0.7.22 or greater installed])],
2448      [AC_MSG_WARN(VCD information library not found)])
2449 fi
2450
2451 dnl
2452 dnl  VCDX and CDDAX modules
2453 dnl
2454 AC_ARG_ENABLE(cddax,
2455   [  --enable-cddax          audio CD plugin with CD Text and CD paranoia via libcdio (default disabled)])
2456  
2457 AC_ARG_ENABLE(libcddb,
2458   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
2459  
2460 if test "${enable_cddax}" = "yes"
2461 then
2462   if test "$have_libcdio" = "yes"
2463   then
2464     AC_DEFINE(HAVE_CDDAX, 1, [Define for the audio CD plugin using libcdio])
2465     VLC_ADD_LIBS([cddax],[$LIBCDIO_LIBS])
2466     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
2467     VLC_ADD_PLUGINS([cddax])
2468     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
2469     VLC_ADD_LIBS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
2470     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
2471   else 
2472     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
2473     HAVE_CDDAX=no
2474   fi
2475
2476   if test "$enable_libcddb" != "no"; then
2477     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2478       HAVE_LIBCDDB=yes 
2479       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2480       VLC_ADD_LIBS([cddax],[$LIBCDDB_LIBS])
2481       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
2482       ],
2483       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2484       HAVE_LIBCDDB=no])
2485   fi
2486  
2487 fi
2488
2489 AC_ARG_ENABLE(vcdx,
2490   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2491  
2492 if test "${enable_vcdx}" = "yes"
2493 then
2494   if test "${have_libvcdinfo}" = "yes"
2495   then
2496     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2497     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2498   else 
2499     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
2500     HAVE_VCDX=no
2501   fi
2502
2503   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
2504    [VLC_ADD_LIBS([vcdx],[$LIBISO9660_LIBS])
2505     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
2506     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
2507     HAVE_VCDX=no])
2508
2509   if test "$have_libvcdinfo" = "yes"
2510   then
2511     AC_DEFINE(HAVE_VCDX, 1, 
2512     [Define for the VCD plugin using libcdio/libvcdinfo])
2513     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2514     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2515     VLC_ADD_PLUGINS([vcdx])
2516   else 
2517     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
2518     HAVE_VCDX=no
2519   fi
2520 fi
2521
2522 dnl
2523 dnl  Built-in CD-DA and VCD module
2524 dnl
2525 AC_ARG_ENABLE(cdda,           
2526   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
2527  
2528 AC_ARG_ENABLE(vcd,
2529   [  --enable-vcd            built-in VCD (default enabled)])
2530
2531 if test "${enable_vcd}" != "no"
2532 then
2533   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2534   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2535     AC_MSG_RESULT(yes)
2536     VLC_ADD_PLUGINS([vcd cdda])
2537   ],[
2538     AC_MSG_RESULT(no)
2539   ])
2540
2541   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2542   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2543     AC_MSG_RESULT(yes)
2544     VLC_ADD_PLUGINS([vcd cdda])
2545     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2546   ],[
2547     AC_MSG_RESULT(no)
2548   ])
2549
2550   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2551   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2552     AC_MSG_RESULT(yes)
2553     VLC_ADD_PLUGINS([vcd cdda])
2554     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2555   ],[
2556     AC_MSG_RESULT(no)
2557   ])
2558
2559   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2560   then
2561     VLC_ADD_PLUGINS([vcd cdda])
2562   fi
2563
2564   if test "${SYS}" = "darwin"
2565   then
2566     VLC_ADD_PLUGINS([vcd cdda])
2567     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-Wl,-framework,IOKit,-framework,CoreFoundation])
2568     VLC_ADD_LIBS([vcdx cddax cdda],[-liconv])
2569   fi
2570
2571   if test "$enable_libcddb" != "no"; then
2572     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2573       HAVE_LIBCDDB=yes 
2574       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2575       VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2576       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2577       ],:
2578       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2579       HAVE_LIBCDDB=no])
2580   fi
2581 fi
2582
2583 dnl
2584 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2585 dnl
2586 AC_ARG_ENABLE(dvb,
2587   [  --enable-dvb            DVB-S/T/C card support (default disabled)])
2588
2589 if test "${enable_dvb}" = "yes"
2590 then
2591   AC_ARG_WITH(dvb,
2592   [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
2593   if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2594   then
2595     VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2596   fi
2597   CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2598   AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2599     if test -z "${with_dvbpsi_tree}"
2600     then
2601       VLC_ADD_PLUGINS([dvb])
2602     else
2603       VLC_ADD_BUILTINS([dvb])
2604     fi
2605   ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2606   CPPFLAGS="${CPPFLAGS_save}"
2607 fi
2608
2609 dnl
2610 dnl  Screen capture module
2611 dnl
2612 AC_ARG_ENABLE(screen,
2613   [  --enable-screen         Screen capture support (default enabled)])
2614 if test "${enable_screen}" != "no"; then
2615   if test "${SYS}" = "darwin"; then
2616     AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2617       VLC_ADD_PLUGINS([screen])
2618       VLC_ADD_LDFLAGS([screen],[-Wl,-framework,ApplicationServices])
2619     ])
2620   elif test "${SYS}" = "mingw32"; then
2621     VLC_ADD_PLUGINS([screen])
2622     VLC_ADD_LIBS([screen],[-lgdi32])
2623   elif test "${SYS}" = "mingwce"; then
2624     CPPFLAGS="${CPPFLAGS_save}"
2625   elif test "${SYS}" = "beos"; then
2626     VLC_ADD_PLUGINS([screen])
2627     VLC_ADD_CXXFLAGS([screen],[])
2628     VLC_ADD_LIBS([screen],[-lbe])
2629   else
2630     CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
2631     AC_CHECK_HEADERS(X11/Xlib.h, [
2632       VLC_ADD_PLUGINS([screen])
2633       VLC_ADD_LIBS([screen],[${X_LIBS} ${X_PRE_LIBS} -lX11])
2634       VLC_ADD_CPPFLAGS([screen],[${X_CFLAGS}])
2635     ])
2636     CPPFLAGS="${CPPFLAGS_save}"
2637   fi
2638 fi
2639
2640 dnl
2641 dnl  ipv6 plugin - not for QNX yet
2642 dnl
2643 have_ipv6=no
2644 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2645   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2646 ])
2647
2648 AS_IF([test "${have_ipv6}" = "yes"], [
2649   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2650
2651
2652 AC_CHECK_FUNCS(inet_ntop,[
2653   AC_DEFINE(HAVE_INET_NTOP, 1, [Define to 1 if you have inet_ntop().])])
2654
2655
2656 dnl
2657 dnl  ogg demux plugin
2658 dnl
2659 AC_ARG_ENABLE(ogg,
2660   [  --enable-ogg            Ogg demux support (default enabled)])
2661 if test "${enable_ogg}" != "no"
2662 then
2663   AC_ARG_WITH(ogg-tree,
2664   [    --with-ogg-tree=PATH  ogg tree for static linking])
2665   if test -n "${with_ogg_tree}"
2666   then
2667     AC_MSG_CHECKING(for libogg.a in ${with_ogg_tree})
2668     real_ogg_tree="`cd ${with_ogg_tree} 2>/dev/null && pwd`"
2669     if test -z "${real_ogg_tree}"
2670     then
2671       dnl  The given directory can't be found
2672       AC_MSG_RESULT(no)
2673       AC_MSG_ERROR([cannot cd to ${with_ogg_tree}])
2674     fi
2675     if test -f "${real_ogg_tree}/src/.libs/libogg.a"
2676     then
2677       dnl  Use a custom ogg
2678       AC_MSG_RESULT(${real_ogg_tree}/src/.libs/libogg.a)
2679       VLC_ADD_PLUGINS([ogg])
2680       if test "${enable_sout}" != "no"; then
2681         VLC_ADD_PLUGINS([mux_ogg])
2682       fi
2683       VLC_ADD_LIBS([ogg mux_ogg speex vorbis],[${real_ogg_tree}/src/.libs/libogg.a])
2684       VLC_ADD_CFLAGS([ogg mux_ogg speex vorbis],[-I${real_ogg_tree}/include])
2685     else
2686       dnl  The given ogg wasn't built
2687       AC_MSG_RESULT(no)
2688       AC_MSG_ERROR([cannot find ${real_ogg_tree}/src/.libs/libogg.a, make sure you compiled ogg in ${with_ogg_tree}])
2689     fi
2690   else
2691     AC_CHECK_HEADERS(ogg/ogg.h, [
2692       AC_CHECK_LIB( ogg, oggpack_read, [
2693         VLC_ADD_PLUGINS([ogg])
2694         if test "${enable_sout}" != "no"; then
2695           VLC_ADD_PLUGINS([mux_ogg])
2696         fi
2697         VLC_ADD_LIBS([ogg mux_ogg],[-logg])])
2698      ],[])
2699   fi
2700 fi
2701
2702 dnl
2703 dnl  matroska demux plugin
2704 dnl
2705 AC_ARG_ENABLE(mkv,
2706   [  --enable-mkv            Matroska demux support (default enabled)])
2707 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2708   AC_LANG_PUSH(C++)
2709   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2710     AC_MSG_CHECKING(for libebml version >= 0.7.6)
2711     AC_EGREP_CPP(yes,
2712       [#include <ebml/EbmlVersion.h>
2713        #ifdef LIBEBML_VERSION
2714        #if LIBEBML_VERSION >= 0x000706
2715        yes
2716        #endif
2717        #endif],
2718       [AC_MSG_RESULT([yes])
2719         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2720           AC_MSG_CHECKING(for libmatroska version >= 0.7.7)
2721           AC_EGREP_CPP(yes,
2722             [#include <matroska/KaxVersion.h>
2723              #ifdef LIBMATROSKA_VERSION
2724              #if LIBMATROSKA_VERSION >= 0x000705
2725              yes
2726              #endif
2727              #endif],
2728             [AC_MSG_RESULT([yes])
2729               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2730               VLC_ADD_CXXFLAGS([mkv],[])
2731               if test "${SYS}" = "darwin"; then
2732                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2733               fi
2734               AC_CHECK_LIB(ebml_pic, main, [
2735                 VLC_ADD_PLUGINS([mkv])
2736                 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2737               ],
2738                 AC_CHECK_LIB(ebml, main, [
2739                   VLC_ADD_PLUGINS([mkv])
2740                   VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2741                 ]) 
2742               )
2743             ],
2744             [AC_MSG_RESULT([no])
2745               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.])
2746           ])
2747         ])
2748       ],
2749       [AC_MSG_RESULT([no])
2750         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.])
2751     ])
2752   ])
2753   AC_LANG_POP(C++)
2754 fi
2755
2756 dnl
2757 dnl  modplug demux plugin
2758 dnl
2759 AC_ARG_ENABLE(mod,
2760   [  --enable-mod            Mod demux support (default enabled)])
2761 if test "${enable_mod}" != "no"
2762 then
2763   AC_ARG_WITH(mod-tree,
2764   [    --with-mod-tree=PATH mod tree for static linking])
2765   if test -n "${with_mod_tree}"
2766   then
2767     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2768     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2769     if test -z "${real_mod_tree}"
2770     then
2771       dnl  The given directory can't be found
2772       AC_MSG_RESULT(no)
2773       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2774     fi
2775     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2776     then
2777       dnl  Use a custom mod
2778       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2779       VLC_ADD_PLUGINS([mod])
2780       VLC_ADD_LIBS([mod],[${real_mod_tree}/src/.libs/libmodplug.a -lstdc++])
2781       VLC_ADD_CXXFLAGS([mod],[-I${real_mod_tree}/include])
2782     else
2783       dnl  The given mod wasn't built
2784       AC_MSG_RESULT(no)
2785       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2786     fi
2787   else
2788     AC_CHECK_HEADERS(libmodplug/modplug.h, [
2789       VLC_ADD_PLUGINS([mod])
2790       VLC_ADD_CXXFLAGS([mod],[])
2791       VLC_ADD_LIBS([mod],[-lmodplug -lstdc++])])
2792   fi
2793 fi
2794
2795 dnl
2796 dnl  mpc demux plugin
2797 dnl
2798 AC_ARG_ENABLE(mpc,
2799   [  --enable-mpc            Mpc demux support (default enabled)])
2800 if test "${enable_mpc}" != "no"
2801 then
2802   AC_CHECK_HEADERS(mpcdec/mpcdec.h, [
2803     VLC_ADD_PLUGINS([mpc])
2804     VLC_ADD_LIBS([mpc],[-lmpcdec])])
2805 fi
2806
2807 dnl
2808 dnl  game music emu demux plugin
2809 dnl
2810 AC_ARG_ENABLE(gme,
2811   [  --enable-gme            Game Music Emu demux support (default enabled)])
2812 if test "${enable_gme}" != "no" -a "${CXX}" != "";
2813 then
2814   AC_LANG_PUSH(C++)
2815   AC_ARG_WITH(gme-tree,
2816   [    --with-gme-tree=PATH gme tree for static linking])
2817   if test -n "${with_gme_tree}"
2818   then
2819     AC_MSG_CHECKING(for libgme.a in ${with_mod_tree})
2820     real_gme_tree="`cd ${with_gme_tree} 2>/dev/null && pwd`"
2821     if test -z "${real_gme_tree}"
2822     then
2823       dnl  The given directory can't be found
2824       AC_MSG_RESULT(no)
2825       AC_MSG_ERROR([cannot cd to ${with_gme_tree}])
2826     fi
2827     if test -f "${real_gme_tree}/gme/libgme.a"
2828     then
2829       dnl  Use a custom gme
2830       AC_MSG_RESULT(${real_gme_tree}/gme/libgme.a)
2831       VLC_ADD_PLUGINS([gme])
2832       VLC_ADD_LIBS([gme],[${real_gme_tree}/gme/libgme.a])
2833       VLC_ADD_CXXFLAGS([gme],[-I${real_gme_tree}/gme])
2834     else
2835       dnl  The given gme wasn't built
2836       AC_MSG_RESULT(no)
2837       AC_MSG_ERROR([cannot find ${real_mod_tree}/gme/libgme.a, make sure you compiled gme in ${with_gme_tree}])
2838     fi
2839   else
2840       AC_MSG_WARN([only static linking is available, you must provide a gme-tree])
2841   fi
2842   AC_LANG_POP(C++)
2843 fi
2844
2845 dnl
2846 dnl  Codec plugins
2847 dnl
2848
2849 AC_ARG_WITH(,[Codec plugins:])
2850
2851 dnl
2852 dnl  mad plugin
2853 dnl
2854 AC_ARG_ENABLE(mad,
2855   [  --enable-mad            libmad module (default enabled)])
2856 if test "${enable_mad}" != "no"
2857 then
2858   AC_ARG_WITH(mad,
2859     [    --with-mad=PATH       path to libmad],[],[])
2860   if test "${with_mad}" != "no" -a -n "${with_mad}"
2861   then
2862     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2863     VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2864   fi
2865
2866   AC_ARG_WITH(mad-tree,
2867     [    --with-mad-tree=PATH   mad tree for static linking],[],[])
2868   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2869   then
2870     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2871     if test -z "${real_mad_tree}"
2872     then
2873       dnl  The given directory can't be found
2874       AC_MSG_RESULT(no)
2875       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2876     fi
2877     dnl  Use a custom libmad
2878     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2879     if test -f ${real_mad_tree}/mad.h
2880     then
2881       AC_MSG_RESULT(yes)
2882       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2883       VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2884       LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2885       AC_CHECK_LIB(mad, mad_bit_init, [
2886         VLC_ADD_BUILTINS([mpgatofixed32])
2887         VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2888         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2889       ],[])
2890       LDFLAGS="${LDFLAGS_save}"
2891     else
2892       AC_MSG_RESULT(no)
2893       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2894     fi
2895   else
2896     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2897     LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2898     AC_CHECK_HEADERS(mad.h, ,
2899       [ 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.]) ])
2900     AC_CHECK_LIB(mad, mad_bit_init, [
2901       VLC_ADD_PLUGINS([mpgatofixed32])
2902       VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2903       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2904     CPPFLAGS="${CPPFLAGS_save}"
2905     LDFLAGS="${LDFLAGS_save}"
2906   fi
2907 fi
2908
2909 dnl
2910 dnl   libid3tag support (FIXME!!! doesn't work with new input)
2911 dnl
2912 AC_ARG_ENABLE( id3tag,
2913   [  --disable-id3tag id3tag metadata reader plugin (default enabled)])
2914 AS_IF([test "${enable_id3tag}" != "no"], [
2915   AC_CHECK_HEADERS(id3tag.h, [
2916     AC_CHECK_HEADERS(zlib.h, [
2917       VLC_ADD_LIBS([id3tag],[-lid3tag -lz])
2918       VLC_ADD_PLUGINS([id3tag])
2919     ])
2920   ])
2921 ])
2922
2923 dnl
2924 dnl  ffmpeg decoder/demuxer plugin
2925 dnl
2926 dnl we try to find ffmpeg using : 1- given tree, 2- pkg-config
2927 dnl                               3- default place,
2928
2929 AC_ARG_ENABLE(ffmpeg,
2930 [  --enable-ffmpeg         ffmpeg codec (default enabled)])
2931 if test "${enable_ffmpeg}" != "no"
2932 then
2933
2934 dnl Those options have to be here because the .pc can be bogus for ffmpeg previous nov 05
2935
2936  AC_ARG_WITH(ffmpeg-mp3lame,
2937    [    --with-ffmpeg-mp3lame specify if ffmpeg has been compiled with mp3lame support],
2938    [
2939      if test "$with_ffmpeg_mp3lame" = "yes";    then
2940         VLC_ADD_LIBS([ffmpeg],[-lmp3lame])
2941      fi])
2942
2943  AC_ARG_WITH(ffmpeg-faac,
2944    [    --with-ffmpeg-faac    specify if ffmpeg has been compiled with faac support],
2945    [
2946      if test "$with_ffmpeg_faac" = "yes"; then
2947         VLC_ADD_LIBS([ffmpeg],[-lfaac])
2948      fi])
2949
2950  AC_ARG_WITH(ffmpeg-dts,
2951    [    --with-ffmpeg-dts     specify if ffmpeg has been compiled with dts support],
2952    [
2953      if test "$with_ffmpeg_dts" = "yes"; then
2954              LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg} ${LIBS_ffmpeg}"
2955              AC_CHECK_LIB(dts_pic, dts_free, 
2956                [ VLC_ADD_LIBS([ffmpeg],[-ldts_pic]) ],
2957                [ VLC_ADD_LIBS([ffmpeg],[-ldts]) ])
2958              LDFLAGS="${LDFLAGS_save}"
2959      fi])
2960
2961  AC_ARG_WITH(ffmpeg-vorbis,
2962    [    --with-ffmpeg-vorbis    specify if ffmpeg has been compiled with vorbis support],
2963    [
2964      if test "$with_ffmpeg_vorbis" = "yes"; then
2965         VLC_ADD_LIBS([ffmpeg],[-lvorbisenc -lvorbis])
2966      fi])
2967
2968  AC_ARG_WITH(ffmpeg-theora,
2969    [    --with-ffmpeg-theora    specify if ffmpeg has been compiled with theora support],
2970    [
2971      if test "$with_ffmpeg_theora" = "yes"; then
2972         VLC_ADD_LIBS([ffmpeg],[-ltheora])
2973      fi])
2974
2975  AC_ARG_WITH(ffmpeg-ogg,
2976    [    --with-ffmpeg-ogg    specify if ffmpeg has been compiled with ogg support],
2977    [
2978      if test "$with_ffmpeg_ogg" = "yes"; then
2979         VLC_ADD_LIBS([ffmpeg],[-logg])
2980      fi])
2981
2982  AC_ARG_WITH(ffmpeg-zlib,
2983    [    --with-ffmpeg-zlib    specify if ffmpeg has been compiled with zlib support],
2984    [
2985      if test "$with_ffmpeg_zlib" = "yes"; then
2986         VLC_ADD_LIBS([ffmpeg],[-lz])
2987      fi])
2988
2989  AC_ARG_WITH(ffmpeg-amrnb,
2990    [    --with-ffmpeg-amrnb specify if ffmpeg has been compiled with libamrnb support],
2991    [
2992      if test "$with_ffmpeg_amrnb" = "yes";      then
2993         VLC_ADD_LIBS([ffmpeg],[-lamrnb])
2994      fi])
2995
2996  AC_ARG_WITH(ffmpeg-amrwb,
2997    [    --with-ffmpeg-amrwb specify if ffmpeg has been compiled with libamrwb support],
2998    [
2999      if test "$with_ffmpeg_amrwb" = "yes";      then
3000         VLC_ADD_LIBS([ffmpeg],[-lamrwb])
3001      fi])
3002
3003  AC_ARG_WITH(ffmpeg-x264,
3004    [    --with-ffmpeg-x264 specify if ffmpeg has been compiled with libx264 support],
3005    [
3006      if test "$with_ffmpeg_x264" = "yes";       then
3007         VLC_ADD_LIBS([ffmpeg],[-lx264])
3008      fi])
3009
3010  AC_ARG_WITH(ffmpeg-a52,
3011    [    --with-ffmpeg-a52 specify if ffmpeg has been compiled with liba52 support],
3012    [
3013      if test "$with_ffmpeg_a52" = "yes";        then
3014         VLC_ADD_LIBS([ffmpeg],[-la52])
3015      fi])
3016
3017  dnl
3018  dnl test for --with-ffmpeg-tree
3019  dnl
3020  AC_ARG_WITH(ffmpeg-tree,
3021    [    --with-ffmpeg-tree=PATH ffmpeg tree for static linking])
3022
3023  if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
3024    AC_MSG_CHECKING(for libavcodec.a in ${with_ffmpeg_tree})
3025    real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
3026    if test -z "${real_ffmpeg_tree}"; then
3027      dnl  The given directory can't be found
3028      AC_MSG_RESULT(no)
3029      AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
3030    fi
3031    if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
3032      dnl  The given libavcodec wasn't built
3033      AC_MSG_RESULT(no)
3034      AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodec.a, make sure you compiled libavcodec in ${with_ffmpeg_tree}])
3035    fi
3036    if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
3037      if test -f "${real_ffmpeg_tree}/libavcodec/libpostproc/libpostproc.a"; then
3038        VLC_ADD_LIBS([ffmpeg],[-L${real_ffmpeg_tree}/libavcodec/libpostproc ${real_ffmpeg_tree}/libavcodec/libpostproc/libpostproc.a])   
3039      elif test -f "${real_ffmpeg_tree}/libpostproc/libpostproc.a"; then 
3040         VLC_ADD_LIBS([ffmpeg],[-L${real_ffmpeg_tree}/libpostproc ${real_ffmpeg_tree}/libpostproc/libpostproc.a])
3041         VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}])
3042      else
3043        dnl  The given libavcodec wasn't built with --enable-pp
3044        AC_MSG_RESULT(no)
3045        AC_MSG_ERROR([cannot find libpostproc.a in ${real_ffmpeg_tree}/[libavcodec/]libpostproc/. Make sure you configured ffmpeg with --enable-pp])
3046      fi
3047    fi
3048    dnl  Use a custom libffmpeg
3049    AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodec.a)
3050
3051    dnl Use pkg-config to look for the ldflags in libav*-uninstalled.pc
3052    PKG_CONFIG_PATH_save="$PKG_CONFIG_PATH"
3053    PKG_CONFIG_LIBDIR_save="$PKG_CONFIG_LIBDIR"
3054    export PKG_CONFIG_PATH=""
3055    export PKG_CONFIG_LIBDIR="${real_ffmpeg_tree}"
3056
3057    PKG_CHECK_MODULES( [FFMPEG],[libavcodec libavformat libpostproc], [
3058         VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher], ${FFMPEG_CFLAGS})
3059         VLC_ADD_LIBS([ffmpeg stream_out_switcher], ${FFMPEG_LIBS})]
3060       ,[])
3061    AS_IF([test -n "${PKG_CONFIG_PATH_save}"],[
3062          export PKG_CONFIG_PATH="${PKG_CONFIG_PATH_save}"
3063    ],[
3064         unset PKG_CONFIG_PATH
3065    ])
3066    AS_IF([test -n "${PKG_CONFIG_LIBDIR_save}"],[
3067         export PKG_CONFIG_LIBDIR="${PKG_CONFIG_LIBDIR_save}"
3068    ],[
3069         unset PKG_CONFIG_LIBDIR
3070    ])
3071
3072    VLC_ADD_BUILTINS([ffmpeg])
3073    if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes" ; then
3074      VLC_ADD_BUILTINS([stream_out_switcher])
3075    fi
3076
3077    if test -f "${real_ffmpeg_tree}/libswscale/libswscale.a"; then
3078      AC_DEFINE(HAVE_LIBSWSCALE_TREE, 1, [Define if you have ffmpeg's libswscale.])
3079      VLC_ADD_LIBS([ffmpeg],[-L${real_ffmpeg_tree}/libswscale ${real_ffmpeg_tree}/libswscale/libswscale.a])
3080      VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libswscale])
3081    fi
3082
3083     if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
3084       AC_DEFINE(HAVE_LIBAVFORMAT_TREE, 1, [Define if you have ffmpeg's libavformat.])
3085       VLC_ADD_LIBS([ffmpeg],[-L${real_ffmpeg_tree}/libavformat -lavformat -lz])
3086       VLC_ADD_CPPFLAGS([ffmpeg],[-I${real_ffmpeg_tree}/libavformat])
3087     fi
3088 else
3089
3090
3091 dnl Trying with pkg-config
3092    PKG_CHECK_MODULES(FFMPEG,[libavcodec, libavformat],
3093     [
3094      VLC_SAVE_FLAGS
3095      CPPFLAGS="${CPPFLAGS} ${FFMPEG_CFLAGS}"
3096      CFLAGS="${CFLAGS} ${FFMPEG_CFLAGS}"
3097      AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] )
3098      AC_CHECK_HEADERS(ffmpeg/avformat.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avformat.h.])] )
3099      AC_CHECK_HEADERS(ffmpeg/avutil.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avutil.h.])] )
3100      dnl newer ffmpeg have a separate libpostproc
3101      PKG_CHECK_MODULES(POSTPROC, libpostproc,[
3102        VLC_ADD_CFLAGS([ffmpeg],[${POSTPROC_CFLAGS}]) 
3103        VLC_ADD_LIBS([ffmpeg],[${POSTPROC_LIBS}]) 
3104        ],[ true ])
3105      CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
3106      CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
3107      AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] )
3108      if test "${SYS}" = "darwin"; then
3109         VLC_ADD_BUILTINS([ffmpeg])
3110      else
3111         VLC_ADD_PLUGINS([ffmpeg])
3112      fi
3113      if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes"; then
3114         if test "${SYS}" = "darwin"; then
3115             VLC_ADD_BUILTINS([stream_out_switcher])
3116         else
3117             VLC_ADD_PLUGINS([stream_out_switcher])
3118         fi
3119      fi
3120      VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[${FFMPEG_CFLAGS}])
3121      VLC_ADD_LIBS([ffmpeg stream_out_switcher],[${FFMPEG_LIBS}])
3122
3123      dnl even newer ffmpeg has a libswscale
3124      PKG_CHECK_MODULES(SWSCALE,[libswscale],[
3125        VLC_ADD_CFLAGS([ffmpeg],[${SWSCALE_CFLAGS}])
3126        VLC_ADD_LIBS([ffmpeg],[${SWSCALE_LIBS}])
3127 dnl    AC_CHECK_HEADERS(ffmpeg/swscale.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/swscale.h.])])
3128        AC_CHECK_LIB(swscale, sws_getContext,
3129          [AC_CHECK_HEADERS([ffmpeg/avutil.h, ffmpeg/swscale.h])],[],[-lavutil -lm])
3130        ],[ true ])
3131      VLC_RESTORE_FLAGS
3132     ],[
3133
3134     dnl
3135     dnl last chance: at the default place
3136     dnl
3137       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_ffmpeg}"
3138       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg} ${LIBS_ffmpeg}"
3139       AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] )
3140       AC_CHECK_HEADERS(ffmpeg/avformat.h)
3141       AC_CHECK_HEADERS(ffmpeg/avutil.h)
3142       AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] )
3143
3144       AC_CHECK_LIB(avutil, av_crc_init, [
3145         VLC_ADD_LIBS([ffmpeg],[-lavutil])
3146         LDAVUTIL="-lavutil"])
3147
3148       AC_CHECK_LIB(avcodec, avcodec_init, [
3149         VLC_ADD_BUILTINS([ffmpeg])
3150         VLC_ADD_LIBS([ffmpeg],[-lavcodec])
3151         if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes"; then
3152             VLC_ADD_BUILTINS([stream_out_switcher])
3153         fi],
3154          [ 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])
3155
3156       AC_CHECK_LIB(postproc, pp_postprocess, [
3157         VLC_ADD_LIBS([ffmpeg],[-lpostproc])],
3158       AC_MSG_ERROR([Could not find libpostproc inside FFmpeg. You should configure FFmpeg with --enable-gpl --enable-pp.]),
3159         [$LDAVUTIL])
3160
3161       AC_CHECK_LIB(avformat, av_open_input_stream, [
3162         VLC_ADD_LIBS([ffmpeg],[-lavformat -lz]) ], [], [-lavcodec -lz $LDAVUTIL])
3163       LDFLAGS="${LDFLAGS_save}"
3164       CPPFLAGS="${CPPFLAGS_save}"
3165
3166       AC_CHECK_LIB(swscale, sws_getContext, [
3167         AC_CHECK_HEADERS(ffmpeg/swscale.h)
3168         VLC_ADD_LIBS([ffmpeg],[-lswscale]) ], [], [-lavcodec $LDAVUTIL])
3169       LDFLAGS="${LDFLAGS_save}"
3170       CPPFLAGS="${CPPFLAGS_save}"
3171     ])
3172   fi
3173 fi
3174
3175 dnl
3176 dnl  ffmpegaltivec plugin
3177 dnl
3178 AC_ARG_ENABLE(ffmpegaltivec,
3179 [  --enable-ffmpegaltivec  ffmpegaltivec codec (DO NOT USE)])
3180 if test "${enable_ffmpegaltivec}" = "yes"
3181 then
3182   if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
3183     AC_MSG_CHECKING(for libavcodecaltivec.a in ${with_ffmpeg_tree})
3184     real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
3185     if test -z "${real_ffmpeg_tree}"; then
3186       dnl  The given directory can't be found
3187       AC_MSG_RESULT(no)
3188       AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
3189     fi
3190     if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
3191       dnl  The given libavcodecaltivec wasn't built
3192       AC_MSG_RESULT(no)
3193       AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a, make sure you compiled libavcodecaltivec in ${with_ffmpeg_tree}])
3194     fi
3195     if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
3196       dnl  The given libavcodecaltivec wasn't built with --enable-pp
3197       AC_MSG_RESULT(no)
3198       AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
3199     fi
3200     dnl  Use a custom libffmpeg
3201     AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a)
3202     VLC_ADD_BUILTINS([ffmpegaltivec])
3203     VLC_ADD_LIBS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavcodec -lavcodecaltivec])
3204     VLC_ADD_CPPFLAGS([ffmpeg],[-DNO_ALTIVEC_IN_FFMPEG])
3205     VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
3206
3207     if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
3208       AC_DEFINE(HAVE_LIBAVFORMAT_TREE, 1, [Define if you have ffmpeg's libavformat.])
3209       VLC_ADD_LIBS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavformat -lavformataltivec -lz])
3210       VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavformat])
3211     fi
3212     VLC_ADD_LIBS([stream_out_switcher],[-L${real_ffmpeg_tree}/libavcodec])
3213     VLC_ADD_CPPFLAGS([stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
3214   fi
3215 fi
3216
3217 dnl
3218 dnl  faad decoder plugin
3219 dnl
3220 AC_ARG_ENABLE(faad,
3221 [  --enable-faad           faad codec (default disabled)])
3222 if test "${enable_faad}" = "yes"
3223 then
3224   AC_ARG_WITH(faad-tree,
3225   [    --with-faad-tree=PATH faad tree for static linking])
3226   if test -n "${with_faad_tree}"
3227   then
3228     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
3229     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
3230     if test -z "${real_faad_tree}"
3231     then
3232       dnl  The given directory can't be found
3233       AC_MSG_RESULT(no)
3234       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
3235     fi
3236     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
3237     then
3238       dnl  Use a custom faad
3239       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
3240       VLC_ADD_BUILTINS([faad])
3241       VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
3242       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
3243     else
3244       dnl  The given libfaad wasn't built
3245       AC_MSG_RESULT(no)
3246       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
3247     fi
3248   else
3249     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
3250     LDFLAGS="${LDFLAGS_save} ${LIBS_faad}"
3251     AC_CHECK_HEADERS(faad.h, ,
3252       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
3253     AC_CHECK_LIB(faad, faacDecOpen, [
3254       VLC_ADD_PLUGINS([faad])
3255       VLC_ADD_LIBS([faad],[-lfaad]) ],
3256       AC_CHECK_LIB(faad, NeAACDecOpen, [
3257         VLC_ADD_PLUGINS([faad])
3258         VLC_ADD_LIBS([faad],[-lfaad]) ],
3259         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
3260     LDFLAGS="${LDFLAGS_save}"
3261     CPPFLAGS="${CPPFLAGS_save}"
3262   fi
3263 fi
3264
3265 dnl
3266 dnl twolame encoder plugin
3267 dnl
3268 AC_ARG_ENABLE(twolame,
3269 [  --enable-twolame        twolame codec (default disabled)])
3270 if test "${enable_twolame}" = "yes"
3271 then
3272   AC_ARG_WITH(twolame-tree,
3273   [    --with-twolame-tree=PATH twolame tree for static linking])
3274   if test -n "${with_twolame_tree}"
3275   then
3276     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
3277     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
3278     if test -z "${real_twolame_tree}"
3279     then
3280       dnl  The given directory can't be found
3281       AC_MSG_RESULT(no)
3282       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
3283     fi
3284     if test -f "${real_twolame_tree}/libtwolame/.libs/libtwolame.a"
3285     then
3286       dnl  Use a custom twolame
3287       AC_MSG_RESULT(${real_twolame_tree}/libtwolame/.libs/libtwolame.a)
3288       VLC_ADD_BUILTINS([twolame])
3289       VLC_ADD_LIBS([twolame],[${real_twolame_tree}/libtwolame/.libs/libtwolame.a])
3290       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/libtwolame -DLIBTWOLAME_STATIC])
3291     else
3292       dnl  The given libtwolame wasn't built
3293       AC_MSG_RESULT(no)
3294       AC_MSG_ERROR([cannot find ${real_twolame_tree}/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
3295     fi
3296   else
3297     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame} -DLIBTWOLAME_STATIC"
3298     LDFLAGS="${LDFLAGS_save} ${LIBS_twolame}"
3299     AC_CHECK_HEADERS(twolame.h, ,
3300       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
3301     AC_CHECK_LIB(twolame, twolame_init, [
3302       VLC_ADD_PLUGINS([twolame])
3303       VLC_ADD_CPPFLAGS([twolame],[-DLIBTWOLAME_STATIC])
3304       VLC_ADD_LIBS([twolame],[-ltwolame]) ],
3305         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
3306     LDFLAGS="${LDFLAGS_save}"  
3307     CPPFLAGS="${CPPFLAGS_save}"
3308   fi
3309 fi
3310
3311 dnl
3312 dnl  QuickTime plugin
3313 dnl
3314 AC_ARG_ENABLE(quicktime,
3315   [  --enable-quicktime      QuickTime module (default enabled on MacOS X)])
3316 if test "${enable_quicktime}" != "no" &&
3317   (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
3318 then
3319   if test "${SYS}" = "mingw32"; then
3320     VLC_ADD_BUILTINS([quicktime])
3321   else
3322   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
3323     [ VLC_ADD_BUILTINS([quicktime])
3324       VLC_ADD_LDFLAGS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
3325     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
3326   fi
3327 fi
3328
3329 dnl
3330 dnl  Real plugin
3331 dnl
3332 AC_ARG_ENABLE(real,
3333   [  --enable-real           Real audio module (default disabled)])
3334 if test "${enable_real}" = "yes"; then
3335   VLC_ADD_PLUGINS([realaudio])
3336 fi
3337
3338 dnl
3339 dnl  Real RTSP plugin
3340 dnl
3341 AC_ARG_ENABLE(realrtsp,
3342   [  --enable-realrtsp       Real RTSP module (default disabled)])
3343 if test "${enable_realrtsp}" = "yes"; then
3344   VLC_ADD_PLUGINS([access_realrtsp])
3345 fi
3346
3347 dnl
3348 dnl MP4 module
3349 dnl
3350 AC_CHECK_HEADERS(zlib.h, [
3351   VLC_ADD_LIBS([mp4 skins2 sap mkv gme],[-lz])
3352 ] )
3353
3354 AC_CHECK_HEADERS(sysfs/libsysfs.h, [
3355   VLC_ADD_LIBS([mp4 mkv],[-lsysfs])
3356 ] )
3357
3358 dnl
3359 dnl skins2 module
3360 dnl
3361 AC_ARG_ENABLE(libtar,
3362   [  --enable-libtar support for skins2 (default enabled)])
3363
3364 AS_IF([test "${enable_libtar}" != "no"],[
3365   AC_CHECK_HEADERS(libtar.h, [
3366     VLC_ADD_LIBS([skins2],[-ltar])
3367   ] )
3368 ])
3369
3370 dnl
3371 dnl A52/AC3 decoder plugin
3372 dnl
3373 AC_ARG_ENABLE(a52,
3374   [  --enable-a52            A/52 support with liba52 (default enabled)])
3375 if test "${enable_a52}" != "no"
3376 then
3377   AC_ARG_WITH(a52,
3378     [    --with-a52=PATH       a52 headers and libraries])
3379   AC_ARG_WITH(a52-tree,
3380     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
3381   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
3382   then
3383     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
3384     if test -z "${real_a52_tree}"
3385     then
3386       dnl  The given directory can't be found
3387       AC_MSG_RESULT(no)
3388       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
3389     fi
3390     dnl  Use a custom a52dec
3391     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
3392     if test -f ${real_a52_tree}/include/a52.h
3393     then
3394       AC_MSG_RESULT(yes)
3395       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
3396       VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
3397       LDFLAGS="${LDFLAGS_save} ${LIBS_a52tofloat32}"
3398       AC_CHECK_LIB(a52, a52_free, [
3399         VLC_ADD_BUILTINS([a52tofloat32])
3400         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
3401         VLC_ADD_LIBS([a52tofloat32],[-la52])
3402         ],[
3403         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
3404         then
3405           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
3406         else
3407           AC_MSG_ERROR([the specified tree hasn't been compiled])
3408         fi
3409       ])
3410       LDFLAGS="${LDFLAGS_save}"
3411     else
3412       AC_MSG_RESULT(no)
3413       AC_MSG_ERROR([the specified tree doesn't have a52.h])
3414     fi
3415   else
3416     if test -z "${with_a52}"
3417     then
3418       LDFLAGS_test=""
3419       CPPFLAGS_test=""
3420     else
3421       LDFLAGS_test="-L${with_a52}/lib"
3422       CPPFLAGS_test="-I${with_a52}/include"
3423     fi
3424     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
3425     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
3426     AC_CHECK_HEADERS(a52dec/a52.h, [
3427       AC_CHECK_LIB(a52, a52_free, [
3428         VLC_ADD_PLUGINS([a52tofloat32])
3429         VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
3430         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
3431       ],[
3432         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.])
3433         ])
3434     ],[
3435       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.])
3436     ])
3437     CPPFLAGS="${CPPFLAGS_save}"
3438     LDFLAGS="${LDFLAGS_save}"
3439   fi
3440 fi
3441
3442 AC_ARG_WITH(a52-fixed,
3443       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
3444       [
3445         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
3446
3447 dnl
3448 dnl DTS Coherent Acoustics decoder plugin
3449 dnl
3450 AS_IF([test "x${enable_dts}" != "x"], [
3451   AC_MSG_ERROR([--enable-dts is obsolete. Please use libdca and --enable-dca.])
3452 ])
3453 AS_IF([test "x${with_dts_tree}" != "x"], [
3454   AC_MSG_ERROR([--with-dts-tree is obsolete. Please use libdca and --with-dca-tree.])
3455 ])
3456
3457 AC_ARG_ENABLE(dca,
3458   [  --enable-dca            DTS Coherent Acoustics support with libdca (default enabled)])
3459 AS_IF([test "${enable_dca}" != "no"], [
3460   AC_ARG_WITH(dca-tree,
3461     [    --with-dca-tree=PATH  libdca tree for static linking],,
3462     [with_dca_tree="no"])
3463   AS_IF([test "${with_dca_tree}" != "no"], [
3464     real_dca_tree="`cd ${with_dca_tree} 2>/dev/null && pwd`"
3465     AS_IF([test -z "${real_dca_tree}"], [
3466       dnl  The given directory can't be found
3467       AC_MSG_RESULT(no)
3468       AC_MSG_ERROR([${with_dca_tree} directory doesn't exist])
3469     ])
3470     dnl  Use a custom libdca
3471     AC_MSG_CHECKING(for libdca in ${real_dca_tree})
3472     AS_IF([test -f "${real_dca_tree}/libdca/.libs/libdca.a"], [
3473       AC_MSG_RESULT(yes)
3474       VLC_ADD_LIBS([dtstofloat32],[${real_dca_tree}/libdca/.libs/libdca.a])
3475       AS_IF([test -f "${real_dca_tree}/include/dca.h"], [
3476         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/include])
3477       ], [
3478         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/../include])
3479       ])
3480     ], [
3481       AC_MSG_RESULT(no)
3482       AC_MSG_ERROR([the specified tree doesn't have libdca/.libs/libdca.a])
3483     ])
3484   ], [
3485     PKG_CHECK_MODULES([DCA], [libdca >= 0.0.5], [
3486       VLC_ADD_PLUGINS([dtstofloat32])
3487       VLC_ADD_CPPFLAGS([dtstofloat32], [${DCA_CFLAGS}])
3488       VLC_ADD_LIBS([dtstofloat32], [${DCA_LIBS}])
3489     ], [
3490       AS_IF([test "x${enable_dca}" != "x"], [
3491         AC_MSG_ERROR([${DCA_PKG_ERRORS}])
3492       ])
3493     ])
3494   ])
3495 ])
3496
3497 dnl
3498 dnl  Flac plugin
3499 dnl
3500 AC_ARG_ENABLE(flac,
3501   [  --enable-flac           libflac decoder/encoder support (default disabled)])
3502 if test "${enable_flac}" = "yes"
3503 then
3504   AC_ARG_WITH(flac-tree,
3505   [    --with-flac-tree=PATH flac tree for static linking])
3506   if test -n "${with_flac_tree}"
3507   then
3508     AC_MSG_CHECKING(for libFLAC.a in ${with_flac_tree})
3509     real_flac_tree="`cd ${with_flac_tree} 2>/dev/null && pwd`"
3510     if test -z "${real_flac_tree}"
3511     then
3512       dnl  The given directory can't be found
3513       AC_MSG_RESULT(no)
3514       AC_MSG_ERROR([cannot cd to ${with_flac_tree}])
3515     fi
3516     if test -f "${real_flac_tree}/src/libFLAC/.libs/libFLAC.a"
3517     then
3518       dnl  Use a custom flac
3519       AC_MSG_RESULT(${real_flac_tree}/src/libFLAC/.libs/libFLAC.a)
3520       VLC_ADD_LIBS([flac],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a])
3521       VLC_ADD_CFLAGS([flac],[-I${real_flac_tree}/include])
3522       AC_DEFINE(HAVE_FLAC_STREAM_DECODER_H, 1, [Define if you have FLAC])
3523     else
3524       dnl  The given flac wasn't built
3525       AC_MSG_RESULT(no)
3526       AC_MSG_ERROR([cannot find ${real_flac_tree}/src/libFLAC/.libs/libFLAC.a, make sure you compiled flac in ${with_flac_tree}])
3527     fi
3528   else
3529     AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
3530       VLC_ADD_LIBS([flac],[-lFLAC -logg])
3531      ],[])
3532   fi
3533 fi
3534
3535 dnl
3536 dnl  Libmpeg2 plugin
3537 dnl
3538 AC_ARG_ENABLE(libmpeg2,
3539   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
3540 if test "${enable_libmpeg2}" != "no"
3541 then
3542   AC_ARG_WITH(libmpeg2-tree,
3543   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
3544   if test -n "${with_libmpeg2_tree}"
3545   then
3546     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
3547     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
3548     if test -z "${real_libmpeg2_tree}"
3549     then
3550       dnl  The given directory can't be found
3551       AC_MSG_RESULT(no)
3552       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
3553     fi
3554     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
3555     then
3556       dnl  Use a custom libmpeg2
3557       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
3558       VLC_ADD_BUILTINS([libmpeg2])
3559       VLC_ADD_LIBS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
3560       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
3561       eval "`cd ${real_libmpeg2_tree}/include && ln -sf . mpeg2dec 2>/dev/null`"
3562     else
3563       dnl  The given libmpeg2 wasn't built
3564       AC_MSG_RESULT(no)
3565       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
3566     fi
3567   else
3568     AC_CHECK_HEADERS(mpeg2dec/mpeg2.h, [
3569       AC_MSG_CHECKING(for libmpeg2 version >= 0.3.2)
3570       AC_EGREP_CPP(yes,
3571         [#include <mpeg2dec/mpeg2.h>
3572          #ifdef MPEG2_RELEASE
3573          #if MPEG2_RELEASE >= MPEG2_VERSION(0,3,2)
3574          yes
3575          #endif
3576          #endif],
3577         [AC_MSG_RESULT([yes])
3578           VLC_ADD_PLUGINS([libmpeg2])
3579           VLC_ADD_LIBS([libmpeg2],[-lmpeg2])],
3580         [AC_MSG_RESULT([no])
3581           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.])])],
3582
3583       [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.])]
3584     )
3585   fi
3586 fi
3587
3588 dnl
3589 dnl  Vorbis plugin
3590 dnl
3591 AC_ARG_ENABLE(vorbis,
3592   [  --enable-vorbis         Vorbis decoder support (default enabled)])
3593 if test "${enable_vorbis}" != "no"
3594 then
3595   AC_ARG_WITH(vorbis-tree,
3596   [    --with-vorbis-tree=PATH vorbis tree for static linking])
3597   if test -n "${with_vorbis_tree}"
3598   then
3599     AC_MSG_CHECKING(for libvorbis.a in ${with_vorbis_tree})
3600     real_vorbis_tree="`cd ${with_vorbis_tree} 2>/dev/null && pwd`"
3601     if test -z "${real_vorbis_tree}"
3602     then
3603       dnl  The given directory can't be found
3604       AC_MSG_RESULT(no)
3605       AC_MSG_ERROR([cannot cd to ${with_vorbis_tree}])
3606     fi
3607     if test -f "${real_vorbis_tree}/lib/.libs/libvorbis.a"
3608     then
3609       dnl  Use a custom vorbis 
3610       AC_MSG_RESULT(${real_vorbis_tree}/lib/.libs/libvorbis.a)
3611       VLC_ADD_PLUGINS([vorbis])
3612       VLC_ADD_LIBS([vorbis],[${real_vorbis_tree}/lib/.libs/libvorbis.a ${real_vorbis_tree}/lib/.libs/libvorbisenc.a])
3613       VLC_ADD_CFLAGS([vorbis],[-I${real_vorbis_tree}/include])
3614     else
3615       dnl  The given vorbis wasn't built
3616       AC_MSG_RESULT(no)
3617       AC_MSG_ERROR([cannot find ${real_vorbis_tree}/lib/.libs/libvorbis.a, make sure you compiled vorbis in ${with_vorbis_tree}])
3618     fi
3619   else
3620     AC_CHECK_HEADERS(vorbis/codec.h, [
3621       VLC_ADD_PLUGINS([vorbis])
3622       VLC_ADD_LIBS([vorbis],[-lvorbis -logg -lm]) ],[])
3623
3624     AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
3625       VLC_ADD_LIBS([vorbis],[-lvorbisenc -lm]) ],[])
3626   fi
3627 fi
3628
3629 dnl
3630 dnl  Tremor plugin
3631 dnl
3632 AC_ARG_ENABLE(tremor,
3633   [  --enable-tremor         Tremor decoder support (default disabled)])
3634 if test "${enable_tremor}" = "yes"
3635 then
3636   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3637     VLC_ADD_PLUGINS([tremor])
3638     VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
3639    ],[])
3640 fi
3641
3642 dnl
3643 dnl  Speex plugin
3644 dnl
3645 AC_ARG_ENABLE(speex,
3646   [  --enable-speex          Speex decoder support (default enabled)])
3647 if test "${enable_speex}" != "no"
3648 then
3649   AC_ARG_WITH(speex-tree,
3650   [    --with-speex-tree=PATH speex tree for static linking])
3651   if test -n "${with_speex_tree}"
3652   then
3653     AC_MSG_CHECKING(for libspeex.a in ${with_speex_tree})
3654     real_speex_tree="`cd ${with_speex_tree} 2>/dev/null && pwd`"
3655     if test -z "${real_speex_tree}"
3656     then
3657       dnl  The given directory can't be found
3658       AC_MSG_RESULT(no)
3659       AC_MSG_ERROR([cannot cd to ${with_speex_tree}])
3660     fi
3661     if test -f "${real_speex_tree}/libspeex/.libs/libspeex.a"
3662     then
3663       dnl  Use a custom speex
3664       AC_MSG_RESULT(${real_speex_tree}/libspeex/.libs/libspeex.a)
3665       VLC_ADD_PLUGINS([speex])
3666       VLC_ADD_LIBS([speex],[${real_speex_tree}/libspeex/.libs/libspeex.a])
3667       VLC_ADD_CFLAGS([speex],[-I${real_speex_tree}/include])
3668     else
3669       dnl  The given speex wasn't built
3670       AC_MSG_RESULT(no)
3671       AC_MSG_ERROR([cannot find ${real_speex_tree}/libspeex/.libs/libspeex.a, make sure you compiled speex in ${with_speex_tree}])
3672     fi
3673   else
3674     AC_CHECK_HEADERS(speex/speex.h, [
3675       LDFLAGS="${LDFLAGS_save} ${LIBS_speex}"
3676       AC_CHECK_LIB(speex, speex_decode_int, [
3677         VLC_ADD_PLUGINS([speex])
3678         VLC_ADD_LIBS([speex],[-lspeex]) ],
3679         [ AC_MSG_RESULT([no])
3680           AC_MSG_WARN([Your libspeex is too old, please get the development
3681                        version.]) ],[])
3682       LDFLAGS="${LDFLAGS_save}"
3683       ],[])
3684   fi
3685 fi
3686
3687 dnl
3688 dnl  tarkin decoder plugin
3689 dnl
3690 AC_ARG_ENABLE(tarkin,
3691 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3692 if test "${enable_tarkin}" = "yes"
3693 then
3694   AC_ARG_WITH(tarkin-tree,
3695   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3696   if test -n "${with_tarkin_tree}"
3697   then
3698     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3699     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3700     if test -f "${real_tarkin_tree}/tarkin.o"
3701     then
3702       VLC_ADD_BUILTINS([tarkin])
3703       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3704       VLC_ADD_LIBS([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])
3705       AC_MSG_RESULT(yes)
3706     else
3707       dnl  The given tarkin tree wasn't built
3708       AC_MSG_RESULT(no)
3709       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3710                     make sure you compiled tarkin in ${with_tarkin_tree}])
3711     fi
3712   fi
3713 fi
3714
3715 dnl
3716 dnl  theora decoder plugin
3717 dnl
3718 AC_ARG_ENABLE(theora,
3719 [  --enable-theora         experimental theora codec (default disabled)])
3720 if test "${enable_theora}" = "yes"
3721 then