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