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