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