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