de300d49cd577e7d2653ccd4e212c47a19f12bcb
[vlc.git] / configure.ac
1 dnl Autoconf settings for vlc
2
3 AC_INIT(vlc, 0.9.0)
4 VERSION_MAJOR="0"
5 VERSION_MINOR="9"
6 VERSION_REVISION="0"
7 VERSION_EXTRA=""
8
9 CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
10 CODENAME="Grishenko"
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   if test "${with_contrib}" != "no"; then 
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    if test "`grep HOST ${topdir}/extras/contrib/config.mak 2>/dev/null|awk '{print $3}'`" != "`$CC -dumpmachine`"; then
108       if test "${with_contrib}" = "yes"; then
109         AC_MSG_RESULT([no])
110         AC_MSG_ERROR([ not using the libs in extras/contrib as it is not the same host])
111       else
112         AC_MSG_RESULT([no])
113         AC_MSG_WARN([ not using the libs in extras/contrib as it is not the same host])
114       fi
115      else
116   if test -d ${topdir}/extras/contrib/lib; then
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   else
150      AC_MSG_RESULT([no])
151   fi
152   fi
153 fi
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 VLC_ADD_PLUGIN([cinepak])
1120 dnl Audio codecs:
1121 VLC_ADD_PLUGIN([araw])
1122 VLC_ADD_PLUGIN([adpcm])
1123 VLC_ADD_PLUGIN([mpeg_audio])
1124 VLC_ADD_PLUGIN([lpcm])
1125 VLC_ADD_PLUGIN([a52])
1126 VLC_ADD_PLUGIN([dts])
1127 VLC_ADD_PLUGIN([flac])
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([seamcarving])
1145 VLC_ADD_PLUGIN([croppadd])
1146 VLC_ADD_PLUGIN([canvas])
1147 VLC_ADD_PLUGIN([blendbench])
1148 VLC_ADD_PLUGIN([blend])
1149 VLC_ADD_PLUGIN([scale])
1150 VLC_ADD_PLUGIN([image])
1151 VLC_ADD_PLUGIN([vmem])
1152 VLC_ADD_PLUGIN([logo])
1153 VLC_ADD_PLUGIN([magnify])
1154 VLC_ADD_PLUGIN([puzzle])
1155 VLC_ADD_PLUGIN([colorthres])
1156 dnl Meta demuxers:
1157 VLC_ADD_PLUGIN([playlist])
1158 VLC_ADD_PLUGIN([export])
1159 VLC_ADD_PLUGIN([nsc])
1160 VLC_ADD_PLUGIN([xtag])
1161 dnl Channel mixing audio filters:
1162 VLC_ADD_PLUGIN([converter_fixed])
1163 VLC_ADD_PLUGIN([mono])
1164 VLC_ADD_PLUGIN([trivial_channel_mixer])
1165 dnl Resampling audio filters:
1166 VLC_ADD_PLUGIN([trivial_resampler])
1167 VLC_ADD_PLUGIN([ugly_resampler])
1168 dnl Audio mixers:
1169 VLC_ADD_PLUGIN([trivial_mixer])
1170 dnl Video chromas:
1171 VLC_ADD_PLUGIN([i420_rgb])
1172 VLC_ADD_PLUGIN([grey_yuv])
1173 dnl Video codecs:
1174 VLC_ADD_PLUGIN([rawvideo])
1175 dnl Access filters:
1176 VLC_ADD_PLUGIN([access_filter_timeshift])
1177 VLC_ADD_PLUGIN([access_filter_record])
1178 VLC_ADD_PLUGIN([access_filter_dump])
1179 VLC_ADD_PLUGIN([access_filter_bandwidth])
1180
1181 ALIASES="${ALIASES} cvlc"
1182
1183 dnl
1184 dnl default modules that need g++
1185 dnl
1186 AC_LANG_PUSH(C++)
1187 VLC_ADD_PLUGIN([spatializer])
1188 AC_LANG_POP(C++)
1189
1190 if test "${SYS}" != "mingwce"; then
1191   VLC_ADD_PLUGIN([gestures])
1192   VLC_ADD_PLUGIN([rc])
1193   VLC_ADD_PLUGIN([hotkeys])
1194   VLC_ADD_PLUGIN([showintf])
1195   VLC_ADD_PLUGIN([marq])
1196   VLC_ADD_PLUGIN([podcast])
1197   VLC_ADD_PLUGIN([shout])
1198   VLC_ADD_PLUGIN([sap])
1199   VLC_ADD_PLUGIN([fake])
1200   VLC_ADD_PLUGIN([folder])
1201   VLC_ADD_PLUGIN([rss])
1202   VLC_ADD_PLUGIN([mosaic])
1203   VLC_ADD_PLUGIN([wall])
1204   VLC_ADD_PLUGIN([motiondetect])
1205   VLC_ADD_PLUGIN([clone])
1206   VLC_ADD_PLUGIN([crop])
1207   VLC_ADD_PLUGIN([erase])
1208   VLC_ADD_PLUGIN([bluescreen])
1209   VLC_ADD_PLUGIN([alphamask])
1210   VLC_ADD_PLUGIN([gaussianblur])
1211   VLC_ADD_PLUGIN([i420_yuy2])
1212   VLC_ADD_PLUGIN([i422_yuy2])
1213   VLC_ADD_PLUGIN([i420_ymga])
1214   VLC_ADD_PLUGIN([i422_i420])
1215   VLC_ADD_PLUGIN([yuy2_i422])
1216   VLC_ADD_PLUGIN([yuy2_i420])
1217   VLC_ADD_PLUGIN([chain])
1218   VLC_ADD_PLUGIN([aout_file])
1219   VLC_ADD_PLUGIN([linear_resampler])
1220   VLC_ADD_PLUGIN([bandlimited_resampler])
1221   VLC_ADD_PLUGIN([float32_mixer])
1222   VLC_ADD_PLUGIN([spdif_mixer])
1223   VLC_ADD_PLUGIN([simple_channel_mixer])
1224   VLC_ADD_PLUGIN([dolby_surround_decoder])
1225   VLC_ADD_PLUGIN([headphone_channel_mixer])
1226   VLC_ADD_PLUGIN([normvol])
1227   VLC_ADD_PLUGIN([equalizer])
1228   VLC_ADD_PLUGIN([param_eq])
1229   VLC_ADD_PLUGIN([scaletempo])
1230   VLC_ADD_PLUGIN([converter_float])
1231   VLC_ADD_PLUGIN([a52tospdif])
1232   VLC_ADD_PLUGIN([dtstospdif])
1233   VLC_ADD_PLUGIN([audio_format])
1234   ALIASES="${ALIASES} rvlc"
1235 fi
1236
1237 dnl
1238 dnl Some plugins aren't useful on some platforms
1239 dnl
1240 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1241     VLC_ADD_PLUGIN([screensaver])
1242     VLC_ADD_PLUGIN([motion])
1243     VLC_ADD_PLUGIN([dynamicoverlay])
1244     VLC_ADD_PLUGIN([signals])
1245 elif test "${SYS}" != "mingwce"; then
1246     VLC_ADD_PLUGIN([ntservice])
1247     VLC_ADD_PLUGIN([access_smb])
1248     VLC_ADD_PLUGIN([dmo])
1249     VLC_ADD_PLUGIN([msn])
1250     VLC_ADD_LIBS([dmo],[-lole32 -luuid])
1251 else
1252     VLC_ADD_PLUGIN([win32text])
1253 fi
1254 if test "${SYS}" = "darwin"; then
1255     VLC_ADD_PLUGIN([quartztext])
1256     VLC_ADD_LDFLAGS([quartztext],[-Wl,-framework,Carbon,-framework,ApplicationServices])
1257 fi
1258
1259 dnl
1260 dnl  Accelerated modules
1261 dnl
1262 AC_ARG_WITH(,[])
1263 AC_ARG_WITH(,[Optimization options:])
1264
1265 dnl  Check for fully working MMX intrinsics
1266 dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a
1267 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1268 AC_ARG_ENABLE(mmx,
1269 [  --disable-mmx           disable MMX optimizations (default auto)],,[
1270   case "${host_cpu}" in
1271     i?86|x86_64)
1272       enable_mmx="yes"
1273       ;;
1274     *)
1275       enable_mmx="no"
1276       ;;
1277   esac
1278 ])
1279 AS_IF([test "${enable_mmx}" != "no"], [
1280   ARCH="${ARCH} mmx"
1281
1282   AC_CACHE_CHECK([if $CC groks MMX intrinsics],
1283     [ac_cv_c_mmx_intrinsics],
1284     [CFLAGS="${CFLAGS_save} -O -mmmx"
1285      AC_TRY_COMPILE([#include <mmintrin.h>
1286                      #include <stdint.h>
1287                      uint64_t frobzor;],
1288                     [__m64 a, b, c;
1289                      a = b = c = (__m64)frobzor;
1290                      a = _mm_slli_pi16(a, 3);
1291                      a = _mm_adds_pi16(a, b);
1292                      c = _mm_srli_pi16(c, 8);
1293                      c = _mm_slli_pi16(c, 3);
1294                      b = _mm_adds_pi16(b, c);
1295                      a = _mm_unpacklo_pi8(a, b);
1296                      frobzor = (uint64_t)a;],
1297                     [ac_cv_c_mmx_intrinsics=yes],
1298                     [ac_cv_c_mmx_intrinsics=no])])
1299   AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1300     AC_DEFINE(HAVE_MMX_INTRINSICS, 1,
1301               [Define to 1 if MMX intrinsics are available.])
1302     VLC_ADD_CFLAGS([memcpymmx i420_rgb_mmx i420_yuy2_mmx i422_yuy2_mmx i420_ymga_mmx],[-mmmx])
1303   ])
1304
1305   AC_CACHE_CHECK([if $CC groks MMX inline assembly],
1306     [ac_cv_mmx_inline],
1307     [CFLAGS="${CFLAGS_save}"
1308      AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
1309                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
1310   AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1311     AC_DEFINE(CAN_COMPILE_MMX, 1,
1312               [Define to 1 inline MMX assembly is available.])
1313     VLC_ADD_PLUGIN([memcpymmx])
1314     VLC_ADD_PLUGIN([i420_rgb_mmx])
1315     VLC_ADD_PLUGIN([i420_yuy2_mmx])
1316     VLC_ADD_PLUGIN([i422_yuy2_mmx])
1317     VLC_ADD_PLUGIN([i420_ymga_mmx])
1318   ])
1319
1320   AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1321     [ac_cv_mmxext_inline],
1322     [CFLAGS="${CFLAGS_save}"
1323      AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
1324                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
1325   AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1326     AC_DEFINE(CAN_COMPILE_MMXEXT, 1,
1327               [Define to 1 if MMX EXT inline assembly is available.])
1328     VLC_ADD_PLUGIN([memcpymmxext])
1329   ])
1330 ])
1331
1332 dnl  Check for fully workin SSE2 intrinsics
1333 dnl  We need support for -mmmx, we need <emmintrin.h>, and we also need a
1334 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1335 AC_ARG_ENABLE(sse,
1336 [  --disable-sse           disable SSE (1 and 2) optimizations (default auto)]
1337 ,, [
1338   case "${host_cpu}" in
1339     i686|x86_64)
1340       enable_sse=yes
1341       ;;
1342     *)
1343       enable_sse=no
1344       ;;
1345   esac
1346 ])
1347 AS_IF([test "${enable_sse}" != "no"], [
1348   ARCH="${ARCH} sse sse2"
1349
1350   AC_CACHE_CHECK([if $CC groks SSE2 intrinsics],
1351     [ac_cv_c_sse2_intrinsics],
1352     [CFLAGS="${CFLAGS_save} -O -msse2"
1353      AC_TRY_COMPILE([#include <emmintrin.h>
1354                      #include <stdint.h>
1355                      uint64_t frobzor;],
1356                     [__m128i a, b, c;
1357                      a = b = c = _mm_set1_epi64((__m64)frobzor);
1358                      a = _mm_slli_epi16(a, 3);
1359                      a = _mm_adds_epi16(a, b);
1360                      c = _mm_srli_epi16(c, 8);
1361                      c = _mm_slli_epi16(c, 3);
1362                      b = _mm_adds_epi16(b, c);
1363                      a = _mm_unpacklo_epi8(a, b);
1364                      frobzor = (uint64_t)_mm_movepi64_pi64(a);],
1365                     [ac_cv_c_sse2_intrinsics=yes],
1366                     [ac_cv_c_sse2_intrinsics=no])])
1367   AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1368     AC_DEFINE(HAVE_SSE2_INTRINSICS, 1,
1369               [Define to 1 if SSE2 intrinsics are available.])
1370     VLC_ADD_CFLAGS([i420_rgb_sse2 i420_yuy2_sse2 i422_yuy2_sse2],[-msse2])
1371   ])
1372
1373   AC_CACHE_CHECK([if $CC groks SSE inline assembly],
1374     [ac_cv_sse_inline],
1375     [CFLAGS="${CFLAGS_save}"
1376      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
1377                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
1378   AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1379     AC_DEFINE(CAN_COMPILE_SSE, 1,
1380               [Define to 1 if SSE inline assembly is available.])
1381   ])
1382
1383   AC_CACHE_CHECK([if $CC groks SSE2 inline assembly],
1384     [ac_cv_sse2_inline],
1385     [CFLAGS="${CFLAGS_save}"
1386      AC_TRY_COMPILE(,[void *p;asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p));],
1387                     ac_cv_sse2_inline=yes, ac_cv_sse2_inline=no)])
1388   AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1389     AC_DEFINE(CAN_COMPILE_SSE2, 1,
1390               [Define to 1 if SSE2 inline assembly is available.])
1391     VLC_ADD_PLUGIN([i420_rgb_sse2])
1392     VLC_ADD_PLUGIN([i420_yuy2_sse2])
1393     VLC_ADD_PLUGIN([i422_yuy2_sse2])
1394   ])
1395 ])
1396
1397 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly],
1398     [ac_cv_3dnow_inline],
1399     [CFLAGS="${CFLAGS_save}"
1400      AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
1401                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
1402 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1403   AC_DEFINE(CAN_COMPILE_3DNOW, 1,
1404             [Define to 1 if 3D Now! inline assembly is available.])
1405   VLC_ADD_PLUGIN([memcpy3dn])
1406 ])
1407
1408 AC_ARG_ENABLE(altivec,
1409 [  --disable-altivec       disable AltiVec optimizations (default auto)],, [
1410   AS_IF([test "${host_cpu}" = "powerpc"],
1411         [enable_altivec=yes], [enable_altivec=no])
1412 ])
1413 AS_IF([test "${enable_altivec}" = "yes"], [
1414   ARCH="${ARCH} altivec";
1415   AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1416     [ac_cv_altivec_inline],
1417     [CFLAGS="${CFLAGS_save}"
1418      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1419          ac_cv_altivec_inline="yes",
1420          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
1421           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1422             [ac_cv_altivec_inline="-Wa,-m7400"],
1423             ac_cv_altivec_inline=no)
1424          ])])
1425   AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1426     AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1427               [Define to 1 if AltiVec inline assembly is available.])
1428     AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1429       VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
1430       VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
1431       VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1432       VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1433       VLC_ADD_CFLAGS([libvlc],[${ac_cv_altivec_inline}])
1434     ])
1435     VLC_ADD_PLUGIN([memcpyaltivec])
1436     VLC_ADD_PLUGIN([i420_yuy2_altivec])
1437   ])
1438
1439 dnl The AltiVec C extensions
1440 dnl
1441 dnl There are several possible cases:
1442 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1443 dnl                      need <altivec.h>
1444 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1445 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1446 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1447 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1448 dnl - Others: test should fail
1449   AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1450   [ac_cv_c_altivec],
1451   [# OS X/PPC test (gcc 4.x)
1452    CFLAGS="${CFLAGS_save} -mpim-altivec -force_cpusubtype_ALL"
1453    AC_TRY_COMPILE([vector unsigned char foo;],
1454      [vec_ld(0, (unsigned char *)0);],
1455      [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1456      [# OS X/PPC test (gcc 3.x)
1457       CFLAGS="${CFLAGS_save} -faltivec"
1458       AC_TRY_COMPILE([vector unsigned char foo;],
1459         [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1460         [ac_cv_c_altivec="-faltivec"],
1461         dnl Below this are the Linux tests
1462         [# Linux/PPC test (gcc 4.x)
1463          CFLAGS="${CFLAGS_save} -maltivec"
1464          AC_TRY_COMPILE([#include <altivec.h>],
1465            [vec_ld(0, (unsigned char *)0);],
1466            [ac_cv_c_altivec="-maltivec"],
1467            [# Linux/PPC test (gcc 3.3)
1468             CFLAGS="${CFLAGS_save} -maltivec -mabi=altivec"
1469             AC_TRY_COMPILE([#include <altivec.h>],
1470               [vec_ld(0, (unsigned char *)0);],
1471               [ac_cv_c_altivec=""
1472                ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1473               [# Linux/PPC test (gcc 3.3)
1474                CFLAGS="${CFLAGS_save} -fvec"
1475                AC_TRY_COMPILE([#include <altivec.h>],
1476                  [vec_ld(0, (unsigned char *)0);],
1477                  [ac_cv_c_altivec="-fvec"],
1478                  [ac_cv_c_altivec=no])
1479               ])
1480            ])
1481         ])
1482      ])
1483    CFLAGS="${CFLAGS_save}"
1484   ])
1485   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1486     CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
1487   ])
1488
1489   AC_CHECK_HEADERS(altivec.h)
1490   CPPFLAGS="${CPPFLAGS_save}"
1491   
1492   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1493     AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1,
1494               [Define to 1 if C AltiVec extensions are available.])
1495     VLC_ADD_CFLAGS([libvlc],[${ac_cv_c_altivec}])
1496     VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
1497     VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1498     VLC_ADD_PLUGIN([memcpyaltivec])
1499     VLC_ADD_PLUGIN([i420_yuy2_altivec])
1500   ])
1501
1502   AC_CACHE_CHECK([if linker needs -framework vecLib],
1503     [ac_cv_ld_altivec],
1504     [LDFLAGS="${LDFLAGS_vlc} -Wl,-framework,vecLib"
1505      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
1506      LDFLAGS="${LDFLAGS_save}"
1507     ])
1508   AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1509     VLC_ADD_LDFLAGS([libvlc idctaltivec motionaltivec memcpyaltivec],[-Wl,-framework,vecLib])
1510   ])
1511 ])
1512
1513 dnl
1514 dnl  Special arch tuning
1515 dnl
1516 AC_ARG_WITH(tuning,
1517 [  --with-tuning=ARCH      enable special tuning for an architecture
1518                           (default Pentium 2 on IA-32 and G4 on PPC)])
1519 if test -n "${with_tuning}"; then
1520     if test "${with_tuning}" != "no"; then
1521         CFLAGS_TUNING="-mtune=${with_tuning}"
1522     fi
1523 else
1524     if test "${SYS}" = "darwin" -a "${host_cpu}" != "powerpc"; then
1525         CFLAGS_TUNING="-march=pentium-m -mtune=prescott"
1526     elif test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "i386"; then
1527         CFLAGS_TUNING="-mtune=pentium2"
1528     elif test "${host_cpu}" = "x86_64"; then
1529         CFLAGS_TUNING="-mtune=athlon64"
1530     elif test "${host_cpu}" = "powerpc"; then
1531         CFLAGS_TUNING="-mtune=G4";
1532     fi
1533 fi
1534
1535 dnl NOTE: this can't be cached cleanly
1536 AS_IF([test "${CFLAGS_TUNING}"],
1537    [CFLAGS_save="${CFLAGS}"
1538     CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1539
1540     AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1541     AC_COMPILE_IFELSE([ ],
1542                       [tuning="yes"],
1543                       [CFLAGS_TUNING=""; tuning="no"
1544                        AS_IF([test "${with_tuning}"],
1545                              [AC_MSG_ERROR([requested tuning not supported])])])
1546
1547     AC_MSG_RESULT([$tuning])
1548     CFLAGS="${CFLAGS_save}"
1549 ])
1550
1551 dnl
1552 dnl  Memory usage
1553 dnl
1554 AC_ARG_ENABLE(optimize-memory,
1555 [  --enable-optimize-memory optimize memory usage over performance])
1556 if test "${enable_optimize_memory}" = "yes"; then
1557   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1558 fi
1559
1560 dnl
1561 dnl  Enable/disable optimizations
1562 dnl
1563 AC_ARG_ENABLE(optimizations,
1564 [  --disable-optimizations disable compiler optimizations (default enabled)])
1565 if test "${enable_optimizations}" != "no"; then
1566    if test "${enable_optimize_memory}" = "yes"; then
1567       enable_optimizations="size"
1568    else
1569       enable_optimizations="speed"
1570    fi
1571 fi
1572
1573 dnl
1574 dnl  Debugging mode
1575 dnl
1576 AC_ARG_ENABLE(debug,
1577 [  --enable-debug          debug mode (default disabled)])
1578 test "${enable_debug}" != "yes" && enable_debug="no"
1579 AH_TEMPLATE(NDEBUG,
1580             [Define to 1 if debug code should NOT be compiled])
1581 AS_IF([test "x${enable_debug}" = "xno"], [AC_DEFINE(NDEBUG)])
1582
1583 dnl
1584 dnl  Test coverage
1585 dnl
1586 AC_ARG_ENABLE(coverage,
1587         [  --enable-coverage       build for test coverage (default disabled)],,
1588         [enable_coverage="no"])
1589 AS_IF([test "${enable_coverage}" != "no"], [
1590         CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
1591         CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
1592         LDFLAGS="-lgcov ${LDFLAGS}"
1593         dnl ugly...
1594         CFLAGS_save="${CFLAGS}"
1595         CXXFLAGS_save="${CXXFLAGS}"
1596         LDFLAGS_save="${LDFLAGS}"
1597 ])
1598
1599 dnl
1600 dnl  Enable release-specific flags
1601 dnl
1602 AC_ARG_ENABLE(release,
1603 [  --enable-release        activate extra optimizations (default disabled)])
1604 test "${enable_release}" != "yes" && enable_release="no"
1605
1606 dnl
1607 dnl Stream output
1608 dnl
1609 AC_ARG_ENABLE(sout,
1610   [  --enable-sout           Stream output modules (default enabled)])
1611 AS_IF([test "${enable_sout}" != "no"], [
1612   AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1613 ])
1614 AM_CONDITIONAL(ENABLE_SOUT, [test "${enable_sout}" != "no"])
1615
1616 AC_ARG_ENABLE(switcher,
1617   [  --enable-switcher       Stream-out switcher plugin (default disabled)])
1618
1619 dnl Check for libshout
1620 AC_ARG_ENABLE(shout,
1621   [  --enable-shout          libshout output plugin (default disabled)])
1622 if test "${enable_shout}" = "yes"; then
1623   PKG_CHECK_MODULES(SHOUT, shout >= 2.1,
1624     [AC_DEFINE(HAVE_SHOUT, 1, [Define if you have the libshout library])
1625      VLC_ADD_PLUGIN([access_output_shout])
1626      VLC_ADD_LIBS([access_output_shout],[$SHOUT_LIBS])
1627      VLC_ADD_CFLAGS([access_output_shout],[$SHOUT_CFLAGS])],
1628     [AC_MSG_WARN(libshout library not found)])
1629 fi
1630
1631 dnl Lua modules
1632 AC_ARG_ENABLE(lua,
1633   AS_HELP_STRING([--enable-lua],[lua playlist, metafetcher and interface 
1634                   plugins (default enabled)]))
1635 if test "${enable_lua}" != "no"
1636 then
1637   PKG_CHECK_MODULES(LUA, lua5.1,
1638     [ have_lua=yes ],
1639     [
1640     AC_MSG_WARN([lua5.1 not found, trying lua >= 5.1 instead])
1641     PKG_CHECK_MODULES(LUA, lua >= 5.1,
1642       [ have_lua=yes ],
1643       [
1644         have_lua=yes
1645         AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1646           [],
1647           [ have_lua=no ] )
1648         AC_CHECK_LIB(  lua5.1 , luaL_newstate,
1649           [LUA_LIBS="-llua5.1"],
1650           AC_CHECK_LIB( lua51 , luaL_newstate,
1651             [LUA_LIBS="-llua51"],
1652             AC_CHECK_LIB( lua , luaL_newstate,
1653               [LUA_LIBS="-llua"],
1654               [ have_lua=no
1655                 AC_MSG_WARN([lua >= 5.1 not found!])
1656               ])
1657           )
1658         )
1659       ])
1660     ])
1661   if test "x${have_lua}" = "xyes" ;  then
1662      AC_DEFINE(HAVE_LUA, 1, [Define if you have the lua library])
1663      VLC_ADD_LIBS([lua],[$LUA_LIBS])
1664      VLC_ADD_CFLAGS([lua],[$LUA_CFLAGS])
1665   fi
1666 fi
1667 AM_CONDITIONAL(BUILD_LUA, [test "${have_lua}" = "yes"])
1668
1669 dnl
1670 dnl HTTP daemon
1671 dnl
1672 AC_ARG_ENABLE(httpd,
1673   [  --enable-httpd          HTTP daemon (default enabled)])
1674 if test "${enable_httpd}" != "no"
1675 then
1676   VLC_ADD_PLUGIN([http])
1677   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
1678 fi
1679 AM_CONDITIONAL(BUILD_HTTPD, [test "${enable_httpd}" != "no"])
1680
1681 dnl
1682 dnl libproxy support
1683 dnl
1684 AC_ARG_ENABLE(libproxy,
1685   [  --enable-libproxy       libproxy support (default auto)])
1686 AS_IF([test "${enable_libproxy}" != "no"], [
1687   AC_CHECK_HEADERS(proxy.h, [
1688     VLC_ADD_LIBS([access_http],[-lproxy])
1689   ], [
1690     AS_IF([test "x${enable_libproxy}" != "x"], [
1691       AC_MSG_ERROR([libproxy could not be found on your system])
1692     ])
1693   ])
1694 ])
1695
1696 dnl
1697 dnl VideoLAN manager
1698 dnl
1699 AC_ARG_ENABLE(vlm,
1700   [  --enable-vlm            VideoLAN manager (default enabled)],,
1701   [enable_vlm="${enable_sout}"])
1702 AS_IF([test "${enable_vlm}" != "no"], [
1703   AS_IF([test "${enable_sout}" = "no"], [
1704     AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1705   ])
1706   AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1707   VLC_ADD_PLUGIN([telnet])
1708 ])
1709 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1710
1711 dnl
1712 dnl Growl notification plugin
1713 dnl
1714 AC_ARG_ENABLE(growl,
1715   [  --enable-growl          growl notification plugin (default disabled)],,
1716   [enable_growl=no])
1717 AS_IF([test "${enable_growl}" != "no"], [
1718     VLC_ADD_PLUGIN([growl_udp])
1719     AC_CHECK_HEADERS(Growl/GrowlDefines.h, [
1720       VLC_ADD_PLUGIN([growl])
1721       VLC_ADD_LDFLAGS([growl], [-Wl,-framework,Growl,-framework,AppKit])
1722     ])
1723   ]
1724 )
1725
1726 dnl
1727 dnl Libnotify notification plugin
1728 dnl
1729
1730 AC_ARG_ENABLE(notify,
1731   [  --enable-notify         libnotify notification plugin (default enabled)])
1732 AS_IF([test "${enable_notify}" != "no" -a "${SYS}" != "mingw32"], [
1733     PKG_CHECK_MODULES(NOTIFY, libnotify,
1734       [
1735         VLC_ADD_PLUGIN([notify])
1736         VLC_ADD_CFLAGS(notify, [$NOTIFY_CFLAGS])
1737         VLC_ADD_LIBS(notify, [$NOTIFY_LIBS])
1738       ],[
1739     AS_IF([test "${enable_notify}" = "yes"],[
1740         AC_MSG_WARN( libnotify not found) ])
1741       ])
1742   ])
1743
1744 dnl
1745 dnl Audioscrobbler plugin
1746 dnl
1747
1748 AC_ARG_ENABLE(audioscrobbler,
1749   [  --disable-audioscrobbler Last.fm submission plugin (default enabled)])
1750 AS_IF([test "${enable_audioscrobbler}" != "no"], [
1751         VLC_ADD_PLUGIN([audioscrobbler])
1752   ])
1753
1754 dnl
1755 dnl Musicbrainz plugin
1756 dnl
1757 AC_ARG_ENABLE(musicbrainz,
1758   [  --enable-musicbrainz    MusicBrainz support (default disabled) ])
1759   AS_IF([test "${enable_musicbrainz}" = "yes"],[
1760       PKG_CHECK_MODULES(MUSICBRAINZ, libmusicbrainz,
1761     [ VLC_ADD_PLUGIN([musicbrainz])
1762       VLC_ADD_LIBS([musicbrainz],[$MUSICBRAINZ_LIBS])
1763       VLC_ADD_CFLAGS([musicbrainz],[$MUSICBRAINZ_CFLAGS])  ],
1764        [AC_MSG_WARN(MusicBrainz library not found)])
1765    ])
1766
1767
1768 dnl
1769 dnl Taglibplugin
1770 dnl
1771 AC_ARG_ENABLE(taglib,
1772   [  --disable-taglib Taglib support (default enabled) ])
1773   AS_IF([test "${enable_taglib}" != "no"],[
1774     PKG_CHECK_MODULES(TAGLIB, taglib,
1775       [ AC_DEFINE( HAVE_TAGLIB, 1, [Define if you have taglib plugin built] )
1776         VLC_ADD_PLUGIN([taglib])
1777         VLC_ADD_LIBS([taglib],[$TAGLIB_LIBS -lz])
1778        VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS]) ],
1779       [AC_MSG_WARN(TagLib library not found)])
1780   ])
1781
1782
1783 dnl
1784 dnl  Input plugins
1785 dnl
1786
1787 AC_ARG_WITH(,[Input plugins:])
1788
1789 dnl  live555 input
1790 dnl
1791 if test "${enable_livedotcom}" 
1792 then
1793   AC_MSG_WARN(--{en|dis}able-livedotcom is deprecated. Use --{en|dis}able-live555 instead.)
1794 fi
1795 if test "${enable_livedotcom}" = "no"
1796 then
1797   enable_live555="no"
1798 fi
1799
1800 AC_ARG_ENABLE(live555,
1801 [  --enable-live555        live555 RTSP input plugin (default enabled)])
1802 if test "${enable_live555}" != "no"; then
1803   AC_ARG_WITH(live555-tree,
1804     [    --with-live555-tree=PATH live.com tree for static linking])
1805
1806   dnl
1807   dnl test for --with-live555-tree
1808   dnl
1809   if test "${with_livedotcom_tree}" 
1810   then
1811     AC_MSG_WARN(--with-livedotcom-tree is deprecated. Use --with-live555-tree instead.)
1812   with_live555_tree="${with_livedotcom_tree}"
1813   fi
1814
1815   if test -z "${with_live555_tree}" -a "${CXX}" != ""; then
1816     AC_LANG_PUSH(C++)
1817     CPPFLAGS_save="${CPPFLAGS}"
1818     CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1819     if test "${SYS}" = "solaris"; then
1820       CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1821     fi
1822     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1823
1824     AC_CHECK_HEADERS(liveMedia_version.hh, [
1825       AC_MSG_CHECKING(for liveMedia version >= 1214895600 )
1826       AC_EGREP_CPP(yes,
1827         [#include <liveMedia_version.hh>
1828          #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
1829          #if LIVEMEDIA_LIBRARY_VERSION_INT < 1214895600
1830          yes
1831          #endif
1832          #endif],
1833         [AC_MSG_RESULT([no])
1834          AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia. 
1835 lternatively you can use --disable-live555 to disable the liveMedia plugin.])
1836       ],[
1837          AC_MSG_RESULT([yes])
1838          ])
1839     ])
1840      other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1841      other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
1842       if test "${SYS}" = "mingw32"; then
1843         # add ws2_32 for closesocket, select, recv
1844         other_libs="$other_libs -lws2_32"
1845       fi
1846     dnl We need to check for pic because live555 don't provide shared libs
1847     dnl and we want to build a plugins so we need -fPIC on some arch.
1848     AC_CHECK_HEADERS(liveMedia.hh, [
1849       VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1850         AC_CHECK_LIB(liveMedia_pic, main, [
1851           VLC_ADD_PLUGIN([live555])
1852          VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
1853          ],[
1854         AC_CHECK_LIB(liveMedia, main, [
1855           VLC_ADD_PLUGIN([live555])
1856           VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1857         ],[],[${other_libs}]) ],[${other_libs_pic}])
1858     ])
1859     CPPFLAGS="${CPPFLAGS_save}"
1860     AC_LANG_POP(C++)
1861   else
1862     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_live555_tree})
1863     real_live555_tree="`cd ${with_live555_tree} 2>/dev/null && pwd`"
1864     if test -z "${real_live555_tree}"; then
1865       dnl  The given directory can't be found
1866       AC_MSG_RESULT(no)
1867       AC_MSG_ERROR([cannot cd to ${with_live555_tree}])
1868     fi
1869     if test -f "${real_live555_tree}/liveMedia/libliveMedia.a"; then
1870       AC_MSG_RESULT(${real_live555_tree}/liveMedia/libliveMedia.a)
1871
1872       AC_CHECK_HEADERS(${real_live555_tree}/liveMedia/include/liveMedia_version.hh,[
1873         AC_MSG_CHECKING(for liveMedia version >= 1214895600 )
1874         AC_EGREP_CPP(yes,
1875           [#include "${real_live555_tree}/liveMedia/include/liveMedia_version.hh"
1876            #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
1877            #if LIVEMEDIA_LIBRARY_VERSION_INT < 1214895600
1878            yes
1879            #endif
1880            #endif],
1881           [AC_MSG_RESULT([no])
1882            AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia. 
1883 lternatively you can use --disable-live555 to disable the liveMedia plugin.])
1884         ],[
1885            AC_MSG_RESULT([yes])
1886            ])
1887       ])
1888
1889       VLC_ADD_PLUGIN([live555])
1890
1891       if test "${SYS}" = "mingw32"; then
1892         # add ws2_32 for closesocket, select, recv
1893         VLC_ADD_LIBS([live555],[-lws2_32])
1894       fi
1895
1896       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/liveMedia -lliveMedia])
1897       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1898       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/groupsock -lgroupsock])
1899       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/UsageEnvironment -lUsageEnvironment])
1900
1901       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/BasicUsageEnvironment/include])
1902       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/groupsock/include])
1903       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/liveMedia/include])
1904       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/UsageEnvironment/include ])
1905       if test "${SYS}" = "solaris"; then
1906         VLC_ADD_CXXFLAGS([live555],[-DSOLARIS])
1907       fi
1908     else
1909       dnl  The given live555 wasn't built
1910         AC_MSG_RESULT(no)
1911       if test "${enable_live555}" = "yes"; then
1912         AC_MSG_ERROR([cannot find ${real_live555_tree}/liveMedia/libliveMedia.a, make sure you compiled live555 in ${with_live555_tree}])
1913       fi        
1914     fi
1915   fi
1916 fi
1917
1918 dnl
1919 dnl  special access module for dc1394 input
1920 dnl
1921 AC_ARG_ENABLE(dc1394,
1922   [  --enable-dc1394         dc1394 access module (default disabled)])
1923 if test "${enable_dc1394}" = "yes"
1924 then
1925   AC_CHECK_HEADERS(libraw1394/raw1394.h, [
1926     AC_CHECK_LIB( raw1394, raw1394_get_nodecount, [
1927         AC_CHECK_HEADERS(libdc1394/dc1394_control.h , [
1928 dnl         AC_CHECK_LIB( dc1394_control, dc1394_setup_capture, [
1929               VLC_ADD_PLUGIN([dc1394])
1930               VLC_ADD_LIBS([dc1394],[-ldc1394_control -lraw1394])
1931 dnl         ],
1932 dnl         [
1933 dnl           AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1934 dnl         ])
1935       ],
1936       [
1937         AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1938       ])
1939     ],
1940     [
1941       AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1942     ])
1943   ],
1944   [
1945     AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1946   ])
1947 fi
1948
1949 dnl
1950 dnl dv module: digital video module check for libraw1394
1951 dnl
1952 AC_ARG_ENABLE(dv,
1953 [  --enable-dv             dv input module (default disabled)])
1954 if test "${enable_dv}" = "yes"
1955 then
1956   AC_ARG_WITH(dv-raw1394,
1957   [    --with-dv-raw1394=PATH   libraw1394 headers and libraries])
1958   AC_ARG_WITH(dv-raw1394-tree,
1959   [    --with-dv-raw1394=PATH   libraw1394 tree for static linking])
1960
1961   if test -z "${with_dv_raw1394}" -a "${with_dv_raw1394}" != ""
1962   then
1963     AC_MSG_CHECKING(for raw1394 headers in ${with_dv_raw1394})
1964     if test -f ${with_dv_raw1394}/include/libraw1394/raw1394.h
1965     then
1966       dnl  Use ${with_dv_raw1394}/include/libraw1394/raw1394.h
1967       AC_MSG_RESULT(yes)
1968       VLC_ADD_PLUGIN([access_dv])
1969       VLC_ADD_LIBS([access_dv],[-L${with_dv_raw1394}/lib -lraw1394 -lpthread])
1970       VLC_ADD_CPPFLAGS([access_dv],[-I${with_dv_raw1394}/include])
1971     else
1972       dnl  No libraw1394 could be found, sorry
1973       AC_MSG_RESULT(no)
1974       AC_MSG_ERROR([cannot find ${with_dv_raw1394}/include/libraw1394/raw1394.h])
1975     fi
1976   else
1977     AC_CHECK_HEADERS(libraw1394/raw1394.h,
1978     [ VLC_ADD_PLUGIN([access_dv])
1979         VLC_ADD_LIBS([access_dv],[-lraw1394 -lavc1394])
1980     ],[
1981         if test -n "${enable_dv}"
1982         then
1983           AC_MSG_ERROR([cannot find libraw1394 headers])
1984         fi
1985     ])
1986   fi
1987
1988   dnl Check for static linking of libraw1394
1989   if test -z "${with_dv_raw1394_tree}" -a "${with_dv_raw1394_tree}" != ""
1990   then
1991     AC_MSG_CHECKING(for libraw1394.a in ${with_dv_raw1394_tree})
1992     real_dv_raw1394_tree="`cd ${with_dv_raw1394_tree} 2>/dev/null && pwd`"
1993     if test -z "${real_dv_raw1394_tree}"
1994     then
1995       dnl  The given directory can't be found
1996       AC_MSG_RESULT(no)
1997       AC_MSG_ERROR([cannot cd to ${real_dv_raw1394_tree}])
1998     fi
1999     if test -f "${real_dv_raw1394_tree}/src/.libs/libraw1394.a"
2000     then
2001       dnl  Use a custom libraw1394
2002       AC_MSG_RESULT(${real_dv_raw1394_tree}/src/.libs/libraw1394.a)
2003       VLC_ADD_PLUGIN([access_dv])
2004       VLC_ADD_LIBS([access_dv],[-L${real_dv_raw1394_tree}/src/.libs -lraw1394])
2005       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_raw1394_tree}])
2006     else
2007       dnl  The given libraw1394 wasn't built
2008       AC_MSG_RESULT(no)
2009       AC_MSG_ERROR([cannot find ${real_dv_raw1394_tree}/src/.libs/libraw1394.a, make sure you compiled libraw1394 in ${with_dv_raw1394_tree}])
2010     fi
2011   fi
2012
2013   dnl
2014   dnl Check for libavc1394
2015   dnl
2016
2017   AC_ARG_WITH(dv-avc1394,
2018   [    --with-dv-avc1394=PATH   libavc1394 headers and libraries])
2019   AC_ARG_WITH(dv-avc1394-tree,
2020   [    --with-dv-avc1394=PATH   libavc1394 tree for static linking])
2021
2022   if test -z "${with_dv_avc1394}" -a "${with_dv_avc1394}" != ""
2023   then
2024     AC_MSG_CHECKING(for avc1394 headers in ${with_dv_avc1394})
2025     if test -f ${with_dv_avc1394}/include/libavc1394/avc1394.h
2026     then
2027       dnl  Use ${with_dv_avc1394}/include/libavc1394/avc1394.h
2028       AC_MSG_RESULT(yes)
2029       VLC_ADD_LIBS([access_dv],[-L${with_dv_avc1394}/lib -lavc1394 -lrom1394 -lpthread])
2030       VLC_ADD_CPPFLAGS([access_dv],[-I${with_avc1394}/include])
2031     else
2032       dnl  No libavc1394 could be found, sorry
2033       AC_MSG_RESULT(no)
2034       AC_MSG_ERROR([cannot find ${with_dv_avc1394}/include/libavc1394/avc1394.h])
2035     fi
2036   else
2037     AC_CHECK_HEADERS(libavc1394/avc1394.h,
2038     [ VLC_ADD_LIBS([access_dv],[-lavc1394 -lrom1394 -lpthread])
2039     ],[
2040         if test -n "${enable_dv}"
2041         then
2042           AC_MSG_ERROR([cannot find libavc1394 headers])
2043         fi
2044     ])
2045   fi
2046
2047   dnl Check for static linking of libavc1394
2048   if test -z "${with_dv_avc1394_tree}" -a "${with_dv_avc1394_tree}" != ""
2049   then
2050     AC_MSG_CHECKING(for libavc1394.a in ${with_dv_avc1394_tree})
2051     real_dv_avc1394_tree="`cd ${with_dv_avc1394_tree} 2>/dev/null && pwd`"
2052     if test -z "${real_dv_avc1394_tree}"
2053     then
2054       dnl  The given directory can't be found
2055       AC_MSG_RESULT(no)
2056       AC_MSG_ERROR([cannot cd to ${real_dv_avc1394_tree}])
2057     fi
2058     if test -f "${real_dv_avc1394_tree}/src/.libs/libavc1394.a"
2059     then
2060       dnl  Use a custom libavc1394
2061       AC_MSG_RESULT(${real_dv_avc1394_tree}/src/.libs/libavc1394.a)
2062       VLC_ADD_LIBS([access_dv],[-L${real_dv_avc1394_tree}/src/.libs -lavc1394 -lrom1394 -lpthread])
2063       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_avc1394_tree}])
2064     else
2065       dnl  The given libavc1394 wasn't built
2066       AC_MSG_RESULT(no)
2067       AC_MSG_ERROR([cannot find ${real_dv_avc1394_tree}/src/.libs/libavc1394.a, make sure you compiled libavc1394 in ${with_dv_avc1394_tree}])
2068     fi
2069   fi
2070 fi
2071
2072 dnl
2073 dnl dvdread module: check for libdvdread
2074 dnl
2075 AC_ARG_ENABLE(dvdread,
2076 [  --enable-dvdread        dvdread input module (default disabled)])
2077 if test "${enable_dvdread}" != "no"
2078 then
2079   AC_ARG_WITH(dvdread,
2080   [    --with-dvdread=PATH   libdvdread headers and libraries])
2081   AC_ARG_WITH(dvdread-tree,
2082   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
2083
2084   dnl Temporary hack (yeah, sure ;)
2085   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2086       VLC_ADD_LIBS([dvdread],[-ldvdcss])
2087   fi
2088
2089   if test -z "${with_dvdread}"
2090   then
2091     if test -z "${with_dvdread_tree}"
2092     then
2093       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
2094         [ VLC_ADD_PLUGIN([dvdread])
2095           VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
2096         ],[
2097           AC_CHECK_HEADERS(libdvdread/dvd_reader.h,
2098             [ VLC_ADD_PLUGIN([dvdread])
2099               VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
2100             ],[
2101               if test -n "${enable_dvdread}"
2102               then
2103               AC_MSG_ERROR([cannot find libdvdread headers])
2104              fi
2105            ])
2106         ])
2107     else
2108       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
2109       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
2110       if test -z "${real_dvdread_tree}"
2111       then
2112         dnl  The given directory can't be found
2113         AC_MSG_RESULT(no)
2114         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
2115       fi
2116       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
2117       then
2118         dnl  Use a custom libdvdread
2119         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
2120         VLC_ADD_PLUGIN([dvdread])
2121         VLC_ADD_LIBS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LIBS_dvdcss}])
2122         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
2123       else
2124         dnl  The given libdvdread wasn't built
2125         AC_MSG_RESULT(no)
2126         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
2127       fi
2128     fi
2129   else
2130     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
2131     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
2132     then
2133       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
2134       AC_MSG_RESULT(yes)
2135       VLC_ADD_PLUGIN([dvdread])
2136       VLC_ADD_LIBS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LIBS_dvdcss}])
2137       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
2138     else
2139       dnl  No libdvdread could be found, sorry
2140       AC_MSG_RESULT(no)
2141       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
2142     fi
2143   fi
2144 fi
2145
2146 dnl
2147 dnl  libdvdnav plugin
2148 dnl
2149 AC_ARG_ENABLE(dvdnav,
2150   [  --enable-dvdnav         dvdnav input module (default enabled)])
2151 if test "${enable_dvdnav}" != "no"
2152 then
2153   dnl Same hack than dvdread
2154   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2155       VLC_ADD_LIBS([dvdnav],[-ldvdcss])
2156   fi
2157
2158   DVDNAV_PATH="${PATH}"
2159   AC_ARG_WITH(dvdnav-config-path,
2160     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
2161     [ if test "${with_dvdnav_config_path}" != "no"
2162       then
2163         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
2164       fi ])
2165   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
2166   if test "${DVDNAV_CONFIG}" != "no"
2167   then
2168     VLC_ADD_PLUGIN([dvdnav])
2169     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
2170     VLC_ADD_LIBS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
2171   fi
2172 fi
2173
2174 dnl
2175 dnl  Windows DirectShow access module
2176 dnl
2177 AC_ARG_ENABLE(dshow,
2178   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
2179 if test "${enable_dshow}" != "no"
2180 then
2181   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2182   then
2183     AC_LANG_PUSH(C++)
2184       AC_CHECK_HEADERS(dshow.h,
2185       [ VLC_ADD_PLUGIN([dshow])
2186         VLC_ADD_CXXFLAGS([dshow],[])
2187         VLC_ADD_LIBS([dshow],[-lole32 -loleaut32 -luuid]) ])
2188     AC_LANG_POP(C++)
2189   fi
2190 fi
2191
2192 dnl
2193 dnl  Windows DirectShow BDA access module
2194 dnl
2195 AC_ARG_ENABLE(bda,
2196   AS_HELP_STRING([--enable-bda],[Win32 DirectShow BDA support (default 
2197                   enabled on Win32)]))
2198 if test "${enable_bda}" != "no"
2199 then
2200   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2201   then
2202       AC_CHECK_HEADERS(dshow.h,
2203       [ VLC_ADD_PLUGIN([bda])
2204         VLC_ADD_CXXFLAGS([bda],[])
2205         VLC_ADD_LIBS([bda],[-lstrmiids -lole32 -loleaut32 -luuid]) ])
2206   fi
2207 fi
2208
2209
2210 dnl
2211 dnl  OpenCV wrapper and example filters
2212 dnl
2213 AC_ARG_ENABLE(opencv,
2214   [  --enable-opencv         OpenCV (computer vision) filter (default disabled)])
2215 if test "${enable_opencv}" = "yes" -a "${CXX}" != "";
2216 then
2217   AC_ARG_WITH(opencv-tree,
2218   [    --with-opencv-tree=PATH opencv tree for linking])
2219     if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2220     then
2221       test -z "${with_opencv_tree}" && AC_MSG_ERROR([You have to specify --with-opencv-tree])
2222           AC_MSG_CHECKING(for opencv in ${with_opencv_tree})
2223           if test -f ${with_opencv_tree}/cv/include/cv.h -a -f ${with_opencv_tree}/cxcore/include/cxcore.h \
2224             -a -f ${with_opencv_tree}/cvaux/include/cvaux.h -a -f ${with_opencv_tree}/otherlibs/highgui/highgui.h
2225       then
2226         AC_MSG_RESULT(yes)
2227         VLC_ADD_PLUGIN([opencv_wrapper])
2228         VLC_ADD_LIBS([opencv_wrapper],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2229         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])
2230         AC_LANG_PUSH(C++)
2231         VLC_ADD_PLUGIN([opencv_example])
2232         VLC_ADD_LIBS([opencv_example],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2233         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])
2234         AC_LANG_POP(C++)        
2235           else
2236         dnl  No opencv could be found, sorry
2237         AC_MSG_RESULT(no)
2238         AC_MSG_ERROR([cannot find opencv in ${with_opencv_tree}])
2239           fi
2240     else
2241       PKG_CHECK_MODULES(OPENCV, opencv,
2242         [
2243           VLC_ADD_PLUGIN([opencv_example])
2244           VLC_ADD_PLUGIN([opencv_wrapper])
2245           VLC_ADD_LIBS([opencv_example opencv_wrapper],[${OPENCV_LIBS}])
2246           VLC_ADD_CFLAGS([opencv_wrapper],[${OPENCV_CFLAGS}])
2247           VLC_ADD_CXXFLAGS([opencv_example],[${OPENCV_CFLAGS}])
2248         ],
2249         [AC_MSG_ERROR([libopencv not found!])]
2250       )
2251     fi
2252 fi
2253
2254
2255 dnl
2256 dnl  libsmbclient plugin
2257 dnl
2258 AC_ARG_ENABLE(smb,
2259   [  --enable-smb            smb input module (default enabled)])
2260 if test "${enable_smb}" != "no"; then
2261   AC_CHECK_HEADERS(libsmbclient.h,
2262     [ VLC_ADD_PLUGIN([access_smb])
2263       VLC_ADD_LIBS([access_smb],[-lsmbclient]) ],
2264     [ if test -n "${enable_smb}"; then
2265         AC_MSG_ERROR([cannot find libsmbclient headers])
2266      fi ])
2267   AC_CHECK_MEMBER([struct _SMBCCTX.close_fn],
2268     AC_DEFINE([HAVE__SMBCCTX_CLOSE_FN], 1, [Define if samba has _SMBCCTX.close_fn]),,
2269     [#include <libsmbclient.h>])
2270 fi
2271
2272 dnl
2273 dnl  libdvbpsi ts demux/mux
2274 dnl
2275 AC_ARG_ENABLE(dvbpsi,
2276   [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
2277 if test "${enable_dvbpsi}" != "no"
2278 then
2279   AC_ARG_WITH(dvbpsi,
2280   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
2281   AC_ARG_WITH(dvbpsi,
2282   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
2283   case "${with_dvbpsi}" in
2284   ""|yes)
2285     if test -z "${with_dvbpsi_tree}"
2286     then
2287       AC_CHECK_HEADERS(dvbpsi/dr.h,
2288         [ VLC_ADD_PLUGIN([ts])
2289           if test "${enable_sout}" != "no"; then
2290             VLC_ADD_PLUGIN([mux_ts])
2291           fi
2292           VLC_ADD_LIBS([mux_ts ts dvb],[-ldvbpsi]) ],
2293         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
2294         [#if defined( HAVE_STDINT_H )
2295 #   include <stdint.h>
2296 #elif defined( HAVE_INTTYPES_H )
2297 #   include <inttypes.h>
2298 #endif
2299 #include <dvbpsi/dvbpsi.h>
2300 #include <dvbpsi/descriptor.h>
2301 #include <dvbpsi/pat.h>
2302 #include <dvbpsi/pmt.h>])
2303     else
2304       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
2305       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
2306       if test -z "${real_dvbpsi_tree}"
2307       then
2308         dnl  The given directory can't be found
2309         AC_MSG_RESULT(no)
2310         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
2311       fi
2312       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
2313       then
2314         dnl  Use a custom libdvbpsi
2315         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
2316         VLC_ADD_PLUGIN([ts])
2317         if test "${enable_sout}" != "no"; then
2318           VLC_ADD_PLUGIN([mux_ts])
2319         fi
2320         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
2321         VLC_ADD_LIBS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
2322       else
2323         dnl  The given libdvbpsi wasn't built
2324         AC_MSG_RESULT(no)
2325         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
2326       fi
2327     fi
2328   ;;
2329   no)
2330     dnl  Compile without dvbpsi
2331   ;;
2332   *)
2333     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
2334     if test -z "${with_dvbpsi}"
2335     then
2336       LDFLAGS_test=""
2337       CPPFLAGS_test=""
2338     else
2339       LDFLAGS_test="-L${with_dvbpsi}/lib"
2340       CPPFLAGS_test="-I${with_dvbpsi}/include"
2341     fi
2342     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
2343     AC_CHECK_HEADERS([dvbpsi/dr.h],[
2344       VLC_ADD_PLUGIN([ts])
2345       if test "${enable_sout}" != "no"; then
2346         VLC_ADD_PLUGIN([mux_ts])
2347       fi
2348       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
2349       VLC_ADD_LIBS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
2350
2351     ],[
2352       if test -n "${enable_dvbpsi}"
2353       then
2354         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])
2355       fi
2356     ])
2357     CPPFLAGS="${CPPFLAGS_save}"
2358   ;;
2359   esac
2360   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
2361     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
2362   ], [], [${LIBS_ts}])
2363
2364 fi
2365
2366 dnl
2367 dnl  Video4Linux plugin
2368 dnl
2369 AC_ARG_ENABLE(v4l,
2370   [  --enable-v4l            Video4Linux input support (default disabled)])
2371 if test "${enable_v4l}" = "yes"
2372 then
2373   AC_ARG_WITH(v4l,
2374     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
2375   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
2376   then
2377     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
2378   fi
2379
2380   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
2381   AC_CHECK_HEADERS(linux/videodev.h, [
2382     VLC_ADD_PLUGIN([v4l])
2383   ],[])
2384   CPPFLAGS="${CPPFLAGS_save}"
2385 fi
2386
2387 dnl
2388 dnl  Video4Linux2 plugin
2389 dnl
2390 AC_ARG_ENABLE(v4l2,
2391   [  --enable-v4l2           Video4Linux2 input support (default enabled)])
2392 if test "${enable_v4l2}" != "no"
2393 then
2394   AC_ARG_WITH(v4l2,
2395     [    --with-v4l2=PATH       path to a v4l2-enabled kernel tree],[],[])
2396   if test "${with_v4l2}" != "no" -a -n "${with_v4l2}"
2397   then
2398     VLC_ADD_CPPFLAGS([v4l2],[-I${with_v4l2}/include])
2399   fi
2400
2401   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_v4l2_alsa="true", have_v4l2_alsa="false"),have_v4l2_alsa="false")
2402   if test "${have_v4l2_alsa}" = "true"
2403   then
2404     CFLAGS="${CFLAGS_save}"
2405     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
2406                     #define ALSA_PCM_NEW_SW_PARAMS_API
2407                     #include <alsa/asoundlib.h>],
2408        [snd_pcm_hw_params_get_period_time(0,0,0);],
2409         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
2410     VLC_ADD_LDFLAGS([v4l2],[-lasound -lm -ldl])
2411     AC_DEFINE(HAVE_ALSA, 1, Define if ALSA is present.)
2412   fi
2413
2414   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l2}"
2415   AC_CHECK_HEADERS(linux/videodev2.h, [
2416     VLC_ADD_PLUGIN([v4l2])
2417   ],[])
2418   CPPFLAGS="${CPPFLAGS_save}"
2419 fi
2420
2421
2422 dnl
2423 dnl  special access module for Hauppauge PVR cards
2424 dnl
2425 AC_ARG_ENABLE(pvr,
2426   [  --enable-pvr            PVR cards access module (default disabled)])
2427 if test "${enable_pvr}" = "yes"
2428 then
2429   VLC_ADD_PLUGIN([pvr])
2430   AC_ARG_WITH(videodev2,
2431     [  --with-videodev2=FILE   Location of videodev2.h file (default /usr/include/linux/videodev2.h)],[],[])
2432   if test "${with_videodev2}" != "no" -a -n "${with_videodev2}"
2433   then
2434     AC_DEFINE_UNQUOTED(VIDEODEV2_H_FILE, "${with_videodev2}", [Location of videodev2.h])
2435   fi
2436     
2437
2438   AC_CACHE_CHECK([for new linux/videodev2.h],
2439       [ac_cv_new_linux_videodev2_h],
2440       [AC_TRY_COMPILE([
2441           #include <sys/types.h>
2442           #   ifdef VIDEODEV2_H_FILE
2443           #   include VIDEODEV2_H_FILE
2444           #   else
2445           #   include <linux/videodev2.h>
2446           #   endif
2447           ],
2448           [struct v4l2_ext_controls ctrls; ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG; ],
2449           ac_cv_new_linux_videodev2_h=yes,
2450           ac_cv_new_linux_videodev2_h=no)])
2451   if test "${ac_cv_new_linux_videodev2_h}" != "no"; then
2452     AC_DEFINE(HAVE_NEW_LINUX_VIDEODEV2_H, 1, [Define if new linux/videodev2.h present])
2453   fi
2454 fi
2455
2456 dnl
2457 dnl  gnomeVFS access module
2458 dnl
2459 AC_ARG_ENABLE(gnomevfs,
2460   [  --enable-gnomevfs       GnomeVFS access module (default disabled)])
2461 if test "${enable_gnomevfs}" = "yes" 
2462 then
2463   PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0,
2464     VLC_ADD_LIBS([access_gnomevfs],[$GNOMEVFS_LIBS])
2465     VLC_ADD_CPPFLAGS([access_gnomevfs],[$GNOMEVFS_CPPFLAGS])
2466     VLC_ADD_CFLAGS([access_gnomevfs],[$GNOMEVFS_CFLAGS])
2467     VLC_ADD_PLUGIN([access_gnomevfs]),
2468     AC_MSG_WARN([GnomeVFS support disabled because GnomeVFS development headers not found]))
2469 fi
2470
2471 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
2472 AC_ARG_ENABLE(libcdio,
2473   [  --enable-libcdio        CD input and control library support (default enabled)])
2474
2475
2476 have_libcdio=no
2477 have_libvcdinfo=no
2478 if test "${enable_libcdio}" != "no"
2479 then
2480   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.78.2,
2481      have_libcdio=yes
2482      AC_DEFINE(HAVE_LIBCDIO, 1, 
2483      [Define if you have libcdio 0.78.2 or greater installed]),
2484      [AC_MSG_WARN(CD Reading and information library not found)])
2485
2486   PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.22,
2487      [have_libvcdinfo=yes
2488      AC_DEFINE(HAVE_VCDINFO, 1, 
2489      [Define if you have libvcdinfo 0.7.22 or greater installed])],
2490      [AC_MSG_WARN(VCD information library not found)])
2491 fi
2492
2493 dnl
2494 dnl  VCDX and CDDAX modules
2495 dnl
2496 AC_ARG_ENABLE(cddax,
2497   AS_HELP_STRING([--enable-cddax],[audio CD plugin with CD Text and CD paranoia
2498                   via libcdio (default disabled)]))
2499  
2500 AC_ARG_ENABLE(libcddb,
2501   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
2502  
2503 if test "${enable_cddax}" = "yes"
2504 then
2505   if test "$have_libcdio" = "yes"
2506   then
2507     AC_DEFINE(HAVE_CDDAX, 1, [Define for the audio CD plugin using libcdio])
2508     VLC_ADD_LIBS([cddax],[$LIBCDIO_LIBS])
2509     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
2510     VLC_ADD_PLUGIN([cddax])
2511     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
2512     VLC_ADD_LIBS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
2513     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
2514   else 
2515     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
2516     HAVE_CDDAX=no
2517   fi
2518
2519   if test "$enable_libcddb" != "no"; then
2520     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2521       HAVE_LIBCDDB=yes 
2522       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2523       VLC_ADD_LIBS([cddax],[$LIBCDDB_LIBS])
2524       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
2525       ],
2526       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2527       HAVE_LIBCDDB=no])
2528   fi
2529  
2530 fi
2531
2532 AC_ARG_ENABLE(vcdx,
2533   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2534  
2535 if test "${enable_vcdx}" = "yes"
2536 then
2537   if test "${have_libvcdinfo}" = "yes"
2538   then
2539     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2540     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2541   else 
2542     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
2543     HAVE_VCDX=no
2544   fi
2545
2546   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
2547    [VLC_ADD_LIBS([vcdx],[$LIBISO9660_LIBS])
2548     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
2549     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
2550     HAVE_VCDX=no])
2551
2552   if test "$have_libvcdinfo" = "yes"
2553   then
2554     AC_DEFINE(HAVE_VCDX, 1, 
2555     [Define for the VCD plugin using libcdio/libvcdinfo])
2556     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2557     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2558     VLC_ADD_PLUGIN([vcdx])
2559   else 
2560     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
2561     HAVE_VCDX=no
2562   fi
2563 fi
2564
2565 dnl
2566 dnl  Built-in CD-DA and VCD module
2567 dnl
2568 AC_ARG_ENABLE(cdda,           
2569   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
2570  
2571 AC_ARG_ENABLE(vcd,
2572   [  --enable-vcd            built-in VCD (default enabled)])
2573
2574 if test "${enable_vcd}" != "no"
2575 then
2576   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2577   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2578     AC_MSG_RESULT(yes)
2579     VLC_ADD_PLUGIN([vcd])
2580     VLC_ADD_PLUGIN([cdda])
2581   ],[
2582     AC_MSG_RESULT(no)
2583   ])
2584
2585   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2586   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2587     AC_MSG_RESULT(yes)
2588     VLC_ADD_PLUGIN([vcd])
2589     VLC_ADD_PLUGIN([cdda])
2590     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2591   ],[
2592     AC_MSG_RESULT(no)
2593   ])
2594
2595   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2596   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2597     AC_MSG_RESULT(yes)
2598     VLC_ADD_PLUGIN([vcd])
2599     VLC_ADD_PLUGIN([cdda])
2600     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2601   ],[
2602     AC_MSG_RESULT(no)
2603   ])
2604
2605   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2606   then
2607     VLC_ADD_PLUGIN([vcd])
2608     VLC_ADD_PLUGIN([cdda])
2609   fi
2610
2611   if test "${SYS}" = "darwin"
2612   then
2613     VLC_ADD_PLUGIN([vcd])
2614     VLC_ADD_PLUGIN([cdda])
2615     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-Wl,-framework,IOKit,-framework,CoreFoundation])
2616     VLC_ADD_LIBS([vcdx cddax cdda],[-liconv])
2617   fi
2618
2619   if test "$enable_libcddb" != "no"; then
2620     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2621       HAVE_LIBCDDB=yes 
2622       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2623       VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2624       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2625       ],:
2626       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2627       HAVE_LIBCDDB=no])
2628   fi
2629 fi
2630
2631 dnl
2632 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2633 dnl
2634 AC_ARG_ENABLE(dvb,
2635   [  --enable-dvb            DVB-S/T/C card support (default enabled)])
2636
2637 if test "${enable_dvb}" != "no"
2638 then
2639   AC_ARG_WITH(dvb,
2640   [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
2641   if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2642   then
2643     VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2644   fi
2645   CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2646   AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2647   VLC_ADD_PLUGIN([dvb])
2648   ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2649   CPPFLAGS="${CPPFLAGS_save}"
2650 fi
2651
2652 dnl
2653 dnl  Screen capture module
2654 dnl
2655 AC_ARG_ENABLE(screen,
2656   [  --enable-screen         Screen capture support (default enabled)])
2657 if test "${enable_screen}" != "no"; then
2658   if test "${SYS}" = "darwin"; then
2659     AC_CHECK_HEADERS(OpenGL/gl.h, [
2660       AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2661         VLC_ADD_PLUGIN([screen])
2662         VLC_ADD_LDFLAGS([screen],[-Wl,-framework,OpenGL,-framework,ApplicationServices])
2663       ])
2664     ])
2665   elif test "${SYS}" = "mingw32"; then
2666     VLC_ADD_PLUGIN([screen])
2667     VLC_ADD_LIBS([screen],[-lgdi32])
2668   elif test "${SYS}" = "mingwce"; then
2669     CPPFLAGS="${CPPFLAGS_save}"
2670   elif test "${SYS}" = "beos"; then
2671     VLC_ADD_PLUGIN([screen])
2672     VLC_ADD_CXXFLAGS([screen],[])
2673     VLC_ADD_LIBS([screen],[-lbe])
2674   else
2675     CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
2676     AC_CHECK_HEADERS(X11/Xlib.h, [
2677       VLC_ADD_PLUGIN([screen])
2678       VLC_ADD_LIBS([screen],[${X_LIBS} ${X_PRE_LIBS} -lX11])
2679       VLC_ADD_CPPFLAGS([screen],[${X_CFLAGS}])
2680     ])
2681     CPPFLAGS="${CPPFLAGS_save}"
2682   fi
2683 fi
2684
2685 dnl
2686 dnl  ipv6 plugin - not for QNX yet
2687 dnl
2688 have_ipv6=no
2689 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2690   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2691 ])
2692
2693 AS_IF([test "${have_ipv6}" = "yes"], [
2694   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2695
2696
2697 AC_CHECK_FUNCS(inet_ntop,[
2698   AC_DEFINE(HAVE_INET_NTOP, 1, [Define to 1 if you have inet_ntop().])])
2699
2700
2701 dnl
2702 dnl  ogg demux plugin
2703 dnl
2704 AC_ARG_ENABLE(ogg,
2705   [  --enable-ogg            Ogg demux support (default enabled)])
2706 if test "${enable_ogg}" != "no"
2707 then
2708   AC_ARG_WITH(ogg-tree,
2709   [    --with-ogg-tree=PATH  ogg tree for static linking])
2710   if test -n "${with_ogg_tree}"
2711   then
2712     AC_MSG_CHECKING(for libogg.a in ${with_ogg_tree})
2713     real_ogg_tree="`cd ${with_ogg_tree} 2>/dev/null && pwd`"
2714     if test -z "${real_ogg_tree}"
2715     then
2716       dnl  The given directory can't be found
2717       AC_MSG_RESULT(no)
2718       AC_MSG_ERROR([cannot cd to ${with_ogg_tree}])
2719     fi
2720     if test -f "${real_ogg_tree}/src/.libs/libogg.a"
2721     then
2722       dnl  Use a custom ogg
2723       AC_MSG_RESULT(${real_ogg_tree}/src/.libs/libogg.a)
2724       VLC_ADD_PLUGIN([ogg])
2725       if test "${enable_sout}" != "no"; then
2726         VLC_ADD_PLUGIN([mux_ogg])
2727       fi
2728       VLC_ADD_LIBS([ogg mux_ogg speex vorbis],[${real_ogg_tree}/src/.libs/libogg.a])
2729       VLC_ADD_CFLAGS([ogg mux_ogg speex vorbis],[-I${real_ogg_tree}/include])
2730     else
2731       dnl  The given ogg wasn't built
2732       AC_MSG_RESULT(no)
2733       AC_MSG_ERROR([cannot find ${real_ogg_tree}/src/.libs/libogg.a, make sure you compiled ogg in ${with_ogg_tree}])
2734     fi
2735   else
2736     AC_CHECK_HEADERS(ogg/ogg.h, [
2737       AC_CHECK_LIB( ogg, oggpack_read, [
2738         VLC_ADD_PLUGIN([ogg])
2739         if test "${enable_sout}" != "no"; then
2740           VLC_ADD_PLUGIN([mux_ogg])
2741         fi
2742         VLC_ADD_LIBS([ogg mux_ogg],[-logg])])
2743      ],[])
2744   fi
2745 fi
2746
2747 dnl
2748 dnl  matroska demux plugin
2749 dnl
2750 AC_ARG_ENABLE(mkv,
2751   [  --enable-mkv            Matroska demux support (default enabled)])
2752 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2753   AC_LANG_PUSH(C++)
2754   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2755     AC_MSG_CHECKING(for libebml version >= 0.7.7)
2756     AC_EGREP_CPP(yes,
2757       [#include <ebml/EbmlVersion.h>
2758        #ifdef LIBEBML_VERSION
2759        #if LIBEBML_VERSION >= 0x000706
2760        yes
2761        #endif
2762        #endif],
2763       [AC_MSG_RESULT([yes])
2764         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2765           AC_MSG_CHECKING(for libmatroska version >= 0.8.0)
2766           AC_EGREP_CPP(yes,
2767             [#include <matroska/KaxVersion.h>
2768              #ifdef LIBMATROSKA_VERSION
2769              #if LIBMATROSKA_VERSION >= 0x000705
2770              yes
2771              #endif
2772              #endif],
2773             [AC_MSG_RESULT([yes])
2774               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2775               VLC_ADD_CXXFLAGS([mkv],[])
2776               if test "${SYS}" = "darwin"; then
2777                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2778               fi
2779               AC_CHECK_LIB(ebml_pic, main, [
2780                 VLC_ADD_PLUGIN([mkv])
2781                 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2782               ],
2783                 AC_CHECK_LIB(ebml, main, [
2784                   VLC_ADD_PLUGIN([mkv])
2785                   VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2786                 ]) 
2787               )
2788             ],
2789             [AC_MSG_RESULT([no])
2790               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.])
2791           ])
2792         ])
2793       ],
2794       [AC_MSG_RESULT([no])
2795         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.])
2796     ])
2797   ])
2798   AC_LANG_POP(C++)
2799 fi
2800
2801 dnl
2802 dnl  modplug demux plugin
2803 dnl
2804 AC_ARG_ENABLE(mod,
2805   [  --enable-mod            Mod demux support (default enabled)])
2806 if test "${enable_mod}" != "no"
2807 then
2808   AC_ARG_WITH(mod-tree,
2809   [    --with-mod-tree=PATH mod tree for static linking])
2810   if test -n "${with_mod_tree}"
2811   then
2812     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2813     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2814     if test -z "${real_mod_tree}"
2815     then
2816       dnl  The given directory can't be found
2817       AC_MSG_RESULT(no)
2818       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2819     fi
2820     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2821     then
2822       dnl  Use a custom mod
2823       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2824       VLC_ADD_PLUGIN([mod])
2825       VLC_ADD_LIBS([mod],[${real_mod_tree}/src/.libs/libmodplug.a -lstdc++])
2826       VLC_ADD_CXXFLAGS([mod],[-I${real_mod_tree}/include])
2827     else
2828       dnl  The given mod wasn't built
2829       AC_MSG_RESULT(no)
2830       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2831     fi
2832   else
2833     AC_CHECK_HEADERS(libmodplug/modplug.h, [
2834       VLC_ADD_PLUGIN([mod])
2835       VLC_ADD_CXXFLAGS([mod],[])
2836       VLC_ADD_LIBS([mod],[-lmodplug -lstdc++])])
2837   fi
2838 fi
2839
2840 dnl
2841 dnl  mpc demux plugin
2842 dnl
2843 AC_ARG_ENABLE(mpc,
2844   [  --enable-mpc            Mpc demux support (default enabled)])
2845 if test "${enable_mpc}" != "no"
2846 then
2847   AC_CHECK_HEADERS(mpcdec/mpcdec.h, [
2848     VLC_ADD_PLUGIN([mpc])
2849     VLC_ADD_LIBS([mpc],[-lmpcdec])])
2850 fi
2851
2852 dnl
2853 dnl  game music emu demux plugin
2854 dnl
2855 AC_ARG_ENABLE(gme,
2856   [  --enable-gme            Game Music Emu demux support (default enabled)])
2857 if test "${enable_gme}" != "no" -a "${CXX}" != "";
2858 then
2859   AC_LANG_PUSH(C++)
2860   AC_ARG_WITH(gme-tree,
2861   [    --with-gme-tree=PATH gme tree for static linking])
2862   if test -n "${with_gme_tree}"
2863   then
2864     AC_MSG_CHECKING(for libgme.a in ${with_mod_tree})
2865     real_gme_tree="`cd ${with_gme_tree} 2>/dev/null && pwd`"
2866     if test -z "${real_gme_tree}"
2867     then
2868       dnl  The given directory can't be found
2869       AC_MSG_RESULT(no)
2870       AC_MSG_ERROR([cannot cd to ${with_gme_tree}])
2871     fi
2872     if test -f "${real_gme_tree}/gme/libgme.a"
2873     then
2874       dnl  Use a custom gme
2875       AC_MSG_RESULT(${real_gme_tree}/gme/libgme.a)
2876       VLC_ADD_PLUGIN([gme])
2877       VLC_ADD_LIBS([gme],[${real_gme_tree}/gme/libgme.a])
2878       VLC_ADD_CXXFLAGS([gme],[-I${real_gme_tree}/gme])
2879     else
2880       dnl  The given gme wasn't built
2881       AC_MSG_RESULT(no)
2882       AC_MSG_ERROR([cannot find ${real_mod_tree}/gme/libgme.a, make sure you compiled gme in ${with_gme_tree}])
2883     fi
2884   else
2885       AC_MSG_WARN([only static linking is available, you must provide a gme-tree])
2886   fi
2887   AC_LANG_POP(C++)
2888 fi
2889
2890 dnl
2891 dnl  Codec plugins
2892 dnl
2893
2894 AC_ARG_WITH(,[Codec plugins:])
2895
2896 dnl
2897 dnl  mad plugin
2898 dnl
2899 AC_ARG_ENABLE(mad,
2900   [  --enable-mad            libmad module (default enabled)])
2901 if test "${enable_mad}" != "no"
2902 then
2903   AC_ARG_WITH(mad,
2904     [    --with-mad=PATH       path to libmad],[],[])
2905   if test "${with_mad}" != "no" -a -n "${with_mad}"
2906   then
2907     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2908     VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2909   fi
2910
2911   AC_ARG_WITH(mad-tree,
2912     [    --with-mad-tree=PATH   mad tree for static linking],[],[])
2913   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2914   then
2915     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2916     if test -z "${real_mad_tree}"
2917     then
2918       dnl  The given directory can't be found
2919       AC_MSG_RESULT(no)
2920       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2921     fi
2922     dnl  Use a custom libmad
2923     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2924     if test -f ${real_mad_tree}/mad.h
2925     then
2926       AC_MSG_RESULT(yes)
2927       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2928       VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2929       LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2930       AC_CHECK_LIB(mad, mad_bit_init, [
2931         VLC_ADD_PLUGIN([mpgatofixed32])
2932         VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2933         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2934       ],[])
2935       LDFLAGS="${LDFLAGS_save}"
2936     else
2937       AC_MSG_RESULT(no)
2938       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2939     fi
2940   else
2941     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2942     LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2943     AC_CHECK_HEADERS(mad.h, ,
2944       [ 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.]) ])
2945     AC_CHECK_LIB(mad, mad_bit_init, [
2946       VLC_ADD_PLUGIN([mpgatofixed32])
2947       VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2948       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2949     CPPFLAGS="${CPPFLAGS_save}"
2950     LDFLAGS="${LDFLAGS_save}"
2951   fi
2952 fi
2953
2954 dnl
2955 dnl   libid3tag support (FIXME!!! doesn't work with new input)
2956 dnl
2957 AC_ARG_ENABLE( id3tag,
2958 [  --disable-id3tag        id3tag metadata reader plugin (default enabled)])
2959 AS_IF([test "${enable_id3tag}" != "no"], [
2960   AC_CHECK_HEADERS(id3tag.h, [
2961     AC_CHECK_HEADERS(zlib.h, [
2962       VLC_ADD_LIBS([id3tag],[-lid3tag -lz])
2963       VLC_ADD_PLUGIN([id3tag])
2964     ])
2965   ])
2966 ])
2967
2968 dnl
2969 dnl  avcodec decoder/encoder plugin
2970 dnl
2971
2972 if test "${with_ffmpeg_tree}"
2973 then
2974   AC_MSG_WARN([--with-ffmpeg-tree is deprecated. Use PKG_CONFIG_PATH instead.])
2975 fi
2976
2977 AC_ARG_ENABLE(avcodec,
2978 [  --enable-avcodec        libavcodec codec (default enabled)])
2979 if test "${enable_avcodec}" != "no"
2980 then
2981   PKG_CHECK_MODULES(AVCODEC,[libavcodec libavutil],
2982     [
2983       VLC_SAVE_FLAGS
2984       CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2985       CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2986       AC_CHECK_HEADERS(libavcodec/avcodec.h ffmpeg/avcodec.h)
2987       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
2988       VLC_ADD_PLUGIN([avcodec])
2989       VLC_ADD_LIBS([avcodec],[$AVCODEC_LIBS])
2990       VLC_ADD_CFLAGS([avcodec],[$AVCODEC_CFLAGS])
2991       VLC_RESTORE_FLAGS
2992     ],[
2993       AC_MSG_ERROR([Could not find libavcodec or libavutil. Use --disable-avcodec to ignore this error.])
2994   ])
2995 fi
2996
2997 dnl
2998 dnl  avformat demuxer/muxer plugin
2999 dnl
3000
3001 AC_ARG_ENABLE(avformat,
3002 [  --enable-avformat       libavformat containers (default enabled)])
3003 if test "${enable_avformat}" != "no"
3004 then
3005   PKG_CHECK_MODULES(AVFORMAT,[libavformat libavutil],
3006     [
3007       VLC_SAVE_FLAGS
3008       CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
3009       CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
3010       AC_CHECK_HEADERS(libavformat/avformat.h ffmpeg/avformat.h)
3011       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
3012       VLC_ADD_PLUGIN([avformat])
3013       VLC_ADD_LIBS([avformat],[$AVFORMAT_LIBS])
3014       VLC_ADD_CFLAGS([avformat],[$AVFORMAT_CFLAGS])
3015       VLC_RESTORE_FLAGS
3016     ],[
3017       AC_MSG_ERROR([Could not find libavformat or libavutil. Use --disable-avformat to ignore this error.])
3018   ])
3019 fi
3020
3021 dnl
3022 dnl  swscale image scaling and conversion plugin
3023 dnl
3024
3025 AC_ARG_ENABLE(swscale,
3026   AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion 
3027                   (default enabled)]))
3028 if test "${enable_swscale}" != "no"
3029 then
3030   PKG_CHECK_MODULES(SWSCALE,[libswscale],
3031     [
3032       VLC_SAVE_FLAGS
3033       CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
3034       CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
3035       AC_CHECK_HEADERS(libswscale/swscale.h ffmpeg/swscale.h)
3036       VLC_ADD_PLUGIN([swscale])
3037       VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
3038       VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
3039       VLC_RESTORE_FLAGS
3040     ],[
3041       AC_MSG_WARN([Could not find libswscale. Trying to enable imgresample.])
3042       enable_imgresample=yes
3043   ])
3044 fi
3045
3046 dnl
3047 dnl  avcodec (deprecated API) image scaling and conversion plugin
3048 dnl
3049 dnl  This is build as a seperate module than the avcodec one to prevent
3050 dnl  stupid run time library load errors from disabling most codecs
3051 dnl  from VLC.
3052 dnl
3053
3054 AC_ARG_ENABLE(imgresample,
3055   AS_HELP_STRING([--enable-imgresample],[deprecated libavcodec image scaling 
3056                   and conversion (default disabled)]))
3057 if test "${enable_imgresample}" = "yes"
3058 then
3059   PKG_CHECK_MODULES(IMGRESAMPLE,[libavcodec],
3060     [
3061       VLC_SAVE_FLAGS
3062       CPPFLAGS="${CPPFLAGS} ${IMGRESAMPLE_CFLAGS}"
3063       CFLAGS="${CFLAGS} ${IMGRESAMPLE_CFLAGS}"
3064       AC_CHECK_HEADERS(libavcodec/avcodec.h ffmpeg/avcodec.h)
3065       AC_CHECK_LIB(avcodec,img_resample,
3066         [
3067           VLC_ADD_PLUGIN([imgresample])
3068           VLC_ADD_LIBS([imgresample],[$IMGRESAMPLE_LIBS])
3069           VLC_ADD_CFLAGS([imgresample],[$IMGRESAMPLE_CFLAGS])
3070         ],[
3071           AC_MSG_WARN([Could not find img_resample in libavcodec.])
3072           if test "${enable_swscale}" != "no"
3073           then
3074             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.)])
3075           fi
3076         # That sed hack to add -rpath is kind of ugly but at least it fixes
3077         # detection when linking against a shared libavcodec with
3078         # a libavutil not in one of your ld.so.conf directories.
3079         # (for example a local install)
3080         ],[${IMGRESAMPLE_LIBS} `echo ${IMGRESAMPLE_LIBS}|sed s'/-L/-Wl,-rpath=/'`])
3081       VLC_RESTORE_FLAGS
3082     ],[
3083       AC_MSG_WARN([Could not find libavcodec.])
3084   ])
3085 fi
3086
3087 dnl
3088 dnl  postproc plugin
3089 dnl
3090
3091 AC_ARG_ENABLE(postproc,
3092 [  --enable-postproc       libpostproc image post-processing (default enabled)])
3093 if test "${enable_postproc}" != "no"
3094 then
3095   PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
3096     [
3097       VLC_SAVE_FLAGS
3098       CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
3099       CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
3100       AC_CHECK_HEADERS(libpostproc/postproc.h postproc/postprocess.h)
3101       VLC_ADD_PLUGIN([postproc])
3102       VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS])
3103       VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS])
3104       VLC_RESTORE_FLAGS
3105     ],[
3106       AC_MSG_ERROR([Could not find libpostproc.])
3107   ])
3108 fi
3109
3110 dnl
3111 dnl  faad decoder plugin
3112 dnl
3113 AC_ARG_ENABLE(faad,
3114 [  --enable-faad           faad codec (default disabled)])
3115 if test "${enable_faad}" = "yes"
3116 then
3117   AC_ARG_WITH(faad-tree,
3118   [    --with-faad-tree=PATH faad tree for static linking])
3119   if test -n "${with_faad_tree}"
3120   then
3121     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
3122     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
3123     if test -z "${real_faad_tree}"
3124     then
3125       dnl  The given directory can't be found
3126       AC_MSG_RESULT(no)
3127       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
3128     fi
3129     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
3130     then
3131       dnl  Use a custom faad
3132       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
3133       VLC_ADD_PLUGIN([faad])
3134       VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
3135       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
3136     else
3137       dnl  The given libfaad wasn't built
3138       AC_MSG_RESULT(no)
3139       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
3140     fi
3141   else
3142     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
3143     LDFLAGS="${LDFLAGS_save} ${LIBS_faad}"
3144     AC_CHECK_HEADERS(faad.h, ,
3145       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
3146     AC_CHECK_LIB(faad, faacDecOpen, [
3147       VLC_ADD_PLUGIN([faad])
3148       VLC_ADD_LIBS([faad],[-lfaad]) ],
3149       AC_CHECK_LIB(faad, NeAACDecOpen, [
3150         VLC_ADD_PLUGIN([faad])
3151         VLC_ADD_LIBS([faad],[-lfaad]) ],
3152         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
3153     LDFLAGS="${LDFLAGS_save}"
3154     CPPFLAGS="${CPPFLAGS_save}"
3155   fi
3156 fi
3157
3158 dnl
3159 dnl twolame encoder plugin
3160 dnl
3161 AC_ARG_ENABLE(twolame,
3162 [  --enable-twolame        twolame codec (default disabled)])
3163 if test "${enable_twolame}" = "yes"
3164 then
3165   AC_ARG_WITH(twolame-tree,
3166   [    --with-twolame-tree=PATH twolame tree for static linking])
3167   if test -n "${with_twolame_tree}"
3168   then
3169     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
3170     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
3171     if test -z "${real_twolame_tree}"
3172     then
3173       dnl  The given directory can't be found
3174       AC_MSG_RESULT(no)
3175       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
3176     fi
3177     if test -f "${real_twolame_tree}/libtwolame/.libs/libtwolame.a"
3178     then
3179       dnl  Use a custom twolame
3180       AC_MSG_RESULT(${real_twolame_tree}/libtwolame/.libs/libtwolame.a)
3181       VLC_ADD_PLUGIN([twolame])
3182       VLC_ADD_LIBS([twolame],[${real_twolame_tree}/libtwolame/.libs/libtwolame.a])
3183       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/libtwolame -DLIBTWOLAME_STATIC])
3184     else
3185       dnl  The given libtwolame wasn't built
3186       AC_MSG_RESULT(no)
3187       AC_MSG_ERROR([cannot find ${real_twolame_tree}/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
3188     fi
3189   else
3190     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame} -DLIBTWOLAME_STATIC"
3191     LDFLAGS="${LDFLAGS_save} ${LIBS_twolame}"
3192     AC_CHECK_HEADERS(twolame.h, ,
3193       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
3194     AC_CHECK_LIB(twolame, twolame_init, [
3195       VLC_ADD_PLUGIN([twolame])
3196       VLC_ADD_CPPFLAGS([twolame],[-DLIBTWOLAME_STATIC])
3197       VLC_ADD_LIBS([twolame],[-ltwolame]) ],
3198         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
3199     LDFLAGS="${LDFLAGS_save}"  
3200     CPPFLAGS="${CPPFLAGS_save}"
3201   fi
3202 fi
3203
3204 dnl
3205 dnl  QuickTime plugin
3206 dnl
3207 AC_ARG_ENABLE(quicktime,
3208   [  --enable-quicktime      QuickTime module (default enabled on MacOS X)])
3209 if test "${enable_quicktime}" != "no" &&
3210   (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
3211 then
3212   if test "${SYS}" = "mingw32"; then
3213     VLC_ADD_PLUGIN([quicktime])
3214   else
3215   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
3216     [ VLC_ADD_PLUGIN([quicktime])
3217       VLC_ADD_LDFLAGS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
3218     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
3219   fi
3220 fi
3221
3222 dnl
3223 dnl  Real plugin
3224 dnl
3225 AC_ARG_ENABLE(real,
3226   [  --enable-real           Real media module (default disabled)])
3227 if test "${enable_real}" = "yes"; then
3228   VLC_ADD_PLUGIN([realaudio])
3229   VLC_ADD_PLUGIN([realvideo])
3230 fi
3231
3232 dnl
3233 dnl  Real RTSP plugin
3234 dnl
3235 AC_ARG_ENABLE(realrtsp,
3236   [  --enable-realrtsp       Real RTSP module (default disabled)])
3237 if test "${enable_realrtsp}" = "yes"; then
3238   VLC_ADD_PLUGIN([access_realrtsp])
3239 fi
3240
3241 dnl
3242 dnl MP4 module
3243 dnl
3244 AC_CHECK_HEADERS(zlib.h, [
3245   VLC_ADD_LIBS([mp4 skins2 sap mkv gme],[-lz])
3246 ] )
3247
3248 AC_CHECK_HEADERS(sysfs/libsysfs.h, [
3249   VLC_ADD_LIBS([mp4 mkv],[-lsysfs])
3250 ] )
3251
3252 dnl
3253 dnl skins2 module
3254 dnl
3255 AC_ARG_ENABLE(libtar,
3256   [  --enable-libtar support for skins2 (default enabled)])
3257
3258 AS_IF([test "${enable_libtar}" != "no"],[
3259   AC_CHECK_HEADERS(libtar.h, [
3260     VLC_ADD_LIBS([skins2],[-ltar])
3261   ] )
3262 ])
3263
3264 dnl
3265 dnl A52/AC3 decoder plugin
3266 dnl
3267 AC_ARG_ENABLE(a52,
3268   [  --enable-a52            A/52 support with liba52 (default enabled)])
3269 if test "${enable_a52}" != "no"
3270 then
3271   AC_ARG_WITH(a52,
3272     [    --with-a52=PATH       a52 headers and libraries])
3273   AC_ARG_WITH(a52-tree,
3274     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
3275   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
3276   then
3277     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
3278     if test -z "${real_a52_tree}"
3279     then
3280       dnl  The given directory can't be found
3281       AC_MSG_RESULT(no)
3282       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
3283     fi
3284     dnl  Use a custom a52dec
3285     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
3286     if test -f ${real_a52_tree}/include/a52.h
3287     then
3288       AC_MSG_RESULT(yes)
3289       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
3290       VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
3291       LDFLAGS="${LDFLAGS_save} ${LIBS_a52tofloat32}"
3292       AC_CHECK_LIB(a52, a52_free, [
3293         VLC_ADD_PLUGIN([a52tofloat32])
3294         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
3295         VLC_ADD_LIBS([a52tofloat32],[-la52])
3296         ],[
3297         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
3298         then
3299           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
3300         else
3301           AC_MSG_ERROR([the specified tree hasn't been compiled])
3302         fi
3303       ])
3304       LDFLAGS="${LDFLAGS_save}"
3305     else
3306       AC_MSG_RESULT(no)
3307       AC_MSG_ERROR([the specified tree doesn't have a52.h])
3308     fi
3309   else
3310     if test -z "${with_a52}"
3311     then
3312       LDFLAGS_test=""
3313       CPPFLAGS_test=""
3314     else
3315       LDFLAGS_test="-L${with_a52}/lib"
3316       CPPFLAGS_test="-I${with_a52}/include"
3317     fi
3318     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
3319     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
3320     AC_CHECK_HEADERS(a52dec/a52.h, [
3321       AC_CHECK_LIB(a52, a52_free, [
3322         VLC_ADD_PLUGIN([a52tofloat32])
3323         VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
3324         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
3325       ],[
3326         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.])
3327         ])
3328     ],[
3329       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.])
3330     ])
3331     CPPFLAGS="${CPPFLAGS_save}"
3332     LDFLAGS="${LDFLAGS_save}"
3333   fi
3334 fi
3335
3336 AC_ARG_WITH(a52-fixed,
3337       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
3338       [
3339         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
3340
3341 dnl
3342 dnl DTS Coherent Acoustics decoder plugin
3343 dnl
3344 AS_IF([test "x${enable_dts}" != "x"], [
3345   AC_MSG_ERROR([--enable-dts is obsolete. Please use libdca and --enable-dca.])
3346 ])
3347 AS_IF([test "x${with_dts_tree}" != "x"], [
3348   AC_MSG_ERROR([--with-dts-tree is obsolete. Please use libdca and --with-dca-tree.])
3349 ])
3350
3351 AC_ARG_ENABLE(dca,
3352   AS_HELP_STRING([--enable-dca],[DTS Coherent Acoustics support with libdca 
3353                   (default enabled)]))
3354 AS_IF([test "${enable_dca}" != "no"], [
3355   AC_ARG_WITH(dca-tree,
3356     [    --with-dca-tree=PATH  libdca tree for static linking],,
3357     [with_dca_tree="no"])
3358   AS_IF([test "${with_dca_tree}" != "no"], [
3359     real_dca_tree="`cd ${with_dca_tree} 2>/dev/null && pwd`"
3360     AS_IF([test -z "${real_dca_tree}"], [
3361       dnl  The given directory can't be found
3362       AC_MSG_RESULT(no)
3363       AC_MSG_ERROR([${with_dca_tree} directory doesn't exist])
3364     ])
3365     dnl  Use a custom libdca
3366     AC_MSG_CHECKING(for libdca in ${real_dca_tree})
3367     AS_IF([test -f "${real_dca_tree}/libdca/.libs/libdca.a"], [
3368       AC_MSG_RESULT(yes)
3369       VLC_ADD_LIBS([dtstofloat32],[${real_dca_tree}/libdca/.libs/libdca.a])
3370       AS_IF([test -f "${real_dca_tree}/include/dca.h"], [
3371         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/include])
3372       ], [
3373         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/../include])
3374       ])
3375     ], [
3376       AC_MSG_RESULT(no)
3377       AC_MSG_ERROR([the specified tree doesn't have libdca/.libs/libdca.a])
3378     ])
3379   ], [
3380     PKG_CHECK_MODULES([DCA], [libdca >= 0.0.5], [
3381       VLC_ADD_PLUGIN([dtstofloat32])
3382       VLC_ADD_CPPFLAGS([dtstofloat32], [${DCA_CFLAGS}])
3383       VLC_ADD_LIBS([dtstofloat32], [${DCA_LIBS}])
3384     ], [
3385       AS_IF([test "x${enable_dca}" != "x"], [
3386         AC_MSG_ERROR([${DCA_PKG_ERRORS}])
3387       ])
3388     ])
3389   ])
3390 ])
3391
3392 dnl
3393 dnl  Flac plugin
3394 dnl
3395 AC_ARG_ENABLE(flac,
3396   [  --enable-flac           libflac decoder/encoder support (default disabled)])
3397 if test "${enable_flac}" = "yes"
3398 then
3399   AC_ARG_WITH(flac-tree,
3400   [    --with-flac-tree=PATH flac tree for static linking])
3401   if test -n "${with_flac_tree}"
3402   then
3403     AC_MSG_CHECKING(for libFLAC.a in ${with_flac_tree})
3404     real_flac_tree="`cd ${with_flac_tree} 2>/dev/null && pwd`"
3405     if test -z "${real_flac_tree}"
3406     then
3407       dnl  The given directory can't be found
3408       AC_MSG_RESULT(no)
3409       AC_MSG_ERROR([cannot cd to ${with_flac_tree}])
3410     fi
3411     if test -f "${real_flac_tree}/src/libFLAC/.libs/libFLAC.a"
3412     then
3413       dnl  Use a custom flac
3414       AC_MSG_RESULT(${real_flac_tree}/src/libFLAC/.libs/libFLAC.a)
3415       VLC_ADD_LIBS([flac],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a])
3416       VLC_ADD_CFLAGS([flac],[-I${real_flac_tree}/include])
3417       AC_DEFINE(HAVE_FLAC_STREAM_DECODER_H, 1, [Define if you have FLAC])
3418     else
3419       dnl  The given flac wasn't built
3420       AC_MSG_RESULT(no)
3421       AC_MSG_ERROR([cannot find ${real_flac_tree}/src/libFLAC/.libs/libFLAC.a, make sure you compiled flac in ${with_flac_tree}])
3422     fi
3423   else
3424     AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
3425       VLC_ADD_LIBS([flac],[-lFLAC -logg])
3426      ],[])
3427   fi
3428 fi
3429
3430 dnl
3431 dnl  Libmpeg2 plugin
3432 dnl
3433 AC_ARG_ENABLE(libmpeg2,
3434   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
3435 if test "${enable_libmpeg2}" != "no"
3436 then
3437   AC_ARG_WITH(libmpeg2-tree,
3438   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
3439   AS_IF([test -n "${with_libmpeg2_tree}"],[
3440     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
3441     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
3442     if test -z "${real_libmpeg2_tree}"
3443     then
3444       dnl  The given directory can't be found
3445       AC_MSG_RESULT(no)
3446       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
3447     fi
3448     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
3449     then
3450       dnl  Use a custom libmpeg2
3451       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
3452       VLC_ADD_PLUGIN([libmpeg2])
3453       VLC_ADD_LIBS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
3454       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
3455     else
3456       dnl  The given libmpeg2 wasn't built
3457       AC_MSG_RESULT(no)
3458       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
3459     fi
3460   ],[
3461    PKG_CHECK_MODULES(LIBMPEG2,[libmpeg2 > 0.3.2],[ 
3462           VLC_ADD_PLUGIN([libmpeg2])
3463           VLC_ADD_LIBS([libmpeg2], $LIBMPEG2_LIBS)
3464           VLC_ADD_CFLAGS([libmpeg2], $LIBMPEG2_CFLAGS)
3465        ], 
3466       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.]))
3467   ])
3468 fi
3469
3470 dnl
3471 dnl  Vorbis plugin
3472 dnl
3473 AC_ARG_ENABLE(vorbis,
3474   [  --enable-vorbis         Vorbis decoder support (default enabled)])
3475 if test "${enable_vorbis}" != "no"
3476 then
3477   AC_ARG_WITH(vorbis-tree,
3478   [    --with-vorbis-tree=PATH vorbis tree for static linking])
3479   if test -n "${with_vorbis_tree}"
3480   then
3481     AC_MSG_CHECKING(for libvorbis.a in ${with_vorbis_tree})
3482     real_vorbis_tree="`cd ${with_vorbis_tree} 2>/dev/null && pwd`"
3483     if test -z "${real_vorbis_tree}"
3484     then
3485       dnl  The given directory can't be found
3486       AC_MSG_RESULT(no)
3487       AC_MSG_ERROR([cannot cd to ${with_vorbis_tree}])
3488     fi
3489     if test -f "${real_vorbis_tree}/lib/.libs/libvorbis.a"
3490     then
3491       dnl  Use a custom vorbis 
3492       AC_MSG_RESULT(${real_vorbis_tree}/lib/.libs/libvorbis.a)
3493       VLC_ADD_PLUGIN([vorbis])
3494       VLC_ADD_LIBS([vorbis],[${real_vorbis_tree}/lib/.libs/libvorbis.a ${real_vorbis_tree}/lib/.libs/libvorbisenc.a])
3495       VLC_ADD_CFLAGS([vorbis],[-I${real_vorbis_tree}/include])
3496     else
3497       dnl  The given vorbis wasn't built
3498       AC_MSG_RESULT(no)
3499       AC_MSG_ERROR([cannot find ${real_vorbis_tree}/lib/.libs/libvorbis.a, make sure you compiled vorbis in ${with_vorbis_tree}])
3500     fi
3501   else
3502     AC_CHECK_HEADERS(vorbis/codec.h, [
3503       VLC_ADD_PLUGIN([vorbis])
3504       VLC_ADD_LIBS([vorbis],[-lvorbis -logg -lm]) ],[])
3505
3506     AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
3507       VLC_ADD_LIBS([vorbis],[-lvorbisenc -lm]) ],[])
3508   fi
3509 fi
3510
3511 dnl
3512 dnl  Tremor plugin
3513 dnl
3514 AC_ARG_ENABLE(tremor,
3515   [  --enable-tremor         Tremor decoder support (default disabled)])
3516 if test "${enable_tremor}" = "yes"
3517 then
3518   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3519     VLC_ADD_PLUGIN([tremor])
3520     VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
3521    ],[])
3522 fi
3523
3524 dnl
3525 dnl  Speex plugin
3526 dnl
3527 AC_ARG_ENABLE(speex,
3528   [  --enable-speex          Speex decoder support (default enabled)])
3529 if test "${enable_speex}" != "no"
3530 then
3531   AC_ARG_WITH(speex-tree,
3532   [    --with-speex-tree=PATH speex tree for static linking])
3533   if test -n "${with_speex_tree}"
3534   then
3535     AC_MSG_CHECKING(for libspeex.a in ${with_speex_tree})
3536     real_speex_tree="`cd ${with_speex_tree} 2>/dev/null && pwd`"
3537     if test -z "${real_speex_tree}"
3538     then
3539       dnl  The given directory can't be found
3540       AC_MSG_RESULT(no)
3541       AC_MSG_ERROR([cannot cd to ${with_speex_tree}])
3542     fi
3543     if test -f "${real_speex_tree}/libspeex/.libs/libspeex.a"
3544     then
3545       dnl  Use a custom speex
3546       AC_MSG_RESULT(${real_speex_tree}/libspeex/.libs/libspeex.a)
3547       VLC_ADD_PLUGIN([speex])
3548       VLC_ADD_LIBS([speex],[${real_speex_tree}/libspeex/.libs/libspeex.a])
3549       VLC_ADD_CFLAGS([speex],[-I${real_speex_tree}/include])
3550     else
3551       dnl  The given speex wasn't built
3552       AC_MSG_RESULT(no)
3553       AC_MSG_ERROR([cannot find ${real_speex_tree}/libspeex/.libs/libspeex.a, make sure you compiled speex in ${with_speex_tree}])
3554     fi
3555   else
3556     AC_CHECK_HEADERS(speex/speex.h, [
3557       LDFLAGS="${LDFLAGS_save} ${LIBS_speex}"
3558       AC_CHECK_LIB(speex, speex_decode_int, [
3559         VLC_ADD_PLUGIN([speex])
3560         VLC_ADD_LIBS([speex],[-lspeex]) ],
3561         [ AC_MSG_RESULT([no])
3562           AC_MSG_WARN([Your libspeex is too old, please get the development
3563                        version.]) ],[])
3564       LDFLAGS="${LDFLAGS_save}"
3565       ],[])
3566   fi
3567 fi
3568
3569 dnl
3570 dnl  tarkin decoder plugin
3571 dnl
3572 AC_ARG_ENABLE(tarkin,
3573 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3574 if test "${enable_tarkin}" = "yes"
3575 then
3576   AC_ARG_WITH(tarkin-tree,
3577   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3578   if test -n "${with_tarkin_tree}"
3579   then
3580     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3581     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3582     if test -f "${real_tarkin_tree}/tarkin.o"
3583     then
3584       VLC_ADD_PLUGIN([tarkin])
3585       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3586       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])
3587       AC_MSG_RESULT(yes)
3588     else
3589       dnl  The given tarkin tree wasn't built
3590       AC_MSG_RESULT(no)
3591       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3592                     make sure you compiled tarkin in ${with_tarkin_tree}])
3593     fi
3594   fi
3595 fi
3596
3597 dnl
3598 dnl  theora decoder plugin
3599 dnl
3600 AC_ARG_ENABLE(theora,
3601 [  --enable-theora         experimental theora codec (default disabled)])
3602 if test "${enable_theora}" = "yes"
3603 then
3604   AC_CHECK_HEADERS(theora/theora.h, [
3605     AC_CHECK_LIB(theora, theora_granule_time, [
3606       VLC_ADD_PLUGIN([theora])
3607       theora_libs="-ltheora -logg"
3608       VLC_ADD_LIBS([theora],[${theora_libs}]) ],[
3609       AC_MSG_ERROR([libtheora doesn't appear to be installed on your system.
3610 You also need to check that you have a libogg posterior to the 1.0 release.])],
3611       [-logg])
3612   ])
3613 fi
3614
3615 dnl
3616 dnl  dirac decoder plugin
3617 dnl
3618 AC_ARG_ENABLE(dirac,
3619 [  --enable-dirac          experimental dirac codec (default disabled)])
3620 if test "${enable_dirac}" = "yes"; then
3621   PKG_CHECK_MODULES(DIRAC,[dirac >= 0.10.0], [
3622       VLC_ADD_PLUGIN([dirac])
3623       VLC_ADD_CFLAGS([dirac],[$DIRAC_CFLAGS])
3624       VLC_ADD_LIBS([dirac],[$DIRAC_LIBS -lstdc++]) ],[
3625       AC_MSG_ERROR([libdirac >= 0.10.0 doesn't appear to be installed on your system.])
3626   ])
3627 fi
3628
3629 dnl
3630 dnl  schroedinger decoder plugin (for dirac format video)
3631 dnl
3632 AC_ARG_ENABLE(schroedinger,
3633 [  --disable-schroedinger   high performance dirac codec (default enabled)])
3634 if test "${enable_schroedinger}" != "no"; then
3635   PKG_CHECK_MODULES(SCHROEDINGER,[schroedinger-1.0 >= 1.0], [
3636       VLC_ADD_PLUGIN([schroedinger])
3637       VLC_ADD_CFLAGS([schroedinger],[$SCHROEDINGER_CFLAGS])
3638       VLC_ADD_LIBS([schroedinger],[$SCHROEDINGER_LIBS]) ], [
3639         AS_IF([test "x${enable_schroedinger}" != "x"], [
3640           AC_MSG_ERROR([${SCHROEDINGER_PKG_ERRORS}])
3641         ])
3642 ])
3643 fi
3644
3645 dnl
3646 dnl  PNG decoder module
3647 dnl
3648 AC_ARG_ENABLE(png,
3649   [  --enable-png            PNG support (default enabled)])
3650 if test "${enable_png}" != "no"; then
3651 AC_CHECK_HEADERS(png.h, [
3652   LDFLAGS="${LDFLAGS_save} -lz"
3653   AC_CHECK_LIB(png, png_set_rows, [
3654     VLC_ADD_LIBS([png],[-lpng -lz])
3655     VLC_ADD_PLUGIN([png])
3656     VLC_ADD_PLUGIN([osdmenu])
3657     VLC_ADD_PLUGIN([osd_parser])
3658     AC_DEFINE(HAVE_LIBPNG, 1, [Define if you have the PNG library: libpng])],
3659     [],[-lz])
3660     LDFLAGS="${LDFLAGS_save}"
3661   ])
3662 fi
3663 AM_CONDITIONAL(BUILD_OSDMENU, [test "${enable_png}" != "no"])
3664
3665 dnl
3666 dnl H264 encoder plugin (using libx264)
3667 dnl
3668 AC_ARG_ENABLE(x264,
3669   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3670 if test "${enable_x264}" != "no"; then
3671   AC_ARG_WITH(x264-tree,
3672     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3673   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3674   then
3675     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3676     if test -z "${real_x264_tree}"
3677     then
3678       dnl  The given directory can't be found
3679       AC_MSG_RESULT(no)
3680       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3681     fi
3682     dnl  Use a custom libx264
3683     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3684     if test -f ${real_x264_tree}/x264.h
3685     then
3686       AC_MSG_RESULT(yes)
3687       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3688       VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
3689       PKG_CHECK_MODULES(X264,x264, [
3690         VLC_ADD_PLUGIN([x264])
3691         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3692         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3693       ],[
3694         AC_MSG_ERROR([the specified tree hasn't been compiled])
3695       ])
3696       LDFLAGS="${LDFLAGS_save}"
3697     else
3698       AC_MSG_RESULT(no)
3699       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3700     fi
3701   else
3702       PKG_CHECK_MODULES(X264,x264, [
3703         VLC_ADD_PLUGIN([x264])
3704         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3705         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3706       ],[
3707         if test "${enable_x264}" = "yes"; then
3708             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
3709           fi
3710       ])
3711     LDFLAGS="${LDFLAGS_save}"
3712   fi
3713 fi
3714
3715 dnl
3716 dnl libfluidsynth (MIDI synthetizer) plugin
3717 dnl
3718 AC_ARG_ENABLE(fluidsynth,
3719   [  --enable-fluidsynth     MIDI synthesisr with libfluidsynth (default enabled)])
3720 AS_IF([test "x${enable_fluidsynth}" != "xno"], [
3721   PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth, [
3722     VLC_ADD_PLUGIN(fluidsynth)
3723     VLC_ADD_CFLAGS(fluidsynth, [${FLUIDSYNTH_CFLAGS}])
3724     VLC_ADD_LIBS(fluidsynth, [${FLUIDSYNTH_LIBS}])
3725   ], [
3726     AS_IF([test "x${enable_fluidsynth}" != "x"], [
3727       AC_MSG_ERROR([${FLUIDSYNTH_PKG_ERRORS}])
3728     ])
3729   ])
3730 ])
3731
3732 dnl
3733 dnl Teletext Modules
3734 dnl vbi decoder plugin (using libzbvi)
3735 dnl telx module
3736 dnl uncompatible
3737 dnl
3738 AC_ARG_ENABLE(zvbi,
3739   AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with 
3740                   libzvbi (default enabled)]))
3741 AC_ARG_ENABLE(telx,
3742   AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with 
3743                   zvbi) (default disabled)]))
3744
3745 AS_IF( [test "${enable_zvbi}" != "no"],[
3746   AS_IF( [test "${enable_telx}" = "yes"],[
3747     AC_MSG_ERROR([The zvbi and telx modules are uncompatibles. Disable the other if you enable one.])
3748   ],[
3749     PKG_CHECK_MODULES(ZVBI,
3750         zvbi-0.2 >= 0.2.25,
3751         [
3752           VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
3753           VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
3754           VLC_ADD_PLUGIN([zvbi])
3755           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built]) 
3756         ],[
3757           AC_MSG_WARN(ZVBI library not found. Enabling the telx module instead)
3758           enable_telx="yes"
3759         ])
3760     ])  
3761   ])
3762 AS_IF( [test "${enable_telx}" = "yes"],[
3763   VLC_ADD_PLUGIN([telx])
3764   ])
3765
3766 dnl
3767 dnl asa/csri subtitle rendering module
3768 dnl
3769 AC_ARG_ENABLE(csri,
3770   [  --enable-csri           Subtitle support using CSRI / asa (default disabled)])
3771 AS_IF( [test "${enable_csri}" = "yes"], [
3772   PKG_CHECK_MODULES(CSRI,
3773       csri >= 0.1.0,
3774       [
3775         VLC_ADD_LDFLAGS([csri],[$CSRI_LIBS])
3776         VLC_ADD_CFLAGS([csri],[$CSRI_CFLAGS])
3777         VLC_ADD_PLUGIN([csri])
3778       ],[
3779         AC_MSG_WARN([CSRI helper library not found])
3780       ])
3781   ])
3782
3783 dnl
3784 dnl libass subtitle rendering module
3785 dnl
3786 AC_ARG_ENABLE(libass,
3787   [  --enable-libass           Subtitle support using libass (default disabled)])
3788 AS_IF( [test "${enable_libass}" = "yes"], [
3789   PKG_CHECK_MODULES(LIBASS, libass >= 0.9.5,
3790       [
3791         VLC_ADD_LDFLAGS([libass],[$LIBASS_LIBS])
3792         VLC_ADD_CFLAGS([libass],[$LIBASS_CFLAGS])
3793         VLC_ADD_PLUGIN([libass])
3794
3795         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
3796           [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
3797         if test "${SYS}" = "mingw32"; then
3798            VLC_ADD_LIBS([libass],[-lfontconfig -lfreetype -liconv  -lxml2])
3799         else
3800            VLC_ADD_LIBS([libass],[-lfontconfig])
3801         fi
3802        ])
3803       ],[
3804         AC_MSG_WARN([LIBASS library not found])
3805       ])
3806   ])
3807
3808 dnl
3809 dnl asa demuxer
3810 dnl
3811 AC_ARG_ENABLE(asademux,
3812   [  --enable-asademux       asa subtitle demuxing (default disabled)])
3813 AS_IF( [test "${enable_asademux}" = "yes"], [
3814   PKG_CHECK_MODULES(PCRE,
3815       libpcre >= 6.5,
3816       [
3817         VLC_ADD_LDFLAGS([asademux],[$PCRE_LIBS])
3818         VLC_ADD_CFLAGS([asademux],[$PCRE_CFLAGS])
3819         if test "${SYS}" = "mingw32"; then
3820                 VLC_ADD_CPPFLAGS([asademux],[-DPCRE_STATIC])
3821         fi
3822         VLC_ADD_PLUGIN([asademux])
3823       ],[
3824         AC_MSG_WARN([PCRE library not found (required for asademux)])
3825       ])
3826   ])
3827
3828 dnl
3829 dnl  CMML plugin
3830 dnl
3831 AC_ARG_ENABLE(cmml,
3832   [  --enable-cmml           CMML support (default enabled)])
3833 if test "${enable_cmml}" != "no"
3834 then
3835   VLC_ADD_PLUGIN([cmml])
3836 fi
3837
3838 dnl
3839 dnl  kate decoder plugin
3840 dnl
3841 AC_ARG_ENABLE(kate,
3842 [  --enable-kate           kate codec (default enabled)])
3843 AS_IF([test "${enable_kate}" != "no"], [
3844   PKG_CHECK_MODULES(KATE,[kate >= 0.1.5], [
3845       VLC_ADD_PLUGIN([kate])
3846       VLC_ADD_CFLAGS([kate],[$KATE_CFLAGS])
3847       VLC_ADD_LIBS([kate],[$KATE_LIBS]) ],[
3848         AC_CHECK_HEADERS(kate/kate.h, [
3849           AC_CHECK_LIB(kate, kate_decode_init, [
3850             VLC_ADD_PLUGIN([kate])
3851             kate_libs="-lkate -logg"
3852             VLC_ADD_LDFLAGS([kate],[${kate_libs}]) ],[
3853             AS_IF([test "x${enable_kate}" != "x"], [
3854               AC_MSG_ERROR([libkate doesn't appear to be installed on your system.
3855               You also need to check that you have a libogg posterior to the 1.0 release.])
3856             ])
3857           ], [-lkate -logg])
3858         ],[
3859           AS_IF([test "x${enable_kate}" != "x"], [
3860             AC_MSG_ERROR([libkate headers do not appear to be installed on your system.
3861             You also need to check that you have a libogg posterior to the 1.0 release.])
3862           ])
3863         ])
3864   ])
3865 ])
3866
3867
3868 dnl
3869 dnl  Video plugins
3870 dnl
3871
3872 AC_ARG_WITH(,[Video plugins:])
3873
3874 dnl Check for DPMS
3875 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
3876   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3877   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
3878     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
3879     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
3880       AC_MSG_RESULT(yes)
3881       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
3882                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
3883     ],[
3884       AC_MSG_RESULT(no)
3885     ])
3886   ],,[
3887     #include <X11/Xlib.h>
3888   ])
3889   CPPFLAGS="${CPPFLAGS_save}"
3890 fi
3891
3892 dnl
3893 dnl  X11 module
3894 dnl  (enabled by default except on win32)
3895 dnl
3896 AC_ARG_ENABLE(x11,
3897   [  --enable-x11            X11 support (default enabled)])
3898 if test "${enable_x11}" != "no" &&
3899   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3900    test "${enable_x11}" = "yes"); then
3901   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3902   AC_CHECK_HEADERS(X11/Xlib.h, [
3903     VLC_ADD_PLUGIN([panoramix])
3904     VLC_ADD_LIBS([panoramix],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3905     VLC_ADD_CPPFLAGS([panoramix],[${X_CFLAGS}])
3906     AC_CHECK_LIB(Xext, XShmAttach, [
3907       VLC_ADD_PLUGIN([x11])
3908       VLC_ADD_LIBS([x11],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
3909       VLC_ADD_CPPFLAGS([x11],[${X_CFLAGS}])
3910     ])
3911   ])
3912   CPPFLAGS="${CPPFLAGS_save}"
3913 fi
3914
3915 dnl
3916 dnl  XVideo module
3917 dnl  (enabled by default except on win32)
3918 dnl
3919 AC_ARG_ENABLE(xvideo,
3920   [  --enable-xvideo         XVideo support (default enabled)])
3921 if test "${enable_xvideo}" != "no" &&
3922   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3923    test "${enable_xvideo}" = "yes"); then
3924   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3925   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
3926     CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3927     AC_CHECK_LIB(Xv,XvPutImage,[
3928         VLC_ADD_PLUGIN([xvideo])
3929         VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3930         VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3931     ])
3932     CFLAGS="${CFLAGS_save}"
3933   ]
3934   CPPFLAGS="${CPPFLAGS_save}")
3935 fi
3936
3937 dnl
3938 dnl  GLX module
3939 dnl  (enabled by default except on win32)
3940 dnl
3941 AC_ARG_ENABLE(glx,
3942   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)])
3943 if test "${enable_glx}" != "no" &&
3944   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3945    test "${enable_glx}" = "yes"); then
3946   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3947   AC_CHECK_HEADERS(X11/Xlib.h GL/glu.h GL/glx.h)
3948   AC_COMPILE_IFELSE(AC_LANG_PROGRAM(
3949     [[#if !defined(HAVE_X11_XLIB_H) || !defined(HAVE_GL_GLU_H) || !defined(HAVE_GL_GLX_H)
3950     choke me
3951     #endif]]),
3952     [
3953       VLC_ADD_PLUGIN([glx])
3954       VLC_ADD_LIBS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU])
3955       VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}])
3956     ],[AC_MSG_ERROR([Please install GL development package. Alternatively you can also configure with --disable-glx.])])
3957   CPPFLAGS="${CPPFLAGS_save}"
3958 fi
3959
3960 dnl
3961 dnl  XVMC module
3962 dnl  (disabled by default except on win32)
3963 dnl
3964 AC_ARG_ENABLE(xvmc,
3965   [  --enable-xvmc           XVMC support (default disabled)])
3966 if test "${enable_xvmc}" = "yes" &&
3967   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3968    test "${enable_xvmc}" = "yes"); then
3969   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3970   AC_CHECK_HEADERS(X11/extensions/vldXvMC.h, [
3971     VLC_ADD_PLUGIN([xvmc])
3972     VLC_ADD_LIBS([xvmc],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXvMCW -lXv -lXinerama])
3973     VLC_ADD_CPPFLAGS([xvmc],[${X_CFLAGS}])
3974   ])
3975   CPPFLAGS="${CPPFLAGS_save}"
3976 fi
3977
3978 dnl
3979 dnl  Check for the Xinerama extension
3980 dnl
3981 AC_ARG_ENABLE(xinerama,
3982   [  --enable-xinerama       Xinerama support (default enabled)])
3983 if test "${enable_xvideo}" != "no" && test "${enable_xinerama}" != "no" &&
3984   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3985    test "${enable_xvideo}" = "yes"); then
3986   ac_cv_have_xinerama="no"
3987   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3988   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3989   AC_CHECK_HEADERS(X11/extensions/Xinerama.h,[
3990     AC_CHECK_LIB(Xinerama_pic, XineramaQueryExtension,[
3991       VLC_ADD_LIBS([xvideo],[-lXinerama_pic])
3992       VLC_ADD_LIBS([x11],[-lXinerama_pic])
3993       VLC_ADD_LIBS([glx],[-lXinerama_pic])
3994       ac_cv_have_xinerama="yes"
3995     ],[
3996       AC_CHECK_LIB(Xinerama, XineramaQueryExtension,[
3997         VLC_ADD_LIBS([xvideo],[-lXinerama])
3998         VLC_ADD_LIBS([x11],[-lXinerama])
3999         VLC_ADD_LIBS([glx],[-lXinerama])
4000         ac_cv_have_xinerama="yes"
4001       ])
4002     ])
4003   ])
4004   if test "${ac_cv_have_xinerama}" = "yes"; then
4005     AC_DEFINE(HAVE_XINERAMA, 1, [Define this if you have libXinerama installed])
4006   fi
4007   CFLAGS="${CFLAGS_save}"
4008   CPPFLAGS="${CPPFLAGS_save}"
4009
4010 dnl
4011 dnl  Check for XF86VidMode extension
4012 dnl
4013   ac_cv_have_xf86vidmode="no"
4014   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
4015   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
4016   AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,[
4017     AC_CHECK_LIB(Xxf86vm_pic, XF86VidModeGetViewPort,[
4018       VLC_ADD_LIBS([xvideo],[-lXxf86vm_pic])
4019       VLC_ADD_LIBS([x11],[-lXxf86vm_pic])
4020       VLC_ADD_LIBS([glx],[-lXxf86vm_pic])
4021       VLC_ADD_LIBS([xvmc],[-lXxf86vm_pic])
4022       ac_cv_have_xf86vidmode="yes"
4023     ],[
4024       AC_CHECK_LIB(Xxf86vm, XF86VidModeGetViewPort,[
4025         VLC_ADD_LIBS([xvideo],[-lXxf86vm])
4026         VLC_ADD_LIBS([x11],[-lXxf86vm])
4027         VLC_ADD_LIBS([glx],[-lXxf86vm])
4028         VLC_ADD_LIBS([xvmc],[-lXxf86vm])
4029         ac_cv_have_xf86vidmode="yes"
4030       ])
4031     ])
4032   ],[true],
4033 [#ifdef HAVE_X11_XLIB_H
4034 # include <X11/Xlib.h>
4035 #endif]
4036    )
4037   AS_IF([test "${ac_cv_have_xf86vidmode}" = "yes"],
4038     [AC_DEFINE(HAVE_XF86VIDMODE, 1, [Define this if you have libXxf86vm installed])
4039   ])
4040   CFLAGS="${CFLAGS_save}"
4041   CPPFLAGS="${CPPFLAGS_save}"
4042
4043 fi
4044
4045 dnl
4046 dnl  OpenGL module
4047 dnl  (enabled by default except on beos)
4048 dnl
4049 AC_ARG_ENABLE(opengl,
4050   [  --enable-opengl         OpenGL support (default enabled)])
4051 if test "${enable_opengl}" != "no" &&
4052    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
4053   if test "${SYS}" != "darwin"; then
4054     AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
4055       VLC_ADD_PLUGIN([opengl])
4056       if test "${SYS}" != "mingw32"; then
4057         VLC_ADD_LIBS([opengl],[${X_LIBS} -lGL -lGLU])
4058       else
4059         VLC_ADD_LIBS([opengl],[-lopengl32 -lglu32])
4060       fi
4061     ])
4062   else
4063     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
4064     VLC_ADD_PLUGIN([opengl])
4065     VLC_ADD_LIBS([opengl],[-Wl,-framework,OpenGL])
4066   fi
4067 fi
4068
4069 dnl
4070 dnl  SDL module
4071 dnl
4072 AC_ARG_ENABLE(sdl,
4073   [  --enable-sdl            SDL support (default enabled)])
4074 AC_ARG_ENABLE(sdl-image,
4075   [  --enable-sdl-image      SDL image support (default enabled)])
4076 if test "${enable_sdl}" != "no"
4077 then
4078   SDL_PATH="${PATH}"
4079   AC_ARG_WITH(sdl-config-path,
4080     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
4081     [ if test "${with_sdl_config_path}" != "no"
4082       then
4083         SDL_PATH="${with_sdl_config_path}:${PATH}"
4084       fi ])
4085   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
4086   SDL_CONFIG="${SDL12_CONFIG}"
4087   SDL_HEADER="SDL12/SDL.h"
4088   SDL_IMAGE="SDL12/SDL_image.h"
4089   if test "${SDL_CONFIG}" = "no"
4090   then
4091     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
4092     SDL_CONFIG=${SDL11_CONFIG}
4093     SDL_HEADER="SDL11/SDL.h"
4094     SDL_IMAGE="SDL11/SDL_image.h"
4095   fi
4096   if test "${SDL_CONFIG}" = "no"
4097   then
4098     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
4099     SDL_HEADER="SDL/SDL.h"
4100     SDL_IMAGE="SDL/SDL_image.h"
4101   fi
4102   # check for cross-compiling
4103   SDL_PREFIX=
4104   AC_ARG_WITH(sdl-prefix,
4105     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
4106                                e.g use as:
4107                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
4108   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
4109   then
4110     SDL_PREFIX="--prefix=${with_sdl_prefix}"
4111   fi
4112   if test "${SDL_CONFIG}" != "no"
4113   then
4114     # SDL on Darwin is heavily patched and can only run SDL_image
4115     if test "${SYS}" != "darwin" -a "${SYS}" != "mingw32"; then
4116       VLC_ADD_PLUGIN([vout_sdl])
4117       VLC_ADD_PLUGIN([aout_sdl])
4118     fi
4119     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
4120     VLC_ADD_LIBS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
4121     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
4122     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
4123       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
4124       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
4125           As a last resort we also test for SDL.h presence),
4126       [ AC_MSG_ERROR([The development package for SDL is not installed.
4127 Please install it and try again. Alternatively you can also configure with
4128 --disable-sdl.])
4129       ])])
4130     AS_IF([ test "${enable_sdl_image}" != "no"],[
4131       AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
4132         <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
4133         VLC_ADD_PLUGIN([sdl_image])
4134         AC_CHECK_LIB(png, png_set_rows,
4135           [VLC_ADD_LIBS([sdl_image],[-lpng -lz])],[],[-lz])
4136         AC_CHECK_LIB(jpeg, jpeg_start_decompress,
4137           [VLC_ADD_LIBS([sdl_image],[-ljpeg])])
4138         AC_CHECK_LIB(tiff, TIFFClientOpen,
4139           [VLC_ADD_LIBS([sdl_image],[-ltiff])])
4140         VLC_ADD_LIBS([sdl_image], [-lSDL_image])],
4141         [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
4142             As a last resort we also test for SDL_image.h presence),
4143         [ AC_MSG_WARN([The development package for SDL_image is not installed.
4144   You should install it alongside your SDL package.])
4145         ])])
4146     ])
4147     CPPFLAGS="${CPPFLAGS_save}"
4148     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
4149     then
4150       AC_MSG_ERROR([The development package for SDL is not installed.
4151 Please install it and try again. Alternatively you can also configure with
4152 --disable-sdl.])
4153     fi
4154
4155   elif test "${enable_sdl}" =  "yes"
4156   then
4157     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
4158 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
4159     ])
4160   fi
4161 fi
4162
4163 dnl
4164 dnl  freetype module
4165 dnl
4166 AC_ARG_ENABLE(freetype,
4167   [  --enable-freetype       freetype support (default enabled)])
4168 AC_ARG_ENABLE(fribidi,
4169   [  --enable-fribidi        fribidi support (default enabled)])
4170 if test "${enable_freetype}" != "no"
4171 then
4172    PKG_CHECK_MODULES(FREETYPE, freetype2,[
4173       VLC_ADD_PLUGIN([freetype])
4174       have_freetype=yes
4175       VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
4176       VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
4177       if test "${SYS}" = "mingw32"; then
4178         VLC_ADD_LIBS([freetype skins2],[-lxml2])
4179       fi
4180       if test "${SYS}" = "mingw32"; then
4181         VLC_ADD_LIBS([freetype],[-liconv])
4182       fi
4183     AC_CHECK_HEADERS(fontconfig/fontconfig.h,
4184       [VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
4185        VLC_ADD_LIBS([freetype],[-lfontconfig])])
4186     AC_CHECK_HEADERS(Carbon/Carbon.h,
4187       [VLC_ADD_LDFLAGS([freetype],[-Wl,-framework,Carbon])])
4188   ],[
4189   have_freetype=no
4190   AS_IF([ test "${enable_freetype}" =  "yes"],[
4191     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
4192 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
4193       ])
4194     ])
4195   ])
4196
4197   dnl fribidi support
4198   if test "${enable_fribidi}" != "no"
4199   then
4200     PKG_CHECK_MODULES(FRIBIDI, fribidi, [
4201       VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
4202       VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
4203     ])
4204     fi
4205 fi
4206
4207 dnl
4208 dnl  libxml2 module
4209 dnl
4210 AC_ARG_ENABLE(libxml2,
4211   [  --enable-libxml2        libxml2 support (default enabled)])
4212 if test "${enable_libxml2}" != "no"
4213 then
4214   XML2_PATH="${PATH}"
4215   AC_ARG_WITH(xml2-config-path,
4216     [    --with-xml2-config-path=PATH xml2-config path (default search in \$PATH)],
4217     [ if test "${with_xml2_config_path}" != "no"; then
4218         XML2_PATH="${with_xml2_config_path}:${PATH}"
4219       fi ])
4220   AC_PATH_PROG(XML2_CONFIG, xml2-config, no, ${XML2_PATH})
4221   if test "${XML2_CONFIG}" != "no"; then
4222     VLC_ADD_CPPFLAGS([xml],[`${XML2_CONFIG} --cflags`])
4223     VLC_ADD_LIBS([xml],[`${XML2_CONFIG} --libs`])
4224     dnl depends on the xmlTextReader extension
4225     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_xml}"
4226     LDFLAGS="${LDFLAGS_save} ${LIBS_xml}"
4227     AC_CHECK_LIB(xml2,xmlTextReaderConstName,[
4228       AC_EGREP_HEADER(xmlTextReaderConstName,libxml/xmlreader.h,[
4229         VLC_ADD_PLUGIN([xml]) ],[
4230           AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
4231           if test "${enable_xml2}" = "yes"; then
4232             AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
4233           fi])
4234        ],[
4235       AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
4236       if test "${enable_xml2}" = "yes"; then
4237         AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
4238       fi])
4239     LDFLAGS="${LDFLAGS_save}"
4240     CPPFLAGS="${CPPFLAGS_save}"
4241   else
4242     if test "${enable_xml2}" = "yes"; then
4243       AC_MSG_ERROR([Could not find libxml2])
4244     fi
4245   fi
4246 fi
4247
4248 dnl
4249 dnl  SVG module
4250 dnl
4251 AC_ARG_ENABLE(svg,
4252   [  --enable-svg            SVG support (default disabled)])
4253 if test "${enable_svg}" = "yes"
4254 then
4255   PKG_CHECK_MODULES(SVG, 
4256         librsvg-2.0 >= 2.9.0,
4257         [
4258           VLC_ADD_LIBS([svg],[$SVG_LIBS])
4259           VLC_ADD_CFLAGS([svg],[$SVG_CFLAGS])
4260           VLC_ADD_PLUGIN([svg]) ],
4261         [AC_MSG_WARN(SVG library not found)])
4262 fi
4263
4264 dnl
4265 dnl Snapshot vout module (with cache)
4266 dnl
4267 AC_ARG_ENABLE(snapshot,
4268   [  --enable-snapshot       snapshot module (default disabled)])
4269 if test "${enable_snapshot}" = "yes"
4270 then
4271   VLC_ADD_PLUGIN([snapshot])
4272 fi
4273
4274 dnl
4275 dnl  Qt Embedded module
4276 dnl  (disabled by default)
4277 dnl
4278 AC_ARG_ENABLE(qte,
4279   [  --enable-qte            QT Embedded support (default disabled)])
4280 if test "${enable_qte}" = "yes"
4281 then
4282   AC_ARG_WITH(qte,
4283   [    --with-qte=PATH       Qt Embedded headers and libraries])
4284   if test "${with_qte}" != "no" -a -n "${with_qte}"
4285   then
4286     VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4287     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])
4288   else
4289     VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4290     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
4291   fi
4292   VLC_ADD_PLUGIN([qte])
4293   NEED_QTE_MAIN=yes
4294   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4295   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4296     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4297   ] )
4298   CPPFLAGS="${CPPFLAGS_save}"
4299 fi
4300
4301 dnl
4302 dnl Roku HD1000 Video output module
4303 dnl
4304 AC_ARG_ENABLE(hd1000v,
4305   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
4306 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
4307   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4308    test "${enable_hd1000v}" = "yes"); then
4309   AC_LANG_PUSH([C++])
4310   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
4311   [
4312     can_build_roku="yes"
4313   ],
4314   [
4315     can_build_roku="no"
4316     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
4317   ])
4318   if test "$can_build_roku" = "yes"
4319   then
4320     VLC_ADD_PLUGIN([hd1000v])
4321     VLC_ADD_LIBS([hd1000v],[-lCascade -ldvbpsi -lmad])
4322   fi
4323   AC_LANG_POP([C++])
4324 fi
4325
4326 dnl
4327 dnl  Windows DirectX module
4328 dnl
4329
4330 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4331 then
4332   VLC_ADD_PLUGIN([panoramix])
4333 fi
4334
4335 AC_ARG_ENABLE(directx,
4336   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
4337 if test "${enable_directx}" != "no"
4338 then
4339   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4340   then
4341     AC_ARG_WITH(directx,
4342     [    --with-directx=PATH   Win32 DirectX headers])
4343     if test -z "${with_directx}"
4344     then
4345       AC_CHECK_HEADERS(ddraw.h,
4346       [ VLC_ADD_PLUGIN([vout_directx])
4347         VLC_ADD_PLUGIN([aout_directx])
4348         VLC_ADD_LIBS([vout_directx],[-lgdi32])
4349       ])
4350       AC_CHECK_HEADERS(GL/gl.h,
4351       [ VLC_ADD_PLUGIN([glwin32])
4352         VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
4353       ])
4354       AC_CHECK_HEADERS(d3d9.h,
4355       [ VLC_ADD_PLUGIN([direct3d])
4356         VLC_ADD_LIBS([direct3d],[-lgdi32])
4357       ])
4358     else
4359       AC_MSG_CHECKING(for directX headers in ${with_directx})
4360       if test -f ${with_directx}/ddraw.h
4361       then
4362         VLC_ADD_PLUGIN([vout_directx])
4363         VLC_ADD_PLUGIN([aout_directx])
4364         VLC_ADD_CPPFLAGS([vout_directx aout_directx],[-I${with_directx}])
4365         VLC_ADD_LIBS([vout_directx],[-lgdi32])
4366         AC_MSG_RESULT(yes)
4367       else
4368         AC_MSG_RESULT(no)
4369         AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
4370       fi
4371     fi
4372   fi
4373 fi
4374
4375 dnl
4376 dnl  Linux framebuffer module
4377 dnl
4378 AC_ARG_ENABLE(fb,
4379   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
4380     if test "${enable_fb}" != "no"
4381     then
4382       AC_CHECK_HEADERS(linux/fb.h, [
4383         VLC_ADD_PLUGIN([fb])
4384       ])
4385     fi
4386
4387 dnl
4388 dnl  Linux MGA module
4389 dnl
4390 AC_ARG_ENABLE(mga,
4391   [  --enable-mga            Linux kernel Matrox support (default disabled)],
4392   [ if test "${enable_mga}" = "yes"
4393     then
4394       VLC_ADD_PLUGIN([mga])
4395     fi ])
4396
4397 dnl
4398 dnl  SVGAlib module
4399 dnl
4400 AC_ARG_ENABLE(svgalib,
4401   [  --enable-svgalib        SVGAlib support (default disabled)])
4402 if test "${enable_svgalib}" = "yes"
4403 then
4404   VLC_ADD_PLUGIN([svgalib])
4405   VLC_ADD_LIBS([svgalib],[-lvgagl -lvga])
4406 fi
4407
4408 dnl
4409 dnl  DirectFB module
4410 dnl  try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
4411 dnl  TODO: support for static linking
4412 dnl
4413 AC_ARG_ENABLE(directfb,
4414   [  --enable-directfb       DirectFB support (default disabled)])
4415 AC_ARG_WITH(directfb, 
4416   [    --with-directfb=PATH  path to DirectFB headers and libraries])
4417
4418 if test "${enable_directfb}" = "yes"; then
4419     have_directfb="false"
4420     CPPFLAGS_mydirectfb=
4421     LIBS_mydirectfb=
4422     if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
4423         dnl Trying the given location
4424         CPPFLAGS_save="${CPPFLAGS}"
4425         LIBS_save="${LIBS}"
4426
4427         CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
4428         LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/"
4429         LIBS_new="${LIBS_new} -L${with_directfb}/src/.libs/"
4430
4431         CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
4432         LIBS="${LIBS} ${LIBS_new}"
4433
4434         dnl FIXME: too obscure
4435         AC_CHECK_HEADER([directfb.h], [
4436             AC_CHECK_LIB([direct],[direct_initialize], [
4437                 AC_CHECK_LIB([fusion], [fusion_enter], [
4438                     AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
4439                 ], have_directfb="false")
4440             ], have_directfb="false")
4441         ], have_directfb="false")
4442
4443         dnl Restore flags
4444         CPPFLAGS="${CPPFLAGS_save}"
4445         LIBS="${LIBS_save}"
4446
4447         if test "${have_directfb}" = "true"; then
4448             LIBS_mydirectfb="${LIBS_new} -lz -ldl -ldirectfb -lfusion -ldirect -lpthread"
4449             CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
4450         fi
4451     else 
4452         dnl Look for directfb-config
4453         AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
4454         if test "${DIRECTFB_CONFIG}" != "no"; then
4455             CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
4456             LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
4457             have_directfb="true"
4458         else 
4459             dnl Trying with pkg-config
4460             PKG_CHECK_MODULES(DIRECTFB, directfb, [
4461                 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
4462                 LIBS_mydirectfb="${DIRECTFB_LIBS}"
4463                 have_directfb="true"
4464                 ], [have_directfb="false"])
4465         fi
4466     fi
4467     if test "${have_directfb}" = "true"; then
4468         VLC_ADD_PLUGIN([directfb])
4469         VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])