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