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