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