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