]> git.sesse.net Git - vlc/blob - configure.ac
82b7076afeb0c23d9dec758fec55e7ab68bcf35f
[vlc] / 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_ncurses="yes"
254         echo "  Assuming --enable-ncurses"
255         enable_twolame="yes"
256         echo "  Assuming --enable-twolame"
257         enable_realrtsp="yes"
258         echo "  Assuming --enable-realrtsp"
259         enable_libass="yes"
260         echo "  Assuming --enable-libass"
261         enable_asademux="yes"
262         echo "  Assuming --enable-asademux"
263
264         enable_skins2="no"
265         echo "  Assuming --disable-skins2"
266         enable_x11="no"
267         echo "  Assuming --disable-x11"
268         enable_xcb="no"
269         echo "  Assuming --disable-xcb"
270         enable_glx="no"
271         echo "  Assuming --disable-glx"
272         enable_xvideo="no"
273         echo "  Assuming --disable-xvideo"
274     fi
275     dnl
276     dnl  Check for Mac OS X SDK settings
277     dnl
278     AC_ARG_WITH(macosx-sdk,
279        [  --with-macosx-sdk=DIR   compile using the SDK in DIR])
280     if test "${with_macosx_sdk}" != "" ; then
281         CPP="${CPP} -isysroot ${with_macosx_sdk}"
282         CC="${CC} -isysroot ${with_macosx_sdk}"
283         CXX="${CXX} -isysroot ${with_macosx_sdk}"
284         OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
285         LD="${LD} -syslibroot ${with_macosx_sdk}"
286     fi
287     AC_ARG_WITH(macosx-version-min,
288        [  --with-macosx-version-min=VERSION  compile for MacOSX VERSION and above])
289     if test "${with_macosx_version_min}" != "" ; then
290         CPP="${CPP} -mmacosx-version-min=${with_macosx_version_min}"
291         CC="${CC} -mmacosx-version-min=${with_macosx_version_min}"
292         CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
293         OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
294         LD="${LD} -macosx_version_min=${with_macosx_version_min}"
295         CFLAGS_save="${CFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CFLAGS="${CFLAGS_save}"
296         CXXFLAGS_save="${CXXFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CXXFLAGS="${CXXFLAGS_save}"
297         OBJCFLAGS_save="${OBJCFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; OBJCFLAGS="${OBJCFLAGS_save}"
298         MACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}
299         export MACOSX_DEPLOYMENT_TARGET
300     fi
301     ;;
302   darwin9*)
303     if (test ".`uname -p`" = ".i386"); then
304         dnl Due to a ld(64) bug in 10.5 we cannot use our mmx code
305         dnl without hacking it a lot, we disable mmx and sse.
306         dnl (that bug is about ld being unable to handle
307         dnl text relocation)
308         save_cflags="$CFLAGS"
309         CFLAGS="$CFLAGS -dynamiclib -single_module -read_only_relocs suppress"
310         AC_TRY_LINK(
311             [int a;], [asm("movq _a,%mm0\n");],
312             ac_ld_does_not_support_text_reloc=no,
313             ac_ld_does_not_support_text_reloc=yes)
314         CFLAGS="$save_cflags"
315
316         if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
317             enable_mmx="no"
318             echo "  Assuming --disable-mmx (due to a bug in ld)"
319             enable_sse="no"
320             echo "  Assuming --disable-sse (due to a bug in ld)"
321         fi
322     fi
323     ;;
324   *mingw32* | *cygwin* | *wince* | *mingwce*)
325     AC_CHECK_TOOL(WINDRES, windres, :)
326     AC_CHECK_TOOL(OBJCOPY, objcopy, :)
327
328     case "${host_os}" in
329       *wince* | *mingwce* | *mingw32ce*)
330         SYS=mingwce
331         dnl Sadly CeGCC still needs non-wince macros
332         AC_DEFINE([_WIN32_WINNT], 0x0501, [Define to '0x0500' for Windows 2000 APIs.])
333         ;;
334       *mingw32*)
335         SYS=mingw32
336         AC_DEFINE([_WIN32_WINNT], 0x0500, [Define to '0x0500' for Windows 2000 APIs.])
337         ;;
338       *cygwin*)
339         dnl Check if we are using the mno-cygwin mode in which case we are
340         dnl actually dealing with a mingw32 compiler.
341         AC_DEFINE([_WIN32_WINNT], 0x0500, [Define to '0x0500' for Windows 2000 APIs.])
342         AC_EGREP_CPP(yes,
343             [#ifdef WIN32
344              yes
345              #endif],
346             SYS=mingw32, SYS=cygwin)
347         ;;
348     esac
349
350     if test "${SYS}" = "mingw32"; then
351         # add ws2_32 for closesocket, select, recv
352         VLC_ADD_LIBS([libvlccore],[-lws2_32 -lnetapi32 -lwinmm])
353         VLC_ADD_LDFLAGS([vlc],[-mwindows])
354         VLC_ADD_LIBS([activex mozilla],[-lgdi32])
355         VLC_ADD_LIBS([cdda vcdx cddax sdl_image aout_sdl vout_sdl],[-lwinmm])
356         VLC_ADD_LIBS([access_http access_mms access_udp access_tcp access_ftp access_rtmp access_output_udp access_output_shout access_output_rtmp sap slp http stream_out_standard stream_out_rtp stream_out_raop vod_rtsp access_realrtsp rtp telnet rc netsync gnutls growl_udp flac ts audioscrobbler lua remoteosd zvbi],[-lws2_32])
357         VLC_ADD_LIBS([access_file], [-lshlwapi])
358     fi
359     if test "${SYS}" = "mingwce"; then
360         # add ws2 for closesocket, select, recv
361         VLC_ADD_LIBS([libvlccore access_http access_mms access_udp access_tcp access_ftp access_rtmp access_output_udp access_output_rtmp sap http netsync audioscrobbler growl rtp stream_out_rtp remoteosd ts],[-lws2])
362         VLC_ADD_LIBS([libvlccore],[-lmmtimer])
363    fi
364     ;;
365   *nto*)
366     SYS=nto
367     ;;
368   solaris*)
369     SYS=solaris
370     ;;
371   hpux*)
372     SYS=hpux
373     ;;
374   beos)
375     SYS=beos
376     CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}"
377     CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}"
378     VLC_ADD_CXXFLAGS([beos],[])
379     VLC_ADD_LIBS([vlc libvlccore logger],[-lbe])
380     VLC_ADD_LIBS([beos],[-lbe -lmedia -ltranslation -ltracker -lgame])
381     VLC_ADD_LIBS([dvdnav dvdread],[-ldl])
382     VLC_ADD_LIBS([access_file],[-lpoll])
383     LDFLAGS_save="${LDFLAGS_save} -lintl"; LDFLAGS="${LDFLAGS_save}"
384     dnl Check for BONE
385     if test -f /boot/beos/system/lib/libbind.so; then
386         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlccore growl_udp],[-lbind -lsocket])
387     else
388         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlccore growl_udp],[-lnet])
389     fi
390
391     dnl Ugly check for Zeta
392     if test -f /boot/beos/system/lib/libzeta.so; then
393         VLC_ADD_LIBS([beos],[-lzeta])
394     fi
395     ;;
396   *)
397     SYS="${host_os}"
398     ;;
399 esac
400 AM_CONDITIONAL(HAVE_BEOS, test "${SYS}" = "beos")
401 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
402 AM_CONDITIONAL(HAVE_LINUX, [test "${SYS}" = "linux"])
403 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
404 AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
405
406 dnl
407 dnl Sadly autoconf doesn't think about testing foo.exe when ask to test
408 dnl for program foo on win32
409
410 case "${build_os}" in
411     cygwin|msys)
412         ac_executable_extensions=".exe"
413     ;;
414     *)
415     ;;
416 esac
417
418 dnl
419 dnl  Libtool
420 dnl  It's very bad, but our former custom system was worst
421 dnl  -- Courmisch
422 dnl
423
424 dnl override platform specific check for dependent libraries
425 dnl otherwise libtool linking of shared libraries will
426 dnl fail on anything other than pass_all.
427 AC_CACHE_VAL(lt_cv_deplibs_check_method,
428     [lt_cv_deplibs_check_method=pass_all])
429
430 AC_DISABLE_STATIC
431 dnl AC_DISABLE_FAST_INSTALL
432 AC_LIBTOOL_DLOPEN
433 AC_LIBTOOL_WIN32_DLL
434 m4_undefine([AC_PROG_F77])
435 m4_defun([AC_PROG_F77],[])
436 AC_PROG_LIBTOOL
437
438 m4_undefine([AC_DEPLIBS_CHECK_METHOD])
439 m4_defun([AC_DEPLIBS_CHECK_METHOD],[])
440
441 lt_cv_deplibs_check_method=pass_all
442
443
444 dnl
445 dnl Gettext stuff
446 dnl
447 AM_GNU_GETTEXT_VERSION([0.17])
448 AM_GNU_GETTEXT([external])
449 VLC_ADD_LIBS([libvlccore vlc], [${LTLIBINTL}])
450
451 dnl
452 dnl Iconv stuff
453 dnl
454 AM_ICONV
455 VLC_ADD_CFLAGS([libvlccore],[${INCICONV}])
456 VLC_ADD_LIBS([libvlccore],[${LTLIBICONV}])
457
458 dnl Check for broken versions of mingw-runtime compatability library
459 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"], [
460     AC_MSG_CHECKING(for broken mingw-runtime)
461     AC_PREPROC_IFELSE([
462 #include <_mingw.h>
463 #if (__MINGW32_MAJOR_VERSION == 3) && (__MINGW32_MINOR_VERSION < 15)
464 # error Attempting to use mingw-runtime with broken vsnprintf support
465 #endif
466 ], [
467         AC_MSG_RESULT([ok])
468 ], [
469         AC_MSG_RESULT([present])
470         AC_MSG_ERROR([LibVLC requires mingw-runtime version 3.15 or higher!])
471 ])
472     dnl force use of mingw provided c99 *printf over msvcrt
473     CPPFLAGS="${CPPFLAGS} -D__USE_MINGW_ANSI_STDIO=1"
474     CPPFLAGS_save="${CPPFLAGS_save} -D__USE_MINGW_ANSI_STDIO=1"
475 ])
476
477 dnl Check for the need to include the mingwex lib for mingw32
478 if test "${SYS}" = "mingw32"
479 then
480     AC_CHECK_LIB(mingwex,opendir,
481         AC_CHECK_LIB(mingw32,opendir,,
482             [VLC_ADD_LIBS([libvlccore gtk],[-lmingwex])])
483     )
484 fi
485
486 dnl Check for fnative-struct or mms-bitfields support for mingw32
487 if test "${SYS}" = "mingw32"
488 then
489     AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
490         [ac_cv_c_mms_bitfields],
491         [CFLAGS="${CFLAGS_save} -mms-bitfields"
492          AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
493     if test "${ac_cv_c_mms_bitfields}" != "no"; then
494         CFLAGS_save="${CFLAGS_save} -mms-bitfields";
495         CXXFLAGS_save="${CXXFLAGS_save} -mms-bitfields";
496     else
497         AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
498             [ac_cv_c_fnative_struct],
499             [CFLAGS="${CFLAGS_save} -fnative-struct"
500              AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
501         if test "${ac_cv_c_fnative_struct}" != "no"; then
502             CFLAGS_save="${CFLAGS_save} -fnative-struct";
503             CXXFLAGS_save="${CXXFLAGS_save} -fnative-struct";
504         fi
505     fi
506
507     CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
508 fi
509
510 dnl Check for fvtable-thunks support for mingw32
511 if test "${SYS}" = "mingw32" -a "${CXX}" != ""
512 then
513 AC_LANG_PUSH(C++)
514     AC_CACHE_CHECK([if \$CXX accepts -fvtable-thunks],
515         [ac_cv_cxx_fvtable_thunks],
516         [CXXFLAGS="${CXXFLAGS_save} -Wall -Werror -fvtable-thunks"
517          AC_TRY_COMPILE([],,ac_cv_cxx_fvtable_thunks=yes,
518                         ac_cv_cxx_fvtable_thunks=no)])
519     if test "${ac_cv_cxx_fvtable_thunks}" = "yes"; then
520         CXXFLAGS_mingw32_special="-fvtable-thunks"
521     fi
522
523     CXXFLAGS_save="${CXXFLAGS_save} ${CXXFLAGS_mingw32_special}"; CXXFLAGS="${CXXFLAGS_save}"
524 AC_LANG_POP(C++)
525 fi
526
527 dnl
528 dnl Buggy glibc prevention. Purposedly not cached.
529 dnl See sourceware.org bugs 5058 and 5443.
530 dnl Ubuntu alone has 20 bug numbers for this...
531 dnl
532 AC_MSG_CHECKING(for buggy GNU/libc versions)
533 AC_PREPROC_IFELSE([
534 #include <limits.h>
535 #if defined (__GLIBC__) && (__GLIBC__ == 2) \
536   && (__GLIBC_MINOR__ >= 5) && (__GLIBC_MINOR__ <= 7)
537 # error GNU/libc with dcgettext killer bug!
538 #endif
539 ], [
540   AC_MSG_RESULT([not present])
541 ], [
542   AC_MSG_RESULT([found])
543   AS_IF([test "x${enable_nls}" != "xno" || test "x${enable_mozilla}" != "xno"], [
544     AC_MSG_ERROR([Buggy GNU/libc (version 2.5 - 2.7) present. VLC would crash; there is no viable
545 work-around for this. Check with your distribution vendor on how to update the
546 glibc run-time. Alternatively, build with --disable-nls --disable-mozilla and
547 be sure to not use LibVLC from other applications/wrappers.])
548   ], [
549     AC_DEFINE(DISABLE_BUGGY_GLIBC_CHECK, 1, [Disables runtime check for buggy glibc.])
550   ])
551 ])
552
553 dnl Plugin compilation stuff
554
555 VLC_LIBRARY_SUFFIX
556
557 dnl The -DSYS_FOO flag
558 CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
559
560 dnl Check for system libs needed
561 need_libc=false
562
563 dnl Check for usual libc functions
564 AC_CHECK_FUNCS([gettimeofday isatty sigrelse getpwuid_r memalign posix_memalign if_nametoindex getenv putenv setenv ctime_r daemon fork lstat posix_fadvise posix_madvise uselocale])
565 AC_FUNC_ALLOCA
566 AC_CHECK_FUNCS(fcntl)
567 AC_REPLACE_FUNCS([asprintf atof atoll getcwd getpid gmtime_r lldiv localtime_r rewind strcasecmp strcasestr strdup strlcpy strncasecmp strndup strnlen strsep strtof strtoll vasprintf swab])
568 AC_CHECK_FUNCS([stricmp strnicmp])
569 AC_CHECK_FUNCS(fdatasync,,
570   [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
571 ])
572
573 dnl Check for non-standard system calls
574 AC_CHECK_FUNCS([vmsplice eventfd fstatfs])
575
576 AH_BOTTOM([#include <vlc_fixups.h>])
577
578 AC_CHECK_FUNCS(mmap, [VLC_ADD_PLUGIN([access_mmap])])
579
580 dnl Check for setlocal and langinfo
581 AC_CHECK_FUNCS(setlocale)
582 AC_CHECK_HEADERS(langinfo.h)
583 AC_CHECK_FUNCS(nl_langinfo)
584
585 AC_CACHE_CHECK([for nl_langinfo and CODESET], ac_cv_langinfo_codeset,
586   [AC_TRY_LINK([#include <langinfo.h>],
587     [char* cs = nl_langinfo(CODESET);],
588     ac_cv_langinfo_codeset=yes,
589     ac_cv_langinfo_codeset=no)
590   ])
591 if test ${ac_cv_langinfo_codeset} = yes; then
592   AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
593     [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
594 fi
595
596 SOCKET_LIBS=""
597 AC_CHECK_FUNCS(connect,,[
598   AC_CHECK_LIB(socket,connect,[
599     VLC_ADD_LIBS([libvlccore cdda cddax],-lsocket)
600     SOCKET_LIBS="-lsocket"
601   ])
602 ])
603 AC_SUBST(SOCKET_LIBS)
604
605 AC_CHECK_FUNCS(send,,[
606   AC_CHECK_LIB(socket,send,[
607     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])
608   ])
609 ])
610
611
612 dnl Check for socklen_t
613 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
614 AC_CACHE_CHECK([for socklen_t in sys/socket.h],
615 ac_cv_type_socklen_t,
616 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
617 [#include <sys/types.h>
618 #ifdef WIN32
619 # include <winsock2.h>
620 # include <ws2tcpip.h>
621 #else
622 # include <sys/socket.h>
623 #endif]], [[socklen_t len; len = 0;]])],
624 ac_cv_type_socklen_t=yes,
625 ac_cv_type_socklen_t=no)])
626 AS_IF([test "$ac_cv_type_socklen_t" = no],
627  [AC_DEFINE(socklen_t, int)])
628
629 dnl Check for struct sockaddr_storage
630 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.])
631 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.])
632 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
633   [AC_TRY_COMPILE(
634     [#include <sys/types.h>
635      #if defined( UNDER_CE )
636      # include <winsock2.h>
637      #elif defined( WIN32 )
638      # include <winsock2.h>
639      #else
640      # include <sys/socket.h>
641      #endif], [struct sockaddr_storage addr;],
642      ac_cv_struct_sockaddr_storage=yes,
643      ac_cv_struct_sockaddr_storage=no)])
644 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
645   AC_DEFINE(sockaddr_storage, sockaddr)
646   AC_DEFINE(ss_family, sa_family)
647 ])
648
649 dnl getaddrinfo, getnameinfo and gai_strerror check
650 dnl  -lnsl and -lsocket are needed on Solaris;
651 dnl  we purposedly make the test fail on Windows
652 LIBS_save="${LIBS}"
653 AH_TEMPLATE(HAVE_GETADDRINFO, [Define to 1 if you have the `getaddrinfo' function.])
654 AC_SEARCH_LIBS([getaddrinfo], [nsl], [AC_DEFINE(HAVE_GETADDRINFO)],, [${SOCKET_LIBS}])
655
656 dnl NOTE: we assume getaddrinfo will be present if getnameinfo or gai_strerro
657 dnl are
658 LIBS="${LIBS_gai}"
659 AC_CHECK_FUNCS([getnameinfo gai_strerror])
660 LIBS="${LIBS_save}"
661
662 AH_TEMPLATE(HAVE_ADDRINFO, [Define to 1 if <netdb.h> defines `struct addrinfo'.])
663 AC_CHECK_TYPES([struct addrinfo],[AC_DEFINE(HAVE_ADDRINFO)],,
664 [#include <sys/types.h>
665 #if defined( WIN32 ) || defined( UNDER_CE )
666 # if defined(UNDER_CE) && defined(sockaddr_storage)
667 #  undef sockaddr_storage
668 # endif
669 # include <winsock2.h>
670 # include <ws2tcpip.h>
671 #else
672 # include <netdb.h>
673 #endif])
674
675 dnl Check for va_copy
676 AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
677   AC_TRY_LINK(
678     [#include <stdarg.h>],
679     [va_list ap1, ap2; va_copy(ap1,ap2);],
680     [ac_cv_c_va_copy="yes"],
681     [ac_cv_c_va_copy="no"]))
682 if test "${ac_cv_c_va_copy}" = "yes"; then
683   AC_DEFINE(HAVE_VA_COPY, 1, [Define if <stdarg.h> defines va_copy.])
684 fi
685 AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
686   AC_TRY_LINK(
687     [#include <stdarg.h>],
688     [va_list ap1, ap2; __va_copy(ap1,ap2);],
689     [ac_cv_c___va_copy="yes"],
690     [ac_cv_c___va_copy="no"]))
691 if test "${ac_cv_c___va_copy}" = "yes"; then
692   AC_DEFINE(HAVE___VA_COPY, 1, [Define if <stdarg.h> defines __va_copy.])
693 fi
694
695 AC_CHECK_FUNCS(inet_aton,,[
696   AC_CHECK_LIB(resolv,inet_aton,[
697     VLC_ADD_LIBS([libvlccore],[-lresolv])
698   ])
699 ])
700
701 dnl Check for getopt (always use builtin one on win32)
702 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
703 need_getopt=:
704 else
705 need_getopt=false
706 AC_CHECK_FUNCS(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
707 [ # FreeBSD has a gnugetopt library for this:
708   AC_CHECK_LIB([gnugetopt],[getopt_long],
709     [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support)
710      VLC_ADD_LIBS([libvlccore],[-lgnugetopt])],
711     [need_getopt=:])])
712 fi
713 AM_CONDITIONAL(BUILD_GETOPT, ${need_getopt})
714
715 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
716 AC_TYPE_SIGNAL
717 AC_CHECK_LIB(m,cos,[
718   VLC_ADD_LIBS([adjust wave ripple psychedelic gradient a52tofloat32 dtstofloat32 x264 goom visual panoramix rotate noise grain scene kate flac lua],[-lm])
719 ])
720 AC_CHECK_LIB(m,pow,[
721   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])
722 ])
723 AC_CHECK_LIB(m,sqrt,[
724   VLC_ADD_LIBS([headphone_channel_mixer normvol speex mono colorthres extract],[-lm])
725 ])
726 AC_CHECK_LIB(m,ceil,[
727   VLC_ADD_LIBS([hotkeys mosaic],[-lm])
728 ])
729 AC_CHECK_LIB(m,exp,[
730   VLC_ADD_LIBS([gaussianblur],[-lm])
731 ])
732 AC_CHECK_LIB(m,round,[
733   VLC_ADD_LIBS([dbus],[-lm])
734 ])
735 AC_CHECK_LIB(m,sqrtf,[
736   VLC_ADD_LIBS([x264],[-lm])
737 ])
738 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
739
740 AC_CHECK_LIB(m,lrintf, [
741   AC_DEFINE(HAVE_LRINTF, 1, [Define to 1 if you have the lrintf function])
742   VLC_ADD_LIBS([skins2],[-lm])
743 ])
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 lua],[-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 linux/magic.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" -a ${SYS} != "mingwce"
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([-pipe])
1013
1014 AC_ARG_ENABLE(warnings-as-error,
1015       AS_HELP_STRING([--enable-warnings-as-error],[Treat acceptable warnings as error (default in debug)]),, [enable_warnings_as_error="$enable_debug"])
1016 AS_IF([test "${enable_warnings_as_error}" = "yes"], [
1017     RDC_PROG_CC_WERRORFLAGS([unused-function unused-label unused-value unused-parameter unused-variable unused \
1018      missing-braces nonnull parentheses uninitialized address enum-compare undef comment switch \
1019      bad-function-cast implicit sequence-point strict-aliasing array-bounds missing-parameter-type \
1020      overflow int-to-pointer-cast pointer-to-int-cast div-by-zero overflow ignored])
1021 ])
1022 AC_SUBST(CFLAGS_WERROR)
1023
1024 dnl Check for various optimization flags
1025 AC_CACHE_CHECK([if \$CC accepts -Os],
1026     [ac_cv_c_os],
1027     [CFLAGS="${CFLAGS_save} -Os"
1028      AC_TRY_COMPILE([],,ac_cv_c_os=yes, ac_cv_c_os=no)])
1029 if test "${ac_cv_c_os}" != "no"; then
1030     CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -Os"
1031 else
1032     AC_CACHE_CHECK([if \$CC accepts -O],
1033         [ac_cv_c_o],
1034         [CFLAGS="${CFLAGS_save} -O"
1035          AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
1036     if test "${ac_cv_c_o}" != "no"; then
1037         if test "${ac_cv_c_o3}" = "no"; then
1038             CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -O"
1039         fi
1040     fi
1041 fi
1042
1043 AC_CACHE_CHECK([if \$CC accepts -O4],
1044     [ac_cv_c_o4],
1045     [CFLAGS="${CFLAGS_save} -O4"
1046      AC_TRY_COMPILE([],,ac_cv_c_o4=yes, ac_cv_c_o4=no)])
1047 if test "${ac_cv_c_o4}" != "no" -a "x${enable_debug}" = "xno"; then
1048     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O4"
1049 else
1050     AC_CACHE_CHECK([if \$CC accepts -O3],
1051         [ac_cv_c_o3],
1052         [CFLAGS="${CFLAGS_save} -O3"
1053          AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
1054     if test "${ac_cv_c_o3}" != "no" -a "x${enable_debug}" = "xno"; then
1055         CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O3"
1056     else
1057         AC_CACHE_CHECK([if \$CC accepts -O2],
1058             [ac_cv_c_o2],
1059             [CFLAGS="${CFLAGS_save} -O2"
1060              AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
1061         if test "${ac_cv_c_o2}" != "no"; then
1062             CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O2"
1063         else
1064             AC_CACHE_CHECK([if \$CC accepts -O],
1065                 [ac_cv_c_o],
1066                 [CFLAGS="${CFLAGS_save} -O"
1067                  AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
1068             if test "${ac_cv_c_o}" != "no"; then
1069                 CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O"
1070             fi
1071         fi
1072     fi
1073 fi
1074
1075 AC_CACHE_CHECK([if \$CC accepts -O0],
1076     [ac_cv_c_o0],
1077     [CFLAGS="${CFLAGS_save} -O0"
1078      AC_TRY_COMPILE([],,ac_cv_c_o0=yes, ac_cv_c_o0=no)])
1079 if test "${ac_cv_c_o0}" != "no"; then
1080     CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O0"
1081 fi
1082
1083 dnl Check for -ffast-math
1084 AC_CACHE_CHECK([if \$CC accepts -ffast-math],
1085     [ac_cv_c_fast_math],
1086     [CFLAGS="${CFLAGS_save} -ffast-math"
1087      AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
1088 if test "${ac_cv_c_fast_math}" != "no"; then
1089     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -ffast-math"
1090 fi
1091
1092 dnl Check for -funroll-loops
1093 dnl Disabled on BeOS because BeOS' gcc is buggy and may crash with it
1094 if test "${SYS}" != "beos"
1095 then
1096   AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
1097       [ac_cv_c_unroll_loops],
1098       [CFLAGS="${CFLAGS_save} -funroll-loops"
1099        AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
1100   if test "${ac_cv_c_unroll_loops}" != "no"; then
1101       CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -funroll-loops"
1102   fi
1103 fi
1104
1105 dnl Check for -fomit-frame-pointer
1106 AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
1107     [ac_cv_c_omit_frame_pointer],
1108     [CFLAGS="${CFLAGS_save} -fomit-frame-pointer"
1109      AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
1110 if test "${ac_cv_c_omit_frame_pointer}" != "no"; then
1111  if test "${SYS}" != "darwin"; then
1112     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
1113  else
1114     dnl On darwin we explicitely disable it.
1115     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fno-omit-frame-pointer"
1116  fi
1117 fi
1118
1119 dnl Check for Darwin plugin linking flags
1120 AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error],
1121     [ac_cv_ld_darwin],
1122     [CFLAGS="${CFLAGS_save} -bundle -undefined error"
1123      AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
1124 if test "${ac_cv_ld_darwin}" != "no"; then
1125     VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
1126 fi
1127
1128 dnl Checks for __attribute__(aligned()) directive
1129 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1130     [ac_cv_c_attribute_aligned],
1131     [ac_cv_c_attribute_aligned=0
1132         CFLAGS="${CFLAGS_save} -Werror"
1133     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1134         AC_TRY_COMPILE([],
1135         [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1136         [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1137     done
1138         CFLAGS="${CFLAGS_save}"])
1139 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1140     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1141         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1142 fi
1143
1144 dnl Check for __attribute__((packed))
1145 AC_CACHE_CHECK([for __attribute__((packed))],
1146   [ac_cv_c_attribute_packed],
1147   [ac_cv_c_attribute_packed=no
1148    AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b; (void)b;],
1149                     [ac_cv_c_attribute_packed=yes])])
1150 if test "${ac_cv_c_attribute_packed}" != "no"; then
1151   AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1152 fi
1153
1154 dnl
1155 dnl  Check the CPU
1156 dnl
1157 case "${host_cpu}" in
1158   "")
1159     ARCH=unknown
1160     ;;
1161   *)
1162     ARCH="${host_cpu}"
1163     ;;
1164 esac
1165
1166 dnl Check for backtrace() support
1167 AC_CHECK_HEADERS(execinfo.h)
1168 AC_CHECK_FUNCS(backtrace)
1169
1170 dnl
1171 dnl  Enable profiling
1172 dnl
1173 AC_ARG_ENABLE(gprof,
1174 [  --enable-gprof          gprof profiling (default disabled)])
1175 AC_ARG_ENABLE(cprof,
1176 [  --enable-cprof          cprof profiling (default disabled)])
1177 test "${enable_gprof}" != "yes" && enable_gprof="no"
1178 test "${enable_cprof}" != "yes" && enable_cprof="no"
1179
1180 dnl
1181 dnl  default modules
1182 dnl
1183 dnl Video filters:
1184 VLC_ADD_PLUGIN([deinterlace])
1185 VLC_ADD_PLUGIN([yuvp])
1186 VLC_ADD_PLUGIN([invert])
1187 VLC_ADD_PLUGIN([mirror])
1188 VLC_ADD_PLUGIN([adjust])
1189 VLC_ADD_PLUGIN([transform])
1190 VLC_ADD_PLUGIN([wave])
1191 VLC_ADD_PLUGIN([ripple])
1192 VLC_ADD_PLUGIN([psychedelic])
1193 VLC_ADD_PLUGIN([gradient])
1194 VLC_ADD_PLUGIN([motionblur])
1195 VLC_ADD_PLUGIN([rv32])
1196 VLC_ADD_PLUGIN([rotate])
1197 VLC_ADD_PLUGIN([noise])
1198 VLC_ADD_PLUGIN([grain])
1199 VLC_ADD_PLUGIN([extract])
1200 VLC_ADD_PLUGIN([sharpen])
1201 VLC_ADD_PLUGIN([croppadd])
1202 VLC_ADD_PLUGIN([canvas])
1203 VLC_ADD_PLUGIN([blendbench])
1204 VLC_ADD_PLUGIN([blend])
1205 VLC_ADD_PLUGIN([scale])
1206 VLC_ADD_PLUGIN([vmem])
1207 VLC_ADD_PLUGIN([logo])
1208 VLC_ADD_PLUGIN([magnify])
1209 VLC_ADD_PLUGIN([puzzle])
1210 VLC_ADD_PLUGIN([colorthres])
1211 VLC_ADD_PLUGIN([scene])
1212 VLC_ADD_PLUGIN([yuv])
1213
1214 ALIASES="${ALIASES} cvlc"
1215
1216 dnl
1217 dnl default modules that need g++
1218 dnl
1219 AC_LANG_PUSH(C++)
1220 VLC_ADD_PLUGIN([spatializer])
1221 AC_LANG_POP(C++)
1222
1223 if test "${SYS}" != "mingwce"; then
1224   VLC_ADD_PLUGIN([gestures])
1225   VLC_ADD_PLUGIN([rc])
1226   VLC_ADD_PLUGIN([hotkeys])
1227   VLC_ADD_PLUGIN([showintf])
1228   VLC_ADD_PLUGIN([marq])
1229   VLC_ADD_PLUGIN([podcast])
1230   VLC_ADD_PLUGIN([shout])
1231   VLC_ADD_PLUGIN([sap])
1232   VLC_ADD_PLUGIN([mediadirs])
1233   VLC_ADD_PLUGIN([fake])
1234   VLC_ADD_PLUGIN([folder])
1235   VLC_ADD_PLUGIN([rss])
1236   VLC_ADD_PLUGIN([mosaic])
1237   VLC_ADD_PLUGIN([wall])
1238   VLC_ADD_PLUGIN([motiondetect])
1239   VLC_ADD_PLUGIN([clone])
1240   VLC_ADD_PLUGIN([crop])
1241   VLC_ADD_PLUGIN([erase])
1242   VLC_ADD_PLUGIN([bluescreen])
1243   VLC_ADD_PLUGIN([alphamask])
1244   VLC_ADD_PLUGIN([gaussianblur])
1245   VLC_ADD_PLUGIN([i420_yuy2])
1246   VLC_ADD_PLUGIN([i422_yuy2])
1247   VLC_ADD_PLUGIN([i420_ymga])
1248   VLC_ADD_PLUGIN([i422_i420])
1249   VLC_ADD_PLUGIN([yuy2_i422])
1250   VLC_ADD_PLUGIN([yuy2_i420])
1251   VLC_ADD_PLUGIN([chain])
1252   VLC_ADD_PLUGIN([aout_file])
1253   VLC_ADD_PLUGIN([linear_resampler])
1254   VLC_ADD_PLUGIN([bandlimited_resampler])
1255   VLC_ADD_PLUGIN([float32_mixer])
1256   VLC_ADD_PLUGIN([spdif_mixer])
1257   VLC_ADD_PLUGIN([simple_channel_mixer])
1258   VLC_ADD_PLUGIN([dolby_surround_decoder])
1259   VLC_ADD_PLUGIN([headphone_channel_mixer])
1260   VLC_ADD_PLUGIN([normvol])
1261   VLC_ADD_PLUGIN([equalizer])
1262   VLC_ADD_PLUGIN([param_eq])
1263   VLC_ADD_PLUGIN([scaletempo])
1264   VLC_ADD_PLUGIN([converter_float])
1265   VLC_ADD_PLUGIN([a52tospdif])
1266   VLC_ADD_PLUGIN([dtstospdif])
1267   VLC_ADD_PLUGIN([audio_format])
1268   ALIASES="${ALIASES} rvlc"
1269 fi
1270
1271 if test "${SYS}" = "mingwce"; then
1272   VLC_ADD_PLUGIN([chain])
1273   VLC_ADD_PLUGIN([aout_file])
1274   VLC_ADD_PLUGIN([linear_resampler])
1275   VLC_ADD_PLUGIN([bandlimited_resampler])
1276   VLC_ADD_PLUGIN([float32_mixer])
1277   VLC_ADD_PLUGIN([spdif_mixer])
1278   VLC_ADD_PLUGIN([simple_channel_mixer])
1279   VLC_ADD_PLUGIN([headphone_channel_mixer])
1280   VLC_ADD_PLUGIN([normvol])
1281   VLC_ADD_PLUGIN([converter_float])
1282   VLC_ADD_PLUGIN([a52tospdif])
1283   VLC_ADD_PLUGIN([dtstospdif])
1284   VLC_ADD_PLUGIN([audio_format])
1285   VLC_ADD_PLUGIN([i420_yuy2])
1286   VLC_ADD_PLUGIN([i422_yuy2])
1287   VLC_ADD_PLUGIN([i420_ymga])
1288   VLC_ADD_PLUGIN([i422_i420])
1289   VLC_ADD_PLUGIN([yuy2_i422])
1290   VLC_ADD_PLUGIN([yuy2_i420])
1291 fi
1292
1293 dnl
1294 dnl Some plugins aren't useful on some platforms
1295 dnl
1296 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1297     VLC_ADD_PLUGIN([screensaver])
1298     VLC_ADD_PLUGIN([motion])
1299     VLC_ADD_PLUGIN([dynamicoverlay])
1300     VLC_ADD_PLUGIN([signals])
1301 elif test "${SYS}" != "mingwce"; then
1302     VLC_ADD_PLUGIN([ntservice])
1303     VLC_ADD_PLUGIN([access_smb])
1304     VLC_ADD_PLUGIN([dmo])
1305     VLC_ADD_PLUGIN([msn])
1306     VLC_ADD_LIBS([dmo],[-lole32 -luuid])
1307     VLC_ADD_PLUGIN([globalhotkeys])
1308 else
1309     VLC_ADD_PLUGIN([win32text])
1310 fi
1311 if test "${SYS}" = "darwin"; then
1312     VLC_ADD_PLUGIN([quartztext])
1313     VLC_ADD_LDFLAGS([quartztext],[-Wl,-framework,Carbon,-framework,ApplicationServices])
1314 fi
1315
1316 dnl
1317 dnl  Accelerated modules
1318 dnl
1319 AC_ARG_WITH(,[])
1320 AC_ARG_WITH(,[Optimization options:])
1321
1322 dnl  Check for fully working MMX intrinsics
1323 dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a
1324 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1325 AC_ARG_ENABLE(mmx,
1326 [  --disable-mmx           disable MMX optimizations (default auto)],,[
1327   case "${host_cpu}" in
1328     i?86|x86_64)
1329       enable_mmx="yes"
1330       ;;
1331     *)
1332       enable_mmx="no"
1333       ;;
1334   esac
1335 ])
1336 AS_IF([test "${enable_mmx}" != "no"], [
1337   ARCH="${ARCH} mmx"
1338
1339   AC_CACHE_CHECK([if $CC groks MMX intrinsics],
1340     [ac_cv_c_mmx_intrinsics],
1341     [CFLAGS="${CFLAGS_save} -O -mmmx"
1342      AC_TRY_COMPILE([#include <mmintrin.h>
1343                      #include <stdint.h>
1344                      uint64_t frobzor;],
1345                     [__m64 a, b, c;
1346                      a = b = c = (__m64)frobzor;
1347                      a = _mm_slli_pi16(a, 3);
1348                      a = _mm_adds_pi16(a, b);
1349                      c = _mm_srli_pi16(c, 8);
1350                      c = _mm_slli_pi16(c, 3);
1351                      b = _mm_adds_pi16(b, c);
1352                      a = _mm_unpacklo_pi8(a, b);
1353                      frobzor = (uint64_t)a;],
1354                     [ac_cv_c_mmx_intrinsics=yes],
1355                     [ac_cv_c_mmx_intrinsics=no])])
1356   AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1357     AC_DEFINE(HAVE_MMX_INTRINSICS, 1,
1358               [Define to 1 if MMX intrinsics are available.])
1359     VLC_ADD_CFLAGS([memcpymmx i420_rgb_mmx i420_yuy2_mmx i422_yuy2_mmx i420_ymga_mmx],[-mmmx])
1360   ])
1361
1362   AC_CACHE_CHECK([if $CC groks MMX inline assembly],
1363     [ac_cv_mmx_inline],
1364     [CFLAGS="${CFLAGS_save}"
1365      AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
1366                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
1367   AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1368     AC_DEFINE(CAN_COMPILE_MMX, 1,
1369               [Define to 1 inline MMX assembly is available.])
1370     VLC_ADD_PLUGIN([memcpymmx])
1371     VLC_ADD_PLUGIN([i420_rgb_mmx])
1372     VLC_ADD_PLUGIN([i420_yuy2_mmx])
1373     VLC_ADD_PLUGIN([i422_yuy2_mmx])
1374     VLC_ADD_PLUGIN([i420_ymga_mmx])
1375   ])
1376
1377   AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1378     [ac_cv_mmxext_inline],
1379     [CFLAGS="${CFLAGS_save}"
1380      AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
1381                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
1382   AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1383     AC_DEFINE(CAN_COMPILE_MMXEXT, 1,
1384               [Define to 1 if MMX EXT inline assembly is available.])
1385     VLC_ADD_PLUGIN([memcpymmxext])
1386   ])
1387 ])
1388
1389 dnl  Check for fully workin SSE2 intrinsics
1390 dnl  We need support for -mmmx, we need <emmintrin.h>, and we also need a
1391 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1392 AC_ARG_ENABLE(sse,
1393 [  --disable-sse           disable SSE (1 and 2) optimizations (default auto)]
1394 ,, [
1395   case "${host_cpu}" in
1396     i686|x86_64)
1397       enable_sse=yes
1398       ;;
1399     *)
1400       enable_sse=no
1401       ;;
1402   esac
1403 ])
1404 AS_IF([test "${enable_sse}" != "no"], [
1405   ARCH="${ARCH} sse sse2"
1406
1407   AC_CACHE_CHECK([if $CC groks SSE2 intrinsics],
1408     [ac_cv_c_sse2_intrinsics],
1409     [CFLAGS="${CFLAGS_save} -O -msse2"
1410      AC_TRY_COMPILE([#include <emmintrin.h>
1411                      #include <stdint.h>
1412                      uint64_t frobzor;],
1413                     [__m128i a, b, c;
1414                      a = b = c = _mm_set1_epi64((__m64)frobzor);
1415                      a = _mm_slli_epi16(a, 3);
1416                      a = _mm_adds_epi16(a, b);
1417                      c = _mm_srli_epi16(c, 8);
1418                      c = _mm_slli_epi16(c, 3);
1419                      b = _mm_adds_epi16(b, c);
1420                      a = _mm_unpacklo_epi8(a, b);
1421                      frobzor = (uint64_t)_mm_movepi64_pi64(a);],
1422                     [ac_cv_c_sse2_intrinsics=yes],
1423                     [ac_cv_c_sse2_intrinsics=no])])
1424   AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1425     AC_DEFINE(HAVE_SSE2_INTRINSICS, 1,
1426               [Define to 1 if SSE2 intrinsics are available.])
1427     VLC_ADD_CFLAGS([i420_rgb_sse2 i420_yuy2_sse2 i422_yuy2_sse2],[-msse2])
1428   ])
1429
1430   AC_CACHE_CHECK([if $CC groks SSE inline assembly],
1431     [ac_cv_sse_inline],
1432     [CFLAGS="${CFLAGS_save}"
1433      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
1434                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
1435   AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1436     AC_DEFINE(CAN_COMPILE_SSE, 1,
1437               [Define to 1 if SSE inline assembly is available.])
1438   ])
1439
1440   AC_CACHE_CHECK([if $CC groks SSE2 inline assembly],
1441     [ac_cv_sse2_inline],
1442     [CFLAGS="${CFLAGS_save}"
1443      AC_TRY_COMPILE(,[void *p;asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p));],
1444                     ac_cv_sse2_inline=yes, ac_cv_sse2_inline=no)])
1445   AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1446     AC_DEFINE(CAN_COMPILE_SSE2, 1,
1447               [Define to 1 if SSE2 inline assembly is available.])
1448     VLC_ADD_PLUGIN([i420_rgb_sse2])
1449     VLC_ADD_PLUGIN([i420_yuy2_sse2])
1450     VLC_ADD_PLUGIN([i422_yuy2_sse2])
1451   ])
1452 ])
1453
1454 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly],
1455     [ac_cv_3dnow_inline],
1456     [CFLAGS="${CFLAGS_save}"
1457      AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
1458                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
1459 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1460   AC_DEFINE(CAN_COMPILE_3DNOW, 1,
1461             [Define to 1 if 3D Now! inline assembly is available.])
1462   VLC_ADD_PLUGIN([memcpy3dn])
1463 ])
1464
1465 AC_ARG_ENABLE(altivec,
1466 [  --disable-altivec       disable AltiVec optimizations (default auto)],, [
1467   AS_IF([test "${host_cpu}" = "powerpc"],
1468         [enable_altivec=yes], [enable_altivec=no])
1469 ])
1470 AS_IF([test "${enable_altivec}" = "yes"], [
1471   ARCH="${ARCH} altivec";
1472   AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1473     [ac_cv_altivec_inline],
1474     [CFLAGS="${CFLAGS_save}"
1475      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1476          ac_cv_altivec_inline="yes",
1477          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
1478           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1479             [ac_cv_altivec_inline="-Wa,-m7400"],
1480             ac_cv_altivec_inline=no)
1481          ])])
1482   AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1483     AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1484               [Define to 1 if AltiVec inline assembly is available.])
1485     AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1486       VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
1487       VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
1488       VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1489       VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1490       VLC_ADD_CFLAGS([libvlccore],[${ac_cv_altivec_inline}])
1491     ])
1492     VLC_ADD_PLUGIN([memcpyaltivec])
1493     VLC_ADD_PLUGIN([i420_yuy2_altivec])
1494   ])
1495
1496 dnl The AltiVec C extensions
1497 dnl
1498 dnl There are several possible cases:
1499 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1500 dnl                      need <altivec.h>
1501 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1502 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1503 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1504 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1505 dnl - Others: test should fail
1506   AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1507   [ac_cv_c_altivec],
1508   [# OS X/PPC test (gcc 4.x)
1509    CFLAGS="${CFLAGS_save} -mpim-altivec -force_cpusubtype_ALL"
1510    AC_TRY_COMPILE([vector unsigned char foo;],
1511      [vec_ld(0, (unsigned char *)0);],
1512      [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1513      [# OS X/PPC test (gcc 3.x)
1514       CFLAGS="${CFLAGS_save} -faltivec"
1515       AC_TRY_COMPILE([vector unsigned char foo;],
1516         [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1517         [ac_cv_c_altivec="-faltivec"],
1518         dnl Below this are the Linux tests
1519         [# Linux/PPC test (gcc 4.x)
1520          CFLAGS="${CFLAGS_save} -maltivec"
1521          AC_TRY_COMPILE([#include <altivec.h>],
1522            [vec_ld(0, (unsigned char *)0);],
1523            [ac_cv_c_altivec="-maltivec"],
1524            [# Linux/PPC test (gcc 3.3)
1525             CFLAGS="${CFLAGS_save} -maltivec -mabi=altivec"
1526             AC_TRY_COMPILE([#include <altivec.h>],
1527               [vec_ld(0, (unsigned char *)0);],
1528               [ac_cv_c_altivec=""
1529                ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1530               [# Linux/PPC test (gcc 3.3)
1531                CFLAGS="${CFLAGS_save} -fvec"
1532                AC_TRY_COMPILE([#include <altivec.h>],
1533                  [vec_ld(0, (unsigned char *)0);],
1534                  [ac_cv_c_altivec="-fvec"],
1535                  [ac_cv_c_altivec=no])
1536               ])
1537            ])
1538         ])
1539      ])
1540    CFLAGS="${CFLAGS_save}"
1541   ])
1542   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1543     CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
1544   ])
1545
1546   AC_CHECK_HEADERS(altivec.h)
1547   CPPFLAGS="${CPPFLAGS_save}"
1548
1549   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1550     AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1,
1551               [Define to 1 if C AltiVec extensions are available.])
1552     VLC_ADD_CFLAGS([libvlccore],[${ac_cv_c_altivec}])
1553     VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
1554     VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1555     VLC_ADD_PLUGIN([memcpyaltivec])
1556     VLC_ADD_PLUGIN([i420_yuy2_altivec])
1557   ])
1558
1559   AC_CACHE_CHECK([if linker needs -framework vecLib],
1560     [ac_cv_ld_altivec],
1561     [LDFLAGS="${LDFLAGS_vlc} -Wl,-framework,vecLib"
1562      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
1563      LDFLAGS="${LDFLAGS_save}"
1564     ])
1565   AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1566     VLC_ADD_LDFLAGS([libvlccore idctaltivec motionaltivec memcpyaltivec],[-Wl,-framework,vecLib])
1567   ])
1568 ])
1569
1570 dnl
1571 dnl  Special arch tuning
1572 dnl
1573 AC_ARG_WITH(tuning,
1574 [  --with-tuning=ARCH      enable special tuning for an architecture
1575                           (default Pentium 2 on IA-32 and G4 on PPC)])
1576 if test -n "${with_tuning}"; then
1577     if test "${with_tuning}" != "no"; then
1578         CFLAGS_TUNING="-mtune=${with_tuning}"
1579     fi
1580 else
1581     if test "${SYS}" = "darwin" -a "${host_cpu}" != "powerpc"; then
1582         CFLAGS_TUNING="-march=prescott -mtune=generic"
1583     elif test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "i386"; then
1584         CFLAGS_TUNING="-mtune=pentium2"
1585     elif test "${host_cpu}" = "x86_64"; then
1586         CFLAGS_TUNING="-mtune=athlon64"
1587     elif test "${host_cpu}" = "powerpc"; then
1588         CFLAGS_TUNING="-mtune=G4";
1589     fi
1590 fi
1591
1592 dnl NOTE: this can't be cached cleanly
1593 AS_IF([test "${CFLAGS_TUNING}"],
1594    [CFLAGS_save="${CFLAGS}"
1595     CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1596
1597     AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1598     AC_COMPILE_IFELSE([ ],
1599                       [tuning="yes"],
1600                       [CFLAGS_TUNING=""; tuning="no"
1601                        AS_IF([test "${with_tuning}"],
1602                              [AC_MSG_ERROR([requested tuning not supported])])])
1603
1604     AC_MSG_RESULT([$tuning])
1605     CFLAGS="${CFLAGS_save}"
1606 ])
1607
1608 dnl
1609 dnl  Memory usage
1610 dnl
1611 AC_ARG_ENABLE(optimize-memory,
1612 [  --enable-optimize-memory optimize memory usage over performance])
1613 if test "${enable_optimize_memory}" = "yes"; then
1614   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1615 fi
1616
1617 dnl
1618 dnl  Enable/disable optimizations
1619 dnl
1620 AC_ARG_ENABLE(optimizations,
1621 [  --disable-optimizations disable compiler optimizations (default enabled)])
1622 if test "${enable_optimizations}" != "no"; then
1623    if test "${enable_optimize_memory}" = "yes"; then
1624       enable_optimizations="size"
1625    else
1626       enable_optimizations="speed"
1627    fi
1628 fi
1629
1630 dnl
1631 dnl  Debugging mode
1632 dnl
1633 AC_ARG_ENABLE(debug,
1634 [  --enable-debug          debug mode (default disabled)])
1635 test "${enable_debug}" != "yes" && enable_debug="no"
1636 AH_TEMPLATE(NDEBUG,
1637             [Define to 1 if debug code should NOT be compiled])
1638 AS_IF([test "x${enable_debug}" = "xno"], [
1639   AC_DEFINE(NDEBUG)
1640 ], [
1641   AC_CHECK_HEADERS([valgrind/valgrind.h])
1642 ])
1643
1644 dnl
1645 dnl Allow runing as root (usefull for people runing on embedded platforms)
1646 dnl
1647 AC_ARG_ENABLE(run-as-root,
1648 [  --enable-run-as-root    allow runing VLC as root (default disabled)])
1649 AS_IF([test "${enable_run_as_root}" = "yes"],[
1650     AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1651               [Define to 1 to allow runing VLC as root (uid 0).])
1652 ])
1653
1654 dnl
1655 dnl  Test coverage
1656 dnl
1657 AC_ARG_ENABLE(coverage,
1658         [  --enable-coverage       build for test coverage (default disabled)],,
1659         [enable_coverage="no"])
1660 AS_IF([test "${enable_coverage}" != "no"], [
1661         CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
1662         CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
1663         LDFLAGS="-lgcov ${LDFLAGS}"
1664         dnl ugly...
1665         CFLAGS_save="${CFLAGS}"
1666         CXXFLAGS_save="${CXXFLAGS}"
1667         LDFLAGS_save="${LDFLAGS}"
1668 ])
1669
1670 dnl
1671 dnl  Enable release-specific flags
1672 dnl
1673 AC_ARG_ENABLE(release,
1674 [  --enable-release        activate extra optimizations (default disabled)])
1675 test "${enable_release}" != "yes" && enable_release="no"
1676
1677 dnl
1678 dnl Stream output
1679 dnl
1680 AC_ARG_ENABLE(sout,
1681   [  --enable-sout           Stream output modules (default enabled)])
1682 AS_IF([test "${enable_sout}" != "no"], [
1683   AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1684 ])
1685 AM_CONDITIONAL(ENABLE_SOUT, [test "${enable_sout}" != "no"])
1686
1687 dnl Lua modules
1688 AC_ARG_ENABLE(lua,
1689   AS_HELP_STRING([--enable-lua],[lua playlist, metafetcher and interface
1690                   plugins (default enabled)]))
1691 if test "${enable_lua}" != "no"
1692 then
1693   PKG_CHECK_MODULES(LUA, lua5.1,
1694     [ have_lua=yes ],
1695     [
1696     AC_MSG_WARN([lua5.1 not found, trying lua >= 5.1 instead])
1697     PKG_CHECK_MODULES(LUA, lua >= 5.1,
1698       [ have_lua=yes ],
1699       [
1700         have_lua=yes
1701         AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1702           [],
1703           [ have_lua=no ] )
1704         AC_CHECK_LIB(  lua5.1 , luaL_newstate,
1705           [LUA_LIBS="-llua5.1"],
1706           AC_CHECK_LIB( lua51 , luaL_newstate,
1707             [LUA_LIBS="-llua51"],
1708             AC_CHECK_LIB( lua , luaL_newstate,
1709               [LUA_LIBS="-llua"],
1710               [ have_lua=no
1711                 AC_MSG_WARN([lua >= 5.1 not found!])
1712               ])
1713           )
1714         )
1715       ])
1716     ])
1717   if test "x${have_lua}" = "xyes" ;  then
1718      AC_DEFINE(HAVE_LUA, 1, [Define if you have the lua library])
1719      VLC_ADD_LIBS([lua],[$LUA_LIBS])
1720      VLC_ADD_CFLAGS([lua],[$LUA_CFLAGS])
1721   fi
1722 fi
1723 AM_CONDITIONAL(BUILD_LUA, [test "${have_lua}" = "yes"])
1724
1725 dnl
1726 dnl HTTP daemon
1727 dnl
1728 AC_ARG_ENABLE(httpd,
1729   [  --enable-httpd          HTTP daemon (default enabled)])
1730 if test "${enable_httpd}" != "no"
1731 then
1732   VLC_ADD_PLUGIN([http])
1733   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
1734 fi
1735 AM_CONDITIONAL(BUILD_HTTPD, [test "${enable_httpd}" != "no"])
1736
1737 dnl
1738 dnl libproxy support
1739 dnl
1740 AC_ARG_ENABLE(libproxy,
1741   [  --enable-libproxy       libproxy support (default auto)])
1742 AS_IF([test "${enable_libproxy}" != "no"], [
1743   PKG_CHECK_MODULES(LIBPROXY, libproxy-1.0, [
1744     AC_DEFINE(HAVE_LIBPROXY, 1, [Define if libproxy is available])
1745     VLC_ADD_CFLAGS([access_http],[$LIBPROXY_CFLAGS])
1746     VLC_ADD_LIBS([access_http],[$LIBPROXY_LIBS])
1747   ], [
1748     AS_IF([test "x${enable_libproxy}" != "x"], [
1749       AC_MSG_ERROR([libproxy could not be found on your system])
1750     ])
1751   ])
1752 ])
1753
1754
1755 dnl
1756 dnl VideoLAN manager
1757 dnl
1758 AC_ARG_ENABLE(vlm,
1759   [  --enable-vlm            VideoLAN manager (default enabled)],,
1760   [enable_vlm="${enable_sout}"])
1761 AS_IF([test "${enable_vlm}" != "no"], [
1762   AS_IF([test "${enable_sout}" = "no"], [
1763     AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1764   ])
1765   AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1766   VLC_ADD_PLUGIN([telnet])
1767 ])
1768 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1769
1770 dnl
1771 dnl Growl notification plugin
1772 dnl
1773 AC_ARG_ENABLE(growl,
1774   [  --enable-growl          growl notification plugin (default disabled)],,
1775   [enable_growl=no])
1776 AS_IF([test "${enable_growl}" != "no"], [
1777     VLC_ADD_PLUGIN([growl_udp])
1778     AC_CHECK_HEADERS(Growl/GrowlDefines.h, [
1779       VLC_ADD_PLUGIN([growl])
1780       VLC_ADD_LDFLAGS([growl], [-Wl,-framework,Growl,-framework,AppKit])
1781     ])
1782   ]
1783 )
1784
1785 dnl
1786 dnl Libnotify notification plugin
1787 dnl
1788 PKG_ENABLE_MODULES_VLC([NOTIFY], [], [libnotify], [libnotify notification], [auto])
1789
1790 dnl
1791 dnl Audioscrobbler plugin
1792 dnl
1793
1794 AC_ARG_ENABLE(audioscrobbler,
1795   [  --disable-audioscrobbler Last.fm submission plugin (default enabled)])
1796 AS_IF([test "${enable_audioscrobbler}" != "no"], [
1797         VLC_ADD_PLUGIN([audioscrobbler])
1798   ])
1799
1800 dnl
1801 dnl Taglibplugin
1802 dnl
1803 AC_ARG_ENABLE(taglib,
1804   [  --disable-taglib        Taglib support (default enabled) ])
1805   AS_IF([test "${enable_taglib}" != "no"],[
1806     PKG_CHECK_MODULES(TAGLIB, taglib >= 1.5,
1807       [ AC_DEFINE( HAVE_TAGLIB, 1, [Define if you have taglib plugin built] )
1808         VLC_ADD_PLUGIN([taglib])
1809         VLC_ADD_LIBS([taglib],[$TAGLIB_LIBS -lz])
1810        VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS]) ],
1811       [AC_MSG_WARN(TagLib library not found)])
1812   ])
1813
1814 dnl
1815 dnl  Input plugins
1816 dnl
1817
1818 AC_ARG_WITH(,[Input plugins:])
1819
1820 dnl  live555 input
1821 dnl
1822 if test "${enable_livedotcom}"
1823 then
1824   AC_MSG_WARN(--{en|dis}able-livedotcom is deprecated. Use --{en|dis}able-live555 instead.)
1825 fi
1826 if test "${enable_livedotcom}" = "no"
1827 then
1828   enable_live555="no"
1829 fi
1830
1831 AC_ARG_ENABLE(live555,
1832 [  --enable-live555        live555 RTSP input plugin (default enabled)])
1833 if test "${enable_live555}" != "no"; then
1834   AC_ARG_WITH(live555-tree,
1835     [    --with-live555-tree=PATH live.com tree for static linking])
1836
1837   dnl
1838   dnl test for --with-live555-tree
1839   dnl
1840   if test "${with_livedotcom_tree}"
1841   then
1842     AC_MSG_WARN(--with-livedotcom-tree is deprecated. Use --with-live555-tree instead.)
1843   with_live555_tree="${with_livedotcom_tree}"
1844   fi
1845
1846   if test -z "${with_live555_tree}" -a "${CXX}" != ""; then
1847     AC_LANG_PUSH(C++)
1848     CPPFLAGS_save="${CPPFLAGS}"
1849     CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1850     if test "${SYS}" = "solaris"; then
1851       CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1852     fi
1853     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1854
1855     AC_CHECK_HEADERS(liveMedia_version.hh, [
1856       AC_MSG_CHECKING(for liveMedia version >= 1214895600 )
1857       AC_EGREP_CPP(yes,
1858         [#include <liveMedia_version.hh>
1859          #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
1860          #if LIVEMEDIA_LIBRARY_VERSION_INT < 1214895600
1861          yes
1862          #endif
1863          #endif],
1864         [AC_MSG_RESULT([no])
1865          AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia.
1866 lternatively you can use --disable-live555 to disable the liveMedia plugin.])
1867       ],[
1868          AC_MSG_RESULT([yes])
1869          ])
1870     ])
1871      other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1872      other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
1873       if test "${SYS}" = "mingw32"; then
1874         # add ws2_32 for closesocket, select, recv
1875         other_libs="$other_libs -lws2_32"
1876       fi
1877     dnl We need to check for pic because live555 don't provide shared libs
1878     dnl and we want to build a plugins so we need -fPIC on some arch.
1879     AC_CHECK_HEADERS(liveMedia.hh, [
1880       VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1881         AC_CHECK_LIB(liveMedia_pic, main, [
1882           VLC_ADD_PLUGIN([live555])
1883          VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
1884          ],[
1885         AC_CHECK_LIB(liveMedia, main, [
1886           VLC_ADD_PLUGIN([live555])
1887           VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1888         ],[],[${other_libs}]) ],[${other_libs_pic}])
1889     ],[
1890        AC_MSG_WARN([The development files for liveMedia (live555) can't be found])
1891     ])
1892     CPPFLAGS="${CPPFLAGS_save}"
1893     AC_LANG_POP(C++)
1894   else
1895     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_live555_tree})
1896     real_live555_tree="`cd ${with_live555_tree} 2>/dev/null && pwd`"
1897     if test -z "${real_live555_tree}"; then
1898       dnl  The given directory can't be found
1899       AC_MSG_RESULT(no)
1900       AC_MSG_ERROR([cannot cd to ${with_live555_tree}])
1901     fi
1902     if test -f "${real_live555_tree}/liveMedia/libliveMedia.a"; then
1903       AC_MSG_RESULT(${real_live555_tree}/liveMedia/libliveMedia.a)
1904
1905       AC_CHECK_HEADERS(${real_live555_tree}/liveMedia/include/liveMedia_version.hh,[
1906         AC_MSG_CHECKING(for liveMedia version >= 1214895600 )
1907         AC_EGREP_CPP(yes,
1908           [#include "${real_live555_tree}/liveMedia/include/liveMedia_version.hh"
1909            #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
1910            #if LIVEMEDIA_LIBRARY_VERSION_INT < 1214895600
1911            yes
1912            #endif
1913            #endif],
1914           [AC_MSG_RESULT([no])
1915            AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia.
1916 lternatively you can use --disable-live555 to disable the liveMedia plugin.])
1917         ],[
1918            AC_MSG_RESULT([yes])
1919            ])
1920       ])
1921
1922       VLC_ADD_PLUGIN([live555])
1923
1924       if test "${SYS}" = "mingw32"; then
1925         # add ws2_32 for closesocket, select, recv
1926         VLC_ADD_LIBS([live555],[-lws2_32])
1927       fi
1928
1929       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/liveMedia -lliveMedia])
1930       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1931       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/groupsock -lgroupsock])
1932       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/UsageEnvironment -lUsageEnvironment])
1933
1934       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/BasicUsageEnvironment/include])
1935       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/groupsock/include])
1936       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/liveMedia/include])
1937       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/UsageEnvironment/include ])
1938       if test "${SYS}" = "solaris"; then
1939         VLC_ADD_CXXFLAGS([live555],[-DSOLARIS])
1940       fi
1941     else
1942       dnl  The given live555 wasn't built
1943         AC_MSG_RESULT(no)
1944       if test "${enable_live555}" = "yes"; then
1945         AC_MSG_ERROR([cannot find ${real_live555_tree}/liveMedia/libliveMedia.a, make sure you compiled live555 in ${with_live555_tree}])
1946       fi        
1947     fi
1948   fi
1949 fi
1950
1951 dnl
1952 dnl - special access module for dc1394 input
1953 dnl - dv module: digital video module check for libraw1394
1954 dnl
1955 PKG_ENABLE_MODULES_VLC([dc1394], [], [libraw1394 >= 2.0.1 libdc1394 >= 1.0.0], [dc1394 access module], [auto])
1956 PKG_ENABLE_MODULES_VLC([dv], [access_dv], [libraw1394 >= 2.0.1 libavc1394 >= 0.5.3], [DV input module], [auto])
1957
1958 dnl
1959 dnl dvdread module: check for libdvdread
1960 dnl
1961 AC_ARG_ENABLE(dvdread,
1962 [  --enable-dvdread        dvdread input module (default disabled)])
1963 if test "${enable_dvdread}" != "no"
1964 then
1965   AC_ARG_WITH(dvdread,
1966   [    --with-dvdread=PATH   libdvdread headers and libraries])
1967   AC_ARG_WITH(dvdread-tree,
1968   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
1969
1970   dnl Temporary hack (yeah, sure ;)
1971   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
1972       VLC_ADD_LIBS([dvdread],[-ldvdcss])
1973   fi
1974
1975   if test -z "${with_dvdread}"
1976   then
1977     if test -z "${with_dvdread_tree}"
1978     then
1979       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
1980         [ VLC_ADD_PLUGIN([dvdread])
1981           VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
1982         ],[
1983           AC_CHECK_HEADERS(libdvdread/dvd_reader.h,
1984             [ VLC_ADD_PLUGIN([dvdread])
1985               VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
1986             ],[
1987               if test -n "${enable_dvdread}"
1988               then
1989               AC_MSG_ERROR([cannot find libdvdread headers])
1990              fi
1991            ])
1992         ])
1993     else
1994       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
1995       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
1996       if test -z "${real_dvdread_tree}"
1997       then
1998         dnl  The given directory can't be found
1999         AC_MSG_RESULT(no)
2000         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
2001       fi
2002       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
2003       then
2004         dnl  Use a custom libdvdread
2005         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
2006         VLC_ADD_PLUGIN([dvdread])
2007         VLC_ADD_LIBS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LIBS_dvdcss}])
2008         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
2009       else
2010         dnl  The given libdvdread wasn't built
2011         AC_MSG_RESULT(no)
2012         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
2013       fi
2014     fi
2015   else
2016     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
2017     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
2018     then
2019       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
2020       AC_MSG_RESULT(yes)
2021       VLC_ADD_PLUGIN([dvdread])
2022       VLC_ADD_LIBS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LIBS_dvdcss}])
2023       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
2024     else
2025       dnl  No libdvdread could be found, sorry
2026       AC_MSG_RESULT(no)
2027       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
2028     fi
2029   fi
2030 fi
2031
2032 dnl
2033 dnl  libdvdnav plugin
2034 dnl
2035 AC_ARG_ENABLE(dvdnav,
2036   [  --enable-dvdnav         dvdnav input module (default enabled)])
2037 if test "${enable_dvdnav}" != "no"
2038 then
2039   dnl Same hack than dvdread
2040   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2041       VLC_ADD_LIBS([dvdnav],[-ldvdcss])
2042   fi
2043
2044   DVDNAV_PATH="${PATH}"
2045   AC_ARG_WITH(dvdnav-config-path,
2046     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
2047     [ if test "${with_dvdnav_config_path}" != "no"
2048       then
2049         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
2050       fi ])
2051   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
2052   if test "${DVDNAV_CONFIG}" != "no"
2053   then
2054     VLC_ADD_PLUGIN([dvdnav])
2055     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
2056     VLC_ADD_LIBS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
2057   fi
2058 fi
2059
2060 dnl
2061 dnl  Windows DirectShow access module
2062 dnl
2063 AC_ARG_ENABLE(dshow,
2064   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
2065 if test "${enable_dshow}" != "no"
2066 then
2067   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2068   then
2069     AC_LANG_PUSH(C++)
2070       AC_CHECK_HEADERS(dshow.h,
2071       [ VLC_ADD_PLUGIN([dshow])
2072         VLC_ADD_CXXFLAGS([dshow],[])
2073         VLC_ADD_LIBS([dshow],[-lole32 -loleaut32 -luuid]) ])
2074     AC_LANG_POP(C++)
2075   fi
2076 fi
2077
2078 dnl
2079 dnl  Windows DirectShow BDA access module
2080 dnl
2081 AC_ARG_ENABLE(bda,
2082   AS_HELP_STRING([--enable-bda],[Win32 DirectShow BDA support (default
2083                   enabled on Win32)]))
2084 if test "${enable_bda}" != "no"
2085 then
2086   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2087   then
2088       AC_CHECK_HEADERS(dshow.h,
2089       [ VLC_ADD_PLUGIN([bda])
2090         VLC_ADD_CXXFLAGS([bda],[])
2091         VLC_ADD_LIBS([bda],[-lstrmiids -lole32 -loleaut32 -luuid]) ])
2092   fi
2093 fi
2094
2095
2096 dnl
2097 dnl  OpenCV wrapper and example filters
2098 dnl
2099 AC_ARG_ENABLE(opencv,
2100   [  --enable-opencv         OpenCV (computer vision) filter (default disabled)])
2101 if test "${enable_opencv}" = "yes" -a "${CXX}" != "";
2102 then
2103   AC_ARG_WITH(opencv-tree,
2104   [    --with-opencv-tree=PATH opencv tree for linking])
2105     if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2106     then
2107       test -z "${with_opencv_tree}" && AC_MSG_ERROR([You have to specify --with-opencv-tree])
2108       AC_MSG_CHECKING(for opencv in ${with_opencv_tree})
2109       if test -f ${with_opencv_tree}/cv/include/cv.h -a -f ${with_opencv_tree}/cxcore/include/cxcore.h \
2110         -a -f ${with_opencv_tree}/cvaux/include/cvaux.h -a -f ${with_opencv_tree}/otherlibs/highgui/highgui.h
2111       then
2112         AC_MSG_RESULT(yes)
2113         VLC_ADD_PLUGIN([opencv_wrapper])
2114         VLC_ADD_LIBS([opencv_wrapper],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2115         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])
2116         AC_LANG_PUSH(C++)
2117         VLC_ADD_PLUGIN([opencv_example])
2118         VLC_ADD_LIBS([opencv_example],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2119         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])
2120         AC_LANG_POP(C++)
2121       else
2122         dnl  No opencv could be found, sorry
2123         AC_MSG_RESULT(no)
2124         AC_MSG_ERROR([cannot find opencv in ${with_opencv_tree}])
2125       fi
2126     else
2127       PKG_CHECK_MODULES(OPENCV, opencv,
2128         [
2129           VLC_ADD_PLUGIN([opencv_example])
2130           VLC_ADD_PLUGIN([opencv_wrapper])
2131           VLC_ADD_LIBS([opencv_example opencv_wrapper],[${OPENCV_LIBS}])
2132           VLC_ADD_CFLAGS([opencv_wrapper],[${OPENCV_CFLAGS}])
2133           VLC_ADD_CXXFLAGS([opencv_example],[${OPENCV_CFLAGS}])
2134         ],
2135         [AC_MSG_ERROR([libopencv not found!])]
2136       )
2137     fi
2138 fi
2139
2140
2141 dnl
2142 dnl  libsmbclient plugin
2143 dnl
2144 AC_ARG_ENABLE(smb,
2145   [  --enable-smb            smb input module (default enabled)])
2146 if test "${enable_smb}" != "no"; then
2147   AC_CHECK_HEADERS(libsmbclient.h,
2148     [ VLC_ADD_PLUGIN([access_smb])
2149       VLC_ADD_LIBS([access_smb],[-lsmbclient]) ],
2150     [ if test -n "${enable_smb}"; then
2151         AC_MSG_ERROR([cannot find libsmbclient headers])
2152      fi ])
2153 fi
2154
2155 dnl
2156 dnl  libdvbpsi ts demux/mux
2157 dnl
2158 AC_ARG_ENABLE(dvbpsi,
2159   [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
2160 have_dvbpsi=no
2161 if test "${enable_dvbpsi}" != "no"
2162 then
2163   AC_ARG_WITH(dvbpsi,
2164   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
2165   AC_ARG_WITH(dvbpsi,
2166   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
2167   case "${with_dvbpsi}" in
2168   ""|yes)
2169     if test -z "${with_dvbpsi_tree}"
2170     then
2171       AC_CHECK_HEADERS(dvbpsi/dr.h,
2172         [ VLC_ADD_PLUGIN([ts])
2173           if test "${enable_sout}" != "no"; then
2174             VLC_ADD_PLUGIN([mux_ts])
2175           fi
2176           VLC_ADD_LIBS([mux_ts ts dvb],[-ldvbpsi])
2177           have_dvbpsi=yes],
2178         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
2179         [#if defined( HAVE_STDINT_H )
2180 #   include <stdint.h>
2181 #elif defined( HAVE_INTTYPES_H )
2182 #   include <inttypes.h>
2183 #endif
2184 #include <dvbpsi/dvbpsi.h>
2185 #include <dvbpsi/descriptor.h>
2186 #include <dvbpsi/pat.h>
2187 #include <dvbpsi/pmt.h>])
2188     else
2189       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
2190       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
2191       if test -z "${real_dvbpsi_tree}"
2192       then
2193         dnl  The given directory can't be found
2194         AC_MSG_RESULT(no)
2195         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
2196       fi
2197       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
2198       then
2199         dnl  Use a custom libdvbpsi
2200         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
2201         VLC_ADD_PLUGIN([ts])
2202         if test "${enable_sout}" != "no"; then
2203           VLC_ADD_PLUGIN([mux_ts])
2204         fi
2205         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
2206         VLC_ADD_LIBS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
2207         have_dvbpsi=yes
2208       else
2209         dnl  The given libdvbpsi wasn't built
2210         AC_MSG_RESULT(no)
2211         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
2212       fi
2213     fi
2214   ;;
2215   no)
2216     dnl  Compile without dvbpsi
2217   ;;
2218   *)
2219     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
2220     if test -z "${with_dvbpsi}"
2221     then
2222       LDFLAGS_test=""
2223       CPPFLAGS_test=""
2224     else
2225       LDFLAGS_test="-L${with_dvbpsi}/lib"
2226       CPPFLAGS_test="-I${with_dvbpsi}/include"
2227     fi
2228     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
2229     AC_CHECK_HEADERS([dvbpsi/dr.h],[
2230       VLC_ADD_PLUGIN([ts])
2231       if test "${enable_sout}" != "no"; then
2232         VLC_ADD_PLUGIN([mux_ts])
2233       fi
2234       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
2235       VLC_ADD_LIBS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
2236       have_dvbpsi=yes
2237     ],[
2238       if test -n "${enable_dvbpsi}"
2239       then
2240         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])
2241       fi
2242     ])
2243     CPPFLAGS="${CPPFLAGS_save}"
2244   ;;
2245   esac
2246   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
2247     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
2248   ], [], [${LIBS_ts}])
2249
2250 fi
2251
2252 dnl
2253 dnl  Video4Linux plugin
2254 dnl
2255 AC_ARG_ENABLE(v4l,
2256   [  --enable-v4l            Video4Linux input support (default disabled)])
2257 if test "${enable_v4l}" = "yes"
2258 then
2259   AC_ARG_WITH(v4l,
2260     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
2261   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
2262   then
2263     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
2264   fi
2265
2266   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
2267   AC_CHECK_HEADERS(linux/videodev.h, [
2268     VLC_ADD_PLUGIN([v4l])
2269   ],[])
2270   CPPFLAGS="${CPPFLAGS_save}"
2271 fi
2272
2273 dnl
2274 dnl  Video4Linux2 plugin
2275 dnl
2276 AC_ARG_ENABLE(v4l2,
2277   [  --enable-v4l2           Video4Linux2 input support (default enabled)])
2278 if test "${enable_v4l2}" != "no"
2279 then
2280   AC_ARG_WITH(v4l2,
2281     [    --with-v4l2=PATH       path to a v4l2-enabled kernel tree],[],[])
2282   if test "${with_v4l2}" != "no" -a -n "${with_v4l2}"
2283   then
2284     VLC_ADD_CPPFLAGS([v4l2],[-I${with_v4l2}/include])
2285   fi
2286
2287   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l2}"
2288   AC_CHECK_HEADERS(linux/videodev2.h, [
2289     VLC_ADD_PLUGIN([v4l2])
2290   ],[])
2291   CPPFLAGS="${CPPFLAGS_save}"
2292 fi
2293
2294 dnl
2295 dnl libv4l2 support for video4linux.
2296 dnl
2297 AC_ARG_ENABLE( libv4l2,
2298   [  --enable-libv4l2        Libv4l2 Video4Linux2 support (default enabled)])
2299 if test "${enable_libv4l2}" != "no" -a "${enable_v4l2}" != "no"
2300 then
2301     PKG_CHECK_MODULES( LIBV4L2, libv4l2, [
2302       VLC_ADD_LDFLAGS([v4l2],[${LIBV4L2_LIBS}])
2303       VLC_ADD_CFLAGS([v4l2],[${LIBV4L2_CFLAGS}])
2304       AC_DEFINE(HAVE_LIBV4L2, 1, Define if libv4l is available)],
2305       AC_MSG_WARN([LibV4L2 support disabled because libv4l2 development headers were not found])
2306     )
2307 fi
2308
2309 dnl
2310 dnl  special access module for Hauppauge PVR cards
2311 dnl
2312 AC_ARG_ENABLE(pvr,
2313   [  --enable-pvr            PVR cards access module (default disabled)])
2314 if test "${enable_pvr}" = "yes"
2315 then
2316   VLC_ADD_PLUGIN([pvr])
2317   AC_ARG_WITH(videodev2,
2318     [  --with-videodev2=FILE   Location of videodev2.h file (default /usr/include/linux/videodev2.h)],[],[])
2319   if test "${with_videodev2}" != "no" -a -n "${with_videodev2}"
2320   then
2321     AC_DEFINE_UNQUOTED(VIDEODEV2_H_FILE, "${with_videodev2}", [Location of videodev2.h])
2322   fi
2323
2324   AC_CACHE_CHECK([for new linux/videodev2.h],
2325       [ac_cv_new_linux_videodev2_h],
2326       [AC_TRY_COMPILE([
2327           #include <sys/types.h>
2328           #   ifdef VIDEODEV2_H_FILE
2329           #   include VIDEODEV2_H_FILE
2330           #   else
2331           #   include <linux/videodev2.h>
2332           #   endif
2333           ],
2334           [struct v4l2_ext_controls ctrls; ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG; ],
2335           ac_cv_new_linux_videodev2_h=yes,
2336           ac_cv_new_linux_videodev2_h=no)])
2337   if test "${ac_cv_new_linux_videodev2_h}" != "no"; then
2338     AC_DEFINE(HAVE_NEW_LINUX_VIDEODEV2_H, 1, [Define if new linux/videodev2.h present])
2339   fi
2340 fi
2341
2342 dnl
2343 dnl  gnomeVFS access module
2344 dnl
2345 PKG_ENABLE_MODULES_VLC([GNOMEVFS], [access_gnomevfs], [gnome-vfs-2.0], [GnomeVFS access module], [auto])
2346
2347
2348 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
2349 AC_ARG_ENABLE(libcdio,
2350   [  --enable-libcdio        CD input and control library support (default enabled)])
2351
2352 AC_ARG_ENABLE(vcdinfo,
2353   [  --enable-libvcdinfo     VCD information library support (default enabled)])
2354
2355 have_libcdio=no
2356 have_libvcdinfo=no
2357 if test "${enable_libcdio}" != "no"
2358 then
2359   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.78.2,
2360      have_libcdio=yes
2361      AC_DEFINE(HAVE_LIBCDIO, 1,
2362      [Define if you have libcdio 0.78.2 or greater installed]),
2363      [AC_MSG_WARN(CD Reading and information library not found)])
2364
2365   if test "${enable_vcdinfo}" != "no"
2366   then
2367     PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.22,
2368        [have_libvcdinfo=yes
2369        AC_DEFINE(HAVE_VCDINFO, 1,
2370        [Define if you have libvcdinfo 0.7.22 or greater installed])],
2371        [AC_MSG_WARN(VCD information library not found)])
2372   fi
2373 fi
2374
2375 dnl
2376 dnl  VCDX and CDDAX modules
2377 dnl
2378 AC_ARG_ENABLE(cddax,
2379   AS_HELP_STRING([--enable-cddax],[audio CD plugin with CD Text and CD paranoia
2380                   via libcdio (default disabled)]))
2381
2382 AC_ARG_ENABLE(libcddb,
2383   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
2384
2385 if test "${enable_cddax}" = "yes"
2386 then
2387   if test "$have_libcdio" = "yes"
2388   then
2389     AC_DEFINE(HAVE_CDDAX, 1, [Define for the audio CD plugin using libcdio])
2390     VLC_ADD_LIBS([cddax],[$LIBCDIO_LIBS])
2391     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
2392     VLC_ADD_PLUGIN([cddax])
2393     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
2394     VLC_ADD_LIBS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
2395     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
2396   else
2397     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
2398     HAVE_CDDAX=no
2399   fi
2400
2401   if test "$enable_libcddb" != "no"; then
2402     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2403       HAVE_LIBCDDB=yes
2404       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2405       VLC_ADD_LIBS([cddax],[$LIBCDDB_LIBS])
2406       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
2407       ],
2408       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled)
2409       HAVE_LIBCDDB=no])
2410   fi
2411
2412 fi
2413
2414 AC_ARG_ENABLE(vcdx,
2415   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2416
2417 if test "${enable_vcdx}" = "yes"
2418 then
2419   if test "${have_libvcdinfo}" = "yes"
2420   then
2421     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2422     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2423   else
2424     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
2425     HAVE_VCDX=no
2426   fi
2427
2428   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
2429    [VLC_ADD_LIBS([vcdx],[$LIBISO9660_LIBS])
2430     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
2431     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
2432     HAVE_VCDX=no])
2433
2434   if test "$have_libvcdinfo" = "yes"
2435   then
2436     AC_DEFINE(HAVE_VCDX, 1,
2437     [Define for the VCD plugin using libcdio/libvcdinfo])
2438     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2439     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2440     VLC_ADD_PLUGIN([vcdx])
2441   else
2442     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
2443     HAVE_VCDX=no
2444   fi
2445 fi
2446
2447 dnl
2448 dnl  Built-in CD-DA and VCD module
2449 dnl
2450 AC_ARG_ENABLE(cdda,
2451   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
2452
2453 AC_ARG_ENABLE(vcd,
2454   [  --enable-vcd            built-in VCD (default enabled)])
2455
2456 if test "${enable_vcd}" != "no"
2457 then
2458   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2459   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2460     AC_MSG_RESULT(yes)
2461     VLC_ADD_PLUGIN([vcd])
2462     VLC_ADD_PLUGIN([cdda])
2463   ],[
2464     AC_MSG_RESULT(no)
2465   ])
2466
2467   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2468   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2469     AC_MSG_RESULT(yes)
2470     VLC_ADD_PLUGIN([vcd])
2471     VLC_ADD_PLUGIN([cdda])
2472     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2473   ],[
2474     AC_MSG_RESULT(no)
2475   ])
2476
2477   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2478   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2479     AC_MSG_RESULT(yes)
2480     VLC_ADD_PLUGIN([vcd])
2481     VLC_ADD_PLUGIN([cdda])
2482     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2483   ],[
2484     AC_MSG_RESULT(no)
2485   ])
2486
2487   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2488   then
2489     VLC_ADD_PLUGIN([vcd])
2490     VLC_ADD_PLUGIN([cdda])
2491   fi
2492
2493   if test "${SYS}" = "darwin"
2494   then
2495     VLC_ADD_PLUGIN([vcd])
2496     VLC_ADD_PLUGIN([cdda])
2497     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-Wl,-framework,IOKit,-framework,CoreFoundation])
2498     VLC_ADD_LIBS([vcdx cddax cdda],[-liconv])
2499   fi
2500
2501   if test "$enable_libcddb" != "no"; then
2502     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2503       HAVE_LIBCDDB=yes
2504       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2505       VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2506       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2507       ],:
2508       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled)
2509       HAVE_LIBCDDB=no])
2510   fi
2511 fi
2512
2513 dnl
2514 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2515 dnl
2516 AC_ARG_ENABLE(dvb,
2517   [  --enable-dvb            DVB-S/T/C card support (default enabled)])
2518
2519 if test "${enable_dvb}" != "no"
2520 then
2521     AS_IF([test "${have_dvbpsi}" = "yes" ],[
2522     AC_ARG_WITH(dvb,
2523      [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
2524      if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2525      then
2526        VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2527      fi
2528      CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2529      AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2530      VLC_ADD_PLUGIN([dvb])
2531      ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2532      CPPFLAGS="${CPPFLAGS_save}"
2533    ],[
2534      AC_MSG_WARN([the dvb access module requires libdvbpsi])
2535     ])
2536 fi
2537
2538 dnl
2539 dnl  Screen capture module
2540 dnl
2541 AC_ARG_ENABLE(screen,
2542   [  --enable-screen         Screen capture support (default enabled)])
2543 if test "${enable_screen}" != "no"; then
2544   if test "${SYS}" = "darwin"; then
2545     AC_CHECK_HEADERS(OpenGL/gl.h, [
2546       AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2547         VLC_ADD_PLUGIN([screen])
2548         VLC_ADD_LDFLAGS([screen],[-Wl,-framework,OpenGL,-framework,ApplicationServices])
2549       ])
2550     ])
2551   elif test "${SYS}" = "mingw32"; then
2552     VLC_ADD_PLUGIN([screen])
2553     VLC_ADD_LIBS([screen],[-lgdi32])
2554   elif test "${SYS}" = "mingwce"; then
2555     CPPFLAGS="${CPPFLAGS_save}"
2556   elif test "${SYS}" = "beos"; then
2557     VLC_ADD_PLUGIN([screen])
2558     VLC_ADD_CXXFLAGS([screen],[])
2559     VLC_ADD_LIBS([screen],[-lbe])
2560   fi
2561 fi
2562
2563 dnl
2564 dnl  ipv6 plugin - not for QNX yet
2565 dnl
2566 have_ipv6=no
2567 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2568   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2569 ])
2570
2571 AS_IF([test "${have_ipv6}" = "yes"], [
2572   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2573
2574
2575 AC_CHECK_FUNCS(inet_ntop,[
2576   AC_DEFINE(HAVE_INET_NTOP, 1, [Define to 1 if you have inet_ntop().])])
2577
2578
2579 dnl
2580 dnl  ogg demux plugin
2581 dnl
2582 PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto])
2583 if test "${enable_sout}" != "no"; then
2584     PKG_ENABLE_MODULES_VLC([MUX_OGG], [], [ogg >= 1.0], [Ogg demux support], [auto])
2585 else
2586     AM_CONDITIONAL(HAVE_MUX_OGG, 0)
2587 fi
2588
2589 if test "${enable_sout}" != "no"; then
2590 dnl Check for libshout
2591 PKG_ENABLE_MODULES_VLC([shout], [access_output_shout], [shout >= 2.1], [libshout output plugin], [auto])
2592 else
2593     AM_CONDITIONAL(HAVE_shout, 0)
2594 fi
2595
2596 dnl
2597 dnl  matroska demux plugin
2598 dnl
2599 AC_ARG_ENABLE(mkv,
2600   [  --enable-mkv            Matroska demux support (default enabled)])
2601 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2602   AC_LANG_PUSH(C++)
2603   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2604     AC_MSG_CHECKING(for libebml version >= 0.7.7)
2605     AC_EGREP_CPP(yes,
2606       [#include <ebml/EbmlVersion.h>
2607        #ifdef LIBEBML_VERSION
2608        #if LIBEBML_VERSION >= 0x000706
2609        yes
2610        #endif
2611        #endif],
2612       [AC_MSG_RESULT([yes])
2613         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2614           AC_MSG_CHECKING(for libmatroska version >= 0.8.0)
2615           AC_EGREP_CPP(yes,
2616             [#include <matroska/KaxVersion.h>
2617              #ifdef LIBMATROSKA_VERSION
2618              #if LIBMATROSKA_VERSION >= 0x000705
2619              yes
2620              #endif
2621              #endif],
2622             [AC_MSG_RESULT([yes])
2623               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2624               VLC_ADD_CXXFLAGS([mkv],[])
2625               if test "${SYS}" = "darwin"; then
2626                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2627               fi
2628               AC_CHECK_LIB(ebml_pic, main, [
2629                 VLC_ADD_PLUGIN([mkv])
2630                 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2631               ],
2632                 AC_CHECK_LIB(ebml, main, [
2633                   VLC_ADD_PLUGIN([mkv])
2634                   VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2635                 ])
2636               )
2637             ],
2638             [AC_MSG_RESULT([no])
2639               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.])
2640           ])
2641         ])
2642       ],
2643       [AC_MSG_RESULT([no])
2644         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.])
2645     ])
2646   ])
2647   AC_LANG_POP(C++)
2648 fi
2649
2650 dnl
2651 dnl  modplug demux plugin
2652 dnl
2653 AC_ARG_ENABLE(mod,
2654   [  --enable-mod            Mod demux support (default enabled)])
2655 if test "${enable_mod}" != "no"
2656 then
2657   AC_ARG_WITH(mod-tree,
2658   [    --with-mod-tree=PATH mod tree for static linking])
2659   if test -n "${with_mod_tree}"
2660   then
2661     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2662     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2663     if test -z "${real_mod_tree}"
2664     then
2665       dnl  The given directory can't be found
2666       AC_MSG_RESULT(no)
2667       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2668     fi
2669     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2670     then
2671       dnl  Use a custom mod
2672       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2673       VLC_ADD_PLUGIN([mod])
2674       VLC_ADD_LIBS([mod],[${real_mod_tree}/src/.libs/libmodplug.a -lstdc++])
2675       VLC_ADD_CXXFLAGS([mod],[-I${real_mod_tree}/include])
2676     else
2677       dnl  The given mod wasn't built
2678       AC_MSG_RESULT(no)
2679       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2680     fi
2681   else
2682     AC_CHECK_HEADERS(libmodplug/modplug.h, [
2683       VLC_ADD_PLUGIN([mod])
2684       VLC_ADD_CXXFLAGS([mod],[])
2685       VLC_ADD_LIBS([mod],[-lmodplug -lstdc++])])
2686   fi
2687 fi
2688
2689 dnl
2690 dnl  mpc demux plugin
2691 dnl
2692 AC_ARG_ENABLE(mpc,
2693   [  --enable-mpc            Mpc demux support (default enabled)])
2694 if test "${enable_mpc}" != "no"
2695 then
2696   AC_CHECK_HEADERS([mpc/mpcdec.h], [
2697     VLC_ADD_PLUGIN([mpc])
2698     VLC_ADD_LIBS([mpc],[-lmpcdec])],
2699     [AC_CHECK_HEADERS([mpcdec/mpcdec.h], [
2700     VLC_ADD_PLUGIN([mpc])
2701     VLC_ADD_LIBS([mpc],[-lmpcdec])])])
2702 fi
2703
2704 dnl
2705 dnl  game music emu demux plugin
2706 dnl
2707 AC_ARG_ENABLE(gme,
2708   [  --enable-gme            Game Music Emu demux support (default enabled)])
2709 if test "${enable_gme}" != "no" -a "${CXX}" != "";
2710 then
2711   AC_LANG_PUSH(C++)
2712   AC_ARG_WITH(gme-tree,
2713   [    --with-gme-tree=PATH gme tree for static linking])
2714   if test -n "${with_gme_tree}"
2715   then
2716     AC_MSG_CHECKING(for libgme.a in ${with_mod_tree})
2717     real_gme_tree="`cd ${with_gme_tree} 2>/dev/null && pwd`"
2718     if test -z "${real_gme_tree}"
2719     then
2720       dnl  The given directory can't be found
2721       AC_MSG_RESULT(no)
2722       AC_MSG_ERROR([cannot cd to ${with_gme_tree}])
2723     fi
2724     if test -f "${real_gme_tree}/gme/libgme.a"
2725     then
2726       dnl  Use a custom gme
2727       AC_MSG_RESULT(${real_gme_tree}/gme/libgme.a)
2728       VLC_ADD_PLUGIN([gme])
2729       VLC_ADD_LIBS([gme],[${real_gme_tree}/gme/libgme.a])
2730       VLC_ADD_CXXFLAGS([gme],[-I${real_gme_tree}/gme])
2731     else
2732       dnl  The given gme wasn't built
2733       AC_MSG_RESULT(no)
2734       AC_MSG_ERROR([cannot find ${real_mod_tree}/gme/libgme.a, make sure you compiled gme in ${with_gme_tree}])
2735     fi
2736   else
2737       AC_MSG_WARN([only static linking is available, you must provide a gme-tree])
2738   fi
2739   AC_LANG_POP(C++)
2740 fi
2741
2742 dnl
2743 dnl  Codec plugins
2744 dnl
2745
2746 AC_ARG_WITH(,[Codec plugins:])
2747
2748 dnl
2749 dnl wmafixed plugin
2750 dnl
2751 AC_ARG_ENABLE(wma-fixed,
2752   [  --enable-wma-fixed      libwma-fixed module (default disabled)])
2753 if test "${enable_wma_fixed}" = "yes"
2754 then
2755   VLC_ADD_PLUGIN([wma_fixed])
2756 fi
2757
2758 dnl
2759 dnl shine fixed point mp3 encoder
2760 dnl
2761 AC_ARG_ENABLE(shine,
2762   [  --enable-shine          shine mp3 encoding module (default disabled)])
2763 if test "${enable_shine}" = "yes"
2764 then
2765   VLC_ADD_PLUGIN([shine])
2766 fi
2767
2768 dnl
2769 dnl  mad plugin
2770 dnl
2771 AC_ARG_ENABLE(mad,
2772   [  --enable-mad            libmad module (default enabled)])
2773 if test "${enable_mad}" != "no"
2774 then
2775   AC_ARG_WITH(mad,
2776     [    --with-mad=PATH       path to libmad],[],[])
2777   if test "${with_mad}" != "no" -a -n "${with_mad}"
2778   then
2779     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2780     VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2781   fi
2782
2783   AC_ARG_WITH(mad-tree,
2784     [    --with-mad-tree=PATH   mad tree for static linking],[],[])
2785   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2786   then
2787     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2788     if test -z "${real_mad_tree}"
2789     then
2790       dnl  The given directory can't be found
2791       AC_MSG_RESULT(no)
2792       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2793     fi
2794     dnl  Use a custom libmad
2795     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2796     if test -f ${real_mad_tree}/mad.h
2797     then
2798       AC_MSG_RESULT(yes)
2799       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2800       VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2801       LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2802       AC_CHECK_LIB(mad, mad_bit_init, [
2803         VLC_ADD_PLUGIN([mpgatofixed32])
2804         VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2805         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2806       ],[])
2807       LDFLAGS="${LDFLAGS_save}"
2808     else
2809       AC_MSG_RESULT(no)
2810       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2811     fi
2812   else
2813     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2814     LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2815     AC_CHECK_HEADERS(mad.h, ,
2816       [ 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.]) ])
2817     AC_CHECK_LIB(mad, mad_bit_init, [
2818       VLC_ADD_PLUGIN([mpgatofixed32])
2819       VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2820       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2821     CPPFLAGS="${CPPFLAGS_save}"
2822     LDFLAGS="${LDFLAGS_save}"
2823   fi
2824 fi
2825
2826 dnl
2827 dnl   libid3tag support (FIXME!!! doesn't work with new input)
2828 dnl
2829 AC_ARG_ENABLE( id3tag,
2830 [  --disable-id3tag        id3tag metadata reader plugin (default disabled)])
2831 AS_IF([test "${enable_id3tag}" = "yes"], [
2832   AC_CHECK_HEADERS(id3tag.h, [
2833       AS_IF([test "${have_zlib}" = "yes"],[
2834           VLC_ADD_LIBS([id3tag],[-lid3tag -lz])
2835           VLC_ADD_PLUGIN([id3tag])
2836        ])
2837     ])
2838 ])
2839
2840 dnl
2841 dnl  avcodec decoder/encoder plugin
2842 dnl
2843
2844 if test "${with_ffmpeg_tree}"
2845 then
2846   AC_MSG_WARN([--with-ffmpeg-tree is deprecated. Use PKG_CONFIG_PATH instead.])
2847 fi
2848
2849 AC_ARG_ENABLE(avcodec,
2850 [  --enable-avcodec        libavcodec codec (default enabled)])
2851 if test "${enable_avcodec}" != "no"
2852 then
2853   PKG_CHECK_MODULES(AVCODEC,[libavcodec >= 51.48.0 libavutil],
2854     [
2855       VLC_SAVE_FLAGS
2856       CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2857       CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2858       AC_CHECK_HEADERS(libavcodec/avcodec.h ffmpeg/avcodec.h)
2859       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
2860       VLC_ADD_PLUGIN([avcodec])
2861       VLC_ADD_LIBS([avcodec],[$AVCODEC_LIBS])
2862       VLC_ADD_CFLAGS([avcodec],[$AVCODEC_CFLAGS])
2863       VLC_RESTORE_FLAGS
2864       have_avcodec="yes"
2865     ],[
2866       AC_MSG_ERROR([Could not find libavcodec or libavutil. Use --disable-avcodec to ignore this error.])
2867   ])
2868 fi
2869
2870 dnl
2871 dnl stream_out switcher needs libavcodec
2872 dnl
2873 AC_ARG_ENABLE(switcher,
2874   [  --enable-switcher       Stream-out switcher plugin (default disabled)])
2875 AS_IF([test "${enable_switcher}" = "yes"], [
2876   AS_IF([test "x${have_avcodec}" = "xyes"], [
2877     VLC_ADD_PLUGIN([stream_out_switcher])
2878     VLC_ADD_LIBS([stream_out_switcher],[$AVCODEC_LIBS])
2879     VLC_ADD_CFLAGS([stream_out_switcher],[$AVCODEC_CFLAGS])
2880   ],[AC_MSG_ERROR([Stream_out switcher depends on avcodec])
2881   ])
2882 ])
2883
2884
2885 dnl
2886 dnl  avformat demuxer/muxer plugin
2887 dnl
2888
2889 AC_ARG_ENABLE(avformat,
2890 [  --enable-avformat       libavformat containers (default enabled)])
2891 if test "${enable_avformat}" != "no"
2892 then
2893   PKG_CHECK_MODULES(AVFORMAT,[libavformat libavutil],
2894     [
2895       VLC_SAVE_FLAGS
2896       CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2897       CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2898       AC_CHECK_HEADERS(libavformat/avformat.h ffmpeg/avformat.h)
2899       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
2900       VLC_ADD_PLUGIN([avformat])
2901       VLC_ADD_LIBS([avformat],[$AVFORMAT_LIBS])
2902       VLC_ADD_CFLAGS([avformat],[$AVFORMAT_CFLAGS])
2903       VLC_RESTORE_FLAGS
2904     ],[
2905       AC_MSG_ERROR([Could not find libavformat or libavutil. Use --disable-avformat to ignore this error.])
2906   ])
2907 fi
2908
2909 dnl
2910 dnl  swscale image scaling and conversion plugin
2911 dnl
2912
2913 AC_ARG_ENABLE(swscale,
2914   AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
2915                   (default enabled)]))
2916 if test "${enable_swscale}" != "no"
2917 then
2918   PKG_CHECK_MODULES(SWSCALE,[libswscale],
2919     [
2920       VLC_SAVE_FLAGS
2921       CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
2922       CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
2923       AC_CHECK_HEADERS(libswscale/swscale.h ffmpeg/swscale.h)
2924       VLC_ADD_PLUGIN([swscale])
2925       VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
2926       VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
2927       VLC_RESTORE_FLAGS
2928     ],[
2929       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.])
2930   ])
2931 fi
2932
2933 dnl
2934 dnl  postproc plugin
2935 dnl
2936
2937 AC_ARG_ENABLE(postproc,
2938 [  --enable-postproc       libpostproc image post-processing (default enabled)])
2939 if test "${enable_postproc}" != "no"
2940 then
2941   PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
2942     [
2943       VLC_SAVE_FLAGS
2944       CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
2945       CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
2946       AC_CHECK_HEADERS(libpostproc/postproc.h postproc/postprocess.h)
2947       VLC_ADD_PLUGIN([postproc])
2948       VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS])
2949       VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS])
2950       VLC_RESTORE_FLAGS
2951     ],[
2952       AC_MSG_ERROR([Could not find libpostproc. Use --disable-postproc to ignore this error.])
2953   ])
2954 fi
2955
2956 dnl
2957 dnl  faad decoder plugin
2958 dnl
2959 AC_ARG_ENABLE(faad,
2960 [  --enable-faad           faad codec (default disabled)])
2961 if test "${enable_faad}" = "yes"
2962 then
2963   AC_ARG_WITH(faad-tree,
2964   [    --with-faad-tree=PATH faad tree for static linking])
2965   if test -n "${with_faad_tree}"
2966   then
2967     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
2968     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
2969     if test -z "${real_faad_tree}"
2970     then
2971       dnl  The given directory can't be found
2972       AC_MSG_RESULT(no)
2973       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
2974     fi
2975     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
2976     then
2977       dnl  Use a custom faad
2978       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
2979       VLC_ADD_PLUGIN([faad])
2980       VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
2981       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
2982     else
2983       dnl  The given libfaad wasn't built
2984       AC_MSG_RESULT(no)
2985       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
2986     fi
2987   else
2988     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
2989     LDFLAGS="${LDFLAGS_save} ${LIBS_faad}"
2990     AC_CHECK_HEADERS(faad.h, ,
2991       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
2992     AC_CHECK_LIB(faad, faacDecOpen, [
2993       VLC_ADD_PLUGIN([faad])
2994       VLC_ADD_LIBS([faad],[-lfaad]) ],
2995       AC_CHECK_LIB(faad, NeAACDecOpen, [
2996         VLC_ADD_PLUGIN([faad])
2997         VLC_ADD_LIBS([faad],[-lfaad]) ],
2998         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
2999     LDFLAGS="${LDFLAGS_save}"
3000     CPPFLAGS="${CPPFLAGS_save}"
3001   fi
3002 fi
3003
3004 dnl
3005 dnl twolame encoder plugin
3006 dnl
3007 PKG_ENABLE_MODULES_VLC([twolame], [], [twolame], [MPEG Audio Layer 2 encoder], [auto], [], [], [ -DLIBTWOLAME_STATIC])
3008
3009 dnl
3010 dnl  QuickTime plugin
3011 dnl
3012 AC_ARG_ENABLE(quicktime,
3013   [  --enable-quicktime      QuickTime module (deprecated)])
3014 if test "${enable_quicktime}" = "yes"; then
3015   if test "${SYS}" = "mingw32"; then
3016     VLC_ADD_PLUGIN([quicktime])
3017   else
3018   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
3019     [ VLC_ADD_PLUGIN([quicktime])
3020       VLC_ADD_LDFLAGS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
3021     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
3022   fi
3023 fi
3024
3025 dnl
3026 dnl  Real plugin
3027 dnl
3028 AC_ARG_ENABLE(real,
3029   [  --enable-real           Real media module (default disabled)])
3030 if test "${enable_real}" = "yes"; then
3031   VLC_ADD_PLUGIN([realaudio])
3032   VLC_ADD_PLUGIN([realvideo])
3033 fi
3034
3035 dnl
3036 dnl  Real RTSP plugin
3037 dnl
3038 AC_ARG_ENABLE(realrtsp,
3039   [  --enable-realrtsp       Real RTSP module (default disabled)])
3040 if test "${enable_realrtsp}" = "yes"; then
3041   VLC_ADD_PLUGIN([access_realrtsp])
3042 fi
3043
3044 AC_ARG_ENABLE(libsysfs,
3045   [  --enable-libsysfs       Get user key from firewire connected iPod via libsysfs (default enabled)])
3046
3047 AS_IF([test "${enable_libsysfs}" != "no"],[
3048   AC_CHECK_HEADERS(sysfs/libsysfs.h, [
3049     VLC_ADD_LIBS([mp4 mkv],[-lsysfs])
3050   ] )
3051 ])
3052
3053 dnl
3054 dnl skins2 module
3055 dnl
3056 AC_ARG_ENABLE(libtar,
3057   [  --enable-libtar         libtar support for skins2 (default enabled)])
3058
3059 AS_IF([test "${enable_libtar}" != "no"],[
3060   AC_CHECK_HEADERS(libtar.h, [
3061     VLC_ADD_LIBS([skins2],[-ltar])
3062   ] )
3063 ])
3064
3065 dnl
3066 dnl A52/AC3 decoder plugin
3067 dnl
3068 AC_ARG_ENABLE(a52,
3069   [  --enable-a52            A/52 support with liba52 (default enabled)])
3070 if test "${enable_a52}" != "no"
3071 then
3072   AC_ARG_WITH(a52,
3073     [    --with-a52=PATH       a52 headers and libraries])
3074   AC_ARG_WITH(a52-tree,
3075     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
3076   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
3077   then
3078     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
3079     if test -z "${real_a52_tree}"
3080     then
3081       dnl  The given directory can't be found
3082       AC_MSG_RESULT(no)
3083       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
3084     fi
3085     dnl  Use a custom a52dec
3086     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
3087     if test -f ${real_a52_tree}/include/a52.h
3088     then
3089       AC_MSG_RESULT(yes)
3090       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
3091       VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
3092       LDFLAGS="${LDFLAGS_save} ${LIBS_a52tofloat32}"
3093       AC_CHECK_LIB(a52, a52_free, [
3094         VLC_ADD_PLUGIN([a52tofloat32])
3095         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
3096         VLC_ADD_LIBS([a52tofloat32],[-la52])
3097         ],[
3098         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
3099         then
3100           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
3101         else
3102           AC_MSG_ERROR([the specified tree hasn't been compiled])
3103         fi
3104       ])
3105       LDFLAGS="${LDFLAGS_save}"
3106     else
3107       AC_MSG_RESULT(no)
3108       AC_MSG_ERROR([the specified tree doesn't have a52.h])
3109     fi
3110   else
3111     if test -z "${with_a52}"
3112     then
3113       LDFLAGS_test=""
3114       CPPFLAGS_test=""
3115     else
3116       LDFLAGS_test="-L${with_a52}/lib"
3117       CPPFLAGS_test="-I${with_a52}/include"
3118     fi
3119     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
3120     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
3121     AC_CHECK_HEADERS(a52dec/a52.h, [
3122       AC_CHECK_LIB(a52, a52_free, [
3123         VLC_ADD_PLUGIN([a52tofloat32])
3124         VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
3125         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
3126       ],[
3127         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.])
3128         ])
3129     ],[
3130       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.])
3131     ])
3132     CPPFLAGS="${CPPFLAGS_save}"
3133     LDFLAGS="${LDFLAGS_save}"
3134   fi
3135 fi
3136
3137 AC_ARG_WITH(a52-fixed,
3138       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
3139       [
3140         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
3141
3142 dnl
3143 dnl DTS Coherent Acoustics decoder plugin
3144 dnl
3145 AS_IF([test "x${enable_dts}" != "x"], [
3146   AC_MSG_ERROR([--enable-dts is obsolete. Please use libdca and --enable-dca.])
3147 ])
3148 PKG_ENABLE_MODULES_VLC([DCA], [dtstofloat32], [libdca >= 0.0.5], [DTS Coherent Acoustics support with libdca], [auto])
3149
3150 dnl
3151 dnl  Flac plugin
3152 dnl
3153 PKG_ENABLE_MODULES_VLC([FLAC], [], [flac], [libflac decoder/encoder support], [auto])
3154
3155 dnl
3156 dnl  Libmpeg2 plugin
3157 dnl
3158 PKG_ENABLE_MODULES_VLC([LIBMPEG2], [], [libmpeg2 > 0.3.2], [libmpeg2 decoder support], [auto])
3159
3160 dnl
3161 dnl  Vorbis plugin
3162 dnl
3163 PKG_ENABLE_MODULES_VLC([VORBIS], [], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
3164
3165 dnl
3166 dnl  Tremor plugin
3167 dnl
3168 AC_ARG_ENABLE(tremor,
3169   [  --enable-tremor         Tremor decoder support (default disabled)])
3170 if test "${enable_tremor}" = "yes"
3171 then
3172   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3173     VLC_ADD_PLUGIN([tremor])
3174     VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
3175    ],[])
3176 fi
3177
3178 dnl
3179 dnl  Speex plugin
3180 dnl
3181 PKG_ENABLE_MODULES_VLC([SPEEX], [], [ogg speex >= 1.0.5], [Speex decoder support], [auto])
3182
3183 dnl
3184 dnl  tarkin decoder plugin
3185 dnl
3186 AC_ARG_ENABLE(tarkin,
3187 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3188 if test "${enable_tarkin}" = "yes"
3189 then
3190   AC_ARG_WITH(tarkin-tree,
3191   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3192   if test -n "${with_tarkin_tree}"
3193   then
3194     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3195     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3196     if test -f "${real_tarkin_tree}/tarkin.o"
3197     then
3198       VLC_ADD_PLUGIN([tarkin])
3199       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3200       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])
3201       AC_MSG_RESULT(yes)
3202     else
3203       dnl  The given tarkin tree wasn't built
3204       AC_MSG_RESULT(no)
3205       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3206                     make sure you compiled tarkin in ${with_tarkin_tree}])
3207     fi
3208   fi
3209 fi
3210
3211 dnl
3212 dnl  theora decoder plugin
3213 dnl
3214 PKG_ENABLE_MODULES_VLC([THEORA], [], [ogg theora >= 1.0], [experimental theora codec], [auto])
3215
3216 dnl
3217 dnl  dirac encoder plugin
3218 dnl
3219 PKG_ENABLE_MODULES_VLC([DIRAC], [], [dirac >= 0.10.0], [dirac encoder], [auto])
3220
3221 dnl
3222 dnl  schroedinger decoder plugin (for dirac format video)
3223 dnl
3224 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [], [schroedinger-1.0 >= 1.0.6], [dirac decoder using schroedinger], [auto])
3225
3226 dnl
3227 dnl  PNG decoder module
3228 dnl
3229 AC_ARG_ENABLE(png,
3230   [  --enable-png            PNG support (default enabled)])
3231 if test "${enable_png}" != "no"; then
3232 AC_CHECK_HEADERS(png.h, [
3233   LDFLAGS="${LDFLAGS_save} -lz"
3234   AC_CHECK_LIB(png, png_set_rows, [
3235     VLC_ADD_LIBS([png],[-lpng -lz])
3236     VLC_ADD_PLUGIN([png])
3237     VLC_ADD_PLUGIN([osdmenu])
3238     VLC_ADD_PLUGIN([osd_parser])
3239     AC_DEFINE(HAVE_LIBPNG, 1, [Define if you have the PNG library: libpng])],
3240     [],[-lz])
3241     LDFLAGS="${LDFLAGS_save}"
3242   ])
3243 fi
3244 AM_CONDITIONAL(BUILD_OSDMENU, [test "${enable_png}" != "no"])
3245
3246 dnl
3247 dnl H264 encoder plugin (using libx264)
3248 dnl
3249 AC_ARG_ENABLE(x264,
3250   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3251 if test "${enable_x264}" != "no"; then
3252   AC_ARG_WITH(x264-tree,
3253     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3254   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3255   then
3256     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3257     if test -z "${real_x264_tree}"
3258     then
3259       dnl  The given directory can't be found
3260       AC_MSG_RESULT(no)
3261       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3262     fi
3263     dnl  Use a custom libx264
3264     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3265     if test -f ${real_x264_tree}/x264.h
3266     then
3267       AC_MSG_RESULT(yes)
3268       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3269       VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
3270       PKG_CHECK_MODULES(X264,x264, [
3271         VLC_ADD_PLUGIN([x264])
3272         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
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         AC_MSG_ERROR([the specified tree hasn't been compiled])
3279       ])
3280       LDFLAGS="${LDFLAGS_save}"
3281     else
3282       AC_MSG_RESULT(no)
3283       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3284     fi
3285   else
3286       PKG_CHECK_MODULES(X264,x264, [
3287         VLC_ADD_PLUGIN([x264])
3288         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3289
3290         AC_CACHE_CHECK([if linker supports -Bsymbolic],
3291           [ac_cv_ld_bsymbolic],
3292           [LDFLAGS="${LDFLAGS_vlc} -Wl,-Bsymbolic"
3293             AC_TRY_LINK([],,ac_cv_ld_bsymbolic=yes,ac_cv_ld_bsymbolic=no)
3294             LDFLAGS="${LDFLAGS_save}"
3295           ])
3296         AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
3297           VLC_ADD_LDFLAGS([x264],[-Wl,-Bsymbolic])
3298         ])
3299
3300         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3301         if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3302           VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3303         fi
3304       ],[
3305         if test "${enable_x264}" = "yes"; then
3306             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
3307           fi
3308       ])
3309     LDFLAGS="${LDFLAGS_save}"
3310   fi
3311 fi
3312
3313 dnl
3314 dnl libfluidsynth (MIDI synthetizer) plugin
3315 dnl
3316 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [], [fluidsynth], [MIDI synthetiser with libfluidsynth], [auto])
3317
3318 dnl
3319 dnl Teletext Modules
3320 dnl vbi decoder plugin (using libzbvi)
3321 dnl telx module
3322 dnl uncompatible
3323 dnl
3324 AC_ARG_ENABLE(zvbi,
3325   AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
3326                   libzvbi (default enabled)]))
3327 AC_ARG_ENABLE(telx,
3328   AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
3329                   zvbi) (default enabled if zvbi is absent)]))
3330
3331 AS_IF( [test "${enable_zvbi}" != "no"],[
3332     PKG_CHECK_MODULES(ZVBI,
3333         zvbi-0.2 >= 0.2.25,
3334         [
3335           VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
3336           if test "${SYS}" = "mingw32"; then
3337               VLC_ADD_LIBS([zvbi],[ -lpthreadGC2])
3338           fi
3339           VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
3340           VLC_ADD_PLUGIN([zvbi])
3341           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
3342           AS_IF( [test "${enable_telx}" = "yes"],[
3343                   AC_MSG_WARN([The zvbi and telx modules are uncompatibles.
3344                                Using zvbi.])
3345                   ])
3346         ],[
3347           AC_MSG_WARN(ZVBI library not found. Enabling the telx module instead)
3348         ])
3349     ])
3350 AS_IF( [test "${enable_telx}" != "no" ],[
3351   VLC_ADD_PLUGIN([telx])
3352   ])
3353
3354 dnl
3355 dnl libass subtitle rendering module
3356 dnl
3357 AC_ARG_ENABLE(libass,
3358   [  --enable-libass         Subtitle support using libass (default disabled)])
3359 AS_IF( [test "${enable_libass}" = "yes"], [
3360   PKG_CHECK_MODULES(LIBASS, libass >= 0.9.6,
3361       [
3362         VLC_ADD_LDFLAGS([libass],[$LIBASS_LIBS])
3363         VLC_ADD_CFLAGS([libass],[$LIBASS_CFLAGS])
3364         VLC_ADD_PLUGIN([libass])
3365
3366         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
3367           [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
3368         if test "${SYS}" = "mingw32"; then
3369            VLC_ADD_LIBS([libass],[-lfontconfig -lfreetype -liconv -lz])
3370         else
3371            VLC_ADD_LIBS([libass],[-lfontconfig])
3372         fi
3373        ])
3374       ],[
3375         AC_MSG_WARN([LIBASS library not found])
3376       ])
3377   ])
3378
3379 dnl
3380 dnl asa demuxer
3381 dnl
3382 AC_ARG_ENABLE(asademux,
3383   [  --enable-asademux       asa subtitle demuxing (default disabled)])
3384 AS_IF( [test "${enable_asademux}" = "yes"], [
3385   PKG_CHECK_MODULES(PCRE,
3386       libpcre >= 6.5,
3387       [
3388         VLC_ADD_LDFLAGS([asademux],[$PCRE_LIBS])
3389         VLC_ADD_CFLAGS([asademux],[$PCRE_CFLAGS])
3390         if test "${SYS}" = "mingw32"; then
3391             VLC_ADD_CPPFLAGS([asademux],[-DPCRE_STATIC])
3392         fi
3393         VLC_ADD_PLUGIN([asademux])
3394       ],[
3395         AC_MSG_WARN([PCRE library not found (required for asademux)])
3396       ])
3397   ])
3398
3399 dnl
3400 dnl  CMML plugin
3401 dnl
3402 AC_ARG_ENABLE(cmml,
3403   [  --enable-cmml           CMML support (default enabled)])
3404 if test "${enable_cmml}" != "no"
3405 then
3406   VLC_ADD_PLUGIN([cmml])
3407 fi
3408
3409 dnl
3410 dnl  kate decoder plugin
3411 dnl
3412 AC_ARG_ENABLE(kate,
3413 [  --enable-kate           kate codec (default enabled)])
3414 AS_IF([test "${enable_kate}" != "no"], [
3415   PKG_CHECK_MODULES(KATE,[kate >= 0.1.5], [
3416       VLC_ADD_PLUGIN([kate])
3417       VLC_ADD_CFLAGS([kate],[$KATE_CFLAGS])
3418       VLC_ADD_LIBS([kate],[$KATE_LIBS]) ],[
3419         AC_CHECK_HEADERS(kate/kate.h, [
3420           AC_CHECK_LIB(kate, kate_decode_init, [
3421             VLC_ADD_PLUGIN([kate])
3422             kate_libs="-lkate -logg"
3423             VLC_ADD_LDFLAGS([kate],[${kate_libs}]) ],[
3424             AS_IF([test "x${enable_kate}" != "x"], [
3425               AC_MSG_ERROR([libkate doesn't appear to be installed on your system.
3426               You also need to check that you have a libogg posterior to the 1.0 release.])
3427             ])
3428           ], [-lkate -logg])
3429         ],[
3430           AS_IF([test "x${enable_kate}" != "x"], [
3431             AC_MSG_ERROR([libkate headers do not appear to be installed on your system.
3432             You also need to check that you have a libogg posterior to the 1.0 release.])
3433           ])
3434         ])
3435   ])
3436 ])
3437
3438
3439 dnl
3440 dnl  tiger decoder plugin
3441 dnl
3442 PKG_ENABLE_MODULES_VLC([TIGER], [], [tiger >= 0.3.1], [Tiger rendering library for Kate streams],[auto])
3443
3444
3445 dnl
3446 dnl  Video plugins
3447 dnl
3448
3449 AC_ARG_WITH(,[Video plugins:])
3450
3451 dnl
3452 dnl  Xlib
3453 dnl
3454
3455 AC_PATH_XTRA()
3456 AC_ARG_ENABLE(x11,
3457   [  --enable-x11            X11 support with Xlib (default enabled)],, [
3458   AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"], [
3459     enable_x11="yes"
3460   ], [
3461     enable_x11="no"
3462   ])
3463 ])
3464
3465 CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3466
3467 AS_IF([test "${enable_x11}" != "no"], [
3468   AC_CHECK_HEADERS(X11/Xlib.h)
3469
3470 dnl Check for DPMS
3471   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
3472     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
3473     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
3474       AC_MSG_RESULT(yes)
3475       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
3476                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
3477     ],[
3478       AC_MSG_RESULT(no)
3479     ])
3480   ],,[
3481     #include <X11/Xlib.h>
3482   ])
3483 ])
3484
3485 dnl
3486 dnl  GLX module
3487 dnl  (enabled by default except on win32)
3488 dnl
3489 AC_ARG_ENABLE(glx,
3490   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)],, [
3491   enable_glx="$enable_x11"
3492 ])
3493 AS_IF([test "${enable_glx}" != "no"], [
3494   AC_CHECK_HEADERS(X11/Xlib.h GL/glu.h GL/glx.h)
3495   AC_COMPILE_IFELSE(AC_LANG_PROGRAM(
3496     [[#if !defined(HAVE_X11_XLIB_H) || !defined(HAVE_GL_GLU_H) || !defined(HAVE_GL_GLX_H)
3497     choke me
3498     #endif]]),
3499     [
3500       VLC_ADD_PLUGIN([glx])
3501       VLC_ADD_LIBS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU])
3502       VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}])
3503     ],[AC_MSG_ERROR([Please install GL development package. Alternatively you can also configure with --disable-glx.])])
3504 ])
3505
3506 dnl
3507 dnl  XVMC module
3508 dnl  (disabled by default except on win32)
3509 dnl
3510 AC_ARG_ENABLE(xvmc,
3511   [  --enable-xvmc           XvMC support (default disabled)],, [
3512   enable_xvmc="no"
3513 ])
3514 AS_IF([test "${enable_xvmc}" != "no"], [
3515   AC_CHECK_HEADERS(X11/extensions/vldXvMC.h, [
3516     VLC_ADD_PLUGIN([xvmc])
3517     VLC_ADD_LIBS([xvmc],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXvMCW -lXv ${LIBMPEG2_LIBS}])
3518     VLC_ADD_CPPFLAGS([xvmc],[${X_CFLAGS} ${LIBMPEG2_CFLAGS}])
3519   ], [
3520     AC_MSG_ERROR([XVideo-MotionCompensation extension not found!])
3521   ])
3522 ])
3523
3524 dnl End of Xlib tests
3525 CPPFLAGS="${CPPFLAGS_save}"
3526
3527
3528 dnl
3529 dnl  X C Bindings modules
3530 dnl
3531 AC_ARG_ENABLE(xcb,
3532   [  --enable-xcb            X11 support with XCB (default enabled)],, [
3533   AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"], [
3534     enable_xcb="yes"
3535   ], [
3536     enable_xcb="no"
3537   ])
3538 ])
3539 AC_ARG_ENABLE(xvideo,
3540   [  --enable-xvideo         XVideo support (default enabled)],, [
3541     enable_xvideo="$enable_xcb"
3542 ])
3543
3544 AS_IF([test "${enable_xcb}" != "no"], [
3545   PKG_CHECK_MODULES(XPROTO, [xproto])
3546
3547   dnl libxcb
3548   PKG_CHECK_MODULES(XCB, [xcb])
3549   PKG_CHECK_MODULES(XCB_SHM, [xcb-shm])
3550   VLC_ADD_PLUGIN([xcb_x11])
3551   VLC_ADD_PLUGIN([xcb_screen])
3552
3553   AS_IF([test "${enable_xvideo}" != "no"], [
3554     PKG_CHECK_MODULES(XCB_XV, [xcb-xv >= 1.1.90.1], [
3555       VLC_ADD_PLUGIN([xcb_xv])
3556     ], [
3557       PKG_CHECK_MODULES(XCB_XV, [xcb-xv], [
3558         VLC_ADD_PLUGIN([xcb_xv])
3559         VLC_ADD_CFLAGS([xcb_xv], [-DXCB_XV_OLD])
3560       ])
3561     ])
3562   ])
3563
3564   PKG_CHECK_MODULES(XCB_RANDR, [xcb-randr >= 1.3], [
3565     VLC_ADD_PLUGIN([panoramix])
3566     VLC_ADD_LIBS([panoramix],[${XCB_RANDR_LIBS} ${XCB_LIBS}])
3567     VLC_ADD_CFLAGS([panoramix],[${XCB_RANDR_CFLAGS} ${XCB_CFLAGS}])
3568   ], [true])
3569
3570   dnl xcb-utils
3571   PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms])
3572
3573   VLC_ADD_PLUGIN([xcb_window])
3574   VLC_ADD_PLUGIN([globalhotkeys])
3575   VLC_ADD_CFLAGS([globalhotkeys],[${XCB_KEYSYMS_CFLAGS} ${XCB_CFLAGS}] )
3576   VLC_ADD_LIBS([globalhotkeys],[${XCB_KEYSYMS_LIBS} ${XCB_LIBS}] )
3577 ])
3578
3579
3580 dnl
3581 dnl  OpenGL module
3582 dnl  (enabled by default except on beos)
3583 dnl
3584 AC_ARG_ENABLE(opengl,
3585   [  --enable-opengl         OpenGL support (default enabled)])
3586 if test "${enable_opengl}" != "no" &&
3587    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
3588   if test "${SYS}" != "darwin"; then
3589     AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
3590       VLC_ADD_PLUGIN([opengl])
3591       if test "${SYS}" != "mingw32"; then
3592         VLC_ADD_LIBS([opengl],[${X_LIBS} -lGL -lGLU])
3593       else
3594         VLC_ADD_LIBS([opengl],[-lopengl32 -lglu32])
3595       fi
3596     ])
3597   else
3598     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
3599     VLC_ADD_PLUGIN([opengl])
3600     VLC_ADD_LIBS([opengl],[-Wl,-framework,OpenGL])
3601   fi
3602 fi
3603
3604 dnl
3605 dnl  SDL module
3606 dnl
3607 AC_ARG_ENABLE(sdl,
3608   [  --enable-sdl            SDL support (default enabled)])
3609 AC_ARG_ENABLE(sdl-image,
3610   [  --enable-sdl-image      SDL image support (default enabled)])
3611 if test "${enable_sdl}" != "no"
3612 then
3613   SDL_PATH="${PATH}"
3614   AC_ARG_WITH(sdl-config-path,
3615     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
3616     [ if test "${with_sdl_config_path}" != "no"
3617       then
3618         SDL_PATH="${with_sdl_config_path}:${PATH}"
3619       fi ])
3620   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
3621   SDL_CONFIG="${SDL12_CONFIG}"
3622   SDL_HEADER="SDL12/SDL.h"
3623   SDL_IMAGE="SDL12/SDL_image.h"
3624   if test "${SDL_CONFIG}" = "no"
3625   then
3626     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
3627     SDL_CONFIG=${SDL11_CONFIG}
3628     SDL_HEADER="SDL11/SDL.h"
3629     SDL_IMAGE="SDL11/SDL_image.h"
3630   fi
3631   if test "${SDL_CONFIG}" = "no"
3632   then
3633     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
3634     SDL_HEADER="SDL/SDL.h"
3635     SDL_IMAGE="SDL/SDL_image.h"
3636   fi
3637   # check for cross-compiling
3638   SDL_PREFIX=
3639   AC_ARG_WITH(sdl-prefix,
3640     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
3641                                e.g use as:
3642                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
3643   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
3644   then
3645     SDL_PREFIX="--prefix=${with_sdl_prefix}"
3646   fi
3647   if test "${SDL_CONFIG}" != "no"
3648   then
3649     # SDL on Darwin is heavily patched and can only run SDL_image
3650     if test "${SYS}" != "darwin"; then
3651       VLC_ADD_PLUGIN([vout_sdl])
3652       VLC_ADD_PLUGIN([aout_sdl])
3653     fi
3654     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
3655     VLC_ADD_LIBS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
3656     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
3657     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
3658       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
3659       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
3660           As a last resort we also test for SDL.h presence),
3661       [ AC_MSG_ERROR([The development package for SDL is not installed.
3662 Please install it and try again. Alternatively you can also configure with
3663 --disable-sdl.])
3664       ])])
3665     AS_IF([ test "${enable_sdl_image}" != "no"],[
3666       AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
3667         <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
3668         VLC_ADD_PLUGIN([sdl_image])
3669         AC_CHECK_LIB(png, png_set_rows,
3670           [VLC_ADD_LIBS([sdl_image],[-lpng -lz])],[],[-lz])
3671         AC_CHECK_LIB(jpeg, jpeg_start_decompress,
3672           [VLC_ADD_LIBS([sdl_image],[-ljpeg])])
3673         AC_CHECK_LIB(tiff, TIFFClientOpen,
3674           [VLC_ADD_LIBS([sdl_image],[-ltiff])])
3675         VLC_ADD_LIBS([sdl_image], [-lSDL_image])],
3676         [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
3677             As a last resort we also test for SDL_image.h presence),
3678         [ AC_MSG_WARN([The development package for SDL_image is not installed.
3679   You should install it alongside your SDL package.])
3680         ])])
3681     ])
3682     CPPFLAGS="${CPPFLAGS_save}"
3683     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
3684     then
3685       AC_MSG_ERROR([The development package for SDL is not installed.
3686 Please install it and try again. Alternatively you can also configure with
3687 --disable-sdl.])
3688     fi
3689
3690   elif test "${enable_sdl}" =  "yes"
3691   then
3692     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
3693 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
3694     ])
3695   fi
3696 fi
3697
3698 dnl
3699 dnl  freetype module
3700 dnl
3701 AC_ARG_ENABLE(freetype,
3702   [  --enable-freetype       freetype support (default enabled)])
3703 AC_ARG_ENABLE(fribidi,
3704   [  --enable-fribidi        fribidi support (default enabled)])
3705 AC_ARG_ENABLE(fontconfig,
3706   [  --enable-fontconfig,    fontconfig support (default enabled)])
3707 if test "${enable_freetype}" != "no"
3708 then
3709    PKG_CHECK_MODULES(FREETYPE, freetype2,[
3710       VLC_ADD_PLUGIN([freetype])
3711       have_freetype=yes
3712       VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
3713       if test "${SYS}" = "mingw32"; then
3714         VLC_ADD_LIBS([freetype],[-liconv -lz])
3715       fi
3716       VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
3717       if test "${enable_fontconfig}" != "no"
3718       then
3719         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
3720           [VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
3721            VLC_ADD_LIBS([freetype],[-lfontconfig])])
3722         AC_CHECK_HEADERS(Carbon/Carbon.h,
3723           [VLC_ADD_LDFLAGS([freetype],[-Wl,-framework,Carbon])])
3724       fi
3725
3726      dnl fribidi support
3727       if test "${enable_fribidi}" != "no"
3728       then
3729         PKG_CHECK_MODULES(FRIBIDI, fribidi, [
3730           VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
3731           VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
3732         ])
3733       fi
3734
3735   ],[
3736   have_freetype=no
3737   AS_IF([ test "${enable_freetype}" =  "yes"],[
3738     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
3739 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
3740       ])
3741     ])
3742   ])
3743
3744 fi
3745
3746 dnl
3747 dnl  libxml2 module
3748 dnl
3749 PKG_ENABLE_MODULES_VLC([libxml2], [xml], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
3750
3751 dnl
3752 dnl  SVG module
3753 dnl
3754 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3755
3756 dnl
3757 dnl Snapshot vout module (with cache)
3758 dnl
3759 AC_ARG_ENABLE(snapshot,
3760   [  --enable-snapshot       snapshot module (default disabled)])
3761 if test "${enable_snapshot}" = "yes"
3762 then
3763   VLC_ADD_PLUGIN([snapshot])
3764 fi
3765
3766 dnl
3767 dnl  Qt Embedded module
3768 dnl  (disabled by default)
3769 dnl
3770 AC_ARG_ENABLE(qte,
3771   [  --enable-qte            QT Embedded support (default disabled)])
3772 if test "${enable_qte}" = "yes"
3773 then
3774   AC_ARG_WITH(qte,
3775   [    --with-qte=PATH       Qt Embedded headers and libraries])
3776   if test "${with_qte}" != "no" -a -n "${with_qte}"
3777   then
3778     VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3779     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])
3780   else
3781     VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3782     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
3783   fi
3784   VLC_ADD_PLUGIN([qte])
3785   NEED_QTE_MAIN=yes
3786   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
3787   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
3788     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
3789   ] )
3790   CPPFLAGS="${CPPFLAGS_save}"
3791 fi
3792
3793 dnl
3794 dnl Roku HD1000 Video output module
3795 dnl
3796 AC_ARG_ENABLE(hd1000v,
3797   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
3798 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
3799   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3800    test "${enable_hd1000v}" = "yes"); then
3801   AC_LANG_PUSH([C++])
3802   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
3803   [
3804     can_build_roku="yes"
3805   ],
3806   [
3807     can_build_roku="no"
3808     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
3809   ])
3810   if test "$can_build_roku" = "yes"
3811   then
3812     VLC_ADD_PLUGIN([hd1000v])
3813     VLC_ADD_LIBS([hd1000v],[-lCascade -ldvbpsi -lmad])
3814   fi
3815   AC_LANG_POP([C++])
3816 fi
3817
3818 dnl
3819 dnl  Windows DirectX module
3820 dnl
3821
3822 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
3823 then
3824   VLC_ADD_PLUGIN([panoramix])
3825 fi
3826
3827 AC_ARG_ENABLE(directx,
3828   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
3829 if test "${enable_directx}" != "no"
3830 then
3831   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
3832   then
3833     AC_ARG_WITH(directx,
3834     [    --with-directx=PATH   Win32 DirectX headers])
3835     if test -z "${with_directx}"
3836     then
3837       AC_CHECK_HEADERS(ddraw.h,
3838       [ VLC_ADD_PLUGIN([directx])
3839         VLC_ADD_PLUGIN([aout_directx])
3840         VLC_ADD_LIBS([directx],[-lgdi32])
3841       ])
3842       AC_CHECK_HEADERS(GL/gl.h,
3843       [ VLC_ADD_PLUGIN([glwin32])
3844         VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
3845       ])
3846       AC_CHECK_HEADERS(d3d9.h,
3847       [ VLC_ADD_PLUGIN([direct3d])
3848         VLC_ADD_LIBS([direct3d],[-lgdi32])
3849       ])
3850     else
3851       AC_MSG_CHECKING(for directX headers in ${with_directx})
3852       if test -f ${with_directx}/ddraw.h
3853       then
3854         VLC_ADD_PLUGIN([directx])
3855         VLC_ADD_PLUGIN([aout_directx])
3856         VLC_ADD_CPPFLAGS([directx aout_directx],[-I${with_directx}])
3857         VLC_ADD_LIBS([directx],[-lgdi32])
3858         AC_MSG_RESULT(yes)
3859       else
3860         AC_MSG_RESULT(no)
3861         AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
3862       fi
3863     fi
3864   fi
3865 fi
3866
3867 dnl
3868 dnl  Linux framebuffer module
3869 dnl
3870 AC_ARG_ENABLE(fb,
3871   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
3872     if test "${enable_fb}" != "no"
3873     then
3874       AC_CHECK_HEADERS(linux/fb.h, [
3875         VLC_ADD_PLUGIN([fb])
3876       ])
3877     fi
3878
3879 dnl
3880 dnl  Linux MGA module
3881 dnl
3882 AC_ARG_ENABLE(mga,
3883   [  --enable-mga            Linux kernel Matrox support (default disabled)],
3884   [ if test "${enable_mga}" = "yes"
3885     then
3886       VLC_ADD_PLUGIN([mga])
3887     fi ])
3888
3889 dnl
3890 dnl  OMAP Framebuffer module
3891 dnl
3892 AC_ARG_ENABLE(omapfb,
3893   [  --enable-omapfb         OMAP framebuffer support (default disabled)])
3894     if test "${enable_omapfb}" = "yes"
3895     then
3896       AC_CHECK_HEADERS(asm/arch-omap/omapfb.h, [
3897         VLC_ADD_PLUGIN([omapfb])
3898         AC_CHECK_HEADERS(X11/Xlib.h, [
3899           VLC_ADD_LIBS([omapfb],[${X_LIBS} ${X_PRE_LIBS} -lX11]) ])
3900       ])
3901     fi
3902
3903 dnl
3904 dnl  SVGAlib module
3905 dnl
3906 AC_ARG_ENABLE(svgalib,
3907   [  --enable-svgalib        SVGAlib support (default disabled)])
3908 if test "${enable_svgalib}" = "yes"
3909 then
3910   VLC_ADD_PLUGIN([svgalib])
3911   VLC_ADD_LIBS([svgalib],[-lvgagl -lvga])
3912 fi
3913
3914 dnl
3915 dnl  DirectFB module
3916 dnl  try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
3917 dnl  TODO: support for static linking
3918 dnl
3919 AC_ARG_ENABLE(directfb,
3920   [  --enable-directfb       DirectFB support (default disabled)])
3921 AC_ARG_WITH(directfb,
3922   [    --with-directfb=PATH  path to DirectFB headers and libraries])
3923
3924 if test "${enable_directfb}" = "yes"; then
3925     have_directfb="false"
3926     CPPFLAGS_mydirectfb=
3927     LIBS_mydirectfb=
3928     if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
3929         dnl Trying the given location
3930         CPPFLAGS_save="${CPPFLAGS}"
3931         LIBS_save="${LIBS}"
3932
3933         CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
3934         LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/"
3935         LIBS_new="${LIBS_new} -L${with_directfb}/src/.libs/"
3936
3937         CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
3938         LIBS="${LIBS} ${LIBS_new}"
3939
3940         dnl FIXME: too obscure
3941         AC_CHECK_HEADER([directfb.h], [
3942             AC_CHECK_LIB([direct],[direct_initialize], [
3943                 AC_CHECK_LIB([fusion], [fusion_enter], [
3944                     AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
3945                 ], have_directfb="false")
3946             ], have_directfb="false")
3947         ], have_directfb="false")
3948
3949         dnl Restore flags
3950         CPPFLAGS="${CPPFLAGS_save}"
3951         LIBS="${LIBS_save}"
3952
3953         if test "${have_directfb}" = "true"; then
3954             LIBS_mydirectfb="${LIBS_new} -lz -ldl -ldirectfb -lfusion -ldirect -lpthread"
3955             CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
3956         fi
3957     else
3958         dnl Look for directfb-config
3959         AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
3960         if test "${DIRECTFB_CONFIG}" != "no"; then
3961             CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
3962             LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
3963             have_directfb="true"
3964         else
3965             dnl Trying with pkg-config
3966             PKG_CHECK_MODULES(DIRECTFB, directfb, [
3967                 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
3968                 LIBS_mydirectfb="${DIRECTFB_LIBS}"
3969                 have_directfb="true"
3970                 ], [have_directfb="false"])
3971         fi
3972     fi
3973     if test "${have_directfb}" = "true"; then
3974         VLC_ADD_PLUGIN([directfb])
3975         VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
3976         VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
3977     else
3978         AC_MSG_ERROR([cannot find directfb headers and/or libraries ])
3979     fi
3980 fi
3981
3982
3983
3984 dnl
3985 dnl  GGI module
3986 dnl
3987 AC_ARG_ENABLE(ggi,
3988   [  --enable-ggi            GGI support (default disabled)])
3989 if test "${enable_ggi}" = "yes"
3990 then
3991   AC_CHECK_HEADER([ggi/ggi.h],[
3992     VLC_ADD_PLUGIN([ggi])
3993     VLC_ADD_LIBS([ggi],[-lggi])
3994     AC_ARG_WITH(ggi,
3995       [    --with-ggi=PATH       path to libggi],
3996       [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
3997         then
3998           VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
3999           VLC_ADD_LIBS([ggi],[-L${with_ggi}/lib])
4000         fi ])
4001     ],[
4002        AC_MSG_ERROR([LibGGI development files can't be found])
4003     ])
4004 fi
4005
4006 dnl
4007 dnl  AA plugin
4008 dnl
4009 AC_ARG_ENABLE(aa,
4010   [  --enable-aa             aalib output (default disabled)])
4011 if test "${enable_aa}" = "yes"
4012 then
4013   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
4014   if test "${have_aa}" = "true"
4015   then
4016     VLC_ADD_PLUGIN([aa])
4017     VLC_ADD_LIBS([aa],[-laa])
4018   fi
4019 fi
4020
4021 dnl
4022 dnl  libcaca plugin
4023 dnl
4024 PKG_ENABLE_MODULES_VLC([caca], [], [caca >= 0.99.beta1], [libcaca output],[auto])
4025
4026 dnl
4027 dnl  win32 GDI plugin
4028 dnl
4029 AC_ARG_ENABLE(wingdi,
4030   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
4031 if test "${enable_wingdi}" != "no"; then
4032   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4033     VLC_ADD_PLUGIN([wingdi])
4034     VLC_ADD_LIBS([wingdi],[-lgdi32])
4035   fi
4036   if test "${SYS}" = "mingwce"; then
4037     VLC_ADD_PLUGIN([wingdi])
4038     VLC_ADD_PLUGIN([wingapi])
4039     VLC_ADD_LIBS([wingdi],[-laygshell])
4040     VLC_ADD_LIBS([wingapi],[-laygshell])
4041   fi
4042 fi
4043
4044 dnl
4045 dnl  Audio plugins
4046 dnl
4047
4048 AC_ARG_WITH(,[Audio plugins:])
4049
4050 dnl
4051 dnl  OSS /dev/dsp module (enabled by default except on win32)
4052 dnl
4053 AC_ARG_ENABLE(oss,
4054   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
4055
4056 if test "${enable_oss}" != "no" &&
4057   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4058    test "${enable_oss}" = "yes")
4059 then
4060   AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
4061     VLC_ADD_PLUGIN([oss])
4062     VLC_ADD_PLUGIN([access_oss])
4063     AC_CHECK_LIB(ossaudio,main,[VLC_ADD_LIBS([oss],[-lossaudio])])
4064   ])
4065 fi
4066
4067 dnl
4068 dnl  Pulseaudio module
4069 dnl
4070 PKG_ENABLE_MODULES_VLC([PULSE], [], [libpulse >= 0.9.11], [Pulseaudio support], [auto])
4071
4072 dnl
4073 dnl  Portaudio module
4074 dnl
4075 PKG_ENABLE_MODULES_VLC([PORTAUDIO], [], [portaudio-2.0], [Portaudio library support], [auto])
4076
4077 dnl
4078 dnl  ALSA module
4079 dnl
4080 PKG_ENABLE_MODULES_VLC([ALSA], [], [alsa >= 1.0.0], [Alsa sound support for linux], [auto])
4081 PKG_ENABLE_MODULES_VLC([ACCESS_ALSA], [access_alsa], [alsa >= 1.0.0], [Alsa access for linux], [auto])
4082
4083 dnl
4084 dnl  win32 waveOut plugin
4085 dnl
4086 AC_ARG_ENABLE(waveout,
4087   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
4088 if test "${enable_waveout}" != "no"; then
4089   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4090     VLC_ADD_PLUGIN([waveout])
4091     VLC_ADD_LIBS([waveout],[-lwinmm])
4092   fi
4093   if test "${SYS}" = "mingwce"; then
4094     VLC_ADD_PLUGIN([waveout])
4095   fi
4096 fi
4097
4098 dnl
4099 dnl  CoreAudio plugin
4100 dnl
4101 AC_ARG_ENABLE(macosx-audio,
4102   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
4103 if test "${enable_macosx-audio}" != "no" &&
4104   (test "${SYS}" = "darwin" || test "${enable_macosx-audio}" = "yes")
4105 then
4106   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h,
4107     [ VLC_ADD_PLUGIN([auhal])
4108       VLC_ADD_LDFLAGS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
4109     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
4110 fi
4111
4112 dnl
4113 dnl  Roku HD1000 audio
4114 dnl
4115 AC_ARG_ENABLE(hd1000a,
4116   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
4117 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
4118   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4119    test "${enable_hd1000a}" = "yes")
4120 then
4121   AC_LANG_PUSH([C++])
4122   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
4123     VLC_ADD_PLUGIN([hd1000a])
4124     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LIBS([hd1000a],[-lHDMachineX225]))  ])
4125   AC_LANG_POP([C++])
4126 fi
4127
4128 dnl
4129 dnl  JACK modules
4130 dnl
4131 PKG_ENABLE_MODULES_VLC([JACK], [jack], [jack], [JACK audio I/O modules],[auto])
4132 PKG_ENABLE_MODULES_VLC([JACK], [access_jack], [jack], [JACK audio I/O modules],[auto])
4133
4134
4135 dnl
4136 dnl  CyberLink for C++ UPnP stack
4137 dnl
4138 AC_ARG_ENABLE(cyberlink,
4139   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
4140   AS_IF([test "${enable_cyberlink}" = "yes" ], [
4141   AC_ARG_WITH(cyberlink-tree,
4142     [    --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
4143
4144   dnl
4145   dnl test for --with-cyberlink-tree
4146   dnl
4147   AS_IF([test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""], [
4148     AC_LANG_PUSH(C++)
4149     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
4150     AS_IF([test -z "${real_cyberlink_tree}"], [
4151       dnl  The given directory can't be found
4152       AC_MSG_RESULT(no)
4153       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
4154     ])
4155     CPPFLAGS_save="${CPPFLAGS}"
4156     CPPFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
4157     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_cyberlink}"
4158     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
4159       [ VLC_ADD_CXXFLAGS([upnp_cc], [${CPPFLAGS_cyberlink}])
4160         VLC_ADD_PLUGIN([upnp_cc])
4161       ],[
4162         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
4163       ])
4164     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
4165     AS_IF([test -f "${real_cyberlink_tree}/lib/unix/libclink.a"], [
4166       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
4167       dnl The mere fact that we have to make such an ugly check sucks
4168       AC_MSG_CHECKING(for XML parser to link CyberLink with)
4169       LIBS_save="$LIBS"
4170       LIBS_cclink="no"
4171       for l in "`xml2-config --libs`" -lexpat -lxerces-c; do
4172         LIBS="$LIBS_save ${real_cyberlink_tree}/lib/unix/libclink.a -lpthread $l"
4173         AC_LINK_IFELSE([AC_LANG_PROGRAM([
4174 #include <cybergarage/upnp/media/player/MediaPlayer.h>
4175 using namespace CyberLink;
4176
4177 class testclass : public SearchResponseListener, public MediaPlayer
4178 {
4179     virtual void deviceSearchResponseReceived( SSDPPacket *)
4180     {
4181     }
4182
4183     public:
4184       testclass (void)
4185       {
4186         addSearchResponseListener (this);
4187         start ();
4188       }
4189 };
4190 ],[testclass l;])],[LIBS_cclink="$l"])
4191       done
4192       LIBS="${LIBS_save}"
4193       dnl should not happen - otherwise this needs fixing - hence FAILURE
4194       AS_IF([test "${LIBS_cclink}" = "no"],
4195         [AC_MSG_FAILURE([cannot find XML parser for CyberLink])])
4196       AC_MSG_RESULT([${LIBS_cclink}])
4197       VLC_ADD_LIBS([upnp_cc], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}])
4198     ], [
4199       AC_MSG_RESULT(no)
4200       AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
4201     ])
4202     CPPFLAGS="${CPPFLAGS_save}"
4203     AC_LANG_POP([C++])
4204   ])
4205 ])
4206
4207 dnl
4208 dnl UPnP Plugin (Intel SDK)
4209 dnl
4210 PKG_ENABLE_MODULES_VLC([UPNP], [upnp_intel], [libupnp], [Intel UPnp SDK],[auto])
4211
4212
4213 dnl
4214 dnl  Interface plugins
4215 dnl
4216
4217 AC_ARG_WITH(,[Interface plugins:])
4218
4219 dnl special case for BeOS
4220 if test "${SYS}" = "beos"
4221 then
4222     VLC_ADD_PLUGIN([beos])
4223 fi
4224
4225 dnl
4226 dnl Skins2 module
4227 dnl
4228 AC_ARG_ENABLE(skins2,
4229   [AS_HELP_STRING([--enable-skins2],[Skins2 interface module (default
4230    enabled except on MacOSX, BeOS and WinCE)])])
4231 if test "${enable_skins2}" = "yes" ||
4232   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4233    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
4234
4235   dnl test for the required libraries
4236   skins2_missing_lib="no"
4237
4238   dnl freetype
4239   if test "${have_freetype}" != "yes"; then
4240     skins2_missing_lib="yes"
4241     if test "${enable_skins2}" = "yes"; then
4242       AC_MSG_ERROR([Could not find freetype (required for skins2)])
4243     fi
4244   fi
4245
4246   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"); then
4247     VLC_ADD_PLUGIN([skins2])
4248     ALIASES="${ALIASES} svlc"
4249     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
4250     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4251     VLC_ADD_LIBS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
4252
4253   else if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "darwin"); then
4254     VLC_ADD_PLUGIN([skins2])
4255     ALIASES="${ALIASES} svlc"
4256     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
4257     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4258     VLC_ADD_LDFLAGS([skins2],[-Wl,-framework,Carbon])
4259
4260   else if test "${skins2_missing_lib}" = "no"; then
4261     VLC_ADD_PLUGIN([skins2])
4262     ALIASES="${ALIASES} svlc"
4263     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} -DX11_SKINS])
4264     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4265     VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lX11])
4266   fi fi fi
4267 fi
4268 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes" ||
4269          (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4270           test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no")])
4271
4272 dnl
4273 dnl  PDA Gtk+2 module
4274 dnl
4275 AC_ARG_ENABLE(pda,
4276   [  --enable-pda            PDA interface needs Gtk2 support (default disabled)])
4277 if test "${enable_pda}" = "yes"
4278 then
4279   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
4280   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
4281   VLC_ADD_LIBS([gtk2],[${GTK2_LIBS}])
4282   VLC_ADD_CFLAGS([pda],[${GTK2_CFLAGS} ${CFLAGS_pda}])
4283   VLC_ADD_LIBS([pda],[${LDFLAGS_pda}])
4284   VLC_ADD_LIBS([pda],[${GTK2_LIBS}])
4285   VLC_ADD_PLUGIN([pda])
4286   if test "${SYS}" != "mingw32"; then
4287     NEED_GTK2_MAIN=yes
4288     VLC_ADD_CFLAGS([gtk2_main],[$GTK2_CFLAGS])
4289     VLC_ADD_LIBS([gtk2_main],[$GTK2_LIBS])
4290   fi
4291 fi
4292 AM_CONDITIONAL(BUILD_PDA, [test "${enable_pda}" = "yes"])
4293
4294 dnl
4295 dnl Maemo
4296 dnl
4297 AC_ARG_ENABLE(maemo,
4298   [  --enable-maemo          Internet tablets based on Maemo SDK (default disabled)])
4299 if test "${enable_maemo}" = "yes"
4300 then
4301   PKG_CHECK_MODULES(HILDON, [hildon-1 hildon-fm-2], [
4302     VLC_ADD_CFLAGS([maemo],[${HILDON_CFLAGS}])
4303     VLC_ADD_LIBS([maemo],[${HILDON_LIBS}])
4304     VLC_ADD_PLUGIN([maemo])
4305     VLC_ADD_PLUGIN([swscale_maemo])
4306     AC_DEFINE([BUILD_MAEMO], 1, [Define if you are using Maemo interfaces])
4307     ALIASES="${ALIASES} mvlc"
4308   ], [
4309     AS_IF([test "${enable_maemo}" = "yes"],[
4310       AC_MSG_ERROR([Hildon libraries not found])
4311     ])
4312     enable_maemo="no"
4313   ])
4314 fi
4315 AM_CONDITIONAL(BUILD_MAEMO, [test "${enable_maemo}" = "yes"])
4316
4317 dnl
4318 dnl QT 4
4319 dnl
4320 AC_ARG_ENABLE(qt4,
4321   [  --enable-qt4            QT 4 support (default enabled) ],, [
4322   AS_IF([test "${SYS}" = "darwin"], [enable_qt4=no])
4323 ])
4324 AS_IF([test "${enable_qt4}" != "no"], [
4325   PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.4.0], [
4326     VLC_ADD_PLUGIN([qt4])
4327     AC_DEFINE([HAVE_QT4], 1, [Define to 1 if you have QT4 library.])
4328     ALIASES="${ALIASES} qvlc"
4329     AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "cygwin" -a "${SYS}" != "darwin"], [
4330         VLC_ADD_LIBS([qt4],[$QT4_LIBS -lX11])
4331     ], [
4332         VLC_ADD_LIBS([qt4],[$QT4_LIBS -lole32])
4333     ])
4334     QT4LOCALEDIR="$($PKG_CONFIG --variable=prefix QtCore)/share/qt4/translations/"
4335     AC_SUBST(QT4LOCALEDIR)
4336     VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS -DQT4LOCALEDIR=\\\\\\\"${QT4LOCALEDIR}\\\\\\\"])
4337     AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4338     AC_PATH_PROG(RCC, rcc, rcc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4339     AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4340   ], [
4341     AS_IF([test "${enable_qt4}" = "yes"],[
4342       AC_MSG_ERROR([Qt 4 library not found])
4343     ],[
4344       AC_MSG_WARN([Qt 4 library not found])
4345     ])
4346     enable_qt4="no"
4347   ])
4348 ])
4349 AM_CONDITIONAL(ENABLE_QT4, [test "x$enable_qt4" != "xno"])
4350
4351 dnl
4352 dnl  WinCE GUI module
4353 dnl
4354 AC_ARG_ENABLE(wince,
4355   [  --enable-wince          Windows CE interface (default enabled with MinGW)])
4356 if test "${enable_wince}" != "no"; then
4357   if test "${SYS}" = "mingwce"; then
4358     VLC_ADD_PLUGIN([wince])
4359     VLC_ADD_CXXFLAGS([wince],[])
4360     VLC_ADD_LIBS([wince],[-lcommctrl -lcommdlg -laygshell])
4361     dnl Gross hack
4362     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4363   elif test "${SYS}" = "mingw32"; then
4364     VLC_ADD_CXXFLAGS([wince],[])
4365     VLC_ADD_LIBS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
4366     dnl Gross hack
4367     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4368   fi
4369 fi
4370
4371 dnl
4372 dnl Simple test for skins2 dependency
4373 dnl
4374 AS_IF([test "${enable_skins2}" != "no" && test "x$enable_qt4" = "xno"], [
4375   AC_MSG_ERROR([The skins2 module depends on a the Qt4 development package. Without it you won't be able to open any dialog box from the interface, which makes the skins2 interface rather useless. Install the Qt4 development package or alternatively you can also configure with: --disable-qt4 --disable-skins2.])
4376 ])
4377
4378 dnl
4379 dnl  Opie QT embedded module
4380 dnl
4381 AC_ARG_ENABLE(opie,
4382   [  --enable-opie           Qt embedded interface support (default disabled)],
4383   [if test "${enable_opie}" = "yes"; then
4384      AC_ARG_WITH(qte,
4385      [    --with-qte=PATH       Qt Embedded headers and libraries])
4386      if test "${with_qte}" != "no" -a -n "${with_qte}"
4387      then
4388        VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4389        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])
4390      else
4391        VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
4392        VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
4393      fi
4394      CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4395      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4396        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4397      ] )
4398      CPPFLAGS="${CPPFLAGS_save}"
4399
4400      VLC_ADD_PLUGIN([opie])
4401      NEED_QTE_MAIN=yes
4402      VLC_ADD_LIBS([opie],[-lqpe ${LDFLAGS_qte}])
4403      VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
4404      if test "${with_qte}" != "no" -a -n "${with_qte}"
4405      then
4406        MOC=${with_qte}/bin/moc
4407      else
4408        MOC=${QTDIR}/bin/moc
4409      fi
4410    fi])
4411
4412 dnl
4413 dnl  MacOS X video output/gui modules
4414 dnl
4415 AC_ARG_ENABLE(macosx,
4416   [  --enable-macosx         MacOS X support (default enabled on MacOS X)])
4417 if test "x${enable_macosx}" = "xyes"
4418 then
4419   VLC_ADD_LDFLAGS([access_eyetv],                     [-Wl,-framework,Foundation])
4420   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer qtcapture],[-Wl,-framework,Cocoa])
4421   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer],[-Wl,-framework,OpenGL])
4422   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,Carbon])
4423   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,CoreServices])
4424   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,AGL])
4425   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,IOKit])
4426   VLC_ADD_LDFLAGS([macosx],                           [-F\\\${top_srcdir}/extras/contrib/Sparkle -Wl,-framework,Sparkle])
4427   VLC_ADD_OBJCFLAGS([macosx],                         [-F\\\${top_srcdir}/extras/contrib/Sparkle])
4428   dnl For bug report
4429   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,AddressBook])
4430   VLC_ADD_LDFLAGS([macosx qtcapture],                 [-Wl,-framework,QTKit])
4431   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,CoreAudio])
4432   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,WebKit])
4433   VLC_ADD_LDFLAGS([opengllayer qtcapture],            [-Wl,-framework,QuartzCore])
4434   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,CoreVideo])
4435   VLC_ADD_OBJCFLAGS([macosx minimal_macosx opengllayer growl opengllayer], [-fobjc-exceptions] )
4436
4437   VLC_ADD_PLUGIN([access_eyetv])
4438   VLC_ADD_PLUGIN([qtcapture])
4439   VLC_ADD_PLUGIN([macosx])
4440   VLC_ADD_PLUGIN([minimal_macosx])
4441   VLC_ADD_PLUGIN([opengllayer])
4442 fi
4443
4444 dnl
4445 dnl  QNX RTOS module
4446 dnl
4447 AC_ARG_ENABLE(qnx,
4448   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
4449     if test "${enable_qnx}" != "no"
4450     then
4451       AC_CHECK_HEADERS(Ph.h, [
4452         VLC_ADD_PLUGIN([qnx])
4453         VLC_ADD_LIBS([qnx],[-lasound -lph])
4454       ])
4455     fi
4456
4457 dnl
4458 dnl  ncurses module
4459 dnl
4460 AC_ARG_ENABLE(ncurses,
4461   [  --disable-ncurses       ncurses interface support (default enabled)],
4462   [if test "${enable_ncurses}" != "no"; then
4463     AC_CHECK_HEADER(ncurses.h,
4464       [AC_CHECK_LIB(ncursesw, mvprintw,
4465         [VLC_ADD_PLUGIN([ncurses])
4466         VLC_ADD_LIBS([ncurses],[-lncursesw])
4467         ALIASES="${ALIASES} nvlc"
4468         AC_DEFINE([HAVE_NCURSESW], 1, [Define to 1 if you have libncursesw.])
4469         AC_CHECK_LIB(ncursesw, tgetent, [],
4470           AC_CHECK_LIB(tinfow, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfow])],
4471             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
4472               [AS_IF([test "x${enable_ncurses}" != "x"],
4473                 [AC_MSG_ERROR([tgetent not found in ncursesw tinfow tinfo]
4474                )])])
4475             ]
4476           )
4477         )
4478         ],
4479         [AC_CHECK_LIB( ncurses, mvprintw,
4480           [VLC_ADD_PLUGIN([ncurses])
4481           ALIASES="${ALIASES} nvlc"
4482           VLC_ADD_LIBS([ncurses],[-lncurses])
4483           AC_CHECK_LIB(ncurses, tgetent, [],
4484             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
4485               [AS_IF([test "x${enable_ncurses}" != "x"],
4486                 [AC_MSG_ERROR([tgetent not found in ncurses tinfo])])]
4487             )]
4488           )],
4489           [AS_IF([test "x${enable_ncurses}" != "x"], [
4490             AC_MSG_ERROR([libncurses not found])])]
4491         )]
4492       )]
4493     )
4494   fi]
4495 )
4496
4497 dnl
4498 dnl  XOSD plugin
4499 dnl
4500 AC_ARG_ENABLE(xosd,
4501   [  --enable-xosd           xosd interface support (default disabled)])
4502 if test "${enable_xosd}" = "yes"
4503 then
4504   AC_CHECK_HEADERS(xosd.h,
4505     AC_CHECK_LIB(xosd, xosd_set_horizontal_offset, [
4506       VLC_ADD_PLUGIN([xosd])
4507       VLC_ADD_LIBS([xosd],[-lxosd])
4508     ])
4509   )
4510 fi
4511
4512 dnl
4513 dnl Framebuffer (overlay) plugin
4514 dnl
4515 AC_ARG_ENABLE(fbosd,
4516   [  --enable-fbosd          fbosd interface support (default disabled)])
4517 if test "${enable_fbosd}" = "yes"
4518 then
4519   AC_CHECK_HEADERS(linux/fb.h, [
4520     VLC_ADD_PLUGIN([fbosd])
4521  ])
4522 fi
4523
4524 dnl
4525 dnl Visualisation plugin
4526 dnl
4527 AC_ARG_ENABLE(visual,
4528   [  --enable-visual         visualisation plugin (default enabled)])
4529 if test "${enable_visual}" != "no"
4530 then
4531     VLC_ADD_PLUGIN([visual])
4532 fi
4533
4534 dnl
4535 dnl  goom visualization plugin
4536 dnl
4537 PKG_ENABLE_MODULES_VLC([goom], [], [libgoom2], [goom visualization plugin], [auto])
4538
4539 dnl
4540 dnl libprojectM visualization plugin
4541 dnl
4542 PKG_ENABLE_MODULES_VLC([projectm], [], [libprojectM], [projectM visualization plugin], [auto])
4543
4544 dnl
4545 dnl  AtmoLight (homebrew AmbiLight)
4546 dnl
4547 AC_ARG_ENABLE(atmo,
4548 AS_HELP_STRING([--disable-atmo],[AtmoLight (homebrew Philips ambilight)
4549                 (broken, default disabled)]),, [enable_atmo="no"])
4550 AS_IF([test "${enable_atmo}" != no], [
4551   AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "linux"], [
4552     AC_LANG_PUSH(C++)
4553     VLC_ADD_PLUGIN([atmo])
4554     AC_LANG_POP(C++)
4555   ])
4556 ])
4557
4558 dnl
4559 dnl  Bonjour services discovery
4560 PKG_ENABLE_MODULES_VLC([BONJOUR], [], [avahi-client >= 0.6], [Bonjour services discovery], [auto])
4561
4562 dnl
4563 dnl  HAL services discovery
4564 PKG_ENABLE_MODULES_VLC([HAL], [], [hal >= 0.5.0], [Linux HAL services discovery], [auto])
4565
4566 dnl
4567 dnl MTP devices services discovery
4568 PKG_ENABLE_MODULES_VLC([MTP], [], [libmtp >= 0.3.0],[MTP devices support],[auto])
4569
4570 dnl
4571 dnl  Lirc plugin
4572 dnl
4573 AC_ARG_ENABLE(lirc,
4574   [  --enable-lirc           lirc support (default disabled)])
4575 if test "${enable_lirc}" = "yes"
4576 then
4577   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
4578   if test "${have_lirc}" = "true"
4579   then
4580     VLC_ADD_PLUGIN([lirc])
4581     VLC_ADD_LIBS([lirc],[-llirc_client])
4582   fi
4583 fi
4584
4585
4586 AC_ARG_WITH(,[Misc options:])
4587
4588 dnl
4589 dnl libgcrypt
4590 dnl
4591 AC_ARG_ENABLE(libgcrypt,
4592   [  --disable-libgcrypt      libgcrypts support (default enabled)])
4593 AS_IF([test "${enable_libgcrypt}" != "no"], [
4594   AM_PATH_LIBGCRYPT([1:1.1.94], [have_libgcrypt="yes"], [have_libgcrypt="no"])
4595 ])
4596 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
4597   AS_IF([test "${have_libgcrypt}" = "yes"],[
4598     VLC_ADD_LIBS([rtp stream_out_rtp], [${LIBGCRYPT_LIBS}])
4599   ])
4600 fi
4601 AM_CONDITIONAL([HAVE_LIBGCRYPT], [test "${have_libgcrypt}" = "yes"])
4602
4603 dnl
4604 dnl TLS/SSL
4605 dnl
4606 AC_ARG_ENABLE(gnutls,
4607   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
4608
4609 AS_IF([test "${enable_gnutls}" != "no"], [
4610   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.7.4], [
4611     VLC_ADD_PLUGIN([gnutls])
4612     VLC_ADD_CFLAGS([gnutls], [$GNUTLS_CFLAGS])
4613     AS_IF([test "${SYS}" = "mingw32"], [
4614       dnl pkg-config --libs gnutls omits these
4615       VLC_ADD_LIBS([gnutls], [-lz])
4616       VLC_ADD_LIBS([gnutls], [${LTLIBINTL}])
4617     ])
4618     dnl The GnuTLS plugin invokes gcry_control directly.
4619     AS_IF([test "${have_libgcrypt}" = "yes"],[
4620       VLC_ADD_LIBS([gnutls], [${LIBGCRYPT_LIBS}])
4621       VLC_ADD_CFLAGS([gnutls], [${LIBGCRYPT_CFLAGS}])
4622     ])
4623     VLC_ADD_LIBS([gnutls], [$GNUTLS_LIBS])
4624   ], [
4625     AS_IF([test "${enable_gnutls}" = "yes"], [
4626       AC_MSG_ERROR([gnutls not present or too old (version 1.7.4 required)])
4627     ])
4628   ])
4629 ])
4630
4631
4632 dnl
4633 dnl RemoteOSD plugin (VNC client as video filter)
4634 dnl
4635 AC_ARG_ENABLE(remoteosd,
4636   [  --disable-remoteosd     RemoteOSD plugin (default enabled)])
4637
4638 AS_IF([test "${enable_remoteosd}" != "no"], [
4639   AS_IF([test "${have_libgcrypt}" = "yes"],[
4640     VLC_ADD_PLUGIN([remoteosd])
4641     VLC_ADD_LIBS([remoteosd], ${LIBGCRYPT_LIBS})
4642     VLC_ADD_CFLAGS([remoteosd], ${LIBGCRYPT_CFLAGS})
4643   ], [
4644     AC_MSG_ERROR([libgcrypt support required for RemoteOSD plugin])
4645   ])
4646 ])
4647
4648
4649 dnl
4650 dnl RAOP plugin
4651 dnl
4652 AC_MSG_CHECKING([whether to enable RAOP plugin])
4653 AS_IF([test "${have_libgcrypt}" = "yes"], [
4654   AC_MSG_RESULT(yes)
4655   VLC_ADD_PLUGIN([stream_out_raop])
4656   VLC_ADD_LIBS([stream_out_raop], [${LIBGCRYPT_LIBS} -lgpg-error])
4657   VLC_ADD_CFLAGS([stream_out_raop], [${LIBGCRYPT_CFLAGS}])
4658 ], [
4659   AC_MSG_RESULT(no)
4660   AC_MSG_WARN([libgcrypt support required for RAOP plugin])
4661 ])
4662
4663
4664 dnl
4665 dnl update checking system
4666 dnl
4667 AC_ARG_ENABLE(update-check,
4668   [  --enable-update-check   update checking system (default disabled)])
4669 if test "${enable_update_check}" = "yes"
4670 then
4671   if test "${have_libgcrypt}" != "yes"
4672   then
4673     AC_MSG_ERROR([libgcrypt is required for update checking system])
4674   fi
4675   VLC_ADD_LIBS([libvlccore], [${LIBGCRYPT_LIBS}])
4676   VLC_ADD_CFLAGS([libvlccore], [${LIBGCRYPT_CFLAGS}])
4677   AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
4678 fi
4679
4680
4681 dnl
4682 dnl  Endianness check
4683 dnl
4684 AC_C_BIGENDIAN
4685 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
4686   DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
4687 ], [
4688   DEFS_BIGENDIAN=""
4689 ])
4690 AC_SUBST(DEFS_BIGENDIAN)
4691
4692 dnl
4693 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
4694 dnl
4695 loader=false
4696 AC_ARG_ENABLE(loader,
4697   AS_HELP_STRING([--enable-loader],[build DLL loader for ELF i386 platforms
4698                   (default disabled)]))
4699 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
4700 AS_IF([test "${enable_loader}" = "yes"],
4701   [ VLC_ADD_PLUGIN([dmo])
4702     VLC_ADD_CPPFLAGS([dmo],[-I\\\${top_srcdir}/libs/loader])
4703     VLC_ADD_LIBS([dmo],[\\\${top_builddir}/libs/loader/libloader.la -lpthread])
4704     VLC_ADD_CPPFLAGS([quicktime],[-I\\\${top_srcdir}/libs/loader])
4705     VLC_ADD_LIBS([quicktime],[\\\${top_builddir}/libs/loader/libloader.la -lpthread])
4706     VLC_ADD_CPPFLAGS([realaudio],[-I\\\${top_srcdir}/libs/loader -DLOADER])
4707     VLC_ADD_LIBS([realaudio],[\\\${top_builddir}/libs/loader/libloader.la])
4708     VLC_ADD_CPPFLAGS([realvideo],[-I\\\${top_srcdir}/libs/loader -DLOADER])
4709     VLC_ADD_LIBS([realvideo],[\\\${top_builddir}/libs/loader/libloader.la])
4710   ])
4711
4712 AC_ARG_WITH(,[Components:])
4713
4714 dnl
4715 dnl  the VLC binary
4716 dnl
4717 AC_ARG_ENABLE(vlc,
4718   [  --enable-vlc            build the VLC media player (default enabled)])
4719 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
4720
4721 dnl
4722 dnl  Microsoft ActiveX support
4723 dnl
4724 activex=false
4725 AC_ARG_ENABLE(activex,
4726   AS_HELP_STRING([--enable-activex],[build a vlc-based ActiveX control
4727                   (default enabled on Win32)]))
4728 AC_ARG_WITH(wine-sdk-path,
4729   [    --with-wine-sdk-path=PATH path to wine sdk])
4730 if test "${enable_activex}" != "no"
4731 then
4732   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
4733   then
4734     AC_CHECK_PROGS(MIDL, [midl], no)
4735     if test "${with_wine_sdk_path}" != ""
4736     then
4737        WINE_SDK_PATH=${with_wine_sdk_path}
4738        AC_PATH_PROG(WIDL, widl, no, [$WINE_SDK_PATH/bin:$WINE_SDK_PATH/tools/widl])
4739     else
4740        WIDL=no
4741     fi
4742     AC_LANG_PUSH(C++)
4743     AC_CHECK_HEADERS(ole2.h,
4744       [AC_CHECK_HEADERS(olectl.h,
4745         [ VLC_ADD_CPPFLAGS([activex],[-DUNICODE -D_UNICODE -D_MIDL_USE_GUIDDEF_])
4746           VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
4747           VLC_ADD_LIBS([activex],[-lole32 -loleaut32 -luuid -lshlwapi])
4748           AC_CHECK_HEADERS(objsafe.h,
4749             VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER]),,
4750             [
4751              #if HAVE_OLE2_H
4752              #   include <ole2.h>
4753              #endif
4754             ]
4755           )
4756           activex=:
4757           PLUGINS_BINDINGS="${PLUGINS_BINDINGS} activex"
4758         ],
4759         [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
4760       )],
4761       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
4762     )
4763     AC_LANG_POP(C++)
4764   fi
4765 fi
4766 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
4767 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
4768 AC_ARG_VAR(WIDL, [Wine IDL compiler (requires Wine SDK)])
4769 AM_CONDITIONAL(HAS_WIDL_COMPILER, test "${WIDL}" != "no")
4770 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
4771
4772 dnl
4773 dnl  Mozilla plugin
4774 dnl
4775 mozilla=false
4776 AC_ARG_ENABLE(mozilla,
4777   AS_HELP_STRING([--enable-mozilla],[build a vlc-based Firefox/Mozilla plugin
4778                   (default disabled)]))
4779 AC_ARG_WITH(mozilla-sdk-path,
4780   [    --with-mozilla-sdk-path=PATH path to mozilla sdk])
4781 AC_ARG_WITH(mozilla-pkg,
4782   [    --with-mozilla-pkg=PKG  look for PKG.pc to build the mozilla plugin.])
4783 AC_LANG_PUSH(C++)
4784 if test "${enable_mozilla}" = "yes"
4785 then
4786   AS_IF([test "${with_mozilla_sdk_path}" = "" -o "${with_mozilla_sdk_path}" = "no"],
4787     [
4788     dnl pkg-config
4789     dnl As we want to do a loop due to the number of name possible for the .pc
4790     dnl we can't use the pkg-config macros.
4791
4792     AC_ARG_VAR([MOZILLA_CFLAGS], [C compiler flags for Mozilla, overriding pkg-config])
4793     AC_ARG_VAR([MOZILLA_LIBS], [linker flags for Mozilla, overriding pkg-config])
4794     AC_MSG_NOTICE([Checking for Mozilla])
4795     found=0
4796     if test -n "$MOZILLA_CFLAGS" -a -n "$MOZILLA_LIBS"
4797     then
4798       found=1
4799     else
4800       if test -n "$PKG_CONFIG"; then
4801         for i in "${with_mozilla_pkg}" libxul {seamonkey,iceape,xulrunner,firefox,iceweasel,mozilla}-plugin; do
4802           echo "Trying to find $i.pc files" >&5
4803           if $PKG_CONFIG --exists --print-errors "$i" 2>&5
4804           then
4805             echo "Using $i.pc files." >&5
4806             echo "Using $i.pc files." >&6
4807             found=1
4808             MOZILLA_CFLAGS=$( $PKG_CONFIG --cflags "$i" )
4809             MOZILLA_LIBS=$( $PKG_CONFIG --libs "$i" )
4810             break
4811           fi
4812         done
4813       fi
4814     fi
4815     AS_IF( [test $found = 1],[
4816         CPPFLAGS="${CPPFLAGS_save} ${MOZILLA_CFLAGS}"
4817         MOZILLA_REQUIRED_HEADERS=1
4818         AC_CHECK_HEADERS([npfunctions.h])
4819         AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
4820         AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
4821           [#if HAVE_NPAPI_H
4822            # include <npapi.h>
4823            #endif
4824           ])
4825         if test "${MOZILLA_REQUIRED_HEADERS}" = "0"; then
4826             AC_MSG_ERROR([Please install the Firefox development tools; mozilla-config.h, plugin/npapi.h and plugin/npruntime.h were not found.])
4827         fi
4828         MOZILLA_REQUIRED_HEADERS=
4829         mozilla=:
4830         AS_IF([ test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"],[
4831            VLC_ADD_CPPFLAGS([mozilla],[-DXP_UNIX -DOJI])
4832            AS_IF([ test "${SYS}" != "darwin"],[
4833              PKG_CHECK_MODULES(XPM, [xpm xt],[
4834                 VLC_ADD_CPPFLAGS([mozilla],[-DMOZ_X11])
4835              ],[
4836                 AC_MSG_ERROR([Please install the libXpm and libXt development files.])
4837              ])
4838           ])
4839         ])
4840         VLC_ADD_CPPFLAGS([mozilla],[${CPPFLAGS} ${XPM_CFLAGS}])
4841         VLC_ADD_LIBS([mozilla],[${MOZILLA_LIBS} ${XPM_LIBS}])
4842         VLC_ADD_PLUGIN([mozilla])
4843         PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
4844         MOZILLA_CONFIG=
4845         CPPFLAGS="${CPPFLAGS_save}"
4846           ],
4847           [
4848             AC_PATH_PROGS(MOZILLA_CONFIG,
4849             [mozilla-config seamonkey-config xulrunner-config],
4850         [no])
4851             test "${MOZILLA_CONFIG}" = "no" && AC_MSG_ERROR([Please install the Mozilla development tools. mozilla-config was not found.])
4852           ]
4853         )
4854     dnl pkg-config failed but we might have found a mozilla-config
4855     AS_IF( [test ! -z "${MOZILLA_CONFIG}"],[
4856       if ${MOZILLA_CONFIG} --defines | grep -q 'MOZ_X11=1'; then
4857         LDFLAGS="${LDFLAGS_save} ${X_LIBS} ${X_PRE_LIBS}"
4858         AC_CHECK_LIB(Xt,XtStrings,
4859          [
4860            VLC_ADD_CPPFLAGS([mozilla],[${X_CFLAGS}])
4861            VLC_ADD_LIBS([mozilla],[${X_LIBS} ${X_PRE_LIBS} -lXt -lX11 -lSM -lICE -lXpm])
4862          ],
4863          [],
4864          [[${X_LIBS} ${X_PRE_LIBS} -lX11 -lSM -lICE -lXpm]
4865         ])
4866         AC_CHECK_HEADERS(X11/xpm.h,,AC_MSG_ERROR([Please install libXpm-devel library for required X11/xpm.h]))
4867         LDFLAGS="${LDFLAGS_save}"
4868       fi
4869
4870       mozilla=:
4871       PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
4872       VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin java`]])
4873       VLC_ADD_LIBS([mozilla],[`${MOZILLA_CONFIG} --libs plugin`])
4874       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
4875       MOZILLA_REQUIRED_HEADERS=1
4876       AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
4877       AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
4878       AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
4879         [#if HAVE_NPAPI_H
4880          # include <npapi.h>
4881          #endif
4882         ])
4883       if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
4884       then
4885         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
4886       fi
4887       MOZILLA_REQUIRED_HEADERS=
4888       CPPFLAGS="${CPPFLAGS_save}"
4889       MOZILLA_SDK_PATH="`${MOZILLA_CONFIG} --prefix`"
4890     ])
4891     dnl End of moz_sdk = ""
4892   ],[
4893     dnl special case for mingw32
4894     if test "${SYS}" = "mingw32"
4895     then
4896       AC_CHECK_TOOL(CYGPATH, cygpath, "")
4897       dnl latest gecko sdk does not have an xpcom directory
4898       if test -d "${with_mozilla_sdk_path}/xpcom"; then
4899           mozilla_sdk_xpcom="/xpcom"
4900       fi
4901     fi
4902
4903     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
4904     CPPFLAGS="${CPPFLAGS_save} -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include"
4905     MOZILLA_REQUIRED_HEADERS=1
4906     AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
4907     AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
4908     AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
4909         [#if HAVE_NPAPI_H
4910           #include <npapi.h>
4911           #endif
4912         ])
4913     if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
4914     then
4915         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
4916     fi
4917     MOZILLA_REQUIRED_HEADERS=
4918     mozilla=:
4919     PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
4920     VLC_ADD_CPPFLAGS([mozilla],[-DXPCOM_GLUE -DHAVE_CPP_MODERN_SPECIALIZE_TEMPLATE_SYNTAX -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include -I${real_mozilla_sdk}/embedstring/include -I${real_mozilla_sdk}/xpcom/include -I${real_mozilla_sdk}/nspr/include -I${real_mozilla_sdk}/string/include -I${real_mozilla_sdk}/plugin/include -I${real_mozilla_sdk}/java/include])
4921     if ${need_xpcom_libs}; then
4922        VLC_ADD_LIBS([mozilla],[-L${real_mozilla_sdk}/embedstring/bin -L${real_mozilla_sdk}/xpcom/bin -L${real_mozilla_sdk}/nspr/bin -L${real_mozilla_sdk}/string/bin -L${real_mozilla_sdk}/lib -lnspr4 -lplds4 -lplc4 -lxpcomglue])
4923       if test "${SYS}" = "mingw32"; then
4924         dnl latest gecko sdk does not have embedstring
4925         if test -d "${real_mozilla_sdk}/embedstring/bin"
4926         then
4927           VLC_ADD_LIBS([mozilla],[-lembedstring])
4928         fi
4929       fi
4930     fi
4931     MOZILLA_SDK_PATH="${real_mozilla_sdk}"
4932
4933     if test -n "${CYGPATH}"; then
4934       real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
4935     fi
4936     CPPFLAGS="${CPPFLAGS_save}"
4937  ])
4938 fi
4939 AC_LANG_POP(C++)
4940 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
4941
4942 dnl Tests for Osso and Xsp
4943 AC_CHECK_LIB(osso, osso_display_blanking_pause, [
4944   PKG_CHECK_MODULES(GLIB2, glib-2.0, [
4945     VLC_ADD_CPPFLAGS([xvmc glx omapfb],[-DHAVE_OSSO ${DBUS_CFLAGS} ${GLIB2_CFLAGS}])
4946     VLC_ADD_LIBS([xvmc glx omapfb],[-losso])
4947  ])
4948 ])
4949 AC_CHECK_LIB(Xsp, XSPSetPixelDoubling,[
4950   VLC_ADD_CPPFLAGS([xvmc glx],[-DHAVE_XSP])
4951   VLC_ADD_LIBS([xvmc glx],[-lXsp])
4952 ])
4953
4954 dnl
4955 dnl  test plugins
4956 dnl
4957 AC_ARG_ENABLE(testsuite,
4958   [  --enable-testsuite      build test modules (default disabled)])
4959 if test "${enable_testsuite}" = "yes"
4960 then
4961   TESTS="test1 test2 test3 test4"
4962
4963   dnl  we define those so that bootstrap sets the right linker
4964   VLC_ADD_CXXFLAGS([test2],[])
4965   VLC_ADD_OBJCFLAGS([test3],[])
4966   dnl  this one is needed until automake knows what to do
4967   VLC_ADD_LIBS([test3],[-lobjc])
4968
4969   VLC_ADD_PLUGIN([test1])
4970   VLC_ADD_PLUGIN([test2])
4971   VLC_ADD_PLUGIN([test3])
4972   VLC_ADD_PLUGIN([test4])
4973 fi
4974
4975 dnl
4976 dnl  gtk_main plugin
4977 dnl
4978 if test "${NEED_GTK_MAIN}" != "no"
4979 then
4980     VLC_ADD_PLUGIN([gtk_main])
4981     VLC_ADD_CFLAGS([gtk_main],[${CFLAGS_gtk}])
4982     VLC_ADD_LDFLAGS([gtk_main],[${LDFLAGS_gtk}])
4983 fi
4984
4985 if test "${NEED_GNOME_MAIN}" != "no"
4986 then
4987     VLC_ADD_PLUGIN([gnome_main])
4988     VLC_ADD_CFLAGS([gnome_main],[${CFLAGS_gtk} ${CFLAGS_gnome}])
4989     VLC_ADD_LDFLAGS([gnome_main],[${LDFLAGS_gtk} ${LDFLAGS_gnome}])
4990 fi
4991
4992 if test "${NEED_GTK2_MAIN}" != "no"
4993 then
4994     VLC_ADD_PLUGIN([gtk2_main])
4995     VLC_ADD_CFLAGS([gtk2],[-DNEED_GTK2_MAIN])
4996     VLC_ADD_CFLAGS([pda],[-DNEED_GTK2_MAIN])
4997     VLC_ADD_CFLAGS([gtk2_main],[${CFLAGS_gtk2} ${CFLAGS_pda}])
4998     VLC_ADD_LDFLAGS([gtk2_main],[${LDFLAGS_gtk2} ${LDFLAGS_pda}])
4999 fi
5000
5001 if test "${NEED_GNOME2_MAIN}" != "no"
5002 then
5003     VLC_ADD_PLUGIN([gnome2_main])
5004     VLC_ADD_CFLAGS([gnome2_main],[${CFLAGS_gtk2} ${CFLAGS_gnome2}])
5005     VLC_ADD_LDFLAGS([gnome2_main],[${LDFLAGS_gtk2} ${LDFLAGS_gnome2}])
5006 fi
5007
5008 dnl
5009 dnl  qte_main plugin
5010 dnl
5011 if test "${NEED_QTE_MAIN}" != "no"
5012 then
5013     VLC_ADD_PLUGIN([qte_main])
5014     VLC_ADD_CXXFLAGS([opie qte qt_video],[-DNEED_QTE_MAIN])
5015     VLC_ADD_CXXFLAGS([qte_main],[${CXXFLAGS_qte} ${CXXFLAGS_qt_video}])
5016     VLC_ADD_LDFLAGS([qte_main],[${LDFLAGS_qte} ${LDFLAGS_qt_video}])
5017 fi
5018
5019 dnl
5020 dnl  Plugin and builtin checks
5021 dnl
5022 plugin_support=yes
5023
5024 dnl Automagically disable plugins if there is no system support for
5025 dnl dynamically loadable files (.so, .dll, .dylib).
5026 dnl don't forget vlc-win32 still can load .dll as plugins
5027 AS_IF([test "${ac_cv_have_plugins}" = "no"], [
5028   AC_MSG_WARN([*** No plugin support! Building statically! ***])
5029   plugin_support=no
5030 ])
5031
5032 AS_IF([test "${plugin_support}" != "no"], [
5033   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, [Define if dynamic plugins are supported])
5034 ])
5035
5036 dnl
5037 dnl Pic and shared libvlc stuff
5038 dnl
5039 AS_IF([test "${SYS}" = "mingw32"], [
5040   FILE_LIBVLCCORE_DLL="!define LIBVLCCORE_DLL libvlccore.dll"
5041   FILE_LIBVLC_DLL="!define LIBVLC_DLL libvlc.dll"
5042 ])
5043
5044 dnl
5045 dnl  Stuff used by the program
5046 dnl
5047 VERSION_MESSAGE="${VERSION} ${CODENAME}"
5048 COPYRIGHT_MESSAGE="VLC media player - version ${VERSION_MESSAGE} - (c) ${COPYRIGHT_YEARS} the VideoLAN team"
5049 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string])
5050 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string])
5051 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
5052 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
5053 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
5054 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
5055 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
5056 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
5057 AC_SUBST(COPYRIGHT_MESSAGE)
5058 AC_SUBST(VERSION_MESSAGE)
5059 AC_SUBST(VERSION_MAJOR)
5060 AC_SUBST(VERSION_MINOR)
5061 AC_SUBST(VERSION_REVISION)
5062 AC_SUBST(VERSION_EXTRA)
5063 AC_SUBST(COPYRIGHT_YEARS)
5064 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure])
5065 if test "${build_os}" = "cygwin"
5066 then
5067     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [host which ran configure])
5068 else
5069     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -s`", [host which ran configure])
5070 fi
5071 AC_DEFINE_UNQUOTED(VLC_COMPILE_DOMAIN, "`dnsdomainname 2>/dev/null || domainname 2>/dev/null || echo unknown`", [domain of the host which ran configure])
5072 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler])
5073 dnl Win32 need s a numerical version_extra.
5074 case $( echo ${VERSION_EXTRA}|wc -m ) in
5075        "1") VERSION_EXTRA_RC="0";;
5076        "2") VERSION_EXTRA_RC=$( echo ${VERSION_EXTRA}|tr "abcdefghi" "123456789") ;;
5077        *) VERSION_EXTRA_RC="99"
5078 esac
5079 AC_SUBST(VERSION_EXTRA_RC)
5080 dnl
5081 dnl  Handle substvars that use $(top_srcdir)
5082 dnl
5083 VLC_CONFIG="top_srcdir=\"\$(top_srcdir)\" top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
5084 AC_SUBST(VLC_CONFIG)
5085 CPPFLAGS_save="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS_save}"
5086
5087 dnl
5088 dnl  Restore *FLAGS
5089 dnl
5090 VLC_RESTORE_FLAGS
5091
5092 dnl
5093 dnl Sort the modules list
5094 dnl
5095 PLUGINS=$( (for i in `echo $PLUGINS`; do echo $i; done)|sort|xargs )
5096
5097 dnl
5098 dnl  Create the vlc-config script
5099 dnl
5100 LDFLAGS_libvlc="${LDFLAGS_libvlc} ${LDFLAGS_builtin}"
5101
5102 dnl
5103 dnl  Configuration is finished
5104 dnl
5105 AC_SUBST(SYS)
5106 AC_SUBST(ARCH)
5107 AC_SUBST(ALIASES)
5108 AC_SUBST(ASM)
5109 AC_SUBST(MOC)
5110 AC_SUBST(RCC)
5111 AC_SUBST(UIC)
5112 AC_SUBST(WINDRES)
5113 AC_SUBST(MOZILLA_SDK_PATH)
5114 AC_SUBST(WINE_SDK_PATH)
5115 AC_SUBST(LIBEXT)
5116 AC_SUBST(AM_CPPFLAGS)
5117 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
5118 AC_SUBST(FILE_LIBVLCCORE_DLL)
5119 AC_SUBST(FILE_LIBVLC_DLL)
5120
5121 dnl Create vlc-config.in
5122 VLC_OUTPUT_VLC_CONFIG_IN
5123
5124 AC_CONFIG_FILES([
5125   extras/package/win32/vlc.win32.nsi
5126   extras/package/macosx/Info.plist
5127   extras/package/macosx/Resources/English.lproj/InfoPlist.strings
5128   extras/package/macosx/plugin/Info.plist
5129   extras/package/macosx/plugin/InstallerInfo.plist
5130   Makefile
5131   projects/activex/Makefile
5132   projects/activex/axvlc.inf
5133   doc/Makefile
5134   extras/package/ipkg/Makefile
5135   libs/loader/Makefile
5136   libs/srtp/Makefile
5137   libs/unzip/Makefile
5138   modules/Makefile
5139   projects/mozilla/Makefile
5140   m4/Makefile
5141   po/Makefile.in
5142   projects/activex/axvlc_rc.rc
5143   projects/mozilla/npvlc_rc.rc
5144   projects/mozilla/vlc.r
5145   projects/mozilla/install.js
5146   share/Makefile
5147   share/vlc_win32_rc.rc
5148   share/libvlc_win32_rc.rc
5149   compat/Makefile
5150   src/Makefile
5151   src/test/Makefile
5152   bin/Makefile
5153   test/Makefile
5154   modules/access/Makefile
5155   modules/access/bd/Makefile
5156   modules/access/bda/Makefile
5157   modules/access/dshow/Makefile
5158   modules/access/dvb/Makefile
5159   modules/access/mms/Makefile
5160   modules/access/cdda/Makefile
5161   modules/access/rtp/Makefile
5162   modules/access/rtsp/Makefile
5163   modules/access/vcd/Makefile
5164   modules/access/vcdx/Makefile
5165   modules/access/screen/Makefile
5166   modules/access/zip/Makefile
5167   modules/access_output/Makefile
5168   modules/audio_filter/Makefile
5169   modules/audio_filter/channel_mixer/Makefile
5170   modules/audio_filter/converter/Makefile
5171   modules/audio_filter/resampler/Makefile
5172   modules/audio_filter/spatializer/Makefile
5173   modules/audio_mixer/Makefile
5174   modules/audio_output/Makefile
5175   modules/codec/Makefile
5176   modules/codec/avcodec/Makefile
5177   modules/codec/cmml/Makefile
5178   modules/codec/dmo/Makefile
5179   modules/codec/shine/Makefile
5180   modules/codec/subtitles/Makefile
5181   modules/codec/spudec/Makefile
5182   modules/codec/wmafixed/Makefile
5183   modules/codec/xvmc/Makefile
5184   modules/control/Makefile
5185   modules/control/http/Makefile
5186   modules/control/globalhotkeys/Makefile
5187   modules/demux/Makefile
5188   modules/demux/asf/Makefile
5189   modules/demux/avformat/Makefile
5190   modules/demux/avi/Makefile
5191   modules/demux/mkv/Makefile
5192   modules/demux/mp4/Makefile
5193   modules/demux/mpeg/Makefile
5194   modules/demux/playlist/Makefile
5195   modules/gui/Makefile
5196   modules/gui/beos/Makefile
5197   modules/gui/pda/Makefile
5198   modules/gui/macosx/Makefile
5199   modules/gui/maemo/Makefile
5200   modules/gui/minimal_macosx/Makefile
5201   modules/gui/qnx/Makefile
5202   modules/gui/qt4/Makefile
5203   modules/gui/skins2/Makefile
5204   modules/gui/wince/Makefile
5205   modules/meta_engine/Makefile
5206   modules/misc/Makefile
5207   modules/misc/dummy/Makefile
5208   modules/misc/lua/Makefile
5209   modules/misc/memcpy/Makefile
5210   modules/misc/notify/Makefile
5211   modules/misc/testsuite/Makefile
5212   modules/misc/playlist/Makefile
5213   modules/misc/osd/Makefile
5214   modules/misc/stats/Makefile
5215   modules/misc/xml/Makefile
5216   modules/misc/probe/Makefile
5217   modules/mux/Makefile
5218   modules/mux/mpeg/Makefile
5219   modules/packetizer/Makefile
5220   modules/services_discovery/Makefile
5221   modules/stream_filter/Makefile
5222   modules/stream_out/Makefile
5223   modules/video_chroma/Makefile
5224   modules/video_filter/Makefile
5225   modules/video_filter/dynamicoverlay/Makefile
5226   modules/video_output/Makefile
5227   modules/video_output/msw/Makefile
5228   modules/video_output/qte/Makefile
5229   modules/video_output/x11/Makefile
5230   modules/visualization/Makefile
5231   modules/visualization/visual/Makefile
5232 ])
5233
5234 dnl Generate makefiles
5235 AC_OUTPUT
5236
5237 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
5238 # not provided with the source
5239 ${SHELL} ./config.status --file=vlc-config
5240 chmod 0755 vlc-config
5241
5242 /bin/echo -n "Enabled modules: "
5243 ./vlc-config --list plugin
5244
5245 dnl Shortcut to nice compile message
5246 rm -f compile
5247 echo '#! /bin/sh' >compile
5248 echo rm -f .error\$\$ >>compile
5249 echo ERROR=0 >>compile
5250 echo export PATH=$PATH LANG=C >>compile
5251 echo "(make V=1 \$@ 2>&1 || touch .error\$\$)| \\" >>compile
5252 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/buildsystem/make.pl' >>compile
5253 echo test -f .error\$\$ \&\& ERROR=1 >>compile
5254 echo rm -f .error\$\$ >>compile
5255 echo exit \$ERROR >>compile
5256 chmod a+x compile
5257
5258 printf "
5259 libvlc configuration
5260 --------------------
5261 version               : ${VERSION}
5262 system                : ${SYS}
5263 architecture          : ${ARCH}
5264 build flavour         : "
5265 test "${enable_debug}" = "yes" && printf "debug "
5266 test "${enable_cprof}" = "yes" && printf "cprof "
5267 test "${enable_gprof}" = "yes" && printf "gprof "
5268 test "${enable_optimizations}" = "yes" && printf "optim "
5269 test "${enable_release}" = "yes" && printf "release " || printf "devel "
5270 echo ""
5271 if test "${enable_vlc}" != "no"; then
5272 echo "vlc aliases           :${ALIASES}"
5273 else
5274 echo "build vlc executable  : no"
5275 fi
5276 echo "plugins/bindings      :${PLUGINS_BINDINGS}
5277
5278 You can tune the compiler flags in vlc-config.
5279 To build vlc and its plugins, type \`./compile' or \`make'.
5280 "
5281 if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
5282    echo ""
5283    echo "Warning: Due to a bug in ld, mmx/sse support has been"
5284    echo "         turned off."
5285    echo "         FFmpeg will be REALLY slow."
5286    echo "         VLC WILL NOT PERFORM AS EXPECTED."
5287    echo ""
5288 fi