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