Trailing ;
[vlc.git] / configure.ac
1 dnl Autoconf settings for vlc
2
3 AC_COPYRIGHT([Copyright 2002-2009 the VideoLAN team])
4
5 AC_INIT(vlc, 1.0.0-git)
6 VERSION_MAJOR="1"
7 VERSION_MINOR="0"
8 VERSION_REVISION="0"
9 VERSION_EXTRA="-git"
10 PKGDIR="vlc"
11 AC_SUBST(PKGDIR)
12
13 CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
14 CODENAME="Goldeneye"
15 COPYRIGHT_YEARS="1996-2009"
16
17 AC_PREREQ(2.59c)
18 AC_CONFIG_SRCDIR(src/libvlc.c)
19 AC_CONFIG_AUX_DIR(autotools)
20 AC_CONFIG_MACRO_DIR(m4)
21 AC_CANONICAL_BUILD
22 AC_CANONICAL_HOST
23
24 AM_INIT_AUTOMAKE(tar-ustar)
25 AM_CONFIG_HEADER(config.h)
26
27 dnl Too many people are not aware of maintainer mode:
28 dnl If you want to use it, you definitely know what you are doing, so
29 dnl you can specify "--disable-maintainer-mode". But if you want the default
30 dnl automake behavior, you've likely never heard of maintainer mode, so we
31 dnl can't expect you to enable it manually.
32
33 AS_IF([test "x${enable_maintainer_mode}" != "xno"],
34         [enable_maintainer_mode="yes"])
35 AM_MAINTAINER_MODE
36
37 dnl
38 dnl Directories
39 dnl
40 dnl vlcincludedir="\${includedir}/\${PKGDIR}"
41 dnl AC_SUBST(vlcincludedir)
42 vlcdatadir="\${datadir}/\${PKGDIR}"
43 AC_SUBST(vlcdatadir)
44 vlclibdir="\${libdir}/\${PKGDIR}"
45 AC_SUBST(vlclibdir)
46
47 dnl
48 dnl  Deprecated options
49 dnl  to notify packagers that stuff has changed
50 dnl
51 AC_ARG_ENABLE(python-bindings,
52   [  --enable-python-bindings Always fails for historical reasons)],,
53   [enable_python_bindings="no"])
54 AS_IF([test "${enable_python_bindings}" != "no"], [
55   AC_MSG_ERROR([Python bindings are now built from a separate source package])
56 ])
57
58 AC_ARG_ENABLE(java-bindings,
59   [  --enable-java-bindings  Always fails for historical reasons],,
60   [enable_java_bindings="no"])
61 AS_IF([test "${enable_java_bindings}" != "no"], [
62   AC_MSG_ERROR([Java bindings are now built from a separate source package])
63 ])
64
65 dnl
66 dnl  Save *FLAGS
67 dnl
68 VLC_SAVE_FLAGS
69
70 dnl
71 dnl Check for tools
72 dnl
73 AC_PROG_CC_C99
74 AC_USE_SYSTEM_EXTENSIONS
75 AC_DEFINE([_FORTIFY_SOURCE], 2, [Define to '2' to get glibc warnings.])
76
77 AM_PROG_CC_C_O
78 AC_PROG_CXX
79 AC_PROG_CPP
80 AC_PROG_OBJC
81 _AM_DEPENDENCIES([OBJC])
82 AC_PROG_EGREP
83 AC_PROG_MAKE_SET
84 AC_PROG_INSTALL
85 AM_PROG_AS
86
87 dnl Find the right ranlib, even when cross-compiling
88 AC_CHECK_TOOL(RANLIB, ranlib, :)
89 AC_CHECK_TOOL(STRIP, strip, :)
90 AC_CHECK_TOOL(AR, ar, :)
91 AC_CHECK_TOOL(LD, ld, :)
92 AC_CHECK_TOOL(DLLTOOL, dlltool, :)
93
94 dnl Check for compiler properties
95 AC_C_CONST
96 AC_C_INLINE
97 AC_C_RESTRICT
98
99 dnl Allow binary package maintainer to pass a custom string to avoid 
100 dnl cache problem
101 AC_ARG_WITH(binary-version, 
102         AS_HELP_STRING([--with-binary-version=STRING],
103              [To avoid plugins cache problem between binary version]),[],[])
104 AS_IF([test -n "${with_binary_version}"],[
105       AC_DEFINE_UNQUOTED([DISTRO_VERSION],["${with_binary_version}"],
106                          [Binary specific version])
107       ])
108
109
110 dnl
111 dnl  Check for the contrib directory
112 dnl
113 AC_ARG_WITH(contrib,
114     [  --without-contrib       do not use the libraries in extras/contrib],[],[])
115   AS_IF([test "${with_contrib}" != "no"],[
116     AC_MSG_CHECKING([for libs in extras/contrib])
117     topdir="`dirname $0`"
118     if test "`echo \"$topdir\" | cut -c 1`" != "/"; then
119        topdir="`pwd`/$topdir"
120     fi
121   AS_IF([test -d ${topdir}/extras/contrib/lib],[
122    AS_IF([test "`grep HOST ${topdir}/extras/contrib/config.mak 2>/dev/null|awk '{print $3}'`" != "`$CC -dumpmachine`"],[
123       if test "${with_contrib}" = "yes"; then
124         AC_MSG_RESULT([no])
125         AC_MSG_ERROR([ not using the libs in extras/contrib as it is not the same host])
126       else
127         AC_MSG_RESULT([no])
128         AC_MSG_WARN([ not using the libs in extras/contrib as it is not the same host])
129       fi
130      ],[
131     AC_MSG_RESULT([yes])
132     export PATH=${topdir}/extras/contrib/bin:$PATH
133     CPPFLAGS="${CPPFLAGS} -I${topdir}/extras/contrib/include"
134     CPPFLAGS_save="${CPPFLAGS_save} -I${topdir}/extras/contrib/include"
135     CFLAGS="${CFLAGS} -I${topdir}/extras/contrib/include"
136     CFLAGS_save="${CFLAGS_save} -I${topdir}/extras/contrib/include"
137     CXXFLAGS="${CXXFLAGS} -I${topdir}/extras/contrib/include"
138     CXXFLAGS_save="${CXXFLAGS_save} -I${topdir}/extras/contrib/include"
139     OBJCFLAGS="${OBJCFLAGS} -I${topdir}/extras/contrib/include"
140     OBJCFLAGS_save="${OBJCFLAGS_save} -I${topdir}/extras/contrib/include"
141     if test $build = $host -o "$PKG_CONFIG_LIBDIR"; then
142         export PKG_CONFIG_PATH=${topdir}/extras/contrib/lib/pkgconfig:$PKG_CONFIG_PATH
143     else
144         export PKG_CONFIG_LIBDIR=${topdir}/extras/contrib/lib/pkgconfig
145     fi
146     LDFLAGS="${LDFLAGS} -L${topdir}/extras/contrib/lib"
147     LDFLAGS_save="${LDFLAGS_save} -L${topdir}/extras/contrib/lib"
148
149     if test -z $with_mozilla_sdk_path; then
150        with_mozilla_sdk_path=${topdir}/extras/contrib/gecko-sdk
151     fi
152     if test -z $with_cyberlink_tree; then
153        with_cyberlink_tree=${topdir}/extras/contrib/src/clinkcc
154     fi
155
156     if test ".`uname -s`" = ".Darwin"; then
157       export LD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$LD_LIBRARY_PATH
158       export DYLD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$DYLD_LIBRARY_PATH
159     elif test ".`uname -s`" = ".BeOS"; then
160       export LIBRARY_PATH=${topdir}/extras/contrib/lib:$LIBRARY_PATH
161       export BELIBRARIES=${topdir}/extras/contrib/lib:$BELIBRARIES
162     fi
163     ])
164   ],[
165     AC_MSG_RESULT([no])
166   ])
167 ])
168 dnl
169 dnl  Set default values
170 dnl
171 LDFLAGS_vlc="${LDFLAGS}"
172
173 dnl
174 dnl  Check the operating system
175 dnl
176 case "${host_os}" in
177   "")
178     SYS=unknown
179     ;;
180   linux*)
181     SYS=linux
182     ;;
183   bsdi*)
184     SYS=bsdi
185     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
186     VLC_ADD_LIBS([dvd dvdcss vcd cdda vcdx cddax],[-ldvd])
187     ;;
188   *bsd*)
189     SYS="${host_os}"
190     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
191     case "${host_os}" in
192       freebsd*)
193         CPPFLAGS_save="${CPPFLAGS_save} -I/usr/local/include"
194         CPPFLAGS="${CPPFLAGS_save}"
195         LDFLAGS_save="${LDFLAGS_save} -L/usr/local/lib"
196         LDFLAGS="${LDFLAGS_save}"
197         ;;
198     esac
199     ;;
200   darwin*)
201     SYS=darwin
202     CFLAGS_save="${CFLAGS_save} -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
203     CXXFLAGS_save="${CXXFLAGS_save} -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
204     OBJCFLAGS_save="${OBJCFLAGS_save} -D_INTL_REDIRECT_MACROS -std=gnu99"; OBJCFLAGS="${OBJCFLAGS_save}"
205     LDFLAGS_save="${LDFLAGS_save} -Wl,-headerpad_max_install_names"; LDFLAGS="${LDFLAGS_save}"
206     VLC_ADD_LDFLAGS([mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
207     VLC_ADD_LDFLAGS([mkv mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
208     VLC_ADD_LDFLAGS([vlc],[-Wl,-undefined,dynamic_lookup])
209     VLC_ADD_LDFLAGS([libvlc_control],[-Wl,dynamic_lookup])
210     VLC_ADD_LDFLAGS([avcodec avformat swscale imgresample postproc i420_rgb_mmx x264],[-Wl,-read_only_relocs,suppress])
211     VLC_ADD_CFLAGS([motion],[-fconstant-cfstrings])
212     VLC_ADD_LDFLAGS([libvlc],[-Wl,-framework,CoreFoundation])
213     VLC_ADD_LDFLAGS([motion],[-Wl,-framework,IOKit,-framework,CoreFoundation])
214     AC_ARG_ENABLE(macosx-defaults,
215       AS_HELP_STRING([--enable-macosx-defaults],[Build the default configuration
216                      on Mac OS X (default enabled)]))
217     if test "x${enable_macosx_defaults}" != "xno"
218     then
219         echo ""
220         echo "Building with Mac OS X defaults:"
221         with_macosx_version_min="10.4"
222         echo "  Assuming --with-macosx-version-min=10.4"
223         build_dir=`pwd`
224         echo "  Assuming --prefix=${build_dir}/vlc_install_dir"
225         ac_default_prefix="${build_dir}/vlc_install_dir"
226         enable_macosx="yes"
227         echo "  Assuming --enable-macosx"
228         enable_faad="yes"
229         echo "  Assuming --enable-faad"
230         enable_flac="yes"
231         echo "  Assuming --enable-flac"
232         enable_theora="yes"
233         echo "  Assuming --enable-theora"
234         enable_shout="yes"
235         echo "  Assuming --enable-shout"
236         enable_cddax="yes"
237         echo "  Assuming --enable-cddax"
238         enable_vcdx="yes"
239         echo "  Assuming --enable-vcdx"
240         enable_caca="yes"
241         echo "  Assuming --enable-caca"
242         enable_goom="yes"
243         echo "  Assuming --enable-goom"
244         enable_ncurses="yes"
245         echo "  Assuming --enable-ncurses"
246         enable_twolame="yes"
247         echo "  Assuming --enable-twolame"
248         enable_realrtsp="yes"
249         echo "  Assuming --enable-realrtsp"
250         enable_update_check="yes"
251         echo "  Assuming --enable-update-check"
252         enable_libass="yes"
253         echo "  Assuming --enable-libass"
254         enable_asademux="yes"
255         echo "  Assuming --enable-asademux"
256
257         enable_skins2="no"
258         echo "  Assuming --disable-skins2"
259         enable_x11="no"
260         echo "  Assuming --disable-x11"
261         enable_glx="no"
262         echo "  Assuming --disable-glx"
263         enable_xvideo="no"
264         echo "  Assuming --disable-xvideo"
265     fi
266     if test ".`uname -p`" = ".i386"; then
267         dnl Due to a ld(64) bug in 10.5 we cannot use our mmx code
268         dnl without hacking it a lot, we disable mmx and sse.
269         dnl (that bug is about ld being unable to handle
270         dnl text relocation)
271         save_cflags="$CFLAGS"
272         CFLAGS="$CFLAGS -dynamiclib -single_module -read_only_relocs suppress"
273         AC_TRY_LINK(
274             [int a;], [asm("movq _a,%mm0\n");],
275             ac_ld_does_not_support_text_reloc=no,
276             ac_ld_does_not_support_text_reloc=yes)
277         CFLAGS="$save_cflags"
278
279         if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
280             enable_mmx="no"
281             echo "  Assuming --disable-mmx (due to a bug in ld)"
282             enable_sse="no"
283             echo "  Assuming --disable-sse (due to a bug in ld)"
284         fi
285     fi
286     dnl
287     dnl  Check for Mac OS X SDK settings
288     dnl
289     AC_ARG_WITH(macosx-sdk,
290        [  --with-macosx-sdk=DIR   compile using the SDK in DIR])
291     if test "${with_macosx_sdk}" != "" ; then
292         CPP="${CPP} -isysroot ${with_macosx_sdk}" 
293         CC="${CC} -isysroot ${with_macosx_sdk}" 
294         CXX="${CXX} -isysroot ${with_macosx_sdk}"
295         OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
296         LD="${LD} -syslibroot ${with_macosx_sdk}"
297     fi
298     AC_ARG_WITH(macosx-version-min,
299        [  --with-macosx-version-min=VERSION  compile for MacOSX VERSION and above])
300     if test "${with_macosx_version_min}" != "" ; then
301         CPP="${CPP} -mmacosx-version-min=${with_macosx_version_min}" 
302         CC="${CC} -mmacosx-version-min=${with_macosx_version_min}" 
303         CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
304         OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
305         LD="${LD} -macosx_version_min=${with_macosx_version_min}"
306         CFLAGS_save="${CFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CFLAGS="${CFLAGS_save}"
307         CXXFLAGS_save="${CXXFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CXXFLAGS="${CXXFLAGS_save}"
308         OBJCFLAGS_save="${OBJCFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; OBJCFLAGS="${OBJCFLAGS_save}"
309         MACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}
310         export MACOSX_DEPLOYMENT_TARGET
311     fi
312     ;;
313   *mingw32* | *cygwin* | *wince* | *mingwce* | *pe*)
314     AC_CHECK_TOOL(WINDRES, windres, :)
315
316     case "${host_os}" in
317       *wince* | *mingwce* | *mingw32ce* | *pe*)
318         SYS=mingwce
319         dnl Sadly CeGCC still needs non-wince macros
320         AC_DEFINE([_WIN32_WINNT], 0x0501, [Define to '0x0500' for Windows 2000 APIs.])
321         ;;
322       *mingw32*)
323         SYS=mingw32
324         AC_DEFINE([_WIN32_WINNT], 0x0500, [Define to '0x0500' for Windows 2000 APIs.])
325         ;;
326       *cygwin*)
327         dnl Check if we are using the mno-cygwin mode in which case we are
328         dnl actually dealing with a mingw32 compiler.
329         AC_DEFINE([_WIN32_WINNT], 0x0500, [Define to '0x0500' for Windows 2000 APIs.])
330         AC_EGREP_CPP(yes,
331             [#ifdef WIN32
332              yes
333              #endif],
334             SYS=mingw32, SYS=cygwin)
335         ;;
336     esac
337
338     if test "${SYS}" = "mingw32"; then
339         # add ws2_32 for closesocket, select, recv
340         VLC_ADD_LIBS([libvlc],[-lws2_32 -lnetapi32 -lwinmm])
341         VLC_ADD_LDFLAGS([vlc],[-mwindows])
342         VLC_ADD_LIBS([activex mozilla],[-lgdi32])
343         VLC_ADD_LIBS([cdda vcdx cddax sdl_image],[-lwinmm])
344         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 stream_out_raop vod_rtsp access_realrtsp rtp telnet rc netsync gnutls growl_udp flac ts audioscrobbler lua remoteosd],[-lws2_32])
345     fi
346     if test "${SYS}" = "mingwce"; then
347         # add ws2 for closesocket, select, recv
348         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])
349         VLC_ADD_LIBS([libvlc],[-lmmtimer])
350    fi
351     ;;
352   *nto*)
353     SYS=nto
354     VLC_ADD_LIBS([x11 xvideo],[-lsocket])
355     ;;
356   solaris*)
357     SYS=solaris
358     # _POSIX_PTHREAD_SEMANTICS is needed to get the POSIX ctime_r
359     # Perhaps it is useful other places as well? 
360     CFLAGS_save="${CFLAGS_save} -D_POSIX_PTHREAD_SEMANTICS"; CFLAGS="${CFLAGS_save}"
361     ;;
362   hpux*)
363     SYS=hpux
364     ;;
365   beos)
366     SYS=beos
367     CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}"
368     CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}"
369     VLC_ADD_CXXFLAGS([beos],[])
370     VLC_ADD_LIBS([vlc libvlc logger],[-lbe])
371     VLC_ADD_LIBS([beos],[-lbe -lmedia -ltranslation -ltracker -lgame])
372     VLC_ADD_LIBS([dvdnav dvdread],[-ldl])
373     VLC_ADD_LIBS([access_file],[-lpoll])
374     LDFLAGS_save="${LDFLAGS_save} -lintl"; LDFLAGS="${LDFLAGS_save}"
375     dnl Check for BONE
376     if test -f /boot/beos/system/lib/libbind.so; then
377         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlc growl_udp],[-lbind -lsocket])
378     else
379         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlc growl_udp],[-lnet])
380     fi
381
382     dnl Ugly check for Zeta
383     if test -f /boot/beos/system/lib/libzeta.so; then
384         VLC_ADD_LIBS([beos],[-lzeta])
385     fi
386     ;;
387   *)
388     SYS="${host_os}"
389     ;;
390 esac
391 AM_CONDITIONAL(HAVE_BEOS, test "${SYS}" = "beos")
392 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
393 AM_CONDITIONAL(HAVE_LINUX, [test "${SYS}" = "linux"])
394 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
395 AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
396
397 dnl
398 dnl Sadly autoconf doesn't think about testing foo.exe when ask to test 
399 dnl for program foo on win32
400
401 case "${build_os}" in
402     cygwin|msys)
403         ac_executable_extensions=".exe"
404     ;;
405     *)
406     ;;
407 esac
408
409 dnl 
410 dnl  Libtool
411 dnl  It's very bad, but our former custom system was worst
412 dnl  -- Courmisch
413 dnl
414
415 dnl override platform specific check for dependent libraries
416 dnl otherwise libtool linking of shared libraries will
417 dnl fail on anything other than pass_all.
418 AC_CACHE_VAL(lt_cv_deplibs_check_method,
419     [lt_cv_deplibs_check_method=pass_all])
420
421 AC_DISABLE_STATIC
422 dnl AC_DISABLE_FAST_INSTALL
423 AC_LIBTOOL_DLOPEN
424 AC_LIBTOOL_WIN32_DLL
425 m4_undefine([AC_PROG_F77])
426 m4_defun([AC_PROG_F77],[])
427 AC_PROG_LIBTOOL
428
429 m4_undefine([AC_DEPLIBS_CHECK_METHOD])
430 m4_defun([AC_DEPLIBS_CHECK_METHOD],[])
431
432 lt_cv_deplibs_check_method=pass_all
433
434
435 dnl
436 dnl Gettext stuff
437 dnl
438 AM_GNU_GETTEXT_VERSION([0.17])
439 AM_GNU_GETTEXT([external])
440 VLC_ADD_LIBS([libvlc vlc], [${LTLIBINTL}])
441
442 dnl
443 dnl Iconv stuff
444 dnl
445 AM_ICONV
446 VLC_ADD_CFLAGS([libvlc],[${INCICONV}])
447 VLC_ADD_LIBS([libvlc],[${LTLIBICONV}])
448
449 dnl Check for the need to include the mingwex lib for mingw32
450 if test "${SYS}" = "mingw32"
451 then
452     AC_CHECK_LIB(mingwex,opendir,
453         AC_CHECK_LIB(mingw32,opendir,,
454             [VLC_ADD_LIBS([libvlc gtk],[-lmingwex])])
455     )
456 fi
457
458 dnl Check for fnative-struct or mms-bitfields support for mingw32
459 if test "${SYS}" = "mingw32"
460 then
461     AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
462         [ac_cv_c_mms_bitfields],
463         [CFLAGS="${CFLAGS_save} -mms-bitfields"
464          AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
465     if test "${ac_cv_c_mms_bitfields}" != "no"; then
466         CFLAGS_save="${CFLAGS_save} -mms-bitfields";
467         CXXFLAGS_save="${CXXFLAGS_save} -mms-bitfields";
468     else
469         AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
470             [ac_cv_c_fnative_struct],
471             [CFLAGS="${CFLAGS_save} -fnative-struct"
472              AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
473         if test "${ac_cv_c_fnative_struct}" != "no"; then
474             CFLAGS_save="${CFLAGS_save} -fnative-struct";
475             CXXFLAGS_save="${CXXFLAGS_save} -fnative-struct";
476         fi
477     fi
478
479     CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
480 fi
481
482 dnl Check for fvtable-thunks support for mingw32
483 if test "${SYS}" = "mingw32" -a "${CXX}" != ""
484 then
485 AC_LANG_PUSH(C++)
486     AC_CACHE_CHECK([if \$CXX accepts -fvtable-thunks],
487         [ac_cv_cxx_fvtable_thunks],
488         [CXXFLAGS="${CXXFLAGS_save} -Wall -Werror -fvtable-thunks"
489          AC_TRY_COMPILE([],,ac_cv_cxx_fvtable_thunks=yes,
490                         ac_cv_cxx_fvtable_thunks=no)])
491     if test "${ac_cv_cxx_fvtable_thunks}" = "yes"; then
492         CXXFLAGS_mingw32_special="-fvtable-thunks"
493     fi
494
495     CXXFLAGS_save="${CXXFLAGS_save} ${CXXFLAGS_mingw32_special}"; CXXFLAGS="${CXXFLAGS_save}"
496 AC_LANG_POP(C++)
497 fi
498
499 dnl Plugin compilation stuff
500
501 VLC_LIBRARY_SUFFIX
502
503 dnl The -DSYS_FOO flag
504 CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
505
506 dnl Check for system libs needed
507 need_libc=false
508
509 dnl Check for usual libc functions
510 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])
511 AC_CHECK_FUNCS(strcasecmp,,[AC_CHECK_FUNCS(stricmp)])
512 AC_CHECK_FUNCS(strncasecmp,,[AC_CHECK_FUNCS(strnicmp)])
513 AC_CHECK_FUNCS(strcasestr,,[AC_CHECK_FUNCS(stristr)])
514 AC_FUNC_ALLOCA
515 AC_CHECK_FUNCS(fcntl)
516
517 dnl Check for Linux system calls
518 AC_CHECK_FUNCS([vmsplice eventfd])
519
520 AH_BOTTOM([#include <vlc_fixups.h>])
521
522 AC_CHECK_FUNCS(mmap, [VLC_ADD_PLUGIN([access_mmap])])
523
524 dnl Check for setlocal and langinfo
525 AC_CHECK_FUNCS(setlocale)
526 AC_CHECK_HEADERS(langinfo.h)
527 AC_CHECK_FUNCS(nl_langinfo)
528
529 AC_CACHE_CHECK([for nl_langinfo and CODESET], ac_cv_langinfo_codeset,
530   [AC_TRY_LINK([#include <langinfo.h>],
531     [char* cs = nl_langinfo(CODESET);],
532     ac_cv_langinfo_codeset=yes,
533     ac_cv_langinfo_codeset=no)
534   ])
535 if test ${ac_cv_langinfo_codeset} = yes; then
536   AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
537     [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
538 fi
539
540 AC_CHECK_FUNCS(connect,,[
541   AC_CHECK_LIB(socket,connect,[
542     VLC_ADD_LIBS([libvlc cdda cddax],-lsocket)
543     LIBS_socket="-lsocket"
544   ])
545 ])
546
547 AC_CHECK_FUNCS(send,,[
548   AC_CHECK_LIB(socket,send,[
549     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])
550   ])
551 ])
552
553 AC_CHECK_HEADERS(zlib.h, [
554   VLC_ADD_LIBS([access_http],[-lz])
555 ])
556
557 dnl Check for socklen_t
558 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
559 AC_CACHE_CHECK([for socklen_t in sys/socket.h],
560 ac_cv_type_socklen_t,
561 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
562 [#include <sys/types.h>
563 #ifdef WIN32
564 # include <winsock2.h>
565 # include <ws2tcpip.h>
566 #else
567 # include <sys/socket.h>
568 #endif]], [[socklen_t len; len = 0;]])],
569 ac_cv_type_socklen_t=yes,
570 ac_cv_type_socklen_t=no)])
571 AS_IF([test "$ac_cv_type_socklen_t" = no],
572  [AC_DEFINE(socklen_t, int)])
573
574 dnl Check for struct sockaddr_storage
575 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.])
576 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.])
577 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
578   [AC_TRY_COMPILE(
579     [#include <sys/types.h>
580      #if defined( UNDER_CE )
581      # include <winsock2.h>
582      #elif defined( WIN32 )
583      # include <winsock2.h>
584      #else
585      # include <sys/socket.h>
586      #endif], [struct sockaddr_storage addr;],
587      ac_cv_struct_sockaddr_storage=yes,
588      ac_cv_struct_sockaddr_storage=no)])
589 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
590   AC_DEFINE(sockaddr_storage, sockaddr)
591   AC_DEFINE(ss_family, sa_family)
592 ])
593
594 dnl getaddrinfo, getnameinfo and gai_strerror check
595 dnl  -lnsl and -lsocket are needed on Solaris;
596 dnl  we purposedly make the test fail on Windows
597 LIBS_save="${LIBS}"
598 AH_TEMPLATE(HAVE_GETADDRINFO, [Define to 1 if you have the `getaddrinfo' function.])
599 AC_SEARCH_LIBS([getaddrinfo], [nsl], [AC_DEFINE(HAVE_GETADDRINFO)],, [${LIBS_socket}])
600
601 dnl NOTE: we assume getaddrinfo will be present if getnameinfo or gai_strerro
602 dnl are
603 LIBS="${LIBS_gai}"
604 AC_CHECK_FUNCS([getnameinfo gai_strerror])
605 LIBS="${LIBS_save}"
606
607 AH_TEMPLATE(HAVE_ADDRINFO, [Define to 1 if <netdb.h> defines `struct addrinfo'.])
608 AC_CHECK_TYPES([struct addrinfo],[AC_DEFINE(HAVE_ADDRINFO)],,
609 [#include <sys/types.h>
610 #if defined( WIN32 ) || defined( UNDER_CE )
611 # if defined(UNDER_CE) && defined(sockaddr_storage)
612 #  undef sockaddr_storage
613 # endif
614 # include <winsock2.h>
615 # include <ws2tcpip.h>
616 #else
617 # include <netdb.h>
618 #endif])
619
620 dnl Check for va_copy
621 AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
622   AC_TRY_LINK(
623     [#include <stdarg.h>],
624     [va_list ap1, ap2; va_copy(ap1,ap2);],
625     [ac_cv_c_va_copy="yes"],
626     [ac_cv_c_va_copy="no"]))
627 if test "${ac_cv_c_va_copy}" = "yes"; then
628   AC_DEFINE(HAVE_VA_COPY, 1, [Define if <stdarg.h> defines va_copy.])
629 fi
630 AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
631   AC_TRY_LINK(
632     [#include <stdarg.h>],
633     [va_list ap1, ap2; __va_copy(ap1,ap2);],
634     [ac_cv_c___va_copy="yes"],
635     [ac_cv_c___va_copy="no"]))
636 if test "${ac_cv_c___va_copy}" = "yes"; then
637   AC_DEFINE(HAVE___VA_COPY, 1, [Define if <stdarg.h> defines __va_copy.])
638 fi
639
640 AC_CHECK_FUNCS(inet_aton,,[
641   AC_CHECK_LIB(resolv,inet_aton,[
642     VLC_ADD_LIBS([libvlc],[-lresolv])
643   ])
644 ])
645
646 dnl Check for getopt (always use builtin one on win32)
647 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
648 need_getopt=:
649 else
650 need_getopt=false
651 AC_CHECK_FUNCS(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
652 [ # FreeBSD has a gnugetopt library for this:
653   AC_CHECK_LIB([gnugetopt],[getopt_long],
654     [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support)
655      VLC_ADD_LIBS([libvlc],[-lgnugetopt])],
656     [need_getopt=:])])
657 fi
658 AM_CONDITIONAL(BUILD_GETOPT, ${need_getopt})
659
660 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
661 AC_TYPE_SIGNAL
662 AC_CHECK_LIB(m,cos,[
663   VLC_ADD_LIBS([adjust wave ripple psychedelic gradient a52tofloat32 dtstofloat32 x264 goom visual panoramix rotate noise grain scene],[-lm])
664 ])
665 AC_CHECK_LIB(m,pow,[
666   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])
667 ])
668 AC_CHECK_LIB(m,sqrt,[
669   VLC_ADD_LIBS([headphone_channel_mixer normvol speex mono colorthres extract],[-lm])
670 ])
671 AC_CHECK_LIB(m,ceil,[
672   VLC_ADD_LIBS([mosaic],[-lm])
673 ])
674 AC_CHECK_LIB(m,exp,[
675   VLC_ADD_LIBS([gaussianblur],[-lm])
676 ])
677 AC_CHECK_LIB(m,round,[
678   VLC_ADD_LIBS([dbus],[-lm])
679 ])
680 AC_CHECK_LIB(mx,sqrtf,[
681   VLC_ADD_LIBS([x264],[-lmx])
682 ])
683 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
684
685 dnl Check for dynamic plugins
686 ac_cv_have_plugins=no
687
688 # OS X style
689 AC_CHECK_HEADERS(mach-o/dyld.h,
690   [AC_CHECK_FUNCS(NSLinkModule,
691     [AC_DEFINE(HAVE_DL_DYLD, 1, [Define if you have the Darwin dyld API])
692      ac_cv_have_plugins=yes])])
693
694 # HP-UX style
695 if test "${ac_cv_have_plugins}" = "no"; then
696   AC_CHECK_HEADERS(dl.h)
697   ac_cv_my_have_shl_load=no
698   AC_CHECK_FUNC(shl_load,
699    [ac_cv_my_have_shl_load=yes,
700     AC_CHECK_LIB(dld, shl_load,
701      [ac_cv_my_have_shl_load=yes
702       VLC_ADD_LIBS([libvlc],[-ldld])])])
703   if test "${ac_cv_my_have_shl_load}" = "yes"; then
704     AC_DEFINE(HAVE_DL_SHL_LOAD, 1, [Define if you have the shl_load API])
705     ac_cv_have_plugins=yes
706   fi
707 fi
708
709 # Whatever style
710 if test "${ac_cv_have_plugins}" = "no"; then
711   AC_CHECK_LIB(dld, dld_link,
712    [VLC_ADD_LIBS([libvlc],[-ldld])
713     AC_DEFINE(HAVE_DL_DLD_LINK, 1, [Define if you have the GNU dld library])
714     ac_cv_have_plugins=yes])
715 fi
716
717 # Win32 style
718 if test "${ac_cv_have_plugins}" = "no"; then
719   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
720     AC_CHECK_LIB(kernel32, main,
721      [VLC_ADD_LIBS([libvlc],[-lkernel32])
722       AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
723       ac_cv_have_plugins=yes])
724   fi
725 fi
726
727 # WinCE style
728 if test "${ac_cv_have_plugins}" = "no"; then
729   if test "${SYS}" = "mingwce"; then
730     AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
731     ac_cv_have_plugins=yes
732   fi
733 fi
734
735 # BeOS style
736 if test "${ac_cv_have_plugins}" = "no"; then
737   AC_CHECK_HEADERS(image.h)
738   AC_CHECK_FUNCS(load_add_on,
739    [AC_DEFINE(HAVE_DL_BEOS, 1, [Define if you have the BeOS dl])
740     ac_cv_have_plugins=yes])
741 fi
742
743 # Only test for dlopen() if the others didn't work
744 if test "${ac_cv_have_plugins}" = "no"; then
745   AC_CHECK_HEADERS(dlfcn.h sys/dl.h)
746   ac_cv_my_have_dlopen=no
747   AC_CHECK_FUNC(dlopen,
748     ac_cv_my_have_dlopen=yes,
749     AC_CHECK_LIB(dl, dlopen,
750       ac_cv_my_have_dlopen=yes
751       VLC_ADD_LIBS([libvlc realaudio realvideo],[-ldl]),
752       AC_CHECK_LIB(svld, dlopen,
753         ac_cv_my_have_dlopen=yes
754         VLC_ADD_LIBS([libvlc],[-lsvld]))))
755   if test "${ac_cv_my_have_dlopen}" = "yes"; then
756     AC_DEFINE(HAVE_DL_DLOPEN, 1, [Define if you have the dlopen API])
757     ac_cv_have_plugins=yes
758   fi
759 fi
760
761 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
762 dnl Check for pthreads - borrowed from XMMS
763 THREAD_LIB=error
764 if test "${THREAD_LIB}" = "error"; then
765   AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
766 fi
767 if test "${THREAD_LIB}" = "error"; then
768   AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
769 fi
770 if test "${THREAD_LIB}" = "error"; then
771   AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
772 fi
773 if test "${THREAD_LIB}" = "error"; then
774   AC_CHECK_FUNCS(pthread_mutex_lock)
775   THREAD_LIB=""
776 fi
777
778 VLC_ADD_LIBS([libvlc plugin],[${THREAD_LIB}])
779
780 AC_CHECK_LIB(rt, clock_nanosleep, [
781   VLC_ADD_LIBS([libvlc],[-lrt])
782   AC_DEFINE(HAVE_CLOCK_NANOSLEEP, 1, [Define to 1 if you have clock_nanosleep.])
783 ], [
784   dnl HP/UX port
785   AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LIBS([libvlc],[-lrt])])
786 ])
787
788 have_nanosleep=false
789 AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[
790   AC_CHECK_LIB(rt,nanosleep,
791     [VLC_ADD_LIBS([libvlc],[-lrt]) have_nanosleep=:],
792     [AC_CHECK_LIB(posix4,nanosleep,
793         [VLC_ADD_LIBS([libvlc],[-lposix4]) have_nanosleep=:])]
794   )
795 ])
796 if ${have_nanosleep}; then
797   AC_DEFINE(HAVE_NANOSLEEP, 1, [Define if nanosleep is available.])
798 fi
799 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" 
800
801 dnl Check for misc headers
802 AC_MSG_CHECKING(for strncasecmp in strings.h)
803 AC_EGREP_HEADER(strncasecmp,strings.h,[
804   AC_MSG_RESULT(yes)
805   AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
806             Define if <strings.h> defines strncasecmp.)],[
807   AC_MSG_RESULT(no)])
808
809 dnl Check for headers
810 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)
811 AC_CHECK_HEADERS(sys/sockio.h fcntl.h sys/types.h sys/time.h sys/times.h sys/ioctl.h sys/stat.h xlocale.h)
812 AC_CHECK_HEADERS([arpa/inet.h netinet/in.h netinet/udplite.h sys/eventfd.h])
813 AC_CHECK_HEADERS([net/if.h], [], [],
814   [
815     #include <sys/socket.h>
816   ])
817 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
818 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
819 AC_CHECK_HEADERS([linux/version.h linux/dccp.h])
820 AC_CHECK_HEADERS(syslog.h)
821 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
822
823 AC_HEADER_TIME
824
825 dnl LP64 adn LLP64 architectures had better define ssize_t by themselves...
826 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.])
827 AC_CHECK_TYPE(ssize_t,, [
828   AC_DEFINE(ssize_t, int)
829 ])
830
831 dnl Check for poll
832 AC_SEARCH_LIBS(poll, [poll], [AC_DEFINE(HAVE_POLL, 1, [Define to 1 if the OS is usabl... err, has poll().])], [
833 if test ${SYS} != "mingw32"
834 then
835     AC_MSG_WARN([Your platform does not support poll(). VLC has it's own poll() implementation, but it is only intended to be used on Windows. VLC might crash or be insecure when you see this message. Either switch to an OS with a proper poll() implementation, or implement one for your OS in VLC])
836 fi
837 ])
838
839 dnl Check for dirent
840 need_dirent=false
841 AC_CHECK_HEADERS(dirent.h,,[need_dirent=:])
842 AM_CONDITIONAL(BUILD_DIRENT, ${need_dirent})
843
844 dnl Mac OS X and other OSes don't have declaration for nanosleep
845 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
846 AC_MSG_CHECKING(for nanosleep in time.h)
847 AC_EGREP_HEADER(nanosleep,time.h,[
848   AC_MSG_RESULT(yes)
849   AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
850             Define if <time.h> defines nanosleep.)
851 ],[
852   AC_MSG_RESULT(no)
853 ])
854 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
855
856 dnl Make sure we have timespecs
857 AC_MSG_CHECKING(for timespec in sys/time.h)
858 AC_EGREP_HEADER(timespec,sys/time.h,[
859   AC_MSG_RESULT(yes)
860   AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
861             Define if <sys/time.h> defines struct timespec.)
862 ],[
863   AC_MSG_RESULT(no)
864 ])
865
866 dnl Check for threads library
867 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
868 AC_CHECK_HEADERS(pthread.h)
869 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
870
871 dnl Find where are the X headers and libraries
872 AC_PATH_XTRA()
873
874 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.
875 dnl Make PKG_CONFIG_PATH precious so that it appears in the help and get saved
876 AC_ARG_VAR(PKG_CONFIG_PATH, 
877            [Paths where to find .pc not at the default location])
878 PKG_PROG_PKG_CONFIG()
879
880 dnl Check for hal
881 AC_ARG_ENABLE(hal,
882   [  --enable-hal            Linux HAL services discovery (default enabled)])
883  
884 if test "${enable_hal}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
885 then
886   PKG_CHECK_MODULES(HAL, hal >= 0.5.0,
887     [
888       AC_DEFINE( HAVE_HAL, 1, [Define if you have the HAL library] )
889       VLC_ADD_PLUGIN([hal])
890       VLC_ADD_PLUGIN([probe_hal])
891       VLC_ADD_LIBS([libvlc hal probe_hal],[$HAL_LIBS])
892       VLC_ADD_CFLAGS([libvlc hal probe_hal],[$HAL_CFLAGS])],
893     [AC_MSG_WARN([libhal >= 0.5.0 was not found. Install libhal-dev ?])]
894   )
895 fi
896
897 dnl Check for dbus
898 AC_ARG_ENABLE(dbus,
899   [  --enable-dbus           Linux D-BUS message bus system (default enabled)])
900 case "${SYS}" in
901     linux*|*bsd*)
902 if test "${enable_dbus}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
903 then
904   dnl api stable dbus
905   PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.0.0,
906     [ AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
907       VLC_ADD_LIBS([screensaver libvlc],[$DBUS_LIBS])
908       VLC_ADD_CFLAGS([screensaver libvlc],[$DBUS_CFLAGS])
909       dnl Check for dbus control interface
910         AC_ARG_ENABLE(dbus-control, [  --disable-dbus-control  D-BUS control interface (default enabled)])
911         if test "${enable_dbus_control}" != "no"
912         then
913           VLC_ADD_PLUGIN([dbus])
914           VLC_ADD_LIBS([dbus],[$DBUS_LIBS])
915           VLC_ADD_CFLAGS([dbus],[$DBUS_CFLAGS])
916         fi
917       dnl Check for Telepathy
918         AC_ARG_ENABLE(telepathy,
919           AS_HELP_STRING([--enable-telepathy],[Telepathy Presence plugin through DBus(default enabled)]))
920         if test "${enable_telepathy}" != "no"; then
921           VLC_ADD_PLUGIN([telepathy])
922           VLC_ADD_LIBS([telepathy],[$DBUS_LIBS])
923           VLC_ADD_CFLAGS([telepathy],[$DBUS_CFLAGS])
924         fi
925         dnl Power Management Inhibiter
926         VLC_ADD_PLUGIN([inhibit])
927         VLC_ADD_LIBS([inhibit],[$DBUS_LIBS])
928         VLC_ADD_CFLAGS([inhibit],[$DBUS_CFLAGS])
929     ],
930     [AC_MSG_ERROR([Couldn't find DBus >= 1.0.0, install libdbus-dev ?])]
931   )
932 fi
933 ;;
934 esac
935
936 dnl Build the gtk_main plugins?
937 NEED_GTK_MAIN=no
938 NEED_GNOME_MAIN=no
939 NEED_GTK2_MAIN=no
940 NEED_GNOME2_MAIN=no
941
942 dnl build the qte plugin ?
943 NEED_QTE_MAIN=no
944
945 dnl Check for ntohl, etc.
946 AC_CACHE_CHECK([for ntohl in sys/param.h],
947     [ac_cv_c_ntohl_sys_param_h],
948     [CFLAGS="${CFLAGS_save} -Wall -Werror"
949      AC_TRY_COMPILE([#include <sys/param.h>],
950         [int meuh; ntohl(meuh);],
951         ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
952 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
953     AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
954 fi
955 CFLAGS="${CFLAGS_save}"
956
957 RDC_PROG_CC_WFLAGS([all extra sign-compare undef pointer-arith bad-function-cast cast-align write-strings missing-prototypes volatile-register-var error-implicit-function-declaration])
958 RDC_PROG_CC_FLAGS_IFELSE([-pipe])
959
960 dnl Check for various optimization flags
961 AC_CACHE_CHECK([if \$CC accepts -Os],
962     [ac_cv_c_os],
963     [CFLAGS="${CFLAGS_save} -Os"
964      AC_TRY_COMPILE([],,ac_cv_c_os=yes, ac_cv_c_os=no)])
965 if test "${ac_cv_c_os}" != "no"; then
966     CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -Os"
967 else 
968     AC_CACHE_CHECK([if \$CC accepts -O],
969         [ac_cv_c_o],
970         [CFLAGS="${CFLAGS_save} -O"
971          AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
972     if test "${ac_cv_c_o}" != "no"; then
973         if test "${ac_cv_c_o3}" = "no"; then
974             CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -O"
975         fi
976     fi
977 fi
978
979 AC_CACHE_CHECK([if \$CC accepts -O3],
980     [ac_cv_c_o3],
981     [CFLAGS="${CFLAGS_save} -O3"
982      AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
983 if test "${ac_cv_c_o3}" != "no" -a "x${enable_debug}" = "xno"; then
984     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O3"
985 else
986     AC_CACHE_CHECK([if \$CC accepts -O2],
987         [ac_cv_c_o2],
988         [CFLAGS="${CFLAGS_save} -O2"
989          AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
990     if test "${ac_cv_c_o2}" != "no"; then
991         CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O2"
992     else
993         AC_CACHE_CHECK([if \$CC accepts -O],
994             [ac_cv_c_o],
995             [CFLAGS="${CFLAGS_save} -O"
996              AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
997         if test "${ac_cv_c_o}" != "no"; then
998             CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O"
999         fi
1000     fi
1001 fi
1002
1003 AC_CACHE_CHECK([if \$CC accepts -O0],
1004     [ac_cv_c_o0],
1005     [CFLAGS="${CFLAGS_save} -O0"
1006      AC_TRY_COMPILE([],,ac_cv_c_o0=yes, ac_cv_c_o0=no)])
1007 if test "${ac_cv_c_o0}" != "no"; then
1008     CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O0"
1009 fi
1010
1011 dnl Check for -ffast-math
1012 AC_CACHE_CHECK([if \$CC accepts -ffast-math],
1013     [ac_cv_c_fast_math],
1014     [CFLAGS="${CFLAGS_save} -ffast-math"
1015      AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
1016 if test "${ac_cv_c_fast_math}" != "no"; then
1017     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -ffast-math"
1018 fi
1019
1020 dnl Check for -funroll-loops
1021 dnl Disabled on BeOS because BeOS' gcc is buggy and may crash with it
1022 if test "${SYS}" != "beos"
1023 then
1024   AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
1025       [ac_cv_c_unroll_loops],
1026       [CFLAGS="${CFLAGS_save} -funroll-loops"
1027        AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
1028   if test "${ac_cv_c_unroll_loops}" != "no"; then
1029       CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -funroll-loops"
1030   fi
1031 fi
1032
1033 dnl Check for -fomit-frame-pointer
1034 AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
1035     [ac_cv_c_omit_frame_pointer],
1036     [CFLAGS="${CFLAGS_save} -fomit-frame-pointer"
1037      AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
1038 if test "${ac_cv_c_omit_frame_pointer}" != "no"; then
1039  if test "${SYS}" != "darwin"; then
1040     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
1041  else
1042     dnl On darwin we explicitely disable it.
1043     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fno-omit-frame-pointer"
1044  fi
1045 fi
1046
1047 dnl Check for Darwin plugin linking flags
1048 AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error],
1049     [ac_cv_ld_darwin],
1050     [CFLAGS="${CFLAGS_save} -bundle -undefined error"
1051      AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
1052 if test "${ac_cv_ld_darwin}" != "no"; then
1053     VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
1054 fi
1055
1056 dnl Checks for __attribute__(aligned()) directive
1057 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1058     [ac_cv_c_attribute_aligned],
1059     [ac_cv_c_attribute_aligned=0
1060         CFLAGS="${CFLAGS_save} -Werror"
1061     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1062         AC_TRY_COMPILE([],
1063         [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1064         [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1065     done
1066         CFLAGS="${CFLAGS_save}"])
1067 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1068     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1069         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1070 fi
1071
1072 dnl Check for __attribute__((packed))
1073 AC_CACHE_CHECK([for __attribute__((packed))],
1074   [ac_cv_c_attribute_packed],
1075   [ac_cv_c_attribute_packed=no
1076    AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b;],
1077                     [ac_cv_c_attribute_packed=yes])])
1078 if test "${ac_cv_c_attribute_packed}" != "no"; then
1079   AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1080 fi
1081
1082 dnl
1083 dnl  Check the CPU
1084 dnl
1085 case "${host_cpu}" in
1086   "")
1087     ARCH=unknown
1088     ;;
1089   *)
1090     ARCH="${host_cpu}"
1091     ;;
1092 esac
1093
1094 dnl Check for backtrace() support
1095 AC_CHECK_HEADERS(execinfo.h)
1096 AC_CHECK_FUNCS(backtrace)
1097
1098 dnl
1099 dnl  Enable profiling
1100 dnl
1101 AC_ARG_ENABLE(gprof,
1102 [  --enable-gprof          gprof profiling (default disabled)])
1103 AC_ARG_ENABLE(cprof,
1104 [  --enable-cprof          cprof profiling (default disabled)])
1105 test "${enable_gprof}" != "yes" && enable_gprof="no"
1106 test "${enable_cprof}" != "yes" && enable_cprof="no"
1107
1108 dnl
1109 dnl  default modules
1110 dnl
1111 dnl Video filters:
1112 VLC_ADD_PLUGIN([deinterlace])
1113 VLC_ADD_PLUGIN([yuvp])
1114 VLC_ADD_PLUGIN([invert])
1115 VLC_ADD_PLUGIN([adjust])
1116 VLC_ADD_PLUGIN([transform])
1117 VLC_ADD_PLUGIN([wave])
1118 VLC_ADD_PLUGIN([ripple])
1119 VLC_ADD_PLUGIN([psychedelic])
1120 VLC_ADD_PLUGIN([gradient])
1121 VLC_ADD_PLUGIN([motionblur])
1122 VLC_ADD_PLUGIN([rv32])
1123 VLC_ADD_PLUGIN([rotate])
1124 VLC_ADD_PLUGIN([noise])
1125 VLC_ADD_PLUGIN([grain])
1126 VLC_ADD_PLUGIN([extract])
1127 VLC_ADD_PLUGIN([sharpen])
1128 VLC_ADD_PLUGIN([croppadd])
1129 VLC_ADD_PLUGIN([canvas])
1130 VLC_ADD_PLUGIN([blendbench])
1131 VLC_ADD_PLUGIN([blend])
1132 VLC_ADD_PLUGIN([scale])
1133 VLC_ADD_PLUGIN([vmem])
1134 VLC_ADD_PLUGIN([logo])
1135 VLC_ADD_PLUGIN([magnify])
1136 VLC_ADD_PLUGIN([puzzle])
1137 VLC_ADD_PLUGIN([colorthres])
1138 VLC_ADD_PLUGIN([scene])
1139 VLC_ADD_PLUGIN([yuv])
1140
1141 ALIASES="${ALIASES} cvlc"
1142
1143 dnl
1144 dnl default modules that need g++
1145 dnl
1146 AC_LANG_PUSH(C++)
1147 VLC_ADD_PLUGIN([spatializer])
1148 AC_LANG_POP(C++)
1149
1150 if test "${SYS}" != "mingwce"; then
1151   VLC_ADD_PLUGIN([gestures])
1152   VLC_ADD_PLUGIN([rc])
1153   VLC_ADD_PLUGIN([hotkeys])
1154   VLC_ADD_PLUGIN([showintf])
1155   VLC_ADD_PLUGIN([marq])
1156   VLC_ADD_PLUGIN([podcast])
1157   VLC_ADD_PLUGIN([shout])
1158   VLC_ADD_PLUGIN([sap])
1159   VLC_ADD_PLUGIN([fake])
1160   VLC_ADD_PLUGIN([folder])
1161   VLC_ADD_PLUGIN([rss])
1162   VLC_ADD_PLUGIN([mosaic])
1163   VLC_ADD_PLUGIN([wall])
1164   VLC_ADD_PLUGIN([motiondetect])
1165   VLC_ADD_PLUGIN([clone])
1166   VLC_ADD_PLUGIN([crop])
1167   VLC_ADD_PLUGIN([erase])
1168   VLC_ADD_PLUGIN([bluescreen])
1169   VLC_ADD_PLUGIN([alphamask])
1170   VLC_ADD_PLUGIN([gaussianblur])
1171   VLC_ADD_PLUGIN([i420_yuy2])
1172   VLC_ADD_PLUGIN([i422_yuy2])
1173   VLC_ADD_PLUGIN([i420_ymga])
1174   VLC_ADD_PLUGIN([i422_i420])
1175   VLC_ADD_PLUGIN([yuy2_i422])
1176   VLC_ADD_PLUGIN([yuy2_i420])
1177   VLC_ADD_PLUGIN([chain])
1178   VLC_ADD_PLUGIN([aout_file])
1179   VLC_ADD_PLUGIN([linear_resampler])
1180   VLC_ADD_PLUGIN([bandlimited_resampler])
1181   VLC_ADD_PLUGIN([float32_mixer])
1182   VLC_ADD_PLUGIN([spdif_mixer])
1183   VLC_ADD_PLUGIN([simple_channel_mixer])
1184   VLC_ADD_PLUGIN([dolby_surround_decoder])
1185   VLC_ADD_PLUGIN([headphone_channel_mixer])
1186   VLC_ADD_PLUGIN([normvol])
1187   VLC_ADD_PLUGIN([equalizer])
1188   VLC_ADD_PLUGIN([param_eq])
1189   VLC_ADD_PLUGIN([scaletempo])
1190   VLC_ADD_PLUGIN([converter_float])
1191   VLC_ADD_PLUGIN([a52tospdif])
1192   VLC_ADD_PLUGIN([dtstospdif])
1193   VLC_ADD_PLUGIN([audio_format])
1194   ALIASES="${ALIASES} rvlc"
1195 fi
1196
1197 if test "${SYS}" = "mingwce"; then
1198   VLC_ADD_PLUGIN([chain])
1199   VLC_ADD_PLUGIN([aout_file])
1200   VLC_ADD_PLUGIN([linear_resampler])
1201   VLC_ADD_PLUGIN([bandlimited_resampler])
1202   VLC_ADD_PLUGIN([float32_mixer])
1203   VLC_ADD_PLUGIN([spdif_mixer])
1204   VLC_ADD_PLUGIN([simple_channel_mixer])
1205   VLC_ADD_PLUGIN([headphone_channel_mixer])
1206   VLC_ADD_PLUGIN([normvol])
1207   VLC_ADD_PLUGIN([converter_float])
1208   VLC_ADD_PLUGIN([a52tospdif])
1209   VLC_ADD_PLUGIN([dtstospdif])
1210   VLC_ADD_PLUGIN([audio_format])
1211   VLC_ADD_PLUGIN([i420_yuy2])
1212   VLC_ADD_PLUGIN([i422_yuy2])
1213   VLC_ADD_PLUGIN([i420_ymga])
1214   VLC_ADD_PLUGIN([i422_i420])
1215   VLC_ADD_PLUGIN([yuy2_i422])
1216   VLC_ADD_PLUGIN([yuy2_i420])
1217 fi
1218
1219 dnl
1220 dnl Some plugins aren't useful on some platforms
1221 dnl
1222 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1223     VLC_ADD_PLUGIN([screensaver])
1224     VLC_ADD_PLUGIN([motion])
1225     VLC_ADD_PLUGIN([dynamicoverlay])
1226     VLC_ADD_PLUGIN([signals])
1227 elif test "${SYS}" != "mingwce"; then
1228     VLC_ADD_PLUGIN([ntservice])
1229     VLC_ADD_PLUGIN([access_smb])
1230     VLC_ADD_PLUGIN([dmo])
1231     VLC_ADD_PLUGIN([msn])
1232     VLC_ADD_LIBS([dmo],[-lole32 -luuid])
1233     VLC_ADD_PLUGIN([globalhotkeys])
1234 else
1235     VLC_ADD_PLUGIN([win32text])
1236 fi
1237 if test "${SYS}" = "darwin"; then
1238     VLC_ADD_PLUGIN([quartztext])
1239     VLC_ADD_LDFLAGS([quartztext],[-Wl,-framework,Carbon,-framework,ApplicationServices])
1240 fi
1241
1242 dnl
1243 dnl  Accelerated modules
1244 dnl
1245 AC_ARG_WITH(,[])
1246 AC_ARG_WITH(,[Optimization options:])
1247
1248 dnl  Check for fully working MMX intrinsics
1249 dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a
1250 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1251 AC_ARG_ENABLE(mmx,
1252 [  --disable-mmx           disable MMX optimizations (default auto)],,[
1253   case "${host_cpu}" in
1254     i?86|x86_64)
1255       enable_mmx="yes"
1256       ;;
1257     *)
1258       enable_mmx="no"
1259       ;;
1260   esac
1261 ])
1262 AS_IF([test "${enable_mmx}" != "no"], [
1263   ARCH="${ARCH} mmx"
1264
1265   AC_CACHE_CHECK([if $CC groks MMX intrinsics],
1266     [ac_cv_c_mmx_intrinsics],
1267     [CFLAGS="${CFLAGS_save} -O -mmmx"
1268      AC_TRY_COMPILE([#include <mmintrin.h>
1269                      #include <stdint.h>
1270                      uint64_t frobzor;],
1271                     [__m64 a, b, c;
1272                      a = b = c = (__m64)frobzor;
1273                      a = _mm_slli_pi16(a, 3);
1274                      a = _mm_adds_pi16(a, b);
1275                      c = _mm_srli_pi16(c, 8);
1276                      c = _mm_slli_pi16(c, 3);
1277                      b = _mm_adds_pi16(b, c);
1278                      a = _mm_unpacklo_pi8(a, b);
1279                      frobzor = (uint64_t)a;],
1280                     [ac_cv_c_mmx_intrinsics=yes],
1281                     [ac_cv_c_mmx_intrinsics=no])])
1282   AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1283     AC_DEFINE(HAVE_MMX_INTRINSICS, 1,
1284               [Define to 1 if MMX intrinsics are available.])
1285     VLC_ADD_CFLAGS([memcpymmx i420_rgb_mmx i420_yuy2_mmx i422_yuy2_mmx i420_ymga_mmx],[-mmmx])
1286   ])
1287
1288   AC_CACHE_CHECK([if $CC groks MMX inline assembly],
1289     [ac_cv_mmx_inline],
1290     [CFLAGS="${CFLAGS_save}"
1291      AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
1292                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
1293   AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1294     AC_DEFINE(CAN_COMPILE_MMX, 1,
1295               [Define to 1 inline MMX assembly is available.])
1296     VLC_ADD_PLUGIN([memcpymmx])
1297     VLC_ADD_PLUGIN([i420_rgb_mmx])
1298     VLC_ADD_PLUGIN([i420_yuy2_mmx])
1299     VLC_ADD_PLUGIN([i422_yuy2_mmx])
1300     VLC_ADD_PLUGIN([i420_ymga_mmx])
1301   ])
1302
1303   AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1304     [ac_cv_mmxext_inline],
1305     [CFLAGS="${CFLAGS_save}"
1306      AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
1307                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
1308   AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1309     AC_DEFINE(CAN_COMPILE_MMXEXT, 1,
1310               [Define to 1 if MMX EXT inline assembly is available.])
1311     VLC_ADD_PLUGIN([memcpymmxext])
1312   ])
1313 ])
1314
1315 dnl  Check for fully workin SSE2 intrinsics
1316 dnl  We need support for -mmmx, we need <emmintrin.h>, and we also need a
1317 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1318 AC_ARG_ENABLE(sse,
1319 [  --disable-sse           disable SSE (1 and 2) optimizations (default auto)]
1320 ,, [
1321   case "${host_cpu}" in
1322     i686|x86_64)
1323       enable_sse=yes
1324       ;;
1325     *)
1326       enable_sse=no
1327       ;;
1328   esac
1329 ])
1330 AS_IF([test "${enable_sse}" != "no"], [
1331   ARCH="${ARCH} sse sse2"
1332
1333   AC_CACHE_CHECK([if $CC groks SSE2 intrinsics],
1334     [ac_cv_c_sse2_intrinsics],
1335     [CFLAGS="${CFLAGS_save} -O -msse2"
1336      AC_TRY_COMPILE([#include <emmintrin.h>
1337                      #include <stdint.h>
1338                      uint64_t frobzor;],
1339                     [__m128i a, b, c;
1340                      a = b = c = _mm_set1_epi64((__m64)frobzor);
1341                      a = _mm_slli_epi16(a, 3);
1342                      a = _mm_adds_epi16(a, b);
1343                      c = _mm_srli_epi16(c, 8);
1344                      c = _mm_slli_epi16(c, 3);
1345                      b = _mm_adds_epi16(b, c);
1346                      a = _mm_unpacklo_epi8(a, b);
1347                      frobzor = (uint64_t)_mm_movepi64_pi64(a);],
1348                     [ac_cv_c_sse2_intrinsics=yes],
1349                     [ac_cv_c_sse2_intrinsics=no])])
1350   AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1351     AC_DEFINE(HAVE_SSE2_INTRINSICS, 1,
1352               [Define to 1 if SSE2 intrinsics are available.])
1353     VLC_ADD_CFLAGS([i420_rgb_sse2 i420_yuy2_sse2 i422_yuy2_sse2],[-msse2])
1354   ])
1355
1356   AC_CACHE_CHECK([if $CC groks SSE inline assembly],
1357     [ac_cv_sse_inline],
1358     [CFLAGS="${CFLAGS_save}"
1359      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
1360                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
1361   AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1362     AC_DEFINE(CAN_COMPILE_SSE, 1,
1363               [Define to 1 if SSE inline assembly is available.])
1364   ])
1365
1366   AC_CACHE_CHECK([if $CC groks SSE2 inline assembly],
1367     [ac_cv_sse2_inline],
1368     [CFLAGS="${CFLAGS_save}"
1369      AC_TRY_COMPILE(,[void *p;asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p));],
1370                     ac_cv_sse2_inline=yes, ac_cv_sse2_inline=no)])
1371   AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1372     AC_DEFINE(CAN_COMPILE_SSE2, 1,
1373               [Define to 1 if SSE2 inline assembly is available.])
1374     VLC_ADD_PLUGIN([i420_rgb_sse2])
1375     VLC_ADD_PLUGIN([i420_yuy2_sse2])
1376     VLC_ADD_PLUGIN([i422_yuy2_sse2])
1377   ])
1378 ])
1379
1380 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly],
1381     [ac_cv_3dnow_inline],
1382     [CFLAGS="${CFLAGS_save}"
1383      AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
1384                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
1385 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1386   AC_DEFINE(CAN_COMPILE_3DNOW, 1,
1387             [Define to 1 if 3D Now! inline assembly is available.])
1388   VLC_ADD_PLUGIN([memcpy3dn])
1389 ])
1390
1391 AC_ARG_ENABLE(altivec,
1392 [  --disable-altivec       disable AltiVec optimizations (default auto)],, [
1393   AS_IF([test "${host_cpu}" = "powerpc"],
1394         [enable_altivec=yes], [enable_altivec=no])
1395 ])
1396 AS_IF([test "${enable_altivec}" = "yes"], [
1397   ARCH="${ARCH} altivec";
1398   AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1399     [ac_cv_altivec_inline],
1400     [CFLAGS="${CFLAGS_save}"
1401      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1402          ac_cv_altivec_inline="yes",
1403          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
1404           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1405             [ac_cv_altivec_inline="-Wa,-m7400"],
1406             ac_cv_altivec_inline=no)
1407          ])])
1408   AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1409     AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1410               [Define to 1 if AltiVec inline assembly is available.])
1411     AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1412       VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
1413       VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
1414       VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1415       VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1416       VLC_ADD_CFLAGS([libvlc],[${ac_cv_altivec_inline}])
1417     ])
1418     VLC_ADD_PLUGIN([memcpyaltivec])
1419     VLC_ADD_PLUGIN([i420_yuy2_altivec])
1420   ])
1421
1422 dnl The AltiVec C extensions
1423 dnl
1424 dnl There are several possible cases:
1425 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1426 dnl                      need <altivec.h>
1427 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1428 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1429 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1430 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1431 dnl - Others: test should fail
1432   AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1433   [ac_cv_c_altivec],
1434   [# OS X/PPC test (gcc 4.x)
1435    CFLAGS="${CFLAGS_save} -mpim-altivec -force_cpusubtype_ALL"
1436    AC_TRY_COMPILE([vector unsigned char foo;],
1437      [vec_ld(0, (unsigned char *)0);],
1438      [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1439      [# OS X/PPC test (gcc 3.x)
1440       CFLAGS="${CFLAGS_save} -faltivec"
1441       AC_TRY_COMPILE([vector unsigned char foo;],
1442         [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1443         [ac_cv_c_altivec="-faltivec"],
1444         dnl Below this are the Linux tests
1445         [# Linux/PPC test (gcc 4.x)
1446          CFLAGS="${CFLAGS_save} -maltivec"
1447          AC_TRY_COMPILE([#include <altivec.h>],
1448            [vec_ld(0, (unsigned char *)0);],
1449            [ac_cv_c_altivec="-maltivec"],
1450            [# Linux/PPC test (gcc 3.3)
1451             CFLAGS="${CFLAGS_save} -maltivec -mabi=altivec"
1452             AC_TRY_COMPILE([#include <altivec.h>],
1453               [vec_ld(0, (unsigned char *)0);],
1454               [ac_cv_c_altivec=""
1455                ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1456               [# Linux/PPC test (gcc 3.3)
1457                CFLAGS="${CFLAGS_save} -fvec"
1458                AC_TRY_COMPILE([#include <altivec.h>],
1459                  [vec_ld(0, (unsigned char *)0);],
1460                  [ac_cv_c_altivec="-fvec"],
1461                  [ac_cv_c_altivec=no])
1462               ])
1463            ])
1464         ])
1465      ])
1466    CFLAGS="${CFLAGS_save}"
1467   ])
1468   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1469     CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
1470   ])
1471
1472   AC_CHECK_HEADERS(altivec.h)
1473   CPPFLAGS="${CPPFLAGS_save}"
1474   
1475   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1476     AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1,
1477               [Define to 1 if C AltiVec extensions are available.])
1478     VLC_ADD_CFLAGS([libvlc],[${ac_cv_c_altivec}])
1479     VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
1480     VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1481     VLC_ADD_PLUGIN([memcpyaltivec])
1482     VLC_ADD_PLUGIN([i420_yuy2_altivec])
1483   ])
1484
1485   AC_CACHE_CHECK([if linker needs -framework vecLib],
1486     [ac_cv_ld_altivec],
1487     [LDFLAGS="${LDFLAGS_vlc} -Wl,-framework,vecLib"
1488      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
1489      LDFLAGS="${LDFLAGS_save}"
1490     ])
1491   AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1492     VLC_ADD_LDFLAGS([libvlc idctaltivec motionaltivec memcpyaltivec],[-Wl,-framework,vecLib])
1493   ])
1494 ])
1495
1496 dnl
1497 dnl  Special arch tuning
1498 dnl
1499 AC_ARG_WITH(tuning,
1500 [  --with-tuning=ARCH      enable special tuning for an architecture
1501                           (default Pentium 2 on IA-32 and G4 on PPC)])
1502 if test -n "${with_tuning}"; then
1503     if test "${with_tuning}" != "no"; then
1504         CFLAGS_TUNING="-mtune=${with_tuning}"
1505     fi
1506 else
1507     if test "${SYS}" = "darwin" -a "${host_cpu}" != "powerpc"; then
1508         CFLAGS_TUNING="-march=pentium-m -mtune=prescott"
1509     elif test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "i386"; then
1510         CFLAGS_TUNING="-mtune=pentium2"
1511     elif test "${host_cpu}" = "x86_64"; then
1512         CFLAGS_TUNING="-mtune=athlon64"
1513     elif test "${host_cpu}" = "powerpc"; then
1514         CFLAGS_TUNING="-mtune=G4";
1515     fi
1516 fi
1517
1518 dnl NOTE: this can't be cached cleanly
1519 AS_IF([test "${CFLAGS_TUNING}"],
1520    [CFLAGS_save="${CFLAGS}"
1521     CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1522
1523     AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1524     AC_COMPILE_IFELSE([ ],
1525                       [tuning="yes"],
1526                       [CFLAGS_TUNING=""; tuning="no"
1527                        AS_IF([test "${with_tuning}"],
1528                              [AC_MSG_ERROR([requested tuning not supported])])])
1529
1530     AC_MSG_RESULT([$tuning])
1531     CFLAGS="${CFLAGS_save}"
1532 ])
1533
1534 dnl
1535 dnl  Memory usage
1536 dnl
1537 AC_ARG_ENABLE(optimize-memory,
1538 [  --enable-optimize-memory optimize memory usage over performance])
1539 if test "${enable_optimize_memory}" = "yes"; then
1540   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1541 fi
1542
1543 dnl
1544 dnl  Enable/disable optimizations
1545 dnl
1546 AC_ARG_ENABLE(optimizations,
1547 [  --disable-optimizations disable compiler optimizations (default enabled)])
1548 if test "${enable_optimizations}" != "no"; then
1549    if test "${enable_optimize_memory}" = "yes"; then
1550       enable_optimizations="size"
1551    else
1552       enable_optimizations="speed"
1553    fi
1554 fi
1555
1556 dnl
1557 dnl  Debugging mode
1558 dnl
1559 AC_ARG_ENABLE(debug,
1560 [  --enable-debug          debug mode (default disabled)])
1561 test "${enable_debug}" != "yes" && enable_debug="no"
1562 AH_TEMPLATE(NDEBUG,
1563             [Define to 1 if debug code should NOT be compiled])
1564 AS_IF([test "x${enable_debug}" = "xno"], [AC_DEFINE(NDEBUG)])
1565
1566 dnl
1567 dnl Allow runing as root (usefull for people runing on embedded platforms)
1568 dnl
1569 AC_ARG_ENABLE(run-as-root,
1570 [  --enable-run-as-root    allow runing VLC as root (default disabled)])
1571 AS_IF([test "${enable_run_as_root}" == "yes"],[
1572     AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1573               [Define to 1 to allow runing VLC as root (uid 0).])
1574 ])
1575
1576 dnl
1577 dnl  Test coverage
1578 dnl
1579 AC_ARG_ENABLE(coverage,
1580         [  --enable-coverage       build for test coverage (default disabled)],,
1581         [enable_coverage="no"])
1582 AS_IF([test "${enable_coverage}" != "no"], [
1583         CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
1584         CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
1585         LDFLAGS="-lgcov ${LDFLAGS}"
1586         dnl ugly...
1587         CFLAGS_save="${CFLAGS}"
1588         CXXFLAGS_save="${CXXFLAGS}"
1589         LDFLAGS_save="${LDFLAGS}"
1590 ])
1591
1592 dnl
1593 dnl  Enable release-specific flags
1594 dnl
1595 AC_ARG_ENABLE(release,
1596 [  --enable-release        activate extra optimizations (default disabled)])
1597 test "${enable_release}" != "yes" && enable_release="no"
1598
1599 dnl
1600 dnl Stream output
1601 dnl
1602 AC_ARG_ENABLE(sout,
1603   [  --enable-sout           Stream output modules (default enabled)])
1604 AS_IF([test "${enable_sout}" != "no"], [
1605   AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1606 ])
1607 AM_CONDITIONAL(ENABLE_SOUT, [test "${enable_sout}" != "no"])
1608
1609 AC_ARG_ENABLE(switcher,
1610   [  --enable-switcher       Stream-out switcher plugin (default disabled)])
1611
1612 dnl Check for libshout
1613 AC_ARG_ENABLE(shout,
1614   [  --enable-shout          libshout output plugin (default disabled)])
1615 if test "${enable_shout}" = "yes"; then
1616   PKG_CHECK_MODULES(SHOUT, shout >= 2.1,
1617     [AC_DEFINE(HAVE_SHOUT, 1, [Define if you have the libshout library])
1618      VLC_ADD_PLUGIN([access_output_shout])
1619      VLC_ADD_LIBS([access_output_shout],[$SHOUT_LIBS])
1620      VLC_ADD_CFLAGS([access_output_shout],[$SHOUT_CFLAGS])],
1621     [AC_MSG_WARN(libshout library not found)])
1622 fi
1623
1624 dnl Lua modules
1625 AC_ARG_ENABLE(lua,
1626   AS_HELP_STRING([--enable-lua],[lua playlist, metafetcher and interface 
1627                   plugins (default enabled)]))
1628 if test "${enable_lua}" != "no"
1629 then
1630   PKG_CHECK_MODULES(LUA, lua5.1,
1631     [ have_lua=yes ],
1632     [
1633     AC_MSG_WARN([lua5.1 not found, trying lua >= 5.1 instead])
1634     PKG_CHECK_MODULES(LUA, lua >= 5.1,
1635       [ have_lua=yes ],
1636       [
1637         have_lua=yes
1638         AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1639           [],
1640           [ have_lua=no ] )
1641         AC_CHECK_LIB(  lua5.1 , luaL_newstate,
1642           [LUA_LIBS="-llua5.1"],
1643           AC_CHECK_LIB( lua51 , luaL_newstate,
1644             [LUA_LIBS="-llua51"],
1645             AC_CHECK_LIB( lua , luaL_newstate,
1646               [LUA_LIBS="-llua"],
1647               [ have_lua=no
1648                 AC_MSG_WARN([lua >= 5.1 not found!])
1649               ])
1650           )
1651         )
1652       ])
1653     ])
1654   if test "x${have_lua}" = "xyes" ;  then
1655      AC_DEFINE(HAVE_LUA, 1, [Define if you have the lua library])
1656      VLC_ADD_LIBS([lua],[$LUA_LIBS])
1657      VLC_ADD_CFLAGS([lua],[$LUA_CFLAGS])
1658   fi
1659 fi
1660 AM_CONDITIONAL(BUILD_LUA, [test "${have_lua}" = "yes"])
1661
1662 dnl
1663 dnl HTTP daemon
1664 dnl
1665 AC_ARG_ENABLE(httpd,
1666   [  --enable-httpd          HTTP daemon (default enabled)])
1667 if test "${enable_httpd}" != "no"
1668 then
1669   VLC_ADD_PLUGIN([http])
1670   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
1671 fi
1672 AM_CONDITIONAL(BUILD_HTTPD, [test "${enable_httpd}" != "no"])
1673
1674 dnl
1675 dnl libproxy support
1676 dnl
1677 AC_ARG_ENABLE(libproxy,
1678   [  --enable-libproxy       libproxy support (default auto)])
1679 AS_IF([test "${enable_libproxy}" != "no"], [
1680   PKG_CHECK_MODULES(LIBPROXY, libproxy-1.0, [
1681     AC_DEFINE(HAVE_LIBPROXY, 1, [Define if libproxy is available])
1682     VLC_ADD_CFLAGS([access_http],[$LIBPROXY_CFLAGS])
1683     VLC_ADD_LIBS([access_http],[$LIBPROXY_LIBS])
1684   ], [
1685     AS_IF([test "x${enable_libproxy}" != "x"], [
1686       AC_MSG_ERROR([libproxy could not be found on your system])
1687     ])
1688   ])
1689 ])
1690
1691 dnl
1692 dnl VideoLAN manager
1693 dnl
1694 AC_ARG_ENABLE(vlm,
1695   [  --enable-vlm            VideoLAN manager (default enabled)],,
1696   [enable_vlm="${enable_sout}"])
1697 AS_IF([test "${enable_vlm}" != "no"], [
1698   AS_IF([test "${enable_sout}" = "no"], [
1699     AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1700   ])
1701   AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1702   VLC_ADD_PLUGIN([telnet])
1703 ])
1704 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1705
1706 dnl
1707 dnl Growl notification plugin
1708 dnl
1709 AC_ARG_ENABLE(growl,
1710   [  --enable-growl          growl notification plugin (default disabled)],,
1711   [enable_growl=no])
1712 AS_IF([test "${enable_growl}" != "no"], [
1713     VLC_ADD_PLUGIN([growl_udp])
1714     AC_CHECK_HEADERS(Growl/GrowlDefines.h, [
1715       VLC_ADD_PLUGIN([growl])
1716       VLC_ADD_LDFLAGS([growl], [-Wl,-framework,Growl,-framework,AppKit])
1717     ])
1718   ]
1719 )
1720
1721 dnl
1722 dnl Libnotify notification plugin
1723 dnl
1724
1725 AC_ARG_ENABLE(notify,
1726   [  --enable-notify         libnotify notification plugin (default enabled)])
1727 AS_IF([test "${enable_notify}" != "no" -a "${SYS}" != "mingw32"], [
1728     PKG_CHECK_MODULES(NOTIFY, libnotify,
1729       [
1730         VLC_ADD_PLUGIN([notify])
1731         VLC_ADD_CFLAGS(notify, [$NOTIFY_CFLAGS])
1732         VLC_ADD_LIBS(notify, [$NOTIFY_LIBS])
1733       ],[
1734     AS_IF([test "${enable_notify}" = "yes"],[
1735         AC_MSG_WARN( libnotify not found) ])
1736       ])
1737   ])
1738
1739 dnl
1740 dnl Audioscrobbler plugin
1741 dnl
1742
1743 AC_ARG_ENABLE(audioscrobbler,
1744   [  --disable-audioscrobbler Last.fm submission plugin (default enabled)])
1745 AS_IF([test "${enable_audioscrobbler}" != "no"], [
1746         VLC_ADD_PLUGIN([audioscrobbler])
1747   ])
1748
1749 dnl
1750 dnl Taglibplugin
1751 dnl
1752 AC_ARG_ENABLE(taglib,
1753   [  --disable-taglib Taglib support (default enabled) ])
1754   AS_IF([test "${enable_taglib}" != "no"],[
1755     PKG_CHECK_MODULES(TAGLIB, taglib,
1756       [ AC_DEFINE( HAVE_TAGLIB, 1, [Define if you have taglib plugin built] )
1757         VLC_ADD_PLUGIN([taglib])
1758         VLC_ADD_LIBS([taglib],[$TAGLIB_LIBS -lz])
1759        VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS]) ],
1760       [AC_MSG_WARN(TagLib library not found)])
1761   ])
1762
1763
1764 dnl
1765 dnl  Input plugins
1766 dnl
1767
1768 AC_ARG_WITH(,[Input plugins:])
1769
1770 dnl  live555 input
1771 dnl
1772 if test "${enable_livedotcom}" 
1773 then
1774   AC_MSG_WARN(--{en|dis}able-livedotcom is deprecated. Use --{en|dis}able-live555 instead.)
1775 fi
1776 if test "${enable_livedotcom}" = "no"
1777 then
1778   enable_live555="no"
1779 fi
1780
1781 AC_ARG_ENABLE(live555,
1782 [  --enable-live555        live555 RTSP input plugin (default enabled)])
1783 if test "${enable_live555}" != "no"; then
1784   AC_ARG_WITH(live555-tree,
1785     [    --with-live555-tree=PATH live.com tree for static linking])
1786
1787   dnl
1788   dnl test for --with-live555-tree
1789   dnl
1790   if test "${with_livedotcom_tree}" 
1791   then
1792     AC_MSG_WARN(--with-livedotcom-tree is deprecated. Use --with-live555-tree instead.)
1793   with_live555_tree="${with_livedotcom_tree}"
1794   fi
1795
1796   if test -z "${with_live555_tree}" -a "${CXX}" != ""; then
1797     AC_LANG_PUSH(C++)
1798     CPPFLAGS_save="${CPPFLAGS}"
1799     CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1800     if test "${SYS}" = "solaris"; then
1801       CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1802     fi
1803     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1804
1805     AC_CHECK_HEADERS(liveMedia_version.hh, [
1806       AC_MSG_CHECKING(for liveMedia version >= 1214895600 )
1807       AC_EGREP_CPP(yes,
1808         [#include <liveMedia_version.hh>
1809          #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
1810          #if LIVEMEDIA_LIBRARY_VERSION_INT < 1214895600
1811          yes
1812          #endif
1813          #endif],
1814         [AC_MSG_RESULT([no])
1815          AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia. 
1816 lternatively you can use --disable-live555 to disable the liveMedia plugin.])
1817       ],[
1818          AC_MSG_RESULT([yes])
1819          ])
1820     ])
1821      other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1822      other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
1823       if test "${SYS}" = "mingw32"; then
1824         # add ws2_32 for closesocket, select, recv
1825         other_libs="$other_libs -lws2_32"
1826       fi
1827     dnl We need to check for pic because live555 don't provide shared libs
1828     dnl and we want to build a plugins so we need -fPIC on some arch.
1829     AC_CHECK_HEADERS(liveMedia.hh, [
1830       VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1831         AC_CHECK_LIB(liveMedia_pic, main, [
1832           VLC_ADD_PLUGIN([live555])
1833          VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
1834          ],[
1835         AC_CHECK_LIB(liveMedia, main, [
1836           VLC_ADD_PLUGIN([live555])
1837           VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1838         ],[],[${other_libs}]) ],[${other_libs_pic}])
1839     ],[
1840        AC_MSG_WARN([The development files for liveMedia (live555) can't be found])
1841     ])
1842     CPPFLAGS="${CPPFLAGS_save}"
1843     AC_LANG_POP(C++)
1844   else
1845     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_live555_tree})
1846     real_live555_tree="`cd ${with_live555_tree} 2>/dev/null && pwd`"
1847     if test -z "${real_live555_tree}"; then
1848       dnl  The given directory can't be found
1849       AC_MSG_RESULT(no)
1850       AC_MSG_ERROR([cannot cd to ${with_live555_tree}])
1851     fi
1852     if test -f "${real_live555_tree}/liveMedia/libliveMedia.a"; then
1853       AC_MSG_RESULT(${real_live555_tree}/liveMedia/libliveMedia.a)
1854
1855       AC_CHECK_HEADERS(${real_live555_tree}/liveMedia/include/liveMedia_version.hh,[
1856         AC_MSG_CHECKING(for liveMedia version >= 1214895600 )
1857         AC_EGREP_CPP(yes,
1858           [#include "${real_live555_tree}/liveMedia/include/liveMedia_version.hh"
1859            #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
1860            #if LIVEMEDIA_LIBRARY_VERSION_INT < 1214895600
1861            yes
1862            #endif
1863            #endif],
1864           [AC_MSG_RESULT([no])
1865            AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia. 
1866 lternatively you can use --disable-live555 to disable the liveMedia plugin.])
1867         ],[
1868            AC_MSG_RESULT([yes])
1869            ])
1870       ])
1871
1872       VLC_ADD_PLUGIN([live555])
1873
1874       if test "${SYS}" = "mingw32"; then
1875         # add ws2_32 for closesocket, select, recv
1876         VLC_ADD_LIBS([live555],[-lws2_32])
1877       fi
1878
1879       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/liveMedia -lliveMedia])
1880       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1881       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/groupsock -lgroupsock])
1882       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/UsageEnvironment -lUsageEnvironment])
1883
1884       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/BasicUsageEnvironment/include])
1885       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/groupsock/include])
1886       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/liveMedia/include])
1887       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/UsageEnvironment/include ])
1888       if test "${SYS}" = "solaris"; then
1889         VLC_ADD_CXXFLAGS([live555],[-DSOLARIS])
1890       fi
1891     else
1892       dnl  The given live555 wasn't built
1893         AC_MSG_RESULT(no)
1894       if test "${enable_live555}" = "yes"; then
1895         AC_MSG_ERROR([cannot find ${real_live555_tree}/liveMedia/libliveMedia.a, make sure you compiled live555 in ${with_live555_tree}])
1896       fi        
1897     fi
1898   fi
1899 fi
1900
1901 dnl
1902 dnl  special access module for dc1394 input
1903 dnl
1904 AC_ARG_ENABLE(dc1394,
1905   [  --enable-dc1394         dc1394 access module (default disabled)])
1906 if test "${enable_dc1394}" = "yes"
1907 then
1908   AC_CHECK_HEADERS(libraw1394/raw1394.h, [
1909     AC_CHECK_LIB( raw1394, raw1394_get_nodecount, [
1910         AC_CHECK_HEADERS(libdc1394/dc1394_control.h , [
1911 dnl         AC_CHECK_LIB( dc1394_control, dc1394_setup_capture, [
1912               VLC_ADD_PLUGIN([dc1394])
1913               VLC_ADD_LIBS([dc1394],[-ldc1394_control -lraw1394])
1914 dnl         ],
1915 dnl         [
1916 dnl           AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1917 dnl         ])
1918       ],
1919       [
1920         AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1921       ])
1922     ],
1923     [
1924       AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1925     ])
1926   ],
1927   [
1928     AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1929   ])
1930 fi
1931
1932 dnl
1933 dnl dv module: digital video module check for libraw1394
1934 dnl
1935 AC_ARG_ENABLE(dv,
1936 [  --enable-dv             dv input module (default disabled)])
1937 if test "${enable_dv}" = "yes"
1938 then
1939   AC_ARG_WITH(dv-raw1394,
1940   [    --with-dv-raw1394=PATH   libraw1394 headers and libraries])
1941   AC_ARG_WITH(dv-raw1394-tree,
1942   [    --with-dv-raw1394=PATH   libraw1394 tree for static linking])
1943
1944   if test -z "${with_dv_raw1394}" -a "${with_dv_raw1394}" != ""
1945   then
1946     AC_MSG_CHECKING(for raw1394 headers in ${with_dv_raw1394})
1947     if test -f ${with_dv_raw1394}/include/libraw1394/raw1394.h
1948     then
1949       dnl  Use ${with_dv_raw1394}/include/libraw1394/raw1394.h
1950       AC_MSG_RESULT(yes)
1951       VLC_ADD_PLUGIN([access_dv])
1952       VLC_ADD_LIBS([access_dv],[-L${with_dv_raw1394}/lib -lraw1394 -lpthread])
1953       VLC_ADD_CPPFLAGS([access_dv],[-I${with_dv_raw1394}/include])
1954     else
1955       dnl  No libraw1394 could be found, sorry
1956       AC_MSG_RESULT(no)
1957       AC_MSG_ERROR([cannot find ${with_dv_raw1394}/include/libraw1394/raw1394.h])
1958     fi
1959   else
1960     AC_CHECK_HEADERS(libraw1394/raw1394.h,
1961     [ VLC_ADD_PLUGIN([access_dv])
1962         VLC_ADD_LIBS([access_dv],[-lraw1394 -lavc1394])
1963     ],[
1964         if test -n "${enable_dv}"
1965         then
1966           AC_MSG_ERROR([cannot find libraw1394 headers])
1967         fi
1968     ])
1969   fi
1970
1971   dnl Check for static linking of libraw1394
1972   if test -z "${with_dv_raw1394_tree}" -a "${with_dv_raw1394_tree}" != ""
1973   then
1974     AC_MSG_CHECKING(for libraw1394.a in ${with_dv_raw1394_tree})
1975     real_dv_raw1394_tree="`cd ${with_dv_raw1394_tree} 2>/dev/null && pwd`"
1976     if test -z "${real_dv_raw1394_tree}"
1977     then
1978       dnl  The given directory can't be found
1979       AC_MSG_RESULT(no)
1980       AC_MSG_ERROR([cannot cd to ${real_dv_raw1394_tree}])
1981     fi
1982     if test -f "${real_dv_raw1394_tree}/src/.libs/libraw1394.a"
1983     then
1984       dnl  Use a custom libraw1394
1985       AC_MSG_RESULT(${real_dv_raw1394_tree}/src/.libs/libraw1394.a)
1986       VLC_ADD_PLUGIN([access_dv])
1987       VLC_ADD_LIBS([access_dv],[-L${real_dv_raw1394_tree}/src/.libs -lraw1394])
1988       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_raw1394_tree}])
1989     else
1990       dnl  The given libraw1394 wasn't built
1991       AC_MSG_RESULT(no)
1992       AC_MSG_ERROR([cannot find ${real_dv_raw1394_tree}/src/.libs/libraw1394.a, make sure you compiled libraw1394 in ${with_dv_raw1394_tree}])
1993     fi
1994   fi
1995
1996   dnl
1997   dnl Check for libavc1394
1998   dnl
1999
2000   AC_ARG_WITH(dv-avc1394,
2001   [    --with-dv-avc1394=PATH   libavc1394 headers and libraries])
2002   AC_ARG_WITH(dv-avc1394-tree,
2003   [    --with-dv-avc1394=PATH   libavc1394 tree for static linking])
2004
2005   if test -z "${with_dv_avc1394}" -a "${with_dv_avc1394}" != ""
2006   then
2007     AC_MSG_CHECKING(for avc1394 headers in ${with_dv_avc1394})
2008     if test -f ${with_dv_avc1394}/include/libavc1394/avc1394.h
2009     then
2010       dnl  Use ${with_dv_avc1394}/include/libavc1394/avc1394.h
2011       AC_MSG_RESULT(yes)
2012       VLC_ADD_LIBS([access_dv],[-L${with_dv_avc1394}/lib -lavc1394 -lrom1394 -lpthread])
2013       VLC_ADD_CPPFLAGS([access_dv],[-I${with_avc1394}/include])
2014     else
2015       dnl  No libavc1394 could be found, sorry
2016       AC_MSG_RESULT(no)
2017       AC_MSG_ERROR([cannot find ${with_dv_avc1394}/include/libavc1394/avc1394.h])
2018     fi
2019   else
2020     AC_CHECK_HEADERS(libavc1394/avc1394.h,
2021     [ VLC_ADD_LIBS([access_dv],[-lavc1394 -lrom1394 -lpthread])
2022     ],[
2023         if test -n "${enable_dv}"
2024         then
2025           AC_MSG_ERROR([cannot find libavc1394 headers])
2026         fi
2027     ])
2028   fi
2029
2030   dnl Check for static linking of libavc1394
2031   if test -z "${with_dv_avc1394_tree}" -a "${with_dv_avc1394_tree}" != ""
2032   then
2033     AC_MSG_CHECKING(for libavc1394.a in ${with_dv_avc1394_tree})
2034     real_dv_avc1394_tree="`cd ${with_dv_avc1394_tree} 2>/dev/null && pwd`"
2035     if test -z "${real_dv_avc1394_tree}"
2036     then
2037       dnl  The given directory can't be found
2038       AC_MSG_RESULT(no)
2039       AC_MSG_ERROR([cannot cd to ${real_dv_avc1394_tree}])
2040     fi
2041     if test -f "${real_dv_avc1394_tree}/src/.libs/libavc1394.a"
2042     then
2043       dnl  Use a custom libavc1394
2044       AC_MSG_RESULT(${real_dv_avc1394_tree}/src/.libs/libavc1394.a)
2045       VLC_ADD_LIBS([access_dv],[-L${real_dv_avc1394_tree}/src/.libs -lavc1394 -lrom1394 -lpthread])
2046       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_avc1394_tree}])
2047     else
2048       dnl  The given libavc1394 wasn't built
2049       AC_MSG_RESULT(no)
2050       AC_MSG_ERROR([cannot find ${real_dv_avc1394_tree}/src/.libs/libavc1394.a, make sure you compiled libavc1394 in ${with_dv_avc1394_tree}])
2051     fi
2052   fi
2053 fi
2054
2055 dnl
2056 dnl dvdread module: check for libdvdread
2057 dnl
2058 AC_ARG_ENABLE(dvdread,
2059 [  --enable-dvdread        dvdread input module (default disabled)])
2060 if test "${enable_dvdread}" != "no"
2061 then
2062   AC_ARG_WITH(dvdread,
2063   [    --with-dvdread=PATH   libdvdread headers and libraries])
2064   AC_ARG_WITH(dvdread-tree,
2065   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
2066
2067   dnl Temporary hack (yeah, sure ;)
2068   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2069       VLC_ADD_LIBS([dvdread],[-ldvdcss])
2070   fi
2071
2072   if test -z "${with_dvdread}"
2073   then
2074     if test -z "${with_dvdread_tree}"
2075     then
2076       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
2077         [ VLC_ADD_PLUGIN([dvdread])
2078           VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
2079         ],[
2080           AC_CHECK_HEADERS(libdvdread/dvd_reader.h,
2081             [ VLC_ADD_PLUGIN([dvdread])
2082               VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
2083             ],[
2084               if test -n "${enable_dvdread}"
2085               then
2086               AC_MSG_ERROR([cannot find libdvdread headers])
2087              fi
2088            ])
2089         ])
2090     else
2091       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
2092       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
2093       if test -z "${real_dvdread_tree}"
2094       then
2095         dnl  The given directory can't be found
2096         AC_MSG_RESULT(no)
2097         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
2098       fi
2099       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
2100       then
2101         dnl  Use a custom libdvdread
2102         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
2103         VLC_ADD_PLUGIN([dvdread])
2104         VLC_ADD_LIBS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LIBS_dvdcss}])
2105         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
2106       else
2107         dnl  The given libdvdread wasn't built
2108         AC_MSG_RESULT(no)
2109         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
2110       fi
2111     fi
2112   else
2113     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
2114     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
2115     then
2116       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
2117       AC_MSG_RESULT(yes)
2118       VLC_ADD_PLUGIN([dvdread])
2119       VLC_ADD_LIBS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LIBS_dvdcss}])
2120       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
2121     else
2122       dnl  No libdvdread could be found, sorry
2123       AC_MSG_RESULT(no)
2124       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
2125     fi
2126   fi
2127 fi
2128
2129 dnl
2130 dnl  libdvdnav plugin
2131 dnl
2132 AC_ARG_ENABLE(dvdnav,
2133   [  --enable-dvdnav         dvdnav input module (default enabled)])
2134 if test "${enable_dvdnav}" != "no"
2135 then
2136   dnl Same hack than dvdread
2137   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2138       VLC_ADD_LIBS([dvdnav],[-ldvdcss])
2139   fi
2140
2141   DVDNAV_PATH="${PATH}"
2142   AC_ARG_WITH(dvdnav-config-path,
2143     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
2144     [ if test "${with_dvdnav_config_path}" != "no"
2145       then
2146         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
2147       fi ])
2148   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
2149   if test "${DVDNAV_CONFIG}" != "no"
2150   then
2151     VLC_ADD_PLUGIN([dvdnav])
2152     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
2153     VLC_ADD_LIBS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
2154   fi
2155 fi
2156
2157 dnl
2158 dnl  Windows DirectShow access module
2159 dnl
2160 AC_ARG_ENABLE(dshow,
2161   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
2162 if test "${enable_dshow}" != "no"
2163 then
2164   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2165   then
2166     AC_LANG_PUSH(C++)
2167       AC_CHECK_HEADERS(dshow.h,
2168       [ VLC_ADD_PLUGIN([dshow])
2169         VLC_ADD_CXXFLAGS([dshow],[])
2170         VLC_ADD_LIBS([dshow],[-lole32 -loleaut32 -luuid]) ])
2171     AC_LANG_POP(C++)
2172   fi
2173 fi
2174
2175 dnl
2176 dnl  Windows DirectShow BDA access module
2177 dnl
2178 AC_ARG_ENABLE(bda,
2179   AS_HELP_STRING([--enable-bda],[Win32 DirectShow BDA support (default 
2180                   enabled on Win32)]))
2181 if test "${enable_bda}" != "no"
2182 then
2183   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2184   then
2185       AC_CHECK_HEADERS(dshow.h,
2186       [ VLC_ADD_PLUGIN([bda])
2187         VLC_ADD_CXXFLAGS([bda],[])
2188         VLC_ADD_LIBS([bda],[-lstrmiids -lole32 -loleaut32 -luuid]) ])
2189   fi
2190 fi
2191
2192
2193 dnl
2194 dnl  OpenCV wrapper and example filters
2195 dnl
2196 AC_ARG_ENABLE(opencv,
2197   [  --enable-opencv         OpenCV (computer vision) filter (default disabled)])
2198 if test "${enable_opencv}" = "yes" -a "${CXX}" != "";
2199 then
2200   AC_ARG_WITH(opencv-tree,
2201   [    --with-opencv-tree=PATH opencv tree for linking])
2202     if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2203     then
2204       test -z "${with_opencv_tree}" && AC_MSG_ERROR([You have to specify --with-opencv-tree])
2205           AC_MSG_CHECKING(for opencv in ${with_opencv_tree})
2206           if test -f ${with_opencv_tree}/cv/include/cv.h -a -f ${with_opencv_tree}/cxcore/include/cxcore.h \
2207             -a -f ${with_opencv_tree}/cvaux/include/cvaux.h -a -f ${with_opencv_tree}/otherlibs/highgui/highgui.h
2208       then
2209         AC_MSG_RESULT(yes)
2210         VLC_ADD_PLUGIN([opencv_wrapper])
2211         VLC_ADD_LIBS([opencv_wrapper],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2212         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])
2213         AC_LANG_PUSH(C++)
2214         VLC_ADD_PLUGIN([opencv_example])
2215         VLC_ADD_LIBS([opencv_example],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2216         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])
2217         AC_LANG_POP(C++)        
2218           else
2219         dnl  No opencv could be found, sorry
2220         AC_MSG_RESULT(no)
2221         AC_MSG_ERROR([cannot find opencv in ${with_opencv_tree}])
2222           fi
2223     else
2224       PKG_CHECK_MODULES(OPENCV, opencv,
2225         [
2226           VLC_ADD_PLUGIN([opencv_example])
2227           VLC_ADD_PLUGIN([opencv_wrapper])
2228           VLC_ADD_LIBS([opencv_example opencv_wrapper],[${OPENCV_LIBS}])
2229           VLC_ADD_CFLAGS([opencv_wrapper],[${OPENCV_CFLAGS}])
2230           VLC_ADD_CXXFLAGS([opencv_example],[${OPENCV_CFLAGS}])
2231         ],
2232         [AC_MSG_ERROR([libopencv not found!])]
2233       )
2234     fi
2235 fi
2236
2237
2238 dnl
2239 dnl  libsmbclient plugin
2240 dnl
2241 AC_ARG_ENABLE(smb,
2242   [  --enable-smb            smb input module (default enabled)])
2243 if test "${enable_smb}" != "no"; then
2244   AC_CHECK_HEADERS(libsmbclient.h,
2245     [ VLC_ADD_PLUGIN([access_smb])
2246       VLC_ADD_LIBS([access_smb],[-lsmbclient]) ],
2247     [ if test -n "${enable_smb}"; then
2248         AC_MSG_ERROR([cannot find libsmbclient headers])
2249      fi ])
2250   AC_CHECK_MEMBER([struct _SMBCCTX.close_fn],
2251     AC_DEFINE([HAVE__SMBCCTX_CLOSE_FN], 1, [Define if samba has _SMBCCTX.close_fn]),,
2252     [#include <libsmbclient.h>])
2253 fi
2254
2255 dnl
2256 dnl  libdvbpsi ts demux/mux
2257 dnl
2258 AC_ARG_ENABLE(dvbpsi,
2259   [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
2260 have_dvbpsi=no
2261 if test "${enable_dvbpsi}" != "no"
2262 then
2263   AC_ARG_WITH(dvbpsi,
2264   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
2265   AC_ARG_WITH(dvbpsi,
2266   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
2267   case "${with_dvbpsi}" in
2268   ""|yes)
2269     if test -z "${with_dvbpsi_tree}"
2270     then
2271       AC_CHECK_HEADERS(dvbpsi/dr.h,
2272         [ VLC_ADD_PLUGIN([ts])
2273           if test "${enable_sout}" != "no"; then
2274             VLC_ADD_PLUGIN([mux_ts])
2275           fi
2276           VLC_ADD_LIBS([mux_ts ts dvb],[-ldvbpsi])
2277           have_dvbpsi=yes],
2278         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
2279         [#if defined( HAVE_STDINT_H )
2280 #   include <stdint.h>
2281 #elif defined( HAVE_INTTYPES_H )
2282 #   include <inttypes.h>
2283 #endif
2284 #include <dvbpsi/dvbpsi.h>
2285 #include <dvbpsi/descriptor.h>
2286 #include <dvbpsi/pat.h>
2287 #include <dvbpsi/pmt.h>])
2288     else
2289       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
2290       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
2291       if test -z "${real_dvbpsi_tree}"
2292       then
2293         dnl  The given directory can't be found
2294         AC_MSG_RESULT(no)
2295         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
2296       fi
2297       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
2298       then
2299         dnl  Use a custom libdvbpsi
2300         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
2301         VLC_ADD_PLUGIN([ts])
2302         if test "${enable_sout}" != "no"; then
2303           VLC_ADD_PLUGIN([mux_ts])
2304         fi
2305         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
2306         VLC_ADD_LIBS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
2307         have_dvbpsi=yes
2308       else
2309         dnl  The given libdvbpsi wasn't built
2310         AC_MSG_RESULT(no)
2311         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
2312       fi
2313     fi
2314   ;;
2315   no)
2316     dnl  Compile without dvbpsi
2317   ;;
2318   *)
2319     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
2320     if test -z "${with_dvbpsi}"
2321     then
2322       LDFLAGS_test=""
2323       CPPFLAGS_test=""
2324     else
2325       LDFLAGS_test="-L${with_dvbpsi}/lib"
2326       CPPFLAGS_test="-I${with_dvbpsi}/include"
2327     fi
2328     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
2329     AC_CHECK_HEADERS([dvbpsi/dr.h],[
2330       VLC_ADD_PLUGIN([ts])
2331       if test "${enable_sout}" != "no"; then
2332         VLC_ADD_PLUGIN([mux_ts])
2333       fi
2334       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
2335       VLC_ADD_LIBS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
2336       have_dvbpsi=yes
2337     ],[
2338       if test -n "${enable_dvbpsi}"
2339       then
2340         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])
2341       fi
2342     ])
2343     CPPFLAGS="${CPPFLAGS_save}"
2344   ;;
2345   esac
2346   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
2347     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
2348   ], [], [${LIBS_ts}])
2349
2350 fi
2351
2352 dnl
2353 dnl  Video4Linux plugin
2354 dnl
2355 AC_ARG_ENABLE(v4l,
2356   [  --enable-v4l            Video4Linux input support (default disabled)])
2357 if test "${enable_v4l}" = "yes"
2358 then
2359   AC_ARG_WITH(v4l,
2360     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
2361   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
2362   then
2363     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
2364   fi
2365
2366   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
2367   AC_CHECK_HEADERS(linux/videodev.h, [
2368     VLC_ADD_PLUGIN([v4l])
2369   ],[])
2370   CPPFLAGS="${CPPFLAGS_save}"
2371 fi
2372
2373 dnl
2374 dnl  Video4Linux2 plugin
2375 dnl
2376 AC_ARG_ENABLE(v4l2,
2377   [  --enable-v4l2           Video4Linux2 input support (default enabled)])
2378 if test "${enable_v4l2}" != "no"
2379 then
2380   AC_ARG_WITH(v4l2,
2381     [    --with-v4l2=PATH       path to a v4l2-enabled kernel tree],[],[])
2382   if test "${with_v4l2}" != "no" -a -n "${with_v4l2}"
2383   then
2384     VLC_ADD_CPPFLAGS([v4l2],[-I${with_v4l2}/include])
2385   fi
2386
2387   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l2}"
2388   AC_CHECK_HEADERS(linux/videodev2.h, [
2389     VLC_ADD_PLUGIN([v4l2])
2390   ],[])
2391   CPPFLAGS="${CPPFLAGS_save}"
2392 fi
2393
2394 dnl
2395 dnl libv4l2 support for video4linux.
2396 dnl
2397 AC_ARG_ENABLE( libv4l2,
2398   [  --enable-libv4l2        Libv4l2 Video4Linux2 support (default enabled)])
2399 if test "${enable_libv4l2}" != "no" -a "${enable_v4l2}" != "no"
2400 then
2401     PKG_CHECK_MODULES( LIBV4L2, libv4l2, [
2402       VLC_ADD_LDFLAGS([v4l2],[${LIBV4L2_LIBS}])
2403       VLC_ADD_CFLAGS([v4l2],[${LIBV4L2_CFLAGS}])
2404       AC_DEFINE(HAVE_LIBV4L2, 1, Define if libv4l is available)],
2405       AC_MSG_WARN([LibV4L2 support disabled because libv4l2 development headers were not found])
2406     )
2407 fi
2408
2409 dnl
2410 dnl  special access module for Hauppauge PVR cards
2411 dnl
2412 AC_ARG_ENABLE(pvr,
2413   [  --enable-pvr            PVR cards access module (default disabled)])
2414 if test "${enable_pvr}" = "yes"
2415 then
2416   VLC_ADD_PLUGIN([pvr])
2417   AC_ARG_WITH(videodev2,
2418     [  --with-videodev2=FILE   Location of videodev2.h file (default /usr/include/linux/videodev2.h)],[],[])
2419   if test "${with_videodev2}" != "no" -a -n "${with_videodev2}"
2420   then
2421     AC_DEFINE_UNQUOTED(VIDEODEV2_H_FILE, "${with_videodev2}", [Location of videodev2.h])
2422   fi
2423     
2424
2425   AC_CACHE_CHECK([for new linux/videodev2.h],
2426       [ac_cv_new_linux_videodev2_h],
2427       [AC_TRY_COMPILE([
2428           #include <sys/types.h>
2429           #   ifdef VIDEODEV2_H_FILE
2430           #   include VIDEODEV2_H_FILE
2431           #   else
2432           #   include <linux/videodev2.h>
2433           #   endif
2434           ],
2435           [struct v4l2_ext_controls ctrls; ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG; ],
2436           ac_cv_new_linux_videodev2_h=yes,
2437           ac_cv_new_linux_videodev2_h=no)])
2438   if test "${ac_cv_new_linux_videodev2_h}" != "no"; then
2439     AC_DEFINE(HAVE_NEW_LINUX_VIDEODEV2_H, 1, [Define if new linux/videodev2.h present])
2440   fi
2441 fi
2442
2443 dnl
2444 dnl  gnomeVFS access module
2445 dnl
2446 AC_ARG_ENABLE(gnomevfs,
2447   [  --enable-gnomevfs       GnomeVFS access module (default disabled)])
2448 if test "${enable_gnomevfs}" = "yes" 
2449 then
2450   PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0,
2451     VLC_ADD_LIBS([access_gnomevfs],[$GNOMEVFS_LIBS])
2452     VLC_ADD_CPPFLAGS([access_gnomevfs],[$GNOMEVFS_CPPFLAGS])
2453     VLC_ADD_CFLAGS([access_gnomevfs],[$GNOMEVFS_CFLAGS])
2454     VLC_ADD_PLUGIN([access_gnomevfs]),
2455     AC_MSG_WARN([GnomeVFS support disabled because GnomeVFS development headers not found]))
2456 fi
2457
2458 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
2459 AC_ARG_ENABLE(libcdio,
2460   [  --enable-libcdio        CD input and control library support (default enabled)])
2461
2462 AC_ARG_ENABLE(vcdinfo,
2463   [  --enable-libvcdinfo     VCD information library support (default enabled)])
2464
2465 have_libcdio=no
2466 have_libvcdinfo=no
2467 if test "${enable_libcdio}" != "no"
2468 then
2469   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.78.2,
2470      have_libcdio=yes
2471      AC_DEFINE(HAVE_LIBCDIO, 1, 
2472      [Define if you have libcdio 0.78.2 or greater installed]),
2473      [AC_MSG_WARN(CD Reading and information library not found)])
2474
2475   if test "${enable_vcdinfo}" != "no"
2476   then
2477     PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.22,
2478        [have_libvcdinfo=yes
2479        AC_DEFINE(HAVE_VCDINFO, 1, 
2480        [Define if you have libvcdinfo 0.7.22 or greater installed])],
2481        [AC_MSG_WARN(VCD information library not found)])
2482   fi
2483 fi
2484
2485 dnl
2486 dnl  VCDX and CDDAX modules
2487 dnl
2488 AC_ARG_ENABLE(cddax,
2489   AS_HELP_STRING([--enable-cddax],[audio CD plugin with CD Text and CD paranoia
2490                   via libcdio (default disabled)]))
2491  
2492 AC_ARG_ENABLE(libcddb,
2493   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
2494  
2495 if test "${enable_cddax}" = "yes"
2496 then
2497   if test "$have_libcdio" = "yes"
2498   then
2499     AC_DEFINE(HAVE_CDDAX, 1, [Define for the audio CD plugin using libcdio])
2500     VLC_ADD_LIBS([cddax],[$LIBCDIO_LIBS])
2501     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
2502     VLC_ADD_PLUGIN([cddax])
2503     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
2504     VLC_ADD_LIBS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
2505     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
2506   else 
2507     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
2508     HAVE_CDDAX=no
2509   fi
2510
2511   if test "$enable_libcddb" != "no"; then
2512     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2513       HAVE_LIBCDDB=yes 
2514       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2515       VLC_ADD_LIBS([cddax],[$LIBCDDB_LIBS])
2516       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
2517       ],
2518       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2519       HAVE_LIBCDDB=no])
2520   fi
2521  
2522 fi
2523
2524 AC_ARG_ENABLE(vcdx,
2525   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2526  
2527 if test "${enable_vcdx}" = "yes"
2528 then
2529   if test "${have_libvcdinfo}" = "yes"
2530   then
2531     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2532     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2533   else 
2534     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
2535     HAVE_VCDX=no
2536   fi
2537
2538   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
2539    [VLC_ADD_LIBS([vcdx],[$LIBISO9660_LIBS])
2540     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
2541     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
2542     HAVE_VCDX=no])
2543
2544   if test "$have_libvcdinfo" = "yes"
2545   then
2546     AC_DEFINE(HAVE_VCDX, 1, 
2547     [Define for the VCD plugin using libcdio/libvcdinfo])
2548     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2549     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2550     VLC_ADD_PLUGIN([vcdx])
2551   else 
2552     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
2553     HAVE_VCDX=no
2554   fi
2555 fi
2556
2557 dnl
2558 dnl  Built-in CD-DA and VCD module
2559 dnl
2560 AC_ARG_ENABLE(cdda,           
2561   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
2562  
2563 AC_ARG_ENABLE(vcd,
2564   [  --enable-vcd            built-in VCD (default enabled)])
2565
2566 if test "${enable_vcd}" != "no"
2567 then
2568   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2569   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2570     AC_MSG_RESULT(yes)
2571     VLC_ADD_PLUGIN([vcd])
2572     VLC_ADD_PLUGIN([cdda])
2573   ],[
2574     AC_MSG_RESULT(no)
2575   ])
2576
2577   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2578   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2579     AC_MSG_RESULT(yes)
2580     VLC_ADD_PLUGIN([vcd])
2581     VLC_ADD_PLUGIN([cdda])
2582     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2583   ],[
2584     AC_MSG_RESULT(no)
2585   ])
2586
2587   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2588   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2589     AC_MSG_RESULT(yes)
2590     VLC_ADD_PLUGIN([vcd])
2591     VLC_ADD_PLUGIN([cdda])
2592     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2593   ],[
2594     AC_MSG_RESULT(no)
2595   ])
2596
2597   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2598   then
2599     VLC_ADD_PLUGIN([vcd])
2600     VLC_ADD_PLUGIN([cdda])
2601   fi
2602
2603   if test "${SYS}" = "darwin"
2604   then
2605     VLC_ADD_PLUGIN([vcd])
2606     VLC_ADD_PLUGIN([cdda])
2607     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-Wl,-framework,IOKit,-framework,CoreFoundation])
2608     VLC_ADD_LIBS([vcdx cddax cdda],[-liconv])
2609   fi
2610
2611   if test "$enable_libcddb" != "no"; then
2612     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2613       HAVE_LIBCDDB=yes 
2614       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2615       VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2616       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2617       ],:
2618       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2619       HAVE_LIBCDDB=no])
2620   fi
2621 fi
2622
2623 dnl
2624 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2625 dnl
2626 AC_ARG_ENABLE(dvb,
2627   [  --enable-dvb            DVB-S/T/C card support (default enabled)])
2628
2629 if test "${enable_dvb}" != "no"
2630 then
2631     AS_IF([test "${have_dvbpsi}" = "yes" ],[  
2632     AC_ARG_WITH(dvb,
2633      [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
2634      if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2635      then
2636        VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2637      fi
2638      CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2639      AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2640      VLC_ADD_PLUGIN([dvb])
2641      ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2642      CPPFLAGS="${CPPFLAGS_save}"
2643    ],[
2644      AC_MSG_WARN([the dvb access module requires libdvbpsi])
2645     ]) 
2646 fi
2647
2648 dnl
2649 dnl  Screen capture module
2650 dnl
2651 AC_ARG_ENABLE(screen,
2652   [  --enable-screen         Screen capture support (default enabled)])
2653 if test "${enable_screen}" != "no"; then
2654   if test "${SYS}" = "darwin"; then
2655     AC_CHECK_HEADERS(OpenGL/gl.h, [
2656       AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2657         VLC_ADD_PLUGIN([screen])
2658         VLC_ADD_LDFLAGS([screen],[-Wl,-framework,OpenGL,-framework,ApplicationServices])
2659       ])
2660     ])
2661   elif test "${SYS}" = "mingw32"; then
2662     VLC_ADD_PLUGIN([screen])
2663     VLC_ADD_LIBS([screen],[-lgdi32])
2664   elif test "${SYS}" = "mingwce"; then
2665     CPPFLAGS="${CPPFLAGS_save}"
2666   elif test "${SYS}" = "beos"; then
2667     VLC_ADD_PLUGIN([screen])
2668     VLC_ADD_CXXFLAGS([screen],[])
2669     VLC_ADD_LIBS([screen],[-lbe])
2670   else
2671     CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
2672     AC_CHECK_HEADERS(X11/Xlib.h, [
2673       VLC_ADD_PLUGIN([screen])
2674       VLC_ADD_LIBS([screen],[${X_LIBS} ${X_PRE_LIBS} -lX11])
2675       VLC_ADD_CPPFLAGS([screen],[${X_CFLAGS}])
2676     ])
2677     CPPFLAGS="${CPPFLAGS_save}"
2678   fi
2679 fi
2680
2681 dnl
2682 dnl  ipv6 plugin - not for QNX yet
2683 dnl
2684 have_ipv6=no
2685 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2686   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2687 ])
2688
2689 AS_IF([test "${have_ipv6}" = "yes"], [
2690   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2691
2692
2693 AC_CHECK_FUNCS(inet_ntop,[
2694   AC_DEFINE(HAVE_INET_NTOP, 1, [Define to 1 if you have inet_ntop().])])
2695
2696
2697 dnl
2698 dnl  ogg demux plugin
2699 dnl
2700 AC_ARG_ENABLE(ogg,
2701   [  --enable-ogg            Ogg demux support (default enabled)])
2702 if test "${enable_ogg}" != "no"
2703 then
2704   AC_ARG_WITH(ogg-tree,
2705   [    --with-ogg-tree=PATH  ogg tree for static linking])
2706   if test -n "${with_ogg_tree}"
2707   then
2708     AC_MSG_CHECKING(for libogg.a in ${with_ogg_tree})
2709     real_ogg_tree="`cd ${with_ogg_tree} 2>/dev/null && pwd`"
2710     if test -z "${real_ogg_tree}"
2711     then
2712       dnl  The given directory can't be found
2713       AC_MSG_RESULT(no)
2714       AC_MSG_ERROR([cannot cd to ${with_ogg_tree}])
2715     fi
2716     if test -f "${real_ogg_tree}/src/.libs/libogg.a"
2717     then
2718       dnl  Use a custom ogg
2719       AC_MSG_RESULT(${real_ogg_tree}/src/.libs/libogg.a)
2720       VLC_ADD_PLUGIN([ogg])
2721       if test "${enable_sout}" != "no"; then
2722         VLC_ADD_PLUGIN([mux_ogg])
2723       fi
2724       VLC_ADD_LIBS([ogg mux_ogg speex vorbis],[${real_ogg_tree}/src/.libs/libogg.a])
2725       VLC_ADD_CFLAGS([ogg mux_ogg speex vorbis],[-I${real_ogg_tree}/include])
2726     else
2727       dnl  The given ogg wasn't built
2728       AC_MSG_RESULT(no)
2729       AC_MSG_ERROR([cannot find ${real_ogg_tree}/src/.libs/libogg.a, make sure you compiled ogg in ${with_ogg_tree}])
2730     fi
2731   else
2732     AC_CHECK_HEADERS(ogg/ogg.h, [
2733       AC_CHECK_LIB( ogg, oggpack_read, [
2734         VLC_ADD_PLUGIN([ogg])
2735         if test "${enable_sout}" != "no"; then
2736           VLC_ADD_PLUGIN([mux_ogg])
2737         fi
2738         VLC_ADD_LIBS([ogg mux_ogg],[-logg])])
2739      ],[])
2740   fi
2741 fi
2742
2743 dnl
2744 dnl  matroska demux plugin
2745 dnl
2746 AC_ARG_ENABLE(mkv,
2747   [  --enable-mkv            Matroska demux support (default enabled)])
2748 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2749   AC_LANG_PUSH(C++)
2750   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2751     AC_MSG_CHECKING(for libebml version >= 0.7.7)
2752     AC_EGREP_CPP(yes,
2753       [#include <ebml/EbmlVersion.h>
2754        #ifdef LIBEBML_VERSION
2755        #if LIBEBML_VERSION >= 0x000706
2756        yes
2757        #endif
2758        #endif],
2759       [AC_MSG_RESULT([yes])
2760         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2761           AC_MSG_CHECKING(for libmatroska version >= 0.8.0)
2762           AC_EGREP_CPP(yes,
2763             [#include <matroska/KaxVersion.h>
2764              #ifdef LIBMATROSKA_VERSION
2765              #if LIBMATROSKA_VERSION >= 0x000705
2766              yes
2767              #endif
2768              #endif],
2769             [AC_MSG_RESULT([yes])
2770               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2771               VLC_ADD_CXXFLAGS([mkv],[])
2772               if test "${SYS}" = "darwin"; then
2773                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2774               fi
2775               AC_CHECK_LIB(ebml_pic, main, [
2776                 VLC_ADD_PLUGIN([mkv])
2777                 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2778               ],
2779                 AC_CHECK_LIB(ebml, main, [
2780                   VLC_ADD_PLUGIN([mkv])
2781                   VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2782                 ]) 
2783               )
2784             ],
2785             [AC_MSG_RESULT([no])
2786               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.])
2787           ])
2788         ])
2789       ],
2790       [AC_MSG_RESULT([no])
2791         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.])
2792     ])
2793   ])
2794   AC_LANG_POP(C++)
2795 fi
2796
2797 dnl
2798 dnl  modplug demux plugin
2799 dnl
2800 AC_ARG_ENABLE(mod,
2801   [  --enable-mod            Mod demux support (default enabled)])
2802 if test "${enable_mod}" != "no"
2803 then
2804   AC_ARG_WITH(mod-tree,
2805   [    --with-mod-tree=PATH mod tree for static linking])
2806   if test -n "${with_mod_tree}"
2807   then
2808     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2809     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2810     if test -z "${real_mod_tree}"
2811     then
2812       dnl  The given directory can't be found
2813       AC_MSG_RESULT(no)
2814       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2815     fi
2816     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2817     then
2818       dnl  Use a custom mod
2819       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2820       VLC_ADD_PLUGIN([mod])
2821       VLC_ADD_LIBS([mod],[${real_mod_tree}/src/.libs/libmodplug.a -lstdc++])
2822       VLC_ADD_CXXFLAGS([mod],[-I${real_mod_tree}/include])
2823     else
2824       dnl  The given mod wasn't built
2825       AC_MSG_RESULT(no)
2826       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2827     fi
2828   else
2829     AC_CHECK_HEADERS(libmodplug/modplug.h, [
2830       VLC_ADD_PLUGIN([mod])
2831       VLC_ADD_CXXFLAGS([mod],[])
2832       VLC_ADD_LIBS([mod],[-lmodplug -lstdc++])])
2833   fi
2834 fi
2835
2836 dnl
2837 dnl  mpc demux plugin
2838 dnl
2839 AC_ARG_ENABLE(mpc,
2840   [  --enable-mpc            Mpc demux support (default enabled)])
2841 if test "${enable_mpc}" != "no"
2842 then
2843   AC_CHECK_HEADERS(mpcdec/mpcdec.h, [
2844     VLC_ADD_PLUGIN([mpc])
2845     VLC_ADD_LIBS([mpc],[-lmpcdec])])
2846 fi
2847
2848 dnl
2849 dnl  game music emu demux plugin
2850 dnl
2851 AC_ARG_ENABLE(gme,
2852   [  --enable-gme            Game Music Emu demux support (default enabled)])
2853 if test "${enable_gme}" != "no" -a "${CXX}" != "";
2854 then
2855   AC_LANG_PUSH(C++)
2856   AC_ARG_WITH(gme-tree,
2857   [    --with-gme-tree=PATH gme tree for static linking])
2858   if test -n "${with_gme_tree}"
2859   then
2860     AC_MSG_CHECKING(for libgme.a in ${with_mod_tree})
2861     real_gme_tree="`cd ${with_gme_tree} 2>/dev/null && pwd`"
2862     if test -z "${real_gme_tree}"
2863     then
2864       dnl  The given directory can't be found
2865       AC_MSG_RESULT(no)
2866       AC_MSG_ERROR([cannot cd to ${with_gme_tree}])
2867     fi
2868     if test -f "${real_gme_tree}/gme/libgme.a"
2869     then
2870       dnl  Use a custom gme
2871       AC_MSG_RESULT(${real_gme_tree}/gme/libgme.a)
2872       VLC_ADD_PLUGIN([gme])
2873       VLC_ADD_LIBS([gme],[${real_gme_tree}/gme/libgme.a])
2874       VLC_ADD_CXXFLAGS([gme],[-I${real_gme_tree}/gme])
2875     else
2876       dnl  The given gme wasn't built
2877       AC_MSG_RESULT(no)
2878       AC_MSG_ERROR([cannot find ${real_mod_tree}/gme/libgme.a, make sure you compiled gme in ${with_gme_tree}])
2879     fi
2880   else
2881       AC_MSG_WARN([only static linking is available, you must provide a gme-tree])
2882   fi
2883   AC_LANG_POP(C++)
2884 fi
2885
2886 dnl
2887 dnl  Codec plugins
2888 dnl
2889
2890 AC_ARG_WITH(,[Codec plugins:])
2891
2892 dnl
2893 dnl  mad plugin
2894 dnl
2895 AC_ARG_ENABLE(mad,
2896   [  --enable-mad            libmad module (default enabled)])
2897 if test "${enable_mad}" != "no"
2898 then
2899   AC_ARG_WITH(mad,
2900     [    --with-mad=PATH       path to libmad],[],[])
2901   if test "${with_mad}" != "no" -a -n "${with_mad}"
2902   then
2903     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2904     VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2905   fi
2906
2907   AC_ARG_WITH(mad-tree,
2908     [    --with-mad-tree=PATH   mad tree for static linking],[],[])
2909   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2910   then
2911     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2912     if test -z "${real_mad_tree}"
2913     then
2914       dnl  The given directory can't be found
2915       AC_MSG_RESULT(no)
2916       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2917     fi
2918     dnl  Use a custom libmad
2919     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2920     if test -f ${real_mad_tree}/mad.h
2921     then
2922       AC_MSG_RESULT(yes)
2923       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2924       VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2925       LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2926       AC_CHECK_LIB(mad, mad_bit_init, [
2927         VLC_ADD_PLUGIN([mpgatofixed32])
2928         VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2929         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2930       ],[])
2931       LDFLAGS="${LDFLAGS_save}"
2932     else
2933       AC_MSG_RESULT(no)
2934       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2935     fi
2936   else
2937     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2938     LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2939     AC_CHECK_HEADERS(mad.h, ,
2940       [ 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.]) ])
2941     AC_CHECK_LIB(mad, mad_bit_init, [
2942       VLC_ADD_PLUGIN([mpgatofixed32])
2943       VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2944       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2945     CPPFLAGS="${CPPFLAGS_save}"
2946     LDFLAGS="${LDFLAGS_save}"
2947   fi
2948 fi
2949
2950 dnl
2951 dnl   libid3tag support (FIXME!!! doesn't work with new input)
2952 dnl
2953 AC_ARG_ENABLE( id3tag,
2954 [  --disable-id3tag        id3tag metadata reader plugin (default disabled)])
2955 AS_IF([test "${enable_id3tag}" = "yes"], [
2956   AC_CHECK_HEADERS(id3tag.h, [
2957     AC_CHECK_HEADERS(zlib.h, [
2958       VLC_ADD_LIBS([id3tag],[-lid3tag -lz])
2959       VLC_ADD_PLUGIN([id3tag])
2960     ])
2961   ])
2962 ])
2963
2964 dnl
2965 dnl  avcodec decoder/encoder plugin
2966 dnl
2967
2968 if test "${with_ffmpeg_tree}"
2969 then
2970   AC_MSG_WARN([--with-ffmpeg-tree is deprecated. Use PKG_CONFIG_PATH instead.])
2971 fi
2972
2973 AC_ARG_ENABLE(avcodec,
2974 [  --enable-avcodec        libavcodec codec (default enabled)])
2975 if test "${enable_avcodec}" != "no"
2976 then
2977   PKG_CHECK_MODULES(AVCODEC,[libavcodec libavutil],
2978     [
2979       VLC_SAVE_FLAGS
2980       CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2981       CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2982       AC_CHECK_HEADERS(libavcodec/avcodec.h ffmpeg/avcodec.h)
2983       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
2984       VLC_ADD_PLUGIN([avcodec])
2985       VLC_ADD_LIBS([avcodec],[$AVCODEC_LIBS])
2986       VLC_ADD_CFLAGS([avcodec],[$AVCODEC_CFLAGS])
2987       VLC_RESTORE_FLAGS
2988     ],[
2989       AC_MSG_FAILURE([Could not find libavcodec or libavutil. Use --disable-avcodec to ignore this error.])
2990   ])
2991 fi
2992
2993 dnl
2994 dnl  avformat demuxer/muxer plugin
2995 dnl
2996
2997 AC_ARG_ENABLE(avformat,
2998 [  --enable-avformat       libavformat containers (default enabled)])
2999 if test "${enable_avformat}" != "no"
3000 then
3001   PKG_CHECK_MODULES(AVFORMAT,[libavformat libavutil],
3002     [
3003       VLC_SAVE_FLAGS
3004       CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
3005       CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
3006       AC_CHECK_HEADERS(libavformat/avformat.h ffmpeg/avformat.h)
3007       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
3008       VLC_ADD_PLUGIN([avformat])
3009       VLC_ADD_LIBS([avformat],[$AVFORMAT_LIBS])
3010       VLC_ADD_CFLAGS([avformat],[$AVFORMAT_CFLAGS])
3011       VLC_RESTORE_FLAGS
3012     ],[
3013       AC_MSG_FAILURE([Could not find libavformat or libavutil. Use --disable-avformat to ignore this error.])
3014   ])
3015 fi
3016
3017 dnl
3018 dnl  swscale image scaling and conversion plugin
3019 dnl
3020
3021 AC_ARG_ENABLE(swscale,
3022   AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion 
3023                   (default enabled)]))
3024 if test "${enable_swscale}" != "no"
3025 then
3026   PKG_CHECK_MODULES(SWSCALE,[libswscale],
3027     [
3028       VLC_SAVE_FLAGS
3029       CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
3030       CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
3031       AC_CHECK_HEADERS(libswscale/swscale.h ffmpeg/swscale.h)
3032       VLC_ADD_PLUGIN([swscale])
3033       VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
3034       VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
3035       VLC_RESTORE_FLAGS
3036     ],[
3037       AC_MSG_WARN([Could not find libswscale. Trying to enable imgresample.])
3038       enable_imgresample=yes
3039   ])
3040 fi
3041
3042 dnl
3043 dnl  avcodec (deprecated API) image scaling and conversion plugin
3044 dnl
3045 dnl  This is build as a seperate module than the avcodec one to prevent
3046 dnl  stupid run time library load errors from disabling most codecs
3047 dnl  from VLC.
3048 dnl
3049
3050 AC_ARG_ENABLE(imgresample,
3051   AS_HELP_STRING([--enable-imgresample],[deprecated libavcodec image scaling 
3052                   and conversion (default disabled)]))
3053 if test "${enable_imgresample}" = "yes"
3054 then
3055   PKG_CHECK_MODULES(IMGRESAMPLE,[libavcodec],
3056     [
3057       VLC_SAVE_FLAGS
3058       CPPFLAGS="${CPPFLAGS} ${IMGRESAMPLE_CFLAGS}"
3059       CFLAGS="${CFLAGS} ${IMGRESAMPLE_CFLAGS}"
3060       AC_CHECK_HEADERS(libavcodec/avcodec.h ffmpeg/avcodec.h)
3061       AC_CHECK_LIB(avcodec,img_resample,
3062         [
3063           VLC_ADD_PLUGIN([imgresample])
3064           VLC_ADD_LIBS([imgresample],[$IMGRESAMPLE_LIBS])
3065           VLC_ADD_CFLAGS([imgresample],[$IMGRESAMPLE_CFLAGS])
3066         ],[
3067           AC_MSG_WARN([Could not find img_resample in libavcodec.])
3068           if test "${enable_swscale}" != "no"
3069           then
3070             AC_MSG_FAILURE([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.)])
3071           fi
3072         # That sed hack to add -rpath is kind of ugly but at least it fixes
3073         # detection when linking against a shared libavcodec with
3074         # a libavutil not in one of your ld.so.conf directories.
3075         # (for example a local install)
3076         ],[${IMGRESAMPLE_LIBS} `echo ${IMGRESAMPLE_LIBS}|sed s'/-L/-Wl,-rpath=/'`])
3077       VLC_RESTORE_FLAGS
3078     ],[
3079       AC_MSG_WARN([Could not find libavcodec.])
3080   ])
3081 fi
3082
3083 dnl
3084 dnl  postproc plugin
3085 dnl
3086
3087 AC_ARG_ENABLE(postproc,
3088 [  --enable-postproc       libpostproc image post-processing (default enabled)])
3089 if test "${enable_postproc}" != "no"
3090 then
3091   PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
3092     [
3093       VLC_SAVE_FLAGS
3094       CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
3095       CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
3096       AC_CHECK_HEADERS(libpostproc/postproc.h postproc/postprocess.h)
3097       VLC_ADD_PLUGIN([postproc])
3098       VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS])
3099       VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS])
3100       VLC_RESTORE_FLAGS
3101     ],[
3102       AC_MSG_ERROR([Could not find libpostproc.])
3103   ])
3104 fi
3105
3106 dnl
3107 dnl  faad decoder plugin
3108 dnl
3109 AC_ARG_ENABLE(faad,
3110 [  --enable-faad           faad codec (default disabled)])
3111 if test "${enable_faad}" = "yes"
3112 then
3113   AC_ARG_WITH(faad-tree,
3114   [    --with-faad-tree=PATH faad tree for static linking])
3115   if test -n "${with_faad_tree}"
3116   then
3117     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
3118     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
3119     if test -z "${real_faad_tree}"
3120     then
3121       dnl  The given directory can't be found
3122       AC_MSG_RESULT(no)
3123       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
3124     fi
3125     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
3126     then
3127       dnl  Use a custom faad
3128       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
3129       VLC_ADD_PLUGIN([faad])
3130       VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
3131       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
3132     else
3133       dnl  The given libfaad wasn't built
3134       AC_MSG_RESULT(no)
3135       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
3136     fi
3137   else
3138     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
3139     LDFLAGS="${LDFLAGS_save} ${LIBS_faad}"
3140     AC_CHECK_HEADERS(faad.h, ,
3141       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
3142     AC_CHECK_LIB(faad, faacDecOpen, [
3143       VLC_ADD_PLUGIN([faad])
3144       VLC_ADD_LIBS([faad],[-lfaad]) ],
3145       AC_CHECK_LIB(faad, NeAACDecOpen, [
3146         VLC_ADD_PLUGIN([faad])
3147         VLC_ADD_LIBS([faad],[-lfaad]) ],
3148         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
3149     LDFLAGS="${LDFLAGS_save}"
3150     CPPFLAGS="${CPPFLAGS_save}"
3151   fi
3152 fi
3153
3154 dnl
3155 dnl twolame encoder plugin
3156 dnl
3157 AC_ARG_ENABLE(twolame,
3158 [  --enable-twolame        twolame codec (default disabled)])
3159 if test "${enable_twolame}" = "yes"
3160 then
3161   AC_ARG_WITH(twolame-tree,
3162   [    --with-twolame-tree=PATH twolame tree for static linking])
3163   if test -n "${with_twolame_tree}"
3164   then
3165     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
3166     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
3167     if test -z "${real_twolame_tree}"
3168     then
3169       dnl  The given directory can't be found
3170       AC_MSG_RESULT(no)
3171       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
3172     fi
3173     if test -f "${real_twolame_tree}/libtwolame/.libs/libtwolame.a"
3174     then
3175       dnl  Use a custom twolame
3176       AC_MSG_RESULT(${real_twolame_tree}/libtwolame/.libs/libtwolame.a)
3177       VLC_ADD_PLUGIN([twolame])
3178       VLC_ADD_LIBS([twolame],[${real_twolame_tree}/libtwolame/.libs/libtwolame.a])
3179       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/libtwolame -DLIBTWOLAME_STATIC])
3180     else
3181       dnl  The given libtwolame wasn't built
3182       AC_MSG_RESULT(no)
3183       AC_MSG_ERROR([cannot find ${real_twolame_tree}/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
3184     fi
3185   else
3186     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame} -DLIBTWOLAME_STATIC"
3187     LDFLAGS="${LDFLAGS_save} ${LIBS_twolame}"
3188     AC_CHECK_HEADERS(twolame.h, ,
3189       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
3190     AC_CHECK_LIB(twolame, twolame_init, [
3191       VLC_ADD_PLUGIN([twolame])
3192       VLC_ADD_CPPFLAGS([twolame],[-DLIBTWOLAME_STATIC])
3193       VLC_ADD_LIBS([twolame],[-ltwolame]) ],
3194         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
3195     LDFLAGS="${LDFLAGS_save}"  
3196     CPPFLAGS="${CPPFLAGS_save}"
3197   fi
3198 fi
3199
3200 dnl
3201 dnl  QuickTime plugin
3202 dnl
3203 AC_ARG_ENABLE(quicktime,
3204   [  --enable-quicktime      QuickTime module (default enabled on MacOS X)])
3205 if test "${enable_quicktime}" != "no" &&
3206   (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
3207 then
3208   if test "${SYS}" = "mingw32"; then
3209     VLC_ADD_PLUGIN([quicktime])
3210   else
3211   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
3212     [ VLC_ADD_PLUGIN([quicktime])
3213       VLC_ADD_LDFLAGS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
3214     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
3215   fi
3216 fi
3217
3218 dnl
3219 dnl  Real plugin
3220 dnl
3221 AC_ARG_ENABLE(real,
3222   [  --enable-real           Real media module (default disabled)])
3223 if test "${enable_real}" = "yes"; then
3224   VLC_ADD_PLUGIN([realaudio])
3225   VLC_ADD_PLUGIN([realvideo])
3226 fi
3227
3228 dnl
3229 dnl  Real RTSP plugin
3230 dnl
3231 AC_ARG_ENABLE(realrtsp,
3232   [  --enable-realrtsp       Real RTSP module (default disabled)])
3233 if test "${enable_realrtsp}" = "yes"; then
3234   VLC_ADD_PLUGIN([access_realrtsp])
3235 fi
3236
3237 dnl
3238 dnl MP4 module
3239 dnl
3240 AC_CHECK_HEADERS(zlib.h, [
3241   VLC_ADD_LIBS([mp4 skins2 sap mkv gme],[-lz])
3242   VLC_ADD_CPPFLAGS([skins2],[-I../../../@top_srcdir@/libs/unzip])
3243   VLC_ADD_LIBS([skins2],[../../../libs/unzip/libunzip.la])
3244 ] )
3245
3246 AC_ARG_ENABLE(libsysfs,
3247   [  --enable-libsysfs       Get user key from firewire connected iPod via libsysfs (default enabled)])
3248
3249 AS_IF([test "${enable_libsysfs}" != "no"],[
3250   AC_CHECK_HEADERS(sysfs/libsysfs.h, [
3251     VLC_ADD_LIBS([mp4 mkv],[-lsysfs])
3252   ] )
3253 ])
3254
3255 dnl
3256 dnl skins2 module
3257 dnl
3258 AC_ARG_ENABLE(libtar,
3259   [  --enable-libtar         libtar support for skins2 (default enabled)])
3260
3261 AS_IF([test "${enable_libtar}" != "no"],[
3262   AC_CHECK_HEADERS(libtar.h, [
3263     VLC_ADD_LIBS([skins2],[-ltar])
3264   ] )
3265 ])
3266
3267 dnl
3268 dnl A52/AC3 decoder plugin
3269 dnl
3270 AC_ARG_ENABLE(a52,
3271   [  --enable-a52            A/52 support with liba52 (default enabled)])
3272 if test "${enable_a52}" != "no"
3273 then
3274   AC_ARG_WITH(a52,
3275     [    --with-a52=PATH       a52 headers and libraries])
3276   AC_ARG_WITH(a52-tree,
3277     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
3278   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
3279   then
3280     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
3281     if test -z "${real_a52_tree}"
3282     then
3283       dnl  The given directory can't be found
3284       AC_MSG_RESULT(no)
3285       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
3286     fi
3287     dnl  Use a custom a52dec
3288     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
3289     if test -f ${real_a52_tree}/include/a52.h
3290     then
3291       AC_MSG_RESULT(yes)
3292       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
3293       VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
3294       LDFLAGS="${LDFLAGS_save} ${LIBS_a52tofloat32}"
3295       AC_CHECK_LIB(a52, a52_free, [
3296         VLC_ADD_PLUGIN([a52tofloat32])
3297         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
3298         VLC_ADD_LIBS([a52tofloat32],[-la52])
3299         ],[
3300         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
3301         then
3302           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
3303         else
3304           AC_MSG_ERROR([the specified tree hasn't been compiled])
3305         fi
3306       ])
3307       LDFLAGS="${LDFLAGS_save}"
3308     else
3309       AC_MSG_RESULT(no)
3310       AC_MSG_ERROR([the specified tree doesn't have a52.h])
3311     fi
3312   else
3313     if test -z "${with_a52}"
3314     then
3315       LDFLAGS_test=""
3316       CPPFLAGS_test=""
3317     else
3318       LDFLAGS_test="-L${with_a52}/lib"
3319       CPPFLAGS_test="-I${with_a52}/include"
3320     fi
3321     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
3322     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
3323     AC_CHECK_HEADERS(a52dec/a52.h, [
3324       AC_CHECK_LIB(a52, a52_free, [
3325         VLC_ADD_PLUGIN([a52tofloat32])
3326         VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
3327         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
3328       ],[
3329         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.])
3330         ])
3331     ],[
3332       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.])
3333     ])
3334     CPPFLAGS="${CPPFLAGS_save}"
3335     LDFLAGS="${LDFLAGS_save}"
3336   fi
3337 fi
3338
3339 AC_ARG_WITH(a52-fixed,
3340       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
3341       [
3342         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
3343
3344 dnl
3345 dnl DTS Coherent Acoustics decoder plugin
3346 dnl
3347 AS_IF([test "x${enable_dts}" != "x"], [
3348   AC_MSG_ERROR([--enable-dts is obsolete. Please use libdca and --enable-dca.])
3349 ])
3350 AS_IF([test "x${with_dts_tree}" != "x"], [
3351   AC_MSG_ERROR([--with-dts-tree is obsolete. Please use libdca and --with-dca-tree.])
3352 ])
3353
3354 AC_ARG_ENABLE(dca,
3355   AS_HELP_STRING([--enable-dca],[DTS Coherent Acoustics support with libdca 
3356                   (default enabled)]))
3357 AS_IF([test "${enable_dca}" != "no"], [
3358   AC_ARG_WITH(dca-tree,
3359     [    --with-dca-tree=PATH  libdca tree for static linking],,
3360     [with_dca_tree="no"])
3361   AS_IF([test "${with_dca_tree}" != "no"], [
3362     real_dca_tree="`cd ${with_dca_tree} 2>/dev/null && pwd`"
3363     AS_IF([test -z "${real_dca_tree}"], [
3364       dnl  The given directory can't be found
3365       AC_MSG_RESULT(no)
3366       AC_MSG_ERROR([${with_dca_tree} directory doesn't exist])
3367     ])
3368     dnl  Use a custom libdca
3369     AC_MSG_CHECKING(for libdca in ${real_dca_tree})
3370     AS_IF([test -f "${real_dca_tree}/libdca/.libs/libdca.a"], [
3371       AC_MSG_RESULT(yes)
3372       VLC_ADD_LIBS([dtstofloat32],[${real_dca_tree}/libdca/.libs/libdca.a])
3373       AS_IF([test -f "${real_dca_tree}/include/dca.h"], [
3374         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/include])
3375       ], [
3376         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/../include])
3377       ])
3378     ], [
3379       AC_MSG_RESULT(no)
3380       AC_MSG_ERROR([the specified tree doesn't have libdca/.libs/libdca.a])
3381     ])
3382   ], [
3383     PKG_CHECK_MODULES([DCA], [libdca >= 0.0.5], [
3384       VLC_ADD_PLUGIN([dtstofloat32])
3385       VLC_ADD_CPPFLAGS([dtstofloat32], [${DCA_CFLAGS}])
3386       VLC_ADD_LIBS([dtstofloat32], [${DCA_LIBS}])
3387     ], [
3388       AS_IF([test "x${enable_dca}" != "x"], [
3389         AC_MSG_ERROR([${DCA_PKG_ERRORS}])
3390       ])
3391     ])
3392   ])
3393 ])
3394
3395 dnl
3396 dnl  Flac plugin
3397 dnl
3398 AC_ARG_ENABLE(flac,
3399   [  --enable-flac           libflac decoder/encoder support (default disabled)])
3400 if test "${enable_flac}" = "yes"
3401 then
3402   AC_ARG_WITH(flac-tree,
3403   [    --with-flac-tree=PATH flac tree for static linking])
3404   if test -n "${with_flac_tree}"
3405   then
3406     AC_MSG_CHECKING(for libFLAC.a in ${with_flac_tree})
3407     real_flac_tree="`cd ${with_flac_tree} 2>/dev/null && pwd`"
3408     if test -z "${real_flac_tree}"
3409     then
3410       dnl  The given directory can't be found
3411       AC_MSG_RESULT(no)
3412       AC_MSG_ERROR([cannot cd to ${with_flac_tree}])
3413     fi
3414     if test -f "${real_flac_tree}/src/libFLAC/.libs/libFLAC.a"
3415     then
3416       dnl  Use a custom flac
3417       AC_MSG_RESULT(${real_flac_tree}/src/libFLAC/.libs/libFLAC.a)
3418       VLC_ADD_LIBS([flac],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a])
3419       VLC_ADD_CFLAGS([flac],[-I${real_flac_tree}/include])
3420       AC_DEFINE(HAVE_FLAC_STREAM_DECODER_H, 1, [Define if you have FLAC])
3421     else
3422       dnl  The given flac wasn't built
3423       AC_MSG_RESULT(no)
3424       AC_MSG_ERROR([cannot find ${real_flac_tree}/src/libFLAC/.libs/libFLAC.a, make sure you compiled flac in ${with_flac_tree}])
3425     fi
3426   else
3427     AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
3428       VLC_ADD_LIBS([flac],[-lFLAC -logg])
3429      ],[])
3430   fi
3431 fi
3432
3433 dnl
3434 dnl  Libmpeg2 plugin
3435 dnl
3436 AC_ARG_ENABLE(libmpeg2,
3437   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
3438 if test "${enable_libmpeg2}" != "no"
3439 then
3440   AC_ARG_WITH(libmpeg2-tree,
3441   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
3442   AS_IF([test -n "${with_libmpeg2_tree}"],[
3443     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
3444     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
3445     if test -z "${real_libmpeg2_tree}"
3446     then
3447       dnl  The given directory can't be found
3448       AC_MSG_RESULT(no)
3449       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
3450     fi
3451     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
3452     then
3453       dnl  Use a custom libmpeg2
3454       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
3455       VLC_ADD_PLUGIN([libmpeg2])
3456       VLC_ADD_LIBS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
3457       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
3458     else
3459       dnl  The given libmpeg2 wasn't built
3460       AC_MSG_RESULT(no)
3461       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
3462     fi
3463   ],[
3464    PKG_CHECK_MODULES(LIBMPEG2,[libmpeg2 > 0.3.2],[ 
3465           VLC_ADD_PLUGIN([libmpeg2])
3466           VLC_ADD_LIBS([libmpeg2], $LIBMPEG2_LIBS)
3467           VLC_ADD_CFLAGS([libmpeg2], $LIBMPEG2_CFLAGS)
3468        ], 
3469       AC_MSG_WARN([Could not find libmpeg2 on your system: you may get it from http://libmpeg2.sf.net/ . Alternatively you can use --disable-libmpeg2 to disable the libmpeg2 plugin.]))
3470   ])
3471 fi
3472
3473 dnl
3474 dnl  Vorbis plugin
3475 dnl
3476 AC_ARG_ENABLE(vorbis,
3477   [  --enable-vorbis         Vorbis decoder support (default enabled)])
3478 if test "${enable_vorbis}" != "no"
3479 then
3480   AC_ARG_WITH(vorbis-tree,
3481   [    --with-vorbis-tree=PATH vorbis tree for static linking])
3482   if test -n "${with_vorbis_tree}"
3483   then
3484     AC_MSG_CHECKING(for libvorbis.a in ${with_vorbis_tree})
3485     real_vorbis_tree="`cd ${with_vorbis_tree} 2>/dev/null && pwd`"
3486     if test -z "${real_vorbis_tree}"
3487     then
3488       dnl  The given directory can't be found
3489       AC_MSG_RESULT(no)
3490       AC_MSG_ERROR([cannot cd to ${with_vorbis_tree}])
3491     fi
3492     if test -f "${real_vorbis_tree}/lib/.libs/libvorbis.a"
3493     then
3494       dnl  Use a custom vorbis 
3495       AC_MSG_RESULT(${real_vorbis_tree}/lib/.libs/libvorbis.a)
3496       VLC_ADD_PLUGIN([vorbis])
3497       VLC_ADD_LIBS([vorbis],[${real_vorbis_tree}/lib/.libs/libvorbis.a ${real_vorbis_tree}/lib/.libs/libvorbisenc.a])
3498       VLC_ADD_CFLAGS([vorbis],[-I${real_vorbis_tree}/include])
3499     else
3500       dnl  The given vorbis wasn't built
3501       AC_MSG_RESULT(no)
3502       AC_MSG_ERROR([cannot find ${real_vorbis_tree}/lib/.libs/libvorbis.a, make sure you compiled vorbis in ${with_vorbis_tree}])
3503     fi
3504   else
3505     AC_CHECK_HEADERS(vorbis/codec.h, [
3506       VLC_ADD_PLUGIN([vorbis])
3507       VLC_ADD_LIBS([vorbis],[-lvorbis -logg -lm]) ],[])
3508
3509     AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
3510       VLC_ADD_LIBS([vorbis],[-lvorbisenc -lm]) ],[])
3511   fi
3512 fi
3513
3514 dnl
3515 dnl  Tremor plugin
3516 dnl
3517 AC_ARG_ENABLE(tremor,
3518   [  --enable-tremor         Tremor decoder support (default disabled)])
3519 if test "${enable_tremor}" = "yes"
3520 then
3521   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3522     VLC_ADD_PLUGIN([tremor])
3523     VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
3524    ],[])
3525 fi
3526
3527 dnl
3528 dnl  Speex plugin
3529 dnl
3530 AC_ARG_ENABLE(speex,
3531   [  --enable-speex          Speex decoder support (default enabled)])
3532 if test "${enable_speex}" != "no"
3533 then
3534   AC_ARG_WITH(speex-tree,
3535   [    --with-speex-tree=PATH speex tree for static linking])
3536   if test -n "${with_speex_tree}"
3537   then
3538     AC_MSG_CHECKING(for libspeex.a in ${with_speex_tree})
3539     real_speex_tree="`cd ${with_speex_tree} 2>/dev/null && pwd`"
3540     if test -z "${real_speex_tree}"
3541     then
3542       dnl  The given directory can't be found
3543       AC_MSG_RESULT(no)
3544       AC_MSG_ERROR([cannot cd to ${with_speex_tree}])
3545     fi
3546     if test -f "${real_speex_tree}/libspeex/.libs/libspeex.a"
3547     then
3548       dnl  Use a custom speex
3549       AC_MSG_RESULT(${real_speex_tree}/libspeex/.libs/libspeex.a)
3550       VLC_ADD_PLUGIN([speex])
3551       VLC_ADD_LIBS([speex],[${real_speex_tree}/libspeex/.libs/libspeex.a])
3552       VLC_ADD_CFLAGS([speex],[-I${real_speex_tree}/include])
3553     else
3554       dnl  The given speex wasn't built
3555       AC_MSG_RESULT(no)
3556       AC_MSG_ERROR([cannot find ${real_speex_tree}/libspeex/.libs/libspeex.a, make sure you compiled speex in ${with_speex_tree}])
3557     fi
3558   else
3559     AC_CHECK_HEADERS(speex/speex.h, [
3560       LDFLAGS="${LDFLAGS_save} ${LIBS_speex}"
3561       AC_CHECK_LIB(speex, speex_decode_int, [
3562         VLC_ADD_PLUGIN([speex])
3563         VLC_ADD_LIBS([speex],[-lspeex]) ],
3564         [ AC_MSG_RESULT([no])
3565           AC_MSG_WARN([Your libspeex is too old, please get the development
3566                        version.]) ],[])
3567       LDFLAGS="${LDFLAGS_save}"
3568       ],[])
3569   fi
3570 fi
3571
3572 dnl
3573 dnl  tarkin decoder plugin
3574 dnl
3575 AC_ARG_ENABLE(tarkin,
3576 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3577 if test "${enable_tarkin}" = "yes"
3578 then
3579   AC_ARG_WITH(tarkin-tree,
3580   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3581   if test -n "${with_tarkin_tree}"
3582   then
3583     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3584     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3585     if test -f "${real_tarkin_tree}/tarkin.o"
3586     then
3587       VLC_ADD_PLUGIN([tarkin])
3588       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3589       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])
3590       AC_MSG_RESULT(yes)
3591     else
3592       dnl  The given tarkin tree wasn't built
3593       AC_MSG_RESULT(no)
3594       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3595                     make sure you compiled tarkin in ${with_tarkin_tree}])
3596     fi
3597   fi
3598 fi
3599
3600 dnl
3601 dnl  theora decoder plugin
3602 dnl
3603 AC_ARG_ENABLE(theora,
3604 [  --enable-theora         experimental theora codec (default disabled)])
3605 if test "${enable_theora}" = "yes"
3606 then
3607   AC_CHECK_HEADERS(theora/theora.h, [
3608     AC_CHECK_LIB(theora, theora_granule_time, [
3609       VLC_ADD_PLUGIN([theora])
3610       theora_libs="-ltheora -logg"
3611       VLC_ADD_LIBS([theora],[${theora_libs}]) ],[
3612       AC_MSG_ERROR([libtheora doesn't appear to be installed on your system.
3613 You also need to check that you have a libogg posterior to the 1.0 release.])],
3614       [-logg])
3615   ])
3616 fi
3617
3618 dnl
3619 dnl  dirac decoder plugin
3620 dnl
3621 AC_ARG_ENABLE(dirac,
3622 [  --enable-dirac          experimental dirac codec (default disabled)])
3623 if test "${enable_dirac}" = "yes"; then
3624   PKG_CHECK_MODULES(DIRAC,[dirac >= 0.10.0], [
3625       VLC_ADD_PLUGIN([dirac])
3626       VLC_ADD_CFLAGS([dirac],[$DIRAC_CFLAGS])
3627       VLC_ADD_LIBS([dirac],[$DIRAC_LIBS -lstdc++]) ],[
3628       AC_MSG_ERROR([libdirac >= 0.10.0 doesn't appear to be installed on your system.])
3629   ])
3630 fi
3631
3632 dnl
3633 dnl  schroedinger decoder plugin (for dirac format video)
3634 dnl
3635 AC_ARG_ENABLE(schroedinger,
3636 [  --disable-schroedinger  high performance dirac codec (default enabled)])
3637 if test "${enable_schroedinger}" != "no"; then
3638   PKG_CHECK_MODULES(SCHROEDINGER,[schroedinger-1.0 >= 1.0], [
3639       VLC_ADD_PLUGIN([schroedinger])
3640       VLC_ADD_CFLAGS([schroedinger],[$SCHROEDINGER_CFLAGS])
3641       VLC_ADD_LIBS([schroedinger],[$SCHROEDINGER_LIBS]) ], [
3642         AS_IF([test "x${enable_schroedinger}" != "x"], [
3643           AC_MSG_ERROR([${SCHROEDINGER_PKG_ERRORS}])
3644         ])
3645 ])
3646 fi
3647
3648 dnl
3649 dnl  PNG decoder module
3650 dnl
3651 AC_ARG_ENABLE(png,
3652   [  --enable-png            PNG support (default enabled)])
3653 if test "${enable_png}" != "no"; then
3654 AC_CHECK_HEADERS(png.h, [
3655   LDFLAGS="${LDFLAGS_save} -lz"
3656   AC_CHECK_LIB(png, png_set_rows, [
3657     VLC_ADD_LIBS([png],[-lpng -lz])
3658     VLC_ADD_PLUGIN([png])
3659     VLC_ADD_PLUGIN([osdmenu])
3660     VLC_ADD_PLUGIN([osd_parser])
3661     AC_DEFINE(HAVE_LIBPNG, 1, [Define if you have the PNG library: libpng])],
3662     [],[-lz])
3663     LDFLAGS="${LDFLAGS_save}"
3664   ])
3665 fi
3666 AM_CONDITIONAL(BUILD_OSDMENU, [test "${enable_png}" != "no"])
3667
3668 dnl
3669 dnl H264 encoder plugin (using libx264)
3670 dnl
3671 AC_ARG_ENABLE(x264,
3672   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3673 if test "${enable_x264}" != "no"; then
3674   AC_ARG_WITH(x264-tree,
3675     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3676   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3677   then
3678     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3679     if test -z "${real_x264_tree}"
3680     then
3681       dnl  The given directory can't be found
3682       AC_MSG_RESULT(no)
3683       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3684     fi
3685     dnl  Use a custom libx264
3686     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3687     if test -f ${real_x264_tree}/x264.h
3688     then
3689       AC_MSG_RESULT(yes)
3690       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3691       VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
3692       PKG_CHECK_MODULES(X264,x264, [
3693         VLC_ADD_PLUGIN([x264])
3694         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3695         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3696       ],[
3697         AC_MSG_ERROR([the specified tree hasn't been compiled])
3698       ])
3699       LDFLAGS="${LDFLAGS_save}"
3700     else
3701       AC_MSG_RESULT(no)
3702       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3703     fi
3704   else
3705       PKG_CHECK_MODULES(X264,x264, [
3706         VLC_ADD_PLUGIN([x264])
3707         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3708         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3709       ],[
3710         if test "${enable_x264}" = "yes"; then
3711             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
3712           fi
3713       ])
3714     LDFLAGS="${LDFLAGS_save}"
3715   fi
3716 fi
3717
3718 dnl
3719 dnl libfluidsynth (MIDI synthetizer) plugin
3720 dnl
3721 AC_ARG_ENABLE(fluidsynth,
3722   [  --enable-fluidsynth     MIDI synthesisr with libfluidsynth (default enabled)])
3723 AS_IF([test "x${enable_fluidsynth}" != "xno"], [
3724   PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth, [
3725     VLC_ADD_PLUGIN(fluidsynth)
3726     VLC_ADD_CFLAGS(fluidsynth, [${FLUIDSYNTH_CFLAGS}])
3727     VLC_ADD_LIBS(fluidsynth, [${FLUIDSYNTH_LIBS}])
3728   ], [
3729     AS_IF([test "x${enable_fluidsynth}" != "x"], [
3730       AC_MSG_ERROR([${FLUIDSYNTH_PKG_ERRORS}])
3731     ])
3732   ])
3733 ])
3734
3735 dnl
3736 dnl Teletext Modules
3737 dnl vbi decoder plugin (using libzbvi)
3738 dnl telx module
3739 dnl uncompatible
3740 dnl
3741 AC_ARG_ENABLE(zvbi,
3742   AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with 
3743                   libzvbi (default enabled)]))
3744 AC_ARG_ENABLE(telx,
3745   AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with 
3746                   zvbi) (default enabled if zvbi is absent)]))
3747
3748 AS_IF( [test "${enable_zvbi}" != "no"],[
3749     PKG_CHECK_MODULES(ZVBI,
3750         zvbi-0.2 >= 0.2.25,
3751         [
3752           VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
3753           VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
3754           VLC_ADD_PLUGIN([zvbi])
3755           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built]) 
3756           AS_IF( [test "${enabl