a6d95b278ef96ffdd5f3d34b382db7a3c3381d35
[vlc.git] / 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-git)
6 VERSION_MAJOR="1"
7 VERSION_MINOR="0"
8 VERSION_REVISION="0"
9 VERSION_EXTRA="-git"
10 PKGDIR="vlc"
11 AC_SUBST(PKGDIR)
12
13 CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
14 CODENAME="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_CANONICAL_BUILD
22 AC_CANONICAL_HOST
23
24 AM_INIT_AUTOMAKE(tar-ustar)
25 AM_CONFIG_HEADER(config.h)
26
27 dnl Too many people are not aware of maintainer mode:
28 dnl If you want to use it, you definitely know what you are doing, so
29 dnl you can specify "--disable-maintainer-mode". But if you want the default
30 dnl automake behavior, you've likely never heard of maintainer mode, so we
31 dnl can't expect you to enable it manually.
32
33 AS_IF([test "x${enable_maintainer_mode}" != "xno"],
34     [enable_maintainer_mode="yes"])
35 AM_MAINTAINER_MODE
36
37 dnl
38 dnl Directories
39 dnl
40 dnl vlcincludedir="\${includedir}/\${PKGDIR}"
41 dnl AC_SUBST(vlcincludedir)
42 vlcdatadir="\${datadir}/\${PKGDIR}"
43 AC_SUBST(vlcdatadir)
44 vlclibdir="\${libdir}/\${PKGDIR}"
45 AC_SUBST(vlclibdir)
46
47 dnl
48 dnl  Deprecated options
49 dnl  to notify packagers that stuff has changed
50 dnl
51 AC_ARG_ENABLE(python-bindings,
52   [  --enable-python-bindings Always fails for historical reasons)],,
53   [enable_python_bindings="no"])
54 AS_IF([test "${enable_python_bindings}" != "no"], [
55   AC_MSG_ERROR([Python bindings are now built from a separate source package])
56 ])
57
58 AC_ARG_ENABLE(java-bindings,
59   [  --enable-java-bindings  Always fails for historical reasons],,
60   [enable_java_bindings="no"])
61 AS_IF([test "${enable_java_bindings}" != "no"], [
62   AC_MSG_ERROR([Java bindings are now built from a separate source package])
63 ])
64
65 dnl
66 dnl  Save *FLAGS
67 dnl
68 VLC_SAVE_FLAGS
69
70 dnl
71 dnl Check for tools
72 dnl
73 AC_PROG_CC_C99
74 AC_USE_SYSTEM_EXTENSIONS
75 AC_DEFINE([_FORTIFY_SOURCE], 2, [Define to '2' to get glibc warnings.])
76
77 AM_PROG_CC_C_O
78 AC_PROG_CXX
79 AC_PROG_CPP
80 AC_PROG_OBJC
81 _AM_DEPENDENCIES([OBJC])
82 AC_PROG_EGREP
83 AC_PROG_MAKE_SET
84 AC_PROG_INSTALL
85 AM_PROG_AS
86
87 dnl Find the right ranlib, even when cross-compiling
88 AC_CHECK_TOOL(RANLIB, ranlib, :)
89 AC_CHECK_TOOL(STRIP, strip, :)
90 AC_CHECK_TOOL(AR, ar, :)
91 AC_CHECK_TOOL(LD, ld, :)
92 AC_CHECK_TOOL(DLLTOOL, dlltool, :)
93
94 dnl Check for compiler properties
95 AC_C_CONST
96 AC_C_INLINE
97 AC_C_RESTRICT
98
99 dnl Allow binary package maintainer to pass a custom string to avoid
100 dnl cache problem
101 AC_ARG_WITH(binary-version,
102         AS_HELP_STRING([--with-binary-version=STRING],
103              [To avoid plugins cache problem between binary version]),[],[])
104 AS_IF([test -n "${with_binary_version}"],[
105       AC_DEFINE_UNQUOTED([DISTRO_VERSION],["${with_binary_version}"],
106                          [Binary specific version])
107       ])
108
109
110 dnl
111 dnl  Check for the contrib directory
112 dnl
113 AC_ARG_WITH(contrib,
114     [  --without-contrib       do not use the libraries in extras/contrib],[],[])
115   AS_IF([test "${with_contrib}" != "no"],[
116     AC_MSG_CHECKING([for libs in extras/contrib])
117     topdir="`dirname $0`"
118     if test "`echo \"$topdir\" | cut -c 1`" != "/"; then
119        topdir="`pwd`/$topdir"
120     fi
121   AS_IF([test -d ${topdir}/extras/contrib/lib],[
122    AS_IF([test "`grep HOST ${topdir}/extras/contrib/config.mak 2>/dev/null|awk '{print $3}'`" != "`$CC -dumpmachine`"],[
123       if test "${with_contrib}" = "yes"; then
124         AC_MSG_RESULT([no])
125         AC_MSG_ERROR([ not using the libs in extras/contrib as it is not the same host])
126       else
127         AC_MSG_RESULT([no])
128         AC_MSG_WARN([ not using the libs in extras/contrib as it is not the same host])
129       fi
130      ],[
131     AC_MSG_RESULT([yes])
132     export PATH=${topdir}/extras/contrib/bin:$PATH
133     CPPFLAGS="${CPPFLAGS} -I${topdir}/extras/contrib/include"
134     CPPFLAGS_save="${CPPFLAGS_save} -I${topdir}/extras/contrib/include"
135     CFLAGS="${CFLAGS} -I${topdir}/extras/contrib/include"
136     CFLAGS_save="${CFLAGS_save} -I${topdir}/extras/contrib/include"
137     CXXFLAGS="${CXXFLAGS} -I${topdir}/extras/contrib/include"
138     CXXFLAGS_save="${CXXFLAGS_save} -I${topdir}/extras/contrib/include"
139     OBJCFLAGS="${OBJCFLAGS} -I${topdir}/extras/contrib/include"
140     OBJCFLAGS_save="${OBJCFLAGS_save} -I${topdir}/extras/contrib/include"
141     if test $build = $host -o "$PKG_CONFIG_LIBDIR"; then
142         export PKG_CONFIG_PATH=${topdir}/extras/contrib/lib/pkgconfig:$PKG_CONFIG_PATH
143     else
144         export PKG_CONFIG_LIBDIR=${topdir}/extras/contrib/lib/pkgconfig
145     fi
146     LDFLAGS="${LDFLAGS} -L${topdir}/extras/contrib/lib"
147     LDFLAGS_save="${LDFLAGS_save} -L${topdir}/extras/contrib/lib"
148
149     if test -z $with_mozilla_sdk_path; then
150        with_mozilla_sdk_path=${topdir}/extras/contrib/gecko-sdk
151     fi
152     if test -z $with_cyberlink_tree; then
153        with_cyberlink_tree=${topdir}/extras/contrib/src/clinkcc
154     fi
155
156     if test ".`uname -s`" = ".Darwin"; then
157       export LD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$LD_LIBRARY_PATH
158       export DYLD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$DYLD_LIBRARY_PATH
159     elif test ".`uname -s`" = ".BeOS"; then
160       export LIBRARY_PATH=${topdir}/extras/contrib/lib:$LIBRARY_PATH
161       export BELIBRARIES=${topdir}/extras/contrib/lib:$BELIBRARIES
162     fi
163     ])
164   ],[
165     AC_MSG_RESULT([no])
166   ])
167 ])
168 dnl
169 dnl  Set default values
170 dnl
171 LDFLAGS_vlc="${LDFLAGS}"
172
173 dnl
174 dnl  Check the operating system
175 dnl
176 case "${host_os}" in
177   "")
178     SYS=unknown
179     ;;
180   linux*)
181     SYS=linux
182     ;;
183   bsdi*)
184     SYS=bsdi
185     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
186     VLC_ADD_LIBS([dvd dvdcss vcd cdda vcdx cddax],[-ldvd])
187     ;;
188   *bsd*)
189     SYS="${host_os}"
190     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
191     case "${host_os}" in
192       freebsd*)
193         CPPFLAGS_save="${CPPFLAGS_save} -I/usr/local/include"
194         CPPFLAGS="${CPPFLAGS_save}"
195         LDFLAGS_save="${LDFLAGS_save} -L/usr/local/lib"
196         LDFLAGS="${LDFLAGS_save}"
197         ;;
198     esac
199     ;;
200   darwin*)
201     SYS=darwin
202     CFLAGS_save="${CFLAGS_save} -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
203     CXXFLAGS_save="${CXXFLAGS_save} -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
204     OBJCFLAGS_save="${OBJCFLAGS_save} -D_INTL_REDIRECT_MACROS -std=gnu99"; OBJCFLAGS="${OBJCFLAGS_save}"
205     LDFLAGS_save="${LDFLAGS_save} -Wl,-headerpad_max_install_names"; LDFLAGS="${LDFLAGS_save}"
206     VLC_ADD_LDFLAGS([mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
207     VLC_ADD_LDFLAGS([mkv mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
208     VLC_ADD_LDFLAGS([vlc],[-Wl,-undefined,dynamic_lookup])
209     VLC_ADD_LDFLAGS([libvlc_control],[-Wl,dynamic_lookup])
210     VLC_ADD_LDFLAGS([avcodec avformat swscale imgresample postproc i420_rgb_mmx x264],[-Wl,-read_only_relocs,suppress])
211     VLC_ADD_CFLAGS([motion],[-fconstant-cfstrings])
212     VLC_ADD_LDFLAGS([libvlc],[-Wl,-framework,CoreFoundation])
213     VLC_ADD_LDFLAGS([motion],[-Wl,-framework,IOKit,-framework,CoreFoundation])
214     AC_ARG_ENABLE(macosx-defaults,
215       AS_HELP_STRING([--enable-macosx-defaults],[Build the default configuration on Mac OS X (default enabled)]))
216     if test "x${enable_macosx_defaults}" != "xno"
217     then
218         echo ""
219         echo "Building with Mac OS X defaults:"
220         with_macosx_version_min="10.4"
221         echo "  Assuming --with-macosx-version-min=10.4"
222         build_dir=`pwd`
223         echo "  Assuming --prefix=${build_dir}/vlc_install_dir"
224         ac_default_prefix="${build_dir}/vlc_install_dir"
225         enable_macosx="yes"
226         echo "  Assuming --enable-macosx"
227         enable_faad="yes"
228         echo "  Assuming --enable-faad"
229         enable_flac="yes"
230         echo "  Assuming --enable-flac"
231         enable_theora="yes"
232         echo "  Assuming --enable-theora"
233         enable_shout="yes"
234         echo "  Assuming --enable-shout"
235         enable_cddax="yes"
236         echo "  Assuming --enable-cddax"
237         enable_vcdx="yes"
238         echo "  Assuming --enable-vcdx"
239         enable_caca="yes"
240         echo "  Assuming --enable-caca"
241         enable_goom="yes"
242         echo "  Assuming --enable-goom"
243         enable_ncurses="yes"
244         echo "  Assuming --enable-ncurses"
245         enable_twolame="yes"
246         echo "  Assuming --enable-twolame"
247         enable_realrtsp="yes"
248         echo "  Assuming --enable-realrtsp"
249         enable_update_check="yes"
250         echo "  Assuming --enable-update-check"
251         enable_libass="yes"
252         echo "  Assuming --enable-libass"
253         enable_asademux="yes"
254         echo "  Assuming --enable-asademux"
255
256         enable_skins2="no"
257         echo "  Assuming --disable-skins2"
258         enable_x11="no"
259         echo "  Assuming --disable-x11"
260         enable_glx="no"
261         echo "  Assuming --disable-glx"
262         enable_xvideo="no"
263         echo "  Assuming --disable-xvideo"
264     fi
265     if test ".`uname -p`" = ".i386"; then
266         dnl Due to a ld(64) bug in 10.5 we cannot use our mmx code
267         dnl without hacking it a lot, we disable mmx and sse.
268         dnl (that bug is about ld being unable to handle
269         dnl text relocation)
270         save_cflags="$CFLAGS"
271         CFLAGS="$CFLAGS -dynamiclib -single_module -read_only_relocs suppress"
272         AC_TRY_LINK(
273             [int a;], [asm("movq _a,%mm0\n");],
274             ac_ld_does_not_support_text_reloc=no,
275             ac_ld_does_not_support_text_reloc=yes)
276         CFLAGS="$save_cflags"
277
278         if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
279             enable_mmx="no"
280             echo "  Assuming --disable-mmx (due to a bug in ld)"
281             enable_sse="no"
282             echo "  Assuming --disable-sse (due to a bug in ld)"
283         fi
284     fi
285     dnl
286     dnl  Check for Mac OS X SDK settings
287     dnl
288     AC_ARG_WITH(macosx-sdk,
289        [  --with-macosx-sdk=DIR   compile using the SDK in DIR])
290     if test "${with_macosx_sdk}" != "" ; then
291         CPP="${CPP} -isysroot ${with_macosx_sdk}"
292         CC="${CC} -isysroot ${with_macosx_sdk}"
293         CXX="${CXX} -isysroot ${with_macosx_sdk}"
294         OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
295         LD="${LD} -syslibroot ${with_macosx_sdk}"
296     fi
297     AC_ARG_WITH(macosx-version-min,
298        [  --with-macosx-version-min=VERSION  compile for MacOSX VERSION and above])
299     if test "${with_macosx_version_min}" != "" ; then
300         CPP="${CPP} -mmacosx-version-min=${with_macosx_version_min}"
301         CC="${CC} -mmacosx-version-min=${with_macosx_version_min}"
302         CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
303         OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
304         LD="${LD} -macosx_version_min=${with_macosx_version_min}"
305         CFLAGS_save="${CFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CFLAGS="${CFLAGS_save}"
306         CXXFLAGS_save="${CXXFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CXXFLAGS="${CXXFLAGS_save}"
307         OBJCFLAGS_save="${OBJCFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; OBJCFLAGS="${OBJCFLAGS_save}"
308         MACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}
309         export MACOSX_DEPLOYMENT_TARGET
310     fi
311     ;;
312   *mingw32* | *cygwin* | *wince* | *mingwce* | *pe*)
313     AC_CHECK_TOOL(WINDRES, windres, :)
314     AC_CHECK_TOOL(OBJCOPY, objcopy, :)
315
316     case "${host_os}" in
317       *wince* | *mingwce* | *mingw32ce* | *pe*)
318         SYS=mingwce
319         dnl Sadly CeGCC still needs non-wince macros
320         AC_DEFINE([_WIN32_WINNT], 0x0501, [Define to '0x0500' for Windows 2000 APIs.])
321         ;;
322       *mingw32*)
323         SYS=mingw32
324         AC_DEFINE([_WIN32_WINNT], 0x0500, [Define to '0x0500' for Windows 2000 APIs.])
325         ;;
326       *cygwin*)
327         dnl Check if we are using the mno-cygwin mode in which case we are
328         dnl actually dealing with a mingw32 compiler.
329         AC_DEFINE([_WIN32_WINNT], 0x0500, [Define to '0x0500' for Windows 2000 APIs.])
330         AC_EGREP_CPP(yes,
331             [#ifdef WIN32
332              yes
333              #endif],
334             SYS=mingw32, SYS=cygwin)
335         ;;
336     esac
337
338     if test "${SYS}" = "mingw32"; then
339         # add ws2_32 for closesocket, select, recv
340         VLC_ADD_LIBS([libvlc],[-lws2_32 -lnetapi32 -lwinmm])
341         VLC_ADD_LDFLAGS([vlc],[-mwindows])
342         VLC_ADD_LIBS([activex mozilla],[-lgdi32])
343         VLC_ADD_LIBS([cdda vcdx cddax sdl_image],[-lwinmm])
344         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])
345     fi
346     if test "${SYS}" = "mingwce"; then
347         # add ws2 for closesocket, select, recv
348         VLC_ADD_LIBS([libvlc access_http access_mms access_udp access_tcp access_ftp access_rtmp access_output_udp sap http netsync audioscrobbler growl rtp stream_out_rtp remoteosd],[-lws2])
349         VLC_ADD_LIBS([libvlc],[-lmmtimer])
350    fi
351     ;;
352   *nto*)
353     SYS=nto
354     VLC_ADD_LIBS([x11 xvideo],[-lsocket])
355     ;;
356   solaris*)
357     SYS=solaris
358     # _POSIX_PTHREAD_SEMANTICS is needed to get the POSIX ctime_r
359     # Perhaps it is useful other places as well?
360     CFLAGS_save="${CFLAGS_save} -D_POSIX_PTHREAD_SEMANTICS"; CFLAGS="${CFLAGS_save}"
361     ;;
362   hpux*)
363     SYS=hpux
364     ;;
365   beos)
366     SYS=beos
367     CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}"
368     CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}"
369     VLC_ADD_CXXFLAGS([beos],[])
370     VLC_ADD_LIBS([vlc libvlc logger],[-lbe])
371     VLC_ADD_LIBS([beos],[-lbe -lmedia -ltranslation -ltracker -lgame])
372     VLC_ADD_LIBS([dvdnav dvdread],[-ldl])
373     VLC_ADD_LIBS([access_file],[-lpoll])
374     LDFLAGS_save="${LDFLAGS_save} -lintl"; LDFLAGS="${LDFLAGS_save}"
375     dnl Check for BONE
376     if test -f /boot/beos/system/lib/libbind.so; then
377         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlc growl_udp],[-lbind -lsocket])
378     else
379         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlc growl_udp],[-lnet])
380     fi
381
382     dnl Ugly check for Zeta
383     if test -f /boot/beos/system/lib/libzeta.so; then
384         VLC_ADD_LIBS([beos],[-lzeta])
385     fi
386     ;;
387   *)
388     SYS="${host_os}"
389     ;;
390 esac
391 AM_CONDITIONAL(HAVE_BEOS, test "${SYS}" = "beos")
392 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
393 AM_CONDITIONAL(HAVE_LINUX, [test "${SYS}" = "linux"])
394 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
395 AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
396
397 dnl
398 dnl Sadly autoconf doesn't think about testing foo.exe when ask to test
399 dnl for program foo on win32
400
401 case "${build_os}" in
402     cygwin|msys)
403         ac_executable_extensions=".exe"
404     ;;
405     *)
406     ;;
407 esac
408
409 dnl
410 dnl  Libtool
411 dnl  It's very bad, but our former custom system was worst
412 dnl  -- Courmisch
413 dnl
414
415 dnl override platform specific check for dependent libraries
416 dnl otherwise libtool linking of shared libraries will
417 dnl fail on anything other than pass_all.
418 AC_CACHE_VAL(lt_cv_deplibs_check_method,
419     [lt_cv_deplibs_check_method=pass_all])
420
421 AC_DISABLE_STATIC
422 dnl AC_DISABLE_FAST_INSTALL
423 AC_LIBTOOL_DLOPEN
424 AC_LIBTOOL_WIN32_DLL
425 m4_undefine([AC_PROG_F77])
426 m4_defun([AC_PROG_F77],[])
427 AC_PROG_LIBTOOL
428
429 m4_undefine([AC_DEPLIBS_CHECK_METHOD])
430 m4_defun([AC_DEPLIBS_CHECK_METHOD],[])
431
432 lt_cv_deplibs_check_method=pass_all
433
434
435 dnl
436 dnl Gettext stuff
437 dnl
438 AM_GNU_GETTEXT_VERSION([0.17])
439 AM_GNU_GETTEXT([external])
440 VLC_ADD_LIBS([libvlc vlc], [${LTLIBINTL}])
441
442 dnl
443 dnl Iconv stuff
444 dnl
445 AM_ICONV
446 VLC_ADD_CFLAGS([libvlc],[${INCICONV}])
447 VLC_ADD_LIBS([libvlc],[${LTLIBICONV}])
448
449 dnl Check for the need to include the mingwex lib for mingw32
450 if test "${SYS}" = "mingw32"
451 then
452     AC_CHECK_LIB(mingwex,opendir,
453         AC_CHECK_LIB(mingw32,opendir,,
454             [VLC_ADD_LIBS([libvlc gtk],[-lmingwex])])
455     )
456 fi
457
458 dnl Check for fnative-struct or mms-bitfields support for mingw32
459 if test "${SYS}" = "mingw32"
460 then
461     AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
462         [ac_cv_c_mms_bitfields],
463         [CFLAGS="${CFLAGS_save} -mms-bitfields"
464          AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
465     if test "${ac_cv_c_mms_bitfields}" != "no"; then
466         CFLAGS_save="${CFLAGS_save} -mms-bitfields";
467         CXXFLAGS_save="${CXXFLAGS_save} -mms-bitfields";
468     else
469         AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
470             [ac_cv_c_fnative_struct],
471             [CFLAGS="${CFLAGS_save} -fnative-struct"
472              AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
473         if test "${ac_cv_c_fnative_struct}" != "no"; then
474             CFLAGS_save="${CFLAGS_save} -fnative-struct";
475             CXXFLAGS_save="${CXXFLAGS_save} -fnative-struct";
476         fi
477     fi
478
479     CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
480 fi
481
482 dnl Check for fvtable-thunks support for mingw32
483 if test "${SYS}" = "mingw32" -a "${CXX}" != ""
484 then
485 AC_LANG_PUSH(C++)
486     AC_CACHE_CHECK([if \$CXX accepts -fvtable-thunks],
487         [ac_cv_cxx_fvtable_thunks],
488         [CXXFLAGS="${CXXFLAGS_save} -Wall -Werror -fvtable-thunks"
489          AC_TRY_COMPILE([],,ac_cv_cxx_fvtable_thunks=yes,
490                         ac_cv_cxx_fvtable_thunks=no)])
491     if test "${ac_cv_cxx_fvtable_thunks}" = "yes"; then
492         CXXFLAGS_mingw32_special="-fvtable-thunks"
493     fi
494
495     CXXFLAGS_save="${CXXFLAGS_save} ${CXXFLAGS_mingw32_special}"; CXXFLAGS="${CXXFLAGS_save}"
496 AC_LANG_POP(C++)
497 fi
498
499 dnl Plugin compilation stuff
500
501 VLC_LIBRARY_SUFFIX
502
503 dnl The -DSYS_FOO flag
504 CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
505
506 dnl Check for system libs needed
507 need_libc=false
508
509 dnl Check for usual libc functions
510 AC_CHECK_FUNCS([gettimeofday strtod strtol strtof strtoll strtoull strsep isatty vasprintf asprintf swab sigrelse getpwuid_r memalign posix_memalign if_nametoindex atoll getenv putenv setenv gmtime_r ctime_r localtime_r lrintf daemon scandir fork bsearch lstat strlcpy strdup strndup strnlen atof lldiv posix_fadvise posix_madvise uselocale])
511 AC_CHECK_FUNCS(strcasecmp,,[AC_CHECK_FUNCS(stricmp)])
512 AC_CHECK_FUNCS(strncasecmp,,[AC_CHECK_FUNCS(strnicmp)])
513 AC_CHECK_FUNCS(strcasestr,,[AC_CHECK_FUNCS(stristr)])
514 AC_FUNC_ALLOCA
515 AC_CHECK_FUNCS(fcntl)
516
517 dnl Check for Linux system calls
518 AC_CHECK_FUNCS([vmsplice])
519
520 AH_BOTTOM([#include <vlc_fixups.h>])
521
522 AC_CHECK_FUNCS(mmap, [VLC_ADD_PLUGIN([access_mmap])])
523
524 dnl Check for setlocal and langinfo
525 AC_CHECK_FUNCS(setlocale)
526 AC_CHECK_HEADERS(langinfo.h)
527 AC_CHECK_FUNCS(nl_langinfo)
528
529 AC_CACHE_CHECK([for nl_langinfo and CODESET], ac_cv_langinfo_codeset,
530   [AC_TRY_LINK([#include <langinfo.h>],
531     [char* cs = nl_langinfo(CODESET);],
532     ac_cv_langinfo_codeset=yes,
533     ac_cv_langinfo_codeset=no)
534   ])
535 if test ${ac_cv_langinfo_codeset} = yes; then
536   AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
537     [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
538 fi
539
540 AC_CHECK_FUNCS(connect,,[
541   AC_CHECK_LIB(socket,connect,[
542     VLC_ADD_LIBS([libvlc cdda cddax],-lsocket)
543     LIBS_socket="-lsocket"
544   ])
545 ])
546
547 AC_CHECK_FUNCS(send,,[
548   AC_CHECK_LIB(socket,send,[
549     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])
550   ])
551 ])
552
553
554 dnl Check for socklen_t
555 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
556 AC_CACHE_CHECK([for socklen_t in sys/socket.h],
557 ac_cv_type_socklen_t,
558 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
559 [#include <sys/types.h>
560 #ifdef WIN32
561 # include <winsock2.h>
562 # include <ws2tcpip.h>
563 #else
564 # include <sys/socket.h>
565 #endif]], [[socklen_t len; len = 0;]])],
566 ac_cv_type_socklen_t=yes,
567 ac_cv_type_socklen_t=no)])
568 AS_IF([test "$ac_cv_type_socklen_t" = no],
569  [AC_DEFINE(socklen_t, int)])
570
571 dnl Check for struct sockaddr_storage
572 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.])
573 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.])
574 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
575   [AC_TRY_COMPILE(
576     [#include <sys/types.h>
577      #if defined( UNDER_CE )
578      # include <winsock2.h>
579      #elif defined( WIN32 )
580      # include <winsock2.h>
581      #else
582      # include <sys/socket.h>
583      #endif], [struct sockaddr_storage addr;],
584      ac_cv_struct_sockaddr_storage=yes,
585      ac_cv_struct_sockaddr_storage=no)])
586 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
587   AC_DEFINE(sockaddr_storage, sockaddr)
588   AC_DEFINE(ss_family, sa_family)
589 ])
590
591 dnl getaddrinfo, getnameinfo and gai_strerror check
592 dnl  -lnsl and -lsocket are needed on Solaris;
593 dnl  we purposedly make the test fail on Windows
594 LIBS_save="${LIBS}"
595 AH_TEMPLATE(HAVE_GETADDRINFO, [Define to 1 if you have the `getaddrinfo' function.])
596 AC_SEARCH_LIBS([getaddrinfo], [nsl], [AC_DEFINE(HAVE_GETADDRINFO)],, [${LIBS_socket}])
597
598 dnl NOTE: we assume getaddrinfo will be present if getnameinfo or gai_strerro
599 dnl are
600 LIBS="${LIBS_gai}"
601 AC_CHECK_FUNCS([getnameinfo gai_strerror])
602 LIBS="${LIBS_save}"
603
604 AH_TEMPLATE(HAVE_ADDRINFO, [Define to 1 if <netdb.h> defines `struct addrinfo'.])
605 AC_CHECK_TYPES([struct addrinfo],[AC_DEFINE(HAVE_ADDRINFO)],,
606 [#include <sys/types.h>
607 #if defined( WIN32 ) || defined( UNDER_CE )
608 # if defined(UNDER_CE) && defined(sockaddr_storage)
609 #  undef sockaddr_storage
610 # endif
611 # include <winsock2.h>
612 # include <ws2tcpip.h>
613 #else
614 # include <netdb.h>
615 #endif])
616
617 dnl Check for va_copy
618 AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
619   AC_TRY_LINK(
620     [#include <stdarg.h>],
621     [va_list ap1, ap2; va_copy(ap1,ap2);],
622     [ac_cv_c_va_copy="yes"],
623     [ac_cv_c_va_copy="no"]))
624 if test "${ac_cv_c_va_copy}" = "yes"; then
625   AC_DEFINE(HAVE_VA_COPY, 1, [Define if <stdarg.h> defines va_copy.])
626 fi
627 AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
628   AC_TRY_LINK(
629     [#include <stdarg.h>],
630     [va_list ap1, ap2; __va_copy(ap1,ap2);],
631     [ac_cv_c___va_copy="yes"],
632     [ac_cv_c___va_copy="no"]))
633 if test "${ac_cv_c___va_copy}" = "yes"; then
634   AC_DEFINE(HAVE___VA_COPY, 1, [Define if <stdarg.h> defines __va_copy.])
635 fi
636
637 AC_CHECK_FUNCS(inet_aton,,[
638   AC_CHECK_LIB(resolv,inet_aton,[
639     VLC_ADD_LIBS([libvlc],[-lresolv])
640   ])
641 ])
642
643 dnl Check for getopt (always use builtin one on win32)
644 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
645 need_getopt=:
646 else
647 need_getopt=false
648 AC_CHECK_FUNCS(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
649 [ # FreeBSD has a gnugetopt library for this:
650   AC_CHECK_LIB([gnugetopt],[getopt_long],
651     [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support)
652      VLC_ADD_LIBS([libvlc],[-lgnugetopt])],
653     [need_getopt=:])])
654 fi
655 AM_CONDITIONAL(BUILD_GETOPT, ${need_getopt})
656
657 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
658 AC_TYPE_SIGNAL
659 AC_CHECK_LIB(m,cos,[
660   VLC_ADD_LIBS([adjust wave ripple psychedelic gradient a52tofloat32 dtstofloat32 x264 goom visual panoramix rotate noise grain scene],[-lm])
661 ])
662 AC_CHECK_LIB(m,pow,[
663   VLC_ADD_LIBS([avcodec avformat swscale imgresample postproc ffmpegaltivec stream_out_transrate i420_rgb faad twolame equalizer spatializer param_eq libvlc vorbis freetype mod mpc dmo quicktime realaudio realvideo galaktos opengl],[-lm])
664 ])
665 AC_CHECK_LIB(m,sqrt,[
666   VLC_ADD_LIBS([headphone_channel_mixer normvol speex mono colorthres extract],[-lm])
667 ])
668 AC_CHECK_LIB(m,ceil,[
669   VLC_ADD_LIBS([mosaic],[-lm])
670 ])
671 AC_CHECK_LIB(m,exp,[
672   VLC_ADD_LIBS([gaussianblur],[-lm])
673 ])
674 AC_CHECK_LIB(m,round,[
675   VLC_ADD_LIBS([dbus],[-lm])
676 ])
677 AC_CHECK_LIB(mx,sqrtf,[
678   VLC_ADD_LIBS([x264],[-lmx])
679 ])
680 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
681
682 dnl Check for dynamic plugins
683 ac_cv_have_plugins=no
684
685 # OS X style
686 AC_CHECK_HEADERS(mach-o/dyld.h,
687   [AC_CHECK_FUNCS(NSLinkModule,
688     [AC_DEFINE(HAVE_DL_DYLD, 1, [Define if you have the Darwin dyld API])
689      ac_cv_have_plugins=yes])])
690
691 # HP-UX style
692 if test "${ac_cv_have_plugins}" = "no"; then
693   AC_CHECK_HEADERS(dl.h)
694   ac_cv_my_have_shl_load=no
695   AC_CHECK_FUNC(shl_load,
696    [ac_cv_my_have_shl_load=yes,
697     AC_CHECK_LIB(dld, shl_load,
698      [ac_cv_my_have_shl_load=yes
699       VLC_ADD_LIBS([libvlc],[-ldld])])])
700   if test "${ac_cv_my_have_shl_load}" = "yes"; then
701     AC_DEFINE(HAVE_DL_SHL_LOAD, 1, [Define if you have the shl_load API])
702     ac_cv_have_plugins=yes
703   fi
704 fi
705
706 # Whatever style
707 if test "${ac_cv_have_plugins}" = "no"; then
708   AC_CHECK_LIB(dld, dld_link,
709    [VLC_ADD_LIBS([libvlc],[-ldld])
710     AC_DEFINE(HAVE_DL_DLD_LINK, 1, [Define if you have the GNU dld library])
711     ac_cv_have_plugins=yes])
712 fi
713
714 # Win32 style
715 if test "${ac_cv_have_plugins}" = "no"; then
716   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
717     AC_CHECK_LIB(kernel32, main,
718      [VLC_ADD_LIBS([libvlc],[-lkernel32])
719       AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
720       ac_cv_have_plugins=yes])
721   fi
722 fi
723
724 # WinCE style
725 if test "${ac_cv_have_plugins}" = "no"; then
726   if test "${SYS}" = "mingwce"; then
727     AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
728     ac_cv_have_plugins=yes
729   fi
730 fi
731
732 # BeOS style
733 if test "${ac_cv_have_plugins}" = "no"; then
734   AC_CHECK_HEADERS(image.h)
735   AC_CHECK_FUNCS(load_add_on,
736    [AC_DEFINE(HAVE_DL_BEOS, 1, [Define if you have the BeOS dl])
737     ac_cv_have_plugins=yes])
738 fi
739
740 # Only test for dlopen() if the others didn't work
741 if test "${ac_cv_have_plugins}" = "no"; then
742   AC_CHECK_HEADERS(dlfcn.h sys/dl.h)
743   ac_cv_my_have_dlopen=no
744   AC_CHECK_FUNC(dlopen,
745     ac_cv_my_have_dlopen=yes,
746     AC_CHECK_LIB(dl, dlopen,
747       ac_cv_my_have_dlopen=yes
748       VLC_ADD_LIBS([libvlc realaudio realvideo],[-ldl]),
749       AC_CHECK_LIB(svld, dlopen,
750         ac_cv_my_have_dlopen=yes
751         VLC_ADD_LIBS([libvlc],[-lsvld]))))
752   if test "${ac_cv_my_have_dlopen}" = "yes"; then
753     AC_DEFINE(HAVE_DL_DLOPEN, 1, [Define if you have the dlopen API])
754     ac_cv_have_plugins=yes
755   fi
756 fi
757
758 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
759 dnl Check for pthreads - borrowed from XMMS
760 THREAD_LIB=error
761 if test "${THREAD_LIB}" = "error"; then
762   AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
763 fi
764 if test "${THREAD_LIB}" = "error"; then
765   AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
766 fi
767 if test "${THREAD_LIB}" = "error"; then
768   AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
769 fi
770 if test "${THREAD_LIB}" = "error"; then
771   AC_CHECK_FUNCS(pthread_mutex_lock)
772   THREAD_LIB=""
773 fi
774
775 VLC_ADD_LIBS([libvlc plugin],[${THREAD_LIB}])
776
777 AC_CHECK_LIB(rt, clock_nanosleep, [
778   VLC_ADD_LIBS([libvlc],[-lrt])
779   AC_DEFINE(HAVE_CLOCK_NANOSLEEP, 1, [Define to 1 if you have clock_nanosleep.])
780 ], [
781   dnl HP/UX port
782   AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LIBS([libvlc],[-lrt])])
783 ])
784
785 have_nanosleep=false
786 AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[
787   AC_CHECK_LIB(rt,nanosleep,
788     [VLC_ADD_LIBS([libvlc],[-lrt]) have_nanosleep=:],
789     [AC_CHECK_LIB(posix4,nanosleep,
790         [VLC_ADD_LIBS([libvlc],[-lposix4]) have_nanosleep=:])]
791   )
792 ])
793 if ${have_nanosleep}; then
794   AC_DEFINE(HAVE_NANOSLEEP, 1, [Define if nanosleep is available.])
795 fi
796 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
797
798 dnl Check for misc headers
799 AC_MSG_CHECKING(for strncasecmp in strings.h)
800 AC_EGREP_HEADER(strncasecmp,strings.h,[
801   AC_MSG_RESULT(yes)
802   AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
803             Define if <strings.h> defines strncasecmp.)],[
804   AC_MSG_RESULT(no)])
805
806 dnl Check for headers
807 AC_CHECK_HEADERS(signal.h time.h errno.h stdint.h stdbool.h getopt.h strings.h inttypes.h sys/int_types.h wchar.h locale.h)
808 AC_CHECK_HEADERS(sys/sockio.h fcntl.h sys/types.h sys/time.h sys/times.h sys/ioctl.h sys/stat.h xlocale.h)
809 AC_CHECK_HEADERS([arpa/inet.h netinet/in.h netinet/udplite.h sys/eventfd.h])
810 AC_CHECK_HEADERS([net/if.h], [], [],
811   [
812     #include <sys/socket.h>
813   ])
814 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
815 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
816 AC_CHECK_HEADERS([linux/version.h linux/dccp.h])
817 AC_CHECK_HEADERS(syslog.h)
818 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
819
820 AC_HEADER_TIME
821
822 dnl LP64 adn LLP64 architectures had better define ssize_t by themselves...
823 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.])
824 AC_CHECK_TYPE(ssize_t,, [
825   AC_DEFINE(ssize_t, int)
826 ])
827
828 dnl Check for poll
829 AC_SEARCH_LIBS(poll, [poll], [AC_DEFINE(HAVE_POLL, 1, [Define to 1 if the OS is usabl... err, has poll().])], [
830 if test ${SYS} != "mingw32"
831 then
832     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])
833 fi
834 ])
835
836 dnl Check for dirent
837 need_dirent=false
838 AC_CHECK_HEADERS(dirent.h,,[need_dirent=:])
839 AM_CONDITIONAL(BUILD_DIRENT, ${need_dirent})
840
841 dnl Mac OS X and other OSes don't have declaration for nanosleep
842 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
843 AC_MSG_CHECKING(for nanosleep in time.h)
844 AC_EGREP_HEADER(nanosleep,time.h,[
845   AC_MSG_RESULT(yes)
846   AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
847             Define if <time.h> defines nanosleep.)
848 ],[
849   AC_MSG_RESULT(no)
850 ])
851 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
852
853 dnl Make sure we have timespecs
854 AC_MSG_CHECKING(for timespec in sys/time.h)
855 AC_EGREP_HEADER(timespec,sys/time.h,[
856   AC_MSG_RESULT(yes)
857   AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
858             Define if <sys/time.h> defines struct timespec.)
859 ],[
860   AC_MSG_RESULT(no)
861 ])
862
863 dnl Check for threads library
864 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
865 AC_CHECK_HEADERS(pthread.h)
866 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
867
868 dnl Find where are the X headers and libraries
869 AC_PATH_XTRA()
870
871 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.
872 dnl Make PKG_CONFIG_PATH precious so that it appears in the help and get saved
873 AC_ARG_VAR(PKG_CONFIG_PATH,
874            [Paths where to find .pc not at the default location])
875 PKG_PROG_PKG_CONFIG()
876
877 dnl
878 dnl Check for zlib.h and -lz along with system -lminizip if available
879 dnl
880 AC_CHECK_HEADERS(zlib.h, [ have_zlib=yes ], [ have_zlib=no ])
881 AM_CONDITIONAL(HAVE_ZLIB, [ test "${have_zlib}" = "yes" ])
882 if test "${have_zlib}" = "yes"
883 then
884   VLC_ADD_LIBS([access_http gme mp4 skins2 sap mkv unzip zip],[-lz])
885   PKG_CHECK_MODULES([MINIZIP], [minizip] , [ have_minizip=yes ], [
886     AC_CHECK_HEADERS([unzip.h], [
887       have_minizip=yes
888       MINIZIP_LIBS="-lminizip -lz"
889     ], [
890       have_minizip=no
891       MINIZIP_CFLAGS="-I\$(top_builddir)/libs/unzip"
892       MINIZIP_LIBS="\$(top_builddir)/libs/unzip/libunzip.la"
893     ])
894   ])
895   AM_CONDITIONAL(HAVE_MINIZIP, [ test "${have_minizip}" = "yes" ])
896   VLC_ADD_CPPFLAGS([skins2],[$MINIZIP_CFLAGS])
897   VLC_ADD_CFLAGS([zip],[$MINIZIP_CFLAGS])
898   VLC_ADD_LIBS([skins2 zip],[$MINIZIP_LIBS])
899   VLC_ADD_PLUGIN([unzip])
900   VLC_ADD_PLUGIN([zip])
901 fi
902
903
904 dnl Check for hal
905 AC_ARG_ENABLE(hal,
906   [  --enable-hal            Linux HAL services discovery (default enabled)])
907
908 if test "${enable_hal}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
909 then
910   PKG_CHECK_MODULES(HAL, hal >= 0.5.0,
911     [
912       AC_DEFINE( HAVE_HAL, 1, [Define if you have the HAL library] )
913       VLC_ADD_PLUGIN([hal])
914       VLC_ADD_PLUGIN([probe_hal])
915       VLC_ADD_LIBS([libvlc hal probe_hal],[$HAL_LIBS])
916       VLC_ADD_CFLAGS([libvlc hal probe_hal],[$HAL_CFLAGS])],
917     [AC_MSG_WARN([libhal >= 0.5.0 was not found. Install libhal-dev ?])]
918   )
919 fi
920
921 dnl Check for dbus
922 AC_ARG_ENABLE(dbus,
923   [  --enable-dbus           Linux D-BUS message bus system (default enabled)])
924 case "${SYS}" in
925     linux*|*bsd*)
926 if test "${enable_dbus}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
927 then
928   dnl api stable dbus
929   PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.0.0,
930     [ AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
931       VLC_ADD_LIBS([screensaver libvlc],[$DBUS_LIBS])
932       VLC_ADD_CFLAGS([screensaver libvlc],[$DBUS_CFLAGS])
933       dnl Check for dbus control interface
934         AC_ARG_ENABLE(dbus-control, [  --disable-dbus-control  D-BUS control interface (default enabled)])
935         if test "${enable_dbus_control}" != "no"
936         then
937           VLC_ADD_PLUGIN([dbus])
938           VLC_ADD_LIBS([dbus],[$DBUS_LIBS])
939           VLC_ADD_CFLAGS([dbus],[$DBUS_CFLAGS])
940         fi
941       dnl Check for Telepathy
942         AC_ARG_ENABLE(telepathy,
943           AS_HELP_STRING([--enable-telepathy],[Telepathy Presence plugin through DBus(default enabled)]))
944         if test "${enable_telepathy}" != "no"; then
945           VLC_ADD_PLUGIN([telepathy])
946           VLC_ADD_LIBS([telepathy],[$DBUS_LIBS])
947           VLC_ADD_CFLAGS([telepathy],[$DBUS_CFLAGS])
948         fi
949         dnl Power Management Inhibiter
950         VLC_ADD_PLUGIN([inhibit])
951         VLC_ADD_LIBS([inhibit],[$DBUS_LIBS])
952         VLC_ADD_CFLAGS([inhibit],[$DBUS_CFLAGS])
953     ],
954     [AC_MSG_ERROR([Couldn't find DBus >= 1.0.0, install libdbus-dev ?])]
955   )
956 fi
957 ;;
958 esac
959
960 dnl Build the gtk_main plugins?
961 NEED_GTK_MAIN=no
962 NEED_GNOME_MAIN=no
963 NEED_GTK2_MAIN=no
964 NEED_GNOME2_MAIN=no
965
966 dnl build the qte plugin ?
967 NEED_QTE_MAIN=no
968
969 dnl Check for ntohl, etc.
970 AC_CACHE_CHECK([for ntohl in sys/param.h],
971     [ac_cv_c_ntohl_sys_param_h],
972     [CFLAGS="${CFLAGS_save} -Wall -Werror"
973      AC_TRY_COMPILE([#include <sys/param.h>],
974         [int meuh; ntohl(meuh);],
975         ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
976 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
977     AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
978 fi
979 CFLAGS="${CFLAGS_save}"
980
981 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])
982 RDC_PROG_CC_FLAGS_IFELSE([-pipe])
983
984 dnl Check for various optimization flags
985 AC_CACHE_CHECK([if \$CC accepts -Os],
986     [ac_cv_c_os],
987     [CFLAGS="${CFLAGS_save} -Os"
988      AC_TRY_COMPILE([],,ac_cv_c_os=yes, ac_cv_c_os=no)])
989 if test "${ac_cv_c_os}" != "no"; then
990     CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -Os"
991 else
992     AC_CACHE_CHECK([if \$CC accepts -O],
993         [ac_cv_c_o],
994         [CFLAGS="${CFLAGS_save} -O"
995          AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
996     if test "${ac_cv_c_o}" != "no"; then
997         if test "${ac_cv_c_o3}" = "no"; then
998             CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -O"
999         fi
1000     fi
1001 fi
1002
1003 AC_CACHE_CHECK([if \$CC accepts -O3],
1004     [ac_cv_c_o3],
1005     [CFLAGS="${CFLAGS_save} -O3"
1006      AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
1007 if test "${ac_cv_c_o3}" != "no" -a "x${enable_debug}" = "xno"; then
1008     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O3"
1009 else
1010     AC_CACHE_CHECK([if \$CC accepts -O2],
1011         [ac_cv_c_o2],
1012         [CFLAGS="${CFLAGS_save} -O2"
1013          AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
1014     if test "${ac_cv_c_o2}" != "no"; then
1015         CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O2"
1016     else
1017         AC_CACHE_CHECK([if \$CC accepts -O],
1018             [ac_cv_c_o],
1019             [CFLAGS="${CFLAGS_save} -O"
1020              AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
1021         if test "${ac_cv_c_o}" != "no"; then
1022             CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O"
1023         fi
1024     fi
1025 fi
1026
1027 AC_CACHE_CHECK([if \$CC accepts -O0],
1028     [ac_cv_c_o0],
1029     [CFLAGS="${CFLAGS_save} -O0"
1030      AC_TRY_COMPILE([],,ac_cv_c_o0=yes, ac_cv_c_o0=no)])
1031 if test "${ac_cv_c_o0}" != "no"; then
1032     CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O0"
1033 fi
1034
1035 dnl Check for -ffast-math
1036 AC_CACHE_CHECK([if \$CC accepts -ffast-math],
1037     [ac_cv_c_fast_math],
1038     [CFLAGS="${CFLAGS_save} -ffast-math"
1039      AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
1040 if test "${ac_cv_c_fast_math}" != "no"; then
1041     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -ffast-math"
1042 fi
1043
1044 dnl Check for -funroll-loops
1045 dnl Disabled on BeOS because BeOS' gcc is buggy and may crash with it
1046 if test "${SYS}" != "beos"
1047 then
1048   AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
1049       [ac_cv_c_unroll_loops],
1050       [CFLAGS="${CFLAGS_save} -funroll-loops"
1051        AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
1052   if test "${ac_cv_c_unroll_loops}" != "no"; then
1053       CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -funroll-loops"
1054   fi
1055 fi
1056
1057 dnl Check for -fomit-frame-pointer
1058 AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
1059     [ac_cv_c_omit_frame_pointer],
1060     [CFLAGS="${CFLAGS_save} -fomit-frame-pointer"
1061      AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
1062 if test "${ac_cv_c_omit_frame_pointer}" != "no"; then
1063  if test "${SYS}" != "darwin"; then
1064     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
1065  else
1066     dnl On darwin we explicitely disable it.
1067     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fno-omit-frame-pointer"
1068  fi
1069 fi
1070
1071 dnl Check for Darwin plugin linking flags
1072 AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error],
1073     [ac_cv_ld_darwin],
1074     [CFLAGS="${CFLAGS_save} -bundle -undefined error"
1075      AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
1076 if test "${ac_cv_ld_darwin}" != "no"; then
1077     VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
1078 fi
1079
1080 dnl Checks for __attribute__(aligned()) directive
1081 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1082     [ac_cv_c_attribute_aligned],
1083     [ac_cv_c_attribute_aligned=0
1084         CFLAGS="${CFLAGS_save} -Werror"
1085     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1086         AC_TRY_COMPILE([],
1087         [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1088         [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1089     done
1090         CFLAGS="${CFLAGS_save}"])
1091 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1092     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1093         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1094 fi
1095
1096 dnl Check for __attribute__((packed))
1097 AC_CACHE_CHECK([for __attribute__((packed))],
1098   [ac_cv_c_attribute_packed],
1099   [ac_cv_c_attribute_packed=no
1100    AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b;],
1101                     [ac_cv_c_attribute_packed=yes])])
1102 if test "${ac_cv_c_attribute_packed}" != "no"; then
1103   AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1104 fi
1105
1106 dnl
1107 dnl  Check the CPU
1108 dnl
1109 case "${host_cpu}" in
1110   "")
1111     ARCH=unknown
1112     ;;
1113   *)
1114     ARCH="${host_cpu}"
1115     ;;
1116 esac
1117
1118 dnl Check for backtrace() support
1119 AC_CHECK_HEADERS(execinfo.h)
1120 AC_CHECK_FUNCS(backtrace)
1121
1122 dnl
1123 dnl  Enable profiling
1124 dnl
1125 AC_ARG_ENABLE(gprof,
1126 [  --enable-gprof          gprof profiling (default disabled)])
1127 AC_ARG_ENABLE(cprof,
1128 [  --enable-cprof          cprof profiling (default disabled)])
1129 test "${enable_gprof}" != "yes" && enable_gprof="no"
1130 test "${enable_cprof}" != "yes" && enable_cprof="no"
1131
1132 dnl
1133 dnl  default modules
1134 dnl
1135 dnl Video filters:
1136 VLC_ADD_PLUGIN([deinterlace])
1137 VLC_ADD_PLUGIN([yuvp])
1138 VLC_ADD_PLUGIN([invert])
1139 VLC_ADD_PLUGIN([adjust])
1140 VLC_ADD_PLUGIN([transform])
1141 VLC_ADD_PLUGIN([wave])
1142 VLC_ADD_PLUGIN([ripple])
1143 VLC_ADD_PLUGIN([psychedelic])
1144 VLC_ADD_PLUGIN([gradient])
1145 VLC_ADD_PLUGIN([motionblur])
1146 VLC_ADD_PLUGIN([rv32])
1147 VLC_ADD_PLUGIN([rotate])
1148 VLC_ADD_PLUGIN([noise])
1149 VLC_ADD_PLUGIN([grain])
1150 VLC_ADD_PLUGIN([extract])
1151 VLC_ADD_PLUGIN([sharpen])
1152 VLC_ADD_PLUGIN([croppadd])
1153 VLC_ADD_PLUGIN([canvas])
1154 VLC_ADD_PLUGIN([blendbench])
1155 VLC_ADD_PLUGIN([blend])
1156 VLC_ADD_PLUGIN([scale])
1157 VLC_ADD_PLUGIN([vmem])
1158 VLC_ADD_PLUGIN([logo])
1159 VLC_ADD_PLUGIN([magnify])
1160 VLC_ADD_PLUGIN([puzzle])
1161 VLC_ADD_PLUGIN([colorthres])
1162 VLC_ADD_PLUGIN([scene])
1163 VLC_ADD_PLUGIN([yuv])
1164
1165 ALIASES="${ALIASES} cvlc"
1166
1167 dnl
1168 dnl default modules that need g++
1169 dnl
1170 AC_LANG_PUSH(C++)
1171 VLC_ADD_PLUGIN([spatializer])
1172 AC_LANG_POP(C++)
1173
1174 if test "${SYS}" != "mingwce"; then
1175   VLC_ADD_PLUGIN([gestures])
1176   VLC_ADD_PLUGIN([rc])
1177   VLC_ADD_PLUGIN([hotkeys])
1178   VLC_ADD_PLUGIN([showintf])
1179   VLC_ADD_PLUGIN([marq])
1180   VLC_ADD_PLUGIN([podcast])
1181   VLC_ADD_PLUGIN([shout])
1182   VLC_ADD_PLUGIN([sap])
1183   VLC_ADD_PLUGIN([fake])
1184   VLC_ADD_PLUGIN([folder])
1185   VLC_ADD_PLUGIN([rss])
1186   VLC_ADD_PLUGIN([mosaic])
1187   VLC_ADD_PLUGIN([wall])
1188   VLC_ADD_PLUGIN([motiondetect])
1189   VLC_ADD_PLUGIN([clone])
1190   VLC_ADD_PLUGIN([crop])
1191   VLC_ADD_PLUGIN([erase])
1192   VLC_ADD_PLUGIN([bluescreen])
1193   VLC_ADD_PLUGIN([alphamask])
1194   VLC_ADD_PLUGIN([gaussianblur])
1195   VLC_ADD_PLUGIN([i420_yuy2])
1196   VLC_ADD_PLUGIN([i422_yuy2])
1197   VLC_ADD_PLUGIN([i420_ymga])
1198   VLC_ADD_PLUGIN([i422_i420])
1199   VLC_ADD_PLUGIN([yuy2_i422])
1200   VLC_ADD_PLUGIN([yuy2_i420])
1201   VLC_ADD_PLUGIN([chain])
1202   VLC_ADD_PLUGIN([aout_file])
1203   VLC_ADD_PLUGIN([linear_resampler])
1204   VLC_ADD_PLUGIN([bandlimited_resampler])
1205   VLC_ADD_PLUGIN([float32_mixer])
1206   VLC_ADD_PLUGIN([spdif_mixer])
1207   VLC_ADD_PLUGIN([simple_channel_mixer])
1208   VLC_ADD_PLUGIN([dolby_surround_decoder])
1209   VLC_ADD_PLUGIN([headphone_channel_mixer])
1210   VLC_ADD_PLUGIN([normvol])
1211   VLC_ADD_PLUGIN([equalizer])
1212   VLC_ADD_PLUGIN([param_eq])
1213   VLC_ADD_PLUGIN([scaletempo])
1214   VLC_ADD_PLUGIN([converter_float])
1215   VLC_ADD_PLUGIN([a52tospdif])
1216   VLC_ADD_PLUGIN([dtstospdif])
1217   VLC_ADD_PLUGIN([audio_format])
1218   ALIASES="${ALIASES} rvlc"
1219 fi
1220
1221 if test "${SYS}" = "mingwce"; then
1222   VLC_ADD_PLUGIN([chain])
1223   VLC_ADD_PLUGIN([aout_file])
1224   VLC_ADD_PLUGIN([linear_resampler])
1225   VLC_ADD_PLUGIN([bandlimited_resampler])
1226   VLC_ADD_PLUGIN([float32_mixer])
1227   VLC_ADD_PLUGIN([spdif_mixer])
1228   VLC_ADD_PLUGIN([simple_channel_mixer])
1229   VLC_ADD_PLUGIN([headphone_channel_mixer])
1230   VLC_ADD_PLUGIN([normvol])
1231   VLC_ADD_PLUGIN([converter_float])
1232   VLC_ADD_PLUGIN([a52tospdif])
1233   VLC_ADD_PLUGIN([dtstospdif])
1234   VLC_ADD_PLUGIN([audio_format])
1235   VLC_ADD_PLUGIN([i420_yuy2])
1236   VLC_ADD_PLUGIN([i422_yuy2])
1237   VLC_ADD_PLUGIN([i420_ymga])
1238   VLC_ADD_PLUGIN([i422_i420])
1239   VLC_ADD_PLUGIN([yuy2_i422])
1240   VLC_ADD_PLUGIN([yuy2_i420])
1241 fi
1242
1243 dnl
1244 dnl Some plugins aren't useful on some platforms
1245 dnl
1246 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1247     VLC_ADD_PLUGIN([screensaver])
1248     VLC_ADD_PLUGIN([motion])
1249     VLC_ADD_PLUGIN([dynamicoverlay])
1250     VLC_ADD_PLUGIN([signals])
1251 elif test "${SYS}" != "mingwce"; then
1252     VLC_ADD_PLUGIN([ntservice])
1253     VLC_ADD_PLUGIN([access_smb])
1254     VLC_ADD_PLUGIN([dmo])
1255     VLC_ADD_PLUGIN([msn])
1256     VLC_ADD_LIBS([dmo],[-lole32 -luuid])
1257     VLC_ADD_PLUGIN([globalhotkeys])
1258 else
1259     VLC_ADD_PLUGIN([win32text])
1260 fi
1261 if test "${SYS}" = "darwin"; then
1262     VLC_ADD_PLUGIN([quartztext])
1263     VLC_ADD_LDFLAGS([quartztext],[-Wl,-framework,Carbon,-framework,ApplicationServices])
1264 fi
1265
1266 dnl
1267 dnl  Accelerated modules
1268 dnl
1269 AC_ARG_WITH(,[])
1270 AC_ARG_WITH(,[Optimization options:])
1271
1272 dnl  Check for fully working MMX intrinsics
1273 dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a
1274 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1275 AC_ARG_ENABLE(mmx,
1276 [  --disable-mmx           disable MMX optimizations (default auto)],,[
1277   case "${host_cpu}" in
1278     i?86|x86_64)
1279       enable_mmx="yes"
1280       ;;
1281     *)
1282       enable_mmx="no"
1283       ;;
1284   esac
1285 ])
1286 AS_IF([test "${enable_mmx}" != "no"], [
1287   ARCH="${ARCH} mmx"
1288
1289   AC_CACHE_CHECK([if $CC groks MMX intrinsics],
1290     [ac_cv_c_mmx_intrinsics],
1291     [CFLAGS="${CFLAGS_save} -O -mmmx"
1292      AC_TRY_COMPILE([#include <mmintrin.h>
1293                      #include <stdint.h>
1294                      uint64_t frobzor;],
1295                     [__m64 a, b, c;
1296                      a = b = c = (__m64)frobzor;
1297                      a = _mm_slli_pi16(a, 3);
1298                      a = _mm_adds_pi16(a, b);
1299                      c = _mm_srli_pi16(c, 8);
1300                      c = _mm_slli_pi16(c, 3);
1301                      b = _mm_adds_pi16(b, c);
1302                      a = _mm_unpacklo_pi8(a, b);
1303                      frobzor = (uint64_t)a;],
1304                     [ac_cv_c_mmx_intrinsics=yes],
1305                     [ac_cv_c_mmx_intrinsics=no])])
1306   AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1307     AC_DEFINE(HAVE_MMX_INTRINSICS, 1,
1308               [Define to 1 if MMX intrinsics are available.])
1309     VLC_ADD_CFLAGS([memcpymmx i420_rgb_mmx i420_yuy2_mmx i422_yuy2_mmx i420_ymga_mmx],[-mmmx])
1310   ])
1311
1312   AC_CACHE_CHECK([if $CC groks MMX inline assembly],
1313     [ac_cv_mmx_inline],
1314     [CFLAGS="${CFLAGS_save}"
1315      AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
1316                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
1317   AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1318     AC_DEFINE(CAN_COMPILE_MMX, 1,
1319               [Define to 1 inline MMX assembly is available.])
1320     VLC_ADD_PLUGIN([memcpymmx])
1321     VLC_ADD_PLUGIN([i420_rgb_mmx])
1322     VLC_ADD_PLUGIN([i420_yuy2_mmx])
1323     VLC_ADD_PLUGIN([i422_yuy2_mmx])
1324     VLC_ADD_PLUGIN([i420_ymga_mmx])
1325   ])
1326
1327   AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1328     [ac_cv_mmxext_inline],
1329     [CFLAGS="${CFLAGS_save}"
1330      AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
1331                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
1332   AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1333     AC_DEFINE(CAN_COMPILE_MMXEXT, 1,
1334               [Define to 1 if MMX EXT inline assembly is available.])
1335     VLC_ADD_PLUGIN([memcpymmxext])
1336   ])
1337 ])
1338
1339 dnl  Check for fully workin SSE2 intrinsics
1340 dnl  We need support for -mmmx, we need <emmintrin.h>, and we also need a
1341 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1342 AC_ARG_ENABLE(sse,
1343 [  --disable-sse           disable SSE (1 and 2) optimizations (default auto)]
1344 ,, [
1345   case "${host_cpu}" in
1346     i686|x86_64)
1347       enable_sse=yes
1348       ;;
1349     *)
1350       enable_sse=no
1351       ;;
1352   esac
1353 ])
1354 AS_IF([test "${enable_sse}" != "no"], [
1355   ARCH="${ARCH} sse sse2"
1356
1357   AC_CACHE_CHECK([if $CC groks SSE2 intrinsics],
1358     [ac_cv_c_sse2_intrinsics],
1359     [CFLAGS="${CFLAGS_save} -O -msse2"
1360      AC_TRY_COMPILE([#include <emmintrin.h>
1361                      #include <stdint.h>
1362                      uint64_t frobzor;],
1363                     [__m128i a, b, c;
1364                      a = b = c = _mm_set1_epi64((__m64)frobzor);
1365                      a = _mm_slli_epi16(a, 3);
1366                      a = _mm_adds_epi16(a, b);
1367                      c = _mm_srli_epi16(c, 8);
1368                      c = _mm_slli_epi16(c, 3);
1369                      b = _mm_adds_epi16(b, c);
1370                      a = _mm_unpacklo_epi8(a, b);
1371                      frobzor = (uint64_t)_mm_movepi64_pi64(a);],
1372                     [ac_cv_c_sse2_intrinsics=yes],
1373                     [ac_cv_c_sse2_intrinsics=no])])
1374   AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1375     AC_DEFINE(HAVE_SSE2_INTRINSICS, 1,
1376               [Define to 1 if SSE2 intrinsics are available.])
1377     VLC_ADD_CFLAGS([i420_rgb_sse2 i420_yuy2_sse2 i422_yuy2_sse2],[-msse2])
1378   ])
1379
1380   AC_CACHE_CHECK([if $CC groks SSE inline assembly],
1381     [ac_cv_sse_inline],
1382     [CFLAGS="${CFLAGS_save}"
1383      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
1384                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
1385   AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1386     AC_DEFINE(CAN_COMPILE_SSE, 1,
1387               [Define to 1 if SSE inline assembly is available.])
1388   ])
1389
1390   AC_CACHE_CHECK([if $CC groks SSE2 inline assembly],
1391     [ac_cv_sse2_inline],
1392     [CFLAGS="${CFLAGS_save}"
1393      AC_TRY_COMPILE(,[void *p;asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p));],
1394                     ac_cv_sse2_inline=yes, ac_cv_sse2_inline=no)])
1395   AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1396     AC_DEFINE(CAN_COMPILE_SSE2, 1,
1397               [Define to 1 if SSE2 inline assembly is available.])
1398     VLC_ADD_PLUGIN([i420_rgb_sse2])
1399     VLC_ADD_PLUGIN([i420_yuy2_sse2])
1400     VLC_ADD_PLUGIN([i422_yuy2_sse2])
1401   ])
1402 ])
1403
1404 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly],
1405     [ac_cv_3dnow_inline],
1406     [CFLAGS="${CFLAGS_save}"
1407      AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
1408                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
1409 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1410   AC_DEFINE(CAN_COMPILE_3DNOW, 1,
1411             [Define to 1 if 3D Now! inline assembly is available.])
1412   VLC_ADD_PLUGIN([memcpy3dn])
1413 ])
1414
1415 AC_ARG_ENABLE(altivec,
1416 [  --disable-altivec       disable AltiVec optimizations (default auto)],, [
1417   AS_IF([test "${host_cpu}" = "powerpc"],
1418         [enable_altivec=yes], [enable_altivec=no])
1419 ])
1420 AS_IF([test "${enable_altivec}" = "yes"], [
1421   ARCH="${ARCH} altivec";
1422   AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1423     [ac_cv_altivec_inline],
1424     [CFLAGS="${CFLAGS_save}"
1425      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1426          ac_cv_altivec_inline="yes",
1427          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
1428           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1429             [ac_cv_altivec_inline="-Wa,-m7400"],
1430             ac_cv_altivec_inline=no)
1431          ])])
1432   AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1433     AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1434               [Define to 1 if AltiVec inline assembly is available.])
1435     AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1436       VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
1437       VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
1438       VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1439       VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1440       VLC_ADD_CFLAGS([libvlc],[${ac_cv_altivec_inline}])
1441     ])
1442     VLC_ADD_PLUGIN([memcpyaltivec])
1443     VLC_ADD_PLUGIN([i420_yuy2_altivec])
1444   ])
1445
1446 dnl The AltiVec C extensions
1447 dnl
1448 dnl There are several possible cases:
1449 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1450 dnl                      need <altivec.h>
1451 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1452 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1453 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1454 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1455 dnl - Others: test should fail
1456   AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1457   [ac_cv_c_altivec],
1458   [# OS X/PPC test (gcc 4.x)
1459    CFLAGS="${CFLAGS_save} -mpim-altivec -force_cpusubtype_ALL"
1460    AC_TRY_COMPILE([vector unsigned char foo;],
1461      [vec_ld(0, (unsigned char *)0);],
1462      [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1463      [# OS X/PPC test (gcc 3.x)
1464       CFLAGS="${CFLAGS_save} -faltivec"
1465       AC_TRY_COMPILE([vector unsigned char foo;],
1466         [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1467         [ac_cv_c_altivec="-faltivec"],
1468         dnl Below this are the Linux tests
1469         [# Linux/PPC test (gcc 4.x)
1470          CFLAGS="${CFLAGS_save} -maltivec"
1471          AC_TRY_COMPILE([#include <altivec.h>],
1472            [vec_ld(0, (unsigned char *)0);],
1473            [ac_cv_c_altivec="-maltivec"],
1474            [# Linux/PPC test (gcc 3.3)
1475             CFLAGS="${CFLAGS_save} -maltivec -mabi=altivec"
1476             AC_TRY_COMPILE([#include <altivec.h>],
1477               [vec_ld(0, (unsigned char *)0);],
1478               [ac_cv_c_altivec=""
1479                ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1480               [# Linux/PPC test (gcc 3.3)
1481                CFLAGS="${CFLAGS_save} -fvec"
1482                AC_TRY_COMPILE([#include <altivec.h>],
1483                  [vec_ld(0, (unsigned char *)0);],
1484                  [ac_cv_c_altivec="-fvec"],
1485                  [ac_cv_c_altivec=no])
1486               ])
1487            ])
1488         ])
1489      ])
1490    CFLAGS="${CFLAGS_save}"
1491   ])
1492   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1493     CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
1494   ])
1495
1496   AC_CHECK_HEADERS(altivec.h)
1497   CPPFLAGS="${CPPFLAGS_save}"
1498
1499   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1500     AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1,
1501               [Define to 1 if C AltiVec extensions are available.])
1502     VLC_ADD_CFLAGS([libvlc],[${ac_cv_c_altivec}])
1503     VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
1504     VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1505     VLC_ADD_PLUGIN([memcpyaltivec])
1506     VLC_ADD_PLUGIN([i420_yuy2_altivec])
1507   ])
1508
1509   AC_CACHE_CHECK([if linker needs -framework vecLib],
1510     [ac_cv_ld_altivec],
1511     [LDFLAGS="${LDFLAGS_vlc} -Wl,-framework,vecLib"
1512      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
1513      LDFLAGS="${LDFLAGS_save}"
1514     ])
1515   AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1516     VLC_ADD_LDFLAGS([libvlc idctaltivec motionaltivec memcpyaltivec],[-Wl,-framework,vecLib])
1517   ])
1518 ])
1519
1520 dnl
1521 dnl  Special arch tuning
1522 dnl
1523 AC_ARG_WITH(tuning,
1524 [  --with-tuning=ARCH      enable special tuning for an architecture
1525                           (default Pentium 2 on IA-32 and G4 on PPC)])
1526 if test -n "${with_tuning}"; then
1527     if test "${with_tuning}" != "no"; then
1528         CFLAGS_TUNING="-mtune=${with_tuning}"
1529     fi
1530 else
1531     if test "${SYS}" = "darwin" -a "${host_cpu}" != "powerpc"; then
1532         CFLAGS_TUNING="-march=pentium-m -mtune=prescott"
1533     elif test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "i386"; then
1534         CFLAGS_TUNING="-mtune=pentium2"
1535     elif test "${host_cpu}" = "x86_64"; then
1536         CFLAGS_TUNING="-mtune=athlon64"
1537     elif test "${host_cpu}" = "powerpc"; then
1538         CFLAGS_TUNING="-mtune=G4";
1539     fi
1540 fi
1541
1542 dnl NOTE: this can't be cached cleanly
1543 AS_IF([test "${CFLAGS_TUNING}"],
1544    [CFLAGS_save="${CFLAGS}"
1545     CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1546
1547     AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1548     AC_COMPILE_IFELSE([ ],
1549                       [tuning="yes"],
1550                       [CFLAGS_TUNING=""; tuning="no"
1551                        AS_IF([test "${with_tuning}"],
1552                              [AC_MSG_ERROR([requested tuning not supported])])])
1553
1554     AC_MSG_RESULT([$tuning])
1555     CFLAGS="${CFLAGS_save}"
1556 ])
1557
1558 dnl
1559 dnl  Memory usage
1560 dnl
1561 AC_ARG_ENABLE(optimize-memory,
1562 [  --enable-optimize-memory optimize memory usage over performance])
1563 if test "${enable_optimize_memory}" = "yes"; then
1564   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1565 fi
1566
1567 dnl
1568 dnl  Enable/disable optimizations
1569 dnl
1570 AC_ARG_ENABLE(optimizations,
1571 [  --disable-optimizations disable compiler optimizations (default enabled)])
1572 if test "${enable_optimizations}" != "no"; then
1573    if test "${enable_optimize_memory}" = "yes"; then
1574       enable_optimizations="size"
1575    else
1576       enable_optimizations="speed"
1577    fi
1578 fi
1579
1580 dnl
1581 dnl  Debugging mode
1582 dnl
1583 AC_ARG_ENABLE(debug,
1584 [  --enable-debug          debug mode (default disabled)])
1585 test "${enable_debug}" != "yes" && enable_debug="no"
1586 AH_TEMPLATE(NDEBUG,
1587             [Define to 1 if debug code should NOT be compiled])
1588 AS_IF([test "x${enable_debug}" = "xno"], [
1589   AC_DEFINE(NDEBUG)
1590 ], [
1591   AC_CHECK_HEADERS([valgrind/valgrind.h])
1592 ])
1593
1594 dnl
1595 dnl Allow runing as root (usefull for people runing on embedded platforms)
1596 dnl
1597 AC_ARG_ENABLE(run-as-root,
1598 [  --enable-run-as-root    allow runing VLC as root (default disabled)])
1599 AS_IF([test "${enable_run_as_root}" = "yes"],[
1600     AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1601               [Define to 1 to allow runing VLC as root (uid 0).])
1602 ])
1603
1604 dnl
1605 dnl  Test coverage
1606 dnl
1607 AC_ARG_ENABLE(coverage,
1608         [  --enable-coverage       build for test coverage (default disabled)],,
1609         [enable_coverage="no"])
1610 AS_IF([test "${enable_coverage}" != "no"], [
1611         CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
1612         CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
1613         LDFLAGS="-lgcov ${LDFLAGS}"
1614         dnl ugly...
1615         CFLAGS_save="${CFLAGS}"
1616         CXXFLAGS_save="${CXXFLAGS}"
1617         LDFLAGS_save="${LDFLAGS}"
1618 ])
1619
1620 dnl
1621 dnl  Enable release-specific flags
1622 dnl
1623 AC_ARG_ENABLE(release,
1624 [  --enable-release        activate extra optimizations (default disabled)])
1625 test "${enable_release}" != "yes" && enable_release="no"
1626
1627 dnl
1628 dnl Stream output
1629 dnl
1630 AC_ARG_ENABLE(sout,
1631   [  --enable-sout           Stream output modules (default enabled)])
1632 AS_IF([test "${enable_sout}" != "no"], [
1633   AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1634 ])
1635 AM_CONDITIONAL(ENABLE_SOUT, [test "${enable_sout}" != "no"])
1636
1637 AC_ARG_ENABLE(switcher,
1638   [  --enable-switcher       Stream-out switcher plugin (default disabled)])
1639
1640 dnl Check for libshout
1641 AC_ARG_ENABLE(shout,
1642   [  --enable-shout          libshout output plugin (default disabled)])
1643 if test "${enable_shout}" = "yes"; then
1644   PKG_CHECK_MODULES(SHOUT, shout >= 2.1,
1645     [AC_DEFINE(HAVE_SHOUT, 1, [Define if you have the libshout library])
1646      VLC_ADD_PLUGIN([access_output_shout])
1647      VLC_ADD_LIBS([access_output_shout],[$SHOUT_LIBS])
1648      VLC_ADD_CFLAGS([access_output_shout],[$SHOUT_CFLAGS])],
1649     [AC_MSG_WARN(libshout library not found)])
1650 fi
1651
1652 dnl Lua modules
1653 AC_ARG_ENABLE(lua,
1654   AS_HELP_STRING([--enable-lua],[lua playlist, metafetcher and interface
1655                   plugins (default enabled)]))
1656 if test "${enable_lua}" != "no"
1657 then
1658   PKG_CHECK_MODULES(LUA, lua5.1,
1659     [ have_lua=yes ],
1660     [
1661     AC_MSG_WARN([lua5.1 not found, trying lua >= 5.1 instead])
1662     PKG_CHECK_MODULES(LUA, lua >= 5.1,
1663       [ have_lua=yes ],
1664       [
1665         have_lua=yes
1666         AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1667           [],
1668           [ have_lua=no ] )
1669         AC_CHECK_LIB(  lua5.1 , luaL_newstate,
1670           [LUA_LIBS="-llua5.1"],
1671           AC_CHECK_LIB( lua51 , luaL_newstate,
1672             [LUA_LIBS="-llua51"],
1673             AC_CHECK_LIB( lua , luaL_newstate,
1674               [LUA_LIBS="-llua"],
1675               [ have_lua=no
1676                 AC_MSG_WARN([lua >= 5.1 not found!])
1677               ])
1678           )
1679         )
1680       ])
1681     ])
1682   if test "x${have_lua}" = "xyes" ;  then
1683      AC_DEFINE(HAVE_LUA, 1, [Define if you have the lua library])
1684      VLC_ADD_LIBS([lua],[$LUA_LIBS])
1685      VLC_ADD_CFLAGS([lua],[$LUA_CFLAGS])
1686   fi
1687 fi
1688 AM_CONDITIONAL(BUILD_LUA, [test "${have_lua}" = "yes"])
1689
1690 dnl
1691 dnl HTTP daemon
1692 dnl
1693 AC_ARG_ENABLE(httpd,
1694   [  --enable-httpd          HTTP daemon (default enabled)])
1695 if test "${enable_httpd}" != "no"
1696 then
1697   VLC_ADD_PLUGIN([http])
1698   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
1699 fi
1700 AM_CONDITIONAL(BUILD_HTTPD, [test "${enable_httpd}" != "no"])
1701
1702 dnl
1703 dnl libproxy support
1704 dnl
1705 AC_ARG_ENABLE(libproxy,
1706   [  --enable-libproxy       libproxy support (default auto)])
1707 AS_IF([test "${enable_libproxy}" != "no"], [
1708   PKG_CHECK_MODULES(LIBPROXY, libproxy-1.0, [
1709     AC_DEFINE(HAVE_LIBPROXY, 1, [Define if libproxy is available])
1710     VLC_ADD_CFLAGS([access_http],[$LIBPROXY_CFLAGS])
1711     VLC_ADD_LIBS([access_http],[$LIBPROXY_LIBS])
1712   ], [
1713     AS_IF([test "x${enable_libproxy}" != "x"], [
1714       AC_MSG_ERROR([libproxy could not be found on your system])
1715     ])
1716   ])
1717 ])
1718
1719 dnl
1720 dnl VideoLAN manager
1721 dnl
1722 AC_ARG_ENABLE(vlm,
1723   [  --enable-vlm            VideoLAN manager (default enabled)],,
1724   [enable_vlm="${enable_sout}"])
1725 AS_IF([test "${enable_vlm}" != "no"], [
1726   AS_IF([test "${enable_sout}" = "no"], [
1727     AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1728   ])
1729   AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1730   VLC_ADD_PLUGIN([telnet])
1731 ])
1732 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1733
1734 dnl
1735 dnl Growl notification plugin
1736 dnl
1737 AC_ARG_ENABLE(growl,
1738   [  --enable-growl          growl notification plugin (default disabled)],,
1739   [enable_growl=no])
1740 AS_IF([test "${enable_growl}" != "no"], [
1741     VLC_ADD_PLUGIN([growl_udp])
1742     AC_CHECK_HEADERS(Growl/GrowlDefines.h, [
1743       VLC_ADD_PLUGIN([growl])
1744       VLC_ADD_LDFLAGS([growl], [-Wl,-framework,Growl,-framework,AppKit])
1745     ])
1746   ]
1747 )
1748
1749 dnl
1750 dnl Libnotify notification plugin
1751 dnl
1752
1753 AC_ARG_ENABLE(notify,
1754   [  --enable-notify         libnotify notification plugin (default enabled)])
1755 AS_IF([test "${enable_notify}" != "no" -a "${SYS}" != "mingw32"], [
1756     PKG_CHECK_MODULES(NOTIFY, libnotify,
1757       [
1758         VLC_ADD_PLUGIN([notify])
1759         VLC_ADD_CFLAGS(notify, [$NOTIFY_CFLAGS])
1760         VLC_ADD_LIBS(notify, [$NOTIFY_LIBS])
1761       ],[
1762     AS_IF([test "${enable_notify}" = "yes"],[
1763         AC_MSG_WARN( libnotify not found) ])
1764       ])
1765   ])
1766
1767 dnl
1768 dnl Audioscrobbler plugin
1769 dnl
1770
1771 AC_ARG_ENABLE(audioscrobbler,
1772   [  --disable-audioscrobbler Last.fm submission plugin (default enabled)])
1773 AS_IF([test "${enable_audioscrobbler}" != "no"], [
1774         VLC_ADD_PLUGIN([audioscrobbler])
1775   ])
1776
1777 dnl
1778 dnl Taglibplugin
1779 dnl
1780 AC_ARG_ENABLE(taglib,
1781   [  --disable-taglib Taglib support (default enabled) ])
1782   AS_IF([test "${enable_taglib}" != "no"],[
1783     PKG_CHECK_MODULES(TAGLIB, taglib,
1784       [ AC_DEFINE( HAVE_TAGLIB, 1, [Define if you have taglib plugin built] )
1785         VLC_ADD_PLUGIN([taglib])
1786         VLC_ADD_LIBS([taglib],[$TAGLIB_LIBS -lz])
1787        VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS]) ],
1788       [AC_MSG_WARN(TagLib library not found)])
1789   ])
1790
1791
1792 dnl
1793 dnl  Input plugins
1794 dnl
1795
1796 AC_ARG_WITH(,[Input plugins:])
1797
1798 dnl  live555 input
1799 dnl
1800 if test "${enable_livedotcom}"
1801 then
1802   AC_MSG_WARN(--{en|dis}able-livedotcom is deprecated. Use --{en|dis}able-live555 instead.)
1803 fi
1804 if test "${enable_livedotcom}" = "no"
1805 then
1806   enable_live555="no"
1807 fi
1808
1809 AC_ARG_ENABLE(live555,
1810 [  --enable-live555        live555 RTSP input plugin (default enabled)])
1811 if test "${enable_live555}" != "no"; then
1812   AC_ARG_WITH(live555-tree,
1813     [    --with-live555-tree=PATH live.com tree for static linking])
1814
1815   dnl
1816   dnl test for --with-live555-tree
1817   dnl
1818   if test "${with_livedotcom_tree}"
1819   then
1820     AC_MSG_WARN(--with-livedotcom-tree is deprecated. Use --with-live555-tree instead.)
1821   with_live555_tree="${with_livedotcom_tree}"
1822   fi
1823
1824   if test -z "${with_live555_tree}" -a "${CXX}" != ""; then
1825     AC_LANG_PUSH(C++)
1826     CPPFLAGS_save="${CPPFLAGS}"
1827     CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1828     if test "${SYS}" = "solaris"; then
1829       CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1830     fi
1831     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1832
1833     AC_CHECK_HEADERS(liveMedia_version.hh, [
1834       AC_MSG_CHECKING(for liveMedia version >= 1214895600 )
1835       AC_EGREP_CPP(yes,
1836         [#include <liveMedia_version.hh>
1837          #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
1838          #if LIVEMEDIA_LIBRARY_VERSION_INT < 1214895600
1839          yes
1840          #endif
1841          #endif],
1842         [AC_MSG_RESULT([no])
1843          AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia.
1844 lternatively you can use --disable-live555 to disable the liveMedia plugin.])
1845       ],[
1846          AC_MSG_RESULT([yes])
1847          ])
1848     ])
1849      other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1850      other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
1851       if test "${SYS}" = "mingw32"; then
1852         # add ws2_32 for closesocket, select, recv
1853         other_libs="$other_libs -lws2_32"
1854       fi
1855     dnl We need to check for pic because live555 don't provide shared libs
1856     dnl and we want to build a plugins so we need -fPIC on some arch.
1857     AC_CHECK_HEADERS(liveMedia.hh, [
1858       VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1859         AC_CHECK_LIB(liveMedia_pic, main, [
1860           VLC_ADD_PLUGIN([live555])
1861          VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
1862          ],[
1863         AC_CHECK_LIB(liveMedia, main, [
1864           VLC_ADD_PLUGIN([live555])
1865           VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1866         ],[],[${other_libs}]) ],[${other_libs_pic}])
1867     ],[
1868        AC_MSG_WARN([The development files for liveMedia (live555) can't be found])
1869     ])
1870     CPPFLAGS="${CPPFLAGS_save}"
1871     AC_LANG_POP(C++)
1872   else
1873     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_live555_tree})
1874     real_live555_tree="`cd ${with_live555_tree} 2>/dev/null && pwd`"
1875     if test -z "${real_live555_tree}"; then
1876       dnl  The given directory can't be found
1877       AC_MSG_RESULT(no)
1878       AC_MSG_ERROR([cannot cd to ${with_live555_tree}])
1879     fi
1880     if test -f "${real_live555_tree}/liveMedia/libliveMedia.a"; then
1881       AC_MSG_RESULT(${real_live555_tree}/liveMedia/libliveMedia.a)
1882
1883       AC_CHECK_HEADERS(${real_live555_tree}/liveMedia/include/liveMedia_version.hh,[
1884         AC_MSG_CHECKING(for liveMedia version >= 1214895600 )
1885         AC_EGREP_CPP(yes,
1886           [#include "${real_live555_tree}/liveMedia/include/liveMedia_version.hh"
1887            #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
1888            #if LIVEMEDIA_LIBRARY_VERSION_INT < 1214895600
1889            yes
1890            #endif
1891            #endif],
1892           [AC_MSG_RESULT([no])
1893            AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia.
1894 lternatively you can use --disable-live555 to disable the liveMedia plugin.])
1895         ],[
1896            AC_MSG_RESULT([yes])
1897            ])
1898       ])
1899
1900       VLC_ADD_PLUGIN([live555])
1901
1902       if test "${SYS}" = "mingw32"; then
1903         # add ws2_32 for closesocket, select, recv
1904         VLC_ADD_LIBS([live555],[-lws2_32])
1905       fi
1906
1907       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/liveMedia -lliveMedia])
1908       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1909       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/groupsock -lgroupsock])
1910       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/UsageEnvironment -lUsageEnvironment])
1911
1912       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/BasicUsageEnvironment/include])
1913       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/groupsock/include])
1914       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/liveMedia/include])
1915       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/UsageEnvironment/include ])
1916       if test "${SYS}" = "solaris"; then
1917         VLC_ADD_CXXFLAGS([live555],[-DSOLARIS])
1918       fi
1919     else
1920       dnl  The given live555 wasn't built
1921         AC_MSG_RESULT(no)
1922       if test "${enable_live555}" = "yes"; then
1923         AC_MSG_ERROR([cannot find ${real_live555_tree}/liveMedia/libliveMedia.a, make sure you compiled live555 in ${with_live555_tree}])
1924       fi        
1925     fi
1926   fi
1927 fi
1928
1929 dnl
1930 dnl  special access module for dc1394 input
1931 dnl
1932 AC_ARG_ENABLE(dc1394,
1933   [  --enable-dc1394         dc1394 access module (default disabled)])
1934 if test "${enable_dc1394}" = "yes"
1935 then
1936   AC_CHECK_HEADERS(libraw1394/raw1394.h, [
1937     AC_CHECK_LIB( raw1394, raw1394_get_nodecount, [
1938         AC_CHECK_HEADERS(libdc1394/dc1394_control.h , [
1939 dnl         AC_CHECK_LIB( dc1394_control, dc1394_setup_capture, [
1940               VLC_ADD_PLUGIN([dc1394])
1941               VLC_ADD_LIBS([dc1394],[-ldc1394_control -lraw1394])
1942 dnl         ],
1943 dnl         [
1944 dnl           AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1945 dnl         ])
1946       ],
1947       [
1948         AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1949       ])
1950     ],
1951     [
1952       AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1953     ])
1954   ],
1955   [
1956     AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1957   ])
1958 fi
1959
1960 dnl
1961 dnl dv module: digital video module check for libraw1394
1962 dnl
1963 AC_ARG_ENABLE(dv,
1964 [  --enable-dv             dv input module (default disabled)])
1965 if test "${enable_dv}" = "yes"
1966 then
1967   AC_ARG_WITH(dv-raw1394,
1968   [    --with-dv-raw1394=PATH   libraw1394 headers and libraries])
1969   AC_ARG_WITH(dv-raw1394-tree,
1970   [    --with-dv-raw1394=PATH   libraw1394 tree for static linking])
1971
1972   if test -z "${with_dv_raw1394}" -a "${with_dv_raw1394}" != ""
1973   then
1974     AC_MSG_CHECKING(for raw1394 headers in ${with_dv_raw1394})
1975     if test -f ${with_dv_raw1394}/include/libraw1394/raw1394.h
1976     then
1977       dnl  Use ${with_dv_raw1394}/include/libraw1394/raw1394.h
1978       AC_MSG_RESULT(yes)
1979       VLC_ADD_PLUGIN([access_dv])
1980       VLC_ADD_LIBS([access_dv],[-L${with_dv_raw1394}/lib -lraw1394 -lpthread])
1981       VLC_ADD_CPPFLAGS([access_dv],[-I${with_dv_raw1394}/include])
1982     else
1983       dnl  No libraw1394 could be found, sorry
1984       AC_MSG_RESULT(no)
1985       AC_MSG_ERROR([cannot find ${with_dv_raw1394}/include/libraw1394/raw1394.h])
1986     fi
1987   else
1988     AC_CHECK_HEADERS(libraw1394/raw1394.h,
1989     [ VLC_ADD_PLUGIN([access_dv])
1990         VLC_ADD_LIBS([access_dv],[-lraw1394 -lavc1394])
1991     ],[
1992         if test -n "${enable_dv}"
1993         then
1994           AC_MSG_ERROR([cannot find libraw1394 headers])
1995         fi
1996     ])
1997   fi
1998
1999   dnl Check for static linking of libraw1394
2000   if test -z "${with_dv_raw1394_tree}" -a "${with_dv_raw1394_tree}" != ""
2001   then
2002     AC_MSG_CHECKING(for libraw1394.a in ${with_dv_raw1394_tree})
2003     real_dv_raw1394_tree="`cd ${with_dv_raw1394_tree} 2>/dev/null && pwd`"
2004     if test -z "${real_dv_raw1394_tree}"
2005     then
2006       dnl  The given directory can't be found
2007       AC_MSG_RESULT(no)
2008       AC_MSG_ERROR([cannot cd to ${real_dv_raw1394_tree}])
2009     fi
2010     if test -f "${real_dv_raw1394_tree}/src/.libs/libraw1394.a"
2011     then
2012       dnl  Use a custom libraw1394
2013       AC_MSG_RESULT(${real_dv_raw1394_tree}/src/.libs/libraw1394.a)
2014       VLC_ADD_PLUGIN([access_dv])
2015       VLC_ADD_LIBS([access_dv],[-L${real_dv_raw1394_tree}/src/.libs -lraw1394])
2016       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_raw1394_tree}])
2017     else
2018       dnl  The given libraw1394 wasn't built
2019       AC_MSG_RESULT(no)
2020       AC_MSG_ERROR([cannot find ${real_dv_raw1394_tree}/src/.libs/libraw1394.a, make sure you compiled libraw1394 in ${with_dv_raw1394_tree}])
2021     fi
2022   fi
2023
2024   dnl
2025   dnl Check for libavc1394
2026   dnl
2027
2028   AC_ARG_WITH(dv-avc1394,
2029   [    --with-dv-avc1394=PATH   libavc1394 headers and libraries])
2030   AC_ARG_WITH(dv-avc1394-tree,
2031   [    --with-dv-avc1394=PATH   libavc1394 tree for static linking])
2032
2033   if test -z "${with_dv_avc1394}" -a "${with_dv_avc1394}" != ""
2034   then
2035     AC_MSG_CHECKING(for avc1394 headers in ${with_dv_avc1394})
2036     if test -f ${with_dv_avc1394}/include/libavc1394/avc1394.h
2037     then
2038       dnl  Use ${with_dv_avc1394}/include/libavc1394/avc1394.h
2039       AC_MSG_RESULT(yes)
2040       VLC_ADD_LIBS([access_dv],[-L${with_dv_avc1394}/lib -lavc1394 -lrom1394 -lpthread])
2041       VLC_ADD_CPPFLAGS([access_dv],[-I${with_avc1394}/include])
2042     else
2043       dnl  No libavc1394 could be found, sorry
2044       AC_MSG_RESULT(no)
2045       AC_MSG_ERROR([cannot find ${with_dv_avc1394}/include/libavc1394/avc1394.h])
2046     fi
2047   else
2048     AC_CHECK_HEADERS(libavc1394/avc1394.h,
2049     [ VLC_ADD_LIBS([access_dv],[-lavc1394 -lrom1394 -lpthread])
2050     ],[
2051         if test -n "${enable_dv}"
2052         then
2053           AC_MSG_ERROR([cannot find libavc1394 headers])
2054         fi
2055     ])
2056   fi
2057
2058   dnl Check for static linking of libavc1394
2059   if test -z "${with_dv_avc1394_tree}" -a "${with_dv_avc1394_tree}" != ""
2060   then
2061     AC_MSG_CHECKING(for libavc1394.a in ${with_dv_avc1394_tree})
2062     real_dv_avc1394_tree="`cd ${with_dv_avc1394_tree} 2>/dev/null && pwd`"
2063     if test -z "${real_dv_avc1394_tree}"
2064     then
2065       dnl  The given directory can't be found
2066       AC_MSG_RESULT(no)
2067       AC_MSG_ERROR([cannot cd to ${real_dv_avc1394_tree}])
2068     fi
2069     if test -f "${real_dv_avc1394_tree}/src/.libs/libavc1394.a"
2070     then
2071       dnl  Use a custom libavc1394
2072       AC_MSG_RESULT(${real_dv_avc1394_tree}/src/.libs/libavc1394.a)
2073       VLC_ADD_LIBS([access_dv],[-L${real_dv_avc1394_tree}/src/.libs -lavc1394 -lrom1394 -lpthread])
2074       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_avc1394_tree}])
2075     else
2076       dnl  The given libavc1394 wasn't built
2077       AC_MSG_RESULT(no)
2078       AC_MSG_ERROR([cannot find ${real_dv_avc1394_tree}/src/.libs/libavc1394.a, make sure you compiled libavc1394 in ${with_dv_avc1394_tree}])
2079     fi
2080   fi
2081 fi
2082
2083 dnl
2084 dnl dvdread module: check for libdvdread
2085 dnl
2086 AC_ARG_ENABLE(dvdread,
2087 [  --enable-dvdread        dvdread input module (default disabled)])
2088 if test "${enable_dvdread}" != "no"
2089 then
2090   AC_ARG_WITH(dvdread,
2091   [    --with-dvdread=PATH   libdvdread headers and libraries])
2092   AC_ARG_WITH(dvdread-tree,
2093   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
2094
2095   dnl Temporary hack (yeah, sure ;)
2096   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2097       VLC_ADD_LIBS([dvdread],[-ldvdcss])
2098   fi
2099
2100   if test -z "${with_dvdread}"
2101   then
2102     if test -z "${with_dvdread_tree}"
2103     then
2104       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
2105         [ VLC_ADD_PLUGIN([dvdread])
2106           VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
2107         ],[
2108           AC_CHECK_HEADERS(libdvdread/dvd_reader.h,
2109             [ VLC_ADD_PLUGIN([dvdread])
2110               VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
2111             ],[
2112               if test -n "${enable_dvdread}"
2113               then
2114               AC_MSG_ERROR([cannot find libdvdread headers])
2115              fi
2116            ])
2117         ])
2118     else
2119       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
2120       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
2121       if test -z "${real_dvdread_tree}"
2122       then
2123         dnl  The given directory can't be found
2124         AC_MSG_RESULT(no)
2125         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
2126       fi
2127       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
2128       then
2129         dnl  Use a custom libdvdread
2130         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
2131         VLC_ADD_PLUGIN([dvdread])
2132         VLC_ADD_LIBS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LIBS_dvdcss}])
2133         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
2134       else
2135         dnl  The given libdvdread wasn't built
2136         AC_MSG_RESULT(no)
2137         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
2138       fi
2139     fi
2140   else
2141     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
2142     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
2143     then
2144       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
2145       AC_MSG_RESULT(yes)
2146       VLC_ADD_PLUGIN([dvdread])
2147       VLC_ADD_LIBS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LIBS_dvdcss}])
2148       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
2149     else
2150       dnl  No libdvdread could be found, sorry
2151       AC_MSG_RESULT(no)
2152       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
2153     fi
2154   fi
2155 fi
2156
2157 dnl
2158 dnl  libdvdnav plugin
2159 dnl
2160 AC_ARG_ENABLE(dvdnav,
2161   [  --enable-dvdnav         dvdnav input module (default enabled)])
2162 if test "${enable_dvdnav}" != "no"
2163 then
2164   dnl Same hack than dvdread
2165   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2166       VLC_ADD_LIBS([dvdnav],[-ldvdcss])
2167   fi
2168
2169   DVDNAV_PATH="${PATH}"
2170   AC_ARG_WITH(dvdnav-config-path,
2171     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
2172     [ if test "${with_dvdnav_config_path}" != "no"
2173       then
2174         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
2175       fi ])
2176   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
2177   if test "${DVDNAV_CONFIG}" != "no"
2178   then
2179     VLC_ADD_PLUGIN([dvdnav])
2180     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
2181     VLC_ADD_LIBS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
2182   fi
2183 fi
2184
2185 dnl
2186 dnl  Windows DirectShow access module
2187 dnl
2188 AC_ARG_ENABLE(dshow,
2189   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
2190 if test "${enable_dshow}" != "no"
2191 then
2192   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2193   then
2194     AC_LANG_PUSH(C++)
2195       AC_CHECK_HEADERS(dshow.h,
2196       [ VLC_ADD_PLUGIN([dshow])
2197         VLC_ADD_CXXFLAGS([dshow],[])
2198         VLC_ADD_LIBS([dshow],[-lole32 -loleaut32 -luuid]) ])
2199     AC_LANG_POP(C++)
2200   fi
2201 fi
2202
2203 dnl
2204 dnl  Windows DirectShow BDA access module
2205 dnl
2206 AC_ARG_ENABLE(bda,
2207   AS_HELP_STRING([--enable-bda],[Win32 DirectShow BDA support (default
2208                   enabled on Win32)]))
2209 if test "${enable_bda}" != "no"
2210 then
2211   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2212   then
2213       AC_CHECK_HEADERS(dshow.h,
2214       [ VLC_ADD_PLUGIN([bda])
2215         VLC_ADD_CXXFLAGS([bda],[])
2216         VLC_ADD_LIBS([bda],[-lstrmiids -lole32 -loleaut32 -luuid]) ])
2217   fi
2218 fi
2219
2220
2221 dnl
2222 dnl  OpenCV wrapper and example filters
2223 dnl
2224 AC_ARG_ENABLE(opencv,
2225   [  --enable-opencv         OpenCV (computer vision) filter (default disabled)])
2226 if test "${enable_opencv}" = "yes" -a "${CXX}" != "";
2227 then
2228   AC_ARG_WITH(opencv-tree,
2229   [    --with-opencv-tree=PATH opencv tree for linking])
2230     if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2231     then
2232       test -z "${with_opencv_tree}" && AC_MSG_ERROR([You have to specify --with-opencv-tree])
2233       AC_MSG_CHECKING(for opencv in ${with_opencv_tree})
2234       if test -f ${with_opencv_tree}/cv/include/cv.h -a -f ${with_opencv_tree}/cxcore/include/cxcore.h \
2235         -a -f ${with_opencv_tree}/cvaux/include/cvaux.h -a -f ${with_opencv_tree}/otherlibs/highgui/highgui.h
2236       then
2237         AC_MSG_RESULT(yes)
2238         VLC_ADD_PLUGIN([opencv_wrapper])
2239         VLC_ADD_LIBS([opencv_wrapper],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2240         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])
2241         AC_LANG_PUSH(C++)
2242         VLC_ADD_PLUGIN([opencv_example])
2243         VLC_ADD_LIBS([opencv_example],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2244         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])
2245         AC_LANG_POP(C++)
2246           else
2247         dnl  No opencv could be found, sorry
2248         AC_MSG_RESULT(no)
2249         AC_MSG_ERROR([cannot find opencv in ${with_opencv_tree}])
2250           fi
2251     else
2252       PKG_CHECK_MODULES(OPENCV, opencv,
2253         [
2254           VLC_ADD_PLUGIN([opencv_example])
2255           VLC_ADD_PLUGIN([opencv_wrapper])
2256           VLC_ADD_LIBS([opencv_example opencv_wrapper],[${OPENCV_LIBS}])
2257           VLC_ADD_CFLAGS([opencv_wrapper],[${OPENCV_CFLAGS}])
2258           VLC_ADD_CXXFLAGS([opencv_example],[${OPENCV_CFLAGS}])
2259         ],
2260         [AC_MSG_ERROR([libopencv not found!])]
2261       )
2262     fi
2263 fi
2264
2265
2266 dnl
2267 dnl  libsmbclient plugin
2268 dnl
2269 AC_ARG_ENABLE(smb,
2270   [  --enable-smb            smb input module (default enabled)])
2271 if test "${enable_smb}" != "no"; then
2272   AC_CHECK_HEADERS(libsmbclient.h,
2273     [ VLC_ADD_PLUGIN([access_smb])
2274       VLC_ADD_LIBS([access_smb],[-lsmbclient]) ],
2275     [ if test -n "${enable_smb}"; then
2276         AC_MSG_ERROR([cannot find libsmbclient headers])
2277      fi ])
2278   AC_CHECK_MEMBER([struct _SMBCCTX.close_fn],
2279     AC_DEFINE([HAVE__SMBCCTX_CLOSE_FN], 1, [Define if samba has _SMBCCTX.close_fn]),,
2280     [#include <libsmbclient.h>])
2281 fi
2282
2283 dnl
2284 dnl  libdvbpsi ts demux/mux
2285 dnl
2286 AC_ARG_ENABLE(dvbpsi,
2287   [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
2288 have_dvbpsi=no
2289 if test "${enable_dvbpsi}" != "no"
2290 then
2291   AC_ARG_WITH(dvbpsi,
2292   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
2293   AC_ARG_WITH(dvbpsi,
2294   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
2295   case "${with_dvbpsi}" in
2296   ""|yes)
2297     if test -z "${with_dvbpsi_tree}"
2298     then
2299       AC_CHECK_HEADERS(dvbpsi/dr.h,
2300         [ VLC_ADD_PLUGIN([ts])
2301           if test "${enable_sout}" != "no"; then
2302             VLC_ADD_PLUGIN([mux_ts])
2303           fi
2304           VLC_ADD_LIBS([mux_ts ts dvb],[-ldvbpsi])
2305           have_dvbpsi=yes],
2306         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
2307         [#if defined( HAVE_STDINT_H )
2308 #   include <stdint.h>
2309 #elif defined( HAVE_INTTYPES_H )
2310 #   include <inttypes.h>
2311 #endif
2312 #include <dvbpsi/dvbpsi.h>
2313 #include <dvbpsi/descriptor.h>
2314 #include <dvbpsi/pat.h>
2315 #include <dvbpsi/pmt.h>])
2316     else
2317       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
2318       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
2319       if test -z "${real_dvbpsi_tree}"
2320       then
2321         dnl  The given directory can't be found
2322         AC_MSG_RESULT(no)
2323         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
2324       fi
2325       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
2326       then
2327         dnl  Use a custom libdvbpsi
2328         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
2329         VLC_ADD_PLUGIN([ts])
2330         if test "${enable_sout}" != "no"; then
2331           VLC_ADD_PLUGIN([mux_ts])
2332         fi
2333         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
2334         VLC_ADD_LIBS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
2335         have_dvbpsi=yes
2336       else
2337         dnl  The given libdvbpsi wasn't built
2338         AC_MSG_RESULT(no)
2339         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
2340       fi
2341     fi
2342   ;;
2343   no)
2344     dnl  Compile without dvbpsi
2345   ;;
2346   *)
2347     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
2348     if test -z "${with_dvbpsi}"
2349     then
2350       LDFLAGS_test=""
2351       CPPFLAGS_test=""
2352     else
2353       LDFLAGS_test="-L${with_dvbpsi}/lib"
2354       CPPFLAGS_test="-I${with_dvbpsi}/include"
2355     fi
2356     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
2357     AC_CHECK_HEADERS([dvbpsi/dr.h],[
2358       VLC_ADD_PLUGIN([ts])
2359       if test "${enable_sout}" != "no"; then
2360         VLC_ADD_PLUGIN([mux_ts])
2361       fi
2362       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
2363       VLC_ADD_LIBS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
2364       have_dvbpsi=yes
2365     ],[
2366       if test -n "${enable_dvbpsi}"
2367       then
2368         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])
2369       fi
2370     ])
2371     CPPFLAGS="${CPPFLAGS_save}"
2372   ;;
2373   esac
2374   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
2375     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
2376   ], [], [${LIBS_ts}])
2377
2378 fi
2379
2380 dnl
2381 dnl  Video4Linux plugin
2382 dnl
2383 AC_ARG_ENABLE(v4l,
2384   [  --enable-v4l            Video4Linux input support (default disabled)])
2385 if test "${enable_v4l}" = "yes"
2386 then
2387   AC_ARG_WITH(v4l,
2388     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
2389   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
2390   then
2391     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
2392   fi
2393
2394   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
2395   AC_CHECK_HEADERS(linux/videodev.h, [
2396     VLC_ADD_PLUGIN([v4l])
2397   ],[])
2398   CPPFLAGS="${CPPFLAGS_save}"
2399 fi
2400
2401 dnl
2402 dnl  Video4Linux2 plugin
2403 dnl
2404 AC_ARG_ENABLE(v4l2,
2405   [  --enable-v4l2           Video4Linux2 input support (default enabled)])
2406 if test "${enable_v4l2}" != "no"
2407 then
2408   AC_ARG_WITH(v4l2,
2409     [    --with-v4l2=PATH       path to a v4l2-enabled kernel tree],[],[])
2410   if test "${with_v4l2}" != "no" -a -n "${with_v4l2}"
2411   then
2412     VLC_ADD_CPPFLAGS([v4l2],[-I${with_v4l2}/include])
2413   fi
2414
2415   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l2}"
2416   AC_CHECK_HEADERS(linux/videodev2.h, [
2417     VLC_ADD_PLUGIN([v4l2])
2418   ],[])
2419   CPPFLAGS="${CPPFLAGS_save}"
2420 fi
2421
2422 dnl
2423 dnl libv4l2 support for video4linux.
2424 dnl
2425 AC_ARG_ENABLE( libv4l2,
2426   [  --enable-libv4l2        Libv4l2 Video4Linux2 support (default enabled)])
2427 if test "${enable_libv4l2}" != "no" -a "${enable_v4l2}" != "no"
2428 then
2429     PKG_CHECK_MODULES( LIBV4L2, libv4l2, [
2430       VLC_ADD_LDFLAGS([v4l2],[${LIBV4L2_LIBS}])
2431       VLC_ADD_CFLAGS([v4l2],[${LIBV4L2_CFLAGS}])
2432       AC_DEFINE(HAVE_LIBV4L2, 1, Define if libv4l is available)],
2433       AC_MSG_WARN([LibV4L2 support disabled because libv4l2 development headers were not found])
2434     )
2435 fi
2436
2437 dnl
2438 dnl  special access module for Hauppauge PVR cards
2439 dnl
2440 AC_ARG_ENABLE(pvr,
2441   [  --enable-pvr            PVR cards access module (default disabled)])
2442 if test "${enable_pvr}" = "yes"
2443 then
2444   VLC_ADD_PLUGIN([pvr])
2445   AC_ARG_WITH(videodev2,
2446     [  --with-videodev2=FILE   Location of videodev2.h file (default /usr/include/linux/videodev2.h)],[],[])
2447   if test "${with_videodev2}" != "no" -a -n "${with_videodev2}"
2448   then
2449     AC_DEFINE_UNQUOTED(VIDEODEV2_H_FILE, "${with_videodev2}", [Location of videodev2.h])
2450   fi
2451
2452   AC_CACHE_CHECK([for new linux/videodev2.h],
2453       [ac_cv_new_linux_videodev2_h],
2454       [AC_TRY_COMPILE([
2455           #include <sys/types.h>
2456           #   ifdef VIDEODEV2_H_FILE
2457           #   include VIDEODEV2_H_FILE
2458           #   else
2459           #   include <linux/videodev2.h>
2460           #   endif
2461           ],
2462           [struct v4l2_ext_controls ctrls; ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG; ],
2463           ac_cv_new_linux_videodev2_h=yes,
2464           ac_cv_new_linux_videodev2_h=no)])
2465   if test "${ac_cv_new_linux_videodev2_h}" != "no"; then
2466     AC_DEFINE(HAVE_NEW_LINUX_VIDEODEV2_H, 1, [Define if new linux/videodev2.h present])
2467   fi
2468 fi
2469
2470 dnl
2471 dnl  gnomeVFS access module
2472 dnl
2473 AC_ARG_ENABLE(gnomevfs,
2474   [  --enable-gnomevfs       GnomeVFS access module (default disabled)])
2475 if test "${enable_gnomevfs}" = "yes"
2476 then
2477   PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0,
2478     VLC_ADD_LIBS([access_gnomevfs],[$GNOMEVFS_LIBS])
2479     VLC_ADD_CPPFLAGS([access_gnomevfs],[$GNOMEVFS_CPPFLAGS])
2480     VLC_ADD_CFLAGS([access_gnomevfs],[$GNOMEVFS_CFLAGS])
2481     VLC_ADD_PLUGIN([access_gnomevfs]),
2482     AC_MSG_WARN([GnomeVFS support disabled because GnomeVFS development headers not found]))
2483 fi
2484
2485 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
2486 AC_ARG_ENABLE(libcdio,
2487   [  --enable-libcdio        CD input and control library support (default enabled)])
2488
2489 AC_ARG_ENABLE(vcdinfo,
2490   [  --enable-libvcdinfo     VCD information library support (default enabled)])
2491
2492 have_libcdio=no
2493 have_libvcdinfo=no
2494 if test "${enable_libcdio}" != "no"
2495 then
2496   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.78.2,
2497      have_libcdio=yes
2498      AC_DEFINE(HAVE_LIBCDIO, 1,
2499      [Define if you have libcdio 0.78.2 or greater installed]),
2500      [AC_MSG_WARN(CD Reading and information library not found)])
2501
2502   if test "${enable_vcdinfo}" != "no"
2503   then
2504     PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.22,
2505        [have_libvcdinfo=yes
2506        AC_DEFINE(HAVE_VCDINFO, 1,
2507        [Define if you have libvcdinfo 0.7.22 or greater installed])],
2508        [AC_MSG_WARN(VCD information library not found)])
2509   fi
2510 fi
2511
2512 dnl
2513 dnl  VCDX and CDDAX modules
2514 dnl
2515 AC_ARG_ENABLE(cddax,
2516   AS_HELP_STRING([--enable-cddax],[audio CD plugin with CD Text and CD paranoia
2517                   via libcdio (default disabled)]))
2518
2519 AC_ARG_ENABLE(libcddb,
2520   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
2521
2522 if test "${enable_cddax}" = "yes"
2523 then
2524   if test "$have_libcdio" = "yes"
2525   then
2526     AC_DEFINE(HAVE_CDDAX, 1, [Define for the audio CD plugin using libcdio])
2527     VLC_ADD_LIBS([cddax],[$LIBCDIO_LIBS])
2528     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
2529     VLC_ADD_PLUGIN([cddax])
2530     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
2531     VLC_ADD_LIBS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
2532     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
2533   else
2534     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
2535     HAVE_CDDAX=no
2536   fi
2537
2538   if test "$enable_libcddb" != "no"; then
2539     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2540       HAVE_LIBCDDB=yes
2541       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2542       VLC_ADD_LIBS([cddax],[$LIBCDDB_LIBS])
2543       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
2544       ],
2545       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled)
2546       HAVE_LIBCDDB=no])
2547   fi
2548
2549 fi
2550
2551 AC_ARG_ENABLE(vcdx,
2552   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2553
2554 if test "${enable_vcdx}" = "yes"
2555 then
2556   if test "${have_libvcdinfo}" = "yes"
2557   then
2558     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2559     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2560   else
2561     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
2562     HAVE_VCDX=no
2563   fi
2564
2565   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
2566    [VLC_ADD_LIBS([vcdx],[$LIBISO9660_LIBS])
2567     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
2568     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
2569     HAVE_VCDX=no])
2570
2571   if test "$have_libvcdinfo" = "yes"
2572   then
2573     AC_DEFINE(HAVE_VCDX, 1,
2574     [Define for the VCD plugin using libcdio/libvcdinfo])
2575     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2576     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2577     VLC_ADD_PLUGIN([vcdx])
2578   else
2579     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
2580     HAVE_VCDX=no
2581   fi
2582 fi
2583
2584 dnl
2585 dnl  Built-in CD-DA and VCD module
2586 dnl
2587 AC_ARG_ENABLE(cdda,
2588   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
2589
2590 AC_ARG_ENABLE(vcd,
2591   [  --enable-vcd            built-in VCD (default enabled)])
2592
2593 if test "${enable_vcd}" != "no"
2594 then
2595   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2596   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2597     AC_MSG_RESULT(yes)
2598     VLC_ADD_PLUGIN([vcd])
2599     VLC_ADD_PLUGIN([cdda])
2600   ],[
2601     AC_MSG_RESULT(no)
2602   ])
2603
2604   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2605   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2606     AC_MSG_RESULT(yes)
2607     VLC_ADD_PLUGIN([vcd])
2608     VLC_ADD_PLUGIN([cdda])
2609     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2610   ],[
2611     AC_MSG_RESULT(no)
2612   ])
2613
2614   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2615   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2616     AC_MSG_RESULT(yes)
2617     VLC_ADD_PLUGIN([vcd])
2618     VLC_ADD_PLUGIN([cdda])
2619     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2620   ],[
2621     AC_MSG_RESULT(no)
2622   ])
2623
2624   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2625   then
2626     VLC_ADD_PLUGIN([vcd])
2627     VLC_ADD_PLUGIN([cdda])
2628   fi
2629
2630   if test "${SYS}" = "darwin"
2631   then
2632     VLC_ADD_PLUGIN([vcd])
2633     VLC_ADD_PLUGIN([cdda])
2634     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-Wl,-framework,IOKit,-framework,CoreFoundation])
2635     VLC_ADD_LIBS([vcdx cddax cdda],[-liconv])
2636   fi
2637
2638   if test "$enable_libcddb" != "no"; then
2639     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2640       HAVE_LIBCDDB=yes
2641       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2642       VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2643       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2644       ],:
2645       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled)
2646       HAVE_LIBCDDB=no])
2647   fi
2648 fi
2649
2650 dnl
2651 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2652 dnl
2653 AC_ARG_ENABLE(dvb,
2654   [  --enable-dvb            DVB-S/T/C card support (default enabled)])
2655
2656 if test "${enable_dvb}" != "no"
2657 then
2658     AS_IF([test "${have_dvbpsi}" = "yes" ],[
2659     AC_ARG_WITH(dvb,
2660      [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
2661      if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2662      then
2663        VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2664      fi
2665      CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2666      AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2667      VLC_ADD_PLUGIN([dvb])
2668      ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2669      CPPFLAGS="${CPPFLAGS_save}"
2670    ],[
2671      AC_MSG_WARN([the dvb access module requires libdvbpsi])
2672     ])
2673 fi
2674
2675 dnl
2676 dnl  Screen capture module
2677 dnl
2678 AC_ARG_ENABLE(screen,
2679   [  --enable-screen         Screen capture support (default enabled)])
2680 if test "${enable_screen}" != "no"; then
2681   if test "${SYS}" = "darwin"; then
2682     AC_CHECK_HEADERS(OpenGL/gl.h, [
2683       AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2684         VLC_ADD_PLUGIN([screen])
2685         VLC_ADD_LDFLAGS([screen],[-Wl,-framework,OpenGL,-framework,ApplicationServices])
2686       ])
2687     ])
2688   elif test "${SYS}" = "mingw32"; then
2689     VLC_ADD_PLUGIN([screen])
2690     VLC_ADD_LIBS([screen],[-lgdi32])
2691   elif test "${SYS}" = "mingwce"; then
2692     CPPFLAGS="${CPPFLAGS_save}"
2693   elif test "${SYS}" = "beos"; then
2694     VLC_ADD_PLUGIN([screen])
2695     VLC_ADD_CXXFLAGS([screen],[])
2696     VLC_ADD_LIBS([screen],[-lbe])
2697   else
2698     CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
2699     AC_CHECK_HEADERS(X11/Xlib.h, [
2700       VLC_ADD_PLUGIN([screen])
2701       VLC_ADD_LIBS([screen],[${X_LIBS} ${X_PRE_LIBS} -lX11])
2702       VLC_ADD_CPPFLAGS([screen],[${X_CFLAGS}])
2703     ])
2704     CPPFLAGS="${CPPFLAGS_save}"
2705   fi
2706 fi
2707
2708 dnl
2709 dnl  ipv6 plugin - not for QNX yet
2710 dnl
2711 have_ipv6=no
2712 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2713   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2714 ])
2715
2716 AS_IF([test "${have_ipv6}" = "yes"], [
2717   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2718
2719
2720 AC_CHECK_FUNCS(inet_ntop,[
2721   AC_DEFINE(HAVE_INET_NTOP, 1, [Define to 1 if you have inet_ntop().])])
2722
2723
2724 dnl
2725 dnl  ogg demux plugin
2726 dnl
2727 AC_ARG_ENABLE(ogg,
2728   [  --enable-ogg            Ogg demux support (default enabled)])
2729 if test "${enable_ogg}" != "no"
2730 then
2731   AC_ARG_WITH(ogg-tree,
2732   [    --with-ogg-tree=PATH  ogg tree for static linking])
2733   if test -n "${with_ogg_tree}"
2734   then
2735     AC_MSG_CHECKING(for libogg.a in ${with_ogg_tree})
2736     real_ogg_tree="`cd ${with_ogg_tree} 2>/dev/null && pwd`"
2737     if test -z "${real_ogg_tree}"
2738     then
2739       dnl  The given directory can't be found
2740       AC_MSG_RESULT(no)
2741       AC_MSG_ERROR([cannot cd to ${with_ogg_tree}])
2742     fi
2743     if test -f "${real_ogg_tree}/src/.libs/libogg.a"
2744     then
2745       dnl  Use a custom ogg
2746       AC_MSG_RESULT(${real_ogg_tree}/src/.libs/libogg.a)
2747       VLC_ADD_PLUGIN([ogg])
2748       if test "${enable_sout}" != "no"; then
2749         VLC_ADD_PLUGIN([mux_ogg])
2750       fi
2751       VLC_ADD_LIBS([ogg mux_ogg speex vorbis],[${real_ogg_tree}/src/.libs/libogg.a])
2752       VLC_ADD_CFLAGS([ogg mux_ogg speex vorbis],[-I${real_ogg_tree}/include])
2753     else
2754       dnl  The given ogg wasn't built
2755       AC_MSG_RESULT(no)
2756       AC_MSG_ERROR([cannot find ${real_ogg_tree}/src/.libs/libogg.a, make sure you compiled ogg in ${with_ogg_tree}])
2757     fi
2758   else
2759     AC_CHECK_HEADERS(ogg/ogg.h, [
2760       AC_CHECK_LIB( ogg, oggpack_read, [
2761         VLC_ADD_PLUGIN([ogg])
2762         if test "${enable_sout}" != "no"; then
2763           VLC_ADD_PLUGIN([mux_ogg])
2764         fi
2765         VLC_ADD_LIBS([ogg mux_ogg],[-logg])])
2766      ],[])
2767   fi
2768 fi
2769
2770 dnl
2771 dnl  matroska demux plugin
2772 dnl
2773 AC_ARG_ENABLE(mkv,
2774   [  --enable-mkv            Matroska demux support (default enabled)])
2775 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2776   AC_LANG_PUSH(C++)
2777   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2778     AC_MSG_CHECKING(for libebml version >= 0.7.7)
2779     AC_EGREP_CPP(yes,
2780       [#include <ebml/EbmlVersion.h>
2781        #ifdef LIBEBML_VERSION
2782        #if LIBEBML_VERSION >= 0x000706
2783        yes
2784        #endif
2785        #endif],
2786       [AC_MSG_RESULT([yes])
2787         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2788           AC_MSG_CHECKING(for libmatroska version >= 0.8.0)
2789           AC_EGREP_CPP(yes,
2790             [#include <matroska/KaxVersion.h>
2791              #ifdef LIBMATROSKA_VERSION
2792              #if LIBMATROSKA_VERSION >= 0x000705
2793              yes
2794              #endif
2795              #endif],
2796             [AC_MSG_RESULT([yes])
2797               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2798               VLC_ADD_CXXFLAGS([mkv],[])
2799               if test "${SYS}" = "darwin"; then
2800                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2801               fi
2802               AC_CHECK_LIB(ebml_pic, main, [
2803                 VLC_ADD_PLUGIN([mkv])
2804                 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2805               ],
2806                 AC_CHECK_LIB(ebml, main, [
2807                   VLC_ADD_PLUGIN([mkv])
2808                   VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2809                 ])
2810               )
2811             ],
2812             [AC_MSG_RESULT([no])
2813               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.])
2814           ])
2815         ])
2816       ],
2817       [AC_MSG_RESULT([no])
2818         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.])
2819     ])
2820   ])
2821   AC_LANG_POP(C++)
2822 fi
2823
2824 dnl
2825 dnl  modplug demux plugin
2826 dnl
2827 AC_ARG_ENABLE(mod,
2828   [  --enable-mod            Mod demux support (default enabled)])
2829 if test "${enable_mod}" != "no"
2830 then
2831   AC_ARG_WITH(mod-tree,
2832   [    --with-mod-tree=PATH mod tree for static linking])
2833   if test -n "${with_mod_tree}"
2834   then
2835     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2836     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2837     if test -z "${real_mod_tree}"
2838     then
2839       dnl  The given directory can't be found
2840       AC_MSG_RESULT(no)
2841       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2842     fi
2843     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2844     then
2845       dnl  Use a custom mod
2846       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2847       VLC_ADD_PLUGIN([mod])
2848       VLC_ADD_LIBS([mod],[${real_mod_tree}/src/.libs/libmodplug.a -lstdc++])
2849       VLC_ADD_CXXFLAGS([mod],[-I${real_mod_tree}/include])
2850     else
2851       dnl  The given mod wasn't built
2852       AC_MSG_RESULT(no)
2853       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2854     fi
2855   else
2856     AC_CHECK_HEADERS(libmodplug/modplug.h, [
2857       VLC_ADD_PLUGIN([mod])
2858       VLC_ADD_CXXFLAGS([mod],[])
2859       VLC_ADD_LIBS([mod],[-lmodplug -lstdc++])])
2860   fi
2861 fi
2862
2863 dnl
2864 dnl  mpc demux plugin
2865 dnl
2866 AC_ARG_ENABLE(mpc,
2867   [  --enable-mpc            Mpc demux support (default enabled)])
2868 if test "${enable_mpc}" != "no"
2869 then
2870   AC_CHECK_HEADERS(mpcdec/mpcdec.h, [
2871     VLC_ADD_PLUGIN([mpc])
2872     VLC_ADD_LIBS([mpc],[-lmpcdec])])
2873 fi
2874
2875 dnl
2876 dnl  game music emu demux plugin
2877 dnl
2878 AC_ARG_ENABLE(gme,
2879   [  --enable-gme            Game Music Emu demux support (default enabled)])
2880 if test "${enable_gme}" != "no" -a "${CXX}" != "";
2881 then
2882   AC_LANG_PUSH(C++)
2883   AC_ARG_WITH(gme-tree,
2884   [    --with-gme-tree=PATH gme tree for static linking])
2885   if test -n "${with_gme_tree}"
2886   then
2887     AC_MSG_CHECKING(for libgme.a in ${with_mod_tree})
2888     real_gme_tree="`cd ${with_gme_tree} 2>/dev/null && pwd`"
2889     if test -z "${real_gme_tree}"
2890     then
2891       dnl  The given directory can't be found
2892       AC_MSG_RESULT(no)
2893       AC_MSG_ERROR([cannot cd to ${with_gme_tree}])
2894     fi
2895     if test -f "${real_gme_tree}/gme/libgme.a"
2896     then
2897       dnl  Use a custom gme
2898       AC_MSG_RESULT(${real_gme_tree}/gme/libgme.a)
2899       VLC_ADD_PLUGIN([gme])
2900       VLC_ADD_LIBS([gme],[${real_gme_tree}/gme/libgme.a])
2901       VLC_ADD_CXXFLAGS([gme],[-I${real_gme_tree}/gme])
2902     else
2903       dnl  The given gme wasn't built
2904       AC_MSG_RESULT(no)
2905       AC_MSG_ERROR([cannot find ${real_mod_tree}/gme/libgme.a, make sure you compiled gme in ${with_gme_tree}])
2906     fi
2907   else
2908       AC_MSG_WARN([only static linking is available, you must provide a gme-tree])
2909   fi
2910   AC_LANG_POP(C++)
2911 fi
2912
2913 dnl
2914 dnl  Codec plugins
2915 dnl
2916
2917 AC_ARG_WITH(,[Codec plugins:])
2918
2919 dnl
2920 dnl wmafixed plugin
2921 dnl
2922 AC_ARG_ENABLE(wma-fixed,
2923   [  --enable-wma-fixed      libwma-fixed module (default disabled)])
2924 if test "${enable_wma_fixed}" = "yes"
2925 then
2926   VLC_ADD_PLUGIN([wma_fixed])
2927 fi
2928
2929 dnl
2930 dnl shine fixed point mp3 encoder
2931 dnl
2932 AC_ARG_ENABLE(shine,
2933   [  --enable-shine          shine mp3 encoding module (default disabled)])
2934 if test "${enable_shine}" = "yes"
2935 then
2936   VLC_ADD_PLUGIN([shine])
2937 fi
2938
2939 dnl
2940 dnl  mad plugin
2941 dnl
2942 AC_ARG_ENABLE(mad,
2943   [  --enable-mad            libmad module (default enabled)])
2944 if test "${enable_mad}" != "no"
2945 then
2946   AC_ARG_WITH(mad,
2947     [    --with-mad=PATH       path to libmad],[],[])
2948   if test "${with_mad}" != "no" -a -n "${with_mad}"
2949   then
2950     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2951     VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2952   fi
2953
2954   AC_ARG_WITH(mad-tree,
2955     [    --with-mad-tree=PATH   mad tree for static linking],[],[])
2956   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2957   then
2958     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2959     if test -z "${real_mad_tree}"
2960     then
2961       dnl  The given directory can't be found
2962       AC_MSG_RESULT(no)
2963       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2964     fi
2965     dnl  Use a custom libmad
2966     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2967     if test -f ${real_mad_tree}/mad.h
2968     then
2969       AC_MSG_RESULT(yes)
2970       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2971       VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2972       LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2973       AC_CHECK_LIB(mad, mad_bit_init, [
2974         VLC_ADD_PLUGIN([mpgatofixed32])
2975         VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2976         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2977       ],[])
2978       LDFLAGS="${LDFLAGS_save}"
2979     else
2980       AC_MSG_RESULT(no)
2981       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2982     fi
2983   else
2984     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2985     LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2986     AC_CHECK_HEADERS(mad.h, ,
2987       [ 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.]) ])
2988     AC_CHECK_LIB(mad, mad_bit_init, [
2989       VLC_ADD_PLUGIN([mpgatofixed32])
2990       VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2991       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2992     CPPFLAGS="${CPPFLAGS_save}"
2993     LDFLAGS="${LDFLAGS_save}"
2994   fi
2995 fi
2996
2997 dnl
2998 dnl   libid3tag support (FIXME!!! doesn't work with new input)
2999 dnl
3000 AC_ARG_ENABLE( id3tag,
3001 [  --disable-id3tag        id3tag metadata reader plugin (default disabled)])
3002 AS_IF([test "${enable_id3tag}" = "yes"], [
3003   AC_CHECK_HEADERS(id3tag.h, [
3004     if test "${have_zlib}" = "yes"
3005       VLC_ADD_LIBS([id3tag],[-lid3tag -lz])
3006       VLC_ADD_PLUGIN([id3tag])
3007     fi
3008   ])
3009 ])
3010
3011 dnl
3012 dnl  avcodec decoder/encoder plugin
3013 dnl
3014
3015 if test "${with_ffmpeg_tree}"
3016 then
3017   AC_MSG_WARN([--with-ffmpeg-tree is deprecated. Use PKG_CONFIG_PATH instead.])
3018 fi
3019
3020 AC_ARG_ENABLE(avcodec,
3021 [  --enable-avcodec        libavcodec codec (default enabled)])
3022 if test "${enable_avcodec}" != "no"
3023 then
3024   PKG_CHECK_MODULES(AVCODEC,[libavcodec libavutil],
3025     [
3026       VLC_SAVE_FLAGS
3027       CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
3028       CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
3029       AC_CHECK_HEADERS(libavcodec/avcodec.h ffmpeg/avcodec.h)
3030       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
3031       VLC_ADD_PLUGIN([avcodec])
3032       VLC_ADD_LIBS([avcodec],[$AVCODEC_LIBS])
3033       VLC_ADD_CFLAGS([avcodec],[$AVCODEC_CFLAGS])
3034       VLC_RESTORE_FLAGS
3035     ],[
3036       AC_MSG_FAILURE([Could not find libavcodec or libavutil. Use --disable-avcodec to ignore this error.])
3037   ])
3038 fi
3039
3040 dnl
3041 dnl  avformat demuxer/muxer plugin
3042 dnl
3043
3044 AC_ARG_ENABLE(avformat,
3045 [  --enable-avformat       libavformat containers (default enabled)])
3046 if test "${enable_avformat}" != "no"
3047 then
3048   PKG_CHECK_MODULES(AVFORMAT,[libavformat libavutil],
3049     [
3050       VLC_SAVE_FLAGS
3051       CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
3052       CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
3053       AC_CHECK_HEADERS(libavformat/avformat.h ffmpeg/avformat.h)
3054       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
3055       VLC_ADD_PLUGIN([avformat])
3056       VLC_ADD_LIBS([avformat],[$AVFORMAT_LIBS])
3057       VLC_ADD_CFLAGS([avformat],[$AVFORMAT_CFLAGS])
3058       VLC_RESTORE_FLAGS
3059     ],[
3060       AC_MSG_FAILURE([Could not find libavformat or libavutil. Use --disable-avformat to ignore this error.])
3061   ])
3062 fi
3063
3064 dnl
3065 dnl  swscale image scaling and conversion plugin
3066 dnl
3067
3068 AC_ARG_ENABLE(swscale,
3069   AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
3070                   (default enabled)]))
3071 if test "${enable_swscale}" != "no"
3072 then
3073   PKG_CHECK_MODULES(SWSCALE,[libswscale],
3074     [
3075       VLC_SAVE_FLAGS
3076       CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
3077       CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
3078       AC_CHECK_HEADERS(libswscale/swscale.h ffmpeg/swscale.h)
3079       VLC_ADD_PLUGIN([swscale])
3080       VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
3081       VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
3082       VLC_RESTORE_FLAGS
3083     ],[
3084       AC_MSG_WARN([Could not find libswscale. Trying to enable imgresample.])
3085       enable_imgresample=yes
3086   ])
3087 fi
3088
3089 dnl
3090 dnl  avcodec (deprecated API) image scaling and conversion plugin
3091 dnl
3092 dnl  This is build as a seperate module than the avcodec one to prevent
3093 dnl  stupid run time library load errors from disabling most codecs
3094 dnl  from VLC.
3095 dnl
3096
3097 AC_ARG_ENABLE(imgresample,
3098   AS_HELP_STRING([--enable-imgresample],[deprecated libavcodec image scaling
3099                   and conversion (default disabled)]))
3100 if test "${enable_imgresample}" = "yes"
3101 then
3102   PKG_CHECK_MODULES(IMGRESAMPLE,[libavcodec],
3103     [
3104       VLC_SAVE_FLAGS
3105       CPPFLAGS="${CPPFLAGS} ${IMGRESAMPLE_CFLAGS}"
3106       CFLAGS="${CFLAGS} ${IMGRESAMPLE_CFLAGS}"
3107       AC_CHECK_HEADERS(libavcodec/avcodec.h ffmpeg/avcodec.h)
3108       AC_CHECK_LIB(avcodec,img_resample,
3109         [
3110           VLC_ADD_PLUGIN([imgresample])
3111           VLC_ADD_LIBS([imgresample],[$IMGRESAMPLE_LIBS])
3112           VLC_ADD_CFLAGS([imgresample],[$IMGRESAMPLE_CFLAGS])
3113         ],[
3114           AC_MSG_WARN([Could not find img_resample in libavcodec.])
3115           if test "${enable_swscale}" != "no"
3116           then
3117             AC_MSG_FAILURE([swscale (and its fallback module imgresample) support will be missing. Use --disable-swscale to ignore this error. (This basically means that you will be missing any good software scaling module and some video chroma converters.)])
3118           fi
3119         # That sed hack to add -rpath is kind of ugly but at least it fixes
3120         # detection when linking against a shared libavcodec with
3121         # a libavutil not in one of your ld.so.conf directories.
3122         # (for example a local install)
3123         ],[${IMGRESAMPLE_LIBS} `echo ${IMGRESAMPLE_LIBS}|sed s'/-L/-Wl,-rpath=/'`])
3124       VLC_RESTORE_FLAGS
3125     ],[
3126       AC_MSG_WARN([Could not find libavcodec.])
3127   ])
3128 fi
3129
3130 dnl
3131 dnl  postproc plugin
3132 dnl
3133
3134 AC_ARG_ENABLE(postproc,
3135 [  --enable-postproc       libpostproc image post-processing (default enabled)])
3136 if test "${enable_postproc}" != "no"
3137 then
3138   PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
3139     [
3140       VLC_SAVE_FLAGS
3141       CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
3142       CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
3143       AC_CHECK_HEADERS(libpostproc/postproc.h postproc/postprocess.h)
3144       VLC_ADD_PLUGIN([postproc])
3145       VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS])
3146       VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS])
3147       VLC_RESTORE_FLAGS
3148     ],[
3149       AC_MSG_ERROR([Could not find libpostproc.])
3150   ])
3151 fi
3152
3153 dnl
3154 dnl  faad decoder plugin
3155 dnl
3156 AC_ARG_ENABLE(faad,
3157 [  --enable-faad           faad codec (default disabled)])
3158 if test "${enable_faad}" = "yes"
3159 then
3160   AC_ARG_WITH(faad-tree,
3161   [    --with-faad-tree=PATH faad tree for static linking])
3162   if test -n "${with_faad_tree}"
3163   then
3164     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
3165     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
3166     if test -z "${real_faad_tree}"
3167     then
3168       dnl  The given directory can't be found
3169       AC_MSG_RESULT(no)
3170       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
3171     fi
3172     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
3173     then
3174       dnl  Use a custom faad
3175       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
3176       VLC_ADD_PLUGIN([faad])
3177       VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
3178       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
3179     else
3180       dnl  The given libfaad wasn't built
3181       AC_MSG_RESULT(no)
3182       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
3183     fi
3184   else
3185     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
3186     LDFLAGS="${LDFLAGS_save} ${LIBS_faad}"
3187     AC_CHECK_HEADERS(faad.h, ,
3188       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
3189     AC_CHECK_LIB(faad, faacDecOpen, [
3190       VLC_ADD_PLUGIN([faad])
3191       VLC_ADD_LIBS([faad],[-lfaad]) ],
3192       AC_CHECK_LIB(faad, NeAACDecOpen, [
3193         VLC_ADD_PLUGIN([faad])
3194         VLC_ADD_LIBS([faad],[-lfaad]) ],
3195         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
3196     LDFLAGS="${LDFLAGS_save}"
3197     CPPFLAGS="${CPPFLAGS_save}"
3198   fi
3199 fi
3200
3201 dnl
3202 dnl twolame encoder plugin
3203 dnl
3204 AC_ARG_ENABLE(twolame,
3205 [  --enable-twolame        twolame codec (default disabled)])
3206 if test "${enable_twolame}" = "yes"
3207 then
3208   AC_ARG_WITH(twolame-tree,
3209   [    --with-twolame-tree=PATH twolame tree for static linking])
3210   if test -n "${with_twolame_tree}"
3211   then
3212     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
3213     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
3214     if test -z "${real_twolame_tree}"
3215     then
3216       dnl  The given directory can't be found
3217       AC_MSG_RESULT(no)
3218       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
3219     fi
3220     if test -f "${real_twolame_tree}/libtwolame/.libs/libtwolame.a"
3221     then
3222       dnl  Use a custom twolame
3223       AC_MSG_RESULT(${real_twolame_tree}/libtwolame/.libs/libtwolame.a)
3224       VLC_ADD_PLUGIN([twolame])
3225       VLC_ADD_LIBS([twolame],[${real_twolame_tree}/libtwolame/.libs/libtwolame.a])
3226       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/libtwolame -DLIBTWOLAME_STATIC])
3227     else
3228       dnl  The given libtwolame wasn't built
3229       AC_MSG_RESULT(no)
3230       AC_MSG_ERROR([cannot find ${real_twolame_tree}/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
3231     fi
3232   else
3233     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame} -DLIBTWOLAME_STATIC"
3234     LDFLAGS="${LDFLAGS_save} ${LIBS_twolame}"
3235     AC_CHECK_HEADERS(twolame.h, ,
3236       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
3237     AC_CHECK_LIB(twolame, twolame_init, [
3238       VLC_ADD_PLUGIN([twolame])
3239       VLC_ADD_CPPFLAGS([twolame],[-DLIBTWOLAME_STATIC])
3240       VLC_ADD_LIBS([twolame],[-ltwolame]) ],
3241         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
3242     LDFLAGS="${LDFLAGS_save}"
3243     CPPFLAGS="${CPPFLAGS_save}"
3244   fi
3245 fi
3246
3247 dnl
3248 dnl  QuickTime plugin
3249 dnl
3250 AC_ARG_ENABLE(quicktime,
3251   [  --enable-quicktime      QuickTime module (default enabled on MacOS X)])
3252 if test "${enable_quicktime}" != "no" &&
3253   (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
3254 then
3255   if test "${SYS}" = "mingw32"; then
3256     VLC_ADD_PLUGIN([quicktime])
3257   else
3258   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
3259     [ VLC_ADD_PLUGIN([quicktime])
3260       VLC_ADD_LDFLAGS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
3261     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
3262   fi
3263 fi
3264
3265 dnl
3266 dnl  Real plugin
3267 dnl
3268 AC_ARG_ENABLE(real,
3269   [  --enable-real           Real media module (default disabled)])
3270 if test "${enable_real}" = "yes"; then
3271   VLC_ADD_PLUGIN([realaudio])
3272   VLC_ADD_PLUGIN([realvideo])
3273 fi
3274
3275 dnl
3276 dnl  Real RTSP plugin
3277 dnl
3278 AC_ARG_ENABLE(realrtsp,
3279   [  --enable-realrtsp       Real RTSP module (default disabled)])
3280 if test "${enable_realrtsp}" = "yes"; then
3281   VLC_ADD_PLUGIN([access_realrtsp])
3282 fi
3283
3284 AC_ARG_ENABLE(libsysfs,
3285   [  --enable-libsysfs       Get user key from firewire connected iPod via libsysfs (default enabled)])
3286
3287 AS_IF([test "${enable_libsysfs}" != "no"],[
3288   AC_CHECK_HEADERS(sysfs/libsysfs.h, [
3289     VLC_ADD_LIBS([mp4 mkv],[-lsysfs])
3290   ] )
3291 ])
3292
3293 dnl
3294 dnl skins2 module
3295 dnl
3296 AC_ARG_ENABLE(libtar,
3297   [  --enable-libtar         libtar support for skins2 (default enabled)])
3298
3299 AS_IF([test "${enable_libtar}" != "no"],[
3300   AC_CHECK_HEADERS(libtar.h, [
3301     VLC_ADD_LIBS([skins2],[-ltar])
3302   ] )
3303 ])
3304
3305 dnl
3306 dnl A52/AC3 decoder plugin
3307 dnl
3308 AC_ARG_ENABLE(a52,
3309   [  --enable-a52            A/52 support with liba52 (default enabled)])
3310 if test "${enable_a52}" != "no"
3311 then
3312   AC_ARG_WITH(a52,
3313     [    --with-a52=PATH       a52 headers and libraries])
3314   AC_ARG_WITH(a52-tree,
3315     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
3316   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
3317   then
3318     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
3319     if test -z "${real_a52_tree}"
3320     then
3321       dnl  The given directory can't be found
3322       AC_MSG_RESULT(no)
3323       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
3324     fi
3325     dnl  Use a custom a52dec
3326     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
3327     if test -f ${real_a52_tree}/include/a52.h
3328     then
3329       AC_MSG_RESULT(yes)
3330       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
3331       VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
3332       LDFLAGS="${LDFLAGS_save} ${LIBS_a52tofloat32}"
3333       AC_CHECK_LIB(a52, a52_free, [
3334         VLC_ADD_PLUGIN([a52tofloat32])
3335         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
3336         VLC_ADD_LIBS([a52tofloat32],[-la52])
3337         ],[
3338         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
3339         then
3340           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
3341         else
3342           AC_MSG_ERROR([the specified tree hasn't been compiled])
3343         fi
3344       ])
3345       LDFLAGS="${LDFLAGS_save}"
3346     else
3347       AC_MSG_RESULT(no)
3348       AC_MSG_ERROR([the specified tree doesn't have a52.h])
3349     fi
3350   else
3351     if test -z "${with_a52}"
3352     then
3353       LDFLAGS_test=""
3354       CPPFLAGS_test=""
3355     else
3356       LDFLAGS_test="-L${with_a52}/lib"
3357       CPPFLAGS_test="-I${with_a52}/include"
3358     fi
3359     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
3360     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
3361     AC_CHECK_HEADERS(a52dec/a52.h, [
3362       AC_CHECK_LIB(a52, a52_free, [
3363         VLC_ADD_PLUGIN([a52tofloat32])
3364         VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
3365         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
3366       ],[
3367         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.])
3368         ])
3369     ],[
3370       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.])
3371     ])
3372     CPPFLAGS="${CPPFLAGS_save}"
3373     LDFLAGS="${LDFLAGS_save}"
3374   fi
3375 fi
3376
3377 AC_ARG_WITH(a52-fixed,
3378       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
3379       [
3380         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
3381
3382 dnl
3383 dnl DTS Coherent Acoustics decoder plugin
3384 dnl
3385 AS_IF([test "x${enable_dts}" != "x"], [
3386   AC_MSG_ERROR([--enable-dts is obsolete. Please use libdca and --enable-dca.])
3387 ])
3388 AS_IF([test "x${with_dts_tree}" != "x"], [
3389   AC_MSG_ERROR([--with-dts-tree is obsolete. Please use libdca and --with-dca-tree.])
3390 ])
3391
3392 AC_ARG_ENABLE(dca,
3393   AS_HELP_STRING([--enable-dca],[DTS Coherent Acoustics support with libdca
3394                   (default enabled)]))
3395 AS_IF([test "${enable_dca}" != "no"], [
3396   AC_ARG_WITH(dca-tree,
3397     [    --with-dca-tree=PATH  libdca tree for static linking],,
3398     [with_dca_tree="no"])
3399   AS_IF([test "${with_dca_tree}" != "no"], [
3400     real_dca_tree="`cd ${with_dca_tree} 2>/dev/null && pwd`"
3401     AS_IF([test -z "${real_dca_tree}"], [
3402       dnl  The given directory can't be found
3403       AC_MSG_RESULT(no)
3404       AC_MSG_ERROR([${with_dca_tree} directory doesn't exist])
3405     ])
3406     dnl  Use a custom libdca
3407     AC_MSG_CHECKING(for libdca in ${real_dca_tree})
3408     AS_IF([test -f "${real_dca_tree}/libdca/.libs/libdca.a"], [
3409       AC_MSG_RESULT(yes)
3410       VLC_ADD_LIBS([dtstofloat32],[${real_dca_tree}/libdca/.libs/libdca.a])
3411       AS_IF([test -f "${real_dca_tree}/include/dca.h"], [
3412         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/include])
3413       ], [
3414         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/../include])
3415       ])
3416     ], [
3417       AC_MSG_RESULT(no)
3418       AC_MSG_ERROR([the specified tree doesn't have libdca/.libs/libdca.a])
3419     ])
3420   ], [
3421     PKG_CHECK_MODULES([DCA], [libdca >= 0.0.5], [
3422       VLC_ADD_PLUGIN([dtstofloat32])
3423       VLC_ADD_CPPFLAGS([dtstofloat32], [${DCA_CFLAGS}])
3424       VLC_ADD_LIBS([dtstofloat32], [${DCA_LIBS}])
3425     ], [
3426       AS_IF([test "x${enable_dca}" != "x"], [
3427         AC_MSG_ERROR([${DCA_PKG_ERRORS}])
3428       ])
3429     ])
3430   ])
3431 ])
3432
3433 dnl
3434 dnl  Flac plugin
3435 dnl
3436 AC_ARG_ENABLE(flac,
3437   [  --enable-flac           libflac decoder/encoder support (default disabled)])
3438 if test "${enable_flac}" = "yes"
3439 then
3440   AC_ARG_WITH(flac-tree,
3441   [    --with-flac-tree=PATH flac tree for static linking])
3442   if test -n "${with_flac_tree}"
3443   then
3444     AC_MSG_CHECKING(for libFLAC.a in ${with_flac_tree})
3445     real_flac_tree="`cd ${with_flac_tree} 2>/dev/null && pwd`"
3446     if test -z "${real_flac_tree}"
3447     then
3448       dnl  The given directory can't be found
3449       AC_MSG_RESULT(no)
3450       AC_MSG_ERROR([cannot cd to ${with_flac_tree}])
3451     fi
3452     if test -f "${real_flac_tree}/src/libFLAC/.libs/libFLAC.a"
3453     then
3454       dnl  Use a custom flac
3455       AC_MSG_RESULT(${real_flac_tree}/src/libFLAC/.libs/libFLAC.a)
3456       VLC_ADD_LIBS([flac],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a])
3457       VLC_ADD_CFLAGS([flac],[-I${real_flac_tree}/include])
3458       AC_DEFINE(HAVE_FLAC_STREAM_DECODER_H, 1, [Define if you have FLAC])
3459     else
3460       dnl  The given flac wasn't built
3461       AC_MSG_RESULT(no)
3462       AC_MSG_ERROR([cannot find ${real_flac_tree}/src/libFLAC/.libs/libFLAC.a, make sure you compiled flac in ${with_flac_tree}])
3463     fi
3464   else
3465     AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
3466       VLC_ADD_LIBS([flac],[-lFLAC -logg])
3467      ],[])
3468   fi
3469 fi
3470
3471 dnl
3472 dnl  Libmpeg2 plugin
3473 dnl
3474 AC_ARG_ENABLE(libmpeg2,
3475   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
3476 if test "${enable_libmpeg2}" != "no"
3477 then
3478   AC_ARG_WITH(libmpeg2-tree,
3479   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
3480   AS_IF([test -n "${with_libmpeg2_tree}"],[
3481     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
3482     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
3483     if test -z "${real_libmpeg2_tree}"
3484     then
3485       dnl  The given directory can't be found
3486       AC_MSG_RESULT(no)
3487       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
3488     fi
3489     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
3490     then
3491       dnl  Use a custom libmpeg2
3492       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
3493       VLC_ADD_PLUGIN([libmpeg2])
3494       VLC_ADD_LIBS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
3495       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
3496     else
3497       dnl  The given libmpeg2 wasn't built
3498       AC_MSG_RESULT(no)
3499       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
3500     fi
3501   ],[
3502    PKG_CHECK_MODULES(LIBMPEG2,[libmpeg2 > 0.3.2],[
3503           VLC_ADD_PLUGIN([libmpeg2])
3504           VLC_ADD_LIBS([libmpeg2], $LIBMPEG2_LIBS)
3505           VLC_ADD_CFLAGS([libmpeg2], $LIBMPEG2_CFLAGS)
3506        ],
3507       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.]))
3508   ])
3509 fi
3510
3511 dnl
3512 dnl  Vorbis plugin
3513 dnl
3514 AC_ARG_ENABLE(vorbis,
3515   [  --enable-vorbis         Vorbis decoder support (default enabled)])
3516 if test "${enable_vorbis}" != "no"
3517 then
3518   AC_ARG_WITH(vorbis-tree,
3519   [    --with-vorbis-tree=PATH vorbis tree for static linking])
3520   if test -n "${with_vorbis_tree}"
3521   then
3522     AC_MSG_CHECKING(for libvorbis.a in ${with_vorbis_tree})
3523     real_vorbis_tree="`cd ${with_vorbis_tree} 2>/dev/null && pwd`"
3524     if test -z "${real_vorbis_tree}"
3525     then
3526       dnl  The given directory can't be found
3527       AC_MSG_RESULT(no)
3528       AC_MSG_ERROR([cannot cd to ${with_vorbis_tree}])
3529     fi
3530     if test -f "${real_vorbis_tree}/lib/.libs/libvorbis.a"
3531     then
3532       dnl  Use a custom vorbis
3533       AC_MSG_RESULT(${real_vorbis_tree}/lib/.libs/libvorbis.a)
3534       VLC_ADD_PLUGIN([vorbis])
3535       VLC_ADD_LIBS([vorbis],[${real_vorbis_tree}/lib/.libs/libvorbis.a ${real_vorbis_tree}/lib/.libs/libvorbisenc.a])
3536       VLC_ADD_CFLAGS([vorbis],[-I${real_vorbis_tree}/include])
3537     else
3538       dnl  The given vorbis wasn't built
3539       AC_MSG_RESULT(no)
3540       AC_MSG_ERROR([cannot find ${real_vorbis_tree}/lib/.libs/libvorbis.a, make sure you compiled vorbis in ${with_vorbis_tree}])
3541     fi
3542   else
3543     AC_CHECK_HEADERS(vorbis/codec.h, [
3544       VLC_ADD_PLUGIN([vorbis])
3545       VLC_ADD_LIBS([vorbis],[-lvorbis -logg -lm]) ],[])
3546
3547     AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
3548       VLC_ADD_LIBS([vorbis],[-lvorbisenc -lm]) ],[])
3549   fi
3550 fi
3551
3552 dnl
3553 dnl  Tremor plugin
3554 dnl
3555 AC_ARG_ENABLE(tremor,
3556   [  --enable-tremor         Tremor decoder support (default disabled)])
3557 if test "${enable_tremor}" = "yes"
3558 then
3559   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3560     VLC_ADD_PLUGIN([tremor])
3561     VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
3562    ],[])
3563 fi
3564
3565 dnl
3566 dnl  Speex plugin
3567 dnl
3568 AC_ARG_ENABLE(speex,
3569   [  --enable-speex          Speex decoder support (default enabled)])
3570 if test "${enable_speex}" != "no"
3571 then
3572   AC_ARG_WITH(speex-tree,
3573   [    --with-speex-tree=PATH speex tree for static linking])
3574   if test -n "${with_speex_tree}"
3575   then
3576     AC_MSG_CHECKING(for libspeex.a in ${with_speex_tree})
3577     real_speex_tree="`cd ${with_speex_tree} 2>/dev/null && pwd`"
3578     if test -z "${real_speex_tree}"
3579     then
3580       dnl  The given directory can't be found
3581       AC_MSG_RESULT(no)
3582       AC_MSG_ERROR([cannot cd to ${with_speex_tree}])
3583     fi
3584     if test -f "${real_speex_tree}/libspeex/.libs/libspeex.a"
3585     then
3586       dnl  Use a custom speex
3587       AC_MSG_RESULT(${real_speex_tree}/libspeex/.libs/libspeex.a)
3588       VLC_ADD_PLUGIN([speex])
3589       VLC_ADD_LIBS([speex],[${real_speex_tree}/libspeex/.libs/libspeex.a])
3590       VLC_ADD_CFLAGS([speex],[-I${real_speex_tree}/include])
3591     else
3592       dnl  The given speex wasn't built
3593       AC_MSG_RESULT(no)
3594       AC_MSG_ERROR([cannot find ${real_speex_tree}/libspeex/.libs/libspeex.a, make sure you compiled speex in ${with_speex_tree}])
3595     fi
3596   else
3597     AC_CHECK_HEADERS(speex/speex.h, [
3598       LDFLAGS="${LDFLAGS_save} ${LIBS_speex}"
3599       AC_CHECK_LIB(speex, speex_decode_int, [
3600         VLC_ADD_PLUGIN([speex])
3601         VLC_ADD_LIBS([speex],[-lspeex]) ],
3602         [ AC_MSG_RESULT([no])
3603           AC_MSG_WARN([Your libspeex is too old, please get the development
3604                        version.]) ],[])
3605       LDFLAGS="${LDFLAGS_save}"
3606       ],[])
3607   fi
3608 fi
3609
3610 dnl
3611 dnl  tarkin decoder plugin
3612 dnl
3613 AC_ARG_ENABLE(tarkin,
3614 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3615 if test "${enable_tarkin}" = "yes"
3616 then
3617   AC_ARG_WITH(tarkin-tree,
3618   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3619   if test -n "${with_tarkin_tree}"
3620   then
3621     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3622     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3623     if test -f "${real_tarkin_tree}/tarkin.o"
3624     then
3625       VLC_ADD_PLUGIN([tarkin])
3626       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3627       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])
3628       AC_MSG_RESULT(yes)
3629     else
3630       dnl  The given tarkin tree wasn't built
3631       AC_MSG_RESULT(no)
3632       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3633                     make sure you compiled tarkin in ${with_tarkin_tree}])
3634     fi
3635   fi
3636 fi
3637
3638 dnl
3639 dnl  theora decoder plugin
3640 dnl
3641 AC_ARG_ENABLE(theora,
3642 [  --enable-theora         experimental theora codec (default disabled)])
3643 if test "${enable_theora}" = "yes"
3644 then
3645   AC_CHECK_HEADERS(theora/theora.h, [
3646     AC_CHECK_LIB(theora, theora_granule_time, [
3647       VLC_ADD_PLUGIN([theora])
3648       theora_libs="-ltheora -logg"
3649       VLC_ADD_LIBS([theora],[${theora_libs}]) ],[
3650       AC_MSG_ERROR([libtheora doesn't appear to be installed on your system.
3651 You also need to check that you have a libogg posterior to the 1.0 release.])],
3652       [-logg])
3653   ])
3654 fi
3655
3656 dnl
3657 dnl  dirac decoder plugin
3658 dnl
3659 AC_ARG_ENABLE(dirac,
3660 [  --enable-dirac          experimental dirac codec (default disabled)])
3661 if test "${enable_dirac}" = "yes"; then
3662   PKG_CHECK_MODULES(DIRAC,[dirac >= 0.10.0], [
3663       VLC_ADD_PLUGIN([dirac])
3664       VLC_ADD_CFLAGS([dirac],[$DIRAC_CFLAGS])
3665       VLC_ADD_LIBS([dirac],[$DIRAC_LIBS -lstdc++]) ],[
3666       AC_MSG_ERROR([libdirac >= 0.10.0 doesn't appear to be installed on your system.])
3667   ])
3668 fi
3669
3670 dnl
3671 dnl  schroedinger decoder plugin (for dirac format video)
3672 dnl
3673 AC_ARG_ENABLE(schroedinger,
3674 [  --disable-schroedinger  high performance dirac codec (default enabled)])
3675 if test "${enable_schroedinger}" != "no"; then
3676   PKG_CHECK_MODULES(SCHROEDINGER,[schroedinger-1.0 >= 1.0], [
3677       VLC_ADD_PLUGIN([schroedinger])
3678       VLC_ADD_CFLAGS([schroedinger],[$SCHROEDINGER_CFLAGS])
3679       VLC_ADD_LIBS([schroedinger],[$SCHROEDINGER_LIBS]) ], [
3680         AS_IF([test "x${enable_schroedinger}" != "x"], [
3681           AC_MSG_ERROR([${SCHROEDINGER_PKG_ERRORS}])
3682         ])
3683 ])
3684 fi
3685
3686 dnl
3687 dnl  PNG decoder module
3688 dnl
3689 AC_ARG_ENABLE(png,
3690   [  --enable-png            PNG support (default enabled)])
3691 if test "${enable_png}" != "no"; then
3692 AC_CHECK_HEADERS(png.h, [
3693   LDFLAGS="${LDFLAGS_save} -lz"
3694   AC_CHECK_LIB(png, png_set_rows, [
3695     VLC_ADD_LIBS([png],[-lpng -lz])
3696     VLC_ADD_PLUGIN([png])
3697     VLC_ADD_PLUGIN([osdmenu])
3698     VLC_ADD_PLUGIN([osd_parser])
3699     AC_DEFINE(HAVE_LIBPNG, 1, [Define if you have the PNG library: libpng])],
3700     [],[-lz])
3701     LDFLAGS="${LDFLAGS_save}"
3702   ])
3703 fi
3704 AM_CONDITIONAL(BUILD_OSDMENU, [test "${enable_png}" != "no"])
3705
3706 dnl
3707 dnl H264 encoder plugin (using libx264)
3708 dnl
3709 AC_ARG_ENABLE(x264,
3710   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3711 if test "${enable_x264}" != "no"; then
3712   AC_ARG_WITH(x264-tree,
3713     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3714   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3715   then
3716     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3717     if test -z "${real_x264_tree}"
3718     then
3719       dnl  The given directory can't be found
3720       AC_MSG_RESULT(no)
3721       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3722     fi
3723     dnl  Use a custom libx264
3724     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3725     if test -f ${real_x264_tree}/x264.h
3726     then
3727       AC_MSG_RESULT(yes)
3728       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3729       VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
3730       PKG_CHECK_MODULES(X264,x264, [
3731         VLC_ADD_PLUGIN([x264])
3732         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3733         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3734         if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3735           VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3736         fi
3737       ],[
3738         AC_MSG_ERROR([the specified tree hasn't been compiled])
3739       ])
3740       LDFLAGS="${LDFLAGS_save}"
3741     else
3742       AC_MSG_RESULT(no)
3743       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3744     fi
3745   else
3746       PKG_CHECK_MODULES(X264,x264, [
3747         VLC_ADD_PLUGIN([x264])
3748         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3749         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3750         if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3751           VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3752         fi
3753       ],[
3754         if test "${enable_x264}" = "yes"; then
3755             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
3756           fi
3757       ])
3758     LDFLAGS="${LDFLAGS_save}"
3759   fi
3760 fi
3761
3762 dnl
3763 dnl libfluidsynth (MIDI synthetizer) plugin
3764 dnl
3765 AC_ARG_ENABLE(fluidsynth,
3766   [  --enable-fluidsynth     MIDI synthesisr with libfluidsynth (default enabled)])
3767 AS_IF([test "x${enable_fluidsynth}" != "xno"], [
3768   PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth, [
3769     VLC_ADD_PLUGIN(fluidsynth)
3770     VLC_ADD_CFLAGS(fluidsynth, [${FLUIDSYNTH_CFLAGS}])
3771     VLC_ADD_LIBS(fluidsynth, [${FLUIDSYNTH_LIBS}])
3772   ], [
3773     AS_IF([test "x${enable_fluidsynth}" != "x"], [
3774       AC_MSG_ERROR([${FLUIDSYNTH_PKG_ERRORS}])
3775     ])
3776   ])
3777 ])
3778
3779 dnl
3780 dnl Teletext Modules
3781 dnl vbi decoder plugin (using libzbvi)
3782 dnl telx module
3783 dnl uncompatible
3784 dnl
3785 AC_ARG_ENABLE(zvbi,
3786   AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
3787                   libzvbi (default enabled)]))
3788 AC_ARG_ENABLE(telx,
3789   AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
3790                   zvbi) (default enabled if zvbi is absent)]))
3791
3792 AS_IF( [test "${enable_zvbi}" != "no"],[
3793     PKG_CHECK_MODULES(ZVBI,
3794         zvbi-0.2 >= 0.2.25,
3795         [
3796           VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
3797           VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
3798           VLC_ADD_PLUGIN([zvbi])
3799           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
3800           AS_IF( [test "${enable_telx}" = "yes"],[
3801                   AC_MSG_WARN([The zvbi and telx modules are uncompatibles.
3802                                Using zvbi.])
3803                   ])
3804         ],[
3805           AC_MSG_WARN(ZVBI library not found. Enabling the telx module instead)
3806         ])
3807     ])
3808 AS_IF( [test "${enable_telx}" != "no" ],[
3809   VLC_ADD_PLUGIN([telx])
3810   ])
3811
3812 dnl
3813 dnl asa/csri subtitle rendering module
3814 dnl
3815 AC_ARG_ENABLE(csri,
3816   [  --enable-csri           Subtitle support using CSRI / asa (default disabled)])
3817 AS_IF( [test "${enable_csri}" = "yes"], [
3818   PKG_CHECK_MODULES(CSRI,
3819       csri >= 0.1.0,
3820       [
3821         VLC_ADD_LDFLAGS([csri],[$CSRI_LIBS])
3822         VLC_ADD_CFLAGS([csri],[$CSRI_CFLAGS])
3823         VLC_ADD_PLUGIN([csri])
3824       ],[
3825         AC_MSG_WARN([CSRI helper library not found])
3826       ])
3827   ])
3828
3829 dnl
3830 dnl libass subtitle rendering module
3831 dnl
3832 AC_ARG_ENABLE(libass,
3833   [  --enable-libass         Subtitle support using libass (default disabled)])
3834 AS_IF( [test "${enable_libass}" = "yes"], [
3835   PKG_CHECK_MODULES(LIBASS, libass >= 0.9.5,
3836       [
3837         VLC_ADD_LDFLAGS([libass],[$LIBASS_LIBS])
3838         VLC_ADD_CFLAGS([libass],[$LIBASS_CFLAGS])
3839         VLC_ADD_PLUGIN([libass])
3840
3841         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
3842           [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
3843         if test "${SYS}" = "mingw32"; then
3844            VLC_ADD_LIBS([libass],[-lfontconfig -lfreetype -liconv -lz -lxml2])
3845         else
3846            VLC_ADD_LIBS([libass],[-lfontconfig])
3847         fi
3848        ])
3849       ],[
3850         AC_MSG_WARN([LIBASS library not found])
3851       ])
3852   ])
3853
3854 dnl
3855 dnl asa demuxer
3856 dnl
3857 AC_ARG_ENABLE(asademux,
3858   [  --enable-asademux       asa subtitle demuxing (default disabled)])
3859 AS_IF( [test "${enable_asademux}" = "yes"], [
3860   PKG_CHECK_MODULES(PCRE,
3861       libpcre >= 6.5,
3862       [
3863         VLC_ADD_LDFLAGS([asademux],[$PCRE_LIBS])
3864         VLC_ADD_CFLAGS([asademux],[$PCRE_CFLAGS])
3865         if test "${SYS}" = "mingw32"; then
3866                 VLC_ADD_CPPFLAGS([asademux],[-DPCRE_STATIC])
3867         fi
3868         VLC_ADD_PLUGIN([asademux])
3869       ],[
3870         AC_MSG_WARN([PCRE library not found (required for asademux)])
3871       ])
3872   ])
3873
3874 dnl
3875 dnl  CMML plugin
3876 dnl
3877 AC_ARG_ENABLE(cmml,
3878   [  --enable-cmml           CMML support (default enabled)])
3879 if test "${enable_cmml}" != "no"
3880 then
3881   VLC_ADD_PLUGIN([cmml])
3882 fi
3883
3884 dnl
3885 dnl  kate decoder plugin
3886 dnl
3887 AC_ARG_ENABLE(kate,
3888 [  --enable-kate           kate codec (default enabled)])
3889 AS_IF([test "${enable_kate}" != "no"], [
3890   PKG_CHECK_MODULES(KATE,[kate >= 0.1.5], [
3891       VLC_ADD_PLUGIN([kate])
3892       VLC_ADD_CFLAGS([kate],[$KATE_CFLAGS])
3893       VLC_ADD_LIBS([kate],[$KATE_LIBS]) ],[
3894         AC_CHECK_HEADERS(kate/kate.h, [
3895           AC_CHECK_LIB(kate, kate_decode_init, [
3896             VLC_ADD_PLUGIN([kate])
3897             kate_libs="-lkate -logg"
3898             VLC_ADD_LDFLAGS([kate],[${kate_libs}]) ],[
3899             AS_IF([test "x${enable_kate}" != "x"], [
3900               AC_MSG_ERROR([libkate doesn't appear to be installed on your system.
3901               You also need to check that you have a libogg posterior to the 1.0 release.])
3902             ])
3903           ], [-lkate -logg])
3904         ],[
3905           AS_IF([test "x${enable_kate}" != "x"], [
3906             AC_MSG_ERROR([libkate headers do not appear to be installed on your system.
3907             You also need to check that you have a libogg posterior to the 1.0 release.])
3908           ])
3909         ])
3910   ])
3911 ])
3912
3913
3914 dnl
3915 dnl  tiger decoder plugin
3916 dnl
3917 AC_ARG_ENABLE(tiger,
3918 [  --enable-tiger          Tiger rendering library for Kate streams (default enabled)])
3919 AS_IF([test "${enable_tiger}" != "no"], [
3920   PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
3921       AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])
3922       VLC_ADD_CFLAGS([kate],[$TIGER_CFLAGS])
3923       VLC_ADD_LIBS([kate],[$TIGER_LIBS]) ],[
3924         AS_IF([test "x${enable_tiger}" != "x"], [
3925           AC_MSG_ERROR([libtiger does not appear to be installed on your system.])
3926         ])
3927   ])
3928 ])
3929
3930
3931 dnl
3932 dnl  Video plugins
3933 dnl
3934
3935 AC_ARG_WITH(,[Video plugins:])
3936
3937 dnl Check for DPMS
3938 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
3939   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3940   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
3941     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
3942     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
3943       AC_MSG_RESULT(yes)
3944       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
3945                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
3946     ],[
3947       AC_MSG_RESULT(no)
3948     ])
3949   ],,[
3950     #include <X11/Xlib.h>
3951   ])
3952   CPPFLAGS="${CPPFLAGS_save}"
3953 fi
3954
3955 dnl
3956 dnl  X11 module
3957 dnl  (enabled by default except on win32)
3958 dnl
3959 AC_ARG_ENABLE(x11,
3960   [  --enable-x11            X11 support (default enabled)])
3961 if test "${enable_x11}" != "no" &&
3962   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3963    test "${enable_x11}" = "yes"); then
3964   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3965   AC_CHECK_HEADERS(X11/Xlib.h, [
3966     VLC_ADD_PLUGIN([panoramix])
3967     VLC_ADD_LIBS([panoramix],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3968     VLC_ADD_CPPFLAGS([panoramix],[${X_CFLAGS}])
3969     VLC_ADD_PLUGIN([globalhotkeys])
3970     VLC_ADD_LIBS([globalhotkeys],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3971     VLC_ADD_CPPFLAGS([globalhotkeys],[${X_CFLAGS}])
3972     AC_CHECK_LIB(Xext, XShmAttach, [
3973       VLC_ADD_PLUGIN([x11])
3974       VLC_ADD_LIBS([x11],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
3975       VLC_ADD_CPPFLAGS([x11],[${X_CFLAGS}])
3976     ])
3977   ])
3978   CPPFLAGS="${CPPFLAGS_save}"
3979 fi
3980
3981 dnl
3982 dnl  XVideo module
3983 dnl  (enabled by default except on win32)
3984 dnl
3985 AC_ARG_ENABLE(xvideo,
3986   [  --enable-xvideo         XVideo support (default enabled)])
3987 if test "${enable_xvideo}" != "no" &&
3988   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3989    test "${enable_xvideo}" = "yes"); then
3990   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3991   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
3992     CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3993     AC_CHECK_LIB(Xv,XvPutImage,[
3994         VLC_ADD_PLUGIN([xvideo])
3995         VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3996         VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3997     ])
3998     CFLAGS="${CFLAGS_save}"
3999   ]
4000   CPPFLAGS="${CPPFLAGS_save}")
4001 fi
4002
4003 dnl
4004 dnl  GLX module
4005 dnl  (enabled by default except on win32)
4006 dnl
4007 AC_ARG_ENABLE(glx,
4008   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)])
4009 if test "${enable_glx}" != "no" &&
4010   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4011    test "${enable_glx}" = "yes"); then
4012   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
4013   AC_CHECK_HEADERS(X11/Xlib.h GL/glu.h GL/glx.h)
4014   AC_COMPILE_IFELSE(AC_LANG_PROGRAM(
4015     [[#if !defined(HAVE_X11_XLIB_H) || !defined(HAVE_GL_GLU_H) || !defined(HAVE_GL_GLX_H)
4016     choke me
4017     #endif]]),
4018     [
4019       VLC_ADD_PLUGIN([glx])
4020       VLC_ADD_LIBS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU])
4021       VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}])
4022     ],[AC_MSG_ERROR([Please install GL development package. Alternatively you can also configure with --disable-glx.])])
4023   CPPFLAGS="${CPPFLAGS_save}"
4024 fi
4025
4026 dnl
4027 dnl  XVMC module
4028 dnl  (disabled by default except on win32)
4029 dnl
4030 AC_ARG_ENABLE(xvmc,
4031   [  --enable-xvmc           XVMC support (default disabled)])
4032 if test "${enable_xvmc}" = "yes" &&
4033   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4034    test "${enable_xvmc}" = "yes"); then
4035   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
4036   AC_CHECK_HEADERS(X11/extensions/vldXvMC.h, [
4037     VLC_ADD_PLUGIN([xvmc])
4038     VLC_ADD_LIBS([xvmc],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXvMCW -lXv -lXinerama])
4039     VLC_ADD_CPPFLAGS([xvmc],[${X_CFLAGS}])
4040   ])
4041   CPPFLAGS="${CPPFLAGS_save}"
4042 fi
4043
4044 dnl
4045 dnl  Check for the Xinerama extension
4046 dnl
4047 AC_ARG_ENABLE(xinerama,
4048   [  --enable-xinerama       Xinerama support (default enabled)])
4049 if test "${enable_xvideo}" != "no" && test "${enable_xinerama}" != "no" &&
4050   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4051    test "${enable_xvideo}" = "yes"); then
4052   ac_cv_have_xinerama="no"
4053   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
4054   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
4055   AC_CHECK_HEADERS(X11/extensions/Xinerama.h,[
4056     AC_CHECK_LIB(Xinerama_pic, XineramaQueryExtension,[
4057       VLC_ADD_LIBS([xvideo],[-lXinerama_pic])
4058       VLC_ADD_LIBS([x11],[-lXinerama_pic])
4059       VLC_ADD_LIBS([glx],[-lXinerama_pic])
4060       ac_cv_have_xinerama="yes"
4061     ],[
4062       AC_CHECK_LIB(Xinerama, XineramaQueryExtension,[
4063         VLC_ADD_LIBS([xvideo],[-lXinerama])
4064         VLC_ADD_LIBS([x11],[-lXinerama])
4065         VLC_ADD_LIBS([glx],[-lXinerama])
4066         ac_cv_have_xinerama="yes"
4067       ])
4068     ])
4069   ])
4070   if test "${ac_cv_have_xinerama}" = "yes"; then
4071     AC_DEFINE(HAVE_XINERAMA, 1, [Define this if you have libXinerama installed])
4072   fi
4073   CFLAGS="${CFLAGS_save}"
4074   CPPFLAGS="${CPPFLAGS_save}"
4075
4076 dnl
4077 dnl  Check for XF86VidMode extension
4078 dnl
4079   ac_cv_have_xf86vidmode="no"
4080   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
4081   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
4082   AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,[
4083     AC_CHECK_LIB(Xxf86vm_pic, XF86VidModeGetViewPort,[
4084       VLC_ADD_LIBS([xvideo],[-lXxf86vm_pic])
4085       VLC_ADD_LIBS([x11],[-lXxf86vm_pic])
4086       VLC_ADD_LIBS([glx],[-lXxf86vm_pic])
4087       VLC_ADD_LIBS([xvmc],[-lXxf86vm_pic])
4088       ac_cv_have_xf86vidmode="yes"
4089     ],[
4090       AC_CHECK_LIB(Xxf86vm, XF86VidModeGetViewPort,[
4091         VLC_ADD_LIBS([xvideo],[-lXxf86vm])
4092         VLC_ADD_LIBS([x11],[-lXxf86vm])
4093         VLC_ADD_LIBS([glx],[-lXxf86vm])
4094         VLC_ADD_LIBS([xvmc],[-lXxf86vm])
4095         ac_cv_have_xf86vidmode="yes"
4096       ])
4097     ])
4098   ],[true],
4099 [#ifdef HAVE_X11_XLIB_H
4100 # include <X11/Xlib.h>
4101 #endif]
4102    )
4103   AS_IF([test "${ac_cv_have_xf86vidmode}" = "yes"],
4104     [AC_DEFINE(HAVE_XF86VIDMODE, 1, [Define this if you have libXxf86vm installed])
4105   ])
4106   CFLAGS="${CFLAGS_save}"
4107   CPPFLAGS="${CPPFLAGS_save}"
4108
4109 fi
4110
4111 dnl
4112 dnl  OpenGL module
4113 dnl  (enabled by default except on beos)
4114 dnl
4115 AC_ARG_ENABLE(opengl,
4116   [  --enable-opengl         OpenGL support (default enabled)])
4117 if test "${enable_opengl}" != "no" &&
4118    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
4119   if test "${SYS}" != "darwin"; then
4120     AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
4121       VLC_ADD_PLUGIN([opengl])
4122       if test "${SYS}" != "mingw32"; then
4123         VLC_ADD_LIBS([opengl],[${X_LIBS} -lGL -lGLU])
4124       else
4125         VLC_ADD_LIBS([opengl],[-lopengl32 -lglu32])
4126       fi
4127     ])
4128   else
4129     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
4130     VLC_ADD_PLUGIN([opengl])
4131     VLC_ADD_LIBS([opengl],[-Wl,-framework,OpenGL])
4132   fi
4133 fi
4134
4135 dnl
4136 dnl  SDL module
4137 dnl
4138 AC_ARG_ENABLE(sdl,
4139   [  --enable-sdl            SDL support (default enabled)])
4140 AC_ARG_ENABLE(sdl-image,
4141   [  --enable-sdl-image      SDL image support (default enabled)])
4142 if test "${enable_sdl}" != "no"
4143 then
4144   SDL_PATH="${PATH}"
4145   AC_ARG_WITH(sdl-config-path,
4146     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
4147     [ if test "${with_sdl_config_path}" != "no"
4148       then
4149         SDL_PATH="${with_sdl_config_path}:${PATH}"
4150       fi ])
4151   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
4152   SDL_CONFIG="${SDL12_CONFIG}"
4153   SDL_HEADER="SDL12/SDL.h"
4154   SDL_IMAGE="SDL12/SDL_image.h"
4155   if test "${SDL_CONFIG}" = "no"
4156   then
4157     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
4158     SDL_CONFIG=${SDL11_CONFIG}
4159     SDL_HEADER="SDL11/SDL.h"
4160     SDL_IMAGE="SDL11/SDL_image.h"
4161   fi
4162   if test "${SDL_CONFIG}" = "no"
4163   then
4164     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
4165     SDL_HEADER="SDL/SDL.h"
4166     SDL_IMAGE="SDL/SDL_image.h"
4167   fi
4168   # check for cross-compiling
4169   SDL_PREFIX=
4170   AC_ARG_WITH(sdl-prefix,
4171     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
4172                                e.g use as:
4173                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
4174   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
4175   then
4176     SDL_PREFIX="--prefix=${with_sdl_prefix}"
4177   fi
4178   if test "${SDL_CONFIG}" != "no"
4179   then
4180     # SDL on Darwin is heavily patched and can only run SDL_image
4181     if test "${SYS}" != "darwin" -a "${SYS}" != "mingw32"; then
4182       VLC_ADD_PLUGIN([vout_sdl])
4183       VLC_ADD_PLUGIN([aout_sdl])
4184     fi
4185     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
4186     VLC_ADD_LIBS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
4187     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
4188     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
4189       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
4190       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
4191           As a last resort we also test for SDL.h presence),
4192       [ AC_MSG_ERROR([The development package for SDL is not installed.
4193 Please install it and try again. Alternatively you can also configure with
4194 --disable-sdl.])
4195       ])])
4196     AS_IF([ test "${enable_sdl_image}" != "no"],[
4197       AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
4198         <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
4199         VLC_ADD_PLUGIN([sdl_image])
4200         AC_CHECK_LIB(png, png_set_rows,
4201           [VLC_ADD_LIBS([sdl_image],[-lpng -lz])],[],[-lz])
4202         AC_CHECK_LIB(jpeg, jpeg_start_decompress,
4203           [VLC_ADD_LIBS([sdl_image],[-ljpeg])])
4204         AC_CHECK_LIB(tiff, TIFFClientOpen,
4205           [VLC_ADD_LIBS([sdl_image],[-ltiff])])
4206         VLC_ADD_LIBS([sdl_image], [-lSDL_image])],
4207         [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
4208             As a last resort we also test for SDL_image.h presence),
4209         [ AC_MSG_WARN([The development package for SDL_image is not installed.
4210   You should install it alongside your SDL package.])
4211         ])])
4212     ])
4213     CPPFLAGS="${CPPFLAGS_save}"
4214     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
4215     then
4216       AC_MSG_ERROR([The development package for SDL is not installed.
4217 Please install it and try again. Alternatively you can also configure with
4218 --disable-sdl.])
4219     fi
4220
4221   elif test "${enable_sdl}" =  "yes"
4222   then
4223     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
4224 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
4225     ])
4226   fi
4227 fi
4228
4229 dnl
4230 dnl  freetype module
4231 dnl
4232 AC_ARG_ENABLE(freetype,
4233   [  --enable-freetype       freetype support (default enabled)])
4234 AC_ARG_ENABLE(fribidi,
4235   [  --enable-fribidi        fribidi support (default enabled)])
4236 AC_ARG_ENABLE(fontconfig,
4237   [  --enable-fontconfig,    fontconfig support (default enabled)])
4238 if test "${enable_freetype}" != "no"
4239 then
4240    PKG_CHECK_MODULES(FREETYPE, freetype2,[
4241       VLC_ADD_PLUGIN([freetype])
4242       have_freetype=yes
4243       VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
4244       VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
4245       if test "${SYS}" = "mingw32"; then
4246         VLC_ADD_LIBS([freetype skins2],[-lxml2])
4247       fi
4248       if test "${SYS}" = "mingw32"; then
4249         VLC_ADD_LIBS([freetype],[-liconv])
4250       fi
4251       if test "${enable_fontconfig}" != "no"
4252       then
4253         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
4254           [VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
4255            VLC_ADD_LIBS([freetype],[-lfontconfig])])
4256         AC_CHECK_HEADERS(Carbon/Carbon.h,
4257           [VLC_ADD_LDFLAGS([freetype],[-Wl,-framework,Carbon])])
4258       fi
4259   ],[
4260   have_freetype=no
4261   AS_IF([ test "${enable_freetype}" =  "yes"],[
4262     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
4263 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
4264       ])
4265     ])
4266   ])
4267
4268   dnl fribidi support
4269   if test "${enable_fribidi}" != "no"
4270   then
4271     PKG_CHECK_MODULES(FRIBIDI, fribidi, [
4272       VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
4273       VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
4274     ])
4275     fi
4276 fi
4277
4278 dnl
4279 dnl  libxml2 module
4280 dnl
4281 AC_ARG_ENABLE(libxml2,
4282   [  --enable-libxml2        libxml2 support (default enabled)])
4283 if test "${enable_libxml2}" != "no"
4284 then
4285   XML2_PATH="${PATH}"
4286   AC_ARG_WITH(xml2-config-path,
4287     [    --with-xml2-config-path=PATH xml2-config path (default search in \$PATH)],
4288     [ if test "${with_xml2_config_path}" != "no"; then
4289         XML2_PATH="${with_xml2_config_path}:${PATH}"
4290       fi ])
4291   AC_PATH_PROG(XML2_CONFIG, xml2-config, no, ${XML2_PATH})
4292   if test "${XML2_CONFIG}" != "no"; then
4293     VLC_ADD_CPPFLAGS([xml],[`${XML2_CONFIG} --cflags`])
4294     VLC_ADD_LIBS([xml],[`${XML2_CONFIG} --libs`])
4295     dnl depends on the xmlTextReader extension
4296     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_xml}"
4297     LDFLAGS="${LDFLAGS_save} ${LIBS_xml}"
4298     AC_CHECK_LIB(xml2,xmlTextReaderConstName,[
4299       AC_EGREP_HEADER(xmlTextReaderConstName,libxml/xmlreader.h,[
4300         VLC_ADD_PLUGIN([xml]) ],[
4301           AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
4302           if test "${enable_xml2}" = "yes"; then
4303             AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
4304           fi])
4305        ],[
4306       AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
4307       if test "${enable_xml2}" = "yes"; then
4308         AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
4309       fi])
4310     LDFLAGS="${LDFLAGS_save}"
4311     CPPFLAGS="${CPPFLAGS_save}"
4312   else
4313     if test "${enable_xml2}" = "yes"; then
4314       AC_MSG_ERROR([Could not find libxml2])
4315     fi
4316   fi
4317 fi
4318
4319 dnl
4320 dnl  SVG module
4321 dnl
4322 AC_ARG_ENABLE(svg,
4323   [  --enable-svg            SVG support (default disabled)])
4324 if test "${enable_svg}" = "yes"
4325 then
4326   PKG_CHECK_MODULES(SVG,
4327         librsvg-2.0 >= 2.9.0,
4328         [
4329           VLC_ADD_LIBS([svg],[$SVG_LIBS])
4330           VLC_ADD_CFLAGS([svg],[$SVG_CFLAGS])
4331           VLC_ADD_PLUGIN([svg]) ],
4332         [AC_MSG_WARN(SVG library not found)])
4333 fi
4334
4335 dnl
4336 dnl Snapshot vout module (with cache)
4337 dnl
4338 AC_ARG_ENABLE(snapshot,
4339   [  --enable-snapshot       snapshot module (default disabled)])
4340 if test "${enable_snapshot}" = "yes"
4341 then
4342   VLC_ADD_PLUGIN([snapshot])
4343 fi
4344
4345 dnl
4346 dnl  Qt Embedded module
4347 dnl  (disabled by default)
4348 dnl
4349 AC_ARG_ENABLE(qte,
4350   [  --enable-qte            QT Embedded support (default disabled)])
4351 if test "${enable_qte}" = "yes"
4352 then
4353   AC_ARG_WITH(qte,
4354   [    --with-qte=PATH       Qt Embedded headers and libraries])
4355   if test "${with_qte}" != "no" -a -n "${with_qte}"
4356   then
4357     VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4358     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])
4359   else
4360     VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4361     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
4362   fi
4363   VLC_ADD_PLUGIN([qte])
4364   NEED_QTE_MAIN=yes
4365   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4366   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4367     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4368   ] )
4369   CPPFLAGS="${CPPFLAGS_save}"
4370 fi
4371
4372 dnl
4373 dnl Roku HD1000 Video output module
4374 dnl
4375 AC_ARG_ENABLE(hd1000v,
4376   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
4377 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
4378   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4379    test "${enable_hd1000v}" = "yes"); then
4380   AC_LANG_PUSH([C++])
4381   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
4382   [
4383     can_build_roku="yes"
4384   ],
4385   [
4386     can_build_roku="no"
4387     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
4388   ])
4389   if test "$can_build_roku" = "yes"
4390   then
4391     VLC_ADD_PLUGIN([hd1000v])
4392     VLC_ADD_LIBS([hd1000v],[-lCascade -ldvbpsi -lmad])
4393   fi
4394   AC_LANG_POP([C++])
4395 fi
4396
4397 dnl
4398 dnl  Windows DirectX module
4399 dnl
4400
4401 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4402 then
4403   VLC_ADD_PLUGIN([panoramix])
4404 fi
4405
4406 AC_ARG_ENABLE(directx,
4407   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
4408 if test "${enable_directx}" != "no"
4409 then
4410   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4411   then
4412     AC_ARG_WITH(directx,
4413     [    --with-directx=PATH   Win32 DirectX headers])
4414     if test -z "${with_directx}"
4415     then
4416       AC_CHECK_HEADERS(ddraw.h,
4417       [ VLC_ADD_PLUGIN([vout_directx])
4418         VLC_ADD_PLUGIN([aout_directx])
4419         VLC_ADD_LIBS([vout_directx],[-lgdi32])
4420       ])
4421       AC_CHECK_HEADERS(GL/gl.h,
4422       [ VLC_ADD_PLUGIN([glwin32])
4423         VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
4424       ])
4425       AC_CHECK_HEADERS(d3d9.h,
4426       [ VLC_ADD_PLUGIN([direct3d])
4427         VLC_ADD_LIBS([direct3d],[-lgdi32])
4428       ])
4429     else
4430       AC_MSG_CHECKING(for directX headers in ${with_directx})
4431       if test -f ${with_directx}/ddraw.h
4432       then
4433         VLC_ADD_PLUGIN([vout_directx])
4434         VLC_ADD_PLUGIN([aout_directx])
4435         VLC_ADD_CPPFLAGS([vout_directx aout_directx],[-I${with_directx}])
4436         VLC_ADD_LIBS([vout_directx],[-lgdi32])
4437         AC_MSG_RESULT(yes)
4438       else
4439         AC_MSG_RESULT(no)
4440         AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
4441       fi
4442     fi
4443   fi
4444 fi
4445
4446 dnl
4447 dnl  Linux framebuffer module
4448 dnl
4449 AC_ARG_ENABLE(fb,
4450   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
4451     if test "${enable_fb}" != "no"
4452     then
4453       AC_CHECK_HEADERS(linux/fb.h, [
4454         VLC_ADD_PLUGIN([fb])
4455       ])
4456     fi
4457
4458 dnl
4459 dnl  Linux MGA module
4460 dnl
4461 AC_ARG_ENABLE(mga,
4462   [  --enable-mga            Linux kernel Matrox support (default disabled)],
4463   [ if test "${enable_mga}" = "yes"
4464     then
4465       VLC_ADD_PLUGIN([mga])
4466     fi ])
4467
4468 dnl
4469 dnl  OMAP