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