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