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