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