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