]> git.sesse.net Git - vlc/blob - configure.ac
Fail if XvMC is requested but absent. Fix link-time dependencies.
[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.0.0-pre2)
6 VERSION_MAJOR="1"
7 VERSION_MINOR="0"
8 VERSION_REVISION="0"
9 VERSION_EXTRA="-pre2"
10 PKGDIR="vlc"
11 AC_SUBST(PKGDIR)
12
13 CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
14 CODENAME="Goldeneye"
15 COPYRIGHT_YEARS="1996-2009"
16
17 AC_PREREQ(2.59c)
18 AC_CONFIG_SRCDIR(src/libvlc.c)
19 AC_CONFIG_AUX_DIR(autotools)
20 AC_CONFIG_MACRO_DIR(m4)
21 AC_CONFIG_LIBOBJ_DIR(compat)
22 AC_CANONICAL_BUILD
23 AC_CANONICAL_HOST
24
25 AM_INIT_AUTOMAKE(tar-ustar)
26 AM_CONFIG_HEADER(config.h)
27
28 dnl Too many people are not aware of maintainer mode:
29 dnl If you want to use it, you definitely know what you are doing, so
30 dnl you can specify "--disable-maintainer-mode". But if you want the default
31 dnl automake behavior, you've likely never heard of maintainer mode, so we
32 dnl can't expect you to enable it manually.
33
34 AS_IF([test "x${enable_maintainer_mode}" != "xno"],
35     [enable_maintainer_mode="yes"])
36 AM_MAINTAINER_MODE
37
38 dnl
39 dnl Directories
40 dnl
41 dnl vlcincludedir="\${includedir}/\${PKGDIR}"
42 dnl AC_SUBST(vlcincludedir)
43 vlcdatadir="\${datadir}/\${PKGDIR}"
44 AC_SUBST(vlcdatadir)
45 vlclibdir="\${libdir}/\${PKGDIR}"
46 AC_SUBST(vlclibdir)
47
48 dnl
49 dnl  Deprecated options
50 dnl  to notify packagers that stuff has changed
51 dnl
52 AC_ARG_ENABLE(python-bindings,
53   [  --enable-python-bindings Always fails for historical reasons)],,
54   [enable_python_bindings="no"])
55 AS_IF([test "${enable_python_bindings}" != "no"], [
56   AC_MSG_ERROR([Python bindings are now built from a separate source package])
57 ])
58
59 AC_ARG_ENABLE(java-bindings,
60   [  --enable-java-bindings  Always fails for historical reasons],,
61   [enable_java_bindings="no"])
62 AS_IF([test "${enable_java_bindings}" != "no"], [
63   AC_MSG_ERROR([Java bindings are now built from a separate source package])
64 ])
65
66 dnl
67 dnl  Save *FLAGS
68 dnl
69 VLC_SAVE_FLAGS
70
71 dnl
72 dnl Check for tools
73 dnl
74 AC_PROG_CC_C99
75 AC_USE_SYSTEM_EXTENSIONS
76 AC_DEFINE([_FORTIFY_SOURCE], 2, [Define to '2' to get glibc warnings.])
77
78 AM_PROG_CC_C_O
79 AC_PROG_CXX
80 AC_PROG_CPP
81 AC_PROG_OBJC
82 _AM_DEPENDENCIES([OBJC])
83 AC_PROG_EGREP
84 AC_PROG_MAKE_SET
85 AC_PROG_INSTALL
86 AM_PROG_AS
87
88 dnl Find the right ranlib, even when cross-compiling
89 AC_CHECK_TOOL(RANLIB, ranlib, :)
90 AC_CHECK_TOOL(STRIP, strip, :)
91 AC_CHECK_TOOL(AR, ar, :)
92 AC_CHECK_TOOL(LD, ld, :)
93 AC_CHECK_TOOL(DLLTOOL, dlltool, :)
94
95 dnl Check for compiler properties
96 AC_C_CONST
97 AC_C_INLINE
98 AC_C_RESTRICT
99
100 dnl Allow binary package maintainer to pass a custom string to avoid
101 dnl cache problem
102 AC_ARG_WITH(binary-version,
103         AS_HELP_STRING([--with-binary-version=STRING],
104              [To avoid plugins cache problem between binary version]),[],[])
105 AS_IF([test -n "${with_binary_version}"],[
106       AC_DEFINE_UNQUOTED([DISTRO_VERSION],["${with_binary_version}"],
107                          [Binary specific version])
108       ])
109
110
111 dnl
112 dnl  Check for the contrib directory
113 dnl
114 AC_ARG_WITH(contrib,
115     [  --without-contrib       do not use the libraries in CONTRIB_DIR],[],[])
116   AS_IF([test "${with_contrib}" != "no"],[
117     AC_ARG_VAR([CONTRIB_DIR], [directory containing pre-built contrib, overriding extras/contrib])
118     if test -z "$CONTRIB_DIR"
119     then
120       topdir="`dirname $0`"
121       if test "`echo \"$topdir\" | cut -c 1`" != "/"; then
122          topdir="`pwd`/$topdir"
123       fi
124       CONTRIB_DIR=${topdir}/extras/contrib
125     fi
126     AC_MSG_CHECKING([for libs in ${CONTRIB_DIR}])
127   AS_IF([test -d ${CONTRIB_DIR}/lib],[
128    AS_IF([test "`grep HOST ${CONTRIB_DIR}/config.mak 2>/dev/null|awk '{print $3}'`" != "`$CC -dumpmachine`"],[
129       if test "${with_contrib}" = "yes"; then
130         AC_MSG_RESULT([no])
131         AC_MSG_ERROR([ not using the libs in extras/contrib as it is not the same host])
132       else
133         AC_MSG_RESULT([no])
134         AC_MSG_WARN([ not using the libs in extras/contrib as it is not the same host])
135       fi
136      ],[
137     AC_MSG_RESULT([yes])
138     export PATH=${CONTRIB_DIR}/bin:$PATH
139     CPPFLAGS="${CPPFLAGS} -I${CONTRIB_DIR}/include"
140     CPPFLAGS_save="${CPPFLAGS_save} -I${CONTRIB_DIR}/include"
141     CFLAGS="${CFLAGS} -I${CONTRIB_DIR}/include"
142     CFLAGS_save="${CFLAGS_save} -I${CONTRIB_DIR}/include"
143     CXXFLAGS="${CXXFLAGS} -I${CONTRIB_DIR}/include"
144     CXXFLAGS_save="${CXXFLAGS_save} -I${CONTRIB_DIR}/include"
145     OBJCFLAGS="${OBJCFLAGS} -I${CONTRIB_DIR}/include"
146     OBJCFLAGS_save="${OBJCFLAGS_save} -I${CONTRIB_DIR}/include"
147     if test $build = $host -o "$PKG_CONFIG_LIBDIR"; then
148         export PKG_CONFIG_PATH=${CONTRIB_DIR}/lib/pkgconfig:$PKG_CONFIG_PATH
149     else
150         export PKG_CONFIG_LIBDIR=${CONTRIB_DIR}/lib/pkgconfig
151     fi
152     LDFLAGS="${LDFLAGS} -L${CONTRIB_DIR}/lib"
153     LDFLAGS_save="${LDFLAGS_save} -L${CONTRIB_DIR}/lib"
154
155     if test -z $with_mozilla_sdk_path; then
156        with_mozilla_sdk_path=${CONTRIB_DIR}/gecko-sdk
157     fi
158     if test -z $with_cyberlink_tree; then
159        with_cyberlink_tree=${CONTRIB_DIR}/src/clinkcc
160     fi
161
162     if test ".`uname -s`" = ".Darwin"; then
163       export LD_LIBRARY_PATH=${CONTRIB_DIR}/lib:$LD_LIBRARY_PATH
164       export DYLD_LIBRARY_PATH=${CONTRIB_DIR}/lib:$DYLD_LIBRARY_PATH
165     elif test ".`uname -s`" = ".BeOS"; then
166       export LIBRARY_PATH=${CONTRIB_DIR}/lib:$LIBRARY_PATH
167       export BELIBRARIES=${CONTRIB_DIR}/lib:$BELIBRARIES
168     fi
169     ])
170   ],[
171     AC_MSG_RESULT([no])
172   ])
173 ])
174 dnl
175 dnl  Set default values
176 dnl
177 LDFLAGS_vlc="${LDFLAGS}"
178
179 dnl
180 dnl  Check the operating system
181 dnl
182 case "${host_os}" in
183   "")
184     SYS=unknown
185     ;;
186   linux*)
187     SYS=linux
188     ;;
189   bsdi*)
190     SYS=bsdi
191     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
192     VLC_ADD_LIBS([dvd dvdcss vcd cdda vcdx cddax],[-ldvd])
193     ;;
194   *bsd*)
195     SYS="${host_os}"
196     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
197     case "${host_os}" in
198       freebsd*)
199         CPPFLAGS_save="${CPPFLAGS_save} -I/usr/local/include"
200         CPPFLAGS="${CPPFLAGS_save}"
201         LDFLAGS_save="${LDFLAGS_save} -L/usr/local/lib"
202         LDFLAGS="${LDFLAGS_save}"
203         ;;
204     esac
205     ;;
206   darwin*)
207     SYS=darwin
208     CFLAGS_save="${CFLAGS_save} -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
209     CXXFLAGS_save="${CXXFLAGS_save} -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
210     OBJCFLAGS_save="${OBJCFLAGS_save} -D_INTL_REDIRECT_MACROS -std=gnu99"; OBJCFLAGS="${OBJCFLAGS_save}"
211     LDFLAGS_save="${LDFLAGS_save} -Wl,-headerpad_max_install_names"; LDFLAGS="${LDFLAGS_save}"
212     VLC_ADD_LDFLAGS([mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
213     VLC_ADD_LDFLAGS([mkv mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
214     VLC_ADD_LDFLAGS([vlc],[-Wl,-undefined,dynamic_lookup])
215     VLC_ADD_LDFLAGS([libvlc_control],[-Wl,dynamic_lookup])
216     VLC_ADD_LDFLAGS([avcodec avformat swscale imgresample postproc i420_rgb_mmx x264],[-Wl,-read_only_relocs,suppress])
217     VLC_ADD_CFLAGS([motion],[-fconstant-cfstrings])
218     VLC_ADD_LDFLAGS([libvlc],[-Wl,-framework,CoreFoundation])
219     VLC_ADD_LDFLAGS([motion],[-Wl,-framework,IOKit,-framework,CoreFoundation])
220     AC_ARG_ENABLE(macosx-defaults,
221       AS_HELP_STRING([--enable-macosx-defaults],[Build the default configuration on Mac OS X (default enabled)]))
222     if test "x${enable_macosx_defaults}" != "xno"
223     then
224         echo ""
225         echo "Building with Mac OS X defaults:"
226         with_macosx_version_min="10.5"
227         echo "  Assuming --with-macosx-version-min=10.5"
228         with_macosx_sdk="/Developer/SDKs/MacOSX${with_macosx_version_min}.sdk"
229         echo "  Assuming --with-macosx-sdk=/Developer/SDKs/MacOSX${with_macosx_version_min}.sdk"
230         build_dir=`pwd`
231         echo "  Assuming --prefix=${build_dir}/vlc_install_dir"
232         ac_default_prefix="${build_dir}/vlc_install_dir"
233         enable_macosx="yes"
234         echo "  Assuming --enable-macosx"
235         enable_faad="yes"
236         echo "  Assuming --enable-faad"
237         enable_flac="yes"
238         echo "  Assuming --enable-flac"
239         enable_theora="yes"
240         echo "  Assuming --enable-theora"
241         enable_shout="yes"
242         echo "  Assuming --enable-shout"
243         enable_cddax="yes"
244         echo "  Assuming --enable-cddax"
245         enable_vcdx="yes"
246         echo "  Assuming --enable-vcdx"
247         enable_caca="yes"
248         echo "  Assuming --enable-caca"
249         enable_goom="yes"
250         echo "  Assuming --enable-goom"
251         enable_ncurses="yes"
252         echo "  Assuming --enable-ncurses"
253         enable_twolame="yes"
254         echo "  Assuming --enable-twolame"
255         enable_realrtsp="yes"
256         echo "  Assuming --enable-realrtsp"
257         enable_update_check="yes"
258         echo "  Assuming --enable-update-check"
259         enable_libass="yes"
260         echo "  Assuming --enable-libass"
261         enable_asademux="yes"
262         echo "  Assuming --enable-asademux"
263
264         enable_skins2="no"
265         echo "  Assuming --disable-skins2"
266         enable_x11="no"
267         echo "  Assuming --disable-x11"
268         enable_glx="no"
269         echo "  Assuming --disable-glx"
270         enable_xvideo="no"
271         echo "  Assuming --disable-xvideo"
272     fi
273     dnl
274     dnl  Check for Mac OS X SDK settings
275     dnl
276     AC_ARG_WITH(macosx-sdk,
277        [  --with-macosx-sdk=DIR   compile using the SDK in DIR])
278     if test "${with_macosx_sdk}" != "" ; then
279         CPP="${CPP} -isysroot ${with_macosx_sdk}"
280         CC="${CC} -isysroot ${with_macosx_sdk}"
281         CXX="${CXX} -isysroot ${with_macosx_sdk}"
282         OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
283         LD="${LD} -syslibroot ${with_macosx_sdk}"
284     fi
285     if test "${host_cpu}" = "powerpc"; then
286         CPP="${CPP} -arch ppc"
287         CC="${CC} -arch ppc"
288         CXX="${CXX} -arch ppc"
289         OBJC="${OBJC} -arch ppc"
290         LD="${LD} -arch ppc"
291     fi    
292     if test "${host_cpu}" = "i386"; then
293         CPP="${CPP} -arch i386"
294         CC="${CC} -arch i386"
295         CXX="${CXX} -arch i386"
296         OBJC="${OBJC} -arch i386"
297         LD="${LD} -arch i386"
298     fi
299     AC_ARG_WITH(macosx-version-min,
300        [  --with-macosx-version-min=VERSION  compile for MacOSX VERSION and above])
301     if test "${with_macosx_version_min}" != "" ; then
302         CPP="${CPP} -mmacosx-version-min=${with_macosx_version_min}"
303         CC="${CC} -mmacosx-version-min=${with_macosx_version_min}"
304         CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
305         OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
306         LD="${LD} -macosx_version_min=${with_macosx_version_min}"
307         CFLAGS_save="${CFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CFLAGS="${CFLAGS_save}"
308         CXXFLAGS_save="${CXXFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CXXFLAGS="${CXXFLAGS_save}"
309         OBJCFLAGS_save="${OBJCFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; OBJCFLAGS="${OBJCFLAGS_save}"
310         MACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}
311         export MACOSX_DEPLOYMENT_TARGET
312     fi
313     ;;
314   darwin9*)
315     if (test ".`uname -p`" = ".i386"); then
316         dnl Due to a ld(64) bug in 10.5 we cannot use our mmx code
317         dnl without hacking it a lot, we disable mmx and sse.
318         dnl (that bug is about ld being unable to handle
319         dnl text relocation)
320         save_cflags="$CFLAGS"
321         CFLAGS="$CFLAGS -dynamiclib -single_module -read_only_relocs suppress"
322         AC_TRY_LINK(
323             [int a;], [asm("movq _a,%mm0\n");],
324             ac_ld_does_not_support_text_reloc=no,
325             ac_ld_does_not_support_text_reloc=yes)
326         CFLAGS="$save_cflags"
327
328         if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
329             enable_mmx="no"
330             echo "  Assuming --disable-mmx (due to a bug in ld)"
331             enable_sse="no"
332             echo "  Assuming --disable-sse (due to a bug in ld)"
333         fi
334     fi
335     ;;
336   *mingw32* | *cygwin* | *wince* | *mingwce* | *pe*)
337     AC_CHECK_TOOL(WINDRES, windres, :)
338     AC_CHECK_TOOL(OBJCOPY, objcopy, :)
339
340     case "${host_os}" in
341       *wince* | *mingwce* | *mingw32ce* | *pe*)
342         SYS=mingwce
343         dnl Sadly CeGCC still needs non-wince macros
344         AC_DEFINE([_WIN32_WINNT], 0x0501, [Define to '0x0500' for Windows 2000 APIs.])
345         ;;
346       *mingw32*)
347         SYS=mingw32
348         AC_DEFINE([_WIN32_WINNT], 0x0500, [Define to '0x0500' for Windows 2000 APIs.])
349         ;;
350       *cygwin*)
351         dnl Check if we are using the mno-cygwin mode in which case we are
352         dnl actually dealing with a mingw32 compiler.
353         AC_DEFINE([_WIN32_WINNT], 0x0500, [Define to '0x0500' for Windows 2000 APIs.])
354         AC_EGREP_CPP(yes,
355             [#ifdef WIN32
356              yes
357              #endif],
358             SYS=mingw32, SYS=cygwin)
359         ;;
360     esac
361
362     if test "${SYS}" = "mingw32"; then
363         # add ws2_32 for closesocket, select, recv
364         VLC_ADD_LIBS([libvlc],[-lws2_32 -lnetapi32 -lwinmm])
365         VLC_ADD_LDFLAGS([vlc],[-mwindows])
366         VLC_ADD_LIBS([activex mozilla],[-lgdi32])
367         VLC_ADD_LIBS([cdda vcdx cddax sdl_image],[-lwinmm])
368         VLC_ADD_LIBS([access_http access_mms access_udp access_tcp access_ftp access_rtmp access_output_udp access_output_shout access_output_rtmp sap slp http stream_out_standard stream_out_rtp stream_out_raop vod_rtsp access_realrtsp rtp telnet rc netsync gnutls growl_udp flac ts audioscrobbler lua remoteosd],[-lws2_32])
369     fi
370     if test "${SYS}" = "mingwce"; then
371         # add ws2 for closesocket, select, recv
372         VLC_ADD_LIBS([libvlc access_http access_mms access_udp access_tcp access_ftp access_rtmp access_output_udp sap http netsync audioscrobbler growl rtp stream_out_rtp remoteosd],[-lws2])
373         VLC_ADD_LIBS([libvlc],[-lmmtimer])
374    fi
375     ;;
376   *nto*)
377     SYS=nto
378     VLC_ADD_LIBS([x11 xvideo],[-lsocket])
379     ;;
380   solaris*)
381     SYS=solaris
382     # _POSIX_PTHREAD_SEMANTICS is needed to get the POSIX ctime_r
383     # Perhaps it is useful other places as well?
384     CFLAGS_save="${CFLAGS_save} -D_POSIX_PTHREAD_SEMANTICS"; CFLAGS="${CFLAGS_save}"
385     ;;
386   hpux*)
387     SYS=hpux
388     ;;
389   beos)
390     SYS=beos
391     CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}"
392     CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}"
393     VLC_ADD_CXXFLAGS([beos],[])
394     VLC_ADD_LIBS([vlc libvlc logger],[-lbe])
395     VLC_ADD_LIBS([beos],[-lbe -lmedia -ltranslation -ltracker -lgame])
396     VLC_ADD_LIBS([dvdnav dvdread],[-ldl])
397     VLC_ADD_LIBS([access_file],[-lpoll])
398     LDFLAGS_save="${LDFLAGS_save} -lintl"; LDFLAGS="${LDFLAGS_save}"
399     dnl Check for BONE
400     if test -f /boot/beos/system/lib/libbind.so; then
401         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlc growl_udp],[-lbind -lsocket])
402     else
403         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlc growl_udp],[-lnet])
404     fi
405
406     dnl Ugly check for Zeta
407     if test -f /boot/beos/system/lib/libzeta.so; then
408         VLC_ADD_LIBS([beos],[-lzeta])
409     fi
410     ;;
411   *)
412     SYS="${host_os}"
413     ;;
414 esac
415 AM_CONDITIONAL(HAVE_BEOS, test "${SYS}" = "beos")
416 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
417 AM_CONDITIONAL(HAVE_LINUX, [test "${SYS}" = "linux"])
418 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
419 AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
420
421 dnl
422 dnl Sadly autoconf doesn't think about testing foo.exe when ask to test
423 dnl for program foo on win32
424
425 case "${build_os}" in
426     cygwin|msys)
427         ac_executable_extensions=".exe"
428     ;;
429     *)
430     ;;
431 esac
432
433 dnl
434 dnl  Libtool
435 dnl  It's very bad, but our former custom system was worst
436 dnl  -- Courmisch
437 dnl
438
439 dnl override platform specific check for dependent libraries
440 dnl otherwise libtool linking of shared libraries will
441 dnl fail on anything other than pass_all.
442 AC_CACHE_VAL(lt_cv_deplibs_check_method,
443     [lt_cv_deplibs_check_method=pass_all])
444
445 AC_DISABLE_STATIC
446 dnl AC_DISABLE_FAST_INSTALL
447 AC_LIBTOOL_DLOPEN
448 AC_LIBTOOL_WIN32_DLL
449 m4_undefine([AC_PROG_F77])
450 m4_defun([AC_PROG_F77],[])
451 AC_PROG_LIBTOOL
452
453 m4_undefine([AC_DEPLIBS_CHECK_METHOD])
454 m4_defun([AC_DEPLIBS_CHECK_METHOD],[])
455
456 lt_cv_deplibs_check_method=pass_all
457
458
459 dnl
460 dnl Gettext stuff
461 dnl
462 AM_GNU_GETTEXT_VERSION([0.17])
463 AM_GNU_GETTEXT([external])
464 VLC_ADD_LIBS([libvlc vlc], [${LTLIBINTL}])
465
466 dnl
467 dnl Iconv stuff
468 dnl
469 AM_ICONV
470 VLC_ADD_CFLAGS([libvlc],[${INCICONV}])
471 VLC_ADD_LIBS([libvlc],[${LTLIBICONV}])
472
473 dnl Check for broken versions of mingw-runtime compatability library
474 AS_IF([test "${SYS}" = "mingw32"], [
475     AC_MSG_CHECKING(for broken mingw-runtime)
476     AC_PREPROC_IFELSE([
477 #include <_mingw.h>
478 #if (__MINGW32_MAJOR_VERSION == 3) && (__MINGW32_MINOR_VERSION < 14)
479 # error Attempting to use mingw-runtime with broken vsnprintf support
480 #endif
481 ], [
482         AC_MSG_RESULT([ok])
483 ], [
484         AC_MSG_RESULT([present])
485         AC_MSG_ERROR([LibVLC requires mingw-runtime version 3.14 or higher!])
486 ])
487     dnl force use of mingw provided c99 *printf over msvcrt
488     CPPFLAGS="${CPPFLAGS} -D__USE_MINGW_ANSI_STDIO=1"
489     CPPFLAGS_save="${CPPFLAGS_save} -D__USE_MINGW_ANSI_STDIO=1"
490 ])
491
492 dnl Check for the need to include the mingwex lib for mingw32
493 if test "${SYS}" = "mingw32"
494 then
495     AC_CHECK_LIB(mingwex,opendir,
496         AC_CHECK_LIB(mingw32,opendir,,
497             [VLC_ADD_LIBS([libvlc gtk],[-lmingwex])])
498     )
499 fi
500
501 dnl Check for fnative-struct or mms-bitfields support for mingw32
502 if test "${SYS}" = "mingw32"
503 then
504     AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
505         [ac_cv_c_mms_bitfields],
506         [CFLAGS="${CFLAGS_save} -mms-bitfields"
507          AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
508     if test "${ac_cv_c_mms_bitfields}" != "no"; then
509         CFLAGS_save="${CFLAGS_save} -mms-bitfields";
510         CXXFLAGS_save="${CXXFLAGS_save} -mms-bitfields";
511     else
512         AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
513             [ac_cv_c_fnative_struct],
514             [CFLAGS="${CFLAGS_save} -fnative-struct"
515              AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
516         if test "${ac_cv_c_fnative_struct}" != "no"; then
517             CFLAGS_save="${CFLAGS_save} -fnative-struct";
518             CXXFLAGS_save="${CXXFLAGS_save} -fnative-struct";
519         fi
520     fi
521
522     CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
523 fi
524
525 dnl Check for fvtable-thunks support for mingw32
526 if test "${SYS}" = "mingw32" -a "${CXX}" != ""
527 then
528 AC_LANG_PUSH(C++)
529     AC_CACHE_CHECK([if \$CXX accepts -fvtable-thunks],
530         [ac_cv_cxx_fvtable_thunks],
531         [CXXFLAGS="${CXXFLAGS_save} -Wall -Werror -fvtable-thunks"
532          AC_TRY_COMPILE([],,ac_cv_cxx_fvtable_thunks=yes,
533                         ac_cv_cxx_fvtable_thunks=no)])
534     if test "${ac_cv_cxx_fvtable_thunks}" = "yes"; then
535         CXXFLAGS_mingw32_special="-fvtable-thunks"
536     fi
537
538     CXXFLAGS_save="${CXXFLAGS_save} ${CXXFLAGS_mingw32_special}"; CXXFLAGS="${CXXFLAGS_save}"
539 AC_LANG_POP(C++)
540 fi
541
542 dnl
543 dnl Buggy glibc prevention. Purposedly not cached.
544 dnl Ubuntu alone has 20 bug numbers for this...
545 dnl
546 AC_MSG_CHECKING(for buggy GNU/libc versions)
547 AC_PREPROC_IFELSE([
548 #include <limits.h>
549 #if defined (__GLIBC__) && (__GLIBC__ == 2) \
550   && (__GLIBC_MINOR__ >= 5) && (__GLIBC_MINOR__ <= 7)
551 # error GNU/libc with dcgettext killer bug!
552 #endif
553 ], [
554   AC_MSG_RESULT([not present])
555 ], [
556   AC_MSG_RESULT([found])
557   AC_MSG_ERROR([Buggy GNU/libc (version 2.5 - 2.7) present. VLC would crash; there is no viable work-around for this. Check with your distribution vendor on how to update the glibc run-time.])
558 ])
559
560 dnl Plugin compilation stuff
561
562 VLC_LIBRARY_SUFFIX
563
564 dnl The -DSYS_FOO flag
565 CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
566
567 dnl Check for system libs needed
568 need_libc=false
569
570 dnl Check for usual libc functions
571 AC_CHECK_FUNCS([gettimeofday isatty sigrelse getpwuid_r memalign posix_memalign if_nametoindex getenv putenv setenv ctime_r lrintf daemon fork lstat posix_fadvise posix_madvise uselocale])
572 AC_FUNC_ALLOCA
573 AC_CHECK_FUNCS(fcntl)
574 AC_REPLACE_FUNCS([asprintf atof atoll gmtime_r lldiv localtime_r rewind strcasecmp strcasestr strdup strlcpy strncasecmp strndup strnlen strsep strtof strtoll vasprintf swab])
575 AC_CHECK_FUNCS([stricmp strnicmp])
576
577 dnl Check for Linux system calls
578 AC_CHECK_FUNCS([vmsplice])
579
580 AH_BOTTOM([#include <vlc_fixups.h>])
581
582 AC_CHECK_FUNCS(mmap, [VLC_ADD_PLUGIN([access_mmap])])
583
584 dnl Check for setlocal and langinfo
585 AC_CHECK_FUNCS(setlocale)
586 AC_CHECK_HEADERS(langinfo.h)
587 AC_CHECK_FUNCS(nl_langinfo)
588
589 AC_CACHE_CHECK([for nl_langinfo and CODESET], ac_cv_langinfo_codeset,
590   [AC_TRY_LINK([#include <langinfo.h>],
591     [char* cs = nl_langinfo(CODESET);],
592     ac_cv_langinfo_codeset=yes,
593     ac_cv_langinfo_codeset=no)
594   ])
595 if test ${ac_cv_langinfo_codeset} = yes; then
596   AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
597     [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
598 fi
599
600 AC_CHECK_FUNCS(connect,,[
601   AC_CHECK_LIB(socket,connect,[
602     VLC_ADD_LIBS([libvlc cdda cddax],-lsocket)
603     LIBS_socket="-lsocket"
604   ])
605 ])
606
607 AC_CHECK_FUNCS(send,,[
608   AC_CHECK_LIB(socket,send,[
609     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])
610   ])
611 ])
612
613
614 dnl Check for socklen_t
615 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
616 AC_CACHE_CHECK([for socklen_t in sys/socket.h],
617 ac_cv_type_socklen_t,
618 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
619 [#include <sys/types.h>
620 #ifdef WIN32
621 # include <winsock2.h>
622 # include <ws2tcpip.h>
623 #else
624 # include <sys/socket.h>
625 #endif]], [[socklen_t len; len = 0;]])],
626 ac_cv_type_socklen_t=yes,
627 ac_cv_type_socklen_t=no)])
628 AS_IF([test "$ac_cv_type_socklen_t" = no],
629  [AC_DEFINE(socklen_t, int)])
630
631 dnl Check for struct sockaddr_storage
632 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.])
633 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.])
634 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
635   [AC_TRY_COMPILE(
636     [#include <sys/types.h>
637      #if defined( UNDER_CE )
638      # include <winsock2.h>
639      #elif defined( WIN32 )
640      # include <winsock2.h>
641      #else
642      # include <sys/socket.h>
643      #endif], [struct sockaddr_storage addr;],
644      ac_cv_struct_sockaddr_storage=yes,
645      ac_cv_struct_sockaddr_storage=no)])
646 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
647   AC_DEFINE(sockaddr_storage, sockaddr)
648   AC_DEFINE(ss_family, sa_family)
649 ])
650
651 dnl getaddrinfo, getnameinfo and gai_strerror check
652 dnl  -lnsl and -lsocket are needed on Solaris;
653 dnl  we purposedly make the test fail on Windows
654 LIBS_save="${LIBS}"
655 AH_TEMPLATE(HAVE_GETADDRINFO, [Define to 1 if you have the `getaddrinfo' function.])
656 AC_SEARCH_LIBS([getaddrinfo], [nsl], [AC_DEFINE(HAVE_GETADDRINFO)],, [${LIBS_socket}])
657
658 dnl NOTE: we assume getaddrinfo will be present if getnameinfo or gai_strerro
659 dnl are
660 LIBS="${LIBS_gai}"
661 AC_CHECK_FUNCS([getnameinfo gai_strerror])
662 LIBS="${LIBS_save}"
663
664 AH_TEMPLATE(HAVE_ADDRINFO, [Define to 1 if <netdb.h> defines `struct addrinfo'.])
665 AC_CHECK_TYPES([struct addrinfo],[AC_DEFINE(HAVE_ADDRINFO)],,
666 [#include <sys/types.h>
667 #if defined( WIN32 ) || defined( UNDER_CE )
668 # if defined(UNDER_CE) && defined(sockaddr_storage)
669 #  undef sockaddr_storage
670 # endif
671 # include <winsock2.h>
672 # include <ws2tcpip.h>
673 #else
674 # include <netdb.h>
675 #endif])
676
677 dnl Check for va_copy
678 AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
679   AC_TRY_LINK(
680     [#include <stdarg.h>],
681     [va_list ap1, ap2; va_copy(ap1,ap2);],
682     [ac_cv_c_va_copy="yes"],
683     [ac_cv_c_va_copy="no"]))
684 if test "${ac_cv_c_va_copy}" = "yes"; then
685   AC_DEFINE(HAVE_VA_COPY, 1, [Define if <stdarg.h> defines va_copy.])
686 fi
687 AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
688   AC_TRY_LINK(
689     [#include <stdarg.h>],
690     [va_list ap1, ap2; __va_copy(ap1,ap2);],
691     [ac_cv_c___va_copy="yes"],
692     [ac_cv_c___va_copy="no"]))
693 if test "${ac_cv_c___va_copy}" = "yes"; then
694   AC_DEFINE(HAVE___VA_COPY, 1, [Define if <stdarg.h> defines __va_copy.])
695 fi
696
697 AC_CHECK_FUNCS(inet_aton,,[
698   AC_CHECK_LIB(resolv,inet_aton,[
699     VLC_ADD_LIBS([libvlc],[-lresolv])
700   ])
701 ])
702
703 dnl Check for getopt (always use builtin one on win32)
704 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
705 need_getopt=:
706 else
707 need_getopt=false
708 AC_CHECK_FUNCS(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
709 [ # FreeBSD has a gnugetopt library for this:
710   AC_CHECK_LIB([gnugetopt],[getopt_long],
711     [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support)
712      VLC_ADD_LIBS([libvlc],[-lgnugetopt])],
713     [need_getopt=:])])
714 fi
715 AM_CONDITIONAL(BUILD_GETOPT, ${need_getopt})
716
717 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
718 AC_TYPE_SIGNAL
719 AC_CHECK_LIB(m,cos,[
720   VLC_ADD_LIBS([adjust wave ripple psychedelic gradient a52tofloat32 dtstofloat32 x264 goom visual panoramix rotate noise grain scene],[-lm])
721 ])
722 AC_CHECK_LIB(m,pow,[
723   VLC_ADD_LIBS([avcodec avformat swscale imgresample postproc ffmpegaltivec stream_out_transrate i420_rgb faad twolame equalizer spatializer param_eq libvlc vorbis freetype mod mpc dmo quicktime realaudio realvideo galaktos opengl],[-lm])
724 ])
725 AC_CHECK_LIB(m,sqrt,[
726   VLC_ADD_LIBS([headphone_channel_mixer normvol speex mono colorthres extract],[-lm])
727 ])
728 AC_CHECK_LIB(m,ceil,[
729   VLC_ADD_LIBS([mosaic],[-lm])
730 ])
731 AC_CHECK_LIB(m,exp,[
732   VLC_ADD_LIBS([gaussianblur],[-lm])
733 ])
734 AC_CHECK_LIB(m,round,[
735   VLC_ADD_LIBS([dbus],[-lm])
736 ])
737 AC_CHECK_LIB(mx,sqrtf,[
738   VLC_ADD_LIBS([x264],[-lmx])
739 ])
740 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
741
742 dnl Check for dynamic plugins
743 ac_cv_have_plugins=no
744
745 # OS X style
746 AC_CHECK_HEADERS(mach-o/dyld.h,
747   [AC_CHECK_FUNCS(NSLinkModule,
748     [AC_DEFINE(HAVE_DL_DYLD, 1, [Define if you have the Darwin dyld API])
749      ac_cv_have_plugins=yes])])
750
751 # HP-UX style
752 if test "${ac_cv_have_plugins}" = "no"; then
753   AC_CHECK_HEADERS(dl.h)
754   ac_cv_my_have_shl_load=no
755   AC_CHECK_FUNC(shl_load,
756    [ac_cv_my_have_shl_load=yes,
757     AC_CHECK_LIB(dld, shl_load,
758      [ac_cv_my_have_shl_load=yes
759       VLC_ADD_LIBS([libvlc],[-ldld])])])
760   if test "${ac_cv_my_have_shl_load}" = "yes"; then
761     AC_DEFINE(HAVE_DL_SHL_LOAD, 1, [Define if you have the shl_load API])
762     ac_cv_have_plugins=yes
763   fi
764 fi
765
766 # Whatever style
767 if test "${ac_cv_have_plugins}" = "no"; then
768   AC_CHECK_LIB(dld, dld_link,
769    [VLC_ADD_LIBS([libvlc],[-ldld])
770     AC_DEFINE(HAVE_DL_DLD_LINK, 1, [Define if you have the GNU dld library])
771     ac_cv_have_plugins=yes])
772 fi
773
774 # Win32 style
775 if test "${ac_cv_have_plugins}" = "no"; then
776   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
777     AC_CHECK_LIB(kernel32, main,
778      [VLC_ADD_LIBS([libvlc],[-lkernel32])
779       AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
780       ac_cv_have_plugins=yes])
781   fi
782 fi
783
784 # WinCE style
785 if test "${ac_cv_have_plugins}" = "no"; then
786   if test "${SYS}" = "mingwce"; then
787     AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
788     ac_cv_have_plugins=yes
789   fi
790 fi
791
792 # BeOS style
793 if test "${ac_cv_have_plugins}" = "no"; then
794   AC_CHECK_HEADERS(image.h)
795   AC_CHECK_FUNCS(load_add_on,
796    [AC_DEFINE(HAVE_DL_BEOS, 1, [Define if you have the BeOS dl])
797     ac_cv_have_plugins=yes])
798 fi
799
800 # Only test for dlopen() if the others didn't work
801 if test "${ac_cv_have_plugins}" = "no"; then
802   AC_CHECK_HEADERS(dlfcn.h sys/dl.h)
803   ac_cv_my_have_dlopen=no
804   AC_CHECK_FUNC(dlopen,
805     ac_cv_my_have_dlopen=yes,
806     AC_CHECK_LIB(dl, dlopen,
807       ac_cv_my_have_dlopen=yes
808       VLC_ADD_LIBS([libvlc realaudio realvideo],[-ldl]),
809       AC_CHECK_LIB(svld, dlopen,
810         ac_cv_my_have_dlopen=yes
811         VLC_ADD_LIBS([libvlc],[-lsvld]))))
812   if test "${ac_cv_my_have_dlopen}" = "yes"; then
813     AC_DEFINE(HAVE_DL_DLOPEN, 1, [Define if you have the dlopen API])
814     ac_cv_have_plugins=yes
815   fi
816 fi
817
818 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
819 dnl Check for pthreads - borrowed from XMMS
820 THREAD_LIB=error
821 if test "${THREAD_LIB}" = "error"; then
822   AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
823 fi
824 if test "${THREAD_LIB}" = "error"; then
825   AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
826 fi
827 if test "${THREAD_LIB}" = "error"; then
828   AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
829 fi
830 if test "${THREAD_LIB}" = "error"; then
831   AC_CHECK_FUNCS(pthread_mutex_lock)
832   THREAD_LIB=""
833 fi
834
835 VLC_ADD_LIBS([libvlc plugin],[${THREAD_LIB}])
836
837 AC_CHECK_LIB(rt, clock_nanosleep, [
838   VLC_ADD_LIBS([libvlc],[-lrt])
839   AC_DEFINE(HAVE_CLOCK_NANOSLEEP, 1, [Define to 1 if you have clock_nanosleep.])
840 ], [
841   dnl HP/UX port
842   AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LIBS([libvlc],[-lrt])])
843 ])
844
845 have_nanosleep=false
846 AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[
847   AC_CHECK_LIB(rt,nanosleep,
848     [VLC_ADD_LIBS([libvlc],[-lrt]) have_nanosleep=:],
849     [AC_CHECK_LIB(posix4,nanosleep,
850         [VLC_ADD_LIBS([libvlc],[-lposix4]) have_nanosleep=:])]
851   )
852 ])
853 if ${have_nanosleep}; then
854   AC_DEFINE(HAVE_NANOSLEEP, 1, [Define if nanosleep is available.])
855 fi
856 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
857
858 dnl Check for misc headers
859 AC_MSG_CHECKING(for strncasecmp in strings.h)
860 AC_EGREP_HEADER(strncasecmp,strings.h,[
861   AC_MSG_RESULT(yes)
862   AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
863             Define if <strings.h> defines strncasecmp.)],[
864   AC_MSG_RESULT(no)])
865
866 dnl Check for headers
867 AC_CHECK_HEADERS(getopt.h strings.h locale.h)
868 AC_CHECK_HEADERS(fcntl.h sys/types.h sys/time.h sys/times.h sys/ioctl.h sys/stat.h xlocale.h)
869 AC_CHECK_HEADERS([arpa/inet.h netinet/in.h netinet/udplite.h sys/eventfd.h])
870 AC_CHECK_HEADERS([net/if.h], [], [],
871   [
872     #include <sys/socket.h>
873   ])
874 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
875 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
876 AC_CHECK_HEADERS([linux/version.h linux/dccp.h])
877 AC_CHECK_HEADERS(syslog.h)
878 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
879
880 AC_HEADER_TIME
881
882 dnl LP64 adn LLP64 architectures had better define ssize_t by themselves...
883 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.])
884 AC_CHECK_TYPE(ssize_t,, [
885   AC_DEFINE(ssize_t, int)
886 ])
887
888 dnl Check for poll
889 AC_SEARCH_LIBS(poll, [poll], [AC_DEFINE(HAVE_POLL, 1, [Define to 1 if the OS is usabl... err, has poll().])], [
890 if test ${SYS} != "mingw32"
891 then
892     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])
893 fi
894 ])
895
896 dnl Check for dirent
897 need_dirent=false
898 AC_CHECK_HEADERS(dirent.h,,[need_dirent=:])
899 AM_CONDITIONAL(BUILD_DIRENT, ${need_dirent})
900
901 dnl Mac OS X and other OSes don't have declaration for nanosleep
902 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
903 AC_MSG_CHECKING(for nanosleep in time.h)
904 AC_EGREP_HEADER(nanosleep,time.h,[
905   AC_MSG_RESULT(yes)
906   AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
907             Define if <time.h> defines nanosleep.)
908 ],[
909   AC_MSG_RESULT(no)
910 ])
911 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
912
913 dnl Make sure we have timespecs
914 AC_MSG_CHECKING(for timespec in sys/time.h)
915 AC_EGREP_HEADER(timespec,sys/time.h,[
916   AC_MSG_RESULT(yes)
917   AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
918             Define if <sys/time.h> defines struct timespec.)
919 ],[
920   AC_MSG_RESULT(no)
921 ])
922
923 dnl Check for threads library
924 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
925 AC_CHECK_HEADERS(pthread.h)
926 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
927
928 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.
929 dnl Make PKG_CONFIG_PATH precious so that it appears in the help and get saved
930 AC_ARG_VAR(PKG_CONFIG_PATH,
931            [Paths where to find .pc not at the default location])
932 PKG_PROG_PKG_CONFIG()
933
934 dnl
935 dnl Check for zlib.h and -lz along with system -lminizip if available
936 dnl 
937 AC_CHECK_HEADERS(zlib.h, [ have_zlib=yes ], [ have_zlib=no ])
938 AM_CONDITIONAL(HAVE_ZLIB, [ test "${have_zlib}" = "yes" ])
939 if test "${have_zlib}" = "yes"
940 then
941   VLC_ADD_LIBS([access_http gme mp4 skins2 sap mkv unzip zip],[-lz])
942   PKG_CHECK_MODULES([MINIZIP], [minizip] , [ have_minizip=yes ], [
943     AC_CHECK_HEADERS([unzip.h], [ 
944       have_minizip=yes
945       MINIZIP_LIBS="-lminizip -lz"
946     ], [
947       have_minizip=no
948       MINIZIP_CFLAGS="-I\\\${top_srcdir}/libs/unzip"
949       MINIZIP_LIBS="\\\${top_builddir}/libs/unzip/libunzip.la"
950     ])
951   ])
952   VLC_ADD_CPPFLAGS([skins2],[$MINIZIP_CFLAGS])
953   VLC_ADD_CFLAGS([zip],[$MINIZIP_CFLAGS])
954   VLC_ADD_LIBS([skins2 zip],[$MINIZIP_LIBS])
955   VLC_ADD_PLUGIN([unzip])
956   VLC_ADD_PLUGIN([zip])
957 fi
958 AM_CONDITIONAL(HAVE_MINIZIP, [ test "${have_minizip}" = "yes" ])
959
960
961 dnl Check for hal
962 AC_ARG_ENABLE(hal,
963   [  --enable-hal            Linux HAL services discovery (default enabled)])
964
965 if test "${enable_hal}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
966 then
967   PKG_CHECK_MODULES(HAL, hal >= 0.5.0,
968     [
969       AC_DEFINE( HAVE_HAL, 1, [Define if you have the HAL library] )
970       VLC_ADD_PLUGIN([hal])
971       VLC_ADD_PLUGIN([probe_hal])
972       VLC_ADD_LIBS([libvlc hal probe_hal],[$HAL_LIBS])
973       VLC_ADD_CFLAGS([libvlc hal probe_hal],[$HAL_CFLAGS])],
974     [AC_MSG_WARN([libhal >= 0.5.0 was not found. Install libhal-dev ?])]
975   )
976 fi
977
978 dnl Check for mtp
979 AC_ARG_ENABLE(mtp,
980   [  --enable-mtp            MTP devices support (default enabled)])
981
982 if test "${enable_mtp}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
983 then
984   PKG_CHECK_MODULES(MTP, libmtp >= 0.3.0,
985     [ VLC_ADD_PLUGIN([mtp])
986       VLC_ADD_PLUGIN([access_mtp])
987       VLC_ADD_LIBS([mtp access_mtp],[$MTP_LIBS])
988       VLC_ADD_CFLAGS([mtp access_mtp],[$MTP_CFLAGS])],
989        [AC_MSG_WARN(MTP library not found)]
990   )
991 fi
992
993 dnl Check for dbus
994 AC_ARG_ENABLE(dbus,
995   [  --enable-dbus           Linux D-BUS message bus system (default enabled)])
996 case "${SYS}" in
997     linux*|*bsd*)
998 if test "${enable_dbus}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
999 then
1000   dnl api stable dbus
1001   PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.0.0,
1002     [ AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
1003       VLC_ADD_LIBS([screensaver libvlc],[$DBUS_LIBS])
1004       VLC_ADD_CFLAGS([screensaver libvlc],[$DBUS_CFLAGS])
1005       dnl Check for dbus control interface
1006         AC_ARG_ENABLE(dbus-control, [  --disable-dbus-control  D-BUS control interface (default enabled)])
1007         if test "${enable_dbus_control}" != "no"
1008         then
1009           VLC_ADD_PLUGIN([dbus])
1010           VLC_ADD_LIBS([dbus],[$DBUS_LIBS])
1011           VLC_ADD_CFLAGS([dbus],[$DBUS_CFLAGS])
1012         fi
1013       dnl Check for Telepathy
1014         AC_ARG_ENABLE(telepathy,
1015           AS_HELP_STRING([--enable-telepathy],[Telepathy Presence plugin through DBus(default enabled)]))
1016         if test "${enable_telepathy}" != "no"; then
1017           VLC_ADD_PLUGIN([telepathy])
1018           VLC_ADD_LIBS([telepathy],[$DBUS_LIBS])
1019           VLC_ADD_CFLAGS([telepathy],[$DBUS_CFLAGS])
1020         fi
1021         dnl Power Management Inhibiter
1022         VLC_ADD_PLUGIN([inhibit])
1023         VLC_ADD_LIBS([inhibit],[$DBUS_LIBS])
1024         VLC_ADD_CFLAGS([inhibit],[$DBUS_CFLAGS])
1025     ],
1026     [AC_MSG_ERROR([Couldn't find DBus >= 1.0.0, install libdbus-dev ?])]
1027   )
1028 fi
1029 ;;
1030 esac
1031
1032 dnl Build the gtk_main plugins?
1033 NEED_GTK_MAIN=no
1034 NEED_GNOME_MAIN=no
1035 NEED_GTK2_MAIN=no
1036 NEED_GNOME2_MAIN=no
1037
1038 dnl build the qte plugin ?
1039 NEED_QTE_MAIN=no
1040
1041 dnl Check for ntohl, etc.
1042 AC_CACHE_CHECK([for ntohl in sys/param.h],
1043     [ac_cv_c_ntohl_sys_param_h],
1044     [CFLAGS="${CFLAGS_save} -Wall -Werror"
1045      AC_TRY_COMPILE([#include <sys/param.h>],
1046         [int meuh; ntohl(meuh);],
1047         ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
1048 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
1049     AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
1050 fi
1051 CFLAGS="${CFLAGS_save}"
1052
1053 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])
1054 RDC_PROG_CC_FLAGS_IFELSE([-pipe])
1055
1056 dnl Check for various optimization flags
1057 AC_CACHE_CHECK([if \$CC accepts -Os],
1058     [ac_cv_c_os],
1059     [CFLAGS="${CFLAGS_save} -Os"
1060      AC_TRY_COMPILE([],,ac_cv_c_os=yes, ac_cv_c_os=no)])
1061 if test "${ac_cv_c_os}" != "no"; then
1062     CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -Os"
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         if test "${ac_cv_c_o3}" = "no"; then
1070             CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -O"
1071         fi
1072     fi
1073 fi
1074
1075 AC_CACHE_CHECK([if \$CC accepts -O4],
1076     [ac_cv_c_o4],
1077     [CFLAGS="${CFLAGS_save} -O4"
1078      AC_TRY_COMPILE([],,ac_cv_c_o4=yes, ac_cv_c_o4=no)])
1079 if test "${ac_cv_c_o4}" != "no" -a "x${enable_debug}" = "xno"; then
1080     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O4"
1081 else
1082     AC_CACHE_CHECK([if \$CC accepts -O3],
1083         [ac_cv_c_o3],
1084         [CFLAGS="${CFLAGS_save} -O3"
1085          AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
1086     if test "${ac_cv_c_o3}" != "no" -a "x${enable_debug}" = "xno"; then
1087         CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O3"
1088     else
1089         AC_CACHE_CHECK([if \$CC accepts -O2],
1090             [ac_cv_c_o2],
1091             [CFLAGS="${CFLAGS_save} -O2"
1092              AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
1093         if test "${ac_cv_c_o2}" != "no"; then
1094             CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O2"
1095         else
1096             AC_CACHE_CHECK([if \$CC accepts -O],
1097                 [ac_cv_c_o],
1098                 [CFLAGS="${CFLAGS_save} -O"
1099                  AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
1100             if test "${ac_cv_c_o}" != "no"; then
1101                 CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O"
1102             fi
1103         fi
1104     fi
1105 fi
1106
1107 AC_CACHE_CHECK([if \$CC accepts -O0],
1108     [ac_cv_c_o0],
1109     [CFLAGS="${CFLAGS_save} -O0"
1110      AC_TRY_COMPILE([],,ac_cv_c_o0=yes, ac_cv_c_o0=no)])
1111 if test "${ac_cv_c_o0}" != "no"; then
1112     CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O0"
1113 fi
1114
1115 dnl Check for -ffast-math
1116 AC_CACHE_CHECK([if \$CC accepts -ffast-math],
1117     [ac_cv_c_fast_math],
1118     [CFLAGS="${CFLAGS_save} -ffast-math"
1119      AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
1120 if test "${ac_cv_c_fast_math}" != "no"; then
1121     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -ffast-math"
1122 fi
1123
1124 dnl Check for -funroll-loops
1125 dnl Disabled on BeOS because BeOS' gcc is buggy and may crash with it
1126 if test "${SYS}" != "beos"
1127 then
1128   AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
1129       [ac_cv_c_unroll_loops],
1130       [CFLAGS="${CFLAGS_save} -funroll-loops"
1131        AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
1132   if test "${ac_cv_c_unroll_loops}" != "no"; then
1133       CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -funroll-loops"
1134   fi
1135 fi
1136
1137 dnl Check for -fomit-frame-pointer
1138 AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
1139     [ac_cv_c_omit_frame_pointer],
1140     [CFLAGS="${CFLAGS_save} -fomit-frame-pointer"
1141      AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
1142 if test "${ac_cv_c_omit_frame_pointer}" != "no"; then
1143  if test "${SYS}" != "darwin"; then
1144     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
1145  else
1146     dnl On darwin we explicitely disable it.
1147     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fno-omit-frame-pointer"
1148  fi
1149 fi
1150
1151 dnl Check for Darwin plugin linking flags
1152 AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error],
1153     [ac_cv_ld_darwin],
1154     [CFLAGS="${CFLAGS_save} -bundle -undefined error"
1155      AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
1156 if test "${ac_cv_ld_darwin}" != "no"; then
1157     VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
1158 fi
1159
1160 dnl Checks for __attribute__(aligned()) directive
1161 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1162     [ac_cv_c_attribute_aligned],
1163     [ac_cv_c_attribute_aligned=0
1164         CFLAGS="${CFLAGS_save} -Werror"
1165     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1166         AC_TRY_COMPILE([],
1167         [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1168         [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1169     done
1170         CFLAGS="${CFLAGS_save}"])
1171 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1172     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1173         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1174 fi
1175
1176 dnl Check for __attribute__((packed))
1177 AC_CACHE_CHECK([for __attribute__((packed))],
1178   [ac_cv_c_attribute_packed],
1179   [ac_cv_c_attribute_packed=no
1180    AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b;],
1181                     [ac_cv_c_attribute_packed=yes])])
1182 if test "${ac_cv_c_attribute_packed}" != "no"; then
1183   AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1184 fi
1185
1186 dnl
1187 dnl  Check the CPU
1188 dnl
1189 case "${host_cpu}" in
1190   "")
1191     ARCH=unknown
1192     ;;
1193   *)
1194     ARCH="${host_cpu}"
1195     ;;
1196 esac
1197
1198 dnl Check for backtrace() support
1199 AC_CHECK_HEADERS(execinfo.h)
1200 AC_CHECK_FUNCS(backtrace)
1201
1202 dnl
1203 dnl  Enable profiling
1204 dnl
1205 AC_ARG_ENABLE(gprof,
1206 [  --enable-gprof          gprof profiling (default disabled)])
1207 AC_ARG_ENABLE(cprof,
1208 [  --enable-cprof          cprof profiling (default disabled)])
1209 test "${enable_gprof}" != "yes" && enable_gprof="no"
1210 test "${enable_cprof}" != "yes" && enable_cprof="no"
1211
1212 dnl
1213 dnl  default modules
1214 dnl
1215 dnl Video filters:
1216 VLC_ADD_PLUGIN([deinterlace])
1217 VLC_ADD_PLUGIN([yuvp])
1218 VLC_ADD_PLUGIN([invert])
1219 VLC_ADD_PLUGIN([adjust])
1220 VLC_ADD_PLUGIN([transform])
1221 VLC_ADD_PLUGIN([wave])
1222 VLC_ADD_PLUGIN([ripple])
1223 VLC_ADD_PLUGIN([psychedelic])
1224 VLC_ADD_PLUGIN([gradient])
1225 VLC_ADD_PLUGIN([motionblur])
1226 VLC_ADD_PLUGIN([rv32])
1227 VLC_ADD_PLUGIN([rotate])
1228 VLC_ADD_PLUGIN([noise])
1229 VLC_ADD_PLUGIN([grain])
1230 VLC_ADD_PLUGIN([extract])
1231 VLC_ADD_PLUGIN([sharpen])
1232 VLC_ADD_PLUGIN([croppadd])
1233 VLC_ADD_PLUGIN([canvas])
1234 VLC_ADD_PLUGIN([blendbench])
1235 VLC_ADD_PLUGIN([blend])
1236 VLC_ADD_PLUGIN([scale])
1237 VLC_ADD_PLUGIN([vmem])
1238 VLC_ADD_PLUGIN([logo])
1239 VLC_ADD_PLUGIN([magnify])
1240 VLC_ADD_PLUGIN([puzzle])
1241 VLC_ADD_PLUGIN([colorthres])
1242 VLC_ADD_PLUGIN([scene])
1243 VLC_ADD_PLUGIN([yuv])
1244
1245 ALIASES="${ALIASES} cvlc"
1246
1247 dnl
1248 dnl default modules that need g++
1249 dnl
1250 AC_LANG_PUSH(C++)
1251 VLC_ADD_PLUGIN([spatializer])
1252 AC_LANG_POP(C++)
1253
1254 if test "${SYS}" != "mingwce"; then
1255   VLC_ADD_PLUGIN([gestures])
1256   VLC_ADD_PLUGIN([rc])
1257   VLC_ADD_PLUGIN([hotkeys])
1258   VLC_ADD_PLUGIN([showintf])
1259   VLC_ADD_PLUGIN([marq])
1260   VLC_ADD_PLUGIN([podcast])
1261   VLC_ADD_PLUGIN([shout])
1262   VLC_ADD_PLUGIN([sap])
1263   VLC_ADD_PLUGIN([fake])
1264   VLC_ADD_PLUGIN([folder])
1265   VLC_ADD_PLUGIN([rss])
1266   VLC_ADD_PLUGIN([mosaic])
1267   VLC_ADD_PLUGIN([wall])
1268   VLC_ADD_PLUGIN([motiondetect])
1269   VLC_ADD_PLUGIN([clone])
1270   VLC_ADD_PLUGIN([crop])
1271   VLC_ADD_PLUGIN([erase])
1272   VLC_ADD_PLUGIN([bluescreen])
1273   VLC_ADD_PLUGIN([alphamask])
1274   VLC_ADD_PLUGIN([gaussianblur])
1275   VLC_ADD_PLUGIN([i420_yuy2])
1276   VLC_ADD_PLUGIN([i422_yuy2])
1277   VLC_ADD_PLUGIN([i420_ymga])
1278   VLC_ADD_PLUGIN([i422_i420])
1279   VLC_ADD_PLUGIN([yuy2_i422])
1280   VLC_ADD_PLUGIN([yuy2_i420])
1281   VLC_ADD_PLUGIN([chain])
1282   VLC_ADD_PLUGIN([aout_file])
1283   VLC_ADD_PLUGIN([linear_resampler])
1284   VLC_ADD_PLUGIN([bandlimited_resampler])
1285   VLC_ADD_PLUGIN([float32_mixer])
1286   VLC_ADD_PLUGIN([spdif_mixer])
1287   VLC_ADD_PLUGIN([simple_channel_mixer])
1288   VLC_ADD_PLUGIN([dolby_surround_decoder])
1289   VLC_ADD_PLUGIN([headphone_channel_mixer])
1290   VLC_ADD_PLUGIN([normvol])
1291   VLC_ADD_PLUGIN([equalizer])
1292   VLC_ADD_PLUGIN([param_eq])
1293   VLC_ADD_PLUGIN([scaletempo])
1294   VLC_ADD_PLUGIN([converter_float])
1295   VLC_ADD_PLUGIN([a52tospdif])
1296   VLC_ADD_PLUGIN([dtstospdif])
1297   VLC_ADD_PLUGIN([audio_format])
1298   ALIASES="${ALIASES} rvlc"
1299 fi
1300
1301 if test "${SYS}" = "mingwce"; then
1302   VLC_ADD_PLUGIN([chain])
1303   VLC_ADD_PLUGIN([aout_file])
1304   VLC_ADD_PLUGIN([linear_resampler])
1305   VLC_ADD_PLUGIN([bandlimited_resampler])
1306   VLC_ADD_PLUGIN([float32_mixer])
1307   VLC_ADD_PLUGIN([spdif_mixer])
1308   VLC_ADD_PLUGIN([simple_channel_mixer])
1309   VLC_ADD_PLUGIN([headphone_channel_mixer])
1310   VLC_ADD_PLUGIN([normvol])
1311   VLC_ADD_PLUGIN([converter_float])
1312   VLC_ADD_PLUGIN([a52tospdif])
1313   VLC_ADD_PLUGIN([dtstospdif])
1314   VLC_ADD_PLUGIN([audio_format])
1315   VLC_ADD_PLUGIN([i420_yuy2])
1316   VLC_ADD_PLUGIN([i422_yuy2])
1317   VLC_ADD_PLUGIN([i420_ymga])
1318   VLC_ADD_PLUGIN([i422_i420])
1319   VLC_ADD_PLUGIN([yuy2_i422])
1320   VLC_ADD_PLUGIN([yuy2_i420])
1321 fi
1322
1323 dnl
1324 dnl Some plugins aren't useful on some platforms
1325 dnl
1326 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1327     VLC_ADD_PLUGIN([screensaver])
1328     VLC_ADD_PLUGIN([motion])
1329     VLC_ADD_PLUGIN([dynamicoverlay])
1330     VLC_ADD_PLUGIN([signals])
1331 elif test "${SYS}" != "mingwce"; then
1332     VLC_ADD_PLUGIN([ntservice])
1333     VLC_ADD_PLUGIN([access_smb])
1334     VLC_ADD_PLUGIN([dmo])
1335     VLC_ADD_PLUGIN([msn])
1336     VLC_ADD_LIBS([dmo],[-lole32 -luuid])
1337     VLC_ADD_PLUGIN([globalhotkeys])
1338 else
1339     VLC_ADD_PLUGIN([win32text])
1340 fi
1341 if test "${SYS}" = "darwin"; then
1342     VLC_ADD_PLUGIN([quartztext])
1343     VLC_ADD_LDFLAGS([quartztext],[-Wl,-framework,Carbon,-framework,ApplicationServices])
1344 fi
1345
1346 dnl
1347 dnl  Accelerated modules
1348 dnl
1349 AC_ARG_WITH(,[])
1350 AC_ARG_WITH(,[Optimization options:])
1351
1352 dnl  Check for fully working MMX intrinsics
1353 dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a
1354 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1355 AC_ARG_ENABLE(mmx,
1356 [  --disable-mmx           disable MMX optimizations (default auto)],,[
1357   case "${host_cpu}" in
1358     i?86|x86_64)
1359       enable_mmx="yes"
1360       ;;
1361     *)
1362       enable_mmx="no"
1363       ;;
1364   esac
1365 ])
1366 AS_IF([test "${enable_mmx}" != "no"], [
1367   ARCH="${ARCH} mmx"
1368
1369   AC_CACHE_CHECK([if $CC groks MMX intrinsics],
1370     [ac_cv_c_mmx_intrinsics],
1371     [CFLAGS="${CFLAGS_save} -O -mmmx"
1372      AC_TRY_COMPILE([#include <mmintrin.h>
1373                      #include <stdint.h>
1374                      uint64_t frobzor;],
1375                     [__m64 a, b, c;
1376                      a = b = c = (__m64)frobzor;
1377                      a = _mm_slli_pi16(a, 3);
1378                      a = _mm_adds_pi16(a, b);
1379                      c = _mm_srli_pi16(c, 8);
1380                      c = _mm_slli_pi16(c, 3);
1381                      b = _mm_adds_pi16(b, c);
1382                      a = _mm_unpacklo_pi8(a, b);
1383                      frobzor = (uint64_t)a;],
1384                     [ac_cv_c_mmx_intrinsics=yes],
1385                     [ac_cv_c_mmx_intrinsics=no])])
1386   AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1387     AC_DEFINE(HAVE_MMX_INTRINSICS, 1,
1388               [Define to 1 if MMX intrinsics are available.])
1389     VLC_ADD_CFLAGS([memcpymmx i420_rgb_mmx i420_yuy2_mmx i422_yuy2_mmx i420_ymga_mmx],[-mmmx])
1390   ])
1391
1392   AC_CACHE_CHECK([if $CC groks MMX inline assembly],
1393     [ac_cv_mmx_inline],
1394     [CFLAGS="${CFLAGS_save}"
1395      AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
1396                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
1397   AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1398     AC_DEFINE(CAN_COMPILE_MMX, 1,
1399               [Define to 1 inline MMX assembly is available.])
1400     VLC_ADD_PLUGIN([memcpymmx])
1401     VLC_ADD_PLUGIN([i420_rgb_mmx])
1402     VLC_ADD_PLUGIN([i420_yuy2_mmx])
1403     VLC_ADD_PLUGIN([i422_yuy2_mmx])
1404     VLC_ADD_PLUGIN([i420_ymga_mmx])
1405   ])
1406
1407   AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1408     [ac_cv_mmxext_inline],
1409     [CFLAGS="${CFLAGS_save}"
1410      AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
1411                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
1412   AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1413     AC_DEFINE(CAN_COMPILE_MMXEXT, 1,
1414               [Define to 1 if MMX EXT inline assembly is available.])
1415     VLC_ADD_PLUGIN([memcpymmxext])
1416   ])
1417 ])
1418
1419 dnl  Check for fully workin SSE2 intrinsics
1420 dnl  We need support for -mmmx, we need <emmintrin.h>, and we also need a
1421 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1422 AC_ARG_ENABLE(sse,
1423 [  --disable-sse           disable SSE (1 and 2) optimizations (default auto)]
1424 ,, [
1425   case "${host_cpu}" in
1426     i686|x86_64)
1427       enable_sse=yes
1428       ;;
1429     *)
1430       enable_sse=no
1431       ;;
1432   esac
1433 ])
1434 AS_IF([test "${enable_sse}" != "no"], [
1435   ARCH="${ARCH} sse sse2"
1436
1437   AC_CACHE_CHECK([if $CC groks SSE2 intrinsics],
1438     [ac_cv_c_sse2_intrinsics],
1439     [CFLAGS="${CFLAGS_save} -O -msse2"
1440      AC_TRY_COMPILE([#include <emmintrin.h>
1441                      #include <stdint.h>
1442                      uint64_t frobzor;],
1443                     [__m128i a, b, c;
1444                      a = b = c = _mm_set1_epi64((__m64)frobzor);
1445                      a = _mm_slli_epi16(a, 3);
1446                      a = _mm_adds_epi16(a, b);
1447                      c = _mm_srli_epi16(c, 8);
1448                      c = _mm_slli_epi16(c, 3);
1449                      b = _mm_adds_epi16(b, c);
1450                      a = _mm_unpacklo_epi8(a, b);
1451                      frobzor = (uint64_t)_mm_movepi64_pi64(a);],
1452                     [ac_cv_c_sse2_intrinsics=yes],
1453                     [ac_cv_c_sse2_intrinsics=no])])
1454   AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1455     AC_DEFINE(HAVE_SSE2_INTRINSICS, 1,
1456               [Define to 1 if SSE2 intrinsics are available.])
1457     VLC_ADD_CFLAGS([i420_rgb_sse2 i420_yuy2_sse2 i422_yuy2_sse2],[-msse2])
1458   ])
1459
1460   AC_CACHE_CHECK([if $CC groks SSE inline assembly],
1461     [ac_cv_sse_inline],
1462     [CFLAGS="${CFLAGS_save}"
1463      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
1464                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
1465   AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1466     AC_DEFINE(CAN_COMPILE_SSE, 1,
1467               [Define to 1 if SSE inline assembly is available.])
1468   ])
1469
1470   AC_CACHE_CHECK([if $CC groks SSE2 inline assembly],
1471     [ac_cv_sse2_inline],
1472     [CFLAGS="${CFLAGS_save}"
1473      AC_TRY_COMPILE(,[void *p;asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p));],
1474                     ac_cv_sse2_inline=yes, ac_cv_sse2_inline=no)])
1475   AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1476     AC_DEFINE(CAN_COMPILE_SSE2, 1,
1477               [Define to 1 if SSE2 inline assembly is available.])
1478     VLC_ADD_PLUGIN([i420_rgb_sse2])
1479     VLC_ADD_PLUGIN([i420_yuy2_sse2])
1480     VLC_ADD_PLUGIN([i422_yuy2_sse2])
1481   ])
1482 ])
1483
1484 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly],
1485     [ac_cv_3dnow_inline],
1486     [CFLAGS="${CFLAGS_save}"
1487      AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
1488                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
1489 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1490   AC_DEFINE(CAN_COMPILE_3DNOW, 1,
1491             [Define to 1 if 3D Now! inline assembly is available.])
1492   VLC_ADD_PLUGIN([memcpy3dn])
1493 ])
1494
1495 AC_ARG_ENABLE(altivec,
1496 [  --disable-altivec       disable AltiVec optimizations (default auto)],, [
1497   AS_IF([test "${host_cpu}" = "powerpc"],
1498         [enable_altivec=yes], [enable_altivec=no])
1499 ])
1500 AS_IF([test "${enable_altivec}" = "yes"], [
1501   ARCH="${ARCH} altivec";
1502   AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1503     [ac_cv_altivec_inline],
1504     [CFLAGS="${CFLAGS_save}"
1505      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1506          ac_cv_altivec_inline="yes",
1507          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
1508           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1509             [ac_cv_altivec_inline="-Wa,-m7400"],
1510             ac_cv_altivec_inline=no)
1511          ])])
1512   AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1513     AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1514               [Define to 1 if AltiVec inline assembly is available.])
1515     AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1516       VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
1517       VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
1518       VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1519       VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1520       VLC_ADD_CFLAGS([libvlc],[${ac_cv_altivec_inline}])
1521     ])
1522     VLC_ADD_PLUGIN([memcpyaltivec])
1523     VLC_ADD_PLUGIN([i420_yuy2_altivec])
1524   ])
1525
1526 dnl The AltiVec C extensions
1527 dnl
1528 dnl There are several possible cases:
1529 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1530 dnl                      need <altivec.h>
1531 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1532 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1533 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1534 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1535 dnl - Others: test should fail
1536   AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1537   [ac_cv_c_altivec],
1538   [# OS X/PPC test (gcc 4.x)
1539    CFLAGS="${CFLAGS_save} -mpim-altivec -force_cpusubtype_ALL"
1540    AC_TRY_COMPILE([vector unsigned char foo;],
1541      [vec_ld(0, (unsigned char *)0);],
1542      [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1543      [# OS X/PPC test (gcc 3.x)
1544       CFLAGS="${CFLAGS_save} -faltivec"
1545       AC_TRY_COMPILE([vector unsigned char foo;],
1546         [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1547         [ac_cv_c_altivec="-faltivec"],
1548         dnl Below this are the Linux tests
1549         [# Linux/PPC test (gcc 4.x)
1550          CFLAGS="${CFLAGS_save} -maltivec"
1551          AC_TRY_COMPILE([#include <altivec.h>],
1552            [vec_ld(0, (unsigned char *)0);],
1553            [ac_cv_c_altivec="-maltivec"],
1554            [# Linux/PPC test (gcc 3.3)
1555             CFLAGS="${CFLAGS_save} -maltivec -mabi=altivec"
1556             AC_TRY_COMPILE([#include <altivec.h>],
1557               [vec_ld(0, (unsigned char *)0);],
1558               [ac_cv_c_altivec=""
1559                ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1560               [# Linux/PPC test (gcc 3.3)
1561                CFLAGS="${CFLAGS_save} -fvec"
1562                AC_TRY_COMPILE([#include <altivec.h>],
1563                  [vec_ld(0, (unsigned char *)0);],
1564                  [ac_cv_c_altivec="-fvec"],
1565                  [ac_cv_c_altivec=no])
1566               ])
1567            ])
1568         ])
1569      ])
1570    CFLAGS="${CFLAGS_save}"
1571   ])
1572   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1573     CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
1574   ])
1575
1576   AC_CHECK_HEADERS(altivec.h)
1577   CPPFLAGS="${CPPFLAGS_save}"
1578
1579   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1580     AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1,
1581               [Define to 1 if C AltiVec extensions are available.])
1582     VLC_ADD_CFLAGS([libvlc],[${ac_cv_c_altivec}])
1583     VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
1584     VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1585     VLC_ADD_PLUGIN([memcpyaltivec])
1586     VLC_ADD_PLUGIN([i420_yuy2_altivec])
1587   ])
1588
1589   AC_CACHE_CHECK([if linker needs -framework vecLib],
1590     [ac_cv_ld_altivec],
1591     [LDFLAGS="${LDFLAGS_vlc} -Wl,-framework,vecLib"
1592      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
1593      LDFLAGS="${LDFLAGS_save}"
1594     ])
1595   AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1596     VLC_ADD_LDFLAGS([libvlc idctaltivec motionaltivec memcpyaltivec],[-Wl,-framework,vecLib])
1597   ])
1598 ])
1599
1600 dnl
1601 dnl  Special arch tuning
1602 dnl
1603 AC_ARG_WITH(tuning,
1604 [  --with-tuning=ARCH      enable special tuning for an architecture
1605                           (default Pentium 2 on IA-32 and G4 on PPC)])
1606 if test -n "${with_tuning}"; then
1607     if test "${with_tuning}" != "no"; then
1608         CFLAGS_TUNING="-mtune=${with_tuning}"
1609     fi
1610 else
1611     if test "${SYS}" = "darwin" -a "${host_cpu}" != "powerpc"; then
1612         CFLAGS_TUNING="-march=pentium-m -mtune=prescott"
1613     elif test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "i386"; then
1614         CFLAGS_TUNING="-mtune=pentium2"
1615     elif test "${host_cpu}" = "x86_64"; then
1616         CFLAGS_TUNING="-mtune=athlon64"
1617     elif test "${host_cpu}" = "powerpc"; then
1618         CFLAGS_TUNING="-mtune=G4";
1619     fi
1620 fi
1621
1622 dnl NOTE: this can't be cached cleanly
1623 AS_IF([test "${CFLAGS_TUNING}"],
1624    [CFLAGS_save="${CFLAGS}"
1625     CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1626
1627     AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1628     AC_COMPILE_IFELSE([ ],
1629                       [tuning="yes"],
1630                       [CFLAGS_TUNING=""; tuning="no"
1631                        AS_IF([test "${with_tuning}"],
1632                              [AC_MSG_ERROR([requested tuning not supported])])])
1633
1634     AC_MSG_RESULT([$tuning])
1635     CFLAGS="${CFLAGS_save}"
1636 ])
1637
1638 dnl
1639 dnl  Memory usage
1640 dnl
1641 AC_ARG_ENABLE(optimize-memory,
1642 [  --enable-optimize-memory optimize memory usage over performance])
1643 if test "${enable_optimize_memory}" = "yes"; then
1644   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1645 fi
1646
1647 dnl
1648 dnl  Enable/disable optimizations
1649 dnl
1650 AC_ARG_ENABLE(optimizations,
1651 [  --disable-optimizations disable compiler optimizations (default enabled)])
1652 if test "${enable_optimizations}" != "no"; then
1653    if test "${enable_optimize_memory}" = "yes"; then
1654       enable_optimizations="size"
1655    else
1656       enable_optimizations="speed"
1657    fi
1658 fi
1659
1660 dnl
1661 dnl  Debugging mode
1662 dnl
1663 AC_ARG_ENABLE(debug,
1664 [  --enable-debug          debug mode (default disabled)])
1665 test "${enable_debug}" != "yes" && enable_debug="no"
1666 AH_TEMPLATE(NDEBUG,
1667             [Define to 1 if debug code should NOT be compiled])
1668 AS_IF([test "x${enable_debug}" = "xno"], [
1669   AC_DEFINE(NDEBUG)
1670 ], [
1671   AC_CHECK_HEADERS([valgrind/valgrind.h])
1672 ])
1673
1674 dnl
1675 dnl Allow runing as root (usefull for people runing on embedded platforms)
1676 dnl
1677 AC_ARG_ENABLE(run-as-root,
1678 [  --enable-run-as-root    allow runing VLC as root (default disabled)])
1679 AS_IF([test "${enable_run_as_root}" = "yes"],[
1680     AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1681               [Define to 1 to allow runing VLC as root (uid 0).])
1682 ])
1683
1684 dnl
1685 dnl  Test coverage
1686 dnl
1687 AC_ARG_ENABLE(coverage,
1688         [  --enable-coverage       build for test coverage (default disabled)],,
1689         [enable_coverage="no"])
1690 AS_IF([test "${enable_coverage}" != "no"], [
1691         CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
1692         CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
1693         LDFLAGS="-lgcov ${LDFLAGS}"
1694         dnl ugly...
1695         CFLAGS_save="${CFLAGS}"
1696         CXXFLAGS_save="${CXXFLAGS}"
1697         LDFLAGS_save="${LDFLAGS}"
1698 ])
1699
1700 dnl
1701 dnl  Enable release-specific flags
1702 dnl
1703 AC_ARG_ENABLE(release,
1704 [  --enable-release        activate extra optimizations (default disabled)])
1705 test "${enable_release}" != "yes" && enable_release="no"
1706
1707 dnl
1708 dnl Stream output
1709 dnl
1710 AC_ARG_ENABLE(sout,
1711   [  --enable-sout           Stream output modules (default enabled)])
1712 AS_IF([test "${enable_sout}" != "no"], [
1713   AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1714 ])
1715 AM_CONDITIONAL(ENABLE_SOUT, [test "${enable_sout}" != "no"])
1716
1717 AC_ARG_ENABLE(switcher,
1718   [  --enable-switcher       Stream-out switcher plugin (default disabled)])
1719
1720 dnl Check for libshout
1721 AC_ARG_ENABLE(shout,
1722   [  --enable-shout          libshout output plugin (default disabled)])
1723 if test "${enable_shout}" = "yes"; then
1724   PKG_CHECK_MODULES(SHOUT, shout >= 2.1,
1725     [AC_DEFINE(HAVE_SHOUT, 1, [Define if you have the libshout library])
1726      VLC_ADD_PLUGIN([access_output_shout])
1727      VLC_ADD_LIBS([access_output_shout],[$SHOUT_LIBS])
1728      VLC_ADD_CFLAGS([access_output_shout],[$SHOUT_CFLAGS])],
1729     [AC_MSG_WARN(libshout library not found)])
1730 fi
1731
1732 dnl Lua modules
1733 AC_ARG_ENABLE(lua,
1734   AS_HELP_STRING([--enable-lua],[lua playlist, metafetcher and interface
1735                   plugins (default enabled)]))
1736 if test "${enable_lua}" != "no"
1737 then
1738   PKG_CHECK_MODULES(LUA, lua5.1,
1739     [ have_lua=yes ],
1740     [
1741     AC_MSG_WARN([lua5.1 not found, trying lua >= 5.1 instead])
1742     PKG_CHECK_MODULES(LUA, lua >= 5.1,
1743       [ have_lua=yes ],
1744       [
1745         have_lua=yes
1746         AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1747           [],
1748           [ have_lua=no ] )
1749         AC_CHECK_LIB(  lua5.1 , luaL_newstate,
1750           [LUA_LIBS="-llua5.1"],
1751           AC_CHECK_LIB( lua51 , luaL_newstate,
1752             [LUA_LIBS="-llua51"],
1753             AC_CHECK_LIB( lua , luaL_newstate,
1754               [LUA_LIBS="-llua"],
1755               [ have_lua=no
1756                 AC_MSG_WARN([lua >= 5.1 not found!])
1757               ])
1758           )
1759         )
1760       ])
1761     ])
1762   if test "x${have_lua}" = "xyes" ;  then
1763      AC_DEFINE(HAVE_LUA, 1, [Define if you have the lua library])
1764      VLC_ADD_LIBS([lua],[$LUA_LIBS])
1765      VLC_ADD_CFLAGS([lua],[$LUA_CFLAGS])
1766   fi
1767 fi
1768 AM_CONDITIONAL(BUILD_LUA, [test "${have_lua}" = "yes"])
1769
1770 dnl
1771 dnl HTTP daemon
1772 dnl
1773 AC_ARG_ENABLE(httpd,
1774   [  --enable-httpd          HTTP daemon (default enabled)])
1775 if test "${enable_httpd}" != "no"
1776 then
1777   VLC_ADD_PLUGIN([http])
1778   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
1779 fi
1780 AM_CONDITIONAL(BUILD_HTTPD, [test "${enable_httpd}" != "no"])
1781
1782 dnl
1783 dnl libproxy support
1784 dnl
1785 AC_ARG_ENABLE(libproxy,
1786   [  --enable-libproxy       libproxy support (default auto)])
1787 AS_IF([test "${enable_libproxy}" != "no"], [
1788   PKG_CHECK_MODULES(LIBPROXY, libproxy-1.0, [
1789     AC_DEFINE(HAVE_LIBPROXY, 1, [Define if libproxy is available])
1790     VLC_ADD_CFLAGS([access_http],[$LIBPROXY_CFLAGS])
1791     VLC_ADD_LIBS([access_http],[$LIBPROXY_LIBS])
1792   ], [
1793     AS_IF([test "x${enable_libproxy}" != "x"], [
1794       AC_MSG_ERROR([libproxy could not be found on your system])
1795     ])
1796   ])
1797 ])
1798
1799 dnl
1800 dnl VideoLAN manager
1801 dnl
1802 AC_ARG_ENABLE(vlm,
1803   [  --enable-vlm            VideoLAN manager (default enabled)],,
1804   [enable_vlm="${enable_sout}"])
1805 AS_IF([test "${enable_vlm}" != "no"], [
1806   AS_IF([test "${enable_sout}" = "no"], [
1807     AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1808   ])
1809   AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1810   VLC_ADD_PLUGIN([telnet])
1811 ])
1812 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1813
1814 dnl
1815 dnl Growl notification plugin
1816 dnl
1817 AC_ARG_ENABLE(growl,
1818   [  --enable-growl          growl notification plugin (default disabled)],,
1819   [enable_growl=no])
1820 AS_IF([test "${enable_growl}" != "no"], [
1821     VLC_ADD_PLUGIN([growl_udp])
1822     AC_CHECK_HEADERS(Growl/GrowlDefines.h, [
1823       VLC_ADD_PLUGIN([growl])
1824       VLC_ADD_LDFLAGS([growl], [-Wl,-framework,Growl,-framework,AppKit])
1825     ])
1826   ]
1827 )
1828
1829 dnl
1830 dnl Libnotify notification plugin
1831 dnl
1832
1833 AC_ARG_ENABLE(notify,
1834   [  --enable-notify         libnotify notification plugin (default enabled)])
1835 AS_IF([test "${enable_notify}" != "no" -a "${SYS}" != "mingw32"], [
1836     PKG_CHECK_MODULES(NOTIFY, libnotify,
1837       [
1838         VLC_ADD_PLUGIN([notify])
1839         VLC_ADD_CFLAGS(notify, [$NOTIFY_CFLAGS])
1840         VLC_ADD_LIBS(notify, [$NOTIFY_LIBS])
1841       ],[
1842     AS_IF([test "${enable_notify}" = "yes"],[
1843         AC_MSG_WARN( libnotify not found) ])
1844       ])
1845   ])
1846
1847 dnl
1848 dnl Audioscrobbler plugin
1849 dnl
1850
1851 AC_ARG_ENABLE(audioscrobbler,
1852   [  --disable-audioscrobbler Last.fm submission plugin (default enabled)])
1853 AS_IF([test "${enable_audioscrobbler}" != "no"], [
1854         VLC_ADD_PLUGIN([audioscrobbler])
1855   ])
1856
1857 dnl
1858 dnl Taglibplugin
1859 dnl
1860 AC_ARG_ENABLE(taglib,
1861   [  --disable-taglib        Taglib support (default enabled) ])
1862   AS_IF([test "${enable_taglib}" != "no"],[
1863     PKG_CHECK_MODULES(TAGLIB, taglib >= 1.5,
1864       [ AC_DEFINE( HAVE_TAGLIB, 1, [Define if you have taglib plugin built] )
1865         VLC_ADD_PLUGIN([taglib])
1866         VLC_ADD_LIBS([taglib],[$TAGLIB_LIBS -lz])
1867        VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS]) ],
1868       [AC_MSG_WARN(TagLib library not found)])
1869   ])
1870
1871
1872 dnl
1873 dnl  Input plugins
1874 dnl
1875
1876 AC_ARG_WITH(,[Input plugins:])
1877
1878 dnl  live555 input
1879 dnl
1880 if test "${enable_livedotcom}"
1881 then
1882   AC_MSG_WARN(--{en|dis}able-livedotcom is deprecated. Use --{en|dis}able-live555 instead.)
1883 fi
1884 if test "${enable_livedotcom}" = "no"
1885 then
1886   enable_live555="no"
1887 fi
1888
1889 AC_ARG_ENABLE(live555,
1890 [  --enable-live555        live555 RTSP input plugin (default enabled)])
1891 if test "${enable_live555}" != "no"; then
1892   AC_ARG_WITH(live555-tree,
1893     [    --with-live555-tree=PATH live.com tree for static linking])
1894
1895   dnl
1896   dnl test for --with-live555-tree
1897   dnl
1898   if test "${with_livedotcom_tree}"
1899   then
1900     AC_MSG_WARN(--with-livedotcom-tree is deprecated. Use --with-live555-tree instead.)
1901   with_live555_tree="${with_livedotcom_tree}"
1902   fi
1903
1904   if test -z "${with_live555_tree}" -a "${CXX}" != ""; then
1905     AC_LANG_PUSH(C++)
1906     CPPFLAGS_save="${CPPFLAGS}"
1907     CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1908     if test "${SYS}" = "solaris"; then
1909       CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1910     fi
1911     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1912
1913     AC_CHECK_HEADERS(liveMedia_version.hh, [
1914       AC_MSG_CHECKING(for liveMedia version >= 1214895600 )
1915       AC_EGREP_CPP(yes,
1916         [#include <liveMedia_version.hh>
1917          #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
1918          #if LIVEMEDIA_LIBRARY_VERSION_INT < 1214895600
1919          yes
1920          #endif
1921          #endif],
1922         [AC_MSG_RESULT([no])
1923          AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia.
1924 lternatively you can use --disable-live555 to disable the liveMedia plugin.])
1925       ],[
1926          AC_MSG_RESULT([yes])
1927          ])
1928     ])
1929      other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1930      other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
1931       if test "${SYS}" = "mingw32"; then
1932         # add ws2_32 for closesocket, select, recv
1933         other_libs="$other_libs -lws2_32"
1934       fi
1935     dnl We need to check for pic because live555 don't provide shared libs
1936     dnl and we want to build a plugins so we need -fPIC on some arch.
1937     AC_CHECK_HEADERS(liveMedia.hh, [
1938       VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1939         AC_CHECK_LIB(liveMedia_pic, main, [
1940           VLC_ADD_PLUGIN([live555])
1941          VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
1942          ],[
1943         AC_CHECK_LIB(liveMedia, main, [
1944           VLC_ADD_PLUGIN([live555])
1945           VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1946         ],[],[${other_libs}]) ],[${other_libs_pic}])
1947     ],[
1948        AC_MSG_WARN([The development files for liveMedia (live555) can't be found])
1949     ])
1950     CPPFLAGS="${CPPFLAGS_save}"
1951     AC_LANG_POP(C++)
1952   else
1953     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_live555_tree})
1954     real_live555_tree="`cd ${with_live555_tree} 2>/dev/null && pwd`"
1955     if test -z "${real_live555_tree}"; then
1956       dnl  The given directory can't be found
1957       AC_MSG_RESULT(no)
1958       AC_MSG_ERROR([cannot cd to ${with_live555_tree}])
1959     fi
1960     if test -f "${real_live555_tree}/liveMedia/libliveMedia.a"; then
1961       AC_MSG_RESULT(${real_live555_tree}/liveMedia/libliveMedia.a)
1962
1963       AC_CHECK_HEADERS(${real_live555_tree}/liveMedia/include/liveMedia_version.hh,[
1964         AC_MSG_CHECKING(for liveMedia version >= 1214895600 )
1965         AC_EGREP_CPP(yes,
1966           [#include "${real_live555_tree}/liveMedia/include/liveMedia_version.hh"
1967            #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
1968            #if LIVEMEDIA_LIBRARY_VERSION_INT < 1214895600
1969            yes
1970            #endif
1971            #endif],
1972           [AC_MSG_RESULT([no])
1973            AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia.
1974 lternatively you can use --disable-live555 to disable the liveMedia plugin.])
1975         ],[
1976            AC_MSG_RESULT([yes])
1977            ])
1978       ])
1979
1980       VLC_ADD_PLUGIN([live555])
1981
1982       if test "${SYS}" = "mingw32"; then
1983         # add ws2_32 for closesocket, select, recv
1984         VLC_ADD_LIBS([live555],[-lws2_32])
1985       fi
1986
1987       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/liveMedia -lliveMedia])
1988       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1989       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/groupsock -lgroupsock])
1990       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/UsageEnvironment -lUsageEnvironment])
1991
1992       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/BasicUsageEnvironment/include])
1993       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/groupsock/include])
1994       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/liveMedia/include])
1995       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/UsageEnvironment/include ])
1996       if test "${SYS}" = "solaris"; then
1997         VLC_ADD_CXXFLAGS([live555],[-DSOLARIS])
1998       fi
1999     else
2000       dnl  The given live555 wasn't built
2001         AC_MSG_RESULT(no)
2002       if test "${enable_live555}" = "yes"; then
2003         AC_MSG_ERROR([cannot find ${real_live555_tree}/liveMedia/libliveMedia.a, make sure you compiled live555 in ${with_live555_tree}])
2004       fi        
2005     fi
2006   fi
2007 fi
2008
2009 dnl
2010 dnl  special access module for dc1394 input
2011 dnl
2012 AC_ARG_ENABLE(dc1394,
2013   [  --enable-dc1394         dc1394 access module (default disabled)])
2014 if test "${enable_dc1394}" = "yes"
2015 then
2016   AC_CHECK_HEADERS(libraw1394/raw1394.h, [
2017     AC_CHECK_LIB( raw1394, raw1394_get_nodecount, [
2018         AC_CHECK_HEADERS(libdc1394/dc1394_control.h , [
2019 dnl         AC_CHECK_LIB( dc1394_control, dc1394_setup_capture, [
2020               VLC_ADD_PLUGIN([dc1394])
2021               VLC_ADD_LIBS([dc1394],[-ldc1394_control -lraw1394])
2022 dnl         ],
2023 dnl         [
2024 dnl           AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
2025 dnl         ])
2026       ],
2027       [
2028         AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
2029       ])
2030     ],
2031     [
2032       AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
2033     ])
2034   ],
2035   [
2036     AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
2037   ])
2038 fi
2039
2040 dnl
2041 dnl dv module: digital video module check for libraw1394
2042 dnl
2043 AC_ARG_ENABLE(dv,
2044 [  --enable-dv             dv input module (default disabled)])
2045 if test "${enable_dv}" = "yes"
2046 then
2047   AC_ARG_WITH(dv-raw1394,
2048   [    --with-dv-raw1394=PATH   libraw1394 headers and libraries])
2049   AC_ARG_WITH(dv-raw1394-tree,
2050   [    --with-dv-raw1394=PATH   libraw1394 tree for static linking])
2051
2052   if test -z "${with_dv_raw1394}" -a "${with_dv_raw1394}" != ""
2053   then
2054     AC_MSG_CHECKING(for raw1394 headers in ${with_dv_raw1394})
2055     if test -f ${with_dv_raw1394}/include/libraw1394/raw1394.h
2056     then
2057       dnl  Use ${with_dv_raw1394}/include/libraw1394/raw1394.h
2058       AC_MSG_RESULT(yes)
2059       VLC_ADD_PLUGIN([access_dv])
2060       VLC_ADD_LIBS([access_dv],[-L${with_dv_raw1394}/lib -lraw1394 -lpthread])
2061       VLC_ADD_CPPFLAGS([access_dv],[-I${with_dv_raw1394}/include])
2062     else
2063       dnl  No libraw1394 could be found, sorry
2064       AC_MSG_RESULT(no)
2065       AC_MSG_ERROR([cannot find ${with_dv_raw1394}/include/libraw1394/raw1394.h])
2066     fi
2067   else
2068     AC_CHECK_HEADERS(libraw1394/raw1394.h,
2069     [ VLC_ADD_PLUGIN([access_dv])
2070         VLC_ADD_LIBS([access_dv],[-lraw1394 -lavc1394])
2071     ],[
2072         if test -n "${enable_dv}"
2073         then
2074           AC_MSG_ERROR([cannot find libraw1394 headers])
2075         fi
2076     ])
2077   fi
2078
2079   dnl Check for static linking of libraw1394
2080   if test -z "${with_dv_raw1394_tree}" -a "${with_dv_raw1394_tree}" != ""
2081   then
2082     AC_MSG_CHECKING(for libraw1394.a in ${with_dv_raw1394_tree})
2083     real_dv_raw1394_tree="`cd ${with_dv_raw1394_tree} 2>/dev/null && pwd`"
2084     if test -z "${real_dv_raw1394_tree}"
2085     then
2086       dnl  The given directory can't be found
2087       AC_MSG_RESULT(no)
2088       AC_MSG_ERROR([cannot cd to ${real_dv_raw1394_tree}])
2089     fi
2090     if test -f "${real_dv_raw1394_tree}/src/.libs/libraw1394.a"
2091     then
2092       dnl  Use a custom libraw1394
2093       AC_MSG_RESULT(${real_dv_raw1394_tree}/src/.libs/libraw1394.a)
2094       VLC_ADD_PLUGIN([access_dv])
2095       VLC_ADD_LIBS([access_dv],[-L${real_dv_raw1394_tree}/src/.libs -lraw1394])
2096       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_raw1394_tree}])
2097     else
2098       dnl  The given libraw1394 wasn't built
2099       AC_MSG_RESULT(no)
2100       AC_MSG_ERROR([cannot find ${real_dv_raw1394_tree}/src/.libs/libraw1394.a, make sure you compiled libraw1394 in ${with_dv_raw1394_tree}])
2101     fi
2102   fi
2103
2104   dnl
2105   dnl Check for libavc1394
2106   dnl
2107
2108   AC_ARG_WITH(dv-avc1394,
2109   [    --with-dv-avc1394=PATH   libavc1394 headers and libraries])
2110   AC_ARG_WITH(dv-avc1394-tree,
2111   [    --with-dv-avc1394=PATH   libavc1394 tree for static linking])
2112
2113   if test -z "${with_dv_avc1394}" -a "${with_dv_avc1394}" != ""
2114   then
2115     AC_MSG_CHECKING(for avc1394 headers in ${with_dv_avc1394})
2116     if test -f ${with_dv_avc1394}/include/libavc1394/avc1394.h
2117     then
2118       dnl  Use ${with_dv_avc1394}/include/libavc1394/avc1394.h
2119       AC_MSG_RESULT(yes)
2120       VLC_ADD_LIBS([access_dv],[-L${with_dv_avc1394}/lib -lavc1394 -lrom1394 -lpthread])
2121       VLC_ADD_CPPFLAGS([access_dv],[-I${with_avc1394}/include])
2122     else
2123       dnl  No libavc1394 could be found, sorry
2124       AC_MSG_RESULT(no)
2125       AC_MSG_ERROR([cannot find ${with_dv_avc1394}/include/libavc1394/avc1394.h])
2126     fi
2127   else
2128     AC_CHECK_HEADERS(libavc1394/avc1394.h,
2129     [ VLC_ADD_LIBS([access_dv],[-lavc1394 -lrom1394 -lpthread])
2130     ],[
2131         if test -n "${enable_dv}"
2132         then
2133           AC_MSG_ERROR([cannot find libavc1394 headers])
2134         fi
2135     ])
2136   fi
2137
2138   dnl Check for static linking of libavc1394
2139   if test -z "${with_dv_avc1394_tree}" -a "${with_dv_avc1394_tree}" != ""
2140   then
2141     AC_MSG_CHECKING(for libavc1394.a in ${with_dv_avc1394_tree})
2142     real_dv_avc1394_tree="`cd ${with_dv_avc1394_tree} 2>/dev/null && pwd`"
2143     if test -z "${real_dv_avc1394_tree}"
2144     then
2145       dnl  The given directory can't be found
2146       AC_MSG_RESULT(no)
2147       AC_MSG_ERROR([cannot cd to ${real_dv_avc1394_tree}])
2148     fi
2149     if test -f "${real_dv_avc1394_tree}/src/.libs/libavc1394.a"
2150     then
2151       dnl  Use a custom libavc1394
2152       AC_MSG_RESULT(${real_dv_avc1394_tree}/src/.libs/libavc1394.a)
2153       VLC_ADD_LIBS([access_dv],[-L${real_dv_avc1394_tree}/src/.libs -lavc1394 -lrom1394 -lpthread])
2154       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_avc1394_tree}])
2155     else
2156       dnl  The given libavc1394 wasn't built
2157       AC_MSG_RESULT(no)
2158       AC_MSG_ERROR([cannot find ${real_dv_avc1394_tree}/src/.libs/libavc1394.a, make sure you compiled libavc1394 in ${with_dv_avc1394_tree}])
2159     fi
2160   fi
2161 fi
2162
2163 dnl
2164 dnl dvdread module: check for libdvdread
2165 dnl
2166 AC_ARG_ENABLE(dvdread,
2167 [  --enable-dvdread        dvdread input module (default disabled)])
2168 if test "${enable_dvdread}" != "no"
2169 then
2170   AC_ARG_WITH(dvdread,
2171   [    --with-dvdread=PATH   libdvdread headers and libraries])
2172   AC_ARG_WITH(dvdread-tree,
2173   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
2174
2175   dnl Temporary hack (yeah, sure ;)
2176   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2177       VLC_ADD_LIBS([dvdread],[-ldvdcss])
2178   fi
2179
2180   if test -z "${with_dvdread}"
2181   then
2182     if test -z "${with_dvdread_tree}"
2183     then
2184       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
2185         [ VLC_ADD_PLUGIN([dvdread])
2186           VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
2187         ],[
2188           AC_CHECK_HEADERS(libdvdread/dvd_reader.h,
2189             [ VLC_ADD_PLUGIN([dvdread])
2190               VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
2191             ],[
2192               if test -n "${enable_dvdread}"
2193               then
2194               AC_MSG_ERROR([cannot find libdvdread headers])
2195              fi
2196            ])
2197         ])
2198     else
2199       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
2200       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
2201       if test -z "${real_dvdread_tree}"
2202       then
2203         dnl  The given directory can't be found
2204         AC_MSG_RESULT(no)
2205         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
2206       fi
2207       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
2208       then
2209         dnl  Use a custom libdvdread
2210         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
2211         VLC_ADD_PLUGIN([dvdread])
2212         VLC_ADD_LIBS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LIBS_dvdcss}])
2213         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
2214       else
2215         dnl  The given libdvdread wasn't built
2216         AC_MSG_RESULT(no)
2217         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
2218       fi
2219     fi
2220   else
2221     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
2222     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
2223     then
2224       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
2225       AC_MSG_RESULT(yes)
2226       VLC_ADD_PLUGIN([dvdread])
2227       VLC_ADD_LIBS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LIBS_dvdcss}])
2228       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
2229     else
2230       dnl  No libdvdread could be found, sorry
2231       AC_MSG_RESULT(no)
2232       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
2233     fi
2234   fi
2235 fi
2236
2237 dnl
2238 dnl  libdvdnav plugin
2239 dnl
2240 AC_ARG_ENABLE(dvdnav,
2241   [  --enable-dvdnav         dvdnav input module (default enabled)])
2242 if test "${enable_dvdnav}" != "no"
2243 then
2244   dnl Same hack than dvdread
2245   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2246       VLC_ADD_LIBS([dvdnav],[-ldvdcss])
2247   fi
2248
2249   DVDNAV_PATH="${PATH}"
2250   AC_ARG_WITH(dvdnav-config-path,
2251     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
2252     [ if test "${with_dvdnav_config_path}" != "no"
2253       then
2254         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
2255       fi ])
2256   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
2257   if test "${DVDNAV_CONFIG}" != "no"
2258   then
2259     VLC_ADD_PLUGIN([dvdnav])
2260     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
2261     VLC_ADD_LIBS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
2262   fi
2263 fi
2264
2265 dnl
2266 dnl  Windows DirectShow access module
2267 dnl
2268 AC_ARG_ENABLE(dshow,
2269   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
2270 if test "${enable_dshow}" != "no"
2271 then
2272   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2273   then
2274     AC_LANG_PUSH(C++)
2275       AC_CHECK_HEADERS(dshow.h,
2276       [ VLC_ADD_PLUGIN([dshow])
2277         VLC_ADD_CXXFLAGS([dshow],[])
2278         VLC_ADD_LIBS([dshow],[-lole32 -loleaut32 -luuid]) ])
2279     AC_LANG_POP(C++)
2280   fi
2281 fi
2282
2283 dnl
2284 dnl  Windows DirectShow BDA access module
2285 dnl
2286 AC_ARG_ENABLE(bda,
2287   AS_HELP_STRING([--enable-bda],[Win32 DirectShow BDA support (default
2288                   enabled on Win32)]))
2289 if test "${enable_bda}" != "no"
2290 then
2291   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2292   then
2293       AC_CHECK_HEADERS(dshow.h,
2294       [ VLC_ADD_PLUGIN([bda])
2295         VLC_ADD_CXXFLAGS([bda],[])
2296         VLC_ADD_LIBS([bda],[-lstrmiids -lole32 -loleaut32 -luuid]) ])
2297   fi
2298 fi
2299
2300
2301 dnl
2302 dnl  OpenCV wrapper and example filters
2303 dnl
2304 AC_ARG_ENABLE(opencv,
2305   [  --enable-opencv         OpenCV (computer vision) filter (default disabled)])
2306 if test "${enable_opencv}" = "yes" -a "${CXX}" != "";
2307 then
2308   AC_ARG_WITH(opencv-tree,
2309   [    --with-opencv-tree=PATH opencv tree for linking])
2310     if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2311     then
2312       test -z "${with_opencv_tree}" && AC_MSG_ERROR([You have to specify --with-opencv-tree])
2313       AC_MSG_CHECKING(for opencv in ${with_opencv_tree})
2314       if test -f ${with_opencv_tree}/cv/include/cv.h -a -f ${with_opencv_tree}/cxcore/include/cxcore.h \
2315         -a -f ${with_opencv_tree}/cvaux/include/cvaux.h -a -f ${with_opencv_tree}/otherlibs/highgui/highgui.h
2316       then
2317         AC_MSG_RESULT(yes)
2318         VLC_ADD_PLUGIN([opencv_wrapper])
2319         VLC_ADD_LIBS([opencv_wrapper],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2320         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])
2321         AC_LANG_PUSH(C++)
2322         VLC_ADD_PLUGIN([opencv_example])
2323         VLC_ADD_LIBS([opencv_example],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2324         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])
2325         AC_LANG_POP(C++)
2326           else
2327         dnl  No opencv could be found, sorry
2328         AC_MSG_RESULT(no)
2329         AC_MSG_ERROR([cannot find opencv in ${with_opencv_tree}])
2330           fi
2331     else
2332       PKG_CHECK_MODULES(OPENCV, opencv,
2333         [
2334           VLC_ADD_PLUGIN([opencv_example])
2335           VLC_ADD_PLUGIN([opencv_wrapper])
2336           VLC_ADD_LIBS([opencv_example opencv_wrapper],[${OPENCV_LIBS}])
2337           VLC_ADD_CFLAGS([opencv_wrapper],[${OPENCV_CFLAGS}])
2338           VLC_ADD_CXXFLAGS([opencv_example],[${OPENCV_CFLAGS}])
2339         ],
2340         [AC_MSG_ERROR([libopencv not found!])]
2341       )
2342     fi
2343 fi
2344
2345
2346 dnl
2347 dnl  libsmbclient plugin
2348 dnl
2349 AC_ARG_ENABLE(smb,
2350   [  --enable-smb            smb input module (default enabled)])
2351 if test "${enable_smb}" != "no"; then
2352   AC_CHECK_HEADERS(libsmbclient.h,
2353     [ VLC_ADD_PLUGIN([access_smb])
2354       VLC_ADD_LIBS([access_smb],[-lsmbclient]) ],
2355     [ if test -n "${enable_smb}"; then
2356         AC_MSG_ERROR([cannot find libsmbclient headers])
2357      fi ])
2358   AC_CHECK_MEMBER([struct _SMBCCTX.close_fn],
2359     AC_DEFINE([HAVE__SMBCCTX_CLOSE_FN], 1, [Define if samba has _SMBCCTX.close_fn]),,
2360     [#include <libsmbclient.h>])
2361 fi
2362
2363 dnl
2364 dnl  libdvbpsi ts demux/mux
2365 dnl
2366 AC_ARG_ENABLE(dvbpsi,
2367   [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
2368 have_dvbpsi=no
2369 if test "${enable_dvbpsi}" != "no"
2370 then
2371   AC_ARG_WITH(dvbpsi,
2372   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
2373   AC_ARG_WITH(dvbpsi,
2374   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
2375   case "${with_dvbpsi}" in
2376   ""|yes)
2377     if test -z "${with_dvbpsi_tree}"
2378     then
2379       AC_CHECK_HEADERS(dvbpsi/dr.h,
2380         [ VLC_ADD_PLUGIN([ts])
2381           if test "${enable_sout}" != "no"; then
2382             VLC_ADD_PLUGIN([mux_ts])
2383           fi
2384           VLC_ADD_LIBS([mux_ts ts dvb],[-ldvbpsi])
2385           have_dvbpsi=yes],
2386         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
2387         [#if defined( HAVE_STDINT_H )
2388 #   include <stdint.h>
2389 #elif defined( HAVE_INTTYPES_H )
2390 #   include <inttypes.h>
2391 #endif
2392 #include <dvbpsi/dvbpsi.h>
2393 #include <dvbpsi/descriptor.h>
2394 #include <dvbpsi/pat.h>
2395 #include <dvbpsi/pmt.h>])
2396     else
2397       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
2398       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
2399       if test -z "${real_dvbpsi_tree}"
2400       then
2401         dnl  The given directory can't be found
2402         AC_MSG_RESULT(no)
2403         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
2404       fi
2405       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
2406       then
2407         dnl  Use a custom libdvbpsi
2408         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
2409         VLC_ADD_PLUGIN([ts])
2410         if test "${enable_sout}" != "no"; then
2411           VLC_ADD_PLUGIN([mux_ts])
2412         fi
2413         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
2414         VLC_ADD_LIBS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
2415         have_dvbpsi=yes
2416       else
2417         dnl  The given libdvbpsi wasn't built
2418         AC_MSG_RESULT(no)
2419         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
2420       fi
2421     fi
2422   ;;
2423   no)
2424     dnl  Compile without dvbpsi
2425   ;;
2426   *)
2427     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
2428     if test -z "${with_dvbpsi}"
2429     then
2430       LDFLAGS_test=""
2431       CPPFLAGS_test=""
2432     else
2433       LDFLAGS_test="-L${with_dvbpsi}/lib"
2434       CPPFLAGS_test="-I${with_dvbpsi}/include"
2435     fi
2436     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
2437     AC_CHECK_HEADERS([dvbpsi/dr.h],[
2438       VLC_ADD_PLUGIN([ts])
2439       if test "${enable_sout}" != "no"; then
2440         VLC_ADD_PLUGIN([mux_ts])
2441       fi
2442       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
2443       VLC_ADD_LIBS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
2444       have_dvbpsi=yes
2445     ],[
2446       if test -n "${enable_dvbpsi}"
2447       then
2448         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])
2449       fi
2450     ])
2451     CPPFLAGS="${CPPFLAGS_save}"
2452   ;;
2453   esac
2454   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
2455     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
2456   ], [], [${LIBS_ts}])
2457
2458 fi
2459
2460 dnl
2461 dnl  Video4Linux plugin
2462 dnl
2463 AC_ARG_ENABLE(v4l,
2464   [  --enable-v4l            Video4Linux input support (default disabled)])
2465 if test "${enable_v4l}" = "yes"
2466 then
2467   AC_ARG_WITH(v4l,
2468     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
2469   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
2470   then
2471     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
2472   fi
2473
2474   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
2475   AC_CHECK_HEADERS(linux/videodev.h, [
2476     VLC_ADD_PLUGIN([v4l])
2477   ],[])
2478   CPPFLAGS="${CPPFLAGS_save}"
2479 fi
2480
2481 dnl
2482 dnl  Video4Linux2 plugin
2483 dnl
2484 AC_ARG_ENABLE(v4l2,
2485   [  --enable-v4l2           Video4Linux2 input support (default enabled)])
2486 if test "${enable_v4l2}" != "no"
2487 then
2488   AC_ARG_WITH(v4l2,
2489     [    --with-v4l2=PATH       path to a v4l2-enabled kernel tree],[],[])
2490   if test "${with_v4l2}" != "no" -a -n "${with_v4l2}"
2491   then
2492     VLC_ADD_CPPFLAGS([v4l2],[-I${with_v4l2}/include])
2493   fi
2494
2495   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l2}"
2496   AC_CHECK_HEADERS(linux/videodev2.h, [
2497     VLC_ADD_PLUGIN([v4l2])
2498   ],[])
2499   CPPFLAGS="${CPPFLAGS_save}"
2500 fi
2501
2502 dnl
2503 dnl libv4l2 support for video4linux.
2504 dnl
2505 AC_ARG_ENABLE( libv4l2,
2506   [  --enable-libv4l2        Libv4l2 Video4Linux2 support (default enabled)])
2507 if test "${enable_libv4l2}" != "no" -a "${enable_v4l2}" != "no"
2508 then
2509     PKG_CHECK_MODULES( LIBV4L2, libv4l2, [
2510       VLC_ADD_LDFLAGS([v4l2],[${LIBV4L2_LIBS}])
2511       VLC_ADD_CFLAGS([v4l2],[${LIBV4L2_CFLAGS}])
2512       AC_DEFINE(HAVE_LIBV4L2, 1, Define if libv4l is available)],
2513       AC_MSG_WARN([LibV4L2 support disabled because libv4l2 development headers were not found])
2514     )
2515 fi
2516
2517 dnl
2518 dnl  special access module for Hauppauge PVR cards
2519 dnl
2520 AC_ARG_ENABLE(pvr,
2521   [  --enable-pvr            PVR cards access module (default disabled)])
2522 if test "${enable_pvr}" = "yes"
2523 then
2524   VLC_ADD_PLUGIN([pvr])
2525   AC_ARG_WITH(videodev2,
2526     [  --with-videodev2=FILE   Location of videodev2.h file (default /usr/include/linux/videodev2.h)],[],[])
2527   if test "${with_videodev2}" != "no" -a -n "${with_videodev2}"
2528   then
2529     AC_DEFINE_UNQUOTED(VIDEODEV2_H_FILE, "${with_videodev2}", [Location of videodev2.h])
2530   fi
2531
2532   AC_CACHE_CHECK([for new linux/videodev2.h],
2533       [ac_cv_new_linux_videodev2_h],
2534       [AC_TRY_COMPILE([
2535           #include <sys/types.h>
2536           #   ifdef VIDEODEV2_H_FILE
2537           #   include VIDEODEV2_H_FILE
2538           #   else
2539           #   include <linux/videodev2.h>
2540           #   endif
2541           ],
2542           [struct v4l2_ext_controls ctrls; ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG; ],
2543           ac_cv_new_linux_videodev2_h=yes,
2544           ac_cv_new_linux_videodev2_h=no)])
2545   if test "${ac_cv_new_linux_videodev2_h}" != "no"; then
2546     AC_DEFINE(HAVE_NEW_LINUX_VIDEODEV2_H, 1, [Define if new linux/videodev2.h present])
2547   fi
2548 fi
2549
2550 dnl
2551 dnl  gnomeVFS access module
2552 dnl
2553 AC_ARG_ENABLE(gnomevfs,
2554   [  --enable-gnomevfs       GnomeVFS access module (default disabled)])
2555 if test "${enable_gnomevfs}" = "yes"
2556 then
2557   PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0,
2558     VLC_ADD_LIBS([access_gnomevfs],[$GNOMEVFS_LIBS])
2559     VLC_ADD_CPPFLAGS([access_gnomevfs],[$GNOMEVFS_CPPFLAGS])
2560     VLC_ADD_CFLAGS([access_gnomevfs],[$GNOMEVFS_CFLAGS])
2561     VLC_ADD_PLUGIN([access_gnomevfs]),
2562     AC_MSG_WARN([GnomeVFS support disabled because GnomeVFS development headers not found]))
2563 fi
2564
2565 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
2566 AC_ARG_ENABLE(libcdio,
2567   [  --enable-libcdio        CD input and control library support (default enabled)])
2568
2569 AC_ARG_ENABLE(vcdinfo,
2570   [  --enable-libvcdinfo     VCD information library support (default enabled)])
2571
2572 have_libcdio=no
2573 have_libvcdinfo=no
2574 if test "${enable_libcdio}" != "no"
2575 then
2576   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.78.2,
2577      have_libcdio=yes
2578      AC_DEFINE(HAVE_LIBCDIO, 1,
2579      [Define if you have libcdio 0.78.2 or greater installed]),
2580      [AC_MSG_WARN(CD Reading and information library not found)])
2581
2582   if test "${enable_vcdinfo}" != "no"
2583   then
2584     PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.22,
2585        [have_libvcdinfo=yes
2586        AC_DEFINE(HAVE_VCDINFO, 1,
2587        [Define if you have libvcdinfo 0.7.22 or greater installed])],
2588        [AC_MSG_WARN(VCD information library not found)])
2589   fi
2590 fi
2591
2592 dnl
2593 dnl  VCDX and CDDAX modules
2594 dnl
2595 AC_ARG_ENABLE(cddax,
2596   AS_HELP_STRING([--enable-cddax],[audio CD plugin with CD Text and CD paranoia
2597                   via libcdio (default disabled)]))
2598
2599 AC_ARG_ENABLE(libcddb,
2600   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
2601
2602 if test "${enable_cddax}" = "yes"
2603 then
2604   if test "$have_libcdio" = "yes"
2605   then
2606     AC_DEFINE(HAVE_CDDAX, 1, [Define for the audio CD plugin using libcdio])
2607     VLC_ADD_LIBS([cddax],[$LIBCDIO_LIBS])
2608     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
2609     VLC_ADD_PLUGIN([cddax])
2610     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
2611     VLC_ADD_LIBS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
2612     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
2613   else
2614     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
2615     HAVE_CDDAX=no
2616   fi
2617
2618   if test "$enable_libcddb" != "no"; then
2619     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2620       HAVE_LIBCDDB=yes
2621       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2622       VLC_ADD_LIBS([cddax],[$LIBCDDB_LIBS])
2623       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
2624       ],
2625       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled)
2626       HAVE_LIBCDDB=no])
2627   fi
2628
2629 fi
2630
2631 AC_ARG_ENABLE(vcdx,
2632   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2633
2634 if test "${enable_vcdx}" = "yes"
2635 then
2636   if test "${have_libvcdinfo}" = "yes"
2637   then
2638     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2639     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2640   else
2641     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
2642     HAVE_VCDX=no
2643   fi
2644
2645   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
2646    [VLC_ADD_LIBS([vcdx],[$LIBISO9660_LIBS])
2647     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
2648     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
2649     HAVE_VCDX=no])
2650
2651   if test "$have_libvcdinfo" = "yes"
2652   then
2653     AC_DEFINE(HAVE_VCDX, 1,
2654     [Define for the VCD plugin using libcdio/libvcdinfo])
2655     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2656     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2657     VLC_ADD_PLUGIN([vcdx])
2658   else
2659     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
2660     HAVE_VCDX=no
2661   fi
2662 fi
2663
2664 dnl
2665 dnl  Built-in CD-DA and VCD module
2666 dnl
2667 AC_ARG_ENABLE(cdda,
2668   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
2669
2670 AC_ARG_ENABLE(vcd,
2671   [  --enable-vcd            built-in VCD (default enabled)])
2672
2673 if test "${enable_vcd}" != "no"
2674 then
2675   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2676   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2677     AC_MSG_RESULT(yes)
2678     VLC_ADD_PLUGIN([vcd])
2679     VLC_ADD_PLUGIN([cdda])
2680   ],[
2681     AC_MSG_RESULT(no)
2682   ])
2683
2684   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2685   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2686     AC_MSG_RESULT(yes)
2687     VLC_ADD_PLUGIN([vcd])
2688     VLC_ADD_PLUGIN([cdda])
2689     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2690   ],[
2691     AC_MSG_RESULT(no)
2692   ])
2693
2694   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2695   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2696     AC_MSG_RESULT(yes)
2697     VLC_ADD_PLUGIN([vcd])
2698     VLC_ADD_PLUGIN([cdda])
2699     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2700   ],[
2701     AC_MSG_RESULT(no)
2702   ])
2703
2704   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2705   then
2706     VLC_ADD_PLUGIN([vcd])
2707     VLC_ADD_PLUGIN([cdda])
2708   fi
2709
2710   if test "${SYS}" = "darwin"
2711   then
2712     VLC_ADD_PLUGIN([vcd])
2713     VLC_ADD_PLUGIN([cdda])
2714     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-Wl,-framework,IOKit,-framework,CoreFoundation])
2715     VLC_ADD_LIBS([vcdx cddax cdda],[-liconv])
2716   fi
2717
2718   if test "$enable_libcddb" != "no"; then
2719     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2720       HAVE_LIBCDDB=yes
2721       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2722       VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2723       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2724       ],:
2725       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled)
2726       HAVE_LIBCDDB=no])
2727   fi
2728 fi
2729
2730 dnl
2731 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2732 dnl
2733 AC_ARG_ENABLE(dvb,
2734   [  --enable-dvb            DVB-S/T/C card support (default enabled)])
2735
2736 if test "${enable_dvb}" != "no"
2737 then
2738     AS_IF([test "${have_dvbpsi}" = "yes" ],[
2739     AC_ARG_WITH(dvb,
2740      [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
2741      if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2742      then
2743        VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2744      fi
2745      CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2746      AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2747      VLC_ADD_PLUGIN([dvb])
2748      ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2749      CPPFLAGS="${CPPFLAGS_save}"
2750    ],[
2751      AC_MSG_WARN([the dvb access module requires libdvbpsi])
2752     ])
2753 fi
2754
2755 dnl
2756 dnl  Screen capture module
2757 dnl
2758 AC_ARG_ENABLE(screen,
2759   [  --enable-screen         Screen capture support (default enabled)])
2760 if test "${enable_screen}" != "no"; then
2761   if test "${SYS}" = "darwin"; then
2762     AC_CHECK_HEADERS(OpenGL/gl.h, [
2763       AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2764         VLC_ADD_PLUGIN([screen])
2765         VLC_ADD_LDFLAGS([screen],[-Wl,-framework,OpenGL,-framework,ApplicationServices])
2766       ])
2767     ])
2768   elif test "${SYS}" = "mingw32"; then
2769     VLC_ADD_PLUGIN([screen])
2770     VLC_ADD_LIBS([screen],[-lgdi32])
2771   elif test "${SYS}" = "mingwce"; then
2772     CPPFLAGS="${CPPFLAGS_save}"
2773   elif test "${SYS}" = "beos"; then
2774     VLC_ADD_PLUGIN([screen])
2775     VLC_ADD_CXXFLAGS([screen],[])
2776     VLC_ADD_LIBS([screen],[-lbe])
2777   fi
2778 fi
2779
2780 dnl
2781 dnl  ipv6 plugin - not for QNX yet
2782 dnl
2783 have_ipv6=no
2784 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2785   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2786 ])
2787
2788 AS_IF([test "${have_ipv6}" = "yes"], [
2789   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2790
2791
2792 AC_CHECK_FUNCS(inet_ntop,[
2793   AC_DEFINE(HAVE_INET_NTOP, 1, [Define to 1 if you have inet_ntop().])])
2794
2795
2796 dnl
2797 dnl  ogg demux plugin
2798 dnl
2799 AC_ARG_ENABLE(ogg,
2800   [  --enable-ogg            Ogg demux support (default enabled)])
2801 if test "${enable_ogg}" != "no"
2802 then
2803   AC_ARG_WITH(ogg-tree,
2804   [    --with-ogg-tree=PATH  ogg tree for static linking])
2805   if test -n "${with_ogg_tree}"
2806   then
2807     AC_MSG_CHECKING(for libogg.a in ${with_ogg_tree})
2808     real_ogg_tree="`cd ${with_ogg_tree} 2>/dev/null && pwd`"
2809     if test -z "${real_ogg_tree}"
2810     then
2811       dnl  The given directory can't be found
2812       AC_MSG_RESULT(no)
2813       AC_MSG_ERROR([cannot cd to ${with_ogg_tree}])
2814     fi
2815     if test -f "${real_ogg_tree}/src/.libs/libogg.a"
2816     then
2817       dnl  Use a custom ogg
2818       AC_MSG_RESULT(${real_ogg_tree}/src/.libs/libogg.a)
2819       VLC_ADD_PLUGIN([ogg])
2820       if test "${enable_sout}" != "no"; then
2821         VLC_ADD_PLUGIN([mux_ogg])
2822       fi
2823       VLC_ADD_LIBS([ogg mux_ogg speex vorbis],[${real_ogg_tree}/src/.libs/libogg.a])
2824       VLC_ADD_CFLAGS([ogg mux_ogg speex vorbis],[-I${real_ogg_tree}/include])
2825     else
2826       dnl  The given ogg wasn't built
2827       AC_MSG_RESULT(no)
2828       AC_MSG_ERROR([cannot find ${real_ogg_tree}/src/.libs/libogg.a, make sure you compiled ogg in ${with_ogg_tree}])
2829     fi
2830   else
2831     AC_CHECK_HEADERS(ogg/ogg.h, [
2832       AC_CHECK_LIB( ogg, oggpack_read, [
2833         VLC_ADD_PLUGIN([ogg])
2834         if test "${enable_sout}" != "no"; then
2835           VLC_ADD_PLUGIN([mux_ogg])
2836         fi
2837         VLC_ADD_LIBS([ogg mux_ogg],[-logg])])
2838      ],[])
2839   fi
2840 fi
2841
2842 dnl
2843 dnl  matroska demux plugin
2844 dnl
2845 AC_ARG_ENABLE(mkv,
2846   [  --enable-mkv            Matroska demux support (default enabled)])
2847 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2848   AC_LANG_PUSH(C++)
2849   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2850     AC_MSG_CHECKING(for libebml version >= 0.7.7)
2851     AC_EGREP_CPP(yes,
2852       [#include <ebml/EbmlVersion.h>
2853        #ifdef LIBEBML_VERSION
2854        #if LIBEBML_VERSION >= 0x000706
2855        yes
2856        #endif
2857        #endif],
2858       [AC_MSG_RESULT([yes])
2859         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2860           AC_MSG_CHECKING(for libmatroska version >= 0.8.0)
2861           AC_EGREP_CPP(yes,
2862             [#include <matroska/KaxVersion.h>
2863              #ifdef LIBMATROSKA_VERSION
2864              #if LIBMATROSKA_VERSION >= 0x000705
2865              yes
2866              #endif
2867              #endif],
2868             [AC_MSG_RESULT([yes])
2869               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2870               VLC_ADD_CXXFLAGS([mkv],[])
2871               if test "${SYS}" = "darwin"; then
2872                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2873               fi
2874               AC_CHECK_LIB(ebml_pic, main, [
2875                 VLC_ADD_PLUGIN([mkv])
2876                 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2877               ],
2878                 AC_CHECK_LIB(ebml, main, [
2879                   VLC_ADD_PLUGIN([mkv])
2880                   VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2881                 ])
2882               )
2883             ],
2884             [AC_MSG_RESULT([no])
2885               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.])
2886           ])
2887         ])
2888       ],
2889       [AC_MSG_RESULT([no])
2890         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.])
2891     ])
2892   ])
2893   AC_LANG_POP(C++)
2894 fi
2895
2896 dnl
2897 dnl  modplug demux plugin
2898 dnl
2899 AC_ARG_ENABLE(mod,
2900   [  --enable-mod            Mod demux support (default enabled)])
2901 if test "${enable_mod}" != "no"
2902 then
2903   AC_ARG_WITH(mod-tree,
2904   [    --with-mod-tree=PATH mod tree for static linking])
2905   if test -n "${with_mod_tree}"
2906   then
2907     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2908     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2909     if test -z "${real_mod_tree}"
2910     then
2911       dnl  The given directory can't be found
2912       AC_MSG_RESULT(no)
2913       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2914     fi
2915     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2916     then
2917       dnl  Use a custom mod
2918       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2919       VLC_ADD_PLUGIN([mod])
2920       VLC_ADD_LIBS([mod],[${real_mod_tree}/src/.libs/libmodplug.a -lstdc++])
2921       VLC_ADD_CXXFLAGS([mod],[-I${real_mod_tree}/include])
2922     else
2923       dnl  The given mod wasn't built
2924       AC_MSG_RESULT(no)
2925       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2926     fi
2927   else
2928     AC_CHECK_HEADERS(libmodplug/modplug.h, [
2929       VLC_ADD_PLUGIN([mod])
2930       VLC_ADD_CXXFLAGS([mod],[])
2931       VLC_ADD_LIBS([mod],[-lmodplug -lstdc++])])
2932   fi
2933 fi
2934
2935 dnl
2936 dnl  mpc demux plugin
2937 dnl
2938 AC_ARG_ENABLE(mpc,
2939   [  --enable-mpc            Mpc demux support (default enabled)])
2940 if test "${enable_mpc}" != "no"
2941 then
2942   AC_CHECK_HEADERS(mpcdec/mpcdec.h, [
2943     VLC_ADD_PLUGIN([mpc])
2944     VLC_ADD_LIBS([mpc],[-lmpcdec])])
2945 fi
2946
2947 dnl
2948 dnl  game music emu demux plugin
2949 dnl
2950 AC_ARG_ENABLE(gme,
2951   [  --enable-gme            Game Music Emu demux support (default enabled)])
2952 if test "${enable_gme}" != "no" -a "${CXX}" != "";
2953 then
2954   AC_LANG_PUSH(C++)
2955   AC_ARG_WITH(gme-tree,
2956   [    --with-gme-tree=PATH gme tree for static linking])
2957   if test -n "${with_gme_tree}"
2958   then
2959     AC_MSG_CHECKING(for libgme.a in ${with_mod_tree})
2960     real_gme_tree="`cd ${with_gme_tree} 2>/dev/null && pwd`"
2961     if test -z "${real_gme_tree}"
2962     then
2963       dnl  The given directory can't be found
2964       AC_MSG_RESULT(no)
2965       AC_MSG_ERROR([cannot cd to ${with_gme_tree}])
2966     fi
2967     if test -f "${real_gme_tree}/gme/libgme.a"
2968     then
2969       dnl  Use a custom gme
2970       AC_MSG_RESULT(${real_gme_tree}/gme/libgme.a)
2971       VLC_ADD_PLUGIN([gme])
2972       VLC_ADD_LIBS([gme],[${real_gme_tree}/gme/libgme.a])
2973       VLC_ADD_CXXFLAGS([gme],[-I${real_gme_tree}/gme])
2974     else
2975       dnl  The given gme wasn't built
2976       AC_MSG_RESULT(no)
2977       AC_MSG_ERROR([cannot find ${real_mod_tree}/gme/libgme.a, make sure you compiled gme in ${with_gme_tree}])
2978     fi
2979   else
2980       AC_MSG_WARN([only static linking is available, you must provide a gme-tree])
2981   fi
2982   AC_LANG_POP(C++)
2983 fi
2984
2985 dnl
2986 dnl  Codec plugins
2987 dnl
2988
2989 AC_ARG_WITH(,[Codec plugins:])
2990
2991 dnl
2992 dnl wmafixed plugin
2993 dnl
2994 AC_ARG_ENABLE(wma-fixed,
2995   [  --enable-wma-fixed      libwma-fixed module (default disabled)])
2996 if test "${enable_wma_fixed}" = "yes"
2997 then
2998   VLC_ADD_PLUGIN([wma_fixed])
2999 fi
3000
3001 dnl
3002 dnl shine fixed point mp3 encoder
3003 dnl
3004 AC_ARG_ENABLE(shine,
3005   [  --enable-shine          shine mp3 encoding module (default disabled)])
3006 if test "${enable_shine}" = "yes"
3007 then
3008   VLC_ADD_PLUGIN([shine])
3009 fi
3010
3011 dnl
3012 dnl  mad plugin
3013 dnl
3014 AC_ARG_ENABLE(mad,
3015   [  --enable-mad            libmad module (default enabled)])
3016 if test "${enable_mad}" != "no"
3017 then
3018   AC_ARG_WITH(mad,
3019     [    --with-mad=PATH       path to libmad],[],[])
3020   if test "${with_mad}" != "no" -a -n "${with_mad}"
3021   then
3022     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
3023     VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
3024   fi
3025
3026   AC_ARG_WITH(mad-tree,
3027     [    --with-mad-tree=PATH   mad tree for static linking],[],[])
3028   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
3029   then
3030     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
3031     if test -z "${real_mad_tree}"
3032     then
3033       dnl  The given directory can't be found
3034       AC_MSG_RESULT(no)
3035       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
3036     fi
3037     dnl  Use a custom libmad
3038     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
3039     if test -f ${real_mad_tree}/mad.h
3040     then
3041       AC_MSG_RESULT(yes)
3042       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
3043       VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
3044       LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
3045       AC_CHECK_LIB(mad, mad_bit_init, [
3046         VLC_ADD_PLUGIN([mpgatofixed32])
3047         VLC_ADD_LIBS([mpgatofixed32],[-lmad])
3048         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
3049       ],[])
3050       LDFLAGS="${LDFLAGS_save}"
3051     else
3052       AC_MSG_RESULT(no)
3053       AC_MSG_ERROR([the specified tree doesn't have mad.h])
3054     fi
3055   else
3056     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
3057     LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
3058     AC_CHECK_HEADERS(mad.h, ,
3059       [ 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.]) ])
3060     AC_CHECK_LIB(mad, mad_bit_init, [
3061       VLC_ADD_PLUGIN([mpgatofixed32])
3062       VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
3063       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
3064     CPPFLAGS="${CPPFLAGS_save}"
3065     LDFLAGS="${LDFLAGS_save}"
3066   fi
3067 fi
3068
3069 dnl
3070 dnl   libid3tag support (FIXME!!! doesn't work with new input)
3071 dnl
3072 AC_ARG_ENABLE( id3tag,
3073 [  --disable-id3tag        id3tag metadata reader plugin (default disabled)])
3074 AS_IF([test "${enable_id3tag}" = "yes"], [
3075   AC_CHECK_HEADERS(id3tag.h, [
3076       AS_IF([test "${have_zlib}" = "yes"],[
3077           VLC_ADD_LIBS([id3tag],[-lid3tag -lz])
3078           VLC_ADD_PLUGIN([id3tag])
3079        ])
3080     ])
3081 ])
3082
3083 dnl
3084 dnl  avcodec decoder/encoder plugin
3085 dnl
3086
3087 if test "${with_ffmpeg_tree}"
3088 then
3089   AC_MSG_WARN([--with-ffmpeg-tree is deprecated. Use PKG_CONFIG_PATH instead.])
3090 fi
3091
3092 AC_ARG_ENABLE(avcodec,
3093 [  --enable-avcodec        libavcodec codec (default enabled)])
3094 if test "${enable_avcodec}" != "no"
3095 then
3096   PKG_CHECK_MODULES(AVCODEC,[libavcodec libavutil],
3097     [
3098       VLC_SAVE_FLAGS
3099       CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
3100       CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
3101       AC_CHECK_HEADERS(libavcodec/avcodec.h ffmpeg/avcodec.h)
3102       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
3103       VLC_ADD_PLUGIN([avcodec])
3104       VLC_ADD_LIBS([avcodec],[$AVCODEC_LIBS])
3105       VLC_ADD_CFLAGS([avcodec],[$AVCODEC_CFLAGS])
3106       VLC_RESTORE_FLAGS
3107     ],[
3108       AC_MSG_FAILURE([Could not find libavcodec or libavutil. Use --disable-avcodec to ignore this error.])
3109   ])
3110 fi
3111
3112 dnl
3113 dnl  avformat demuxer/muxer plugin
3114 dnl
3115
3116 AC_ARG_ENABLE(avformat,
3117 [  --enable-avformat       libavformat containers (default enabled)])
3118 if test "${enable_avformat}" != "no"
3119 then
3120   PKG_CHECK_MODULES(AVFORMAT,[libavformat libavutil],
3121     [
3122       VLC_SAVE_FLAGS
3123       CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
3124       CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
3125       AC_CHECK_HEADERS(libavformat/avformat.h ffmpeg/avformat.h)
3126       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
3127       VLC_ADD_PLUGIN([avformat])
3128       VLC_ADD_LIBS([avformat],[$AVFORMAT_LIBS])
3129       VLC_ADD_CFLAGS([avformat],[$AVFORMAT_CFLAGS])
3130       VLC_RESTORE_FLAGS
3131     ],[
3132       AC_MSG_FAILURE([Could not find libavformat or libavutil. Use --disable-avformat to ignore this error.])
3133   ])
3134 fi
3135
3136 dnl
3137 dnl  swscale image scaling and conversion plugin
3138 dnl
3139
3140 AC_ARG_ENABLE(swscale,
3141   AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
3142                   (default enabled)]))
3143 if test "${enable_swscale}" != "no"
3144 then
3145   PKG_CHECK_MODULES(SWSCALE,[libswscale],
3146     [
3147       VLC_SAVE_FLAGS
3148       CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
3149       CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
3150       AC_CHECK_HEADERS(libswscale/swscale.h ffmpeg/swscale.h)
3151       VLC_ADD_PLUGIN([swscale])
3152       VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
3153       VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
3154       VLC_RESTORE_FLAGS
3155     ],[
3156       AC_MSG_WARN([Could not find libswscale. Trying to enable imgresample.  Use --disable-swscale to ignore this error.])
3157       enable_imgresample=yes
3158   ])
3159 fi
3160
3161 dnl
3162 dnl  avcodec (deprecated API) image scaling and conversion plugin
3163 dnl
3164 dnl  This is build as a seperate module than the avcodec one to prevent
3165 dnl  stupid run time library load errors from disabling most codecs
3166 dnl  from VLC.
3167 dnl
3168
3169 AC_ARG_ENABLE(imgresample,
3170   AS_HELP_STRING([--enable-imgresample],[deprecated libavcodec image scaling
3171                   and conversion (default disabled)]))
3172 if test "${enable_imgresample}" = "yes"
3173 then
3174   PKG_CHECK_MODULES(IMGRESAMPLE,[libavcodec],
3175     [
3176       VLC_SAVE_FLAGS
3177       CPPFLAGS="${CPPFLAGS} ${IMGRESAMPLE_CFLAGS}"
3178       CFLAGS="${CFLAGS} ${IMGRESAMPLE_CFLAGS}"
3179       AC_CHECK_HEADERS(libavcodec/avcodec.h ffmpeg/avcodec.h)
3180       AC_CHECK_LIB(avcodec,img_resample,
3181         [
3182           VLC_ADD_PLUGIN([imgresample])
3183           VLC_ADD_LIBS([imgresample],[$IMGRESAMPLE_LIBS])
3184           VLC_ADD_CFLAGS([imgresample],[$IMGRESAMPLE_CFLAGS])
3185         ],[
3186           AC_MSG_WARN([Could not find img_resample in libavcodec.])
3187           if test "${enable_swscale}" != "no"
3188           then
3189             AC_MSG_FAILURE([swscale (and its fallback module imgresample) support will be missing. Use --disable-swscale to ignore this error. (This basically means that you will be missing any good software scaling module and some video chroma converters.)])
3190           fi
3191         # That sed hack to add -rpath is kind of ugly but at least it fixes
3192         # detection when linking against a shared libavcodec with
3193         # a libavutil not in one of your ld.so.conf directories.
3194         # (for example a local install)
3195         ],[${IMGRESAMPLE_LIBS} `echo ${IMGRESAMPLE_LIBS}|sed s'/-L/-Wl,-rpath=/'`])
3196       VLC_RESTORE_FLAGS
3197     ],[
3198       AC_MSG_WARN([Could not find libavcodec.])
3199   ])
3200 fi
3201
3202 dnl
3203 dnl  postproc plugin
3204 dnl
3205
3206 AC_ARG_ENABLE(postproc,
3207 [  --enable-postproc       libpostproc image post-processing (default enabled)])
3208 if test "${enable_postproc}" != "no"
3209 then
3210   PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
3211     [
3212       VLC_SAVE_FLAGS
3213       CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
3214       CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
3215       AC_CHECK_HEADERS(libpostproc/postproc.h postproc/postprocess.h)
3216       VLC_ADD_PLUGIN([postproc])
3217       VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS])
3218       VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS])
3219       VLC_RESTORE_FLAGS
3220     ],[
3221       AC_MSG_ERROR([Could not find libpostproc. Use --disable-postproc to ignore this error.])
3222   ])
3223 fi
3224
3225 dnl
3226 dnl  faad decoder plugin
3227 dnl
3228 AC_ARG_ENABLE(faad,
3229 [  --enable-faad           faad codec (default disabled)])
3230 if test "${enable_faad}" = "yes"
3231 then
3232   AC_ARG_WITH(faad-tree,
3233   [    --with-faad-tree=PATH faad tree for static linking])
3234   if test -n "${with_faad_tree}"
3235   then
3236     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
3237     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
3238     if test -z "${real_faad_tree}"
3239     then
3240       dnl  The given directory can't be found
3241       AC_MSG_RESULT(no)
3242       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
3243     fi
3244     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
3245     then
3246       dnl  Use a custom faad
3247       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
3248       VLC_ADD_PLUGIN([faad])
3249       VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
3250       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
3251     else
3252       dnl  The given libfaad wasn't built
3253       AC_MSG_RESULT(no)
3254       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
3255     fi
3256   else
3257     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
3258     LDFLAGS="${LDFLAGS_save} ${LIBS_faad}"
3259     AC_CHECK_HEADERS(faad.h, ,
3260       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
3261     AC_CHECK_LIB(faad, faacDecOpen, [
3262       VLC_ADD_PLUGIN([faad])
3263       VLC_ADD_LIBS([faad],[-lfaad]) ],
3264       AC_CHECK_LIB(faad, NeAACDecOpen, [
3265         VLC_ADD_PLUGIN([faad])
3266         VLC_ADD_LIBS([faad],[-lfaad]) ],
3267         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
3268     LDFLAGS="${LDFLAGS_save}"
3269     CPPFLAGS="${CPPFLAGS_save}"
3270   fi
3271 fi
3272
3273 dnl
3274 dnl twolame encoder plugin
3275 dnl
3276 AC_ARG_ENABLE(twolame,
3277 [  --enable-twolame        twolame codec (default disabled)])
3278 if test "${enable_twolame}" = "yes"
3279 then
3280   AC_ARG_WITH(twolame-tree,
3281   [    --with-twolame-tree=PATH twolame tree for static linking])
3282   if test -n "${with_twolame_tree}"
3283   then
3284     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
3285     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
3286     if test -z "${real_twolame_tree}"
3287     then
3288       dnl  The given directory can't be found
3289       AC_MSG_RESULT(no)
3290       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
3291     fi
3292     if test -f "${real_twolame_tree}/libtwolame/.libs/libtwolame.a"
3293     then
3294       dnl  Use a custom twolame
3295       AC_MSG_RESULT(${real_twolame_tree}/libtwolame/.libs/libtwolame.a)
3296       VLC_ADD_PLUGIN([twolame])
3297       VLC_ADD_LIBS([twolame],[${real_twolame_tree}/libtwolame/.libs/libtwolame.a])
3298       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/libtwolame -DLIBTWOLAME_STATIC])
3299     else
3300       dnl  The given libtwolame wasn't built
3301       AC_MSG_RESULT(no)
3302       AC_MSG_ERROR([cannot find ${real_twolame_tree}/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
3303     fi
3304   else
3305     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame} -DLIBTWOLAME_STATIC"
3306     LDFLAGS="${LDFLAGS_save} ${LIBS_twolame}"
3307     AC_CHECK_HEADERS(twolame.h, ,
3308       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
3309     AC_CHECK_LIB(twolame, twolame_init, [
3310       VLC_ADD_PLUGIN([twolame])
3311       VLC_ADD_CPPFLAGS([twolame],[-DLIBTWOLAME_STATIC])
3312       VLC_ADD_LIBS([twolame],[-ltwolame]) ],
3313         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
3314     LDFLAGS="${LDFLAGS_save}"
3315     CPPFLAGS="${CPPFLAGS_save}"
3316   fi
3317 fi
3318
3319 dnl
3320 dnl  QuickTime plugin
3321 dnl
3322 AC_ARG_ENABLE(quicktime,
3323   [  --enable-quicktime      QuickTime module (deprecated)])
3324 if test "${enable_quicktime}" = "yes"; then
3325   if test "${SYS}" = "mingw32"; then
3326     VLC_ADD_PLUGIN([quicktime])
3327   else
3328   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
3329     [ VLC_ADD_PLUGIN([quicktime])
3330       VLC_ADD_LDFLAGS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
3331     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
3332   fi
3333 fi
3334
3335 dnl
3336 dnl  Real plugin
3337 dnl
3338 AC_ARG_ENABLE(real,
3339   [  --enable-real           Real media module (default disabled)])
3340 if test "${enable_real}" = "yes"; then
3341   VLC_ADD_PLUGIN([realaudio])
3342   VLC_ADD_PLUGIN([realvideo])
3343 fi
3344
3345 dnl
3346 dnl  Real RTSP plugin
3347 dnl
3348 AC_ARG_ENABLE(realrtsp,
3349   [  --enable-realrtsp       Real RTSP module (default disabled)])
3350 if test "${enable_realrtsp}" = "yes"; then
3351   VLC_ADD_PLUGIN([access_realrtsp])
3352 fi
3353
3354 AC_ARG_ENABLE(libsysfs,
3355   [  --enable-libsysfs       Get user key from firewire connected iPod via libsysfs (default enabled)])
3356
3357 AS_IF([test "${enable_libsysfs}" != "no"],[
3358   AC_CHECK_HEADERS(sysfs/libsysfs.h, [
3359     VLC_ADD_LIBS([mp4 mkv],[-lsysfs])
3360   ] )
3361 ])
3362
3363 dnl
3364 dnl skins2 module
3365 dnl
3366 AC_ARG_ENABLE(libtar,
3367   [  --enable-libtar         libtar support for skins2 (default enabled)])
3368
3369 AS_IF([test "${enable_libtar}" != "no"],[
3370   AC_CHECK_HEADERS(libtar.h, [
3371     VLC_ADD_LIBS([skins2],[-ltar])
3372   ] )
3373 ])
3374
3375 dnl
3376 dnl A52/AC3 decoder plugin
3377 dnl
3378 AC_ARG_ENABLE(a52,
3379   [  --enable-a52            A/52 support with liba52 (default enabled)])
3380 if test "${enable_a52}" != "no"
3381 then
3382   AC_ARG_WITH(a52,
3383     [    --with-a52=PATH       a52 headers and libraries])
3384   AC_ARG_WITH(a52-tree,
3385     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
3386   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
3387   then
3388     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
3389     if test -z "${real_a52_tree}"
3390     then
3391       dnl  The given directory can't be found
3392       AC_MSG_RESULT(no)
3393       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
3394     fi
3395     dnl  Use a custom a52dec
3396     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
3397     if test -f ${real_a52_tree}/include/a52.h
3398     then
3399       AC_MSG_RESULT(yes)
3400       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
3401       VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
3402       LDFLAGS="${LDFLAGS_save} ${LIBS_a52tofloat32}"
3403       AC_CHECK_LIB(a52, a52_free, [
3404         VLC_ADD_PLUGIN([a52tofloat32])
3405         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
3406         VLC_ADD_LIBS([a52tofloat32],[-la52])
3407         ],[
3408         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
3409         then
3410           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
3411         else
3412           AC_MSG_ERROR([the specified tree hasn't been compiled])
3413         fi
3414       ])
3415       LDFLAGS="${LDFLAGS_save}"
3416     else
3417       AC_MSG_RESULT(no)
3418       AC_MSG_ERROR([the specified tree doesn't have a52.h])
3419     fi
3420   else
3421     if test -z "${with_a52}"
3422     then
3423       LDFLAGS_test=""
3424       CPPFLAGS_test=""
3425     else
3426       LDFLAGS_test="-L${with_a52}/lib"
3427       CPPFLAGS_test="-I${with_a52}/include"
3428     fi
3429     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
3430     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
3431     AC_CHECK_HEADERS(a52dec/a52.h, [
3432       AC_CHECK_LIB(a52, a52_free, [
3433         VLC_ADD_PLUGIN([a52tofloat32])
3434         VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
3435         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
3436       ],[
3437         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.])
3438         ])
3439     ],[
3440       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.])
3441     ])
3442     CPPFLAGS="${CPPFLAGS_save}"
3443     LDFLAGS="${LDFLAGS_save}"
3444   fi
3445 fi
3446
3447 AC_ARG_WITH(a52-fixed,
3448       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
3449       [
3450         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
3451
3452 dnl
3453 dnl DTS Coherent Acoustics decoder plugin
3454 dnl
3455 AS_IF([test "x${enable_dts}" != "x"], [
3456   AC_MSG_ERROR([--enable-dts is obsolete. Please use libdca and --enable-dca.])
3457 ])
3458 AS_IF([test "x${with_dts_tree}" != "x"], [
3459   AC_MSG_ERROR([--with-dts-tree is obsolete. Please use libdca and --with-dca-tree.])
3460 ])
3461
3462 AC_ARG_ENABLE(dca,
3463   AS_HELP_STRING([--enable-dca],[DTS Coherent Acoustics support with libdca
3464                   (default enabled)]))
3465 AS_IF([test "${enable_dca}" != "no"], [
3466   AC_ARG_WITH(dca-tree,
3467     [    --with-dca-tree=PATH  libdca tree for static linking],,
3468     [with_dca_tree="no"])
3469   AS_IF([test "${with_dca_tree}" != "no"], [
3470     real_dca_tree="`cd ${with_dca_tree} 2>/dev/null && pwd`"
3471     AS_IF([test -z "${real_dca_tree}"], [
3472       dnl  The given directory can't be found
3473       AC_MSG_RESULT(no)
3474       AC_MSG_ERROR([${with_dca_tree} directory doesn't exist])
3475     ])
3476     dnl  Use a custom libdca
3477     AC_MSG_CHECKING(for libdca in ${real_dca_tree})
3478     AS_IF([test -f "${real_dca_tree}/libdca/.libs/libdca.a"], [
3479       AC_MSG_RESULT(yes)
3480       VLC_ADD_LIBS([dtstofloat32],[${real_dca_tree}/libdca/.libs/libdca.a])
3481       AS_IF([test -f "${real_dca_tree}/include/dca.h"], [
3482         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/include])
3483       ], [
3484         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/../include])
3485       ])
3486     ], [
3487       AC_MSG_RESULT(no)
3488       AC_MSG_ERROR([the specified tree doesn't have libdca/.libs/libdca.a])
3489     ])
3490   ], [
3491     PKG_CHECK_MODULES([DCA], [libdca >= 0.0.5], [
3492       VLC_ADD_PLUGIN([dtstofloat32])
3493       VLC_ADD_CPPFLAGS([dtstofloat32], [${DCA_CFLAGS}])
3494       VLC_ADD_LIBS([dtstofloat32], [${DCA_LIBS}])
3495     ], [
3496       AS_IF([test "x${enable_dca}" != "x"], [
3497         AC_MSG_ERROR([${DCA_PKG_ERRORS}])
3498       ])
3499     ])
3500   ])
3501 ])
3502
3503 dnl
3504 dnl  Flac plugin
3505 dnl
3506 AC_ARG_ENABLE(flac,
3507   [  --enable-flac           libflac decoder/encoder support (default disabled)])
3508 if test "${enable_flac}" = "yes"
3509 then
3510   AC_ARG_WITH(flac-tree,
3511   [    --with-flac-tree=PATH flac tree for static linking])
3512   if test -n "${with_flac_tree}"
3513   then
3514     AC_MSG_CHECKING(for libFLAC.a in ${with_flac_tree})
3515     real_flac_tree="`cd ${with_flac_tree} 2>/dev/null && pwd`"
3516     if test -z "${real_flac_tree}"
3517     then
3518       dnl  The given directory can't be found
3519       AC_MSG_RESULT(no)
3520       AC_MSG_ERROR([cannot cd to ${with_flac_tree}])
3521     fi
3522     if test -f "${real_flac_tree}/src/libFLAC/.libs/libFLAC.a"
3523     then
3524       dnl  Use a custom flac
3525       AC_MSG_RESULT(${real_flac_tree}/src/libFLAC/.libs/libFLAC.a)
3526       VLC_ADD_LIBS([flac],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a])
3527       VLC_ADD_CFLAGS([flac],[-I${real_flac_tree}/include])
3528       AC_DEFINE(HAVE_FLAC_STREAM_DECODER_H, 1, [Define if you have FLAC])
3529     else
3530       dnl  The given flac wasn't built
3531       AC_MSG_RESULT(no)
3532       AC_MSG_ERROR([cannot find ${real_flac_tree}/src/libFLAC/.libs/libFLAC.a, make sure you compiled flac in ${with_flac_tree}])
3533     fi
3534   else
3535     AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
3536       VLC_ADD_LIBS([flac],[-lFLAC -logg])
3537      ],[])
3538   fi
3539 fi
3540
3541 dnl
3542 dnl  Libmpeg2 plugin
3543 dnl
3544 AC_ARG_ENABLE(libmpeg2,
3545   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
3546 if test "${enable_libmpeg2}" != "no"
3547 then
3548   AC_ARG_WITH(libmpeg2-tree,
3549   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
3550   AS_IF([test -n "${with_libmpeg2_tree}"],[
3551     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
3552     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
3553     if test -z "${real_libmpeg2_tree}"
3554     then
3555       dnl  The given directory can't be found
3556       AC_MSG_RESULT(no)
3557       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
3558     fi
3559     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
3560     then
3561       dnl  Use a custom libmpeg2
3562       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
3563       VLC_ADD_PLUGIN([libmpeg2])
3564       VLC_ADD_LIBS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
3565       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
3566     else
3567       dnl  The given libmpeg2 wasn't built
3568       AC_MSG_RESULT(no)
3569       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
3570     fi
3571   ],[
3572    PKG_CHECK_MODULES(LIBMPEG2,[libmpeg2 > 0.3.2],[
3573           VLC_ADD_PLUGIN([libmpeg2])
3574           VLC_ADD_LIBS([libmpeg2], $LIBMPEG2_LIBS)
3575           VLC_ADD_CFLAGS([libmpeg2], $LIBMPEG2_CFLAGS)
3576        ],
3577       AC_MSG_WARN([Could not find libmpeg2 on your system: you may get it from http://libmpeg2.sf.net/ . Alternatively you can use --disable-libmpeg2 to disable the libmpeg2 plugin.]))
3578   ])
3579 fi
3580
3581 dnl
3582 dnl  Vorbis plugin
3583 dnl
3584 AC_ARG_ENABLE(vorbis,
3585   [  --enable-vorbis         Vorbis decoder support (default enabled)])
3586 if test "${enable_vorbis}" != "no"
3587 then
3588   AC_ARG_WITH(vorbis-tree,
3589   [    --with-vorbis-tree=PATH vorbis tree for static linking])
3590   if test -n "${with_vorbis_tree}"
3591   then
3592     AC_MSG_CHECKING(for libvorbis.a in ${with_vorbis_tree})
3593     real_vorbis_tree="`cd ${with_vorbis_tree} 2>/dev/null && pwd`"
3594     if test -z "${real_vorbis_tree}"
3595     then
3596       dnl  The given directory can't be found
3597       AC_MSG_RESULT(no)
3598       AC_MSG_ERROR([cannot cd to ${with_vorbis_tree}])
3599     fi
3600     if test -f "${real_vorbis_tree}/lib/.libs/libvorbis.a"
3601     then
3602       dnl  Use a custom vorbis
3603       AC_MSG_RESULT(${real_vorbis_tree}/lib/.libs/libvorbis.a)
3604       VLC_ADD_PLUGIN([vorbis])
3605       VLC_ADD_LIBS([vorbis],[${real_vorbis_tree}/lib/.libs/libvorbis.a ${real_vorbis_tree}/lib/.libs/libvorbisenc.a])
3606       VLC_ADD_CFLAGS([vorbis],[-I${real_vorbis_tree}/include])
3607     else
3608       dnl  The given vorbis wasn't built
3609       AC_MSG_RESULT(no)
3610       AC_MSG_ERROR([cannot find ${real_vorbis_tree}/lib/.libs/libvorbis.a, make sure you compiled vorbis in ${with_vorbis_tree}])
3611     fi
3612   else
3613     AC_CHECK_HEADERS(vorbis/codec.h, [
3614       VLC_ADD_PLUGIN([vorbis])
3615       VLC_ADD_LIBS([vorbis],[-lvorbis -logg -lm]) ],[])
3616
3617     AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
3618       VLC_ADD_LIBS([vorbis],[-lvorbisenc -lm]) ],[])
3619   fi
3620 fi
3621
3622 dnl
3623 dnl  Tremor plugin
3624 dnl
3625 AC_ARG_ENABLE(tremor,
3626   [  --enable-tremor         Tremor decoder support (default disabled)])
3627 if test "${enable_tremor}" = "yes"
3628 then
3629   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3630     VLC_ADD_PLUGIN([tremor])
3631     VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
3632    ],[])
3633 fi
3634
3635 dnl
3636 dnl  Speex plugin
3637 dnl
3638 AC_ARG_ENABLE(speex,
3639   [  --enable-speex          Speex decoder support (default enabled)])
3640 if test "${enable_speex}" != "no"
3641 then
3642   AC_ARG_WITH(speex-tree,
3643   [    --with-speex-tree=PATH speex tree for static linking])
3644   if test -n "${with_speex_tree}"
3645   then
3646     AC_MSG_CHECKING(for libspeex.a in ${with_speex_tree})
3647     real_speex_tree="`cd ${with_speex_tree} 2>/dev/null && pwd`"
3648     if test -z "${real_speex_tree}"
3649     then
3650       dnl  The given directory can't be found
3651       AC_MSG_RESULT(no)
3652       AC_MSG_ERROR([cannot cd to ${with_speex_tree}])
3653     fi
3654     if test -f "${real_speex_tree}/libspeex/.libs/libspeex.a"
3655     then
3656       dnl  Use a custom speex
3657       AC_MSG_RESULT(${real_speex_tree}/libspeex/.libs/libspeex.a)
3658       VLC_ADD_PLUGIN([speex])
3659       VLC_ADD_LIBS([speex],[${real_speex_tree}/libspeex/.libs/libspeex.a])
3660       VLC_ADD_CFLAGS([speex],[-I${real_speex_tree}/include])
3661     else
3662       dnl  The given speex wasn't built
3663       AC_MSG_RESULT(no)
3664       AC_MSG_ERROR([cannot find ${real_speex_tree}/libspeex/.libs/libspeex.a, make sure you compiled speex in ${with_speex_tree}])
3665     fi
3666   else
3667     AC_CHECK_HEADERS(speex/speex.h, [
3668       LDFLAGS="${LDFLAGS_save} ${LIBS_speex}"
3669       AC_CHECK_LIB(speex, speex_decode_int, [
3670         VLC_ADD_PLUGIN([speex])
3671         VLC_ADD_LIBS([speex],[-lspeex]) ],
3672         [ AC_MSG_RESULT([no])
3673           AC_MSG_WARN([Your libspeex is too old, please get the development
3674                        version.]) ],[])
3675       LDFLAGS="${LDFLAGS_save}"
3676       ],[])
3677   fi
3678 fi
3679
3680 dnl
3681 dnl  tarkin decoder plugin
3682 dnl
3683 AC_ARG_ENABLE(tarkin,
3684 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3685 if test "${enable_tarkin}" = "yes"
3686 then
3687   AC_ARG_WITH(tarkin-tree,
3688   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3689   if test -n "${with_tarkin_tree}"
3690   then
3691     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3692     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3693     if test -f "${real_tarkin_tree}/tarkin.o"
3694     then
3695       VLC_ADD_PLUGIN([tarkin])
3696       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3697       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])
3698       AC_MSG_RESULT(yes)
3699     else
3700       dnl  The given tarkin tree wasn't built
3701       AC_MSG_RESULT(no)
3702       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3703                     make sure you compiled tarkin in ${with_tarkin_tree}])
3704     fi
3705   fi
3706 fi
3707
3708 dnl
3709 dnl  theora decoder plugin
3710 dnl
3711 AC_ARG_ENABLE(theora,
3712 [  --enable-theora         experimental theora codec (default disabled)])
3713 if test "${enable_theora}" = "yes"
3714 then
3715   AC_CHECK_HEADERS(theora/theora.h, [
3716     AC_CHECK_LIB(theora, theora_granule_time, [
3717       VLC_ADD_PLUGIN([theora])
3718       theora_libs="-ltheora -logg"
3719       VLC_ADD_LIBS([theora],[${theora_libs}]) ],[
3720       AC_MSG_ERROR([libtheora doesn't appear to be installed on your system.
3721 You also need to check that you have a libogg posterior to the 1.0 release.])],
3722       [-logg])
3723   ])
3724 fi
3725
3726 dnl
3727 dnl  dirac decoder plugin
3728 dnl
3729 AC_ARG_ENABLE(dirac,
3730 [  --enable-dirac          experimental dirac codec (default disabled)])
3731 if test "${enable_dirac}" = "yes"; then
3732   PKG_CHECK_MODULES(DIRAC,[dirac >= 0.10.0], [
3733       VLC_ADD_PLUGIN([dirac])
3734       VLC_ADD_CFLAGS([dirac],[$DIRAC_CFLAGS])
3735       VLC_ADD_LIBS([dirac],[$DIRAC_LIBS -lstdc++]) ],[
3736       AC_MSG_ERROR([libdirac >= 0.10.0 doesn't appear to be installed on your system.])
3737   ])
3738 fi
3739
3740 dnl
3741 dnl  schroedinger decoder plugin (for dirac format video)
3742 dnl
3743 AC_ARG_ENABLE(schroedinger,
3744 [  --disable-schroedinger  high performance dirac codec (default enabled)])
3745 if test "${enable_schroedinger}" != "no"; then
3746   PKG_CHECK_MODULES(SCHROEDINGER,[schroedinger-1.0 >= 1.0.6], [
3747       VLC_ADD_PLUGIN([schroedinger])
3748       VLC_ADD_CFLAGS([schroedinger],[$SCHROEDINGER_CFLAGS])
3749       VLC_ADD_LIBS([schroedinger],[$SCHROEDINGER_LIBS]) ], [
3750         AS_IF([test "x${enable_schroedinger}" != "x"], [
3751           AC_MSG_ERROR([${SCHROEDINGER_PKG_ERRORS}])
3752         ])
3753 ])
3754 fi
3755
3756 dnl
3757 dnl  PNG decoder module
3758 dnl
3759 AC_ARG_ENABLE(png,
3760   [  --enable-png            PNG support (default enabled)])
3761 if test "${enable_png}" != "no"; then
3762 AC_CHECK_HEADERS(png.h, [
3763   LDFLAGS="${LDFLAGS_save} -lz"
3764   AC_CHECK_LIB(png, png_set_rows, [
3765     VLC_ADD_LIBS([png],[-lpng -lz])
3766     VLC_ADD_PLUGIN([png])
3767     VLC_ADD_PLUGIN([osdmenu])
3768     VLC_ADD_PLUGIN([osd_parser])
3769     AC_DEFINE(HAVE_LIBPNG, 1, [Define if you have the PNG library: libpng])],
3770     [],[-lz])
3771     LDFLAGS="${LDFLAGS_save}"
3772   ])
3773 fi
3774 AM_CONDITIONAL(BUILD_OSDMENU, [test "${enable_png}" != "no"])
3775
3776 dnl
3777 dnl H264 encoder plugin (using libx264)
3778 dnl
3779 AC_ARG_ENABLE(x264,
3780   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3781 if test "${enable_x264}" != "no"; then
3782   AC_ARG_WITH(x264-tree,
3783     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3784   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3785   then
3786     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3787     if test -z "${real_x264_tree}"
3788     then
3789       dnl  The given directory can't be found
3790       AC_MSG_RESULT(no)
3791       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3792     fi
3793     dnl  Use a custom libx264
3794     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3795     if test -f ${real_x264_tree}/x264.h
3796     then
3797       AC_MSG_RESULT(yes)
3798       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3799       VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
3800       PKG_CHECK_MODULES(X264,x264, [
3801         VLC_ADD_PLUGIN([x264])
3802         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3803         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3804         if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3805           VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3806         fi
3807       ],[
3808         AC_MSG_ERROR([the specified tree hasn't been compiled])
3809       ])
3810       LDFLAGS="${LDFLAGS_save}"
3811     else
3812       AC_MSG_RESULT(no)
3813       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3814     fi
3815   else
3816       PKG_CHECK_MODULES(X264,x264, [
3817         VLC_ADD_PLUGIN([x264])
3818         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3819
3820         AC_CACHE_CHECK([if linker supports -Bsymbolic],
3821           [ac_cv_ld_bsymbolic],
3822           [LDFLAGS="${LDFLAGS_vlc} -Wl,-Bsymbolic"
3823             AC_TRY_LINK([],,ac_cv_ld_bsymbolic=yes,ac_cv_ld_bsymbolic=no)
3824             LDFLAGS="${LDFLAGS_save}"
3825           ])
3826         AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
3827           VLC_ADD_LDFLAGS([x264],[-Wl,-Bsymbolic])
3828         ])
3829
3830         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3831         if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3832           VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3833         fi
3834       ],[
3835         if test "${enable_x264}" = "yes"; then
3836             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
3837           fi
3838       ])
3839     LDFLAGS="${LDFLAGS_save}"
3840   fi
3841 fi
3842
3843 dnl
3844 dnl libfluidsynth (MIDI synthetizer) plugin
3845 dnl
3846 AC_ARG_ENABLE(fluidsynth,
3847   [  --enable-fluidsynth     MIDI synthesisr with libfluidsynth (default enabled)])
3848 AS_IF([test "x${enable_fluidsynth}" != "xno"], [
3849   PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth, [
3850     VLC_ADD_PLUGIN(fluidsynth)
3851     VLC_ADD_CFLAGS(fluidsynth, [${FLUIDSYNTH_CFLAGS}])
3852     VLC_ADD_LIBS(fluidsynth, [${FLUIDSYNTH_LIBS}])
3853   ], [
3854     AS_IF([test "x${enable_fluidsynth}" != "x"], [
3855       AC_MSG_ERROR([${FLUIDSYNTH_PKG_ERRORS}])
3856     ])
3857   ])
3858 ])
3859
3860 dnl
3861 dnl Teletext Modules
3862 dnl vbi decoder plugin (using libzbvi)
3863 dnl telx module
3864 dnl uncompatible
3865 dnl
3866 AC_ARG_ENABLE(zvbi,
3867   AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
3868                   libzvbi (default enabled)]))
3869 AC_ARG_ENABLE(telx,
3870   AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
3871                   zvbi) (default enabled if zvbi is absent)]))
3872
3873 AS_IF( [test "${enable_zvbi}" != "no"],[
3874     PKG_CHECK_MODULES(ZVBI,
3875         zvbi-0.2 >= 0.2.25,
3876         [
3877           VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
3878           VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
3879           VLC_ADD_PLUGIN([zvbi])
3880           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
3881           AS_IF( [test "${enable_telx}" = "yes"],[
3882                   AC_MSG_WARN([The zvbi and telx modules are uncompatibles.
3883                                Using zvbi.])
3884                   ])
3885         ],[
3886           AC_MSG_WARN(ZVBI library not found. Enabling the telx module instead)
3887         ])
3888     ])
3889 AS_IF( [test "${enable_telx}" != "no" ],[
3890   VLC_ADD_PLUGIN([telx])
3891   ])
3892
3893 dnl
3894 dnl asa/csri subtitle rendering module
3895 dnl
3896 AC_ARG_ENABLE(csri,
3897   [  --enable-csri           Subtitle support using CSRI / asa (default disabled)])
3898 AS_IF( [test "${enable_csri}" = "yes"], [
3899   PKG_CHECK_MODULES(CSRI,
3900       csri >= 0.1.0,
3901       [
3902         VLC_ADD_LDFLAGS([csri],[$CSRI_LIBS])
3903         VLC_ADD_CFLAGS([csri],[$CSRI_CFLAGS])
3904         VLC_ADD_PLUGIN([csri])
3905       ],[
3906         AC_MSG_WARN([CSRI helper library not found])
3907       ])
3908   ])
3909
3910 dnl
3911 dnl libass subtitle rendering module
3912 dnl
3913 AC_ARG_ENABLE(libass,
3914   [  --enable-libass         Subtitle support using libass (default disabled)])
3915 AS_IF( [test "${enable_libass}" = "yes"], [
3916   PKG_CHECK_MODULES(LIBASS, libass >= 0.9.5,
3917       [
3918         VLC_ADD_LDFLAGS([libass],[$LIBASS_LIBS])
3919         VLC_ADD_CFLAGS([libass],[$LIBASS_CFLAGS])
3920         VLC_ADD_PLUGIN([libass])
3921
3922         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
3923           [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
3924         if test "${SYS}" = "mingw32"; then
3925            VLC_ADD_LIBS([libass],[-lfontconfig -lfreetype -liconv -lz -lxml2])
3926         else
3927            VLC_ADD_LIBS([libass],[-lfontconfig])
3928         fi
3929        ])
3930       ],[
3931         AC_MSG_WARN([LIBASS library not found])
3932       ])
3933   ])
3934
3935 dnl
3936 dnl asa demuxer
3937 dnl
3938 AC_ARG_ENABLE(asademux,
3939   [  --enable-asademux       asa subtitle demuxing (default disabled)])
3940 AS_IF( [test "${enable_asademux}" = "yes"], [
3941   PKG_CHECK_MODULES(PCRE,
3942       libpcre >= 6.5,
3943       [
3944         VLC_ADD_LDFLAGS([asademux],[$PCRE_LIBS])
3945         VLC_ADD_CFLAGS([asademux],[$PCRE_CFLAGS])
3946         if test "${SYS}" = "mingw32"; then
3947                 VLC_ADD_CPPFLAGS([asademux],[-DPCRE_STATIC])
3948         fi
3949         VLC_ADD_PLUGIN([asademux])
3950       ],[
3951         AC_MSG_WARN([PCRE library not found (required for asademux)])
3952       ])
3953   ])
3954
3955 dnl
3956 dnl  CMML plugin
3957 dnl
3958 AC_ARG_ENABLE(cmml,
3959   [  --enable-cmml           CMML support (default enabled)])
3960 if test "${enable_cmml}" != "no"
3961 then
3962   VLC_ADD_PLUGIN([cmml])
3963 fi
3964
3965 dnl
3966 dnl  kate decoder plugin
3967 dnl
3968 AC_ARG_ENABLE(kate,
3969 [  --enable-kate           kate codec (default enabled)])
3970 AS_IF([test "${enable_kate}" != "no"], [
3971   PKG_CHECK_MODULES(KATE,[kate >= 0.1.5], [
3972       VLC_ADD_PLUGIN([kate])
3973       VLC_ADD_CFLAGS([kate],[$KATE_CFLAGS])
3974       VLC_ADD_LIBS([kate],[$KATE_LIBS]) ],[
3975         AC_CHECK_HEADERS(kate/kate.h, [
3976           AC_CHECK_LIB(kate, kate_decode_init, [
3977             VLC_ADD_PLUGIN([kate])
3978             kate_libs="-lkate -logg"
3979             VLC_ADD_LDFLAGS([kate],[${kate_libs}]) ],[
3980             AS_IF([test "x${enable_kate}" != "x"], [
3981               AC_MSG_ERROR([libkate doesn't appear to be installed on your system.
3982               You also need to check that you have a libogg posterior to the 1.0 release.])
3983             ])
3984           ], [-lkate -logg])
3985         ],[
3986           AS_IF([test "x${enable_kate}" != "x"], [
3987             AC_MSG_ERROR([libkate headers do not appear to be installed on your system.
3988             You also need to check that you have a libogg posterior to the 1.0 release.])
3989           ])
3990         ])
3991   ])
3992 ])
3993
3994
3995 dnl
3996 dnl  tiger decoder plugin
3997 dnl
3998 AC_ARG_ENABLE(tiger,
3999 [  --enable-tiger          Tiger rendering library for Kate streams (default enabled)])
4000 AS_IF([test "${enable_tiger}" != "no"], [
4001   PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
4002       AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])
4003       VLC_ADD_CFLAGS([kate],[$TIGER_CFLAGS])
4004       VLC_ADD_LIBS([kate],[$TIGER_LIBS]) ],[
4005         AS_IF([test "x${enable_tiger}" != "x"], [
4006           AC_MSG_ERROR([libtiger does not appear to be installed on your system.])
4007         ])
4008   ])
4009 ])
4010
4011
4012 dnl
4013 dnl  Video plugins
4014 dnl
4015
4016 AC_ARG_WITH(,[Video plugins:])
4017
4018 dnl
4019 dnl  Xlib
4020 dnl
4021
4022 AC_PATH_XTRA()
4023 AC_ARG_ENABLE(x11,
4024   [  --enable-x11            X11 support (default enabled)],, [
4025   AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"], [
4026     enable_x11="yes"
4027   ], [
4028     enable_x11="no"
4029   ])
4030 ])
4031
4032 CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
4033
4034 AS_IF([test "${enable_x11}" != "no"], [
4035   AC_CHECK_HEADERS(X11/Xlib.h, [
4036     VLC_ADD_PLUGIN([x11_screen])
4037     VLC_ADD_CPPFLAGS([x11_screen],[${X_CFLAGS}])
4038     VLC_ADD_LIBS([x11_screen],[${X_LIBS} ${X_PRE_LIBS} -lX11])
4039
4040     VLC_ADD_PLUGIN([panoramix])
4041     VLC_ADD_LIBS([panoramix],[${X_LIBS} ${X_PRE_LIBS} -lX11])
4042     VLC_ADD_CPPFLAGS([panoramix],[${X_CFLAGS}])
4043
4044     VLC_ADD_PLUGIN([x11])
4045     VLC_ADD_LIBS([x11],[${X_LIBS} ${X_PRE_LIBS} -lX11])
4046     VLC_ADD_CPPFLAGS([x11],[${X_CFLAGS}])
4047
4048     AC_CHECK_LIB(Xext, XShmAttach, [VLC_ADD_LIBS([x11],[-lXext])])
4049   ])
4050
4051 dnl Check for DPMS
4052   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
4053     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
4054     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
4055       AC_MSG_RESULT(yes)
4056       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
4057                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
4058     ],[
4059       AC_MSG_RESULT(no)
4060     ])
4061   ],,[
4062     #include <X11/Xlib.h>
4063   ])
4064 ])
4065
4066 dnl
4067 dnl  XVideo module
4068 dnl  (enabled by default except on win32)
4069 dnl
4070 AC_ARG_ENABLE(xvideo,
4071   [  --enable-xvideo         XVideo support (default enabled)],, [
4072     enable_xvideo="$enable_x11"
4073 ])
4074 AS_IF([test "${enable_xvideo}" != "no"], [
4075   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
4076     CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
4077     AC_CHECK_LIB(Xv,XvPutImage,[
4078         VLC_ADD_PLUGIN([xvideo])
4079         VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
4080         VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
4081     ])
4082     CFLAGS="${CFLAGS_save}"
4083   ])
4084 ])
4085
4086 dnl
4087 dnl  GLX module
4088 dnl  (enabled by default except on win32)
4089 dnl
4090 AC_ARG_ENABLE(glx,
4091   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)],, [
4092   enable_glx="$enable_x11"
4093 ])
4094 AS_IF([test "${enable_glx}" != "no"], [
4095   AC_CHECK_HEADERS(X11/Xlib.h GL/glu.h GL/glx.h)
4096   AC_COMPILE_IFELSE(AC_LANG_PROGRAM(
4097     [[#if !defined(HAVE_X11_XLIB_H) || !defined(HAVE_GL_GLU_H) || !defined(HAVE_GL_GLX_H)
4098     choke me
4099     #endif]]),
4100     [
4101       VLC_ADD_PLUGIN([glx])
4102       VLC_ADD_LIBS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU])
4103       VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}])
4104     ],[AC_MSG_ERROR([Please install GL development package. Alternatively you can also configure with --disable-glx.])])
4105 ])
4106
4107 dnl
4108 dnl  XVMC module
4109 dnl  (disabled by default except on win32)
4110 dnl
4111 AC_ARG_ENABLE(xvmc,
4112   [  --enable-xvmc           XVMC support (default disabled)],, [
4113   enable_xvmc="no"
4114 ])
4115 AS_IF([test "${enable_xvmc}" != "no"], [
4116   AC_CHECK_HEADERS(X11/extensions/vldXvMC.h, [
4117     VLC_ADD_PLUGIN([xvmc])
4118     VLC_ADD_LIBS([xvmc],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXvMCW -lXv ${LIBMPEG2_LIBS}])
4119     VLC_ADD_CPPFLAGS([xvmc],[${X_CFLAGS} ${LIBMPEG2_CFLAGS}])
4120   ], [
4121     AC_MSG_ERROR([XVideo-MotionCompensation extension not found!])
4122   ])
4123 ])
4124
4125 dnl
4126 dnl  Check for the Xinerama extension
4127 dnl
4128 AC_ARG_ENABLE(xinerama,
4129   [  --enable-xinerama       Xinerama support (default enabled)],, [
4130   enable_xinerama="$enable_xvideo"
4131 ])
4132 AS_IF([test "$enable_xinerama" != "no"], [
4133   ac_cv_have_xinerama="no"
4134   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
4135   AC_CHECK_HEADERS(X11/extensions/Xinerama.h,[
4136     AC_CHECK_LIB(Xinerama_pic, XineramaQueryExtension,[
4137       VLC_ADD_LIBS([xvideo],[-lXinerama_pic])
4138       VLC_ADD_LIBS([x11],[-lXinerama_pic])
4139       VLC_ADD_LIBS([glx],[-lXinerama_pic])
4140       ac_cv_have_xinerama="yes"
4141     ],[
4142       AC_CHECK_LIB(Xinerama, XineramaQueryExtension,[
4143         VLC_ADD_LIBS([xvideo],[-lXinerama])
4144         VLC_ADD_LIBS([x11],[-lXinerama])
4145         VLC_ADD_LIBS([glx],[-lXinerama])
4146         ac_cv_have_xinerama="yes"
4147       ])
4148     ])
4149   ])
4150   if test "${ac_cv_have_xinerama}" = "yes"; then
4151     AC_DEFINE(HAVE_XINERAMA, 1, [Define this if you have libXinerama installed])
4152   fi
4153
4154 dnl
4155 dnl  Check for XF86VidMode extension
4156 dnl
4157   ac_cv_have_xf86vidmode="no"
4158   AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,[
4159     AC_CHECK_LIB(Xxf86vm_pic, XF86VidModeGetViewPort,[
4160       VLC_ADD_LIBS([xvideo],[-lXxf86vm_pic])
4161       VLC_ADD_LIBS([x11],[-lXxf86vm_pic])
4162       VLC_ADD_LIBS([glx],[-lXxf86vm_pic])
4163       VLC_ADD_LIBS([xvmc],[-lXxf86vm_pic])
4164       ac_cv_have_xf86vidmode="yes"
4165     ],[
4166       AC_CHECK_LIB(Xxf86vm, XF86VidModeGetViewPort,[
4167         VLC_ADD_LIBS([xvideo],[-lXxf86vm])
4168         VLC_ADD_LIBS([x11],[-lXxf86vm])
4169         VLC_ADD_LIBS([glx],[-lXxf86vm])
4170         VLC_ADD_LIBS([xvmc],[-lXxf86vm])
4171         ac_cv_have_xf86vidmode="yes"
4172       ])
4173     ])
4174   ],[true],
4175 [#ifdef HAVE_X11_XLIB_H
4176 # include <X11/Xlib.h>
4177 #endif]
4178    )
4179   AS_IF([test "${ac_cv_have_xf86vidmode}" = "yes"],
4180     [AC_DEFINE(HAVE_XF86VIDMODE, 1, [Define this if you have libXxf86vm installed])
4181   ])
4182   CFLAGS="${CFLAGS_save}"
4183 ])
4184
4185 dnl End of Xlib tests
4186 CPPFLAGS="${CPPFLAGS_save}"
4187
4188
4189 dnl
4190 dnl  X C Bindings modules
4191 dnl  (work in progress)
4192 dnl
4193 AC_ARG_ENABLE(xcb,
4194   [  --enable-xcb            X C Bindings work-in-progress (default disabled)],
4195   ,[enable_xcb="no"])
4196 AS_IF([test "${enable_xcb}" != "no"], [
4197   PKG_CHECK_MODULES(XPROTO, [xproto])
4198
4199   dnl libxcb
4200   PKG_CHECK_MODULES(XCB, [xcb])
4201   PKG_CHECK_MODULES(XCB_SHM, [xcb-shm])
4202
4203   dnl xcb-utils
4204   PKG_CHECK_MODULES(XCB_AUX, [xcb-aux])
4205   PKG_CHECK_MODULES(XCB_IMAGE, [xcb-image])
4206   PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms])
4207
4208   VLC_ADD_PLUGIN([xcb])
4209   VLC_ADD_PLUGIN([xcb_window])
4210 ])
4211
4212 dnl
4213 dnl  OpenGL module
4214 dnl  (enabled by default except on beos)
4215 dnl
4216 AC_ARG_ENABLE(opengl,
4217   [  --enable-opengl         OpenGL support (default enabled)])
4218 if test "${enable_opengl}" != "no" &&
4219    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
4220   if test "${SYS}" != "darwin"; then
4221     AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
4222       VLC_ADD_PLUGIN([opengl])
4223       if test "${SYS}" != "mingw32"; then
4224         VLC_ADD_LIBS([opengl],[${X_LIBS} -lGL -lGLU])
4225       else
4226         VLC_ADD_LIBS([opengl],[-lopengl32 -lglu32])
4227       fi
4228     ])
4229   else
4230     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
4231     VLC_ADD_PLUGIN([opengl])
4232     VLC_ADD_LIBS([opengl],[-Wl,-framework,OpenGL])
4233   fi
4234 fi
4235
4236 dnl
4237 dnl  SDL module
4238 dnl
4239 AC_ARG_ENABLE(sdl,
4240   [  --enable-sdl            SDL support (default enabled)])
4241 AC_ARG_ENABLE(sdl-image,
4242   [  --enable-sdl-image      SDL image support (default enabled)])
4243 if test "${enable_sdl}" != "no"
4244 then
4245   SDL_PATH="${PATH}"
4246   AC_ARG_WITH(sdl-config-path,
4247     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
4248     [ if test "${with_sdl_config_path}" != "no"
4249       then
4250         SDL_PATH="${with_sdl_config_path}:${PATH}"
4251       fi ])
4252   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
4253   SDL_CONFIG="${SDL12_CONFIG}"
4254   SDL_HEADER="SDL12/SDL.h"
4255   SDL_IMAGE="SDL12/SDL_image.h"
4256   if test "${SDL_CONFIG}" = "no"
4257   then
4258     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
4259     SDL_CONFIG=${SDL11_CONFIG}
4260     SDL_HEADER="SDL11/SDL.h"
4261     SDL_IMAGE="SDL11/SDL_image.h"
4262   fi
4263   if test "${SDL_CONFIG}" = "no"
4264   then
4265     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
4266     SDL_HEADER="SDL/SDL.h"
4267     SDL_IMAGE="SDL/SDL_image.h"
4268   fi
4269   # check for cross-compiling
4270   SDL_PREFIX=
4271   AC_ARG_WITH(sdl-prefix,
4272     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
4273                                e.g use as:
4274                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
4275   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
4276   then
4277     SDL_PREFIX="--prefix=${with_sdl_prefix}"
4278   fi
4279   if test "${SDL_CONFIG}" != "no"
4280   then
4281     # SDL on Darwin is heavily patched and can only run SDL_image
4282     if test "${SYS}" != "darwin" -a "${SYS}" != "mingw32"; then
4283       VLC_ADD_PLUGIN([vout_sdl])
4284       VLC_ADD_PLUGIN([aout_sdl])
4285     fi
4286     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
4287     VLC_ADD_LIBS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
4288     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
4289     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
4290       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
4291       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
4292           As a last resort we also test for SDL.h presence),
4293       [ AC_MSG_ERROR([The development package for SDL is not installed.
4294 Please install it and try again. Alternatively you can also configure with
4295 --disable-sdl.])
4296       ])])
4297     AS_IF([ test "${enable_sdl_image}" != "no"],[
4298       AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
4299         <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
4300         VLC_ADD_PLUGIN([sdl_image])
4301         AC_CHECK_LIB(png, png_set_rows,
4302           [VLC_ADD_LIBS([sdl_image],[-lpng -lz])],[],[-lz])
4303         AC_CHECK_LIB(jpeg, jpeg_start_decompress,
4304           [VLC_ADD_LIBS([sdl_image],[-ljpeg])])
4305         AC_CHECK_LIB(tiff, TIFFClientOpen,
4306           [VLC_ADD_LIBS([sdl_image],[-ltiff])])
4307         VLC_ADD_LIBS([sdl_image], [-lSDL_image])],
4308         [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
4309             As a last resort we also test for SDL_image.h presence),
4310         [ AC_MSG_WARN([The development package for SDL_image is not installed.
4311   You should install it alongside your SDL package.])
4312         ])])
4313     ])
4314     CPPFLAGS="${CPPFLAGS_save}"
4315     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
4316     then
4317       AC_MSG_ERROR([The development package for SDL is not installed.
4318 Please install it and try again. Alternatively you can also configure with
4319 --disable-sdl.])
4320     fi
4321
4322   elif test "${enable_sdl}" =  "yes"
4323   then
4324     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
4325 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
4326     ])
4327   fi
4328 fi
4329
4330 dnl
4331 dnl  freetype module
4332 dnl
4333 AC_ARG_ENABLE(freetype,
4334   [  --enable-freetype       freetype support (default enabled)])
4335 AC_ARG_ENABLE(fribidi,
4336   [  --enable-fribidi        fribidi support (default enabled)])
4337 AC_ARG_ENABLE(fontconfig,
4338   [  --enable-fontconfig,    fontconfig support (default enabled)])
4339 if test "${enable_freetype}" != "no"
4340 then
4341    PKG_CHECK_MODULES(FREETYPE, freetype2,[
4342       VLC_ADD_PLUGIN([freetype])
4343       have_freetype=yes
4344       VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
4345       VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
4346       if test "${SYS}" = "mingw32"; then
4347         VLC_ADD_LIBS([freetype skins2],[-lxml2])
4348         VLC_ADD_LIBS([freetype],[-liconv])
4349       fi
4350       if test "${enable_fontconfig}" != "no"
4351       then
4352         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
4353           [VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
4354            VLC_ADD_LIBS([freetype],[-lfontconfig])])
4355         AC_CHECK_HEADERS(Carbon/Carbon.h,
4356           [VLC_ADD_LDFLAGS([freetype],[-Wl,-framework,Carbon])])
4357       fi
4358   ],[
4359   have_freetype=no
4360   AS_IF([ test "${enable_freetype}" =  "yes"],[
4361     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
4362 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
4363       ])
4364     ])
4365   ])
4366
4367   dnl fribidi support
4368   if test "${enable_fribidi}" != "no"
4369   then
4370     PKG_CHECK_MODULES(FRIBIDI, fribidi, [
4371       VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
4372       VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
4373     ])
4374     fi
4375 fi
4376
4377 dnl
4378 dnl  libxml2 module
4379 dnl
4380 AC_ARG_ENABLE(libxml2,
4381   [  --enable-libxml2        libxml2 support (default enabled)])
4382 AS_IF([test "${enable_libxml2}" != "no"], [
4383   PKG_CHECK_MODULES([XML2], [libxml-2.0 >= 2.5], [
4384     VLC_ADD_CPPFLAGS([xml],[${XML2_CFLAGS}])
4385     VLC_ADD_LIBS([xml],[${XML2_LIBS}])
4386     VLC_ADD_PLUGIN([xml])
4387   ], [
4388     AS_IF([test "x${enable_xml2}" != "x"], [
4389       AC_MSG_ERROR([Could not find libxml version 2.5 or higher])
4390     ])
4391   ])
4392 ])
4393
4394 dnl
4395 dnl  SVG module
4396 dnl
4397 AC_ARG_ENABLE(svg,
4398   [  --enable-svg            SVG support (default disabled)])
4399 if test "${enable_svg}" = "yes"
4400 then
4401   PKG_CHECK_MODULES(SVG,
4402         librsvg-2.0 >= 2.9.0,
4403         [
4404           VLC_ADD_LIBS([svg],[$SVG_LIBS])
4405           VLC_ADD_CFLAGS([svg],[$SVG_CFLAGS])
4406           VLC_ADD_PLUGIN([svg]) ],
4407         [AC_MSG_WARN(SVG library not found)])
4408 fi
4409
4410 dnl
4411 dnl Snapshot vout module (with cache)
4412 dnl
4413 AC_ARG_ENABLE(snapshot,
4414   [  --enable-snapshot       snapshot module (default disabled)])
4415 if test "${enable_snapshot}" = "yes"
4416 then
4417   VLC_ADD_PLUGIN([snapshot])
4418 fi
4419
4420 dnl
4421 dnl  Qt Embedded module
4422 dnl  (disabled by default)
4423 dnl
4424 AC_ARG_ENABLE(qte,
4425   [  --enable-qte            QT Embedded support (default disabled)])
4426 if test "${enable_qte}" = "yes"
4427 then
4428   AC_ARG_WITH(qte,
4429   [    --with-qte=PATH       Qt Embedded headers and libraries])
4430   if test "${with_qte}" != "no" -a -n "${with_qte}"
4431   then
4432     VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4433     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])
4434   else
4435     VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4436     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
4437   fi
4438   VLC_ADD_PLUGIN([qte])
4439   NEED_QTE_MAIN=yes
4440   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4441   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4442     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4443   ] )
4444   CPPFLAGS="${CPPFLAGS_save}"
4445 fi
4446
4447 dnl
4448 dnl Roku HD1000 Video output module
4449 dnl
4450 AC_ARG_ENABLE(hd1000v,
4451   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
4452 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
4453   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4454    test "${enable_hd1000v}" = "yes"); then
4455   AC_LANG_PUSH([C++])
4456   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
4457   [
4458     can_build_roku="yes"
4459   ],
4460   [
4461     can_build_roku="no"
4462     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
4463   ])
4464   if test "$can_build_roku" = "yes"
4465   then
4466     VLC_ADD_PLUGIN([hd1000v])
4467     VLC_ADD_LIBS([hd1000v],[-lCascade -ldvbpsi -lmad])
4468   fi
4469   AC_LANG_POP([C++])
4470 fi
4471
4472 dnl
4473 dnl  Windows DirectX module
4474 dnl
4475
4476 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4477 then
4478   VLC_ADD_PLUGIN([panoramix])
4479 fi
4480
4481 AC_ARG_ENABLE(directx,
4482   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
4483 if test "${enable_directx}" != "no"
4484 then
4485   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4486   then
4487     AC_ARG_WITH(directx,
4488     [    --with-directx=PATH   Win32 DirectX headers])
4489     if test -z "${with_directx}"
4490     then
4491       AC_CHECK_HEADERS(ddraw.h,
4492       [ VLC_ADD_PLUGIN([vout_directx])
4493         VLC_ADD_PLUGIN([aout_directx])
4494         VLC_ADD_LIBS([vout_directx],[-lgdi32])
4495       ])
4496       AC_CHECK_HEADERS(GL/gl.h,
4497       [ VLC_ADD_PLUGIN([glwin32])
4498         VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
4499       ])
4500       AC_CHECK_HEADERS(d3d9.h,
4501       [ VLC_ADD_PLUGIN([direct3d])
4502         VLC_ADD_LIBS([direct3d],[-lgdi32])
4503       ])
4504     else
4505       AC_MSG_CHECKING(for directX headers in ${with_directx})
4506       if test -f ${with_directx}/ddraw.h
4507       then
4508         VLC_ADD_PLUGIN([vout_directx])
4509         VLC_ADD_PLUGIN([aout_directx])
4510         VLC_ADD_CPPFLAGS([vout_directx aout_directx],[-I${with_directx}])
4511         VLC_ADD_LIBS([vout_directx],[-lgdi32])
4512         AC_MSG_RESULT(yes)
4513       else
4514         AC_MSG_RESULT(no)
4515         AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
4516       fi
4517     fi
4518   fi
4519 fi
4520
4521 dnl
4522 dnl  Linux framebuffer module
4523 dnl
4524 AC_ARG_ENABLE(fb,
4525   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
4526     if test "${enable_fb}" != "no"
4527     then
4528       AC_CHECK_HEADERS(linux/fb.h, [
4529         VLC_ADD_PLUGIN([fb])
4530       ])
4531     fi
4532
4533 dnl
4534 dnl  Linux MGA module
4535 dnl
4536 AC_ARG_ENABLE(mga,
4537   [  --enable-mga            Linux kernel Matrox support (default disabled)],
4538   [ if test "${enable_mga}" = "yes"
4539     then
4540       VLC_ADD_PLUGIN([mga])
4541     fi ])
4542
4543 dnl
4544 dnl  OMAP Framebuffer module
4545 dnl
4546 AC_ARG_ENABLE(omapfb,
4547   [  --enable-omapfb         OMAP framebuffer support (default disabled)])
4548     if test "${enable_omapfb}" = "yes"
4549     then
4550       AC_CHECK_HEADERS(asm/arch-omap/omapfb.h, [
4551         VLC_ADD_PLUGIN([omapfb])
4552         AC_CHECK_HEADERS(X11/Xlib.h, [
4553           VLC_ADD_LIBS([omapfb],[${X_LIBS} ${X_PRE_LIBS} -lX11]) ])
4554       ])
4555     fi
4556
4557 dnl
4558 dnl  SVGAlib module
4559 dnl
4560 AC_ARG_ENABLE(svgalib,
4561   [  --enable-svgalib        SVGAlib support (default disabled)])
4562 if test "${enable_svgalib}" = "yes"
4563 then
4564   VLC_ADD_PLUGIN([svgalib])
4565   VLC_ADD_LIBS([svgalib],[-lvgagl -lvga])
4566 fi
4567
4568 dnl
4569 dnl  DirectFB module
4570 dnl  try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
4571 dnl  TODO: support for static linking
4572 dnl
4573 AC_ARG_ENABLE(directfb,
4574   [  --enable-directfb       DirectFB support (default disabled)])
4575 AC_ARG_WITH(directfb,
4576   [    --with-directfb=PATH  path to DirectFB headers and libraries])
4577
4578 if test "${enable_directfb}" = "yes"; then
4579     have_directfb="false"
4580     CPPFLAGS_mydirectfb=
4581     LIBS_mydirectfb=
4582     if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
4583         dnl Trying the given location
4584         CPPFLAGS_save="${CPPFLAGS}"
4585         LIBS_save="${LIBS}"
4586
4587         CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
4588         LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/"
4589         LIBS_new="${LIBS_new} -L${with_directfb}/src/.libs/"
4590
4591         CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
4592         LIBS="${LIBS} ${LIBS_new}"
4593
4594         dnl FIXME: too obscure
4595         AC_CHECK_HEADER([directfb.h], [
4596             AC_CHECK_LIB([direct],[direct_initialize], [
4597                 AC_CHECK_LIB([fusion], [fusion_enter], [
4598                     AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
4599                 ], have_directfb="false")
4600             ], have_directfb="false")
4601         ], have_directfb="false")
4602
4603         dnl Restore flags
4604         CPPFLAGS="${CPPFLAGS_save}"
4605         LIBS="${LIBS_save}"
4606
4607         if test "${have_directfb}" = "true"; then
4608             LIBS_mydirectfb="${LIBS_new} -lz -ldl -ldirectfb -lfusion -ldirect -lpthread"
4609             CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
4610         fi
4611     else
4612         dnl Look for directfb-config
4613         AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
4614         if test "${DIRECTFB_CONFIG}" != "no"; then
4615             CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
4616             LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
4617             have_directfb="true"
4618         else
4619             dnl Trying with pkg-config
4620             PKG_CHECK_MODULES(DIRECTFB, directfb, [
4621                 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
4622                 LIBS_mydirectfb="${DIRECTFB_LIBS}"
4623                 have_directfb="true"
4624                 ], [have_directfb="false"])
4625         fi
4626     fi
4627     if test "${have_directfb}" = "true"; then
4628         VLC_ADD_PLUGIN([directfb])
4629         VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
4630         VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
4631     else
4632         AC_MSG_ERROR([cannot find directfb headers and/or libraries ])
4633     fi
4634 fi
4635
4636
4637
4638 dnl
4639 dnl  GGI module
4640 dnl
4641 AC_ARG_ENABLE(ggi,
4642   [  --enable-ggi            GGI support (default disabled)])
4643 if test "${enable_ggi}" = "yes"
4644 then
4645   AC_CHECK_HEADER([ggi/ggi.h],[
4646     VLC_ADD_PLUGIN([ggi])
4647     VLC_ADD_LIBS([ggi],[-lggi])
4648     AC_ARG_WITH(ggi,
4649       [    --with-ggi=PATH       path to libggi],
4650       [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
4651         then
4652           VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
4653           VLC_ADD_LIBS([ggi],[-L${with_ggi}/lib])
4654         fi ])
4655     ],[
4656        AC_MSG_ERROR([LibGGI development files can't be found])
4657     ])
4658 fi
4659
4660 dnl
4661 dnl  AA plugin
4662 dnl
4663 AC_ARG_ENABLE(aa,
4664   [  --enable-aa             aalib output (default disabled)])
4665 if test "${enable_aa}" = "yes"
4666 then
4667   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
4668   if test "${have_aa}" = "true"
4669   then
4670     VLC_ADD_PLUGIN([aa])
4671     VLC_ADD_LIBS([aa],[-laa])
4672   fi
4673 fi
4674
4675 dnl
4676 dnl  libcaca plugin
4677 dnl
4678 AC_ARG_ENABLE(caca,
4679   [  --enable-caca           libcaca output (default disabled)])
4680 if test "${enable_caca}" = "yes"
4681 then
4682   CACA_PATH="${PATH}"
4683   AC_ARG_WITH(caca-config-path,
4684     [    --with-caca-config-path=PATH caca-config path (default search in \$PATH)],
4685     [ if test "${with_caca_config_path}" != "no"
4686       then
4687         CACA_PATH="${with_caca_config_path}:${PATH}"
4688       fi ])
4689   AC_PATH_PROG(CACA_CONFIG, caca-config, no, ${CACA_PATH})
4690   if test "${CACA_CONFIG}" != "no"
4691   then
4692     VLC_ADD_PLUGIN([caca])
4693     VLC_ADD_CFLAGS([caca],[`${CACA_CONFIG} --cflags`])
4694     VLC_ADD_LIBS([caca],[`${CACA_CONFIG} --plugin-libs`])
4695     AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include <caca.h>
4696                                         caca_event_t ev;]],
4697                                         [[ev.type = 0;]]
4698                        )],
4699                        [],
4700       [AC_DEFINE(CACA_EVENT_OPAQUE, [1], ["Define if struct caca_event is opaque and must not be accessed directly"])]
4701     )
4702   fi
4703 fi
4704
4705 dnl
4706 dnl  win32 GDI plugin
4707 dnl
4708 AC_ARG_ENABLE(wingdi,
4709   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
4710 if test "${enable_wingdi}" != "no"; then
4711   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4712     VLC_ADD_PLUGIN([wingdi])
4713     VLC_ADD_LIBS([wingdi],[-lgdi32])
4714   fi
4715   if test "${SYS}" = "mingwce"; then
4716     VLC_ADD_PLUGIN([wingdi])
4717     VLC_ADD_PLUGIN([wingapi])
4718     VLC_ADD_LIBS([wingdi],[-laygshell])
4719     VLC_ADD_LIBS([wingapi],[-laygshell])
4720   fi
4721 fi
4722
4723 dnl
4724 dnl  Audio plugins
4725 dnl
4726
4727 AC_ARG_WITH(,[Audio plugins:])
4728
4729 dnl
4730 dnl  OSS /dev/dsp module (enabled by default except on win32)
4731 dnl
4732 AC_ARG_ENABLE(oss,
4733   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
4734
4735 if test "${enable_oss}" != "no" &&
4736   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4737    test "${enable_oss}" = "yes")
4738 then
4739   AC_CHECK_HEADERS(soundcard.h sys/soundcard.h machine/soundcard.h, [
4740     VLC_ADD_PLUGIN([oss])
4741     VLC_ADD_PLUGIN([access_oss])
4742     AC_CHECK_LIB(ossaudio,main,VLC_ADD_LIBS([oss],[-lossaudio]))
4743   ])
4744 fi
4745
4746 dnl
4747 dnl  Pulseaudio module
4748 dnl
4749 AC_ARG_ENABLE(pulse,
4750   [  --enable-pulse          Pulseaudio support (default enabled)])
4751   if test "${enable_pulse}" != "no"
4752    then
4753      PKG_CHECK_MODULES(PULSE, libpulse >= 0.9.8,
4754        [ VLC_ADD_PLUGIN([pulse])
4755         VLC_ADD_CFLAGS([pulse],[${PULSE_CFLAGS}])
4756         VLC_ADD_LDFLAGS([pulse],[${PULSE_LIBS}])],
4757        [AC_MSG_WARN(pulseaudio library not found)])
4758    fi
4759
4760 dnl
4761 dnl  Portaudio module
4762 dnl
4763 AC_ARG_ENABLE(portaudio,
4764   [  --enable-portaudio      Portaudio library support (default disabled)],
4765   [if test "${enable_portaudio}" = "yes"
4766    then
4767      VLC_ADD_PLUGIN([portaudio])
4768      VLC_ADD_CXXFLAGS([portaudio],[])
4769      if test "${SYS}" = "mingw32"; then
4770         VLC_ADD_LIBS([portaudio],[-lportaudio -lwinmm -lole32])
4771      else
4772         VLC_ADD_LIBS([portaudio],[-lportaudio])
4773      fi
4774    fi])
4775
4776 dnl
4777 dnl  ALSA module
4778 dnl
4779 AC_ARG_ENABLE(alsa,
4780   [  --enable-alsa           ALSA sound support for Linux (default enabled)])
4781 if test "${enable_alsa}" != "no"
4782 then
4783   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
4784   if test "${have_alsa}" = "true"
4785   then
4786     CFLAGS="${CFLAGS_save}"
4787     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
4788                     #define ALSA_PCM_NEW_SW_PARAMS_API
4789                     #include <alsa/asoundlib.h>],
4790        [snd_pcm_hw_params_get_period_time(0,0,0);],
4791         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
4792     VLC_ADD_PLUGIN([alsa])
4793     VLC_ADD_LIBS([alsa],[-lasound -lm -ldl])
4794     VLC_ADD_PLUGIN([access_alsa])
4795     VLC_ADD_LIBS([access_alsa],[-lasound -lm -ldl])
4796   else
4797     if test "${enable_alsa}" = "yes"; then
4798       AC_MSG_ERROR([Could not find ALSA development headers])
4799     fi
4800   fi
4801 fi
4802
4803 dnl
4804 dnl  win32 waveOut plugin
4805 dnl
4806 AC_ARG_ENABLE(waveout,
4807   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
4808 if test "${enable_waveout}" != "no"; then
4809   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4810     VLC_ADD_PLUGIN([waveout])
4811     VLC_ADD_LIBS([waveout],[-lwinmm])
4812   fi
4813   if test "${SYS}" = "mingwce"; then
4814     VLC_ADD_PLUGIN([waveout])
4815   fi
4816 fi
4817
4818 dnl
4819 dnl  CoreAudio plugin
4820 dnl
4821 AC_ARG_ENABLE(macosx-audio,
4822   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
4823 if test "${enable_macosx-audio}" != "no" &&
4824   (test "${SYS}" = "darwin" || test "${enable_macosx-audio}" = "yes")
4825 then
4826   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h,
4827     [ VLC_ADD_PLUGIN([auhal])
4828       VLC_ADD_LDFLAGS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
4829     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
4830 fi
4831
4832 dnl
4833 dnl  Roku HD1000 audio
4834 dnl
4835 AC_ARG_ENABLE(hd1000a,
4836   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
4837 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
4838   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4839    test "${enable_hd1000a}" = "yes")
4840 then
4841   AC_LANG_PUSH([C++])
4842   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
4843     VLC_ADD_PLUGIN([hd1000a])
4844     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LIBS([hd1000a],[-lHDMachineX225]))  ])
4845   AC_LANG_POP([C++])
4846 fi
4847
4848 dnl
4849 dnl  JACK modules
4850 dnl
4851 AC_ARG_ENABLE(jack,
4852  [  --enable-jack           JACK audio I/O modules (default disabled)],,
4853  [enable_jack="no"])
4854
4855 AS_IF([test "${enable_jack}" != "no"], [
4856   AC_CHECK_HEADERS(jack/jack.h, [
4857     VLC_ADD_PLUGIN([access_jack])
4858     VLC_ADD_PLUGIN([jack])
4859     VLC_ADD_LIBS([access_jack jack],[-ljack])
4860   ],[AC_MSG_ERROR([cannot find JACK headers])])
4861 ])
4862
4863 dnl
4864 dnl  CyberLink for C++ UPnP stack
4865 dnl
4866 AC_ARG_ENABLE(cyberlink,
4867   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
4868   AS_IF([test "${enable_cyberlink}" = "yes" ], [
4869   AC_ARG_WITH(cyberlink-tree,
4870     [    --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
4871
4872   dnl
4873   dnl test for --with-cyberlink-tree
4874   dnl
4875   AS_IF([test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""], [
4876     AC_LANG_PUSH(C++)
4877     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
4878     AS_IF([test -z "${real_cyberlink_tree}"], [
4879       dnl  The given directory can't be found
4880       AC_MSG_RESULT(no)
4881       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
4882     ])
4883     CPPFLAGS_save="${CPPFLAGS}"
4884     CPPFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
4885     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_cyberlink}"
4886     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
4887       [ VLC_ADD_CXXFLAGS([upnp_cc], [${CPPFLAGS_cyberlink}])
4888         VLC_ADD_PLUGIN([upnp_cc])
4889       ],[
4890         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
4891       ])
4892     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
4893     AS_IF([test -f "${real_cyberlink_tree}/lib/unix/libclink.a"], [
4894       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
4895       dnl The mere fact that we have to make such an ugly check sucks
4896       AC_MSG_CHECKING(for XML parser to link CyberLink with)
4897       LIBS_save="$LIBS"
4898       LIBS_cclink="no"
4899       for l in "`xml2-config --libs`" -lexpat -lxerces-c; do
4900         LIBS="$LIBS_save ${real_cyberlink_tree}/lib/unix/libclink.a -lpthread $l"
4901         AC_LINK_IFELSE([AC_LANG_PROGRAM([
4902 #include <cybergarage/upnp/media/player/MediaPlayer.h>
4903 using namespace CyberLink;
4904
4905 class testclass : public SearchResponseListener, public MediaPlayer
4906 {
4907     virtual void deviceSearchResponseReceived( SSDPPacket *)
4908     {
4909     }
4910
4911     public:
4912       testclass (void)
4913       {
4914         addSearchResponseListener (this);
4915         start ();
4916       }
4917 };
4918 ],[testclass l;])],[LIBS_cclink="$l"])
4919       done
4920       LIBS="${LIBS_save}"
4921       dnl should not happen - otherwise this needs fixing - hence FAILURE
4922       AS_IF([test "${LIBS_cclink}" = "no"],
4923         [AC_MSG_FAILURE([cannot find XML parser for CyberLink])])
4924       AC_MSG_RESULT([${LIBS_cclink}])
4925       VLC_ADD_LIBS([upnp_cc], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}])
4926     ], [
4927       AC_MSG_RESULT(no)
4928       AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
4929     ])
4930     CPPFLAGS="${CPPFLAGS_save}"
4931     AC_LANG_POP([C++])
4932   ])
4933 ])
4934
4935 dnl
4936 dnl UPnP Plugin (Intel SDK)
4937 dnl
4938 AC_ARG_ENABLE(upnp,
4939   AS_HELP_STRING([--enable-upnp],[Intel UPnP SDK (default enabled)]))
4940
4941 VLC_ADD_CXXFLAGS([upnp_intel], [ ])
4942 AS_IF([test "x${enable_upnp}" != "xno"], [
4943   AC_CHECK_LIB([upnp], [UpnpInit], [has_upnp="yes"], [has_upnp="no"], [-lpthread])
4944   AS_IF([test "x${enable_upnp}" != "x" && test "${has_upnp}" = "no"], [
4945     AC_MSG_ERROR([cannot find Intel UPnP SDK (libupnp)])
4946   ])
4947   AS_IF([test "${has_upnp}" = "yes"], [
4948     VLC_ADD_LIBS([upnp_intel], [-lupnp -lixml])
4949   ])
4950 ], [
4951   has_upnp="no"
4952 ])
4953
4954 AS_IF([test "${has_upnp}" = "yes"], [
4955   VLC_ADD_PLUGIN([upnp_intel])
4956 ])
4957
4958
4959 dnl
4960 dnl  Interface plugins
4961 dnl
4962
4963 AC_ARG_WITH(,[Interface plugins:])
4964
4965 dnl special case for BeOS
4966 if test "${SYS}" = "beos"
4967 then
4968     VLC_ADD_PLUGIN([beos])
4969 fi
4970
4971 dnl
4972 dnl Skins2 module
4973 dnl
4974 AC_ARG_ENABLE(skins2,
4975   [AS_HELP_STRING([--enable-skins2],[Skins2 interface module (default
4976    enabled except on MacOSX, BeOS and WinCE)])])
4977 if test "${enable_skins2}" = "yes" ||
4978   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4979    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
4980
4981   dnl test for the required libraries
4982   skins2_missing_lib="no"
4983
4984   dnl freetype
4985   if test "${have_freetype}" != "yes"; then
4986     skins2_missing_lib="yes"
4987     if test "${enable_skins2}" = "yes"; then
4988       AC_MSG_ERROR([Could not find freetype (required for skins2)])
4989     fi
4990   fi
4991
4992   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"); then
4993     VLC_ADD_PLUGIN([skins2])
4994     ALIASES="${ALIASES} svlc"
4995     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
4996     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4997     VLC_ADD_LIBS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
4998
4999   else if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "darwin"); then
5000     VLC_ADD_PLUGIN([skins2])
5001     ALIASES="${ALIASES} svlc"
5002     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
5003     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
5004     VLC_ADD_LDFLAGS([skins2],[-Wl,-framework,Carbon])
5005
5006   else if test "${skins2_missing_lib}" = "no"; then
5007     VLC_ADD_PLUGIN([skins2])
5008     ALIASES="${ALIASES} svlc"
5009     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} -DX11_SKINS])
5010     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
5011     VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lX11])
5012   fi fi fi
5013 fi
5014 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes" ||
5015          (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
5016           test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no")])
5017
5018 dnl
5019 dnl  PDA Gtk+2 module
5020 dnl
5021 AC_ARG_ENABLE(pda,
5022   [  --enable-pda            PDA interface needs Gtk2 support (default disabled)])
5023 if test "${enable_pda}" = "yes"
5024 then
5025   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
5026   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
5027   VLC_ADD_LIBS([gtk2],[${GTK2_LIBS}])
5028   VLC_ADD_CFLAGS([pda],[${GTK2_CFLAGS} ${CFLAGS_pda}])
5029   VLC_ADD_LIBS([pda],[${LDFLAGS_pda}])
5030   VLC_ADD_LIBS([pda],[${GTK2_LIBS}])
5031   VLC_ADD_PLUGIN([pda])
5032   if test "${SYS}" != "mingw32"; then
5033     NEED_GTK2_MAIN=yes
5034     VLC_ADD_CFLAGS([gtk2_main],[$GTK2_CFLAGS])
5035     VLC_ADD_LIBS([gtk2_main],[$GTK2_LIBS])
5036   fi
5037 fi
5038 AM_CONDITIONAL(BUILD_PDA, [test "${enable_pda}" = "yes"])
5039
5040 dnl
5041 dnl Maemo
5042 dnl
5043 AC_ARG_ENABLE(maemo,
5044   [  --enable-maemo          Internet tablets based on Maemo SDK (default disabled)])
5045 if test "${enable_maemo}" = "yes"
5046 then
5047   PKG_CHECK_MODULES(HILDON, [hildon-1 hildon-fm-2], [
5048     VLC_ADD_CFLAGS([maemo],[${HILDON_CFLAGS}])
5049     VLC_ADD_LIBS([maemo],[${HILDON_LIBS}])
5050     VLC_ADD_PLUGIN([maemo])
5051     VLC_ADD_PLUGIN([swscale_maemo])
5052     AC_DEFINE([BUILD_MAEMO], 1, [Define if you're using Maemo interfaces])
5053     ALIASES="${ALIASES} mvlc"
5054   ], [
5055     AS_IF([test "${enable_maemo}" = "yes"],[
5056       AC_MSG_ERROR([Hildon libraries not found])
5057     ])
5058     enable_maemo="no"
5059   ])
5060 fi
5061 AM_CONDITIONAL(BUILD_MAEMO, [test "${enable_maemo}" = "yes"])
5062
5063 dnl
5064 dnl QT 4
5065 dnl
5066 AC_ARG_ENABLE(qt4,
5067   [  --enable-qt4            QT 4 support (default enabled) ],, [
5068   AS_IF([test "${SYS}" = "darwin"], [enable_qt4=no])
5069 ])
5070 AS_IF([test "${enable_qt4}" != "no"], [
5071   PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.3.0], [
5072     VLC_ADD_PLUGIN([qt4])
5073     AC_DEFINE([HAVE_QT4], 1, [Define to 1 if you have QT4 library.])
5074     ALIASES="${ALIASES} qvlc"
5075     AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "cygwin" -a "${SYS}" != "darwin"], [
5076         VLC_ADD_LIBS([qt4],[$QT4_LIBS -lX11])
5077     ], [
5078         VLC_ADD_LIBS([qt4],[$QT4_LIBS])
5079     ])
5080     QT4LOCALEDIR="$($PKG_CONFIG --variable=prefix QtCore)/share/qt4/translations/"
5081     AC_SUBST(QT4LOCALEDIR)
5082     VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS -DQT4LOCALEDIR=\\\\\\\"${QT4LOCALEDIR}\\\\\\\"])
5083     AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
5084     AC_PATH_PROG(RCC, rcc, rcc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
5085     AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
5086   ], [
5087     AS_IF([test "${enable_qt4}" = "yes"],[
5088       AC_MSG_ERROR([Qt 4 library not found])
5089     ],[
5090       AC_MSG_WARN([Qt 4 library not found])
5091     ])
5092     enable_qt4="no"
5093   ])
5094 ])
5095 AM_CONDITIONAL(ENABLE_QT4, [test "x$enable_qt4" != "xno"])
5096
5097 dnl
5098 dnl  WinCE GUI module
5099 dnl
5100 AC_ARG_ENABLE(wince,
5101   [  --enable-wince          Windows CE interface (default enabled with MinGW)])
5102 if test "${enable_wince}" != "no"; then
5103   if test "${SYS}" = "mingwce"; then
5104     VLC_ADD_PLUGIN([wince])
5105     VLC_ADD_CXXFLAGS([wince],[])
5106     VLC_ADD_LIBS([wince],[-lcommctrl -lcommdlg -laygshell])
5107     dnl Gross hack
5108     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
5109   elif test "${SYS}" = "mingw32"; then
5110     VLC_ADD_CXXFLAGS([wince],[])
5111     VLC_ADD_LIBS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
5112     dnl Gross hack
5113     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
5114   fi
5115 fi
5116
5117 dnl
5118 dnl Simple test for skins2 dependency
5119 dnl
5120 AS_IF([test "${enable_skins2}" != "no" && test "x$enable_qt4" = "xno"], [
5121   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.])
5122 ])
5123
5124 dnl
5125 dnl  Opie QT embedded module
5126 dnl
5127 AC_ARG_ENABLE(opie,
5128   [  --enable-opie           Qt embedded interface support (default disabled)],
5129   [if test "${enable_opie}" = "yes"; then
5130      AC_ARG_WITH(qte,
5131      [    --with-qte=PATH       Qt Embedded headers and libraries])
5132      if test "${with_qte}" != "no" -a -n "${with_qte}"
5133      then
5134        VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
5135        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])
5136      else
5137        VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
5138        VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
5139      fi
5140      CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
5141      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
5142        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
5143      ] )
5144      CPPFLAGS="${CPPFLAGS_save}"
5145
5146      VLC_ADD_PLUGIN([opie])
5147      NEED_QTE_MAIN=yes
5148      VLC_ADD_LIBS([opie],[-lqpe ${LDFLAGS_qte}])
5149      VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
5150      if test "${with_qte}" != "no" -a -n "${with_qte}"
5151      then
5152        MOC=${with_qte}/bin/moc
5153      else
5154        MOC=${QTDIR}/bin/moc
5155      fi
5156    fi])
5157
5158 dnl
5159 dnl  MacOS X video output/gui modules
5160 dnl
5161 AC_ARG_ENABLE(macosx,
5162   [  --enable-macosx         MacOS X support (default enabled on MacOS X)])
5163 if test "x${enable_macosx}" = "xyes"
5164 then
5165   VLC_ADD_LDFLAGS([access_eyetv],                     [-Wl,-framework,Foundation])
5166   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer qtcapture],[-Wl,-framework,Cocoa])
5167   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer],[-Wl,-framework,OpenGL])
5168   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,Carbon])
5169   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,CoreServices])
5170   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,AGL])
5171   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,IOKit])
5172   dnl For bug report
5173   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,AddressBook])
5174   VLC_ADD_LDFLAGS([macosx qtcapture],                 [-Wl,-framework,QTKit])
5175   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,CoreAudio])
5176   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,WebKit])
5177   VLC_ADD_LDFLAGS([opengllayer qtcapture],            [-Wl,-framework,QuartzCore])
5178   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,CoreVideo])
5179   VLC_ADD_OBJCFLAGS([macosx minimal_macosx opengllayer growl], [-fobjc-exceptions] )
5180
5181   VLC_ADD_PLUGIN([access_eyetv])
5182   VLC_ADD_PLUGIN([qtcapture])
5183   VLC_ADD_PLUGIN([macosx])
5184   VLC_ADD_PLUGIN([minimal_macosx])
5185
5186   ORIGCFLAGS=$CFLAGS
5187   CFLAGS="$CFLAGS -x objective-c"
5188   AC_TRY_COMPILE([#import <QuartzCore/CALayer.h>],,
5189   [VLC_ADD_PLUGIN([opengllayer])
5190   VLC_ADD_OBJCFLAGS([opengllayer])],[])
5191   CFLAGS=$ORIGCFLAGS
5192 fi
5193
5194 dnl
5195 dnl  QNX RTOS module
5196 dnl
5197 AC_ARG_ENABLE(qnx,
5198   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
5199     if test "${enable_qnx}" != "no"
5200     then
5201       AC_CHECK_HEADERS(Ph.h, [
5202         VLC_ADD_PLUGIN([qnx])
5203         VLC_ADD_LIBS([qnx],[-lasound -lph])
5204       ])
5205     fi
5206
5207 dnl
5208 dnl  ncurses module
5209 dnl
5210 AC_ARG_ENABLE(ncurses,
5211   [  --disable-ncurses       ncurses interface support (default enabled)],
5212   [if test "${enable_ncurses}" != "no"; then
5213     AC_CHECK_HEADER(ncurses.h,
5214       [AC_CHECK_LIB(ncursesw, mvprintw,
5215         [VLC_ADD_PLUGIN([ncurses])
5216         VLC_ADD_LIBS([ncurses],[-lncursesw])
5217         ALIASES="${ALIASES} nvlc"
5218         AC_DEFINE([HAVE_NCURSESW], 1, [Define to 1 if you have libncursesw.])
5219         AC_CHECK_LIB(ncursesw, tgetent, [],
5220           AC_CHECK_LIB(tinfow, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfow])],
5221             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
5222               [AS_IF([test "x${enable_ncurses}" != "x"],
5223                 [AC_MSG_ERROR([tgetent not found in ncursesw tinfow tinfo]
5224                )])])
5225             ]
5226           )
5227         )
5228         ],
5229         [AC_CHECK_LIB( ncurses, mvprintw,
5230           [VLC_ADD_PLUGIN([ncurses])
5231           ALIASES="${ALIASES} nvlc"
5232           VLC_ADD_LIBS([ncurses],[-lncurses])
5233           AC_CHECK_LIB(ncurses, tgetent, [],
5234             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
5235               [AS_IF([test "x${enable_ncurses}" != "x"],
5236                 [AC_MSG_ERROR([tgetent not found in ncurses tinfo])])]
5237             )]
5238           )],
5239           [AS_IF([test "x${enable_ncurses}" != "x"], [
5240             AC_MSG_ERROR([libncurses not found])])]
5241         )]
5242       )]
5243     )
5244   fi]
5245 )
5246
5247 dnl
5248 dnl  XOSD plugin
5249 dnl
5250 AC_ARG_ENABLE(xosd,
5251   [  --enable-xosd           xosd interface support (default disabled)])
5252 if test "${enable_xosd}" = "yes"
5253 then
5254   AC_CHECK_HEADER(xosd.h, have_xosd="true", have_xosd="false")
5255   AC_CHECK_LIB(xosd,xosd_set_offset,
5256       AC_DEFINE(HAVE_XOSD_VERSION_1, 1, Define if <xosd.h> is 1.0.x),
5257     AC_CHECK_LIB(xosd,xosd_set_horizontal_offset,
5258         AC_DEFINE(HAVE_XOSD_VERSION_2, 1, Define if <xosd.h> is 2.0.x),
5259       AC_TRY_COMPILE([#include <xosd.h>],
5260          [xosd_init("foo","bar",12,XOSD_top,2,12,42);],,
5261           AC_DEFINE(HAVE_XOSD_VERSION_0, 1, Define if <xosd.h> is pre-1.0.0))))
5262   if test "${have_xosd}" = "true"
5263   then
5264     VLC_ADD_PLUGIN([xosd])
5265     VLC_ADD_LIBS([xosd],[-lxosd])
5266   fi
5267 fi
5268
5269 dnl
5270 dnl Framebuffer (overlay) plugin
5271 dnl
5272 AC_ARG_ENABLE(fbosd,
5273   [  --enable-fbosd          fbosd interface support (default disabled)])
5274 if test "${enable_fbosd}" = "yes"
5275 then
5276   AC_CHECK_HEADERS(linux/fb.h, [
5277     VLC_ADD_PLUGIN([fbosd])
5278  ])
5279 fi
5280
5281 dnl
5282 dnl Visualisation plugin
5283 dnl
5284 AC_ARG_ENABLE(visual,
5285   [  --enable-visual         visualisation plugin (default enabled)])
5286 if test "${enable_visual}" != "no"
5287 then
5288     VLC_ADD_PLUGIN([visual])
5289 fi
5290
5291 dnl
5292 dnl OpenGL visualisation plugin
5293 dnl
5294 AC_ARG_ENABLE(galaktos,
5295   [  --enable-galaktos       OpenGL visualisation plugin (default disabled)])
5296 if test "${enable_galaktos}" = "yes"
5297 then
5298   AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
5299     VLC_ADD_PLUGIN([galaktos])
5300     if test "${SYS}" != "mingw32"; then
5301       VLC_ADD_LIBS([galaktos],[${X_LIBS} -lGL -lGLU])
5302     else
5303       VLC_ADD_LIBS([galaktos],[-lopengl32])
5304     fi
5305   ])
5306 fi
5307
5308 dnl
5309 dnl  goom visualization plugin
5310 dnl
5311 AC_ARG_ENABLE(goom,
5312 [  --enable-goom           goom visualisation plugin (default disabled)])
5313 if test "${enable_goom}" = "yes"
5314 then
5315   AC_ARG_WITH(goom-tree,
5316     [    --with-goom-tree=PATH goom tree for static linking (required)])
5317
5318   dnl
5319   dnl test for --with-goom-tree
5320   dnl
5321   if test "${with_goom_tree}" != "no" -a -n "${with_goom_tree}"; then
5322     AC_MSG_CHECKING(for libgoom2.a in ${with_goom_tree})
5323     real_goom_tree="`cd ${with_goom_tree} 2>/dev/null && pwd`"
5324     if test -z "${real_goom_tree}"; then
5325       dnl  The given directory can't be found
5326       AC_MSG_RESULT(no)
5327       AC_MSG_ERROR([cannot cd to ${with_goom_tree}])
5328     fi
5329     if test -f "${real_goom_tree}/src/.libs/libgoom2.a"; then
5330       AC_MSG_RESULT(${real_goom_tree}/src/.libs/libgoom2.a)
5331       VLC_ADD_PLUGIN([goom])
5332       VLC_ADD_LIBS([goom],[-L${real_goom_tree}/src/.libs -lgoom2])
5333       VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree}/src -DUSE_GOOM_TREE])
5334     else
5335       dnl  The given libgoom2 wasn't built, try to look for the old goom
5336       AC_MSG_RESULT(no)
5337       AC_MSG_CHECKING(for libgoom.a in ${with_goom_tree})
5338       if test -f "${real_goom_tree}/libgoom.a"; then
5339         AC_MSG_RESULT(${real_goom_tree}/libgoom.a)
5340         VLC_ADD_PLUGIN([goom])
5341         VLC_ADD_LIBS([goom],[-L${real_goom_tree} -lgoom])
5342         VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree} -DUSE_GOOM_TREE -DOLD_GOOM])
5343       else
5344         dnl  The given libgoom wasn't built
5345         AC_MSG_RESULT(no)
5346         AC_MSG_ERROR([cannot find ${real_goom_tree}/src/.libs/libgoom2.a, make sure you compiled goom in ${with_goom_tree}])
5347       fi
5348     fi
5349   else
5350     AC_CHECK_HEADERS(goom/goom.h, [
5351       LDFLAGS="${LDFLAGS_save} ${LIBS_goom}"
5352       AC_CHECK_LIB(goom2, goom_init, [
5353         VLC_ADD_PLUGIN([goom])
5354         VLC_ADD_LIBS([goom],[-lgoom2])
5355       ],[
5356         AC_MSG_ERROR([Could not find goom on your system: you may get it from http://www.ios-software.com/.])
5357       ])
5358       LDFLAGS="${LDFLAGS_save}"
5359     ])
5360   fi
5361 fi
5362
5363 dnl
5364 dnl  AtmoLight (homebrew AmbiLight)
5365 dnl
5366 if test "${SYS}" = "mingw32" -o "${SYS}" = "linux"; then
5367    AC_ARG_ENABLE(atmo,
5368 AS_HELP_STRING([--disable-atmo],[AtmoLight (homebrew philips ambilight)
5369                 (default enabled)]))
5370    if test "${enable_atmo}" != "no"; then
5371       AC_LANG_PUSH(C++)
5372       VLC_ADD_PLUGIN([atmo])
5373       AC_LANG_POP(C++)
5374    fi
5375 fi
5376
5377 dnl
5378 dnl  Bonjour services discovery
5379 dnl
5380 AC_ARG_ENABLE(bonjour,
5381   [  --enable-bonjour        Bonjour services discovery (default enabled)])
5382 AS_IF([test "${enable_bonjour}" != "no"], [
5383   PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.6, [
5384     AC_DEFINE(HAVE_AVAHI_CLIENT, 1, [Define to 1 if you have libavahi-client])
5385     VLC_ADD_LIBS([bonjour access_output_http],[$BONJOUR_LIBS])
5386     VLC_ADD_CFLAGS([bonjour access_output_http],[$BONJOUR_CFLAGS])
5387     VLC_ADD_PLUGIN([bonjour])
5388   ], [
5389     AC_MSG_WARN(avahi-client library not found)
5390   ])
5391 ])
5392
5393 dnl
5394 dnl  Lirc plugin
5395 dnl
5396 AC_ARG_ENABLE(lirc,
5397   [  --enable-lirc           lirc support (default disabled)])
5398 if test "${enable_lirc}" = "yes"
5399 then
5400   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
5401   if test "${have_lirc}" = "true"
5402   then
5403     VLC_ADD_PLUGIN([lirc])
5404     VLC_ADD_LIBS([lirc],[-llirc_client])
5405   fi
5406 fi
5407
5408 dnl
5409 dnl Global hotkeys using XCB
5410 dnl
5411 PKG_CHECK_MODULES(XCB, [xcb], [
5412   PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms], [
5413     PKG_CHECK_MODULES(XPROTO, [xproto], [
5414       VLC_ADD_PLUGIN([globalhotkeys])
5415       VLC_ADD_CFLAGS([globalhotkeys],[${XCB_KEYSYMS_CFLAGS} ${XCB_CFLAGS}] )
5416       VLC_ADD_LIBS([globalhotkeys],[${XCB_KEYSYMS_LIBS} ${XCB_LIBS}] )
5417     ], [ AC_MSG_WARN( [Xproto not found] ) ])
5418   ], [ AC_MSG_WARN( [XCB keysyms was not found]) ])
5419 ], [ AC_MSG_WARN( [XCB was not found]) ])
5420
5421 AC_ARG_WITH(,[Misc options:])
5422
5423 dnl
5424 dnl libgcrypt
5425 dnl
5426 AC_ARG_ENABLE(libgcrypt,
5427   [  --disable-libgcrypt      libgcrypts support (default enabled)])
5428 AS_IF([test "${enable_libgcrypt}" != "no"], [
5429   AM_PATH_LIBGCRYPT([1:1.1.94], [have_libgcrypt="yes"], [have_libgcrypt="no"])
5430 ])
5431 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
5432   AS_IF([test "${have_libgcrypt}" = "yes"],[
5433     VLC_ADD_LIBS([rtp stream_out_rtp], [${LIBGCRYPT_LIBS}])
5434   ])
5435 fi
5436 AM_CONDITIONAL([HAVE_LIBGCRYPT], [test "${have_libgcrypt}" = "yes"])
5437
5438 dnl
5439 dnl TLS/SSL
5440 dnl
5441 AC_ARG_ENABLE(gnutls,
5442   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
5443
5444 AS_IF([test "${enable_gnutls}" != "no"], [
5445   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.3.3], [
5446     VLC_ADD_PLUGIN([gnutls])
5447     VLC_ADD_CFLAGS([gnutls], [$GNUTLS_CFLAGS])
5448     AS_IF([test "${SYS}" = "mingw32"], [
5449       dnl pkg-config --libs gnutls omits these
5450       VLC_ADD_LIBS([gnutls], [-lz])
5451       VLC_ADD_LIBS([gnutls], [${LTLIBINTL}])
5452     ])
5453     dnl The GnuTLS plugin invokes gcry_control directly.
5454     AS_IF([test "${have_libgcrypt}" = "yes"],[
5455       VLC_ADD_LIBS([gnutls], [${LIBGCRYPT_LIBS}])
5456       VLC_ADD_CFLAGS([gnutls], [${LIBGCRYPT_CFLAGS}])
5457     ])
5458     VLC_ADD_LIBS([gnutls], [$GNUTLS_LIBS])
5459   ], [
5460     AS_IF([test "${enable_gnutls}" = "yes"], [
5461       AC_MSG_ERROR([gnutls not present or too old (version 1.2.9 required)])
5462     ])
5463   ])
5464 ])
5465
5466
5467 dnl
5468 dnl RemoteOSD plugin (VNC client as video filter)
5469 dnl
5470 AC_ARG_ENABLE(remoteosd,
5471   [  --disable-remoteosd     RemoteOSD plugin (default enabled)])
5472
5473 AS_IF([test "${enable_remoteosd}" != "no"], [
5474   AS_IF([test "${have_libgcrypt}" = "yes"],[
5475     VLC_ADD_PLUGIN([remoteosd])
5476     VLC_ADD_LIBS([remoteosd], ${LIBGCRYPT_LIBS})
5477     VLC_ADD_CFLAGS([remoteosd], ${LIBGCRYPT_CFLAGS})
5478   ], [
5479     AC_MSG_ERROR([libgcrypt support required for RemoteOSD plugin])
5480   ])
5481 ])
5482
5483
5484 dnl
5485 dnl RAOP plugin
5486 dnl
5487 AC_MSG_CHECKING([whether to enable RAOP plugin])
5488 AS_IF([test "${have_libgcrypt}" = "yes"], [
5489   AC_MSG_RESULT(yes)
5490   VLC_ADD_PLUGIN([stream_out_raop])
5491   VLC_ADD_LIBS([stream_out_raop], [${LIBGCRYPT_LIBS}])
5492   VLC_ADD_CFLAGS([stream_out_raop], [${LIBGCRYPT_CFLAGS}])
5493 ], [
5494   AC_MSG_RESULT(no)
5495   AC_MSG_WARN([libgcrypt support required for RAOP plugin])
5496 ])
5497
5498
5499 dnl
5500 dnl update checking system
5501 dnl
5502 AC_ARG_ENABLE(update-check,
5503   [  --enable-update-check   update checking system (default disabled)])
5504 if test "${enable_update_check}" = "yes"
5505 then
5506   if test "${have_libgcrypt}" != "yes"
5507   then
5508     AC_MSG_ERROR([libgcrypt is required for update checking system])
5509   fi
5510   VLC_ADD_LIBS([libvlc], [${LIBGCRYPT_LIBS}])
5511   VLC_ADD_CFLAGS([libvlc], [${LIBGCRYPT_CFLAGS}])
5512   AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
5513 fi
5514
5515
5516 dnl
5517 dnl  Endianness check
5518 dnl
5519 AC_C_BIGENDIAN
5520 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
5521   DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
5522 ], [
5523   DEFS_BIGENDIAN=""
5524 ])
5525 AC_SUBST(DEFS_BIGENDIAN)
5526
5527 dnl
5528 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
5529 dnl
5530 loader=false
5531 AC_ARG_ENABLE(loader,
5532   AS_HELP_STRING([--enable-loader],[build DLL loader for ELF i386 platforms
5533                   (default disabled)]))
5534 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
5535 AS_IF([test "${enable_loader}" = "yes"],
5536   [ VLC_ADD_PLUGIN([dmo])
5537     VLC_ADD_CPPFLAGS([dmo],[-I\\\${top_srcdir}/libs/loader])
5538     VLC_ADD_LIBS([dmo],[\\\${top_builddir}/libs/loader/libloader.la -lpthread])
5539     VLC_ADD_CPPFLAGS([quicktime],[-I\\\${top_srcdir}/libs/loader])
5540     VLC_ADD_LIBS([quicktime],[\\\${top_builddir}/libs/loader/libloader.la -lpthread])
5541     VLC_ADD_CPPFLAGS([realaudio],[-I\\\${top_srcdir}/libs/loader -DLOADER])
5542     VLC_ADD_LIBS([realaudio],[\\\${top_builddir}/libs/loader/libloader.la])
5543     VLC_ADD_CPPFLAGS([realvideo],[-I\\\${top_srcdir}/libs/loader -DLOADER])
5544     VLC_ADD_LIBS([realvideo],[\\\${top_builddir}/libs/loader/libloader.la])
5545   ])
5546
5547 AC_ARG_WITH(,[Components:])
5548
5549 dnl
5550 dnl  the VLC binary
5551 dnl
5552 AC_ARG_ENABLE(vlc,
5553   [  --enable-vlc            build the VLC media player (default enabled)])
5554 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
5555
5556 dnl
5557 dnl  Microsoft ActiveX support
5558 dnl
5559 activex=false
5560 AC_ARG_ENABLE(activex,
5561   AS_HELP_STRING([--enable-activex],[build a vlc-based ActiveX control
5562                   (default enabled on Win32)]))
5563 AC_ARG_WITH(wine-sdk-path,
5564   [    --with-wine-sdk-path=PATH path to wine sdk])
5565 if test "${enable_activex}" != "no"
5566 then
5567   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
5568   then
5569     AC_CHECK_PROGS(MIDL, [midl], no)
5570     if test "${with_wine_sdk_path}" != ""
5571     then
5572        WINE_SDK_PATH=${with_wine_sdk_path}
5573        AC_PATH_PROG(WIDL, widl, no, [$WINE_SDK_PATH/bin:$WINE_SDK_PATH/tools/widl])
5574     else
5575        WIDL=no
5576     fi
5577     AC_LANG_PUSH(C++)
5578     AC_CHECK_HEADERS(ole2.h,
5579       [AC_CHECK_HEADERS(olectl.h,
5580         [ VLC_ADD_CPPFLAGS([activex],[-DUNICODE -D_UNICODE -D_MIDL_USE_GUIDDEF_])
5581           VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
5582           VLC_ADD_LIBS([activex],[-lole32 -loleaut32 -luuid -lshlwapi])
5583           AC_CHECK_HEADERS(objsafe.h,
5584             VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER]),,
5585             [
5586              #if HAVE_OLE2_H
5587              #   include <ole2.h>
5588              #endif
5589             ]
5590           )
5591           activex=:
5592           PLUGINS_BINDINGS="${PLUGINS_BINDINGS} activex"
5593         ],
5594         [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5595       )],
5596       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5597     )
5598     AC_LANG_POP(C++)
5599   fi
5600 fi
5601 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
5602 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
5603 AC_ARG_VAR(WIDL, [Wine IDL compiler (requires Wine SDK)])
5604 AM_CONDITIONAL(HAS_WIDL_COMPILER, test "${WIDL}" != "no")
5605 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
5606
5607 dnl
5608 dnl  Mozilla plugin
5609 dnl
5610 mozilla=false
5611 AC_ARG_ENABLE(mozilla,
5612   AS_HELP_STRING([--enable-mozilla],[build a vlc-based Firefox/Mozilla plugin
5613                   (default disabled)]))
5614 AC_ARG_WITH(mozilla-sdk-path,
5615   [    --with-mozilla-sdk-path=PATH path to mozilla sdk])
5616 AC_ARG_WITH(mozilla-pkg,
5617   [    --with-mozilla-pkg=PKG  look for PKG.pc to build the mozilla plugin.])
5618 AC_LANG_PUSH(C++)
5619 if test "${enable_mozilla}" = "yes"
5620 then
5621   AS_IF([test "${with_mozilla_sdk_path}" = "" -o "${with_mozilla_sdk_path}" = "no"],
5622     [
5623     dnl pkg-config
5624     dnl As we want to do a loop due to the number of name possible for the .pc
5625     dnl we can't use the pkg-config macros.
5626
5627     AC_ARG_VAR([MOZILLA_CFLAGS], [C compiler flags for Mozilla, overriding pkg-config])
5628     AC_ARG_VAR([MOZILLA_LIBS], [linker flags for Mozilla, overriding pkg-config])
5629     AC_MSG_NOTICE([Checking for Mozilla])
5630     found=0
5631     if test -n "$MOZILLA_CFLAGS" -a -n "$MOZILLA_LIBS"
5632     then
5633       found=1
5634     else
5635       if test -n "$PKG_CONFIG"; then
5636         for i in "${with_mozilla_pkg}" libxul {seamonkey,iceape,xulrunner,firefox,iceweasel,mozilla}-plugin; do
5637           echo "Trying to find $i.pc files" >&5
5638           if $PKG_CONFIG --exists --print-errors "$i" 2>&5
5639           then
5640             echo "Using $i.pc files." >&5
5641             echo "Using $i.pc files." >&6
5642             found=1
5643             MOZILLA_CFLAGS=$( $PKG_CONFIG --cflags "$i" )
5644             MOZILLA_LIBS=$( $PKG_CONFIG --libs "$i" )
5645             break
5646           fi
5647         done
5648       fi
5649     fi
5650     AS_IF( [test $found = 1],[
5651         CPPFLAGS="${CPPFLAGS_save} ${MOZILLA_CFLAGS}"
5652         MOZILLA_REQUIRED_HEADERS=1
5653         AC_CHECK_HEADERS([npfunctions.h])
5654         AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5655         AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5656           [#if HAVE_NPAPI_H
5657            # include <npapi.h>
5658            #endif
5659           ])
5660         if test "${MOZILLA_REQUIRED_HEADERS}" = "0"; then
5661             AC_MSG_ERROR([Please install the Firefox development tools; mozilla-config.h, plugin/npapi.h and plugin/npruntime.h were not found.])
5662         fi
5663         MOZILLA_REQUIRED_HEADERS=
5664         mozilla=:
5665         AS_IF([ test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"],[
5666            VLC_ADD_CPPFLAGS([mozilla],[-DXP_UNIX -DOJI])
5667            AS_IF([ test "${SYS}" != "darwin"],[
5668              PKG_CHECK_MODULES(XPM, [xpm xt],[
5669                 VLC_ADD_CPPFLAGS([mozilla],[-DMOZ_X11])
5670              ],[
5671                 AC_MSG_ERROR([Please install the libXpm and libXt development files.])
5672              ])
5673           ])
5674         ])
5675         VLC_ADD_CPPFLAGS([mozilla],[${CPPFLAGS} ${XPM_CFLAGS}])
5676         VLC_ADD_LIBS([mozilla],[${MOZILLA_LIBS} ${XPM_LIBS}])
5677         VLC_ADD_PLUGIN([mozilla])
5678         PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5679         MOZILLA_CONFIG=
5680         CPPFLAGS="${CPPFLAGS_save}"
5681           ],
5682           [
5683             AC_PATH_PROGS(MOZILLA_CONFIG,
5684             [mozilla-config seamonkey-config xulrunner-config],
5685             AC_MSG_ERROR([Please install the Mozilla development tools. mozilla-config was not found.])
5686                   )
5687           ]
5688         )
5689     dnl pkg-config failed but we might have found a mozilla-config
5690     AS_IF( [test ! -z "${MOZILLA_CONFIG}"],[
5691       if ${MOZILLA_CONFIG} --defines | grep -q 'MOZ_X11=1'; then
5692         LDFLAGS="${LDFLAGS_save} ${X_LIBS} ${X_PRE_LIBS}"
5693         AC_CHECK_LIB(Xt,XtStrings,
5694          [
5695            VLC_ADD_CPPFLAGS([mozilla],[${X_CFLAGS}])
5696            VLC_ADD_LIBS([mozilla],[${X_LIBS} ${X_PRE_LIBS} -lXt -lX11 -lSM -lICE -lXpm])
5697          ],
5698          [],
5699          [[${X_LIBS} ${X_PRE_LIBS} -lX11 -lSM -lICE -lXpm]
5700         ])
5701         AC_CHECK_HEADERS(X11/xpm.h,,AC_MSG_ERROR([Please install libXpm-devel library for required X11/xpm.h]))
5702         LDFLAGS="${LDFLAGS_save}"
5703       fi
5704
5705       mozilla=:
5706       PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5707       VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin java`]])
5708       VLC_ADD_LIBS([mozilla],[`${MOZILLA_CONFIG} --libs plugin`])
5709       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
5710       MOZILLA_REQUIRED_HEADERS=1
5711       AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5712       AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5713       AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5714         [#if HAVE_NPAPI_H
5715          # include <npapi.h>
5716          #endif
5717         ])
5718       if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5719       then
5720         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5721       fi
5722       MOZILLA_REQUIRED_HEADERS=
5723       CPPFLAGS="${CPPFLAGS_save}"
5724       MOZILLA_SDK_PATH="`${MOZILLA_CONFIG} --prefix`"
5725     ])
5726     dnl End of moz_sdk = ""
5727   ],[
5728     dnl special case for mingw32
5729     if test "${SYS}" = "mingw32"
5730     then
5731       AC_CHECK_TOOL(CYGPATH, cygpath, "")
5732       dnl latest gecko sdk does not have an xpcom directory
5733       if test -d "${with_mozilla_sdk_path}/xpcom"; then
5734           mozilla_sdk_xpcom="/xpcom"
5735       fi
5736     fi
5737
5738     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
5739     CPPFLAGS="${CPPFLAGS_save} -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include"
5740     MOZILLA_REQUIRED_HEADERS=1
5741     AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5742     AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5743     AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5744         [#if HAVE_NPAPI_H
5745           #include <npapi.h>
5746           #endif
5747         ])
5748     if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5749     then
5750         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5751     fi
5752     MOZILLA_REQUIRED_HEADERS=
5753     mozilla=:
5754     PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5755     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])
5756     if ${need_xpcom_libs}; then
5757        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])
5758       if test "${SYS}" = "mingw32"; then
5759         dnl latest gecko sdk does not have embedstring
5760         if test -d "${real_mozilla_sdk}/embedstring/bin"
5761         then
5762           VLC_ADD_LIBS([mozilla],[-lembedstring])
5763         fi
5764       fi
5765     fi
5766     MOZILLA_SDK_PATH="${real_mozilla_sdk}"
5767
5768     if test -n "${CYGPATH}"; then
5769       real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
5770     fi
5771     CPPFLAGS="${CPPFLAGS_save}"
5772  ])
5773 fi
5774 AC_LANG_POP(C++)
5775 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
5776
5777 dnl Tests for Osso and Xsp
5778 AC_CHECK_LIB(osso, osso_display_blanking_pause, [
5779   PKG_CHECK_MODULES(GLIB2, glib-2.0, [
5780     VLC_ADD_CPPFLAGS([x11 xvideo xvmc glx omapfb],[-DHAVE_OSSO ${DBUS_CFLAGS} ${GLIB2_CFLAGS}])
5781     VLC_ADD_LIBS([x11 xvideo xvmc glx omapfb],[-losso])
5782  ])
5783 ])
5784 AC_CHECK_LIB(Xsp, XSPSetPixelDoubling,[
5785   VLC_ADD_CPPFLAGS([x11 xvideo xvmc glx],[-DHAVE_XSP])
5786   VLC_ADD_LIBS([x11 xvideo xvmc glx],[-lXsp])
5787 ])
5788
5789 dnl
5790 dnl  test plugins
5791 dnl
5792 AC_ARG_ENABLE(testsuite,
5793   [  --enable-testsuite      build test modules (default disabled)])
5794 if test "${enable_testsuite}" = "yes"
5795 then
5796   TESTS="test1 test2 test3 test4"
5797
5798   dnl  we define those so that bootstrap sets the right linker
5799   VLC_ADD_CXXFLAGS([test2],[])
5800   VLC_ADD_OBJCFLAGS([test3],[])
5801   dnl  this one is needed until automake knows what to do
5802   VLC_ADD_LIBS([test3],[-lobjc])
5803
5804   VLC_ADD_PLUGIN([test1])
5805   VLC_ADD_PLUGIN([test2])
5806   VLC_ADD_PLUGIN([test3])
5807   VLC_ADD_PLUGIN([test4])
5808 fi
5809
5810 dnl
5811 dnl  gtk_main plugin
5812 dnl
5813 if test "${NEED_GTK_MAIN}" != "no"
5814 then
5815     VLC_ADD_PLUGIN([gtk_main])
5816     VLC_ADD_CFLAGS([gtk_main],[${CFLAGS_gtk}])
5817     VLC_ADD_LDFLAGS([gtk_main],[${LDFLAGS_gtk}])
5818 fi
5819
5820 if test "${NEED_GNOME_MAIN}" != "no"
5821 then
5822     VLC_ADD_PLUGIN([gnome_main])
5823     VLC_ADD_CFLAGS([gnome_main],[${CFLAGS_gtk} ${CFLAGS_gnome}])
5824     VLC_ADD_LDFLAGS([gnome_main],[${LDFLAGS_gtk} ${LDFLAGS_gnome}])
5825 fi
5826
5827 if test "${NEED_GTK2_MAIN}" != "no"
5828 then
5829     VLC_ADD_PLUGIN([gtk2_main])
5830     VLC_ADD_CFLAGS([gtk2],[-DNEED_GTK2_MAIN])
5831     VLC_ADD_CFLAGS([pda],[-DNEED_GTK2_MAIN])
5832     VLC_ADD_CFLAGS([gtk2_main],[${CFLAGS_gtk2} ${CFLAGS_pda}])
5833     VLC_ADD_LDFLAGS([gtk2_main],[${LDFLAGS_gtk2} ${LDFLAGS_pda}])
5834 fi
5835
5836 if test "${NEED_GNOME2_MAIN}" != "no"
5837 then
5838     VLC_ADD_PLUGIN([gnome2_main])
5839     VLC_ADD_CFLAGS([gnome2_main],[${CFLAGS_gtk2} ${CFLAGS_gnome2}])
5840     VLC_ADD_LDFLAGS([gnome2_main],[${LDFLAGS_gtk2} ${LDFLAGS_gnome2}])
5841 fi
5842
5843 dnl
5844 dnl  qte_main plugin
5845 dnl
5846 if test "${NEED_QTE_MAIN}" != "no"
5847 then
5848     VLC_ADD_PLUGIN([qte_main])
5849     VLC_ADD_CXXFLAGS([opie qte qt_video],[-DNEED_QTE_MAIN])
5850     VLC_ADD_CXXFLAGS([qte_main],[${CXXFLAGS_qte} ${CXXFLAGS_qt_video}])
5851     VLC_ADD_LDFLAGS([qte_main],[${LDFLAGS_qte} ${LDFLAGS_qt_video}])
5852 fi
5853
5854 dnl
5855 dnl  Plugin and builtin checks
5856 dnl
5857 plugin_support=yes
5858
5859 dnl Automagically disable plugins if there is no system support for
5860 dnl dynamically loadable files (.so, .dll, .dylib).
5861 dnl don't forget vlc-win32 still can load .dll as plugins
5862 AS_IF([test "${ac_cv_have_plugins}" = "no"], [
5863   AC_MSG_WARN([*** No plugin support! Building statically! ***])
5864   plugin_support=no
5865 ])
5866
5867 AS_IF([test "${plugin_support}" != "no"], [
5868   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, [Define if dynamic plugins are supported])
5869 ])
5870
5871 dnl
5872 dnl Pic and shared libvlc stuff
5873 dnl
5874 AS_IF([test "${SYS}" = "mingw32"], [
5875   FILE_LIBVLCCORE_DLL="!define LIBVLCCORE_DLL libvlccore.dll"
5876   FILE_LIBVLC_DLL="!define LIBVLC_DLL libvlc.dll"
5877 ])
5878
5879 dnl
5880 dnl  Stuff used by the program
5881 dnl
5882 VERSION_MESSAGE="${VERSION} ${CODENAME}"
5883 COPYRIGHT_MESSAGE="VLC media player - version ${VERSION_MESSAGE} - (c) ${COPYRIGHT_YEARS} the VideoLAN team"
5884 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string])
5885 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string])
5886 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
5887 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
5888 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
5889 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
5890 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
5891 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
5892 AC_SUBST(COPYRIGHT_MESSAGE)
5893 AC_SUBST(VERSION_MESSAGE)
5894 AC_SUBST(VERSION_MAJOR)
5895 AC_SUBST(VERSION_MINOR)
5896 AC_SUBST(VERSION_REVISION)
5897 AC_SUBST(VERSION_EXTRA)
5898 AC_SUBST(COPYRIGHT_YEARS)
5899 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure])
5900 if test "${build_os}" = "cygwin"
5901 then
5902     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [host which ran configure])
5903 else
5904     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -s`", [host which ran configure])
5905 fi
5906 AC_DEFINE_UNQUOTED(VLC_COMPILE_DOMAIN, "`dnsdomainname 2>/dev/null || domainname 2>/dev/null || echo unknown`", [domain of the host which ran configure])
5907 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler])
5908 dnl Win32 need s a numerical version_extra.
5909 case $( echo ${VERSION_EXTRA}|wc -m ) in
5910        "1") VERSION_EXTRA_RC="0";;
5911        "2") VERSION_EXTRA_RC=$( echo ${VERSION_EXTRA}|tr "abcdefghi" "123456789") ;;
5912        *) VERSION_EXTRA_RC="99"
5913 esac
5914 AC_SUBST(VERSION_EXTRA_RC)
5915 dnl
5916 dnl  Handle substvars that use $(top_srcdir)
5917 dnl
5918 VLC_CONFIG="top_srcdir=\"\$(top_srcdir)\" top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
5919 AC_SUBST(VLC_CONFIG)
5920 CPPFLAGS_save="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS_save}"
5921
5922 dnl
5923 dnl  Restore *FLAGS
5924 dnl
5925 VLC_RESTORE_FLAGS
5926
5927 dnl
5928 dnl Sort the modules list
5929 dnl
5930 PLUGINS=$( (for i in `echo $PLUGINS`; do echo $i; done)|sort|xargs )
5931
5932 dnl
5933 dnl  Create the vlc-config script
5934 dnl
5935 LDFLAGS_libvlc="${LDFLAGS_libvlc} ${LDFLAGS_builtin}"
5936
5937 dnl
5938 dnl  Configuration is finished
5939 dnl
5940 AC_SUBST(SYS)
5941 AC_SUBST(ARCH)
5942 AC_SUBST(ALIASES)
5943 AC_SUBST(ASM)
5944 AC_SUBST(MOC)
5945 AC_SUBST(RCC)
5946 AC_SUBST(UIC)
5947 AC_SUBST(WINDRES)
5948 AC_SUBST(MOZILLA_SDK_PATH)
5949 AC_SUBST(WINE_SDK_PATH)
5950 AC_SUBST(LIBEXT)
5951 AC_SUBST(AM_CPPFLAGS)
5952 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
5953 AC_SUBST(FILE_LIBVLCCORE_DLL)
5954 AC_SUBST(FILE_LIBVLC_DLL)
5955
5956 dnl Create vlc-config.in
5957 VLC_OUTPUT_VLC_CONFIG_IN
5958
5959 AC_CONFIG_FILES([
5960   extras/package/win32/vlc.win32.nsi
5961   extras/package/macosx/Info.plist
5962   extras/package/macosx/Resources/English.lproj/InfoPlist.strings
5963   extras/package/macosx/plugin/Info.plist
5964   extras/package/macosx/plugin/InstallerInfo.plist
5965   Makefile
5966   projects/activex/Makefile
5967   projects/activex/axvlc.inf
5968   doc/Makefile
5969   extras/package/ipkg/Makefile
5970   libs/loader/Makefile
5971   libs/srtp/Makefile
5972   libs/unzip/Makefile
5973   modules/Makefile
5974   projects/mozilla/Makefile
5975   m4/Makefile
5976   po/Makefile.in
5977   projects/activex/axvlc_rc.rc
5978   projects/mozilla/npvlc_rc.rc
5979   projects/mozilla/vlc.r
5980   projects/mozilla/install.js
5981   share/Makefile
5982   share/vlc_win32_rc.rc
5983   share/libvlc_win32_rc.rc
5984   compat/Makefile
5985   src/Makefile
5986   src/test/Makefile
5987   bin/Makefile
5988   test/Makefile
5989   modules/access/Makefile
5990   modules/access/bd/Makefile
5991   modules/access/bda/Makefile
5992   modules/access/dshow/Makefile
5993   modules/access/dvb/Makefile
5994   modules/access/mms/Makefile
5995   modules/access/cdda/Makefile
5996   modules/access/rtp/Makefile
5997   modules/access/rtsp/Makefile
5998   modules/access/rtmp/Makefile
5999   modules/access/vcd/Makefile
6000   modules/access/vcdx/Makefile
6001   modules/access/screen/Makefile
6002   modules/access/zip/Makefile
6003   modules/access_output/Makefile
6004   modules/audio_filter/Makefile
6005   modules/audio_filter/channel_mixer/Makefile
6006   modules/audio_filter/converter/Makefile
6007   modules/audio_filter/resampler/Makefile
6008   modules/audio_filter/spatializer/Makefile
6009   modules/audio_mixer/Makefile
6010   modules/audio_output/Makefile
6011   modules/codec/Makefile
6012   modules/codec/avcodec/Makefile
6013   modules/codec/cmml/Makefile
6014   modules/codec/dmo/Makefile
6015   modules/codec/shine/Makefile
6016   modules/codec/subtitles/Makefile
6017   modules/codec/spudec/Makefile
6018   modules/codec/wmafixed/Makefile
6019   modules/codec/xvmc/Makefile
6020   modules/control/Makefile
6021   modules/control/http/Makefile
6022   modules/control/globalhotkeys/Makefile
6023   modules/demux/Makefile
6024   modules/demux/asf/Makefile
6025   modules/demux/avformat/Makefile
6026   modules/demux/avi/Makefile
6027   modules/demux/mkv/Makefile
6028   modules/demux/mp4/Makefile
6029   modules/demux/mpeg/Makefile
6030   modules/demux/playlist/Makefile
6031   modules/gui/Makefile
6032   modules/gui/beos/Makefile
6033   modules/gui/pda/Makefile
6034   modules/gui/macosx/Makefile
6035   modules/gui/maemo/Makefile
6036   modules/gui/minimal_macosx/Makefile
6037   modules/gui/qnx/Makefile
6038   modules/gui/qt4/Makefile
6039   modules/gui/skins2/Makefile
6040   modules/gui/wince/Makefile
6041   modules/meta_engine/Makefile
6042   modules/misc/Makefile
6043   modules/misc/dummy/Makefile
6044   modules/misc/lua/Makefile
6045   modules/misc/memcpy/Makefile
6046   modules/misc/notify/Makefile
6047   modules/misc/testsuite/Makefile
6048   modules/misc/playlist/Makefile
6049   modules/misc/osd/Makefile
6050   modules/misc/stats/Makefile
6051   modules/misc/xml/Makefile
6052   modules/misc/probe/Makefile
6053   modules/mux/Makefile
6054   modules/mux/mpeg/Makefile
6055   modules/packetizer/Makefile
6056   modules/services_discovery/Makefile
6057   modules/stream_filter/Makefile
6058   modules/stream_out/Makefile
6059   modules/stream_out/transrate/Makefile
6060   modules/video_chroma/Makefile
6061   modules/video_filter/Makefile
6062   modules/video_filter/atmo/Makefile
6063   modules/video_filter/dynamicoverlay/Makefile
6064   modules/video_output/Makefile
6065   modules/video_output/msw/Makefile
6066   modules/video_output/qte/Makefile
6067   modules/video_output/x11/Makefile
6068   modules/visualization/Makefile
6069   modules/visualization/visual/Makefile
6070   modules/visualization/galaktos/Makefile
6071 ])
6072
6073 dnl Generate makefiles
6074 AC_OUTPUT
6075
6076 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
6077 # not provided with the source
6078 ${SHELL} ./config.status --file=vlc-config
6079 chmod 0755 vlc-config
6080
6081 /bin/echo -n "Enabled modules: "
6082 ./vlc-config --list plugin
6083
6084 dnl Shortcut to nice compile message
6085 rm -f compile
6086 echo '#! /bin/sh' >compile
6087 echo rm -f .error\$\$ >>compile
6088 echo ERROR=0 >>compile
6089 echo export PATH=$PATH LANG=C >>compile
6090 echo "(make \$@ 2>&1 || touch .error\$\$)| \\" >>compile
6091 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/buildsystem/make.pl' >>compile
6092 echo test -f .error\$\$ \&\& ERROR=1 >>compile
6093 echo rm -f .error\$\$ >>compile
6094 echo exit \$ERROR >>compile
6095 chmod a+x compile
6096
6097 printf "
6098 libvlc configuration
6099 --------------------
6100 version               : ${VERSION}
6101 system                : ${SYS}
6102 architecture          : ${ARCH}
6103 build flavour         : "
6104 test "${enable_debug}" = "yes" && printf "debug "
6105 test "${enable_cprof}" = "yes" && printf "cprof "
6106 test "${enable_gprof}" = "yes" && printf "gprof "
6107 test "${enable_optimizations}" = "yes" && printf "optim "
6108 test "${enable_release}" = "yes" && printf "release " || printf "devel "
6109 echo ""
6110 if test "${enable_vlc}" != "no"; then
6111 echo "vlc aliases           :${ALIASES}"
6112 else
6113 echo "build vlc executable  : no"
6114 fi
6115 echo "plugins/bindings      :${PLUGINS_BINDINGS}
6116
6117 You can tune the compiler flags in vlc-config.
6118 To build vlc and its plugins, type \`./compile' or \`make'.
6119 "
6120 if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
6121    echo ""
6122    echo "Warning: Due to a bug in ld, mmx/sse support has been"
6123    echo "         turned off."
6124    echo "         FFmpeg will be REALLY slow."
6125    echo "         VLC WILL NOT PERFORM AS EXPECTED."
6126    echo ""
6127 fi