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