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