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