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