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