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