]> git.sesse.net Git - vlc/blob - configure.ac
If uselocale() is absent, assume libc does no localization
[vlc] / configure.ac
1 dnl Autoconf settings for vlc
2
3 AC_INIT(vlc,0.9.0-git)
4 VERSION_MAJOR="0"
5 VERSION_MINOR="9"
6 VERSION_REVISION="0"
7 VERSION_EXTRA="git"
8
9 CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
10 CODENAME="Grishenko"
11 COPYRIGHT_YEARS="1996-2008"
12
13 AC_PREREQ(2.59c)
14 AC_CONFIG_SRCDIR(src/libvlc.c)
15 AC_CONFIG_AUX_DIR(autotools)
16 AC_CANONICAL_BUILD
17 AC_CANONICAL_HOST
18
19 AM_INIT_AUTOMAKE(tar-ustar)
20 AM_CONFIG_HEADER(config.h)
21
22 dnl Too many people are not aware of maintainer mode:
23 dnl If you want to use it, you definitely know what you are doing, so
24 dnl you can specify "--disable-maintainer-mode". But if you want the default
25 dnl automake behavior, you've likely never heard of maintainer mode, so we
26 dnl can't expect you to enable it manually.
27
28 AS_IF([test "x${enable_maintainer_mode}" != "xno"],
29         [enable_maintainer_mode="yes"])
30 AM_MAINTAINER_MODE
31
32 dnl
33 dnl  Deprecated options
34 dnl  to notify packagers that stuff has changed
35 dnl
36 AC_ARG_ENABLE(python-bindings,
37   [  --enable-python-bindings Always fails for historical reasons)],,
38   [enable_python_bindings="no"])
39 AS_IF([test "${enable_python_bindings}" != "no"], [
40   AC_MSG_ERROR([Python bindings are now built from a separate source package])
41 ])
42
43 AC_ARG_ENABLE(java-bindings,
44   [  --enable-java-bindings  Always fails for historical reasons],,
45   [enable_java_bindings="no"])
46 AS_IF([test "${enable_java_bindings}" != "no"], [
47   AC_MSG_ERROR([Java bindings are now built from a separate source package])
48 ])
49
50 dnl
51 dnl  Save *FLAGS
52 dnl
53 VLC_SAVE_FLAGS
54
55 dnl
56 dnl Check for tools
57 dnl
58 AC_PROG_CC_C99
59 AC_USE_SYSTEM_EXTENSIONS
60 AC_DEFINE([_FORTIFY_SOURCE], 2, [Define to `2' to get glibc warnings.])
61 AM_PROG_CC_C_O
62 AC_PROG_CXX
63 AC_PROG_CPP
64 AC_PROG_OBJC
65 _AM_DEPENDENCIES([OBJC])
66 AC_PROG_EGREP
67 AC_PROG_MAKE_SET
68 AC_PROG_INSTALL
69 AM_PROG_AS
70
71 dnl Find the right ranlib, even when cross-compiling
72 AC_CHECK_TOOL(RANLIB, ranlib, :)
73 AC_CHECK_TOOL(STRIP, strip, :)
74 AC_CHECK_TOOL(AR, ar, :)
75 AC_CHECK_TOOL(LD, ld, :)
76 AC_CHECK_TOOL(DLLTOOL, dlltool, :)
77
78 dnl Check for compiler properties
79 AC_C_CONST
80 AC_C_INLINE
81 AC_C_RESTRICT
82
83 dnl
84 dnl  Check for the contrib directory
85 dnl
86 AC_ARG_WITH(contrib,
87     [  --without-contrib       do not use the libraries in extras/contrib],[],[])
88   if test "${with_contrib}" != "no"; then 
89     AC_MSG_CHECKING([for libs in extras/contrib])
90     topdir="`dirname $0`"
91     if test "`echo \"$topdir\" | cut -c 1`" != "/"; then
92        topdir="`pwd`/$topdir"
93     fi
94    if test "`grep HOST ${topdir}/extras/contrib/config.mak 2>/dev/null|awk '{print $3}'`" != "`$CC -dumpmachine`"; then
95       if test "${with_contrib}" = "yes"; then
96         AC_MSG_RESULT([no])
97         AC_MSG_ERROR([ not using the libs in extras/contrib as it is not the same host])
98       else
99         AC_MSG_RESULT([no])
100         AC_MSG_WARN([ not using the libs in extras/contrib as it is not the same host])
101       fi
102      else
103   if test -d ${topdir}/extras/contrib/lib; then
104     AC_MSG_RESULT([yes])
105     export PATH=${topdir}/extras/contrib/bin:$PATH
106     CPPFLAGS="${CPPFLAGS} -I${topdir}/extras/contrib/include"
107     CPPFLAGS_save="${CPPFLAGS_save} -I${topdir}/extras/contrib/include"
108     CFLAGS="${CFLAGS} -I${topdir}/extras/contrib/include"
109     CFLAGS_save="${CFLAGS_save} -I${topdir}/extras/contrib/include"
110     CXXFLAGS="${CXXFLAGS} -I${topdir}/extras/contrib/include"
111     CXXFLAGS_save="${CXXFLAGS_save} -I${topdir}/extras/contrib/include"
112     OBJCFLAGS="${OBJCFLAGS} -I${topdir}/extras/contrib/include"
113     OBJCFLAGS_save="${OBJCFLAGS_save} -I${topdir}/extras/contrib/include"
114     if test $build = $host -o "$PKG_CONFIG_LIBDIR"; then
115         export PKG_CONFIG_PATH=${topdir}/extras/contrib/lib/pkgconfig:$PKG_CONFIG_PATH
116     else
117         export PKG_CONFIG_LIBDIR=${topdir}/extras/contrib/lib/pkgconfig
118     fi
119     LDFLAGS="${LDFLAGS} -L${topdir}/extras/contrib/lib"
120     LDFLAGS_save="${LDFLAGS_save} -L${topdir}/extras/contrib/lib"
121
122     if test -z $with_live555_tree; then
123        with_live555_tree=${topdir}/extras/contrib/src/live
124     fi
125     if test -z $with_goom_tree; then
126        with_goom_tree=${topdir}/extras/contrib/src/goom
127     fi
128     if test -z $with_mozilla_sdk_path; then
129        with_mozilla_sdk_path=${topdir}/extras/contrib/gecko-sdk
130     fi
131     if test -z $with_cyberlink_tree; then
132        with_cyberlink_tree=${topdir}/extras/contrib/src/clinkcc
133     fi
134     if test -z $with_libmpeg2_tree; then
135        with_libmpeg2_tree=${topdir}/extras/contrib/src/mpeg2dec
136     fi
137     if test -z $with_a52_tree; then
138        with_a52_tree=${topdir}/extras/contrib/src/a52dec
139     fi
140
141     if test ".`uname -s`" = ".Darwin"; then
142       export LD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$LD_LIBRARY_PATH
143       export DYLD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$DYLD_LIBRARY_PATH
144     elif test ".`uname -s`" = ".BeOS"; then
145       export LIBRARY_PATH=${topdir}/extras/contrib/lib:$LIBRARY_PATH
146       export BELIBRARIES=${topdir}/extras/contrib/lib:$BELIBRARIES
147     fi
148   else
149      AC_MSG_RESULT([no])
150   fi
151   fi
152 fi
153 dnl
154 dnl  Set default values
155 dnl
156 LDFLAGS_vlc="${LDFLAGS}"
157
158 dnl
159 dnl  Check the operating system
160 dnl
161 case "${host_os}" in
162   "")
163     SYS=unknown
164     ;;
165   linux*)
166     SYS=linux
167     ;;
168   bsdi*)
169     SYS=bsdi
170     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
171     VLC_ADD_LIBS([dvd dvdcss vcd cdda vcdx cddax],[-ldvd])
172     ;;
173   *bsd*)
174     SYS="${host_os}"
175     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
176     case "${host_os}" in
177       freebsd*)
178         CPPFLAGS_save="${CPPFLAGS_save} -I/usr/local/include"
179         CPPFLAGS="${CPPFLAGS_save}"
180         LDFLAGS_save="${LDFLAGS_save} -L/usr/local/lib"
181         LDFLAGS="${LDFLAGS_save}"
182         ;;
183     esac
184     ;;
185   darwin*)
186     SYS=darwin
187     CFLAGS_save="${CFLAGS_save} -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
188     CXXFLAGS_save="${CXXFLAGS_save} -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
189     OBJCFLAGS_save="${OBJCFLAGS_save} -D_INTL_REDIRECT_MACROS -std=gnu99"; OBJCFLAGS="${OBJCFLAGS_save}"
190     LDFLAGS_save="${LDFLAGS_save} -Wl,-headerpad_max_install_names"; LDFLAGS="${LDFLAGS_save}"
191     VLC_ADD_LDFLAGS([mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
192     VLC_ADD_LDFLAGS([mkv mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
193     VLC_ADD_LDFLAGS([vlc],[-Wl,-undefined,dynamic_lookup])
194     VLC_ADD_LDFLAGS([libvlc_control],[-Wl,dynamic_lookup])
195     VLC_ADD_LDFLAGS([ffmpeg i420_rgb_mmx x264],[-Wl,-read_only_relocs,suppress])
196     VLC_ADD_CFLAGS([motion],[-fconstant-cfstrings])
197     VLC_ADD_LDFLAGS([libvlc],[-Wl,-framework,Cocoa,-framework,CoreFoundation])
198     VLC_ADD_LDFLAGS([motion],[-Wl,-framework,IOKit,-framework,CoreFoundation])
199     AC_ARG_ENABLE(macosx-defaults,
200         [  --enable-macosx-defaults Build the default configuration on Mac OS X (default enabled)])
201     if test "x${enable_macosx_defaults}" != "xno"
202     then
203         echo ""
204         echo "Building with Mac OS X defaults:"
205         with_macosx_version_min="10.4"
206         echo "  Assuming --with-macosx-version-min=10.4"
207         build_dir=`pwd`
208         echo "  Assuming --prefix=${build_dir}/vlc_install_dir"
209         ac_default_prefix="${build_dir}/vlc_install_dir"
210         enable_macosx="yes"
211         echo "  Assuming --enable-macosx"
212         enable_faad="yes"
213         echo "  Assuming --enable-faad"
214         enable_flac="yes"
215         echo "  Assuming --enable-flac"
216         enable_theora="yes"
217         echo "  Assuming --enable-theora"
218         enable_shout="yes"
219         echo "  Assuming --enable-shout"
220         enable_cddax="yes"
221         echo "  Assuming --enable-cddax"
222         enable_vcdx="yes"
223         echo "  Assuming --enable-vcdx"
224         enable_caca="yes"
225         echo "  Assuming --enable-caca"
226         enable_goom="yes"
227         echo "  Assuming --enable-goom"
228         enable_ncurses="yes"
229         echo "  Assuming --enable-ncurses"
230         enable_twolame="yes"
231         echo "  Assuming --enable-twolame"
232         enable_realrtsp="yes"
233         echo "  Assuming --enable-realrtsp"
234
235         enable_skins2="no"
236         echo "  Assuming --disable-skins2"
237         enable_x11="no"
238         echo "  Assuming --disable-x11"
239         enable_glx="no"
240         echo "  Assuming --disable-glx"
241         enable_xvideo="no"
242         echo "  Assuming --disable-xvideo"
243     fi
244     if test ".`uname -p`" = ".i386"; then
245         dnl Due to a ld(64) bug in 10.5 we cannot use our mmx code
246         dnl without hacking it a lot, we disable mmx and sse.
247         dnl (that bug is about ld being unable to handle
248         dnl text relocation)
249         save_cflags="$CFLAGS"
250         CFLAGS="$CFLAGS -dynamiclib -single_module -read_only_relocs suppress"
251         AC_TRY_LINK(
252             [int a;], [asm("movq _a,%mm0\n");],
253             ac_ld_does_not_support_text_reloc=no,
254             ac_ld_does_not_support_text_reloc=yes)
255         CFLAGS="$save_cflags"
256
257         if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
258             enable_mmx="no"
259             echo "  Assuming --disable-mmx (due to a bug in ld)"
260             enable_sse="no"
261             echo "  Assuming --disable-sse (due to a bug in ld)"
262         fi
263     fi
264     dnl
265     dnl  Check for Mac OS X SDK settings
266     dnl
267     AC_ARG_WITH(macosx-sdk,
268        [  --with-macosx-sdk=DIR   compile using the SDK in DIR])
269     if test "${with_macosx_sdk}" != "" ; then
270         CC="${CC} -isysroot ${with_macosx_sdk}" 
271         CXX="${CXX} -isysroot ${with_macosx_sdk}"
272         OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
273         LD="${LD} -syslibroot ${with_macosx_sdk}"
274     fi
275     AC_ARG_WITH(macosx-version-min,
276        [  --with-macosx-version-min=VERSION  compile for MacOSX VERSION and above])
277     if test "${with_macosx_version_min}" != "" ; then
278         CC="${CC} -mmacosx-version-min=${with_macosx_version_min}" 
279         CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
280         OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
281         LD="${LD} -macosx_version_min=${with_macosx_version_min}"
282         CFLAGS_save="${CFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CFLAGS="${CFLAGS_save}"
283         CXXFLAGS_save="${CXXFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CXXFLAGS="${CXXFLAGS_save}"
284         OBJCFLAGS_save="${OBJCFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; OBJCFLAGS="${OBJCFLAGS_save}"
285         MACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}
286         export MACOSX_DEPLOYMENT_TARGET
287     fi
288     ;;
289   *mingw32* | *cygwin* | *wince* | *mingwce* | *pe*)
290     AC_CHECK_TOOL(WINDRES, windres, :)
291
292     case "${host_os}" in
293       *wince* | *mingwce* | *mingw32ce* | *pe*)
294         SYS=mingwce
295         ;;
296       *mingw32*)
297         SYS=mingw32
298         ;;
299       *cygwin*)
300         dnl Check if we are using the mno-cygwin mode in which case we are
301         dnl actually dealing with a mingw32 compiler.
302         AC_EGREP_CPP(yes,
303             [#ifdef WIN32
304              yes
305              #endif],
306             SYS=mingw32, SYS=cygwin)
307         ;;
308     esac
309
310     if test "${SYS}" = "mingw32"; then
311         # add ws2_32 for closesocket, select, recv
312         VLC_ADD_LIBS([libvlc],[-lws2_32 -lnetapi32 -lwinmm])
313         VLC_ADD_LDFLAGS([vlc],[-mwindows])
314         VLC_ADD_LIBS([activex mozilla],[-lgdi32])
315         VLC_ADD_LIBS([cdda vcdx cddax sdl_image],[-lwinmm])
316         VLC_ADD_LIBS([access_http access_mms access_udp access_tcp access_ftp access_rtmp access_output_udp access_output_shout sap slp http stream_out_standard stream_out_rtp vod_rtsp access_realrtsp telnet rc netsync gnutls growl_udp flac ts audioscrobbler lua],[-lws2_32])
317     fi
318     if test "${SYS}" = "mingwce"; then
319         # add ws2 for closesocket, select, recv
320         VLC_ADD_CPPFLAGS([libvlc vlc],[-Dmain(a,b)=maince(a,b)])
321         VLC_ADD_LDFLAGS([libvlc vlc],[-e WinMainCRTStartup])
322         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],[-lws2])
323         VLC_ADD_LIBS([libvlc],[-lmmtimer])
324    fi
325     ;;
326   *nto*)
327     SYS=nto
328     VLC_ADD_LIBS([x11 xvideo],[-lsocket])
329     ;;
330   solaris*)
331     SYS=solaris
332     # _POSIX_PTHREAD_SEMANTICS is needed to get the POSIX ctime_r
333     # Perhaps it is useful other places as well? 
334     CFLAGS_save="${CFLAGS_save} -D_POSIX_PTHREAD_SEMANTICS"; CFLAGS="${CFLAGS_save}"
335     ;;
336   hpux*)
337     SYS=hpux
338     ;;
339   beos)
340     SYS=beos
341     CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}"
342     CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}"
343     VLC_ADD_CXXFLAGS([beos],[])
344     VLC_ADD_LIBS([vlc libvlc logger],[-lbe])
345     VLC_ADD_LIBS([beos],[-lbe -lmedia -ltranslation -ltracker -lgame])
346     VLC_ADD_LIBS([dvdnav dvdread],[-ldl])
347     VLC_ADD_LIBS([access_file],[-lpoll])
348     LDFLAGS_save="${LDFLAGS_save} -lintl"; LDFLAGS="${LDFLAGS_save}"
349     dnl Check for BONE
350     if test -f /boot/beos/system/lib/libbind.so; then
351         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlc growl_udp],[-lbind -lsocket])
352     else
353         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlc growl_udp],[-lnet])
354     fi
355
356     dnl Ugly check for Zeta
357     if test -f /boot/beos/system/lib/libzeta.so; then
358         VLC_ADD_LIBS([beos],[-lzeta])
359     fi
360     ;;
361   *)
362     SYS="${host_os}"
363     ;;
364 esac
365 AM_CONDITIONAL(HAVE_BEOS, test "${SYS}" = "beos")
366 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
367 AM_CONDITIONAL(HAVE_LINUX, [test "${SYS}" = "linux"])
368 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
369 AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
370
371 dnl
372 dnl Sadly autoconf doesn't think about testing foo.exe when ask to test 
373 dnl for program foo on win32
374
375 case "${build_os}" in
376     cygwin|msys)
377         ac_executable_extensions=".exe"
378     ;;
379     *)
380     ;;
381 esac
382
383 dnl 
384 dnl  Libtool
385 dnl  It's very bad, but our former custom system was worst
386 dnl  -- Courmisch
387 dnl
388
389 dnl override platform specific check for dependent libraries
390 dnl otherwise libtool linking of shared libraries will
391 dnl fail on anything other than pass_all.
392 AC_CACHE_VAL(lt_cv_deplibs_check_method,
393     [lt_cv_deplibs_check_method=pass_all])
394
395 AC_DISABLE_STATIC
396 AC_DISABLE_FAST_INSTALL
397 AC_LIBTOOL_DLOPEN
398 AC_LIBTOOL_WIN32_DLL
399 m4_undefine([AC_PROG_F77])
400 m4_defun([AC_PROG_F77],[])
401 AC_PROG_LIBTOOL
402
403 m4_undefine([AC_DEPLIBS_CHECK_METHOD])
404 m4_defun([AC_DEPLIBS_CHECK_METHOD],[])
405
406 lt_cv_deplibs_check_method=pass_all
407
408
409 dnl
410 dnl Gettext stuff
411 dnl
412 AM_GNU_GETTEXT_VERSION([0.17])
413 AM_GNU_GETTEXT([external])
414 VLC_ADD_LIBS([libvlc vlc], [${LTLIBINTL}])
415
416 dnl
417 dnl Iconv stuff
418 dnl
419 AM_ICONV
420 AS_IF([test "$am_cv_func_iconv" != "yes"],
421         [AC_MSG_ERROR([libiconv is needed for VLC to work properly])])
422 VLC_ADD_CFLAGS([libvlc],[${INCICONV}])
423 VLC_ADD_LIBS([libvlc],[${LTLIBICONV}])
424
425 dnl Check for the need to include the mingwex lib for mingw32
426 if test "${SYS}" = "mingw32"
427 then
428     AC_CHECK_LIB(mingwex,opendir,
429         AC_CHECK_LIB(mingw32,opendir,,
430             [VLC_ADD_LIBS([libvlc gtk],[-lmingwex])])
431     )
432 fi
433
434 dnl Check for fnative-struct or mms-bitfields support for mingw32
435 if test "${SYS}" = "mingw32"
436 then
437     AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
438         [ac_cv_c_mms_bitfields],
439         [CFLAGS="${CFLAGS_save} -mms-bitfields"
440          AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
441     if test "${ac_cv_c_mms_bitfields}" != "no"; then
442         CFLAGS_save="${CFLAGS_save} -mms-bitfields";
443         CXXFLAGS_save="${CXXFLAGS_save} -mms-bitfields";
444     else
445         AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
446             [ac_cv_c_fnative_struct],
447             [CFLAGS="${CFLAGS_save} -fnative-struct"
448              AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
449         if test "${ac_cv_c_fnative_struct}" != "no"; then
450             CFLAGS_save="${CFLAGS_save} -fnative-struct";
451             CXXFLAGS_save="${CXXFLAGS_save} -fnative-struct";
452         fi
453     fi
454
455     CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
456 fi
457
458 dnl Check for fvtable-thunks support for mingw32
459 if test "${SYS}" = "mingw32" -a "${CXX}" != ""
460 then
461 AC_LANG_PUSH(C++)
462     AC_CACHE_CHECK([if \$CXX accepts -fvtable-thunks],
463         [ac_cv_cxx_fvtable_thunks],
464         [CXXFLAGS="${CXXFLAGS_save} -Wall -Werror -fvtable-thunks"
465          AC_TRY_COMPILE([],,ac_cv_cxx_fvtable_thunks=yes,
466                         ac_cv_cxx_fvtable_thunks=no)])
467     if test "${ac_cv_cxx_fvtable_thunks}" = "yes"; then
468         CXXFLAGS_mingw32_special="-fvtable-thunks"
469     fi
470
471     CXXFLAGS_save="${CXXFLAGS_save} ${CXXFLAGS_mingw32_special}"; CXXFLAGS="${CXXFLAGS_save}"
472 AC_LANG_POP(C++)
473 fi
474
475 dnl Plugin compilation stuff
476
477 VLC_LIBRARY_SUFFIX
478
479 dnl The -DSYS_FOO flag
480 CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
481
482 dnl Check for system libs needed
483 need_libc=false
484
485 dnl Check for usual libc functions
486 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])
487 AC_CHECK_FUNCS(strcasecmp,,[AC_CHECK_FUNCS(stricmp)])
488 AC_CHECK_FUNCS(strncasecmp,,[AC_CHECK_FUNCS(strnicmp)])
489 AC_CHECK_FUNCS(strcasestr,,[AC_CHECK_FUNCS(stristr)])
490 AC_FUNC_ALLOCA
491
492 AH_BOTTOM([#include <vlc_fixups.h>])
493
494 AC_CHECK_FUNCS(mmap, [VLC_ADD_PLUGIN([access_mmap])])
495
496 dnl Check for setlocal and langinfo
497 AC_CHECK_FUNCS(setlocale)
498 AC_CHECK_HEADERS(langinfo.h)
499 AC_CHECK_FUNCS(nl_langinfo)
500
501 AC_CACHE_CHECK([for nl_langinfo and CODESET], ac_cv_langinfo_codeset,
502   [AC_TRY_LINK([#include <langinfo.h>],
503     [char* cs = nl_langinfo(CODESET);],
504     ac_cv_langinfo_codeset=yes,
505     ac_cv_langinfo_codeset=no)
506   ])
507 if test ${ac_cv_langinfo_codeset} = yes; then
508   AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
509     [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
510 fi
511
512 AC_CHECK_FUNCS(connect,,[
513   AC_CHECK_LIB(socket,connect,[
514     VLC_ADD_LIBS([libvlc cdda cddax],-lsocket)
515     LIBS_socket="-lsocket"
516   ])
517 ])
518
519 AC_CHECK_FUNCS(send,,[
520   AC_CHECK_LIB(socket,send,[
521     VLC_ADD_LIBS([access_http access_mms access_udp access_tcp access_ftp access_rtmp sap access_output_udp stream_out_standard growl_udp],[-lsocket])
522   ])
523 ])
524
525 AC_CHECK_FUNCS(gethostbyname,,[
526   AC_CHECK_LIB(nsl,gethostbyname,[
527     VLC_ADD_LIBS([cdda cddax libvlc],[-lnsl])
528   ],[
529     AC_CHECK_LIB(bind,gethostbyname,[
530       VLC_ADD_LIBS([access_mms],[-lbind])
531     ])
532   ])
533 ])
534
535 AC_CHECK_HEADERS(zlib.h, [
536   VLC_ADD_LIBS([access_http],[-lz])
537 ])
538
539 dnl Check for socklen_t
540 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
541 AC_CACHE_CHECK([for socklen_t in sys/socket.h],
542 ac_cv_type_socklen_t,
543 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
544 [#include <sys/types.h>
545 #ifdef WIN32
546 # include <winsock2.h>
547 # include <ws2tcpip.h>
548 #else
549 # include <sys/socket.h>
550 #endif]], [[socklen_t len; len = 0;]])],
551 ac_cv_type_socklen_t=yes,
552 ac_cv_type_socklen_t=no)])
553 AS_IF([test "$ac_cv_type_socklen_t" = no],
554  [AC_DEFINE(socklen_t, int)])
555
556 dnl Check for struct sockaddr_storage
557 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.])
558 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.])
559 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
560   [AC_TRY_COMPILE(
561     [#include <sys/types.h>
562      #if defined( UNDER_CE )
563      # include <winsock.h>
564      #elif defined( WIN32 )
565      # include <winsock2.h>
566      #else
567      # include <sys/socket.h>
568      #endif], [struct sockaddr_storage addr;],
569      ac_cv_struct_sockaddr_storage=yes,
570      ac_cv_struct_sockaddr_storage=no)])
571 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
572   AC_DEFINE(sockaddr_storage, sockaddr)
573   AC_DEFINE(ss_family, sa_family)
574 ])
575
576 dnl getaddrinfo, getnameinfo and gai_strerror check
577 dnl  -lnsl and -lsocket are needed on Solaris;
578 dnl  we purposedly make the test fail on Windows
579 LIBS_save="${LIBS}"
580 AH_TEMPLATE(HAVE_GETADDRINFO, [Define to 1 if you have the `getaddrinfo' function.])
581 AC_SEARCH_LIBS([getaddrinfo], [nsl], [AC_DEFINE(HAVE_GETADDRINFO)],, [${LIBS_socket}])
582
583 dnl NOTE: we assume getaddrinfo will be present if getnameinfo or gai_strerro
584 dnl are
585 LIBS="${LIBS_gai}"
586 AC_CHECK_FUNCS([getnameinfo gai_strerror])
587 LIBS="${LIBS_save}"
588
589 AH_TEMPLATE(HAVE_ADDRINFO, [Define to 1 if <netdb.h> defines `struct addrinfo'.])
590 AC_CHECK_TYPES([struct addrinfo],[AC_DEFINE(HAVE_ADDRINFO)],,
591 [#include <sys/types.h>
592 #if defined( WIN32 ) || defined( UNDER_CE )
593 # if defined(UNDER_CE) && defined(sockaddr_storage)
594 #  undef sockaddr_storage
595 # endif
596 # include <winsock2.h>
597 # include <ws2tcpip.h>
598 #else
599 # include <netdb.h>
600 #endif])
601
602 dnl Check for va_copy
603 AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
604   AC_TRY_LINK(
605     [#include <stdarg.h>],
606     [va_list ap1, ap2; va_copy(ap1,ap2);],
607     [ac_cv_c_va_copy="yes"],
608     [ac_cv_c_va_copy="no"]))
609 if test "${ac_cv_c_va_copy}" = "yes"; then
610   AC_DEFINE(HAVE_VA_COPY, 1, [Define if <stdarg.h> defines va_copy.])
611 fi
612 AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
613   AC_TRY_LINK(
614     [#include <stdarg.h>],
615     [va_list ap1, ap2; __va_copy(ap1,ap2);],
616     [ac_cv_c___va_copy="yes"],
617     [ac_cv_c___va_copy="no"]))
618 if test "${ac_cv_c___va_copy}" = "yes"; then
619   AC_DEFINE(HAVE___VA_COPY, 1, [Define if <stdarg.h> defines __va_copy.])
620 fi
621
622 AC_CHECK_FUNCS(inet_aton,,[
623   AC_CHECK_LIB(resolv,inet_aton,[
624     VLC_ADD_LIBS([libvlc],[-lresolv])
625   ])
626 ])
627
628 dnl Check for getopt (always use builtin one on win32)
629 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
630 need_getopt=:
631 else
632 need_getopt=false
633 AC_CHECK_FUNCS(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
634 [ # FreeBSD has a gnugetopt library for this:
635   AC_CHECK_LIB([gnugetopt],[getopt_long],
636     [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support)
637      VLC_ADD_LIBS([libvlc],[-lgnugetopt])],
638     [need_getopt=:])])
639 fi
640 AM_CONDITIONAL(BUILD_GETOPT, ${need_getopt})
641
642 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
643 AC_TYPE_SIGNAL
644 AC_CHECK_LIB(m,cos,[
645   VLC_ADD_LIBS([adjust wave ripple psychedelic gradient a52tofloat32 dtstofloat32 x264 goom visual panoramix rotate noise grain],[-lm])
646 ])
647 AC_CHECK_LIB(m,pow,[
648   VLC_ADD_LIBS([ffmpeg ffmpegaltivec stream_out_transrate i420_rgb faad twolame equalizer spatializer param_eq libvlc vorbis freetype mod mpc dmo quicktime realaudio galaktos opengl],[-lm])
649 ])
650 AC_CHECK_LIB(m,sqrt,[
651   VLC_ADD_LIBS([headphone_channel_mixer normvol speex mono colorthres extract],[-lm])
652 ])
653 AC_CHECK_LIB(m,ceil,[
654   VLC_ADD_LIBS([mosaic],[-lm])
655 ])
656 AC_CHECK_LIB(m,exp,[
657   VLC_ADD_LIBS([gaussianblur],[-lm])
658 ])
659 AC_CHECK_LIB(m,round,[
660   VLC_ADD_LIBS([dbus],[-lm])
661 ])
662 AC_CHECK_LIB(mx,sqrtf,[
663   VLC_ADD_LIBS([x264],[-lmx])
664 ])
665 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
666
667 dnl Check for dynamic plugins
668 ac_cv_have_plugins=no
669
670 # OS X style
671 AC_CHECK_HEADERS(mach-o/dyld.h,
672   [AC_CHECK_FUNCS(NSLinkModule,
673     [AC_DEFINE(HAVE_DL_DYLD, 1, [Define if you have the Darwin dyld API])
674      ac_cv_have_plugins=yes])])
675
676 # HP-UX style
677 if test "${ac_cv_have_plugins}" = "no"; then
678   AC_CHECK_HEADERS(dl.h)
679   ac_cv_my_have_shl_load=no
680   AC_CHECK_FUNC(shl_load,
681    [ac_cv_my_have_shl_load=yes,
682     AC_CHECK_LIB(dld, shl_load,
683      [ac_cv_my_have_shl_load=yes
684       VLC_ADD_LIBS([libvlc],[-ldld])])])
685   if test "${ac_cv_my_have_shl_load}" = "yes"; then
686     AC_DEFINE(HAVE_DL_SHL_LOAD, 1, [Define if you have the shl_load API])
687     ac_cv_have_plugins=yes
688   fi
689 fi
690
691 # Whatever style
692 if test "${ac_cv_have_plugins}" = "no"; then
693   AC_CHECK_LIB(dld, dld_link,
694    [VLC_ADD_LIBS([libvlc],[-ldld])
695     AC_DEFINE(HAVE_DL_DLD_LINK, 1, [Define if you have the GNU dld library])
696     ac_cv_have_plugins=yes])
697 fi
698
699 # Win32 style
700 if test "${ac_cv_have_plugins}" = "no"; then
701   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
702     AC_CHECK_LIB(kernel32, main,
703      [VLC_ADD_LIBS([libvlc],[-lkernel32])
704       AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
705       ac_cv_have_plugins=yes])
706   fi
707 fi
708
709 # WinCE style
710 if test "${ac_cv_have_plugins}" = "no"; then
711   if test "${SYS}" = "mingwce"; then
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 # BeOS style
718 if test "${ac_cv_have_plugins}" = "no"; then
719   AC_CHECK_HEADERS(image.h)
720   AC_CHECK_FUNCS(load_add_on,
721    [AC_DEFINE(HAVE_DL_BEOS, 1, [Define if you have the BeOS dl])
722     ac_cv_have_plugins=yes])
723 fi
724
725 # Only test for dlopen() if the others didn't work
726 if test "${ac_cv_have_plugins}" = "no"; then
727   AC_CHECK_HEADERS(dlfcn.h sys/dl.h)
728   ac_cv_my_have_dlopen=no
729   AC_CHECK_FUNC(dlopen,
730     ac_cv_my_have_dlopen=yes,
731     AC_CHECK_LIB(dl, dlopen,
732       ac_cv_my_have_dlopen=yes
733       VLC_ADD_LIBS([libvlc realaudio],[-ldl]),
734       AC_CHECK_LIB(svld, dlopen,
735         ac_cv_my_have_dlopen=yes
736         VLC_ADD_LIBS([libvlc],[-lsvld]))))
737   if test "${ac_cv_my_have_dlopen}" = "yes"; then
738     AC_DEFINE(HAVE_DL_DLOPEN, 1, [Define if you have the dlopen API])
739     ac_cv_have_plugins=yes
740   fi
741 fi
742
743 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
744 dnl Check for pthreads - borrowed from XMMS
745 THREAD_LIB=error
746 if test "${THREAD_LIB}" = "error"; then
747   AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
748 fi
749 if test "${THREAD_LIB}" = "error"; then
750   AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
751 fi
752 if test "${THREAD_LIB}" = "error"; then
753   AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
754 fi
755 if test "${THREAD_LIB}" = "error"; then
756   AC_CHECK_FUNCS(pthread_mutex_lock)
757   THREAD_LIB=""
758 fi
759
760 VLC_ADD_LIBS([libvlc plugin],[${THREAD_LIB}])
761
762 AC_CHECK_LIB(rt, clock_nanosleep, [
763   VLC_ADD_LIBS([libvlc],[-lrt])
764   AC_DEFINE(HAVE_CLOCK_NANOSLEEP, 1, [Define to 1 if you have clock_nanosleep.])
765 ], [
766   dnl HP/UX port
767   AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LIBS([libvlc],[-lrt])])
768 ])
769
770 have_nanosleep=false
771 AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[
772   AC_CHECK_LIB(rt,nanosleep,
773     [VLC_ADD_LIBS([libvlc],[-lrt]) have_nanosleep=:],
774     [AC_CHECK_LIB(posix4,nanosleep,
775         [VLC_ADD_LIBS([libvlc],[-lposix4]) have_nanosleep=:])]
776   )
777 ])
778 if ${have_nanosleep}; then
779   AC_DEFINE(HAVE_NANOSLEEP, 1, [Define if nanosleep is available.])
780 fi
781 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" 
782
783 dnl Check for misc headers
784 AC_MSG_CHECKING(for strncasecmp in strings.h)
785 AC_EGREP_HEADER(strncasecmp,strings.h,[
786   AC_MSG_RESULT(yes)
787   AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
788             Define if <strings.h> defines strncasecmp.)],[
789   AC_MSG_RESULT(no)])
790
791 dnl Check for headers
792 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)
793 AC_CHECK_HEADERS(sys/sockio.h fcntl.h sys/types.h sys/time.h sys/times.h sys/ioctl.h sys/stat.h)
794 AC_CHECK_HEADERS([arpa/inet.h netinet/in.h netinet/udplite.h])
795 AC_CHECK_HEADERS([net/if.h], [], [],
796   [
797     #include <sys/socket.h>
798   ])
799 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
800 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
801 AC_CHECK_HEADERS([linux/version.h linux/dccp.h])
802 AC_CHECK_HEADERS(syslog.h)
803 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
804
805 AC_HEADER_TIME
806
807 dnl LP64 adn LLP64 architectures had better define ssize_t by themselves...
808 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.])
809 AC_CHECK_TYPE(ssize_t,, [
810   AC_DEFINE(ssize_t, int)
811 ])
812
813 dnl don't attemp to use poll on darwin, it can't poll a tty. select will do a better job.
814 if test "${SYS}" != "darwin"; then
815   AC_SEARCH_LIBS(poll, [poll], [AC_DEFINE(HAVE_POLL, 1, [Define to 1 if the OS is usabl... err, has poll().])])
816 fi
817
818 dnl Check for dirent
819 need_dirent=false
820 AC_CHECK_HEADERS(dirent.h,,[need_dirent=:])
821 AM_CONDITIONAL(BUILD_DIRENT, ${need_dirent})
822
823 dnl Mac OS X and other OSes don't have declaration for nanosleep
824 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
825 AC_MSG_CHECKING(for nanosleep in time.h)
826 AC_EGREP_HEADER(nanosleep,time.h,[
827   AC_MSG_RESULT(yes)
828   AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
829             Define if <time.h> defines nanosleep.)
830 ],[
831   AC_MSG_RESULT(no)
832 ])
833 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
834
835 dnl Make sure we have timespecs
836 AC_MSG_CHECKING(for timespec in sys/time.h)
837 AC_EGREP_HEADER(timespec,sys/time.h,[
838   AC_MSG_RESULT(yes)
839   AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
840             Define if <sys/time.h> defines struct timespec.)
841 ],[
842   AC_MSG_RESULT(no)
843 ])
844
845 dnl Check for threads library
846 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
847 AC_CHECK_HEADERS(pthread.h kernel/scheduler.h kernel/OS.h)
848 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
849
850 dnl Find where are the X headers and libraries
851 AC_PATH_XTRA()
852
853 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.
854
855 PKG_PROG_PKG_CONFIG()
856
857 dnl Check for hal
858 AC_ARG_ENABLE(hal,
859   [  --enable-hal            Linux HAL services discovery (default enabled)])
860  
861 if test "${enable_hal}" != "no"
862 then
863   PKG_CHECK_MODULES(HAL, hal >= 0.5.0,
864     [ AC_DEFINE( HAVE_HAL_1, 1 , [Define if you have the new HAL library API])
865       AC_DEFINE( HAVE_HAL, 1, [Define if you have the HAL library] )
866       VLC_ADD_PLUGIN([hal])
867       VLC_ADD_PLUGIN([probe_hal])
868       VLC_ADD_LIBS([libvlc hal probe_hal],[$HAL_LIBS])
869       VLC_ADD_CFLAGS([libvlc hal probe_hal],[$HAL_CFLAGS])],   
870     dnl No hal 0.5 Test for 0.2
871     [ PKG_CHECK_MODULES( HAL, hal >= 0.2.97, 
872        [AC_DEFINE(HAVE_HAL, 1, [Define if you have the HAL library])
873         VLC_ADD_PLUGIN([hal])
874         VLC_ADD_LIBS([libvlc hal],[$HAL_LIBS])
875         VLC_ADD_CFLAGS([libvlc hal],[$HAL_CFLAGS])],
876        [AC_MSG_WARN(HAL library not found)])
877     ]
878   )
879 fi
880
881 dnl Check for dbus
882 AC_ARG_ENABLE(dbus,
883   [  --enable-dbus           Linux D-BUS message bus system (default enabled)])
884 case "${SYS}" in
885     linux*|*bsd*)
886 if test "${enable_dbus}" != "no"
887 then
888   dnl api stable dbus
889   PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.0.0,
890     [ AC_DEFINE( HAVE_DBUS_3, 1, [Define if you have the D-BUS library API >= 1.0.0] )
891       AC_DEFINE( HAVE_DBUS_2, 1, [Define if you have the D-BUS library API >= 0.92] )
892       AC_DEFINE( HAVE_DBUS_1, 1, [Define if you have the D-BUS library API >= 0.30] )
893       AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
894       VLC_ADD_LIBS([screensaver libvlc],[$DBUS_LIBS])
895       VLC_ADD_CFLAGS([screensaver libvlc],[$DBUS_CFLAGS])
896       dnl Check for dbus control interface
897         AC_ARG_ENABLE(dbus-control, [  --disable-dbus-control  D-BUS control interface (default enabled)])
898         if test "${enable_dbus_control}" != "no"
899         then
900           VLC_ADD_PLUGIN([dbus])
901           VLC_ADD_LIBS([dbus],[$DBUS_LIBS])
902           VLC_ADD_CFLAGS([dbus],[$DBUS_CFLAGS])
903         fi
904       dnl Check for Telepathy
905         AC_ARG_ENABLE(telepathy, [  --enable-telepathy      Telepathy Presence plugin through DBus(default enabled)])
906         if test "${enable_telepathy}" != "no"; then
907           VLC_ADD_PLUGIN([telepathy])
908           VLC_ADD_LIBS([telepathy],[$DBUS_LIBS])
909           VLC_ADD_CFLAGS([telepathy],[$DBUS_CFLAGS])
910         fi
911         dnl Power Management Inhibiter
912         VLC_ADD_PLUGIN([inhibit])
913         VLC_ADD_LIBS([inhibit],[$DBUS_LIBS])
914         VLC_ADD_CFLAGS([inhibit],[$DBUS_CFLAGS])
915         ],
916     if ${PKG_CONFIG} --exists dbus-1
917     then
918       [AC_ARG_ENABLE(old-dbus,
919         [  --enable-old-dbus       Deprecated D-Bus support (default disabled)])]
920
921       if test "${enable_old_dbus}" != "yes"
922       then
923         echo ""
924         echo "****** WARNING **** WARNING ***** WARNING *************"
925         echo "*** Your D-Bus version is < 1.0.0"
926         echo "*** You are using old and buggy software and so"
927         echo "*** D-Bus support has been disabled."
928         echo "*** Please upgrade D-Bus : http://dbus.freedesktop.org"
929         echo "*** Alternatively you can force the use of your old and"
930         echo "*** buggy D-Bus version by specifying --enable-old-dbus"
931         echo "*******************************************************"
932         echo ""
933       else
934         dnl not too old dbus
935         [ PKG_CHECK_MODULES(DBUS, dbus-1 >= 0.92,
936           [ AC_DEFINE( HAVE_DBUS_2, 1, [Define if you have the D-BUS library API >= 0.92] )
937             AC_DEFINE( HAVE_DBUS_1, 1, [Define if you have the D-BUS library API >= 0.30] )
938             AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
939             VLC_ADD_LIBS([screensaver],[$DBUS_LIBS])
940             VLC_ADD_CFLAGS([screensaver],[$DBUS_CFLAGS])],
941           dnl older dbus
942           [ PKG_CHECK_MODULES(DBUS, dbus-1 >= 0.30,
943             [ AC_DEFINE( HAVE_DBUS_1, 1, [Define if you have the D-BUS library API >= 0.30 ] )
944               AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
945               VLC_ADD_LIBS([screensaver],[$DBUS_LIBS])
946               VLC_ADD_CFLAGS([screensaver],[$DBUS_CFLAGS])],
947             dnl much older dbus
948             [ PKG_CHECK_MODULES( DBUS, dbus-1, 
949                [AC_DEFINE(HAVE_DBUS, 1, [Define if you have the D-BUS library])
950                 VLC_ADD_LIBS([screensaver],[$DBUS_LIBS])
951                 VLC_ADD_CFLAGS([screensaver],[$DBUS_CFLAGS])],
952                [AC_MSG_WARN(DBUS library not found)])
953             ]
954           )]
955         )]
956       fi
957     fi
958   )
959 fi
960 ;;
961 esac
962
963 dnl Build the gtk_main plugins?
964 NEED_GTK_MAIN=no
965 NEED_GNOME_MAIN=no
966 NEED_GTK2_MAIN=no
967 NEED_GNOME2_MAIN=no
968
969 dnl build the qte plugin ?
970 NEED_QTE_MAIN=no
971
972 dnl Check for ntohl, etc.
973 AC_CACHE_CHECK([for ntohl in sys/param.h],
974     [ac_cv_c_ntohl_sys_param_h],
975     [CFLAGS="${CFLAGS_save} -Wall -Werror"
976      AC_TRY_COMPILE([#include <sys/param.h>],
977         [int meuh; ntohl(meuh);],
978         ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
979 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
980     AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
981 fi
982 CFLAGS="${CFLAGS_save}"
983
984 RDC_PROG_CC_WFLAGS([all extra sign-compare undef pointer-arith bad-function-cast cast-align write-strings missing-prototypes volatile-register-var])
985 RDC_PROG_CC_FLAGS_IFELSE([-pipe])
986
987 dnl Check for various optimization flags
988 AC_CACHE_CHECK([if \$CC accepts -Os],
989     [ac_cv_c_os],
990     [CFLAGS="${CFLAGS_save} -Os"
991      AC_TRY_COMPILE([],,ac_cv_c_os=yes, ac_cv_c_os=no)])
992 if test "${ac_cv_c_os}" != "no"; then
993     CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -Os"
994 else 
995     AC_CACHE_CHECK([if \$CC accepts -O],
996         [ac_cv_c_o],
997         [CFLAGS="${CFLAGS_save} -O"
998          AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
999     if test "${ac_cv_c_o}" != "no"; then
1000         if test "${ac_cv_c_o3}" = "no"; then
1001             CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -O"
1002         fi
1003     fi
1004 fi
1005
1006 AC_CACHE_CHECK([if \$CC accepts -O3],
1007     [ac_cv_c_o3],
1008     [CFLAGS="${CFLAGS_save} -O3"
1009      AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
1010 if test "${ac_cv_c_o3}" != "no" -a "x${enable_debug}" = "xno"; then
1011     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O3"
1012 else
1013     AC_CACHE_CHECK([if \$CC accepts -O2],
1014         [ac_cv_c_o2],
1015         [CFLAGS="${CFLAGS_save} -O2"
1016          AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
1017     if test "${ac_cv_c_o2}" != "no"; then
1018         CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O2"
1019     else
1020         AC_CACHE_CHECK([if \$CC accepts -O],
1021             [ac_cv_c_o],
1022             [CFLAGS="${CFLAGS_save} -O"
1023              AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
1024         if test "${ac_cv_c_o}" != "no"; then
1025             CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O"
1026         fi
1027     fi
1028 fi
1029
1030 AC_CACHE_CHECK([if \$CC accepts -O0],
1031     [ac_cv_c_o0],
1032     [CFLAGS="${CFLAGS_save} -O0"
1033      AC_TRY_COMPILE([],,ac_cv_c_o0=yes, ac_cv_c_o0=no)])
1034 if test "${ac_cv_c_o0}" != "no"; then
1035     CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O0"
1036 fi
1037
1038 dnl Check for -ffast-math
1039 AC_CACHE_CHECK([if \$CC accepts -ffast-math],
1040     [ac_cv_c_fast_math],
1041     [CFLAGS="${CFLAGS_save} -ffast-math"
1042      AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
1043 if test "${ac_cv_c_fast_math}" != "no"; then
1044     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -ffast-math"
1045 fi
1046
1047 dnl Check for -funroll-loops
1048 dnl Disabled on BeOS because BeOS' gcc is buggy and may crash with it
1049 if test "${SYS}" != "beos"
1050 then
1051   AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
1052       [ac_cv_c_unroll_loops],
1053       [CFLAGS="${CFLAGS_save} -funroll-loops"
1054        AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
1055   if test "${ac_cv_c_unroll_loops}" != "no"; then
1056       CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -funroll-loops"
1057   fi
1058 fi
1059
1060 dnl Check for -fomit-frame-pointer
1061 AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
1062     [ac_cv_c_omit_frame_pointer],
1063     [CFLAGS="${CFLAGS_save} -fomit-frame-pointer"
1064      AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
1065 if test "${ac_cv_c_omit_frame_pointer}" != "no"; then
1066     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
1067 fi
1068
1069 dnl Check for -fvisibility=hidden
1070 dnl Don't test on mingw32, because it is going to work with just a warning
1071 dnl even if it doesn't support it
1072 if test "${SYS}" != "mingw32"
1073 then
1074 AC_CACHE_CHECK([if \$CC accepts -fvisibility=hidden],
1075     [ac_cv_c_visibility_hidden],
1076     [CFLAGS="${CFLAGS_save} -fvisibility=hidden"
1077      AC_TRY_COMPILE([],,ac_cv_c_visibility_hidden=yes, ac_cv_c_visibility_hidden=no)])
1078 if test "${ac_cv_c_visibility_hidden}" != "no"; then
1079     VLC_ADD_CFLAGS([libvlc plugin],[-fvisibility=hidden])
1080 fi
1081 fi
1082
1083 AM_CONDITIONAL(HAVE_COMPILER_EXPORT, [test "$SYS" = "mingw32" -o "${ac_cv_c_visibility_hidden}" != "no"])
1084
1085 dnl Check for -fvisibility-inlines-hidden (breaks x86_64 linkers)
1086 dnl AC_LANG_PUSH(C++)
1087 dnl     AC_CACHE_CHECK([if \$CXX accepts -fvisibility-inlines-hidden],
1088 dnl         [ac_cv_c_visibility_inlines_hidden],
1089 dnl         [CXXFLAGS="${CXXFLAGS_save} -fvisibility-inlines-hidden"
1090 dnl          AC_TRY_COMPILE([],,ac_cv_c_visibility_inlines_hidden=yes, ac_cv_c_visibility_inlines_hidden=no)])
1091 dnl     if test "${ac_cv_c_visibility_inlines_hidden}" != "no"; then
1092 dnl         VLC_ADD_CXXFLAGS([libvlc plugin],[-fvisibility-inlines-hidden])
1093 dnl     fi
1094 dnl     CXXFLAGS="${CXXFLAGS_save}"
1095 dnl AC_LANG_POP(C++)
1096
1097 dnl Check for -mdynamic-no-pic
1098 dnl AC_CACHE_CHECK([if \$CC accepts -mdynamic-no-pic],
1099 dnl     [ac_cv_c_dynamic_no_pic],
1100 dnl     [CFLAGS="${CFLAGS_save} -mdynamic-no-pic"
1101 dnl      AC_TRY_COMPILE([],,ac_cv_c_dynamic_no_pic=yes, ac_cv_c_dynamic_no_pic=no)])
1102 dnl AS_IF([test "${ac_cv_c_dynamic_no_pic}" != "no"], [
1103 dnl     VLC_ADD_CFLAGS([builtin],[-mdynamic-no-pic])
1104 dnl     VLC_ADD_CFLAGS([libvlc],[-mdynamic-no-pic])
1105 dnl ])
1106
1107 dnl Check for Darwin plugin linking flags
1108 AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error],
1109     [ac_cv_ld_darwin],
1110     [CFLAGS="${CFLAGS_save} -bundle -undefined error"
1111      AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
1112 if test "${ac_cv_ld_darwin}" != "no"; then
1113     VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
1114 fi
1115
1116 dnl Check for standard plugin linking flags
1117 dnl BeOS' gcc needs -nostart instead of -shared, even if -shared isn't harmful (just a warning)
1118 dnl AS_IF([test "${SYS}" = "beos"], [
1119 dnl   VLC_ADD_LDFLAGS([plugin mozilla],[-nostart])
1120 dnl ], [
1121 dnl   AC_CACHE_CHECK([if \$CC accepts -shared],
1122 dnl         [ac_cv_ld_plugins],
1123 dnl         [CFLAGS="${CFLAGS_save} -shared"
1124 dnl        AC_TRY_COMPILE([],, ac_cv_ld_plugins=yes, ac_cv_ld_plugins=no)])
1125 dnl   AS_IF([test "${ac_cv_ld_plugins}" != "no"], [
1126 dnl     VLC_ADD_LDFLAGS([plugin mozilla],[-shared])
1127 dnl   ])
1128 dnl ])
1129
1130 dnl Checks for __attribute__(aligned()) directive
1131 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1132     [ac_cv_c_attribute_aligned],
1133     [ac_cv_c_attribute_aligned=0
1134         CFLAGS="${CFLAGS_save} -Werror"
1135     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1136         AC_TRY_COMPILE([],
1137         [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1138         [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1139     done
1140         CFLAGS="${CFLAGS_save}"])
1141 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1142     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1143         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1144 fi
1145
1146 dnl Checks for __attribute__(format()) directive
1147 AC_CACHE_CHECK([__attribute__ ((format ())) support with function pointers],
1148     [ac_cv_c_attribute_format],
1149     [ac_cv_c_attribute_format=no
1150         CFLAGS="${CFLAGS_save} -Werror"
1151         AC_TRY_COMPILE([],
1152         [static void (*pf_printf)(const char *, ...) __attribute__ ((format(printf,1,2)));(void)pf_printf;],
1153         [ac_cv_c_attribute_format=yes])
1154         CFLAGS="${CFLAGS_save}"])
1155 if test "${ac_cv_c_attribute_format}" != "no"; then
1156     AC_DEFINE(HAVE_ATTRIBUTE_FORMAT, 1, Support for __attribute__((format())) with function pointers)
1157 fi
1158
1159 dnl Check for __attribute__((packed))
1160 AC_CACHE_CHECK([for __attribute__((packed))],
1161   [ac_cv_c_attribute_packed],
1162   [ac_cv_c_attribute_packed=no
1163    AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b;],
1164                     [ac_cv_c_attribute_packed=yes])])
1165 if test "${ac_cv_c_attribute_packed}" != "no"; then
1166   AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1167 fi
1168
1169 dnl Check for __attribute__((visibility()))
1170 AC_CACHE_CHECK([for __attribute__((visibility()))],
1171   [ac_cv_c_attribute_visibility],
1172   [ac_cv_c_attribute_visibility=no
1173    AC_TRY_COMPILE(, [extern __attribute__((visibility("default"))) int foo(int);],
1174                     [ac_cv_c_attribute_visibility=yes])])
1175 if test "${ac_cv_c_attribute_visibility}" != "no"; then
1176   AC_DEFINE(HAVE_ATTRIBUTE_VISIBILITY, 1, Support for __attribute__((visibility())) for exporting symbols)
1177 fi
1178
1179 dnl
1180 dnl  Check the CPU
1181 dnl
1182 case "${host_cpu}" in
1183   "")
1184     ARCH=unknown
1185     ;;
1186   *)
1187     ARCH="${host_cpu}"
1188     ;;
1189 esac
1190
1191 dnl
1192 dnl  Enable profiling
1193 dnl
1194 AC_ARG_ENABLE(gprof,
1195 [  --enable-gprof          gprof profiling (default disabled)])
1196 AC_ARG_ENABLE(cprof,
1197 [  --enable-cprof          cprof profiling (default disabled)])
1198 test "${enable_gprof}" != "yes" && enable_gprof="no"
1199 test "${enable_cprof}" != "yes" && enable_cprof="no"
1200
1201 dnl
1202 dnl  default modules
1203 dnl
1204 VLC_ADD_PLUGIN([dummy])
1205 VLC_ADD_PLUGIN([logger])
1206 VLC_ADD_PLUGIN([memcpy])
1207 dnl Demuxers:
1208 VLC_ADD_PLUGIN([mpgv])
1209 VLC_ADD_PLUGIN([mpga])
1210 VLC_ADD_PLUGIN([m4v])
1211 VLC_ADD_PLUGIN([m4a])
1212 VLC_ADD_PLUGIN([h264])
1213 VLC_ADD_PLUGIN([vc1])
1214 VLC_ADD_PLUGIN([demux_cdg])
1215 VLC_ADD_PLUGIN([cdg])
1216 VLC_ADD_PLUGIN([ps])
1217 VLC_ADD_PLUGIN([pva])
1218 VLC_ADD_PLUGIN([avi])
1219 VLC_ADD_PLUGIN([asf])
1220 VLC_ADD_PLUGIN([mp4])
1221 VLC_ADD_PLUGIN([rawdv])
1222 VLC_ADD_PLUGIN([rawvid])
1223 VLC_ADD_PLUGIN([nsv])
1224 VLC_ADD_PLUGIN([real])
1225 VLC_ADD_PLUGIN([aiff])
1226 VLC_ADD_PLUGIN([mjpeg])
1227 VLC_ADD_PLUGIN([wav])
1228 VLC_ADD_PLUGIN([voc])
1229 VLC_ADD_PLUGIN([smf])
1230 VLC_ADD_PLUGIN([demuxdump])
1231 VLC_ADD_PLUGIN([flacsys])
1232 VLC_ADD_PLUGIN([tta])
1233 VLC_ADD_PLUGIN([subtitle])
1234 VLC_ADD_PLUGIN([vobsub])
1235 VLC_ADD_PLUGIN([a52sys])
1236 VLC_ADD_PLUGIN([dtssys])
1237 VLC_ADD_PLUGIN([au])
1238 VLC_ADD_PLUGIN([ty])
1239 VLC_ADD_PLUGIN([xa])
1240 VLC_ADD_PLUGIN([nuv])
1241 dnl Text codecs:
1242 VLC_ADD_PLUGIN([cvdsub])
1243 VLC_ADD_PLUGIN([svcdsub])
1244 VLC_ADD_PLUGIN([spudec])
1245 VLC_ADD_PLUGIN([subsdec])
1246 VLC_ADD_PLUGIN([subsusf])
1247 VLC_ADD_PLUGIN([t140])
1248 VLC_ADD_PLUGIN([dvbsub])
1249 VLC_ADD_PLUGIN([cc])
1250 dnl Video codecs:
1251 VLC_ADD_PLUGIN([cinepak])
1252 dnl Audio codecs:
1253 VLC_ADD_PLUGIN([araw])
1254 VLC_ADD_PLUGIN([adpcm])
1255 VLC_ADD_PLUGIN([mpeg_audio])
1256 VLC_ADD_PLUGIN([lpcm])
1257 VLC_ADD_PLUGIN([a52])
1258 VLC_ADD_PLUGIN([dts])
1259 VLC_ADD_PLUGIN([flac])
1260 dnl Video filters:
1261 VLC_ADD_PLUGIN([deinterlace])
1262 VLC_ADD_PLUGIN([invert])
1263 VLC_ADD_PLUGIN([adjust])
1264 VLC_ADD_PLUGIN([transform])
1265 VLC_ADD_PLUGIN([wave])
1266 VLC_ADD_PLUGIN([ripple])
1267 VLC_ADD_PLUGIN([psychedelic])
1268 VLC_ADD_PLUGIN([gradient])
1269 VLC_ADD_PLUGIN([motionblur])
1270 VLC_ADD_PLUGIN([rv32])
1271 VLC_ADD_PLUGIN([rotate])
1272 VLC_ADD_PLUGIN([noise])
1273 VLC_ADD_PLUGIN([grain])
1274 VLC_ADD_PLUGIN([extract])
1275 VLC_ADD_PLUGIN([sharpen])
1276 VLC_ADD_PLUGIN([seamcarving])
1277 VLC_ADD_PLUGIN([croppadd])
1278 VLC_ADD_PLUGIN([blendbench])
1279 VLC_ADD_PLUGIN([blend])
1280 VLC_ADD_PLUGIN([scale])
1281 VLC_ADD_PLUGIN([image])
1282 VLC_ADD_PLUGIN([vmem])
1283 VLC_ADD_PLUGIN([logo])
1284 VLC_ADD_PLUGIN([magnify])
1285 VLC_ADD_PLUGIN([puzzle])
1286 VLC_ADD_PLUGIN([colorthres])
1287 dnl Meta demuxers:
1288 VLC_ADD_PLUGIN([playlist])
1289 VLC_ADD_PLUGIN([export])
1290 VLC_ADD_PLUGIN([nsc])
1291 VLC_ADD_PLUGIN([xtag])
1292 dnl Channel mixing audio filters:
1293 VLC_ADD_PLUGIN([converter_fixed])
1294 VLC_ADD_PLUGIN([mono])
1295 VLC_ADD_PLUGIN([trivial_channel_mixer])
1296 dnl Resampling audio filters:
1297 VLC_ADD_PLUGIN([trivial_resampler])
1298 VLC_ADD_PLUGIN([ugly_resampler])
1299 dnl Audio mixers:
1300 VLC_ADD_PLUGIN([trivial_mixer])
1301 dnl Video chromas:
1302 VLC_ADD_PLUGIN([i420_rgb])
1303 VLC_ADD_PLUGIN([grey_yuv])
1304 dnl Video codecs:
1305 VLC_ADD_PLUGIN([rawvideo])
1306 dnl Access filters:
1307 VLC_ADD_PLUGIN([access_filter_timeshift])
1308 VLC_ADD_PLUGIN([access_filter_record])
1309 VLC_ADD_PLUGIN([access_filter_dump])
1310 VLC_ADD_PLUGIN([access_filter_bandwidth])
1311
1312 ALIASES="${ALIASES} cvlc"
1313
1314 dnl
1315 dnl default modules that need g++
1316 dnl
1317 AC_LANG_PUSH(C++)
1318 VLC_ADD_PLUGIN([spatializer])
1319 AC_LANG_POP(C++)
1320
1321 if test "${SYS}" != "mingwce"; then
1322   VLC_ADD_PLUGIN([gestures])
1323   VLC_ADD_PLUGIN([rc])
1324   VLC_ADD_PLUGIN([telnet])
1325   VLC_ADD_PLUGIN([hotkeys])
1326   VLC_ADD_PLUGIN([showintf])
1327   VLC_ADD_PLUGIN([marq])
1328   VLC_ADD_PLUGIN([podcast])
1329   VLC_ADD_PLUGIN([shout])
1330   VLC_ADD_PLUGIN([sap])
1331   VLC_ADD_PLUGIN([fake])
1332   VLC_ADD_PLUGIN([folder])
1333   VLC_ADD_PLUGIN([rss])
1334   VLC_ADD_PLUGIN([mosaic])
1335   VLC_ADD_PLUGIN([wall])
1336   VLC_ADD_PLUGIN([motiondetect])
1337   VLC_ADD_PLUGIN([clone])
1338   VLC_ADD_PLUGIN([crop])
1339   VLC_ADD_PLUGIN([erase])
1340   VLC_ADD_PLUGIN([bluescreen])
1341   VLC_ADD_PLUGIN([alphamask])
1342   VLC_ADD_PLUGIN([gaussianblur])
1343   VLC_ADD_PLUGIN([i420_yuy2])
1344   VLC_ADD_PLUGIN([i422_yuy2])
1345   VLC_ADD_PLUGIN([i420_ymga])
1346   VLC_ADD_PLUGIN([i422_i420])
1347   VLC_ADD_PLUGIN([yuy2_i422])
1348   VLC_ADD_PLUGIN([yuy2_i420])
1349   VLC_ADD_PLUGIN([chroma_chain])
1350   VLC_ADD_PLUGIN([aout_file])
1351   VLC_ADD_PLUGIN([linear_resampler])
1352   VLC_ADD_PLUGIN([bandlimited_resampler])
1353   VLC_ADD_PLUGIN([float32_mixer])
1354   VLC_ADD_PLUGIN([spdif_mixer])
1355   VLC_ADD_PLUGIN([simple_channel_mixer])
1356   VLC_ADD_PLUGIN([dolby_surround_decoder])
1357   VLC_ADD_PLUGIN([headphone_channel_mixer])
1358   VLC_ADD_PLUGIN([normvol])
1359   VLC_ADD_PLUGIN([equalizer])
1360   VLC_ADD_PLUGIN([param_eq])
1361   VLC_ADD_PLUGIN([converter_float])
1362   VLC_ADD_PLUGIN([a52tospdif])
1363   VLC_ADD_PLUGIN([dtstospdif])
1364   VLC_ADD_PLUGIN([audio_format])
1365   ALIASES="${ALIASES} rvlc"
1366 fi
1367
1368 dnl
1369 dnl Some plugins aren't useful on some platforms
1370 dnl
1371 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1372     VLC_ADD_PLUGIN([screensaver])
1373     VLC_ADD_PLUGIN([motion])
1374     VLC_ADD_PLUGIN([dynamicoverlay])
1375 elif test "${SYS}" != "mingwce"; then
1376     VLC_ADD_PLUGIN([ntservice])
1377     VLC_ADD_PLUGIN([access_smb])
1378     VLC_ADD_PLUGIN([dmo])
1379     VLC_ADD_PLUGIN([msn])
1380     VLC_ADD_LIBS([dmo],[-lole32 -luuid])
1381 else
1382     VLC_ADD_PLUGIN([win32text])
1383 fi
1384 if test "${SYS}" = "darwin"; then
1385     VLC_ADD_PLUGIN([quartztext])
1386     VLC_ADD_LDFLAGS([quartztext],[-Wl,-framework,Carbon,-framework,ApplicationServices])
1387 fi
1388
1389 dnl
1390 dnl  Accelerated modules
1391 dnl
1392 AC_ARG_WITH(,[])
1393 AC_ARG_WITH(,[Optimization options:])
1394
1395 dnl  Check for fully working MMX intrinsics
1396 dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a
1397 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1398 AC_ARG_ENABLE(mmx,
1399 [  --disable-mmx       disable MMX optimizations (default auto)],,[
1400   case "${host_cpu}" in
1401     i?86|x86_64)
1402       enable_mmx="yes"
1403       ;;
1404     *)
1405       enable_mmx="no"
1406       ;;
1407   esac
1408 ])
1409 AS_IF([test "${enable_mmx}" != "no"], [
1410   ARCH="${ARCH} mmx"
1411
1412   AC_CACHE_CHECK([if $CC groks MMX intrinsics],
1413     [ac_cv_c_mmx_intrinsics],
1414     [CFLAGS="${CFLAGS_save} -O -mmmx"
1415      AC_TRY_COMPILE([#include <mmintrin.h>
1416                      #include <stdint.h>
1417                      uint64_t frobzor;],
1418                     [__m64 a, b, c;
1419                      a = b = c = (__m64)frobzor;
1420                      a = _mm_slli_pi16(a, 3);
1421                      a = _mm_adds_pi16(a, b);
1422                      c = _mm_srli_pi16(c, 8);
1423                      c = _mm_slli_pi16(c, 3);
1424                      b = _mm_adds_pi16(b, c);
1425                      a = _mm_unpacklo_pi8(a, b);
1426                      frobzor = (uint64_t)a;],
1427                     [ac_cv_c_mmx_intrinsics=yes],
1428                     [ac_cv_c_mmx_intrinsics=no])])
1429   AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1430     AC_DEFINE(HAVE_MMX_INTRINSICS, 1,
1431               [Define to 1 if MMX intrinsics are available.])
1432     VLC_ADD_CFLAGS([memcpymmx i420_rgb_mmx i420_yuy2_mmx i422_yuy2_mmx i420_ymga_mmx],[-mmmx])
1433   ])
1434
1435   AC_CACHE_CHECK([if $CC groks MMX inline assembly],
1436     [ac_cv_mmx_inline],
1437     [CFLAGS="${CFLAGS_save}"
1438      AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
1439                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
1440   AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1441     AC_DEFINE(CAN_COMPILE_MMX, 1,
1442               [Define to 1 inline MMX assembly is available.])
1443     VLC_ADD_PLUGIN([memcpymmx])
1444     VLC_ADD_PLUGIN([i420_rgb_mmx])
1445     VLC_ADD_PLUGIN([i420_yuy2_mmx])
1446     VLC_ADD_PLUGIN([i422_yuy2_mmx])
1447     VLC_ADD_PLUGIN([i420_ymga_mmx])
1448   ])
1449
1450   AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1451     [ac_cv_mmxext_inline],
1452     [CFLAGS="${CFLAGS_save}"
1453      AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
1454                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
1455   AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1456     AC_DEFINE(CAN_COMPILE_MMXEXT, 1,
1457               [Define to 1 if MMX EXT inline assembly is available.])
1458     VLC_ADD_PLUGIN([memcpymmxext])
1459   ])
1460 ])
1461
1462 dnl  Check for fully workin SSE2 intrinsics
1463 dnl  We need support for -mmmx, we need <emmintrin.h>, and we also need a
1464 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1465 AC_ARG_ENABLE(sse,
1466 [  --disable-sse       disable SSE (1 and 2) optimizations (default auto)],, [
1467   case "${host_cpu}" in
1468     i686|x86_64)
1469       enable_sse=yes
1470       ;;
1471     *)
1472       enable_sse=no
1473       ;;
1474   esac
1475 ])
1476 AS_IF([test "${enable_sse}" != "no"], [
1477   ARCH="${ARCH} sse sse2"
1478
1479   AC_CACHE_CHECK([if $CC groks SSE2 intrinsics],
1480     [ac_cv_c_sse2_intrinsics],
1481     [CFLAGS="${CFLAGS_save} -O -msse2"
1482      AC_TRY_COMPILE([#include <emmintrin.h>
1483                      #include <stdint.h>
1484                      uint64_t frobzor;],
1485                     [__m128i a, b, c;
1486                      a = b = c = _mm_set1_epi64((__m64)frobzor);
1487                      a = _mm_slli_epi16(a, 3);
1488                      a = _mm_adds_epi16(a, b);
1489                      c = _mm_srli_epi16(c, 8);
1490                      c = _mm_slli_epi16(c, 3);
1491                      b = _mm_adds_epi16(b, c);
1492                      a = _mm_unpacklo_epi8(a, b);
1493                      frobzor = (uint64_t)_mm_movepi64_pi64(a);],
1494                     [ac_cv_c_sse2_intrinsics=yes],
1495                     [ac_cv_c_sse2_intrinsics=no])])
1496   AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1497     AC_DEFINE(HAVE_SSE2_INTRINSICS, 1,
1498               [Define to 1 if SSE2 intrinsics are available.])
1499     VLC_ADD_CFLAGS([i420_rgb_sse2 i420_yuy2_sse2 i422_yuy2_sse2],[-msse2])
1500   ])
1501
1502   AC_CACHE_CHECK([if $CC groks SSE inline assembly],
1503     [ac_cv_sse_inline],
1504     [CFLAGS="${CFLAGS_save}"
1505      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
1506                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
1507   AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1508     AC_DEFINE(CAN_COMPILE_SSE, 1,
1509               [Define to 1 if SSE inline assembly is available.])
1510   ])
1511
1512   AC_CACHE_CHECK([if $CC groks SSE2 inline assembly],
1513     [ac_cv_sse2_inline],
1514     [CFLAGS="${CFLAGS_save}"
1515      AC_TRY_COMPILE(,[void *p;asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p));],
1516                     ac_cv_sse2_inline=yes, ac_cv_sse2_inline=no)])
1517   AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1518     AC_DEFINE(CAN_COMPILE_SSE2, 1,
1519               [Define to 1 if SSE2 inline assembly is available.])
1520     VLC_ADD_PLUGIN([i420_rgb_sse2])
1521     VLC_ADD_PLUGIN([i420_yuy2_sse2])
1522     VLC_ADD_PLUGIN([i422_yuy2_sse2])
1523   ])
1524 ])
1525
1526 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly],
1527     [ac_cv_3dnow_inline],
1528     [CFLAGS="${CFLAGS_save}"
1529      AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
1530                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
1531 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1532   AC_DEFINE(CAN_COMPILE_3DNOW, 1,
1533             [Define to 1 if 3D Now! inline assembly is available.])
1534   VLC_ADD_PLUGIN([memcpy3dn])
1535 ])
1536
1537 AC_ARG_ENABLE(altivec,
1538 [  --disable-altivec       disable AltiVec optimizations (default auto)],, [
1539   AS_IF([test "${host_cpu}" = "powerpc"],
1540         [enable_altivec=yes], [enable_altivec=no])
1541 ])
1542 AS_IF([test "${enable_altivec}" = "yes"], [
1543   ARCH="${ARCH} altivec";
1544   AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1545     [ac_cv_altivec_inline],
1546     [CFLAGS="${CFLAGS_save}"
1547      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1548          ac_cv_altivec_inline="yes",
1549          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
1550           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1551             [ac_cv_altivec_inline="-Wa,-m7400"],
1552             ac_cv_altivec_inline=no)
1553          ])])
1554   AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1555     AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1556               [Define to 1 if AltiVec inline assembly is available.])
1557     AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1558       VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
1559       VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
1560       VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1561       VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1562       VLC_ADD_CFLAGS([libvlc],[${ac_cv_altivec_inline}])
1563     ])
1564     VLC_ADD_PLUGIN([memcpyaltivec])
1565     VLC_ADD_PLUGIN([i420_yuy2_altivec])
1566   ])
1567
1568 dnl The AltiVec C extensions
1569 dnl
1570 dnl There are several possible cases:
1571 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1572 dnl                      need <altivec.h>
1573 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1574 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1575 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1576 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1577 dnl - Others: test should fail
1578   AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1579   [ac_cv_c_altivec],
1580   [# OS X/PPC test (gcc 4.x)
1581    CFLAGS="${CFLAGS_save} -mpim-altivec -force_cpusubtype_ALL"
1582    AC_TRY_COMPILE([vector unsigned char foo;],
1583      [vec_ld(0, (unsigned char *)0);],
1584      [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1585      [# OS X/PPC test (gcc 3.x)
1586       CFLAGS="${CFLAGS_save} -faltivec"
1587       AC_TRY_COMPILE([vector unsigned char foo;],
1588         [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1589         [ac_cv_c_altivec="-faltivec"],
1590         dnl Below this are the Linux tests
1591         [# Linux/PPC test (gcc 4.x)
1592          CFLAGS="${CFLAGS_save} -maltivec"
1593          AC_TRY_COMPILE([#include <altivec.h>],
1594            [vec_ld(0, (unsigned char *)0);],
1595            [ac_cv_c_altivec="-maltivec"],
1596            [# Linux/PPC test (gcc 3.3)
1597             CFLAGS="${CFLAGS_save} -maltivec -mabi=altivec"
1598             AC_TRY_COMPILE([#include <altivec.h>],
1599               [vec_ld(0, (unsigned char *)0);],
1600               [ac_cv_c_altivec=""
1601                ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1602               [# Linux/PPC test (gcc 3.3)
1603                CFLAGS="${CFLAGS_save} -fvec"
1604                AC_TRY_COMPILE([#include <altivec.h>],
1605                  [vec_ld(0, (unsigned char *)0);],
1606                  [ac_cv_c_altivec="-fvec"],
1607                  [ac_cv_c_altivec=no])
1608               ])
1609            ])
1610         ])
1611      ])
1612    CFLAGS="${CFLAGS_save}"
1613   ])
1614   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1615     CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
1616   ])
1617
1618   AC_CHECK_HEADERS(altivec.h)
1619   CPPFLAGS="${CPPFLAGS_save}"
1620   
1621   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1622     AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1,
1623               [Define to 1 if C AltiVec extensions are available.])
1624     VLC_ADD_CFLAGS([libvlc],[${ac_cv_c_altivec}])
1625     VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
1626     VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1627     VLC_ADD_PLUGIN([memcpyaltivec])
1628     VLC_ADD_PLUGIN([i420_yuy2_altivec])
1629   ])
1630
1631   AC_CACHE_CHECK([if linker needs -framework vecLib],
1632     [ac_cv_ld_altivec],
1633     [LDFLAGS="${LDFLAGS_vlc} -Wl,-framework,vecLib"
1634      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
1635      LDFLAGS="${LDFLAGS_save}"
1636     ])
1637   AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1638     VLC_ADD_LDFLAGS([libvlc idctaltivec motionaltivec memcpyaltivec],[-Wl,-framework,vecLib])
1639   ])
1640 ])
1641
1642 dnl
1643 dnl  Special arch tuning
1644 dnl
1645 AC_ARG_WITH(tuning,
1646 [  --with-tuning=ARCH      enable special tuning for an architecture
1647                           (default Pentium 2 on IA-32 and G4 on PPC)])
1648 if test -n "${with_tuning}"; then
1649     if test "${with_tuning}" != "no"; then
1650         CFLAGS_TUNING="-mtune=${with_tuning}"
1651     fi
1652 else
1653     if test "${SYS}" = "darwin" -a "${host_cpu}" != "powerpc"; then
1654         CFLAGS_TUNING="-march=pentium-m -mtune=prescott"
1655     elif test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "i386"; then
1656         CFLAGS_TUNING="-mtune=pentium2"
1657     elif test "${host_cpu}" = "x86_64"; then
1658         CFLAGS_TUNING="-mtune=athlon64"
1659     elif test "${host_cpu}" = "powerpc"; then
1660         CFLAGS_TUNING="-mtune=G4";
1661     fi
1662 fi
1663
1664 dnl NOTE: this can't be cached cleanly
1665 AS_IF([test "${CFLAGS_TUNING}"],
1666    [CFLAGS_save="${CFLAGS}"
1667     CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1668
1669     AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1670     AC_COMPILE_IFELSE([ ],
1671                       [tuning="yes"],
1672                       [CFLAGS_TUNING=""; tuning="no"
1673                        AS_IF([test "${with_tuning}"],
1674                              [AC_MSG_ERROR([requested tuning not supported])])])
1675
1676     AC_MSG_RESULT([$tuning])
1677     CFLAGS="${CFLAGS_save}"
1678 ])
1679
1680 dnl
1681 dnl  Memory usage
1682 dnl
1683 AC_ARG_ENABLE(optimize-memory,
1684 [  --enable-optimize-memory optimize memory usage over performance])
1685 if test "${enable_optimize_memory}" = "yes"; then
1686   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1687 fi
1688
1689 dnl
1690 dnl  Enable/disable optimizations
1691 dnl
1692 AC_ARG_ENABLE(optimizations,
1693 [  --disable-optimizations disable compiler optimizations (default enabled)])
1694 if test "${enable_optimizations}" != "no"; then
1695    if test "${enable_optimize_memory}" = "yes"; then
1696       enable_optimizations="size"
1697    else
1698       enable_optimizations="speed"
1699    fi
1700 fi
1701
1702 dnl
1703 dnl  Debugging mode
1704 dnl
1705 AC_ARG_ENABLE(debug,
1706 [  --enable-debug          debug mode (default disabled)])
1707 test "${enable_debug}" != "yes" && enable_debug="no"
1708 AH_TEMPLATE(NDEBUG,
1709             [Define to 1 if debug code should NOT be compiled])
1710 AS_IF([test "x${enable_debug}" = "xno"], [AC_DEFINE(NDEBUG)])
1711
1712 dnl
1713 dnl  Test coverage
1714 dnl
1715 AC_ARG_ENABLE(coverage,
1716         [  --enable-coverage       build for test coverage (default disabled)],,
1717         [enable_coverage="no"])
1718 AS_IF([test "${enable_coverage}" != "no"], [
1719         CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
1720         CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
1721         LDFLAGS="-lgcov ${LDFLAGS}"
1722         dnl ugly...
1723         CFLAGS_save="${CFLAGS}"
1724         CXXFLAGS_save="${CXXFLAGS}"
1725         LDFLAGS_save="${LDFLAGS}"
1726 ])
1727
1728 dnl
1729 dnl  Enable release-specific flags
1730 dnl
1731 AC_ARG_ENABLE(release,
1732 [  --enable-release        activate extra optimizations (default disabled)])
1733 test "${enable_release}" != "yes" && enable_release="no"
1734
1735 dnl
1736 dnl Stream output
1737 dnl
1738 AC_ARG_ENABLE(sout,
1739   [  --enable-sout           Stream output modules (default enabled)])
1740 AS_IF([test "${enable_sout}" != "no"], [
1741   AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1742 ])
1743 AM_CONDITIONAL(ENABLE_SOUT, [test "${enable_sout}" != "no"])
1744
1745 AC_ARG_ENABLE(switcher,
1746   [  --enable-switcher       Stream-out switcher plugin (default disabled)])
1747
1748 dnl Check for libshout
1749 AC_ARG_ENABLE(shout,
1750   [  --enable-shout          libshout output plugin (default disabled)])
1751 if test "${enable_shout}" = "yes"; then
1752   PKG_CHECK_MODULES(SHOUT, shout >= 2.1,
1753     [AC_DEFINE(HAVE_SHOUT, 1, [Define if you have the libshout library])
1754      VLC_ADD_PLUGIN([access_output_shout])
1755      VLC_ADD_LIBS([access_output_shout],[$SHOUT_LIBS])
1756      VLC_ADD_CFLAGS([access_output_shout],[$SHOUT_CFLAGS])],
1757     [AC_MSG_WARN(libshout library not found)])
1758 fi
1759
1760 dnl Lua modules
1761 AC_ARG_ENABLE(lua,
1762   [  --enable-lua            lua playlist and metafetcher plugins (default enabled)])
1763 if test "${enable_lua}" != "no"
1764 then
1765   PKG_CHECK_MODULES(LUA, lua5.1,
1766     [ have_lua=yes ],
1767     [
1768     AC_MSG_WARN([lua5.1 not found, trying lua >= 5.1 instead])
1769     PKG_CHECK_MODULES(LUA, lua >= 5.1,
1770       [ have_lua=yes ],
1771       [
1772         have_lua=yes
1773         AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1774           [],
1775           [ have_lua=no ] )
1776         AC_CHECK_LIB(  lua5.1 , luaL_newstate,
1777           [LUA_LIBS="-llua5.1"],
1778           AC_CHECK_LIB( lua51 , luaL_newstate,
1779             [LUA_LIBS="-llua51"],
1780             AC_CHECK_LIB( lua , luaL_newstate,
1781               [LUA_LIBS="-llua"],
1782               [ have_lua=no
1783                 AC_MSG_WARN([lua >= 5.1 not found!])
1784               ])
1785           )
1786         )
1787       ])
1788     ])
1789   if test "x${have_lua}" = "xyes" ;  then
1790      AC_DEFINE(HAVE_LUA, 1, [Define if you have the lua library])
1791      VLC_ADD_LIBS([lua],[$LUA_LIBS])
1792      VLC_ADD_CFLAGS([lua],[$LUA_CFLAGS])
1793   fi
1794 fi
1795 AM_CONDITIONAL(BUILD_LUA, [test "${have_lua}" = "yes"])
1796
1797 dnl
1798 dnl HTTP daemon
1799 dnl
1800 AC_ARG_ENABLE(httpd,
1801   [  --enable-httpd          HTTP daemon (default enabled)])
1802 if test "${enable_httpd}" != "no"
1803 then
1804   VLC_ADD_PLUGIN([http])
1805   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
1806 fi
1807 AM_CONDITIONAL(BUILD_HTTPD, [test "${enable_httpd}" != "no"])
1808
1809 dnl
1810 dnl VideoLAN manager
1811 dnl
1812 AC_ARG_ENABLE(vlm,
1813   [  --enable-vlm            VideoLAN manager (default enabled)])
1814 if test "${enable_vlm}" != "no"
1815 then
1816   AC_DEFINE(ENABLE_VLM, 1, Define if you want the VideoLAN manager support)
1817 fi
1818
1819 dnl
1820 dnl Growl notification plugin
1821 dnl
1822 AC_ARG_ENABLE(growl,
1823   [  --enable-growl          growl notification plugin (default enabled)])
1824 AS_IF([test "${enable_growl}" != "no"], [
1825     VLC_ADD_PLUGIN([growl_udp])
1826     AC_CHECK_HEADERS(Growl/GrowlDefines.h, [
1827       VLC_ADD_PLUGIN([growl])
1828       VLC_ADD_LDFLAGS([growl], [-Wl,-framework,Growl,-framework,AppKit])
1829     ])
1830   ]
1831 )
1832
1833 dnl
1834 dnl Libnotify notification plugin
1835 dnl
1836
1837 AC_ARG_ENABLE(notify,
1838   [  --enable-notify         libnotify notification plugin (default enabled)])
1839 AS_IF([test "${enable_notify}" != "no" -a "${SYS}" != "mingw32"], [
1840     PKG_CHECK_MODULES(NOTIFY, libnotify,
1841       [
1842         VLC_ADD_PLUGIN([notify])
1843         VLC_ADD_CFLAGS(notify, [$NOTIFY_CFLAGS])
1844         VLC_ADD_LIBS(notify, [$NOTIFY_LIBS])
1845       ],[
1846     AS_IF([test "${enable_notify}" = "yes"],[
1847         AC_MSG_WARN( libnotify not found) ])
1848       ])
1849   ])
1850
1851 dnl
1852 dnl Audioscrobbler plugin
1853 dnl
1854
1855 AC_ARG_ENABLE(audioscrobbler,
1856   [  --disable-audioscrobbler Last.fm submission plugin (default enabled)])
1857 AS_IF([test "${enable_audioscrobbler}" != "no"], [
1858         VLC_ADD_PLUGIN([audioscrobbler])
1859   ])
1860
1861 dnl
1862 dnl Musicbrainz plugin
1863 dnl
1864 AC_ARG_ENABLE(musicbrainz,
1865   [  --enable-musicbrainz    MusicBrainz support (default disabled) ])
1866   AS_IF([test "${enable_musicbrainz}" = "yes"],[
1867       PKG_CHECK_MODULES(MUSICBRAINZ, libmusicbrainz,
1868     [ VLC_ADD_PLUGIN([musicbrainz])
1869       VLC_ADD_LIBS([musicbrainz],[$MUSICBRAINZ_LIBS])
1870       VLC_ADD_CFLAGS([musicbrainz],[$MUSICBRAINZ_CFLAGS])  ],
1871        [AC_MSG_WARN(MusicBrainz library not found)])
1872    ])
1873
1874
1875 dnl
1876 dnl Taglibplugin
1877 dnl
1878 AC_ARG_ENABLE(taglib,
1879   [  --disable-taglib Taglib support (default enabled) ])
1880   AS_IF([test "${enable_taglib}" != "no"],[
1881     PKG_CHECK_MODULES(TAGLIB, taglib,
1882       [ AC_DEFINE( HAVE_TAGLIB, 1, [Define if you have taglib plugin built] )
1883         VLC_ADD_PLUGIN([taglib])
1884         VLC_ADD_LIBS([taglib],[$TAGLIB_LIBS -lz])
1885        VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS]) ],
1886       [AC_MSG_WARN(TagLib library not found)])
1887   ])
1888
1889
1890 dnl
1891 dnl  Input plugins
1892 dnl
1893
1894 AC_ARG_WITH(,[Input plugins:])
1895
1896 dnl  live555 input
1897 dnl
1898 if test "${enable_livedotcom}" 
1899 then
1900   AC_MSG_WARN(--{en|dis}able-livedotcom is deprecated. Use --{en|dis}able-live555 instead.)
1901 fi
1902
1903 if test "${enable_livedotcom}" = "no"
1904 then
1905   enable_live555="no"
1906 fi
1907 AC_ARG_ENABLE(live555,
1908 [  --enable-live555        live555 RTSP input plugin (default enabled)])
1909 if test "${enable_live555}" != "no"; then
1910   AC_ARG_WITH(live555-tree,
1911     [    --with-live555-tree=PATH live.com tree for static linking])
1912
1913   dnl
1914   dnl test for --with-live555-tree
1915   dnl
1916   if test "${with_livedotcom_tree}" 
1917   then
1918     AC_MSG_WARN(--with-livedotcom-tree is deprecated. Use --with-live555-tree instead.)
1919   with_live555_tree="${with_livedotcom_tree}"
1920   fi
1921
1922   if test -z "${with_live555_tree}" -a "${CXX}" != ""; then
1923     AC_LANG_PUSH(C++)
1924     CPPFLAGS_save="${CPPFLAGS}"
1925     CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1926     if test "${SYS}" = "solaris"; then
1927       CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1928     fi
1929     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1930     AC_CHECK_HEADERS(liveMedia.hh, [
1931       VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1932       AC_CHECK_LIB(liveMedia_pic, main, [
1933         # We have -lliveMedia_pic, build plugins
1934         VLC_ADD_PLUGIN([live555])
1935         VLC_ADD_LIBS([live555], [-lliveMedia_pic -lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic])
1936       ], [
1937         AC_CHECK_LIB(liveMedia, main, [
1938           # We only have -lliveMedia, do builtins
1939           VLC_ADD_PLUGIN([live555])
1940           VLC_ADD_LIBS([live555], [-lliveMedia -lgroupsock -lBasicUsageEnvironment -lUsageEnvironment])
1941         ])
1942       ])
1943       if test "${SYS}" = "mingw32"; then
1944         # add ws2_32 for closesocket, select, recv
1945         VLC_ADD_LIBS([live555],[-lws2_32])
1946       fi
1947     ])
1948     CPPFLAGS="${CPPFLAGS_save}"
1949     AC_LANG_POP(C++)
1950   else
1951     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_live555_tree})
1952     real_live555_tree="`cd ${with_live555_tree} 2>/dev/null && pwd`"
1953     if test -z "${real_live555_tree}"; then
1954       dnl  The given directory can't be found
1955       AC_MSG_RESULT(no)
1956       AC_MSG_ERROR([cannot cd to ${with_live555_tree}])
1957     fi
1958     if test -f "${real_live555_tree}/liveMedia/libliveMedia.a"; then
1959       AC_MSG_RESULT(${real_live555_tree}/liveMedia/libliveMedia.a)
1960
1961       VLC_ADD_PLUGIN([live555])
1962
1963       if test "${SYS}" = "mingw32"; then
1964         # add ws2_32 for closesocket, select, recv
1965         VLC_ADD_LIBS([live555],[-lws2_32])
1966       fi
1967
1968       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/liveMedia -lliveMedia])
1969       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1970       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/groupsock -lgroupsock])
1971       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/UsageEnvironment -lUsageEnvironment])
1972
1973       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/BasicUsageEnvironment/include])
1974       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/groupsock/include])
1975       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/liveMedia/include])
1976       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/UsageEnvironment/include ])
1977       if test "${SYS}" = "solaris"; then
1978         VLC_ADD_CXXFLAGS([live555],[-DSOLARIS])
1979       fi
1980     else
1981       dnl  The given live555 wasn't built
1982         AC_MSG_RESULT(no)
1983       if test "${enable_live555}" = "yes"; then
1984         AC_MSG_ERROR([cannot find ${real_live555_tree}/liveMedia/libliveMedia.a, make sure you compiled live555 in ${with_live555_tree}])
1985       fi        
1986     fi
1987   fi
1988 fi
1989
1990 dnl
1991 dnl  special access module for dc1394 input
1992 dnl
1993 AC_ARG_ENABLE(dc1394,
1994   [  --enable-dc1394         dc1394 access module (default disabled)])
1995 if test "${enable_dc1394}" = "yes"
1996 then
1997   AC_CHECK_HEADERS(libraw1394/raw1394.h, [
1998     AC_CHECK_LIB( raw1394, raw1394_get_nodecount, [
1999         AC_CHECK_HEADERS(libdc1394/dc1394_control.h , [
2000 dnl         AC_CHECK_LIB( dc1394_control, dc1394_setup_capture, [
2001               VLC_ADD_PLUGIN([dc1394])
2002               VLC_ADD_LIBS([dc1394],[-ldc1394_control -lraw1394])
2003 dnl         ],
2004 dnl         [
2005 dnl           AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
2006 dnl         ])
2007       ],
2008       [
2009         AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
2010       ])
2011     ],
2012     [
2013       AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
2014     ])
2015   ],
2016   [
2017     AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
2018   ])
2019 fi
2020
2021 dnl
2022 dnl dv module: digital video module check for libraw1394
2023 dnl
2024 AC_ARG_ENABLE(dv,
2025 [  --enable-dv             dv input module (default disabled)])
2026 if test "${enable_dv}" = "yes"
2027 then
2028   AC_ARG_WITH(dv-raw1394,
2029   [    --with-dv-raw1394=PATH   libraw1394 headers and libraries])
2030   AC_ARG_WITH(dv-raw1394-tree,
2031   [    --with-dv-raw1394=PATH   libraw1394 tree for static linking])
2032
2033   if test -z "${with_dv_raw1394}" -a "${with_dv_raw1394}" != ""
2034   then
2035     AC_MSG_CHECKING(for raw1394 headers in ${with_dv_raw1394})
2036     if test -f ${with_dv_raw1394}/include/libraw1394/raw1394.h
2037     then
2038       dnl  Use ${with_dv_raw1394}/include/libraw1394/raw1394.h
2039       AC_MSG_RESULT(yes)
2040       VLC_ADD_PLUGIN([access_dv])
2041       VLC_ADD_LIBS([access_dv],[-L${with_dv_raw1394}/lib -lraw1394 -lpthread])
2042       VLC_ADD_CPPFLAGS([access_dv],[-I${with_dv_raw1394}/include])
2043     else
2044       dnl  No libraw1394 could be found, sorry
2045       AC_MSG_RESULT(no)
2046       AC_MSG_ERROR([cannot find ${with_dv_raw1394}/include/libraw1394/raw1394.h])
2047     fi
2048   else
2049     AC_CHECK_HEADERS(libraw1394/raw1394.h,
2050     [ VLC_ADD_PLUGIN([access_dv])
2051         VLC_ADD_LIBS([access_dv],[-lraw1394 -lavc1394])
2052     ],[
2053         if test -n "${enable_dv}"
2054         then
2055           AC_MSG_ERROR([cannot find libraw1394 headers])
2056         fi
2057     ])
2058   fi
2059
2060   dnl Check for static linking of libraw1394
2061   if test -z "${with_dv_raw1394_tree}" -a "${with_dv_raw1394_tree}" != ""
2062   then
2063     AC_MSG_CHECKING(for libraw1394.a in ${with_dv_raw1394_tree})
2064     real_dv_raw1394_tree="`cd ${with_dv_raw1394_tree} 2>/dev/null && pwd`"
2065     if test -z "${real_dv_raw1394_tree}"
2066     then
2067       dnl  The given directory can't be found
2068       AC_MSG_RESULT(no)
2069       AC_MSG_ERROR([cannot cd to ${real_dv_raw1394_tree}])
2070     fi
2071     if test -f "${real_dv_raw1394_tree}/src/.libs/libraw1394.a"
2072     then
2073       dnl  Use a custom libraw1394
2074       AC_MSG_RESULT(${real_dv_raw1394_tree}/src/.libs/libraw1394.a)
2075       VLC_ADD_BUILTINS([access_dv])
2076       VLC_ADD_LIBS([access_dv],[-L${real_dv_raw1394_tree}/src/.libs -lraw1394])
2077       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_raw1394_tree}])
2078     else
2079       dnl  The given libraw1394 wasn't built
2080       AC_MSG_RESULT(no)
2081       AC_MSG_ERROR([cannot find ${real_dv_raw1394_tree}/src/.libs/libraw1394.a, make sure you compiled libraw1394 in ${with_dv_raw1394_tree}])
2082     fi
2083   fi
2084
2085   dnl
2086   dnl Check for libavc1394
2087   dnl
2088
2089   AC_ARG_WITH(dv-avc1394,
2090   [    --with-dv-avc1394=PATH   libavc1394 headers and libraries])
2091   AC_ARG_WITH(dv-avc1394-tree,
2092   [    --with-dv-avc1394=PATH   libavc1394 tree for static linking])
2093
2094   if test -z "${with_dv_avc1394}" -a "${with_dv_avc1394}" != ""
2095   then
2096     AC_MSG_CHECKING(for avc1394 headers in ${with_dv_avc1394})
2097     if test -f ${with_dv_avc1394}/include/libavc1394/avc1394.h
2098     then
2099       dnl  Use ${with_dv_avc1394}/include/libavc1394/avc1394.h
2100       AC_MSG_RESULT(yes)
2101       VLC_ADD_LIBS([access_dv],[-L${with_dv_avc1394}/lib -lavc1394 -lrom1394 -lpthread])
2102       VLC_ADD_CPPFLAGS([access_dv],[-I${with_avc1394}/include])
2103     else
2104       dnl  No libavc1394 could be found, sorry
2105       AC_MSG_RESULT(no)
2106       AC_MSG_ERROR([cannot find ${with_dv_avc1394}/include/libavc1394/avc1394.h])
2107     fi
2108   else
2109     AC_CHECK_HEADERS(libavc1394/avc1394.h,
2110     [ VLC_ADD_LIBS([access_dv],[-lavc1394 -lrom1394 -lpthread])
2111     ],[
2112         if test -n "${enable_dv}"
2113         then
2114           AC_MSG_ERROR([cannot find libavc1394 headers])
2115         fi
2116     ])
2117   fi
2118
2119   dnl Check for static linking of libavc1394
2120   if test -z "${with_dv_avc1394_tree}" -a "${with_dv_avc1394_tree}" != ""
2121   then
2122     AC_MSG_CHECKING(for libavc1394.a in ${with_dv_avc1394_tree})
2123     real_dv_avc1394_tree="`cd ${with_dv_avc1394_tree} 2>/dev/null && pwd`"
2124     if test -z "${real_dv_avc1394_tree}"
2125     then
2126       dnl  The given directory can't be found
2127       AC_MSG_RESULT(no)
2128       AC_MSG_ERROR([cannot cd to ${real_dv_avc1394_tree}])
2129     fi
2130     if test -f "${real_dv_avc1394_tree}/src/.libs/libavc1394.a"
2131     then
2132       dnl  Use a custom libavc1394
2133       AC_MSG_RESULT(${real_dv_avc1394_tree}/src/.libs/libavc1394.a)
2134       VLC_ADD_LIBS([access_dv],[-L${real_dv_avc1394_tree}/src/.libs -lavc1394 -lrom1394 -lpthread])
2135       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_avc1394_tree}])
2136     else
2137       dnl  The given libavc1394 wasn't built
2138       AC_MSG_RESULT(no)
2139       AC_MSG_ERROR([cannot find ${real_dv_avc1394_tree}/src/.libs/libavc1394.a, make sure you compiled libavc1394 in ${with_dv_avc1394_tree}])
2140     fi
2141   fi
2142 fi
2143
2144 dnl
2145 dnl dvdread module: check for libdvdread
2146 dnl
2147 AC_ARG_ENABLE(dvdread,
2148 [  --enable-dvdread        dvdread input module (default disabled)])
2149 if test "${enable_dvdread}" != "no"
2150 then
2151   AC_ARG_WITH(dvdread,
2152   [    --with-dvdread=PATH   libdvdread headers and libraries])
2153   AC_ARG_WITH(dvdread-tree,
2154   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
2155
2156   dnl Temporary hack (yeah, sure ;)
2157   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2158       VLC_ADD_LIBS([dvdread],[-ldvdcss])
2159   fi
2160
2161   if test -z "${with_dvdread}"
2162   then
2163     if test -z "${with_dvdread_tree}"
2164     then
2165       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
2166         [ VLC_ADD_PLUGIN([dvdread])
2167           VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
2168         ],[
2169           if test -n "${enable_dvdread}"
2170           then
2171             AC_MSG_ERROR([cannot find libdvdread headers])
2172           fi
2173         ])
2174     else
2175       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
2176       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
2177       if test -z "${real_dvdread_tree}"
2178       then
2179         dnl  The given directory can't be found
2180         AC_MSG_RESULT(no)
2181         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
2182       fi
2183       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
2184       then
2185         dnl  Use a custom libdvdread
2186         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
2187         VLC_ADD_BUILTINS([dvdread])
2188         VLC_ADD_LIBS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LIBS_dvdcss}])
2189         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
2190       else
2191         dnl  The given libdvdread wasn't built
2192         AC_MSG_RESULT(no)
2193         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
2194       fi
2195     fi
2196   else
2197     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
2198     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
2199     then
2200       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
2201       AC_MSG_RESULT(yes)
2202       VLC_ADD_PLUGIN([dvdread])
2203       VLC_ADD_LIBS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LIBS_dvdcss}])
2204       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
2205     else
2206       dnl  No libdvdread could be found, sorry
2207       AC_MSG_RESULT(no)
2208       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
2209     fi
2210   fi
2211 fi
2212
2213 dnl
2214 dnl  libdvdnav plugin
2215 dnl
2216 AC_ARG_ENABLE(dvdnav,
2217   [  --enable-dvdnav         dvdnav input module (default enabled)])
2218 if test "${enable_dvdnav}" != "no"
2219 then
2220   dnl Same hack than dvdread
2221   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2222       VLC_ADD_LIBS([dvdnav],[-ldvdcss])
2223   fi
2224
2225   DVDNAV_PATH="${PATH}"
2226   AC_ARG_WITH(dvdnav-config-path,
2227     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
2228     [ if test "${with_dvdnav_config_path}" != "no"
2229       then
2230         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
2231       fi ])
2232   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
2233   if test "${DVDNAV_CONFIG}" != "no"
2234   then
2235     VLC_ADD_PLUGIN([dvdnav])
2236     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
2237     VLC_ADD_LIBS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
2238   fi
2239 fi
2240
2241 dnl
2242 dnl  Windows DirectShow access module
2243 dnl
2244 AC_ARG_ENABLE(dshow,
2245   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
2246 if test "${enable_dshow}" != "no"
2247 then
2248   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2249   then
2250     AC_LANG_PUSH(C++)
2251       AC_CHECK_HEADERS(dshow.h,
2252       [ VLC_ADD_PLUGIN([dshow])
2253         VLC_ADD_CXXFLAGS([dshow],[])
2254         VLC_ADD_LIBS([dshow],[-lole32 -loleaut32 -luuid]) ])
2255     AC_LANG_POP(C++)
2256   fi
2257 fi
2258
2259 dnl
2260 dnl  Windows DirectShow BDA access module
2261 dnl
2262 AC_ARG_ENABLE(bda,
2263   [  --enable-bda            Win32 DirectShow BDA support (default enabled on Win32)])
2264 if test "${enable_bda}" != "no"
2265 then
2266   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2267   then
2268       AC_CHECK_HEADERS(dshow.h,
2269       [ VLC_ADD_PLUGIN([bda])
2270         VLC_ADD_CXXFLAGS([bda],[])
2271         VLC_ADD_LIBS([bda],[-lstrmiids -lole32 -loleaut32 -luuid]) ])
2272   fi
2273 fi
2274
2275
2276 dnl
2277 dnl  OpenCV wrapper and example filters
2278 dnl
2279 AC_ARG_ENABLE(opencv,
2280   [  --enable-opencv         OpenCV (computer vision) filter (default disabled)])
2281 if test "${enable_opencv}" = "yes" -a "${CXX}" != "";
2282 then
2283   AC_ARG_WITH(opencv-tree,
2284   [    --with-opencv-tree=PATH opencv tree for linking])
2285   if test -n "${with_opencv_tree}"
2286   then
2287     if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2288     then
2289           AC_MSG_CHECKING(for opencv in ${with_opencv_tree})
2290           if test -f ${with_opencv_tree}/cv/include/cv.h -a -f ${with_opencv_tree}/cxcore/include/cxcore.h \
2291             -a -f ${with_opencv_tree}/cvaux/include/cvaux.h -a -f ${with_opencv_tree}/otherlibs/highgui/highgui.h
2292       then
2293         AC_MSG_RESULT(yes)
2294         VLC_ADD_PLUGIN([opencv_wrapper])
2295         VLC_ADD_LIBS([opencv_wrapper],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2296         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])
2297         AC_LANG_PUSH(C++)
2298         VLC_ADD_PLUGIN([opencv_example])
2299         VLC_ADD_LIBS([opencv_example],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2300         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])
2301         AC_LANG_POP(C++)        
2302           else
2303         dnl  No opencv could be found, sorry
2304         AC_MSG_RESULT(no)
2305         AC_MSG_ERROR([cannot find opencv in ${with_opencv_tree}])
2306           fi
2307     else
2308           AC_MSG_WARN([--enable-opencv currently only works on windows])
2309     fi
2310   fi  
2311 fi
2312
2313
2314 dnl
2315 dnl  libsmbclient plugin
2316 dnl
2317 AC_ARG_ENABLE(smb,
2318   [  --enable-smb            smb input module (default enabled)])
2319 if test "${enable_smb}" != "no"; then
2320   AC_CHECK_HEADERS(libsmbclient.h,
2321     [ VLC_ADD_PLUGIN([access_smb])
2322       VLC_ADD_LIBS([access_smb],[-lsmbclient]) ],
2323     [ if test -n "${enable_smb}"; then
2324         AC_MSG_ERROR([cannot find libsmbclient headers])
2325      fi ])
2326   AC_CHECK_MEMBER([struct _SMBCCTX.close_fn],
2327     AC_DEFINE([HAVE__SMBCCTX_CLOSE_FN], 1, [Define if samba has _SMBCCTX.close_fn]),,
2328     [#include <libsmbclient.h>])
2329 fi
2330
2331 dnl
2332 dnl  libdvbpsi ts demux/mux
2333 dnl
2334 AC_ARG_ENABLE(dvbpsi,
2335   [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
2336 if test "${enable_dvbpsi}" != "no"
2337 then
2338   AC_ARG_WITH(dvbpsi,
2339   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
2340   AC_ARG_WITH(dvbpsi,
2341   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
2342   case "${with_dvbpsi}" in
2343   ""|yes)
2344     if test -z "${with_dvbpsi_tree}"
2345     then
2346       AC_CHECK_HEADERS(dvbpsi/dr.h,
2347         [ VLC_ADD_PLUGIN([ts])
2348           if test "${enable_sout}" != "no"; then
2349             VLC_ADD_PLUGIN([mux_ts])
2350           fi
2351           VLC_ADD_LIBS([mux_ts ts dvb],[-ldvbpsi]) ],
2352         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
2353         [#if defined( HAVE_STDINT_H )
2354 #   include <stdint.h>
2355 #elif defined( HAVE_INTTYPES_H )
2356 #   include <inttypes.h>
2357 #endif
2358 #include <dvbpsi/dvbpsi.h>
2359 #include <dvbpsi/descriptor.h>
2360 #include <dvbpsi/pat.h>
2361 #include <dvbpsi/pmt.h>])
2362     else
2363       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
2364       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
2365       if test -z "${real_dvbpsi_tree}"
2366       then
2367         dnl  The given directory can't be found
2368         AC_MSG_RESULT(no)
2369         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
2370       fi
2371       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
2372       then
2373         dnl  Use a custom libdvbpsi
2374         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
2375         VLC_ADD_BUILTINS([ts])
2376         if test "${enable_sout}" != "no"; then
2377           VLC_ADD_BUILTINS([mux_ts])
2378         fi
2379         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
2380         VLC_ADD_LIBS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
2381       else
2382         dnl  The given libdvbpsi wasn't built
2383         AC_MSG_RESULT(no)
2384         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
2385       fi
2386     fi
2387   ;;
2388   no)
2389     dnl  Compile without dvbpsi
2390   ;;
2391   *)
2392     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
2393     if test -z "${with_dvbpsi}"
2394     then
2395       LDFLAGS_test=""
2396       CPPFLAGS_test=""
2397     else
2398       LDFLAGS_test="-L${with_dvbpsi}/lib"
2399       CPPFLAGS_test="-I${with_dvbpsi}/include"
2400     fi
2401     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
2402     AC_CHECK_HEADERS([dvbpsi/dr.h],[
2403       VLC_ADD_PLUGIN([ts])
2404       if test "${enable_sout}" != "no"; then
2405         VLC_ADD_PLUGIN([mux_ts])
2406       fi
2407       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
2408       VLC_ADD_LIBS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
2409
2410     ],[
2411       if test -n "${enable_dvbpsi}"
2412       then
2413         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])
2414       fi
2415     ])
2416     CPPFLAGS="${CPPFLAGS_save}"
2417   ;;
2418   esac
2419   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
2420     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
2421   ], [], [${LIBS_ts}])
2422
2423 fi
2424
2425 dnl
2426 dnl  Video4Linux plugin
2427 dnl
2428 AC_ARG_ENABLE(v4l,
2429   [  --enable-v4l            Video4Linux input support (default disabled)])
2430 if test "${enable_v4l}" = "yes"
2431 then
2432   AC_ARG_WITH(v4l,
2433     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
2434   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
2435   then
2436     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
2437   fi
2438
2439   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
2440   AC_CHECK_HEADERS(linux/videodev.h, [
2441     VLC_ADD_PLUGIN([v4l])
2442   ],[])
2443   CPPFLAGS="${CPPFLAGS_save}"
2444 fi
2445
2446 dnl
2447 dnl  Video4Linux2 plugin
2448 dnl
2449 AC_ARG_ENABLE(v4l2,
2450   [  --enable-v4l2           Video4Linux2 input support (default disabled)])
2451 if test "${enable_v4l2}" = "yes"
2452 then
2453   AC_ARG_WITH(v4l2,
2454     [    --with-v4l2=PATH       path to a v4l2-enabled kernel tree],[],[])
2455   if test "${with_v4l2}" != "no" -a -n "${with_v4l2}"
2456   then
2457     VLC_ADD_CPPFLAGS([v4l2],[-I${with_v4l2}/include])
2458   fi
2459
2460   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_v4l2_alsa="true", have_v4l2_alsa="false"),have_v4l2_alsa="false")
2461   if test "${have_v4l2_alsa}" = "true"
2462   then
2463     CFLAGS="${CFLAGS_save}"
2464     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
2465                     #define ALSA_PCM_NEW_SW_PARAMS_API
2466                     #include <alsa/asoundlib.h>],
2467        [snd_pcm_hw_params_get_period_time(0,0,0);],
2468         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
2469     VLC_ADD_LDFLAGS([v4l2],[-lasound -lm -ldl])
2470     AC_DEFINE(HAVE_ALSA, 1, Define if ALSA is present.)
2471   fi
2472
2473   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l2}"
2474   AC_CHECK_HEADERS(linux/videodev2.h, [
2475     VLC_ADD_PLUGIN([v4l2])
2476   ],[])
2477   CPPFLAGS="${CPPFLAGS_save}"
2478 fi
2479
2480
2481 dnl
2482 dnl  special access module for Hauppauge PVR cards
2483 dnl
2484 AC_ARG_ENABLE(pvr,
2485   [  --enable-pvr            PVR cards access module (default disabled)])
2486 if test "${enable_pvr}" = "yes"
2487 then
2488   VLC_ADD_PLUGIN([pvr])
2489   AC_ARG_WITH(videodev2,
2490     [  --with-videodev2=FILE   Location of videodev2.h file (default /usr/include/linux/videodev2.h)],[],[])
2491   if test "${with_videodev2}" != "no" -a -n "${with_videodev2}"
2492   then
2493     AC_DEFINE_UNQUOTED(VIDEODEV2_H_FILE, "${with_videodev2}", [Location of videodev2.h])
2494   fi
2495     
2496
2497   AC_CACHE_CHECK([for new linux/videodev2.h],
2498       [new_linux_videodev2_h],
2499       [AC_TRY_COMPILE([
2500           #include <sys/types.h>
2501           #   ifdef VIDEODEV2_H_FILE
2502           #   include VIDEODEV2_H_FILE
2503           #   else
2504           #   include <linux/videodev2.h>
2505           #   endif
2506           ],
2507           [struct v4l2_ext_controls ctrls; ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG; ],
2508           new_linux_videodev2_h=yes,
2509           new_linux_videodev2_h=no)])
2510   if test "${new_linux_videodev2_h}" != "no"; then
2511     AC_DEFINE(HAVE_NEW_LINUX_VIDEODEV2_H, 1, [Define if new linux/videodev2.h present])
2512   fi
2513 fi
2514
2515 dnl
2516 dnl  gnomeVFS access module
2517 dnl
2518 AC_ARG_ENABLE(gnomevfs,
2519   [  --enable-gnomevfs       GnomeVFS access module (default disabled)])
2520 if test "${enable_gnomevfs}" = "yes" 
2521 then
2522   PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0,
2523     VLC_ADD_LIBS([access_gnomevfs],[$GNOMEVFS_LIBS])
2524     VLC_ADD_CPPFLAGS([access_gnomevfs],[$GNOMEVFS_CPPFLAGS])
2525     VLC_ADD_CFLAGS([access_gnomevfs],[$GNOMEVFS_CFLAGS])
2526     VLC_ADD_PLUGIN([access_gnomevfs]),
2527     AC_MSG_WARN([GnomeVFS support disabled because GnomeVFS development headers not found]))
2528 fi
2529
2530 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
2531 AC_ARG_ENABLE(libcdio,
2532   [  --enable-libcdio        CD input and control library support (default enabled)])
2533
2534
2535 have_libcdio=no
2536 have_libvcdinfo=no
2537 if test "${enable_libcdio}" != "no"
2538 then
2539   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.78.2,
2540      have_libcdio=yes
2541      AC_DEFINE(HAVE_LIBCDIO, 1, 
2542      [Define if you have libcdio 0.78.2 or greater installed]),
2543      [AC_MSG_WARN(CD Reading and information library not found)])
2544
2545   PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.22,
2546      [have_libvcdinfo=yes
2547      AC_DEFINE(HAVE_VCDINFO, 1, 
2548      [Define if you have libvcdinfo 0.7.22 or greater installed])],
2549      [AC_MSG_WARN(VCD information library not found)])
2550 fi
2551
2552 dnl
2553 dnl  VCDX and CDDAX modules
2554 dnl
2555 AC_ARG_ENABLE(cddax,
2556   [  --enable-cddax          audio CD plugin with CD Text and CD paranoia via libcdio (default disabled)])
2557  
2558 AC_ARG_ENABLE(libcddb,
2559   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
2560  
2561 if test "${enable_cddax}" = "yes"
2562 then
2563   if test "$have_libcdio" = "yes"
2564   then
2565     AC_DEFINE(HAVE_CDDAX, 1, [Define for the audio CD plugin using libcdio])
2566     VLC_ADD_LIBS([cddax],[$LIBCDIO_LIBS])
2567     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
2568     VLC_ADD_PLUGIN([cddax])
2569     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
2570     VLC_ADD_LIBS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
2571     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
2572   else 
2573     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
2574     HAVE_CDDAX=no
2575   fi
2576
2577   if test "$enable_libcddb" != "no"; then
2578     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2579       HAVE_LIBCDDB=yes 
2580       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2581       VLC_ADD_LIBS([cddax],[$LIBCDDB_LIBS])
2582       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
2583       ],
2584       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2585       HAVE_LIBCDDB=no])
2586   fi
2587  
2588 fi
2589
2590 AC_ARG_ENABLE(vcdx,
2591   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2592  
2593 if test "${enable_vcdx}" = "yes"
2594 then
2595   if test "${have_libvcdinfo}" = "yes"
2596   then
2597     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2598     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2599   else 
2600     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
2601     HAVE_VCDX=no
2602   fi
2603
2604   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
2605    [VLC_ADD_LIBS([vcdx],[$LIBISO9660_LIBS])
2606     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
2607     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
2608     HAVE_VCDX=no])
2609
2610   if test "$have_libvcdinfo" = "yes"
2611   then
2612     AC_DEFINE(HAVE_VCDX, 1, 
2613     [Define for the VCD plugin using libcdio/libvcdinfo])
2614     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2615     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2616     VLC_ADD_PLUGIN([vcdx])
2617   else 
2618     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
2619     HAVE_VCDX=no
2620   fi
2621 fi
2622
2623 dnl
2624 dnl  Built-in CD-DA and VCD module
2625 dnl
2626 AC_ARG_ENABLE(cdda,           
2627   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
2628  
2629 AC_ARG_ENABLE(vcd,
2630   [  --enable-vcd            built-in VCD (default enabled)])
2631
2632 if test "${enable_vcd}" != "no"
2633 then
2634   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2635   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2636     AC_MSG_RESULT(yes)
2637     VLC_ADD_PLUGIN([vcd])
2638     VLC_ADD_PLUGIN([cdda])
2639   ],[
2640     AC_MSG_RESULT(no)
2641   ])
2642
2643   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2644   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2645     AC_MSG_RESULT(yes)
2646     VLC_ADD_PLUGIN([vcd])
2647     VLC_ADD_PLUGIN([cdda])
2648     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2649   ],[
2650     AC_MSG_RESULT(no)
2651   ])
2652
2653   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2654   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2655     AC_MSG_RESULT(yes)
2656     VLC_ADD_PLUGIN([vcd])
2657     VLC_ADD_PLUGIN([cdda])
2658     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2659   ],[
2660     AC_MSG_RESULT(no)
2661   ])
2662
2663   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2664   then
2665     VLC_ADD_PLUGIN([vcd])
2666     VLC_ADD_PLUGIN([cdda])
2667   fi
2668
2669   if test "${SYS}" = "darwin"
2670   then
2671     VLC_ADD_PLUGIN([vcd])
2672     VLC_ADD_PLUGIN([cdda])
2673     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-Wl,-framework,IOKit,-framework,CoreFoundation])
2674     VLC_ADD_LIBS([vcdx cddax cdda],[-liconv])
2675   fi
2676
2677   if test "$enable_libcddb" != "no"; then
2678     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2679       HAVE_LIBCDDB=yes 
2680       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2681       VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2682       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2683       ],:
2684       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2685       HAVE_LIBCDDB=no])
2686   fi
2687 fi
2688
2689 dnl
2690 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2691 dnl
2692 AC_ARG_ENABLE(dvb,
2693   [  --enable-dvb            DVB-S/T/C card support (default disabled)])
2694
2695 if test "${enable_dvb}" = "yes"
2696 then
2697   AC_ARG_WITH(dvb,
2698   [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
2699   if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2700   then
2701     VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2702   fi
2703   CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2704   AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2705     if test -z "${with_dvbpsi_tree}"
2706     then
2707       VLC_ADD_PLUGIN([dvb])
2708     else
2709       VLC_ADD_BUILTINS([dvb])
2710     fi
2711   ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2712   CPPFLAGS="${CPPFLAGS_save}"
2713 fi
2714
2715 dnl
2716 dnl  Screen capture module
2717 dnl
2718 AC_ARG_ENABLE(screen,
2719   [  --enable-screen         Screen capture support (default enabled)])
2720 if test "${enable_screen}" != "no"; then
2721   if test "${SYS}" = "darwin"; then
2722     AC_CHECK_HEADERS(OpenGL/gl.h, [
2723       AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2724         VLC_ADD_PLUGIN([screen])
2725         VLC_ADD_LDFLAGS([screen],[-Wl,-framework,OpenGL,-framework,ApplicationServices])
2726       ])
2727     ])
2728   elif test "${SYS}" = "mingw32"; then
2729     VLC_ADD_PLUGIN([screen])
2730     VLC_ADD_LIBS([screen],[-lgdi32])
2731   elif test "${SYS}" = "mingwce"; then
2732     CPPFLAGS="${CPPFLAGS_save}"
2733   elif test "${SYS}" = "beos"; then
2734     VLC_ADD_PLUGIN([screen])
2735     VLC_ADD_CXXFLAGS([screen],[])
2736     VLC_ADD_LIBS([screen],[-lbe])
2737   else
2738     CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
2739     AC_CHECK_HEADERS(X11/Xlib.h, [
2740       VLC_ADD_PLUGIN([screen])
2741       VLC_ADD_LIBS([screen],[${X_LIBS} ${X_PRE_LIBS} -lX11])
2742       VLC_ADD_CPPFLAGS([screen],[${X_CFLAGS}])
2743     ])
2744     CPPFLAGS="${CPPFLAGS_save}"
2745   fi
2746 fi
2747
2748 dnl
2749 dnl  ipv6 plugin - not for QNX yet
2750 dnl
2751 have_ipv6=no
2752 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2753   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2754 ])
2755
2756 AS_IF([test "${have_ipv6}" = "yes"], [
2757   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2758
2759
2760 AC_CHECK_FUNCS(inet_ntop,[
2761   AC_DEFINE(HAVE_INET_NTOP, 1, [Define to 1 if you have inet_ntop().])])
2762
2763
2764 dnl
2765 dnl  ogg demux plugin
2766 dnl
2767 AC_ARG_ENABLE(ogg,
2768   [  --enable-ogg            Ogg demux support (default enabled)])
2769 if test "${enable_ogg}" != "no"
2770 then
2771   AC_ARG_WITH(ogg-tree,
2772   [    --with-ogg-tree=PATH  ogg tree for static linking])
2773   if test -n "${with_ogg_tree}"
2774   then
2775     AC_MSG_CHECKING(for libogg.a in ${with_ogg_tree})
2776     real_ogg_tree="`cd ${with_ogg_tree} 2>/dev/null && pwd`"
2777     if test -z "${real_ogg_tree}"
2778     then
2779       dnl  The given directory can't be found
2780       AC_MSG_RESULT(no)
2781       AC_MSG_ERROR([cannot cd to ${with_ogg_tree}])
2782     fi
2783     if test -f "${real_ogg_tree}/src/.libs/libogg.a"
2784     then
2785       dnl  Use a custom ogg
2786       AC_MSG_RESULT(${real_ogg_tree}/src/.libs/libogg.a)
2787       VLC_ADD_PLUGIN([ogg])
2788       if test "${enable_sout}" != "no"; then
2789         VLC_ADD_PLUGIN([mux_ogg])
2790       fi
2791       VLC_ADD_LIBS([ogg mux_ogg speex vorbis],[${real_ogg_tree}/src/.libs/libogg.a])
2792       VLC_ADD_CFLAGS([ogg mux_ogg speex vorbis],[-I${real_ogg_tree}/include])
2793     else
2794       dnl  The given ogg wasn't built
2795       AC_MSG_RESULT(no)
2796       AC_MSG_ERROR([cannot find ${real_ogg_tree}/src/.libs/libogg.a, make sure you compiled ogg in ${with_ogg_tree}])
2797     fi
2798   else
2799     AC_CHECK_HEADERS(ogg/ogg.h, [
2800       AC_CHECK_LIB( ogg, oggpack_read, [
2801         VLC_ADD_PLUGIN([ogg])
2802         if test "${enable_sout}" != "no"; then
2803           VLC_ADD_PLUGIN([mux_ogg])
2804         fi
2805         VLC_ADD_LIBS([ogg mux_ogg],[-logg])])
2806      ],[])
2807   fi
2808 fi
2809
2810 dnl
2811 dnl  matroska demux plugin
2812 dnl
2813 AC_ARG_ENABLE(mkv,
2814   [  --enable-mkv            Matroska demux support (default enabled)])
2815 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2816   AC_LANG_PUSH(C++)
2817   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2818     AC_MSG_CHECKING(for libebml version >= 0.7.6)
2819     AC_EGREP_CPP(yes,
2820       [#include <ebml/EbmlVersion.h>
2821        #ifdef LIBEBML_VERSION
2822        #if LIBEBML_VERSION >= 0x000706
2823        yes
2824        #endif
2825        #endif],
2826       [AC_MSG_RESULT([yes])
2827         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2828           AC_MSG_CHECKING(for libmatroska version >= 0.7.7)
2829           AC_EGREP_CPP(yes,
2830             [#include <matroska/KaxVersion.h>
2831              #ifdef LIBMATROSKA_VERSION
2832              #if LIBMATROSKA_VERSION >= 0x000705
2833              yes
2834              #endif
2835              #endif],
2836             [AC_MSG_RESULT([yes])
2837               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2838               VLC_ADD_CXXFLAGS([mkv],[])
2839               if test "${SYS}" = "darwin"; then
2840                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2841               fi
2842               AC_CHECK_LIB(ebml_pic, main, [
2843                 VLC_ADD_PLUGIN([mkv])
2844                 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2845               ],
2846                 AC_CHECK_LIB(ebml, main, [
2847                   VLC_ADD_PLUGIN([mkv])
2848                   VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2849                 ]) 
2850               )
2851             ],
2852             [AC_MSG_RESULT([no])
2853               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.])
2854           ])
2855         ])
2856       ],
2857       [AC_MSG_RESULT([no])
2858         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.])
2859     ])
2860   ])
2861   AC_LANG_POP(C++)
2862 fi
2863
2864 dnl
2865 dnl  modplug demux plugin
2866 dnl
2867 AC_ARG_ENABLE(mod,
2868   [  --enable-mod            Mod demux support (default enabled)])
2869 if test "${enable_mod}" != "no"
2870 then
2871   AC_ARG_WITH(mod-tree,
2872   [    --with-mod-tree=PATH mod tree for static linking])
2873   if test -n "${with_mod_tree}"
2874   then
2875     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2876     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2877     if test -z "${real_mod_tree}"
2878     then
2879       dnl  The given directory can't be found
2880       AC_MSG_RESULT(no)
2881       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2882     fi
2883     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2884     then
2885       dnl  Use a custom mod
2886       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2887       VLC_ADD_PLUGIN([mod])
2888       VLC_ADD_LIBS([mod],[${real_mod_tree}/src/.libs/libmodplug.a -lstdc++])
2889       VLC_ADD_CXXFLAGS([mod],[-I${real_mod_tree}/include])
2890     else
2891       dnl  The given mod wasn't built
2892       AC_MSG_RESULT(no)
2893       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2894     fi
2895   else
2896     AC_CHECK_HEADERS(libmodplug/modplug.h, [
2897       VLC_ADD_PLUGIN([mod])
2898       VLC_ADD_CXXFLAGS([mod],[])
2899       VLC_ADD_LIBS([mod],[-lmodplug -lstdc++])])
2900   fi
2901 fi
2902
2903 dnl
2904 dnl  mpc demux plugin
2905 dnl
2906 AC_ARG_ENABLE(mpc,
2907   [  --enable-mpc            Mpc demux support (default enabled)])
2908 if test "${enable_mpc}" != "no"
2909 then
2910   AC_CHECK_HEADERS(mpcdec/mpcdec.h, [
2911     VLC_ADD_PLUGIN([mpc])
2912     VLC_ADD_LIBS([mpc],[-lmpcdec])])
2913 fi
2914
2915 dnl
2916 dnl  game music emu demux plugin
2917 dnl
2918 AC_ARG_ENABLE(gme,
2919   [  --enable-gme            Game Music Emu demux support (default enabled)])
2920 if test "${enable_gme}" != "no" -a "${CXX}" != "";
2921 then
2922   AC_LANG_PUSH(C++)
2923   AC_ARG_WITH(gme-tree,
2924   [    --with-gme-tree=PATH gme tree for static linking])
2925   if test -n "${with_gme_tree}"
2926   then
2927     AC_MSG_CHECKING(for libgme.a in ${with_mod_tree})
2928     real_gme_tree="`cd ${with_gme_tree} 2>/dev/null && pwd`"
2929     if test -z "${real_gme_tree}"
2930     then
2931       dnl  The given directory can't be found
2932       AC_MSG_RESULT(no)
2933       AC_MSG_ERROR([cannot cd to ${with_gme_tree}])
2934     fi
2935     if test -f "${real_gme_tree}/gme/libgme.a"
2936     then
2937       dnl  Use a custom gme
2938       AC_MSG_RESULT(${real_gme_tree}/gme/libgme.a)
2939       VLC_ADD_PLUGIN([gme])
2940       VLC_ADD_LIBS([gme],[${real_gme_tree}/gme/libgme.a])
2941       VLC_ADD_CXXFLAGS([gme],[-I${real_gme_tree}/gme])
2942     else
2943       dnl  The given gme wasn't built
2944       AC_MSG_RESULT(no)
2945       AC_MSG_ERROR([cannot find ${real_mod_tree}/gme/libgme.a, make sure you compiled gme in ${with_gme_tree}])
2946     fi
2947   else
2948       AC_MSG_WARN([only static linking is available, you must provide a gme-tree])
2949   fi
2950   AC_LANG_POP(C++)
2951 fi
2952
2953 dnl
2954 dnl  Codec plugins
2955 dnl
2956
2957 AC_ARG_WITH(,[Codec plugins:])
2958
2959 dnl
2960 dnl  mad plugin
2961 dnl
2962 AC_ARG_ENABLE(mad,
2963   [  --enable-mad            libmad module (default enabled)])
2964 if test "${enable_mad}" != "no"
2965 then
2966   AC_ARG_WITH(mad,
2967     [    --with-mad=PATH       path to libmad],[],[])
2968   if test "${with_mad}" != "no" -a -n "${with_mad}"
2969   then
2970     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2971     VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2972   fi
2973
2974   AC_ARG_WITH(mad-tree,
2975     [    --with-mad-tree=PATH   mad tree for static linking],[],[])
2976   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2977   then
2978     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2979     if test -z "${real_mad_tree}"
2980     then
2981       dnl  The given directory can't be found
2982       AC_MSG_RESULT(no)
2983       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2984     fi
2985     dnl  Use a custom libmad
2986     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2987     if test -f ${real_mad_tree}/mad.h
2988     then
2989       AC_MSG_RESULT(yes)
2990       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2991       VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2992       LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2993       AC_CHECK_LIB(mad, mad_bit_init, [
2994         VLC_ADD_BUILTINS([mpgatofixed32])
2995         VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2996         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2997       ],[])
2998       LDFLAGS="${LDFLAGS_save}"
2999     else
3000       AC_MSG_RESULT(no)
3001       AC_MSG_ERROR([the specified tree doesn't have mad.h])
3002     fi
3003   else
3004     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
3005     LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
3006     AC_CHECK_HEADERS(mad.h, ,
3007       [ 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.]) ])
3008     AC_CHECK_LIB(mad, mad_bit_init, [
3009       VLC_ADD_PLUGIN([mpgatofixed32])
3010       VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
3011       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
3012     CPPFLAGS="${CPPFLAGS_save}"
3013     LDFLAGS="${LDFLAGS_save}"
3014   fi
3015 fi
3016
3017 dnl
3018 dnl   libid3tag support (FIXME!!! doesn't work with new input)
3019 dnl
3020 AC_ARG_ENABLE( id3tag,
3021   [  --disable-id3tag id3tag metadata reader plugin (default enabled)])
3022 AS_IF([test "${enable_id3tag}" != "no"], [
3023   AC_CHECK_HEADERS(id3tag.h, [
3024     AC_CHECK_HEADERS(zlib.h, [
3025       VLC_ADD_LIBS([id3tag],[-lid3tag -lz])
3026       VLC_ADD_PLUGIN([id3tag])
3027     ])
3028   ])
3029 ])
3030
3031 dnl
3032 dnl  ffmpeg decoder/demuxer plugin
3033 dnl
3034 dnl we try to find ffmpeg using : 1- given tree, 2- pkg-config
3035 dnl                               3- default place,
3036
3037 AC_ARG_ENABLE(ffmpeg,
3038 [  --enable-ffmpeg         ffmpeg codec (default enabled)])
3039 if test "${enable_ffmpeg}" != "no"
3040 then
3041
3042 dnl Those options have to be here because the .pc can be bogus for ffmpeg previous nov 05
3043
3044  AC_ARG_WITH(ffmpeg-mp3lame,
3045    [    --with-ffmpeg-mp3lame specify if ffmpeg has been compiled with mp3lame support],
3046    [
3047      if test "$with_ffmpeg_mp3lame" = "yes";    then
3048         VLC_ADD_LIBS([ffmpeg],[-lmp3lame])
3049      fi])
3050
3051  AC_ARG_WITH(ffmpeg-faac,
3052    [    --with-ffmpeg-faac    specify if ffmpeg has been compiled with faac support],
3053    [
3054      if test "$with_ffmpeg_faac" = "yes"; then
3055         VLC_ADD_LIBS([ffmpeg],[-lfaac])
3056      fi])
3057
3058  AC_ARG_WITH(ffmpeg-dts,
3059    [    --with-ffmpeg-dts     specify if ffmpeg has been compiled with dts support],
3060    [
3061      if test "$with_ffmpeg_dts" = "yes"; then
3062              LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg} ${LIBS_ffmpeg}"
3063              AC_CHECK_LIB(dts_pic, dts_free, 
3064                [ VLC_ADD_LIBS([ffmpeg],[-ldts_pic]) ],
3065                [ VLC_ADD_LIBS([ffmpeg],[-ldts]) ])
3066              LDFLAGS="${LDFLAGS_save}"
3067      fi])
3068
3069  AC_ARG_WITH(ffmpeg-vorbis,
3070    [    --with-ffmpeg-vorbis    specify if ffmpeg has been compiled with vorbis support],
3071    [
3072      if test "$with_ffmpeg_vorbis" = "yes"; then
3073         VLC_ADD_LIBS([ffmpeg],[-lvorbisenc -lvorbis])
3074      fi])
3075
3076  AC_ARG_WITH(ffmpeg-theora,
3077    [    --with-ffmpeg-theora    specify if ffmpeg has been compiled with theora support],
3078    [
3079      if test "$with_ffmpeg_theora" = "yes"; then
3080         VLC_ADD_LIBS([ffmpeg],[-ltheora])
3081      fi])
3082
3083  AC_ARG_WITH(ffmpeg-ogg,
3084    [    --with-ffmpeg-ogg    specify if ffmpeg has been compiled with ogg support],
3085    [
3086      if test "$with_ffmpeg_ogg" = "yes"; then
3087         VLC_ADD_LIBS([ffmpeg],[-logg])
3088      fi])
3089
3090  AC_ARG_WITH(ffmpeg-zlib,
3091    [    --with-ffmpeg-zlib    specify if ffmpeg has been compiled with zlib support],
3092    [
3093      if test "$with_ffmpeg_zlib" = "yes"; then
3094         VLC_ADD_LIBS([ffmpeg],[-lz])
3095      fi])
3096
3097  AC_ARG_WITH(ffmpeg-amrnb,
3098    [    --with-ffmpeg-amrnb specify if ffmpeg has been compiled with libamrnb support],
3099    [
3100      if test "$with_ffmpeg_amrnb" = "yes";      then
3101         VLC_ADD_LIBS([ffmpeg],[-lamrnb])
3102      fi])
3103
3104  AC_ARG_WITH(ffmpeg-amrwb,
3105    [    --with-ffmpeg-amrwb specify if ffmpeg has been compiled with libamrwb support],
3106    [
3107      if test "$with_ffmpeg_amrwb" = "yes";      then
3108         VLC_ADD_LIBS([ffmpeg],[-lamrwb])
3109      fi])
3110
3111  AC_ARG_WITH(ffmpeg-x264,
3112    [    --with-ffmpeg-x264 specify if ffmpeg has been compiled with libx264 support],
3113    [
3114      if test "$with_ffmpeg_x264" = "yes";       then
3115         VLC_ADD_LIBS([ffmpeg],[-lx264])
3116      fi])
3117
3118  AC_ARG_WITH(ffmpeg-a52,
3119    [    --with-ffmpeg-a52 specify if ffmpeg has been compiled with liba52 support],
3120    [
3121      if test "$with_ffmpeg_a52" = "yes";        then
3122         VLC_ADD_LIBS([ffmpeg],[-la52])
3123      fi])
3124
3125  dnl
3126  dnl test for --with-ffmpeg-tree
3127  dnl
3128  AC_ARG_WITH(ffmpeg-tree,
3129    [    --with-ffmpeg-tree=PATH ffmpeg tree for static linking])
3130
3131  if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
3132    AC_MSG_CHECKING(for libavcodec.a in ${with_ffmpeg_tree})
3133    real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
3134    if test -z "${real_ffmpeg_tree}"; then
3135      dnl  The given directory can't be found
3136      AC_MSG_RESULT(no)
3137      AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
3138    fi
3139    if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
3140      dnl  The given libavcodec wasn't built
3141      AC_MSG_RESULT(no)
3142      AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodec.a, make sure you compiled libavcodec in ${with_ffmpeg_tree}])
3143    fi
3144    if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
3145      if test -f "${real_ffmpeg_tree}/libavcodec/libpostproc/libpostproc.a"; then
3146        VLC_ADD_LIBS([ffmpeg],[-L${real_ffmpeg_tree}/libavcodec/libpostproc ${real_ffmpeg_tree}/libavcodec/libpostproc/libpostproc.a])   
3147      elif test -f "${real_ffmpeg_tree}/libpostproc/libpostproc.a"; then 
3148         VLC_ADD_LIBS([ffmpeg],[-L${real_ffmpeg_tree}/libpostproc ${real_ffmpeg_tree}/libpostproc/libpostproc.a])
3149         VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}])
3150      else
3151        dnl  The given libavcodec wasn't built with --enable-postproc
3152        AC_MSG_RESULT(no)
3153        AC_MSG_ERROR([cannot find libpostproc.a in ${real_ffmpeg_tree}/[libavcodec/]libpostproc/. Make sure you configured ffmpeg with --enable-postproc])
3154      fi
3155    fi
3156    dnl  Use a custom libffmpeg
3157    AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodec.a)
3158
3159    dnl Use pkg-config to look for the ldflags in libav*-uninstalled.pc
3160    PKG_CONFIG_PATH_save="$PKG_CONFIG_PATH"
3161    PKG_CONFIG_LIBDIR_save="$PKG_CONFIG_LIBDIR"
3162    export PKG_CONFIG_PATH=""
3163    export PKG_CONFIG_LIBDIR="${real_ffmpeg_tree}"
3164    VLC_SAVE_FLAGS
3165
3166    PKG_CHECK_MODULES( [FFMPEG],[libavformat libavcodec libpostproc], [
3167         VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher], ${FFMPEG_CFLAGS})
3168         VLC_ADD_LIBS([ffmpeg stream_out_switcher], ${FFMPEG_LIBS})]
3169         AC_DEFINE(HAVE_LIBAVFORMAT_TREE, 1, [Define if you have ffmpeg's libavformat.])
3170       )
3171    AS_IF([ test -f "${real_ffmpeg_tree}/libswscale/libswscale.a"],[
3172      AC_DEFINE(HAVE_LIBSWSCALE_TREE, 1, [Define if you have ffmpeg's libswscale.])
3173      PKG_CHECK_MODULES( [SWSCALE],[libswscale], [
3174      VLC_ADD_LIBS([ffmpeg],[${SWSCALE_LIBS}])
3175      VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[${SWSCALE_CFLAGS}])])
3176      ])
3177    CPPFLAGS="${CPPFLAGS} ${FFMPEG_CFLAGS} ${SWSCALE_CFLAGS}"
3178    CFLAGS="${CFLAGS} ${FFMPEG_CFLAGS} ${SWSCALE_CFLAGS}"
3179    
3180    AC_CHECK_HEADERS(ffmpeg/avcodec.h libavcodec/avcodec.h)
3181    AC_CHECK_HEADERS(ffmpeg/avformat.h libavformat/avformat.h)
3182    AC_CHECK_HEADERS(ffmpeg/avutil.h libavutil/avutil.h)
3183    AC_CHECK_HEADERS([ffmpeg/swscale.h libswscale/swscale.h])
3184
3185    VLC_RESTORE_FLAGS
3186    AS_IF([test -n "${PKG_CONFIG_PATH_save}"],[
3187          export PKG_CONFIG_PATH="${PKG_CONFIG_PATH_save}"
3188    ],[
3189         unset PKG_CONFIG_PATH
3190    ])
3191    AS_IF([test -n "${PKG_CONFIG_LIBDIR_save}"],[
3192         export PKG_CONFIG_LIBDIR="${PKG_CONFIG_LIBDIR_save}"
3193    ],[
3194         unset PKG_CONFIG_LIBDIR
3195    ])
3196
3197    VLC_ADD_BUILTINS([ffmpeg])
3198    if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes" ; then
3199      VLC_ADD_BUILTINS([stream_out_switcher])
3200    fi
3201
3202
3203 else
3204
3205
3206 dnl Trying with pkg-config
3207    PKG_CHECK_MODULES(FFMPEG,[libavcodec, libavformat],
3208     [
3209      VLC_SAVE_FLAGS
3210      CPPFLAGS="${CPPFLAGS} ${FFMPEG_CFLAGS}"
3211      CFLAGS="${CFLAGS} ${FFMPEG_CFLAGS}"
3212      AC_CHECK_HEADERS(ffmpeg/avcodec.h libavcodec/avcodec.h)
3213      AC_CHECK_HEADERS(ffmpeg/avformat.h libavformat/avformat.h)
3214      AC_CHECK_HEADERS(ffmpeg/avutil.h libavutil/avutil.h)
3215      dnl newer ffmpeg have a separate libpostproc
3216      PKG_CHECK_MODULES(POSTPROC, libpostproc,[
3217        VLC_ADD_CFLAGS([ffmpeg],[${POSTPROC_CFLAGS}]) 
3218        VLC_ADD_LIBS([ffmpeg],[${POSTPROC_LIBS}]) 
3219        ],[ true ])
3220      CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
3221      CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
3222      AC_CHECK_HEADERS(postproc/postprocess.h)
3223      VLC_ADD_PLUGIN([ffmpeg])
3224      if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes"; then
3225         VLC_ADD_PLUGIN([stream_out_switcher])
3226      fi
3227      VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[${FFMPEG_CFLAGS}])
3228      VLC_ADD_LIBS([ffmpeg stream_out_switcher],[${FFMPEG_LIBS}])
3229
3230      dnl even newer ffmpeg has a libswscale
3231      PKG_CHECK_MODULES(SWSCALE,[libswscale],[
3232        VLC_ADD_CFLAGS([ffmpeg],[${SWSCALE_CFLAGS}])
3233        VLC_ADD_LIBS([ffmpeg],[${SWSCALE_LIBS}])
3234        AC_CHECK_LIB(swscale, sws_getContext,
3235          [AC_CHECK_HEADERS([ffmpeg/swscale.h libswscale/swscale.h])],[],[-lavutil -lm])
3236        ],[ true ])
3237      VLC_RESTORE_FLAGS
3238     ],[
3239
3240     dnl
3241     dnl last chance: at the default place
3242     dnl
3243       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_ffmpeg}"
3244       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg} ${LIBS_ffmpeg}"
3245       AC_CHECK_HEADERS(ffmpeg/avcodec.h libavcodec/avcodec.h)
3246       AC_CHECK_HEADERS(ffmpeg/avformat.h libavformat/avformat.h)
3247       AC_CHECK_HEADERS(ffmpeg/avutil.h libavutil/avutil.h)
3248       AC_CHECK_HEADERS(postproc/postprocess.h)
3249
3250       AC_CHECK_LIB(avutil, av_crc_init, [
3251         VLC_ADD_LIBS([ffmpeg],[-lavutil])
3252         LDAVUTIL="-lavutil"])
3253
3254       AC_CHECK_LIB(avcodec, avcodec_init, [
3255         VLC_ADD_BUILTINS([ffmpeg])
3256         VLC_ADD_LIBS([ffmpeg],[-lavcodec])
3257         if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes"; then
3258             VLC_ADD_BUILTINS([stream_out_switcher])
3259         fi],
3260          [ AC_MSG_ERROR([Could not find ffmpeg on your system: you may get it from http://ffmpeg.sf.net/ (svn version is recommended). Alternatively you can use --disable-ffmpeg to disable the ffmpeg plugins.]) ], [$LDAVUTIL])
3261
3262       AC_CHECK_LIB(postproc, pp_postprocess, [
3263         VLC_ADD_LIBS([ffmpeg],[-lpostproc])],
3264       AC_MSG_ERROR([Could not find libpostproc inside FFmpeg. You should configure FFmpeg with --enable-gpl --enable-postproc.]),
3265         [$LDAVUTIL])
3266
3267       AC_CHECK_LIB(avformat, av_open_input_stream, [
3268         VLC_ADD_LIBS([ffmpeg],[-lavformat -lz]) ], [], [-lavcodec -lz $LDAVUTIL])
3269       LDFLAGS="${LDFLAGS_save}"
3270       CPPFLAGS="${CPPFLAGS_save}"
3271
3272       AC_CHECK_LIB(swscale, sws_getContext, [
3273         AC_CHECK_HEADERS(ffmpeg/swscale.h libswscale/swscale.h)
3274         VLC_ADD_LIBS([ffmpeg],[-lswscale]) ], [], [-lavcodec $LDAVUTIL])
3275       LDFLAGS="${LDFLAGS_save}"
3276       CPPFLAGS="${CPPFLAGS_save}"
3277     ])
3278   fi
3279 fi
3280
3281 dnl
3282 dnl  ffmpegaltivec plugin
3283 dnl
3284 AC_ARG_ENABLE(ffmpegaltivec,
3285 [  --enable-ffmpegaltivec  ffmpegaltivec codec (DO NOT USE)])
3286 if test "${enable_ffmpegaltivec}" = "yes"
3287 then
3288   if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
3289     AC_MSG_CHECKING(for libavcodecaltivec.a in ${with_ffmpeg_tree})
3290     real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
3291     if test -z "${real_ffmpeg_tree}"; then
3292       dnl  The given directory can't be found
3293       AC_MSG_RESULT(no)
3294       AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
3295     fi
3296     if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
3297       dnl  The given libavcodecaltivec wasn't built
3298       AC_MSG_RESULT(no)
3299       AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a, make sure you compiled libavcodecaltivec in ${with_ffmpeg_tree}])
3300     fi
3301     if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
3302       dnl  The given libavcodecaltivec wasn't built with --enable-postproc
3303       AC_MSG_RESULT(no)
3304       AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-postproc])
3305     fi
3306     dnl  Use a custom libffmpeg
3307     AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a)
3308     VLC_ADD_BUILTINS([ffmpegaltivec])
3309     VLC_ADD_LIBS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavcodec -lavcodecaltivec])
3310     VLC_ADD_CPPFLAGS([ffmpeg],[-DNO_ALTIVEC_IN_FFMPEG])
3311     VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
3312
3313     if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
3314       AC_DEFINE(HAVE_LIBAVFORMAT_TREE, 1, [Define if you have ffmpeg's libavformat.])
3315       VLC_ADD_LIBS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavformat -lavformataltivec -lz])
3316       VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavformat])
3317     fi
3318     VLC_ADD_LIBS([stream_out_switcher],[-L${real_ffmpeg_tree}/libavcodec])
3319     VLC_ADD_CPPFLAGS([stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
3320   fi
3321 fi
3322
3323 dnl
3324 dnl  faad decoder plugin
3325 dnl
3326 AC_ARG_ENABLE(faad,
3327 [  --enable-faad           faad codec (default disabled)])
3328 if test "${enable_faad}" = "yes"
3329 then
3330   AC_ARG_WITH(faad-tree,
3331   [    --with-faad-tree=PATH faad tree for static linking])
3332   if test -n "${with_faad_tree}"
3333   then
3334     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
3335     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
3336     if test -z "${real_faad_tree}"
3337     then
3338       dnl  The given directory can't be found
3339       AC_MSG_RESULT(no)
3340       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
3341     fi
3342     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
3343     then
3344       dnl  Use a custom faad
3345       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
3346       VLC_ADD_BUILTINS([faad])
3347       VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
3348       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
3349     else
3350       dnl  The given libfaad wasn't built
3351       AC_MSG_RESULT(no)
3352       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
3353     fi
3354   else
3355     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
3356     LDFLAGS="${LDFLAGS_save} ${LIBS_faad}"
3357     AC_CHECK_HEADERS(faad.h, ,
3358       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
3359     AC_CHECK_LIB(faad, faacDecOpen, [
3360       VLC_ADD_PLUGIN([faad])
3361       VLC_ADD_LIBS([faad],[-lfaad]) ],
3362       AC_CHECK_LIB(faad, NeAACDecOpen, [
3363         VLC_ADD_PLUGIN([faad])
3364         VLC_ADD_LIBS([faad],[-lfaad]) ],
3365         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
3366     LDFLAGS="${LDFLAGS_save}"
3367     CPPFLAGS="${CPPFLAGS_save}"
3368   fi
3369 fi
3370
3371 dnl
3372 dnl twolame encoder plugin
3373 dnl
3374 AC_ARG_ENABLE(twolame,
3375 [  --enable-twolame        twolame codec (default disabled)])
3376 if test "${enable_twolame}" = "yes"
3377 then
3378   AC_ARG_WITH(twolame-tree,
3379   [    --with-twolame-tree=PATH twolame tree for static linking])
3380   if test -n "${with_twolame_tree}"
3381   then
3382     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
3383     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
3384     if test -z "${real_twolame_tree}"
3385     then
3386       dnl  The given directory can't be found
3387       AC_MSG_RESULT(no)
3388       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
3389     fi
3390     if test -f "${real_twolame_tree}/libtwolame/.libs/libtwolame.a"
3391     then
3392       dnl  Use a custom twolame
3393       AC_MSG_RESULT(${real_twolame_tree}/libtwolame/.libs/libtwolame.a)
3394       VLC_ADD_BUILTINS([twolame])
3395       VLC_ADD_LIBS([twolame],[${real_twolame_tree}/libtwolame/.libs/libtwolame.a])
3396       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/libtwolame -DLIBTWOLAME_STATIC])
3397     else
3398       dnl  The given libtwolame wasn't built
3399       AC_MSG_RESULT(no)
3400       AC_MSG_ERROR([cannot find ${real_twolame_tree}/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
3401     fi
3402   else
3403     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame} -DLIBTWOLAME_STATIC"
3404     LDFLAGS="${LDFLAGS_save} ${LIBS_twolame}"
3405     AC_CHECK_HEADERS(twolame.h, ,
3406       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
3407     AC_CHECK_LIB(twolame, twolame_init, [
3408       VLC_ADD_PLUGIN([twolame])
3409       VLC_ADD_CPPFLAGS([twolame],[-DLIBTWOLAME_STATIC])
3410       VLC_ADD_LIBS([twolame],[-ltwolame]) ],
3411         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
3412     LDFLAGS="${LDFLAGS_save}"  
3413     CPPFLAGS="${CPPFLAGS_save}"
3414   fi
3415 fi
3416
3417 dnl
3418 dnl  QuickTime plugin
3419 dnl
3420 AC_ARG_ENABLE(quicktime,
3421   [  --enable-quicktime      QuickTime module (default enabled on MacOS X)])
3422 if test "${enable_quicktime}" != "no" &&
3423   (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
3424 then
3425   if test "${SYS}" = "mingw32"; then
3426     VLC_ADD_BUILTINS([quicktime])
3427   else
3428   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
3429     [ VLC_ADD_PLUGIN([quicktime])
3430       VLC_ADD_LDFLAGS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
3431     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
3432   fi
3433 fi
3434
3435 dnl
3436 dnl  Real plugin
3437 dnl
3438 AC_ARG_ENABLE(real,
3439   [  --enable-real           Real audio module (default disabled)])
3440 if test "${enable_real}" = "yes"; then
3441   VLC_ADD_PLUGIN([realaudio])
3442 fi
3443
3444 dnl
3445 dnl  Real RTSP plugin
3446 dnl
3447 AC_ARG_ENABLE(realrtsp,
3448   [  --enable-realrtsp       Real RTSP module (default disabled)])
3449 if test "${enable_realrtsp}" = "yes"; then
3450   VLC_ADD_PLUGIN([access_realrtsp])
3451 fi
3452
3453 dnl
3454 dnl MP4 module
3455 dnl
3456 AC_CHECK_HEADERS(zlib.h, [
3457   VLC_ADD_LIBS([mp4 skins2 sap mkv gme],[-lz])
3458 ] )
3459
3460 AC_CHECK_HEADERS(sysfs/libsysfs.h, [
3461   VLC_ADD_LIBS([mp4 mkv],[-lsysfs])
3462 ] )
3463
3464 dnl
3465 dnl skins2 module
3466 dnl
3467 AC_ARG_ENABLE(libtar,
3468   [  --enable-libtar support for skins2 (default enabled)])
3469
3470 AS_IF([test "${enable_libtar}" != "no"],[
3471   AC_CHECK_HEADERS(libtar.h, [
3472     VLC_ADD_LIBS([skins2],[-ltar])
3473   ] )
3474 ])
3475
3476 dnl
3477 dnl A52/AC3 decoder plugin
3478 dnl
3479 AC_ARG_ENABLE(a52,
3480   [  --enable-a52            A/52 support with liba52 (default enabled)])
3481 if test "${enable_a52}" != "no"
3482 then
3483   AC_ARG_WITH(a52,
3484     [    --with-a52=PATH       a52 headers and libraries])
3485   AC_ARG_WITH(a52-tree,
3486     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
3487   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
3488   then
3489     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
3490     if test -z "${real_a52_tree}"
3491     then
3492       dnl  The given directory can't be found
3493       AC_MSG_RESULT(no)
3494       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
3495     fi
3496     dnl  Use a custom a52dec
3497     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
3498     if test -f ${real_a52_tree}/include/a52.h
3499     then
3500       AC_MSG_RESULT(yes)
3501       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
3502       VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
3503       LDFLAGS="${LDFLAGS_save} ${LIBS_a52tofloat32}"
3504       AC_CHECK_LIB(a52, a52_free, [
3505         VLC_ADD_BUILTINS([a52tofloat32])
3506         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
3507         VLC_ADD_LIBS([a52tofloat32],[-la52])
3508         ],[
3509         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
3510         then
3511           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
3512         else
3513           AC_MSG_ERROR([the specified tree hasn't been compiled])
3514         fi
3515       ])
3516       LDFLAGS="${LDFLAGS_save}"
3517     else
3518       AC_MSG_RESULT(no)
3519       AC_MSG_ERROR([the specified tree doesn't have a52.h])
3520     fi
3521   else
3522     if test -z "${with_a52}"
3523     then
3524       LDFLAGS_test=""
3525       CPPFLAGS_test=""
3526     else
3527       LDFLAGS_test="-L${with_a52}/lib"
3528       CPPFLAGS_test="-I${with_a52}/include"
3529     fi
3530     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
3531     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
3532     AC_CHECK_HEADERS(a52dec/a52.h, [
3533       AC_CHECK_LIB(a52, a52_free, [
3534         VLC_ADD_PLUGIN([a52tofloat32])
3535         VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
3536         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
3537       ],[
3538         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.])
3539         ])
3540     ],[
3541       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.])
3542     ])
3543     CPPFLAGS="${CPPFLAGS_save}"
3544     LDFLAGS="${LDFLAGS_save}"
3545   fi
3546 fi
3547
3548 AC_ARG_WITH(a52-fixed,
3549       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
3550       [
3551         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
3552
3553 dnl
3554 dnl DTS Coherent Acoustics decoder plugin
3555 dnl
3556 AS_IF([test "x${enable_dts}" != "x"], [
3557   AC_MSG_ERROR([--enable-dts is obsolete. Please use libdca and --enable-dca.])
3558 ])
3559 AS_IF([test "x${with_dts_tree}" != "x"], [
3560   AC_MSG_ERROR([--with-dts-tree is obsolete. Please use libdca and --with-dca-tree.])
3561 ])
3562
3563 AC_ARG_ENABLE(dca,
3564   [  --enable-dca            DTS Coherent Acoustics support with libdca (default enabled)])
3565 AS_IF([test "${enable_dca}" != "no"], [
3566   AC_ARG_WITH(dca-tree,
3567     [    --with-dca-tree=PATH  libdca tree for static linking],,
3568     [with_dca_tree="no"])
3569   AS_IF([test "${with_dca_tree}" != "no"], [
3570     real_dca_tree="`cd ${with_dca_tree} 2>/dev/null && pwd`"
3571     AS_IF([test -z "${real_dca_tree}"], [
3572       dnl  The given directory can't be found
3573       AC_MSG_RESULT(no)
3574       AC_MSG_ERROR([${with_dca_tree} directory doesn't exist])
3575     ])
3576     dnl  Use a custom libdca
3577     AC_MSG_CHECKING(for libdca in ${real_dca_tree})
3578     AS_IF([test -f "${real_dca_tree}/libdca/.libs/libdca.a"], [
3579       AC_MSG_RESULT(yes)
3580       VLC_ADD_LIBS([dtstofloat32],[${real_dca_tree}/libdca/.libs/libdca.a])
3581       AS_IF([test -f "${real_dca_tree}/include/dca.h"], [
3582         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/include])
3583       ], [
3584         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/../include])
3585       ])
3586     ], [
3587       AC_MSG_RESULT(no)
3588       AC_MSG_ERROR([the specified tree doesn't have libdca/.libs/libdca.a])
3589     ])
3590   ], [
3591     PKG_CHECK_MODULES([DCA], [libdca >= 0.0.5], [
3592       VLC_ADD_PLUGIN([dtstofloat32])
3593       VLC_ADD_CPPFLAGS([dtstofloat32], [${DCA_CFLAGS}])
3594       VLC_ADD_LIBS([dtstofloat32], [${DCA_LIBS}])
3595     ], [
3596       AS_IF([test "x${enable_dca}" != "x"], [
3597         AC_MSG_ERROR([${DCA_PKG_ERRORS}])
3598       ])
3599     ])
3600   ])
3601 ])
3602
3603 dnl
3604 dnl  Flac plugin
3605 dnl
3606 AC_ARG_ENABLE(flac,
3607   [  --enable-flac           libflac decoder/encoder support (default disabled)])
3608 if test "${enable_flac}" = "yes"
3609 then
3610   AC_ARG_WITH(flac-tree,
3611   [    --with-flac-tree=PATH flac tree for static linking])
3612   if test -n "${with_flac_tree}"
3613   then
3614     AC_MSG_CHECKING(for libFLAC.a in ${with_flac_tree})
3615     real_flac_tree="`cd ${with_flac_tree} 2>/dev/null && pwd`"
3616     if test -z "${real_flac_tree}"
3617     then
3618       dnl  The given directory can't be found
3619       AC_MSG_RESULT(no)
3620       AC_MSG_ERROR([cannot cd to ${with_flac_tree}])
3621     fi
3622     if test -f "${real_flac_tree}/src/libFLAC/.libs/libFLAC.a"
3623     then
3624       dnl  Use a custom flac
3625       AC_MSG_RESULT(${real_flac_tree}/src/libFLAC/.libs/libFLAC.a)
3626       VLC_ADD_LIBS([flac],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a])
3627       VLC_ADD_CFLAGS([flac],[-I${real_flac_tree}/include])
3628       AC_DEFINE(HAVE_FLAC_STREAM_DECODER_H, 1, [Define if you have FLAC])
3629     else
3630       dnl  The given flac wasn't built
3631       AC_MSG_RESULT(no)
3632       AC_MSG_ERROR([cannot find ${real_flac_tree}/src/libFLAC/.libs/libFLAC.a, make sure you compiled flac in ${with_flac_tree}])
3633     fi
3634   else
3635     AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
3636       VLC_ADD_LIBS([flac],[-lFLAC -logg])
3637      ],[])
3638   fi
3639 fi
3640
3641 dnl
3642 dnl  Libmpeg2 plugin
3643 dnl
3644 AC_ARG_ENABLE(libmpeg2,
3645   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
3646 if test "${enable_libmpeg2}" != "no"
3647 then
3648   AC_ARG_WITH(libmpeg2-tree,
3649   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
3650   if test -n "${with_libmpeg2_tree}"
3651   then
3652     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
3653     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
3654     if test -z "${real_libmpeg2_tree}"
3655     then
3656       dnl  The given directory can't be found
3657       AC_MSG_RESULT(no)
3658       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
3659     fi
3660     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
3661     then
3662       dnl  Use a custom libmpeg2
3663       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
3664       VLC_ADD_BUILTINS([libmpeg2])
3665       VLC_ADD_LIBS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
3666       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
3667       eval "`cd ${real_libmpeg2_tree}/include && ln -sf . mpeg2dec 2>/dev/null`"
3668     else
3669       dnl  The given libmpeg2 wasn't built
3670       AC_MSG_RESULT(no)
3671       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
3672     fi
3673   else
3674     AC_CHECK_HEADERS(mpeg2dec/mpeg2.h, [
3675       AC_MSG_CHECKING(for libmpeg2 version >= 0.3.2)
3676       AC_EGREP_CPP(yes,
3677         [#include <mpeg2dec/mpeg2.h>
3678          #ifdef MPEG2_RELEASE
3679          #if MPEG2_RELEASE >= MPEG2_VERSION(0,3,2)
3680          yes
3681          #endif
3682          #endif],
3683         [AC_MSG_RESULT([yes])
3684           VLC_ADD_PLUGIN([libmpeg2])
3685           VLC_ADD_LIBS([libmpeg2],[-lmpeg2])],
3686         [AC_MSG_RESULT([no])
3687           AC_MSG_ERROR([Your libmpeg2 is too old (you need the cvs version): you may get a more recent one from http://libmpeg2.sf.net/. Alternatively you can use --disable-libmpeg2 to disable the libmpeg2 plugin.])])],
3688
3689       [AC_MSG_ERROR([Could not find libmpeg2 on your system: you may get it from http://libmpeg2.sf.net/ (you need the cvs version). Alternatively you can use --disable-libmpeg2 to disable the libmpeg2 plugin.])]
3690     )
3691   fi
3692 fi
3693
3694 dnl
3695 dnl  Vorbis plugin
3696 dnl
3697 AC_ARG_ENABLE(vorbis,
3698   [  --enable-vorbis         Vorbis decoder support (default enabled)])
3699 if test "${enable_vorbis}" != "no"
3700 then
3701   AC_ARG_WITH(vorbis-tree,
3702   [    --with-vorbis-tree=PATH vorbis tree for static linking])
3703   if test -n "${with_vorbis_tree}"
3704   then
3705     AC_MSG_CHECKING(for libvorbis.a in ${with_vorbis_tree})
3706     real_vorbis_tree="`cd ${with_vorbis_tree} 2>/dev/null && pwd`"
3707     if test -z "${real_vorbis_tree}"
3708     then
3709       dnl  The given directory can't be found
3710       AC_MSG_RESULT(no)
3711       AC_MSG_ERROR([cannot cd to ${with_vorbis_tree}])
3712     fi
3713     if test -f "${real_vorbis_tree}/lib/.libs/libvorbis.a"
3714     then
3715       dnl  Use a custom vorbis 
3716       AC_MSG_RESULT(${real_vorbis_tree}/lib/.libs/libvorbis.a)
3717       VLC_ADD_PLUGIN([vorbis])
3718       VLC_ADD_LIBS([vorbis],[${real_vorbis_tree}/lib/.libs/libvorbis.a ${real_vorbis_tree}/lib/.libs/libvorbisenc.a])
3719       VLC_ADD_CFLAGS([vorbis],[-I${real_vorbis_tree}/include])
3720     else
3721       dnl  The given vorbis wasn't built
3722       AC_MSG_RESULT(no)
3723       AC_MSG_ERROR([cannot find ${real_vorbis_tree}/lib/.libs/libvorbis.a, make sure you compiled vorbis in ${with_vorbis_tree}])
3724     fi
3725   else
3726     AC_CHECK_HEADERS(vorbis/codec.h, [
3727       VLC_ADD_PLUGIN([vorbis])
3728       VLC_ADD_LIBS([vorbis],[-lvorbis -logg -lm]) ],[])
3729
3730     AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
3731       VLC_ADD_LIBS([vorbis],[-lvorbisenc -lm]) ],[])
3732   fi
3733 fi
3734
3735 dnl
3736 dnl  Tremor plugin
3737 dnl
3738 AC_ARG_ENABLE(tremor,
3739   [  --enable-tremor         Tremor decoder support (default disabled)])
3740 if test "${enable_tremor}" = "yes"
3741 then
3742   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3743     VLC_ADD_PLUGIN([tremor])
3744     VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
3745    ],[])
3746 fi
3747
3748 dnl
3749 dnl  Speex plugin
3750 dnl
3751 AC_ARG_ENABLE(speex,
3752   [  --enable-speex          Speex decoder support (default enabled)])
3753 if test "${enable_speex}" != "no"
3754 then
3755   AC_ARG_WITH(speex-tree,
3756   [    --with-speex-tree=PATH speex tree for static linking])
3757   if test -n "${with_speex_tree}"
3758   then
3759     AC_MSG_CHECKING(for libspeex.a in ${with_speex_tree})
3760     real_speex_tree="`cd ${with_speex_tree} 2>/dev/null && pwd`"
3761     if test -z "${real_speex_tree}"
3762     then
3763       dnl  The given directory can't be found
3764       AC_MSG_RESULT(no)
3765       AC_MSG_ERROR([cannot cd to ${with_speex_tree}])
3766     fi
3767     if test -f "${real_speex_tree}/libspeex/.libs/libspeex.a"
3768     then
3769       dnl  Use a custom speex
3770       AC_MSG_RESULT(${real_speex_tree}/libspeex/.libs/libspeex.a)
3771       VLC_ADD_PLUGIN([speex])
3772       VLC_ADD_LIBS([speex],[${real_speex_tree}/libspeex/.libs/libspeex.a])
3773       VLC_ADD_CFLAGS([speex],[-I${real_speex_tree}/include])
3774     else
3775       dnl  The given speex wasn't built
3776       AC_MSG_RESULT(no)
3777       AC_MSG_ERROR([cannot find ${real_speex_tree}/libspeex/.libs/libspeex.a, make sure you compiled speex in ${with_speex_tree}])
3778     fi
3779   else
3780     AC_CHECK_HEADERS(speex/speex.h, [
3781       LDFLAGS="${LDFLAGS_save} ${LIBS_speex}"
3782       AC_CHECK_LIB(speex, speex_decode_int, [
3783         VLC_ADD_PLUGIN([speex])
3784         VLC_ADD_LIBS([speex],[-lspeex]) ],
3785         [ AC_MSG_RESULT([no])
3786           AC_MSG_WARN([Your libspeex is too old, please get the development
3787                        version.]) ],[])
3788       LDFLAGS="${LDFLAGS_save}"
3789       ],[])
3790   fi
3791 fi
3792
3793 dnl
3794 dnl  tarkin decoder plugin
3795 dnl
3796 AC_ARG_ENABLE(tarkin,
3797 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3798 if test "${enable_tarkin}" = "yes"
3799 then
3800   AC_ARG_WITH(tarkin-tree,
3801   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3802   if test -n "${with_tarkin_tree}"
3803   then
3804     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3805     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3806     if test -f "${real_tarkin_tree}/tarkin.o"
3807     then
3808       VLC_ADD_BUILTINS([tarkin])
3809       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3810       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])
3811       AC_MSG_RESULT(yes)
3812     else
3813       dnl  The given tarkin tree wasn't built
3814       AC_MSG_RESULT(no)
3815       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3816                     make sure you compiled tarkin in ${with_tarkin_tree}])
3817     fi
3818   fi
3819 fi
3820
3821 dnl
3822 dnl  theora decoder plugin
3823 dnl
3824 AC_ARG_ENABLE(theora,
3825 [  --enable-theora         experimental theora codec (default disabled)])
3826 if test "${enable_theora}" = "yes"
3827 then
3828   AC_CHECK_HEADERS(theora/theora.h, [
3829     AC_CHECK_LIB(theora, theora_granule_time, [
3830       VLC_ADD_PLUGIN([theora])
3831       theora_libs="-ltheora -logg"
3832       VLC_ADD_LIBS([theora],[${theora_libs}]) ],[
3833       AC_MSG_ERROR([libtheora doesn't appear to be installed on your system.
3834 You also need to check that you have a libogg posterior to the 1.0 release.])],
3835       [-logg])
3836   ])
3837 fi
3838
3839 dnl
3840 dnl  dirac decoder plugin
3841 dnl
3842 AC_ARG_ENABLE(dirac,
3843 [  --enable-dirac          experimental dirac codec (default disabled)])
3844 if test "${enable_dirac}" = "yes"; then
3845   PKG_CHECK_MODULES(DIRAC,[dirac >= 0.9.0], [
3846       VLC_ADD_PLUGIN([dirac])
3847       VLC_ADD_CFLAGS([dirac],[$DIRAC_CFLAGS])
3848       VLC_ADD_LIBS([dirac],[$DIRAC_LIBS -lstdc++]) ],[
3849       AC_MSG_ERROR([libdirac doesn't appear to be installed on you system.])
3850   ])
3851 fi
3852
3853 dnl
3854 dnl  PNG decoder module
3855 dnl
3856 AC_ARG_ENABLE(png,
3857   [  --enable-png            PNG support (default enabled)])
3858 if test "${enable_png}" != "no"; then
3859 AC_CHECK_HEADERS(png.h, [
3860   LDFLAGS="${LDFLAGS_save} -lz"
3861   AC_CHECK_LIB(png, png_set_rows, [
3862     VLC_ADD_LIBS([png],[-lpng -lz])
3863     VLC_ADD_PLUGIN([png])
3864     VLC_ADD_PLUGIN([osdmenu])
3865     VLC_ADD_PLUGIN([osd_parser])
3866     AC_DEFINE(HAVE_LIBPNG, 1, [Define if you have the PNG library: libpng])],
3867     [],[-lz])
3868     LDFLAGS="${LDFLAGS_save}"
3869   ])
3870 fi
3871 AM_CONDITIONAL(BUILD_OSDMENU, [test "${enable_png}" != "no"])
3872
3873 dnl
3874 dnl H264 encoder plugin (using libx264)
3875 dnl
3876 AC_ARG_ENABLE(x264,
3877   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3878 if test "${enable_x264}" != "no"; then
3879   AC_ARG_WITH(x264-tree,
3880     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3881   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3882   then
3883     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3884     if test -z "${real_x264_tree}"
3885     then
3886       dnl  The given directory can't be found
3887       AC_MSG_RESULT(no)
3888       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3889     fi
3890     dnl  Use a custom libx264
3891     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3892     if test -f ${real_x264_tree}/x264.h
3893     then
3894       AC_MSG_RESULT(yes)
3895       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3896       VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
3897       PKG_CHECK_MODULES(X264,x264, [
3898         VLC_ADD_PLUGIN([x264])
3899         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3900         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3901       ],[
3902         AC_MSG_ERROR([the specified tree hasn't been compiled])
3903       ])
3904       LDFLAGS="${LDFLAGS_save}"
3905     else
3906       AC_MSG_RESULT(no)
3907       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3908     fi
3909   else
3910       PKG_CHECK_MODULES(X264,x264, [
3911         VLC_ADD_PLUGIN([x264])
3912         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3913         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3914       ],[
3915         if test "${enable_x264}" = "yes"; then
3916             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
3917           fi
3918       ])
3919     LDFLAGS="${LDFLAGS_save}"
3920   fi
3921 fi
3922
3923 dnl
3924 dnl libfluidsynth (MIDI synthetizer) plugin
3925 dnl
3926 AC_ARG_ENABLE(fluidsynth,
3927   [  --enable-fluidsynth     MIDI synthesisr with libfluidsynth (default enabled)])
3928 AS_IF([test "x${enable_fluidsynth}" != "xno"], [
3929   PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth, [
3930     VLC_ADD_PLUGIN(fluidsynth)
3931     VLC_ADD_CFLAGS(fluidsynth, [${FLUIDSYNTH_CFLAGS}])
3932     VLC_ADD_LIBS(fluidsynth, [${FLUIDSYNTH_LIBS}])
3933   ], [
3934     AS_IF([test "x${enable_fluidsynth}" != "x"], [
3935       AC_MSG_ERROR([${FLUIDSYNTH_PKG_ERRORS}])
3936     ])
3937   ])
3938 ])
3939
3940 dnl
3941 dnl Teletext Modules
3942 dnl vbi decoder plugin (using libzbvi)
3943 dnl telx module
3944 dnl uncompatible
3945 dnl
3946 AC_ARG_ENABLE(zvbi,
3947   [  --enable-zvbi           VBI (inc. Teletext) decoding support with libzvbi (default enabled)])
3948 AC_ARG_ENABLE(telx,
3949   [  --enable-telx           Teletext decoding module (conflicting with zvbi) (default disabled)])
3950
3951 AS_IF( [test "${enable_zvbi}" != "no"],[
3952   AS_IF( [test "${enable_telx}" = "yes"],[
3953     AC_MSG_ERROR([The zvbi and telx modules are uncompatibles. Disable the other if you enable one.])
3954   ],[
3955     PKG_CHECK_MODULES(ZVBI,
3956         zvbi-0.2 >= 0.2.25,
3957         [
3958           VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
3959           VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
3960           VLC_ADD_PLUGIN([zvbi])
3961           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built]) 
3962         ],[
3963           AC_MSG_WARN(ZVBI library not found. Enabling the telx module instead)
3964           enable_telx="yes"
3965         ])
3966     ])  
3967   ])
3968 AS_IF( [test "${enable_telx}" = "yes"],[
3969   VLC_ADD_PLUGIN([telx])
3970   ])
3971
3972 dnl
3973 dnl asa/csri subtitle rendering module
3974 dnl
3975 AC_ARG_ENABLE(csri,
3976   [  --enable-csri          Subtitle support using CSRI / asa (default disabled)])
3977 AS_IF( [test "${enable_csri}" = "yes"], [
3978   PKG_CHECK_MODULES(CSRI,
3979       csri >= 0.1.0,
3980       [
3981         VLC_ADD_LDFLAGS([csri],[$CSRI_LIBS])
3982         VLC_ADD_CFLAGS([csri],[$CSRI_CFLAGS])
3983         VLC_ADD_PLUGIN([csri])
3984       ],[
3985         AC_MSG_WARN([CSRI helper library not found])
3986       ])
3987   ])
3988
3989 dnl
3990 dnl asa demuxer
3991 dnl
3992 AC_ARG_ENABLE(asademux,
3993   [  --enable-asademux      asa subtitle demuxing (default disabled)])
3994 AS_IF( [test "${enable_asademux}" = "yes"], [
3995   PKG_CHECK_MODULES(PCRE,
3996       libpcre >= 6.5,
3997       [
3998         VLC_ADD_LDFLAGS([asademux],[$PCRE_LIBS])
3999         VLC_ADD_CFLAGS([asademux],[$PCRE_CFLAGS])
4000         VLC_ADD_PLUGIN([asademux])
4001       ],[
4002         AC_MSG_WARN([PCRE library not found (required for asademux)])
4003       ])
4004   ])
4005
4006 dnl
4007 dnl  CMML plugin
4008 dnl
4009 AC_ARG_ENABLE(cmml,
4010   [  --enable-cmml           CMML support (default enabled)])
4011 if test "${enable_cmml}" != "no"
4012 then
4013   VLC_ADD_PLUGIN([cmml])
4014 fi
4015
4016 dnl
4017 dnl  kate decoder plugin
4018 dnl
4019 AC_ARG_ENABLE(kate,
4020 [  --enable-kate           kate codec (default enabled)])
4021 AS_IF([test "${enable_kate}" != "no"], [
4022   PKG_CHECK_MODULES(KATE,[kate >= 0.1.1], [
4023       VLC_ADD_PLUGIN([kate])
4024       VLC_ADD_CFLAGS([kate],[$KATE_CFLAGS])
4025       VLC_ADD_LIBS([kate],[$KATE_LIBS]) ],[
4026         AC_CHECK_HEADERS(kate/kate.h, [
4027           AC_CHECK_LIB(kate, kate_decode_init, [
4028             VLC_ADD_PLUGIN([kate])
4029             kate_libs="-lkate -logg"
4030             VLC_ADD_LDFLAGS([kate],[${kate_libs}]) ],[
4031             AS_IF([test "x${enable_kate}" != "x"], [
4032               AC_MSG_ERROR([libkate doesn't appear to be installed on your system.
4033               You also need to check that you have a libogg posterior to the 1.0 release.])
4034             ])
4035           ], [-lkate -logg])
4036         ],[
4037           AS_IF([test "x${enable_kate}" != "x"], [
4038             AC_MSG_ERROR([libkate headers do not appear to be installed on your system.
4039             You also need to check that you have a libogg posterior to the 1.0 release.])
4040           ])
4041         ])
4042   ])
4043 ])
4044
4045
4046 dnl
4047 dnl  Video plugins
4048 dnl
4049
4050 AC_ARG_WITH(,[Video plugins:])
4051
4052 dnl Check for DPMS
4053 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
4054   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
4055   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
4056     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
4057     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
4058       AC_MSG_RESULT(yes)
4059       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
4060                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
4061     ],[
4062       AC_MSG_RESULT(no)
4063     ])
4064   ],,[
4065     #include <X11/Xlib.h>
4066   ])
4067   CPPFLAGS="${CPPFLAGS_save}"
4068 fi
4069
4070 dnl
4071 dnl  X11 module
4072 dnl  (enabled by default except on win32)
4073 dnl
4074 AC_ARG_ENABLE(x11,
4075   [  --enable-x11            X11 support (default enabled)])
4076 if test "${enable_x11}" != "no" &&
4077   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4078    test "${enable_x11}" = "yes"); then
4079   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
4080   AC_CHECK_HEADERS(X11/Xlib.h, [
4081     VLC_ADD_PLUGIN([panoramix])
4082     VLC_ADD_LIBS([panoramix],[${X_LIBS} ${X_PRE_LIBS} -lX11])
4083     VLC_ADD_CPPFLAGS([panoramix],[${X_CFLAGS}])
4084     AC_CHECK_LIB(Xext, XShmAttach, [
4085       VLC_ADD_PLUGIN([x11])
4086       VLC_ADD_LIBS([x11],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
4087       VLC_ADD_CPPFLAGS([x11],[${X_CFLAGS}])
4088     ])
4089   ])
4090   CPPFLAGS="${CPPFLAGS_save}"
4091 fi
4092
4093 dnl
4094 dnl  XVideo module
4095 dnl  (enabled by default except on win32)
4096 dnl
4097 AC_ARG_ENABLE(xvideo,
4098   [  --enable-xvideo         XVideo support (default enabled)])
4099 if test "${enable_xvideo}" != "no" &&
4100   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4101    test "${enable_xvideo}" = "yes"); then
4102   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
4103   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
4104     CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
4105     AC_CHECK_LIB(Xv,XvPutImage,[
4106       # If libXv.so is available, xvideo can be a plugin. Otherwise, we
4107       # test for libXv_pic.
4108       if test -f /usr/X11R6/lib/libXv.so -o -f /usr/lib/libXv.so -o -f "${x_libraries}"/libXv.so; then
4109         VLC_ADD_PLUGIN([xvideo])
4110         VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
4111         VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
4112       else
4113         AC_CHECK_LIB(Xv_pic,XvPutImage,[
4114           VLC_ADD_PLUGIN([xvideo])
4115           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
4116           VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv_pic])
4117         ],[
4118           VLC_ADD_BUILTINS([xvideo])
4119           VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
4120           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
4121         ])
4122       fi
4123     ])
4124     CFLAGS="${CFLAGS_save}"
4125   ]
4126   CPPFLAGS="${CPPFLAGS_save}")
4127 fi
4128
4129 dnl
4130 dnl  GLX module
4131 dnl  (enabled by default except on win32)
4132 dnl
4133 AC_ARG_ENABLE(glx,
4134   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)])
4135 if test "${enable_glx}" != "no" &&
4136   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4137    test "${enable_glx}" = "yes"); then
4138   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
4139   AC_CHECK_HEADERS(X11/Xlib.h GL/glu.h GL/glx.h)
4140   AC_COMPILE_IFELSE(AC_LANG_PROGRAM(
4141     [[#if !defined(HAVE_X11_XLIB_H) || !defined(HAVE_GL_GLU_H) || !defined(HAVE_GL_GLX_H)
4142     choke me
4143     #endif]]),
4144     [
4145       VLC_ADD_PLUGIN([glx])
4146       VLC_ADD_LIBS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU])
4147       VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}])
4148     ],[AC_MSG_ERROR([Please install GL development package. Alternatively you can also configure with --disable-glx.])])
4149   CPPFLAGS="${CPPFLAGS_save}"
4150 fi
4151
4152 dnl
4153 dnl  XVMC module
4154 dnl  (disabled by default except on win32)
4155 dnl
4156 AC_ARG_ENABLE(xvmc,
4157   [  --enable-xvmc           XVMC support (default disabled)])
4158 if test "${enable_xvmc}" = "yes" &&
4159   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4160    test "${enable_xvmc}" = "yes"); then
4161   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
4162   AC_CHECK_HEADERS(X11/extensions/vldXvMC.h, [
4163     VLC_ADD_PLUGIN([xvmc])
4164     VLC_ADD_LIBS([xvmc],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXvMCW -lXv -lXinerama])
4165     VLC_ADD_CPPFLAGS([xvmc],[${X_CFLAGS}])
4166   ])
4167   CPPFLAGS="${CPPFLAGS_save}"
4168 fi
4169
4170 dnl
4171 dnl  Check for the Xinerama extension
4172 dnl
4173 AC_ARG_ENABLE(xinerama,
4174   [  --enable-xinerama       Xinerama support (default enabled)])
4175 if test "${enable_xvideo}" != "no" && test "${enable_xinerama}" != "no" &&
4176   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4177    test "${enable_xvideo}" = "yes"); then
4178   ac_cv_have_xinerama="no"
4179   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
4180   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
4181   AC_CHECK_HEADERS(X11/extensions/Xinerama.h,[
4182     AC_CHECK_LIB(Xinerama_pic, XineramaQueryExtension,[
4183       VLC_ADD_LIBS([xvideo],[-lXinerama_pic])
4184       VLC_ADD_LIBS([x11],[-lXinerama_pic])
4185       VLC_ADD_LIBS([glx],[-lXinerama_pic])
4186       ac_cv_have_xinerama="yes"
4187     ],[
4188       AC_CHECK_LIB(Xinerama, XineramaQueryExtension,[
4189         VLC_ADD_LIBS([xvideo],[-lXinerama])
4190         VLC_ADD_LIBS([x11],[-lXinerama])
4191         VLC_ADD_LIBS([glx],[-lXinerama])
4192         ac_cv_have_xinerama="yes"
4193       ])
4194     ])
4195   ])
4196   if test "${ac_cv_have_xinerama}" = "yes"; then
4197     AC_DEFINE(HAVE_XINERAMA, 1, [Define this if you have libXinerama installed])
4198   fi
4199   CFLAGS="${CFLAGS_save}"
4200   CPPFLAGS="${CPPFLAGS_save}"
4201
4202 dnl
4203 dnl  Check for XF86VidMode extension
4204 dnl
4205   ac_cv_have_xf86vidmode="no"
4206   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
4207   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
4208   AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,[
4209     AC_CHECK_LIB(Xxf86vm_pic, XF86VidModeGetViewPort,[
4210       VLC_ADD_LIBS([xvideo],[-lXxf86vm_pic])
4211       VLC_ADD_LIBS([x11],[-lXxf86vm_pic])
4212       VLC_ADD_LIBS([glx],[-lXxf86vm_pic])
4213       VLC_ADD_LIBS([xvmc],[-lXxf86vm_pic])
4214       ac_cv_have_xf86vidmode="yes"
4215     ],[
4216       AC_CHECK_LIB(Xxf86vm, XF86VidModeGetViewPort,[
4217         VLC_ADD_LIBS([xvideo],[-lXxf86vm])
4218         VLC_ADD_LIBS([x11],[-lXxf86vm])
4219         VLC_ADD_LIBS([glx],[-lXxf86vm])
4220         VLC_ADD_LIBS([xvmc],[-lXxf86vm])
4221         ac_cv_have_xf86vidmode="yes"
4222       ])
4223     ])
4224   ],[true],
4225 [#ifdef HAVE_X11_XLIB_H
4226 # include <X11/Xlib.h>
4227 #endif]
4228    )
4229   AS_IF([test "${ac_cv_have_xf86vidmode}" = "yes"],
4230     [AC_DEFINE(HAVE_XF86VIDMODE, 1, [Define this if you have libXxf86vm installed])
4231   ])
4232   CFLAGS="${CFLAGS_save}"
4233   CPPFLAGS="${CPPFLAGS_save}"
4234
4235 fi
4236
4237 dnl
4238 dnl  OpenGL module
4239 dnl  (enabled by default except on beos)
4240 dnl
4241 AC_ARG_ENABLE(opengl,
4242   [  --enable-opengl         OpenGL support (default enabled)])
4243 if test "${enable_opengl}" != "no" &&
4244    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
4245   if test "${SYS}" != "darwin"; then
4246     AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
4247       VLC_ADD_PLUGIN([opengl])
4248       if test "${SYS}" != "mingw32"; then
4249         VLC_ADD_LIBS([opengl],[${X_LIBS} -lGL -lGLU])
4250       else
4251         VLC_ADD_LIBS([opengl],[-lopengl32 -lglu32])
4252       fi
4253     ])
4254   else
4255     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
4256     VLC_ADD_PLUGIN([opengl])
4257     VLC_ADD_LIBS([opengl],[-Wl,-framework,OpenGL])
4258   fi
4259 fi
4260
4261 dnl
4262 dnl  SDL module
4263 dnl
4264 AC_ARG_ENABLE(sdl,
4265   [  --enable-sdl            SDL support (default enabled)])
4266 AC_ARG_ENABLE(sdl-image,
4267   [  --enable-sdl-image      SDL image support (default enabled)])
4268 if test "${enable_sdl}" != "no"
4269 then
4270   SDL_PATH="${PATH}"
4271   AC_ARG_WITH(sdl-config-path,
4272     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
4273     [ if test "${with_sdl_config_path}" != "no"
4274       then
4275         SDL_PATH="${with_sdl_config_path}:${PATH}"
4276       fi ])
4277   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
4278   SDL_CONFIG="${SDL12_CONFIG}"
4279   SDL_HEADER="SDL12/SDL.h"
4280   SDL_IMAGE="SDL12/SDL_image.h"
4281   if test "${SDL_CONFIG}" = "no"
4282   then
4283     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
4284     SDL_CONFIG=${SDL11_CONFIG}
4285     SDL_HEADER="SDL11/SDL.h"
4286     SDL_IMAGE="SDL11/SDL_image.h"
4287   fi
4288   if test "${SDL_CONFIG}" = "no"
4289   then
4290     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
4291     SDL_HEADER="SDL/SDL.h"
4292     SDL_IMAGE="SDL/SDL_image.h"
4293   fi
4294   # check for cross-compiling
4295   SDL_PREFIX=
4296   AC_ARG_WITH(sdl-prefix,
4297     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
4298                                e.g use as:
4299                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
4300   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
4301   then
4302     SDL_PREFIX="--prefix=${with_sdl_prefix}"
4303   fi
4304   if test "${SDL_CONFIG}" != "no"
4305   then
4306     # SDL on Darwin is heavily patched and can only run SDL_image
4307     if test "${SYS}" != "darwin" -a "${SYS}" != "mingw32"; then
4308       VLC_ADD_PLUGIN([vout_sdl])
4309       VLC_ADD_PLUGIN([aout_sdl])
4310     fi
4311     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
4312     VLC_ADD_LIBS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
4313     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
4314     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
4315       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
4316       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
4317           As a last resort we also test for SDL.h presence),
4318       [ AC_MSG_ERROR([The development package for SDL is not installed.
4319 Please install it and try again. Alternatively you can also configure with
4320 --disable-sdl.])
4321       ])])
4322     AS_IF([ test "${enable_sdl_image}" != "no"],[
4323       AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
4324         <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
4325         VLC_ADD_PLUGIN([sdl_image])
4326         AC_CHECK_LIB(png, png_set_rows,
4327           [VLC_ADD_LIBS([sdl_image],[-lpng -lz])],[],[-lz])
4328         AC_CHECK_LIB(jpeg, jpeg_start_decompress,
4329           [VLC_ADD_LIBS([sdl_image],[-ljpeg])])
4330         AC_CHECK_LIB(tiff, TIFFClientOpen,
4331           [VLC_ADD_LIBS([sdl_image],[-ltiff])])
4332         VLC_ADD_LIBS([sdl_image], [-lSDL_image])],
4333         [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
4334             As a last resort we also test for SDL_image.h presence),
4335         [ AC_MSG_WARN([The development package for SDL_image is not installed.
4336   You should install it alongside your SDL package.])
4337         ])])
4338     ])
4339     CPPFLAGS="${CPPFLAGS_save}"
4340     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
4341     then
4342       AC_MSG_ERROR([The development package for SDL is not installed.
4343 Please install it and try again. Alternatively you can also configure with
4344 --disable-sdl.])
4345     fi
4346
4347   elif test "${enable_sdl}" =  "yes"
4348   then
4349     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
4350 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
4351     ])
4352   fi
4353 fi
4354
4355 dnl
4356 dnl  freetype module
4357 dnl
4358 AC_ARG_ENABLE(freetype,
4359   [  --enable-freetype       freetype support (default enabled)])
4360 AC_ARG_ENABLE(fribidi,
4361   [  --enable-fribidi        fribidi support (default enabled)])
4362 if test "${enable_freetype}" != "no"
4363 then
4364    PKG_CHECK_MODULES(FREETYPE, freetype2,[
4365       VLC_ADD_PLUGIN([freetype])
4366       have_freetype=yes
4367       VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
4368       VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
4369       if test "${SYS}" = "mingw32"; then
4370         VLC_ADD_LIBS([freetype skins2],[-lxml2])
4371      fi
4372     AC_CHECK_HEADERS(fontconfig/fontconfig.h,
4373       [VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
4374        VLC_ADD_LIBS([freetype],[-lfontconfig])])
4375     AC_CHECK_HEADERS(Carbon/Carbon.h,
4376       [VLC_ADD_LDFLAGS([freetype],[-Wl,-framework,Carbon])])
4377   ],[
4378   have_freetype=no
4379   AS_IF([ test "${enable_freetype}" =  "yes"],[
4380     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
4381 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
4382       ])
4383     ])
4384   ])
4385
4386   dnl fribidi support
4387   if test "${enable_fribidi}" != "no"
4388   then
4389     PKG_CHECK_MODULES(FRIBIDI, fribidi, [
4390       VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
4391       VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
4392     ])
4393     fi
4394 fi
4395
4396 dnl
4397 dnl  libxml2 module
4398 dnl
4399 AC_ARG_ENABLE(libxml2,
4400   [  --enable-libxml2        libxml2 support (default enabled)])
4401 if test "${enable_libxml2}" != "no"
4402 then
4403   XML2_PATH="${PATH}"
4404   AC_ARG_WITH(xml2-config-path,
4405     [    --with-xml2-config-path=PATH xml2-config path (default search in \$PATH)],
4406     [ if test "${with_xml2_config_path}" != "no"; then
4407         XML2_PATH="${with_xml2_config_path}:${PATH}"
4408       fi ])
4409   AC_PATH_PROG(XML2_CONFIG, xml2-config, no, ${XML2_PATH})
4410   if test "${XML2_CONFIG}" != "no"; then
4411     VLC_ADD_CPPFLAGS([xml],[`${XML2_CONFIG} --cflags`])
4412     VLC_ADD_LIBS([xml],[`${XML2_CONFIG} --libs`])
4413     dnl depends on the xmlTextReader extension
4414     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_xml}"
4415     LDFLAGS="${LDFLAGS_save} ${LIBS_xml}"
4416     AC_CHECK_LIB(xml2,xmlTextReaderConstName,[
4417       AC_EGREP_HEADER(xmlTextReaderConstName,libxml/xmlreader.h,[
4418         VLC_ADD_PLUGIN([xml]) ],[
4419           AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
4420           if test "${enable_xml2}" = "yes"; then
4421             AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
4422           fi])
4423        ],[
4424       AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
4425       if test "${enable_xml2}" = "yes"; then
4426         AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
4427       fi])
4428     LDFLAGS="${LDFLAGS_save}"
4429     CPPFLAGS="${CPPFLAGS_save}"
4430   else
4431     if test "${enable_xml2}" = "yes"; then
4432       AC_MSG_ERROR([Could not find libxml2])
4433     fi
4434   fi
4435 fi
4436
4437 dnl
4438 dnl  SVG module
4439 dnl
4440 AC_ARG_ENABLE(svg,
4441   [  --enable-svg            SVG support (default disabled)])
4442 if test "${enable_svg}" = "yes"
4443 then
4444   PKG_CHECK_MODULES(SVG, 
4445         librsvg-2.0 >= 2.9.0,
4446         [
4447           VLC_ADD_LIBS([svg],[$SVG_LIBS])
4448           VLC_ADD_CFLAGS([svg],[$SVG_CFLAGS])
4449           VLC_ADD_PLUGIN([svg]) ],
4450         [AC_MSG_WARN(SVG library not found)])
4451 fi
4452
4453 dnl
4454 dnl Snapshot vout module (with cache)
4455 dnl
4456 AC_ARG_ENABLE(snapshot,
4457   [  --enable-snapshot       snapshot module (default disabled)])
4458 if test "${enable_snapshot}" = "yes"
4459 then
4460   VLC_ADD_PLUGIN([snapshot])
4461 fi
4462
4463 dnl
4464 dnl  Qt Embedded module
4465 dnl  (disabled by default)
4466 dnl
4467 AC_ARG_ENABLE(qte,
4468   [  --enable-qte            QT Embedded support (default disabled)])
4469 if test "${enable_qte}" = "yes"
4470 then
4471   AC_ARG_WITH(qte,
4472   [    --with-qte=PATH       Qt Embedded headers and libraries])
4473   if test "${with_qte}" != "no" -a -n "${with_qte}"
4474   then
4475     VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4476     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])
4477   else
4478     VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4479     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
4480   fi
4481   VLC_ADD_PLUGIN([qte])
4482   NEED_QTE_MAIN=yes
4483   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4484   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4485     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4486   ] )
4487   CPPFLAGS="${CPPFLAGS_save}"
4488 fi
4489
4490 dnl
4491 dnl  Qt Video output module
4492 dnl  (disabled by default)
4493 dnl
4494 dnl AC_ARG_ENABLE(qt_video,
4495 dnl   [  --enable-qt_video            QT Video Output support (default disabled)])
4496 dnl if test "${enable_qt_video}" = "yes"
4497 dnl then
4498 dnl  VLC_ADD_PLUGIN([qt_video])
4499 dnl  VLC_ADD_LIBS([qt_video],[-L${QTDIR}/lib])
4500 dnl  LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt_video}"
4501 dnl   AC_CHECK_LIB(qt-mt,main,[
4502 dnl    VLC_ADD_LIBS([qt_video],[-lqt-mt])
4503 dnl  ],[
4504 dnl    AC_CHECK_LIB(qt,main,[
4505 dnl      VLC_ADD_LIBS([qt_video],[-lqt])
4506 dnl    ])
4507 dnl  ])
4508 dnl  NEED_QTE_MAIN=yes
4509 dnl  LDFLAGS="${LDFLAGS_save}"
4510 dnl  VLC_ADD_CXXFLAGS([qt_video],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
4511 dnl fi
4512
4513 dnl
4514 dnl Roku HD1000 Video output module
4515 dnl
4516 AC_ARG_ENABLE(hd1000v,
4517   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
4518 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
4519   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4520    test "${enable_hd1000v}" = "yes"); then
4521   AC_LANG_PUSH([C++])
4522   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
4523   [
4524     can_build_roku="yes"
4525   ],
4526   [
4527     can_build_roku="no"
4528     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
4529   ])
4530   if test "$can_build_roku" = "yes"
4531   then
4532     VLC_ADD_PLUGIN([hd1000v])
4533     VLC_ADD_LIBS([hd1000v],[-lCascade -ldvbpsi -lmad])
4534   fi
4535   AC_LANG_POP([C++])
4536 fi
4537
4538 dnl
4539 dnl  Windows DirectX module
4540 dnl
4541
4542 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4543 then
4544   VLC_ADD_PLUGIN([panoramix])
4545 fi
4546
4547 AC_ARG_ENABLE(directx,
4548   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
4549 if test "${enable_directx}" != "no"
4550 then
4551   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4552   then
4553     AC_ARG_WITH(directx,
4554     [    --with-directx=PATH   Win32 DirectX headers])
4555     if test -z "${with_directx}"
4556     then
4557       AC_CHECK_HEADERS(ddraw.h,
4558       [ VLC_ADD_PLUGIN([vout_directx])
4559         VLC_ADD_PLUGIN([aout_directx])
4560         VLC_ADD_LIBS([vout_directx],[-lgdi32])
4561       ])
4562       AC_CHECK_HEADERS(GL/gl.h,
4563       [ VLC_ADD_PLUGIN([glwin32])
4564         VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
4565       ])
4566       AC_CHECK_HEADERS(d3d9.h,
4567       [ VLC_ADD_PLUGIN([direct3d])
4568         VLC_ADD_LIBS([direct3d],[-lgdi32])
4569       ])
4570     else
4571       AC_MSG_CHECKING(for directX headers in ${with_directx})
4572       if test -f ${with_directx}/ddraw.h
4573       then
4574         VLC_ADD_PLUGIN([vout_directx])
4575         VLC_ADD_PLUGIN([aout_directx])
4576         VLC_ADD_CPPFLAGS([vout_directx aout_directx],[-I${with_directx}])
4577         VLC_ADD_LIBS([vout_directx],[-lgdi32])
4578         AC_MSG_RESULT(yes)
4579       else
4580         AC_MSG_RESULT(no)
4581         AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
4582       fi
4583     fi
4584   fi
4585 fi
4586
4587 dnl
4588 dnl  Linux framebuffer module
4589 dnl
4590 AC_ARG_ENABLE(fb,
4591   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
4592     if test "${enable_fb}" != "no"
4593     then
4594       AC_CHECK_HEADERS(linux/fb.h, [
4595         VLC_ADD_PLUGIN([fb])
4596       ])
4597     fi
4598
4599 dnl
4600 dnl  Linux MGA module
4601 dnl
4602 AC_ARG_ENABLE(mga,
4603   [  --enable-mga            Linux kernel Matrox support (default disabled)],
4604   [ if test "${enable_mga}" = "yes"
4605     then
4606       VLC_ADD_PLUGIN([mga])
4607     fi ])
4608
4609 dnl
4610 dnl  SVGAlib module
4611 dnl
4612 AC_ARG_ENABLE(svgalib,
4613   [  --enable-svgalib        SVGAlib support (default disabled)])
4614 if test "${enable_svgalib}" = "yes"
4615 then
4616   VLC_ADD_PLUGIN([svgalib])
4617   VLC_ADD_LIBS([svgalib],[-lvgagl -lvga])
4618 fi
4619
4620 dnl
4621 dnl  DirectFB module
4622 dnl  try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
4623 dnl  TODO: support for static linking
4624 dnl
4625 AC_ARG_ENABLE(directfb,
4626   [  --enable-directfb       DirectFB support (default disabled)])
4627 AC_ARG_WITH(directfb, 
4628   [    --with-directfb=PATH  path to DirectFB headers and libraries])
4629
4630 if test "${enable_directfb}" = "yes"; then
4631     have_directfb="false"
4632     CPPFLAGS_mydirectfb=
4633     LIBS_mydirectfb=
4634     if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
4635         dnl Trying the given location
4636         CPPFLAGS_save="${CPPFLAGS}"
4637         LIBS_save="${LIBS}"
4638
4639         CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
4640         LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/"
4641         LIBS_new="${LIBS_new} -L${with_directfb}/src/.libs/"
4642
4643         CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
4644         LIBS="${LIBS} ${LIBS_new}"
4645
4646         dnl FIXME: too obscure
4647         AC_CHECK_HEADER([directfb.h], [
4648             AC_CHECK_LIB([direct],[direct_initialize], [
4649                 AC_CHECK_LIB([fusion], [fusion_enter], [
4650                     AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
4651                 ], have_directfb="false")
4652             ], have_directfb="false")
4653         ], have_directfb="false")
4654
4655         dnl Restore flags
4656         CPPFLAGS="${CPPFLAGS_save}"
4657         LIBS="${LIBS_save}"
4658
4659         if test "${have_directfb}" = "true"; then
4660             LIBS_mydirectfb="${LIBS_new} -lz -ldl -ldirectfb -lfusion -ldirect -lpthread"
4661             CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
4662         fi
4663     else 
4664         dnl Look for directfb-config
4665         AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
4666         if test "${DIRECTFB_CONFIG}" != "no"; then
4667             CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
4668             LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
4669             have_directfb="true"
4670         else 
4671             dnl Trying with pkg-config
4672             PKG_CHECK_MODULES(DIRECTFB, directfb, [
4673                 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
4674                 LIBS_mydirectfb="${DIRECTFB_LIBS}"
4675                 have_directfb="true"
4676                 ], [have_directfb="false"])
4677         fi
4678     fi
4679     if test "${have_directfb}" = "true"; then
4680         VLC_ADD_PLUGIN([directfb])
4681         VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
4682         VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
4683     else 
4684         AC_MSG_ERROR([cannot find directfb headers and/or libraries ])
4685     fi
4686 fi
4687  
4688
4689
4690 dnl
4691 dnl  GGI module
4692 dnl
4693 AC_ARG_ENABLE(ggi,
4694   [  --enable-ggi            GGI support (default disabled)])
4695 if test "${enable_ggi}" = "yes"
4696 then
4697   VLC_ADD_PLUGIN([ggi])
4698   VLC_ADD_LIBS([ggi],[-lggi])
4699   AC_ARG_WITH(ggi,
4700     [    --with-ggi=PATH       path to libggi],
4701     [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
4702       then
4703         VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
4704         VLC_ADD_LIBS([ggi],[-L${with_ggi}/lib])
4705       fi ])
4706 fi
4707
4708 dnl
4709 dnl  Glide module
4710 dnl
4711 AC_ARG_ENABLE(glide,
4712   [  --enable-glide          Glide (3dfx) support (default disabled)])
4713 if test "${enable_glide}" = "yes"
4714 then
4715   CFLAGS_save="${CFLAGS}"
4716   AC_ARG_WITH(glide,
4717     [    --with-glide=PATH     path to libglide],
4718     [ if test "${with_glide}" != "no" -a -n "${with_glide}"
4719       then
4720         VLC_ADD_CPPFLAGS([glide],[-I${with_glide}/include])
4721         VLC_ADD_LIBS([glide],[-L${with_glide}/lib])
4722         CFLAGS="$CFLAGS -I${with_glide}/include"
4723     fi ])
4724    CFLAGS="$CFLAGS -I/usr/include/glide"
4725    AC_CHECK_HEADER(glide.h,[   
4726       VLC_ADD_PLUGIN([glide])
4727       VLC_ADD_LIBS([glide],[-lglide2x -lm])
4728       VLC_ADD_CPPFLAGS([glide],[-I/usr/include/glide])
4729     ],[
4730       AC_MSG_ERROR([You don't have libglide. Install it or do not use --enable-glide])
4731      ])
4732    CFLAGS="${CFLAGS_save}"
4733 fi
4734
4735 dnl
4736 dnl  AA plugin
4737 dnl
4738 AC_ARG_ENABLE(aa,
4739   [  --enable-aa             aalib output (default disabled)])
4740 if test "${enable_aa}" = "yes"
4741 then
4742   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
4743   if test "${have_aa}" = "true"
4744   then
4745     VLC_ADD_PLUGIN([aa])
4746     VLC_ADD_LIBS([aa],[-laa])
4747   fi
4748 fi
4749
4750 dnl
4751 dnl  libcaca plugin
4752 dnl
4753 AC_ARG_ENABLE(caca,
4754   [  --enable-caca           libcaca output (default disabled)])
4755 if test "${enable_caca}" = "yes"
4756 then
4757   CACA_PATH="${PATH}"
4758   AC_ARG_WITH(caca-config-path,
4759     [    --with-caca-config-path=PATH caca-config path (default search in \$PATH)],
4760     [ if test "${with_caca_config_path}" != "no"
4761       then
4762         CACA_PATH="${with_caca_config_path}:${PATH}"
4763       fi ])
4764   AC_PATH_PROG(CACA_CONFIG, caca-config, no, ${CACA_PATH})
4765   if test "${CACA_CONFIG}" != "no"
4766   then
4767     VLC_ADD_PLUGIN([caca])
4768     VLC_ADD_CFLAGS([caca],[`${CACA_CONFIG} --cflags`])
4769     VLC_ADD_LIBS([caca],[`${CACA_CONFIG} --plugin-libs`])
4770     AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include <caca.h>
4771                                         caca_event_t ev;]],
4772                                         [[ev.type = 0;]]
4773                        )],
4774                        [],
4775       [AC_DEFINE(CACA_EVENT_OPAQUE, [1], ["Define if struct caca_event is opaque and must not be accessed directly"])]
4776     )
4777   fi
4778 fi
4779
4780 dnl
4781 dnl  win32 GDI plugin
4782 dnl
4783 AC_ARG_ENABLE(wingdi,
4784   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
4785 if test "${enable_wingdi}" != "no"; then
4786   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4787     VLC_ADD_PLUGIN([wingdi])
4788     VLC_ADD_LIBS([wingdi],[-lgdi32])
4789   fi
4790   if test "${SYS}" = "mingwce"; then
4791     VLC_ADD_PLUGIN([wingdi])
4792     VLC_ADD_PLUGIN([wingapi])
4793   fi
4794 fi
4795
4796 dnl
4797 dnl  Audio plugins
4798 dnl
4799
4800 AC_ARG_WITH(,[Audio plugins:])
4801
4802 dnl
4803 dnl  OSS /dev/dsp module (enabled by default except on win32)
4804 dnl
4805 AC_ARG_ENABLE(oss,
4806   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
4807
4808 if test "${enable_oss}" != "no" &&
4809   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4810    test "${enable_oss}" = "yes")
4811 then
4812   AC_CHECK_HEADERS(soundcard.h sys/soundcard.h machine/soundcard.h, [
4813     VLC_ADD_PLUGIN([oss])
4814     AC_CHECK_LIB(ossaudio,main,VLC_ADD_LIBS([oss],[-lossaudio]))
4815   ])
4816 fi
4817
4818 dnl
4819 dnl  Esound module
4820 dnl
4821 AC_ARG_ENABLE(esd,
4822   [  --enable-esd            Esound library support (default disabled)],
4823   [if test "${enable_esd}" = "yes"
4824    then
4825      AC_PATH_PROG(ESD_CONFIG, esd-config, no)
4826      if test "${ESD_CONFIG}" != "no"
4827      then
4828        VLC_ADD_PLUGIN([esd])
4829        VLC_ADD_CFLAGS([esd],[`${ESD_CONFIG} --cflags`])
4830        VLC_ADD_LIBS([esd],[`${ESD_CONFIG} --libs`])
4831      fi
4832    fi])
4833
4834 dnl
4835 dnl  Pulseaudio module
4836 dnl
4837 AC_ARG_ENABLE(pulse,
4838   [  --enable-pulse          Pulseaudio support (default enabled)])
4839   if test "${enable_pulse}" != "no"
4840    then
4841      PKG_CHECK_MODULES(PULSE, libpulse >= 0.9.8,
4842        [ VLC_ADD_PLUGIN([pulse])
4843         VLC_ADD_CFLAGS([pulse],[${PULSE_CFLAGS}])
4844         VLC_ADD_LDFLAGS([pulse],[${PULSE_LIBS}])],
4845        [AC_MSG_WARN(pulsaudio library not found)])
4846    fi
4847
4848 dnl
4849 dnl  Portaudio module
4850 dnl
4851 AC_ARG_ENABLE(portaudio,
4852   [  --enable-portaudio      Portaudio library support (default disabled)],
4853   [if test "${enable_portaudio}" = "yes"
4854    then
4855      VLC_ADD_PLUGIN([portaudio])
4856      VLC_ADD_CXXFLAGS([portaudio],[])
4857      if test "${SYS}" = "mingw32"; then
4858         VLC_ADD_LIBS([portaudio],[-lportaudio -lwinmm -lole32])
4859      else
4860         VLC_ADD_LIBS([portaudio],[-lportaudio])
4861      fi
4862    fi])
4863
4864 dnl
4865 dnl  aRts module -- broken (freeze wxWidgets)
4866 dnl
4867 AC_ARG_ENABLE(arts,
4868  [  --enable-arts           aRts sound server (default disabled)],
4869  [if test "${enable_arts}" = "yes"
4870   then
4871     AC_PATH_PROG(ARTS_CONFIG, artsc-config, no)
4872     if test "${ARTS_CONFIG}" != "no"
4873     then
4874       VLC_ADD_PLUGIN([arts])
4875       VLC_ADD_CFLAGS([arts],[`${ARTS_CONFIG} --cflags`])
4876       VLC_ADD_LIBS([arts],[`${ARTS_CONFIG} --libs `])
4877     fi
4878   fi])
4879
4880 dnl
4881 dnl  ALSA module
4882 dnl
4883 AC_ARG_ENABLE(alsa,
4884   [  --enable-alsa           ALSA sound support for Linux (default enabled)])
4885 if test "${enable_alsa}" != "no"
4886 then
4887   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
4888   if test "${have_alsa}" = "true"
4889   then
4890     CFLAGS="${CFLAGS_save}"
4891     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
4892                     #define ALSA_PCM_NEW_SW_PARAMS_API
4893                     #include <alsa/asoundlib.h>],
4894        [snd_pcm_hw_params_get_period_time(0,0,0);],
4895         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
4896     VLC_ADD_PLUGIN([alsa])
4897     VLC_ADD_LIBS([alsa],[-lasound -lm -ldl])
4898   else
4899     if test "${enable_alsa}" = "yes"; then
4900       AC_MSG_ERROR([Could not find ALSA development headers])
4901     fi
4902   fi
4903 fi
4904
4905 dnl
4906 dnl  win32 waveOut plugin
4907 dnl
4908 AC_ARG_ENABLE(waveout,
4909   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
4910 if test "${enable_waveout}" != "no"; then
4911   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4912     VLC_ADD_PLUGIN([waveout])
4913     VLC_ADD_LIBS([waveout],[-lwinmm])
4914   fi
4915   if test "${SYS}" = "mingwce"; then
4916     VLC_ADD_PLUGIN([waveout])
4917   fi
4918 fi
4919
4920 dnl
4921 dnl  CoreAudio plugin
4922 dnl
4923 AC_ARG_ENABLE(macosx-audio,
4924   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
4925 if test "${enable_macosx-audio}" != "no" &&
4926   (test "${SYS}" = "darwin" || test "${enable_macosx-audio}" = "yes")
4927 then
4928   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h, 
4929     [ VLC_ADD_PLUGIN([auhal])
4930       VLC_ADD_LDFLAGS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
4931     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
4932 fi
4933
4934 dnl
4935 dnl  Roku HD1000 audio
4936 dnl
4937 AC_ARG_ENABLE(hd1000a,
4938   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
4939 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
4940   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4941    test "${enable_hd1000a}" = "yes")
4942 then
4943   AC_LANG_PUSH([C++])
4944   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
4945     VLC_ADD_PLUGIN([hd1000a])
4946     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LIBS([hd1000a],[-lHDMachineX225]))  ])
4947   AC_LANG_POP([C++])
4948 fi
4949
4950 dnl
4951 dnl  JACK modules
4952 dnl
4953 AC_ARG_ENABLE(jack,
4954  [  --enable-jack           JACK audio I/O modules (default disabled)],,
4955  [enable_jack="no"])
4956
4957 AS_IF([test "${enable_jack}" != "no"], [
4958   AC_CHECK_HEADERS(jack/jack.h, [
4959     VLC_ADD_PLUGIN([access_jack])
4960     VLC_ADD_PLUGIN([jack])
4961     VLC_ADD_LIBS([access_jack jack],[-ljack])
4962   ],[AC_MSG_ERROR([cannot find JACK headers])])
4963 ])
4964
4965 dnl
4966 dnl  CyberLink for C++ UPnP stack
4967 dnl
4968 AC_ARG_ENABLE(cyberlink,
4969   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
4970   AS_IF([test "${enable_cyberlink}" = "yes" ], [
4971   AC_ARG_WITH(cyberlink-tree,
4972     [    --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
4973
4974   dnl
4975   dnl test for --with-cyberlink-tree
4976   dnl
4977   AS_IF([test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""], [
4978     AC_LANG_PUSH(C++)
4979     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
4980     AS_IF([test -z "${real_cyberlink_tree}"], [
4981       dnl  The given directory can't be found
4982       AC_MSG_RESULT(no)
4983       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
4984     ])
4985     CPPFLAGS_save="${CPPFLAGS}"
4986     CPPFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
4987     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_cyberlink}"
4988     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
4989       [ VLC_ADD_CXXFLAGS([upnp_cc], [${CPPFLAGS_cyberlink}])
4990         VLC_ADD_PLUGIN([upnp_cc]) 
4991       ],[
4992         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
4993       ])
4994     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
4995     AS_IF([test -f "${real_cyberlink_tree}/lib/unix/libclink.a"], [
4996       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
4997       dnl The mere fact that we have to make such an ugly check sucks
4998       AC_MSG_CHECKING(for XML parser to link CyberLink with)
4999       LIBS_save="$LIBS"
5000       LIBS_cclink="no"
5001       for l in "`xml2-config --libs`" -lexpat -lxerces-c; do
5002         LIBS="$LIBS_save ${real_cyberlink_tree}/lib/unix/libclink.a -lpthread $l"
5003         AC_LINK_IFELSE([AC_LANG_PROGRAM([
5004 #include <cybergarage/upnp/media/player/MediaPlayer.h>
5005 using namespace CyberLink;
5006
5007 class testclass : public SearchResponseListener, public MediaPlayer
5008 {
5009     virtual void deviceSearchResponseReceived( SSDPPacket *)
5010     {
5011     }
5012
5013     public:
5014       testclass (void)
5015       {
5016         addSearchResponseListener (this);
5017         start ();
5018       }
5019 };
5020 ],[testclass l;])],[LIBS_cclink="$l"])
5021       done
5022       LIBS="${LIBS_save}"
5023       dnl should not happen - otherwise this needs fixing - hence FAILURE
5024       AS_IF([test "${LIBS_cclink}" = "no"],
5025         [AC_MSG_FAILURE([cannot find XML parser for CyberLink])])
5026       AC_MSG_RESULT([${LIBS_cclink}])
5027       VLC_ADD_LIBS([upnp_cc], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}])
5028     ], [
5029       AC_MSG_RESULT(no)
5030       AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
5031     ])
5032     CPPFLAGS="${CPPFLAGS_save}"
5033     AC_LANG_POP([C++])
5034   ])
5035 ])
5036
5037 dnl
5038 dnl UPnP Plugin (Intel SDK)
5039 dnl
5040 AC_ARG_ENABLE(upnp,
5041   [  --enable-upnp           Intel UPnP SDK (default enabled)])
5042
5043 VLC_ADD_CXXFLAGS([upnp_intel], [ ])
5044 AS_IF([test "x${enable_upnp}" != "xno"], [
5045   AC_CHECK_LIB([upnp], [UpnpInit], [has_upnp="yes"], [has_upnp="no"], [-lpthread])
5046   AS_IF([test "x${enable_upnp}" != "x" && test "${has_upnp}" = "no"], [
5047     AC_MSG_ERROR([cannot find Intel UPnP SDK (libupnp)])
5048   ])
5049   AS_IF([test "${has_upnp}" = "yes"], [
5050     VLC_ADD_LIBS([upnp_intel], [-lupnp -lixml])
5051   ])
5052 ], [
5053   has_upnp="no"
5054 ])
5055
5056 AS_IF([test "${has_upnp}" = "yes"], [
5057   VLC_ADD_PLUGIN([upnp_intel])
5058 ])
5059
5060
5061 dnl
5062 dnl  Interface plugins
5063 dnl
5064
5065 AC_ARG_WITH(,[Interface plugins:])
5066
5067 dnl special case for BeOS
5068 if test "${SYS}" = "beos"
5069 then
5070     VLC_ADD_BUILTINS([beos])
5071 fi
5072
5073 dnl
5074 dnl Skins2 module
5075 dnl
5076 AC_ARG_ENABLE(skins2,
5077   [  --enable-skins2         Skins2 interface module (default disabled)])
5078 if test "${enable_skins2}" = "yes" ||
5079   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
5080    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
5081
5082   dnl test for the required libraries
5083   skins2_missing_lib="no"
5084
5085   dnl freetype
5086   if test "${have_freetype}" != "yes"; then
5087     skins2_missing_lib="yes"
5088     if test "${enable_skins2}" = "yes"; then
5089       AC_MSG_ERROR([Could not find freetype (required for skins2)])
5090     fi
5091   fi
5092
5093   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"); then
5094     VLC_ADD_PLUGIN([skins2])
5095     ALIASES="${ALIASES} svlc"
5096     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
5097     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
5098     VLC_ADD_LIBS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
5099
5100   else if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "darwin"); then
5101     VLC_ADD_PLUGIN([skins2])
5102     ALIASES="${ALIASES} svlc"
5103     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
5104     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
5105     VLC_ADD_LDFLAGS([skins2],[-Wl,-framework,Carbon])
5106
5107   else if test "${skins2_missing_lib}" = "no"; then
5108     VLC_ADD_PLUGIN([skins2])
5109     ALIASES="${ALIASES} svlc"
5110     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} -DX11_SKINS])
5111     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
5112     VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lX11])
5113   fi fi fi
5114 fi
5115 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes"])
5116
5117 dnl dnl
5118 dnl dnl  Gtk+ module
5119 dnl dnl
5120 dnl AC_ARG_ENABLE(gtk,
5121 dnl   [  --enable-gtk            Gtk+ support (default enabled)])
5122 dnl if test "${enable_gtk}" != "no"
5123 dnl then
5124 dnl   GTK_PATH="${PATH}"
5125 dnl   AC_ARG_WITH(gtk-config-path,
5126 dnl     [    --with-gtk-config-path=PATH gtk-config path (default search in \$PATH)],
5127 dnl     [ if test "${with_gtk_config_path}" != "no"
5128 dnl       then
5129 dnl         GTK_PATH="${with_gtk_config_path}:${PATH}"
5130 dnl       fi ])
5131 dnl   # look for gtk-config
5132 dnl   AC_PATH_PROG(GTK12_CONFIG, gtk12-config, no, ${GTK_PATH})
5133 dnl   GTK_CONFIG=${GTK12_CONFIG}
5134 dnl   if test "${GTK_CONFIG}" = "no"
5135 dnl   then
5136 dnl     AC_PATH_PROG(GTK_CONFIG, gtk-config, no, ${GTK_PATH})
5137 dnl   fi
5138 dnl   if test "${GTK_CONFIG}" != "no"
5139 dnl   then
5140 dnl     if expr 1.2.0 \> `${GTK_CONFIG} --version` >/dev/null
5141 dnl     then
5142 dnl       AC_MSG_ERROR([Your development package for Gtk+ is too old, you need at least version 1.2.0. Please upgrade and try again. Alternatively you can also configure with --disable-gtk.])
5143 dnl     fi
5144 dnl     if test "${SYS}" != "mingw32"; then
5145 dnl       VLC_ADD_CFLAGS([gtk],[`${GTK_CONFIG} --cflags gtk gthread`])
5146 dnl       VLC_ADD_LIBS([gtk],[`${GTK_CONFIG} --libs gtk gthread | sed 's,-rdynamic,,'`])
5147 dnl     else
5148 dnl       VLC_ADD_CFLAGS([gtk],[`${GTK_CONFIG} --cflags gtk`])
5149 dnl       VLC_ADD_LIBS([gtk],[`${GTK_CONFIG} --libs gtk | sed 's,-rdynamic,,'`])
5150 dnl     fi
5151 dnl     # now look for the gtk.h header
5152 dnl     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gtk}"
5153 dnl     ac_cv_gtk_headers=yes
5154 dnl     AC_CHECK_HEADERS(gtk/gtk.h glib.h gdk/gdk.h, , [
5155 dnl       ac_cv_gtk_headers=no
5156 dnl       echo "Cannot find gtk development headers."
5157 dnl     ])
5158 dnl     if test "${ac_cv_gtk_headers}" = "yes"
5159 dnl     then
5160 dnl       VLC_ADD_PLUGIN([gtk])
5161 dnl       if test "${SYS}" != "mingw32"; then
5162 dnl         NEED_GTK_MAIN=yes
5163 dnl       fi
5164 dnl       ALIASES="${ALIASES} gvlc"
5165 dnl     fi
5166 dnl     CPPFLAGS="${CPPFLAGS_save}"
5167 dnl   fi
5168 dnl fi
5169 dnl 
5170 dnl
5171 dnl  Gtk+2 module ! Disabled for now as it is unusable and confuses users
5172 dnl
5173 dnl AC_ARG_ENABLE(gtk2,
5174 dnl   [  --enable-gtk2           Gtk2 support (default disabled)])
5175 dnl if test "${enable_gtk2}" = "yes"
5176 dnl then
5177 dnl   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
5178 dnl   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
5179 dnl   VLC_ADD_LIBS([gtk2],[${GTK2_LIBS}])
5180 dnl   VLC_ADD_PLUGIN([gtk2])
5181 dnl   if test "${SYS}" != "mingw32"; then
5182 dnl     NEED_GTK2_MAIN=yes
5183 dnl   fi
5184 dnl fi
5185
5186 dnl
5187 dnl  PDA Gtk+2 module
5188 dnl
5189 AC_ARG_ENABLE(pda,
5190   [  --enable-pda            PDA interface needs Gtk2 support (default disabled)])
5191 if test "${enable_pda}" = "yes"
5192 then
5193   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
5194   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
5195   VLC_ADD_LIBS([gtk2],[${GTK2_LIBS}])
5196   VLC_ADD_CFLAGS([pda],[${GTK2_CFLAGS} ${CFLAGS_pda}])
5197   VLC_ADD_LIBS([pda],[${LDFLAGS_pda}])
5198   VLC_ADD_LIBS([pda],[${GTK2_LIBS}])
5199   VLC_ADD_PLUGIN([pda])
5200   if test "${SYS}" != "mingw32"; then
5201     NEED_GTK2_MAIN=yes
5202   fi
5203 fi
5204 AM_CONDITIONAL(BUILD_PDA, [test "${enable_pda}" = "yes"])
5205
5206 dnl dnl
5207 dnl dnl  Gnome module
5208 dnl dnl
5209 dnl AC_ARG_ENABLE(gnome,
5210 dnl   [  --enable-gnome          Gnome interface support (default disabled)],
5211 dnl   [if test "${enable_gnome}" = "yes"; then
5212 dnl     # look for gnome-config
5213 dnl     AC_PATH_PROG(GNOME_CONFIG, gnome-config, no)
5214 dnl     if test -x ${GNOME_CONFIG}
5215 dnl     then
5216 dnl        VLC_ADD_CFLAGS([gnome],[`${GNOME_CONFIG} --cflags gtk gnomeui`])
5217 dnl        VLC_ADD_LIBS([gnome],[`${GNOME_CONFIG} --libs gnomeui | sed 's,-rdynamic,,'`])
5218 dnl     fi
5219 dnl     # now look for the gnome.h header
5220 dnl     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gnome}"
5221 dnl     AC_CHECK_HEADERS(gnome.h, [
5222 dnl       VLC_ADD_PLUGIN([gnome])
5223 dnl       NEED_GTK_MAIN=yes
5224 dnl       NEED_GNOME_MAIN=yes
5225 dnl       ALIASES="${ALIASES} gnome-vlc"
5226 dnl       dnl We need this because of some moronic gnomesupport.h flavours
5227 dnl       AC_MSG_CHECKING(for strndup in gnome.h)
5228 dnl       AC_EGREP_HEADER(strndup,gnome.h,[
5229 dnl         AC_MSG_RESULT(yes)
5230 dnl         AC_DEFINE(STRNDUP_IN_GNOME_H, 1,
5231 dnl                   Define if <gnome.h> defines strndup.)],[
5232 dnl         AC_MSG_RESULT(no)])
5233 dnl      ],[
5234 dnl       AC_MSG_ERROR([Can't find gnome headers. Please install the gnome
5235 dnl developement tools or remove the --enable-gnome option])
5236 dnl      ])
5237 dnl     CPPFLAGS="${CPPFLAGS_save}"
5238 dnl   fi])
5239
5240 dnl
5241 dnl  Gnome2 module ! Disabled for know as it is unuseable and confuses users
5242 dnl
5243 dnl AC_ARG_ENABLE(gnome2,
5244 dnl   [  --enable-gnome2         Gnome2 support (default disabled)])
5245 dnl if test "${enable_gnome2}" = "yes"
5246 dnl then
5247 dnl   PKG_CHECK_MODULES(GNOME2, [libgnomeui-2.0])
5248 dnl   VLC_ADD_CFLAGS([gnome2],[${GNOME2_CFLAGS}])
5249 dnl   VLC_ADD_LIBS([gnome2],[${GNOME2_LIBS}])
5250 dnl   VLC_ADD_PLUGIN([gnome2])
5251 dnl   if test "${SYS}" != "mingw32"; then
5252 dnl     NEED_GNOME2_MAIN=yes
5253 dnl   fi
5254 dnl fi
5255
5256 dnl
5257 dnl  wxWidgets module
5258 dnl
5259 AC_ARG_ENABLE(wxwidgets,
5260   [  --enable-wxwidgets      wxWidgets support (default disabled)])
5261
5262 if test "${enable_wxwidgets}" = "yes"
5263 then
5264   AC_MSG_WARN([wxWidgets support is deprecated and will be removed. Consider using Qt4 instead.])
5265   WXWIDGETS_PATH="${PATH}"
5266   AC_ARG_WITH(wx-config-path,
5267     [    --with-wx-config-path=PATH wx-config path (default search in \$PATH)],
5268     [ if test "${with_wx_config_path}" != "no"
5269       then
5270         WXWIDGETS_PATH="${with_wx_config_path}:${PATH}"
5271       fi ])
5272   WXWIDGETS_NAME="wx-config"
5273   AC_ARG_WITH(wx-config,
5274     [    --with-wx-config=NAME      wx-config name (default is wx-config)],
5275     [ if test "${with_wx_config}" != "no"
5276       then
5277         WXWIDGETS_NAME="${with_wx_config}"
5278       fi ])
5279   # look for wx-config
5280   AC_PATH_PROG(WX_CONFIG, ${WXWIDGETS_NAME}, no, ${WXWIDGETS_PATH})
5281   if test "${WX_CONFIG}" != "no" -a "${CXX}" != ""
5282   then
5283     if expr 2.6.0 \> `${WX_CONFIG} --version` >/dev/null
5284     then
5285       AC_MSG_ERROR([You need wxWidgets version 2.6.0 or upwards. Please upgrade and try again.])
5286     fi
5287     AC_LANG_PUSH(C++)
5288     # Turn this error:
5289     #   playlist.cpp:1351: error: ISO C++ forbids cast to non-reference type
5290     # into a warning. However better would be to fix playlist.cpp
5291     AC_CACHE_CHECK([if \$CXX accepts -fpermissive],
5292         [ac_cv_cxx_fpermissive],
5293         [CXXFLAGS="${CXXFLAGS_save} -fpermissive"
5294          AC_TRY_COMPILE([],,ac_cv_cxx_fpermissive=yes,
5295                         ac_cv_cxx_fpermissive=no)])
5296     if test "${ac_cv_cxx_fpermissive}" = "yes"; then
5297       VLC_ADD_CXXFLAGS([wxwidgets],-fpermissive)
5298     fi
5299     VLC_ADD_LIBS([wxwidgets],[`${WX_CONFIG} --libs`])
5300     VLC_ADD_CXXFLAGS([wxwidgets],[`${WX_CONFIG} --cxxflags`])
5301     # check if we must link against gtk2 libs
5302     # if __WXGTK20__ && __WXGTK__ are defined
5303     # for modules/gui/wxwidgets/video.cpp
5304     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
5305 #include <wx/wx.h>
5306 #ifdef __WXGTK20__
5307 #error ok, we need to link against gtk2
5308 #endif
5309         ])],[WXGTK=no],[WXGTK=yes])
5310     if test "$WXGTK" = "yes"; then
5311       ${PKG_CONFIG} --exists gtk+-2.0 && VLC_ADD_LIBS([wxwidgets],[`$PKG_CONFIG --libs gtk+-2.0`])
5312     fi
5313     if ${WX_CONFIG} --unicode
5314     then 
5315       # wxwidgets should provide the following flags but does not
5316       # the following is required to compile for win32
5317       VLC_ADD_CXXFLAGS([wxwidgets],[-D_UNICODE -DUNICODE])
5318     else
5319       AC_MSG_ERROR([You need a unicode build of wxWidgets. Please fix that and try again. Better yet, you can configure with --disable-wxwidgets.])
5320     fi
5321     if test "$have_libcdio" = "yes"
5322     then 
5323       VLC_ADD_LIBS([wxwidgets],[$LIBCDIO_LIBS])
5324       VLC_ADD_CXXFLAGS([wxwidgets],[$LIBCDIO_CFLAGS])
5325     else 
5326       AC_MSG_WARN([Probe disc disabled because ok libcdio library not found])
5327     fi
5328
5329     if test "$have_libvcdinfo" = "yes"
5330     then 
5331       VLC_ADD_LIBS([wxwidgets],[$VCDINFO_LIBS])
5332       VLC_ADD_CXXFLAGS([wxwidgets],[$VCDINFO_CFLAGS])
5333     else 
5334       AC_MSG_WARN([VCD information on Probe disc disabled because ok libvcdinfo not found])
5335     fi
5336
5337     # now look for the wxprec.h header
5338     CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_wxwidgets}"
5339     ac_cv_wx_headers=yes
5340     AC_CHECK_HEADERS(wx/wxprec.h, , [
5341       ac_cv_wx_headers=no
5342       echo "Cannot find wxWidgets development headers."
5343     ])
5344     if test "${ac_cv_wx_headers}" = "yes"
5345     then
5346       VLC_ADD_PLUGIN([wxwidgets])
5347       AC_DEFINE([HAVE_WX], 1, [Define to 1 if you have WxWidgets library.])
5348       ALIASES="${ALIASES} wxvlc"
5349     fi
5350     CPPFLAGS="${CPPFLAGS_save}"
5351     AC_LANG_POP(C++)
5352   fi
5353   dnl WxWidgets plugin will yield incorrect code without this
5354   VLC_ADD_CXXFLAGS([wxwidgets], [-fno-strict-aliasing])
5355 fi
5356
5357 dnl
5358 dnl QT 4
5359 dnl
5360 enableqt4=false
5361 AC_ARG_ENABLE(qt4,
5362   [  --enable-qt4            QT 4 support (default enabled) ])
5363 AS_IF([test "${enable_qt4}" != "no" &&
5364   (test "${SYS}" != "darwin" || test "${enable_qt4}" = "yes")], [
5365   PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.2.0],
5366     [ VLC_ADD_PLUGIN([qt4])
5367       AC_DEFINE([HAVE_QT4], 1, [Define to 1 if you have QT4 library.])
5368       ALIASES="${ALIASES} qvlc"
5369       enableqt4=true
5370       if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "cygwin" -a "${SYS}" != "darwin"; then
5371           VLC_ADD_LIBS([qt4],[$QT4_LIBS -lX11])
5372       else
5373           VLC_ADD_LIBS([qt4],[$QT4_LIBS])
5374       fi
5375       VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS -DQT4LOCALEDIR=\\\\\\\"$($PKG_CONFIG --variable=prefix QtCore)/share/qt4/translations/\\\\\\\"])
5376       AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
5377       AC_PATH_PROG(RCC, rcc, rcc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
5378       AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
5379       ],
5380       AS_IF([test "${enable_qt4}" = "yes"],[
5381         AC_MSG_ERROR(QT4 library not found)
5382       ],[
5383         AC_MSG_WARN(QT4 library not found)
5384       ])
5385     )
5386 ])
5387 AM_CONDITIONAL(ENABLE_QT4, test "$enableqt4" = "true")
5388
5389 dnl
5390 dnl  WinCE GUI module
5391 dnl
5392 AC_ARG_ENABLE(wince,
5393   [  --enable-wince          Windows CE interface (default enabled with MinGW)])
5394 if test "${enable_wince}" != "no"; then
5395   if test "${SYS}" = "mingwce"; then
5396     VLC_ADD_BUILTINS([wince])
5397     VLC_ADD_CXXFLAGS([wince],[])
5398     VLC_ADD_LIBS([wince],[-lcommctrl -lcommdlg -laygshell])
5399     dnl Gross hack
5400     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
5401   elif test "${SYS}" = "mingw32"; then
5402     VLC_ADD_CXXFLAGS([wince],[])
5403     VLC_ADD_LIBS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
5404     dnl Gross hack
5405     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
5406   fi
5407 fi
5408
5409 dnl
5410 dnl Simple test for skins2 dependency
5411 dnl
5412 if test "${enable_skins2}" != "no"
5413 then
5414   if test "${WX_CONFIG}" = "no"
5415   then
5416     AC_MSG_ERROR([The skins2 module depends on the wxWidgets development package. Without it you won't be able to open any dialog box from the interface, which makes the skins2 interface rather useless. Install the wxWidgets development package or alternatively you can also configure with: --disable-wxwidgets --disable-skins2.])
5417   fi
5418 fi
5419
5420 dnl dnl
5421 dnl dnl  Qt module
5422 dnl dnl
5423 dnl AC_ARG_ENABLE(qt,
5424 dnl   [  --enable-qt             Qt interface support (default disabled)],
5425 dnl   [if test "${enable_qt}" = "yes"; then
5426 dnl      VLC_ADD_PLUGIN([qt])
5427 dnl      ALIASES="${ALIASES} qvlc"
5428 dnl      VLC_ADD_LIBS([qt],[-L${QTDIR}/lib])
5429 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt}"
5430 dnl      AC_CHECK_LIB(qt-mt,main,[
5431 dnl        VLC_ADD_LIBS([qt],[-lqt-mt])
5432 dnl      ],[
5433 dnl        AC_CHECK_LIB(qt,main,[
5434 dnl          VLC_ADD_LIBS([qt],[-lqt])
5435 dnl        ])
5436 dnl      ])
5437 dnl      LDFLAGS="${LDFLAGS_save}"
5438 dnl      VLC_ADD_CXXFLAGS([qt],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
5439 dnl      if test -x ${QTDIR}/bin/moc
5440 dnl      then
5441 dnl        MOC=${QTDIR}/bin/moc
5442 dnl      else
5443 dnl        MOC=moc
5444 dnl      fi
5445 dnl    fi])
5446 dnl 
5447 dnl dnl
5448 dnl dnl  KDE module
5449 dnl dnl
5450 dnl AC_ARG_ENABLE(kde,
5451 dnl   [  --enable-kde            KDE interface support (default disabled)],
5452 dnl   [if test "${enable_kde}" = "yes"; then
5453 dnl      VLC_ADD_PLUGIN([kde])
5454 dnl      ALIASES="${ALIASES} kvlc"
5455 dnl      VLC_ADD_LIBS([kde],[-L${KDEDIR}/lib])
5456 dnl      dnl Check for -lkfile (only in KDE 2) or -lkdeui -lkio (KDE 3)
5457 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
5458 dnl      AC_CHECK_LIB(kfile,main,[
5459 dnl        VLC_ADD_LIBS([kde],[-lkfile])
5460 dnl      ])
5461 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
5462 dnl      AC_CHECK_LIB(kdeui,main,[
5463 dnl        VLC_ADD_LIBS([kde],[-lkdeui])
5464 dnl      ])
5465 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
5466 dnl      AC_CHECK_LIB(kio,main,[
5467 dnl        VLC_ADD_LIBS([kde],[-lkio])
5468 dnl      ])
5469 dnl      LDFLAGS="${LDFLAGS_save}"
5470 dnl      VLC_ADD_CXXFLAGS([kde],[-I/usr/include/kde -I/usr/include/qt3 -I/usr/include/qt])
5471 dnl      VLC_ADD_CXXFLAGS([kde],[-I${KDEDIR}/include -I${QTDIR}/include])
5472 dnl      if test -x ${QTDIR}/bin/moc
5473 dnl      then
5474 dnl        MOC=${QTDIR}/bin/moc
5475 dnl      else
5476 dnl        MOC=moc
5477 dnl      fi
5478 dnl    fi])
5479
5480 dnl
5481 dnl  Opie QT embedded module
5482 dnl
5483 AC_ARG_ENABLE(opie,
5484   [  --enable-opie           Qt embedded interface support (default disabled)],
5485   [if test "${enable_opie}" = "yes"; then
5486      AC_ARG_WITH(qte,
5487      [    --with-qte=PATH       Qt Embedded headers and libraries])
5488      if test "${with_qte}" != "no" -a -n "${with_qte}"
5489      then
5490        VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
5491        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])
5492      else
5493        VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
5494        VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
5495      fi
5496      CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
5497      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
5498        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
5499      ] )
5500      CPPFLAGS="${CPPFLAGS_save}"
5501
5502      VLC_ADD_PLUGIN([opie])
5503      NEED_QTE_MAIN=yes
5504      VLC_ADD_LIBS([opie],[-lqpe ${LDFLAGS_qte}])
5505      VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
5506      if test "${with_qte}" != "no" -a -n "${with_qte}"
5507      then
5508        MOC=${with_qte}/bin/moc
5509      else
5510        MOC=${QTDIR}/bin/moc
5511      fi
5512    fi])
5513
5514 dnl
5515 dnl  MacOS X video output/gui modules
5516 dnl
5517 AC_ARG_ENABLE(macosx,
5518   [  --enable-macosx         MacOS X support (default enabled on MacOS X)])
5519 if test "x${enable_macosx}" = "xyes"
5520 then
5521 #  VLC_ADD_LDFLAGS([access_eyetv],                     [-Wl,-framework,Foundation])
5522   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer],[-Wl,-framework,Cocoa])
5523   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer],[-Wl,-framework,OpenGL])
5524   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,Carbon])
5525   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,AGL])
5526   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,IOKit])
5527   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,QuickTime])
5528   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,QTKit])
5529   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,WebKit])
5530   VLC_ADD_LDFLAGS([opengllayer],                      [-Wl,-framework,QuartzCore])
5531   VLC_ADD_OBJCFLAGS([macosx minimal_macosx opengllayer growl], [-fobjc-exceptions] )
5532
5533 #  VLC_ADD_PLUGIN([access_eyetv])
5534   VLC_ADD_PLUGIN([macosx])
5535   VLC_ADD_PLUGIN([minimal_macosx])
5536  
5537   ORIGCFLAGS=$CFLAGS
5538   CFLAGS="$CFLAGS -x objective-c"
5539   AC_CHECK_HEADER(QuartzCore/CALayer.h, 
5540   [VLC_ADD_PLUGIN([opengllayer])
5541   VLC_ADD_OBJCFLAGS([opengllayer], [-isysroot /Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.5])])
5542   CFLAGS=$ORIGCFLAGS
5543 fi
5544
5545 dnl
5546 dnl  QNX RTOS module
5547 dnl
5548 AC_ARG_ENABLE(qnx,
5549   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
5550     if test "${enable_qnx}" != "no"
5551     then
5552       AC_CHECK_HEADERS(Ph.h, [
5553         VLC_ADD_PLUGIN([qnx])
5554         VLC_ADD_LIBS([qnx],[-lasound -lph])
5555       ])
5556     fi
5557
5558 dnl
5559 dnl  ncurses module
5560 dnl
5561 AC_ARG_ENABLE(ncurses,
5562   [  --disable-ncurses       ncurses interface support (default enabled)],
5563   [if test "${enable_ncurses}" != "no"; then
5564     AC_CHECK_HEADER(ncurses.h,
5565       [AC_CHECK_LIB(ncursesw, mvprintw,
5566         [VLC_ADD_PLUGIN([ncurses])
5567         VLC_ADD_LIBS([ncurses],[-lncursesw])
5568         ALIASES="${ALIASES} nvlc"
5569         AC_DEFINE([HAVE_NCURSESW], 1, [Define to 1 if you have libncursesw.])
5570         AC_CHECK_LIB(ncursesw, tgetent, [],
5571           AC_CHECK_LIB(tinfow, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfow])],
5572             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
5573               [AS_IF([test "x${enable_ncurses}" != "x"],
5574                 [AC_MSG_ERROR([tgetent not found in ncursesw tinfow tinfo]
5575                )])])
5576             ]
5577           )
5578         )
5579         ],
5580         [AC_CHECK_LIB( ncurses, mvprintw,
5581           [VLC_ADD_PLUGIN([ncurses])
5582           ALIASES="${ALIASES} nvlc"
5583           VLC_ADD_LIBS([ncurses],[-lncurses])
5584           AC_CHECK_LIB(ncurses, tgetent, [],
5585             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
5586               [AS_IF([test "x${enable_ncurses}" != "x"],
5587                 [AC_MSG_ERROR([tgetent not found in ncurses tinfo])])]
5588             )]
5589           )],
5590           [AS_IF([test "x${enable_ncurses}" != "x"], [
5591             AC_MSG_ERROR([libncurses not found])])]
5592         )]
5593       )]
5594     )
5595   fi]
5596 )
5597
5598 dnl
5599 dnl  XOSD plugin
5600 dnl
5601 AC_ARG_ENABLE(xosd,
5602   [  --enable-xosd           xosd interface support (default disabled)])
5603 if test "${enable_xosd}" = "yes"
5604 then
5605   AC_CHECK_HEADER(xosd.h, have_xosd="true", have_xosd="false")
5606   AC_CHECK_LIB(xosd,xosd_set_offset,
5607       AC_DEFINE(HAVE_XOSD_VERSION_1, 1, Define if <xosd.h> is 1.0.x),
5608     AC_CHECK_LIB(xosd,xosd_set_horizontal_offset,
5609         AC_DEFINE(HAVE_XOSD_VERSION_2, 1, Define if <xosd.h> is 2.0.x),
5610       AC_TRY_COMPILE([#include <xosd.h>],
5611          [xosd_init("foo","bar",12,XOSD_top,2,12,42);],,
5612           AC_DEFINE(HAVE_XOSD_VERSION_0, 1, Define if <xosd.h> is pre-1.0.0))))
5613   if test "${have_xosd}" = "true"
5614   then
5615     VLC_ADD_PLUGIN([xosd])
5616     VLC_ADD_LIBS([xosd],[-lxosd])
5617   fi
5618 fi
5619
5620 dnl
5621 dnl Framebuffer (overlay) plugin
5622 dnl
5623 AC_ARG_ENABLE(fbosd,
5624   [  --enable-fbosd          fbosd interface support (default disabled)])
5625 if test "${enable_fbosd}" = "yes"
5626 then
5627   AC_CHECK_HEADERS(linux/fb.h, [
5628     VLC_ADD_PLUGIN([fbosd])
5629  ])
5630 fi
5631
5632 dnl
5633 dnl Visualisation plugin
5634 dnl
5635 AC_ARG_ENABLE(visual,
5636   [  --enable-visual         visualisation plugin (default enabled)])
5637 if test "${enable_visual}" != "no"
5638 then
5639     VLC_ADD_PLUGIN([visual])
5640 fi
5641
5642 dnl
5643 dnl OpenGL visualisation plugin
5644 dnl
5645 AC_ARG_ENABLE(galaktos,
5646   [  --enable-galaktos       OpenGL visualisation plugin (default disabled)])
5647 if test "${enable_galaktos}" = "yes"
5648 then
5649   AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
5650     VLC_ADD_PLUGIN([galaktos])
5651     if test "${SYS}" != "mingw32"; then
5652       VLC_ADD_LIBS([galaktos],[${X_LIBS} -lGL -lGLU])
5653     else
5654       VLC_ADD_LIBS([galaktos],[-lopengl32])
5655     fi
5656   ])
5657 fi
5658
5659 dnl
5660 dnl  goom visualization plugin
5661 dnl
5662 AC_ARG_ENABLE(goom,
5663 [  --enable-goom           goom visualisation plugin (default disabled)])
5664 if test "${enable_goom}" = "yes"
5665 then
5666   AC_ARG_WITH(goom-tree,
5667     [    --with-goom-tree=PATH goom tree for static linking (required)])
5668
5669   dnl
5670   dnl test for --with-goom-tree
5671   dnl
5672   if test "${with_goom_tree}" != "no" -a -n "${with_goom_tree}"; then
5673     AC_MSG_CHECKING(for libgoom2.a in ${with_goom_tree})
5674     real_goom_tree="`cd ${with_goom_tree} 2>/dev/null && pwd`"
5675     if test -z "${real_goom_tree}"; then
5676       dnl  The given directory can't be found
5677       AC_MSG_RESULT(no)
5678       AC_MSG_ERROR([cannot cd to ${with_goom_tree}])
5679     fi
5680     if test -f "${real_goom_tree}/src/.libs/libgoom2.a"; then
5681       AC_MSG_RESULT(${real_goom_tree}/src/.libs/libgoom2.a)
5682       VLC_ADD_PLUGIN([goom])
5683       VLC_ADD_LIBS([goom],[-L${real_goom_tree}/src/.libs -lgoom2])
5684       VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree}/src -DUSE_GOOM_TREE])
5685     else
5686       dnl  The given libgoom2 wasn't built, try to look for the old goom
5687       AC_MSG_RESULT(no)
5688       AC_MSG_CHECKING(for libgoom.a in ${with_goom_tree})
5689       if test -f "${real_goom_tree}/libgoom.a"; then
5690         AC_MSG_RESULT(${real_goom_tree}/libgoom.a)
5691         VLC_ADD_PLUGIN([goom])
5692         VLC_ADD_LIBS([goom],[-L${real_goom_tree} -lgoom])
5693         VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree} -DUSE_GOOM_TREE -DOLD_GOOM])
5694       else
5695         dnl  The given libgoom wasn't built
5696         AC_MSG_RESULT(no)
5697         AC_MSG_ERROR([cannot find ${real_goom_tree}/src/.libs/libgoom2.a, make sure you compiled goom in ${with_goom_tree}])
5698       fi
5699     fi
5700   else
5701     AC_CHECK_HEADERS(goom/goom.h, [
5702       LDFLAGS="${LDFLAGS_save} ${LIBS_goom}"
5703       AC_CHECK_LIB(goom2, goom_init, [
5704         VLC_ADD_PLUGIN([goom])
5705         VLC_ADD_LIBS([goom],[-lgoom2])
5706       ],[
5707         AC_MSG_ERROR([Could not find goom on your system: you may get it from http://www.ios-software.com/.])
5708       ])
5709       LDFLAGS="${LDFLAGS_save}"
5710     ])
5711   fi
5712 fi
5713
5714 dnl
5715 dnl  AtmoLight (homebrew AmbiLight)
5716 dnl
5717 if test "${SYS}" = "mingw32" -o "${SYS}" = "linux"; then
5718    AC_ARG_ENABLE(atmo,
5719 [  --disable-atmo       AtmoLight (homebrew philips ambilight) (default enabled)])
5720    if test "${enable_atmo}" != "no"; then
5721       AC_LANG_PUSH(C++)
5722       VLC_ADD_PLUGIN([atmo])
5723       AC_LANG_POP(C++)
5724    fi
5725 fi
5726
5727 dnl
5728 dnl  Bonjour services discovery
5729 dnl
5730 AC_ARG_ENABLE(bonjour,
5731   [  --enable-bonjour        Bonjour services discovery (default enabled)])
5732 if test "${enable_bonjour}" != "no"
5733 then
5734   PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.3,
5735     [PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.6,
5736        [AC_DEFINE(HAVE_AVAHI_06, 1, [Define if you have avahi-client 0.6 or greater])],)
5737       AC_DEFINE(HAVE_AVAHI_CLIENT, 1, [Define if you have the avahi-client library])
5738       VLC_ADD_LIBS([bonjour access_output_http],[$BONJOUR_LIBS])
5739       VLC_ADD_CFLAGS([bonjour access_output_http],[$BONJOUR_CFLAGS])
5740       VLC_ADD_PLUGIN([bonjour]) ],
5741     [AC_MSG_WARN(avahi-client library not found)])
5742 fi
5743
5744 dnl
5745 dnl  Lirc plugin
5746 dnl
5747 AC_ARG_ENABLE(lirc,
5748   [  --enable-lirc           lirc support (default disabled)])
5749 if test "${enable_lirc}" = "yes"
5750 then
5751   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
5752   if test "${have_lirc}" = "true"
5753   then
5754     VLC_ADD_PLUGIN([lirc])
5755     VLC_ADD_LIBS([lirc],[-llirc_client])
5756   fi
5757 fi
5758
5759
5760 AC_ARG_WITH(,[Misc options:])
5761
5762 dnl
5763 dnl libgcrypt
5764 dnl
5765 AC_ARG_ENABLE(libgcrypt,
5766   [  --enable-libgcrypt      libgcrypts support (default enabled)])
5767
5768 GCRYPT_PATH="${PATH}"
5769 AC_ARG_WITH(libgcrypt-config-path,
5770 [    --with-libgcrypt-config-path=PATH libgcrypt-config path (default search in \$PATH)],
5771    [ if test "${with_libgcrypt_config_path}" != "no"
5772      then
5773        GCRYPT_PATH="${with_libgcrypt_config_path}:${PATH}"
5774      fi ])
5775
5776 if test "${enable_libgcrypt}" != "no"
5777 then
5778   dnl Workaround for cross-compiling since AM_PATH_LIBGRYPT doesn't dectect
5779   dnl it and looks for libgcrypt headers in the wrong place.
5780   if test "${host_cpu}" = "${build_cpu}"
5781   then
5782     AM_PATH_LIBGCRYPT([1:1.1.94], [have_libgcrypt="yes"], [have_libgcrypt="no"])
5783   else
5784     AC_CHECK_HEADERS(gcrypt.h,have_libgcrypt="yes",have_libgcrypt="no")
5785   fi
5786 fi
5787 AM_CONDITIONAL([HAVE_LIBGCRYPT], [test "${have_libgcrypt}" = "yes"])
5788 AS_IF([test "${have_libgcrypt}" = "yes"],[
5789         # look for libgcrypt-config
5790         AC_PATH_PROG(GCRYPT_CONFIG, "libgcrypt-config", no, ${GCRYPT_PATH})
5791         GCRYPT_CFLAGS=`${GCRYPT_CONFIG} --cflags`
5792         GCRYPT_LIBS=`${GCRYPT_CONFIG} --libs`
5793 ])
5794
5795 dnl
5796 dnl TLS/SSL
5797 dnl
5798 AC_ARG_ENABLE(gnutls,
5799   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
5800
5801 AS_IF([test "${enable_gnutls}" != "no"], [
5802   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.3.3], [
5803     VLC_ADD_PLUGIN([gnutls])
5804     VLC_ADD_CFLAGS([gnutls], [$GNUTLS_CFLAGS])
5805     AS_IF([test "${SYS}" = "mingw32"], [
5806       dnl pkg-config --libs gnutls omits these
5807       VLC_ADD_LIBS([gnutls], [-lz])
5808       VLC_ADD_LIBS([gnutls], [${LTLIBINTL}])
5809     ])
5810     AS_IF([test "${have_libgcrypt}" = "yes"],[
5811       VLC_ADD_LIBS([gnutls], ${GCRYPT_LIBS})
5812       VLC_ADD_CFLAGS([gnutls], ${GCRYPT_CFLAGS})
5813     ], [-lgpg-error])
5814     VLC_ADD_LIBS([gnutls], [$GNUTLS_LIBS])
5815   ], [
5816     AS_IF([test "${enable_gnutls}" = "yes"], [
5817       AC_MSG_ERROR([gnutls not present or too old (version 1.2.9 required)])
5818     ])
5819   ])
5820 ])
5821
5822 dnl
5823 dnl update checking system
5824 dnl
5825 AC_ARG_ENABLE(update-check,
5826   [  --enable-update-check   update checking system (default disabled)])
5827 if test "${enable_update_check}" = "yes"
5828 then
5829   if test "${have_libgcrypt}" != "yes"
5830   then
5831     AC_MSG_ERROR([libgcrypt is required for update checking system])
5832   fi
5833   VLC_ADD_LIBS([libvlc], ${GCRYPT_LIBS})
5834   VLC_ADD_CFLAGS([libvlc], ${GCRYPT_CFLAGS})
5835   AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
5836 fi
5837
5838 dnl
5839 dnl  Endianness check, AC_C_BIGENDIAN doesn't work if we are cross-compiling
5840 dnl
5841 dnl  We give the user the opportunity to specify
5842 dnl  --with-words=big or --with-words=little ; otherwise, try to guess
5843 dnl
5844 AC_ARG_WITH(words,
5845   [    --with-words=endianness set endianness (big or little)])
5846   case "${with_words}" in
5847     big)
5848       ac_cv_c_bigendian=yes
5849       ;;
5850     little)
5851       ac_cv_c_bigendian=no
5852       ;;
5853     *)
5854       dnl  Try to guess endianness by matching patterns on a compiled
5855       dnl  binary, by looking for an ASCII or EBCDIC string
5856       AC_CACHE_CHECK([whether the byte order is big-endian],
5857         [ac_cv_c_bigendian],
5858         [ac_cv_c_bigendian="unknown"
5859         [cat >conftest.c <<EOF
5860         short am[] = { 0x4249, 0x4765, 0x6e44, 0x6961, 0x6e53, 0x7953, 0 };
5861         short ai[] = { 0x694c, 0x5454, 0x656c, 0x6e45, 0x6944, 0x6e61, 0 };
5862         void _a(void) { char*s = (char*)am; s = (char *)ai; }
5863         short ei[] = { 0x89D3, 0xe3e3, 0x8593, 0x95c5, 0x89c4, 0x9581, 0 };
5864         short em[] = { 0xc2c9, 0xc785, 0x95c4, 0x8981, 0x95e2, 0xa8e2, 0 };
5865         void _e(void) { char*s = (char*)em; s = (char*)ei; }
5866         int main(void) { _a(); _e(); return 0; }
5867 EOF
5868         ]
5869         if test -f conftest.c
5870         then
5871           if ${CC-cc} -c conftest.c -o conftest.o >>config.log 2>&1 \
5872               && test -f conftest.o
5873           then
5874             if test "`strings conftest.o | grep BIGenDianSyS`"
5875             then
5876               ac_cv_c_bigendian="yes"
5877             fi
5878             if test "`strings conftest.o | grep LiTTleEnDian`"
5879             then
5880               ac_cv_c_bigendian="no"
5881             fi
5882           fi
5883         fi
5884       ])
5885       if test "${ac_cv_c_bigendian}" = "unknown"
5886       then
5887         AC_MSG_ERROR([Could not guess endianness, please use --with-words])
5888       fi
5889       ;;
5890   esac
5891 dnl  Now we know what to use for endianness, just put it in the header
5892 if test "${ac_cv_c_bigendian}" = "yes"
5893 then
5894   AC_DEFINE(WORDS_BIGENDIAN, 1, big endian system)
5895 fi
5896
5897 dnl
5898 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
5899 dnl
5900 loader=false
5901 AC_ARG_ENABLE(loader,
5902   [  --enable-loader         build DLL loader for ELF i386 platforms (default disabled)])
5903 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
5904 AS_IF([test "${enable_loader}" = "yes"],
5905   [ VLC_ADD_PLUGIN([dmo])
5906     VLC_ADD_CPPFLAGS([dmo],[-I../../../@top_srcdir@/libs/loader])
5907     VLC_ADD_LIBS([dmo],[../../../libs/loader/libloader.la -lpthread])
5908     VLC_ADD_CPPFLAGS([quicktime],[-I../../@top_srcdir@/libs/loader])
5909     VLC_ADD_LIBS([quicktime],[../../libs/loader/libloader.la -lpthread])
5910     VLC_ADD_CPPFLAGS([realaudio],[-I../../@top_srcdir@/libs/loader -DLOADER])
5911     VLC_ADD_LIBS([realaudio],[../../libs/loader/libloader.la])
5912   ])
5913
5914 AC_ARG_WITH(,[Components:])
5915
5916 dnl
5917 dnl  the VLC binary
5918 dnl
5919 AC_ARG_ENABLE(vlc,
5920   [  --enable-vlc            build the VLC media player (default enabled)])
5921 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
5922
5923 dnl
5924 dnl  Microsoft ActiveX support
5925 dnl
5926 activex=false
5927 AC_ARG_ENABLE(activex,
5928   [  --enable-activex        build a vlc-based ActiveX control (default enabled on Win32)])
5929 AC_ARG_WITH(wine-sdk-path,
5930   [    --with-wine-sdk-path=PATH path to wine sdk])
5931 if test "${enable_activex}" != "no"
5932 then
5933   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
5934   then
5935     AC_CHECK_PROGS(MIDL, [midl], no)
5936     if test "${with_wine_sdk_path}" != ""
5937     then
5938        WINE_SDK_PATH=${with_wine_sdk_path}
5939        AC_PATH_PROG(WIDL, widl, no, [$WINE_SDK_PATH/bin:$WINE_SDK_PATH/tools/widl])
5940     else
5941        WIDL=no
5942     fi
5943     AC_LANG_PUSH(C++)
5944     AC_CHECK_HEADERS(ole2.h, 
5945       [AC_CHECK_HEADERS(olectl.h,
5946         [ VLC_ADD_CPPFLAGS([activex],[-DUNICODE -D_UNICODE -D_MIDL_USE_GUIDDEF_])
5947           VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
5948           VLC_ADD_LIBS([activex],[-lole32 -loleaut32 -luuid -lshlwapi]) 
5949           AC_CHECK_HEADERS(objsafe.h,
5950             VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER]),,
5951             [
5952              #if HAVE_OLE2_H
5953              #   include <ole2.h>
5954              #endif
5955              ]
5956           )
5957           activex=:
5958           PLUGINS_BINDINGS="${PLUGINS_BINDINGS} activex"
5959         ],
5960         [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5961       )],
5962       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5963     )
5964     AC_LANG_POP(C++)
5965   fi
5966 fi
5967 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
5968 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
5969 AC_ARG_VAR(WIDL, [Wine IDL compiler (requires Wine SDK)])
5970 AM_CONDITIONAL(HAS_WIDL_COMPILER, test "${WIDL}" != "no")
5971 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
5972
5973 dnl
5974 dnl  Mozilla plugin
5975 dnl
5976 mozilla=false
5977 AC_ARG_ENABLE(mozilla,
5978   [  --enable-mozilla        build a vlc-based Firefox/Mozilla plugin (default disabled)])
5979 AC_ARG_WITH(mozilla-sdk-path,
5980   [    --with-mozilla-sdk-path=PATH path to mozilla sdk])
5981 AC_LANG_PUSH(C++)
5982 if test "${enable_mozilla}" = "yes" 
5983 then
5984   dnl currently vlc plugin only needs headers, no xpcom support apis are actually used
5985   need_xpcom_libs=false
5986
5987   if test "${with_mozilla_sdk_path}" = "" -o "${with_mozilla_sdk_path}" = "no"
5988   then
5989     dnl New firefox-1.5 SDK api
5990     PKG_CHECK_MODULES([FIREFOX], [firefox-plugin],
5991       [
5992         PKG_CHECK_MODULES([FIREFOX_XPCOM], [firefox-xpcom],
5993           [],
5994           [
5995             PKG_CHECK_MODULES([MOZILLA_NSPR], [mozilla-nspr],
5996               [],
5997               [
5998                 PKG_CHECK_MODULES([NSPR], [nspr],
5999                   [],
6000                   [
6001                     AC_MSG_ERROR([Please install the nspr development tools.])
6002                   ]
6003                 )
6004               ]
6005             )
6006           ])
6007         CPPFLAGS="${CPPFLAGS_save} ${FIREFOX_CFLAGS} ${FIREFOX_XPCOM_CFLAGS} ${MOZILLA_NSPR_CFLAGS} ${NSPR_CFLAGS} ${MOZILLA_CPPFLAGS}"
6008         MOZILLA_REQUIRED_HEADERS=1
6009         AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
6010         AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
6011         AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
6012           [#if HAVE_NPAPI_H
6013            # include <npapi.h>
6014            #endif
6015           ])
6016         if test "${MOZILLA_REQUIRED_HEADERS}" = "0"; then
6017             AC_MSG_ERROR([Please install the Firefox development tools; mozilla-config.h, plugin/npapi.h and plugin/npruntime.h were not found.])
6018         fi
6019         MOZILLA_REQUIRED_HEADERS=
6020         mozilla=:
6021         firefox_include=`pkg-config --variable=includedir firefox-plugin`
6022         if test -f "${firefox_include}/mozilla-config.h" -a -f "${firefox_include}/mozilla-config32.h"; then
6023             MOZILLA_CONFIG_H="${firefox_include}/mozilla-config32.h"
6024         elif test -f "${firefox_include}/mozilla-config.h" -a -f "${firefox_include}/mozilla-config64.h"; then
6025             MOZILLA_CONFIG_H="${firefox_include}/mozilla-config64.h"
6026         else
6027             MOZILLA_CONFIG_H="${firefox_include}/mozilla-config.h"
6028         fi
6029         if grep '^#define MOZ_X11 1' ${MOZILLA_CONFIG_H} 2>&1 > /dev/null ; then
6030             AC_CHECK_HEADERS(X11/xpm.h,,AC_MSG_ERROR([Please install libXpm-devel library for required X11/xpm.h]))
6031             VLC_ADD_LIBS([mozilla], [${X_LIBS} ${X_PRE_LIBS} -lX11 -lXt -lXpm])
6032         fi
6033         VLC_ADD_CPPFLAGS([mozilla],[${CPPFLAGS}])
6034         VLC_ADD_LDFLAGS([mozilla],[${MOZILLA_LDFLAGS}])
6035         VLC_ADD_LIBS([mozilla],[${FIREFOX_LIBS} ${MOZILLA_NSPR_LIBS} ${NSPR_LIBS}])
6036         VLC_ADD_PLUGIN([mozilla])
6037         MOZILLA_CONFIG=
6038         CPPFLAGS="${CPPFLAGS_save}"
6039       ],
6040       [
6041         AC_PATH_PROG(MOZILLA_CONFIG, mozilla-config, no)
6042         if test "${MOZILLA_CONFIG}" = "no"
6043         then
6044           AC_PATH_PROG(SEAMONKEY_CONFIG, seamonkey-config, no)
6045           if test "${SEAMONKEY_CONFIG}" = "no"
6046           then
6047             AC_PATH_PROG(XULRUNNER_CONFIG, xulrunner-config, no)
6048             if test "${XULRUNNER_CONFIG}" = "no"
6049             then
6050               AC_MSG_ERROR([Please install the Mozilla development tools, mozilla-config was not found.])
6051             else
6052               have_xul=true
6053               MOZILLA_CONFIG="${XULRUNNER_CONFIG}"
6054             fi
6055           else
6056             MOZILLA_CONFIG="${SEAMONKEY_CONFIG}"
6057           fi
6058         fi
6059       ]
6060     )
6061     if test ! -z "${MOZILLA_CONFIG}"
6062     then
6063       if ${MOZILLA_CONFIG} --defines | grep -q 'MOZ_X11=1'; then
6064         LDFLAGS="${LDFLAGS_save} ${X_LIBS} ${X_PRE_LIBS}"
6065         AC_CHECK_LIB(Xt,XtStrings,
6066          [
6067            VLC_ADD_CPPFLAGS([mozilla],[${X_CFLAGS}])
6068            VLC_ADD_LIBS([mozilla],[${X_LIBS} ${X_PRE_LIBS} -lXt -lX11 -lSM -lICE -lXpm])
6069          ],
6070          [],
6071          [[${X_LIBS} ${X_PRE_LIBS} -lX11 -lSM -lICE -lXpm]
6072         ])
6073         AC_CHECK_HEADERS(X11/xpm.h,,AC_MSG_ERROR([Please install libXpm-devel library for required X11/xpm.h]))
6074         LDFLAGS="${LDFLAGS_save}"
6075       fi
6076
6077       mozilla=:
6078       PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
6079       dnl Workaround for http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=150490
6080       VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin xpcom java | sed 's,-I\([^ ]*\)/mozilla/\([^ ]*\),-I\1/\2 -I\1/mozilla/\2,g' | xargs`]])
6081       if ${need_xpcom_libs}; then
6082          VLC_ADD_LIBS([mozilla],[`${MOZILLA_CONFIG} --libs plugin xpcom`])
6083       else
6084          VLC_ADD_LIBS([mozilla],[`${MOZILLA_CONFIG} --libs plugin`])
6085       fi
6086       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
6087       MOZILLA_REQUIRED_HEADERS=1
6088       AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
6089       AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
6090       AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
6091         [#if HAVE_NPAPI_H
6092          # include <npapi.h>
6093          #endif
6094         ])
6095       if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
6096       then
6097         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
6098       fi
6099       MOZILLA_REQUIRED_HEADERS=
6100       CPPFLAGS="${CPPFLAGS_save}"
6101       MOZILLA_SDK_PATH="`${MOZILLA_CONFIG} --prefix`"
6102     fi
6103     dnl End of moz_sdk = ""
6104   else
6105     dnl special case for mingw32
6106     if test "${SYS}" = "mingw32"
6107     then
6108       AC_CHECK_TOOL(CYGPATH, cygpath, "")
6109       dnl latest gecko sdk does not have an xpcom directory
6110       if test -d "${with_mozilla_sdk_path}/xpcom"; then
6111           mozilla_sdk_xpcom="/xpcom"
6112       fi
6113     fi
6114
6115     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
6116     CPPFLAGS="${CPPFLAGS_save} -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include"
6117     MOZILLA_REQUIRED_HEADERS=1
6118     AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
6119     AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
6120     AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
6121         [#if HAVE_NPAPI_H
6122           #include <npapi.h>
6123           #endif
6124         ])
6125     if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
6126     then
6127         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
6128     fi
6129     MOZILLA_REQUIRED_HEADERS=
6130     mozilla=:
6131     PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
6132     VLC_ADD_CPPFLAGS([mozilla],[-DXPCOM_GLUE -DHAVE_CPP_MODERN_SPECIALIZE_TEMPLATE_SYNTAX -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include -I${real_mozilla_sdk}/embedstring/include -I${real_mozilla_sdk}/xpcom/include -I${real_mozilla_sdk}/nspr/include -I${real_mozilla_sdk}/string/include -I${real_mozilla_sdk}/plugin/include -I${real_mozilla_sdk}/java/include])
6133     if ${need_xpcom_libs}; then
6134        VLC_ADD_LIBS([mozilla],[-L${real_mozilla_sdk}/embedstring/bin -L${real_mozilla_sdk}/xpcom/bin -L${real_mozilla_sdk}/nspr/bin -L${real_mozilla_sdk}/string/bin -L${real_mozilla_sdk}/lib -lnspr4 -lplds4 -lplc4 -lxpcomglue])
6135       if test "${SYS}" = "mingw32"; then
6136         dnl latest gecko sdk does not have embedstring
6137         if test -d "${real_mozilla_sdk}/embedstring/bin"
6138         then
6139           VLC_ADD_LIBS([mozilla],[-lembedstring])
6140         fi
6141       fi
6142     fi
6143     MOZILLA_SDK_PATH="${real_mozilla_sdk}"
6144
6145     if test -n "${CYGPATH}"; then
6146       real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
6147     fi
6148     CPPFLAGS="${CPPFLAGS_save}"
6149   fi
6150 fi
6151 AC_LANG_POP(C++)
6152 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
6153
6154 dnl Tests for Osso and Xsp
6155 AC_CHECK_LIB(osso, osso_display_blanking_pause, [
6156   PKG_CHECK_MODULES(GLIB2, glib-2.0, [
6157     VLC_ADD_CPPFLAGS([x11 xvideo xvmc glx],[-DHAVE_OSSO ${DBUS_CFLAGS} ${GLIB2_CFLAGS}])
6158     VLC_ADD_LIBS([x11 xvideo xvmc glx],[-losso])
6159  ])
6160 ])
6161 AC_CHECK_LIB(Xsp, XSPSetPixelDoubling,[
6162   VLC_ADD_CPPFLAGS([x11 xvideo xvmc glx],[-DHAVE_XSP])
6163   VLC_ADD_LIBS([x11 xvideo xvmc glx],[-lXsp])
6164 ])
6165
6166 dnl
6167 dnl  test plugins
6168 dnl
6169 AC_ARG_ENABLE(testsuite,
6170   [  --enable-testsuite      build test modules (default disabled)])
6171 if test "${enable_testsuite}" = "yes"
6172 then
6173   TESTS="test1 test2 test3 test4"
6174
6175   dnl  we define those so that bootstrap sets the right linker
6176   VLC_ADD_CXXFLAGS([test2],[])
6177   VLC_ADD_OBJCFLAGS([test3],[])
6178   dnl  this one is needed until automake knows what to do
6179   VLC_ADD_LIBS([test3],[-lobjc])
6180
6181   VLC_ADD_PLUGIN([test1])
6182   VLC_ADD_PLUGIN([test2])
6183   VLC_ADD_PLUGIN([test3])
6184   VLC_ADD_PLUGIN([test4])
6185 fi
6186
6187 dnl
6188 dnl Microsoft Layer for Unicode for WIN9x/ME
6189 dnl
6190 if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
6191 then
6192     AC_CHECK_LIB(unicows, LoadUnicowsSymbol, [
6193         VLC_ADD_LDFLAGS([vlc libvlc],[-Wl,--exclude-libs,libunicows.a -lunicows])
6194     ])
6195 fi
6196
6197 dnl
6198 dnl  gtk_main plugin
6199 dnl
6200 if test "${NEED_GTK_MAIN}" != "no"
6201 then
6202     VLC_ADD_PLUGIN([gtk_main])
6203     VLC_ADD_CFLAGS([gtk_main],[${CFLAGS_gtk}])
6204     VLC_ADD_LDFLAGS([gtk_main],[${LDFLAGS_gtk}])
6205 fi
6206
6207 if test "${NEED_GNOME_MAIN}" != "no"
6208 then
6209     VLC_ADD_PLUGIN([gnome_main])
6210     VLC_ADD_CFLAGS([gnome_main],[${CFLAGS_gtk} ${CFLAGS_gnome}])
6211     VLC_ADD_LDFLAGS([gnome_main],[${LDFLAGS_gtk} ${LDFLAGS_gnome}])
6212 fi
6213
6214 if test "${NEED_GTK2_MAIN}" != "no"
6215 then
6216     VLC_ADD_PLUGIN([gtk2_main])
6217     VLC_ADD_CFLAGS([gtk2],[-DNEED_GTK2_MAIN])
6218     VLC_ADD_CFLAGS([pda],[-DNEED_GTK2_MAIN])
6219     VLC_ADD_CFLAGS([gtk2_main],[${CFLAGS_gtk2} ${CFLAGS_pda}])
6220     VLC_ADD_LDFLAGS([gtk2_main],[${LDFLAGS_gtk2} ${LDFLAGS_pda}])
6221 fi
6222
6223 if test "${NEED_GNOME2_MAIN}" != "no"
6224 then
6225     VLC_ADD_PLUGIN([gnome2_main])
6226     VLC_ADD_CFLAGS([gnome2_main],[${CFLAGS_gtk2} ${CFLAGS_gnome2}])
6227     VLC_ADD_LDFLAGS([gnome2_main],[${LDFLAGS_gtk2} ${LDFLAGS_gnome2}])
6228 fi
6229
6230 dnl
6231 dnl  qte_main plugin
6232 dnl
6233 if test "${NEED_QTE_MAIN}" != "no"
6234 then
6235     VLC_ADD_PLUGIN([qte_main])
6236     VLC_ADD_CXXFLAGS([opie qte qt_video],[-DNEED_QTE_MAIN])
6237     VLC_ADD_CXXFLAGS([qte_main],[${CXXFLAGS_qte} ${CXXFLAGS_qt_video}])
6238     VLC_ADD_LDFLAGS([qte_main],[${LDFLAGS_qte} ${LDFLAGS_qt_video}])
6239 fi
6240
6241 dnl
6242 dnl  Plugin and builtin checks
6243 dnl
6244 plugin_support=yes
6245
6246 dnl Automagically disable plugins if there is no system support for
6247 dnl dynamically loadable files (.so, .dll, .dylib).
6248 dnl don't forget vlc-win32 still can load .dll as plugins
6249 AS_IF([test "${ac_cv_have_plugins}" = "no"], [
6250   AC_MSG_WARN([*** No plugin support! Building statically! ***])
6251   plugin_support=no
6252 ])
6253
6254 AS_IF([test "${enable_shared}" = "no"], [
6255   plugin_support=no
6256 ])
6257
6258 AS_IF([test "${plugin_support}" != "no"], [
6259   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, Define if we have support for dynamic plugins)
6260 ])
6261 AM_CONDITIONAL(HAVE_PLUGINS, [test "${plugin_support}" != "no"])
6262
6263 dnl Temporary(?) hack for plugins/builtins transition
6264 dnl VLC_ADD_PLUGIN([${BUILTINS}])
6265 dnl BUILTINS=""
6266
6267 dnl
6268 dnl Pic and shared libvlc stuff
6269 dnl
6270 AS_IF([test "${SYS}" = "mingw32"], [
6271   FILE_LIBVLCCORE_DLL="!define LIBVLCCORE_DLL libvlccore.dll"
6272   FILE_LIBVLC_DLL="!define LIBVLC_DLL libvlc.dll"
6273 ])
6274
6275 dnl
6276 dnl  Stuff used by the program
6277 dnl
6278 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION} ${CODENAME}", [Simple version string])
6279 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "VLC media player - version ${VERSION} ${CODENAME} - (c) ${COPYRIGHT_YEARS} the VideoLAN team", [Copyright string])
6280 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
6281 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
6282 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
6283 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
6284 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
6285 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
6286 AC_SUBST(VERSION_MAJOR)
6287 AC_SUBST(VERSION_MINOR)
6288 AC_SUBST(VERSION_REVISION)
6289 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure]) 
6290 if test "${build_os}" = "cygwin"
6291 then
6292     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [host which ran configure])
6293 else
6294     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -s`", [host which ran configure])
6295 fi
6296 AC_DEFINE_UNQUOTED(VLC_COMPILE_DOMAIN, "`dnsdomainname 2>/dev/null || domainname 2>/dev/null || echo unknown`", [domain of the host which ran configure]) 
6297 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler]) 
6298
6299 dnl
6300 dnl  Handle substvars that use $(top_srcdir)
6301 dnl
6302 VLC_CONFIG="top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
6303 AC_SUBST(VLC_CONFIG)
6304 CPPFLAGS_save="${CPPFLAGS_save} -I\$(top_srcdir)/include -I\$(top_builddir)/include"
6305
6306 dnl
6307 dnl  Restore *FLAGS
6308 dnl
6309 VLC_RESTORE_FLAGS
6310
6311 dnl
6312 dnl  Create the vlc-config script
6313 dnl
6314 LDFLAGS_libvlc="${LDFLAGS_libvlc} ${LDFLAGS_builtin}"
6315
6316 dnl
6317 dnl  Configuration is finished
6318 dnl
6319 AC_SUBST(SYS)
6320 AC_SUBST(ARCH)
6321 AC_SUBST(ALIASES)
6322 AC_SUBST(ASM)
6323 AC_SUBST(MOC)
6324 AC_SUBST(RCC)
6325 AC_SUBST(UIC)
6326 AC_SUBST(WINDRES)
6327 AC_SUBST(MOZILLA_SDK_PATH)
6328 AC_SUBST(WINE_SDK_PATH)
6329 AC_SUBST(LIBEXT)
6330 AC_SUBST(AM_CPPFLAGS)
6331 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
6332 AC_SUBST(FILE_LIBVLCCORE_DLL)
6333 AC_SUBST(FILE_LIBVLC_DLL)
6334
6335 dnl Create vlc-config.in
6336 VLC_OUTPUT_VLC_CONFIG_IN
6337
6338 AC_CONFIG_FILES([
6339   extras/package/win32/vlc.win32.nsi
6340   Makefile
6341   projects/activex/Makefile
6342   projects/activex/axvlc.inf
6343   doc/Makefile
6344   extras/package/ipkg/Makefile
6345   libs/loader/Makefile
6346   libs/srtp/Makefile
6347   modules/Makefile
6348   projects/mozilla/Makefile
6349   m4/Makefile
6350   po/Makefile.in
6351   share/Makefile
6352   src/Makefile
6353   test/Makefile
6354 ])
6355
6356 AC_CONFIG_FILES([
6357   modules/access/Makefile
6358   modules/access/bda/Makefile
6359   modules/access/dshow/Makefile
6360   modules/access/dvb/Makefile
6361   modules/access/mms/Makefile
6362   modules/access/cdda/Makefile
6363   modules/access/rtsp/Makefile
6364   modules/access/rtmp/Makefile
6365   modules/access/v4l2/Makefile
6366   modules/access/vcd/Makefile
6367   modules/access/vcdx/Makefile
6368   modules/access/screen/Makefile
6369   modules/access_filter/Makefile
6370   modules/access_output/Makefile
6371   modules/audio_filter/Makefile
6372   modules/audio_filter/channel_mixer/Makefile
6373   modules/audio_filter/converter/Makefile
6374   modules/audio_filter/resampler/Makefile
6375   modules/audio_filter/spatializer/Makefile
6376   modules/audio_mixer/Makefile
6377   modules/audio_output/Makefile
6378   modules/codec/Makefile
6379   modules/codec/cmml/Makefile
6380   modules/codec/dmo/Makefile
6381   modules/codec/ffmpeg/Makefile
6382   modules/codec/subtitles/Makefile
6383   modules/codec/spudec/Makefile
6384   modules/codec/xvmc/Makefile
6385   modules/control/Makefile
6386   modules/control/http/Makefile
6387   modules/demux/Makefile
6388   modules/demux/asf/Makefile
6389   modules/demux/avi/Makefile
6390   modules/demux/mp4/Makefile
6391   modules/demux/mpeg/Makefile
6392   modules/demux/playlist/Makefile
6393   modules/gui/Makefile
6394   modules/gui/beos/Makefile
6395   modules/gui/pda/Makefile
6396   modules/gui/macosx/Makefile
6397   modules/gui/minimal_macosx/Makefile
6398   modules/gui/qnx/Makefile
6399   modules/gui/qt4/Makefile
6400   modules/gui/skins2/Makefile
6401   modules/gui/wxwidgets/Makefile
6402   modules/gui/wince/Makefile
6403   modules/meta_engine/Makefile
6404   modules/misc/Makefile
6405   modules/misc/dummy/Makefile
6406   modules/misc/lua/Makefile
6407   modules/misc/memcpy/Makefile
6408   modules/misc/notify/Makefile
6409   modules/misc/testsuite/Makefile
6410   modules/misc/playlist/Makefile
6411   modules/misc/osd/Makefile
6412   modules/misc/xml/Makefile
6413   modules/misc/probe/Makefile
6414   modules/mux/Makefile
6415   modules/mux/mpeg/Makefile
6416   modules/mux/rtp/Makefile
6417   modules/packetizer/Makefile
6418   modules/services_discovery/Makefile
6419   modules/stream_out/Makefile
6420   modules/stream_out/transrate/Makefile
6421   modules/video_chroma/Makefile
6422   modules/video_filter/Makefile
6423   modules/video_filter/atmo/Makefile
6424   modules/video_filter/dynamicoverlay/Makefile
6425   modules/video_output/Makefile
6426   modules/video_output/msw/Makefile
6427   modules/video_output/qte/Makefile
6428   modules/video_output/x11/Makefile
6429   modules/visualization/Makefile
6430   modules/visualization/visual/Makefile
6431   modules/visualization/galaktos/Makefile
6432 ])
6433
6434 dnl Generate makefiles
6435 AC_OUTPUT
6436
6437 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
6438 # not provided with the source
6439 ${SHELL} ./config.status --file=vlc-config
6440 chmod 0755 vlc-config
6441
6442 dnl echo "Enabled builtin modules :"
6443 dnl for a in `./vlc-config --target builtin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)\.a,\2 (\1),'
6444
6445 dnl echo "Enabled plugin modules :"
6446 dnl for a in `./vlc-config --target plugin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)_plugin,\2 (\1),'
6447
6448 dnl Shortcut to nice compile message
6449 rm -f compile
6450 echo '#! /bin/sh' >compile
6451 echo rm -f .error\$\$ >>compile
6452 echo ERROR=0 >>compile
6453 echo export PATH=$PATH LANG=C >>compile
6454 echo "(make \$@ 2>&1 || touch .error\$\$)| \\" >>compile
6455 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/buildsystem/make.pl' >>compile
6456 echo test -f .error\$\$ \&\& ERROR=1 >>compile
6457 echo rm -f .error\$\$ >>compile
6458 echo exit \$ERROR >>compile
6459 chmod a+x compile
6460
6461 printf "
6462 libvlc configuration
6463 --------------------
6464 version               : ${VERSION}
6465 system                : ${SYS}
6466 architecture          : ${ARCH}
6467 build flavour         : "
6468 test "${enable_debug}" = "yes" && printf "debug "
6469 test "${enable_cprof}" = "yes" && printf "cprof "
6470 test "${enable_gprof}" = "yes" && printf "gprof "
6471 test "${enable_optimizations}" = "yes" && printf "optim "
6472 test "${enable_release}" = "yes" && printf "release " || printf "devel "
6473 echo ""
6474 if test "${enable_vlc}" != "no"; then
6475 echo "vlc aliases           :${ALIASES}"
6476 else
6477 echo "build vlc executable  : no"
6478 fi
6479 echo "plugins/bindings      :${PLUGINS_BINDINGS}
6480
6481 You can check which modules have been enabled 
6482 with \`./vlc-config --list plugin'.
6483 You can tune the compiler flags in vlc-config.
6484 To build vlc and its plugins, type \`./compile' or \`make'.
6485 "
6486 if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
6487    echo ""
6488    echo "Warning: Due to a bug in ld, mmx/sse support has been"
6489    echo "         turned off."
6490    echo "         FFmpeg will be REALLY slow."
6491    echo "         VLC WILL NOT PERFORM AS EXPECTED."
6492    echo ""
6493 fi