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