Move remaining replacement to static import library
[vlc.git] / configure.ac
1 dnl Autoconf settings for vlc
2
3 AC_COPYRIGHT([Copyright 2002-2009 the VideoLAN team])
4
5 AC_INIT(vlc, 1.0.0-pre1)
6 VERSION_MAJOR="1"
7 VERSION_MINOR="0"
8 VERSION_REVISION="0"
9 VERSION_EXTRA="-pre1"
10 PKGDIR="vlc"
11 AC_SUBST(PKGDIR)
12
13 CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
14 CODENAME="Goldeneye"
15 COPYRIGHT_YEARS="1996-2009"
16
17 AC_PREREQ(2.59c)
18 AC_CONFIG_SRCDIR(src/libvlc.c)
19 AC_CONFIG_AUX_DIR(autotools)
20 AC_CONFIG_MACRO_DIR(m4)
21 AC_CONFIG_LIBOBJ_DIR(compat)
22 AC_CANONICAL_BUILD
23 AC_CANONICAL_HOST
24
25 AM_INIT_AUTOMAKE(tar-ustar)
26 AM_CONFIG_HEADER(config.h)
27
28 dnl Too many people are not aware of maintainer mode:
29 dnl If you want to use it, you definitely know what you are doing, so
30 dnl you can specify "--disable-maintainer-mode". But if you want the default
31 dnl automake behavior, you've likely never heard of maintainer mode, so we
32 dnl can't expect you to enable it manually.
33
34 AS_IF([test "x${enable_maintainer_mode}" != "xno"],
35     [enable_maintainer_mode="yes"])
36 AM_MAINTAINER_MODE
37
38 dnl
39 dnl Directories
40 dnl
41 dnl vlcincludedir="\${includedir}/\${PKGDIR}"
42 dnl AC_SUBST(vlcincludedir)
43 vlcdatadir="\${datadir}/\${PKGDIR}"
44 AC_SUBST(vlcdatadir)
45 vlclibdir="\${libdir}/\${PKGDIR}"
46 AC_SUBST(vlclibdir)
47
48 dnl
49 dnl  Deprecated options
50 dnl  to notify packagers that stuff has changed
51 dnl
52 AC_ARG_ENABLE(python-bindings,
53   [  --enable-python-bindings Always fails for historical reasons)],,
54   [enable_python_bindings="no"])
55 AS_IF([test "${enable_python_bindings}" != "no"], [
56   AC_MSG_ERROR([Python bindings are now built from a separate source package])
57 ])
58
59 AC_ARG_ENABLE(java-bindings,
60   [  --enable-java-bindings  Always fails for historical reasons],,
61   [enable_java_bindings="no"])
62 AS_IF([test "${enable_java_bindings}" != "no"], [
63   AC_MSG_ERROR([Java bindings are now built from a separate source package])
64 ])
65
66 dnl
67 dnl  Save *FLAGS
68 dnl
69 VLC_SAVE_FLAGS
70
71 dnl
72 dnl Check for tools
73 dnl
74 AC_PROG_CC_C99
75 AC_USE_SYSTEM_EXTENSIONS
76 AC_DEFINE([_FORTIFY_SOURCE], 2, [Define to '2' to get glibc warnings.])
77
78 AM_PROG_CC_C_O
79 AC_PROG_CXX
80 AC_PROG_CPP
81 AC_PROG_OBJC
82 _AM_DEPENDENCIES([OBJC])
83 AC_PROG_EGREP
84 AC_PROG_MAKE_SET
85 AC_PROG_INSTALL
86 AM_PROG_AS
87
88 dnl Find the right ranlib, even when cross-compiling
89 AC_CHECK_TOOL(RANLIB, ranlib, :)
90 AC_CHECK_TOOL(STRIP, strip, :)
91 AC_CHECK_TOOL(AR, ar, :)
92 AC_CHECK_TOOL(LD, ld, :)
93 AC_CHECK_TOOL(DLLTOOL, dlltool, :)
94
95 dnl Check for compiler properties
96 AC_C_CONST
97 AC_C_INLINE
98 AC_C_RESTRICT
99
100 dnl Allow binary package maintainer to pass a custom string to avoid
101 dnl cache problem
102 AC_ARG_WITH(binary-version,
103         AS_HELP_STRING([--with-binary-version=STRING],
104              [To avoid plugins cache problem between binary version]),[],[])
105 AS_IF([test -n "${with_binary_version}"],[
106       AC_DEFINE_UNQUOTED([DISTRO_VERSION],["${with_binary_version}"],
107                          [Binary specific version])
108       ])
109
110
111 dnl
112 dnl  Check for the contrib directory
113 dnl
114 AC_ARG_WITH(contrib,
115     [  --without-contrib       do not use the libraries in CONTRIB_DIR],[],[])
116   AS_IF([test "${with_contrib}" != "no"],[
117     AC_ARG_VAR([CONTRIB_DIR], [directory containing pre-built contrib, overriding extras/contrib])
118     if test -z "$CONTRIB_DIR"
119     then
120       topdir="`dirname $0`"
121       if test "`echo \"$topdir\" | cut -c 1`" != "/"; then
122          topdir="`pwd`/$topdir"
123       fi
124       CONTRIB_DIR=${topdir}/extras/contrib
125     fi
126     AC_MSG_CHECKING([for libs in ${CONTRIB_DIR}])
127   AS_IF([test -d ${CONTRIB_DIR}/lib],[
128    AS_IF([test "`grep HOST ${CONTRIB_DIR}/config.mak 2>/dev/null|awk '{print $3}'`" != "`$CC -dumpmachine`"],[
129       if test "${with_contrib}" = "yes"; then
130         AC_MSG_RESULT([no])
131         AC_MSG_ERROR([ not using the libs in extras/contrib as it is not the same host])
132       else
133         AC_MSG_RESULT([no])
134         AC_MSG_WARN([ not using the libs in extras/contrib as it is not the same host])
135       fi
136      ],[
137     AC_MSG_RESULT([yes])
138     export PATH=${CONTRIB_DIR}/bin:$PATH
139     CPPFLAGS="${CPPFLAGS} -I${CONTRIB_DIR}/include"
140     CPPFLAGS_save="${CPPFLAGS_save} -I${CONTRIB_DIR}/include"
141     CFLAGS="${CFLAGS} -I${CONTRIB_DIR}/include"
142     CFLAGS_save="${CFLAGS_save} -I${CONTRIB_DIR}/include"
143     CXXFLAGS="${CXXFLAGS} -I${CONTRIB_DIR}/include"
144     CXXFLAGS_save="${CXXFLAGS_save} -I${CONTRIB_DIR}/include"
145     OBJCFLAGS="${OBJCFLAGS} -I${CONTRIB_DIR}/include"
146     OBJCFLAGS_save="${OBJCFLAGS_save} -I${CONTRIB_DIR}/include"
147     if test $build = $host -o "$PKG_CONFIG_LIBDIR"; then
148         export PKG_CONFIG_PATH=${CONTRIB_DIR}/lib/pkgconfig:$PKG_CONFIG_PATH
149     else
150         export PKG_CONFIG_LIBDIR=${CONTRIB_DIR}/lib/pkgconfig
151     fi
152     LDFLAGS="${LDFLAGS} -L${CONTRIB_DIR}/lib"
153     LDFLAGS_save="${LDFLAGS_save} -L${CONTRIB_DIR}/lib"
154
155     if test -z $with_mozilla_sdk_path; then
156        with_mozilla_sdk_path=${CONTRIB_DIR}/gecko-sdk
157     fi
158     if test -z $with_cyberlink_tree; then
159        with_cyberlink_tree=${CONTRIB_DIR}/src/clinkcc
160     fi
161
162     if test ".`uname -s`" = ".Darwin"; then
163       export LD_LIBRARY_PATH=${CONTRIB_DIR}/lib:$LD_LIBRARY_PATH
164       export DYLD_LIBRARY_PATH=${CONTRIB_DIR}/lib:$DYLD_LIBRARY_PATH
165     elif test ".`uname -s`" = ".BeOS"; then
166       export LIBRARY_PATH=${CONTRIB_DIR}/lib:$LIBRARY_PATH
167       export BELIBRARIES=${CONTRIB_DIR}/lib:$BELIBRARIES
168     fi
169     ])
170   ],[
171     AC_MSG_RESULT([no])
172   ])
173 ])
174 dnl
175 dnl  Set default values
176 dnl
177 LDFLAGS_vlc="${LDFLAGS}"
178
179 dnl
180 dnl  Check the operating system
181 dnl
182 case "${host_os}" in
183   "")
184     SYS=unknown
185     ;;
186   linux*)
187     SYS=linux
188     ;;
189   bsdi*)
190     SYS=bsdi
191     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
192     VLC_ADD_LIBS([dvd dvdcss vcd cdda vcdx cddax],[-ldvd])
193     ;;
194   *bsd*)
195     SYS="${host_os}"
196     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
197     case "${host_os}" in
198       freebsd*)
199         CPPFLAGS_save="${CPPFLAGS_save} -I/usr/local/include"
200         CPPFLAGS="${CPPFLAGS_save}"
201         LDFLAGS_save="${LDFLAGS_save} -L/usr/local/lib"
202         LDFLAGS="${LDFLAGS_save}"
203         ;;
204     esac
205     ;;
206   darwin*)
207     SYS=darwin
208     CFLAGS_save="${CFLAGS_save} -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
209     CXXFLAGS_save="${CXXFLAGS_save} -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
210     OBJCFLAGS_save="${OBJCFLAGS_save} -D_INTL_REDIRECT_MACROS -std=gnu99"; OBJCFLAGS="${OBJCFLAGS_save}"
211     LDFLAGS_save="${LDFLAGS_save} -Wl,-headerpad_max_install_names"; LDFLAGS="${LDFLAGS_save}"
212     VLC_ADD_LDFLAGS([mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
213     VLC_ADD_LDFLAGS([mkv mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
214     VLC_ADD_LDFLAGS([vlc],[-Wl,-undefined,dynamic_lookup])
215     VLC_ADD_LDFLAGS([libvlc_control],[-Wl,dynamic_lookup])
216     VLC_ADD_LDFLAGS([avcodec avformat swscale imgresample postproc i420_rgb_mmx x264],[-Wl,-read_only_relocs,suppress])
217     VLC_ADD_CFLAGS([motion],[-fconstant-cfstrings])
218     VLC_ADD_LDFLAGS([libvlc],[-Wl,-framework,CoreFoundation])
219     VLC_ADD_LDFLAGS([motion],[-Wl,-framework,IOKit,-framework,CoreFoundation])
220     AC_ARG_ENABLE(macosx-defaults,
221       AS_HELP_STRING([--enable-macosx-defaults],[Build the default configuration on Mac OS X (default enabled)]))
222     if test "x${enable_macosx_defaults}" != "xno"
223     then
224         echo ""
225         echo "Building with Mac OS X defaults:"
226         with_macosx_version_min="10.5"
227         echo "  Assuming --with-macosx-version-min=10.5"
228         with_macosx_sdk="/Developer/SDKs/MacOSX${with_macosx_version_min}.sdk"
229         echo "  Assuming --with-macosx-sdk=/Developer/SDKs/MacOSX${with_macosx_version_min}.sdk"
230         build_dir=`pwd`
231         echo "  Assuming --prefix=${build_dir}/vlc_install_dir"
232         ac_default_prefix="${build_dir}/vlc_install_dir"
233         enable_macosx="yes"
234         echo "  Assuming --enable-macosx"
235         enable_faad="yes"
236         echo "  Assuming --enable-faad"
237         enable_flac="yes"
238         echo "  Assuming --enable-flac"
239         enable_theora="yes"
240         echo "  Assuming --enable-theora"
241         enable_shout="yes"
242         echo "  Assuming --enable-shout"
243         enable_cddax="yes"
244         echo "  Assuming --enable-cddax"
245         enable_vcdx="yes"
246         echo "  Assuming --enable-vcdx"
247         enable_caca="yes"
248         echo "  Assuming --enable-caca"
249         enable_goom="yes"
250         echo "  Assuming --enable-goom"
251         enable_ncurses="yes"
252         echo "  Assuming --enable-ncurses"
253         enable_twolame="yes"
254         echo "  Assuming --enable-twolame"
255         enable_realrtsp="yes"
256         echo "  Assuming --enable-realrtsp"
257         enable_update_check="yes"
258         echo "  Assuming --enable-update-check"
259         enable_libass="yes"
260         echo "  Assuming --enable-libass"
261         enable_asademux="yes"
262         echo "  Assuming --enable-asademux"
263
264         enable_skins2="no"
265         echo "  Assuming --disable-skins2"
266         enable_x11="no"
267         echo "  Assuming --disable-x11"
268         enable_glx="no"
269         echo "  Assuming --disable-glx"
270         enable_xvideo="no"
271         echo "  Assuming --disable-xvideo"
272     fi
273     if test ".`uname -p`" = ".i386"; then
274         dnl Due to a ld(64) bug in 10.5 we cannot use our mmx code
275         dnl without hacking it a lot, we disable mmx and sse.
276         dnl (that bug is about ld being unable to handle
277         dnl text relocation)
278         save_cflags="$CFLAGS"
279         CFLAGS="$CFLAGS -dynamiclib -single_module -read_only_relocs suppress"
280         AC_TRY_LINK(
281             [int a;], [asm("movq _a,%mm0\n");],
282             ac_ld_does_not_support_text_reloc=no,
283             ac_ld_does_not_support_text_reloc=yes)
284         CFLAGS="$save_cflags"
285
286         if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
287             enable_mmx="no"
288             echo "  Assuming --disable-mmx (due to a bug in ld)"
289             enable_sse="no"
290             echo "  Assuming --disable-sse (due to a bug in ld)"
291         fi
292     fi
293     dnl
294     dnl  Check for Mac OS X SDK settings
295     dnl
296     AC_ARG_WITH(macosx-sdk,
297        [  --with-macosx-sdk=DIR   compile using the SDK in DIR])
298     if test "${with_macosx_sdk}" != "" ; then
299         CPP="${CPP} -isysroot ${with_macosx_sdk}"
300         CC="${CC} -isysroot ${with_macosx_sdk}"
301         CXX="${CXX} -isysroot ${with_macosx_sdk}"
302         OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
303         LD="${LD} -syslibroot ${with_macosx_sdk}"
304     fi
305     AC_ARG_WITH(macosx-version-min,
306        [  --with-macosx-version-min=VERSION  compile for MacOSX VERSION and above])
307     if test "${with_macosx_version_min}" != "" ; then
308         CPP="${CPP} -mmacosx-version-min=${with_macosx_version_min}"
309         CC="${CC} -mmacosx-version-min=${with_macosx_version_min}"
310         CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
311         OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
312         LD="${LD} -macosx_version_min=${with_macosx_version_min}"
313         CFLAGS_save="${CFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CFLAGS="${CFLAGS_save}"
314         CXXFLAGS_save="${CXXFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CXXFLAGS="${CXXFLAGS_save}"
315         OBJCFLAGS_save="${OBJCFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; OBJCFLAGS="${OBJCFLAGS_save}"
316         MACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}
317         export MACOSX_DEPLOYMENT_TARGET
318     fi
319     ;;
320   *mingw32* | *cygwin* | *wince* | *mingwce* | *pe*)
321     AC_CHECK_TOOL(WINDRES, windres, :)
322     AC_CHECK_TOOL(OBJCOPY, objcopy, :)
323
324     case "${host_os}" in
325       *wince* | *mingwce* | *mingw32ce* | *pe*)
326         SYS=mingwce
327         dnl Sadly CeGCC still needs non-wince macros
328         AC_DEFINE([_WIN32_WINNT], 0x0501, [Define to '0x0500' for Windows 2000 APIs.])
329         ;;
330       *mingw32*)
331         SYS=mingw32
332         AC_DEFINE([_WIN32_WINNT], 0x0500, [Define to '0x0500' for Windows 2000 APIs.])
333         ;;
334       *cygwin*)
335         dnl Check if we are using the mno-cygwin mode in which case we are
336         dnl actually dealing with a mingw32 compiler.
337         AC_DEFINE([_WIN32_WINNT], 0x0500, [Define to '0x0500' for Windows 2000 APIs.])
338         AC_EGREP_CPP(yes,
339             [#ifdef WIN32
340              yes
341              #endif],
342             SYS=mingw32, SYS=cygwin)
343         ;;
344     esac
345
346     if test "${SYS}" = "mingw32"; then
347         # add ws2_32 for closesocket, select, recv
348         VLC_ADD_LIBS([libvlc],[-lws2_32 -lnetapi32 -lwinmm])
349         VLC_ADD_LDFLAGS([vlc],[-mwindows])
350         VLC_ADD_LIBS([activex mozilla],[-lgdi32])
351         VLC_ADD_LIBS([cdda vcdx cddax sdl_image],[-lwinmm])
352         VLC_ADD_LIBS([access_http access_mms access_udp access_tcp access_ftp access_rtmp access_output_udp access_output_shout access_output_rtmp sap slp http stream_out_standard stream_out_rtp stream_out_raop vod_rtsp access_realrtsp rtp telnet rc netsync gnutls growl_udp flac ts audioscrobbler lua remoteosd],[-lws2_32])
353     fi
354     if test "${SYS}" = "mingwce"; then
355         # add ws2 for closesocket, select, recv
356         VLC_ADD_LIBS([libvlc access_http access_mms access_udp access_tcp access_ftp access_rtmp access_output_udp sap http netsync audioscrobbler growl rtp stream_out_rtp remoteosd],[-lws2])
357         VLC_ADD_LIBS([libvlc],[-lmmtimer])
358    fi
359     ;;
360   *nto*)
361     SYS=nto
362     VLC_ADD_LIBS([x11 xvideo],[-lsocket])
363     ;;
364   solaris*)
365     SYS=solaris
366     # _POSIX_PTHREAD_SEMANTICS is needed to get the POSIX ctime_r
367     # Perhaps it is useful other places as well?
368     CFLAGS_save="${CFLAGS_save} -D_POSIX_PTHREAD_SEMANTICS"; CFLAGS="${CFLAGS_save}"
369     ;;
370   hpux*)
371     SYS=hpux
372     ;;
373   beos)
374     SYS=beos
375     CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}"
376     CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}"
377     VLC_ADD_CXXFLAGS([beos],[])
378     VLC_ADD_LIBS([vlc libvlc logger],[-lbe])
379     VLC_ADD_LIBS([beos],[-lbe -lmedia -ltranslation -ltracker -lgame])
380     VLC_ADD_LIBS([dvdnav dvdread],[-ldl])
381     VLC_ADD_LIBS([access_file],[-lpoll])
382     LDFLAGS_save="${LDFLAGS_save} -lintl"; LDFLAGS="${LDFLAGS_save}"
383     dnl Check for BONE
384     if test -f /boot/beos/system/lib/libbind.so; then
385         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlc growl_udp],[-lbind -lsocket])
386     else
387         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlc growl_udp],[-lnet])
388     fi
389
390     dnl Ugly check for Zeta
391     if test -f /boot/beos/system/lib/libzeta.so; then
392         VLC_ADD_LIBS([beos],[-lzeta])
393     fi
394     ;;
395   *)
396     SYS="${host_os}"
397     ;;
398 esac
399 AM_CONDITIONAL(HAVE_BEOS, test "${SYS}" = "beos")
400 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
401 AM_CONDITIONAL(HAVE_LINUX, [test "${SYS}" = "linux"])
402 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
403 AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
404
405 dnl
406 dnl Sadly autoconf doesn't think about testing foo.exe when ask to test
407 dnl for program foo on win32
408
409 case "${build_os}" in
410     cygwin|msys)
411         ac_executable_extensions=".exe"
412     ;;
413     *)
414     ;;
415 esac
416
417 dnl
418 dnl  Libtool
419 dnl  It's very bad, but our former custom system was worst
420 dnl  -- Courmisch
421 dnl
422
423 dnl override platform specific check for dependent libraries
424 dnl otherwise libtool linking of shared libraries will
425 dnl fail on anything other than pass_all.
426 AC_CACHE_VAL(lt_cv_deplibs_check_method,
427     [lt_cv_deplibs_check_method=pass_all])
428
429 AC_DISABLE_STATIC
430 dnl AC_DISABLE_FAST_INSTALL
431 AC_LIBTOOL_DLOPEN
432 AC_LIBTOOL_WIN32_DLL
433 m4_undefine([AC_PROG_F77])
434 m4_defun([AC_PROG_F77],[])
435 AC_PROG_LIBTOOL
436
437 m4_undefine([AC_DEPLIBS_CHECK_METHOD])
438 m4_defun([AC_DEPLIBS_CHECK_METHOD],[])
439
440 lt_cv_deplibs_check_method=pass_all
441
442
443 dnl
444 dnl Gettext stuff
445 dnl
446 AM_GNU_GETTEXT_VERSION([0.17])
447 AM_GNU_GETTEXT([external])
448 VLC_ADD_LIBS([libvlc vlc], [${LTLIBINTL}])
449
450 dnl
451 dnl Iconv stuff
452 dnl
453 AM_ICONV
454 VLC_ADD_CFLAGS([libvlc],[${INCICONV}])
455 VLC_ADD_LIBS([libvlc],[${LTLIBICONV}])
456
457 dnl Check for broken versions of mingw-runtime compatability library
458 if test "${SYS}" = "mingw32"
459 then
460     AC_MSG_CHECKING(for broken mingw-runtime)
461     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
462 #include <_mingw.h>
463 #if (__MINGW32_MAJOR_VERSION == 3) && (__MINGW32_MINOR_VERSION < 14)
464 # error Attempting to use mingw-runtime with broken vsnprintf support
465 #endif
466         ]])],
467         [AC_MSG_RESULT([Ok])],
468         [AC_MSG_ERROR([Broken mingw-runtime, need > 3.13])],
469 ])
470     dnl force use of mingw provided c99 *printf over msvcrt
471     CPPFLAGS="${CPPFLAGS} -D__USE_MINGW_ANSI_STDIO=1"
472     CPPFLAGS_save="${CPPFLAGS_save} -D__USE_MINGW_ANSI_STDIO=1"
473 fi
474
475 dnl Check for the need to include the mingwex lib for mingw32
476 if test "${SYS}" = "mingw32"
477 then
478     AC_CHECK_LIB(mingwex,opendir,
479         AC_CHECK_LIB(mingw32,opendir,,
480             [VLC_ADD_LIBS([libvlc gtk],[-lmingwex])])
481     )
482 fi
483
484 dnl Check for fnative-struct or mms-bitfields support for mingw32
485 if test "${SYS}" = "mingw32"
486 then
487     AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
488         [ac_cv_c_mms_bitfields],
489         [CFLAGS="${CFLAGS_save} -mms-bitfields"
490          AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
491     if test "${ac_cv_c_mms_bitfields}" != "no"; then
492         CFLAGS_save="${CFLAGS_save} -mms-bitfields";
493         CXXFLAGS_save="${CXXFLAGS_save} -mms-bitfields";
494     else
495         AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
496             [ac_cv_c_fnative_struct],
497             [CFLAGS="${CFLAGS_save} -fnative-struct"
498              AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
499         if test "${ac_cv_c_fnative_struct}" != "no"; then
500             CFLAGS_save="${CFLAGS_save} -fnative-struct";
501             CXXFLAGS_save="${CXXFLAGS_save} -fnative-struct";
502         fi
503     fi
504
505     CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
506 fi
507
508 dnl Check for fvtable-thunks support for mingw32
509 if test "${SYS}" = "mingw32" -a "${CXX}" != ""
510 then
511 AC_LANG_PUSH(C++)
512     AC_CACHE_CHECK([if \$CXX accepts -fvtable-thunks],
513         [ac_cv_cxx_fvtable_thunks],
514         [CXXFLAGS="${CXXFLAGS_save} -Wall -Werror -fvtable-thunks"
515          AC_TRY_COMPILE([],,ac_cv_cxx_fvtable_thunks=yes,
516                         ac_cv_cxx_fvtable_thunks=no)])
517     if test "${ac_cv_cxx_fvtable_thunks}" = "yes"; then
518         CXXFLAGS_mingw32_special="-fvtable-thunks"
519     fi
520
521     CXXFLAGS_save="${CXXFLAGS_save} ${CXXFLAGS_mingw32_special}"; CXXFLAGS="${CXXFLAGS_save}"
522 AC_LANG_POP(C++)
523 fi
524
525 dnl
526 dnl Buggy glibc prevention. Purposedly not cached.
527 dnl Ubuntu alone has 20 bug numbers for this...
528 dnl
529 AC_MSG_CHECKING(for buggy GNU/libc versions)
530 AC_PREPROC_IFELSE([
531 #include <limits.h>
532 #if defined (__GLIBC__) && (__GLIBC__ == 2) \
533   && (__GLIBC_MINOR__ >= 5) && (__GLIBC_MINOR__ <= 7)
534 # error GNU/libc with dcgettext killer bug!
535 #endif
536 ], [
537   AC_MSG_RESULT([not present])
538 ], [
539   AC_MSG_RESULT([found])
540   AC_MSG_ERROR([Buggy GNU/libc (version 2.5 - 2.7) present. VLC would crash; there is no viable work-around for this. Check with your distribution vendor on how to update the glibc run-time.])
541 ])
542
543 dnl Plugin compilation stuff
544
545 VLC_LIBRARY_SUFFIX
546
547 dnl The -DSYS_FOO flag
548 CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
549
550 dnl Check for system libs needed
551 need_libc=false
552
553 dnl Check for usual libc functions
554 AC_CHECK_FUNCS([gettimeofday isatty swab sigrelse getpwuid_r memalign posix_memalign if_nametoindex getenv putenv setenv ctime_r lrintf daemon fork lstat posix_fadvise posix_madvise uselocale])
555 AC_FUNC_ALLOCA
556 AC_CHECK_FUNCS(fcntl)
557 AC_REPLACE_FUNCS([asprintf atof atoll gmtime_r lldiv localtime_r rewind strcasecmp strcasestr strdup strlcpy strncasecmp strndup strnlen strsep strtof strtoll vasprintf])
558 AC_CHECK_FUNCS([stricmp strnicmp])
559
560 dnl Check for Linux system calls
561 AC_CHECK_FUNCS([vmsplice])
562
563 AH_BOTTOM([#include <vlc_fixups.h>])
564
565 AC_CHECK_FUNCS(mmap, [VLC_ADD_PLUGIN([access_mmap])])
566
567 dnl Check for setlocal and langinfo
568 AC_CHECK_FUNCS(setlocale)
569 AC_CHECK_HEADERS(langinfo.h)
570 AC_CHECK_FUNCS(nl_langinfo)
571
572 AC_CACHE_CHECK([for nl_langinfo and CODESET], ac_cv_langinfo_codeset,
573   [AC_TRY_LINK([#include <langinfo.h>],
574     [char* cs = nl_langinfo(CODESET);],
575     ac_cv_langinfo_codeset=yes,
576     ac_cv_langinfo_codeset=no)
577   ])
578 if test ${ac_cv_langinfo_codeset} = yes; then
579   AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
580     [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
581 fi
582
583 AC_CHECK_FUNCS(connect,,[
584   AC_CHECK_LIB(socket,connect,[
585     VLC_ADD_LIBS([libvlc cdda cddax],-lsocket)
586     LIBS_socket="-lsocket"
587   ])
588 ])
589
590 AC_CHECK_FUNCS(send,,[
591   AC_CHECK_LIB(socket,send,[
592     VLC_ADD_LIBS([access_http access_mms access_udp access_tcp access_ftp access_rtmp sap access_output_udp access_output_rtmp stream_out_standard growl_udp remoteosd],[-lsocket])
593   ])
594 ])
595
596
597 dnl Check for socklen_t
598 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
599 AC_CACHE_CHECK([for socklen_t in sys/socket.h],
600 ac_cv_type_socklen_t,
601 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
602 [#include <sys/types.h>
603 #ifdef WIN32
604 # include <winsock2.h>
605 # include <ws2tcpip.h>
606 #else
607 # include <sys/socket.h>
608 #endif]], [[socklen_t len; len = 0;]])],
609 ac_cv_type_socklen_t=yes,
610 ac_cv_type_socklen_t=no)])
611 AS_IF([test "$ac_cv_type_socklen_t" = no],
612  [AC_DEFINE(socklen_t, int)])
613
614 dnl Check for struct sockaddr_storage
615 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.])
616 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.])
617 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
618   [AC_TRY_COMPILE(
619     [#include <sys/types.h>
620      #if defined( UNDER_CE )
621      # include <winsock2.h>
622      #elif defined( WIN32 )
623      # include <winsock2.h>
624      #else
625      # include <sys/socket.h>
626      #endif], [struct sockaddr_storage addr;],
627      ac_cv_struct_sockaddr_storage=yes,
628      ac_cv_struct_sockaddr_storage=no)])
629 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
630   AC_DEFINE(sockaddr_storage, sockaddr)
631   AC_DEFINE(ss_family, sa_family)
632 ])
633
634 dnl getaddrinfo, getnameinfo and gai_strerror check
635 dnl  -lnsl and -lsocket are needed on Solaris;
636 dnl  we purposedly make the test fail on Windows
637 LIBS_save="${LIBS}"
638 AH_TEMPLATE(HAVE_GETADDRINFO, [Define to 1 if you have the `getaddrinfo' function.])
639 AC_SEARCH_LIBS([getaddrinfo], [nsl], [AC_DEFINE(HAVE_GETADDRINFO)],, [${LIBS_socket}])
640
641 dnl NOTE: we assume getaddrinfo will be present if getnameinfo or gai_strerro
642 dnl are
643 LIBS="${LIBS_gai}"
644 AC_CHECK_FUNCS([getnameinfo gai_strerror])
645 LIBS="${LIBS_save}"
646
647 AH_TEMPLATE(HAVE_ADDRINFO, [Define to 1 if <netdb.h> defines `struct addrinfo'.])
648 AC_CHECK_TYPES([struct addrinfo],[AC_DEFINE(HAVE_ADDRINFO)],,
649 [#include <sys/types.h>
650 #if defined( WIN32 ) || defined( UNDER_CE )
651 # if defined(UNDER_CE) && defined(sockaddr_storage)
652 #  undef sockaddr_storage
653 # endif
654 # include <winsock2.h>
655 # include <ws2tcpip.h>
656 #else
657 # include <netdb.h>
658 #endif])
659
660 dnl Check for va_copy
661 AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
662   AC_TRY_LINK(
663     [#include <stdarg.h>],
664     [va_list ap1, ap2; va_copy(ap1,ap2);],
665     [ac_cv_c_va_copy="yes"],
666     [ac_cv_c_va_copy="no"]))
667 if test "${ac_cv_c_va_copy}" = "yes"; then
668   AC_DEFINE(HAVE_VA_COPY, 1, [Define if <stdarg.h> defines va_copy.])
669 fi
670 AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
671   AC_TRY_LINK(
672     [#include <stdarg.h>],
673     [va_list ap1, ap2; __va_copy(ap1,ap2);],
674     [ac_cv_c___va_copy="yes"],
675     [ac_cv_c___va_copy="no"]))
676 if test "${ac_cv_c___va_copy}" = "yes"; then
677   AC_DEFINE(HAVE___VA_COPY, 1, [Define if <stdarg.h> defines __va_copy.])
678 fi
679
680 AC_CHECK_FUNCS(inet_aton,,[
681   AC_CHECK_LIB(resolv,inet_aton,[
682     VLC_ADD_LIBS([libvlc],[-lresolv])
683   ])
684 ])
685
686 dnl Check for getopt (always use builtin one on win32)
687 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
688 need_getopt=:
689 else
690 need_getopt=false
691 AC_CHECK_FUNCS(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
692 [ # FreeBSD has a gnugetopt library for this:
693   AC_CHECK_LIB([gnugetopt],[getopt_long],
694     [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support)
695      VLC_ADD_LIBS([libvlc],[-lgnugetopt])],
696     [need_getopt=:])])
697 fi
698 AM_CONDITIONAL(BUILD_GETOPT, ${need_getopt})
699
700 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
701 AC_TYPE_SIGNAL
702 AC_CHECK_LIB(m,cos,[
703   VLC_ADD_LIBS([adjust wave ripple psychedelic gradient a52tofloat32 dtstofloat32 x264 goom visual panoramix rotate noise grain scene],[-lm])
704 ])
705 AC_CHECK_LIB(m,pow,[
706   VLC_ADD_LIBS([avcodec avformat swscale imgresample postproc ffmpegaltivec stream_out_transrate i420_rgb faad twolame equalizer spatializer param_eq libvlc vorbis freetype mod mpc dmo quicktime realaudio realvideo galaktos opengl],[-lm])
707 ])
708 AC_CHECK_LIB(m,sqrt,[
709   VLC_ADD_LIBS([headphone_channel_mixer normvol speex mono colorthres extract],[-lm])
710 ])
711 AC_CHECK_LIB(m,ceil,[
712   VLC_ADD_LIBS([mosaic],[-lm])
713 ])
714 AC_CHECK_LIB(m,exp,[
715   VLC_ADD_LIBS([gaussianblur],[-lm])
716 ])
717 AC_CHECK_LIB(m,round,[
718   VLC_ADD_LIBS([dbus],[-lm])
719 ])
720 AC_CHECK_LIB(mx,sqrtf,[
721   VLC_ADD_LIBS([x264],[-lmx])
722 ])
723 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
724
725 dnl Check for dynamic plugins
726 ac_cv_have_plugins=no
727
728 # OS X style
729 AC_CHECK_HEADERS(mach-o/dyld.h,
730   [AC_CHECK_FUNCS(NSLinkModule,
731     [AC_DEFINE(HAVE_DL_DYLD, 1, [Define if you have the Darwin dyld API])
732      ac_cv_have_plugins=yes])])
733
734 # HP-UX style
735 if test "${ac_cv_have_plugins}" = "no"; then
736   AC_CHECK_HEADERS(dl.h)
737   ac_cv_my_have_shl_load=no
738   AC_CHECK_FUNC(shl_load,
739    [ac_cv_my_have_shl_load=yes,
740     AC_CHECK_LIB(dld, shl_load,
741      [ac_cv_my_have_shl_load=yes
742       VLC_ADD_LIBS([libvlc],[-ldld])])])
743   if test "${ac_cv_my_have_shl_load}" = "yes"; then
744     AC_DEFINE(HAVE_DL_SHL_LOAD, 1, [Define if you have the shl_load API])
745     ac_cv_have_plugins=yes
746   fi
747 fi
748
749 # Whatever style
750 if test "${ac_cv_have_plugins}" = "no"; then
751   AC_CHECK_LIB(dld, dld_link,
752    [VLC_ADD_LIBS([libvlc],[-ldld])
753     AC_DEFINE(HAVE_DL_DLD_LINK, 1, [Define if you have the GNU dld library])
754     ac_cv_have_plugins=yes])
755 fi
756
757 # Win32 style
758 if test "${ac_cv_have_plugins}" = "no"; then
759   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
760     AC_CHECK_LIB(kernel32, main,
761      [VLC_ADD_LIBS([libvlc],[-lkernel32])
762       AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
763       ac_cv_have_plugins=yes])
764   fi
765 fi
766
767 # WinCE style
768 if test "${ac_cv_have_plugins}" = "no"; then
769   if test "${SYS}" = "mingwce"; then
770     AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
771     ac_cv_have_plugins=yes
772   fi
773 fi
774
775 # BeOS style
776 if test "${ac_cv_have_plugins}" = "no"; then
777   AC_CHECK_HEADERS(image.h)
778   AC_CHECK_FUNCS(load_add_on,
779    [AC_DEFINE(HAVE_DL_BEOS, 1, [Define if you have the BeOS dl])
780     ac_cv_have_plugins=yes])
781 fi
782
783 # Only test for dlopen() if the others didn't work
784 if test "${ac_cv_have_plugins}" = "no"; then
785   AC_CHECK_HEADERS(dlfcn.h sys/dl.h)
786   ac_cv_my_have_dlopen=no
787   AC_CHECK_FUNC(dlopen,
788     ac_cv_my_have_dlopen=yes,
789     AC_CHECK_LIB(dl, dlopen,
790       ac_cv_my_have_dlopen=yes
791       VLC_ADD_LIBS([libvlc realaudio realvideo],[-ldl]),
792       AC_CHECK_LIB(svld, dlopen,
793         ac_cv_my_have_dlopen=yes
794         VLC_ADD_LIBS([libvlc],[-lsvld]))))
795   if test "${ac_cv_my_have_dlopen}" = "yes"; then
796     AC_DEFINE(HAVE_DL_DLOPEN, 1, [Define if you have the dlopen API])
797     ac_cv_have_plugins=yes
798   fi
799 fi
800
801 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
802 dnl Check for pthreads - borrowed from XMMS
803 THREAD_LIB=error
804 if test "${THREAD_LIB}" = "error"; then
805   AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
806 fi
807 if test "${THREAD_LIB}" = "error"; then
808   AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
809 fi
810 if test "${THREAD_LIB}" = "error"; then
811   AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
812 fi
813 if test "${THREAD_LIB}" = "error"; then
814   AC_CHECK_FUNCS(pthread_mutex_lock)
815   THREAD_LIB=""
816 fi
817
818 VLC_ADD_LIBS([libvlc plugin],[${THREAD_LIB}])
819
820 AC_CHECK_LIB(rt, clock_nanosleep, [
821   VLC_ADD_LIBS([libvlc],[-lrt])
822   AC_DEFINE(HAVE_CLOCK_NANOSLEEP, 1, [Define to 1 if you have clock_nanosleep.])
823 ], [
824   dnl HP/UX port
825   AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LIBS([libvlc],[-lrt])])
826 ])
827
828 have_nanosleep=false
829 AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[
830   AC_CHECK_LIB(rt,nanosleep,
831     [VLC_ADD_LIBS([libvlc],[-lrt]) have_nanosleep=:],
832     [AC_CHECK_LIB(posix4,nanosleep,
833         [VLC_ADD_LIBS([libvlc],[-lposix4]) have_nanosleep=:])]
834   )
835 ])
836 if ${have_nanosleep}; then
837   AC_DEFINE(HAVE_NANOSLEEP, 1, [Define if nanosleep is available.])
838 fi
839 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
840
841 dnl Check for misc headers
842 AC_MSG_CHECKING(for strncasecmp in strings.h)
843 AC_EGREP_HEADER(strncasecmp,strings.h,[
844   AC_MSG_RESULT(yes)
845   AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
846             Define if <strings.h> defines strncasecmp.)],[
847   AC_MSG_RESULT(no)])
848
849 dnl Check for headers
850 AC_CHECK_HEADERS(getopt.h strings.h locale.h)
851 AC_CHECK_HEADERS(fcntl.h sys/types.h sys/time.h sys/times.h sys/ioctl.h sys/stat.h xlocale.h)
852 AC_CHECK_HEADERS([arpa/inet.h netinet/in.h netinet/udplite.h sys/eventfd.h])
853 AC_CHECK_HEADERS([net/if.h], [], [],
854   [
855     #include <sys/socket.h>
856   ])
857 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
858 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
859 AC_CHECK_HEADERS([linux/version.h linux/dccp.h])
860 AC_CHECK_HEADERS(syslog.h)
861 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
862
863 AC_HEADER_TIME
864
865 dnl LP64 adn LLP64 architectures had better define ssize_t by themselves...
866 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.])
867 AC_CHECK_TYPE(ssize_t,, [
868   AC_DEFINE(ssize_t, int)
869 ])
870
871 dnl Check for poll
872 AC_SEARCH_LIBS(poll, [poll], [AC_DEFINE(HAVE_POLL, 1, [Define to 1 if the OS is usabl... err, has poll().])], [
873 if test ${SYS} != "mingw32"
874 then
875     AC_MSG_WARN([Your platform does not support poll(). VLC has it's own poll() implementation, but it is only intended to be used on Windows. VLC might crash or be insecure when you see this message. Either switch to an OS with a proper poll() implementation, or implement one for your OS in VLC])
876 fi
877 ])
878
879 dnl Check for dirent
880 need_dirent=false
881 AC_CHECK_HEADERS(dirent.h,,[need_dirent=:])
882 AM_CONDITIONAL(BUILD_DIRENT, ${need_dirent})
883
884 dnl Mac OS X and other OSes don't have declaration for nanosleep
885 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
886 AC_MSG_CHECKING(for nanosleep in time.h)
887 AC_EGREP_HEADER(nanosleep,time.h,[
888   AC_MSG_RESULT(yes)
889   AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
890             Define if <time.h> defines nanosleep.)
891 ],[
892   AC_MSG_RESULT(no)
893 ])
894 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
895
896 dnl Make sure we have timespecs
897 AC_MSG_CHECKING(for timespec in sys/time.h)
898 AC_EGREP_HEADER(timespec,sys/time.h,[
899   AC_MSG_RESULT(yes)
900   AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
901             Define if <sys/time.h> defines struct timespec.)
902 ],[
903   AC_MSG_RESULT(no)
904 ])
905
906 dnl Check for threads library
907 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
908 AC_CHECK_HEADERS(pthread.h)
909 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
910
911 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.
912 dnl Make PKG_CONFIG_PATH precious so that it appears in the help and get saved
913 AC_ARG_VAR(PKG_CONFIG_PATH,
914            [Paths where to find .pc not at the default location])
915 PKG_PROG_PKG_CONFIG()
916
917 dnl
918 dnl Check for zlib.h and -lz along with system -lminizip if available
919 dnl 
920 AC_CHECK_HEADERS(zlib.h, [ have_zlib=yes ], [ have_zlib=no ])
921 AM_CONDITIONAL(HAVE_ZLIB, [ test "${have_zlib}" = "yes" ])
922 if test "${have_zlib}" = "yes"
923 then
924   VLC_ADD_LIBS([access_http gme mp4 skins2 sap mkv unzip zip],[-lz])
925   PKG_CHECK_MODULES([MINIZIP], [minizip] , [ have_minizip=yes ], [
926     AC_CHECK_HEADERS([unzip.h], [ 
927       have_minizip=yes
928       MINIZIP_LIBS="-lminizip -lz"
929     ], [
930       have_minizip=no
931       MINIZIP_CFLAGS="-I\\\${top_srcdir}/libs/unzip"
932       MINIZIP_LIBS="\\\${top_builddir}/libs/unzip/libunzip.la"
933     ])
934   ])
935   VLC_ADD_CPPFLAGS([skins2],[$MINIZIP_CFLAGS])
936   VLC_ADD_CFLAGS([zip],[$MINIZIP_CFLAGS])
937   VLC_ADD_LIBS([skins2 zip],[$MINIZIP_LIBS])
938   VLC_ADD_PLUGIN([unzip])
939   VLC_ADD_PLUGIN([zip])
940 fi
941 AM_CONDITIONAL(HAVE_MINIZIP, [ test "${have_minizip}" = "yes" ])
942
943
944 dnl Check for hal
945 AC_ARG_ENABLE(hal,
946   [  --enable-hal            Linux HAL services discovery (default enabled)])
947
948 if test "${enable_hal}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
949 then
950   PKG_CHECK_MODULES(HAL, hal >= 0.5.0,
951     [
952       AC_DEFINE( HAVE_HAL, 1, [Define if you have the HAL library] )
953       VLC_ADD_PLUGIN([hal])
954       VLC_ADD_PLUGIN([probe_hal])
955       VLC_ADD_LIBS([libvlc hal probe_hal],[$HAL_LIBS])
956       VLC_ADD_CFLAGS([libvlc hal probe_hal],[$HAL_CFLAGS])],
957     [AC_MSG_WARN([libhal >= 0.5.0 was not found. Install libhal-dev ?])]
958   )
959 fi
960
961 dnl Check for mtp
962 AC_ARG_ENABLE(mtp,
963   [  --enable-mtp            MTP devices support (default enabled)])
964
965 if test "${enable_mtp}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
966 then
967   PKG_CHECK_MODULES(MTP, libmtp >= 0.3.0,
968     [ VLC_ADD_PLUGIN([mtp])
969       VLC_ADD_PLUGIN([access_mtp])
970       VLC_ADD_LIBS([mtp access_mtp],[$MTP_LIBS])
971       VLC_ADD_CFLAGS([mtp access_mtp],[$MTP_CFLAGS])],
972        [AC_MSG_WARN(MTP library not found)]
973   )
974 fi
975
976 dnl Check for dbus
977 AC_ARG_ENABLE(dbus,
978   [  --enable-dbus           Linux D-BUS message bus system (default enabled)])
979 case "${SYS}" in
980     linux*|*bsd*)
981 if test "${enable_dbus}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
982 then
983   dnl api stable dbus
984   PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.0.0,
985     [ AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
986       VLC_ADD_LIBS([screensaver libvlc],[$DBUS_LIBS])
987       VLC_ADD_CFLAGS([screensaver libvlc],[$DBUS_CFLAGS])
988       dnl Check for dbus control interface
989         AC_ARG_ENABLE(dbus-control, [  --disable-dbus-control  D-BUS control interface (default enabled)])
990         if test "${enable_dbus_control}" != "no"
991         then
992           VLC_ADD_PLUGIN([dbus])
993           VLC_ADD_LIBS([dbus],[$DBUS_LIBS])
994           VLC_ADD_CFLAGS([dbus],[$DBUS_CFLAGS])
995         fi
996       dnl Check for Telepathy
997         AC_ARG_ENABLE(telepathy,
998           AS_HELP_STRING([--enable-telepathy],[Telepathy Presence plugin through DBus(default enabled)]))
999         if test "${enable_telepathy}" != "no"; then
1000           VLC_ADD_PLUGIN([telepathy])
1001           VLC_ADD_LIBS([telepathy],[$DBUS_LIBS])
1002           VLC_ADD_CFLAGS([telepathy],[$DBUS_CFLAGS])
1003         fi
1004         dnl Power Management Inhibiter
1005         VLC_ADD_PLUGIN([inhibit])
1006         VLC_ADD_LIBS([inhibit],[$DBUS_LIBS])
1007         VLC_ADD_CFLAGS([inhibit],[$DBUS_CFLAGS])
1008     ],
1009     [AC_MSG_ERROR([Couldn't find DBus >= 1.0.0, install libdbus-dev ?])]
1010   )
1011 fi
1012 ;;
1013 esac
1014
1015 dnl Build the gtk_main plugins?
1016 NEED_GTK_MAIN=no
1017 NEED_GNOME_MAIN=no
1018 NEED_GTK2_MAIN=no
1019 NEED_GNOME2_MAIN=no
1020
1021 dnl build the qte plugin ?
1022 NEED_QTE_MAIN=no
1023
1024 dnl Check for ntohl, etc.
1025 AC_CACHE_CHECK([for ntohl in sys/param.h],
1026     [ac_cv_c_ntohl_sys_param_h],
1027     [CFLAGS="${CFLAGS_save} -Wall -Werror"
1028      AC_TRY_COMPILE([#include <sys/param.h>],
1029         [int meuh; ntohl(meuh);],
1030         ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
1031 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
1032     AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
1033 fi
1034 CFLAGS="${CFLAGS_save}"
1035
1036 RDC_PROG_CC_WFLAGS([all extra sign-compare undef pointer-arith bad-function-cast cast-align write-strings missing-prototypes volatile-register-var error-implicit-function-declaration])
1037 RDC_PROG_CC_FLAGS_IFELSE([-pipe])
1038
1039 dnl Check for various optimization flags
1040 AC_CACHE_CHECK([if \$CC accepts -Os],
1041     [ac_cv_c_os],
1042     [CFLAGS="${CFLAGS_save} -Os"
1043      AC_TRY_COMPILE([],,ac_cv_c_os=yes, ac_cv_c_os=no)])
1044 if test "${ac_cv_c_os}" != "no"; then
1045     CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -Os"
1046 else
1047     AC_CACHE_CHECK([if \$CC accepts -O],
1048         [ac_cv_c_o],
1049         [CFLAGS="${CFLAGS_save} -O"
1050          AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
1051     if test "${ac_cv_c_o}" != "no"; then
1052         if test "${ac_cv_c_o3}" = "no"; then
1053             CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -O"
1054         fi
1055     fi
1056 fi
1057
1058 AC_CACHE_CHECK([if \$CC accepts -O4],
1059     [ac_cv_c_o4],
1060     [CFLAGS="${CFLAGS_save} -O4"
1061      AC_TRY_COMPILE([],,ac_cv_c_o4=yes, ac_cv_c_o4=no)])
1062 if test "${ac_cv_c_o4}" != "no" -a "x${enable_debug}" = "xno"; then
1063     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O4"
1064 else
1065     AC_CACHE_CHECK([if \$CC accepts -O3],
1066         [ac_cv_c_o3],
1067         [CFLAGS="${CFLAGS_save} -O3"
1068          AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
1069     if test "${ac_cv_c_o3}" != "no" -a "x${enable_debug}" = "xno"; then
1070         CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O3"
1071     else
1072         AC_CACHE_CHECK([if \$CC accepts -O2],
1073             [ac_cv_c_o2],
1074             [CFLAGS="${CFLAGS_save} -O2"
1075              AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
1076         if test "${ac_cv_c_o2}" != "no"; then
1077             CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O2"
1078         else
1079             AC_CACHE_CHECK([if \$CC accepts -O],
1080                 [ac_cv_c_o],
1081                 [CFLAGS="${CFLAGS_save} -O"
1082                  AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
1083             if test "${ac_cv_c_o}" != "no"; then
1084                 CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O"
1085             fi
1086         fi
1087     fi
1088 fi
1089
1090 AC_CACHE_CHECK([if \$CC accepts -O0],
1091     [ac_cv_c_o0],
1092     [CFLAGS="${CFLAGS_save} -O0"
1093      AC_TRY_COMPILE([],,ac_cv_c_o0=yes, ac_cv_c_o0=no)])
1094 if test "${ac_cv_c_o0}" != "no"; then
1095     CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O0"
1096 fi
1097
1098 dnl Check for -ffast-math
1099 AC_CACHE_CHECK([if \$CC accepts -ffast-math],
1100     [ac_cv_c_fast_math],
1101     [CFLAGS="${CFLAGS_save} -ffast-math"
1102      AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
1103 if test "${ac_cv_c_fast_math}" != "no"; then
1104     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -ffast-math"
1105 fi
1106
1107 dnl Check for -funroll-loops
1108 dnl Disabled on BeOS because BeOS' gcc is buggy and may crash with it
1109 if test "${SYS}" != "beos"
1110 then
1111   AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
1112       [ac_cv_c_unroll_loops],
1113       [CFLAGS="${CFLAGS_save} -funroll-loops"
1114        AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
1115   if test "${ac_cv_c_unroll_loops}" != "no"; then
1116       CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -funroll-loops"
1117   fi
1118 fi
1119
1120 dnl Check for -fomit-frame-pointer
1121 AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
1122     [ac_cv_c_omit_frame_pointer],
1123     [CFLAGS="${CFLAGS_save} -fomit-frame-pointer"
1124      AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
1125 if test "${ac_cv_c_omit_frame_pointer}" != "no"; then
1126  if test "${SYS}" != "darwin"; then
1127     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
1128  else
1129     dnl On darwin we explicitely disable it.
1130     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fno-omit-frame-pointer"
1131  fi
1132 fi
1133
1134 dnl Check for Darwin plugin linking flags
1135 AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error],
1136     [ac_cv_ld_darwin],
1137     [CFLAGS="${CFLAGS_save} -bundle -undefined error"
1138      AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
1139 if test "${ac_cv_ld_darwin}" != "no"; then
1140     VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
1141 fi
1142
1143 dnl Checks for __attribute__(aligned()) directive
1144 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1145     [ac_cv_c_attribute_aligned],
1146     [ac_cv_c_attribute_aligned=0
1147         CFLAGS="${CFLAGS_save} -Werror"
1148     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1149         AC_TRY_COMPILE([],
1150         [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1151         [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1152     done
1153         CFLAGS="${CFLAGS_save}"])
1154 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1155     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1156         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1157 fi
1158
1159 dnl Check for __attribute__((packed))
1160 AC_CACHE_CHECK([for __attribute__((packed))],
1161   [ac_cv_c_attribute_packed],
1162   [ac_cv_c_attribute_packed=no
1163    AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b;],
1164                     [ac_cv_c_attribute_packed=yes])])
1165 if test "${ac_cv_c_attribute_packed}" != "no"; then
1166   AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1167 fi
1168
1169 dnl
1170 dnl  Check the CPU
1171 dnl
1172 case "${host_cpu}" in
1173   "")
1174     ARCH=unknown
1175     ;;
1176   *)
1177     ARCH="${host_cpu}"
1178     ;;
1179 esac
1180
1181 dnl Check for backtrace() support
1182 AC_CHECK_HEADERS(execinfo.h)
1183 AC_CHECK_FUNCS(backtrace)
1184
1185 dnl
1186 dnl  Enable profiling
1187 dnl
1188 AC_ARG_ENABLE(gprof,
1189 [  --enable-gprof          gprof profiling (default disabled)])
1190 AC_ARG_ENABLE(cprof,
1191 [  --enable-cprof          cprof profiling (default disabled)])
1192 test "${enable_gprof}" != "yes" && enable_gprof="no"
1193 test "${enable_cprof}" != "yes" && enable_cprof="no"
1194
1195 dnl
1196 dnl  default modules
1197 dnl
1198 dnl Video filters:
1199 VLC_ADD_PLUGIN([deinterlace])
1200 VLC_ADD_PLUGIN([yuvp])
1201 VLC_ADD_PLUGIN([invert])
1202 VLC_ADD_PLUGIN([adjust])
1203 VLC_ADD_PLUGIN([transform])
1204 VLC_ADD_PLUGIN([wave])
1205 VLC_ADD_PLUGIN([ripple])
1206 VLC_ADD_PLUGIN([psychedelic])
1207 VLC_ADD_PLUGIN([gradient])
1208 VLC_ADD_PLUGIN([motionblur])
1209 VLC_ADD_PLUGIN([rv32])
1210 VLC_ADD_PLUGIN([rotate])
1211 VLC_ADD_PLUGIN([noise])
1212 VLC_ADD_PLUGIN([grain])
1213 VLC_ADD_PLUGIN([extract])
1214 VLC_ADD_PLUGIN([sharpen])
1215 VLC_ADD_PLUGIN([croppadd])
1216 VLC_ADD_PLUGIN([canvas])
1217 VLC_ADD_PLUGIN([blendbench])
1218 VLC_ADD_PLUGIN([blend])
1219 VLC_ADD_PLUGIN([scale])
1220 VLC_ADD_PLUGIN([vmem])
1221 VLC_ADD_PLUGIN([logo])
1222 VLC_ADD_PLUGIN([magnify])
1223 VLC_ADD_PLUGIN([puzzle])
1224 VLC_ADD_PLUGIN([colorthres])
1225 VLC_ADD_PLUGIN([scene])
1226 VLC_ADD_PLUGIN([yuv])
1227
1228 ALIASES="${ALIASES} cvlc"
1229
1230 dnl
1231 dnl default modules that need g++
1232 dnl
1233 AC_LANG_PUSH(C++)
1234 VLC_ADD_PLUGIN([spatializer])
1235 AC_LANG_POP(C++)
1236
1237 if test "${SYS}" != "mingwce"; then
1238   VLC_ADD_PLUGIN([gestures])
1239   VLC_ADD_PLUGIN([rc])
1240   VLC_ADD_PLUGIN([hotkeys])
1241   VLC_ADD_PLUGIN([showintf])
1242   VLC_ADD_PLUGIN([marq])
1243   VLC_ADD_PLUGIN([podcast])
1244   VLC_ADD_PLUGIN([shout])
1245   VLC_ADD_PLUGIN([sap])
1246   VLC_ADD_PLUGIN([fake])
1247   VLC_ADD_PLUGIN([folder])
1248   VLC_ADD_PLUGIN([rss])
1249   VLC_ADD_PLUGIN([mosaic])
1250   VLC_ADD_PLUGIN([wall])
1251   VLC_ADD_PLUGIN([motiondetect])
1252   VLC_ADD_PLUGIN([clone])
1253   VLC_ADD_PLUGIN([crop])
1254   VLC_ADD_PLUGIN([erase])
1255   VLC_ADD_PLUGIN([bluescreen])
1256   VLC_ADD_PLUGIN([alphamask])
1257   VLC_ADD_PLUGIN([gaussianblur])
1258   VLC_ADD_PLUGIN([i420_yuy2])
1259   VLC_ADD_PLUGIN([i422_yuy2])
1260   VLC_ADD_PLUGIN([i420_ymga])
1261   VLC_ADD_PLUGIN([i422_i420])
1262   VLC_ADD_PLUGIN([yuy2_i422])
1263   VLC_ADD_PLUGIN([yuy2_i420])
1264   VLC_ADD_PLUGIN([chain])
1265   VLC_ADD_PLUGIN([aout_file])
1266   VLC_ADD_PLUGIN([linear_resampler])
1267   VLC_ADD_PLUGIN([bandlimited_resampler])
1268   VLC_ADD_PLUGIN([float32_mixer])
1269   VLC_ADD_PLUGIN([spdif_mixer])
1270   VLC_ADD_PLUGIN([simple_channel_mixer])
1271   VLC_ADD_PLUGIN([dolby_surround_decoder])
1272   VLC_ADD_PLUGIN([headphone_channel_mixer])
1273   VLC_ADD_PLUGIN([normvol])
1274   VLC_ADD_PLUGIN([equalizer])
1275   VLC_ADD_PLUGIN([param_eq])
1276   VLC_ADD_PLUGIN([scaletempo])
1277   VLC_ADD_PLUGIN([converter_float])
1278   VLC_ADD_PLUGIN([a52tospdif])
1279   VLC_ADD_PLUGIN([dtstospdif])
1280   VLC_ADD_PLUGIN([audio_format])
1281   ALIASES="${ALIASES} rvlc"
1282 fi
1283
1284 if test "${SYS}" = "mingwce"; then
1285   VLC_ADD_PLUGIN([chain])
1286   VLC_ADD_PLUGIN([aout_file])
1287   VLC_ADD_PLUGIN([linear_resampler])
1288   VLC_ADD_PLUGIN([bandlimited_resampler])
1289   VLC_ADD_PLUGIN([float32_mixer])
1290   VLC_ADD_PLUGIN([spdif_mixer])
1291   VLC_ADD_PLUGIN([simple_channel_mixer])
1292   VLC_ADD_PLUGIN([headphone_channel_mixer])
1293   VLC_ADD_PLUGIN([normvol])
1294   VLC_ADD_PLUGIN([converter_float])
1295   VLC_ADD_PLUGIN([a52tospdif])
1296   VLC_ADD_PLUGIN([dtstospdif])
1297   VLC_ADD_PLUGIN([audio_format])
1298   VLC_ADD_PLUGIN([i420_yuy2])
1299   VLC_ADD_PLUGIN([i422_yuy2])
1300   VLC_ADD_PLUGIN([i420_ymga])
1301   VLC_ADD_PLUGIN([i422_i420])
1302   VLC_ADD_PLUGIN([yuy2_i422])
1303   VLC_ADD_PLUGIN([yuy2_i420])
1304 fi
1305
1306 dnl
1307 dnl Some plugins aren't useful on some platforms
1308 dnl
1309 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1310     VLC_ADD_PLUGIN([screensaver])
1311     VLC_ADD_PLUGIN([motion])
1312     VLC_ADD_PLUGIN([dynamicoverlay])
1313     VLC_ADD_PLUGIN([signals])
1314 elif test "${SYS}" != "mingwce"; then
1315     VLC_ADD_PLUGIN([ntservice])
1316     VLC_ADD_PLUGIN([access_smb])
1317     VLC_ADD_PLUGIN([dmo])
1318     VLC_ADD_PLUGIN([msn])
1319     VLC_ADD_LIBS([dmo],[-lole32 -luuid])
1320     VLC_ADD_PLUGIN([globalhotkeys])
1321 else
1322     VLC_ADD_PLUGIN([win32text])
1323 fi
1324 if test "${SYS}" = "darwin"; then
1325     VLC_ADD_PLUGIN([quartztext])
1326     VLC_ADD_LDFLAGS([quartztext],[-Wl,-framework,Carbon,-framework,ApplicationServices])
1327 fi
1328
1329 dnl
1330 dnl  Accelerated modules
1331 dnl
1332 AC_ARG_WITH(,[])
1333 AC_ARG_WITH(,[Optimization options:])
1334
1335 dnl  Check for fully working MMX intrinsics
1336 dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a
1337 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1338 AC_ARG_ENABLE(mmx,
1339 [  --disable-mmx           disable MMX optimizations (default auto)],,[
1340   case "${host_cpu}" in
1341     i?86|x86_64)
1342       enable_mmx="yes"
1343       ;;
1344     *)
1345       enable_mmx="no"
1346       ;;
1347   esac
1348 ])
1349 AS_IF([test "${enable_mmx}" != "no"], [
1350   ARCH="${ARCH} mmx"
1351
1352   AC_CACHE_CHECK([if $CC groks MMX intrinsics],
1353     [ac_cv_c_mmx_intrinsics],
1354     [CFLAGS="${CFLAGS_save} -O -mmmx"
1355      AC_TRY_COMPILE([#include <mmintrin.h>
1356                      #include <stdint.h>
1357                      uint64_t frobzor;],
1358                     [__m64 a, b, c;
1359                      a = b = c = (__m64)frobzor;
1360                      a = _mm_slli_pi16(a, 3);
1361                      a = _mm_adds_pi16(a, b);
1362                      c = _mm_srli_pi16(c, 8);
1363                      c = _mm_slli_pi16(c, 3);
1364                      b = _mm_adds_pi16(b, c);
1365                      a = _mm_unpacklo_pi8(a, b);
1366                      frobzor = (uint64_t)a;],
1367                     [ac_cv_c_mmx_intrinsics=yes],
1368                     [ac_cv_c_mmx_intrinsics=no])])
1369   AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1370     AC_DEFINE(HAVE_MMX_INTRINSICS, 1,
1371               [Define to 1 if MMX intrinsics are available.])
1372     VLC_ADD_CFLAGS([memcpymmx i420_rgb_mmx i420_yuy2_mmx i422_yuy2_mmx i420_ymga_mmx],[-mmmx])
1373   ])
1374
1375   AC_CACHE_CHECK([if $CC groks MMX inline assembly],
1376     [ac_cv_mmx_inline],
1377     [CFLAGS="${CFLAGS_save}"
1378      AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
1379                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
1380   AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1381     AC_DEFINE(CAN_COMPILE_MMX, 1,
1382               [Define to 1 inline MMX assembly is available.])
1383     VLC_ADD_PLUGIN([memcpymmx])
1384     VLC_ADD_PLUGIN([i420_rgb_mmx])
1385     VLC_ADD_PLUGIN([i420_yuy2_mmx])
1386     VLC_ADD_PLUGIN([i422_yuy2_mmx])
1387     VLC_ADD_PLUGIN([i420_ymga_mmx])
1388   ])
1389
1390   AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1391     [ac_cv_mmxext_inline],
1392     [CFLAGS="${CFLAGS_save}"
1393      AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
1394                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
1395   AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1396     AC_DEFINE(CAN_COMPILE_MMXEXT, 1,
1397               [Define to 1 if MMX EXT inline assembly is available.])
1398     VLC_ADD_PLUGIN([memcpymmxext])
1399   ])
1400 ])
1401
1402 dnl  Check for fully workin SSE2 intrinsics
1403 dnl  We need support for -mmmx, we need <emmintrin.h>, and we also need a
1404 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1405 AC_ARG_ENABLE(sse,
1406 [  --disable-sse           disable SSE (1 and 2) optimizations (default auto)]
1407 ,, [
1408   case "${host_cpu}" in
1409     i686|x86_64)
1410       enable_sse=yes
1411       ;;
1412     *)
1413       enable_sse=no
1414       ;;
1415   esac
1416 ])
1417 AS_IF([test "${enable_sse}" != "no"], [
1418   ARCH="${ARCH} sse sse2"
1419
1420   AC_CACHE_CHECK([if $CC groks SSE2 intrinsics],
1421     [ac_cv_c_sse2_intrinsics],
1422     [CFLAGS="${CFLAGS_save} -O -msse2"
1423      AC_TRY_COMPILE([#include <emmintrin.h>
1424                      #include <stdint.h>
1425                      uint64_t frobzor;],
1426                     [__m128i a, b, c;
1427                      a = b = c = _mm_set1_epi64((__m64)frobzor);
1428                      a = _mm_slli_epi16(a, 3);
1429                      a = _mm_adds_epi16(a, b);
1430                      c = _mm_srli_epi16(c, 8);
1431                      c = _mm_slli_epi16(c, 3);
1432                      b = _mm_adds_epi16(b, c);
1433                      a = _mm_unpacklo_epi8(a, b);
1434                      frobzor = (uint64_t)_mm_movepi64_pi64(a);],
1435                     [ac_cv_c_sse2_intrinsics=yes],
1436                     [ac_cv_c_sse2_intrinsics=no])])
1437   AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1438     AC_DEFINE(HAVE_SSE2_INTRINSICS, 1,
1439               [Define to 1 if SSE2 intrinsics are available.])
1440     VLC_ADD_CFLAGS([i420_rgb_sse2 i420_yuy2_sse2 i422_yuy2_sse2],[-msse2])
1441   ])
1442
1443   AC_CACHE_CHECK([if $CC groks SSE inline assembly],
1444     [ac_cv_sse_inline],
1445     [CFLAGS="${CFLAGS_save}"
1446      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
1447                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
1448   AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1449     AC_DEFINE(CAN_COMPILE_SSE, 1,
1450               [Define to 1 if SSE inline assembly is available.])
1451   ])
1452
1453   AC_CACHE_CHECK([if $CC groks SSE2 inline assembly],
1454     [ac_cv_sse2_inline],
1455     [CFLAGS="${CFLAGS_save}"
1456      AC_TRY_COMPILE(,[void *p;asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p));],
1457                     ac_cv_sse2_inline=yes, ac_cv_sse2_inline=no)])
1458   AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1459     AC_DEFINE(CAN_COMPILE_SSE2, 1,
1460               [Define to 1 if SSE2 inline assembly is available.])
1461     VLC_ADD_PLUGIN([i420_rgb_sse2])
1462     VLC_ADD_PLUGIN([i420_yuy2_sse2])
1463     VLC_ADD_PLUGIN([i422_yuy2_sse2])
1464   ])
1465 ])
1466
1467 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly],
1468     [ac_cv_3dnow_inline],
1469     [CFLAGS="${CFLAGS_save}"
1470      AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
1471                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
1472 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1473   AC_DEFINE(CAN_COMPILE_3DNOW, 1,
1474             [Define to 1 if 3D Now! inline assembly is available.])
1475   VLC_ADD_PLUGIN([memcpy3dn])
1476 ])
1477
1478 AC_ARG_ENABLE(altivec,
1479 [  --disable-altivec       disable AltiVec optimizations (default auto)],, [
1480   AS_IF([test "${host_cpu}" = "powerpc"],
1481         [enable_altivec=yes], [enable_altivec=no])
1482 ])
1483 AS_IF([test "${enable_altivec}" = "yes"], [
1484   ARCH="${ARCH} altivec";
1485   AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1486     [ac_cv_altivec_inline],
1487     [CFLAGS="${CFLAGS_save}"
1488      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1489          ac_cv_altivec_inline="yes",
1490          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
1491           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1492             [ac_cv_altivec_inline="-Wa,-m7400"],
1493             ac_cv_altivec_inline=no)
1494          ])])
1495   AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1496     AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1497               [Define to 1 if AltiVec inline assembly is available.])
1498     AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1499       VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
1500       VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
1501       VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1502       VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1503       VLC_ADD_CFLAGS([libvlc],[${ac_cv_altivec_inline}])
1504     ])
1505     VLC_ADD_PLUGIN([memcpyaltivec])
1506     VLC_ADD_PLUGIN([i420_yuy2_altivec])
1507   ])
1508
1509 dnl The AltiVec C extensions
1510 dnl
1511 dnl There are several possible cases:
1512 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1513 dnl                      need <altivec.h>
1514 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1515 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1516 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1517 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1518 dnl - Others: test should fail
1519   AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1520   [ac_cv_c_altivec],
1521   [# OS X/PPC test (gcc 4.x)
1522    CFLAGS="${CFLAGS_save} -mpim-altivec -force_cpusubtype_ALL"
1523    AC_TRY_COMPILE([vector unsigned char foo;],
1524      [vec_ld(0, (unsigned char *)0);],
1525      [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1526      [# OS X/PPC test (gcc 3.x)
1527       CFLAGS="${CFLAGS_save} -faltivec"
1528       AC_TRY_COMPILE([vector unsigned char foo;],
1529         [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1530         [ac_cv_c_altivec="-faltivec"],
1531         dnl Below this are the Linux tests
1532         [# Linux/PPC test (gcc 4.x)
1533          CFLAGS="${CFLAGS_save} -maltivec"
1534          AC_TRY_COMPILE([#include <altivec.h>],
1535            [vec_ld(0, (unsigned char *)0);],
1536            [ac_cv_c_altivec="-maltivec"],
1537            [# Linux/PPC test (gcc 3.3)
1538             CFLAGS="${CFLAGS_save} -maltivec -mabi=altivec"
1539             AC_TRY_COMPILE([#include <altivec.h>],
1540               [vec_ld(0, (unsigned char *)0);],
1541               [ac_cv_c_altivec=""
1542                ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1543               [# Linux/PPC test (gcc 3.3)
1544                CFLAGS="${CFLAGS_save} -fvec"
1545                AC_TRY_COMPILE([#include <altivec.h>],
1546                  [vec_ld(0, (unsigned char *)0);],
1547                  [ac_cv_c_altivec="-fvec"],
1548                  [ac_cv_c_altivec=no])
1549               ])
1550            ])
1551         ])
1552      ])
1553    CFLAGS="${CFLAGS_save}"
1554   ])
1555   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1556     CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
1557   ])
1558
1559   AC_CHECK_HEADERS(altivec.h)
1560   CPPFLAGS="${CPPFLAGS_save}"
1561
1562   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1563     AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1,
1564               [Define to 1 if C AltiVec extensions are available.])
1565     VLC_ADD_CFLAGS([libvlc],[${ac_cv_c_altivec}])
1566     VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
1567     VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1568     VLC_ADD_PLUGIN([memcpyaltivec])
1569     VLC_ADD_PLUGIN([i420_yuy2_altivec])
1570   ])
1571
1572   AC_CACHE_CHECK([if linker needs -framework vecLib],
1573     [ac_cv_ld_altivec],
1574     [LDFLAGS="${LDFLAGS_vlc} -Wl,-framework,vecLib"
1575      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
1576      LDFLAGS="${LDFLAGS_save}"
1577     ])
1578   AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1579     VLC_ADD_LDFLAGS([libvlc idctaltivec motionaltivec memcpyaltivec],[-Wl,-framework,vecLib])
1580   ])
1581 ])
1582
1583 dnl
1584 dnl  Special arch tuning
1585 dnl
1586 AC_ARG_WITH(tuning,
1587 [  --with-tuning=ARCH      enable special tuning for an architecture
1588                           (default Pentium 2 on IA-32 and G4 on PPC)])
1589 if test -n "${with_tuning}"; then
1590     if test "${with_tuning}" != "no"; then
1591         CFLAGS_TUNING="-mtune=${with_tuning}"
1592     fi
1593 else
1594     if test "${SYS}" = "darwin" -a "${host_cpu}" != "powerpc"; then
1595         CFLAGS_TUNING="-march=pentium-m -mtune=prescott"
1596     elif test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "i386"; then
1597         CFLAGS_TUNING="-mtune=pentium2"
1598     elif test "${host_cpu}" = "x86_64"; then
1599         CFLAGS_TUNING="-mtune=athlon64"
1600     elif test "${host_cpu}" = "powerpc"; then
1601         CFLAGS_TUNING="-mtune=G4";
1602     fi
1603 fi
1604
1605 dnl NOTE: this can't be cached cleanly
1606 AS_IF([test "${CFLAGS_TUNING}"],
1607    [CFLAGS_save="${CFLAGS}"
1608     CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1609
1610     AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1611     AC_COMPILE_IFELSE([ ],
1612                       [tuning="yes"],
1613                       [CFLAGS_TUNING=""; tuning="no"
1614                        AS_IF([test "${with_tuning}"],
1615                              [AC_MSG_ERROR([requested tuning not supported])])])
1616
1617     AC_MSG_RESULT([$tuning])
1618     CFLAGS="${CFLAGS_save}"
1619 ])
1620
1621 dnl
1622 dnl  Memory usage
1623 dnl
1624 AC_ARG_ENABLE(optimize-memory,
1625 [  --enable-optimize-memory optimize memory usage over performance])
1626 if test "${enable_optimize_memory}" = "yes"; then
1627   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1628 fi
1629
1630 dnl
1631 dnl  Enable/disable optimizations
1632 dnl
1633 AC_ARG_ENABLE(optimizations,
1634 [  --disable-optimizations disable compiler optimizations (default enabled)])
1635 if test "${enable_optimizations}" != "no"; then
1636    if test "${enable_optimize_memory}" = "yes"; then
1637       enable_optimizations="size"
1638    else
1639       enable_optimizations="speed"
1640    fi
1641 fi
1642
1643 dnl
1644 dnl  Debugging mode
1645 dnl
1646 AC_ARG_ENABLE(debug,
1647 [  --enable-debug          debug mode (default disabled)])
1648 test "${enable_debug}" != "yes" && enable_debug="no"
1649 AH_TEMPLATE(NDEBUG,
1650             [Define to 1 if debug code should NOT be compiled])
1651 AS_IF([test "x${enable_debug}" = "xno"], [
1652   AC_DEFINE(NDEBUG)
1653 ], [
1654   AC_CHECK_HEADERS([valgrind/valgrind.h])
1655 ])
1656
1657 dnl
1658 dnl Allow runing as root (usefull for people runing on embedded platforms)
1659 dnl
1660 AC_ARG_ENABLE(run-as-root,
1661 [  --enable-run-as-root    allow runing VLC as root (default disabled)])
1662 AS_IF([test "${enable_run_as_root}" = "yes"],[
1663     AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1664               [Define to 1 to allow runing VLC as root (uid 0).])
1665 ])
1666
1667 dnl
1668 dnl  Test coverage
1669 dnl
1670 AC_ARG_ENABLE(coverage,
1671         [  --enable-coverage       build for test coverage (default disabled)],,
1672         [enable_coverage="no"])
1673 AS_IF([test "${enable_coverage}" != "no"], [
1674         CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
1675         CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
1676         LDFLAGS="-lgcov ${LDFLAGS}"
1677         dnl ugly...
1678         CFLAGS_save="${CFLAGS}"
1679         CXXFLAGS_save="${CXXFLAGS}"
1680         LDFLAGS_save="${LDFLAGS}"
1681 ])
1682
1683 dnl
1684 dnl  Enable release-specific flags
1685 dnl
1686 AC_ARG_ENABLE(release,
1687 [  --enable-release        activate extra optimizations (default disabled)])
1688 test "${enable_release}" != "yes" && enable_release="no"
1689
1690 dnl
1691 dnl Stream output
1692 dnl
1693 AC_ARG_ENABLE(sout,
1694   [  --enable-sout           Stream output modules (default enabled)])
1695 AS_IF([test "${enable_sout}" != "no"], [
1696   AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1697 ])
1698 AM_CONDITIONAL(ENABLE_SOUT, [test "${enable_sout}" != "no"])
1699
1700 AC_ARG_ENABLE(switcher,
1701   [  --enable-switcher       Stream-out switcher plugin (default disabled)])
1702
1703 dnl Check for libshout
1704 AC_ARG_ENABLE(shout,
1705   [  --enable-shout          libshout output plugin (default disabled)])
1706 if test "${enable_shout}" = "yes"; then
1707   PKG_CHECK_MODULES(SHOUT, shout >= 2.1,
1708     [AC_DEFINE(HAVE_SHOUT, 1, [Define if you have the libshout library])
1709      VLC_ADD_PLUGIN([access_output_shout])
1710      VLC_ADD_LIBS([access_output_shout],[$SHOUT_LIBS])
1711      VLC_ADD_CFLAGS([access_output_shout],[$SHOUT_CFLAGS])],
1712     [AC_MSG_WARN(libshout library not found)])
1713 fi
1714
1715 dnl Lua modules
1716 AC_ARG_ENABLE(lua,
1717   AS_HELP_STRING([--enable-lua],[lua playlist, metafetcher and interface
1718                   plugins (default enabled)]))
1719 if test "${enable_lua}" != "no"
1720 then
1721   PKG_CHECK_MODULES(LUA, lua5.1,
1722     [ have_lua=yes ],
1723     [
1724     AC_MSG_WARN([lua5.1 not found, trying lua >= 5.1 instead])
1725     PKG_CHECK_MODULES(LUA, lua >= 5.1,
1726       [ have_lua=yes ],
1727       [
1728         have_lua=yes
1729         AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1730           [],
1731           [ have_lua=no ] )
1732         AC_CHECK_LIB(  lua5.1 , luaL_newstate,
1733           [LUA_LIBS="-llua5.1"],
1734           AC_CHECK_LIB( lua51 , luaL_newstate,
1735             [LUA_LIBS="-llua51"],
1736             AC_CHECK_LIB( lua , luaL_newstate,
1737               [LUA_LIBS="-llua"],
1738               [ have_lua=no
1739                 AC_MSG_WARN([lua >= 5.1 not found!])
1740               ])
1741           )
1742         )
1743       ])
1744     ])
1745   if test "x${have_lua}" = "xyes" ;  then
1746      AC_DEFINE(HAVE_LUA, 1, [Define if you have the lua library])
1747      VLC_ADD_LIBS([lua],[$LUA_LIBS])
1748      VLC_ADD_CFLAGS([lua],[$LUA_CFLAGS])
1749   fi
1750 fi
1751 AM_CONDITIONAL(BUILD_LUA, [test "${have_lua}" = "yes"])
1752
1753 dnl
1754 dnl HTTP daemon
1755 dnl
1756 AC_ARG_ENABLE(httpd,
1757   [  --enable-httpd          HTTP daemon (default enabled)])
1758 if test "${enable_httpd}" != "no"
1759 then
1760   VLC_ADD_PLUGIN([http])
1761   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
1762 fi
1763 AM_CONDITIONAL(BUILD_HTTPD, [test "${enable_httpd}" != "no"])
1764
1765 dnl
1766 dnl libproxy support
1767 dnl
1768 AC_ARG_ENABLE(libproxy,
1769   [  --enable-libproxy       libproxy support (default auto)])
1770 AS_IF([test "${enable_libproxy}" != "no"], [
1771   PKG_CHECK_MODULES(LIBPROXY, libproxy-1.0, [
1772     AC_DEFINE(HAVE_LIBPROXY, 1, [Define if libproxy is available])
1773     VLC_ADD_CFLAGS([access_http],[$LIBPROXY_CFLAGS])
1774     VLC_ADD_LIBS([access_http],[$LIBPROXY_LIBS])
1775   ], [
1776     AS_IF([test "x${enable_libproxy}" != "x"], [
1777       AC_MSG_ERROR([libproxy could not be found on your system])
1778     ])
1779   ])
1780 ])
1781
1782 dnl
1783 dnl VideoLAN manager
1784 dnl
1785 AC_ARG_ENABLE(vlm,
1786   [  --enable-vlm            VideoLAN manager (default enabled)],,
1787   [enable_vlm="${enable_sout}"])
1788 AS_IF([test "${enable_vlm}" != "no"], [
1789   AS_IF([test "${enable_sout}" = "no"], [
1790     AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1791   ])
1792   AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1793   VLC_ADD_PLUGIN([telnet])
1794 ])
1795 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1796
1797 dnl
1798 dnl Growl notification plugin
1799 dnl
1800 AC_ARG_ENABLE(growl,
1801   [  --enable-growl          growl notification plugin (default disabled)],,
1802   [enable_growl=no])
1803 AS_IF([test "${enable_growl}" != "no"], [
1804     VLC_ADD_PLUGIN([growl_udp])
1805     AC_CHECK_HEADERS(Growl/GrowlDefines.h, [
1806       VLC_ADD_PLUGIN([growl])
1807       VLC_ADD_LDFLAGS([growl], [-Wl,-framework,Growl,-framework,AppKit])
1808     ])
1809   ]
1810 )
1811
1812 dnl
1813 dnl Libnotify notification plugin
1814 dnl
1815
1816 AC_ARG_ENABLE(notify,
1817   [  --enable-notify         libnotify notification plugin (default enabled)])
1818 AS_IF([test "${enable_notify}" != "no" -a "${SYS}" != "mingw32"], [
1819     PKG_CHECK_MODULES(NOTIFY, libnotify,
1820       [
1821         VLC_ADD_PLUGIN([notify])
1822         VLC_ADD_CFLAGS(notify, [$NOTIFY_CFLAGS])
1823         VLC_ADD_LIBS(notify, [$NOTIFY_LIBS])
1824       ],[
1825     AS_IF([test "${enable_notify}" = "yes"],[
1826         AC_MSG_WARN( libnotify not found) ])
1827       ])
1828   ])
1829
1830 dnl
1831 dnl Audioscrobbler plugin
1832 dnl
1833
1834 AC_ARG_ENABLE(audioscrobbler,
1835   [  --disable-audioscrobbler Last.fm submission plugin (default enabled)])
1836 AS_IF([test "${enable_audioscrobbler}" != "no"], [
1837         VLC_ADD_PLUGIN([audioscrobbler])
1838   ])
1839
1840 dnl
1841 dnl Taglibplugin
1842 dnl
1843 AC_ARG_ENABLE(taglib,
1844   [  --disable-taglib        Taglib support (default enabled) ])
1845   AS_IF([test "${enable_taglib}" != "no"],[
1846     PKG_CHECK_MODULES(TAGLIB, taglib >= 1.5,
1847       [ AC_DEFINE( HAVE_TAGLIB, 1, [Define if you have taglib plugin built] )
1848         VLC_ADD_PLUGIN([taglib])
1849         VLC_ADD_LIBS([taglib],[$TAGLIB_LIBS -lz])
1850        VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS]) ],
1851       [AC_MSG_WARN(TagLib library not found)])
1852   ])
1853
1854
1855 dnl
1856 dnl  Input plugins
1857 dnl
1858
1859 AC_ARG_WITH(,[Input plugins:])
1860
1861 dnl  live555 input
1862 dnl
1863 if test "${enable_livedotcom}"
1864 then
1865   AC_MSG_WARN(--{en|dis}able-livedotcom is deprecated. Use --{en|dis}able-live555 instead.)
1866 fi
1867 if test "${enable_livedotcom}" = "no"
1868 then
1869   enable_live555="no"
1870 fi
1871
1872 AC_ARG_ENABLE(live555,
1873 [  --enable-live555        live555 RTSP input plugin (default enabled)])
1874 if test "${enable_live555}" != "no"; then
1875   AC_ARG_WITH(live555-tree,
1876     [    --with-live555-tree=PATH live.com tree for static linking])
1877
1878   dnl
1879   dnl test for --with-live555-tree
1880   dnl
1881   if test "${with_livedotcom_tree}"
1882   then
1883     AC_MSG_WARN(--with-livedotcom-tree is deprecated. Use --with-live555-tree instead.)
1884   with_live555_tree="${with_livedotcom_tree}"
1885   fi
1886
1887   if test -z "${with_live555_tree}" -a "${CXX}" != ""; then
1888     AC_LANG_PUSH(C++)
1889     CPPFLAGS_save="${CPPFLAGS}"
1890     CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1891     if test "${SYS}" = "solaris"; then
1892       CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1893     fi
1894     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1895
1896     AC_CHECK_HEADERS(liveMedia_version.hh, [
1897       AC_MSG_CHECKING(for liveMedia version >= 1214895600 )
1898       AC_EGREP_CPP(yes,
1899         [#include <liveMedia_version.hh>
1900          #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
1901          #if LIVEMEDIA_LIBRARY_VERSION_INT < 1214895600
1902          yes
1903          #endif
1904          #endif],
1905         [AC_MSG_RESULT([no])
1906          AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia.
1907 lternatively you can use --disable-live555 to disable the liveMedia plugin.])
1908       ],[
1909          AC_MSG_RESULT([yes])
1910          ])
1911     ])
1912      other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1913      other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
1914       if test "${SYS}" = "mingw32"; then
1915         # add ws2_32 for closesocket, select, recv
1916         other_libs="$other_libs -lws2_32"
1917       fi
1918     dnl We need to check for pic because live555 don't provide shared libs
1919     dnl and we want to build a plugins so we need -fPIC on some arch.
1920     AC_CHECK_HEADERS(liveMedia.hh, [
1921       VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1922         AC_CHECK_LIB(liveMedia_pic, main, [
1923           VLC_ADD_PLUGIN([live555])
1924          VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
1925          ],[
1926         AC_CHECK_LIB(liveMedia, main, [
1927           VLC_ADD_PLUGIN([live555])
1928           VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1929         ],[],[${other_libs}]) ],[${other_libs_pic}])
1930     ],[
1931        AC_MSG_WARN([The development files for liveMedia (live555) can't be found])
1932     ])
1933     CPPFLAGS="${CPPFLAGS_save}"
1934     AC_LANG_POP(C++)
1935   else
1936     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_live555_tree})
1937     real_live555_tree="`cd ${with_live555_tree} 2>/dev/null && pwd`"
1938     if test -z "${real_live555_tree}"; then
1939       dnl  The given directory can't be found
1940       AC_MSG_RESULT(no)
1941       AC_MSG_ERROR([cannot cd to ${with_live555_tree}])
1942     fi
1943     if test -f "${real_live555_tree}/liveMedia/libliveMedia.a"; then
1944       AC_MSG_RESULT(${real_live555_tree}/liveMedia/libliveMedia.a)
1945
1946       AC_CHECK_HEADERS(${real_live555_tree}/liveMedia/include/liveMedia_version.hh,[
1947         AC_MSG_CHECKING(for liveMedia version >= 1214895600 )
1948         AC_EGREP_CPP(yes,
1949           [#include "${real_live555_tree}/liveMedia/include/liveMedia_version.hh"
1950            #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
1951            #if LIVEMEDIA_LIBRARY_VERSION_INT < 1214895600
1952            yes
1953            #endif
1954            #endif],
1955           [AC_MSG_RESULT([no])
1956            AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia.
1957 lternatively you can use --disable-live555 to disable the liveMedia plugin.])
1958         ],[
1959            AC_MSG_RESULT([yes])
1960            ])
1961       ])
1962
1963       VLC_ADD_PLUGIN([live555])
1964
1965       if test "${SYS}" = "mingw32"; then
1966         # add ws2_32 for closesocket, select, recv
1967         VLC_ADD_LIBS([live555],[-lws2_32])
1968       fi
1969
1970       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/liveMedia -lliveMedia])
1971       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1972       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/groupsock -lgroupsock])
1973       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/UsageEnvironment -lUsageEnvironment])
1974
1975       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/BasicUsageEnvironment/include])
1976       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/groupsock/include])
1977       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/liveMedia/include])
1978       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/UsageEnvironment/include ])
1979       if test "${SYS}" = "solaris"; then
1980         VLC_ADD_CXXFLAGS([live555],[-DSOLARIS])
1981       fi
1982     else
1983       dnl  The given live555 wasn't built
1984         AC_MSG_RESULT(no)
1985       if test "${enable_live555}" = "yes"; then
1986         AC_MSG_ERROR([cannot find ${real_live555_tree}/liveMedia/libliveMedia.a, make sure you compiled live555 in ${with_live555_tree}])
1987       fi        
1988     fi
1989   fi
1990 fi
1991
1992 dnl
1993 dnl  special access module for dc1394 input
1994 dnl
1995 AC_ARG_ENABLE(dc1394,
1996   [  --enable-dc1394         dc1394 access module (default disabled)])
1997 if test "${enable_dc1394}" = "yes"
1998 then
1999   AC_CHECK_HEADERS(libraw1394/raw1394.h, [
2000     AC_CHECK_LIB( raw1394, raw1394_get_nodecount, [
2001         AC_CHECK_HEADERS(libdc1394/dc1394_control.h , [
2002 dnl         AC_CHECK_LIB( dc1394_control, dc1394_setup_capture, [
2003               VLC_ADD_PLUGIN([dc1394])
2004               VLC_ADD_LIBS([dc1394],[-ldc1394_control -lraw1394])
2005 dnl         ],
2006 dnl         [
2007 dnl           AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
2008 dnl         ])
2009       ],
2010       [
2011         AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
2012       ])
2013     ],
2014     [
2015       AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
2016     ])
2017   ],
2018   [
2019     AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
2020   ])
2021 fi
2022
2023 dnl
2024 dnl dv module: digital video module check for libraw1394
2025 dnl
2026 AC_ARG_ENABLE(dv,
2027 [  --enable-dv             dv input module (default disabled)])
2028 if test "${enable_dv}" = "yes"
2029 then
2030   AC_ARG_WITH(dv-raw1394,
2031   [    --with-dv-raw1394=PATH   libraw1394 headers and libraries])
2032   AC_ARG_WITH(dv-raw1394-tree,
2033   [    --with-dv-raw1394=PATH   libraw1394 tree for static linking])
2034
2035   if test -z "${with_dv_raw1394}" -a "${with_dv_raw1394}" != ""
2036   then
2037     AC_MSG_CHECKING(for raw1394 headers in ${with_dv_raw1394})
2038     if test -f ${with_dv_raw1394}/include/libraw1394/raw1394.h
2039     then
2040       dnl  Use ${with_dv_raw1394}/include/libraw1394/raw1394.h
2041       AC_MSG_RESULT(yes)
2042       VLC_ADD_PLUGIN([access_dv])
2043       VLC_ADD_LIBS([access_dv],[-L${with_dv_raw1394}/lib -lraw1394 -lpthread])
2044       VLC_ADD_CPPFLAGS([access_dv],[-I${with_dv_raw1394}/include])
2045     else
2046       dnl  No libraw1394 could be found, sorry
2047       AC_MSG_RESULT(no)
2048       AC_MSG_ERROR([cannot find ${with_dv_raw1394}/include/libraw1394/raw1394.h])
2049     fi
2050   else
2051     AC_CHECK_HEADERS(libraw1394/raw1394.h,
2052     [ VLC_ADD_PLUGIN([access_dv])
2053         VLC_ADD_LIBS([access_dv],[-lraw1394 -lavc1394])
2054     ],[
2055         if test -n "${enable_dv}"
2056         then
2057           AC_MSG_ERROR([cannot find libraw1394 headers])
2058         fi
2059     ])
2060   fi
2061
2062   dnl Check for static linking of libraw1394
2063   if test -z "${with_dv_raw1394_tree}" -a "${with_dv_raw1394_tree}" != ""
2064   then
2065     AC_MSG_CHECKING(for libraw1394.a in ${with_dv_raw1394_tree})
2066     real_dv_raw1394_tree="`cd ${with_dv_raw1394_tree} 2>/dev/null && pwd`"
2067     if test -z "${real_dv_raw1394_tree}"
2068     then
2069       dnl  The given directory can't be found
2070       AC_MSG_RESULT(no)
2071       AC_MSG_ERROR([cannot cd to ${real_dv_raw1394_tree}])
2072     fi
2073     if test -f "${real_dv_raw1394_tree}/src/.libs/libraw1394.a"
2074     then
2075       dnl  Use a custom libraw1394
2076       AC_MSG_RESULT(${real_dv_raw1394_tree}/src/.libs/libraw1394.a)
2077       VLC_ADD_PLUGIN([access_dv])
2078       VLC_ADD_LIBS([access_dv],[-L${real_dv_raw1394_tree}/src/.libs -lraw1394])
2079       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_raw1394_tree}])
2080     else
2081       dnl  The given libraw1394 wasn't built
2082       AC_MSG_RESULT(no)
2083       AC_MSG_ERROR([cannot find ${real_dv_raw1394_tree}/src/.libs/libraw1394.a, make sure you compiled libraw1394 in ${with_dv_raw1394_tree}])
2084     fi
2085   fi
2086
2087   dnl
2088   dnl Check for libavc1394
2089   dnl
2090
2091   AC_ARG_WITH(dv-avc1394,
2092   [    --with-dv-avc1394=PATH   libavc1394 headers and libraries])
2093   AC_ARG_WITH(dv-avc1394-tree,
2094   [    --with-dv-avc1394=PATH   libavc1394 tree for static linking])
2095
2096   if test -z "${with_dv_avc1394}" -a "${with_dv_avc1394}" != ""
2097   then
2098     AC_MSG_CHECKING(for avc1394 headers in ${with_dv_avc1394})
2099     if test -f ${with_dv_avc1394}/include/libavc1394/avc1394.h
2100     then
2101       dnl  Use ${with_dv_avc1394}/include/libavc1394/avc1394.h
2102       AC_MSG_RESULT(yes)
2103       VLC_ADD_LIBS([access_dv],[-L${with_dv_avc1394}/lib -lavc1394 -lrom1394 -lpthread])
2104       VLC_ADD_CPPFLAGS([access_dv],[-I${with_avc1394}/include])
2105     else
2106       dnl  No libavc1394 could be found, sorry
2107       AC_MSG_RESULT(no)
2108       AC_MSG_ERROR([cannot find ${with_dv_avc1394}/include/libavc1394/avc1394.h])
2109     fi
2110   else
2111     AC_CHECK_HEADERS(libavc1394/avc1394.h,
2112     [ VLC_ADD_LIBS([access_dv],[-lavc1394 -lrom1394 -lpthread])
2113     ],[
2114         if test -n "${enable_dv}"
2115         then
2116           AC_MSG_ERROR([cannot find libavc1394 headers])
2117         fi
2118     ])
2119   fi
2120
2121   dnl Check for static linking of libavc1394
2122   if test -z "${with_dv_avc1394_tree}" -a "${with_dv_avc1394_tree}" != ""
2123   then
2124     AC_MSG_CHECKING(for libavc1394.a in ${with_dv_avc1394_tree})
2125     real_dv_avc1394_tree="`cd ${with_dv_avc1394_tree} 2>/dev/null && pwd`"
2126     if test -z "${real_dv_avc1394_tree}"
2127     then
2128       dnl  The given directory can't be found
2129       AC_MSG_RESULT(no)
2130       AC_MSG_ERROR([cannot cd to ${real_dv_avc1394_tree}])
2131     fi
2132     if test -f "${real_dv_avc1394_tree}/src/.libs/libavc1394.a"
2133     then
2134       dnl  Use a custom libavc1394
2135       AC_MSG_RESULT(${real_dv_avc1394_tree}/src/.libs/libavc1394.a)
2136       VLC_ADD_LIBS([access_dv],[-L${real_dv_avc1394_tree}/src/.libs -lavc1394 -lrom1394 -lpthread])
2137       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_avc1394_tree}])
2138     else
2139       dnl  The given libavc1394 wasn't built
2140       AC_MSG_RESULT(no)
2141       AC_MSG_ERROR([cannot find ${real_dv_avc1394_tree}/src/.libs/libavc1394.a, make sure you compiled libavc1394 in ${with_dv_avc1394_tree}])
2142     fi
2143   fi
2144 fi
2145
2146 dnl
2147 dnl dvdread module: check for libdvdread
2148 dnl
2149 AC_ARG_ENABLE(dvdread,
2150 [  --enable-dvdread        dvdread input module (default disabled)])
2151 if test "${enable_dvdread}" != "no"
2152 then
2153   AC_ARG_WITH(dvdread,
2154   [    --with-dvdread=PATH   libdvdread headers and libraries])
2155   AC_ARG_WITH(dvdread-tree,
2156   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
2157
2158   dnl Temporary hack (yeah, sure ;)
2159   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2160       VLC_ADD_LIBS([dvdread],[-ldvdcss])
2161   fi
2162
2163   if test -z "${with_dvdread}"
2164   then
2165     if test -z "${with_dvdread_tree}"
2166     then
2167       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
2168         [ VLC_ADD_PLUGIN([dvdread])
2169           VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
2170         ],[
2171           AC_CHECK_HEADERS(libdvdread/dvd_reader.h,
2172             [ VLC_ADD_PLUGIN([dvdread])
2173               VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
2174             ],[
2175               if test -n "${enable_dvdread}"
2176               then
2177               AC_MSG_ERROR([cannot find libdvdread headers])
2178              fi
2179            ])
2180         ])
2181     else
2182       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
2183       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
2184       if test -z "${real_dvdread_tree}"
2185       then
2186         dnl  The given directory can't be found
2187         AC_MSG_RESULT(no)
2188         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
2189       fi
2190       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
2191       then
2192         dnl  Use a custom libdvdread
2193         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
2194         VLC_ADD_PLUGIN([dvdread])
2195         VLC_ADD_LIBS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LIBS_dvdcss}])
2196         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
2197       else
2198         dnl  The given libdvdread wasn't built
2199         AC_MSG_RESULT(no)
2200         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
2201       fi
2202     fi
2203   else
2204     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
2205     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
2206     then
2207       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
2208       AC_MSG_RESULT(yes)
2209       VLC_ADD_PLUGIN([dvdread])
2210       VLC_ADD_LIBS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LIBS_dvdcss}])
2211       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
2212     else
2213       dnl  No libdvdread could be found, sorry
2214       AC_MSG_RESULT(no)
2215       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
2216     fi
2217   fi
2218 fi
2219
2220 dnl
2221 dnl  libdvdnav plugin
2222 dnl
2223 AC_ARG_ENABLE(dvdnav,
2224   [  --enable-dvdnav         dvdnav input module (default enabled)])
2225 if test "${enable_dvdnav}" != "no"
2226 then
2227   dnl Same hack than dvdread
2228   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2229       VLC_ADD_LIBS([dvdnav],[-ldvdcss])
2230   fi
2231
2232   DVDNAV_PATH="${PATH}"
2233   AC_ARG_WITH(dvdnav-config-path,
2234     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
2235     [ if test "${with_dvdnav_config_path}" != "no"
2236       then
2237         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
2238       fi ])
2239   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
2240   if test "${DVDNAV_CONFIG}" != "no"
2241   then
2242     VLC_ADD_PLUGIN([dvdnav])
2243     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
2244     VLC_ADD_LIBS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
2245   fi
2246 fi
2247
2248 dnl
2249 dnl  Windows DirectShow access module
2250 dnl
2251 AC_ARG_ENABLE(dshow,
2252   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
2253 if test "${enable_dshow}" != "no"
2254 then
2255   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2256   then
2257     AC_LANG_PUSH(C++)
2258       AC_CHECK_HEADERS(dshow.h,
2259       [ VLC_ADD_PLUGIN([dshow])
2260         VLC_ADD_CXXFLAGS([dshow],[])
2261         VLC_ADD_LIBS([dshow],[-lole32 -loleaut32 -luuid]) ])
2262     AC_LANG_POP(C++)
2263   fi
2264 fi
2265
2266 dnl
2267 dnl  Windows DirectShow BDA access module
2268 dnl
2269 AC_ARG_ENABLE(bda,
2270   AS_HELP_STRING([--enable-bda],[Win32 DirectShow BDA support (default
2271                   enabled on Win32)]))
2272 if test "${enable_bda}" != "no"
2273 then
2274   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2275   then
2276       AC_CHECK_HEADERS(dshow.h,
2277       [ VLC_ADD_PLUGIN([bda])
2278         VLC_ADD_CXXFLAGS([bda],[])
2279         VLC_ADD_LIBS([bda],[-lstrmiids -lole32 -loleaut32 -luuid]) ])
2280   fi
2281 fi
2282
2283
2284 dnl
2285 dnl  OpenCV wrapper and example filters
2286 dnl
2287 AC_ARG_ENABLE(opencv,
2288   [  --enable-opencv         OpenCV (computer vision) filter (default disabled)])
2289 if test "${enable_opencv}" = "yes" -a "${CXX}" != "";
2290 then
2291   AC_ARG_WITH(opencv-tree,
2292   [    --with-opencv-tree=PATH opencv tree for linking])
2293     if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2294     then
2295       test -z "${with_opencv_tree}" && AC_MSG_ERROR([You have to specify --with-opencv-tree])
2296       AC_MSG_CHECKING(for opencv in ${with_opencv_tree})
2297       if test -f ${with_opencv_tree}/cv/include/cv.h -a -f ${with_opencv_tree}/cxcore/include/cxcore.h \
2298         -a -f ${with_opencv_tree}/cvaux/include/cvaux.h -a -f ${with_opencv_tree}/otherlibs/highgui/highgui.h
2299       then
2300         AC_MSG_RESULT(yes)
2301         VLC_ADD_PLUGIN([opencv_wrapper])
2302         VLC_ADD_LIBS([opencv_wrapper],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2303         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])
2304         AC_LANG_PUSH(C++)
2305         VLC_ADD_PLUGIN([opencv_example])
2306         VLC_ADD_LIBS([opencv_example],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2307         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])
2308         AC_LANG_POP(C++)
2309           else
2310         dnl  No opencv could be found, sorry
2311         AC_MSG_RESULT(no)
2312         AC_MSG_ERROR([cannot find opencv in ${with_opencv_tree}])
2313           fi
2314     else
2315       PKG_CHECK_MODULES(OPENCV, opencv,
2316         [
2317           VLC_ADD_PLUGIN([opencv_example])
2318           VLC_ADD_PLUGIN([opencv_wrapper])
2319           VLC_ADD_LIBS([opencv_example opencv_wrapper],[${OPENCV_LIBS}])
2320           VLC_ADD_CFLAGS([opencv_wrapper],[${OPENCV_CFLAGS}])
2321           VLC_ADD_CXXFLAGS([opencv_example],[${OPENCV_CFLAGS}])
2322         ],
2323         [AC_MSG_ERROR([libopencv not found!])]
2324       )
2325     fi
2326 fi
2327
2328
2329 dnl
2330 dnl  libsmbclient plugin
2331 dnl
2332 AC_ARG_ENABLE(smb,
2333   [  --enable-smb            smb input module (default enabled)])
2334 if test "${enable_smb}" != "no"; then
2335   AC_CHECK_HEADERS(libsmbclient.h,
2336     [ VLC_ADD_PLUGIN([access_smb])
2337       VLC_ADD_LIBS([access_smb],[-lsmbclient]) ],
2338     [ if test -n "${enable_smb}"; then
2339         AC_MSG_ERROR([cannot find libsmbclient headers])
2340      fi ])
2341   AC_CHECK_MEMBER([struct _SMBCCTX.close_fn],
2342     AC_DEFINE([HAVE__SMBCCTX_CLOSE_FN], 1, [Define if samba has _SMBCCTX.close_fn]),,
2343     [#include <libsmbclient.h>])
2344 fi
2345
2346 dnl
2347 dnl  libdvbpsi ts demux/mux
2348 dnl
2349 AC_ARG_ENABLE(dvbpsi,
2350   [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
2351 have_dvbpsi=no
2352 if test "${enable_dvbpsi}" != "no"
2353 then
2354   AC_ARG_WITH(dvbpsi,
2355   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
2356   AC_ARG_WITH(dvbpsi,
2357   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
2358   case "${with_dvbpsi}" in
2359   ""|yes)
2360     if test -z "${with_dvbpsi_tree}"
2361     then
2362       AC_CHECK_HEADERS(dvbpsi/dr.h,
2363         [ VLC_ADD_PLUGIN([ts])
2364           if test "${enable_sout}" != "no"; then
2365             VLC_ADD_PLUGIN([mux_ts])
2366           fi
2367           VLC_ADD_LIBS([mux_ts ts dvb],[-ldvbpsi])
2368           have_dvbpsi=yes],
2369         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
2370         [#if defined( HAVE_STDINT_H )
2371 #   include <stdint.h>
2372 #elif defined( HAVE_INTTYPES_H )
2373 #   include <inttypes.h>
2374 #endif
2375 #include <dvbpsi/dvbpsi.h>
2376 #include <dvbpsi/descriptor.h>
2377 #include <dvbpsi/pat.h>
2378 #include <dvbpsi/pmt.h>])
2379     else
2380       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
2381       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
2382       if test -z "${real_dvbpsi_tree}"
2383       then
2384         dnl  The given directory can't be found
2385         AC_MSG_RESULT(no)
2386         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
2387       fi
2388       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
2389       then
2390         dnl  Use a custom libdvbpsi
2391         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
2392         VLC_ADD_PLUGIN([ts])
2393         if test "${enable_sout}" != "no"; then
2394           VLC_ADD_PLUGIN([mux_ts])
2395         fi
2396         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
2397         VLC_ADD_LIBS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
2398         have_dvbpsi=yes
2399       else
2400         dnl  The given libdvbpsi wasn't built
2401         AC_MSG_RESULT(no)
2402         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
2403       fi
2404     fi
2405   ;;
2406   no)
2407     dnl  Compile without dvbpsi
2408   ;;
2409   *)
2410     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
2411     if test -z "${with_dvbpsi}"
2412     then
2413       LDFLAGS_test=""
2414       CPPFLAGS_test=""
2415     else
2416       LDFLAGS_test="-L${with_dvbpsi}/lib"
2417       CPPFLAGS_test="-I${with_dvbpsi}/include"
2418     fi
2419     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
2420     AC_CHECK_HEADERS([dvbpsi/dr.h],[
2421       VLC_ADD_PLUGIN([ts])
2422       if test "${enable_sout}" != "no"; then
2423         VLC_ADD_PLUGIN([mux_ts])
2424       fi
2425       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
2426       VLC_ADD_LIBS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
2427       have_dvbpsi=yes
2428     ],[
2429       if test -n "${enable_dvbpsi}"
2430       then
2431         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])
2432       fi
2433     ])
2434     CPPFLAGS="${CPPFLAGS_save}"
2435   ;;
2436   esac
2437   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
2438     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
2439   ], [], [${LIBS_ts}])
2440
2441 fi
2442
2443 dnl
2444 dnl  Video4Linux plugin
2445 dnl
2446 AC_ARG_ENABLE(v4l,
2447   [  --enable-v4l            Video4Linux input support (default disabled)])
2448 if test "${enable_v4l}" = "yes"
2449 then
2450   AC_ARG_WITH(v4l,
2451     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
2452   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
2453   then
2454     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
2455   fi
2456
2457   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
2458   AC_CHECK_HEADERS(linux/videodev.h, [
2459     VLC_ADD_PLUGIN([v4l])
2460   ],[])
2461   CPPFLAGS="${CPPFLAGS_save}"
2462 fi
2463
2464 dnl
2465 dnl  Video4Linux2 plugin
2466 dnl
2467 AC_ARG_ENABLE(v4l2,
2468   [  --enable-v4l2           Video4Linux2 input support (default enabled)])
2469 if test "${enable_v4l2}" != "no"
2470 then
2471   AC_ARG_WITH(v4l2,
2472     [    --with-v4l2=PATH       path to a v4l2-enabled kernel tree],[],[])
2473   if test "${with_v4l2}" != "no" -a -n "${with_v4l2}"
2474   then
2475     VLC_ADD_CPPFLAGS([v4l2],[-I${with_v4l2}/include])
2476   fi
2477
2478   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l2}"
2479   AC_CHECK_HEADERS(linux/videodev2.h, [
2480     VLC_ADD_PLUGIN([v4l2])
2481   ],[])
2482   CPPFLAGS="${CPPFLAGS_save}"
2483 fi
2484
2485 dnl
2486 dnl libv4l2 support for video4linux.
2487 dnl
2488 AC_ARG_ENABLE( libv4l2,
2489   [  --enable-libv4l2        Libv4l2 Video4Linux2 support (default enabled)])
2490 if test "${enable_libv4l2}" != "no" -a "${enable_v4l2}" != "no"
2491 then
2492     PKG_CHECK_MODULES( LIBV4L2, libv4l2, [
2493       VLC_ADD_LDFLAGS([v4l2],[${LIBV4L2_LIBS}])
2494       VLC_ADD_CFLAGS([v4l2],[${LIBV4L2_CFLAGS}])
2495       AC_DEFINE(HAVE_LIBV4L2, 1, Define if libv4l is available)],
2496       AC_MSG_WARN([LibV4L2 support disabled because libv4l2 development headers were not found])
2497     )
2498 fi
2499
2500 dnl
2501 dnl  special access module for Hauppauge PVR cards
2502 dnl
2503 AC_ARG_ENABLE(pvr,
2504   [  --enable-pvr            PVR cards access module (default disabled)])
2505 if test "${enable_pvr}" = "yes"
2506 then
2507   VLC_ADD_PLUGIN([pvr])
2508   AC_ARG_WITH(videodev2,
2509     [  --with-videodev2=FILE   Location of videodev2.h file (default /usr/include/linux/videodev2.h)],[],[])
2510   if test "${with_videodev2}" != "no" -a -n "${with_videodev2}"
2511   then
2512     AC_DEFINE_UNQUOTED(VIDEODEV2_H_FILE, "${with_videodev2}", [Location of videodev2.h])
2513   fi
2514
2515   AC_CACHE_CHECK([for new linux/videodev2.h],
2516       [ac_cv_new_linux_videodev2_h],
2517       [AC_TRY_COMPILE([
2518           #include <sys/types.h>
2519           #   ifdef VIDEODEV2_H_FILE
2520           #   include VIDEODEV2_H_FILE
2521           #   else
2522           #   include <linux/videodev2.h>
2523           #   endif
2524           ],
2525           [struct v4l2_ext_controls ctrls; ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG; ],
2526           ac_cv_new_linux_videodev2_h=yes,
2527           ac_cv_new_linux_videodev2_h=no)])
2528   if test "${ac_cv_new_linux_videodev2_h}" != "no"; then
2529     AC_DEFINE(HAVE_NEW_LINUX_VIDEODEV2_H, 1, [Define if new linux/videodev2.h present])
2530   fi
2531 fi
2532
2533 dnl
2534 dnl  gnomeVFS access module
2535 dnl
2536 AC_ARG_ENABLE(gnomevfs,
2537   [  --enable-gnomevfs       GnomeVFS access module (default disabled)])
2538 if test "${enable_gnomevfs}" = "yes"
2539 then
2540   PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0,
2541     VLC_ADD_LIBS([access_gnomevfs],[$GNOMEVFS_LIBS])
2542     VLC_ADD_CPPFLAGS([access_gnomevfs],[$GNOMEVFS_CPPFLAGS])
2543     VLC_ADD_CFLAGS([access_gnomevfs],[$GNOMEVFS_CFLAGS])
2544     VLC_ADD_PLUGIN([access_gnomevfs]),
2545     AC_MSG_WARN([GnomeVFS support disabled because GnomeVFS development headers not found]))
2546 fi
2547
2548 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
2549 AC_ARG_ENABLE(libcdio,
2550   [  --enable-libcdio        CD input and control library support (default enabled)])
2551
2552 AC_ARG_ENABLE(vcdinfo,
2553   [  --enable-libvcdinfo     VCD information library support (default enabled)])
2554
2555 have_libcdio=no
2556 have_libvcdinfo=no
2557 if test "${enable_libcdio}" != "no"
2558 then
2559   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.78.2,
2560      have_libcdio=yes
2561      AC_DEFINE(HAVE_LIBCDIO, 1,
2562      [Define if you have libcdio 0.78.2 or greater installed]),
2563      [AC_MSG_WARN(CD Reading and information library not found)])
2564
2565   if test "${enable_vcdinfo}" != "no"
2566   then
2567     PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.22,
2568        [have_libvcdinfo=yes
2569        AC_DEFINE(HAVE_VCDINFO, 1,
2570        [Define if you have libvcdinfo 0.7.22 or greater installed])],
2571        [AC_MSG_WARN(VCD information library not found)])
2572   fi
2573 fi
2574
2575 dnl
2576 dnl  VCDX and CDDAX modules
2577 dnl
2578 AC_ARG_ENABLE(cddax,
2579   AS_HELP_STRING([--enable-cddax],[audio CD plugin with CD Text and CD paranoia
2580                   via libcdio (default disabled)]))
2581
2582 AC_ARG_ENABLE(libcddb,
2583   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
2584
2585 if test "${enable_cddax}" = "yes"
2586 then
2587   if test "$have_libcdio" = "yes"
2588   then
2589     AC_DEFINE(HAVE_CDDAX, 1, [Define for the audio CD plugin using libcdio])
2590     VLC_ADD_LIBS([cddax],[$LIBCDIO_LIBS])
2591     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
2592     VLC_ADD_PLUGIN([cddax])
2593     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
2594     VLC_ADD_LIBS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
2595     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
2596   else
2597     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
2598     HAVE_CDDAX=no
2599   fi
2600
2601   if test "$enable_libcddb" != "no"; then
2602     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2603       HAVE_LIBCDDB=yes
2604       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2605       VLC_ADD_LIBS([cddax],[$LIBCDDB_LIBS])
2606       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
2607       ],
2608       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled)
2609       HAVE_LIBCDDB=no])
2610   fi
2611
2612 fi
2613
2614 AC_ARG_ENABLE(vcdx,
2615   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2616
2617 if test "${enable_vcdx}" = "yes"
2618 then
2619   if test "${have_libvcdinfo}" = "yes"
2620   then
2621     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2622     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2623   else
2624     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
2625     HAVE_VCDX=no
2626   fi
2627
2628   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
2629    [VLC_ADD_LIBS([vcdx],[$LIBISO9660_LIBS])
2630     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
2631     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
2632     HAVE_VCDX=no])
2633
2634   if test "$have_libvcdinfo" = "yes"
2635   then
2636     AC_DEFINE(HAVE_VCDX, 1,
2637     [Define for the VCD plugin using libcdio/libvcdinfo])
2638     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2639     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2640     VLC_ADD_PLUGIN([vcdx])
2641   else
2642     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
2643     HAVE_VCDX=no
2644   fi
2645 fi
2646
2647 dnl
2648 dnl  Built-in CD-DA and VCD module
2649 dnl
2650 AC_ARG_ENABLE(cdda,
2651   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
2652
2653 AC_ARG_ENABLE(vcd,
2654   [  --enable-vcd            built-in VCD (default enabled)])
2655
2656 if test "${enable_vcd}" != "no"
2657 then
2658   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2659   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2660     AC_MSG_RESULT(yes)
2661     VLC_ADD_PLUGIN([vcd])
2662     VLC_ADD_PLUGIN([cdda])
2663   ],[
2664     AC_MSG_RESULT(no)
2665   ])
2666
2667   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2668   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2669     AC_MSG_RESULT(yes)
2670     VLC_ADD_PLUGIN([vcd])
2671     VLC_ADD_PLUGIN([cdda])
2672     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2673   ],[
2674     AC_MSG_RESULT(no)
2675   ])
2676
2677   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2678   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2679     AC_MSG_RESULT(yes)
2680     VLC_ADD_PLUGIN([vcd])
2681     VLC_ADD_PLUGIN([cdda])
2682     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2683   ],[
2684     AC_MSG_RESULT(no)
2685   ])
2686
2687   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2688   then
2689     VLC_ADD_PLUGIN([vcd])
2690     VLC_ADD_PLUGIN([cdda])
2691   fi
2692
2693   if test "${SYS}" = "darwin"
2694   then
2695     VLC_ADD_PLUGIN([vcd])
2696     VLC_ADD_PLUGIN([cdda])
2697     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-Wl,-framework,IOKit,-framework,CoreFoundation])
2698     VLC_ADD_LIBS([vcdx cddax cdda],[-liconv])
2699   fi
2700
2701   if test "$enable_libcddb" != "no"; then
2702     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2703       HAVE_LIBCDDB=yes
2704       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2705       VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2706       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2707       ],:
2708       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled)
2709       HAVE_LIBCDDB=no])
2710   fi
2711 fi
2712
2713 dnl
2714 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2715 dnl
2716 AC_ARG_ENABLE(dvb,
2717   [  --enable-dvb            DVB-S/T/C card support (default enabled)])
2718
2719 if test "${enable_dvb}" != "no"
2720 then
2721     AS_IF([test "${have_dvbpsi}" = "yes" ],[
2722     AC_ARG_WITH(dvb,
2723      [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
2724      if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2725      then
2726        VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2727      fi
2728      CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2729      AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2730      VLC_ADD_PLUGIN([dvb])
2731      ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2732      CPPFLAGS="${CPPFLAGS_save}"
2733    ],[
2734      AC_MSG_WARN([the dvb access module requires libdvbpsi])
2735     ])
2736 fi
2737
2738 dnl
2739 dnl  Screen capture module
2740 dnl
2741 AC_ARG_ENABLE(screen,
2742   [  --enable-screen         Screen capture support (default enabled)])
2743 if test "${enable_screen}" != "no"; then
2744   if test "${SYS}" = "darwin"; then
2745     AC_CHECK_HEADERS(OpenGL/gl.h, [
2746       AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2747         VLC_ADD_PLUGIN([screen])
2748         VLC_ADD_LDFLAGS([screen],[-Wl,-framework,OpenGL,-framework,ApplicationServices])
2749       ])
2750     ])
2751   elif test "${SYS}" = "mingw32"; then
2752     VLC_ADD_PLUGIN([screen])
2753     VLC_ADD_LIBS([screen],[-lgdi32])
2754   elif test "${SYS}" = "mingwce"; then
2755     CPPFLAGS="${CPPFLAGS_save}"
2756   elif test "${SYS}" = "beos"; then
2757     VLC_ADD_PLUGIN([screen])
2758     VLC_ADD_CXXFLAGS([screen],[])
2759     VLC_ADD_LIBS([screen],[-lbe])
2760   fi
2761 fi
2762
2763 dnl
2764 dnl  ipv6 plugin - not for QNX yet
2765 dnl
2766 have_ipv6=no
2767 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2768   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2769 ])
2770
2771 AS_IF([test "${have_ipv6}" = "yes"], [
2772   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2773
2774
2775 AC_CHECK_FUNCS(inet_ntop,[
2776   AC_DEFINE(HAVE_INET_NTOP, 1, [Define to 1 if you have inet_ntop().])])
2777
2778
2779 dnl
2780 dnl  ogg demux plugin
2781 dnl
2782 AC_ARG_ENABLE(ogg,
2783   [  --enable-ogg            Ogg demux support (default enabled)])
2784 if test "${enable_ogg}" != "no"
2785 then
2786   AC_ARG_WITH(ogg-tree,
2787   [    --with-ogg-tree=PATH  ogg tree for static linking])
2788   if test -n "${with_ogg_tree}"
2789   then
2790     AC_MSG_CHECKING(for libogg.a in ${with_ogg_tree})
2791     real_ogg_tree="`cd ${with_ogg_tree} 2>/dev/null && pwd`"
2792     if test -z "${real_ogg_tree}"
2793     then
2794       dnl  The given directory can't be found
2795       AC_MSG_RESULT(no)
2796       AC_MSG_ERROR([cannot cd to ${with_ogg_tree}])
2797     fi
2798     if test -f "${real_ogg_tree}/src/.libs/libogg.a"
2799     then
2800       dnl  Use a custom ogg
2801       AC_MSG_RESULT(${real_ogg_tree}/src/.libs/libogg.a)
2802       VLC_ADD_PLUGIN([ogg])
2803       if test "${enable_sout}" != "no"; then
2804         VLC_ADD_PLUGIN([mux_ogg])
2805       fi
2806       VLC_ADD_LIBS([ogg mux_ogg speex vorbis],[${real_ogg_tree}/src/.libs/libogg.a])
2807       VLC_ADD_CFLAGS([ogg mux_ogg speex vorbis],[-I${real_ogg_tree}/include])
2808     else
2809       dnl  The given ogg wasn't built
2810       AC_MSG_RESULT(no)
2811       AC_MSG_ERROR([cannot find ${real_ogg_tree}/src/.libs/libogg.a, make sure you compiled ogg in ${with_ogg_tree}])
2812     fi
2813   else
2814     AC_CHECK_HEADERS(ogg/ogg.h, [
2815       AC_CHECK_LIB( ogg, oggpack_read, [
2816         VLC_ADD_PLUGIN([ogg])
2817         if test "${enable_sout}" != "no"; then
2818           VLC_ADD_PLUGIN([mux_ogg])
2819         fi
2820         VLC_ADD_LIBS([ogg mux_ogg],[-logg])])
2821      ],[])
2822   fi
2823 fi
2824
2825 dnl
2826 dnl  matroska demux plugin
2827 dnl
2828 AC_ARG_ENABLE(mkv,
2829   [  --enable-mkv            Matroska demux support (default enabled)])
2830 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2831   AC_LANG_PUSH(C++)
2832   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2833     AC_MSG_CHECKING(for libebml version >= 0.7.7)
2834     AC_EGREP_CPP(yes,
2835       [#include <ebml/EbmlVersion.h>
2836        #ifdef LIBEBML_VERSION
2837        #if LIBEBML_VERSION >= 0x000706
2838        yes
2839        #endif
2840        #endif],
2841       [AC_MSG_RESULT([yes])
2842         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2843           AC_MSG_CHECKING(for libmatroska version >= 0.8.0)
2844           AC_EGREP_CPP(yes,
2845             [#include <matroska/KaxVersion.h>
2846              #ifdef LIBMATROSKA_VERSION
2847              #if LIBMATROSKA_VERSION >= 0x000705
2848              yes
2849              #endif
2850              #endif],
2851             [AC_MSG_RESULT([yes])
2852               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2853               VLC_ADD_CXXFLAGS([mkv],[])
2854               if test "${SYS}" = "darwin"; then
2855                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2856               fi
2857               AC_CHECK_LIB(ebml_pic, main, [
2858                 VLC_ADD_PLUGIN([mkv])
2859                 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2860               ],
2861                 AC_CHECK_LIB(ebml, main, [
2862                   VLC_ADD_PLUGIN([mkv])
2863                   VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2864                 ])
2865               )
2866             ],
2867             [AC_MSG_RESULT([no])
2868               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.])
2869           ])
2870         ])
2871       ],
2872       [AC_MSG_RESULT([no])
2873         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.])
2874     ])
2875   ])
2876   AC_LANG_POP(C++)
2877 fi
2878
2879 dnl
2880 dnl  modplug demux plugin
2881 dnl
2882 AC_ARG_ENABLE(mod,
2883   [  --enable-mod            Mod demux support (default enabled)])
2884 if test "${enable_mod}" != "no"
2885 then
2886   AC_ARG_WITH(mod-tree,
2887   [    --with-mod-tree=PATH mod tree for static linking])
2888   if test -n "${with_mod_tree}"
2889   then
2890     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2891     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2892     if test -z "${real_mod_tree}"
2893     then
2894       dnl  The given directory can't be found
2895       AC_MSG_RESULT(no)
2896       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2897     fi
2898     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2899     then
2900       dnl  Use a custom mod
2901       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2902       VLC_ADD_PLUGIN([mod])
2903       VLC_ADD_LIBS([mod],[${real_mod_tree}/src/.libs/libmodplug.a -lstdc++])
2904       VLC_ADD_CXXFLAGS([mod],[-I${real_mod_tree}/include])
2905     else
2906       dnl  The given mod wasn't built
2907       AC_MSG_RESULT(no)
2908       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2909     fi
2910   else
2911     AC_CHECK_HEADERS(libmodplug/modplug.h, [
2912       VLC_ADD_PLUGIN([mod])
2913       VLC_ADD_CXXFLAGS([mod],[])
2914       VLC_ADD_LIBS([mod],[-lmodplug -lstdc++])])
2915   fi
2916 fi
2917
2918 dnl
2919 dnl  mpc demux plugin
2920 dnl
2921 AC_ARG_ENABLE(mpc,
2922   [  --enable-mpc            Mpc demux support (default enabled)])
2923 if test "${enable_mpc}" != "no"
2924 then
2925   AC_CHECK_HEADERS(mpcdec/mpcdec.h, [
2926     VLC_ADD_PLUGIN([mpc])
2927     VLC_ADD_LIBS([mpc],[-lmpcdec])])
2928 fi
2929
2930 dnl
2931 dnl  game music emu demux plugin
2932 dnl
2933 AC_ARG_ENABLE(gme,
2934   [  --enable-gme            Game Music Emu demux support (default enabled)])
2935 if test "${enable_gme}" != "no" -a "${CXX}" != "";
2936 then
2937   AC_LANG_PUSH(C++)
2938   AC_ARG_WITH(gme-tree,
2939   [    --with-gme-tree=PATH gme tree for static linking])
2940   if test -n "${with_gme_tree}"
2941   then
2942     AC_MSG_CHECKING(for libgme.a in ${with_mod_tree})
2943     real_gme_tree="`cd ${with_gme_tree} 2>/dev/null && pwd`"
2944     if test -z "${real_gme_tree}"
2945     then
2946       dnl  The given directory can't be found
2947       AC_MSG_RESULT(no)
2948       AC_MSG_ERROR([cannot cd to ${with_gme_tree}])
2949     fi
2950     if test -f "${real_gme_tree}/gme/libgme.a"
2951     then
2952       dnl  Use a custom gme
2953       AC_MSG_RESULT(${real_gme_tree}/gme/libgme.a)
2954       VLC_ADD_PLUGIN([gme])
2955       VLC_ADD_LIBS([gme],[${real_gme_tree}/gme/libgme.a])
2956       VLC_ADD_CXXFLAGS([gme],[-I${real_gme_tree}/gme])
2957     else
2958       dnl  The given gme wasn't built
2959       AC_MSG_RESULT(no)
2960       AC_MSG_ERROR([cannot find ${real_mod_tree}/gme/libgme.a, make sure you compiled gme in ${with_gme_tree}])
2961     fi
2962   else
2963       AC_MSG_WARN([only static linking is available, you must provide a gme-tree])
2964   fi
2965   AC_LANG_POP(C++)
2966 fi
2967
2968 dnl
2969 dnl  Codec plugins
2970 dnl
2971
2972 AC_ARG_WITH(,[Codec plugins:])
2973
2974 dnl
2975 dnl wmafixed plugin
2976 dnl
2977 AC_ARG_ENABLE(wma-fixed,
2978   [  --enable-wma-fixed      libwma-fixed module (default disabled)])
2979 if test "${enable_wma_fixed}" = "yes"
2980 then
2981   VLC_ADD_PLUGIN([wma_fixed])
2982 fi
2983
2984 dnl
2985 dnl shine fixed point mp3 encoder
2986 dnl
2987 AC_ARG_ENABLE(shine,
2988   [  --enable-shine          shine mp3 encoding module (default disabled)])
2989 if test "${enable_shine}" = "yes"
2990 then
2991   VLC_ADD_PLUGIN([shine])
2992 fi
2993
2994 dnl
2995 dnl  mad plugin
2996 dnl
2997 AC_ARG_ENABLE(mad,
2998   [  --enable-mad            libmad module (default enabled)])
2999 if test "${enable_mad}" != "no"
3000 then
3001   AC_ARG_WITH(mad,
3002     [    --with-mad=PATH       path to libmad],[],[])
3003   if test "${with_mad}" != "no" -a -n "${with_mad}"
3004   then
3005     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
3006     VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
3007   fi
3008
3009   AC_ARG_WITH(mad-tree,
3010     [    --with-mad-tree=PATH   mad tree for static linking],[],[])
3011   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
3012   then
3013     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
3014     if test -z "${real_mad_tree}"
3015     then
3016       dnl  The given directory can't be found
3017       AC_MSG_RESULT(no)
3018       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
3019     fi
3020     dnl  Use a custom libmad
3021     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
3022     if test -f ${real_mad_tree}/mad.h
3023     then
3024       AC_MSG_RESULT(yes)
3025       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
3026       VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
3027       LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
3028       AC_CHECK_LIB(mad, mad_bit_init, [
3029         VLC_ADD_PLUGIN([mpgatofixed32])
3030         VLC_ADD_LIBS([mpgatofixed32],[-lmad])
3031         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
3032       ],[])
3033       LDFLAGS="${LDFLAGS_save}"
3034     else
3035       AC_MSG_RESULT(no)
3036       AC_MSG_ERROR([the specified tree doesn't have mad.h])
3037     fi
3038   else
3039     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
3040     LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
3041     AC_CHECK_HEADERS(mad.h, ,
3042       [ 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.]) ])
3043     AC_CHECK_LIB(mad, mad_bit_init, [
3044       VLC_ADD_PLUGIN([mpgatofixed32])
3045       VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
3046       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
3047     CPPFLAGS="${CPPFLAGS_save}"
3048     LDFLAGS="${LDFLAGS_save}"
3049   fi
3050 fi
3051
3052 dnl
3053 dnl   libid3tag support (FIXME!!! doesn't work with new input)
3054 dnl
3055 AC_ARG_ENABLE( id3tag,
3056 [  --disable-id3tag        id3tag metadata reader plugin (default disabled)])
3057 AS_IF([test "${enable_id3tag}" = "yes"], [
3058   AC_CHECK_HEADERS(id3tag.h, [
3059       AS_IF([test "${have_zlib}" = "yes"],[
3060           VLC_ADD_LIBS([id3tag],[-lid3tag -lz])
3061           VLC_ADD_PLUGIN([id3tag])
3062        ])
3063     ])
3064 ])
3065
3066 dnl
3067 dnl  avcodec decoder/encoder plugin
3068 dnl
3069
3070 if test "${with_ffmpeg_tree}"
3071 then
3072   AC_MSG_WARN([--with-ffmpeg-tree is deprecated. Use PKG_CONFIG_PATH instead.])
3073 fi
3074
3075 AC_ARG_ENABLE(avcodec,
3076 [  --enable-avcodec        libavcodec codec (default enabled)])
3077 if test "${enable_avcodec}" != "no"
3078 then
3079   PKG_CHECK_MODULES(AVCODEC,[libavcodec libavutil],
3080     [
3081       VLC_SAVE_FLAGS
3082       CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
3083       CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
3084       AC_CHECK_HEADERS(libavcodec/avcodec.h ffmpeg/avcodec.h)
3085       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
3086       VLC_ADD_PLUGIN([avcodec])
3087       VLC_ADD_LIBS([avcodec],[$AVCODEC_LIBS])
3088       VLC_ADD_CFLAGS([avcodec],[$AVCODEC_CFLAGS])
3089       VLC_RESTORE_FLAGS
3090     ],[
3091       AC_MSG_FAILURE([Could not find libavcodec or libavutil. Use --disable-avcodec to ignore this error.])
3092   ])
3093 fi
3094
3095 dnl
3096 dnl  avformat demuxer/muxer plugin
3097 dnl
3098
3099 AC_ARG_ENABLE(avformat,
3100 [  --enable-avformat       libavformat containers (default enabled)])
3101 if test "${enable_avformat}" != "no"
3102 then
3103   PKG_CHECK_MODULES(AVFORMAT,[libavformat libavutil],
3104     [
3105       VLC_SAVE_FLAGS
3106       CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
3107       CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
3108       AC_CHECK_HEADERS(libavformat/avformat.h ffmpeg/avformat.h)
3109       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
3110       VLC_ADD_PLUGIN([avformat])
3111       VLC_ADD_LIBS([avformat],[$AVFORMAT_LIBS])
3112       VLC_ADD_CFLAGS([avformat],[$AVFORMAT_CFLAGS])
3113       VLC_RESTORE_FLAGS
3114     ],[
3115       AC_MSG_FAILURE([Could not find libavformat or libavutil. Use --disable-avformat to ignore this error.])
3116   ])
3117 fi
3118
3119 dnl
3120 dnl  swscale image scaling and conversion plugin
3121 dnl
3122
3123 AC_ARG_ENABLE(swscale,
3124   AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
3125                   (default enabled)]))
3126 if test "${enable_swscale}" != "no"
3127 then
3128   PKG_CHECK_MODULES(SWSCALE,[libswscale],
3129     [
3130       VLC_SAVE_FLAGS
3131       CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
3132       CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
3133       AC_CHECK_HEADERS(libswscale/swscale.h ffmpeg/swscale.h)
3134       VLC_ADD_PLUGIN([swscale])
3135       VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
3136       VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
3137       VLC_RESTORE_FLAGS
3138     ],[
3139       AC_MSG_WARN([Could not find libswscale. Trying to enable imgresample.])
3140       enable_imgresample=yes
3141   ])
3142 fi
3143
3144 dnl
3145 dnl  avcodec (deprecated API) image scaling and conversion plugin
3146 dnl
3147 dnl  This is build as a seperate module than the avcodec one to prevent
3148 dnl  stupid run time library load errors from disabling most codecs
3149 dnl  from VLC.
3150 dnl
3151
3152 AC_ARG_ENABLE(imgresample,
3153   AS_HELP_STRING([--enable-imgresample],[deprecated libavcodec image scaling
3154                   and conversion (default disabled)]))
3155 if test "${enable_imgresample}" = "yes"
3156 then
3157   PKG_CHECK_MODULES(IMGRESAMPLE,[libavcodec],
3158     [
3159       VLC_SAVE_FLAGS
3160       CPPFLAGS="${CPPFLAGS} ${IMGRESAMPLE_CFLAGS}"
3161       CFLAGS="${CFLAGS} ${IMGRESAMPLE_CFLAGS}"
3162       AC_CHECK_HEADERS(libavcodec/avcodec.h ffmpeg/avcodec.h)
3163       AC_CHECK_LIB(avcodec,img_resample,
3164         [
3165           VLC_ADD_PLUGIN([imgresample])
3166           VLC_ADD_LIBS([imgresample],[$IMGRESAMPLE_LIBS])
3167           VLC_ADD_CFLAGS([imgresample],[$IMGRESAMPLE_CFLAGS])
3168         ],[
3169           AC_MSG_WARN([Could not find img_resample in libavcodec.])
3170           if test "${enable_swscale}" != "no"
3171           then
3172             AC_MSG_FAILURE([swscale (and its fallback module imgresample) support will be missing. Use --disable-swscale to ignore this error. (This basically means that you will be missing any good software scaling module and some video chroma converters.)])
3173           fi
3174         # That sed hack to add -rpath is kind of ugly but at least it fixes
3175         # detection when linking against a shared libavcodec with
3176         # a libavutil not in one of your ld.so.conf directories.
3177         # (for example a local install)
3178         ],[${IMGRESAMPLE_LIBS} `echo ${IMGRESAMPLE_LIBS}|sed s'/-L/-Wl,-rpath=/'`])
3179       VLC_RESTORE_FLAGS
3180     ],[
3181       AC_MSG_WARN([Could not find libavcodec.])
3182   ])
3183 fi
3184
3185 dnl
3186 dnl  postproc plugin
3187 dnl
3188
3189 AC_ARG_ENABLE(postproc,
3190 [  --enable-postproc       libpostproc image post-processing (default enabled)])
3191 if test "${enable_postproc}" != "no"
3192 then
3193   PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
3194     [
3195       VLC_SAVE_FLAGS
3196       CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
3197       CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
3198       AC_CHECK_HEADERS(libpostproc/postproc.h postproc/postprocess.h)
3199       VLC_ADD_PLUGIN([postproc])
3200       VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS])
3201       VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS])
3202       VLC_RESTORE_FLAGS
3203     ],[
3204       AC_MSG_ERROR([Could not find libpostproc.])
3205   ])
3206 fi
3207
3208 dnl
3209 dnl  faad decoder plugin
3210 dnl
3211 AC_ARG_ENABLE(faad,
3212 [  --enable-faad           faad codec (default disabled)])
3213 if test "${enable_faad}" = "yes"
3214 then
3215   AC_ARG_WITH(faad-tree,
3216   [    --with-faad-tree=PATH faad tree for static linking])
3217   if test -n "${with_faad_tree}"
3218   then
3219     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
3220     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
3221     if test -z "${real_faad_tree}"
3222     then
3223       dnl  The given directory can't be found
3224       AC_MSG_RESULT(no)
3225       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
3226     fi
3227     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
3228     then
3229       dnl  Use a custom faad
3230       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
3231       VLC_ADD_PLUGIN([faad])
3232       VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
3233       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
3234     else
3235       dnl  The given libfaad wasn't built
3236       AC_MSG_RESULT(no)
3237       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
3238     fi
3239   else
3240     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
3241     LDFLAGS="${LDFLAGS_save} ${LIBS_faad}"
3242     AC_CHECK_HEADERS(faad.h, ,
3243       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
3244     AC_CHECK_LIB(faad, faacDecOpen, [
3245       VLC_ADD_PLUGIN([faad])
3246       VLC_ADD_LIBS([faad],[-lfaad]) ],
3247       AC_CHECK_LIB(faad, NeAACDecOpen, [
3248         VLC_ADD_PLUGIN([faad])
3249         VLC_ADD_LIBS([faad],[-lfaad]) ],
3250         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
3251     LDFLAGS="${LDFLAGS_save}"
3252     CPPFLAGS="${CPPFLAGS_save}"
3253   fi
3254 fi
3255
3256 dnl
3257 dnl twolame encoder plugin
3258 dnl
3259 AC_ARG_ENABLE(twolame,
3260 [  --enable-twolame        twolame codec (default disabled)])
3261 if test "${enable_twolame}" = "yes"
3262 then
3263   AC_ARG_WITH(twolame-tree,
3264   [    --with-twolame-tree=PATH twolame tree for static linking])
3265   if test -n "${with_twolame_tree}"
3266   then
3267     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
3268     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
3269     if test -z "${real_twolame_tree}"
3270     then
3271       dnl  The given directory can't be found
3272       AC_MSG_RESULT(no)
3273       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
3274     fi
3275     if test -f "${real_twolame_tree}/libtwolame/.libs/libtwolame.a"
3276     then
3277       dnl  Use a custom twolame
3278       AC_MSG_RESULT(${real_twolame_tree}/libtwolame/.libs/libtwolame.a)
3279       VLC_ADD_PLUGIN([twolame])
3280       VLC_ADD_LIBS([twolame],[${real_twolame_tree}/libtwolame/.libs/libtwolame.a])
3281       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/libtwolame -DLIBTWOLAME_STATIC])
3282     else
3283       dnl  The given libtwolame wasn't built
3284       AC_MSG_RESULT(no)
3285       AC_MSG_ERROR([cannot find ${real_twolame_tree}/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
3286     fi
3287   else
3288     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame} -DLIBTWOLAME_STATIC"
3289     LDFLAGS="${LDFLAGS_save} ${LIBS_twolame}"
3290     AC_CHECK_HEADERS(twolame.h, ,
3291       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
3292     AC_CHECK_LIB(twolame, twolame_init, [
3293       VLC_ADD_PLUGIN([twolame])
3294       VLC_ADD_CPPFLAGS([twolame],[-DLIBTWOLAME_STATIC])
3295       VLC_ADD_LIBS([twolame],[-ltwolame]) ],
3296         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
3297     LDFLAGS="${LDFLAGS_save}"
3298     CPPFLAGS="${CPPFLAGS_save}"
3299   fi
3300 fi
3301
3302 dnl
3303 dnl  QuickTime plugin
3304 dnl
3305 AC_ARG_ENABLE(quicktime,
3306   [  --enable-quicktime      QuickTime module (default enabled on MacOS X)])
3307 if test "${enable_quicktime}" != "no" &&
3308   (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
3309 then
3310   if test "${SYS}" = "mingw32"; then
3311     VLC_ADD_PLUGIN([quicktime])
3312   else
3313   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
3314     [ VLC_ADD_PLUGIN([quicktime])
3315       VLC_ADD_LDFLAGS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
3316     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
3317   fi
3318 fi
3319
3320 dnl
3321 dnl  Real plugin
3322 dnl
3323 AC_ARG_ENABLE(real,
3324   [  --enable-real           Real media module (default disabled)])
3325 if test "${enable_real}" = "yes"; then
3326   VLC_ADD_PLUGIN([realaudio])
3327   VLC_ADD_PLUGIN([realvideo])
3328 fi
3329
3330 dnl
3331 dnl  Real RTSP plugin
3332 dnl
3333 AC_ARG_ENABLE(realrtsp,
3334   [  --enable-realrtsp       Real RTSP module (default disabled)])
3335 if test "${enable_realrtsp}" = "yes"; then
3336   VLC_ADD_PLUGIN([access_realrtsp])
3337 fi
3338
3339 AC_ARG_ENABLE(libsysfs,
3340   [  --enable-libsysfs       Get user key from firewire connected iPod via libsysfs (default enabled)])
3341
3342 AS_IF([test "${enable_libsysfs}" != "no"],[
3343   AC_CHECK_HEADERS(sysfs/libsysfs.h, [
3344     VLC_ADD_LIBS([mp4 mkv],[-lsysfs])
3345   ] )
3346 ])
3347
3348 dnl
3349 dnl skins2 module
3350 dnl
3351 AC_ARG_ENABLE(libtar,
3352   [  --enable-libtar         libtar support for skins2 (default enabled)])
3353
3354 AS_IF([test "${enable_libtar}" != "no"],[
3355   AC_CHECK_HEADERS(libtar.h, [
3356     VLC_ADD_LIBS([skins2],[-ltar])
3357   ] )
3358 ])
3359
3360 dnl
3361 dnl A52/AC3 decoder plugin
3362 dnl
3363 AC_ARG_ENABLE(a52,
3364   [  --enable-a52            A/52 support with liba52 (default enabled)])
3365 if test "${enable_a52}" != "no"
3366 then
3367   AC_ARG_WITH(a52,
3368     [    --with-a52=PATH       a52 headers and libraries])
3369   AC_ARG_WITH(a52-tree,
3370     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
3371   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
3372   then
3373     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
3374     if test -z "${real_a52_tree}"
3375     then
3376       dnl  The given directory can't be found
3377       AC_MSG_RESULT(no)
3378       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
3379     fi
3380     dnl  Use a custom a52dec
3381     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
3382     if test -f ${real_a52_tree}/include/a52.h
3383     then
3384       AC_MSG_RESULT(yes)
3385       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
3386       VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
3387       LDFLAGS="${LDFLAGS_save} ${LIBS_a52tofloat32}"
3388       AC_CHECK_LIB(a52, a52_free, [
3389         VLC_ADD_PLUGIN([a52tofloat32])
3390         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
3391         VLC_ADD_LIBS([a52tofloat32],[-la52])
3392         ],[
3393         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
3394         then
3395           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
3396         else
3397           AC_MSG_ERROR([the specified tree hasn't been compiled])
3398         fi
3399       ])
3400       LDFLAGS="${LDFLAGS_save}"
3401     else
3402       AC_MSG_RESULT(no)
3403       AC_MSG_ERROR([the specified tree doesn't have a52.h])
3404     fi
3405   else
3406     if test -z "${with_a52}"
3407     then
3408       LDFLAGS_test=""
3409       CPPFLAGS_test=""
3410     else
3411       LDFLAGS_test="-L${with_a52}/lib"
3412       CPPFLAGS_test="-I${with_a52}/include"
3413     fi
3414     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
3415     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
3416     AC_CHECK_HEADERS(a52dec/a52.h, [
3417       AC_CHECK_LIB(a52, a52_free, [
3418         VLC_ADD_PLUGIN([a52tofloat32])
3419         VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
3420         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
3421       ],[
3422         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.])
3423         ])
3424     ],[
3425       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.])
3426     ])
3427     CPPFLAGS="${CPPFLAGS_save}"
3428     LDFLAGS="${LDFLAGS_save}"
3429   fi
3430 fi
3431
3432 AC_ARG_WITH(a52-fixed,
3433       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
3434       [
3435         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
3436
3437 dnl
3438 dnl DTS Coherent Acoustics decoder plugin
3439 dnl
3440 AS_IF([test "x${enable_dts}" != "x"], [
3441   AC_MSG_ERROR([--enable-dts is obsolete. Please use libdca and --enable-dca.])
3442 ])
3443 AS_IF([test "x${with_dts_tree}" != "x"], [
3444   AC_MSG_ERROR([--with-dts-tree is obsolete. Please use libdca and --with-dca-tree.])
3445 ])
3446
3447 AC_ARG_ENABLE(dca,
3448   AS_HELP_STRING([--enable-dca],[DTS Coherent Acoustics support with libdca
3449                   (default enabled)]))
3450 AS_IF([test "${enable_dca}" != "no"], [
3451   AC_ARG_WITH(dca-tree,
3452     [    --with-dca-tree=PATH  libdca tree for static linking],,
3453     [with_dca_tree="no"])
3454   AS_IF([test "${with_dca_tree}" != "no"], [
3455     real_dca_tree="`cd ${with_dca_tree} 2>/dev/null && pwd`"
3456     AS_IF([test -z "${real_dca_tree}"], [
3457       dnl  The given directory can't be found
3458       AC_MSG_RESULT(no)
3459       AC_MSG_ERROR([${with_dca_tree} directory doesn't exist])
3460     ])
3461     dnl  Use a custom libdca
3462     AC_MSG_CHECKING(for libdca in ${real_dca_tree})
3463     AS_IF([test -f "${real_dca_tree}/libdca/.libs/libdca.a"], [
3464       AC_MSG_RESULT(yes)
3465       VLC_ADD_LIBS([dtstofloat32],[${real_dca_tree}/libdca/.libs/libdca.a])
3466       AS_IF([test -f "${real_dca_tree}/include/dca.h"], [
3467         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/include])
3468       ], [
3469         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/../include])
3470       ])
3471     ], [
3472       AC_MSG_RESULT(no)
3473       AC_MSG_ERROR([the specified tree doesn't have libdca/.libs/libdca.a])
3474     ])
3475   ], [
3476     PKG_CHECK_MODULES([DCA], [libdca >= 0.0.5], [
3477       VLC_ADD_PLUGIN([dtstofloat32])
3478       VLC_ADD_CPPFLAGS([dtstofloat32], [${DCA_CFLAGS}])
3479       VLC_ADD_LIBS([dtstofloat32], [${DCA_LIBS}])
3480     ], [
3481       AS_IF([test "x${enable_dca}" != "x"], [
3482         AC_MSG_ERROR([${DCA_PKG_ERRORS}])
3483       ])
3484     ])
3485   ])
3486 ])
3487
3488 dnl
3489 dnl  Flac plugin
3490 dnl
3491 AC_ARG_ENABLE(flac,
3492   [  --enable-flac           libflac decoder/encoder support (default disabled)])
3493 if test "${enable_flac}" = "yes"
3494 then
3495   AC_ARG_WITH(flac-tree,
3496   [    --with-flac-tree=PATH flac tree for static linking])
3497   if test -n "${with_flac_tree}"
3498   then
3499     AC_MSG_CHECKING(for libFLAC.a in ${with_flac_tree})
3500     real_flac_tree="`cd ${with_flac_tree} 2>/dev/null && pwd`"
3501     if test -z "${real_flac_tree}"
3502     then
3503       dnl  The given directory can't be found
3504       AC_MSG_RESULT(no)
3505       AC_MSG_ERROR([cannot cd to ${with_flac_tree}])
3506     fi
3507     if test -f "${real_flac_tree}/src/libFLAC/.libs/libFLAC.a"
3508     then
3509       dnl  Use a custom flac
3510       AC_MSG_RESULT(${real_flac_tree}/src/libFLAC/.libs/libFLAC.a)
3511       VLC_ADD_LIBS([flac],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a])
3512       VLC_ADD_CFLAGS([flac],[-I${real_flac_tree}/include])
3513       AC_DEFINE(HAVE_FLAC_STREAM_DECODER_H, 1, [Define if you have FLAC])
3514     else
3515       dnl  The given flac wasn't built
3516       AC_MSG_RESULT(no)
3517       AC_MSG_ERROR([cannot find ${real_flac_tree}/src/libFLAC/.libs/libFLAC.a, make sure you compiled flac in ${with_flac_tree}])
3518     fi
3519   else
3520     AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
3521       VLC_ADD_LIBS([flac],[-lFLAC -logg])
3522      ],[])
3523   fi
3524 fi
3525
3526 dnl
3527 dnl  Libmpeg2 plugin
3528 dnl
3529 AC_ARG_ENABLE(libmpeg2,
3530   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
3531 if test "${enable_libmpeg2}" != "no"
3532 then
3533   AC_ARG_WITH(libmpeg2-tree,
3534   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
3535   AS_IF([test -n "${with_libmpeg2_tree}"],[
3536     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
3537     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
3538     if test -z "${real_libmpeg2_tree}"
3539     then
3540       dnl  The given directory can't be found
3541       AC_MSG_RESULT(no)
3542       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
3543     fi
3544     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
3545     then
3546       dnl  Use a custom libmpeg2
3547       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
3548       VLC_ADD_PLUGIN([libmpeg2])
3549       VLC_ADD_LIBS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
3550       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
3551     else
3552       dnl  The given libmpeg2 wasn't built
3553       AC_MSG_RESULT(no)
3554       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
3555     fi
3556   ],[
3557    PKG_CHECK_MODULES(LIBMPEG2,[libmpeg2 > 0.3.2],[
3558           VLC_ADD_PLUGIN([libmpeg2])
3559           VLC_ADD_LIBS([libmpeg2], $LIBMPEG2_LIBS)
3560           VLC_ADD_CFLAGS([libmpeg2], $LIBMPEG2_CFLAGS)
3561        ],
3562       AC_MSG_WARN([Could not find libmpeg2 on your system: you may get it from http://libmpeg2.sf.net/ . Alternatively you can use --disable-libmpeg2 to disable the libmpeg2 plugin.]))
3563   ])
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_PLUGIN([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_PLUGIN([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_PLUGIN([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_PLUGIN([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_PLUGIN([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_PLUGIN([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_PLUGIN([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.10.0], [
3718       VLC_ADD_PLUGIN([dirac])
3719       VLC_ADD_CFLAGS([dirac],[$DIRAC_CFLAGS])
3720       VLC_ADD_LIBS([dirac],[$DIRAC_LIBS -lstdc++]) ],[
3721       AC_MSG_ERROR([libdirac >= 0.10.0 doesn't appear to be installed on your system.])
3722   ])
3723 fi
3724
3725 dnl
3726 dnl  schroedinger decoder plugin (for dirac format video)
3727 dnl
3728 AC_ARG_ENABLE(schroedinger,
3729 [  --disable-schroedinger  high performance dirac codec (default enabled)])
3730 if test "${enable_schroedinger}" != "no"; then
3731   PKG_CHECK_MODULES(SCHROEDINGER,[schroedinger-1.0 >= 1.0.6], [
3732       VLC_ADD_PLUGIN([schroedinger])
3733       VLC_ADD_CFLAGS([schroedinger],[$SCHROEDINGER_CFLAGS])
3734       VLC_ADD_LIBS([schroedinger],[$SCHROEDINGER_LIBS]) ], [
3735         AS_IF([test "x${enable_schroedinger}" != "x"], [
3736           AC_MSG_ERROR([${SCHROEDINGER_PKG_ERRORS}])
3737         ])
3738 ])
3739 fi
3740
3741 dnl
3742 dnl  PNG decoder module
3743 dnl
3744 AC_ARG_ENABLE(png,
3745   [  --enable-png            PNG support (default enabled)])
3746 if test "${enable_png}" != "no"; then
3747 AC_CHECK_HEADERS(png.h, [
3748   LDFLAGS="${LDFLAGS_save} -lz"
3749   AC_CHECK_LIB(png, png_set_rows, [
3750     VLC_ADD_LIBS([png],[-lpng -lz])
3751     VLC_ADD_PLUGIN([png])
3752     VLC_ADD_PLUGIN([osdmenu])
3753     VLC_ADD_PLUGIN([osd_parser])
3754     AC_DEFINE(HAVE_LIBPNG, 1, [Define if you have the PNG library: libpng])],
3755     [],[-lz])
3756     LDFLAGS="${LDFLAGS_save}"
3757   ])
3758 fi
3759 AM_CONDITIONAL(BUILD_OSDMENU, [test "${enable_png}" != "no"])
3760
3761 dnl
3762 dnl H264 encoder plugin (using libx264)
3763 dnl
3764 AC_ARG_ENABLE(x264,
3765   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3766 if test "${enable_x264}" != "no"; then
3767   AC_ARG_WITH(x264-tree,
3768     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3769   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3770   then
3771     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3772     if test -z "${real_x264_tree}"
3773     then
3774       dnl  The given directory can't be found
3775       AC_MSG_RESULT(no)
3776       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3777     fi
3778     dnl  Use a custom libx264
3779     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3780     if test -f ${real_x264_tree}/x264.h
3781     then
3782       AC_MSG_RESULT(yes)
3783       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3784       VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
3785       PKG_CHECK_MODULES(X264,x264, [
3786         VLC_ADD_PLUGIN([x264])
3787         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3788         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3789         if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3790           VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3791         fi
3792       ],[
3793         AC_MSG_ERROR([the specified tree hasn't been compiled])
3794       ])
3795       LDFLAGS="${LDFLAGS_save}"
3796     else
3797       AC_MSG_RESULT(no)
3798       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3799     fi
3800   else
3801       PKG_CHECK_MODULES(X264,x264, [
3802         VLC_ADD_PLUGIN([x264])
3803         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3804
3805         AC_CACHE_CHECK([if linker supports -Bsymbolic],
3806           [ac_cv_ld_bsymbolic],
3807           [LDFLAGS="${LDFLAGS_vlc} -Wl,-Bsymbolic"
3808             AC_TRY_LINK([],,ac_cv_ld_bsymbolic=yes,ac_cv_ld_bsymbolic=no)
3809             LDFLAGS="${LDFLAGS_save}"
3810           ])
3811         AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
3812           VLC_ADD_LDFLAGS([x264],[-Wl,-Bsymbolic])
3813         ])
3814
3815         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3816         if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3817           VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3818         fi
3819       ],[
3820         if test "${enable_x264}" = "yes"; then
3821             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
3822           fi
3823       ])
3824     LDFLAGS="${LDFLAGS_save}"
3825   fi
3826 fi
3827
3828 dnl
3829 dnl libfluidsynth (MIDI synthetizer) plugin
3830 dnl
3831 AC_ARG_ENABLE(fluidsynth,
3832   [  --enable-fluidsynth     MIDI synthesisr with libfluidsynth (default enabled)])
3833 AS_IF([test "x${enable_fluidsynth}" != "xno"], [
3834   PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth, [
3835     VLC_ADD_PLUGIN(fluidsynth)
3836     VLC_ADD_CFLAGS(fluidsynth, [${FLUIDSYNTH_CFLAGS}])
3837     VLC_ADD_LIBS(fluidsynth, [${FLUIDSYNTH_LIBS}])
3838   ], [
3839     AS_IF([test "x${enable_fluidsynth}" != "x"], [
3840       AC_MSG_ERROR([${FLUIDSYNTH_PKG_ERRORS}])
3841     ])
3842   ])
3843 ])
3844
3845 dnl
3846 dnl Teletext Modules
3847 dnl vbi decoder plugin (using libzbvi)
3848 dnl telx module
3849 dnl uncompatible
3850 dnl
3851 AC_ARG_ENABLE(zvbi,
3852   AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
3853                   libzvbi (default enabled)]))
3854 AC_ARG_ENABLE(telx,
3855   AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
3856                   zvbi) (default enabled if zvbi is absent)]))
3857
3858 AS_IF( [test "${enable_zvbi}" != "no"],[
3859     PKG_CHECK_MODULES(ZVBI,
3860         zvbi-0.2 >= 0.2.25,
3861         [
3862           VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
3863           VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
3864           VLC_ADD_PLUGIN([zvbi])
3865           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
3866           AS_IF( [test "${enable_telx}" = "yes"],[
3867                   AC_MSG_WARN([The zvbi and telx modules are uncompatibles.
3868                                Using zvbi.])
3869                   ])
3870         ],[
3871           AC_MSG_WARN(ZVBI library not found. Enabling the telx module instead)
3872         ])
3873     ])
3874 AS_IF( [test "${enable_telx}" != "no" ],[
3875   VLC_ADD_PLUGIN([telx])
3876   ])
3877
3878 dnl
3879 dnl asa/csri subtitle rendering module
3880 dnl
3881 AC_ARG_ENABLE(csri,
3882   [  --enable-csri           Subtitle support using CSRI / asa (default disabled)])
3883 AS_IF( [test "${enable_csri}" = "yes"], [
3884   PKG_CHECK_MODULES(CSRI,
3885       csri >= 0.1.0,
3886       [
3887         VLC_ADD_LDFLAGS([csri],[$CSRI_LIBS])
3888         VLC_ADD_CFLAGS([csri],[$CSRI_CFLAGS])
3889         VLC_ADD_PLUGIN([csri])
3890       ],[
3891         AC_MSG_WARN([CSRI helper library not found])
3892       ])
3893   ])
3894
3895 dnl
3896 dnl libass subtitle rendering module
3897 dnl
3898 AC_ARG_ENABLE(libass,
3899   [  --enable-libass         Subtitle support using libass (default disabled)])
3900 AS_IF( [test "${enable_libass}" = "yes"], [
3901   PKG_CHECK_MODULES(LIBASS, libass >= 0.9.5,
3902       [
3903         VLC_ADD_LDFLAGS([libass],[$LIBASS_LIBS])
3904         VLC_ADD_CFLAGS([libass],[$LIBASS_CFLAGS])
3905         VLC_ADD_PLUGIN([libass])
3906
3907         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
3908           [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
3909         if test "${SYS}" = "mingw32"; then
3910            VLC_ADD_LIBS([libass],[-lfontconfig -lfreetype -liconv -lz -lxml2])
3911         else
3912            VLC_ADD_LIBS([libass],[-lfontconfig])
3913         fi
3914        ])
3915       ],[
3916         AC_MSG_WARN([LIBASS library not found])
3917       ])
3918   ])
3919
3920 dnl
3921 dnl asa demuxer
3922 dnl
3923 AC_ARG_ENABLE(asademux,
3924   [  --enable-asademux       asa subtitle demuxing (default disabled)])
3925 AS_IF( [test "${enable_asademux}" = "yes"], [
3926   PKG_CHECK_MODULES(PCRE,
3927       libpcre >= 6.5,
3928       [
3929         VLC_ADD_LDFLAGS([asademux],[$PCRE_LIBS])
3930         VLC_ADD_CFLAGS([asademux],[$PCRE_CFLAGS])
3931         if test "${SYS}" = "mingw32"; then
3932                 VLC_ADD_CPPFLAGS([asademux],[-DPCRE_STATIC])
3933         fi
3934         VLC_ADD_PLUGIN([asademux])
3935       ],[
3936         AC_MSG_WARN([PCRE library not found (required for asademux)])
3937       ])
3938   ])
3939
3940 dnl
3941 dnl  CMML plugin
3942 dnl
3943 AC_ARG_ENABLE(cmml,
3944   [  --enable-cmml           CMML support (default enabled)])
3945 if test "${enable_cmml}" != "no"
3946 then
3947   VLC_ADD_PLUGIN([cmml])
3948 fi
3949
3950 dnl
3951 dnl  kate decoder plugin
3952 dnl
3953 AC_ARG_ENABLE(kate,
3954 [  --enable-kate           kate codec (default enabled)])
3955 AS_IF([test "${enable_kate}" != "no"], [
3956   PKG_CHECK_MODULES(KATE,[kate >= 0.1.5], [
3957       VLC_ADD_PLUGIN([kate])
3958       VLC_ADD_CFLAGS([kate],[$KATE_CFLAGS])
3959       VLC_ADD_LIBS([kate],[$KATE_LIBS]) ],[
3960         AC_CHECK_HEADERS(kate/kate.h, [
3961           AC_CHECK_LIB(kate, kate_decode_init, [
3962             VLC_ADD_PLUGIN([kate])
3963             kate_libs="-lkate -logg"
3964             VLC_ADD_LDFLAGS([kate],[${kate_libs}]) ],[
3965             AS_IF([test "x${enable_kate}" != "x"], [
3966               AC_MSG_ERROR([libkate doesn't appear to be installed on your system.
3967               You also need to check that you have a libogg posterior to the 1.0 release.])
3968             ])
3969           ], [-lkate -logg])
3970         ],[
3971           AS_IF([test "x${enable_kate}" != "x"], [
3972             AC_MSG_ERROR([libkate headers do not appear to be installed on your system.
3973             You also need to check that you have a libogg posterior to the 1.0 release.])
3974           ])
3975         ])
3976   ])
3977 ])
3978
3979
3980 dnl
3981 dnl  tiger decoder plugin
3982 dnl
3983 AC_ARG_ENABLE(tiger,
3984 [  --enable-tiger          Tiger rendering library for Kate streams (default enabled)])
3985 AS_IF([test "${enable_tiger}" != "no"], [
3986   PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
3987       AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])
3988       VLC_ADD_CFLAGS([kate],[$TIGER_CFLAGS])
3989       VLC_ADD_LIBS([kate],[$TIGER_LIBS]) ],[
3990         AS_IF([test "x${enable_tiger}" != "x"], [
3991           AC_MSG_ERROR([libtiger does not appear to be installed on your system.])
3992         ])
3993   ])
3994 ])
3995
3996
3997 dnl
3998 dnl  Video plugins
3999 dnl
4000
4001 AC_ARG_WITH(,[Video plugins:])
4002
4003 dnl
4004 dnl  Xlib
4005 dnl
4006
4007 AC_PATH_XTRA()
4008 AC_ARG_ENABLE(x11,
4009   [  --enable-x11            X11 support (default enabled)],, [
4010   AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"], [
4011     enable_x11="yes"
4012   ], [
4013     enable_x11="no"
4014   ])
4015 ])
4016
4017 CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
4018
4019 AS_IF([test "${enable_x11}" != "no"], [
4020   AC_CHECK_HEADERS(X11/Xlib.h, [
4021     VLC_ADD_PLUGIN([x11_screen])
4022     VLC_ADD_CPPFLAGS([x11_screen],[${X_CFLAGS}])
4023     VLC_ADD_LIBS([x11_screen],[${X_LIBS} ${X_PRE_LIBS} -lX11])
4024
4025     VLC_ADD_PLUGIN([panoramix])
4026     VLC_ADD_LIBS([panoramix],[${X_LIBS} ${X_PRE_LIBS} -lX11])
4027     VLC_ADD_CPPFLAGS([panoramix],[${X_CFLAGS}])
4028
4029     VLC_ADD_PLUGIN([x11])
4030     VLC_ADD_LIBS([x11],[${X_LIBS} ${X_PRE_LIBS} -lX11])
4031     VLC_ADD_CPPFLAGS([x11],[${X_CFLAGS}])
4032
4033     AC_CHECK_LIB(Xext, XShmAttach, [VLC_ADD_LIBS([x11],[-lXext])])
4034   ])
4035