]> git.sesse.net Git - vlc/blob - configure.ac
Invmem: fix a crash when allocating pictures memory, remove duplicate statement and...
[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   AS_IF([test "${enable_xvideo}" != "no"], [
4168     PKG_CHECK_MODULES(XCB_XV, [xcb-xv], [
4169       VLC_ADD_PLUGIN([xcb_xv])
4170     ])
4171   ])
4172
4173   dnl xcb-utils
4174   PKG_CHECK_MODULES(XCB_AUX, [xcb-aux])
4175   PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms])
4176
4177   VLC_ADD_PLUGIN([xcb])
4178   VLC_ADD_PLUGIN([xcb_window])
4179 ])
4180
4181 dnl
4182 dnl  OpenGL module
4183 dnl  (enabled by default except on beos)
4184 dnl
4185 AC_ARG_ENABLE(opengl,
4186   [  --enable-opengl         OpenGL support (default enabled)])
4187 if test "${enable_opengl}" != "no" &&
4188    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
4189   if test "${SYS}" != "darwin"; then
4190     AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
4191       VLC_ADD_PLUGIN([opengl])
4192       if test "${SYS}" != "mingw32"; then
4193         VLC_ADD_LIBS([opengl],[${X_LIBS} -lGL -lGLU])
4194       else
4195         VLC_ADD_LIBS([opengl],[-lopengl32 -lglu32])
4196       fi
4197     ])
4198   else
4199     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
4200     VLC_ADD_PLUGIN([opengl])
4201     VLC_ADD_LIBS([opengl],[-Wl,-framework,OpenGL])
4202   fi
4203 fi
4204
4205 dnl
4206 dnl  SDL module
4207 dnl
4208 AC_ARG_ENABLE(sdl,
4209   [  --enable-sdl            SDL support (default enabled)])
4210 AC_ARG_ENABLE(sdl-image,
4211   [  --enable-sdl-image      SDL image support (default enabled)])
4212 if test "${enable_sdl}" != "no"
4213 then
4214   SDL_PATH="${PATH}"
4215   AC_ARG_WITH(sdl-config-path,
4216     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
4217     [ if test "${with_sdl_config_path}" != "no"
4218       then
4219         SDL_PATH="${with_sdl_config_path}:${PATH}"
4220       fi ])
4221   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
4222   SDL_CONFIG="${SDL12_CONFIG}"
4223   SDL_HEADER="SDL12/SDL.h"
4224   SDL_IMAGE="SDL12/SDL_image.h"
4225   if test "${SDL_CONFIG}" = "no"
4226   then
4227     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
4228     SDL_CONFIG=${SDL11_CONFIG}
4229     SDL_HEADER="SDL11/SDL.h"
4230     SDL_IMAGE="SDL11/SDL_image.h"
4231   fi
4232   if test "${SDL_CONFIG}" = "no"
4233   then
4234     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
4235     SDL_HEADER="SDL/SDL.h"
4236     SDL_IMAGE="SDL/SDL_image.h"
4237   fi
4238   # check for cross-compiling
4239   SDL_PREFIX=
4240   AC_ARG_WITH(sdl-prefix,
4241     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
4242                                e.g use as:
4243                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
4244   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
4245   then
4246     SDL_PREFIX="--prefix=${with_sdl_prefix}"
4247   fi
4248   if test "${SDL_CONFIG}" != "no"
4249   then
4250     # SDL on Darwin is heavily patched and can only run SDL_image
4251     if test "${SYS}" != "darwin" -a "${SYS}" != "mingw32"; then
4252       VLC_ADD_PLUGIN([vout_sdl])
4253       VLC_ADD_PLUGIN([aout_sdl])
4254     fi
4255     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
4256     VLC_ADD_LIBS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
4257     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
4258     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
4259       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
4260       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
4261           As a last resort we also test for SDL.h presence),
4262       [ AC_MSG_ERROR([The development package for SDL is not installed.
4263 Please install it and try again. Alternatively you can also configure with
4264 --disable-sdl.])
4265       ])])
4266     AS_IF([ test "${enable_sdl_image}" != "no"],[
4267       AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
4268         <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
4269         VLC_ADD_PLUGIN([sdl_image])
4270         AC_CHECK_LIB(png, png_set_rows,
4271           [VLC_ADD_LIBS([sdl_image],[-lpng -lz])],[],[-lz])
4272         AC_CHECK_LIB(jpeg, jpeg_start_decompress,
4273           [VLC_ADD_LIBS([sdl_image],[-ljpeg])])
4274         AC_CHECK_LIB(tiff, TIFFClientOpen,
4275           [VLC_ADD_LIBS([sdl_image],[-ltiff])])
4276         VLC_ADD_LIBS([sdl_image], [-lSDL_image])],
4277         [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
4278             As a last resort we also test for SDL_image.h presence),
4279         [ AC_MSG_WARN([The development package for SDL_image is not installed.
4280   You should install it alongside your SDL package.])
4281         ])])
4282     ])
4283     CPPFLAGS="${CPPFLAGS_save}"
4284     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
4285     then
4286       AC_MSG_ERROR([The development package for SDL is not installed.
4287 Please install it and try again. Alternatively you can also configure with
4288 --disable-sdl.])
4289     fi
4290
4291   elif test "${enable_sdl}" =  "yes"
4292   then
4293     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
4294 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
4295     ])
4296   fi
4297 fi
4298
4299 dnl
4300 dnl  freetype module
4301 dnl
4302 AC_ARG_ENABLE(freetype,
4303   [  --enable-freetype       freetype support (default enabled)])
4304 AC_ARG_ENABLE(fribidi,
4305   [  --enable-fribidi        fribidi support (default enabled)])
4306 AC_ARG_ENABLE(fontconfig,
4307   [  --enable-fontconfig,    fontconfig support (default enabled)])
4308 if test "${enable_freetype}" != "no"
4309 then
4310    PKG_CHECK_MODULES(FREETYPE, freetype2,[
4311       VLC_ADD_PLUGIN([freetype])
4312       have_freetype=yes
4313       VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
4314       VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
4315       if test "${SYS}" = "mingw32"; then
4316         VLC_ADD_LIBS([freetype skins2],[-lxml2])
4317         VLC_ADD_LIBS([freetype],[-liconv])
4318       fi
4319       if test "${enable_fontconfig}" != "no"
4320       then
4321         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
4322           [VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
4323            VLC_ADD_LIBS([freetype],[-lfontconfig])])
4324         AC_CHECK_HEADERS(Carbon/Carbon.h,
4325           [VLC_ADD_LDFLAGS([freetype],[-Wl,-framework,Carbon])])
4326       fi
4327   ],[
4328   have_freetype=no
4329   AS_IF([ test "${enable_freetype}" =  "yes"],[
4330     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
4331 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
4332       ])
4333     ])
4334   ])
4335
4336   dnl fribidi support
4337   if test "${enable_fribidi}" != "no"
4338   then
4339     PKG_CHECK_MODULES(FRIBIDI, fribidi, [
4340       VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
4341       VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
4342     ])
4343     fi
4344 fi
4345
4346 dnl
4347 dnl  libxml2 module
4348 dnl
4349 AC_ARG_ENABLE(libxml2,
4350   [  --enable-libxml2        libxml2 support (default enabled)])
4351 AS_IF([test "${enable_libxml2}" != "no"], [
4352   PKG_CHECK_MODULES([XML2], [libxml-2.0 >= 2.5], [
4353     VLC_ADD_CPPFLAGS([xml],[${XML2_CFLAGS}])
4354     VLC_ADD_LIBS([xml],[${XML2_LIBS}])
4355     VLC_ADD_PLUGIN([xml])
4356   ], [
4357     AS_IF([test "x${enable_xml2}" != "x"], [
4358       AC_MSG_ERROR([Could not find libxml version 2.5 or higher])
4359     ])
4360   ])
4361 ])
4362
4363 dnl
4364 dnl  SVG module
4365 dnl
4366 AC_ARG_ENABLE(svg,
4367   [  --enable-svg            SVG support (default disabled)])
4368 if test "${enable_svg}" = "yes"
4369 then
4370   PKG_CHECK_MODULES(SVG,
4371         librsvg-2.0 >= 2.9.0,
4372         [
4373           VLC_ADD_LIBS([svg],[$SVG_LIBS])
4374           VLC_ADD_CFLAGS([svg],[$SVG_CFLAGS])
4375           VLC_ADD_PLUGIN([svg]) ],
4376         [AC_MSG_WARN(SVG library not found)])
4377 fi
4378
4379 dnl
4380 dnl Snapshot vout module (with cache)
4381 dnl
4382 AC_ARG_ENABLE(snapshot,
4383   [  --enable-snapshot       snapshot module (default disabled)])
4384 if test "${enable_snapshot}" = "yes"
4385 then
4386   VLC_ADD_PLUGIN([snapshot])
4387 fi
4388
4389 dnl
4390 dnl  Qt Embedded module
4391 dnl  (disabled by default)
4392 dnl
4393 AC_ARG_ENABLE(qte,
4394   [  --enable-qte            QT Embedded support (default disabled)])
4395 if test "${enable_qte}" = "yes"
4396 then
4397   AC_ARG_WITH(qte,
4398   [    --with-qte=PATH       Qt Embedded headers and libraries])
4399   if test "${with_qte}" != "no" -a -n "${with_qte}"
4400   then
4401     VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4402     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])
4403   else
4404     VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4405     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
4406   fi
4407   VLC_ADD_PLUGIN([qte])
4408   NEED_QTE_MAIN=yes
4409   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4410   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4411     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4412   ] )
4413   CPPFLAGS="${CPPFLAGS_save}"
4414 fi
4415
4416 dnl
4417 dnl Roku HD1000 Video output module
4418 dnl
4419 AC_ARG_ENABLE(hd1000v,
4420   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
4421 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
4422   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4423    test "${enable_hd1000v}" = "yes"); then
4424   AC_LANG_PUSH([C++])
4425   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
4426   [
4427     can_build_roku="yes"
4428   ],
4429   [
4430     can_build_roku="no"
4431     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
4432   ])
4433   if test "$can_build_roku" = "yes"
4434   then
4435     VLC_ADD_PLUGIN([hd1000v])
4436     VLC_ADD_LIBS([hd1000v],[-lCascade -ldvbpsi -lmad])
4437   fi
4438   AC_LANG_POP([C++])
4439 fi
4440
4441 dnl
4442 dnl  Windows DirectX module
4443 dnl
4444
4445 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4446 then
4447   VLC_ADD_PLUGIN([panoramix])
4448 fi
4449
4450 AC_ARG_ENABLE(directx,
4451   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
4452 if test "${enable_directx}" != "no"
4453 then
4454   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4455   then
4456     AC_ARG_WITH(directx,
4457     [    --with-directx=PATH   Win32 DirectX headers])
4458     if test -z "${with_directx}"
4459     then
4460       AC_CHECK_HEADERS(ddraw.h,
4461       [ VLC_ADD_PLUGIN([vout_directx])
4462         VLC_ADD_PLUGIN([aout_directx])
4463         VLC_ADD_LIBS([vout_directx],[-lgdi32])
4464       ])
4465       AC_CHECK_HEADERS(GL/gl.h,
4466       [ VLC_ADD_PLUGIN([glwin32])
4467         VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
4468       ])
4469       AC_CHECK_HEADERS(d3d9.h,
4470       [ VLC_ADD_PLUGIN([direct3d])
4471         VLC_ADD_LIBS([direct3d],[-lgdi32])
4472       ])
4473     else
4474       AC_MSG_CHECKING(for directX headers in ${with_directx})
4475       if test -f ${with_directx}/ddraw.h
4476       then
4477         VLC_ADD_PLUGIN([vout_directx])
4478         VLC_ADD_PLUGIN([aout_directx])
4479         VLC_ADD_CPPFLAGS([vout_directx aout_directx],[-I${with_directx}])
4480         VLC_ADD_LIBS([vout_directx],[-lgdi32])
4481         AC_MSG_RESULT(yes)
4482       else
4483         AC_MSG_RESULT(no)
4484         AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
4485       fi
4486     fi
4487   fi
4488 fi
4489
4490 dnl
4491 dnl  Linux framebuffer module
4492 dnl
4493 AC_ARG_ENABLE(fb,
4494   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
4495     if test "${enable_fb}" != "no"
4496     then
4497       AC_CHECK_HEADERS(linux/fb.h, [
4498         VLC_ADD_PLUGIN([fb])
4499       ])
4500     fi
4501
4502 dnl
4503 dnl  Linux MGA module
4504 dnl
4505 AC_ARG_ENABLE(mga,
4506   [  --enable-mga            Linux kernel Matrox support (default disabled)],
4507   [ if test "${enable_mga}" = "yes"
4508     then
4509       VLC_ADD_PLUGIN([mga])
4510     fi ])
4511
4512 dnl
4513 dnl  OMAP Framebuffer module
4514 dnl
4515 AC_ARG_ENABLE(omapfb,
4516   [  --enable-omapfb         OMAP framebuffer support (default disabled)])
4517     if test "${enable_omapfb}" = "yes"
4518     then
4519       AC_CHECK_HEADERS(asm/arch-omap/omapfb.h, [
4520         VLC_ADD_PLUGIN([omapfb])
4521         AC_CHECK_HEADERS(X11/Xlib.h, [
4522           VLC_ADD_LIBS([omapfb],[${X_LIBS} ${X_PRE_LIBS} -lX11]) ])
4523       ])
4524     fi
4525
4526 dnl
4527 dnl  SVGAlib module
4528 dnl
4529 AC_ARG_ENABLE(svgalib,
4530   [  --enable-svgalib        SVGAlib support (default disabled)])
4531 if test "${enable_svgalib}" = "yes"
4532 then
4533   VLC_ADD_PLUGIN([svgalib])
4534   VLC_ADD_LIBS([svgalib],[-lvgagl -lvga])
4535 fi
4536
4537 dnl
4538 dnl  DirectFB module
4539 dnl  try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
4540 dnl  TODO: support for static linking
4541 dnl
4542 AC_ARG_ENABLE(directfb,
4543   [  --enable-directfb       DirectFB support (default disabled)])
4544 AC_ARG_WITH(directfb,
4545   [    --with-directfb=PATH  path to DirectFB headers and libraries])
4546
4547 if test "${enable_directfb}" = "yes"; then
4548     have_directfb="false"
4549     CPPFLAGS_mydirectfb=
4550     LIBS_mydirectfb=
4551     if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
4552         dnl Trying the given location
4553         CPPFLAGS_save="${CPPFLAGS}"
4554         LIBS_save="${LIBS}"
4555
4556         CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
4557         LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/"
4558         LIBS_new="${LIBS_new} -L${with_directfb}/src/.libs/"
4559
4560         CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
4561         LIBS="${LIBS} ${LIBS_new}"
4562
4563         dnl FIXME: too obscure
4564         AC_CHECK_HEADER([directfb.h], [
4565             AC_CHECK_LIB([direct],[direct_initialize], [
4566                 AC_CHECK_LIB([fusion], [fusion_enter], [
4567                     AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
4568                 ], have_directfb="false")
4569             ], have_directfb="false")
4570         ], have_directfb="false")
4571
4572         dnl Restore flags
4573         CPPFLAGS="${CPPFLAGS_save}"
4574         LIBS="${LIBS_save}"
4575
4576         if test "${have_directfb}" = "true"; then
4577             LIBS_mydirectfb="${LIBS_new} -lz -ldl -ldirectfb -lfusion -ldirect -lpthread"
4578             CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
4579         fi
4580     else
4581         dnl Look for directfb-config
4582         AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
4583         if test "${DIRECTFB_CONFIG}" != "no"; then
4584             CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
4585             LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
4586             have_directfb="true"
4587         else
4588             dnl Trying with pkg-config
4589             PKG_CHECK_MODULES(DIRECTFB, directfb, [
4590                 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
4591                 LIBS_mydirectfb="${DIRECTFB_LIBS}"
4592                 have_directfb="true"
4593                 ], [have_directfb="false"])
4594         fi
4595     fi
4596     if test "${have_directfb}" = "true"; then
4597         VLC_ADD_PLUGIN([directfb])
4598         VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
4599         VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
4600     else
4601         AC_MSG_ERROR([cannot find directfb headers and/or libraries ])
4602     fi
4603 fi
4604
4605
4606
4607 dnl
4608 dnl  GGI module
4609 dnl
4610 AC_ARG_ENABLE(ggi,
4611   [  --enable-ggi            GGI support (default disabled)])
4612 if test "${enable_ggi}" = "yes"
4613 then
4614   AC_CHECK_HEADER([ggi/ggi.h],[
4615     VLC_ADD_PLUGIN([ggi])
4616     VLC_ADD_LIBS([ggi],[-lggi])
4617     AC_ARG_WITH(ggi,
4618       [    --with-ggi=PATH       path to libggi],
4619       [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
4620         then
4621           VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
4622           VLC_ADD_LIBS([ggi],[-L${with_ggi}/lib])
4623         fi ])
4624     ],[
4625        AC_MSG_ERROR([LibGGI development files can't be found])
4626     ])
4627 fi
4628
4629 dnl
4630 dnl  AA plugin
4631 dnl
4632 AC_ARG_ENABLE(aa,
4633   [  --enable-aa             aalib output (default disabled)])
4634 if test "${enable_aa}" = "yes"
4635 then
4636   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
4637   if test "${have_aa}" = "true"
4638   then
4639     VLC_ADD_PLUGIN([aa])
4640     VLC_ADD_LIBS([aa],[-laa])
4641   fi
4642 fi
4643
4644 dnl
4645 dnl  libcaca plugin
4646 dnl
4647 AC_ARG_ENABLE(caca,
4648   [  --enable-caca           libcaca output (default disabled)])
4649 if test "${enable_caca}" = "yes"
4650 then
4651   CACA_PATH="${PATH}"
4652   AC_ARG_WITH(caca-config-path,
4653     [    --with-caca-config-path=PATH caca-config path (default search in \$PATH)],
4654     [ if test "${with_caca_config_path}" != "no"
4655       then
4656         CACA_PATH="${with_caca_config_path}:${PATH}"
4657       fi ])
4658   AC_PATH_PROG(CACA_CONFIG, caca-config, no, ${CACA_PATH})
4659   if test "${CACA_CONFIG}" != "no"
4660   then
4661     VLC_ADD_PLUGIN([caca])
4662     VLC_ADD_CFLAGS([caca],[`${CACA_CONFIG} --cflags`])
4663     VLC_ADD_LIBS([caca],[`${CACA_CONFIG} --plugin-libs`])
4664     AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include <caca.h>
4665                                         caca_event_t ev;]],
4666                                         [[ev.type = 0;]]
4667                        )],
4668                        [],
4669       [AC_DEFINE(CACA_EVENT_OPAQUE, [1], ["Define if struct caca_event is opaque and must not be accessed directly"])]
4670     )
4671   fi
4672 fi
4673
4674 dnl
4675 dnl  win32 GDI plugin
4676 dnl
4677 AC_ARG_ENABLE(wingdi,
4678   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
4679 if test "${enable_wingdi}" != "no"; then
4680   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4681     VLC_ADD_PLUGIN([wingdi])
4682     VLC_ADD_LIBS([wingdi],[-lgdi32])
4683   fi
4684   if test "${SYS}" = "mingwce"; then
4685     VLC_ADD_PLUGIN([wingdi])
4686     VLC_ADD_PLUGIN([wingapi])
4687     VLC_ADD_LIBS([wingdi],[-laygshell])
4688     VLC_ADD_LIBS([wingapi],[-laygshell])
4689   fi
4690 fi
4691
4692 dnl
4693 dnl  Audio plugins
4694 dnl
4695
4696 AC_ARG_WITH(,[Audio plugins:])
4697
4698 dnl
4699 dnl  OSS /dev/dsp module (enabled by default except on win32)
4700 dnl
4701 AC_ARG_ENABLE(oss,
4702   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
4703
4704 if test "${enable_oss}" != "no" &&
4705   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4706    test "${enable_oss}" = "yes")
4707 then
4708   AC_CHECK_HEADERS(soundcard.h sys/soundcard.h machine/soundcard.h, [
4709     VLC_ADD_PLUGIN([oss])
4710     VLC_ADD_PLUGIN([access_oss])
4711     AC_CHECK_LIB(ossaudio,main,VLC_ADD_LIBS([oss],[-lossaudio]))
4712   ])
4713 fi
4714
4715 dnl
4716 dnl  Pulseaudio module
4717 dnl
4718 AC_ARG_ENABLE(pulse,
4719   [  --enable-pulse          Pulseaudio support (default enabled)])
4720   if test "${enable_pulse}" != "no"
4721    then
4722      PKG_CHECK_MODULES(PULSE, libpulse >= 0.9.8,
4723        [ VLC_ADD_PLUGIN([pulse])
4724         VLC_ADD_CFLAGS([pulse],[${PULSE_CFLAGS}])
4725         VLC_ADD_LDFLAGS([pulse],[${PULSE_LIBS}])],
4726        [AC_MSG_WARN(pulseaudio library not found)])
4727    fi
4728
4729 dnl
4730 dnl  Portaudio module
4731 dnl
4732 AC_ARG_ENABLE(portaudio,
4733   [  --enable-portaudio      Portaudio library support (default disabled)],
4734   [if test "${enable_portaudio}" = "yes"
4735    then
4736      VLC_ADD_PLUGIN([portaudio])
4737      VLC_ADD_CXXFLAGS([portaudio],[])
4738      if test "${SYS}" = "mingw32"; then
4739         VLC_ADD_LIBS([portaudio],[-lportaudio -lwinmm -lole32])
4740      else
4741         VLC_ADD_LIBS([portaudio],[-lportaudio])
4742      fi
4743    fi])
4744
4745 dnl
4746 dnl  ALSA module
4747 dnl
4748 AC_ARG_ENABLE(alsa,
4749   [  --enable-alsa           ALSA sound support for Linux (default enabled)])
4750 if test "${enable_alsa}" != "no"
4751 then
4752   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
4753   if test "${have_alsa}" = "true"
4754   then
4755     CFLAGS="${CFLAGS_save}"
4756     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
4757                     #define ALSA_PCM_NEW_SW_PARAMS_API
4758                     #include <alsa/asoundlib.h>],
4759        [snd_pcm_hw_params_get_period_time(0,0,0);],
4760         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
4761     VLC_ADD_PLUGIN([alsa])
4762     VLC_ADD_LIBS([alsa],[-lasound -lm -ldl])
4763     VLC_ADD_PLUGIN([access_alsa])
4764     VLC_ADD_LIBS([access_alsa],[-lasound -lm -ldl])
4765   else
4766     if test "${enable_alsa}" = "yes"; then
4767       AC_MSG_ERROR([Could not find ALSA development headers])
4768     fi
4769   fi
4770 fi
4771
4772 dnl
4773 dnl  win32 waveOut plugin
4774 dnl
4775 AC_ARG_ENABLE(waveout,
4776   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
4777 if test "${enable_waveout}" != "no"; then
4778   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4779     VLC_ADD_PLUGIN([waveout])
4780     VLC_ADD_LIBS([waveout],[-lwinmm])
4781   fi
4782   if test "${SYS}" = "mingwce"; then
4783     VLC_ADD_PLUGIN([waveout])
4784   fi
4785 fi
4786
4787 dnl
4788 dnl  CoreAudio plugin
4789 dnl
4790 AC_ARG_ENABLE(macosx-audio,
4791   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
4792 if test "${enable_macosx-audio}" != "no" &&
4793   (test "${SYS}" = "darwin" || test "${enable_macosx-audio}" = "yes")
4794 then
4795   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h,
4796     [ VLC_ADD_PLUGIN([auhal])
4797       VLC_ADD_LDFLAGS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
4798     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
4799 fi
4800
4801 dnl
4802 dnl  Roku HD1000 audio
4803 dnl
4804 AC_ARG_ENABLE(hd1000a,
4805   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
4806 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
4807   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4808    test "${enable_hd1000a}" = "yes")
4809 then
4810   AC_LANG_PUSH([C++])
4811   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
4812     VLC_ADD_PLUGIN([hd1000a])
4813     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LIBS([hd1000a],[-lHDMachineX225]))  ])
4814   AC_LANG_POP([C++])
4815 fi
4816
4817 dnl
4818 dnl  JACK modules
4819 dnl
4820 AC_ARG_ENABLE(jack,
4821  [  --enable-jack           JACK audio I/O modules (default disabled)],,
4822  [enable_jack="no"])
4823
4824 AS_IF([test "${enable_jack}" != "no"], [
4825   AC_CHECK_HEADERS(jack/jack.h, [
4826     VLC_ADD_PLUGIN([access_jack])
4827     VLC_ADD_PLUGIN([jack])
4828     VLC_ADD_LIBS([access_jack jack],[-ljack])
4829   ],[AC_MSG_ERROR([cannot find JACK headers])])
4830 ])
4831
4832 dnl
4833 dnl  CyberLink for C++ UPnP stack
4834 dnl
4835 AC_ARG_ENABLE(cyberlink,
4836   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
4837   AS_IF([test "${enable_cyberlink}" = "yes" ], [
4838   AC_ARG_WITH(cyberlink-tree,
4839     [    --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
4840
4841   dnl
4842   dnl test for --with-cyberlink-tree
4843   dnl
4844   AS_IF([test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""], [
4845     AC_LANG_PUSH(C++)
4846     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
4847     AS_IF([test -z "${real_cyberlink_tree}"], [
4848       dnl  The given directory can't be found
4849       AC_MSG_RESULT(no)
4850       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
4851     ])
4852     CPPFLAGS_save="${CPPFLAGS}"
4853     CPPFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
4854     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_cyberlink}"
4855     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
4856       [ VLC_ADD_CXXFLAGS([upnp_cc], [${CPPFLAGS_cyberlink}])
4857         VLC_ADD_PLUGIN([upnp_cc])
4858       ],[
4859         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
4860       ])
4861     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
4862     AS_IF([test -f "${real_cyberlink_tree}/lib/unix/libclink.a"], [
4863       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
4864       dnl The mere fact that we have to make such an ugly check sucks
4865       AC_MSG_CHECKING(for XML parser to link CyberLink with)
4866       LIBS_save="$LIBS"
4867       LIBS_cclink="no"
4868       for l in "`xml2-config --libs`" -lexpat -lxerces-c; do
4869         LIBS="$LIBS_save ${real_cyberlink_tree}/lib/unix/libclink.a -lpthread $l"
4870         AC_LINK_IFELSE([AC_LANG_PROGRAM([
4871 #include <cybergarage/upnp/media/player/MediaPlayer.h>
4872 using namespace CyberLink;
4873
4874 class testclass : public SearchResponseListener, public MediaPlayer
4875 {
4876     virtual void deviceSearchResponseReceived( SSDPPacket *)
4877     {
4878     }
4879
4880     public:
4881       testclass (void)
4882       {
4883         addSearchResponseListener (this);
4884         start ();
4885       }
4886 };
4887 ],[testclass l;])],[LIBS_cclink="$l"])
4888       done
4889       LIBS="${LIBS_save}"
4890       dnl should not happen - otherwise this needs fixing - hence FAILURE
4891       AS_IF([test "${LIBS_cclink}" = "no"],
4892         [AC_MSG_FAILURE([cannot find XML parser for CyberLink])])
4893       AC_MSG_RESULT([${LIBS_cclink}])
4894       VLC_ADD_LIBS([upnp_cc], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}])
4895     ], [
4896       AC_MSG_RESULT(no)
4897       AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
4898     ])
4899     CPPFLAGS="${CPPFLAGS_save}"
4900     AC_LANG_POP([C++])
4901   ])
4902 ])
4903
4904 dnl
4905 dnl UPnP Plugin (Intel SDK)
4906 dnl
4907 AC_ARG_ENABLE(upnp,
4908   AS_HELP_STRING([--enable-upnp],[Intel UPnP SDK (default enabled)]))
4909
4910 VLC_ADD_CXXFLAGS([upnp_intel], [ ])
4911 AS_IF([test "x${enable_upnp}" != "xno"], [
4912   AC_CHECK_LIB([upnp], [UpnpInit], [has_upnp="yes"], [has_upnp="no"], [-lpthread])
4913   AS_IF([test "x${enable_upnp}" != "x" && test "${has_upnp}" = "no"], [
4914     AC_MSG_ERROR([cannot find Intel UPnP SDK (libupnp)])
4915   ])
4916   AS_IF([test "${has_upnp}" = "yes"], [
4917     VLC_ADD_LIBS([upnp_intel], [-lupnp -lixml])
4918   ])
4919 ], [
4920   has_upnp="no"
4921 ])
4922
4923 AS_IF([test "${has_upnp}" = "yes"], [
4924   VLC_ADD_PLUGIN([upnp_intel])
4925 ])
4926
4927
4928 dnl
4929 dnl  Interface plugins
4930 dnl
4931
4932 AC_ARG_WITH(,[Interface plugins:])
4933
4934 dnl special case for BeOS
4935 if test "${SYS}" = "beos"
4936 then
4937     VLC_ADD_PLUGIN([beos])
4938 fi
4939
4940 dnl
4941 dnl Skins2 module
4942 dnl
4943 AC_ARG_ENABLE(skins2,
4944   [AS_HELP_STRING([--enable-skins2],[Skins2 interface module (default
4945    enabled except on MacOSX, BeOS and WinCE)])])
4946 if test "${enable_skins2}" = "yes" ||
4947   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4948    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
4949
4950   dnl test for the required libraries
4951   skins2_missing_lib="no"
4952
4953   dnl freetype
4954   if test "${have_freetype}" != "yes"; then
4955     skins2_missing_lib="yes"
4956     if test "${enable_skins2}" = "yes"; then
4957       AC_MSG_ERROR([Could not find freetype (required for skins2)])
4958     fi
4959   fi
4960
4961   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"); then
4962     VLC_ADD_PLUGIN([skins2])
4963     ALIASES="${ALIASES} svlc"
4964     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
4965     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4966     VLC_ADD_LIBS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
4967
4968   else if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "darwin"); then
4969     VLC_ADD_PLUGIN([skins2])
4970     ALIASES="${ALIASES} svlc"
4971     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
4972     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4973     VLC_ADD_LDFLAGS([skins2],[-Wl,-framework,Carbon])
4974
4975   else if test "${skins2_missing_lib}" = "no"; then
4976     VLC_ADD_PLUGIN([skins2])
4977     ALIASES="${ALIASES} svlc"
4978     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} -DX11_SKINS])
4979     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4980     VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lX11])
4981   fi fi fi
4982 fi
4983 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes" ||
4984          (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4985           test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no")])
4986
4987 dnl
4988 dnl  PDA Gtk+2 module
4989 dnl
4990 AC_ARG_ENABLE(pda,
4991   [  --enable-pda            PDA interface needs Gtk2 support (default disabled)])
4992 if test "${enable_pda}" = "yes"
4993 then
4994   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
4995   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
4996   VLC_ADD_LIBS([gtk2],[${GTK2_LIBS}])
4997   VLC_ADD_CFLAGS([pda],[${GTK2_CFLAGS} ${CFLAGS_pda}])
4998   VLC_ADD_LIBS([pda],[${LDFLAGS_pda}])
4999   VLC_ADD_LIBS([pda],[${GTK2_LIBS}])
5000   VLC_ADD_PLUGIN([pda])
5001   if test "${SYS}" != "mingw32"; then
5002     NEED_GTK2_MAIN=yes
5003     VLC_ADD_CFLAGS([gtk2_main],[$GTK2_CFLAGS])
5004     VLC_ADD_LIBS([gtk2_main],[$GTK2_LIBS])
5005   fi
5006 fi
5007 AM_CONDITIONAL(BUILD_PDA, [test "${enable_pda}" = "yes"])
5008
5009 dnl
5010 dnl Maemo
5011 dnl
5012 AC_ARG_ENABLE(maemo,
5013   [  --enable-maemo          Internet tablets based on Maemo SDK (default disabled)])
5014 if test "${enable_maemo}" = "yes"
5015 then
5016   PKG_CHECK_MODULES(HILDON, [hildon-1 hildon-fm-2], [
5017     VLC_ADD_CFLAGS([maemo],[${HILDON_CFLAGS}])
5018     VLC_ADD_LIBS([maemo],[${HILDON_LIBS}])
5019     VLC_ADD_PLUGIN([maemo])
5020     VLC_ADD_PLUGIN([swscale_maemo])
5021     AC_DEFINE([BUILD_MAEMO], 1, [Define if you're using Maemo interfaces])
5022     ALIASES="${ALIASES} mvlc"
5023   ], [
5024     AS_IF([test "${enable_maemo}" = "yes"],[
5025       AC_MSG_ERROR([Hildon libraries not found])
5026     ])
5027     enable_maemo="no"
5028   ])
5029 fi
5030 AM_CONDITIONAL(BUILD_MAEMO, [test "${enable_maemo}" = "yes"])
5031
5032 dnl
5033 dnl QT 4
5034 dnl
5035 AC_ARG_ENABLE(qt4,
5036   [  --enable-qt4            QT 4 support (default enabled) ],, [
5037   AS_IF([test "${SYS}" = "darwin"], [enable_qt4=no])
5038 ])
5039 AS_IF([test "${enable_qt4}" != "no"], [
5040   PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.3.0], [
5041     VLC_ADD_PLUGIN([qt4])
5042     AC_DEFINE([HAVE_QT4], 1, [Define to 1 if you have QT4 library.])
5043     ALIASES="${ALIASES} qvlc"
5044     AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "cygwin" -a "${SYS}" != "darwin"], [
5045         VLC_ADD_LIBS([qt4],[$QT4_LIBS -lX11])
5046     ], [
5047         VLC_ADD_LIBS([qt4],[$QT4_LIBS])
5048     ])
5049     QT4LOCALEDIR="$($PKG_CONFIG --variable=prefix QtCore)/share/qt4/translations/"
5050     AC_SUBST(QT4LOCALEDIR)
5051     VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS -DQT4LOCALEDIR=\\\\\\\"${QT4LOCALEDIR}\\\\\\\"])
5052     AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
5053     AC_PATH_PROG(RCC, rcc, rcc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
5054     AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
5055   ], [
5056     AS_IF([test "${enable_qt4}" = "yes"],[
5057       AC_MSG_ERROR([Qt 4 library not found])
5058     ],[
5059       AC_MSG_WARN([Qt 4 library not found])
5060     ])
5061     enable_qt4="no"
5062   ])
5063 ])
5064 AM_CONDITIONAL(ENABLE_QT4, [test "x$enable_qt4" != "xno"])
5065
5066 dnl
5067 dnl  WinCE GUI module
5068 dnl
5069 AC_ARG_ENABLE(wince,
5070   [  --enable-wince          Windows CE interface (default enabled with MinGW)])
5071 if test "${enable_wince}" != "no"; then
5072   if test "${SYS}" = "mingwce"; then
5073     VLC_ADD_PLUGIN([wince])
5074     VLC_ADD_CXXFLAGS([wince],[])
5075     VLC_ADD_LIBS([wince],[-lcommctrl -lcommdlg -laygshell])
5076     dnl Gross hack
5077     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
5078   elif test "${SYS}" = "mingw32"; then
5079     VLC_ADD_CXXFLAGS([wince],[])
5080     VLC_ADD_LIBS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
5081     dnl Gross hack
5082     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
5083   fi
5084 fi
5085
5086 dnl
5087 dnl Simple test for skins2 dependency
5088 dnl
5089 AS_IF([test "${enable_skins2}" != "no" && test "x$enable_qt4" = "xno"], [
5090   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.])
5091 ])
5092
5093 dnl
5094 dnl  Opie QT embedded module
5095 dnl
5096 AC_ARG_ENABLE(opie,
5097   [  --enable-opie           Qt embedded interface support (default disabled)],
5098   [if test "${enable_opie}" = "yes"; then
5099      AC_ARG_WITH(qte,
5100      [    --with-qte=PATH       Qt Embedded headers and libraries])
5101      if test "${with_qte}" != "no" -a -n "${with_qte}"
5102      then
5103        VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
5104        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])
5105      else
5106        VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
5107        VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
5108      fi
5109      CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
5110      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
5111        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
5112      ] )
5113      CPPFLAGS="${CPPFLAGS_save}"
5114
5115      VLC_ADD_PLUGIN([opie])
5116      NEED_QTE_MAIN=yes
5117      VLC_ADD_LIBS([opie],[-lqpe ${LDFLAGS_qte}])
5118      VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
5119      if test "${with_qte}" != "no" -a -n "${with_qte}"
5120      then
5121        MOC=${with_qte}/bin/moc
5122      else
5123        MOC=${QTDIR}/bin/moc
5124      fi
5125    fi])
5126
5127 dnl
5128 dnl  MacOS X video output/gui modules
5129 dnl
5130 AC_ARG_ENABLE(macosx,
5131   [  --enable-macosx         MacOS X support (default enabled on MacOS X)])
5132 if test "x${enable_macosx}" = "xyes"
5133 then
5134   VLC_ADD_LDFLAGS([access_eyetv],                     [-Wl,-framework,Foundation])
5135   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer qtcapture],[-Wl,-framework,Cocoa])
5136   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer],[-Wl,-framework,OpenGL])
5137   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,Carbon])
5138   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,CoreServices])
5139   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,AGL])
5140   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,IOKit])
5141   dnl For bug report
5142   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,AddressBook])
5143   VLC_ADD_LDFLAGS([macosx qtcapture],                 [-Wl,-framework,QTKit])
5144   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,CoreAudio])
5145   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,WebKit])
5146   VLC_ADD_LDFLAGS([opengllayer qtcapture],            [-Wl,-framework,QuartzCore])
5147   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,CoreVideo])
5148   VLC_ADD_OBJCFLAGS([macosx minimal_macosx opengllayer growl], [-fobjc-exceptions] )
5149
5150   VLC_ADD_PLUGIN([access_eyetv])
5151   VLC_ADD_PLUGIN([qtcapture])
5152   VLC_ADD_PLUGIN([macosx])
5153   VLC_ADD_PLUGIN([minimal_macosx])
5154
5155   ORIGCFLAGS=$CFLAGS
5156   CFLAGS="$CFLAGS -x objective-c"
5157   AC_TRY_COMPILE([#import <QuartzCore/CALayer.h>],,
5158   [VLC_ADD_PLUGIN([opengllayer])
5159   VLC_ADD_OBJCFLAGS([opengllayer])],[])
5160   CFLAGS=$ORIGCFLAGS
5161 fi
5162
5163 dnl
5164 dnl  QNX RTOS module
5165 dnl
5166 AC_ARG_ENABLE(qnx,
5167   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
5168     if test "${enable_qnx}" != "no"
5169     then
5170       AC_CHECK_HEADERS(Ph.h, [
5171         VLC_ADD_PLUGIN([qnx])
5172         VLC_ADD_LIBS([qnx],[-lasound -lph])
5173       ])
5174     fi
5175
5176 dnl
5177 dnl  ncurses module
5178 dnl
5179 AC_ARG_ENABLE(ncurses,
5180   [  --disable-ncurses       ncurses interface support (default enabled)],
5181   [if test "${enable_ncurses}" != "no"; then
5182     AC_CHECK_HEADER(ncurses.h,
5183       [AC_CHECK_LIB(ncursesw, mvprintw,
5184         [VLC_ADD_PLUGIN([ncurses])
5185         VLC_ADD_LIBS([ncurses],[-lncursesw])
5186         ALIASES="${ALIASES} nvlc"
5187         AC_DEFINE([HAVE_NCURSESW], 1, [Define to 1 if you have libncursesw.])
5188         AC_CHECK_LIB(ncursesw, tgetent, [],
5189           AC_CHECK_LIB(tinfow, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfow])],
5190             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
5191               [AS_IF([test "x${enable_ncurses}" != "x"],
5192                 [AC_MSG_ERROR([tgetent not found in ncursesw tinfow tinfo]
5193                )])])
5194             ]
5195           )
5196         )
5197         ],
5198         [AC_CHECK_LIB( ncurses, mvprintw,
5199           [VLC_ADD_PLUGIN([ncurses])
5200           ALIASES="${ALIASES} nvlc"
5201           VLC_ADD_LIBS([ncurses],[-lncurses])
5202           AC_CHECK_LIB(ncurses, tgetent, [],
5203             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
5204               [AS_IF([test "x${enable_ncurses}" != "x"],
5205                 [AC_MSG_ERROR([tgetent not found in ncurses tinfo])])]
5206             )]
5207           )],
5208           [AS_IF([test "x${enable_ncurses}" != "x"], [
5209             AC_MSG_ERROR([libncurses not found])])]
5210         )]
5211       )]
5212     )
5213   fi]
5214 )
5215
5216 dnl
5217 dnl  XOSD plugin
5218 dnl
5219 AC_ARG_ENABLE(xosd,
5220   [  --enable-xosd           xosd interface support (default disabled)])
5221 if test "${enable_xosd}" = "yes"
5222 then
5223   AC_CHECK_HEADERS(xosd.h,
5224     AC_CHECK_LIB(xosd, xosd_set_horizontal_offset, [
5225       VLC_ADD_PLUGIN([xosd])
5226       VLC_ADD_LIBS([xosd],[-lxosd])
5227     ])
5228   )
5229 fi
5230
5231 dnl
5232 dnl Framebuffer (overlay) plugin
5233 dnl
5234 AC_ARG_ENABLE(fbosd,
5235   [  --enable-fbosd          fbosd interface support (default disabled)])
5236 if test "${enable_fbosd}" = "yes"
5237 then
5238   AC_CHECK_HEADERS(linux/fb.h, [
5239     VLC_ADD_PLUGIN([fbosd])
5240  ])
5241 fi
5242
5243 dnl
5244 dnl Visualisation plugin
5245 dnl
5246 AC_ARG_ENABLE(visual,
5247   [  --enable-visual         visualisation plugin (default enabled)])
5248 if test "${enable_visual}" != "no"
5249 then
5250     VLC_ADD_PLUGIN([visual])
5251 fi
5252
5253 dnl
5254 dnl OpenGL visualisation plugin
5255 dnl
5256 AC_ARG_ENABLE(galaktos,
5257   [  --enable-galaktos       OpenGL visualisation plugin (default disabled)])
5258 if test "${enable_galaktos}" = "yes"
5259 then
5260   AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
5261     VLC_ADD_PLUGIN([galaktos])
5262     if test "${SYS}" != "mingw32"; then
5263       VLC_ADD_LIBS([galaktos],[${X_LIBS} -lGL -lGLU])
5264     else
5265       VLC_ADD_LIBS([galaktos],[-lopengl32])
5266     fi
5267   ])
5268 fi
5269
5270 dnl
5271 dnl  goom visualization plugin
5272 dnl
5273 AC_ARG_ENABLE(goom,
5274 [  --enable-goom           goom visualisation plugin (default disabled)])
5275 if test "${enable_goom}" = "yes"
5276 then
5277   AC_ARG_WITH(goom-tree,
5278     [    --with-goom-tree=PATH goom tree for static linking (required)])
5279
5280   dnl
5281   dnl test for --with-goom-tree
5282   dnl
5283   if test "${with_goom_tree}" != "no" -a -n "${with_goom_tree}"; then
5284     AC_MSG_CHECKING(for libgoom2.a in ${with_goom_tree})
5285     real_goom_tree="`cd ${with_goom_tree} 2>/dev/null && pwd`"
5286     if test -z "${real_goom_tree}"; then
5287       dnl  The given directory can't be found
5288       AC_MSG_RESULT(no)
5289       AC_MSG_ERROR([cannot cd to ${with_goom_tree}])
5290     fi
5291     if test -f "${real_goom_tree}/src/.libs/libgoom2.a"; then
5292       AC_MSG_RESULT(${real_goom_tree}/src/.libs/libgoom2.a)
5293       VLC_ADD_PLUGIN([goom])
5294       VLC_ADD_LIBS([goom],[-L${real_goom_tree}/src/.libs -lgoom2])
5295       VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree}/src -DUSE_GOOM_TREE])
5296     else
5297       dnl  The given libgoom2 wasn't built, try to look for the old goom
5298       AC_MSG_RESULT(no)
5299       AC_MSG_CHECKING(for libgoom.a in ${with_goom_tree})
5300       if test -f "${real_goom_tree}/libgoom.a"; then
5301         AC_MSG_RESULT(${real_goom_tree}/libgoom.a)
5302         VLC_ADD_PLUGIN([goom])
5303         VLC_ADD_LIBS([goom],[-L${real_goom_tree} -lgoom])
5304         VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree} -DUSE_GOOM_TREE -DOLD_GOOM])
5305       else
5306         dnl  The given libgoom wasn't built
5307         AC_MSG_RESULT(no)
5308         AC_MSG_ERROR([cannot find ${real_goom_tree}/src/.libs/libgoom2.a, make sure you compiled goom in ${with_goom_tree}])
5309       fi
5310     fi
5311   else
5312     AC_CHECK_HEADERS(goom/goom.h, [
5313       LDFLAGS="${LDFLAGS_save} ${LIBS_goom}"
5314       AC_CHECK_LIB(goom2, goom_init, [
5315         VLC_ADD_PLUGIN([goom])
5316         VLC_ADD_LIBS([goom],[-lgoom2])
5317       ],[
5318         AC_MSG_ERROR([Could not find goom on your system: you may get it from http://www.ios-software.com/.])
5319       ])
5320       LDFLAGS="${LDFLAGS_save}"
5321     ])
5322   fi
5323 fi
5324
5325 dnl
5326 dnl  AtmoLight (homebrew AmbiLight)
5327 dnl
5328 if test "${SYS}" = "mingw32" -o "${SYS}" = "linux"; then
5329    AC_ARG_ENABLE(atmo,
5330 AS_HELP_STRING([--disable-atmo],[AtmoLight (homebrew philips ambilight)
5331                 (default enabled)]))
5332    if test "${enable_atmo}" != "no"; then
5333       AC_LANG_PUSH(C++)
5334       VLC_ADD_PLUGIN([atmo])
5335       AC_LANG_POP(C++)
5336    fi
5337 fi
5338
5339 dnl
5340 dnl  Bonjour services discovery
5341 dnl
5342 AC_ARG_ENABLE(bonjour,
5343   [  --enable-bonjour        Bonjour services discovery (default enabled)])
5344 AS_IF([test "${enable_bonjour}" != "no"], [
5345   PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.6, [
5346     AC_DEFINE(HAVE_AVAHI_CLIENT, 1, [Define to 1 if you have libavahi-client])
5347     VLC_ADD_LIBS([bonjour access_output_http],[$BONJOUR_LIBS])
5348     VLC_ADD_CFLAGS([bonjour access_output_http],[$BONJOUR_CFLAGS])
5349     VLC_ADD_PLUGIN([bonjour])
5350   ], [
5351     AC_MSG_WARN(avahi-client library not found)
5352   ])
5353 ])
5354
5355 dnl
5356 dnl  Lirc plugin
5357 dnl
5358 AC_ARG_ENABLE(lirc,
5359   [  --enable-lirc           lirc support (default disabled)])
5360 if test "${enable_lirc}" = "yes"
5361 then
5362   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
5363   if test "${have_lirc}" = "true"
5364   then
5365     VLC_ADD_PLUGIN([lirc])
5366     VLC_ADD_LIBS([lirc],[-llirc_client])
5367   fi
5368 fi
5369
5370 dnl
5371 dnl Global hotkeys using XCB
5372 dnl
5373 PKG_CHECK_MODULES(XCB, [xcb], [
5374   PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms], [
5375     PKG_CHECK_MODULES(XPROTO, [xproto], [
5376       VLC_ADD_PLUGIN([globalhotkeys])
5377       VLC_ADD_CFLAGS([globalhotkeys],[${XCB_KEYSYMS_CFLAGS} ${XCB_CFLAGS}] )
5378       VLC_ADD_LIBS([globalhotkeys],[${XCB_KEYSYMS_LIBS} ${XCB_LIBS}] )
5379     ], [ AC_MSG_WARN( [Xproto not found] ) ])
5380   ], [ AC_MSG_WARN( [XCB keysyms was not found]) ])
5381 ], [ AC_MSG_WARN( [XCB was not found]) ])
5382
5383 AC_ARG_WITH(,[Misc options:])
5384
5385 dnl
5386 dnl libgcrypt
5387 dnl
5388 AC_ARG_ENABLE(libgcrypt,
5389   [  --disable-libgcrypt      libgcrypts support (default enabled)])
5390 AS_IF([test "${enable_libgcrypt}" != "no"], [
5391   AM_PATH_LIBGCRYPT([1:1.1.94], [have_libgcrypt="yes"], [have_libgcrypt="no"])
5392 ])
5393 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
5394   AS_IF([test "${have_libgcrypt}" = "yes"],[
5395     VLC_ADD_LIBS([rtp stream_out_rtp], [${LIBGCRYPT_LIBS}])
5396   ])
5397 fi
5398 AM_CONDITIONAL([HAVE_LIBGCRYPT], [test "${have_libgcrypt}" = "yes"])
5399
5400 dnl
5401 dnl TLS/SSL
5402 dnl
5403 AC_ARG_ENABLE(gnutls,
5404   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
5405
5406 AS_IF([test "${enable_gnutls}" != "no"], [
5407   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.3.3], [
5408     VLC_ADD_PLUGIN([gnutls])
5409     VLC_ADD_CFLAGS([gnutls], [$GNUTLS_CFLAGS])
5410     AS_IF([test "${SYS}" = "mingw32"], [
5411       dnl pkg-config --libs gnutls omits these
5412       VLC_ADD_LIBS([gnutls], [-lz])
5413       VLC_ADD_LIBS([gnutls], [${LTLIBINTL}])
5414     ])
5415     dnl The GnuTLS plugin invokes gcry_control directly.
5416     AS_IF([test "${have_libgcrypt}" = "yes"],[
5417       VLC_ADD_LIBS([gnutls], [${LIBGCRYPT_LIBS}])
5418       VLC_ADD_CFLAGS([gnutls], [${LIBGCRYPT_CFLAGS}])
5419     ])
5420     VLC_ADD_LIBS([gnutls], [$GNUTLS_LIBS])
5421   ], [
5422     AS_IF([test "${enable_gnutls}" = "yes"], [
5423       AC_MSG_ERROR([gnutls not present or too old (version 1.2.9 required)])
5424     ])
5425   ])
5426 ])
5427
5428
5429 dnl
5430 dnl RemoteOSD plugin (VNC client as video filter)
5431 dnl
5432 AC_ARG_ENABLE(remoteosd,
5433   [  --disable-remoteosd     RemoteOSD plugin (default enabled)])
5434
5435 AS_IF([test "${enable_remoteosd}" != "no"], [
5436   AS_IF([test "${have_libgcrypt}" = "yes"],[
5437     VLC_ADD_PLUGIN([remoteosd])
5438     VLC_ADD_LIBS([remoteosd], ${LIBGCRYPT_LIBS})
5439     VLC_ADD_CFLAGS([remoteosd], ${LIBGCRYPT_CFLAGS})
5440   ], [
5441     AC_MSG_ERROR([libgcrypt support required for RemoteOSD plugin])
5442   ])
5443 ])
5444
5445
5446 dnl
5447 dnl RAOP plugin
5448 dnl
5449 AC_MSG_CHECKING([whether to enable RAOP plugin])
5450 AS_IF([test "${have_libgcrypt}" = "yes"], [
5451   AC_MSG_RESULT(yes)
5452   VLC_ADD_PLUGIN([stream_out_raop])
5453   VLC_ADD_LIBS([stream_out_raop], [${LIBGCRYPT_LIBS} -lgpg-error])
5454   VLC_ADD_CFLAGS([stream_out_raop], [${LIBGCRYPT_CFLAGS}])
5455 ], [
5456   AC_MSG_RESULT(no)
5457   AC_MSG_WARN([libgcrypt support required for RAOP plugin])
5458 ])
5459
5460
5461 dnl
5462 dnl update checking system
5463 dnl
5464 AC_ARG_ENABLE(update-check,
5465   [  --enable-update-check   update checking system (default disabled)])
5466 if test "${enable_update_check}" = "yes"
5467 then
5468   if test "${have_libgcrypt}" != "yes"
5469   then
5470     AC_MSG_ERROR([libgcrypt is required for update checking system])
5471   fi
5472   VLC_ADD_LIBS([libvlccore], [${LIBGCRYPT_LIBS}])
5473   VLC_ADD_CFLAGS([libvlccore], [${LIBGCRYPT_CFLAGS}])
5474   AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
5475 fi
5476
5477
5478 dnl
5479 dnl  Endianness check
5480 dnl
5481 AC_C_BIGENDIAN
5482 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
5483   DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
5484 ], [
5485   DEFS_BIGENDIAN=""
5486 ])
5487 AC_SUBST(DEFS_BIGENDIAN)
5488
5489 dnl
5490 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
5491 dnl
5492 loader=false
5493 AC_ARG_ENABLE(loader,
5494   AS_HELP_STRING([--enable-loader],[build DLL loader for ELF i386 platforms
5495                   (default disabled)]))
5496 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
5497 AS_IF([test "${enable_loader}" = "yes"],
5498   [ VLC_ADD_PLUGIN([dmo])
5499     VLC_ADD_CPPFLAGS([dmo],[-I\\\${top_srcdir}/libs/loader])
5500     VLC_ADD_LIBS([dmo],[\\\${top_builddir}/libs/loader/libloader.la -lpthread])
5501     VLC_ADD_CPPFLAGS([quicktime],[-I\\\${top_srcdir}/libs/loader])
5502     VLC_ADD_LIBS([quicktime],[\\\${top_builddir}/libs/loader/libloader.la -lpthread])
5503     VLC_ADD_CPPFLAGS([realaudio],[-I\\\${top_srcdir}/libs/loader -DLOADER])
5504     VLC_ADD_LIBS([realaudio],[\\\${top_builddir}/libs/loader/libloader.la])
5505     VLC_ADD_CPPFLAGS([realvideo],[-I\\\${top_srcdir}/libs/loader -DLOADER])
5506     VLC_ADD_LIBS([realvideo],[\\\${top_builddir}/libs/loader/libloader.la])
5507   ])
5508
5509 AC_ARG_WITH(,[Components:])
5510
5511 dnl
5512 dnl  the VLC binary
5513 dnl
5514 AC_ARG_ENABLE(vlc,
5515   [  --enable-vlc            build the VLC media player (default enabled)])
5516 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
5517
5518 dnl
5519 dnl  Microsoft ActiveX support
5520 dnl
5521 activex=false
5522 AC_ARG_ENABLE(activex,
5523   AS_HELP_STRING([--enable-activex],[build a vlc-based ActiveX control
5524                   (default enabled on Win32)]))
5525 AC_ARG_WITH(wine-sdk-path,
5526   [    --with-wine-sdk-path=PATH path to wine sdk])
5527 if test "${enable_activex}" != "no"
5528 then
5529   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
5530   then
5531     AC_CHECK_PROGS(MIDL, [midl], no)
5532     if test "${with_wine_sdk_path}" != ""
5533     then
5534        WINE_SDK_PATH=${with_wine_sdk_path}
5535        AC_PATH_PROG(WIDL, widl, no, [$WINE_SDK_PATH/bin:$WINE_SDK_PATH/tools/widl])
5536     else
5537        WIDL=no
5538     fi
5539     AC_LANG_PUSH(C++)
5540     AC_CHECK_HEADERS(ole2.h,
5541       [AC_CHECK_HEADERS(olectl.h,
5542         [ VLC_ADD_CPPFLAGS([activex],[-DUNICODE -D_UNICODE -D_MIDL_USE_GUIDDEF_])
5543           VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
5544           VLC_ADD_LIBS([activex],[-lole32 -loleaut32 -luuid -lshlwapi])
5545           AC_CHECK_HEADERS(objsafe.h,
5546             VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER]),,
5547             [
5548              #if HAVE_OLE2_H
5549              #   include <ole2.h>
5550              #endif
5551             ]
5552           )
5553           activex=:
5554           PLUGINS_BINDINGS="${PLUGINS_BINDINGS} activex"
5555         ],
5556         [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5557       )],
5558       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5559     )
5560     AC_LANG_POP(C++)
5561   fi
5562 fi
5563 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
5564 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
5565 AC_ARG_VAR(WIDL, [Wine IDL compiler (requires Wine SDK)])
5566 AM_CONDITIONAL(HAS_WIDL_COMPILER, test "${WIDL}" != "no")
5567 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
5568
5569 dnl
5570 dnl  Mozilla plugin
5571 dnl
5572 mozilla=false
5573 AC_ARG_ENABLE(mozilla,
5574   AS_HELP_STRING([--enable-mozilla],[build a vlc-based Firefox/Mozilla plugin
5575                   (default disabled)]))
5576 AC_ARG_WITH(mozilla-sdk-path,
5577   [    --with-mozilla-sdk-path=PATH path to mozilla sdk])
5578 AC_ARG_WITH(mozilla-pkg,
5579   [    --with-mozilla-pkg=PKG  look for PKG.pc to build the mozilla plugin.])
5580 AC_LANG_PUSH(C++)
5581 if test "${enable_mozilla}" = "yes"
5582 then
5583   AS_IF([test "${with_mozilla_sdk_path}" = "" -o "${with_mozilla_sdk_path}" = "no"],
5584     [
5585     dnl pkg-config
5586     dnl As we want to do a loop due to the number of name possible for the .pc
5587     dnl we can't use the pkg-config macros.
5588
5589     AC_ARG_VAR([MOZILLA_CFLAGS], [C compiler flags for Mozilla, overriding pkg-config])
5590     AC_ARG_VAR([MOZILLA_LIBS], [linker flags for Mozilla, overriding pkg-config])
5591     AC_MSG_NOTICE([Checking for Mozilla])
5592     found=0
5593     if test -n "$MOZILLA_CFLAGS" -a -n "$MOZILLA_LIBS"
5594     then
5595       found=1
5596     else
5597       if test -n "$PKG_CONFIG"; then
5598         for i in "${with_mozilla_pkg}" libxul {seamonkey,iceape,xulrunner,firefox,iceweasel,mozilla}-plugin; do
5599           echo "Trying to find $i.pc files" >&5
5600           if $PKG_CONFIG --exists --print-errors "$i" 2>&5
5601           then
5602             echo "Using $i.pc files." >&5
5603             echo "Using $i.pc files." >&6
5604             found=1
5605             MOZILLA_CFLAGS=$( $PKG_CONFIG --cflags "$i" )
5606             MOZILLA_LIBS=$( $PKG_CONFIG --libs "$i" )
5607             break
5608           fi
5609         done
5610       fi
5611     fi
5612     AS_IF( [test $found = 1],[
5613         CPPFLAGS="${CPPFLAGS_save} ${MOZILLA_CFLAGS}"
5614         MOZILLA_REQUIRED_HEADERS=1
5615         AC_CHECK_HEADERS([npfunctions.h])
5616         AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5617         AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5618           [#if HAVE_NPAPI_H
5619            # include <npapi.h>
5620            #endif
5621           ])
5622         if test "${MOZILLA_REQUIRED_HEADERS}" = "0"; then
5623             AC_MSG_ERROR([Please install the Firefox development tools; mozilla-config.h, plugin/npapi.h and plugin/npruntime.h were not found.])
5624         fi
5625         MOZILLA_REQUIRED_HEADERS=
5626         mozilla=:
5627         AS_IF([ test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"],[
5628            VLC_ADD_CPPFLAGS([mozilla],[-DXP_UNIX -DOJI])
5629            AS_IF([ test "${SYS}" != "darwin"],[
5630              PKG_CHECK_MODULES(XPM, [xpm xt],[
5631                 VLC_ADD_CPPFLAGS([mozilla],[-DMOZ_X11])
5632              ],[
5633                 AC_MSG_ERROR([Please install the libXpm and libXt development files.])
5634              ])
5635           ])
5636         ])
5637         VLC_ADD_CPPFLAGS([mozilla],[${CPPFLAGS} ${XPM_CFLAGS}])
5638         VLC_ADD_LIBS([mozilla],[${MOZILLA_LIBS} ${XPM_LIBS}])
5639         VLC_ADD_PLUGIN([mozilla])
5640         PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5641         MOZILLA_CONFIG=
5642         CPPFLAGS="${CPPFLAGS_save}"
5643           ],
5644           [
5645             AC_PATH_PROGS(MOZILLA_CONFIG,
5646             [mozilla-config seamonkey-config xulrunner-config],
5647             AC_MSG_ERROR([Please install the Mozilla development tools. mozilla-config was not found.])
5648                   )
5649           ]
5650         )
5651     dnl pkg-config failed but we might have found a mozilla-config
5652     AS_IF( [test ! -z "${MOZILLA_CONFIG}"],[
5653       if ${MOZILLA_CONFIG} --defines | grep -q 'MOZ_X11=1'; then
5654         LDFLAGS="${LDFLAGS_save} ${X_LIBS} ${X_PRE_LIBS}"
5655         AC_CHECK_LIB(Xt,XtStrings,
5656          [
5657            VLC_ADD_CPPFLAGS([mozilla],[${X_CFLAGS}])
5658            VLC_ADD_LIBS([mozilla],[${X_LIBS} ${X_PRE_LIBS} -lXt -lX11 -lSM -lICE -lXpm])
5659          ],
5660          [],
5661          [[${X_LIBS} ${X_PRE_LIBS} -lX11 -lSM -lICE -lXpm]
5662         ])
5663         AC_CHECK_HEADERS(X11/xpm.h,,AC_MSG_ERROR([Please install libXpm-devel library for required X11/xpm.h]))
5664         LDFLAGS="${LDFLAGS_save}"
5665       fi
5666
5667       mozilla=:
5668       PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5669       VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin java`]])
5670       VLC_ADD_LIBS([mozilla],[`${MOZILLA_CONFIG} --libs plugin`])
5671       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
5672       MOZILLA_REQUIRED_HEADERS=1
5673       AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5674       AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5675       AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5676         [#if HAVE_NPAPI_H
5677          # include <npapi.h>
5678          #endif
5679         ])
5680       if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5681       then
5682         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5683       fi
5684       MOZILLA_REQUIRED_HEADERS=
5685       CPPFLAGS="${CPPFLAGS_save}"
5686       MOZILLA_SDK_PATH="`${MOZILLA_CONFIG} --prefix`"
5687     ])
5688     dnl End of moz_sdk = ""
5689   ],[
5690     dnl special case for mingw32
5691     if test "${SYS}" = "mingw32"
5692     then
5693       AC_CHECK_TOOL(CYGPATH, cygpath, "")
5694       dnl latest gecko sdk does not have an xpcom directory
5695       if test -d "${with_mozilla_sdk_path}/xpcom"; then
5696           mozilla_sdk_xpcom="/xpcom"
5697       fi
5698     fi
5699
5700     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
5701     CPPFLAGS="${CPPFLAGS_save} -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include"
5702     MOZILLA_REQUIRED_HEADERS=1
5703     AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5704     AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5705     AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5706         [#if HAVE_NPAPI_H
5707           #include <npapi.h>
5708           #endif
5709         ])
5710     if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5711     then
5712         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5713     fi
5714     MOZILLA_REQUIRED_HEADERS=
5715     mozilla=:
5716     PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5717     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])
5718     if ${need_xpcom_libs}; then
5719        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])
5720       if test "${SYS}" = "mingw32"; then
5721         dnl latest gecko sdk does not have embedstring
5722         if test -d "${real_mozilla_sdk}/embedstring/bin"
5723         then
5724           VLC_ADD_LIBS([mozilla],[-lembedstring])
5725         fi
5726       fi
5727     fi
5728     MOZILLA_SDK_PATH="${real_mozilla_sdk}"
5729
5730     if test -n "${CYGPATH}"; then
5731       real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
5732     fi
5733     CPPFLAGS="${CPPFLAGS_save}"
5734  ])
5735 fi
5736 AC_LANG_POP(C++)
5737 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
5738
5739 dnl Tests for Osso and Xsp
5740 AC_CHECK_LIB(osso, osso_display_blanking_pause, [
5741   PKG_CHECK_MODULES(GLIB2, glib-2.0, [
5742     VLC_ADD_CPPFLAGS([x11 xvideo xvmc glx omapfb],[-DHAVE_OSSO ${DBUS_CFLAGS} ${GLIB2_CFLAGS}])
5743     VLC_ADD_LIBS([x11 xvideo xvmc glx omapfb],[-losso])
5744  ])
5745 ])
5746 AC_CHECK_LIB(Xsp, XSPSetPixelDoubling,[
5747   VLC_ADD_CPPFLAGS([x11 xvideo xvmc glx],[-DHAVE_XSP])
5748   VLC_ADD_LIBS([x11 xvideo xvmc glx],[-lXsp])
5749 ])
5750
5751 dnl
5752 dnl  test plugins
5753 dnl
5754 AC_ARG_ENABLE(testsuite,
5755   [  --enable-testsuite      build test modules (default disabled)])
5756 if test "${enable_testsuite}" = "yes"
5757 then
5758   TESTS="test1 test2 test3 test4"
5759
5760   dnl  we define those so that bootstrap sets the right linker
5761   VLC_ADD_CXXFLAGS([test2],[])
5762   VLC_ADD_OBJCFLAGS([test3],[])
5763   dnl  this one is needed until automake knows what to do
5764   VLC_ADD_LIBS([test3],[-lobjc])
5765
5766   VLC_ADD_PLUGIN([test1])
5767   VLC_ADD_PLUGIN([test2])
5768   VLC_ADD_PLUGIN([test3])
5769   VLC_ADD_PLUGIN([test4])
5770 fi
5771
5772 dnl
5773 dnl  gtk_main plugin
5774 dnl
5775 if test "${NEED_GTK_MAIN}" != "no"
5776 then
5777     VLC_ADD_PLUGIN([gtk_main])
5778     VLC_ADD_CFLAGS([gtk_main],[${CFLAGS_gtk}])
5779     VLC_ADD_LDFLAGS([gtk_main],[${LDFLAGS_gtk}])
5780 fi
5781
5782 if test "${NEED_GNOME_MAIN}" != "no"
5783 then
5784     VLC_ADD_PLUGIN([gnome_main])
5785     VLC_ADD_CFLAGS([gnome_main],[${CFLAGS_gtk} ${CFLAGS_gnome}])
5786     VLC_ADD_LDFLAGS([gnome_main],[${LDFLAGS_gtk} ${LDFLAGS_gnome}])
5787 fi
5788
5789 if test "${NEED_GTK2_MAIN}" != "no"
5790 then
5791     VLC_ADD_PLUGIN([gtk2_main])
5792     VLC_ADD_CFLAGS([gtk2],[-DNEED_GTK2_MAIN])
5793     VLC_ADD_CFLAGS([pda],[-DNEED_GTK2_MAIN])
5794     VLC_ADD_CFLAGS([gtk2_main],[${CFLAGS_gtk2} ${CFLAGS_pda}])
5795     VLC_ADD_LDFLAGS([gtk2_main],[${LDFLAGS_gtk2} ${LDFLAGS_pda}])
5796 fi
5797
5798 if test "${NEED_GNOME2_MAIN}" != "no"
5799 then
5800     VLC_ADD_PLUGIN([gnome2_main])
5801     VLC_ADD_CFLAGS([gnome2_main],[${CFLAGS_gtk2} ${CFLAGS_gnome2}])
5802     VLC_ADD_LDFLAGS([gnome2_main],[${LDFLAGS_gtk2} ${LDFLAGS_gnome2}])
5803 fi
5804
5805 dnl
5806 dnl  qte_main plugin
5807 dnl
5808 if test "${NEED_QTE_MAIN}" != "no"
5809 then
5810     VLC_ADD_PLUGIN([qte_main])
5811     VLC_ADD_CXXFLAGS([opie qte qt_video],[-DNEED_QTE_MAIN])
5812     VLC_ADD_CXXFLAGS([qte_main],[${CXXFLAGS_qte} ${CXXFLAGS_qt_video}])
5813     VLC_ADD_LDFLAGS([qte_main],[${LDFLAGS_qte} ${LDFLAGS_qt_video}])
5814 fi
5815
5816 dnl
5817 dnl  Plugin and builtin checks
5818 dnl
5819 plugin_support=yes
5820
5821 dnl Automagically disable plugins if there is no system support for
5822 dnl dynamically loadable files (.so, .dll, .dylib).
5823 dnl don't forget vlc-win32 still can load .dll as plugins
5824 AS_IF([test "${ac_cv_have_plugins}" = "no"], [
5825   AC_MSG_WARN([*** No plugin support! Building statically! ***])
5826   plugin_support=no
5827 ])
5828
5829 AS_IF([test "${plugin_support}" != "no"], [
5830   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, [Define if dynamic plugins are supported])
5831 ])
5832
5833 dnl
5834 dnl Pic and shared libvlc stuff
5835 dnl
5836 AS_IF([test "${SYS}" = "mingw32"], [
5837   FILE_LIBVLCCORE_DLL="!define LIBVLCCORE_DLL libvlccore.dll"
5838   FILE_LIBVLC_DLL="!define LIBVLC_DLL libvlc.dll"
5839 ])
5840
5841 dnl
5842 dnl  Stuff used by the program
5843 dnl
5844 VERSION_MESSAGE="${VERSION} ${CODENAME}"
5845 COPYRIGHT_MESSAGE="VLC media player - version ${VERSION_MESSAGE} - (c) ${COPYRIGHT_YEARS} the VideoLAN team"
5846 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string])
5847 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string])
5848 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
5849 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
5850 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
5851 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
5852 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
5853 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
5854 AC_SUBST(COPYRIGHT_MESSAGE)
5855 AC_SUBST(VERSION_MESSAGE)
5856 AC_SUBST(VERSION_MAJOR)
5857 AC_SUBST(VERSION_MINOR)
5858 AC_SUBST(VERSION_REVISION)
5859 AC_SUBST(VERSION_EXTRA)
5860 AC_SUBST(COPYRIGHT_YEARS)
5861 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure])
5862 if test "${build_os}" = "cygwin"
5863 then
5864     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [host which ran configure])
5865 else
5866     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -s`", [host which ran configure])
5867 fi
5868 AC_DEFINE_UNQUOTED(VLC_COMPILE_DOMAIN, "`dnsdomainname 2>/dev/null || domainname 2>/dev/null || echo unknown`", [domain of the host which ran configure])
5869 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler])
5870 dnl Win32 need s a numerical version_extra.
5871 case $( echo ${VERSION_EXTRA}|wc -m ) in
5872        "1") VERSION_EXTRA_RC="0";;
5873        "2") VERSION_EXTRA_RC=$( echo ${VERSION_EXTRA}|tr "abcdefghi" "123456789") ;;
5874        *) VERSION_EXTRA_RC="99"
5875 esac
5876 AC_SUBST(VERSION_EXTRA_RC)
5877 dnl
5878 dnl  Handle substvars that use $(top_srcdir)
5879 dnl
5880 VLC_CONFIG="top_srcdir=\"\$(top_srcdir)\" top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
5881 AC_SUBST(VLC_CONFIG)
5882 CPPFLAGS_save="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS_save}"
5883
5884 dnl
5885 dnl  Restore *FLAGS
5886 dnl
5887 VLC_RESTORE_FLAGS
5888
5889 dnl
5890 dnl Sort the modules list
5891 dnl
5892 PLUGINS=$( (for i in `echo $PLUGINS`; do echo $i; done)|sort|xargs )
5893
5894 dnl
5895 dnl  Create the vlc-config script
5896 dnl
5897 LDFLAGS_libvlc="${LDFLAGS_libvlc} ${LDFLAGS_builtin}"
5898
5899 dnl
5900 dnl  Configuration is finished
5901 dnl
5902 AC_SUBST(SYS)
5903 AC_SUBST(ARCH)
5904 AC_SUBST(ALIASES)
5905 AC_SUBST(ASM)
5906 AC_SUBST(MOC)
5907 AC_SUBST(RCC)
5908 AC_SUBST(UIC)
5909 AC_SUBST(WINDRES)
5910 AC_SUBST(MOZILLA_SDK_PATH)
5911 AC_SUBST(WINE_SDK_PATH)
5912 AC_SUBST(LIBEXT)
5913 AC_SUBST(AM_CPPFLAGS)
5914 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
5915 AC_SUBST(FILE_LIBVLCCORE_DLL)
5916 AC_SUBST(FILE_LIBVLC_DLL)
5917
5918 dnl Create vlc-config.in
5919 VLC_OUTPUT_VLC_CONFIG_IN
5920
5921 AC_CONFIG_FILES([
5922   extras/package/win32/vlc.win32.nsi
5923   extras/package/macosx/Info.plist
5924   extras/package/macosx/Resources/English.lproj/InfoPlist.strings
5925   extras/package/macosx/plugin/Info.plist
5926   extras/package/macosx/plugin/InstallerInfo.plist
5927   Makefile
5928   projects/activex/Makefile
5929   projects/activex/axvlc.inf
5930   doc/Makefile
5931   extras/package/ipkg/Makefile
5932   libs/loader/Makefile
5933   libs/srtp/Makefile
5934   libs/unzip/Makefile
5935   modules/Makefile
5936   projects/mozilla/Makefile
5937   m4/Makefile
5938   po/Makefile.in
5939   projects/activex/axvlc_rc.rc
5940   projects/mozilla/npvlc_rc.rc
5941   projects/mozilla/vlc.r
5942   projects/mozilla/install.js
5943   share/Makefile
5944   share/vlc_win32_rc.rc
5945   share/libvlc_win32_rc.rc
5946   compat/Makefile
5947   src/Makefile
5948   src/test/Makefile
5949   bin/Makefile
5950   test/Makefile
5951   modules/access/Makefile
5952   modules/access/bd/Makefile
5953   modules/access/bda/Makefile
5954   modules/access/dshow/Makefile
5955   modules/access/dvb/Makefile
5956   modules/access/mms/Makefile
5957   modules/access/cdda/Makefile
5958   modules/access/rtp/Makefile
5959   modules/access/rtsp/Makefile
5960   modules/access/rtmp/Makefile
5961   modules/access/vcd/Makefile
5962   modules/access/vcdx/Makefile
5963   modules/access/screen/Makefile
5964   modules/access/zip/Makefile
5965   modules/access_output/Makefile
5966   modules/audio_filter/Makefile
5967   modules/audio_filter/channel_mixer/Makefile
5968   modules/audio_filter/converter/Makefile
5969   modules/audio_filter/resampler/Makefile
5970   modules/audio_filter/spatializer/Makefile
5971   modules/audio_mixer/Makefile
5972   modules/audio_output/Makefile
5973   modules/codec/Makefile
5974   modules/codec/avcodec/Makefile
5975   modules/codec/cmml/Makefile
5976   modules/codec/dmo/Makefile
5977   modules/codec/shine/Makefile
5978   modules/codec/subtitles/Makefile
5979   modules/codec/spudec/Makefile
5980   modules/codec/wmafixed/Makefile
5981   modules/codec/xvmc/Makefile
5982   modules/control/Makefile
5983   modules/control/http/Makefile
5984   modules/control/globalhotkeys/Makefile
5985   modules/demux/Makefile
5986   modules/demux/asf/Makefile
5987   modules/demux/avformat/Makefile
5988   modules/demux/avi/Makefile
5989   modules/demux/mkv/Makefile
5990   modules/demux/mp4/Makefile
5991   modules/demux/mpeg/Makefile
5992   modules/demux/playlist/Makefile
5993   modules/gui/Makefile
5994   modules/gui/beos/Makefile
5995   modules/gui/pda/Makefile
5996   modules/gui/macosx/Makefile
5997   modules/gui/maemo/Makefile
5998   modules/gui/minimal_macosx/Makefile
5999   modules/gui/qnx/Makefile
6000   modules/gui/qt4/Makefile
6001   modules/gui/skins2/Makefile
6002   modules/gui/wince/Makefile
6003   modules/meta_engine/Makefile
6004   modules/misc/Makefile
6005   modules/misc/dummy/Makefile
6006   modules/misc/lua/Makefile
6007   modules/misc/memcpy/Makefile
6008   modules/misc/notify/Makefile
6009   modules/misc/testsuite/Makefile
6010   modules/misc/playlist/Makefile
6011   modules/misc/osd/Makefile
6012   modules/misc/stats/Makefile
6013   modules/misc/xml/Makefile
6014   modules/misc/probe/Makefile
6015   modules/mux/Makefile
6016   modules/mux/mpeg/Makefile
6017   modules/packetizer/Makefile
6018   modules/services_discovery/Makefile
6019   modules/stream_filter/Makefile
6020   modules/stream_out/Makefile
6021   modules/stream_out/transrate/Makefile
6022   modules/video_chroma/Makefile
6023   modules/video_filter/Makefile
6024   modules/video_filter/atmo/Makefile
6025   modules/video_filter/dynamicoverlay/Makefile
6026   modules/video_output/Makefile
6027   modules/video_output/msw/Makefile
6028   modules/video_output/qte/Makefile
6029   modules/video_output/x11/Makefile
6030   modules/visualization/Makefile
6031   modules/visualization/visual/Makefile
6032   modules/visualization/galaktos/Makefile
6033 ])
6034
6035 dnl Generate makefiles
6036 AC_OUTPUT
6037
6038 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
6039 # not provided with the source
6040 ${SHELL} ./config.status --file=vlc-config
6041 chmod 0755 vlc-config
6042
6043 /bin/echo -n "Enabled modules: "
6044 ./vlc-config --list plugin
6045
6046 dnl Shortcut to nice compile message
6047 rm -f compile
6048 echo '#! /bin/sh' >compile
6049 echo rm -f .error\$\$ >>compile
6050 echo ERROR=0 >>compile
6051 echo export PATH=$PATH LANG=C >>compile
6052 echo "(make \$@ 2>&1 || touch .error\$\$)| \\" >>compile
6053 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/buildsystem/make.pl' >>compile
6054 echo test -f .error\$\$ \&\& ERROR=1 >>compile
6055 echo rm -f .error\$\$ >>compile
6056 echo exit \$ERROR >>compile
6057 chmod a+x compile
6058
6059 printf "
6060 libvlc configuration
6061 --------------------
6062 version               : ${VERSION}
6063 system                : ${SYS}
6064 architecture          : ${ARCH}
6065 build flavour         : "
6066 test "${enable_debug}" = "yes" && printf "debug "
6067 test "${enable_cprof}" = "yes" && printf "cprof "
6068 test "${enable_gprof}" = "yes" && printf "gprof "
6069 test "${enable_optimizations}" = "yes" && printf "optim "
6070 test "${enable_release}" = "yes" && printf "release " || printf "devel "
6071 echo ""
6072 if test "${enable_vlc}" != "no"; then
6073 echo "vlc aliases           :${ALIASES}"
6074 else
6075 echo "build vlc executable  : no"
6076 fi
6077 echo "plugins/bindings      :${PLUGINS_BINDINGS}
6078
6079 You can tune the compiler flags in vlc-config.
6080 To build vlc and its plugins, type \`./compile' or \`make'.
6081 "
6082 if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
6083    echo ""
6084    echo "Warning: Due to a bug in ld, mmx/sse support has been"
6085    echo "         turned off."
6086    echo "         FFmpeg will be REALLY slow."
6087    echo "         VLC WILL NOT PERFORM AS EXPECTED."
6088    echo ""
6089 fi