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