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