Remove State Threads support
[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 VLC_ADD_LIBS([libvlc plugin],[${THREAD_LIB}])
745
746 dnl Don't link with rt when using GNU-pth
747 AC_CHECK_LIB(rt, clock_nanosleep, [
748   VLC_ADD_LIBS([libvlc],[-lrt])
749   AC_DEFINE(HAVE_CLOCK_NANOSLEEP, 1, [Define to 1 if you have clock_nanosleep.])
750 ], [
751   dnl HP/UX port
752   AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LIBS([libvlc],[-lrt])])
753 ])
754
755 have_nanosleep=false
756 AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[
757   AC_CHECK_LIB(rt,nanosleep,
758     [VLC_ADD_LIBS([libvlc],[-lrt]) have_nanosleep=:],
759     [AC_CHECK_LIB(posix4,nanosleep,
760         [VLC_ADD_LIBS([libvlc],[-lposix4]) have_nanosleep=:])]
761   )
762 ])
763 if ${have_nanosleep}; then
764   AC_DEFINE(HAVE_NANOSLEEP, 1, [Define if nanosleep is available.])
765 fi
766
767 dnl Check for misc headers
768 AC_MSG_CHECKING(for pthread_cond_t in pthread.h)
769 AC_EGREP_HEADER(pthread_cond_t,pthread.h,[
770   AC_MSG_RESULT(yes)
771   AC_DEFINE(PTHREAD_COND_T_IN_PTHREAD_H, 1,
772             Define if <pthread.h> defines pthread_cond_t.)],[
773   AC_MSG_RESULT(no)])
774
775 AC_MSG_CHECKING(for pthread_once in pthread.h)
776 AC_EGREP_HEADER(pthread_once,pthread.h,[
777   AC_MSG_RESULT(yes)
778   AC_DEFINE(PTHREAD_ONCE_IN_PTHREAD_H, 1,
779             Define if <pthread.h> defines pthread_once.)],[
780   AC_MSG_RESULT(no)])
781 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
782
783 AC_MSG_CHECKING(for strncasecmp in strings.h)
784 AC_EGREP_HEADER(strncasecmp,strings.h,[
785   AC_MSG_RESULT(yes)
786   AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
787             Define if <strings.h> defines strncasecmp.)],[
788   AC_MSG_RESULT(no)])
789
790 dnl Check for headers
791 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)
792 AC_CHECK_HEADERS(sys/sockio.h fcntl.h sys/types.h sys/time.h sys/times.h sys/ioctl.h sys/stat.h)
793 AC_CHECK_HEADERS([arpa/inet.h netinet/in.h sys/socket.h netinet/udplite.h])
794 AC_CHECK_HEADERS([net/if.h], [], [],
795   [
796     #if HAVE_SYS_SOCKET_H
797     # include <sys/socket.h>
798     #endif
799   ])
800 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
801 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
802 AC_CHECK_HEADERS([linux/version.h linux/dccp.h])
803 AC_CHECK_HEADERS(syslog.h)
804 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
805
806 AC_HEADER_TIME
807
808 AC_CHECK_TYPE(ssize_t, int)
809 AC_SEARCH_LIBS(poll, [poll], [AC_DEFINE(HAVE_POLL, 1, [Define to 1 if the OS is usabl... err, has poll().])])
810
811 dnl Check for dirent
812 need_dirent=false
813 AC_CHECK_HEADERS(dirent.h,,[need_dirent=:])
814 AM_CONDITIONAL(BUILD_DIRENT, ${need_dirent})
815
816 dnl Mac OS X and other OSes don't have declaration for nanosleep
817 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
818 AC_MSG_CHECKING(for nanosleep in time.h)
819 AC_EGREP_HEADER(nanosleep,time.h,[
820   AC_MSG_RESULT(yes)
821   AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
822             Define if <time.h> defines nanosleep.)
823 ],[
824   AC_MSG_RESULT(no)
825 ])
826 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
827
828 dnl Make sure we have timespecs
829 AC_MSG_CHECKING(for timespec in sys/time.h)
830 AC_EGREP_HEADER(timespec,sys/time.h,[
831   AC_MSG_RESULT(yes)
832   AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
833             Define if <sys/time.h> defines struct timespec.)
834 ],[
835   AC_MSG_RESULT(no)
836 ])
837
838 dnl Check for threads library
839 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
840 AC_CHECK_HEADERS(cthreads.h pthread.h kernel/scheduler.h kernel/OS.h)
841 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
842
843 dnl Find where are the X headers and libraries
844 AC_PATH_XTRA()
845
846 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.
847
848 PKG_PROG_PKG_CONFIG()
849
850 dnl Check for hal
851 AC_ARG_ENABLE(hal,
852   [  --enable-hal            Linux HAL services discovery (default enabled)])
853  
854 if test "${enable_hal}" != "no"
855 then
856   PKG_CHECK_MODULES(HAL, hal >= 0.5.0,
857     [ AC_DEFINE( HAVE_HAL_1, 1 , [Define if you have the new HAL library API])
858       AC_DEFINE( HAVE_HAL, 1, [Define if you have the HAL library] )
859       VLC_ADD_PLUGINS([hal probe_hal]) 
860       VLC_ADD_LIBS([libvlc hal probe_hal],[$HAL_LIBS])
861       VLC_ADD_CFLAGS([libvlc hal probe_hal],[$HAL_CFLAGS])],   
862     dnl No hal 0.5 Test for 0.2
863     [ PKG_CHECK_MODULES( HAL, hal >= 0.2.97, 
864        [AC_DEFINE(HAVE_HAL, 1, [Define if you have the HAL library])
865         VLC_ADD_PLUGINS([hal])
866         VLC_ADD_LIBS([libvlc hal],[$HAL_LIBS])
867         VLC_ADD_CFLAGS([libvlc hal],[$HAL_CFLAGS])],
868        [AC_MSG_WARN(HAL library not found)])
869     ]
870   )
871 fi
872
873 dnl Check for dbus
874 AC_ARG_ENABLE(dbus,
875   [  --enable-dbus           Linux D-BUS message bus system (default enabled)])
876 case "${SYS}" in
877     linux*|*bsd*)
878 if test "${enable_dbus}" != "no"
879 then
880   dnl api stable dbus
881   PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.0.0,
882     [ AC_DEFINE( HAVE_DBUS_3, 1, [Define if you have the D-BUS library API >= 1.0.0] )
883       AC_DEFINE( HAVE_DBUS_2, 1, [Define if you have the D-BUS library API >= 0.92] )
884       AC_DEFINE( HAVE_DBUS_1, 1, [Define if you have the D-BUS library API >= 0.30] )
885       AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
886       VLC_ADD_LIBS([screensaver libvlc],[$DBUS_LIBS])
887       VLC_ADD_CFLAGS([screensaver libvlc],[$DBUS_CFLAGS])
888       dnl Check for dbus control interface
889         AC_ARG_ENABLE(dbus-control, [  --disable-dbus-control  D-BUS control interface (default enabled)])
890         if test "${enable_dbus_control}" != "no"
891         then
892           VLC_ADD_PLUGINS([dbus])
893           VLC_ADD_LIBS([dbus],[$DBUS_LIBS])
894           VLC_ADD_CFLAGS([dbus],[$DBUS_CFLAGS])
895         fi
896       dnl Check for Telepathy
897         AC_ARG_ENABLE(telepathy, [  --enable-telepathy      Telepathy Presence plugin through DBus(default enabled)])
898         if test "${enable_telepathy}" != "no"; then
899           VLC_ADD_PLUGINS([telepathy])
900           VLC_ADD_LIBS([telepathy],[$DBUS_LIBS])
901           VLC_ADD_CFLAGS([telepathy],[$DBUS_CFLAGS])
902         fi
903         dnl Power Management Inhibiter
904         VLC_ADD_PLUGINS([inhibit])
905         VLC_ADD_LIBS([inhibit],[$DBUS_LIBS])
906         VLC_ADD_CFLAGS([inhibit],[$DBUS_CFLAGS])
907         ],
908     if ${PKG_CONFIG} --exists dbus-1
909     then
910       [AC_ARG_ENABLE(old-dbus,
911         [  --enable-old-dbus       Deprecated D-Bus support (default disabled)])]
912
913       if test "${enable_old_dbus}" != "yes"
914       then
915         echo ""
916         echo "****** WARNING **** WARNING ***** WARNING *************"
917         echo "*** Your D-Bus version is < 1.0.0"
918         echo "*** You are using old and buggy software and so"
919         echo "*** D-Bus support has been disabled."
920         echo "*** Please upgrade D-Bus : http://dbus.freedesktop.org"
921         echo "*** Alternatively you can force the use of your old and"
922         echo "*** buggy D-Bus version by specifying --enable-old-dbus"
923         echo "*******************************************************"
924         echo ""
925       else
926         dnl not too old dbus
927         [ PKG_CHECK_MODULES(DBUS, dbus-1 >= 0.92,
928           [ AC_DEFINE( HAVE_DBUS_2, 1, [Define if you have the D-BUS library API >= 0.92] )
929             AC_DEFINE( HAVE_DBUS_1, 1, [Define if you have the D-BUS library API >= 0.30] )
930             AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
931             VLC_ADD_LIBS([screensaver],[$DBUS_LIBS])
932             VLC_ADD_CFLAGS([screensaver],[$DBUS_CFLAGS])],
933           dnl older dbus
934           [ PKG_CHECK_MODULES(DBUS, dbus-1 >= 0.30,
935             [ AC_DEFINE( HAVE_DBUS_1, 1, [Define if you have the D-BUS library API >= 0.30 ] )
936               AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
937               VLC_ADD_LIBS([screensaver],[$DBUS_LIBS])
938               VLC_ADD_CFLAGS([screensaver],[$DBUS_CFLAGS])],
939             dnl much older dbus
940             [ PKG_CHECK_MODULES( DBUS, dbus-1, 
941                [AC_DEFINE(HAVE_DBUS, 1, [Define if you have the D-BUS library])
942                 VLC_ADD_LIBS([screensaver],[$DBUS_LIBS])
943                 VLC_ADD_CFLAGS([screensaver],[$DBUS_CFLAGS])],
944                [AC_MSG_WARN(DBUS library not found)])
945             ]
946           )]
947         )]
948       fi
949     fi
950   )
951 fi
952 ;;
953 esac
954
955 dnl Build the gtk_main plugins?
956 NEED_GTK_MAIN=no
957 NEED_GNOME_MAIN=no
958 NEED_GTK2_MAIN=no
959 NEED_GNOME2_MAIN=no
960
961 dnl build the qte plugin ?
962 NEED_QTE_MAIN=no
963
964 dnl Check for ntohl, etc.
965 AC_CACHE_CHECK([for ntohl in sys/param.h],
966     [ac_cv_c_ntohl_sys_param_h],
967     [CFLAGS="${CFLAGS_save} -Wall -Werror"
968      AC_TRY_COMPILE([#include <sys/param.h>],
969         [int meuh; ntohl(meuh);],
970         ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
971 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
972     AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
973 fi
974 CFLAGS="${CFLAGS_save}"
975
976 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])
977 RDC_PROG_CC_FLAGS_IFELSE([-pipe])
978
979 dnl This helps detect broken plugins with undefined symbols
980 dnl Better fail loudly at build-time than silenty at run-time.
981 dnl Unfortunately, this sucks on FreeBSD (won't even link with -lc)
982 dnl RDC_PROG_LINK_FLAGS_IFELSE([-Wl,-z,defs], [
983 dnl   VLC_ADD_LDFLAGS([plugin],[-Wl,-z,defs])
984 dnl ])
985
986 dnl Check for various optimization flags
987 AC_CACHE_CHECK([if \$CC accepts -Os],
988     [ac_cv_c_os],
989     [CFLAGS="${CFLAGS_save} -Os"
990      AC_TRY_COMPILE([],,ac_cv_c_os=yes, ac_cv_c_os=no)])
991 if test "${ac_cv_c_os}" != "no"; then
992     CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -Os"
993 else 
994     AC_CACHE_CHECK([if \$CC accepts -O],
995         [ac_cv_c_o],
996         [CFLAGS="${CFLAGS_save} -O"
997          AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
998     if test "${ac_cv_c_o}" != "no"; then
999         if test "${ac_cv_c_o3}" = "no"; then
1000             CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -O"
1001         fi
1002     fi
1003 fi
1004
1005 AC_CACHE_CHECK([if \$CC accepts -O3],
1006     [ac_cv_c_o3],
1007     [CFLAGS="${CFLAGS_save} -O3"
1008      AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
1009 if test "${ac_cv_c_o3}" != "no" -a "x${enable_debug}" = "xno"; then
1010     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O3"
1011 else
1012     AC_CACHE_CHECK([if \$CC accepts -O2],
1013         [ac_cv_c_o2],
1014         [CFLAGS="${CFLAGS_save} -O2"
1015          AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
1016     if test "${ac_cv_c_o2}" != "no"; then
1017         CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O2"
1018     else
1019         AC_CACHE_CHECK([if \$CC accepts -O],
1020             [ac_cv_c_o],
1021             [CFLAGS="${CFLAGS_save} -O"
1022              AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
1023         if test "${ac_cv_c_o}" != "no"; then
1024             CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O"
1025         fi
1026     fi
1027 fi
1028
1029 AC_CACHE_CHECK([if \$CC accepts -O0],
1030     [ac_cv_c_o0],
1031     [CFLAGS="${CFLAGS_save} -O0"
1032      AC_TRY_COMPILE([],,ac_cv_c_o0=yes, ac_cv_c_o0=no)])
1033 if test "${ac_cv_c_o0}" != "no"; then
1034     CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O0"
1035 fi
1036
1037 dnl Check for -ffast-math
1038 AC_CACHE_CHECK([if \$CC accepts -ffast-math],
1039     [ac_cv_c_fast_math],
1040     [CFLAGS="${CFLAGS_save} -ffast-math"
1041      AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
1042 if test "${ac_cv_c_fast_math}" != "no"; then
1043     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -ffast-math"
1044 fi
1045
1046 dnl Check for -funroll-loops
1047 dnl Disabled on BeOS because BeOS' gcc is buggy and may crash with it
1048 if test "${SYS}" != "beos"
1049 then
1050   AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
1051       [ac_cv_c_unroll_loops],
1052       [CFLAGS="${CFLAGS_save} -funroll-loops"
1053        AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
1054   if test "${ac_cv_c_unroll_loops}" != "no"; then
1055       CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -funroll-loops"
1056   fi
1057 fi
1058
1059 dnl Check for -fomit-frame-pointer
1060 AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
1061     [ac_cv_c_omit_frame_pointer],
1062     [CFLAGS="${CFLAGS_save} -fomit-frame-pointer"
1063      AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
1064 if test "${ac_cv_c_omit_frame_pointer}" != "no"; then
1065     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
1066 fi
1067
1068 dnl Check for -fvisibility=hidden
1069 AC_CACHE_CHECK([if \$CC accepts -fvisibility=hidden],
1070     [ac_cv_c_visibility_hidden],
1071     [CFLAGS="${CFLAGS_save} -fvisibility=hidden"
1072      AC_TRY_COMPILE([],,ac_cv_c_visibility_hidden=yes, ac_cv_c_visibility_hidden=no)])
1073 if test "${ac_cv_c_visibility_hidden}" != "no"; then
1074     VLC_ADD_CFLAGS([libvlc plugin],[-fvisibility=hidden])
1075 fi
1076
1077 AM_CONDITIONAL(HAVE_COMPILER_EXPORT, [test "$SYS" = "mingw32" -o "${ac_cv_c_visibility_hidden}" != "no"])
1078
1079 dnl Check for -fvisibility-inlines-hidden (breaks x86_64 linkers)
1080 dnl AC_LANG_PUSH(C++)
1081 dnl     AC_CACHE_CHECK([if \$CXX accepts -fvisibility-inlines-hidden],
1082 dnl         [ac_cv_c_visibility_inlines_hidden],
1083 dnl         [CXXFLAGS="${CXXFLAGS_save} -fvisibility-inlines-hidden"
1084 dnl          AC_TRY_COMPILE([],,ac_cv_c_visibility_inlines_hidden=yes, ac_cv_c_visibility_inlines_hidden=no)])
1085 dnl     if test "${ac_cv_c_visibility_inlines_hidden}" != "no"; then
1086 dnl         VLC_ADD_CXXFLAGS([libvlc plugin],[-fvisibility-inlines-hidden])
1087 dnl     fi
1088 dnl     CXXFLAGS="${CXXFLAGS_save}"
1089 dnl AC_LANG_POP(C++)
1090
1091 dnl Check for -mdynamic-no-pic
1092 dnl AC_CACHE_CHECK([if \$CC accepts -mdynamic-no-pic],
1093 dnl     [ac_cv_c_dynamic_no_pic],
1094 dnl     [CFLAGS="${CFLAGS_save} -mdynamic-no-pic"
1095 dnl      AC_TRY_COMPILE([],,ac_cv_c_dynamic_no_pic=yes, ac_cv_c_dynamic_no_pic=no)])
1096 dnl AS_IF([test "${ac_cv_c_dynamic_no_pic}" != "no"], [
1097 dnl     VLC_ADD_CFLAGS([builtin],[-mdynamic-no-pic])
1098 dnl     VLC_ADD_CFLAGS([libvlc],[-mdynamic-no-pic])
1099 dnl ])
1100
1101 dnl Check for Darwin plugin linking flags
1102 AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error],
1103     [ac_cv_ld_darwin],
1104     [CFLAGS="${CFLAGS_save} -bundle -undefined error"
1105      AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
1106 if test "${ac_cv_ld_darwin}" != "no"; then
1107     VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
1108 fi
1109
1110 dnl Check for standard plugin linking flags
1111 dnl BeOS' gcc needs -nostart instead of -shared, even if -shared isn't harmful (just a warning)
1112 dnl AS_IF([test "${SYS}" = "beos"], [
1113 dnl   VLC_ADD_LDFLAGS([plugin mozilla],[-nostart])
1114 dnl ], [
1115 dnl   AC_CACHE_CHECK([if \$CC accepts -shared],
1116 dnl         [ac_cv_ld_plugins],
1117 dnl         [CFLAGS="${CFLAGS_save} -shared"
1118 dnl        AC_TRY_COMPILE([],, ac_cv_ld_plugins=yes, ac_cv_ld_plugins=no)])
1119 dnl   AS_IF([test "${ac_cv_ld_plugins}" != "no"], [
1120 dnl     VLC_ADD_LDFLAGS([plugin mozilla],[-shared])
1121 dnl   ])
1122 dnl ])
1123
1124 dnl Check for variadic macros
1125 AC_CACHE_CHECK([for variadic cpp macros],
1126     [ac_cv_cpp_variadic_macros],
1127     [CFLAGS="${CFLAGS_save}"
1128      AC_TRY_COMPILE(
1129          [#include <stdio.h>
1130           #define a(b,c...) printf(b,##c)],
1131          [a("foo");a("%s","bar");a("%s%s","baz","quux");],
1132          ac_cv_cpp_variadic_macros=yes,
1133          ac_cv_cpp_variadic_macros=no)])
1134 if test "${ac_cv_cpp_variadic_macros}" != "no"; then
1135     AC_DEFINE(HAVE_VARIADIC_MACROS, 1, Support for variadic macros)
1136 fi
1137
1138 dnl Checks for __attribute__(aligned()) directive
1139 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1140     [ac_cv_c_attribute_aligned],
1141     [ac_cv_c_attribute_aligned=0
1142         CFLAGS="${CFLAGS_save} -Werror"
1143     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1144         AC_TRY_COMPILE([],
1145         [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1146         [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1147     done
1148         CFLAGS="${CFLAGS_save}"])
1149 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1150     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1151         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1152 fi
1153
1154 dnl Checks for __attribute__(format()) directive
1155 AC_CACHE_CHECK([__attribute__ ((format ())) support with function pointers],
1156     [ac_cv_c_attribute_format],
1157     [ac_cv_c_attribute_format=no
1158         CFLAGS="${CFLAGS_save} -Werror"
1159         AC_TRY_COMPILE([],
1160         [static void (*pf_printf)(const char *, ...) __attribute__ ((format(printf,1,2)));(void)pf_printf;],
1161         [ac_cv_c_attribute_format=yes])
1162         CFLAGS="${CFLAGS_save}"])
1163 if test "${ac_cv_c_attribute_format}" != "no"; then
1164     AC_DEFINE(HAVE_ATTRIBUTE_FORMAT, 1, Support for __attribute__((format())) with function pointers)
1165 fi
1166
1167 dnl Check for __attribute__((packed))
1168 AC_CACHE_CHECK([for __attribute__((packed))],
1169   [ac_cv_c_attribute_packed],
1170   [ac_cv_c_attribute_packed=no
1171    AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b;],
1172                     [ac_cv_c_attribute_packed=yes])])
1173 if test "${ac_cv_c_attribute_packed}" != "no"; then
1174   AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1175 fi
1176
1177 dnl Check for __attribute__((visibility()))
1178 AC_CACHE_CHECK([for __attribute__((visibility()))],
1179   [ac_cv_c_attribute_visibility],
1180   [ac_cv_c_attribute_visibility=no
1181    AC_TRY_COMPILE(, [extern __attribute__((visibility("default"))) int foo(int);],
1182                     [ac_cv_c_attribute_visibility=yes])])
1183 if test "${ac_cv_c_attribute_visibility}" != "no"; then
1184   AC_DEFINE(HAVE_ATTRIBUTE_VISIBILITY, 1, Support for __attribute__((visibility())) for exporting symbols)
1185 fi
1186
1187 dnl
1188 dnl  Check the CPU
1189 dnl
1190 case "${host_cpu}" in
1191   "")
1192     ARCH=unknown
1193     ;;
1194   *)
1195     ARCH="${host_cpu}"
1196     ;;
1197 esac
1198
1199 dnl
1200 dnl  Enable profiling
1201 dnl
1202 AC_ARG_ENABLE(gprof,
1203 [  --enable-gprof          gprof profiling (default disabled)])
1204 AC_ARG_ENABLE(cprof,
1205 [  --enable-cprof          cprof profiling (default disabled)])
1206 test "${enable_gprof}" != "yes" && enable_gprof="no"
1207 test "${enable_cprof}" != "yes" && enable_cprof="no"
1208
1209 dnl
1210 dnl  default modules
1211 dnl
1212 VLC_ADD_PLUGINS([dummy logger memcpy])
1213 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])
1214 VLC_ADD_PLUGINS([cvdsub svcdsub spudec subsdec subsusf t140 dvbsub cc mpeg_audio lpcm a52 dts cinepak flac])
1215 VLC_ADD_PLUGINS([deinterlace invert adjust transform wave ripple psychedelic gradient motionblur rv32 rotate noise grain extract sharpen seamcarving])
1216 VLC_ADD_PLUGINS([converter_fixed mono])
1217 VLC_ADD_PLUGINS([trivial_resampler ugly_resampler])
1218 VLC_ADD_PLUGINS([trivial_channel_mixer trivial_mixer])
1219 VLC_ADD_PLUGINS([playlist export nsc xtag])
1220 VLC_ADD_PLUGINS([i420_rgb grey_yuv rawvideo blend scale image logo magnify puzzle colorthres])
1221 VLC_ADD_PLUGINS([wav araw subtitle vobsub adpcm a52sys dtssys au ty voc xa nuv smf])
1222 VLC_ADD_PLUGINS([access_directory access_file access_udp access_tcp])
1223 VLC_ADD_PLUGINS([access_http access_mms access_ftp])
1224 VLC_ADD_PLUGINS([access_filter_bandwidth])
1225 VLC_ADD_PLUGINS([packetizer_mpegvideo packetizer_h264])
1226 VLC_ADD_PLUGINS([packetizer_mpeg4video packetizer_mpeg4audio])
1227 VLC_ADD_PLUGINS([packetizer_vc1])
1228
1229 ALIASES="${ALIASES} cvlc"
1230
1231 dnl
1232 dnl default modules that need g++
1233 dnl
1234 AC_LANG_PUSH(C++)
1235 VLC_ADD_PLUGINS([spatializer])
1236 AC_LANG_POP(C++)
1237
1238 if test "${SYS}" != "mingwce"; then
1239   VLC_ADD_PLUGINS([access_fake access_filter_timeshift access_filter_record access_filter_dump])
1240   VLC_ADD_PLUGINS([gestures rc telnet hotkeys showintf marq podcast shout sap fake folder])
1241   VLC_ADD_PLUGINS([rss mosaic wall motiondetect clone crop erase bluescreen alphamask gaussianblur])
1242   VLC_ADD_PLUGINS([i420_yuy2 i422_yuy2 i420_ymga i422_i420 yuy2_i422 yuy2_i420 chroma_chain])
1243   VLC_ADD_PLUGINS([aout_file linear_resampler bandlimited_resampler])
1244   VLC_ADD_PLUGINS([float32_mixer spdif_mixer simple_channel_mixer])
1245   VLC_ADD_PLUGINS([dolby_surround_decoder headphone_channel_mixer normvol equalizer param_eq])
1246   VLC_ADD_PLUGINS([converter_float a52tospdif dtstospdif audio_format])
1247   ALIASES="${ALIASES} rvlc"
1248 fi
1249
1250 dnl
1251 dnl Some plugins aren't useful on some platforms
1252 dnl
1253 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1254     VLC_ADD_PLUGINS([screensaver motion])
1255 elif test "${SYS}" != "mingwce"; then
1256     VLC_ADD_PLUGINS([ntservice access_smb dmo msn])
1257     VLC_ADD_LIBS([dmo],[-lole32 -luuid])
1258 else
1259     VLC_ADD_PLUGINS([win32text])
1260 fi
1261 if test "${SYS}" = "darwin"; then
1262     VLC_ADD_PLUGINS([quartztext])
1263     VLC_ADD_LDFLAGS([quartztext],[-Wl,-framework,Carbon,-framework,ApplicationServices])
1264 fi
1265
1266 dnl
1267 dnl  Accelerated modules
1268 dnl
1269 MMX_MODULES="memcpymmx i420_rgb_mmx i420_yuy2_mmx i422_yuy2_mmx i420_ymga_mmx"
1270 #MMX_MODULES="${MMX_MODULES} idctmmx motionmmx"
1271 MMXEXT_MODULES="memcpymmxext"
1272 #MMXEXT_MODULES="${MMXEXT_MODULES} idctmmxext motionmmxext"
1273 THREEDNOW_MODULES="memcpy3dn"
1274 SSE_MODULES=""
1275 SSE2_MODULES="i420_rgb_sse2 i420_yuy2_sse2 i422_yuy2_sse2"
1276 ALTIVEC_MODULES="memcpyaltivec i420_yuy2_altivec"
1277 #ALTIVEC_MODULES="${ALTIVEC_MODULES} idctaltivec motionaltivec"
1278
1279 dnl  Check for fully workin MMX intrinsics
1280 dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a
1281 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1282 AC_CACHE_CHECK([if \$CC groks MMX intrinsics],
1283     [ac_cv_c_mmx_intrinsics],
1284     [CFLAGS="${CFLAGS_save} -O -mmmx"
1285      AC_TRY_COMPILE([#include <mmintrin.h>
1286                      #include <stdint.h>
1287                      uint64_t frobzor;],
1288                     [__m64 a, b, c;
1289                      a = b = c = (__m64)frobzor;
1290                      a = _mm_slli_pi16(a, 3);
1291                      a = _mm_adds_pi16(a, b);
1292                      c = _mm_srli_pi16(c, 8);
1293                      c = _mm_slli_pi16(c, 3);
1294                      b = _mm_adds_pi16(b, c);
1295                      a = _mm_unpacklo_pi8(a, b);
1296                      frobzor = (uint64_t)a;],
1297                     [ac_cv_c_mmx_intrinsics=yes],
1298                     [ac_cv_c_mmx_intrinsics=no])])
1299 if test "${ac_cv_c_mmx_intrinsics}" != "no"; then
1300   AC_DEFINE(HAVE_MMX_INTRINSICS, 1, Define if MMX intrinsics are available.)
1301   VLC_ADD_CFLAGS([${MMX_MODULES}],[-mmmx])
1302 fi
1303
1304 dnl  Check for fully workin SSE2 intrinsics
1305 dnl  We need support for -mmmx, we need <emmintrin.h>, and we also need a
1306 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1307 AC_CACHE_CHECK([if \$CC groks SSE2 intrinsics],
1308     [ac_cv_c_sse2_intrinsics],
1309     [CFLAGS="${CFLAGS_save} -O -msse2"
1310      AC_TRY_COMPILE([#include <emmintrin.h>
1311                      #include <stdint.h>
1312                      uint64_t frobzor;],
1313                     [__m128i a, b, c;
1314                      a = b = c = _mm_set1_epi64((__m64)frobzor);
1315                      a = _mm_slli_epi16(a, 3);
1316                      a = _mm_adds_epi16(a, b);
1317                      c = _mm_srli_epi16(c, 8);
1318                      c = _mm_slli_epi16(c, 3);
1319                      b = _mm_adds_epi16(b, c);
1320                      a = _mm_unpacklo_epi8(a, b);
1321                      frobzor = (uint64_t)_mm_movepi64_pi64(a);],
1322                     [ac_cv_c_sse2_intrinsics=yes],
1323                     [ac_cv_c_sse2_intrinsics=no])])
1324 if test "${ac_cv_c_sse2_intrinsics}" != "no"; then
1325   AC_DEFINE(HAVE_SSE2_INTRINSICS, 1, Define if SSE2 intrinsics are available.)
1326   VLC_ADD_CFLAGS([${SSE2_MODULES}],[-msse2])
1327 fi
1328
1329 AC_CACHE_CHECK([if \$CC groks MMX inline assembly],
1330     [ac_cv_mmx_inline],
1331     [CFLAGS="${CFLAGS_save}"
1332      AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
1333                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
1334 if test "${ac_cv_mmx_inline}" != "no"; then
1335   AC_DEFINE(CAN_COMPILE_MMX, 1, Define if \$CC groks MMX inline assembly.)
1336   ACCEL_MODULES="${ACCEL_MODULES} ${MMX_MODULES}"
1337 fi
1338
1339 AC_CACHE_CHECK([if \$CC groks MMX EXT inline assembly],
1340     [ac_cv_mmxext_inline],
1341     [CFLAGS="${CFLAGS_save}"
1342      AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
1343                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
1344 if test "${ac_cv_mmxext_inline}" != "no"; then
1345   AC_DEFINE(CAN_COMPILE_MMXEXT, 1, Define if \$CC groks MMX EXT inline assembly.)
1346   ACCEL_MODULES="${ACCEL_MODULES} ${MMXEXT_MODULES}"
1347 fi
1348
1349 AC_CACHE_CHECK([if \$CC groks 3D Now! inline assembly],
1350     [ac_cv_3dnow_inline],
1351     [CFLAGS="${CFLAGS_save}"
1352      AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
1353                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
1354 if test "${ac_cv_3dnow_inline}" != "no"; then
1355   AC_DEFINE(CAN_COMPILE_3DNOW, 1, Define if \$CC groks 3D Now! inline assembly.)
1356   ACCEL_MODULES="${ACCEL_MODULES} ${THREEDNOW_MODULES}"
1357 fi
1358
1359 AC_CACHE_CHECK([if \$CC groks SSE inline assembly],
1360     [ac_cv_sse_inline],
1361     [CFLAGS="${CFLAGS_save}"
1362      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
1363                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
1364 if test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"; then
1365   AC_DEFINE(CAN_COMPILE_SSE, 1, Define if \$CC groks SSE inline assembly.)
1366   ACCEL_MODULES="${ACCEL_MODULES} ${SSE_MODULES}"
1367 fi
1368
1369 AC_CACHE_CHECK([if \$CC groks SSE2 inline assembly],
1370     [ac_cv_sse2_inline],
1371     [CFLAGS="${CFLAGS_save}"
1372      AC_TRY_COMPILE(,[void *p;asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p));],
1373                     ac_cv_sse2_inline=yes, ac_cv_sse2_inline=no)])
1374 if test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"; then
1375   AC_DEFINE(CAN_COMPILE_SSE2, 1, Define if \$CC groks SSE2 inline assembly.)
1376   ACCEL_MODULES="${ACCEL_MODULES} ${SSE2_MODULES}"
1377 fi
1378
1379 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1380 AC_CACHE_CHECK([if \$CC groks AltiVec inline assembly],
1381     [ac_cv_altivec_inline],
1382     [CFLAGS="${CFLAGS_save}"
1383      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1384          ac_cv_altivec_inline=yes,
1385          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
1386           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1387             [ac_cv_altivec_inline="-Wa,-m7400"],
1388             ac_cv_altivec_inline=no)
1389          ])])
1390 if test "${ac_cv_altivec_inline}" != "no"; then
1391   AC_DEFINE(CAN_COMPILE_ALTIVEC, 1, Define if \$CC groks AltiVec inline assembly.)
1392   if test "${ac_cv_altivec_inline}" != "yes"; then
1393     VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
1394     VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
1395     VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1396     VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1397     VLC_ADD_CFLAGS([libvlc],[${ac_cv_altivec_inline}])
1398   fi
1399   ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
1400 fi
1401
1402 dnl The AltiVec C extensions
1403 dnl
1404 dnl There are several possible cases:
1405 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1406 dnl                      need <altivec.h>
1407 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1408 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1409 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1410 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1411 dnl - Others: test should fail
1412 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1413   [ac_cv_c_altivec],
1414   [# OS X/PPC test (gcc 4.x)
1415    CFLAGS="${CFLAGS_save} -mpim-altivec -force_cpusubtype_ALL"
1416    AC_TRY_COMPILE([vector unsigned char foo;],
1417      [vec_ld(0, (unsigned char *)0);],
1418      [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1419      [# OS X/PPC test (gcc 3.x)
1420       CFLAGS="${CFLAGS_save} -faltivec"
1421       AC_TRY_COMPILE([vector unsigned char foo;],
1422         [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1423         [ac_cv_c_altivec="-faltivec"],
1424         dnl Below this are the Linux tests
1425         [# Linux/PPC test (gcc 4.x)
1426          CFLAGS="${CFLAGS_save} -maltivec"
1427          AC_TRY_COMPILE([#include <altivec.h>],
1428            [vec_ld(0, (unsigned char *)0);],
1429            [ac_cv_c_altivec="-maltivec"],
1430            [# Linux/PPC test (gcc 3.3)
1431             CFLAGS="${CFLAGS_save} -maltivec -mabi=altivec"
1432             AC_TRY_COMPILE([#include <altivec.h>],
1433               [vec_ld(0, (unsigned char *)0);],
1434               [ac_cv_c_altivec=""
1435                ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1436               [# Linux/PPC test (gcc 3.3)
1437                CFLAGS="${CFLAGS_save} -fvec"
1438                AC_TRY_COMPILE([#include <altivec.h>],
1439                  [vec_ld(0, (unsigned char *)0);],
1440                  [ac_cv_c_altivec="-fvec"],
1441                  [ac_cv_c_altivec=no])
1442               ])
1443            ])
1444         ])
1445      ])
1446    CFLAGS="${CFLAGS_save}"
1447   ])
1448
1449 if test "${ac_cv_c_altivec}" != "no"; then
1450   CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
1451 fi
1452
1453 AS_IF( test "${enable_altivec}" != "no",
1454 [
1455   AC_CHECK_HEADERS(altivec.h)
1456   CPPFLAGS="${CPPFLAGS_save}"
1457   
1458   if test "${ac_cv_c_altivec}" != "no"; then
1459     AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, Define if your compiler groks C AltiVec extensions.)
1460     VLC_ADD_CFLAGS([libvlc],[${ac_cv_c_altivec}])
1461     VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
1462     VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1463     if test "${ac_cv_altivec_inline}" = "no"; then
1464       ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
1465     fi
1466   fi
1467 ],[
1468   CPPFLAGS="${CPPFLAGS_save}"
1469 ])
1470
1471 AC_CACHE_CHECK([if linker needs -framework vecLib],
1472     [ac_cv_ld_altivec],
1473     [LDFLAGS="${LDFLAGS_vlc} -Wl,-framework,vecLib"
1474      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
1475      LDFLAGS="${LDFLAGS_save}"
1476     ])
1477 if test "${ac_cv_ld_altivec}" != "no"; then
1478   VLC_ADD_LDFLAGS([libvlc idctaltivec motionaltivec memcpyaltivec],[-Wl,-framework,vecLib])
1479 fi
1480 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
1481
1482 AC_ARG_WITH(,[])
1483 AC_ARG_WITH(,[Optimization options:])
1484
1485 dnl
1486 dnl  Special arch tuning
1487 dnl
1488 AC_ARG_WITH(tuning,
1489 [  --with-tuning=ARCH      enable special tuning for an architecture
1490                           (default Pentium 2 on IA-32 and G4 on PPC)])
1491 if test -n "${with_tuning}"; then
1492     if test "${with_tuning}" != "no"; then
1493         CFLAGS_TUNING="-mtune=${with_tuning}"
1494     fi
1495 else
1496     if test "${SYS}" = "darwin" -a "${host_cpu}" != "powerpc"; then
1497         CFLAGS_TUNING="-march=pentium-m -mtune=prescott"
1498     elif test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "i386"; then
1499         CFLAGS_TUNING="-mtune=pentium2"
1500     elif test "${host_cpu}" = "x86_64"; then
1501         CFLAGS_TUNING="-mtune=athlon64"
1502     elif test "${host_cpu}" = "powerpc"; then
1503         CFLAGS_TUNING="-mtune=G4";
1504     fi
1505 fi
1506
1507 dnl NOTE: this can't be cached cleanly
1508 AS_IF([test "${CFLAGS_TUNING}"],
1509    [CFLAGS_save="${CFLAGS}"
1510     CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1511
1512     AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1513     AC_COMPILE_IFELSE([ ],
1514                       [tuning="yes"],
1515                       [CFLAGS_TUNING=""; tuning="no"
1516                        AS_IF([test "${with_tuning}"],
1517                              [AC_MSG_ERROR([requested tuning not supported])])])
1518
1519     AC_MSG_RESULT([$tuning])
1520     CFLAGS="${CFLAGS_save}"
1521 ])
1522
1523 dnl
1524 dnl  x86 accelerations
1525 dnl
1526 AC_ARG_ENABLE(mmx,
1527 [  --disable-mmx       disable MMX optimizations (default enabled on x86)],
1528 [ if test "${enable_mmx}" = "yes"; then ARCH="${ARCH} mmx";
1529     VLC_ADD_PLUGINS([${ACCEL_MODULES}]) fi ],
1530 [ 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
1531     ARCH="${ARCH} mmx"
1532     VLC_ADD_PLUGINS([${ACCEL_MODULES}]) fi ])
1533
1534 AC_ARG_ENABLE(sse,
1535 [  --disable-sse       disable SSE (1 and 2) optimizations (default enabled on i686 and x86_64)],
1536 [ if test "${enable_sse}" = "yes"; then ARCH="${ARCH} sse sse2";
1537     VLC_ADD_PLUGINS([${ACCEL_MODULES}]) fi ],
1538 [ if test "${host_cpu}" = "i686" -o "${host_cpu}" = "x86_64"; then ARCH="${ARCH} sse sse2";
1539     VLC_ADD_PLUGINS([${ACCEL_MODULES}]) fi ])
1540
1541 dnl
1542 dnl  Memory usage
1543 dnl
1544 AC_ARG_ENABLE(optimize-memory,
1545 [  --enable-optimize-memory optimize memory usage over performance])
1546 if test "${enable_optimize_memory}" = "yes"; then
1547   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1548 fi
1549
1550 dnl
1551 dnl  Enable/disable optimizations
1552 dnl
1553 AC_ARG_ENABLE(optimizations,
1554 [  --disable-optimizations disable compiler optimizations (default enabled)])
1555 if test "${enable_optimizations}" != "no"; then
1556    if test "${enable_optimize_memory}" = "yes"; then
1557       enable_optimizations="size"
1558    else
1559       enable_optimizations="speed"
1560    fi
1561 fi
1562
1563 dnl
1564 dnl  AltiVec acceleration
1565 dnl
1566 AC_ARG_ENABLE(altivec,
1567 [  --disable-altivec       disable AltiVec optimizations (default enabled on PPC)],
1568 [ if test "${enable_altivec}" = "yes"; then ARCH="${ARCH} altivec";
1569     VLC_ADD_PLUGINS([${ACCEL_MODULES}]) fi ],
1570 [ if test "${host_cpu}" = "powerpc"; then ARCH="${ARCH} altivec";
1571     VLC_ADD_PLUGINS([${ACCEL_MODULES}]) fi ])
1572
1573 dnl
1574 dnl  Debugging mode
1575 dnl
1576 AC_ARG_ENABLE(debug,
1577 [  --enable-debug          debug mode (default disabled)])
1578 test "${enable_debug}" != "yes" && enable_debug="no"
1579 AH_TEMPLATE(NDEBUG,
1580             [Define to 1 if debug code should NOT be compiled])
1581 AS_IF([test "x${enable_debug}" = "xno"], [AC_DEFINE(NDEBUG)])
1582
1583 dnl
1584 dnl  Test coverage
1585 dnl
1586 AC_ARG_ENABLE(coverage,
1587         [  --enable-coverage       build for test coverage (default disabled)],,
1588         [enable_coverage="no"])
1589 AS_IF([test "${enable_coverage}" != "no"], [
1590         CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
1591         CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
1592         LDFLAGS="-lgcov ${LDFLAGS}"
1593         dnl ugly...
1594         CFLAGS_save="${CFLAGS}"
1595         CXXFLAGS_save="${CXXFLAGS}"
1596         LDFLAGS_save="${LDFLAGS}"
1597 ])
1598
1599 dnl
1600 dnl  Enable release-specific flags
1601 dnl
1602 AC_ARG_ENABLE(release,
1603 [  --enable-release        activate extra optimizations (default disabled)])
1604 test "${enable_release}" != "yes" && enable_release="no"
1605
1606 dnl
1607 dnl Stream output
1608 dnl
1609 AC_ARG_ENABLE(sout,
1610   [  --enable-sout           Stream output modules (default enabled)])
1611 if test "${enable_sout}" != "no"
1612 then
1613   VLC_ADD_PLUGINS([access_output_dummy access_output_udp access_output_file access_output_http])
1614   VLC_ADD_PLUGINS([mux_ps mux_avi mux_mp4 mux_asf mux_dummy mux_wav mux_mpjpeg])
1615   VLC_ADD_PLUGINS([packetizer_copy])
1616
1617   VLC_ADD_PLUGINS([stream_out_dummy stream_out_standard stream_out_es stream_out_rtp stream_out_description vod_rtsp])
1618   VLC_ADD_PLUGINS([stream_out_duplicate stream_out_display stream_out_transcode stream_out_bridge stream_out_mosaic_bridge stream_out_autodel])
1619   VLC_ADD_PLUGINS([stream_out_gather])
1620 #  VLC_ADD_PLUGINS([stream_out_transrate])
1621 #  VLC_ADD_PLUGINS([rtcp])
1622   VLC_ADD_PLUGINS([profile_parser])
1623
1624   AC_DEFINE(ENABLE_SOUT, 1, Define if you want the stream output support)
1625 fi
1626
1627 AC_ARG_ENABLE(switcher,
1628   [  --enable-switcher       Stream-out switcher plugin (default disabled)])
1629
1630 dnl Check for libshout
1631 AC_ARG_ENABLE(shout,
1632   [  --enable-shout          libshout output plugin (default disabled)])
1633 if test "${enable_shout}" = "yes"; then
1634   PKG_CHECK_MODULES(SHOUT, shout >= 2.1,
1635     [AC_DEFINE(HAVE_SHOUT, 1, [Define if you have the libshout library])
1636      VLC_ADD_PLUGINS([access_output_shout])
1637      VLC_ADD_LIBS([access_output_shout],[$SHOUT_LIBS])
1638      VLC_ADD_CFLAGS([access_output_shout],[$SHOUT_CFLAGS])],
1639     [AC_MSG_WARN(libshout library not found)])
1640 fi
1641
1642 dnl Lua modules
1643 AC_ARG_ENABLE(lua,
1644   [  --enable-lua            lua playlist and metafetcher plugins (default enabled)])
1645 if test "${enable_lua}" != "no"
1646 then
1647   PKG_CHECK_MODULES(LUA, lua5.1,
1648     [ have_lua=yes ],
1649     [
1650     AC_MSG_WARN([lua5.1 not found, trying lua >= 5.1 instead])
1651     PKG_CHECK_MODULES(LUA, lua >= 5.1,
1652       [ have_lua=yes ],
1653       [ 
1654         have_lua=yes
1655         AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h], 
1656           [],  
1657           [ have_lua=no ] )
1658         AC_CHECK_LIB(  lua5.1 , luaL_newstate, 
1659           [LUA_LIBS="-llua5.1"],
1660           AC_CHECK_LIB( lua51 , luaL_newstate, 
1661             [LUA_LIBS="-llua51"],
1662                   AC_CHECK_LIB( lua , luaL_newstate, 
1663                     [LUA_LIBS="-llua"],
1664               [ have_lua=no
1665                 AC_MSG_WARN([lua >= 5.1 not found!])
1666               ])
1667             )
1668           )
1669       ])
1670     ])
1671   if test "x${have_lua}" = "xyes" ;  then
1672      AC_DEFINE(HAVE_LUA, 1, [Define if you have the lua library])
1673      VLC_ADD_PLUGINS([lua])
1674      VLC_ADD_LIBS([lua],[$LUA_LIBS])
1675      VLC_ADD_CFLAGS([lua],[$LUA_CFLAGS])
1676   fi
1677 fi
1678
1679 dnl
1680 dnl HTTP daemon
1681 dnl
1682 AC_ARG_ENABLE(httpd,
1683   [  --enable-httpd          HTTP daemon (default enabled)])
1684 if test "${enable_httpd}" != "no"
1685 then
1686   VLC_ADD_PLUGINS([http])
1687   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
1688 fi
1689
1690 dnl
1691 dnl VideoLAN manager
1692 dnl
1693 AC_ARG_ENABLE(vlm,
1694   [  --enable-vlm            VideoLAN manager (default enabled)])
1695 if test "${enable_vlm}" != "no"
1696 then
1697   AC_DEFINE(ENABLE_VLM, 1, Define if you want the VideoLAN manager support)
1698 fi
1699
1700 dnl
1701 dnl Growl notification plugin
1702 dnl
1703 AC_ARG_ENABLE(growl,
1704   [  --enable-growl          growl notification plugin (default enabled)])
1705 AS_IF([test "${enable_growl}" != "no"], [
1706     VLC_ADD_PLUGINS([growl])
1707   ]
1708 )
1709
1710 dnl
1711 dnl Libnotify notification plugin
1712 dnl
1713
1714 AC_ARG_ENABLE(notify,
1715   [  --enable-notify         libnotify notification plugin (default enabled)])
1716 AS_IF([test "${enable_notify}" != "no" -a "${SYS}" != "mingw32"], [
1717     PKG_CHECK_MODULES(NOTIFY, libnotify,
1718       [
1719         VLC_ADD_PLUGINS([notify])
1720         VLC_ADD_CFLAGS(notify, [$NOTIFY_CFLAGS])
1721         VLC_ADD_LIBS(notify, [$NOTIFY_LIBS])
1722       ],[
1723         AS_IF([test "${enable_notify}" = "yes"],[
1724                AC_MSG_WARN( libnotify not found) ])
1725       ])
1726   ])
1727
1728 dnl
1729 dnl Audioscrobbler plugin
1730 dnl
1731
1732 AC_ARG_ENABLE(audioscrobbler,
1733   [  --disable-audioscrobbler Last.fm submission plugin (default enabled)])
1734 AS_IF([test "${enable_audioscrobbler}" != "no"], [
1735         VLC_ADD_PLUGINS([audioscrobbler])
1736   ])
1737
1738 dnl
1739 dnl Musicbrainz plugin
1740 dnl
1741 AC_ARG_ENABLE(musicbrainz,
1742   [  --enable-musicbrainz    MusicBrainz support (default disabled) ])
1743   AS_IF([test "${enable_musicbrainz}" = "yes"],[
1744       PKG_CHECK_MODULES(MUSICBRAINZ, libmusicbrainz,
1745         [ VLC_ADD_PLUGINS([musicbrainz])
1746           VLC_ADD_LIBS([musicbrainz],[$MUSICBRAINZ_LIBS]) 
1747           VLC_ADD_CFLAGS([musicbrainz],[$MUSICBRAINZ_CFLAGS])  ],
1748        [AC_MSG_WARN(MusicBrainz library not found)])
1749    ])
1750
1751
1752 dnl
1753 dnl Taglibplugin
1754 dnl
1755 AC_ARG_ENABLE(taglib,
1756   [  --disable-taglib Taglib support (default enabled) ])
1757   AS_IF([test "${enable_taglib}" != "no"],[
1758     PKG_CHECK_MODULES(TAGLIB, taglib,
1759       [ AC_DEFINE( HAVE_TAGLIB, 1, [Define if you have taglib plugin built] )
1760         VLC_ADD_PLUGINS([taglib])
1761         VLC_ADD_LIBS([taglib],[$TAGLIB_LIBS -lz])
1762        VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS]) ],
1763       [AC_MSG_WARN(TagLib library not found)])
1764   ])
1765
1766
1767 dnl
1768 dnl  Input plugins
1769 dnl
1770
1771 AC_ARG_WITH(,[Input plugins:])
1772
1773 dnl  live555 input
1774 dnl
1775 if test "${enable_livedotcom}" 
1776 then
1777   AC_MSG_WARN(--{en|dis}able-livedotcom is deprecated. Use --{en|dis}able-live555 instead.)
1778 fi
1779
1780 if test "${enable_livedotcom}" = "no"
1781 then
1782   enable_live555="no"
1783 fi
1784 AC_ARG_ENABLE(live555,
1785 [  --enable-live555        live555 RTSP input plugin (default enabled)])
1786 if test "${enable_live555}" != "no"; then
1787   AC_ARG_WITH(live555-tree,
1788     [    --with-live555-tree=PATH live.com tree for static linking])
1789
1790   dnl
1791   dnl test for --with-live555-tree
1792   dnl
1793   if test "${with_livedotcom_tree}" 
1794   then
1795     AC_MSG_WARN(--with-livedotcom-tree is deprecated. Use --with-live555-tree instead.)
1796   with_live555_tree="${with_livedotcom_tree}"
1797   fi
1798
1799   if test -z "${with_live555_tree}" -a "${CXX}" != ""; then
1800     AC_LANG_PUSH(C++)
1801     CPPFLAGS_save="${CPPFLAGS}"
1802     CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1803     if test "${SYS}" = "solaris"; then
1804       CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1805     fi
1806     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1807     AC_CHECK_HEADERS(liveMedia.hh, [
1808       VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1809       AC_CHECK_LIB(liveMedia_pic, main, [
1810         # We have -lliveMedia_pic, build plugins
1811         VLC_ADD_PLUGINS([live555])
1812         VLC_ADD_LIBS([live555], [-lliveMedia_pic -lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic])
1813       ], [
1814         AC_CHECK_LIB(liveMedia, main, [
1815           # We only have -lliveMedia, do builtins
1816           VLC_ADD_BUILTINS([live555])
1817           VLC_ADD_LIBS([live555], [-lliveMedia -lgroupsock -lBasicUsageEnvironment -lUsageEnvironment])
1818         ])
1819       ])
1820       if test "${SYS}" = "mingw32"; then
1821         # add ws2_32 for closesocket, select, recv
1822         VLC_ADD_LIBS([live555],[-lws2_32])
1823       fi
1824     ])
1825     CPPFLAGS="${CPPFLAGS_save}"
1826     AC_LANG_POP(C++)
1827   else
1828     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_live555_tree})
1829     real_live555_tree="`cd ${with_live555_tree} 2>/dev/null && pwd`"
1830     if test -z "${real_live555_tree}"; then
1831       dnl  The given directory can't be found
1832       AC_MSG_RESULT(no)
1833       AC_MSG_ERROR([cannot cd to ${with_live555_tree}])
1834     fi
1835     if test -f "${real_live555_tree}/liveMedia/libliveMedia.a"; then
1836       AC_MSG_RESULT(${real_live555_tree}/liveMedia/libliveMedia.a)
1837
1838       VLC_ADD_BUILTINS([live555])
1839
1840       if test "${SYS}" = "mingw32"; then
1841         # add ws2_32 for closesocket, select, recv
1842         VLC_ADD_LIBS([live555],[-lws2_32])
1843       fi
1844
1845       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/liveMedia -lliveMedia])
1846       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1847       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/groupsock -lgroupsock])
1848       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/UsageEnvironment -lUsageEnvironment])
1849
1850       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/BasicUsageEnvironment/include])
1851       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/groupsock/include])
1852       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/liveMedia/include])
1853       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/UsageEnvironment/include ])
1854       if test "${SYS}" = "solaris"; then
1855         VLC_ADD_CXXFLAGS([live555],[-DSOLARIS])
1856       fi
1857     else
1858       dnl  The given live555 wasn't built
1859         AC_MSG_RESULT(no)
1860       if test "${enable_live555}" = "yes"; then
1861         AC_MSG_ERROR([cannot find ${real_live555_tree}/liveMedia/libliveMedia.a, make sure you compiled live555 in ${with_live555_tree}])
1862       fi        
1863     fi
1864   fi
1865 fi
1866
1867 dnl
1868 dnl  special access module for dc1394 input
1869 dnl
1870 AC_ARG_ENABLE(dc1394,
1871   [  --enable-dc1394         dc1394 access module (default disabled)])
1872 if test "${enable_dc1394}" = "yes"
1873 then
1874   AC_CHECK_HEADERS(libraw1394/raw1394.h, [
1875     AC_CHECK_LIB( raw1394, raw1394_get_nodecount, [
1876         AC_CHECK_HEADERS(libdc1394/dc1394_control.h , [
1877 dnl         AC_CHECK_LIB( dc1394_control, dc1394_setup_capture, [
1878               VLC_ADD_PLUGINS([dc1394])
1879               VLC_ADD_LIBS([dc1394],[-ldc1394_control -lraw1394])
1880 dnl         ],
1881 dnl         [
1882 dnl           AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1883 dnl         ])
1884       ],
1885       [
1886         AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1887       ])
1888     ],
1889     [
1890       AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1891     ])
1892   ],
1893   [
1894     AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1895   ])
1896 fi
1897
1898 dnl
1899 dnl dv module: digital video module check for libraw1394
1900 dnl
1901 AC_ARG_ENABLE(dv,
1902 [  --enable-dv             dv input module (default disabled)])
1903 if test "${enable_dv}" = "yes"
1904 then
1905   AC_ARG_WITH(dv-raw1394,
1906   [    --with-dv-raw1394=PATH   libraw1394 headers and libraries])
1907   AC_ARG_WITH(dv-raw1394-tree,
1908   [    --with-dv-raw1394=PATH   libraw1394 tree for static linking])
1909
1910   if test -z "${with_dv_raw1394}" -a "${with_dv_raw1394}" != ""
1911   then
1912     AC_MSG_CHECKING(for raw1394 headers in ${with_dv_raw1394})
1913     if test -f ${with_dv_raw1394}/include/libraw1394/raw1394.h
1914     then
1915       dnl  Use ${with_dv_raw1394}/include/libraw1394/raw1394.h
1916       AC_MSG_RESULT(yes)
1917       VLC_ADD_PLUGINS([access_dv])
1918       VLC_ADD_LIBS([access_dv],[-L${with_dv_raw1394}/lib -lraw1394 -lpthread])
1919       VLC_ADD_CPPFLAGS([access_dv],[-I${with_dv_raw1394}/include])
1920     else
1921       dnl  No libraw1394 could be found, sorry
1922       AC_MSG_RESULT(no)
1923       AC_MSG_ERROR([cannot find ${with_dv_raw1394}/include/libraw1394/raw1394.h])
1924     fi
1925   else
1926     AC_CHECK_HEADERS(libraw1394/raw1394.h,
1927     [ VLC_ADD_PLUGINS([access_dv])
1928         VLC_ADD_LIBS([access_dv],[-lraw1394 -lavc1394])
1929     ],[
1930         if test -n "${enable_dv}"
1931         then
1932           AC_MSG_ERROR([cannot find libraw1394 headers])
1933         fi
1934     ])
1935   fi
1936
1937   dnl Check for static linking of libraw1394
1938   if test -z "${with_dv_raw1394_tree}" -a "${with_dv_raw1394_tree}" != ""
1939   then
1940     AC_MSG_CHECKING(for libraw1394.a in ${with_dv_raw1394_tree})
1941     real_dv_raw1394_tree="`cd ${with_dv_raw1394_tree} 2>/dev/null && pwd`"
1942     if test -z "${real_dv_raw1394_tree}"
1943     then
1944       dnl  The given directory can't be found
1945       AC_MSG_RESULT(no)
1946       AC_MSG_ERROR([cannot cd to ${real_dv_raw1394_tree}])
1947     fi
1948     if test -f "${real_dv_raw1394_tree}/src/.libs/libraw1394.a"
1949     then
1950       dnl  Use a custom libraw1394
1951       AC_MSG_RESULT(${real_dv_raw1394_tree}/src/.libs/libraw1394.a)
1952       VLC_ADD_BUILTINS([access_dv])
1953       VLC_ADD_LIBS([access_dv],[-L${real_dv_raw1394_tree}/src/.libs -lraw1394])
1954       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_raw1394_tree}])
1955     else
1956       dnl  The given libraw1394 wasn't built
1957       AC_MSG_RESULT(no)
1958       AC_MSG_ERROR([cannot find ${real_dv_raw1394_tree}/src/.libs/libraw1394.a, make sure you compiled libraw1394 in ${with_dv_raw1394_tree}])
1959     fi
1960   fi
1961
1962   dnl
1963   dnl Check for libavc1394
1964   dnl
1965
1966   AC_ARG_WITH(dv-avc1394,
1967   [    --with-dv-avc1394=PATH   libavc1394 headers and libraries])
1968   AC_ARG_WITH(dv-avc1394-tree,
1969   [    --with-dv-avc1394=PATH   libavc1394 tree for static linking])
1970
1971   if test -z "${with_dv_avc1394}" -a "${with_dv_avc1394}" != ""
1972   then
1973     AC_MSG_CHECKING(for avc1394 headers in ${with_dv_avc1394})
1974     if test -f ${with_dv_avc1394}/include/libavc1394/avc1394.h
1975     then
1976       dnl  Use ${with_dv_avc1394}/include/libavc1394/avc1394.h
1977       AC_MSG_RESULT(yes)
1978       VLC_ADD_LIBS([access_dv],[-L${with_dv_avc1394}/lib -lavc1394 -lrom1394 -lpthread])
1979       VLC_ADD_CPPFLAGS([access_dv],[-I${with_avc1394}/include])
1980     else
1981       dnl  No libavc1394 could be found, sorry
1982       AC_MSG_RESULT(no)
1983       AC_MSG_ERROR([cannot find ${with_dv_avc1394}/include/libavc1394/avc1394.h])
1984     fi
1985   else
1986     AC_CHECK_HEADERS(libavc1394/avc1394.h,
1987     [ VLC_ADD_LIBS([access_dv],[-lavc1394 -lrom1394 -lpthread])
1988     ],[
1989         if test -n "${enable_dv}"
1990         then
1991           AC_MSG_ERROR([cannot find libavc1394 headers])
1992         fi
1993     ])
1994   fi
1995
1996   dnl Check for static linking of libavc1394
1997   if test -z "${with_dv_avc1394_tree}" -a "${with_dv_avc1394_tree}" != ""
1998   then
1999     AC_MSG_CHECKING(for libavc1394.a in ${with_dv_avc1394_tree})
2000     real_dv_avc1394_tree="`cd ${with_dv_avc1394_tree} 2>/dev/null && pwd`"
2001     if test -z "${real_dv_avc1394_tree}"
2002     then
2003       dnl  The given directory can't be found
2004       AC_MSG_RESULT(no)
2005       AC_MSG_ERROR([cannot cd to ${real_dv_avc1394_tree}])
2006     fi
2007     if test -f "${real_dv_avc1394_tree}/src/.libs/libavc1394.a"
2008     then
2009       dnl  Use a custom libavc1394
2010       AC_MSG_RESULT(${real_dv_avc1394_tree}/src/.libs/libavc1394.a)
2011       VLC_ADD_LIBS([access_dv],[-L${real_dv_avc1394_tree}/src/.libs -lavc1394 -lrom1394 -lpthread])
2012       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_avc1394_tree}])
2013     else
2014       dnl  The given libavc1394 wasn't built
2015       AC_MSG_RESULT(no)
2016       AC_MSG_ERROR([cannot find ${real_dv_avc1394_tree}/src/.libs/libavc1394.a, make sure you compiled libavc1394 in ${with_dv_avc1394_tree}])
2017     fi
2018   fi
2019 fi
2020
2021 dnl
2022 dnl dvdread module: check for libdvdread
2023 dnl
2024 AC_ARG_ENABLE(dvdread,
2025 [  --enable-dvdread        dvdread input module (default disabled)])
2026 if test "${enable_dvdread}" != "no"
2027 then
2028   AC_ARG_WITH(dvdread,
2029   [    --with-dvdread=PATH   libdvdread headers and libraries])
2030   AC_ARG_WITH(dvdread-tree,
2031   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
2032
2033   dnl Temporary hack (yeah, sure ;)
2034   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2035       VLC_ADD_LIBS([dvdread],[-ldvdcss])
2036   fi
2037
2038   if test -z "${with_dvdread}"
2039   then
2040     if test -z "${with_dvdread_tree}"
2041     then
2042       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
2043         [ VLC_ADD_PLUGINS([dvdread])
2044           VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
2045         ],[
2046           if test -n "${enable_dvdread}"
2047           then
2048             AC_MSG_ERROR([cannot find libdvdread headers])
2049           fi
2050         ])
2051     else
2052       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
2053       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
2054       if test -z "${real_dvdread_tree}"
2055       then
2056         dnl  The given directory can't be found
2057         AC_MSG_RESULT(no)
2058         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
2059       fi
2060       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
2061       then
2062         dnl  Use a custom libdvdread
2063         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
2064         VLC_ADD_BUILTINS([dvdread])
2065         VLC_ADD_LIBS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LIBS_dvdcss}])
2066         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
2067       else
2068         dnl  The given libdvdread wasn't built
2069         AC_MSG_RESULT(no)
2070         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
2071       fi
2072     fi
2073   else
2074     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
2075     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
2076     then
2077       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
2078       AC_MSG_RESULT(yes)
2079       VLC_ADD_PLUGINS([dvdread])
2080       VLC_ADD_LIBS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LIBS_dvdcss}])
2081       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
2082     else
2083       dnl  No libdvdread could be found, sorry
2084       AC_MSG_RESULT(no)
2085       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
2086     fi
2087   fi
2088 fi
2089
2090 dnl
2091 dnl  libdvdnav plugin
2092 dnl
2093 AC_ARG_ENABLE(dvdnav,
2094   [  --enable-dvdnav         dvdnav input module (default enabled)])
2095 if test "${enable_dvdnav}" != "no"
2096 then
2097   dnl Same hack than dvdread
2098   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2099       VLC_ADD_LIBS([dvdnav],[-ldvdcss])
2100   fi
2101
2102   DVDNAV_PATH="${PATH}"
2103   AC_ARG_WITH(dvdnav-config-path,
2104     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
2105     [ if test "${with_dvdnav_config_path}" != "no"
2106       then
2107         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
2108       fi ])
2109   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
2110   if test "${DVDNAV_CONFIG}" != "no"
2111   then
2112     VLC_ADD_PLUGINS([dvdnav])
2113     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
2114     VLC_ADD_LIBS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
2115   fi
2116 fi
2117
2118 dnl
2119 dnl  Windows DirectShow access module
2120 dnl
2121 AC_ARG_ENABLE(dshow,
2122   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
2123 if test "${enable_dshow}" != "no"
2124 then
2125   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2126   then
2127     AC_LANG_PUSH(C++)
2128       AC_CHECK_HEADERS(dshow.h,
2129       [ VLC_ADD_PLUGINS([dshow])
2130         VLC_ADD_CXXFLAGS([dshow],[])
2131         VLC_ADD_LIBS([dshow],[-lole32 -loleaut32 -luuid]) ])
2132     AC_LANG_POP(C++)
2133   fi
2134 fi
2135
2136 dnl
2137 dnl  Windows DirectShow BDA access module
2138 dnl
2139 AC_ARG_ENABLE(bda,
2140   [  --enable-bda            Win32 DirectShow BDA support (default enabled on Win32)])
2141 if test "${enable_bda}" != "no"
2142 then
2143   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2144   then
2145       AC_CHECK_HEADERS(dshow.h,
2146       [ VLC_ADD_PLUGINS([bda])
2147         VLC_ADD_CXXFLAGS([bda],[])
2148         VLC_ADD_LIBS([bda],[-lstrmiids -lole32 -loleaut32 -luuid]) ])
2149   fi
2150 fi
2151
2152
2153 dnl
2154 dnl  OpenCV wrapper and example filters
2155 dnl
2156 AC_ARG_ENABLE(opencv,
2157   [  --enable-opencv         OpenCV (computer vision) filter (default disabled)])
2158 if test "${enable_opencv}" = "yes" -a "${CXX}" != "";
2159 then
2160   AC_ARG_WITH(opencv-tree,
2161   [    --with-opencv-tree=PATH opencv tree for linking])
2162   if test -n "${with_opencv_tree}"
2163   then
2164     if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2165     then
2166           AC_MSG_CHECKING(for opencv in ${with_opencv_tree})
2167           if test -f ${with_opencv_tree}/cv/include/cv.h -a -f ${with_opencv_tree}/cxcore/include/cxcore.h \
2168             -a -f ${with_opencv_tree}/cvaux/include/cvaux.h -a -f ${with_opencv_tree}/otherlibs/highgui/highgui.h
2169       then
2170         AC_MSG_RESULT(yes)
2171         VLC_ADD_PLUGINS([opencv_wrapper])
2172         VLC_ADD_LIBS([opencv_wrapper],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2173         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])
2174         AC_LANG_PUSH(C++)
2175         VLC_ADD_PLUGINS([opencv_example])
2176         VLC_ADD_LIBS([opencv_example],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2177         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])
2178         AC_LANG_POP(C++)        
2179           else
2180         dnl  No opencv could be found, sorry
2181         AC_MSG_RESULT(no)
2182         AC_MSG_ERROR([cannot find opencv in ${with_opencv_tree}])
2183           fi
2184     else
2185           AC_MSG_WARN([--enable-opencv currently only works on windows])
2186     fi
2187   fi  
2188 fi
2189
2190
2191 dnl
2192 dnl  libsmbclient plugin
2193 dnl
2194 AC_ARG_ENABLE(smb,
2195   [  --enable-smb            smb input module (default enabled)])
2196 if test "${enable_smb}" != "no"; then
2197   AC_CHECK_HEADERS(libsmbclient.h,
2198     [ VLC_ADD_PLUGINS([access_smb])
2199       VLC_ADD_LIBS([access_smb],[-lsmbclient]) ],
2200     [ if test -n "${enable_smb}"; then
2201         AC_MSG_ERROR([cannot find libsmbclient headers])
2202      fi ])
2203   AC_CHECK_MEMBER([struct _SMBCCTX.close_fn],
2204     AC_DEFINE([HAVE__SMBCCTX_CLOSE_FN], 1, [Define if samba has _SMBCCTX.close_fn]),,
2205     [#include <libsmbclient.h>])
2206 fi
2207
2208 dnl
2209 dnl  libdvbpsi ts demux/mux
2210 dnl
2211 AC_ARG_ENABLE(dvbpsi,
2212   [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
2213 if test "${enable_dvbpsi}" != "no"
2214 then
2215   AC_ARG_WITH(dvbpsi,
2216   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
2217   AC_ARG_WITH(dvbpsi,
2218   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
2219   case "${with_dvbpsi}" in
2220   ""|yes)
2221     if test -z "${with_dvbpsi_tree}"
2222     then
2223       AC_CHECK_HEADERS(dvbpsi/dr.h,
2224         [ VLC_ADD_PLUGINS([ts])
2225           if test "${enable_sout}" != "no"; then
2226             VLC_ADD_PLUGINS([mux_ts])
2227           fi
2228           VLC_ADD_LIBS([mux_ts ts dvb],[-ldvbpsi]) ],
2229         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
2230         [#if defined( HAVE_STDINT_H )
2231 #   include <stdint.h>
2232 #elif defined( HAVE_INTTYPES_H )
2233 #   include <inttypes.h>
2234 #endif
2235 #include <dvbpsi/dvbpsi.h>
2236 #include <dvbpsi/descriptor.h>
2237 #include <dvbpsi/pat.h>
2238 #include <dvbpsi/pmt.h>])
2239     else
2240       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
2241       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
2242       if test -z "${real_dvbpsi_tree}"
2243       then
2244         dnl  The given directory can't be found
2245         AC_MSG_RESULT(no)
2246         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
2247       fi
2248       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
2249       then
2250         dnl  Use a custom libdvbpsi
2251         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
2252         VLC_ADD_BUILTINS([ts])
2253         if test "${enable_sout}" != "no"; then
2254           VLC_ADD_BUILTINS([mux_ts])
2255         fi
2256         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
2257         VLC_ADD_LIBS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
2258       else
2259         dnl  The given libdvbpsi wasn't built
2260         AC_MSG_RESULT(no)
2261         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
2262       fi
2263     fi
2264   ;;
2265   no)
2266     dnl  Compile without dvbpsi
2267   ;;
2268   *)
2269     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
2270     if test -z "${with_dvbpsi}"
2271     then
2272       LDFLAGS_test=""
2273       CPPFLAGS_test=""
2274     else
2275       LDFLAGS_test="-L${with_dvbpsi}/lib"
2276       CPPFLAGS_test="-I${with_dvbpsi}/include"
2277     fi
2278     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
2279     AC_CHECK_HEADERS([dvbpsi/dr.h],[
2280       VLC_ADD_PLUGINS([ts])
2281       if test "${enable_sout}" != "no"; then
2282         VLC_ADD_PLUGINS([mux_ts])
2283       fi
2284       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
2285       VLC_ADD_LIBS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
2286
2287     ],[
2288       if test -n "${enable_dvbpsi}"
2289       then
2290         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])
2291       fi
2292     ])
2293     CPPFLAGS="${CPPFLAGS_save}"
2294   ;;
2295   esac
2296   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
2297     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
2298   ], [], [${LIBS_ts}])
2299
2300 fi
2301
2302 dnl
2303 dnl  Video4Linux plugin
2304 dnl
2305 AC_ARG_ENABLE(v4l,
2306   [  --enable-v4l            Video4Linux input support (default disabled)])
2307 if test "${enable_v4l}" = "yes"
2308 then
2309   AC_ARG_WITH(v4l,
2310     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
2311   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
2312   then
2313     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
2314   fi
2315
2316   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
2317   AC_CHECK_HEADERS(linux/videodev.h, [
2318     VLC_ADD_PLUGINS([v4l])
2319   ],[])
2320   CPPFLAGS="${CPPFLAGS_save}"
2321 fi
2322
2323 dnl
2324 dnl  Video4Linux2 plugin
2325 dnl
2326 AC_ARG_ENABLE(v4l2,
2327   [  --enable-v4l2           Video4Linux2 input support (default disabled)])
2328 if test "${enable_v4l2}" = "yes"
2329 then
2330   AC_ARG_WITH(v4l2,
2331     [    --with-v4l2=PATH       path to a v4l2-enabled kernel tree],[],[])
2332   if test "${with_v4l2}" != "no" -a -n "${with_v4l2}"
2333   then
2334     VLC_ADD_CPPFLAGS([v4l2],[-I${with_v4l2}/include])
2335   fi
2336
2337   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_v4l2_alsa="true", have_v4l2_alsa="false"),have_v4l2_alsa="false")
2338   if test "${have_v4l2_alsa}" = "true"
2339   then
2340     CFLAGS="${CFLAGS_save}"
2341     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
2342                     #define ALSA_PCM_NEW_SW_PARAMS_API
2343                     #include <alsa/asoundlib.h>],
2344        [snd_pcm_hw_params_get_period_time(0,0,0);],
2345         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
2346     VLC_ADD_LDFLAGS([v4l2],[-lasound -lm -ldl])
2347     AC_DEFINE(HAVE_ALSA, 1, Define if ALSA is present.)
2348   fi
2349
2350   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l2}"
2351   AC_CHECK_HEADERS(linux/videodev2.h, [
2352     VLC_ADD_PLUGINS([v4l2])
2353   ],[])
2354   CPPFLAGS="${CPPFLAGS_save}"
2355 fi
2356
2357
2358 dnl
2359 dnl  special access module for Hauppauge PVR cards
2360 dnl
2361 AC_ARG_ENABLE(pvr,
2362   [  --enable-pvr            PVR cards access module (default disabled)])
2363 if test "${enable_pvr}" = "yes"
2364 then
2365   VLC_ADD_PLUGINS([pvr])
2366   AC_ARG_WITH(videodev2,
2367     [  --with-videodev2=FILE   Location of videodev2.h file (default /usr/include/linux/videodev2.h)],[],[])
2368   if test "${with_videodev2}" != "no" -a -n "${with_videodev2}"
2369   then
2370     AC_DEFINE_UNQUOTED(VIDEODEV2_H_FILE, "${with_videodev2}", [Location of videodev2.h])
2371   fi
2372     
2373
2374   AC_CACHE_CHECK([for new linux/videodev2.h],
2375       [new_linux_videodev2_h],
2376       [AC_TRY_COMPILE([
2377           #include <sys/types.h>
2378           #   ifdef VIDEODEV2_H_FILE
2379           #   include VIDEODEV2_H_FILE
2380           #   else
2381           #   include <linux/videodev2.h>
2382           #   endif
2383           ],
2384           [struct v4l2_ext_controls ctrls; ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG; ],
2385           new_linux_videodev2_h=yes,
2386           new_linux_videodev2_h=no)])
2387   if test "${new_linux_videodev2_h}" != "no"; then
2388     AC_DEFINE(HAVE_NEW_LINUX_VIDEODEV2_H, 1, [Define if new linux/videodev2.h present])
2389   fi
2390 fi
2391
2392 dnl
2393 dnl  gnomeVFS access module
2394 dnl
2395 AC_ARG_ENABLE(gnomevfs,
2396   [  --enable-gnomevfs       GnomeVFS access module (default disabled)])
2397 if test "${enable_gnomevfs}" = "yes" 
2398 then
2399   PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0,
2400     VLC_ADD_LIBS([access_gnomevfs],[$GNOMEVFS_LIBS])
2401     VLC_ADD_CPPFLAGS([access_gnomevfs],[$GNOMEVFS_CPPFLAGS])
2402     VLC_ADD_CFLAGS([access_gnomevfs],[$GNOMEVFS_CFLAGS])
2403     VLC_ADD_PLUGINS([access_gnomevfs]),
2404     AC_MSG_WARN([GnomeVFS support disabled because GnomeVFS development headers not found]))
2405 fi
2406
2407 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
2408 AC_ARG_ENABLE(libcdio,
2409   [  --enable-libcdio        CD input and control library support (default enabled)])
2410
2411
2412 have_libcdio=no
2413 have_libvcdinfo=no
2414 if test "${enable_libcdio}" != "no"
2415 then
2416   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.78.2,
2417      have_libcdio=yes
2418      AC_DEFINE(HAVE_LIBCDIO, 1, 
2419      [Define if you have libcdio 0.78.2 or greater installed]),
2420      [AC_MSG_WARN(CD Reading and information library not found)])
2421
2422   PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.22,
2423      [have_libvcdinfo=yes
2424      AC_DEFINE(HAVE_VCDINFO, 1, 
2425      [Define if you have libvcdinfo 0.7.22 or greater installed])],
2426      [AC_MSG_WARN(VCD information library not found)])
2427 fi
2428
2429 dnl
2430 dnl  VCDX and CDDAX modules
2431 dnl
2432 AC_ARG_ENABLE(cddax,
2433   [  --enable-cddax          audio CD plugin with CD Text and CD paranoia via libcdio (default disabled)])
2434  
2435 AC_ARG_ENABLE(libcddb,
2436   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
2437  
2438 if test "${enable_cddax}" = "yes"
2439 then
2440   if test "$have_libcdio" = "yes"
2441   then
2442     AC_DEFINE(HAVE_CDDAX, 1, [Define for the audio CD plugin using libcdio])
2443     VLC_ADD_LIBS([cddax],[$LIBCDIO_LIBS])
2444     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
2445     VLC_ADD_PLUGINS([cddax])
2446     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
2447     VLC_ADD_LIBS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
2448     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
2449   else 
2450     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
2451     HAVE_CDDAX=no
2452   fi
2453
2454   if test "$enable_libcddb" != "no"; then
2455     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2456       HAVE_LIBCDDB=yes 
2457       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2458       VLC_ADD_LIBS([cddax],[$LIBCDDB_LIBS])
2459       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
2460       ],
2461       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2462       HAVE_LIBCDDB=no])
2463   fi
2464  
2465 fi
2466
2467 AC_ARG_ENABLE(vcdx,
2468   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2469  
2470 if test "${enable_vcdx}" = "yes"
2471 then
2472   if test "${have_libvcdinfo}" = "yes"
2473   then
2474     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2475     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2476   else 
2477     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
2478     HAVE_VCDX=no
2479   fi
2480
2481   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
2482    [VLC_ADD_LIBS([vcdx],[$LIBISO9660_LIBS])
2483     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
2484     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
2485     HAVE_VCDX=no])
2486
2487   if test "$have_libvcdinfo" = "yes"
2488   then
2489     AC_DEFINE(HAVE_VCDX, 1, 
2490     [Define for the VCD plugin using libcdio/libvcdinfo])
2491     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2492     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2493     VLC_ADD_PLUGINS([vcdx])
2494   else 
2495     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
2496     HAVE_VCDX=no
2497   fi
2498 fi
2499
2500 dnl
2501 dnl  Built-in CD-DA and VCD module
2502 dnl
2503 AC_ARG_ENABLE(cdda,           
2504   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
2505  
2506 AC_ARG_ENABLE(vcd,
2507   [  --enable-vcd            built-in VCD (default enabled)])
2508
2509 if test "${enable_vcd}" != "no"
2510 then
2511   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2512   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2513     AC_MSG_RESULT(yes)
2514     VLC_ADD_PLUGINS([vcd cdda])
2515   ],[
2516     AC_MSG_RESULT(no)
2517   ])
2518
2519   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2520   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2521     AC_MSG_RESULT(yes)
2522     VLC_ADD_PLUGINS([vcd cdda])
2523     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2524   ],[
2525     AC_MSG_RESULT(no)
2526   ])
2527
2528   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2529   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2530     AC_MSG_RESULT(yes)
2531     VLC_ADD_PLUGINS([vcd cdda])
2532     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2533   ],[
2534     AC_MSG_RESULT(no)
2535   ])
2536
2537   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2538   then
2539     VLC_ADD_PLUGINS([vcd cdda])
2540   fi
2541
2542   if test "${SYS}" = "darwin"
2543   then
2544     VLC_ADD_PLUGINS([vcd cdda])
2545     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-Wl,-framework,IOKit,-framework,CoreFoundation])
2546     VLC_ADD_LIBS([vcdx cddax cdda],[-liconv])
2547   fi
2548
2549   if test "$enable_libcddb" != "no"; then
2550     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2551       HAVE_LIBCDDB=yes 
2552       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2553       VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2554       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2555       ],:
2556       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2557       HAVE_LIBCDDB=no])
2558   fi
2559 fi
2560
2561 dnl
2562 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2563 dnl
2564 AC_ARG_ENABLE(dvb,
2565   [  --enable-dvb            DVB-S/T/C card support (default disabled)])
2566
2567 if test "${enable_dvb}" = "yes"
2568 then
2569   AC_ARG_WITH(dvb,
2570   [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
2571   if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2572   then
2573     VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2574   fi
2575   CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2576   AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2577     if test -z "${with_dvbpsi_tree}"
2578     then
2579       VLC_ADD_PLUGINS([dvb])
2580     else
2581       VLC_ADD_BUILTINS([dvb])
2582     fi
2583   ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2584   CPPFLAGS="${CPPFLAGS_save}"
2585 fi
2586
2587 dnl
2588 dnl  Screen capture module
2589 dnl
2590 AC_ARG_ENABLE(screen,
2591   [  --enable-screen         Screen capture support (default enabled)])
2592 if test "${enable_screen}" != "no"; then
2593   if test "${SYS}" = "darwin"; then
2594     AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2595       VLC_ADD_PLUGINS([screen])
2596       VLC_ADD_LDFLAGS([screen],[-Wl,-framework,ApplicationServices])
2597     ])
2598   elif test "${SYS}" = "mingw32"; then
2599     VLC_ADD_PLUGINS([screen])
2600     VLC_ADD_LIBS([screen],[-lgdi32])
2601   elif test "${SYS}" = "mingwce"; then
2602     CPPFLAGS="${CPPFLAGS_save}"
2603   elif test "${SYS}" = "beos"; then
2604     VLC_ADD_PLUGINS([screen])
2605     VLC_ADD_CXXFLAGS([screen],[])
2606     VLC_ADD_LIBS([screen],[-lbe])
2607   else
2608     CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
2609     AC_CHECK_HEADERS(X11/Xlib.h, [
2610       VLC_ADD_PLUGINS([screen])
2611       VLC_ADD_LIBS([screen],[${X_LIBS} ${X_PRE_LIBS} -lX11])
2612       VLC_ADD_CPPFLAGS([screen],[${X_CFLAGS}])
2613     ])
2614     CPPFLAGS="${CPPFLAGS_save}"
2615   fi
2616 fi
2617
2618 dnl
2619 dnl  ipv6 plugin - not for QNX yet
2620 dnl
2621 have_ipv6=no
2622 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2623   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2624 ])
2625
2626 AS_IF([test "${have_ipv6}" = "yes"], [
2627   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2628
2629
2630 AC_CHECK_FUNCS(inet_ntop,[
2631   AC_DEFINE(HAVE_INET_NTOP, 1, [Define to 1 if you have inet_ntop().])])
2632
2633
2634 dnl
2635 dnl  ogg demux plugin
2636 dnl
2637 AC_ARG_ENABLE(ogg,
2638   [  --enable-ogg            Ogg demux support (default enabled)])
2639 if test "${enable_ogg}" != "no"
2640 then
2641   AC_ARG_WITH(ogg-tree,
2642   [    --with-ogg-tree=PATH  ogg tree for static linking])
2643   if test -n "${with_ogg_tree}"
2644   then
2645     AC_MSG_CHECKING(for libogg.a in ${with_ogg_tree})
2646     real_ogg_tree="`cd ${with_ogg_tree} 2>/dev/null && pwd`"
2647     if test -z "${real_ogg_tree}"
2648     then
2649       dnl  The given directory can't be found
2650       AC_MSG_RESULT(no)
2651       AC_MSG_ERROR([cannot cd to ${with_ogg_tree}])
2652     fi
2653     if test -f "${real_ogg_tree}/src/.libs/libogg.a"
2654     then
2655       dnl  Use a custom ogg
2656       AC_MSG_RESULT(${real_ogg_tree}/src/.libs/libogg.a)
2657       VLC_ADD_PLUGINS([ogg])
2658       if test "${enable_sout}" != "no"; then
2659         VLC_ADD_PLUGINS([mux_ogg])
2660       fi
2661       VLC_ADD_LIBS([ogg mux_ogg speex vorbis],[${real_ogg_tree}/src/.libs/libogg.a])
2662       VLC_ADD_CFLAGS([ogg mux_ogg speex vorbis],[-I${real_ogg_tree}/include])
2663     else
2664       dnl  The given ogg wasn't built
2665       AC_MSG_RESULT(no)
2666       AC_MSG_ERROR([cannot find ${real_ogg_tree}/src/.libs/libogg.a, make sure you compiled ogg in ${with_ogg_tree}])
2667     fi
2668   else
2669     AC_CHECK_HEADERS(ogg/ogg.h, [
2670       AC_CHECK_LIB( ogg, oggpack_read, [
2671         VLC_ADD_PLUGINS([ogg])
2672         if test "${enable_sout}" != "no"; then
2673           VLC_ADD_PLUGINS([mux_ogg])
2674         fi
2675         VLC_ADD_LIBS([ogg mux_ogg],[-logg])])
2676      ],[])
2677   fi
2678 fi
2679
2680 dnl
2681 dnl  matroska demux plugin
2682 dnl
2683 AC_ARG_ENABLE(mkv,
2684   [  --enable-mkv            Matroska demux support (default enabled)])
2685 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2686   AC_LANG_PUSH(C++)
2687   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2688     AC_MSG_CHECKING(for libebml version >= 0.7.6)
2689     AC_EGREP_CPP(yes,
2690       [#include <ebml/EbmlVersion.h>
2691        #ifdef LIBEBML_VERSION
2692        #if LIBEBML_VERSION >= 0x000706
2693        yes
2694        #endif
2695        #endif],
2696       [AC_MSG_RESULT([yes])
2697         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2698           AC_MSG_CHECKING(for libmatroska version >= 0.7.7)
2699           AC_EGREP_CPP(yes,
2700             [#include <matroska/KaxVersion.h>
2701              #ifdef LIBMATROSKA_VERSION
2702              #if LIBMATROSKA_VERSION >= 0x000705
2703              yes
2704              #endif
2705              #endif],
2706             [AC_MSG_RESULT([yes])
2707               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2708               VLC_ADD_CXXFLAGS([mkv],[])
2709               if test "${SYS}" = "darwin"; then
2710                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2711               fi
2712               AC_CHECK_LIB(ebml_pic, main, [
2713                 VLC_ADD_PLUGINS([mkv])
2714                 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2715               ],
2716                 AC_CHECK_LIB(ebml, main, [
2717                   VLC_ADD_PLUGINS([mkv])
2718                   VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2719                 ]) 
2720               )
2721             ],
2722             [AC_MSG_RESULT([no])
2723               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.])
2724           ])
2725         ])
2726       ],
2727       [AC_MSG_RESULT([no])
2728         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.])
2729     ])
2730   ])
2731   AC_LANG_POP(C++)
2732 fi
2733
2734 dnl
2735 dnl  modplug demux plugin
2736 dnl
2737 AC_ARG_ENABLE(mod,
2738   [  --enable-mod            Mod demux support (default enabled)])
2739 if test "${enable_mod}" != "no"
2740 then
2741   AC_ARG_WITH(mod-tree,
2742   [    --with-mod-tree=PATH mod tree for static linking])
2743   if test -n "${with_mod_tree}"
2744   then
2745     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2746     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2747     if test -z "${real_mod_tree}"
2748     then
2749       dnl  The given directory can't be found
2750       AC_MSG_RESULT(no)
2751       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2752     fi
2753     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2754     then
2755       dnl  Use a custom mod
2756       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2757       VLC_ADD_PLUGINS([mod])
2758       VLC_ADD_LIBS([mod],[${real_mod_tree}/src/.libs/libmodplug.a -lstdc++])
2759       VLC_ADD_CXXFLAGS([mod],[-I${real_mod_tree}/include])
2760     else
2761       dnl  The given mod wasn't built
2762       AC_MSG_RESULT(no)
2763       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2764     fi
2765   else
2766     AC_CHECK_HEADERS(libmodplug/modplug.h, [
2767       VLC_ADD_PLUGINS([mod])
2768       VLC_ADD_CXXFLAGS([mod],[])
2769       VLC_ADD_LIBS([mod],[-lmodplug -lstdc++])])
2770   fi
2771 fi
2772
2773 dnl
2774 dnl  mpc demux plugin
2775 dnl
2776 AC_ARG_ENABLE(mpc,
2777   [  --enable-mpc            Mpc demux support (default enabled)])
2778 if test "${enable_mpc}" != "no"
2779 then
2780   AC_CHECK_HEADERS(mpcdec/mpcdec.h, [
2781     VLC_ADD_PLUGINS([mpc])
2782     VLC_ADD_LIBS([mpc],[-lmpcdec])])
2783 fi
2784
2785 dnl
2786 dnl  game music emu demux plugin
2787 dnl
2788 AC_ARG_ENABLE(gme,
2789   [  --enable-gme            Game Music Emu demux support (default enabled)])
2790 if test "${enable_gme}" != "no" -a "${CXX}" != "";
2791 then
2792   AC_LANG_PUSH(C++)
2793   AC_ARG_WITH(gme-tree,
2794   [    --with-gme-tree=PATH gme tree for static linking])
2795   if test -n "${with_gme_tree}"
2796   then
2797     AC_MSG_CHECKING(for libgme.a in ${with_mod_tree})
2798     real_gme_tree="`cd ${with_gme_tree} 2>/dev/null && pwd`"
2799     if test -z "${real_gme_tree}"
2800     then
2801       dnl  The given directory can't be found
2802       AC_MSG_RESULT(no)
2803       AC_MSG_ERROR([cannot cd to ${with_gme_tree}])
2804     fi
2805     if test -f "${real_gme_tree}/gme/libgme.a"
2806     then
2807       dnl  Use a custom gme
2808       AC_MSG_RESULT(${real_gme_tree}/gme/libgme.a)
2809       VLC_ADD_PLUGINS([gme])
2810       VLC_ADD_LIBS([gme],[${real_gme_tree}/gme/libgme.a])
2811       VLC_ADD_CXXFLAGS([gme],[-I${real_gme_tree}/gme])
2812     else
2813       dnl  The given gme wasn't built
2814       AC_MSG_RESULT(no)
2815       AC_MSG_ERROR([cannot find ${real_mod_tree}/gme/libgme.a, make sure you compiled gme in ${with_gme_tree}])
2816     fi
2817   else
2818       AC_MSG_WARN([only static linking is available, you must provide a gme-tree])
2819   fi
2820   AC_LANG_POP(C++)
2821 fi
2822
2823 dnl
2824 dnl  Codec plugins
2825 dnl
2826
2827 AC_ARG_WITH(,[Codec plugins:])
2828
2829 dnl
2830 dnl  mad plugin
2831 dnl
2832 AC_ARG_ENABLE(mad,
2833   [  --enable-mad            libmad module (default enabled)])
2834 if test "${enable_mad}" != "no"
2835 then
2836   AC_ARG_WITH(mad,
2837     [    --with-mad=PATH       path to libmad],[],[])
2838   if test "${with_mad}" != "no" -a -n "${with_mad}"
2839   then
2840     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2841     VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2842   fi
2843
2844   AC_ARG_WITH(mad-tree,
2845     [    --with-mad-tree=PATH   mad tree for static linking],[],[])
2846   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2847   then
2848     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2849     if test -z "${real_mad_tree}"
2850     then
2851       dnl  The given directory can't be found
2852       AC_MSG_RESULT(no)
2853       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2854     fi
2855     dnl  Use a custom libmad
2856     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2857     if test -f ${real_mad_tree}/mad.h
2858     then
2859       AC_MSG_RESULT(yes)
2860       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2861       VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2862       LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2863       AC_CHECK_LIB(mad, mad_bit_init, [
2864         VLC_ADD_BUILTINS([mpgatofixed32])
2865         VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2866         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2867       ],[])
2868       LDFLAGS="${LDFLAGS_save}"
2869     else
2870       AC_MSG_RESULT(no)
2871       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2872     fi
2873   else
2874     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2875     LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2876     AC_CHECK_HEADERS(mad.h, ,
2877       [ 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.]) ])
2878     AC_CHECK_LIB(mad, mad_bit_init, [
2879       VLC_ADD_PLUGINS([mpgatofixed32])
2880       VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2881       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2882     CPPFLAGS="${CPPFLAGS_save}"
2883     LDFLAGS="${LDFLAGS_save}"
2884   fi
2885 fi
2886
2887 dnl
2888 dnl   libid3tag support (FIXME!!! doesn't work with new input)
2889 dnl
2890 AC_ARG_ENABLE( id3tag,
2891   [  --disable-id3tag id3tag metadata reader plugin (default enabled)])
2892 AS_IF([test "${enable_id3tag}" != "no"], [
2893   AC_CHECK_HEADERS(id3tag.h, [
2894     AC_CHECK_HEADERS(zlib.h, [
2895       VLC_ADD_LIBS([id3tag],[-lid3tag -lz])
2896       VLC_ADD_PLUGINS([id3tag])
2897     ])
2898   ])
2899 ])
2900
2901 dnl
2902 dnl  ffmpeg decoder/demuxer plugin
2903 dnl
2904 dnl we try to find ffmpeg using : 1- given tree, 2- pkg-config
2905 dnl                               3- default place,
2906
2907 AC_ARG_ENABLE(ffmpeg,
2908 [  --enable-ffmpeg         ffmpeg codec (default enabled)])
2909 if test "${enable_ffmpeg}" != "no"
2910 then
2911
2912 dnl Those options have to be here because the .pc can be bogus for ffmpeg previous nov 05
2913
2914  AC_ARG_WITH(ffmpeg-mp3lame,
2915    [    --with-ffmpeg-mp3lame specify if ffmpeg has been compiled with mp3lame support],
2916    [
2917      if test "$with_ffmpeg_mp3lame" = "yes";    then
2918         VLC_ADD_LIBS([ffmpeg],[-lmp3lame])
2919      fi])
2920
2921  AC_ARG_WITH(ffmpeg-faac,
2922    [    --with-ffmpeg-faac    specify if ffmpeg has been compiled with faac support],
2923    [
2924      if test "$with_ffmpeg_faac" = "yes"; then
2925         VLC_ADD_LIBS([ffmpeg],[-lfaac])
2926      fi])
2927
2928  AC_ARG_WITH(ffmpeg-dts,
2929    [    --with-ffmpeg-dts     specify if ffmpeg has been compiled with dts support],
2930    [
2931      if test "$with_ffmpeg_dts" = "yes"; then
2932              LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg} ${LIBS_ffmpeg}"
2933              AC_CHECK_LIB(dts_pic, dts_free, 
2934                [ VLC_ADD_LIBS([ffmpeg],[-ldts_pic]) ],
2935                [ VLC_ADD_LIBS([ffmpeg],[-ldts]) ])
2936              LDFLAGS="${LDFLAGS_save}"
2937      fi])
2938
2939  AC_ARG_WITH(ffmpeg-vorbis,
2940    [    --with-ffmpeg-vorbis    specify if ffmpeg has been compiled with vorbis support],
2941    [
2942      if test "$with_ffmpeg_vorbis" = "yes"; then
2943         VLC_ADD_LIBS([ffmpeg],[-lvorbisenc -lvorbis])
2944      fi])
2945
2946  AC_ARG_WITH(ffmpeg-theora,
2947    [    --with-ffmpeg-theora    specify if ffmpeg has been compiled with theora support],
2948    [
2949      if test "$with_ffmpeg_theora" = "yes"; then
2950         VLC_ADD_LIBS([ffmpeg],[-ltheora])
2951      fi])
2952
2953  AC_ARG_WITH(ffmpeg-ogg,
2954    [    --with-ffmpeg-ogg    specify if ffmpeg has been compiled with ogg support],
2955    [
2956      if test "$with_ffmpeg_ogg" = "yes"; then
2957         VLC_ADD_LIBS([ffmpeg],[-logg])
2958      fi])
2959
2960  AC_ARG_WITH(ffmpeg-zlib,
2961    [    --with-ffmpeg-zlib    specify if ffmpeg has been compiled with zlib support],
2962    [
2963      if test "$with_ffmpeg_zlib" = "yes"; then
2964         VLC_ADD_LIBS([ffmpeg],[-lz])
2965      fi])
2966
2967  AC_ARG_WITH(ffmpeg-amrnb,
2968    [    --with-ffmpeg-amrnb specify if ffmpeg has been compiled with libamrnb support],
2969    [
2970      if test "$with_ffmpeg_amrnb" = "yes";      then
2971         VLC_ADD_LIBS([ffmpeg],[-lamrnb])
2972      fi])
2973
2974  AC_ARG_WITH(ffmpeg-amrwb,
2975    [    --with-ffmpeg-amrwb specify if ffmpeg has been compiled with libamrwb support],
2976    [
2977      if test "$with_ffmpeg_amrwb" = "yes";      then
2978         VLC_ADD_LIBS([ffmpeg],[-lamrwb])
2979      fi])
2980
2981  AC_ARG_WITH(ffmpeg-x264,
2982    [    --with-ffmpeg-x264 specify if ffmpeg has been compiled with libx264 support],
2983    [
2984      if test "$with_ffmpeg_x264" = "yes";       then
2985         VLC_ADD_LIBS([ffmpeg],[-lx264])
2986      fi])
2987
2988  AC_ARG_WITH(ffmpeg-a52,
2989    [    --with-ffmpeg-a52 specify if ffmpeg has been compiled with liba52 support],
2990    [
2991      if test "$with_ffmpeg_a52" = "yes";        then
2992         VLC_ADD_LIBS([ffmpeg],[-la52])
2993      fi])
2994
2995  dnl
2996  dnl test for --with-ffmpeg-tree
2997  dnl
2998  AC_ARG_WITH(ffmpeg-tree,
2999    [    --with-ffmpeg-tree=PATH ffmpeg tree for static linking])
3000
3001  if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
3002    AC_MSG_CHECKING(for libavcodec.a in ${with_ffmpeg_tree})
3003    real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
3004    if test -z "${real_ffmpeg_tree}"; then
3005      dnl  The given directory can't be found
3006      AC_MSG_RESULT(no)
3007      AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
3008    fi
3009    if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
3010      dnl  The given libavcodec wasn't built
3011      AC_MSG_RESULT(no)
3012      AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodec.a, make sure you compiled libavcodec in ${with_ffmpeg_tree}])
3013    fi
3014    if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
3015      if test -f "${real_ffmpeg_tree}/libavcodec/libpostproc/libpostproc.a"; then
3016        VLC_ADD_LIBS([ffmpeg],[-L${real_ffmpeg_tree}/libavcodec/libpostproc ${real_ffmpeg_tree}/libavcodec/libpostproc/libpostproc.a])   
3017      elif test -f "${real_ffmpeg_tree}/libpostproc/libpostproc.a"; then 
3018         VLC_ADD_LIBS([ffmpeg],[-L${real_ffmpeg_tree}/libpostproc ${real_ffmpeg_tree}/libpostproc/libpostproc.a])
3019         VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}])
3020      else
3021        dnl  The given libavcodec wasn't built with --enable-pp
3022        AC_MSG_RESULT(no)
3023        AC_MSG_ERROR([cannot find libpostproc.a in ${real_ffmpeg_tree}/[libavcodec/]libpostproc/. Make sure you configured ffmpeg with --enable-pp])
3024      fi
3025    fi
3026    dnl  Use a custom libffmpeg
3027    AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodec.a)
3028
3029    dnl Use pkg-config to look for the ldflags in libav*-uninstalled.pc
3030    PKG_CONFIG_PATH_save="$PKG_CONFIG_PATH"
3031    PKG_CONFIG_LIBDIR_save="$PKG_CONFIG_LIBDIR"
3032    export PKG_CONFIG_PATH=""
3033    export PKG_CONFIG_LIBDIR="${real_ffmpeg_tree}"
3034
3035    PKG_CHECK_MODULES( [FFMPEG],[libavcodec libavformat libpostproc], [
3036         VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher], ${FFMPEG_CFLAGS})
3037         VLC_ADD_LIBS([ffmpeg stream_out_switcher], ${FFMPEG_LIBS})]
3038       ,[])
3039    AS_IF([test -n "${PKG_CONFIG_PATH_save}"],[
3040          export PKG_CONFIG_PATH="${PKG_CONFIG_PATH_save}"
3041    ],[
3042         unset PKG_CONFIG_PATH
3043    ])
3044    AS_IF([test -n "${PKG_CONFIG_LIBDIR_save}"],[
3045         export PKG_CONFIG_LIBDIR="${PKG_CONFIG_LIBDIR_save}"
3046    ],[
3047         unset PKG_CONFIG_LIBDIR
3048    ])
3049
3050    VLC_ADD_BUILTINS([ffmpeg])
3051    if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes" ; then
3052      VLC_ADD_BUILTINS([stream_out_switcher])
3053    fi
3054
3055    if test -f "${real_ffmpeg_tree}/libswscale/libswscale.a"; then
3056      AC_DEFINE(HAVE_LIBSWSCALE_TREE, 1, [Define if you have ffmpeg's libswscale.])
3057      VLC_ADD_LIBS([ffmpeg],[-L${real_ffmpeg_tree}/libswscale ${real_ffmpeg_tree}/libswscale/libswscale.a])
3058      VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libswscale])
3059    fi
3060
3061     if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
3062       AC_DEFINE(HAVE_LIBAVFORMAT_TREE, 1, [Define if you have ffmpeg's libavformat.])
3063       VLC_ADD_LIBS([ffmpeg],[-L${real_ffmpeg_tree}/libavformat -lavformat -lz])
3064       VLC_ADD_CPPFLAGS([ffmpeg],[-I${real_ffmpeg_tree}/libavformat])
3065     fi
3066 else
3067
3068
3069 dnl Trying with pkg-config
3070    PKG_CHECK_MODULES(FFMPEG,[libavcodec, libavformat],
3071     [
3072      VLC_SAVE_FLAGS
3073      CPPFLAGS="${CPPFLAGS} ${FFMPEG_CFLAGS}"
3074      CFLAGS="${CFLAGS} ${FFMPEG_CFLAGS}"
3075      AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] )
3076      AC_CHECK_HEADERS(ffmpeg/avformat.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avformat.h.])] )
3077      AC_CHECK_HEADERS(ffmpeg/avutil.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avutil.h.])] )
3078      dnl newer ffmpeg have a separate libpostproc
3079      PKG_CHECK_MODULES(POSTPROC, libpostproc,[
3080        VLC_ADD_CFLAGS([ffmpeg],[${POSTPROC_CFLAGS}]) 
3081        VLC_ADD_LIBS([ffmpeg],[${POSTPROC_LIBS}]) 
3082        ],[ true ])
3083      CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
3084      CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
3085      AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] )
3086      if test "${SYS}" = "darwin"; then
3087         VLC_ADD_BUILTINS([ffmpeg])
3088      else
3089         VLC_ADD_PLUGINS([ffmpeg])
3090      fi
3091      if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes"; then
3092         if test "${SYS}" = "darwin"; then
3093             VLC_ADD_BUILTINS([stream_out_switcher])
3094         else
3095             VLC_ADD_PLUGINS([stream_out_switcher])
3096         fi
3097      fi
3098      VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[${FFMPEG_CFLAGS}])
3099      VLC_ADD_LIBS([ffmpeg stream_out_switcher],[${FFMPEG_LIBS}])
3100
3101      dnl even newer ffmpeg has a libswscale
3102      PKG_CHECK_MODULES(SWSCALE,[libswscale],[
3103        VLC_ADD_CFLAGS([ffmpeg],[${SWSCALE_CFLAGS}])
3104        VLC_ADD_LIBS([ffmpeg],[${SWSCALE_LIBS}])
3105 dnl    AC_CHECK_HEADERS(ffmpeg/swscale.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/swscale.h.])])
3106        AC_CHECK_LIB(swscale, sws_getContext,
3107          [AC_CHECK_HEADERS([ffmpeg/avutil.h, ffmpeg/swscale.h])],[],[-lavutil -lm])
3108        ],[ true ])
3109      VLC_RESTORE_FLAGS
3110     ],[
3111
3112     dnl
3113     dnl last chance: at the default place
3114     dnl
3115       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_ffmpeg}"
3116       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg} ${LIBS_ffmpeg}"
3117       AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] )
3118       AC_CHECK_HEADERS(ffmpeg/avformat.h)
3119       AC_CHECK_HEADERS(ffmpeg/avutil.h)
3120       AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] )
3121
3122       AC_CHECK_LIB(avutil, av_crc_init, [
3123         VLC_ADD_LIBS([ffmpeg],[-lavutil])
3124         LDAVUTIL="-lavutil"])
3125
3126       AC_CHECK_LIB(avcodec, avcodec_init, [
3127         VLC_ADD_BUILTINS([ffmpeg])
3128         VLC_ADD_LIBS([ffmpeg],[-lavcodec])
3129         if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes"; then
3130             VLC_ADD_BUILTINS([stream_out_switcher])
3131         fi],
3132          [ 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])
3133
3134       AC_CHECK_LIB(postproc, pp_postprocess, [
3135         VLC_ADD_LIBS([ffmpeg],[-lpostproc])],
3136       AC_MSG_ERROR([Could not find libpostproc inside FFmpeg. You should configure FFmpeg with --enable-gpl --enable-pp.]),
3137         [$LDAVUTIL])
3138
3139       AC_CHECK_LIB(avformat, av_open_input_stream, [
3140         VLC_ADD_LIBS([ffmpeg],[-lavformat -lz]) ], [], [-lavcodec -lz $LDAVUTIL])
3141       LDFLAGS="${LDFLAGS_save}"
3142       CPPFLAGS="${CPPFLAGS_save}"
3143
3144       AC_CHECK_LIB(swscale, sws_getContext, [
3145         AC_CHECK_HEADERS(ffmpeg/swscale.h)
3146         VLC_ADD_LIBS([ffmpeg],[-lswscale]) ], [], [-lavcodec $LDAVUTIL])
3147       LDFLAGS="${LDFLAGS_save}"
3148       CPPFLAGS="${CPPFLAGS_save}"
3149     ])
3150   fi
3151 fi
3152
3153 dnl
3154 dnl  ffmpegaltivec plugin
3155 dnl
3156 AC_ARG_ENABLE(ffmpegaltivec,
3157 [  --enable-ffmpegaltivec  ffmpegaltivec codec (DO NOT USE)])
3158 if test "${enable_ffmpegaltivec}" = "yes"
3159 then
3160   if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
3161     AC_MSG_CHECKING(for libavcodecaltivec.a in ${with_ffmpeg_tree})
3162     real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
3163     if test -z "${real_ffmpeg_tree}"; then
3164       dnl  The given directory can't be found
3165       AC_MSG_RESULT(no)
3166       AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
3167     fi
3168     if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
3169       dnl  The given libavcodecaltivec wasn't built
3170       AC_MSG_RESULT(no)
3171       AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a, make sure you compiled libavcodecaltivec in ${with_ffmpeg_tree}])
3172     fi
3173     if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
3174       dnl  The given libavcodecaltivec wasn't built with --enable-pp
3175       AC_MSG_RESULT(no)
3176       AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
3177     fi
3178     dnl  Use a custom libffmpeg
3179     AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a)
3180     VLC_ADD_BUILTINS([ffmpegaltivec])
3181     VLC_ADD_LIBS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavcodec -lavcodecaltivec])
3182     VLC_ADD_CPPFLAGS([ffmpeg],[-DNO_ALTIVEC_IN_FFMPEG])
3183     VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
3184
3185     if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
3186       AC_DEFINE(HAVE_LIBAVFORMAT_TREE, 1, [Define if you have ffmpeg's libavformat.])
3187       VLC_ADD_LIBS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavformat -lavformataltivec -lz])
3188       VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavformat])
3189     fi
3190     VLC_ADD_LIBS([stream_out_switcher],[-L${real_ffmpeg_tree}/libavcodec])
3191     VLC_ADD_CPPFLAGS([stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
3192   fi
3193 fi
3194
3195 dnl
3196 dnl  faad decoder plugin
3197 dnl
3198 AC_ARG_ENABLE(faad,
3199 [  --enable-faad           faad codec (default disabled)])
3200 if test "${enable_faad}" = "yes"
3201 then
3202   AC_ARG_WITH(faad-tree,
3203   [    --with-faad-tree=PATH faad tree for static linking])
3204   if test -n "${with_faad_tree}"
3205   then
3206     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
3207     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
3208     if test -z "${real_faad_tree}"
3209     then
3210       dnl  The given directory can't be found
3211       AC_MSG_RESULT(no)
3212       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
3213     fi
3214     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
3215     then
3216       dnl  Use a custom faad
3217       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
3218       VLC_ADD_BUILTINS([faad])
3219       VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
3220       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
3221     else
3222       dnl  The given libfaad wasn't built
3223       AC_MSG_RESULT(no)
3224       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
3225     fi
3226   else
3227     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
3228     LDFLAGS="${LDFLAGS_save} ${LIBS_faad}"
3229     AC_CHECK_HEADERS(faad.h, ,
3230       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
3231     AC_CHECK_LIB(faad, faacDecOpen, [
3232       VLC_ADD_PLUGINS([faad])
3233       VLC_ADD_LIBS([faad],[-lfaad]) ],
3234       AC_CHECK_LIB(faad, NeAACDecOpen, [
3235         VLC_ADD_PLUGINS([faad])
3236         VLC_ADD_LIBS([faad],[-lfaad]) ],
3237         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
3238     LDFLAGS="${LDFLAGS_save}"
3239     CPPFLAGS="${CPPFLAGS_save}"
3240   fi
3241 fi
3242
3243 dnl
3244 dnl twolame encoder plugin
3245 dnl
3246 AC_ARG_ENABLE(twolame,
3247 [  --enable-twolame        twolame codec (default disabled)])
3248 if test "${enable_twolame}" = "yes"
3249 then
3250   AC_ARG_WITH(twolame-tree,
3251   [    --with-twolame-tree=PATH twolame tree for static linking])
3252   if test -n "${with_twolame_tree}"
3253   then
3254     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
3255     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
3256     if test -z "${real_twolame_tree}"
3257     then
3258       dnl  The given directory can't be found
3259       AC_MSG_RESULT(no)
3260       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
3261     fi
3262     if test -f "${real_twolame_tree}/libtwolame/.libs/libtwolame.a"
3263     then
3264       dnl  Use a custom twolame
3265       AC_MSG_RESULT(${real_twolame_tree}/libtwolame/.libs/libtwolame.a)
3266       VLC_ADD_BUILTINS([twolame])
3267       VLC_ADD_LIBS([twolame],[${real_twolame_tree}/libtwolame/.libs/libtwolame.a])
3268       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/libtwolame -DLIBTWOLAME_STATIC])
3269     else
3270       dnl  The given libtwolame wasn't built
3271       AC_MSG_RESULT(no)
3272       AC_MSG_ERROR([cannot find ${real_twolame_tree}/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
3273     fi
3274   else
3275     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame} -DLIBTWOLAME_STATIC"
3276     LDFLAGS="${LDFLAGS_save} ${LIBS_twolame}"
3277     AC_CHECK_HEADERS(twolame.h, ,
3278       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
3279     AC_CHECK_LIB(twolame, twolame_init, [
3280       VLC_ADD_PLUGINS([twolame])
3281       VLC_ADD_CPPFLAGS([twolame],[-DLIBTWOLAME_STATIC])
3282       VLC_ADD_LIBS([twolame],[-ltwolame]) ],
3283         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
3284     LDFLAGS="${LDFLAGS_save}"  
3285     CPPFLAGS="${CPPFLAGS_save}"
3286   fi
3287 fi
3288
3289 dnl
3290 dnl  QuickTime plugin
3291 dnl
3292 AC_ARG_ENABLE(quicktime,
3293   [  --enable-quicktime      QuickTime module (default enabled on MacOS X)])
3294 if test "${enable_quicktime}" != "no" &&
3295   (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
3296 then
3297   if test "${SYS}" = "mingw32"; then
3298     VLC_ADD_BUILTINS([quicktime])
3299   else
3300   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
3301     [ VLC_ADD_BUILTINS([quicktime])
3302       VLC_ADD_LDFLAGS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
3303     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
3304   fi
3305 fi
3306
3307 dnl
3308 dnl  Real plugin
3309 dnl
3310 AC_ARG_ENABLE(real,
3311   [  --enable-real           Real audio module (default disabled)])
3312 if test "${enable_real}" = "yes"; then
3313   VLC_ADD_PLUGINS([realaudio])
3314 fi
3315
3316 dnl
3317 dnl  Real RTSP plugin
3318 dnl
3319 AC_ARG_ENABLE(realrtsp,
3320   [  --enable-realrtsp       Real RTSP module (default disabled)])
3321 if test "${enable_realrtsp}" = "yes"; then
3322   VLC_ADD_PLUGINS([access_realrtsp])
3323 fi
3324
3325 dnl
3326 dnl MP4 module
3327 dnl
3328 AC_CHECK_HEADERS(zlib.h, [
3329   VLC_ADD_LIBS([mp4 skins2 sap mkv gme],[-lz])
3330 ] )
3331
3332 AC_CHECK_HEADERS(sysfs/libsysfs.h, [
3333   VLC_ADD_LIBS([mp4 mkv],[-lsysfs])
3334 ] )
3335
3336 dnl
3337 dnl skins2 module
3338 dnl
3339 AC_ARG_ENABLE(libtar,
3340   [  --enable-libtar support for skins2 (default enabled)])
3341
3342 AS_IF([test "${enable_libtar}" != "no"],[
3343   AC_CHECK_HEADERS(libtar.h, [
3344     VLC_ADD_LIBS([skins2],[-ltar])
3345   ] )
3346 ])
3347
3348 dnl
3349 dnl A52/AC3 decoder plugin
3350 dnl
3351 AC_ARG_ENABLE(a52,
3352   [  --enable-a52            A/52 support with liba52 (default enabled)])
3353 if test "${enable_a52}" != "no"
3354 then
3355   AC_ARG_WITH(a52,
3356     [    --with-a52=PATH       a52 headers and libraries])
3357   AC_ARG_WITH(a52-tree,
3358     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
3359   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
3360   then
3361     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
3362     if test -z "${real_a52_tree}"
3363     then
3364       dnl  The given directory can't be found
3365       AC_MSG_RESULT(no)
3366       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
3367     fi
3368     dnl  Use a custom a52dec
3369     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
3370     if test -f ${real_a52_tree}/include/a52.h
3371     then
3372       AC_MSG_RESULT(yes)
3373       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
3374       VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
3375       LDFLAGS="${LDFLAGS_save} ${LIBS_a52tofloat32}"
3376       AC_CHECK_LIB(a52, a52_free, [
3377         VLC_ADD_BUILTINS([a52tofloat32])
3378         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
3379         VLC_ADD_LIBS([a52tofloat32],[-la52])
3380         ],[
3381         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
3382         then
3383           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
3384         else
3385           AC_MSG_ERROR([the specified tree hasn't been compiled])
3386         fi
3387       ])
3388       LDFLAGS="${LDFLAGS_save}"
3389     else
3390       AC_MSG_RESULT(no)
3391       AC_MSG_ERROR([the specified tree doesn't have a52.h])
3392     fi
3393   else
3394     if test -z "${with_a52}"
3395     then
3396       LDFLAGS_test=""
3397       CPPFLAGS_test=""
3398     else
3399       LDFLAGS_test="-L${with_a52}/lib"
3400       CPPFLAGS_test="-I${with_a52}/include"
3401     fi
3402     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
3403     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
3404     AC_CHECK_HEADERS(a52dec/a52.h, [
3405       AC_CHECK_LIB(a52, a52_free, [
3406         VLC_ADD_PLUGINS([a52tofloat32])
3407         VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
3408         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
3409       ],[
3410         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.])
3411         ])
3412     ],[
3413       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.])
3414     ])
3415     CPPFLAGS="${CPPFLAGS_save}"
3416     LDFLAGS="${LDFLAGS_save}"
3417   fi
3418 fi
3419
3420 AC_ARG_WITH(a52-fixed,
3421       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
3422       [
3423         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
3424
3425 dnl
3426 dnl DTS Coherent Acoustics decoder plugin
3427 dnl
3428 AS_IF([test "x${enable_dts}" != "x"], [
3429   AC_MSG_ERROR([--enable-dts is obsolete. Please use libdca and --enable-dca.])
3430 ])
3431 AS_IF([test "x${with_dts_tree}" != "x"], [
3432   AC_MSG_ERROR([--with-dts-tree is obsolete. Please use libdca and --with-dca-tree.])
3433 ])
3434
3435 AC_ARG_ENABLE(dca,
3436   [  --enable-dca            DTS Coherent Acoustics support with libdca (default enabled)])
3437 AS_IF([test "${enable_dca}" != "no"], [
3438   AC_ARG_WITH(dca-tree,
3439     [    --with-dca-tree=PATH  libdca tree for static linking],,
3440     [with_dca_tree="no"])
3441   AS_IF([test "${with_dca_tree}" != "no"], [
3442     real_dca_tree="`cd ${with_dca_tree} 2>/dev/null && pwd`"
3443     AS_IF([test -z "${real_dca_tree}"], [
3444       dnl  The given directory can't be found
3445       AC_MSG_RESULT(no)
3446       AC_MSG_ERROR([${with_dca_tree} directory doesn't exist])
3447     ])
3448     dnl  Use a custom libdca
3449     AC_MSG_CHECKING(for libdca in ${real_dca_tree})
3450     AS_IF([test -f "${real_dca_tree}/libdca/.libs/libdca.a"], [
3451       AC_MSG_RESULT(yes)
3452       VLC_ADD_LIBS([dtstofloat32],[${real_dca_tree}/libdca/.libs/libdca.a])
3453       AS_IF([test -f "${real_dca_tree}/include/dca.h"], [
3454         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/include])
3455       ], [
3456         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/../include])
3457       ])
3458     ], [
3459       AC_MSG_RESULT(no)
3460       AC_MSG_ERROR([the specified tree doesn't have libdca/.libs/libdca.a])
3461     ])
3462   ], [
3463     PKG_CHECK_MODULES([DCA], [libdca >= 0.0.5], [
3464       VLC_ADD_PLUGINS([dtstofloat32])
3465       VLC_ADD_CPPFLAGS([dtstofloat32], [${DCA_CFLAGS}])
3466       VLC_ADD_LIBS([dtstofloat32], [${DCA_LIBS}])
3467     ], [
3468       AS_IF([test "x${enable_dca}" != "x"], [
3469         AC_MSG_ERROR([${DCA_PKG_ERRORS}])
3470       ])
3471     ])
3472   ])
3473 ])
3474
3475 dnl
3476 dnl  Flac plugin
3477 dnl
3478 AC_ARG_ENABLE(flac,
3479   [  --enable-flac           libflac decoder/encoder support (default disabled)])
3480 if test "${enable_flac}" = "yes"
3481 then
3482   AC_ARG_WITH(flac-tree,
3483   [    --with-flac-tree=PATH flac tree for static linking])
3484   if test -n "${with_flac_tree}"
3485   then
3486     AC_MSG_CHECKING(for libFLAC.a in ${with_flac_tree})
3487     real_flac_tree="`cd ${with_flac_tree} 2>/dev/null && pwd`"
3488     if test -z "${real_flac_tree}"
3489     then
3490       dnl  The given directory can't be found
3491       AC_MSG_RESULT(no)
3492       AC_MSG_ERROR([cannot cd to ${with_flac_tree}])
3493     fi
3494     if test -f "${real_flac_tree}/src/libFLAC/.libs/libFLAC.a"
3495     then
3496       dnl  Use a custom flac
3497       AC_MSG_RESULT(${real_flac_tree}/src/libFLAC/.libs/libFLAC.a)
3498       VLC_ADD_LIBS([flac],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a])
3499       VLC_ADD_CFLAGS([flac],[-I${real_flac_tree}/include])
3500       AC_DEFINE(HAVE_FLAC_STREAM_DECODER_H, 1, [Define if you have FLAC])
3501     else
3502       dnl  The given flac wasn't built
3503       AC_MSG_RESULT(no)
3504       AC_MSG_ERROR([cannot find ${real_flac_tree}/src/libFLAC/.libs/libFLAC.a, make sure you compiled flac in ${with_flac_tree}])
3505     fi
3506   else
3507     AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
3508       VLC_ADD_LIBS([flac],[-lFLAC -logg])
3509      ],[])
3510   fi
3511 fi
3512
3513 dnl
3514 dnl  Libmpeg2 plugin
3515 dnl
3516 AC_ARG_ENABLE(libmpeg2,
3517   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
3518 if test "${enable_libmpeg2}" != "no"
3519 then
3520   AC_ARG_WITH(libmpeg2-tree,
3521   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
3522   if test -n "${with_libmpeg2_tree}"
3523   then
3524     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
3525     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
3526     if test -z "${real_libmpeg2_tree}"
3527     then
3528       dnl  The given directory can't be found
3529       AC_MSG_RESULT(no)
3530       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
3531     fi
3532     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
3533     then
3534       dnl  Use a custom libmpeg2
3535       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
3536       VLC_ADD_BUILTINS([libmpeg2])
3537       VLC_ADD_LIBS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
3538       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
3539       eval "`cd ${real_libmpeg2_tree}/include && ln -sf . mpeg2dec 2>/dev/null`"
3540     else
3541       dnl  The given libmpeg2 wasn't built
3542       AC_MSG_RESULT(no)
3543       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
3544     fi
3545   else
3546     AC_CHECK_HEADERS(mpeg2dec/mpeg2.h, [
3547       AC_MSG_CHECKING(for libmpeg2 version >= 0.3.2)
3548       AC_EGREP_CPP(yes,
3549         [#include <mpeg2dec/mpeg2.h>
3550          #ifdef MPEG2_RELEASE
3551          #if MPEG2_RELEASE >= MPEG2_VERSION(0,3,2)
3552          yes
3553          #endif
3554          #endif],
3555         [AC_MSG_RESULT([yes])
3556           VLC_ADD_PLUGINS([libmpeg2])
3557           VLC_ADD_LIBS([libmpeg2],[-lmpeg2])],
3558         [AC_MSG_RESULT([no])
3559           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.])])],
3560
3561       [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.])]
3562     )
3563   fi
3564 fi
3565
3566 dnl
3567 dnl  Vorbis plugin
3568 dnl
3569 AC_ARG_ENABLE(vorbis,
3570   [  --enable-vorbis         Vorbis decoder support (default enabled)])
3571 if test "${enable_vorbis}" != "no"
3572 then
3573   AC_ARG_WITH(vorbis-tree,
3574   [    --with-vorbis-tree=PATH vorbis tree for static linking])
3575   if test -n "${with_vorbis_tree}"
3576   then
3577     AC_MSG_CHECKING(for libvorbis.a in ${with_vorbis_tree})
3578     real_vorbis_tree="`cd ${with_vorbis_tree} 2>/dev/null && pwd`"
3579     if test -z "${real_vorbis_tree}"
3580     then
3581       dnl  The given directory can't be found
3582       AC_MSG_RESULT(no)
3583       AC_MSG_ERROR([cannot cd to ${with_vorbis_tree}])
3584     fi
3585     if test -f "${real_vorbis_tree}/lib/.libs/libvorbis.a"
3586     then
3587       dnl  Use a custom vorbis 
3588       AC_MSG_RESULT(${real_vorbis_tree}/lib/.libs/libvorbis.a)
3589       VLC_ADD_PLUGINS([vorbis])
3590       VLC_ADD_LIBS([vorbis],[${real_vorbis_tree}/lib/.libs/libvorbis.a ${real_vorbis_tree}/lib/.libs/libvorbisenc.a])
3591       VLC_ADD_CFLAGS([vorbis],[-I${real_vorbis_tree}/include])
3592     else
3593       dnl  The given vorbis wasn't built
3594       AC_MSG_RESULT(no)
3595       AC_MSG_ERROR([cannot find ${real_vorbis_tree}/lib/.libs/libvorbis.a, make sure you compiled vorbis in ${with_vorbis_tree}])
3596     fi
3597   else
3598     AC_CHECK_HEADERS(vorbis/codec.h, [
3599       VLC_ADD_PLUGINS([vorbis])
3600       VLC_ADD_LIBS([vorbis],[-lvorbis -logg -lm]) ],[])
3601
3602     AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
3603       VLC_ADD_LIBS([vorbis],[-lvorbisenc -lm]) ],[])
3604   fi
3605 fi
3606
3607 dnl
3608 dnl  Tremor plugin
3609 dnl
3610 AC_ARG_ENABLE(tremor,
3611   [  --enable-tremor         Tremor decoder support (default disabled)])
3612 if test "${enable_tremor}" = "yes"
3613 then
3614   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3615     VLC_ADD_PLUGINS([tremor])
3616     VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
3617    ],[])
3618 fi
3619
3620 dnl
3621 dnl  Speex plugin
3622 dnl
3623 AC_ARG_ENABLE(speex,
3624   [  --enable-speex          Speex decoder support (default enabled)])
3625 if test "${enable_speex}" != "no"
3626 then
3627   AC_ARG_WITH(speex-tree,
3628   [    --with-speex-tree=PATH speex tree for static linking])
3629   if test -n "${with_speex_tree}"
3630   then
3631     AC_MSG_CHECKING(for libspeex.a in ${with_speex_tree})
3632     real_speex_tree="`cd ${with_speex_tree} 2>/dev/null && pwd`"
3633     if test -z "${real_speex_tree}"
3634     then
3635       dnl  The given directory can't be found
3636       AC_MSG_RESULT(no)
3637       AC_MSG_ERROR([cannot cd to ${with_speex_tree}])
3638     fi
3639     if test -f "${real_speex_tree}/libspeex/.libs/libspeex.a"
3640     then
3641       dnl  Use a custom speex
3642       AC_MSG_RESULT(${real_speex_tree}/libspeex/.libs/libspeex.a)
3643       VLC_ADD_PLUGINS([speex])
3644       VLC_ADD_LIBS([speex],[${real_speex_tree}/libspeex/.libs/libspeex.a])
3645       VLC_ADD_CFLAGS([speex],[-I${real_speex_tree}/include])
3646     else
3647       dnl  The given speex wasn't built
3648       AC_MSG_RESULT(no)
3649       AC_MSG_ERROR([cannot find ${real_speex_tree}/libspeex/.libs/libspeex.a, make sure you compiled speex in ${with_speex_tree}])
3650     fi
3651   else
3652     AC_CHECK_HEADERS(speex/speex.h, [
3653       LDFLAGS="${LDFLAGS_save} ${LIBS_speex}"
3654       AC_CHECK_LIB(speex, speex_decode_int, [
3655         VLC_ADD_PLUGINS([speex])
3656         VLC_ADD_LIBS([speex],[-lspeex]) ],
3657         [ AC_MSG_RESULT([no])
3658           AC_MSG_WARN([Your libspeex is too old, please get the development
3659                        version.]) ],[])
3660       LDFLAGS="${LDFLAGS_save}"
3661       ],[])
3662   fi
3663 fi
3664
3665 dnl
3666 dnl  tarkin decoder plugin
3667 dnl
3668 AC_ARG_ENABLE(tarkin,
3669 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3670 if test "${enable_tarkin}" = "yes"
3671 then
3672   AC_ARG_WITH(tarkin-tree,
3673   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3674   if test -n "${with_tarkin_tree}"
3675   then
3676     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3677     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3678     if test -f "${real_tarkin_tree}/tarkin.o"
3679     then
3680       VLC_ADD_BUILTINS([tarkin])
3681       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3682       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])
3683       AC_MSG_RESULT(yes)
3684     else
3685       dnl  The given tarkin tree wasn't built
3686       AC_MSG_RESULT(no)
3687       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3688                     make sure you compiled tarkin in ${with_tarkin_tree}])
3689     fi
3690   fi
3691 fi
3692
3693 dnl
3694 dnl  theora decoder plugin
3695 dnl
3696 AC_ARG_ENABLE(theora,
3697 [  --enable-theora         experimental theora codec (default disabled)])
3698 if test "${enable_theora}" = "yes"
3699 then
3700   AC_CHECK_HEADERS(theora/theora.h, [
3701     AC_CHECK_LIB(theora, theora_granule_time, [
3702       VLC_ADD_PLUGINS([theora])
3703       theora_libs="-ltheora -logg"
3704       VLC_ADD_LIBS([theora],[${theora_libs}]) ],[
3705       AC_MSG_ERROR([libtheora doesn't appear to be installed on your system.
3706 You also need to check that you have a libogg posterior to the 1.0 release.])],
3707       [-logg])
3708   ])
3709 fi
3710
3711 dnl
3712 dnl  dirac decoder plugin
3713 dnl
3714 AC_ARG_ENABLE(dirac,
3715 [  --enable-dirac          experimental dirac codec (default disabled)])
3716 if test "${enable_dirac}" = "yes"; then
3717   PKG_CHECK_MODULES(DIRAC,[dirac >= 0.8.0], [