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