Indentation fix.
[vlc.git] / 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 ,, [
1326   case "${host_cpu}" in
1327     i686|x86_64)
1328       enable_sse=yes
1329       ;;
1330     *)
1331       enable_sse=no
1332       ;;
1333   esac
1334 ])
1335 AS_IF([test "${enable_sse}" != "no"], [
1336   ARCH="${ARCH} sse sse2"
1337
1338   AC_CACHE_CHECK([if $CC groks SSE2 intrinsics],
1339     [ac_cv_c_sse2_intrinsics],
1340     [CFLAGS="${CFLAGS_save} -O -msse2"
1341      AC_TRY_COMPILE([#include <emmintrin.h>
1342                      #include <stdint.h>
1343                      uint64_t frobzor;],
1344                     [__m128i a, b, c;
1345                      a = b = c = _mm_set1_epi64((__m64)frobzor);
1346                      a = _mm_slli_epi16(a, 3);
1347                      a = _mm_adds_epi16(a, b);
1348                      c = _mm_srli_epi16(c, 8);
1349                      c = _mm_slli_epi16(c, 3);
1350                      b = _mm_adds_epi16(b, c);
1351                      a = _mm_unpacklo_epi8(a, b);
1352                      frobzor = (uint64_t)_mm_movepi64_pi64(a);],
1353                     [ac_cv_c_sse2_intrinsics=yes],
1354                     [ac_cv_c_sse2_intrinsics=no])])
1355   AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1356     AC_DEFINE(HAVE_SSE2_INTRINSICS, 1,
1357               [Define to 1 if SSE2 intrinsics are available.])
1358     VLC_ADD_CFLAGS([i420_rgb_sse2 i420_yuy2_sse2 i422_yuy2_sse2],[-msse2])
1359   ])
1360
1361   AC_CACHE_CHECK([if $CC groks SSE inline assembly],
1362     [ac_cv_sse_inline],
1363     [CFLAGS="${CFLAGS_save}"
1364      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
1365                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
1366   AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1367     AC_DEFINE(CAN_COMPILE_SSE, 1,
1368               [Define to 1 if SSE inline assembly is available.])
1369   ])
1370
1371   AC_CACHE_CHECK([if $CC groks SSE2 inline assembly],
1372     [ac_cv_sse2_inline],
1373     [CFLAGS="${CFLAGS_save}"
1374      AC_TRY_COMPILE(,[void *p;asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p));],
1375                     ac_cv_sse2_inline=yes, ac_cv_sse2_inline=no)])
1376   AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1377     AC_DEFINE(CAN_COMPILE_SSE2, 1,
1378               [Define to 1 if SSE2 inline assembly is available.])
1379     VLC_ADD_PLUGIN([i420_rgb_sse2])
1380     VLC_ADD_PLUGIN([i420_yuy2_sse2])
1381     VLC_ADD_PLUGIN([i422_yuy2_sse2])
1382   ])
1383 ])
1384
1385 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly],
1386     [ac_cv_3dnow_inline],
1387     [CFLAGS="${CFLAGS_save}"
1388      AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
1389                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
1390 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1391   AC_DEFINE(CAN_COMPILE_3DNOW, 1,
1392             [Define to 1 if 3D Now! inline assembly is available.])
1393   VLC_ADD_PLUGIN([memcpy3dn])
1394 ])
1395
1396 AC_ARG_ENABLE(altivec,
1397 [  --disable-altivec       disable AltiVec optimizations (default auto)],, [
1398   AS_IF([test "${host_cpu}" = "powerpc"],
1399         [enable_altivec=yes], [enable_altivec=no])
1400 ])
1401 AS_IF([test "${enable_altivec}" = "yes"], [
1402   ARCH="${ARCH} altivec";
1403   AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1404     [ac_cv_altivec_inline],
1405     [CFLAGS="${CFLAGS_save}"
1406      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1407          ac_cv_altivec_inline="yes",
1408          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
1409           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1410             [ac_cv_altivec_inline="-Wa,-m7400"],
1411             ac_cv_altivec_inline=no)
1412          ])])
1413   AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1414     AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1415               [Define to 1 if AltiVec inline assembly is available.])
1416     AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1417       VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
1418       VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
1419       VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1420       VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1421       VLC_ADD_CFLAGS([libvlc],[${ac_cv_altivec_inline}])
1422     ])
1423     VLC_ADD_PLUGIN([memcpyaltivec])
1424     VLC_ADD_PLUGIN([i420_yuy2_altivec])
1425   ])
1426
1427 dnl The AltiVec C extensions
1428 dnl
1429 dnl There are several possible cases:
1430 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1431 dnl                      need <altivec.h>
1432 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1433 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1434 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1435 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1436 dnl - Others: test should fail
1437   AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1438   [ac_cv_c_altivec],
1439   [# OS X/PPC test (gcc 4.x)
1440    CFLAGS="${CFLAGS_save} -mpim-altivec -force_cpusubtype_ALL"
1441    AC_TRY_COMPILE([vector unsigned char foo;],
1442      [vec_ld(0, (unsigned char *)0);],
1443      [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1444      [# OS X/PPC test (gcc 3.x)
1445       CFLAGS="${CFLAGS_save} -faltivec"
1446       AC_TRY_COMPILE([vector unsigned char foo;],
1447         [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1448         [ac_cv_c_altivec="-faltivec"],
1449         dnl Below this are the Linux tests
1450         [# Linux/PPC test (gcc 4.x)
1451          CFLAGS="${CFLAGS_save} -maltivec"
1452          AC_TRY_COMPILE([#include <altivec.h>],
1453            [vec_ld(0, (unsigned char *)0);],
1454            [ac_cv_c_altivec="-maltivec"],
1455            [# Linux/PPC test (gcc 3.3)
1456             CFLAGS="${CFLAGS_save} -maltivec -mabi=altivec"
1457             AC_TRY_COMPILE([#include <altivec.h>],
1458               [vec_ld(0, (unsigned char *)0);],
1459               [ac_cv_c_altivec=""
1460                ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1461               [# Linux/PPC test (gcc 3.3)
1462                CFLAGS="${CFLAGS_save} -fvec"
1463                AC_TRY_COMPILE([#include <altivec.h>],
1464                  [vec_ld(0, (unsigned char *)0);],
1465                  [ac_cv_c_altivec="-fvec"],
1466                  [ac_cv_c_altivec=no])
1467               ])
1468            ])
1469         ])
1470      ])
1471    CFLAGS="${CFLAGS_save}"
1472   ])
1473   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1474     CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
1475   ])
1476
1477   AC_CHECK_HEADERS(altivec.h)
1478   CPPFLAGS="${CPPFLAGS_save}"
1479   
1480   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1481     AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1,
1482               [Define to 1 if C AltiVec extensions are available.])
1483     VLC_ADD_CFLAGS([libvlc],[${ac_cv_c_altivec}])
1484     VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
1485     VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1486     VLC_ADD_PLUGIN([memcpyaltivec])
1487     VLC_ADD_PLUGIN([i420_yuy2_altivec])
1488   ])
1489
1490   AC_CACHE_CHECK([if linker needs -framework vecLib],
1491     [ac_cv_ld_altivec],
1492     [LDFLAGS="${LDFLAGS_vlc} -Wl,-framework,vecLib"
1493      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
1494      LDFLAGS="${LDFLAGS_save}"
1495     ])
1496   AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1497     VLC_ADD_LDFLAGS([libvlc idctaltivec motionaltivec memcpyaltivec],[-Wl,-framework,vecLib])
1498   ])
1499 ])
1500
1501 dnl
1502 dnl  Special arch tuning
1503 dnl
1504 AC_ARG_WITH(tuning,
1505 [  --with-tuning=ARCH      enable special tuning for an architecture
1506                           (default Pentium 2 on IA-32 and G4 on PPC)])
1507 if test -n "${with_tuning}"; then
1508     if test "${with_tuning}" != "no"; then
1509         CFLAGS_TUNING="-mtune=${with_tuning}"
1510     fi
1511 else
1512     if test "${SYS}" = "darwin" -a "${host_cpu}" != "powerpc"; then
1513         CFLAGS_TUNING="-march=pentium-m -mtune=prescott"
1514     elif test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "i386"; then
1515         CFLAGS_TUNING="-mtune=pentium2"
1516     elif test "${host_cpu}" = "x86_64"; then
1517         CFLAGS_TUNING="-mtune=athlon64"
1518     elif test "${host_cpu}" = "powerpc"; then
1519         CFLAGS_TUNING="-mtune=G4";
1520     fi
1521 fi
1522
1523 dnl NOTE: this can't be cached cleanly
1524 AS_IF([test "${CFLAGS_TUNING}"],
1525    [CFLAGS_save="${CFLAGS}"
1526     CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1527
1528     AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1529     AC_COMPILE_IFELSE([ ],
1530                       [tuning="yes"],
1531                       [CFLAGS_TUNING=""; tuning="no"
1532                        AS_IF([test "${with_tuning}"],
1533                              [AC_MSG_ERROR([requested tuning not supported])])])
1534
1535     AC_MSG_RESULT([$tuning])
1536     CFLAGS="${CFLAGS_save}"
1537 ])
1538
1539 dnl
1540 dnl  Memory usage
1541 dnl
1542 AC_ARG_ENABLE(optimize-memory,
1543 [  --enable-optimize-memory optimize memory usage over performance])
1544 if test "${enable_optimize_memory}" = "yes"; then
1545   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1546 fi
1547
1548 dnl
1549 dnl  Enable/disable optimizations
1550 dnl
1551 AC_ARG_ENABLE(optimizations,
1552 [  --disable-optimizations disable compiler optimizations (default enabled)])
1553 if test "${enable_optimizations}" != "no"; then
1554    if test "${enable_optimize_memory}" = "yes"; then
1555       enable_optimizations="size"
1556    else
1557       enable_optimizations="speed"
1558    fi
1559 fi
1560
1561 dnl
1562 dnl  Debugging mode
1563 dnl
1564 AC_ARG_ENABLE(debug,
1565 [  --enable-debug          debug mode (default disabled)])
1566 test "${enable_debug}" != "yes" && enable_debug="no"
1567 AH_TEMPLATE(NDEBUG,
1568             [Define to 1 if debug code should NOT be compiled])
1569 AS_IF([test "x${enable_debug}" = "xno"], [AC_DEFINE(NDEBUG)])
1570
1571 dnl
1572 dnl  Test coverage
1573 dnl
1574 AC_ARG_ENABLE(coverage,
1575         [  --enable-coverage       build for test coverage (default disabled)],,
1576         [enable_coverage="no"])
1577 AS_IF([test "${enable_coverage}" != "no"], [
1578         CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
1579         CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
1580         LDFLAGS="-lgcov ${LDFLAGS}"
1581         dnl ugly...
1582         CFLAGS_save="${CFLAGS}"
1583         CXXFLAGS_save="${CXXFLAGS}"
1584         LDFLAGS_save="${LDFLAGS}"
1585 ])
1586
1587 dnl
1588 dnl  Enable release-specific flags
1589 dnl
1590 AC_ARG_ENABLE(release,
1591 [  --enable-release        activate extra optimizations (default disabled)])
1592 test "${enable_release}" != "yes" && enable_release="no"
1593
1594 dnl
1595 dnl Stream output
1596 dnl
1597 AC_ARG_ENABLE(sout,
1598   [  --enable-sout           Stream output modules (default enabled)])
1599 AS_IF([test "${enable_sout}" != "no"], [
1600   AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1601 ])
1602 AM_CONDITIONAL(ENABLE_SOUT, [test "${enable_sout}" != "no"])
1603
1604 AC_ARG_ENABLE(switcher,
1605   [  --enable-switcher       Stream-out switcher plugin (default disabled)])
1606
1607 dnl Check for libshout
1608 AC_ARG_ENABLE(shout,
1609   [  --enable-shout          libshout output plugin (default disabled)])
1610 if test "${enable_shout}" = "yes"; then
1611   PKG_CHECK_MODULES(SHOUT, shout >= 2.1,
1612     [AC_DEFINE(HAVE_SHOUT, 1, [Define if you have the libshout library])
1613      VLC_ADD_PLUGIN([access_output_shout])
1614      VLC_ADD_LIBS([access_output_shout],[$SHOUT_LIBS])
1615      VLC_ADD_CFLAGS([access_output_shout],[$SHOUT_CFLAGS])],
1616     [AC_MSG_WARN(libshout library not found)])
1617 fi
1618
1619 dnl Lua modules
1620 AC_ARG_ENABLE(lua,
1621   [  --enable-lua            lua playlist, metafetcher and interface plugins (default enabled)])
1622 if test "${enable_lua}" != "no"
1623 then
1624   PKG_CHECK_MODULES(LUA, lua5.1,
1625     [ have_lua=yes ],
1626     [
1627     AC_MSG_WARN([lua5.1 not found, trying lua >= 5.1 instead])
1628     PKG_CHECK_MODULES(LUA, lua >= 5.1,
1629       [ have_lua=yes ],
1630       [
1631         have_lua=yes
1632         AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1633           [],
1634           [ have_lua=no ] )
1635         AC_CHECK_LIB(  lua5.1 , luaL_newstate,
1636           [LUA_LIBS="-llua5.1"],
1637           AC_CHECK_LIB( lua51 , luaL_newstate,
1638             [LUA_LIBS="-llua51"],
1639             AC_CHECK_LIB( lua , luaL_newstate,
1640               [LUA_LIBS="-llua"],
1641               [ have_lua=no
1642                 AC_MSG_WARN([lua >= 5.1 not found!])
1643               ])
1644           )
1645         )
1646       ])
1647     ])
1648   if test "x${have_lua}" = "xyes" ;  then
1649      AC_DEFINE(HAVE_LUA, 1, [Define if you have the lua library])
1650      VLC_ADD_LIBS([lua],[$LUA_LIBS])
1651      VLC_ADD_CFLAGS([lua],[$LUA_CFLAGS])
1652   fi
1653 fi
1654 AM_CONDITIONAL(BUILD_LUA, [test "${have_lua}" = "yes"])
1655
1656 dnl
1657 dnl HTTP daemon
1658 dnl
1659 AC_ARG_ENABLE(httpd,
1660   [  --enable-httpd          HTTP daemon (default enabled)])
1661 if test "${enable_httpd}" != "no"
1662 then
1663   VLC_ADD_PLUGIN([http])
1664   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
1665 fi
1666 AM_CONDITIONAL(BUILD_HTTPD, [test "${enable_httpd}" != "no"])
1667
1668 dnl
1669 dnl VideoLAN manager
1670 dnl
1671 AC_ARG_ENABLE(vlm,
1672   [  --enable-vlm            VideoLAN manager (default enabled)],,
1673   [enable_vlm="${enable_sout}"])
1674 AS_IF([test "${enable_vlm}" != "no"], [
1675   AS_IF([test "${enable_sout}" = "no"], [
1676     AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1677   ])
1678   AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1679   VLC_ADD_PLUGIN([telnet])
1680 ])
1681
1682 dnl
1683 dnl Growl notification plugin
1684 dnl
1685 AC_ARG_ENABLE(growl,
1686   [  --enable-growl          growl notification plugin (default enabled)])
1687 AS_IF([test "${enable_growl}" != "no"], [
1688     VLC_ADD_PLUGIN([growl_udp])
1689     AC_CHECK_HEADERS(Growl/GrowlDefines.h, [
1690       VLC_ADD_PLUGIN([growl])
1691       VLC_ADD_LDFLAGS([growl], [-Wl,-framework,Growl,-framework,AppKit])
1692     ])
1693   ]
1694 )
1695
1696 dnl
1697 dnl Libnotify notification plugin
1698 dnl
1699
1700 AC_ARG_ENABLE(notify,
1701   [  --enable-notify         libnotify notification plugin (default enabled)])
1702 AS_IF([test "${enable_notify}" != "no" -a "${SYS}" != "mingw32"], [
1703     PKG_CHECK_MODULES(NOTIFY, libnotify,
1704       [
1705         VLC_ADD_PLUGIN([notify])
1706         VLC_ADD_CFLAGS(notify, [$NOTIFY_CFLAGS])
1707         VLC_ADD_LIBS(notify, [$NOTIFY_LIBS])
1708       ],[
1709     AS_IF([test "${enable_notify}" = "yes"],[
1710         AC_MSG_WARN( libnotify not found) ])
1711       ])
1712   ])
1713
1714 dnl
1715 dnl Audioscrobbler plugin
1716 dnl
1717
1718 AC_ARG_ENABLE(audioscrobbler,
1719   [  --disable-audioscrobbler Last.fm submission plugin (default enabled)])
1720 AS_IF([test "${enable_audioscrobbler}" != "no"], [
1721         VLC_ADD_PLUGIN([audioscrobbler])
1722   ])
1723
1724 dnl
1725 dnl Musicbrainz plugin
1726 dnl
1727 AC_ARG_ENABLE(musicbrainz,
1728   [  --enable-musicbrainz    MusicBrainz support (default disabled) ])
1729   AS_IF([test "${enable_musicbrainz}" = "yes"],[
1730       PKG_CHECK_MODULES(MUSICBRAINZ, libmusicbrainz,
1731     [ VLC_ADD_PLUGIN([musicbrainz])
1732       VLC_ADD_LIBS([musicbrainz],[$MUSICBRAINZ_LIBS])
1733       VLC_ADD_CFLAGS([musicbrainz],[$MUSICBRAINZ_CFLAGS])  ],
1734        [AC_MSG_WARN(MusicBrainz library not found)])
1735    ])
1736
1737
1738 dnl
1739 dnl Taglibplugin
1740 dnl
1741 AC_ARG_ENABLE(taglib,
1742   [  --disable-taglib Taglib support (default enabled) ])
1743   AS_IF([test "${enable_taglib}" != "no"],[
1744     PKG_CHECK_MODULES(TAGLIB, taglib,
1745       [ AC_DEFINE( HAVE_TAGLIB, 1, [Define if you have taglib plugin built] )
1746         VLC_ADD_PLUGIN([taglib])
1747         VLC_ADD_LIBS([taglib],[$TAGLIB_LIBS -lz])
1748        VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS]) ],
1749       [AC_MSG_WARN(TagLib library not found)])
1750   ])
1751
1752
1753 dnl
1754 dnl  Input plugins
1755 dnl
1756
1757 AC_ARG_WITH(,[Input plugins:])
1758
1759 dnl  live555 input
1760 dnl
1761 if test "${enable_livedotcom}" 
1762 then
1763   AC_MSG_WARN(--{en|dis}able-livedotcom is deprecated. Use --{en|dis}able-live555 instead.)
1764 fi
1765
1766 if test "${enable_livedotcom}" = "no"
1767 then
1768   enable_live555="no"
1769 fi
1770 AC_ARG_ENABLE(live555,
1771 [  --enable-live555        live555 RTSP input plugin (default enabled)])
1772 if test "${enable_live555}" != "no"; then
1773   AC_ARG_WITH(live555-tree,
1774     [    --with-live555-tree=PATH live.com tree for static linking])
1775
1776   dnl
1777   dnl test for --with-live555-tree
1778   dnl
1779   if test "${with_livedotcom_tree}" 
1780   then
1781     AC_MSG_WARN(--with-livedotcom-tree is deprecated. Use --with-live555-tree instead.)
1782   with_live555_tree="${with_livedotcom_tree}"
1783   fi
1784
1785   if test -z "${with_live555_tree}" -a "${CXX}" != ""; then
1786     AC_LANG_PUSH(C++)
1787     CPPFLAGS_save="${CPPFLAGS}"
1788     CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1789     if test "${SYS}" = "solaris"; then
1790       CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1791     fi
1792     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1793     AC_CHECK_HEADERS(liveMedia.hh, [
1794       VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1795       AC_CHECK_LIB(liveMedia_pic, main, [
1796         # We have -lliveMedia_pic, build plugins
1797         VLC_ADD_PLUGIN([live555])
1798         VLC_ADD_LIBS([live555], [-lliveMedia_pic -lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic])
1799       ], [
1800         AC_CHECK_LIB(liveMedia, main, [
1801           # We only have -lliveMedia, do builtins
1802           VLC_ADD_PLUGIN([live555])
1803           VLC_ADD_LIBS([live555], [-lliveMedia -lgroupsock -lBasicUsageEnvironment -lUsageEnvironment])
1804         ])
1805       ])
1806       if test "${SYS}" = "mingw32"; then
1807         # add ws2_32 for closesocket, select, recv
1808         VLC_ADD_LIBS([live555],[-lws2_32])
1809       fi
1810     ])
1811     CPPFLAGS="${CPPFLAGS_save}"
1812     AC_LANG_POP(C++)
1813   else
1814     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_live555_tree})
1815     real_live555_tree="`cd ${with_live555_tree} 2>/dev/null && pwd`"
1816     if test -z "${real_live555_tree}"; then
1817       dnl  The given directory can't be found
1818       AC_MSG_RESULT(no)
1819       AC_MSG_ERROR([cannot cd to ${with_live555_tree}])
1820     fi
1821     if test -f "${real_live555_tree}/liveMedia/libliveMedia.a"; then
1822       AC_MSG_RESULT(${real_live555_tree}/liveMedia/libliveMedia.a)
1823
1824       VLC_ADD_PLUGIN([live555])
1825
1826       if test "${SYS}" = "mingw32"; then
1827         # add ws2_32 for closesocket, select, recv
1828         VLC_ADD_LIBS([live555],[-lws2_32])
1829       fi
1830
1831       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/liveMedia -lliveMedia])
1832       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1833       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/groupsock -lgroupsock])
1834       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/UsageEnvironment -lUsageEnvironment])
1835
1836       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/BasicUsageEnvironment/include])
1837       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/groupsock/include])
1838       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/liveMedia/include])
1839       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/UsageEnvironment/include ])
1840       if test "${SYS}" = "solaris"; then
1841         VLC_ADD_CXXFLAGS([live555],[-DSOLARIS])
1842       fi
1843     else
1844       dnl  The given live555 wasn't built
1845         AC_MSG_RESULT(no)
1846       if test "${enable_live555}" = "yes"; then
1847         AC_MSG_ERROR([cannot find ${real_live555_tree}/liveMedia/libliveMedia.a, make sure you compiled live555 in ${with_live555_tree}])
1848       fi        
1849     fi
1850   fi
1851 fi
1852
1853 dnl
1854 dnl  special access module for dc1394 input
1855 dnl
1856 AC_ARG_ENABLE(dc1394,
1857   [  --enable-dc1394         dc1394 access module (default disabled)])
1858 if test "${enable_dc1394}" = "yes"
1859 then
1860   AC_CHECK_HEADERS(libraw1394/raw1394.h, [
1861     AC_CHECK_LIB( raw1394, raw1394_get_nodecount, [
1862         AC_CHECK_HEADERS(libdc1394/dc1394_control.h , [
1863 dnl         AC_CHECK_LIB( dc1394_control, dc1394_setup_capture, [
1864               VLC_ADD_PLUGIN([dc1394])
1865               VLC_ADD_LIBS([dc1394],[-ldc1394_control -lraw1394])
1866 dnl         ],
1867 dnl         [
1868 dnl           AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1869 dnl         ])
1870       ],
1871       [
1872         AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1873       ])
1874     ],
1875     [
1876       AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1877     ])
1878   ],
1879   [
1880     AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1881   ])
1882 fi
1883
1884 dnl
1885 dnl dv module: digital video module check for libraw1394
1886 dnl
1887 AC_ARG_ENABLE(dv,
1888 [  --enable-dv             dv input module (default disabled)])
1889 if test "${enable_dv}" = "yes"
1890 then
1891   AC_ARG_WITH(dv-raw1394,
1892   [    --with-dv-raw1394=PATH   libraw1394 headers and libraries])
1893   AC_ARG_WITH(dv-raw1394-tree,
1894   [    --with-dv-raw1394=PATH   libraw1394 tree for static linking])
1895
1896   if test -z "${with_dv_raw1394}" -a "${with_dv_raw1394}" != ""
1897   then
1898     AC_MSG_CHECKING(for raw1394 headers in ${with_dv_raw1394})
1899     if test -f ${with_dv_raw1394}/include/libraw1394/raw1394.h
1900     then
1901       dnl  Use ${with_dv_raw1394}/include/libraw1394/raw1394.h
1902       AC_MSG_RESULT(yes)
1903       VLC_ADD_PLUGIN([access_dv])
1904       VLC_ADD_LIBS([access_dv],[-L${with_dv_raw1394}/lib -lraw1394 -lpthread])
1905       VLC_ADD_CPPFLAGS([access_dv],[-I${with_dv_raw1394}/include])
1906     else
1907       dnl  No libraw1394 could be found, sorry
1908       AC_MSG_RESULT(no)
1909       AC_MSG_ERROR([cannot find ${with_dv_raw1394}/include/libraw1394/raw1394.h])
1910     fi
1911   else
1912     AC_CHECK_HEADERS(libraw1394/raw1394.h,
1913     [ VLC_ADD_PLUGIN([access_dv])
1914         VLC_ADD_LIBS([access_dv],[-lraw1394 -lavc1394])
1915     ],[
1916         if test -n "${enable_dv}"
1917         then
1918           AC_MSG_ERROR([cannot find libraw1394 headers])
1919         fi
1920     ])
1921   fi
1922
1923   dnl Check for static linking of libraw1394
1924   if test -z "${with_dv_raw1394_tree}" -a "${with_dv_raw1394_tree}" != ""
1925   then
1926     AC_MSG_CHECKING(for libraw1394.a in ${with_dv_raw1394_tree})
1927     real_dv_raw1394_tree="`cd ${with_dv_raw1394_tree} 2>/dev/null && pwd`"
1928     if test -z "${real_dv_raw1394_tree}"
1929     then
1930       dnl  The given directory can't be found
1931       AC_MSG_RESULT(no)
1932       AC_MSG_ERROR([cannot cd to ${real_dv_raw1394_tree}])
1933     fi
1934     if test -f "${real_dv_raw1394_tree}/src/.libs/libraw1394.a"
1935     then
1936       dnl  Use a custom libraw1394
1937       AC_MSG_RESULT(${real_dv_raw1394_tree}/src/.libs/libraw1394.a)
1938       VLC_ADD_BUILTINS([access_dv])
1939       VLC_ADD_LIBS([access_dv],[-L${real_dv_raw1394_tree}/src/.libs -lraw1394])
1940       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_raw1394_tree}])
1941     else
1942       dnl  The given libraw1394 wasn't built
1943       AC_MSG_RESULT(no)
1944       AC_MSG_ERROR([cannot find ${real_dv_raw1394_tree}/src/.libs/libraw1394.a, make sure you compiled libraw1394 in ${with_dv_raw1394_tree}])
1945     fi
1946   fi
1947
1948   dnl
1949   dnl Check for libavc1394
1950   dnl
1951
1952   AC_ARG_WITH(dv-avc1394,
1953   [    --with-dv-avc1394=PATH   libavc1394 headers and libraries])
1954   AC_ARG_WITH(dv-avc1394-tree,
1955   [    --with-dv-avc1394=PATH   libavc1394 tree for static linking])
1956
1957   if test -z "${with_dv_avc1394}" -a "${with_dv_avc1394}" != ""
1958   then
1959     AC_MSG_CHECKING(for avc1394 headers in ${with_dv_avc1394})
1960     if test -f ${with_dv_avc1394}/include/libavc1394/avc1394.h
1961     then
1962       dnl  Use ${with_dv_avc1394}/include/libavc1394/avc1394.h
1963       AC_MSG_RESULT(yes)
1964       VLC_ADD_LIBS([access_dv],[-L${with_dv_avc1394}/lib -lavc1394 -lrom1394 -lpthread])
1965       VLC_ADD_CPPFLAGS([access_dv],[-I${with_avc1394}/include])
1966     else
1967       dnl  No libavc1394 could be found, sorry
1968       AC_MSG_RESULT(no)
1969       AC_MSG_ERROR([cannot find ${with_dv_avc1394}/include/libavc1394/avc1394.h])
1970     fi
1971   else
1972     AC_CHECK_HEADERS(libavc1394/avc1394.h,
1973     [ VLC_ADD_LIBS([access_dv],[-lavc1394 -lrom1394 -lpthread])
1974     ],[
1975         if test -n "${enable_dv}"
1976         then
1977           AC_MSG_ERROR([cannot find libavc1394 headers])
1978         fi
1979     ])
1980   fi
1981
1982   dnl Check for static linking of libavc1394
1983   if test -z "${with_dv_avc1394_tree}" -a "${with_dv_avc1394_tree}" != ""
1984   then
1985     AC_MSG_CHECKING(for libavc1394.a in ${with_dv_avc1394_tree})
1986     real_dv_avc1394_tree="`cd ${with_dv_avc1394_tree} 2>/dev/null && pwd`"
1987     if test -z "${real_dv_avc1394_tree}"
1988     then
1989       dnl  The given directory can't be found
1990       AC_MSG_RESULT(no)
1991       AC_MSG_ERROR([cannot cd to ${real_dv_avc1394_tree}])
1992     fi
1993     if test -f "${real_dv_avc1394_tree}/src/.libs/libavc1394.a"
1994     then
1995       dnl  Use a custom libavc1394
1996       AC_MSG_RESULT(${real_dv_avc1394_tree}/src/.libs/libavc1394.a)
1997       VLC_ADD_LIBS([access_dv],[-L${real_dv_avc1394_tree}/src/.libs -lavc1394 -lrom1394 -lpthread])
1998       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_avc1394_tree}])
1999     else
2000       dnl  The given libavc1394 wasn't built
2001       AC_MSG_RESULT(no)
2002       AC_MSG_ERROR([cannot find ${real_dv_avc1394_tree}/src/.libs/libavc1394.a, make sure you compiled libavc1394 in ${with_dv_avc1394_tree}])
2003     fi
2004   fi
2005 fi
2006
2007 dnl
2008 dnl dvdread module: check for libdvdread
2009 dnl
2010 AC_ARG_ENABLE(dvdread,
2011 [  --enable-dvdread        dvdread input module (default disabled)])
2012 if test "${enable_dvdread}" != "no"
2013 then
2014   AC_ARG_WITH(dvdread,
2015   [    --with-dvdread=PATH   libdvdread headers and libraries])
2016   AC_ARG_WITH(dvdread-tree,
2017   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
2018
2019   dnl Temporary hack (yeah, sure ;)
2020   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2021       VLC_ADD_LIBS([dvdread],[-ldvdcss])
2022   fi
2023
2024   if test -z "${with_dvdread}"
2025   then
2026     if test -z "${with_dvdread_tree}"
2027     then
2028       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
2029         [ VLC_ADD_PLUGIN([dvdread])
2030           VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
2031         ],[
2032           if test -n "${enable_dvdread}"
2033           then
2034             AC_MSG_ERROR([cannot find libdvdread headers])
2035           fi
2036         ])
2037     else
2038       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
2039       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
2040       if test -z "${real_dvdread_tree}"
2041       then
2042         dnl  The given directory can't be found
2043         AC_MSG_RESULT(no)
2044         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
2045       fi
2046       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
2047       then
2048         dnl  Use a custom libdvdread
2049         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
2050         VLC_ADD_BUILTINS([dvdread])
2051         VLC_ADD_LIBS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LIBS_dvdcss}])
2052         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
2053       else
2054         dnl  The given libdvdread wasn't built
2055         AC_MSG_RESULT(no)
2056         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
2057       fi
2058     fi
2059   else
2060     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
2061     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
2062     then
2063       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
2064       AC_MSG_RESULT(yes)
2065       VLC_ADD_PLUGIN([dvdread])
2066       VLC_ADD_LIBS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LIBS_dvdcss}])
2067       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
2068     else
2069       dnl  No libdvdread could be found, sorry
2070       AC_MSG_RESULT(no)
2071       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
2072     fi
2073   fi
2074 fi
2075
2076 dnl
2077 dnl  libdvdnav plugin
2078 dnl
2079 AC_ARG_ENABLE(dvdnav,
2080   [  --enable-dvdnav         dvdnav input module (default enabled)])
2081 if test "${enable_dvdnav}" != "no"
2082 then
2083   dnl Same hack than dvdread
2084   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2085       VLC_ADD_LIBS([dvdnav],[-ldvdcss])
2086   fi
2087
2088   DVDNAV_PATH="${PATH}"
2089   AC_ARG_WITH(dvdnav-config-path,
2090     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
2091     [ if test "${with_dvdnav_config_path}" != "no"
2092       then
2093         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
2094       fi ])
2095   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
2096   if test "${DVDNAV_CONFIG}" != "no"
2097   then
2098     VLC_ADD_PLUGIN([dvdnav])
2099     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
2100     VLC_ADD_LIBS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
2101   fi
2102 fi
2103
2104 dnl
2105 dnl  Windows DirectShow access module
2106 dnl
2107 AC_ARG_ENABLE(dshow,
2108   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
2109 if test "${enable_dshow}" != "no"
2110 then
2111   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2112   then
2113     AC_LANG_PUSH(C++)
2114       AC_CHECK_HEADERS(dshow.h,
2115       [ VLC_ADD_PLUGIN([dshow])
2116         VLC_ADD_CXXFLAGS([dshow],[])
2117         VLC_ADD_LIBS([dshow],[-lole32 -loleaut32 -luuid]) ])
2118     AC_LANG_POP(C++)
2119   fi
2120 fi
2121
2122 dnl
2123 dnl  Windows DirectShow BDA access module
2124 dnl
2125 AC_ARG_ENABLE(bda,
2126   [  --enable-bda            Win32 DirectShow BDA support (default enabled on Win32)])
2127 if test "${enable_bda}" != "no"
2128 then
2129   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2130   then
2131       AC_CHECK_HEADERS(dshow.h,
2132       [ VLC_ADD_PLUGIN([bda])
2133         VLC_ADD_CXXFLAGS([bda],[])
2134         VLC_ADD_LIBS([bda],[-lstrmiids -lole32 -loleaut32 -luuid]) ])
2135   fi
2136 fi
2137
2138
2139 dnl
2140 dnl  OpenCV wrapper and example filters
2141 dnl
2142 AC_ARG_ENABLE(opencv,
2143   [  --enable-opencv         OpenCV (computer vision) filter (default disabled)])
2144 if test "${enable_opencv}" = "yes" -a "${CXX}" != "";
2145 then
2146   AC_ARG_WITH(opencv-tree,
2147   [    --with-opencv-tree=PATH opencv tree for linking])
2148     if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2149     then
2150       test -z "${with_opencv_tree}" && AC_MSG_ERROR([You have to specify --with-opencv-tree])
2151           AC_MSG_CHECKING(for opencv in ${with_opencv_tree})
2152           if test -f ${with_opencv_tree}/cv/include/cv.h -a -f ${with_opencv_tree}/cxcore/include/cxcore.h \
2153             -a -f ${with_opencv_tree}/cvaux/include/cvaux.h -a -f ${with_opencv_tree}/otherlibs/highgui/highgui.h
2154       then
2155         AC_MSG_RESULT(yes)
2156         VLC_ADD_PLUGIN([opencv_wrapper])
2157         VLC_ADD_LIBS([opencv_wrapper],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2158         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])
2159         AC_LANG_PUSH(C++)
2160         VLC_ADD_PLUGIN([opencv_example])
2161         VLC_ADD_LIBS([opencv_example],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2162         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])
2163         AC_LANG_POP(C++)        
2164           else
2165         dnl  No opencv could be found, sorry
2166         AC_MSG_RESULT(no)
2167         AC_MSG_ERROR([cannot find opencv in ${with_opencv_tree}])
2168           fi
2169     else
2170       PKG_CHECK_MODULES(OPENCV, opencv,
2171         [
2172           VLC_ADD_PLUGIN([opencv_example])
2173           VLC_ADD_PLUGIN([opencv_wrapper])
2174           VLC_ADD_LIBS([opencv_example opencv_wrapper],[${OPENCV_LIBS}])
2175           VLC_ADD_CFLAGS([opencv_wrapper],[${OPENCV_CFLAGS}])
2176           VLC_ADD_CXXFLAGS([opencv_example],[${OPENCV_CFLAGS}])
2177         ],
2178         [AC_MSG_ERROR([libopencv not found!])]
2179       )
2180     fi
2181 fi
2182
2183
2184 dnl
2185 dnl  libsmbclient plugin
2186 dnl
2187 AC_ARG_ENABLE(smb,
2188   [  --enable-smb            smb input module (default enabled)])
2189 if test "${enable_smb}" != "no"; then
2190   AC_CHECK_HEADERS(libsmbclient.h,
2191     [ VLC_ADD_PLUGIN([access_smb])
2192       VLC_ADD_LIBS([access_smb],[-lsmbclient]) ],
2193     [ if test -n "${enable_smb}"; then
2194         AC_MSG_ERROR([cannot find libsmbclient headers])
2195      fi ])
2196   AC_CHECK_MEMBER([struct _SMBCCTX.close_fn],
2197     AC_DEFINE([HAVE__SMBCCTX_CLOSE_FN], 1, [Define if samba has _SMBCCTX.close_fn]),,
2198     [#include <libsmbclient.h>])
2199 fi
2200
2201 dnl
2202 dnl  libdvbpsi ts demux/mux
2203 dnl
2204 AC_ARG_ENABLE(dvbpsi,
2205   [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
2206 if test "${enable_dvbpsi}" != "no"
2207 then
2208   AC_ARG_WITH(dvbpsi,
2209   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
2210   AC_ARG_WITH(dvbpsi,
2211   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
2212   case "${with_dvbpsi}" in
2213   ""|yes)
2214     if test -z "${with_dvbpsi_tree}"
2215     then
2216       AC_CHECK_HEADERS(dvbpsi/dr.h,
2217         [ VLC_ADD_PLUGIN([ts])
2218           if test "${enable_sout}" != "no"; then
2219             VLC_ADD_PLUGIN([mux_ts])
2220           fi
2221           VLC_ADD_LIBS([mux_ts ts dvb],[-ldvbpsi]) ],
2222         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
2223         [#if defined( HAVE_STDINT_H )
2224 #   include <stdint.h>
2225 #elif defined( HAVE_INTTYPES_H )
2226 #   include <inttypes.h>
2227 #endif
2228 #include <dvbpsi/dvbpsi.h>
2229 #include <dvbpsi/descriptor.h>
2230 #include <dvbpsi/pat.h>
2231 #include <dvbpsi/pmt.h>])
2232     else
2233       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
2234       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
2235       if test -z "${real_dvbpsi_tree}"
2236       then
2237         dnl  The given directory can't be found
2238         AC_MSG_RESULT(no)
2239         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
2240       fi
2241       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
2242       then
2243         dnl  Use a custom libdvbpsi
2244         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
2245         VLC_ADD_BUILTINS([ts])
2246         if test "${enable_sout}" != "no"; then
2247           VLC_ADD_BUILTINS([mux_ts])
2248         fi
2249         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
2250         VLC_ADD_LIBS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
2251       else
2252         dnl  The given libdvbpsi wasn't built
2253         AC_MSG_RESULT(no)
2254         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
2255       fi
2256     fi
2257   ;;
2258   no)
2259     dnl  Compile without dvbpsi
2260   ;;
2261   *)
2262     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
2263     if test -z "${with_dvbpsi}"
2264     then
2265       LDFLAGS_test=""
2266       CPPFLAGS_test=""
2267     else
2268       LDFLAGS_test="-L${with_dvbpsi}/lib"
2269       CPPFLAGS_test="-I${with_dvbpsi}/include"
2270     fi
2271     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
2272     AC_CHECK_HEADERS([dvbpsi/dr.h],[
2273       VLC_ADD_PLUGIN([ts])
2274       if test "${enable_sout}" != "no"; then
2275         VLC_ADD_PLUGIN([mux_ts])
2276       fi
2277       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
2278       VLC_ADD_LIBS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
2279
2280     ],[
2281       if test -n "${enable_dvbpsi}"
2282       then
2283         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])
2284       fi
2285     ])
2286     CPPFLAGS="${CPPFLAGS_save}"
2287   ;;
2288   esac
2289   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
2290     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
2291   ], [], [${LIBS_ts}])
2292
2293 fi
2294
2295 dnl
2296 dnl  Video4Linux plugin
2297 dnl
2298 AC_ARG_ENABLE(v4l,
2299   [  --enable-v4l            Video4Linux input support (default disabled)])
2300 if test "${enable_v4l}" = "yes"
2301 then
2302   AC_ARG_WITH(v4l,
2303     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
2304   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
2305   then
2306     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
2307   fi
2308
2309   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
2310   AC_CHECK_HEADERS(linux/videodev.h, [
2311     VLC_ADD_PLUGIN([v4l])
2312   ],[])
2313   CPPFLAGS="${CPPFLAGS_save}"
2314 fi
2315
2316 dnl
2317 dnl  Video4Linux2 plugin
2318 dnl
2319 AC_ARG_ENABLE(v4l2,
2320   [  --enable-v4l2           Video4Linux2 input support (default enabled)])
2321 if test "${enable_v4l2}" != "no"
2322 then
2323   AC_ARG_WITH(v4l2,
2324     [    --with-v4l2=PATH       path to a v4l2-enabled kernel tree],[],[])
2325   if test "${with_v4l2}" != "no" -a -n "${with_v4l2}"
2326   then
2327     VLC_ADD_CPPFLAGS([v4l2],[-I${with_v4l2}/include])
2328   fi
2329
2330   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_v4l2_alsa="true", have_v4l2_alsa="false"),have_v4l2_alsa="false")
2331   if test "${have_v4l2_alsa}" = "true"
2332   then
2333     CFLAGS="${CFLAGS_save}"
2334     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
2335                     #define ALSA_PCM_NEW_SW_PARAMS_API
2336                     #include <alsa/asoundlib.h>],
2337        [snd_pcm_hw_params_get_period_time(0,0,0);],
2338         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
2339     VLC_ADD_LDFLAGS([v4l2],[-lasound -lm -ldl])
2340     AC_DEFINE(HAVE_ALSA, 1, Define if ALSA is present.)
2341   fi
2342
2343   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l2}"
2344   AC_CHECK_HEADERS(linux/videodev2.h, [
2345     VLC_ADD_PLUGIN([v4l2])
2346   ],[])
2347   CPPFLAGS="${CPPFLAGS_save}"
2348 fi
2349
2350
2351 dnl
2352 dnl  special access module for Hauppauge PVR cards
2353 dnl
2354 AC_ARG_ENABLE(pvr,
2355   [  --enable-pvr            PVR cards access module (default disabled)])
2356 if test "${enable_pvr}" = "yes"
2357 then
2358   VLC_ADD_PLUGIN([pvr])
2359   AC_ARG_WITH(videodev2,
2360     [  --with-videodev2=FILE   Location of videodev2.h file (default /usr/include/linux/videodev2.h)],[],[])
2361   if test "${with_videodev2}" != "no" -a -n "${with_videodev2}"
2362   then
2363     AC_DEFINE_UNQUOTED(VIDEODEV2_H_FILE, "${with_videodev2}", [Location of videodev2.h])
2364   fi
2365     
2366
2367   AC_CACHE_CHECK([for new linux/videodev2.h],
2368       [ac_cv_new_linux_videodev2_h],
2369       [AC_TRY_COMPILE([
2370           #include <sys/types.h>
2371           #   ifdef VIDEODEV2_H_FILE
2372           #   include VIDEODEV2_H_FILE
2373           #   else
2374           #   include <linux/videodev2.h>
2375           #   endif
2376           ],
2377           [struct v4l2_ext_controls ctrls; ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG; ],
2378           ac_cv_new_linux_videodev2_h=yes,
2379           ac_cv_new_linux_videodev2_h=no)])
2380   if test "${ac_cv_new_linux_videodev2_h}" != "no"; then
2381     AC_DEFINE(HAVE_NEW_LINUX_VIDEODEV2_H, 1, [Define if new linux/videodev2.h present])
2382   fi
2383 fi
2384
2385 dnl
2386 dnl  gnomeVFS access module
2387 dnl
2388 AC_ARG_ENABLE(gnomevfs,
2389   [  --enable-gnomevfs       GnomeVFS access module (default disabled)])
2390 if test "${enable_gnomevfs}" = "yes" 
2391 then
2392   PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0,
2393     VLC_ADD_LIBS([access_gnomevfs],[$GNOMEVFS_LIBS])
2394     VLC_ADD_CPPFLAGS([access_gnomevfs],[$GNOMEVFS_CPPFLAGS])
2395     VLC_ADD_CFLAGS([access_gnomevfs],[$GNOMEVFS_CFLAGS])
2396     VLC_ADD_PLUGIN([access_gnomevfs]),
2397     AC_MSG_WARN([GnomeVFS support disabled because GnomeVFS development headers not found]))
2398 fi
2399
2400 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
2401 AC_ARG_ENABLE(libcdio,
2402   [  --enable-libcdio        CD input and control library support (default enabled)])
2403
2404
2405 have_libcdio=no
2406 have_libvcdinfo=no
2407 if test "${enable_libcdio}" != "no"
2408 then
2409   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.78.2,
2410      have_libcdio=yes
2411      AC_DEFINE(HAVE_LIBCDIO, 1, 
2412      [Define if you have libcdio 0.78.2 or greater installed]),
2413      [AC_MSG_WARN(CD Reading and information library not found)])
2414
2415   PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.22,
2416      [have_libvcdinfo=yes
2417      AC_DEFINE(HAVE_VCDINFO, 1, 
2418      [Define if you have libvcdinfo 0.7.22 or greater installed])],
2419      [AC_MSG_WARN(VCD information library not found)])
2420 fi
2421
2422 dnl
2423 dnl  VCDX and CDDAX modules
2424 dnl
2425 AC_ARG_ENABLE(cddax,
2426   [  --enable-cddax          audio CD plugin with CD Text and CD paranoia via libcdio (default disabled)])
2427  
2428 AC_ARG_ENABLE(libcddb,
2429   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
2430  
2431 if test "${enable_cddax}" = "yes"
2432 then
2433   if test "$have_libcdio" = "yes"
2434   then
2435     AC_DEFINE(HAVE_CDDAX, 1, [Define for the audio CD plugin using libcdio])
2436     VLC_ADD_LIBS([cddax],[$LIBCDIO_LIBS])
2437     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
2438     VLC_ADD_PLUGIN([cddax])
2439     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
2440     VLC_ADD_LIBS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
2441     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
2442   else 
2443     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
2444     HAVE_CDDAX=no
2445   fi
2446
2447   if test "$enable_libcddb" != "no"; then
2448     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2449       HAVE_LIBCDDB=yes 
2450       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2451       VLC_ADD_LIBS([cddax],[$LIBCDDB_LIBS])
2452       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
2453       ],
2454       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2455       HAVE_LIBCDDB=no])
2456   fi
2457  
2458 fi
2459
2460 AC_ARG_ENABLE(vcdx,
2461   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2462  
2463 if test "${enable_vcdx}" = "yes"
2464 then
2465   if test "${have_libvcdinfo}" = "yes"
2466   then
2467     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2468     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2469   else 
2470     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
2471     HAVE_VCDX=no
2472   fi
2473
2474   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
2475    [VLC_ADD_LIBS([vcdx],[$LIBISO9660_LIBS])
2476     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
2477     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
2478     HAVE_VCDX=no])
2479
2480   if test "$have_libvcdinfo" = "yes"
2481   then
2482     AC_DEFINE(HAVE_VCDX, 1, 
2483     [Define for the VCD plugin using libcdio/libvcdinfo])
2484     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2485     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2486     VLC_ADD_PLUGIN([vcdx])
2487   else 
2488     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
2489     HAVE_VCDX=no
2490   fi
2491 fi
2492
2493 dnl
2494 dnl  Built-in CD-DA and VCD module
2495 dnl
2496 AC_ARG_ENABLE(cdda,           
2497   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
2498  
2499 AC_ARG_ENABLE(vcd,
2500   [  --enable-vcd            built-in VCD (default enabled)])
2501
2502 if test "${enable_vcd}" != "no"
2503 then
2504   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2505   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2506     AC_MSG_RESULT(yes)
2507     VLC_ADD_PLUGIN([vcd])
2508     VLC_ADD_PLUGIN([cdda])
2509   ],[
2510     AC_MSG_RESULT(no)
2511   ])
2512
2513   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2514   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2515     AC_MSG_RESULT(yes)
2516     VLC_ADD_PLUGIN([vcd])
2517     VLC_ADD_PLUGIN([cdda])
2518     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2519   ],[
2520     AC_MSG_RESULT(no)
2521   ])
2522
2523   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2524   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2525     AC_MSG_RESULT(yes)
2526     VLC_ADD_PLUGIN([vcd])
2527     VLC_ADD_PLUGIN([cdda])
2528     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2529   ],[
2530     AC_MSG_RESULT(no)
2531   ])
2532
2533   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2534   then
2535     VLC_ADD_PLUGIN([vcd])
2536     VLC_ADD_PLUGIN([cdda])
2537   fi
2538
2539   if test "${SYS}" = "darwin"
2540   then
2541     VLC_ADD_PLUGIN([vcd])
2542     VLC_ADD_PLUGIN([cdda])
2543     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-Wl,-framework,IOKit,-framework,CoreFoundation])
2544     VLC_ADD_LIBS([vcdx cddax cdda],[-liconv])
2545   fi
2546
2547   if test "$enable_libcddb" != "no"; then
2548     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2549       HAVE_LIBCDDB=yes 
2550       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2551       VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2552       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2553       ],:
2554       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2555       HAVE_LIBCDDB=no])
2556   fi
2557 fi
2558
2559 dnl
2560 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2561 dnl
2562 AC_ARG_ENABLE(dvb,
2563   [  --enable-dvb            DVB-S/T/C card support (default enabled)])
2564
2565 if test "${enable_dvb}" != "no"
2566 then
2567   AC_ARG_WITH(dvb,
2568   [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
2569   if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2570   then
2571     VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2572   fi
2573   CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2574   AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2575     if test -z "${with_dvbpsi_tree}"
2576     then
2577       VLC_ADD_PLUGIN([dvb])
2578     else
2579       VLC_ADD_BUILTINS([dvb])
2580     fi
2581   ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2582   CPPFLAGS="${CPPFLAGS_save}"
2583 fi
2584
2585 dnl
2586 dnl  Screen capture module
2587 dnl
2588 AC_ARG_ENABLE(screen,
2589   [  --enable-screen         Screen capture support (default enabled)])
2590 if test "${enable_screen}" != "no"; then
2591   if test "${SYS}" = "darwin"; then
2592     AC_CHECK_HEADERS(OpenGL/gl.h, [
2593       AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2594         VLC_ADD_PLUGIN([screen])
2595         VLC_ADD_LDFLAGS([screen],[-Wl,-framework,OpenGL,-framework,ApplicationServices])
2596       ])
2597     ])
2598   elif test "${SYS}" = "mingw32"; then
2599     VLC_ADD_PLUGIN([screen])
2600     VLC_ADD_LIBS([screen],[-lgdi32])
2601   elif test "${SYS}" = "mingwce"; then
2602     CPPFLAGS="${CPPFLAGS_save}"
2603   elif test "${SYS}" = "beos"; then
2604     VLC_ADD_PLUGIN([screen])
2605     VLC_ADD_CXXFLAGS([screen],[])
2606     VLC_ADD_LIBS([screen],[-lbe])
2607   else
2608     CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
2609     AC_CHECK_HEADERS(X11/Xlib.h, [
2610       VLC_ADD_PLUGIN([screen])
2611       VLC_ADD_LIBS([screen],[${X_LIBS} ${X_PRE_LIBS} -lX11])
2612       VLC_ADD_CPPFLAGS([screen],[${X_CFLAGS}])
2613     ])
2614     CPPFLAGS="${CPPFLAGS_save}"
2615   fi
2616 fi
2617
2618 dnl
2619 dnl  ipv6 plugin - not for QNX yet
2620 dnl
2621 have_ipv6=no
2622 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2623   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2624 ])
2625
2626 AS_IF([test "${have_ipv6}" = "yes"], [
2627   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2628
2629
2630 AC_CHECK_FUNCS(inet_ntop,[
2631   AC_DEFINE(HAVE_INET_NTOP, 1, [Define to 1 if you have inet_ntop().])])
2632
2633
2634 dnl
2635 dnl  ogg demux plugin
2636 dnl
2637 AC_ARG_ENABLE(ogg,
2638   [  --enable-ogg            Ogg demux support (default enabled)])
2639 if test "${enable_ogg}" != "no"
2640 then
2641   AC_ARG_WITH(ogg-tree,
2642   [    --with-ogg-tree=PATH  ogg tree for static linking])
2643   if test -n "${with_ogg_tree}"
2644   then
2645     AC_MSG_CHECKING(for libogg.a in ${with_ogg_tree})
2646     real_ogg_tree="`cd ${with_ogg_tree} 2>/dev/null && pwd`"
2647     if test -z "${real_ogg_tree}"
2648     then
2649       dnl  The given directory can't be found
2650       AC_MSG_RESULT(no)
2651       AC_MSG_ERROR([cannot cd to ${with_ogg_tree}])
2652     fi
2653     if test -f "${real_ogg_tree}/src/.libs/libogg.a"
2654     then
2655       dnl  Use a custom ogg
2656       AC_MSG_RESULT(${real_ogg_tree}/src/.libs/libogg.a)
2657       VLC_ADD_PLUGIN([ogg])
2658       if test "${enable_sout}" != "no"; then
2659         VLC_ADD_PLUGIN([mux_ogg])
2660       fi
2661       VLC_ADD_LIBS([ogg mux_ogg speex vorbis],[${real_ogg_tree}/src/.libs/libogg.a])
2662       VLC_ADD_CFLAGS([ogg mux_ogg speex vorbis],[-I${real_ogg_tree}/include])
2663     else
2664       dnl  The given ogg wasn't built
2665       AC_MSG_RESULT(no)
2666       AC_MSG_ERROR([cannot find ${real_ogg_tree}/src/.libs/libogg.a, make sure you compiled ogg in ${with_ogg_tree}])
2667     fi
2668   else
2669     AC_CHECK_HEADERS(ogg/ogg.h, [
2670       AC_CHECK_LIB( ogg, oggpack_read, [
2671         VLC_ADD_PLUGIN([ogg])
2672         if test "${enable_sout}" != "no"; then
2673           VLC_ADD_PLUGIN([mux_ogg])
2674         fi
2675         VLC_ADD_LIBS([ogg mux_ogg],[-logg])])
2676      ],[])
2677   fi
2678 fi
2679
2680 dnl
2681 dnl  matroska demux plugin
2682 dnl
2683 AC_ARG_ENABLE(mkv,
2684   [  --enable-mkv            Matroska demux support (default enabled)])
2685 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2686   AC_LANG_PUSH(C++)
2687   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2688     AC_MSG_CHECKING(for libebml version >= 0.7.6)
2689     AC_EGREP_CPP(yes,
2690       [#include <ebml/EbmlVersion.h>
2691        #ifdef LIBEBML_VERSION
2692        #if LIBEBML_VERSION >= 0x000706
2693        yes
2694        #endif
2695        #endif],
2696       [AC_MSG_RESULT([yes])
2697         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2698           AC_MSG_CHECKING(for libmatroska version >= 0.7.7)
2699           AC_EGREP_CPP(yes,
2700             [#include <matroska/KaxVersion.h>
2701              #ifdef LIBMATROSKA_VERSION
2702              #if LIBMATROSKA_VERSION >= 0x000705
2703              yes
2704              #endif
2705              #endif],
2706             [AC_MSG_RESULT([yes])
2707               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2708               VLC_ADD_CXXFLAGS([mkv],[])
2709               if test "${SYS}" = "darwin"; then
2710                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2711               fi
2712               AC_CHECK_LIB(ebml_pic, main, [
2713                 VLC_ADD_PLUGIN([mkv])
2714                 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2715               ],
2716                 AC_CHECK_LIB(ebml, main, [
2717                   VLC_ADD_PLUGIN([mkv])
2718                   VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2719                 ]) 
2720               )
2721             ],
2722             [AC_MSG_RESULT([no])
2723               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.])
2724           ])
2725         ])
2726       ],
2727       [AC_MSG_RESULT([no])
2728         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.])
2729     ])
2730   ])
2731   AC_LANG_POP(C++)
2732 fi
2733
2734 dnl
2735 dnl  modplug demux plugin
2736 dnl
2737 AC_ARG_ENABLE(mod,
2738   [  --enable-mod            Mod demux support (default enabled)])
2739 if test "${enable_mod}" != "no"
2740 then
2741   AC_ARG_WITH(mod-tree,
2742   [    --with-mod-tree=PATH mod tree for static linking])
2743   if test -n "${with_mod_tree}"
2744   then
2745     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2746     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2747     if test -z "${real_mod_tree}"
2748     then
2749       dnl  The given directory can't be found
2750       AC_MSG_RESULT(no)
2751       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2752     fi
2753     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2754     then
2755       dnl  Use a custom mod
2756       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2757       VLC_ADD_PLUGIN([mod])
2758       VLC_ADD_LIBS([mod],[${real_mod_tree}/src/.libs/libmodplug.a -lstdc++])
2759       VLC_ADD_CXXFLAGS([mod],[-I${real_mod_tree}/include])
2760     else
2761       dnl  The given mod wasn't built
2762       AC_MSG_RESULT(no)
2763       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2764     fi
2765   else
2766     AC_CHECK_HEADERS(libmodplug/modplug.h, [
2767       VLC_ADD_PLUGIN([mod])
2768       VLC_ADD_CXXFLAGS([mod],[])
2769       VLC_ADD_LIBS([mod],[-lmodplug -lstdc++])])
2770   fi
2771 fi
2772
2773 dnl
2774 dnl  mpc demux plugin
2775 dnl
2776 AC_ARG_ENABLE(mpc,
2777   [  --enable-mpc            Mpc demux support (default enabled)])
2778 if test "${enable_mpc}" != "no"
2779 then
2780   AC_CHECK_HEADERS(mpcdec/mpcdec.h, [
2781     VLC_ADD_PLUGIN([mpc])
2782     VLC_ADD_LIBS([mpc],[-lmpcdec])])
2783 fi
2784
2785 dnl
2786 dnl  game music emu demux plugin
2787 dnl
2788 AC_ARG_ENABLE(gme,
2789   [  --enable-gme            Game Music Emu demux support (default enabled)])
2790 if test "${enable_gme}" != "no" -a "${CXX}" != "";
2791 then
2792   AC_LANG_PUSH(C++)
2793   AC_ARG_WITH(gme-tree,
2794   [    --with-gme-tree=PATH gme tree for static linking])
2795   if test -n "${with_gme_tree}"
2796   then
2797     AC_MSG_CHECKING(for libgme.a in ${with_mod_tree})
2798     real_gme_tree="`cd ${with_gme_tree} 2>/dev/null && pwd`"
2799     if test -z "${real_gme_tree}"
2800     then
2801       dnl  The given directory can't be found
2802       AC_MSG_RESULT(no)
2803       AC_MSG_ERROR([cannot cd to ${with_gme_tree}])
2804     fi
2805     if test -f "${real_gme_tree}/gme/libgme.a"
2806     then
2807       dnl  Use a custom gme
2808       AC_MSG_RESULT(${real_gme_tree}/gme/libgme.a)
2809       VLC_ADD_PLUGIN([gme])
2810       VLC_ADD_LIBS([gme],[${real_gme_tree}/gme/libgme.a])
2811       VLC_ADD_CXXFLAGS([gme],[-I${real_gme_tree}/gme])
2812     else
2813       dnl  The given gme wasn't built
2814       AC_MSG_RESULT(no)
2815       AC_MSG_ERROR([cannot find ${real_mod_tree}/gme/libgme.a, make sure you compiled gme in ${with_gme_tree}])
2816     fi
2817   else
2818       AC_MSG_WARN([only static linking is available, you must provide a gme-tree])
2819   fi
2820   AC_LANG_POP(C++)
2821 fi
2822
2823 dnl
2824 dnl  Codec plugins
2825 dnl
2826
2827 AC_ARG_WITH(,[Codec plugins:])
2828
2829 dnl
2830 dnl  mad plugin
2831 dnl
2832 AC_ARG_ENABLE(mad,
2833   [  --enable-mad            libmad module (default enabled)])
2834 if test "${enable_mad}" != "no"
2835 then
2836   AC_ARG_WITH(mad,
2837     [    --with-mad=PATH       path to libmad],[],[])
2838   if test "${with_mad}" != "no" -a -n "${with_mad}"
2839   then
2840     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2841     VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2842   fi
2843
2844   AC_ARG_WITH(mad-tree,
2845     [    --with-mad-tree=PATH   mad tree for static linking],[],[])
2846   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2847   then
2848     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2849     if test -z "${real_mad_tree}"
2850     then
2851       dnl  The given directory can't be found
2852       AC_MSG_RESULT(no)
2853       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2854     fi
2855     dnl  Use a custom libmad
2856     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2857     if test -f ${real_mad_tree}/mad.h
2858     then
2859       AC_MSG_RESULT(yes)
2860       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2861       VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2862       LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2863       AC_CHECK_LIB(mad, mad_bit_init, [
2864         VLC_ADD_BUILTINS([mpgatofixed32])
2865         VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2866         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2867       ],[])
2868       LDFLAGS="${LDFLAGS_save}"
2869     else
2870       AC_MSG_RESULT(no)
2871       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2872     fi
2873   else
2874     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2875     LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2876     AC_CHECK_HEADERS(mad.h, ,
2877       [ 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.]) ])
2878     AC_CHECK_LIB(mad, mad_bit_init, [
2879       VLC_ADD_PLUGIN([mpgatofixed32])
2880       VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2881       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2882     CPPFLAGS="${CPPFLAGS_save}"
2883     LDFLAGS="${LDFLAGS_save}"
2884   fi
2885 fi
2886
2887 dnl
2888 dnl   libid3tag support (FIXME!!! doesn't work with new input)
2889 dnl
2890 AC_ARG_ENABLE( id3tag,
2891 [  --disable-id3tag        id3tag metadata reader plugin (default enabled)])
2892 AS_IF([test "${enable_id3tag}" != "no"], [
2893   AC_CHECK_HEADERS(id3tag.h, [
2894     AC_CHECK_HEADERS(zlib.h, [
2895       VLC_ADD_LIBS([id3tag],[-lid3tag -lz])
2896       VLC_ADD_PLUGIN([id3tag])
2897     ])
2898   ])
2899 ])
2900
2901 dnl
2902 dnl  avcodec decoder/encoder plugin
2903 dnl
2904
2905 AC_ARG_ENABLE(avcodec,
2906 [  --enable-avcodec        libavcodec codec (default enabled)])
2907 if test "${enable_avcodec}" != "no"
2908 then
2909   PKG_CHECK_MODULES(AVCODEC,[libavcodec libavutil],
2910     [
2911       VLC_SAVE_FLAGS
2912       CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2913       CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2914       AC_CHECK_HEADERS(libavcodec/avcodec.h ffmpeg/avcodec.h)
2915       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
2916       VLC_ADD_PLUGIN([avcodec])
2917       VLC_ADD_LIBS([avcodec],[$AVCODEC_LIBS])
2918       VLC_ADD_CFLAGS([avcodec],[$AVCODEC_CFLAGS])
2919       VLC_RESTORE_FLAGS
2920     ],[
2921       AC_MSG_ERROR([Could not find libavcodec or libavutil. Use --disable-avcodec to ignore this error.])
2922   ])
2923 fi
2924
2925 dnl
2926 dnl  avformat demuxer/muxer plugin
2927 dnl
2928
2929 AC_ARG_ENABLE(avformat,
2930 [  --enable-avformat       libavformat containers (default enabled)])
2931 if test "${enable_avformat}" != "no"
2932 then
2933   PKG_CHECK_MODULES(AVFORMAT,[libavformat libavutil],
2934     [
2935       VLC_SAVE_FLAGS
2936       CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2937       CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2938       AC_CHECK_HEADERS(libavformat/avformat.h ffmpeg/avformat.h)
2939       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
2940       VLC_ADD_PLUGIN([avformat])
2941       VLC_ADD_LIBS([avformat],[$AVFORMAT_LIBS])
2942       VLC_ADD_CFLAGS([avformat],[$AVFORMAT_CFLAGS])
2943       VLC_RESTORE_FLAGS
2944     ],[
2945       AC_MSG_ERROR([Could not find libavformat or libavutil. Use --disable-avformat to ignore this error.])
2946   ])
2947 fi
2948
2949 dnl
2950 dnl  swscale image scaling and conversion plugin
2951 dnl
2952
2953 AC_ARG_ENABLE(swscale,
2954 [  --enable-swscale        libswscale image scaling and conversion (default enabled)])
2955 if test "${enable_swscale}" != "no"
2956 then
2957   PKG_CHECK_MODULES(SWSCALE,[libswscale],
2958     [
2959       VLC_SAVE_FLAGS
2960       CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
2961       CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
2962       AC_CHECK_HEADERS(libswscale/swscale.h ffmpeg/swscale.h)
2963       VLC_ADD_PLUGIN([swscale])
2964       VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
2965       VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
2966       VLC_RESTORE_FLAGS
2967     ],[
2968       AC_MSG_WARN([Could not find libswscale. Trying to enable imgresample.])
2969       enable_imgresample=yes
2970   ])
2971 fi
2972
2973 dnl
2974 dnl  avcodec (deprecated API) image scaling and conversion plugin
2975 dnl
2976 dnl  This is build as a seperate module than the avcodec one to prevent
2977 dnl  stupid run time library load errors from disabling most codecs
2978 dnl  from VLC.
2979 dnl
2980
2981 AC_ARG_ENABLE(imgresample,
2982 [  --enable-imgresample    deprecated libavcodec image scaling and conversion (default disabled)])
2983 if test "${enable_imgresample}" = "yes"
2984 then
2985   PKG_CHECK_MODULES(IMGRESAMPLE,[libavcodec],
2986     [
2987       VLC_SAVE_FLAGS
2988       CPPFLAGS="${CPPFLAGS} ${IMGRESAMPLE_CFLAGS}"
2989       CFLAGS="${CFLAGS} ${IMGRESAMPLE_CFLAGS}"
2990       AC_CHECK_HEADERS(libavcodec/avcodec.h ffmpeg/avcodec.h)
2991       AC_CHECK_LIB(avcodec,img_resample,
2992         [
2993           VLC_ADD_PLUGIN([imgresample])
2994           VLC_ADD_LIBS([imgresample],[$IMGRESAMPLE_LIBS])
2995           VLC_ADD_CFLAGS([imgresample],[$IMGRESAMPLE_CFLAGS])
2996         ],[
2997           AC_MSG_WARN([Could not find img_resample in libavcodec.])
2998           if test "${enable_swscale}" != "no"
2999           then
3000             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.)])
3001           fi
3002         # That sed hack to add -rpath is kind of ugly but at least it fixes
3003         # detection when linking against a shared libavcodec with
3004         # a libavutil not in one of your ld.so.conf directories.
3005         # (for example a local install)
3006         ],[${IMGRESAMPLE_LIBS} `echo ${IMGRESAMPLE_LIBS}|sed s'/-L/-Wl,-rpath=/'`])
3007       VLC_RESTORE_FLAGS
3008     ],[
3009       AC_MSG_WARN([Could not find libavcodec.])
3010   ])
3011 fi
3012
3013 dnl
3014 dnl  postproc plugin
3015 dnl
3016
3017 AC_ARG_ENABLE(postproc,
3018 [  --enable-postproc       libpostproc image post-processing (default enabled)])
3019 if test "${enable_postproc}" != "no"
3020 then
3021   PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
3022     [
3023       VLC_SAVE_FLAGS
3024       CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
3025       CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
3026       AC_CHECK_HEADERS(libpostproc/postproc.h postproc/postprocess.h)
3027       VLC_ADD_PLUGIN([postproc])
3028       VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS])
3029       VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS])
3030       VLC_RESTORE_FLAGS
3031     ],[
3032       AC_MSG_ERROR([Could not find libpostproc.])
3033   ])
3034 fi
3035
3036 dnl
3037 dnl  faad decoder plugin
3038 dnl
3039 AC_ARG_ENABLE(faad,
3040 [  --enable-faad           faad codec (default disabled)])
3041 if test "${enable_faad}" = "yes"
3042 then
3043   AC_ARG_WITH(faad-tree,
3044   [    --with-faad-tree=PATH faad tree for static linking])
3045   if test -n "${with_faad_tree}"
3046   then
3047     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
3048     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
3049     if test -z "${real_faad_tree}"
3050     then
3051       dnl  The given directory can't be found
3052       AC_MSG_RESULT(no)
3053       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
3054     fi
3055     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
3056     then
3057       dnl  Use a custom faad
3058       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
3059       VLC_ADD_BUILTINS([faad])
3060       VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
3061       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
3062     else
3063       dnl  The given libfaad wasn't built
3064       AC_MSG_RESULT(no)
3065       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
3066     fi
3067   else
3068     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
3069     LDFLAGS="${LDFLAGS_save} ${LIBS_faad}"
3070     AC_CHECK_HEADERS(faad.h, ,
3071       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
3072     AC_CHECK_LIB(faad, faacDecOpen, [
3073       VLC_ADD_PLUGIN([faad])
3074       VLC_ADD_LIBS([faad],[-lfaad]) ],
3075       AC_CHECK_LIB(faad, NeAACDecOpen, [
3076         VLC_ADD_PLUGIN([faad])
3077         VLC_ADD_LIBS([faad],[-lfaad]) ],
3078         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
3079     LDFLAGS="${LDFLAGS_save}"
3080     CPPFLAGS="${CPPFLAGS_save}"
3081   fi
3082 fi
3083
3084 dnl
3085 dnl twolame encoder plugin
3086 dnl
3087 AC_ARG_ENABLE(twolame,
3088 [  --enable-twolame        twolame codec (default disabled)])
3089 if test "${enable_twolame}" = "yes"
3090 then
3091   AC_ARG_WITH(twolame-tree,
3092   [    --with-twolame-tree=PATH twolame tree for static linking])
3093   if test -n "${with_twolame_tree}"
3094   then
3095     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
3096     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
3097     if test -z "${real_twolame_tree}"
3098     then
3099       dnl  The given directory can't be found
3100       AC_MSG_RESULT(no)
3101       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
3102     fi
3103     if test -f "${real_twolame_tree}/libtwolame/.libs/libtwolame.a"
3104     then
3105       dnl  Use a custom twolame
3106       AC_MSG_RESULT(${real_twolame_tree}/libtwolame/.libs/libtwolame.a)
3107       VLC_ADD_BUILTINS([twolame])
3108       VLC_ADD_LIBS([twolame],[${real_twolame_tree}/libtwolame/.libs/libtwolame.a])
3109       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/libtwolame -DLIBTWOLAME_STATIC])
3110     else
3111       dnl  The given libtwolame wasn't built
3112       AC_MSG_RESULT(no)
3113       AC_MSG_ERROR([cannot find ${real_twolame_tree}/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
3114     fi
3115   else
3116     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame} -DLIBTWOLAME_STATIC"
3117     LDFLAGS="${LDFLAGS_save} ${LIBS_twolame}"
3118     AC_CHECK_HEADERS(twolame.h, ,
3119       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
3120     AC_CHECK_LIB(twolame, twolame_init, [
3121       VLC_ADD_PLUGIN([twolame])
3122       VLC_ADD_CPPFLAGS([twolame],[-DLIBTWOLAME_STATIC])
3123       VLC_ADD_LIBS([twolame],[-ltwolame]) ],
3124         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
3125     LDFLAGS="${LDFLAGS_save}"  
3126     CPPFLAGS="${CPPFLAGS_save}"
3127   fi
3128 fi
3129
3130 dnl
3131 dnl  QuickTime plugin
3132 dnl
3133 AC_ARG_ENABLE(quicktime,
3134   [  --enable-quicktime      QuickTime module (default enabled on MacOS X)])
3135 if test "${enable_quicktime}" != "no" &&
3136   (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
3137 then
3138   if test "${SYS}" = "mingw32"; then
3139     VLC_ADD_BUILTINS([quicktime])
3140   else
3141   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
3142     [ VLC_ADD_PLUGIN([quicktime])
3143       VLC_ADD_LDFLAGS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
3144     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
3145   fi
3146 fi
3147
3148 dnl
3149 dnl  Real plugin
3150 dnl
3151 AC_ARG_ENABLE(real,
3152   [  --enable-real           Real media module (default disabled)])
3153 if test "${enable_real}" = "yes"; then
3154   VLC_ADD_PLUGIN([realaudio])
3155   VLC_ADD_PLUGIN([realvideo])
3156 fi
3157
3158 dnl
3159 dnl  Real RTSP plugin
3160 dnl
3161 AC_ARG_ENABLE(realrtsp,
3162   [  --enable-realrtsp       Real RTSP module (default disabled)])
3163 if test "${enable_realrtsp}" = "yes"; then
3164   VLC_ADD_PLUGIN([access_realrtsp])
3165 fi
3166
3167 dnl
3168 dnl MP4 module
3169 dnl
3170 AC_CHECK_HEADERS(zlib.h, [
3171   VLC_ADD_LIBS([mp4 skins2 sap mkv gme],[-lz])
3172 ] )
3173
3174 AC_CHECK_HEADERS(sysfs/libsysfs.h, [
3175   VLC_ADD_LIBS([mp4 mkv],[-lsysfs])
3176 ] )
3177
3178 dnl
3179 dnl skins2 module
3180 dnl
3181 AC_ARG_ENABLE(libtar,
3182   [  --enable-libtar support for skins2 (default enabled)])
3183
3184 AS_IF([test "${enable_libtar}" != "no"],[
3185   AC_CHECK_HEADERS(libtar.h, [
3186     VLC_ADD_LIBS([skins2],[-ltar])
3187   ] )
3188 ])
3189
3190 dnl
3191 dnl A52/AC3 decoder plugin
3192 dnl
3193 AC_ARG_ENABLE(a52,
3194   [  --enable-a52            A/52 support with liba52 (default enabled)])
3195 if test "${enable_a52}" != "no"
3196 then
3197   AC_ARG_WITH(a52,
3198     [    --with-a52=PATH       a52 headers and libraries])
3199   AC_ARG_WITH(a52-tree,
3200     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
3201   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
3202   then
3203     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
3204     if test -z "${real_a52_tree}"
3205     then
3206       dnl  The given directory can't be found
3207       AC_MSG_RESULT(no)
3208       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
3209     fi
3210     dnl  Use a custom a52dec
3211     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
3212     if test -f ${real_a52_tree}/include/a52.h
3213     then
3214       AC_MSG_RESULT(yes)
3215       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
3216       VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
3217       LDFLAGS="${LDFLAGS_save} ${LIBS_a52tofloat32}"
3218       AC_CHECK_LIB(a52, a52_free, [
3219         VLC_ADD_BUILTINS([a52tofloat32])
3220         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
3221         VLC_ADD_LIBS([a52tofloat32],[-la52])
3222         ],[
3223         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
3224         then
3225           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
3226         else
3227           AC_MSG_ERROR([the specified tree hasn't been compiled])
3228         fi
3229       ])
3230       LDFLAGS="${LDFLAGS_save}"
3231     else
3232       AC_MSG_RESULT(no)
3233       AC_MSG_ERROR([the specified tree doesn't have a52.h])
3234     fi
3235   else
3236     if test -z "${with_a52}"
3237     then
3238       LDFLAGS_test=""
3239       CPPFLAGS_test=""
3240     else
3241       LDFLAGS_test="-L${with_a52}/lib"
3242       CPPFLAGS_test="-I${with_a52}/include"
3243     fi
3244     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
3245     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
3246     AC_CHECK_HEADERS(a52dec/a52.h, [
3247       AC_CHECK_LIB(a52, a52_free, [
3248         VLC_ADD_PLUGIN([a52tofloat32])
3249         VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
3250         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
3251       ],[
3252         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.])
3253         ])
3254     ],[
3255       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.])
3256     ])
3257     CPPFLAGS="${CPPFLAGS_save}"
3258     LDFLAGS="${LDFLAGS_save}"
3259   fi
3260 fi
3261
3262 AC_ARG_WITH(a52-fixed,
3263       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
3264       [
3265         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
3266
3267 dnl
3268 dnl DTS Coherent Acoustics decoder plugin
3269 dnl
3270 AS_IF([test "x${enable_dts}" != "x"], [
3271   AC_MSG_ERROR([--enable-dts is obsolete. Please use libdca and --enable-dca.])
3272 ])
3273 AS_IF([test "x${with_dts_tree}" != "x"], [
3274   AC_MSG_ERROR([--with-dts-tree is obsolete. Please use libdca and --with-dca-tree.])
3275 ])
3276
3277 AC_ARG_ENABLE(dca,
3278   [  --enable-dca            DTS Coherent Acoustics support with libdca (default enabled)])
3279 AS_IF([test "${enable_dca}" != "no"], [
3280   AC_ARG_WITH(dca-tree,
3281     [    --with-dca-tree=PATH  libdca tree for static linking],,
3282     [with_dca_tree="no"])
3283   AS_IF([test "${with_dca_tree}" != "no"], [
3284     real_dca_tree="`cd ${with_dca_tree} 2>/dev/null && pwd`"
3285     AS_IF([test -z "${real_dca_tree}"], [
3286       dnl  The given directory can't be found
3287       AC_MSG_RESULT(no)
3288       AC_MSG_ERROR([${with_dca_tree} directory doesn't exist])
3289     ])
3290     dnl  Use a custom libdca
3291     AC_MSG_CHECKING(for libdca in ${real_dca_tree})
3292     AS_IF([test -f "${real_dca_tree}/libdca/.libs/libdca.a"], [
3293       AC_MSG_RESULT(yes)
3294       VLC_ADD_LIBS([dtstofloat32],[${real_dca_tree}/libdca/.libs/libdca.a])
3295       AS_IF([test -f "${real_dca_tree}/include/dca.h"], [
3296         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/include])
3297       ], [
3298         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/../include])
3299       ])
3300     ], [
3301       AC_MSG_RESULT(no)
3302       AC_MSG_ERROR([the specified tree doesn't have libdca/.libs/libdca.a])
3303     ])
3304   ], [
3305     PKG_CHECK_MODULES([DCA], [libdca >= 0.0.5], [
3306       VLC_ADD_PLUGIN([dtstofloat32])
3307       VLC_ADD_CPPFLAGS([dtstofloat32], [${DCA_CFLAGS}])
3308       VLC_ADD_LIBS([dtstofloat32], [${DCA_LIBS}])
3309     ], [
3310       AS_IF([test "x${enable_dca}" != "x"], [
3311         AC_MSG_ERROR([${DCA_PKG_ERRORS}])
3312       ])
3313     ])
3314   ])
3315 ])
3316
3317 dnl
3318 dnl  Flac plugin
3319 dnl
3320 AC_ARG_ENABLE(flac,
3321   [  --enable-flac           libflac decoder/encoder support (default disabled)])
3322 if test "${enable_flac}" = "yes"
3323 then
3324   AC_ARG_WITH(flac-tree,
3325   [    --with-flac-tree=PATH flac tree for static linking])
3326   if test -n "${with_flac_tree}"
3327   then
3328     AC_MSG_CHECKING(for libFLAC.a in ${with_flac_tree})
3329     real_flac_tree="`cd ${with_flac_tree} 2>/dev/null && pwd`"
3330     if test -z "${real_flac_tree}"
3331     then
3332       dnl  The given directory can't be found
3333       AC_MSG_RESULT(no)
3334       AC_MSG_ERROR([cannot cd to ${with_flac_tree}])
3335     fi
3336     if test -f "${real_flac_tree}/src/libFLAC/.libs/libFLAC.a"
3337     then
3338       dnl  Use a custom flac
3339       AC_MSG_RESULT(${real_flac_tree}/src/libFLAC/.libs/libFLAC.a)
3340       VLC_ADD_LIBS([flac],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a])
3341       VLC_ADD_CFLAGS([flac],[-I${real_flac_tree}/include])
3342       AC_DEFINE(HAVE_FLAC_STREAM_DECODER_H, 1, [Define if you have FLAC])
3343     else
3344       dnl  The given flac wasn't built
3345       AC_MSG_RESULT(no)
3346       AC_MSG_ERROR([cannot find ${real_flac_tree}/src/libFLAC/.libs/libFLAC.a, make sure you compiled flac in ${with_flac_tree}])
3347     fi
3348   else
3349     AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
3350       VLC_ADD_LIBS([flac],[-lFLAC -logg])
3351      ],[])
3352   fi
3353 fi
3354
3355 dnl
3356 dnl  Libmpeg2 plugin
3357 dnl
3358 AC_ARG_ENABLE(libmpeg2,
3359   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
3360 if test "${enable_libmpeg2}" != "no"
3361 then
3362   AC_ARG_WITH(libmpeg2-tree,
3363   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
3364   if test -n "${with_libmpeg2_tree}"
3365   then
3366     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
3367     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
3368     if test -z "${real_libmpeg2_tree}"
3369     then
3370       dnl  The given directory can't be found
3371       AC_MSG_RESULT(no)
3372       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
3373     fi
3374     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
3375     then
3376       dnl  Use a custom libmpeg2
3377       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
3378       VLC_ADD_BUILTINS([libmpeg2])
3379       VLC_ADD_LIBS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
3380       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
3381       eval "`cd ${real_libmpeg2_tree}/include && ln -sf . mpeg2dec 2>/dev/null`"
3382     else
3383       dnl  The given libmpeg2 wasn't built
3384       AC_MSG_RESULT(no)
3385       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
3386     fi
3387   else
3388     AC_CHECK_HEADERS(mpeg2dec/mpeg2.h, [
3389       AC_MSG_CHECKING(for libmpeg2 version >= 0.3.2)
3390       AC_EGREP_CPP(yes,
3391         [#include <mpeg2dec/mpeg2.h>
3392          #ifdef MPEG2_RELEASE
3393          #if MPEG2_RELEASE >= MPEG2_VERSION(0,3,2)
3394          yes
3395          #endif
3396          #endif],
3397         [AC_MSG_RESULT([yes])
3398           VLC_ADD_PLUGIN([libmpeg2])
3399           VLC_ADD_LIBS([libmpeg2],[-lmpeg2])],
3400         [AC_MSG_RESULT([no])
3401           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.])])],
3402
3403       [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.])]
3404     )
3405   fi
3406 fi
3407
3408 dnl
3409 dnl  Vorbis plugin
3410 dnl
3411 AC_ARG_ENABLE(vorbis,
3412   [  --enable-vorbis         Vorbis decoder support (default enabled)])
3413 if test "${enable_vorbis}" != "no"
3414 then
3415   AC_ARG_WITH(vorbis-tree,
3416   [    --with-vorbis-tree=PATH vorbis tree for static linking])
3417   if test -n "${with_vorbis_tree}"
3418   then
3419     AC_MSG_CHECKING(for libvorbis.a in ${with_vorbis_tree})
3420     real_vorbis_tree="`cd ${with_vorbis_tree} 2>/dev/null && pwd`"
3421     if test -z "${real_vorbis_tree}"
3422     then
3423       dnl  The given directory can't be found
3424       AC_MSG_RESULT(no)
3425       AC_MSG_ERROR([cannot cd to ${with_vorbis_tree}])
3426     fi
3427     if test -f "${real_vorbis_tree}/lib/.libs/libvorbis.a"
3428     then
3429       dnl  Use a custom vorbis 
3430       AC_MSG_RESULT(${real_vorbis_tree}/lib/.libs/libvorbis.a)
3431       VLC_ADD_PLUGIN([vorbis])
3432       VLC_ADD_LIBS([vorbis],[${real_vorbis_tree}/lib/.libs/libvorbis.a ${real_vorbis_tree}/lib/.libs/libvorbisenc.a])
3433       VLC_ADD_CFLAGS([vorbis],[-I${real_vorbis_tree}/include])
3434     else
3435       dnl  The given vorbis wasn't built
3436       AC_MSG_RESULT(no)
3437       AC_MSG_ERROR([cannot find ${real_vorbis_tree}/lib/.libs/libvorbis.a, make sure you compiled vorbis in ${with_vorbis_tree}])
3438     fi
3439   else
3440     AC_CHECK_HEADERS(vorbis/codec.h, [
3441       VLC_ADD_PLUGIN([vorbis])
3442       VLC_ADD_LIBS([vorbis],[-lvorbis -logg -lm]) ],[])
3443
3444     AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
3445       VLC_ADD_LIBS([vorbis],[-lvorbisenc -lm]) ],[])
3446   fi
3447 fi
3448
3449 dnl
3450 dnl  Tremor plugin
3451 dnl
3452 AC_ARG_ENABLE(tremor,
3453   [  --enable-tremor         Tremor decoder support (default disabled)])
3454 if test "${enable_tremor}" = "yes"
3455 then
3456   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3457     VLC_ADD_PLUGIN([tremor])
3458     VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
3459    ],[])
3460 fi
3461
3462 dnl
3463 dnl  Speex plugin
3464 dnl
3465 AC_ARG_ENABLE(speex,
3466   [  --enable-speex          Speex decoder support (default enabled)])
3467 if test "${enable_speex}" != "no"
3468 then
3469   AC_ARG_WITH(speex-tree,
3470   [    --with-speex-tree=PATH speex tree for static linking])
3471   if test -n "${with_speex_tree}"
3472   then
3473     AC_MSG_CHECKING(for libspeex.a in ${with_speex_tree})
3474     real_speex_tree="`cd ${with_speex_tree} 2>/dev/null && pwd`"
3475     if test -z "${real_speex_tree}"
3476     then
3477       dnl  The given directory can't be found
3478       AC_MSG_RESULT(no)
3479       AC_MSG_ERROR([cannot cd to ${with_speex_tree}])
3480     fi
3481     if test -f "${real_speex_tree}/libspeex/.libs/libspeex.a"
3482     then
3483       dnl  Use a custom speex
3484       AC_MSG_RESULT(${real_speex_tree}/libspeex/.libs/libspeex.a)
3485       VLC_ADD_PLUGIN([speex])
3486       VLC_ADD_LIBS([speex],[${real_speex_tree}/libspeex/.libs/libspeex.a])
3487       VLC_ADD_CFLAGS([speex],[-I${real_speex_tree}/include])
3488     else
3489       dnl  The given speex wasn't built
3490       AC_MSG_RESULT(no)
3491       AC_MSG_ERROR([cannot find ${real_speex_tree}/libspeex/.libs/libspeex.a, make sure you compiled speex in ${with_speex_tree}])
3492     fi
3493   else
3494     AC_CHECK_HEADERS(speex/speex.h, [
3495       LDFLAGS="${LDFLAGS_save} ${LIBS_speex}"
3496       AC_CHECK_LIB(speex, speex_decode_int, [
3497         VLC_ADD_PLUGIN([speex])
3498         VLC_ADD_LIBS([speex],[-lspeex]) ],
3499         [ AC_MSG_RESULT([no])
3500           AC_MSG_WARN([Your libspeex is too old, please get the development
3501                        version.]) ],[])
3502       LDFLAGS="${LDFLAGS_save}"
3503       ],[])
3504   fi
3505 fi
3506
3507 dnl
3508 dnl  tarkin decoder plugin
3509 dnl
3510 AC_ARG_ENABLE(tarkin,
3511 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3512 if test "${enable_tarkin}" = "yes"
3513 then
3514   AC_ARG_WITH(tarkin-tree,
3515   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3516   if test -n "${with_tarkin_tree}"
3517   then
3518     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3519     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3520     if test -f "${real_tarkin_tree}/tarkin.o"
3521     then
3522       VLC_ADD_BUILTINS([tarkin])
3523       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3524       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])
3525       AC_MSG_RESULT(yes)
3526     else
3527       dnl  The given tarkin tree wasn't built
3528       AC_MSG_RESULT(no)
3529       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3530                     make sure you compiled tarkin in ${with_tarkin_tree}])
3531     fi
3532   fi
3533 fi
3534
3535 dnl
3536 dnl  theora decoder plugin
3537 dnl
3538 AC_ARG_ENABLE(theora,
3539 [  --enable-theora         experimental theora codec (default disabled)])
3540 if test "${enable_theora}" = "yes"
3541 then
3542   AC_CHECK_HEADERS(theora/theora.h, [
3543     AC_CHECK_LIB(theora, theora_granule_time, [
3544       VLC_ADD_PLUGIN([theora])
3545       theora_libs="-ltheora -logg"
3546       VLC_ADD_LIBS([theora],[${theora_libs}]) ],[
3547       AC_MSG_ERROR([libtheora doesn't appear to be installed on your system.
3548 You also need to check that you have a libogg posterior to the 1.0 release.])],
3549       [-logg])
3550   ])
3551 fi
3552
3553 dnl
3554 dnl  dirac decoder plugin
3555 dnl
3556 AC_ARG_ENABLE(dirac,
3557 [  --enable-dirac          experimental dirac codec (default disabled)])
3558 if test "${enable_dirac}" = "yes"; then
3559   PKG_CHECK_MODULES(DIRAC,[dirac >= 0.9.0], [
3560       VLC_ADD_PLUGIN([dirac])
3561       VLC_ADD_CFLAGS([dirac],[$DIRAC_CFLAGS])
3562       VLC_ADD_LIBS([dirac],[$DIRAC_LIBS -lstdc++]) ],[
3563       AC_MSG_ERROR([libdirac doesn't appear to be installed on you system.])
3564   ])
3565 fi
3566
3567 dnl
3568 dnl  PNG decoder module
3569 dnl
3570 AC_ARG_ENABLE(png,
3571   [  --enable-png            PNG support (default enabled)])
3572 if test "${enable_png}" != "no"; then
3573 AC_CHECK_HEADERS(png.h, [
3574   LDFLAGS="${LDFLAGS_save} -lz"
3575   AC_CHECK_LIB(png, png_set_rows, [
3576     VLC_ADD_LIBS([png],[-lpng -lz])
3577     VLC_ADD_PLUGIN([png])
3578     VLC_ADD_PLUGIN([osdmenu])
3579     VLC_ADD_PLUGIN([osd_parser])
3580     AC_DEFINE(HAVE_LIBPNG, 1, [Define if you have the PNG library: libpng])],
3581     [],[-lz])
3582     LDFLAGS="${LDFLAGS_save}"
3583   ])
3584 fi
3585 AM_CONDITIONAL(BUILD_OSDMENU, [test "${enable_png}" != "no"])
3586
3587 dnl
3588 dnl H264 encoder plugin (using libx264)
3589 dnl
3590 AC_ARG_ENABLE(x264,
3591   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3592 if test "${enable_x264}" != "no"; then
3593   AC_ARG_WITH(x264-tree,
3594     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3595   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3596   then
3597     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3598     if test -z "${real_x264_tree}"
3599     then
3600       dnl  The given directory can't be found
3601       AC_MSG_RESULT(no)
3602       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3603     fi
3604     dnl  Use a custom libx264
3605     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3606     if test -f ${real_x264_tree}/x264.h
3607     then
3608       AC_MSG_RESULT(yes)
3609       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3610       VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
3611       PKG_CHECK_MODULES(X264,x264, [
3612         VLC_ADD_PLUGIN([x264])
3613         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3614         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3615       ],[
3616         AC_MSG_ERROR([the specified tree hasn't been compiled])
3617       ])
3618       LDFLAGS="${LDFLAGS_save}"
3619     else
3620       AC_MSG_RESULT(no)
3621       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3622     fi
3623   else
3624       PKG_CHECK_MODULES(X264,x264, [
3625         VLC_ADD_PLUGIN([x264])
3626         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3627         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3628       ],[
3629         if test "${enable_x264}" = "yes"; then
3630             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
3631           fi
3632       ])
3633     LDFLAGS="${LDFLAGS_save}"
3634   fi
3635 fi
3636
3637 dnl
3638 dnl libfluidsynth (MIDI synthetizer) plugin
3639 dnl
3640 AC_ARG_ENABLE(fluidsynth,
3641   [  --enable-fluidsynth     MIDI synthesisr with libfluidsynth (default enabled)])
3642 AS_IF([test "x${enable_fluidsynth}" != "xno"], [
3643   PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth, [
3644     VLC_ADD_PLUGIN(fluidsynth)
3645     VLC_ADD_CFLAGS(fluidsynth, [${FLUIDSYNTH_CFLAGS}])
3646     VLC_ADD_LIBS(fluidsynth, [${FLUIDSYNTH_LIBS}])
3647   ], [
3648     AS_IF([test "x${enable_fluidsynth}" != "x"], [
3649       AC_MSG_ERROR([${FLUIDSYNTH_PKG_ERRORS}])
3650     ])
3651   ])
3652 ])
3653
3654 dnl
3655 dnl Teletext Modules
3656 dnl vbi decoder plugin (using libzbvi)
3657 dnl telx module
3658 dnl uncompatible
3659 dnl
3660 AC_ARG_ENABLE(zvbi,
3661   [  --enable-zvbi           VBI (inc. Teletext) decoding support with libzvbi (default enabled)])
3662 AC_ARG_ENABLE(telx,
3663   [  --enable-telx           Teletext decoding module (conflicting with zvbi) (default disabled)])
3664
3665 AS_IF( [test "${enable_zvbi}" != "no"],[
3666   AS_IF( [test "${enable_telx}" = "yes"],[
3667     AC_MSG_ERROR([The zvbi and telx modules are uncompatibles. Disable the other if you enable one.])
3668   ],[
3669     PKG_CHECK_MODULES(ZVBI,
3670         zvbi-0.2 >= 0.2.25,
3671         [
3672           VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
3673           VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
3674           VLC_ADD_PLUGIN([zvbi])
3675           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built]) 
3676         ],[
3677           AC_MSG_WARN(ZVBI library not found. Enabling the telx module instead)
3678           enable_telx="yes"
3679         ])
3680     ])  
3681   ])
3682 AS_IF( [test "${enable_telx}" = "yes"],[
3683   VLC_ADD_PLUGIN([telx])
3684   ])
3685
3686 dnl
3687 dnl asa/csri subtitle rendering module
3688 dnl
3689 AC_ARG_ENABLE(csri,
3690   [  --enable-csri           Subtitle support using CSRI / asa (default disabled)])
3691 AS_IF( [test "${enable_csri}" = "yes"], [
3692   PKG_CHECK_MODULES(CSRI,
3693       csri >= 0.1.0,
3694       [
3695         VLC_ADD_LDFLAGS([csri],[$CSRI_LIBS])
3696         VLC_ADD_CFLAGS([csri],[$CSRI_CFLAGS])
3697         VLC_ADD_PLUGIN([csri])
3698       ],[
3699         AC_MSG_WARN([CSRI helper library not found])
3700       ])
3701   ])
3702
3703 dnl
3704 dnl asa demuxer
3705 dnl
3706 AC_ARG_ENABLE(asademux,
3707   [  --enable-asademux       asa subtitle demuxing (default disabled)])
3708 AS_IF( [test "${enable_asademux}" = "yes"], [
3709   PKG_CHECK_MODULES(PCRE,
3710       libpcre >= 6.5,
3711       [
3712         VLC_ADD_LDFLAGS([asademux],[$PCRE_LIBS])
3713         VLC_ADD_CFLAGS([asademux],[$PCRE_CFLAGS])
3714         VLC_ADD_PLUGIN([asademux])
3715       ],[
3716         AC_MSG_WARN([PCRE library not found (required for asademux)])
3717       ])
3718   ])
3719
3720 dnl
3721 dnl  CMML plugin
3722 dnl
3723 AC_ARG_ENABLE(cmml,
3724   [  --enable-cmml           CMML support (default enabled)])
3725 if test "${enable_cmml}" != "no"
3726 then
3727   VLC_ADD_PLUGIN([cmml])
3728 fi
3729
3730 dnl
3731 dnl  kate decoder plugin
3732 dnl
3733 AC_ARG_ENABLE(kate,
3734 [  --enable-kate           kate codec (default enabled)])
3735 AS_IF([test "${enable_kate}" != "no"], [
3736   PKG_CHECK_MODULES(KATE,[kate >= 0.1.2], [
3737       VLC_ADD_PLUGIN([kate])
3738       VLC_ADD_CFLAGS([kate],[$KATE_CFLAGS])
3739       VLC_ADD_LIBS([kate],[$KATE_LIBS]) ],[
3740         AC_CHECK_HEADERS(kate/kate.h, [
3741           AC_CHECK_LIB(kate, kate_decode_init, [
3742             VLC_ADD_PLUGIN([kate])
3743             kate_libs="-lkate -logg"
3744             VLC_ADD_LDFLAGS([kate],[${kate_libs}]) ],[
3745             AS_IF([test "x${enable_kate}" != "x"], [
3746               AC_MSG_ERROR([libkate doesn't appear to be installed on your system.
3747               You also need to check that you have a libogg posterior to the 1.0 release.])
3748             ])
3749           ], [-lkate -logg])
3750         ],[
3751           AS_IF([test "x${enable_kate}" != "x"], [
3752             AC_MSG_ERROR([libkate headers do not appear to be installed on your system.
3753             You also need to check that you have a libogg posterior to the 1.0 release.])
3754           ])
3755         ])
3756   ])
3757 ])
3758
3759
3760 dnl
3761 dnl  Video plugins
3762 dnl
3763
3764 AC_ARG_WITH(,[Video plugins:])
3765
3766 dnl Check for DPMS
3767 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
3768   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"