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