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