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