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