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