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