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