64977087959352a8699b48a3d898985e36885939
[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_ncurses="yes"
254         echo "  Assuming --enable-ncurses"
255         enable_twolame="yes"
256         echo "  Assuming --enable-twolame"
257         enable_realrtsp="yes"
258         echo "  Assuming --enable-realrtsp"
259         enable_libass="yes"
260         echo "  Assuming --enable-libass"
261         enable_asademux="yes"
262         echo "  Assuming --enable-asademux"
263
264         enable_skins2="no"
265         echo "  Assuming --disable-skins2"
266         enable_x11="no"
267         echo "  Assuming --disable-x11"
268         enable_xcb="no"
269         echo "  Assuming --disable-xcb"
270         enable_glx="no"
271         echo "  Assuming --disable-glx"
272         enable_xvideo="no"
273         echo "  Assuming --disable-xvideo"
274     fi
275     dnl
276     dnl  Check for Mac OS X SDK settings
277     dnl
278     AC_ARG_WITH(macosx-sdk,
279        [  --with-macosx-sdk=DIR   compile using the SDK in DIR])
280     if test "${with_macosx_sdk}" != "" ; then
281         CPP="${CPP} -isysroot ${with_macosx_sdk}"
282         CC="${CC} -isysroot ${with_macosx_sdk}"
283         CXX="${CXX} -isysroot ${with_macosx_sdk}"
284         OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
285         LD="${LD} -syslibroot ${with_macosx_sdk}"
286     fi
287     AC_ARG_WITH(macosx-version-min,
288        [  --with-macosx-version-min=VERSION  compile for MacOSX VERSION and above])
289     if test "${with_macosx_version_min}" != "" ; then
290         CPP="${CPP} -mmacosx-version-min=${with_macosx_version_min}"
291         CC="${CC} -mmacosx-version-min=${with_macosx_version_min}"
292         CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
293         OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
294         LD="${LD} -macosx_version_min=${with_macosx_version_min}"
295         CFLAGS_save="${CFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CFLAGS="${CFLAGS_save}"
296         CXXFLAGS_save="${CXXFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CXXFLAGS="${CXXFLAGS_save}"
297         OBJCFLAGS_save="${OBJCFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; OBJCFLAGS="${OBJCFLAGS_save}"
298         MACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}
299         export MACOSX_DEPLOYMENT_TARGET
300     fi
301     ;;
302   darwin9*)
303     if (test ".`uname -p`" = ".i386"); then
304         dnl Due to a ld(64) bug in 10.5 we cannot use our mmx code
305         dnl without hacking it a lot, we disable mmx and sse.
306         dnl (that bug is about ld being unable to handle
307         dnl text relocation)
308         save_cflags="$CFLAGS"
309         CFLAGS="$CFLAGS -dynamiclib -single_module -read_only_relocs suppress"
310         AC_TRY_LINK(
311             [int a;], [asm("movq _a,%mm0\n");],
312             ac_ld_does_not_support_text_reloc=no,
313             ac_ld_does_not_support_text_reloc=yes)
314         CFLAGS="$save_cflags"
315
316         if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
317             enable_mmx="no"
318             echo "  Assuming --disable-mmx (due to a bug in ld)"
319             enable_sse="no"
320             echo "  Assuming --disable-sse (due to a bug in ld)"
321         fi
322     fi
323     ;;
324   *mingw32* | *cygwin* | *wince* | *mingwce*)
325     AC_CHECK_TOOL(WINDRES, windres, :)
326     AC_CHECK_TOOL(OBJCOPY, objcopy, :)
327
328     case "${host_os}" in
329       *wince* | *mingwce* | *mingw32ce*)
330         SYS=mingwce
331         dnl Sadly CeGCC still needs non-wince macros
332         AC_DEFINE([_WIN32_WINNT], 0x0501, [Define to '0x0500' for Windows 2000 APIs.])
333         ;;
334       *mingw32*)
335         SYS=mingw32
336         AC_DEFINE([_WIN32_WINNT], 0x0500, [Define to '0x0500' for Windows 2000 APIs.])
337         ;;
338       *cygwin*)
339         dnl Check if we are using the mno-cygwin mode in which case we are
340         dnl actually dealing with a mingw32 compiler.
341         AC_DEFINE([_WIN32_WINNT], 0x0500, [Define to '0x0500' for Windows 2000 APIs.])
342         AC_EGREP_CPP(yes,
343             [#ifdef WIN32
344              yes
345              #endif],
346             SYS=mingw32, AC_MSG_ERROR([VLC requires -mno-cygwin]))
347         ;;
348     esac
349
350     if test "${SYS}" = "mingw32"; then
351         # add ws2_32 for closesocket, select, recv
352         VLC_ADD_LIBS([libvlccore],[-lws2_32 -lnetapi32 -lwinmm])
353         VLC_ADD_LDFLAGS([vlc],[-mwindows])
354         VLC_ADD_LIBS([activex mozilla],[-lgdi32])
355         VLC_ADD_LIBS([cdda vcdx cddax sdl_image aout_sdl vout_sdl],[-lwinmm])
356         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])
357         VLC_ADD_LIBS([access_file], [-lshlwapi])
358     fi
359     if test "${SYS}" = "mingwce"; then
360         # add ws2 for closesocket, select, recv
361         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])
362         VLC_ADD_LIBS([libvlccore],[-lmmtimer])
363    fi
364     ;;
365   *nto*)
366     SYS=nto
367     ;;
368   solaris*)
369     SYS=solaris
370     ;;
371   hpux*)
372     SYS=hpux
373     ;;
374   beos)
375     SYS=beos
376     CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}"
377     CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}"
378     VLC_ADD_CXXFLAGS([beos],[])
379     VLC_ADD_LIBS([vlc libvlccore logger],[-lbe])
380     VLC_ADD_LIBS([beos],[-lbe -lmedia -ltranslation -ltracker -lgame])
381     VLC_ADD_LIBS([dvdnav dvdread],[-ldl])
382     VLC_ADD_LIBS([access_file],[-lpoll])
383     LDFLAGS_save="${LDFLAGS_save} -lintl"; LDFLAGS="${LDFLAGS_save}"
384     dnl Check for BONE
385     if test -f /boot/beos/system/lib/libbind.so; then
386         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlccore growl_udp],[-lbind -lsocket])
387     else
388         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlccore growl_udp],[-lnet])
389     fi
390
391     dnl Ugly check for Zeta
392     if test -f /boot/beos/system/lib/libzeta.so; then
393         VLC_ADD_LIBS([beos],[-lzeta])
394     fi
395     ;;
396   *)
397     SYS="${host_os}"
398     ;;
399 esac
400 AM_CONDITIONAL(HAVE_BEOS, test "${SYS}" = "beos")
401 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
402 AM_CONDITIONAL(HAVE_LINUX, [test "${SYS}" = "linux"])
403 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
404 AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
405
406 dnl
407 dnl Sadly autoconf doesn't think about testing foo.exe when ask to test
408 dnl for program foo on win32
409
410 case "${build_os}" in
411     cygwin|msys)
412         ac_executable_extensions=".exe"
413     ;;
414     *)
415     ;;
416 esac
417
418 dnl
419 dnl  Libtool
420 dnl  It's very bad, but our former custom system was worst
421 dnl  -- Courmisch
422 dnl
423
424 dnl override platform specific check for dependent libraries
425 dnl otherwise libtool linking of shared libraries will
426 dnl fail on anything other than pass_all.
427 AC_CACHE_VAL(lt_cv_deplibs_check_method,
428     [lt_cv_deplibs_check_method=pass_all])
429
430 AC_DISABLE_STATIC
431 dnl AC_DISABLE_FAST_INSTALL
432 AC_LIBTOOL_DLOPEN
433 AC_LIBTOOL_WIN32_DLL
434 m4_undefine([AC_PROG_F77])
435 m4_defun([AC_PROG_F77],[])
436 AC_PROG_LIBTOOL
437
438 m4_undefine([AC_DEPLIBS_CHECK_METHOD])
439 m4_defun([AC_DEPLIBS_CHECK_METHOD],[])
440
441 lt_cv_deplibs_check_method=pass_all
442
443
444 dnl
445 dnl Gettext stuff
446 dnl
447 AM_GNU_GETTEXT_VERSION([0.17])
448 AM_GNU_GETTEXT([external])
449 VLC_ADD_LIBS([libvlccore vlc], [${LTLIBINTL}])
450
451 dnl
452 dnl Iconv stuff
453 dnl
454 AM_ICONV
455 VLC_ADD_CFLAGS([libvlccore],[${INCICONV}])
456 VLC_ADD_LIBS([libvlccore],[${LTLIBICONV}])
457
458 dnl Check for broken versions of mingw-runtime compatability library
459 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"], [
460     AC_MSG_CHECKING(for broken mingw-runtime)
461     AC_PREPROC_IFELSE([
462 #include <_mingw.h>
463 #if (__MINGW32_MAJOR_VERSION == 3) && (__MINGW32_MINOR_VERSION < 15)
464 # error Attempting to use mingw-runtime with broken vsnprintf support
465 #endif
466 ], [
467         AC_MSG_RESULT([ok])
468 ], [
469         AC_MSG_RESULT([present])
470         AC_MSG_ERROR([LibVLC requires mingw-runtime version 3.15 or higher!])
471 ])
472     dnl force use of mingw provided c99 *printf over msvcrt
473     CPPFLAGS="${CPPFLAGS} -D__USE_MINGW_ANSI_STDIO=1"
474     CPPFLAGS_save="${CPPFLAGS_save} -D__USE_MINGW_ANSI_STDIO=1"
475 ])
476
477 dnl Check for the need to include the mingwex lib for mingw32
478 if test "${SYS}" = "mingw32"
479 then
480     AC_CHECK_LIB(mingwex,opendir,
481         AC_CHECK_LIB(mingw32,opendir,,
482             [VLC_ADD_LIBS([libvlccore],[-lmingwex])])
483     )
484 fi
485
486 dnl Check for fnative-struct or mms-bitfields support for mingw32
487 if test "${SYS}" = "mingw32"
488 then
489     AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
490         [ac_cv_c_mms_bitfields],
491         [CFLAGS="${CFLAGS_save} -mms-bitfields"
492          AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
493     if test "${ac_cv_c_mms_bitfields}" != "no"; then
494         CFLAGS_save="${CFLAGS_save} -mms-bitfields";
495         CXXFLAGS_save="${CXXFLAGS_save} -mms-bitfields";
496     else
497         AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
498             [ac_cv_c_fnative_struct],
499             [CFLAGS="${CFLAGS_save} -fnative-struct"
500              AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
501         if test "${ac_cv_c_fnative_struct}" != "no"; then
502             CFLAGS_save="${CFLAGS_save} -fnative-struct";
503             CXXFLAGS_save="${CXXFLAGS_save} -fnative-struct";
504         fi
505     fi
506
507     CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
508 fi
509
510 dnl Check for fvtable-thunks support for mingw32
511 if test "${SYS}" = "mingw32" -a "${CXX}" != ""
512 then
513 AC_LANG_PUSH(C++)
514     AC_CACHE_CHECK([if \$CXX accepts -fvtable-thunks],
515         [ac_cv_cxx_fvtable_thunks],
516         [CXXFLAGS="${CXXFLAGS_save} -Wall -Werror -fvtable-thunks"
517          AC_TRY_COMPILE([],,ac_cv_cxx_fvtable_thunks=yes,
518                         ac_cv_cxx_fvtable_thunks=no)])
519     if test "${ac_cv_cxx_fvtable_thunks}" = "yes"; then
520         CXXFLAGS_mingw32_special="-fvtable-thunks"
521     fi
522
523     CXXFLAGS_save="${CXXFLAGS_save} ${CXXFLAGS_mingw32_special}"; CXXFLAGS="${CXXFLAGS_save}"
524 AC_LANG_POP(C++)
525 fi
526
527 dnl
528 dnl Buggy glibc prevention. Purposedly not cached.
529 dnl See sourceware.org bugs 5058 and 5443.
530 dnl Ubuntu alone has 20 bug numbers for this...
531 dnl
532 AC_MSG_CHECKING(for buggy GNU/libc versions)
533 AC_PREPROC_IFELSE([
534 #include <limits.h>
535 #if defined (__GLIBC__) && (__GLIBC__ == 2) \
536   && (__GLIBC_MINOR__ >= 5) && (__GLIBC_MINOR__ <= 7)
537 # error GNU/libc with dcgettext killer bug!
538 #endif
539 ], [
540   AC_MSG_RESULT([not present])
541 ], [
542   AC_MSG_RESULT([found])
543   AS_IF([test "x${enable_nls}" != "xno" || test "x${enable_mozilla}" != "xno"], [
544     AC_MSG_ERROR([Buggy GNU/libc (version 2.5 - 2.7) present. VLC would crash; there is no viable
545 work-around for this. Check with your distribution vendor on how to update the
546 glibc run-time. Alternatively, build with --disable-nls --disable-mozilla and
547 be sure to not use LibVLC from other applications/wrappers.])
548   ], [
549     AC_DEFINE(DISABLE_BUGGY_GLIBC_CHECK, 1, [Disables runtime check for buggy glibc.])
550   ])
551 ])
552
553 dnl Plugin compilation stuff
554
555 VLC_LIBRARY_SUFFIX
556
557 dnl The -DSYS_FOO flag
558 CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
559
560 dnl Check for system libs needed
561 need_libc=false
562
563 dnl Check for usual libc functions
564 AC_CHECK_FUNCS([gettimeofday isatty sigrelse getpwuid_r memalign posix_memalign if_nametoindex getenv putenv setenv ctime_r daemon fork lstat posix_fadvise posix_madvise uselocale])
565 AC_FUNC_ALLOCA
566 AC_CHECK_FUNCS(fcntl)
567 AC_REPLACE_FUNCS([asprintf atof atoll getcwd getpid gmtime_r lldiv localtime_r rewind strcasecmp strcasestr strdup strlcpy strncasecmp strndup strnlen strsep strtof strtoll vasprintf swab])
568 AC_CHECK_FUNCS([stricmp strnicmp])
569 AC_CHECK_FUNCS(fdatasync,,
570   [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
571 ])
572
573 dnl Check for non-standard system calls
574 AC_CHECK_FUNCS([vmsplice eventfd fstatfs])
575
576 AH_BOTTOM([#include <vlc_fixups.h>])
577
578 AC_CHECK_FUNCS(mmap, [VLC_ADD_PLUGIN([access_mmap])])
579
580 dnl Check for setlocal and langinfo
581 AC_CHECK_FUNCS(setlocale)
582 AC_CHECK_HEADERS(langinfo.h)
583 AC_CHECK_FUNCS(nl_langinfo)
584
585 AC_CACHE_CHECK([for nl_langinfo and CODESET], ac_cv_langinfo_codeset,
586   [AC_TRY_LINK([#include <langinfo.h>],
587     [char* cs = nl_langinfo(CODESET);],
588     ac_cv_langinfo_codeset=yes,
589     ac_cv_langinfo_codeset=no)
590   ])
591 if test ${ac_cv_langinfo_codeset} = yes; then
592   AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
593     [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
594 fi
595
596 SOCKET_LIBS=""
597 AC_CHECK_FUNCS(connect,,[
598   AC_CHECK_LIB(socket,connect,[
599     VLC_ADD_LIBS([libvlccore cdda cddax],-lsocket)
600     SOCKET_LIBS="-lsocket"
601   ])
602 ])
603 AC_SUBST(SOCKET_LIBS)
604
605 AC_CHECK_FUNCS(send,,[
606   AC_CHECK_LIB(socket,send,[
607     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])
608   ])
609 ])
610
611
612 dnl Check for socklen_t
613 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
614 AC_CACHE_CHECK([for socklen_t in sys/socket.h],
615 ac_cv_type_socklen_t,
616 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
617 [#include <sys/types.h>
618 #ifdef WIN32
619 # include <winsock2.h>
620 # include <ws2tcpip.h>
621 #else
622 # include <sys/socket.h>
623 #endif]], [[socklen_t len; len = 0;]])],
624 ac_cv_type_socklen_t=yes,
625 ac_cv_type_socklen_t=no)])
626 AS_IF([test "$ac_cv_type_socklen_t" = no],
627  [AC_DEFINE(socklen_t, int)])
628
629 dnl Check for struct sockaddr_storage
630 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.])
631 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.])
632 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
633   [AC_TRY_COMPILE(
634     [#include <sys/types.h>
635      #if defined( UNDER_CE )
636      # include <winsock2.h>
637      #elif defined( WIN32 )
638      # include <winsock2.h>
639      #else
640      # include <sys/socket.h>
641      #endif], [struct sockaddr_storage addr;],
642      ac_cv_struct_sockaddr_storage=yes,
643      ac_cv_struct_sockaddr_storage=no)])
644 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
645   AC_DEFINE(sockaddr_storage, sockaddr)
646   AC_DEFINE(ss_family, sa_family)
647 ])
648
649 dnl getaddrinfo, getnameinfo and gai_strerror check
650 dnl  -lnsl and -lsocket are needed on Solaris;
651 dnl  we purposedly make the test fail on Windows
652 LIBS_save="${LIBS}"
653 AH_TEMPLATE(HAVE_GETADDRINFO, [Define to 1 if you have the `getaddrinfo' function.])
654 AC_SEARCH_LIBS([getaddrinfo], [nsl], [AC_DEFINE(HAVE_GETADDRINFO)],, [${SOCKET_LIBS}])
655
656 dnl NOTE: we assume getaddrinfo will be present if getnameinfo or gai_strerro
657 dnl are
658 LIBS="${LIBS_gai}"
659 AC_CHECK_FUNCS([getnameinfo gai_strerror])
660 LIBS="${LIBS_save}"
661
662 AH_TEMPLATE(HAVE_ADDRINFO, [Define to 1 if <netdb.h> defines `struct addrinfo'.])
663 AC_CHECK_TYPES([struct addrinfo],[AC_DEFINE(HAVE_ADDRINFO)],,
664 [#include <sys/types.h>
665 #if defined( WIN32 ) || defined( UNDER_CE )
666 # if defined(UNDER_CE) && defined(sockaddr_storage)
667 #  undef sockaddr_storage
668 # endif
669 # include <winsock2.h>
670 # include <ws2tcpip.h>
671 #else
672 # include <netdb.h>
673 #endif])
674
675 dnl Check for va_copy
676 AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
677   AC_TRY_LINK(
678     [#include <stdarg.h>],
679     [va_list ap1, ap2; va_copy(ap1,ap2);],
680     [ac_cv_c_va_copy="yes"],
681     [ac_cv_c_va_copy="no"]))
682 if test "${ac_cv_c_va_copy}" = "yes"; then
683   AC_DEFINE(HAVE_VA_COPY, 1, [Define if <stdarg.h> defines va_copy.])
684 fi
685 AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
686   AC_TRY_LINK(
687     [#include <stdarg.h>],
688     [va_list ap1, ap2; __va_copy(ap1,ap2);],
689     [ac_cv_c___va_copy="yes"],
690     [ac_cv_c___va_copy="no"]))
691 if test "${ac_cv_c___va_copy}" = "yes"; then
692   AC_DEFINE(HAVE___VA_COPY, 1, [Define if <stdarg.h> defines __va_copy.])
693 fi
694
695 AC_CHECK_FUNCS(inet_aton,,[
696   AC_CHECK_LIB(resolv,inet_aton,[
697     VLC_ADD_LIBS([libvlccore],[-lresolv])
698   ])
699 ])
700
701 dnl Check for getopt (always use builtin one on win32)
702 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
703 need_getopt=:
704 else
705 need_getopt=false
706 AC_CHECK_FUNCS(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
707 [ # FreeBSD has a gnugetopt library for this:
708   AC_CHECK_LIB([gnugetopt],[getopt_long],
709     [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support)
710      VLC_ADD_LIBS([libvlccore],[-lgnugetopt])],
711     [need_getopt=:])])
712 fi
713 AM_CONDITIONAL(BUILD_GETOPT, ${need_getopt})
714
715 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
716 AC_TYPE_SIGNAL
717 AC_CHECK_LIB(m,cos,[
718   VLC_ADD_LIBS([adjust wave ripple psychedelic gradient a52tofloat32 dtstofloat32 x264 goom visual panoramix rotate noise grain scene kate flac lua chorus_flanger],[-lm])
719 ])
720 AC_CHECK_LIB(m,pow,[
721   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])
722 ])
723 AC_CHECK_LIB(m,sqrt,[
724   VLC_ADD_LIBS([headphone_channel_mixer normvol speex mono colorthres extract],[-lm])
725 ])
726 AC_CHECK_LIB(m,ceil,[
727   VLC_ADD_LIBS([hotkeys mosaic],[-lm])
728 ])
729 AC_CHECK_LIB(m,exp,[
730   VLC_ADD_LIBS([gaussianblur],[-lm])
731 ])
732 AC_CHECK_LIB(m,round,[
733   VLC_ADD_LIBS([dbus],[-lm])
734 ])
735 AC_CHECK_LIB(m,sqrtf,[
736   VLC_ADD_LIBS([x264],[-lm])
737 ])
738 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
739
740 AC_CHECK_LIB(m,lrintf, [
741   AC_DEFINE(HAVE_LRINTF, 1, [Define to 1 if you have the lrintf function])
742   VLC_ADD_LIBS([skins2],[-lm])
743 ])
744
745 dnl Check for dynamic plugins
746 ac_cv_have_plugins=no
747
748 # HP-UX style
749 if test "${ac_cv_have_plugins}" = "no"; then
750   AC_CHECK_HEADERS(dl.h)
751   ac_cv_my_have_shl_load=no
752   AC_CHECK_FUNC(shl_load,
753    [ac_cv_my_have_shl_load=yes,
754     AC_CHECK_LIB(dld, shl_load,
755      [ac_cv_my_have_shl_load=yes
756       VLC_ADD_LIBS([libvlccore],[-ldld])])])
757   if test "${ac_cv_my_have_shl_load}" = "yes"; then
758     AC_DEFINE(HAVE_DL_SHL_LOAD, 1, [Define if you have the shl_load API])
759     ac_cv_have_plugins=yes
760   fi
761 fi
762
763 # Win32 style
764 if test "${ac_cv_have_plugins}" = "no"; then
765   if test "${SYS}" = "mingw32" ; then
766     AC_CHECK_LIB(kernel32, main,
767      [VLC_ADD_LIBS([libvlccore],[-lkernel32])
768       AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
769       ac_cv_have_plugins=yes])
770   fi
771 fi
772
773 # WinCE style
774 if test "${ac_cv_have_plugins}" = "no"; then
775   if test "${SYS}" = "mingwce"; then
776     AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
777     ac_cv_have_plugins=yes
778   fi
779 fi
780
781 # BeOS style
782 if test "${ac_cv_have_plugins}" = "no"; then
783   AC_CHECK_HEADERS(image.h)
784   AC_CHECK_FUNCS(load_add_on,
785    [AC_DEFINE(HAVE_DL_BEOS, 1, [Define if you have the BeOS dl])
786     ac_cv_have_plugins=yes])
787 fi
788
789 # Only test for dlopen() if the others didn't work
790 if test "${ac_cv_have_plugins}" = "no" -o "${SYS}" = "darwin"; then
791   AC_CHECK_HEADERS(dlfcn.h sys/dl.h)
792   ac_cv_my_have_dlopen=no
793   AC_CHECK_FUNC(dlopen,
794     ac_cv_my_have_dlopen=yes,
795     AC_CHECK_LIB(dl, dlopen,
796       ac_cv_my_have_dlopen=yes
797       VLC_ADD_LIBS([libvlccore realaudio realvideo lua],[-ldl]),
798       AC_CHECK_LIB(svld, dlopen,
799         ac_cv_my_have_dlopen=yes
800         VLC_ADD_LIBS([libvlccore],[-lsvld]))))
801   if test "${ac_cv_my_have_dlopen}" = "yes"; then
802     AC_DEFINE(HAVE_DL_DLOPEN, 1, [Define if you have the dlopen API])
803     ac_cv_have_plugins=yes
804   fi
805 fi
806
807 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
808 dnl Check for pthreads - borrowed from XMMS
809 THREAD_LIB=error
810 if test "${THREAD_LIB}" = "error"; then
811   AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
812 fi
813 if test "${THREAD_LIB}" = "error"; then
814   AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
815 fi
816 if test "${THREAD_LIB}" = "error"; then
817   AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
818 fi
819 if test "${THREAD_LIB}" = "error"; then
820   AC_CHECK_FUNCS(pthread_mutex_lock)
821   THREAD_LIB=""
822 fi
823
824 VLC_ADD_LIBS([libvlccore libvlc plugin],[${THREAD_LIB}])
825
826 AC_CHECK_LIB(rt, clock_nanosleep, [
827   VLC_ADD_LIBS([libvlccore],[-lrt])
828   AC_DEFINE(HAVE_CLOCK_NANOSLEEP, 1, [Define to 1 if you have clock_nanosleep.])
829 ], [
830   dnl HP/UX port
831   AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LIBS([libvlccore],[-lrt])])
832 ])
833
834 have_nanosleep=false
835 AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[
836   AC_CHECK_LIB(rt,nanosleep,
837     [VLC_ADD_LIBS([libvlccore],[-lrt]) have_nanosleep=:],
838     [AC_CHECK_LIB(posix4,nanosleep,
839         [VLC_ADD_LIBS([libvlccore],[-lposix4]) have_nanosleep=:])]
840   )
841 ])
842 if ${have_nanosleep}; then
843   AC_DEFINE(HAVE_NANOSLEEP, 1, [Define if nanosleep is available.])
844 fi
845 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
846
847 dnl Check for misc headers
848 AC_MSG_CHECKING(for strncasecmp in strings.h)
849 AC_EGREP_HEADER(strncasecmp,strings.h,[
850   AC_MSG_RESULT(yes)
851   AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
852             Define if <strings.h> defines strncasecmp.)],[
853   AC_MSG_RESULT(no)])
854
855 dnl Check for headers
856 AC_CHECK_HEADERS(getopt.h strings.h locale.h xlocale.h)
857 AC_CHECK_HEADERS(fcntl.h sys/types.h sys/time.h sys/times.h sys/ioctl.h sys/stat.h sys/mount.h)
858 AC_CHECK_HEADERS([arpa/inet.h netinet/in.h netinet/udplite.h sys/eventfd.h])
859 AC_CHECK_HEADERS([net/if.h], [], [],
860   [
861     #include <sys/types.h>
862     #include <sys/socket.h>
863   ])
864 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
865 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
866 AC_CHECK_HEADERS([linux/version.h linux/dccp.h scsi/scsi.h linux/magic.h])
867 AC_CHECK_HEADERS(syslog.h)
868 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
869
870 AC_HEADER_TIME
871
872 dnl LP64 adn LLP64 architectures had better define ssize_t by themselves...
873 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.])
874 AC_CHECK_TYPE(ssize_t,, [
875   AC_DEFINE(ssize_t, int)
876 ])
877
878 dnl Check for poll
879 AC_SEARCH_LIBS(poll, [poll], [AC_DEFINE(HAVE_POLL, 1, [Define to 1 if the OS is usabl... err, has poll().])], [
880 if test ${SYS} != "mingw32" -a ${SYS} != "mingwce"
881 then
882     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])
883 fi
884 ])
885
886 dnl Check for dirent
887 need_dirent=false
888 AC_CHECK_HEADERS(dirent.h,,[need_dirent=:])
889 AM_CONDITIONAL(BUILD_DIRENT, ${need_dirent})
890
891 dnl Mac OS X and other OSes don't have declaration for nanosleep
892 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
893 AC_MSG_CHECKING(for nanosleep in time.h)
894 AC_EGREP_HEADER(nanosleep,time.h,[
895   AC_MSG_RESULT(yes)
896   AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
897             Define if <time.h> defines nanosleep.)
898 ],[
899   AC_MSG_RESULT(no)
900 ])
901 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
902
903 dnl Make sure we have timespecs
904 AC_MSG_CHECKING(for timespec in sys/time.h)
905 AC_EGREP_HEADER(timespec,sys/time.h,[
906   AC_MSG_RESULT(yes)
907   AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
908             Define if <sys/time.h> defines struct timespec.)
909 ],[
910   AC_MSG_RESULT(no)
911 ])
912
913 dnl Check for threads library
914 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
915 AC_CHECK_HEADERS(pthread.h)
916 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
917
918 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.
919 dnl Make PKG_CONFIG_PATH precious so that it appears in the help and get saved
920 AC_ARG_VAR(PKG_CONFIG_PATH,
921            [Paths where to find .pc not at the default location])
922 PKG_PROG_PKG_CONFIG()
923
924 dnl
925 dnl Check for zlib.h and -lz along with system -lminizip if available
926 dnl 
927 AC_CHECK_HEADERS(zlib.h, [ have_zlib=yes ], [ have_zlib=no ])
928 AM_CONDITIONAL(HAVE_ZLIB, [ test "${have_zlib}" = "yes" ])
929 if test "${have_zlib}" = "yes"
930 then
931   VLC_ADD_LIBS([access_http gme mp4 skins2 sap mkv unzip zip],[-lz])
932   PKG_CHECK_MODULES([MINIZIP], [minizip] , [ have_minizip=yes ], [
933     AC_CHECK_HEADERS([unzip.h], [ 
934       have_minizip=yes
935       MINIZIP_LIBS="-lminizip -lz"
936     ], [
937       have_minizip=no
938       MINIZIP_CFLAGS="-I\\\${top_srcdir}/libs/unzip"
939       MINIZIP_LIBS="\\\${top_builddir}/libs/unzip/libunzip.la"
940     ])
941   ])
942   VLC_ADD_CPPFLAGS([skins2],[$MINIZIP_CFLAGS])
943   VLC_ADD_CFLAGS([zip],[$MINIZIP_CFLAGS])
944   VLC_ADD_LIBS([skins2 zip],[$MINIZIP_LIBS])
945   VLC_ADD_PLUGIN([unzip])
946   VLC_ADD_PLUGIN([zip])
947 fi
948 AM_CONDITIONAL(HAVE_MINIZIP, [ test "${have_minizip}" = "yes" ])
949
950
951 dnl Check for dbus
952 AC_ARG_ENABLE(dbus,
953   [  --enable-dbus           Linux D-BUS message bus system (default enabled)])
954 case "${SYS}" in
955     linux*|*bsd*)
956 if test "${enable_dbus}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
957 then
958   dnl api stable dbus
959   PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.0.0,
960     [ AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
961       VLC_ADD_LIBS([screensaver libvlccore],[$DBUS_LIBS])
962       VLC_ADD_CFLAGS([screensaver libvlccore],[$DBUS_CFLAGS])
963       dnl Check for dbus control interface
964         AC_ARG_ENABLE(dbus-control, [  --disable-dbus-control  D-BUS control interface (default enabled)])
965         if test "${enable_dbus_control}" != "no"
966         then
967           VLC_ADD_PLUGIN([dbus])
968           VLC_ADD_LIBS([dbus],[$DBUS_LIBS])
969           VLC_ADD_CFLAGS([dbus],[$DBUS_CFLAGS])
970         fi
971       dnl Check for Telepathy
972         AC_ARG_ENABLE(telepathy,
973           AS_HELP_STRING([--enable-telepathy],[Telepathy Presence plugin through DBus(default enabled)]))
974         if test "${enable_telepathy}" != "no"; then
975           VLC_ADD_PLUGIN([telepathy])
976           VLC_ADD_LIBS([telepathy],[$DBUS_LIBS])
977           VLC_ADD_CFLAGS([telepathy],[$DBUS_CFLAGS])
978         fi
979         dnl Power Management Inhibiter
980         VLC_ADD_PLUGIN([inhibit])
981         VLC_ADD_LIBS([inhibit],[$DBUS_LIBS])
982         VLC_ADD_CFLAGS([inhibit],[$DBUS_CFLAGS])
983     ],
984     [AC_MSG_ERROR([Couldn't find DBus >= 1.0.0, install libdbus-dev ?])]
985   )
986 fi
987 ;;
988 esac
989
990 dnl build the qte plugin ?
991 NEED_QTE_MAIN=no
992
993 dnl Check for ntohl, etc.
994 AC_CACHE_CHECK([for ntohl in sys/param.h],
995     [ac_cv_c_ntohl_sys_param_h],
996     [CFLAGS="${CFLAGS_save} -Wall -Werror"
997      AC_TRY_COMPILE([#include <sys/param.h>],
998         [int meuh; ntohl(meuh);],
999         ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
1000 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
1001     AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
1002 fi
1003 CFLAGS="${CFLAGS_save}"
1004
1005 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])
1006 RDC_PROG_CC_FLAGS([-pipe])
1007
1008 AC_ARG_ENABLE(warnings-as-error,
1009       AS_HELP_STRING([--enable-warnings-as-error],[Treat acceptable warnings as error (default in debug)]),, [enable_warnings_as_error="$enable_debug"])
1010 AS_IF([test "${enable_warnings_as_error}" = "yes"], [
1011     RDC_PROG_CC_WERRORFLAGS([unused-function unused-label unused-value unused-parameter unused-variable unused \
1012      missing-braces nonnull parentheses uninitialized address enum-compare undef comment switch \
1013      bad-function-cast implicit sequence-point strict-aliasing array-bounds missing-parameter-type \
1014      overflow int-to-pointer-cast pointer-to-int-cast div-by-zero overflow ignored])
1015 ])
1016 AC_SUBST(CFLAGS_WERROR)
1017
1018 dnl Check for various optimization flags
1019 AC_CACHE_CHECK([if \$CC accepts -Os],
1020     [ac_cv_c_os],
1021     [CFLAGS="${CFLAGS_save} -Os"
1022      AC_TRY_COMPILE([],,ac_cv_c_os=yes, ac_cv_c_os=no)])
1023 if test "${ac_cv_c_os}" != "no"; then
1024     CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -Os"
1025 else
1026     AC_CACHE_CHECK([if \$CC accepts -O],
1027         [ac_cv_c_o],
1028         [CFLAGS="${CFLAGS_save} -O"
1029          AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
1030     if test "${ac_cv_c_o}" != "no"; then
1031         if test "${ac_cv_c_o3}" = "no"; then
1032             CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -O"
1033         fi
1034     fi
1035 fi
1036
1037 AC_CACHE_CHECK([if \$CC accepts -O4],
1038     [ac_cv_c_o4],
1039     [CFLAGS="${CFLAGS_save} -O4"
1040      AC_TRY_COMPILE([],,ac_cv_c_o4=yes, ac_cv_c_o4=no)])
1041 if test "${ac_cv_c_o4}" != "no" -a "x${enable_debug}" = "xno"; then
1042     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O4"
1043 else
1044     AC_CACHE_CHECK([if \$CC accepts -O3],
1045         [ac_cv_c_o3],
1046         [CFLAGS="${CFLAGS_save} -O3"
1047          AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
1048     if test "${ac_cv_c_o3}" != "no" -a "x${enable_debug}" = "xno"; then
1049         CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O3"
1050     else
1051         AC_CACHE_CHECK([if \$CC accepts -O2],
1052             [ac_cv_c_o2],
1053             [CFLAGS="${CFLAGS_save} -O2"
1054              AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
1055         if test "${ac_cv_c_o2}" != "no"; then
1056             CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O2"
1057         else
1058             AC_CACHE_CHECK([if \$CC accepts -O],
1059                 [ac_cv_c_o],
1060                 [CFLAGS="${CFLAGS_save} -O"
1061                  AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
1062             if test "${ac_cv_c_o}" != "no"; then
1063                 CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O"
1064             fi
1065         fi
1066     fi
1067 fi
1068
1069 AC_CACHE_CHECK([if \$CC accepts -O0],
1070     [ac_cv_c_o0],
1071     [CFLAGS="${CFLAGS_save} -O0"
1072      AC_TRY_COMPILE([],,ac_cv_c_o0=yes, ac_cv_c_o0=no)])
1073 if test "${ac_cv_c_o0}" != "no"; then
1074     CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O0"
1075 fi
1076
1077 dnl Check for -ffast-math
1078 AC_CACHE_CHECK([if \$CC accepts -ffast-math],
1079     [ac_cv_c_fast_math],
1080     [CFLAGS="${CFLAGS_save} -ffast-math"
1081      AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
1082 if test "${ac_cv_c_fast_math}" != "no"; then
1083     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -ffast-math"
1084 fi
1085
1086 dnl Check for -funroll-loops
1087 dnl Disabled on BeOS because BeOS' gcc is buggy and may crash with it
1088 if test "${SYS}" != "beos"
1089 then
1090   AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
1091       [ac_cv_c_unroll_loops],
1092       [CFLAGS="${CFLAGS_save} -funroll-loops"
1093        AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
1094   if test "${ac_cv_c_unroll_loops}" != "no"; then
1095       CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -funroll-loops"
1096   fi
1097 fi
1098
1099 dnl Check for -fomit-frame-pointer
1100 AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
1101     [ac_cv_c_omit_frame_pointer],
1102     [CFLAGS="${CFLAGS_save} -fomit-frame-pointer"
1103      AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
1104 if test "${ac_cv_c_omit_frame_pointer}" != "no"; then
1105  if test "${SYS}" != "darwin"; then
1106     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
1107  else
1108     dnl On darwin we explicitely disable it.
1109     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fno-omit-frame-pointer"
1110  fi
1111 fi
1112
1113 dnl Check for Darwin plugin linking flags
1114 AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error],
1115     [ac_cv_ld_darwin],
1116     [CFLAGS="${CFLAGS_save} -bundle -undefined error"
1117      AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
1118 if test "${ac_cv_ld_darwin}" != "no"; then
1119     VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
1120 fi
1121
1122 dnl Checks for __attribute__(aligned()) directive
1123 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1124     [ac_cv_c_attribute_aligned],
1125     [ac_cv_c_attribute_aligned=0
1126         CFLAGS="${CFLAGS_save} -Werror"
1127     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1128         AC_TRY_COMPILE([],
1129         [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1130         [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1131     done
1132         CFLAGS="${CFLAGS_save}"])
1133 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1134     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1135         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1136 fi
1137
1138 dnl Check for __attribute__((packed))
1139 AC_CACHE_CHECK([for __attribute__((packed))],
1140   [ac_cv_c_attribute_packed],
1141   [ac_cv_c_attribute_packed=no
1142    AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b; (void)b;],
1143                     [ac_cv_c_attribute_packed=yes])])
1144 if test "${ac_cv_c_attribute_packed}" != "no"; then
1145   AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1146 fi
1147
1148 dnl
1149 dnl  Check the CPU
1150 dnl
1151 case "${host_cpu}" in
1152   "")
1153     ARCH=unknown
1154     ;;
1155   *)
1156     ARCH="${host_cpu}"
1157     ;;
1158 esac
1159
1160 dnl Check for backtrace() support
1161 AC_CHECK_HEADERS(execinfo.h)
1162 AC_CHECK_FUNCS(backtrace)
1163
1164 dnl
1165 dnl  Enable profiling
1166 dnl
1167 AC_ARG_ENABLE(gprof,
1168 [  --enable-gprof          gprof profiling (default disabled)])
1169 AC_ARG_ENABLE(cprof,
1170 [  --enable-cprof          cprof profiling (default disabled)])
1171 test "${enable_gprof}" != "yes" && enable_gprof="no"
1172 test "${enable_cprof}" != "yes" && enable_cprof="no"
1173
1174 dnl
1175 dnl  default modules
1176 dnl
1177 dnl Video filters:
1178 VLC_ADD_PLUGIN([deinterlace])
1179 VLC_ADD_PLUGIN([yuvp])
1180 VLC_ADD_PLUGIN([invert])
1181 VLC_ADD_PLUGIN([mirror])
1182 VLC_ADD_PLUGIN([adjust])
1183 VLC_ADD_PLUGIN([transform])
1184 VLC_ADD_PLUGIN([wave])
1185 VLC_ADD_PLUGIN([ripple])
1186 VLC_ADD_PLUGIN([psychedelic])
1187 VLC_ADD_PLUGIN([gradient])
1188 VLC_ADD_PLUGIN([motionblur])
1189 VLC_ADD_PLUGIN([rv32])
1190 VLC_ADD_PLUGIN([rotate])
1191 VLC_ADD_PLUGIN([noise])
1192 VLC_ADD_PLUGIN([grain])
1193 VLC_ADD_PLUGIN([extract])
1194 VLC_ADD_PLUGIN([sharpen])
1195 VLC_ADD_PLUGIN([croppadd])
1196 VLC_ADD_PLUGIN([canvas])
1197 VLC_ADD_PLUGIN([blendbench])
1198 VLC_ADD_PLUGIN([blend])
1199 VLC_ADD_PLUGIN([scale])
1200 VLC_ADD_PLUGIN([vmem])
1201 VLC_ADD_PLUGIN([logo])
1202 VLC_ADD_PLUGIN([magnify])
1203 VLC_ADD_PLUGIN([puzzle])
1204 VLC_ADD_PLUGIN([colorthres])
1205 VLC_ADD_PLUGIN([scene])
1206 VLC_ADD_PLUGIN([yuv])
1207
1208 ALIASES="${ALIASES} cvlc"
1209
1210 dnl
1211 dnl default modules that need g++
1212 dnl
1213 AC_LANG_PUSH(C++)
1214 VLC_ADD_PLUGIN([spatializer])
1215 AC_LANG_POP(C++)
1216
1217 if test "${SYS}" != "mingwce"; then
1218   VLC_ADD_PLUGIN([gestures])
1219   VLC_ADD_PLUGIN([rc])
1220   VLC_ADD_PLUGIN([hotkeys])
1221   VLC_ADD_PLUGIN([showintf])
1222   VLC_ADD_PLUGIN([marq])
1223   VLC_ADD_PLUGIN([podcast])
1224   VLC_ADD_PLUGIN([shout])
1225   VLC_ADD_PLUGIN([sap])
1226   VLC_ADD_PLUGIN([mediadirs])
1227   VLC_ADD_PLUGIN([fake])
1228   VLC_ADD_PLUGIN([folder])
1229   VLC_ADD_PLUGIN([rss])
1230   VLC_ADD_PLUGIN([mosaic])
1231   VLC_ADD_PLUGIN([wall])
1232   VLC_ADD_PLUGIN([motiondetect])
1233   VLC_ADD_PLUGIN([clone])
1234   VLC_ADD_PLUGIN([crop])
1235   VLC_ADD_PLUGIN([erase])
1236   VLC_ADD_PLUGIN([bluescreen])
1237   VLC_ADD_PLUGIN([alphamask])
1238   VLC_ADD_PLUGIN([gaussianblur])
1239   VLC_ADD_PLUGIN([i420_yuy2])
1240   VLC_ADD_PLUGIN([i422_yuy2])
1241   VLC_ADD_PLUGIN([i420_ymga])
1242   VLC_ADD_PLUGIN([i422_i420])
1243   VLC_ADD_PLUGIN([yuy2_i422])
1244   VLC_ADD_PLUGIN([yuy2_i420])
1245   VLC_ADD_PLUGIN([chain])
1246   VLC_ADD_PLUGIN([aout_file])
1247   VLC_ADD_PLUGIN([linear_resampler])
1248   VLC_ADD_PLUGIN([bandlimited_resampler])
1249   VLC_ADD_PLUGIN([float32_mixer])
1250   VLC_ADD_PLUGIN([spdif_mixer])
1251   VLC_ADD_PLUGIN([simple_channel_mixer])
1252   VLC_ADD_PLUGIN([dolby_surround_decoder])
1253   VLC_ADD_PLUGIN([headphone_channel_mixer])
1254   VLC_ADD_PLUGIN([normvol])
1255   VLC_ADD_PLUGIN([equalizer])
1256   VLC_ADD_PLUGIN([param_eq])
1257   VLC_ADD_PLUGIN([scaletempo])
1258   VLC_ADD_PLUGIN([converter_float])
1259   VLC_ADD_PLUGIN([a52tospdif])
1260   VLC_ADD_PLUGIN([dtstospdif])
1261   VLC_ADD_PLUGIN([audio_format])
1262   ALIASES="${ALIASES} rvlc"
1263 fi
1264
1265 if test "${SYS}" = "mingwce"; then
1266   VLC_ADD_PLUGIN([chain])
1267   VLC_ADD_PLUGIN([aout_file])
1268   VLC_ADD_PLUGIN([linear_resampler])
1269   VLC_ADD_PLUGIN([bandlimited_resampler])
1270   VLC_ADD_PLUGIN([float32_mixer])
1271   VLC_ADD_PLUGIN([spdif_mixer])
1272   VLC_ADD_PLUGIN([simple_channel_mixer])
1273   VLC_ADD_PLUGIN([headphone_channel_mixer])
1274   VLC_ADD_PLUGIN([normvol])
1275   VLC_ADD_PLUGIN([converter_float])
1276   VLC_ADD_PLUGIN([a52tospdif])
1277   VLC_ADD_PLUGIN([dtstospdif])
1278   VLC_ADD_PLUGIN([audio_format])
1279   VLC_ADD_PLUGIN([i420_yuy2])
1280   VLC_ADD_PLUGIN([i422_yuy2])
1281   VLC_ADD_PLUGIN([i420_ymga])
1282   VLC_ADD_PLUGIN([i422_i420])
1283   VLC_ADD_PLUGIN([yuy2_i422])
1284   VLC_ADD_PLUGIN([yuy2_i420])
1285 fi
1286
1287 dnl
1288 dnl Some plugins aren't useful on some platforms
1289 dnl
1290 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1291     VLC_ADD_PLUGIN([screensaver])
1292     VLC_ADD_PLUGIN([motion])
1293     VLC_ADD_PLUGIN([dynamicoverlay])
1294     VLC_ADD_PLUGIN([signals])
1295 elif test "${SYS}" != "mingwce"; then
1296     VLC_ADD_PLUGIN([ntservice])
1297     VLC_ADD_PLUGIN([access_smb])
1298     VLC_ADD_PLUGIN([dmo])
1299     VLC_ADD_PLUGIN([msn])
1300     VLC_ADD_LIBS([dmo],[-lole32 -luuid])
1301     VLC_ADD_PLUGIN([globalhotkeys])
1302 else
1303     VLC_ADD_PLUGIN([win32text])
1304 fi
1305 if test "${SYS}" = "darwin"; then
1306     VLC_ADD_PLUGIN([quartztext])
1307     VLC_ADD_LDFLAGS([quartztext],[-Wl,-framework,Carbon,-framework,ApplicationServices])
1308 fi
1309
1310 dnl
1311 dnl  Accelerated modules
1312 dnl
1313 AC_ARG_WITH(,[])
1314 AC_ARG_WITH(,[Optimization options:])
1315
1316 dnl  Check for fully working MMX intrinsics
1317 dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a
1318 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1319 AC_ARG_ENABLE(mmx,
1320 [  --disable-mmx           disable MMX optimizations (default auto)],,[
1321   case "${host_cpu}" in
1322     i?86|x86_64)
1323       enable_mmx="yes"
1324       ;;
1325     *)
1326       enable_mmx="no"
1327       ;;
1328   esac
1329 ])
1330 AS_IF([test "${enable_mmx}" != "no"], [
1331   ARCH="${ARCH} mmx"
1332
1333   AC_CACHE_CHECK([if $CC groks MMX intrinsics],
1334     [ac_cv_c_mmx_intrinsics],
1335     [CFLAGS="${CFLAGS_save} -O -mmmx"
1336      AC_TRY_COMPILE([#include <mmintrin.h>
1337                      #include <stdint.h>
1338                      uint64_t frobzor;],
1339                     [__m64 a, b, c;
1340                      a = b = c = (__m64)frobzor;
1341                      a = _mm_slli_pi16(a, 3);
1342                      a = _mm_adds_pi16(a, b);
1343                      c = _mm_srli_pi16(c, 8);
1344                      c = _mm_slli_pi16(c, 3);
1345                      b = _mm_adds_pi16(b, c);
1346                      a = _mm_unpacklo_pi8(a, b);
1347                      frobzor = (uint64_t)a;],
1348                     [ac_cv_c_mmx_intrinsics=yes],
1349                     [ac_cv_c_mmx_intrinsics=no])])
1350   AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1351     AC_DEFINE(HAVE_MMX_INTRINSICS, 1,
1352               [Define to 1 if MMX intrinsics are available.])
1353     VLC_ADD_CFLAGS([memcpymmx i420_rgb_mmx i420_yuy2_mmx i422_yuy2_mmx i420_ymga_mmx],[-mmmx])
1354   ])
1355
1356   AC_CACHE_CHECK([if $CC groks MMX inline assembly],
1357     [ac_cv_mmx_inline],
1358     [CFLAGS="${CFLAGS_save}"
1359      AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
1360                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
1361   AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1362     AC_DEFINE(CAN_COMPILE_MMX, 1,
1363               [Define to 1 inline MMX assembly is available.])
1364     VLC_ADD_PLUGIN([memcpymmx])
1365     VLC_ADD_PLUGIN([i420_rgb_mmx])
1366     VLC_ADD_PLUGIN([i420_yuy2_mmx])
1367     VLC_ADD_PLUGIN([i422_yuy2_mmx])
1368     VLC_ADD_PLUGIN([i420_ymga_mmx])
1369   ])
1370
1371   AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1372     [ac_cv_mmxext_inline],
1373     [CFLAGS="${CFLAGS_save}"
1374      AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
1375                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
1376   AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1377     AC_DEFINE(CAN_COMPILE_MMXEXT, 1,
1378               [Define to 1 if MMX EXT inline assembly is available.])
1379     VLC_ADD_PLUGIN([memcpymmxext])
1380   ])
1381 ])
1382
1383 dnl  Check for fully workin SSE2 intrinsics
1384 dnl  We need support for -mmmx, we need <emmintrin.h>, and we also need a
1385 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1386 AC_ARG_ENABLE(sse,
1387 [  --disable-sse           disable SSE (1 and 2) optimizations (default auto)]
1388 ,, [
1389   case "${host_cpu}" in
1390     i686|x86_64)
1391       enable_sse=yes
1392       ;;
1393     *)
1394       enable_sse=no
1395       ;;
1396   esac
1397 ])
1398 AS_IF([test "${enable_sse}" != "no"], [
1399   ARCH="${ARCH} sse sse2"
1400
1401   AC_CACHE_CHECK([if $CC groks SSE2 intrinsics],
1402     [ac_cv_c_sse2_intrinsics],
1403     [CFLAGS="${CFLAGS_save} -O -msse2"
1404      AC_TRY_COMPILE([#include <emmintrin.h>
1405                      #include <stdint.h>
1406                      uint64_t frobzor;],
1407                     [__m128i a, b, c;
1408                      a = b = c = _mm_set1_epi64((__m64)frobzor);
1409                      a = _mm_slli_epi16(a, 3);
1410                      a = _mm_adds_epi16(a, b);
1411                      c = _mm_srli_epi16(c, 8);
1412                      c = _mm_slli_epi16(c, 3);
1413                      b = _mm_adds_epi16(b, c);
1414                      a = _mm_unpacklo_epi8(a, b);
1415                      frobzor = (uint64_t)_mm_movepi64_pi64(a);],
1416                     [ac_cv_c_sse2_intrinsics=yes],
1417                     [ac_cv_c_sse2_intrinsics=no])])
1418   AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1419     AC_DEFINE(HAVE_SSE2_INTRINSICS, 1,
1420               [Define to 1 if SSE2 intrinsics are available.])
1421     VLC_ADD_CFLAGS([i420_rgb_sse2 i420_yuy2_sse2 i422_yuy2_sse2],[-msse2])
1422   ])
1423
1424   AC_CACHE_CHECK([if $CC groks SSE inline assembly],
1425     [ac_cv_sse_inline],
1426     [CFLAGS="${CFLAGS_save}"
1427      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
1428                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
1429   AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1430     AC_DEFINE(CAN_COMPILE_SSE, 1,
1431               [Define to 1 if SSE inline assembly is available.])
1432   ])
1433
1434   AC_CACHE_CHECK([if $CC groks SSE2 inline assembly],
1435     [ac_cv_sse2_inline],
1436     [CFLAGS="${CFLAGS_save}"
1437      AC_TRY_COMPILE(,[void *p;asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p));],
1438                     ac_cv_sse2_inline=yes, ac_cv_sse2_inline=no)])
1439   AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1440     AC_DEFINE(CAN_COMPILE_SSE2, 1,
1441               [Define to 1 if SSE2 inline assembly is available.])
1442     VLC_ADD_PLUGIN([i420_rgb_sse2])
1443     VLC_ADD_PLUGIN([i420_yuy2_sse2])
1444     VLC_ADD_PLUGIN([i422_yuy2_sse2])
1445   ])
1446 ])
1447
1448 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly],
1449     [ac_cv_3dnow_inline],
1450     [CFLAGS="${CFLAGS_save}"
1451      AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
1452                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
1453 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1454   AC_DEFINE(CAN_COMPILE_3DNOW, 1,
1455             [Define to 1 if 3D Now! inline assembly is available.])
1456   VLC_ADD_PLUGIN([memcpy3dn])
1457 ])
1458
1459
1460 AC_ARG_ENABLE(neon,
1461 [ --disable-neon           disable NEON optimizations (default auto)],, [
1462   AS_IF([test "${host_cpu}" = "arm"], [enable_neon="yes"] ,[enable_neon="no"])
1463 ])
1464 AS_IF([test "${enable_neon}" != "no"], [
1465   AC_CACHE_CHECK([if $CC groks NEON inline assembly], [ac_cv_neon_inline], [
1466     AC_COMPILE_IFELSE([
1467       AC_LANG_PROGRAM(,[[asm volatile("vqmovun.s64 d0, q1":::"d0");]])
1468     ], [
1469       ac_cv_neon_inline="yes"
1470     ], [
1471       ac_cv_neon_inline="no"
1472     ])
1473   ])
1474 ])
1475 AM_CONDITIONAL(HAVE_NEON, [test "${ac_cv_neon_inline}" = "yes"])
1476
1477 AC_ARG_ENABLE(altivec,
1478 [  --disable-altivec       disable AltiVec optimizations (default auto)],, [
1479   AS_IF([test "${host_cpu}" = "powerpc"],
1480         [enable_altivec=yes], [enable_altivec=no])
1481 ])
1482 AS_IF([test "${enable_altivec}" = "yes"], [
1483   ARCH="${ARCH} altivec";
1484   AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1485     [ac_cv_altivec_inline],
1486     [CFLAGS="${CFLAGS_save}"
1487      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1488          ac_cv_altivec_inline="yes",
1489          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
1490           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1491             [ac_cv_altivec_inline="-Wa,-m7400"],
1492             ac_cv_altivec_inline=no)
1493          ])])
1494   AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1495     AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1496               [Define to 1 if AltiVec inline assembly is available.])
1497     AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1498       VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
1499       VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
1500       VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1501       VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1502       VLC_ADD_CFLAGS([libvlccore],[${ac_cv_altivec_inline}])
1503     ])
1504     VLC_ADD_PLUGIN([memcpyaltivec])
1505     VLC_ADD_PLUGIN([i420_yuy2_altivec])
1506   ])
1507
1508 dnl The AltiVec C extensions
1509 dnl
1510 dnl There are several possible cases:
1511 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1512 dnl                      need <altivec.h>
1513 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1514 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1515 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1516 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1517 dnl - Others: test should fail
1518   AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1519   [ac_cv_c_altivec],
1520   [# OS X/PPC test (gcc 4.x)
1521    CFLAGS="${CFLAGS_save} -mpim-altivec -force_cpusubtype_ALL"
1522    AC_TRY_COMPILE([vector unsigned char foo;],
1523      [vec_ld(0, (unsigned char *)0);],
1524      [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1525      [# OS X/PPC test (gcc 3.x)
1526       CFLAGS="${CFLAGS_save} -faltivec"
1527       AC_TRY_COMPILE([vector unsigned char foo;],
1528         [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1529         [ac_cv_c_altivec="-faltivec"],
1530         dnl Below this are the Linux tests
1531         [# Linux/PPC test (gcc 4.x)
1532          CFLAGS="${CFLAGS_save} -maltivec"
1533          AC_TRY_COMPILE([#include <altivec.h>],
1534            [vec_ld(0, (unsigned char *)0);],
1535            [ac_cv_c_altivec="-maltivec"],
1536            [# Linux/PPC test (gcc 3.3)
1537             CFLAGS="${CFLAGS_save} -maltivec -mabi=altivec"
1538             AC_TRY_COMPILE([#include <altivec.h>],
1539               [vec_ld(0, (unsigned char *)0);],
1540               [ac_cv_c_altivec=""
1541                ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1542               [# Linux/PPC test (gcc 3.3)
1543                CFLAGS="${CFLAGS_save} -fvec"
1544                AC_TRY_COMPILE([#include <altivec.h>],
1545                  [vec_ld(0, (unsigned char *)0);],
1546                  [ac_cv_c_altivec="-fvec"],
1547                  [ac_cv_c_altivec=no])
1548               ])
1549            ])
1550         ])
1551      ])
1552    CFLAGS="${CFLAGS_save}"
1553   ])
1554   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1555     CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
1556   ])
1557
1558   AC_CHECK_HEADERS(altivec.h)
1559   CPPFLAGS="${CPPFLAGS_save}"
1560
1561   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1562     AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1,
1563               [Define to 1 if C AltiVec extensions are available.])
1564     VLC_ADD_CFLAGS([libvlccore],[${ac_cv_c_altivec}])
1565     VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
1566     VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1567     VLC_ADD_PLUGIN([memcpyaltivec])
1568     VLC_ADD_PLUGIN([i420_yuy2_altivec])
1569   ])
1570
1571   AC_CACHE_CHECK([if linker needs -framework vecLib],
1572     [ac_cv_ld_altivec],
1573     [LDFLAGS="${LDFLAGS_vlc} -Wl,-framework,vecLib"
1574      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
1575      LDFLAGS="${LDFLAGS_save}"
1576     ])
1577   AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1578     VLC_ADD_LDFLAGS([libvlccore idctaltivec motionaltivec memcpyaltivec],[-Wl,-framework,vecLib])
1579   ])
1580 ])
1581
1582 dnl
1583 dnl  Special arch tuning
1584 dnl
1585 AC_ARG_WITH(tuning,
1586 [  --with-tuning=ARCH      enable special tuning for an architecture
1587                           (default Pentium 2 on IA-32 and G4 on PPC)])
1588 if test -n "${with_tuning}"; then
1589     if test "${with_tuning}" != "no"; then
1590         CFLAGS_TUNING="-mtune=${with_tuning}"
1591     fi
1592 else
1593     if test "${SYS}" = "darwin" -a "${host_cpu}" != "powerpc"; then
1594         CFLAGS_TUNING="-march=prescott -mtune=generic"
1595     elif test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "i386"; then
1596         CFLAGS_TUNING="-mtune=pentium2"
1597     elif test "${host_cpu}" = "x86_64"; then
1598         CFLAGS_TUNING="-mtune=athlon64"
1599     elif test "${host_cpu}" = "powerpc"; then
1600         CFLAGS_TUNING="-mtune=G4";
1601     fi
1602 fi
1603
1604 dnl NOTE: this can't be cached cleanly
1605 AS_IF([test "${CFLAGS_TUNING}"],
1606    [CFLAGS_save="${CFLAGS}"
1607     CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1608
1609     AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1610     AC_COMPILE_IFELSE([ ],
1611                       [tuning="yes"],
1612                       [CFLAGS_TUNING=""; tuning="no"
1613                        AS_IF([test "${with_tuning}"],
1614                              [AC_MSG_ERROR([requested tuning not supported])])])
1615
1616     AC_MSG_RESULT([$tuning])
1617     CFLAGS="${CFLAGS_save}"
1618 ])
1619
1620 dnl
1621 dnl  Memory usage
1622 dnl
1623 AC_ARG_ENABLE(optimize-memory,
1624 [  --enable-optimize-memory optimize memory usage over performance])
1625 if test "${enable_optimize_memory}" = "yes"; then
1626   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1627 fi
1628
1629 dnl
1630 dnl  Enable/disable optimizations
1631 dnl
1632 AC_ARG_ENABLE(optimizations,
1633 [  --disable-optimizations disable compiler optimizations (default enabled)])
1634 if test "${enable_optimizations}" != "no"; then
1635    if test "${enable_optimize_memory}" = "yes"; then
1636       enable_optimizations="size"
1637    else
1638       enable_optimizations="speed"
1639    fi
1640 fi
1641
1642 dnl
1643 dnl  Debugging mode
1644 dnl
1645 AC_ARG_ENABLE(debug,
1646 [  --enable-debug          debug mode (default disabled)])
1647 test "${enable_debug}" != "yes" && enable_debug="no"
1648 AH_TEMPLATE(NDEBUG,
1649             [Define to 1 if debug code should NOT be compiled])
1650 AS_IF([test "x${enable_debug}" = "xno"], [
1651   AC_DEFINE(NDEBUG)
1652 ], [
1653   AC_CHECK_HEADERS([valgrind/valgrind.h])
1654 ])
1655
1656 dnl
1657 dnl Allow runing as root (usefull for people runing on embedded platforms)
1658 dnl
1659 AC_ARG_ENABLE(run-as-root,
1660 [  --enable-run-as-root    allow runing VLC as root (default disabled)])
1661 AS_IF([test "${enable_run_as_root}" = "yes"],[
1662     AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1663               [Define to 1 to allow runing VLC as root (uid 0).])
1664 ])
1665
1666 dnl
1667 dnl  Test coverage
1668 dnl
1669 AC_ARG_ENABLE(coverage,
1670         [  --enable-coverage       build for test coverage (default disabled)],,
1671         [enable_coverage="no"])
1672 AS_IF([test "${enable_coverage}" != "no"], [
1673         CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
1674         CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
1675         LDFLAGS="-lgcov ${LDFLAGS}"
1676         dnl ugly...
1677         CFLAGS_save="${CFLAGS}"
1678         CXXFLAGS_save="${CXXFLAGS}"
1679         LDFLAGS_save="${LDFLAGS}"
1680 ])
1681
1682 dnl
1683 dnl  Enable release-specific flags
1684 dnl
1685 AC_ARG_ENABLE(release,
1686 [  --enable-release        activate extra optimizations (default disabled)])
1687 test "${enable_release}" != "yes" && enable_release="no"
1688
1689 dnl
1690 dnl Stream output
1691 dnl
1692 AC_ARG_ENABLE(sout,
1693   [  --enable-sout           Stream output modules (default enabled)])
1694 AS_IF([test "${enable_sout}" != "no"], [
1695   AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1696 ])
1697 AM_CONDITIONAL(ENABLE_SOUT, [test "${enable_sout}" != "no"])
1698
1699 dnl Lua modules
1700 AC_ARG_ENABLE(lua,
1701   AS_HELP_STRING([--enable-lua],[lua playlist, metafetcher and interface
1702                   plugins (default enabled)]))
1703 if test "${enable_lua}" != "no"
1704 then
1705   PKG_CHECK_MODULES(LUA, lua5.1,
1706     [ have_lua=yes ],
1707     [
1708     AC_MSG_WARN([lua5.1 not found, trying lua >= 5.1 instead])
1709     PKG_CHECK_MODULES(LUA, lua >= 5.1,
1710       [ have_lua=yes ],
1711       [
1712         have_lua=yes
1713         AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1714           [],
1715           [ have_lua=no ] )
1716         AC_CHECK_LIB(  lua5.1 , luaL_newstate,
1717           [LUA_LIBS="-llua5.1"],
1718           AC_CHECK_LIB( lua51 , luaL_newstate,
1719             [LUA_LIBS="-llua51"],
1720             AC_CHECK_LIB( lua , luaL_newstate,
1721               [LUA_LIBS="-llua"],
1722               [ have_lua=no
1723                 AS_IF([test "x${enable_lua}" = "xyes"],
1724                   [AC_MSG_ERROR([lua >= 5.1 not found!])],
1725                   [AC_MSG_WARN([lua >= 5.1 not found!])])
1726               ], [-lm])
1727           )
1728         )
1729       ])
1730     ])
1731   if test "x${have_lua}" = "xyes" ;  then
1732      AC_DEFINE(HAVE_LUA, 1, [Define if you have the lua library])
1733      VLC_ADD_LIBS([lua],[$LUA_LIBS])
1734      VLC_ADD_CFLAGS([lua],[$LUA_CFLAGS])
1735   fi
1736 fi
1737 AM_CONDITIONAL(BUILD_LUA, [test "${have_lua}" = "yes"])
1738
1739 dnl
1740 dnl HTTP daemon
1741 dnl
1742 AC_ARG_ENABLE(httpd,
1743   [  --enable-httpd          HTTP daemon (default enabled)])
1744 if test "${enable_httpd}" != "no"
1745 then
1746   VLC_ADD_PLUGIN([http])
1747   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
1748 fi
1749 AM_CONDITIONAL(BUILD_HTTPD, [test "${enable_httpd}" != "no"])
1750
1751 dnl
1752 dnl libproxy support
1753 dnl
1754 AC_ARG_ENABLE(libproxy,
1755   [  --enable-libproxy       libproxy support (default auto)])
1756 AS_IF([test "${enable_libproxy}" != "no"], [
1757   PKG_CHECK_MODULES(LIBPROXY, libproxy-1.0, [
1758     AC_DEFINE(HAVE_LIBPROXY, 1, [Define if libproxy is available])
1759     VLC_ADD_CFLAGS([access_http],[$LIBPROXY_CFLAGS])
1760     VLC_ADD_LIBS([access_http],[$LIBPROXY_LIBS])
1761   ], [
1762     AS_IF([test "x${enable_libproxy}" != "x"], [
1763       AC_MSG_ERROR([libproxy could not be found on your system])
1764     ])
1765   ])
1766 ])
1767
1768
1769 dnl
1770 dnl VideoLAN manager
1771 dnl
1772 AC_ARG_ENABLE(vlm,
1773   [  --enable-vlm            VideoLAN manager (default enabled)],,
1774   [enable_vlm="${enable_sout}"])
1775 AS_IF([test "${enable_vlm}" != "no"], [
1776   AS_IF([test "${enable_sout}" = "no"], [
1777     AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1778   ])
1779   AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1780   VLC_ADD_PLUGIN([telnet])
1781 ])
1782 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1783
1784 dnl
1785 dnl Growl notification plugin
1786 dnl
1787 AC_ARG_ENABLE(growl,
1788   [  --enable-growl          growl notification plugin (default disabled)],,
1789   [enable_growl=no])
1790 AS_IF([test "${enable_growl}" != "no"], [
1791     VLC_ADD_PLUGIN([growl_udp])
1792     AC_CHECK_HEADERS(Growl/GrowlDefines.h, [
1793       VLC_ADD_PLUGIN([growl])
1794       VLC_ADD_LDFLAGS([growl], [-Wl,-framework,Growl,-framework,AppKit])
1795     ])
1796   ]
1797 )
1798
1799 dnl
1800 dnl Libnotify notification plugin
1801 dnl
1802 PKG_ENABLE_MODULES_VLC([NOTIFY], [], [libnotify], [libnotify notification], [auto])
1803
1804 dnl
1805 dnl Audioscrobbler plugin
1806 dnl
1807
1808 AC_ARG_ENABLE(audioscrobbler,
1809   [  --disable-audioscrobbler Last.fm submission plugin (default enabled)])
1810 AS_IF([test "${enable_audioscrobbler}" != "no"], [
1811         VLC_ADD_PLUGIN([audioscrobbler])
1812   ])
1813
1814 dnl
1815 dnl Taglibplugin
1816 dnl
1817 AC_ARG_ENABLE(taglib,
1818   [  --disable-taglib        Taglib support (default enabled) ])
1819   AS_IF([test "${enable_taglib}" != "no"],[
1820     PKG_CHECK_MODULES(TAGLIB, taglib >= 1.5,
1821       [ AC_DEFINE( HAVE_TAGLIB, 1, [Define if you have taglib plugin built] )
1822         VLC_ADD_PLUGIN([taglib])
1823         VLC_ADD_LIBS([taglib],[$TAGLIB_LIBS -lz])
1824        VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS]) ],
1825       [AC_MSG_WARN(TagLib library not found)])
1826   ])
1827
1828 dnl
1829 dnl  Input plugins
1830 dnl
1831
1832 AC_ARG_WITH(,[Input plugins:])
1833
1834 dnl  live555 input
1835 dnl
1836 if test "${enable_livedotcom}"
1837 then
1838   AC_MSG_WARN(--{en|dis}able-livedotcom is deprecated. Use --{en|dis}able-live555 instead.)
1839 fi
1840 if test "${enable_livedotcom}" = "no"
1841 then
1842   enable_live555="no"
1843 fi
1844
1845 AC_ARG_ENABLE(live555,
1846 [  --enable-live555        live555 RTSP input plugin (default enabled)])
1847 if test "${enable_live555}" != "no"; then
1848   AC_ARG_WITH(live555-tree,
1849     [    --with-live555-tree=PATH live.com tree for static linking])
1850
1851   dnl
1852   dnl test for --with-live555-tree
1853   dnl
1854   if test "${with_livedotcom_tree}"
1855   then
1856     AC_MSG_WARN(--with-livedotcom-tree is deprecated. Use --with-live555-tree instead.)
1857   with_live555_tree="${with_livedotcom_tree}"
1858   fi
1859
1860   if test -z "${with_live555_tree}" -a "${CXX}" != ""; then
1861     AC_LANG_PUSH(C++)
1862     CPPFLAGS_save="${CPPFLAGS}"
1863     CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1864     if test "${SYS}" = "solaris"; then
1865       CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1866     fi
1867     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1868
1869     AC_CHECK_HEADERS(liveMedia_version.hh, [
1870       AC_MSG_CHECKING(for liveMedia version >= 1214895600 )
1871       AC_EGREP_CPP(yes,
1872         [#include <liveMedia_version.hh>
1873          #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
1874          #if LIVEMEDIA_LIBRARY_VERSION_INT < 1214895600
1875          yes
1876          #endif
1877          #endif],
1878         [AC_MSG_RESULT([no])
1879          AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia.
1880 lternatively you can use --disable-live555 to disable the liveMedia plugin.])
1881       ],[
1882          AC_MSG_RESULT([yes])
1883          ])
1884     ])
1885      other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1886      other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
1887       if test "${SYS}" = "mingw32"; then
1888         # add ws2_32 for closesocket, select, recv
1889         other_libs="$other_libs -lws2_32"
1890       fi
1891     dnl We need to check for pic because live555 don't provide shared libs
1892     dnl and we want to build a plugins so we need -fPIC on some arch.
1893     AC_CHECK_HEADERS(liveMedia.hh, [
1894       VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1895         AC_CHECK_LIB(liveMedia_pic, main, [
1896           VLC_ADD_PLUGIN([live555])
1897          VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
1898          ],[
1899         AC_CHECK_LIB(liveMedia, main, [
1900           VLC_ADD_PLUGIN([live555])
1901           VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1902         ],[],[${other_libs}]) ],[${other_libs_pic}])
1903     ],[
1904        AC_MSG_WARN([The development files for liveMedia (live555) can't be found])
1905     ])
1906     CPPFLAGS="${CPPFLAGS_save}"
1907     AC_LANG_POP(C++)
1908   else
1909     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_live555_tree})
1910     real_live555_tree="`cd ${with_live555_tree} 2>/dev/null && pwd`"
1911     if test -z "${real_live555_tree}"; then
1912       dnl  The given directory can't be found
1913       AC_MSG_RESULT(no)
1914       AC_MSG_ERROR([cannot cd to ${with_live555_tree}])
1915     fi
1916     if test -f "${real_live555_tree}/liveMedia/libliveMedia.a"; then
1917       AC_MSG_RESULT(${real_live555_tree}/liveMedia/libliveMedia.a)
1918
1919       AC_CHECK_HEADERS(${real_live555_tree}/liveMedia/include/liveMedia_version.hh,[
1920         AC_MSG_CHECKING(for liveMedia version >= 1214895600 )
1921         AC_EGREP_CPP(yes,
1922           [#include "${real_live555_tree}/liveMedia/include/liveMedia_version.hh"
1923            #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
1924            #if LIVEMEDIA_LIBRARY_VERSION_INT < 1214895600
1925            yes
1926            #endif
1927            #endif],
1928           [AC_MSG_RESULT([no])
1929            AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia.
1930 lternatively you can use --disable-live555 to disable the liveMedia plugin.])
1931         ],[
1932            AC_MSG_RESULT([yes])
1933            ])
1934       ])
1935
1936       VLC_ADD_PLUGIN([live555])
1937
1938       if test "${SYS}" = "mingw32"; then
1939         # add ws2_32 for closesocket, select, recv
1940         VLC_ADD_LIBS([live555],[-lws2_32])
1941       fi
1942
1943       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/liveMedia -lliveMedia])
1944       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1945       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/groupsock -lgroupsock])
1946       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/UsageEnvironment -lUsageEnvironment])
1947
1948       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/BasicUsageEnvironment/include])
1949       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/groupsock/include])
1950       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/liveMedia/include])
1951       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/UsageEnvironment/include ])
1952       if test "${SYS}" = "solaris"; then
1953         VLC_ADD_CXXFLAGS([live555],[-DSOLARIS])
1954       fi
1955     else
1956       dnl  The given live555 wasn't built
1957         AC_MSG_RESULT(no)
1958       if test "${enable_live555}" = "yes"; then
1959         AC_MSG_ERROR([cannot find ${real_live555_tree}/liveMedia/libliveMedia.a, make sure you compiled live555 in ${with_live555_tree}])
1960       fi        
1961     fi
1962   fi
1963 fi
1964
1965 dnl
1966 dnl - special access module for dc1394 input
1967 dnl - dv module: digital video module check for libraw1394
1968 dnl
1969 PKG_ENABLE_MODULES_VLC([dc1394], [], [libraw1394 >= 2.0.1 libdc1394 >= 1.0.0], [dc1394 access module], [auto])
1970 PKG_ENABLE_MODULES_VLC([dv], [access_dv], [libraw1394 >= 2.0.1 libavc1394 >= 0.5.3], [DV input module], [auto])
1971
1972 dnl
1973 dnl dvdread module: check for libdvdread
1974 dnl
1975 AC_ARG_ENABLE(dvdread,
1976 [  --enable-dvdread        dvdread input module (default disabled)])
1977 if test "${enable_dvdread}" != "no"
1978 then
1979   AC_ARG_WITH(dvdread,
1980   [    --with-dvdread=PATH   libdvdread headers and libraries])
1981   AC_ARG_WITH(dvdread-tree,
1982   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
1983
1984   dnl Temporary hack (yeah, sure ;)
1985   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
1986       VLC_ADD_LIBS([dvdread],[-ldvdcss])
1987   fi
1988
1989   if test -z "${with_dvdread}"
1990   then
1991     if test -z "${with_dvdread_tree}"
1992     then
1993       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
1994         [ VLC_ADD_PLUGIN([dvdread])
1995           VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
1996         ],[
1997           AC_CHECK_HEADERS(libdvdread/dvd_reader.h,
1998             [ VLC_ADD_PLUGIN([dvdread])
1999               VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
2000             ],[
2001               if test -n "${enable_dvdread}"
2002               then
2003               AC_MSG_ERROR([cannot find libdvdread headers])
2004              fi
2005            ])
2006         ])
2007     else
2008       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
2009       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
2010       if test -z "${real_dvdread_tree}"
2011       then
2012         dnl  The given directory can't be found
2013         AC_MSG_RESULT(no)
2014         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
2015       fi
2016       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
2017       then
2018         dnl  Use a custom libdvdread
2019         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
2020         VLC_ADD_PLUGIN([dvdread])
2021         VLC_ADD_LIBS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LIBS_dvdcss}])
2022         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
2023       else
2024         dnl  The given libdvdread wasn't built
2025         AC_MSG_RESULT(no)
2026         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
2027       fi
2028     fi
2029   else
2030     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
2031     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
2032     then
2033       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
2034       AC_MSG_RESULT(yes)
2035       VLC_ADD_PLUGIN([dvdread])
2036       VLC_ADD_LIBS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LIBS_dvdcss}])
2037       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
2038     else
2039       dnl  No libdvdread could be found, sorry
2040       AC_MSG_RESULT(no)
2041       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
2042     fi
2043   fi
2044 fi
2045
2046 dnl
2047 dnl  libdvdnav plugin
2048 dnl
2049 AC_ARG_ENABLE(dvdnav,
2050   [  --enable-dvdnav         dvdnav input module (default enabled)])
2051 if test "${enable_dvdnav}" != "no"
2052 then
2053   dnl Same hack than dvdread
2054   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2055       VLC_ADD_LIBS([dvdnav],[-ldvdcss])
2056   fi
2057
2058   DVDNAV_PATH="${PATH}"
2059   AC_ARG_WITH(dvdnav-config-path,
2060     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
2061     [ if test "${with_dvdnav_config_path}" != "no"
2062       then
2063         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
2064       fi ])
2065   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
2066   if test "${DVDNAV_CONFIG}" != "no"
2067   then
2068     VLC_ADD_PLUGIN([dvdnav])
2069     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
2070     VLC_ADD_LIBS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
2071   fi
2072 fi
2073
2074 dnl
2075 dnl  Windows DirectShow access module
2076 dnl
2077 AC_ARG_ENABLE(dshow,
2078   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
2079 if test "${enable_dshow}" != "no"
2080 then
2081   if test "${SYS}" = "mingw32"
2082   then
2083     AC_LANG_PUSH(C++)
2084       AC_CHECK_HEADERS(dshow.h,
2085       [ VLC_ADD_PLUGIN([dshow])
2086         VLC_ADD_CXXFLAGS([dshow],[])
2087         VLC_ADD_LIBS([dshow],[-lole32 -loleaut32 -luuid]) ])
2088     AC_LANG_POP(C++)
2089   fi
2090 fi
2091
2092 dnl
2093 dnl  Windows DirectShow BDA access module
2094 dnl
2095 AC_ARG_ENABLE(bda,
2096   AS_HELP_STRING([--enable-bda],[Win32 DirectShow BDA support (default
2097                   enabled on Win32)]))
2098 if test "${enable_bda}" != "no"
2099 then
2100   if test "${SYS}" = "mingw32"
2101   then
2102       AC_CHECK_HEADERS(dshow.h,
2103       [ VLC_ADD_PLUGIN([bda])
2104         VLC_ADD_CXXFLAGS([bda],[])
2105         VLC_ADD_LIBS([bda],[-lstrmiids -lole32 -loleaut32 -luuid]) ])
2106   fi
2107 fi
2108
2109
2110 dnl
2111 dnl  OpenCV wrapper and example filters
2112 dnl
2113 AC_ARG_ENABLE(opencv,
2114   [  --enable-opencv         OpenCV (computer vision) filter (default disabled)])
2115 if test "${enable_opencv}" = "yes" -a "${CXX}" != "";
2116 then
2117   AC_ARG_WITH(opencv-tree,
2118   [    --with-opencv-tree=PATH opencv tree for linking])
2119     if test "${SYS}" = "mingw32"
2120     then
2121       test -z "${with_opencv_tree}" && AC_MSG_ERROR([You have to specify --with-opencv-tree])
2122       AC_MSG_CHECKING(for opencv in ${with_opencv_tree})
2123       if test -f ${with_opencv_tree}/cv/include/cv.h -a -f ${with_opencv_tree}/cxcore/include/cxcore.h \
2124         -a -f ${with_opencv_tree}/cvaux/include/cvaux.h -a -f ${with_opencv_tree}/otherlibs/highgui/highgui.h
2125       then
2126         AC_MSG_RESULT(yes)
2127         VLC_ADD_PLUGIN([opencv_wrapper])
2128         VLC_ADD_LIBS([opencv_wrapper],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2129         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])
2130         AC_LANG_PUSH(C++)
2131         VLC_ADD_PLUGIN([opencv_example])
2132         VLC_ADD_LIBS([opencv_example],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2133         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])
2134         AC_LANG_POP(C++)
2135       else
2136         dnl  No opencv could be found, sorry
2137         AC_MSG_RESULT(no)
2138         AC_MSG_ERROR([cannot find opencv in ${with_opencv_tree}])
2139       fi
2140     else
2141       PKG_CHECK_MODULES(OPENCV, opencv,
2142         [
2143           VLC_ADD_PLUGIN([opencv_example])
2144           VLC_ADD_PLUGIN([opencv_wrapper])
2145           VLC_ADD_LIBS([opencv_example opencv_wrapper],[${OPENCV_LIBS}])
2146           VLC_ADD_CFLAGS([opencv_wrapper],[${OPENCV_CFLAGS}])
2147           VLC_ADD_CXXFLAGS([opencv_example],[${OPENCV_CFLAGS}])
2148         ],
2149         [AC_MSG_ERROR([libopencv not found!])]
2150       )
2151     fi
2152 fi
2153
2154
2155 dnl
2156 dnl  libsmbclient plugin
2157 dnl
2158 AC_ARG_ENABLE(smb,
2159   [  --enable-smb            smb input module (default enabled)])
2160 if test "${enable_smb}" != "no"; then
2161   AC_CHECK_HEADERS(libsmbclient.h,
2162     [ VLC_ADD_PLUGIN([access_smb])
2163       VLC_ADD_LIBS([access_smb],[-lsmbclient]) ],
2164     [ if test -n "${enable_smb}"; then
2165         AC_MSG_ERROR([cannot find libsmbclient headers])
2166      fi ])
2167 fi
2168
2169 dnl
2170 dnl  libdvbpsi ts demux/mux
2171 dnl
2172 AC_ARG_ENABLE(dvbpsi,
2173   [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
2174 have_dvbpsi=no
2175 if test "${enable_dvbpsi}" != "no"
2176 then
2177   AC_ARG_WITH(dvbpsi,
2178   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
2179   AC_ARG_WITH(dvbpsi,
2180   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
2181   case "${with_dvbpsi}" in
2182   ""|yes)
2183     if test -z "${with_dvbpsi_tree}"
2184     then
2185       AC_CHECK_HEADERS(dvbpsi/dr.h,
2186         [ VLC_ADD_PLUGIN([ts])
2187           if test "${enable_sout}" != "no"; then
2188             VLC_ADD_PLUGIN([mux_ts])
2189           fi
2190           VLC_ADD_LIBS([mux_ts ts dvb],[-ldvbpsi])
2191           have_dvbpsi=yes],
2192         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
2193         [#if defined( HAVE_STDINT_H )
2194 #   include <stdint.h>
2195 #elif defined( HAVE_INTTYPES_H )
2196 #   include <inttypes.h>
2197 #endif
2198 #include <dvbpsi/dvbpsi.h>
2199 #include <dvbpsi/descriptor.h>
2200 #include <dvbpsi/pat.h>
2201 #include <dvbpsi/pmt.h>])
2202     else
2203       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
2204       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
2205       if test -z "${real_dvbpsi_tree}"
2206       then
2207         dnl  The given directory can't be found
2208         AC_MSG_RESULT(no)
2209         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
2210       fi
2211       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
2212       then
2213         dnl  Use a custom libdvbpsi
2214         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
2215         VLC_ADD_PLUGIN([ts])
2216         if test "${enable_sout}" != "no"; then
2217           VLC_ADD_PLUGIN([mux_ts])
2218         fi
2219         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
2220         VLC_ADD_LIBS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
2221         have_dvbpsi=yes
2222       else
2223         dnl  The given libdvbpsi wasn't built
2224         AC_MSG_RESULT(no)
2225         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
2226       fi
2227     fi
2228   ;;
2229   no)
2230     dnl  Compile without dvbpsi
2231   ;;
2232   *)
2233     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
2234     if test -z "${with_dvbpsi}"
2235     then
2236       LDFLAGS_test=""
2237       CPPFLAGS_test=""
2238     else
2239       LDFLAGS_test="-L${with_dvbpsi}/lib"
2240       CPPFLAGS_test="-I${with_dvbpsi}/include"
2241     fi
2242     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
2243     AC_CHECK_HEADERS([dvbpsi/dr.h],[
2244       VLC_ADD_PLUGIN([ts])
2245       if test "${enable_sout}" != "no"; then
2246         VLC_ADD_PLUGIN([mux_ts])
2247       fi
2248       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
2249       VLC_ADD_LIBS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
2250       have_dvbpsi=yes
2251     ],[
2252       if test -n "${enable_dvbpsi}"
2253       then
2254         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])
2255       fi
2256     ])
2257     CPPFLAGS="${CPPFLAGS_save}"
2258   ;;
2259   esac
2260   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
2261     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
2262   ], [], [${LIBS_ts}])
2263
2264 fi
2265
2266 dnl
2267 dnl  Video4Linux plugin
2268 dnl
2269 AC_ARG_ENABLE(v4l,
2270   [  --enable-v4l            Video4Linux input support (default disabled)])
2271 if test "${enable_v4l}" = "yes"
2272 then
2273   AC_ARG_WITH(v4l,
2274     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
2275   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
2276   then
2277     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
2278   fi
2279
2280   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
2281   AC_CHECK_HEADERS(linux/videodev.h, [
2282     VLC_ADD_PLUGIN([v4l])
2283   ],[])
2284   CPPFLAGS="${CPPFLAGS_save}"
2285 fi
2286
2287 dnl
2288 dnl  Video4Linux2 plugin
2289 dnl
2290 AC_ARG_ENABLE(v4l2,
2291   [  --enable-v4l2           Video4Linux2 input support (default enabled)])
2292 if test "${enable_v4l2}" != "no"
2293 then
2294   AC_ARG_WITH(v4l2,
2295     [    --with-v4l2=PATH       path to a v4l2-enabled kernel tree],[],[])
2296   if test "${with_v4l2}" != "no" -a -n "${with_v4l2}"
2297   then
2298     VLC_ADD_CPPFLAGS([v4l2],[-I${with_v4l2}/include])
2299   fi
2300
2301   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l2}"
2302   AC_CHECK_HEADERS(linux/videodev2.h, [
2303     VLC_ADD_PLUGIN([v4l2])
2304   ],[])
2305   CPPFLAGS="${CPPFLAGS_save}"
2306 fi
2307
2308 dnl
2309 dnl libv4l2 support for video4linux.
2310 dnl
2311 AC_ARG_ENABLE( libv4l2,
2312   [  --enable-libv4l2        Libv4l2 Video4Linux2 support (default enabled)])
2313 if test "${enable_libv4l2}" != "no" -a "${enable_v4l2}" != "no"
2314 then
2315     PKG_CHECK_MODULES( LIBV4L2, libv4l2, [
2316       VLC_ADD_LDFLAGS([v4l2],[${LIBV4L2_LIBS}])
2317       VLC_ADD_CFLAGS([v4l2],[${LIBV4L2_CFLAGS}])
2318       AC_DEFINE(HAVE_LIBV4L2, 1, Define if libv4l is available)],
2319       AC_MSG_WARN([LibV4L2 support disabled because libv4l2 development headers were not found])
2320     )
2321 fi
2322
2323 dnl
2324 dnl  special access module for Hauppauge PVR cards
2325 dnl
2326 AC_ARG_ENABLE(pvr,
2327   [  --enable-pvr            PVR cards access module (default disabled)])
2328 if test "${enable_pvr}" = "yes"
2329 then
2330   VLC_ADD_PLUGIN([pvr])
2331   AC_ARG_WITH(videodev2,
2332     [  --with-videodev2=FILE   Location of videodev2.h file (default /usr/include/linux/videodev2.h)],[],[])
2333   if test "${with_videodev2}" != "no" -a -n "${with_videodev2}"
2334   then
2335     AC_DEFINE_UNQUOTED(VIDEODEV2_H_FILE, "${with_videodev2}", [Location of videodev2.h])
2336   fi
2337
2338   AC_CACHE_CHECK([for new linux/videodev2.h],
2339       [ac_cv_new_linux_videodev2_h],
2340       [AC_TRY_COMPILE([
2341           #include <sys/types.h>
2342           #   ifdef VIDEODEV2_H_FILE
2343           #   include VIDEODEV2_H_FILE
2344           #   else
2345           #   include <linux/videodev2.h>
2346           #   endif
2347           ],
2348           [struct v4l2_ext_controls ctrls; ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG; ],
2349           ac_cv_new_linux_videodev2_h=yes,
2350           ac_cv_new_linux_videodev2_h=no)])
2351   if test "${ac_cv_new_linux_videodev2_h}" != "no"; then
2352     AC_DEFINE(HAVE_NEW_LINUX_VIDEODEV2_H, 1, [Define if new linux/videodev2.h present])
2353   fi
2354 fi
2355
2356 dnl
2357 dnl  gnomeVFS access module
2358 dnl
2359 PKG_ENABLE_MODULES_VLC([GNOMEVFS], [access_gnomevfs], [gnome-vfs-2.0], [GnomeVFS access module], [auto])
2360
2361
2362 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
2363 AC_ARG_ENABLE(libcdio,
2364   [  --enable-libcdio        CD input and control library support (default enabled)])
2365
2366 AC_ARG_ENABLE(vcdinfo,
2367   [  --enable-libvcdinfo     VCD information library support (default enabled)])
2368
2369 have_libcdio=no
2370 have_libvcdinfo=no
2371 if test "${enable_libcdio}" != "no"
2372 then
2373   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.78.2,
2374      have_libcdio=yes
2375      AC_DEFINE(HAVE_LIBCDIO, 1,
2376      [Define if you have libcdio 0.78.2 or greater installed]),
2377      [AC_MSG_WARN(CD Reading and information library not found)])
2378
2379   if test "${enable_vcdinfo}" != "no"
2380   then
2381     PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.22,
2382        [have_libvcdinfo=yes
2383        AC_DEFINE(HAVE_VCDINFO, 1,
2384        [Define if you have libvcdinfo 0.7.22 or greater installed])],
2385        [AC_MSG_WARN(VCD information library not found)])
2386   fi
2387 fi
2388
2389 dnl
2390 dnl  VCDX and CDDAX modules
2391 dnl
2392 AC_ARG_ENABLE(cddax,
2393   AS_HELP_STRING([--enable-cddax],[audio CD plugin with CD Text and CD paranoia
2394                   via libcdio (default disabled)]))
2395
2396 AC_ARG_ENABLE(libcddb,
2397   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
2398
2399 if test "${enable_cddax}" = "yes"
2400 then
2401   if test "$have_libcdio" = "yes"
2402   then
2403     AC_DEFINE(HAVE_CDDAX, 1, [Define for the audio CD plugin using libcdio])
2404     VLC_ADD_LIBS([cddax],[$LIBCDIO_LIBS])
2405     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
2406     VLC_ADD_PLUGIN([cddax])
2407     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
2408     VLC_ADD_LIBS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
2409     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
2410   else
2411     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
2412     HAVE_CDDAX=no
2413   fi
2414
2415   if test "$enable_libcddb" != "no"; then
2416     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2417       HAVE_LIBCDDB=yes
2418       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2419       VLC_ADD_LIBS([cddax],[$LIBCDDB_LIBS])
2420       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
2421       ],
2422       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled)
2423       HAVE_LIBCDDB=no])
2424   fi
2425
2426 fi
2427
2428 AC_ARG_ENABLE(vcdx,
2429   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2430
2431 if test "${enable_vcdx}" = "yes"
2432 then
2433   if test "${have_libvcdinfo}" = "yes"
2434   then
2435     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2436     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2437   else
2438     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
2439     HAVE_VCDX=no
2440   fi
2441
2442   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
2443    [VLC_ADD_LIBS([vcdx],[$LIBISO9660_LIBS])
2444     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
2445     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
2446     HAVE_VCDX=no])
2447
2448   if test "$have_libvcdinfo" = "yes"
2449   then
2450     AC_DEFINE(HAVE_VCDX, 1,
2451     [Define for the VCD plugin using libcdio/libvcdinfo])
2452     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2453     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2454     VLC_ADD_PLUGIN([vcdx])
2455   else
2456     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
2457     HAVE_VCDX=no
2458   fi
2459 fi
2460
2461 dnl
2462 dnl  Built-in CD-DA and VCD module
2463 dnl
2464 AC_ARG_ENABLE(cdda,
2465   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
2466
2467 AC_ARG_ENABLE(vcd,
2468   [  --enable-vcd            built-in VCD (default enabled)])
2469
2470 if test "${enable_vcd}" != "no"
2471 then
2472   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2473   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2474     AC_MSG_RESULT(yes)
2475     VLC_ADD_PLUGIN([vcd])
2476     VLC_ADD_PLUGIN([cdda])
2477   ],[
2478     AC_MSG_RESULT(no)
2479   ])
2480
2481   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2482   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2483     AC_MSG_RESULT(yes)
2484     VLC_ADD_PLUGIN([vcd])
2485     VLC_ADD_PLUGIN([cdda])
2486     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2487   ],[
2488     AC_MSG_RESULT(no)
2489   ])
2490
2491   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2492   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2493     AC_MSG_RESULT(yes)
2494     VLC_ADD_PLUGIN([vcd])
2495     VLC_ADD_PLUGIN([cdda])
2496     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2497   ],[
2498     AC_MSG_RESULT(no)
2499   ])
2500
2501   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2502   then
2503     VLC_ADD_PLUGIN([vcd])
2504     VLC_ADD_PLUGIN([cdda])
2505   fi
2506
2507   if test "${SYS}" = "darwin"
2508   then
2509     VLC_ADD_PLUGIN([vcd])
2510     VLC_ADD_PLUGIN([cdda])
2511     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-Wl,-framework,IOKit,-framework,CoreFoundation])
2512     VLC_ADD_LIBS([vcdx cddax cdda],[-liconv])
2513   fi
2514
2515   if test "$enable_libcddb" != "no"; then
2516     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2517       HAVE_LIBCDDB=yes
2518       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2519       VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2520       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2521       ],:
2522       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled)
2523       HAVE_LIBCDDB=no])
2524   fi
2525 fi
2526
2527 dnl
2528 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2529 dnl
2530 AC_ARG_ENABLE(dvb,
2531   [  --enable-dvb            DVB-S/T/C card support (default enabled)])
2532
2533 if test "${enable_dvb}" != "no"
2534 then
2535     AS_IF([test "${have_dvbpsi}" = "yes" ],[
2536     AC_ARG_WITH(dvb,
2537      [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
2538      if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2539      then
2540        VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2541      fi
2542      CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2543      AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2544      VLC_ADD_PLUGIN([dvb])
2545      ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2546      CPPFLAGS="${CPPFLAGS_save}"
2547    ],[
2548      AC_MSG_WARN([the dvb access module requires libdvbpsi])
2549     ])
2550 fi
2551
2552 dnl
2553 dnl  Screen capture module
2554 dnl
2555 AC_ARG_ENABLE(screen,
2556   [  --enable-screen         Screen capture support (default enabled)])
2557 if test "${enable_screen}" != "no"; then
2558   if test "${SYS}" = "darwin"; then
2559     AC_CHECK_HEADERS(OpenGL/gl.h, [
2560       AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2561         VLC_ADD_PLUGIN([screen])
2562         VLC_ADD_LDFLAGS([screen],[-Wl,-framework,OpenGL,-framework,ApplicationServices])
2563       ])
2564     ])
2565   elif test "${SYS}" = "mingw32"; then
2566     VLC_ADD_PLUGIN([screen])
2567     VLC_ADD_LIBS([screen],[-lgdi32])
2568   elif test "${SYS}" = "mingwce"; then
2569     CPPFLAGS="${CPPFLAGS_save}"
2570   elif test "${SYS}" = "beos"; then
2571     VLC_ADD_PLUGIN([screen])
2572     VLC_ADD_CXXFLAGS([screen],[])
2573     VLC_ADD_LIBS([screen],[-lbe])
2574   fi
2575 fi
2576
2577 dnl
2578 dnl  ipv6 plugin - not for QNX yet
2579 dnl
2580 have_ipv6=no
2581 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2582   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2583 ])
2584
2585 AS_IF([test "${have_ipv6}" = "yes"], [
2586   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2587
2588
2589 AC_CHECK_FUNCS(inet_ntop,[
2590   AC_DEFINE(HAVE_INET_NTOP, 1, [Define to 1 if you have inet_ntop().])])
2591
2592
2593 dnl
2594 dnl  ogg demux plugin
2595 dnl
2596 PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto])
2597 if test "${enable_sout}" != "no"; then
2598     PKG_ENABLE_MODULES_VLC([MUX_OGG], [], [ogg >= 1.0], [Ogg demux support], [auto])
2599 else
2600     AM_CONDITIONAL(HAVE_MUX_OGG, 0)
2601 fi
2602
2603 if test "${enable_sout}" != "no"; then
2604 dnl Check for libshout
2605 PKG_ENABLE_MODULES_VLC([shout], [access_output_shout], [shout >= 2.1], [libshout output plugin], [auto])
2606 else
2607     AM_CONDITIONAL(HAVE_shout, 0)
2608 fi
2609
2610 dnl
2611 dnl  matroska demux plugin
2612 dnl
2613 AC_ARG_ENABLE(mkv,
2614   [  --enable-mkv            Matroska demux support (default enabled)])
2615 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2616   AC_LANG_PUSH(C++)
2617   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2618     AC_MSG_CHECKING(for libebml version >= 0.7.7)
2619     AC_EGREP_CPP(yes,
2620       [#include <ebml/EbmlVersion.h>
2621        #ifdef LIBEBML_VERSION
2622        #if LIBEBML_VERSION >= 0x000706
2623        yes
2624        #endif
2625        #endif],
2626       [AC_MSG_RESULT([yes])
2627         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2628           AC_MSG_CHECKING(for libmatroska version >= 0.8.0)
2629           AC_EGREP_CPP(yes,
2630             [#include <matroska/KaxVersion.h>
2631              #ifdef LIBMATROSKA_VERSION
2632              #if LIBMATROSKA_VERSION >= 0x000705
2633              yes
2634              #endif
2635              #endif],
2636             [AC_MSG_RESULT([yes])
2637               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2638               VLC_ADD_CXXFLAGS([mkv],[])
2639               if test "${SYS}" = "darwin"; then
2640                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2641               fi
2642               AC_CHECK_LIB(ebml_pic, main, [
2643                 VLC_ADD_PLUGIN([mkv])
2644                 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2645               ],
2646                 AC_CHECK_LIB(ebml, main, [
2647                   VLC_ADD_PLUGIN([mkv])
2648                   VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2649                 ])
2650               )
2651             ],
2652             [AC_MSG_RESULT([no])
2653               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.])
2654           ])
2655         ])
2656       ],
2657       [AC_MSG_RESULT([no])
2658         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.])
2659     ])
2660   ])
2661   AC_LANG_POP(C++)
2662 fi
2663
2664 dnl
2665 dnl  modplug demux plugin
2666 dnl
2667 AC_ARG_ENABLE(mod,
2668   [  --enable-mod            Mod demux support (default enabled)])
2669 if test "${enable_mod}" != "no"
2670 then
2671   AC_ARG_WITH(mod-tree,
2672   [    --with-mod-tree=PATH mod tree for static linking])
2673   if test -n "${with_mod_tree}"
2674   then
2675     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2676     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2677     if test -z "${real_mod_tree}"
2678     then
2679       dnl  The given directory can't be found
2680       AC_MSG_RESULT(no)
2681       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2682     fi
2683     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2684     then
2685       dnl  Use a custom mod
2686       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2687       VLC_ADD_PLUGIN([mod])
2688       VLC_ADD_LIBS([mod],[${real_mod_tree}/src/.libs/libmodplug.a -lstdc++])
2689       VLC_ADD_CXXFLAGS([mod],[-I${real_mod_tree}/include])
2690     else
2691       dnl  The given mod wasn't built
2692       AC_MSG_RESULT(no)
2693       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2694     fi
2695   else
2696     AC_CHECK_HEADERS(libmodplug/modplug.h, [
2697       VLC_ADD_PLUGIN([mod])
2698       VLC_ADD_CXXFLAGS([mod],[])
2699       VLC_ADD_LIBS([mod],[-lmodplug -lstdc++])])
2700   fi
2701 fi
2702
2703 dnl
2704 dnl  mpc demux plugin
2705 dnl
2706 AC_ARG_ENABLE(mpc,
2707   [  --enable-mpc            Mpc demux support (default enabled)])
2708 if test "${enable_mpc}" != "no"
2709 then
2710   AC_CHECK_HEADERS([mpc/mpcdec.h], [
2711     VLC_ADD_PLUGIN([mpc])
2712     VLC_ADD_LIBS([mpc],[-lmpcdec])],
2713     [AC_CHECK_HEADERS([mpcdec/mpcdec.h], [
2714     VLC_ADD_PLUGIN([mpc])
2715     VLC_ADD_LIBS([mpc],[-lmpcdec])])])
2716 fi
2717
2718 dnl
2719 dnl  game music emu demux plugin
2720 dnl
2721 AC_ARG_ENABLE(gme,
2722   [  --enable-gme            Game Music Emu demux support (default enabled)])
2723 if test "${enable_gme}" != "no" -a "${CXX}" != "";
2724 then
2725   AC_LANG_PUSH(C++)
2726   AC_ARG_WITH(gme-tree,
2727   [    --with-gme-tree=PATH gme tree for static linking])
2728   if test -n "${with_gme_tree}"
2729   then
2730     AC_MSG_CHECKING(for libgme.a in ${with_mod_tree})
2731     real_gme_tree="`cd ${with_gme_tree} 2>/dev/null && pwd`"
2732     if test -z "${real_gme_tree}"
2733     then
2734       dnl  The given directory can't be found
2735       AC_MSG_RESULT(no)
2736       AC_MSG_ERROR([cannot cd to ${with_gme_tree}])
2737     fi
2738     if test -f "${real_gme_tree}/gme/libgme.a"
2739     then
2740       dnl  Use a custom gme
2741       AC_MSG_RESULT(${real_gme_tree}/gme/libgme.a)
2742       VLC_ADD_PLUGIN([gme])
2743       VLC_ADD_LIBS([gme],[${real_gme_tree}/gme/libgme.a])
2744       VLC_ADD_CXXFLAGS([gme],[-I${real_gme_tree}/gme])
2745     else
2746       dnl  The given gme wasn't built
2747       AC_MSG_RESULT(no)
2748       AC_MSG_ERROR([cannot find ${real_mod_tree}/gme/libgme.a, make sure you compiled gme in ${with_gme_tree}])
2749     fi
2750   else
2751       AC_MSG_WARN([only static linking is available, you must provide a gme-tree])
2752   fi
2753   AC_LANG_POP(C++)
2754 fi
2755
2756 dnl
2757 dnl  Codec plugins
2758 dnl
2759
2760 AC_ARG_WITH(,[Codec plugins:])
2761
2762 dnl
2763 dnl wmafixed plugin
2764 dnl
2765 AC_ARG_ENABLE(wma-fixed,
2766   [  --enable-wma-fixed      libwma-fixed module (default disabled)])
2767 if test "${enable_wma_fixed}" = "yes"
2768 then
2769   VLC_ADD_PLUGIN([wma_fixed])
2770 fi
2771
2772 dnl
2773 dnl shine fixed point mp3 encoder
2774 dnl
2775 AC_ARG_ENABLE(shine,
2776   [  --enable-shine          shine mp3 encoding module (default disabled)])
2777 if test "${enable_shine}" = "yes"
2778 then
2779   VLC_ADD_PLUGIN([shine])
2780 fi
2781
2782 dnl
2783 dnl  mad plugin
2784 dnl
2785 AC_ARG_ENABLE(mad,
2786   [  --enable-mad            libmad module (default enabled)])
2787 if test "${enable_mad}" != "no"
2788 then
2789   AC_ARG_WITH(mad,
2790     [    --with-mad=PATH       path to libmad],[],[])
2791   if test "${with_mad}" != "no" -a -n "${with_mad}"
2792   then
2793     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2794     VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2795   fi
2796
2797   AC_ARG_WITH(mad-tree,
2798     [    --with-mad-tree=PATH   mad tree for static linking],[],[])
2799   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2800   then
2801     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2802     if test -z "${real_mad_tree}"
2803     then
2804       dnl  The given directory can't be found
2805       AC_MSG_RESULT(no)
2806       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2807     fi
2808     dnl  Use a custom libmad
2809     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2810     if test -f ${real_mad_tree}/mad.h
2811     then
2812       AC_MSG_RESULT(yes)
2813       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2814       VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2815       LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2816       AC_CHECK_LIB(mad, mad_bit_init, [
2817         VLC_ADD_PLUGIN([mpgatofixed32])
2818         VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2819         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2820       ],[])
2821       LDFLAGS="${LDFLAGS_save}"
2822     else
2823       AC_MSG_RESULT(no)
2824       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2825     fi
2826   else
2827     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2828     LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2829     AC_CHECK_HEADERS(mad.h, ,
2830       [ 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.]) ])
2831     AC_CHECK_LIB(mad, mad_bit_init, [
2832       VLC_ADD_PLUGIN([mpgatofixed32])
2833       VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2834       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2835     CPPFLAGS="${CPPFLAGS_save}"
2836     LDFLAGS="${LDFLAGS_save}"
2837   fi
2838 fi
2839
2840 dnl
2841 dnl   libid3tag support (FIXME!!! doesn't work with new input)
2842 dnl
2843 AC_ARG_ENABLE( id3tag,
2844 [  --disable-id3tag        id3tag metadata reader plugin (default disabled)])
2845 AS_IF([test "${enable_id3tag}" = "yes"], [
2846   AC_CHECK_HEADERS(id3tag.h, [
2847       AS_IF([test "${have_zlib}" = "yes"],[
2848           VLC_ADD_LIBS([id3tag],[-lid3tag -lz])
2849           VLC_ADD_PLUGIN([id3tag])
2850        ])
2851     ])
2852 ])
2853
2854 dnl
2855 dnl  avcodec decoder/encoder plugin
2856 dnl
2857
2858 if test "${with_ffmpeg_tree}"
2859 then
2860   AC_MSG_WARN([--with-ffmpeg-tree is deprecated. Use PKG_CONFIG_PATH instead.])
2861 fi
2862
2863 AC_ARG_ENABLE(avcodec,
2864 [  --enable-avcodec        libavcodec codec (default enabled)])
2865 if test "${enable_avcodec}" != "no"
2866 then
2867   PKG_CHECK_MODULES(AVCODEC,[libavcodec >= 51.48.0 libavutil],
2868     [
2869       VLC_SAVE_FLAGS
2870       CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2871       CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2872       AC_CHECK_HEADERS(libavcodec/avcodec.h ffmpeg/avcodec.h)
2873       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
2874       VLC_ADD_PLUGIN([avcodec])
2875       VLC_ADD_LIBS([avcodec],[$AVCODEC_LIBS])
2876       VLC_ADD_CFLAGS([avcodec],[$AVCODEC_CFLAGS])
2877       VLC_RESTORE_FLAGS
2878       have_avcodec="yes"
2879     ],[
2880       AC_MSG_ERROR([Could not find libavcodec or libavutil. Use --disable-avcodec to ignore this error.])
2881   ])
2882 fi
2883
2884 dnl
2885 dnl stream_out switcher needs libavcodec
2886 dnl
2887 AC_ARG_ENABLE(switcher,
2888   [  --enable-switcher       Stream-out switcher plugin (default disabled)])
2889 AS_IF([test "${enable_switcher}" = "yes"], [
2890   AS_IF([test "x${have_avcodec}" = "xyes"], [
2891     VLC_ADD_PLUGIN([stream_out_switcher])
2892     VLC_ADD_LIBS([stream_out_switcher],[$AVCODEC_LIBS $AVUTIL_LIBS])
2893     VLC_ADD_CFLAGS([stream_out_switcher],[$AVCODEC_CFLAGS $AVUTIL_CFLAGS])
2894   ],[AC_MSG_ERROR([Stream_out switcher depends on avcodec])
2895   ])
2896 ])
2897
2898
2899 dnl
2900 dnl  avformat demuxer/muxer plugin
2901 dnl
2902
2903 AC_ARG_ENABLE(avformat,
2904 [  --enable-avformat       libavformat containers (default enabled)])
2905 if test "${enable_avformat}" != "no"
2906 then
2907   PKG_CHECK_MODULES(AVFORMAT,[libavformat libavutil],
2908     [
2909       VLC_SAVE_FLAGS
2910       CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2911       CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2912       AC_CHECK_HEADERS(libavformat/avformat.h ffmpeg/avformat.h)
2913       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
2914       VLC_ADD_PLUGIN([avformat])
2915       VLC_ADD_LIBS([avformat],[$AVFORMAT_LIBS $AVUTIL_LIBS])
2916       VLC_ADD_CFLAGS([avformat],[$AVFORMAT_CFLAGS $AVUTIL_CFLAGS])
2917       VLC_RESTORE_FLAGS
2918     ],[
2919       AC_MSG_ERROR([Could not find libavformat or libavutil. Use --disable-avformat to ignore this error.])
2920   ])
2921 fi
2922
2923 dnl
2924 dnl  swscale image scaling and conversion plugin
2925 dnl
2926
2927 AC_ARG_ENABLE(swscale,
2928   AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
2929                   (default enabled)]))
2930 if test "${enable_swscale}" != "no"
2931 then
2932   PKG_CHECK_MODULES(SWSCALE,[libswscale],
2933     [
2934       VLC_SAVE_FLAGS
2935       CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
2936       CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
2937       AC_CHECK_HEADERS(libswscale/swscale.h ffmpeg/swscale.h)
2938       VLC_ADD_PLUGIN([swscale])
2939       VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
2940       VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
2941       VLC_RESTORE_FLAGS
2942     ],[
2943       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.])
2944   ])
2945 fi
2946
2947 dnl
2948 dnl  postproc plugin
2949 dnl
2950
2951 AC_ARG_ENABLE(postproc,
2952 [  --enable-postproc       libpostproc image post-processing (default enabled)])
2953 if test "${enable_postproc}" != "no"
2954 then
2955   PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
2956     [
2957       VLC_SAVE_FLAGS
2958       CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
2959       CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
2960       AC_CHECK_HEADERS(libpostproc/postproc.h postproc/postprocess.h)
2961       VLC_ADD_PLUGIN([postproc])
2962       VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS $AVUTIL_LIBS])
2963       VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS $AVUTIL_CFLAGS])
2964       VLC_RESTORE_FLAGS
2965     ],[
2966       AC_MSG_ERROR([Could not find libpostproc. Use --disable-postproc to ignore this error.])
2967   ])
2968 fi
2969
2970 dnl
2971 dnl  faad decoder plugin
2972 dnl
2973 AC_ARG_ENABLE(faad,
2974 [  --enable-faad           faad codec (default disabled)])
2975 if test "${enable_faad}" = "yes"
2976 then
2977   AC_ARG_WITH(faad-tree,
2978   [    --with-faad-tree=PATH faad tree for static linking])
2979   if test -n "${with_faad_tree}"
2980   then
2981     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
2982     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
2983     if test -z "${real_faad_tree}"
2984     then
2985       dnl  The given directory can't be found
2986       AC_MSG_RESULT(no)
2987       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
2988     fi
2989     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
2990     then
2991       dnl  Use a custom faad
2992       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
2993       VLC_ADD_PLUGIN([faad])
2994       VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
2995       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
2996     else
2997       dnl  The given libfaad wasn't built
2998       AC_MSG_RESULT(no)
2999       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
3000     fi
3001   else
3002     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
3003     LDFLAGS="${LDFLAGS_save} ${LIBS_faad}"
3004     AC_CHECK_HEADERS(faad.h, ,
3005       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
3006     AC_CHECK_LIB(faad, faacDecOpen, [
3007       VLC_ADD_PLUGIN([faad])
3008       VLC_ADD_LIBS([faad],[-lfaad]) ],
3009       AC_CHECK_LIB(faad, NeAACDecOpen, [
3010         VLC_ADD_PLUGIN([faad])
3011         VLC_ADD_LIBS([faad],[-lfaad]) ],
3012         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
3013     LDFLAGS="${LDFLAGS_save}"
3014     CPPFLAGS="${CPPFLAGS_save}"
3015   fi
3016 fi
3017
3018 dnl
3019 dnl twolame encoder plugin
3020 dnl
3021 PKG_ENABLE_MODULES_VLC([twolame], [], [twolame], [MPEG Audio Layer 2 encoder], [auto], [], [], [ -DLIBTWOLAME_STATIC])
3022
3023 dnl
3024 dnl  QuickTime plugin
3025 dnl
3026 AC_ARG_ENABLE(quicktime,
3027   [  --enable-quicktime      QuickTime module (deprecated)])
3028 if test "${enable_quicktime}" = "yes"; then
3029   if test "${SYS}" = "mingw32"; then
3030     VLC_ADD_PLUGIN([quicktime])
3031   else
3032   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
3033     [ VLC_ADD_PLUGIN([quicktime])
3034       VLC_ADD_LDFLAGS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
3035     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
3036   fi
3037 fi
3038
3039 dnl
3040 dnl  Real plugin
3041 dnl
3042 AC_ARG_ENABLE(real,
3043   [  --enable-real           Real media module (default disabled)])
3044 if test "${enable_real}" = "yes"; then
3045   VLC_ADD_PLUGIN([realaudio])
3046   VLC_ADD_PLUGIN([realvideo])
3047 fi
3048
3049 dnl
3050 dnl  Real RTSP plugin
3051 dnl
3052 AC_ARG_ENABLE(realrtsp,
3053   [  --enable-realrtsp       Real RTSP module (default disabled)])
3054 if test "${enable_realrtsp}" = "yes"; then
3055   VLC_ADD_PLUGIN([access_realrtsp])
3056 fi
3057
3058 AC_ARG_ENABLE(libsysfs,
3059   [  --enable-libsysfs       Get user key from firewire connected iPod via libsysfs (default enabled)])
3060
3061 AS_IF([test "${enable_libsysfs}" != "no"],[
3062   AC_CHECK_HEADERS(sysfs/libsysfs.h, [
3063     VLC_ADD_LIBS([mp4 mkv],[-lsysfs])
3064   ] )
3065 ])
3066
3067 dnl
3068 dnl skins2 module
3069 dnl
3070 AC_ARG_ENABLE(libtar,
3071   [  --enable-libtar         libtar support for skins2 (default enabled)])
3072
3073 AS_IF([test "${enable_libtar}" != "no"],[
3074   AC_CHECK_HEADERS(libtar.h, [
3075     VLC_ADD_LIBS([skins2],[-ltar])
3076   ] )
3077 ])
3078
3079 dnl
3080 dnl A52/AC3 decoder plugin
3081 dnl
3082 AC_ARG_ENABLE(a52,
3083   [  --enable-a52            A/52 support with liba52 (default enabled)])
3084 if test "${enable_a52}" != "no"
3085 then
3086   AC_ARG_WITH(a52,
3087     [    --with-a52=PATH       a52 headers and libraries])
3088   AC_ARG_WITH(a52-tree,
3089     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
3090   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
3091   then
3092     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
3093     if test -z "${real_a52_tree}"
3094     then
3095       dnl  The given directory can't be found
3096       AC_MSG_RESULT(no)
3097       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
3098     fi
3099     dnl  Use a custom a52dec
3100     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
3101     if test -f ${real_a52_tree}/include/a52.h
3102     then
3103       AC_MSG_RESULT(yes)
3104       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
3105       VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
3106       LDFLAGS="${LDFLAGS_save} ${LIBS_a52tofloat32}"
3107       AC_CHECK_LIB(a52, a52_free, [
3108         VLC_ADD_PLUGIN([a52tofloat32])
3109         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
3110         VLC_ADD_LIBS([a52tofloat32],[-la52])
3111         ],[
3112         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
3113         then
3114           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
3115         else
3116           AC_MSG_ERROR([the specified tree hasn't been compiled])
3117         fi
3118       ])
3119       LDFLAGS="${LDFLAGS_save}"
3120     else
3121       AC_MSG_RESULT(no)
3122       AC_MSG_ERROR([the specified tree doesn't have a52.h])
3123     fi
3124   else
3125     if test -z "${with_a52}"
3126     then
3127       LDFLAGS_test=""
3128       CPPFLAGS_test=""
3129     else
3130       LDFLAGS_test="-L${with_a52}/lib"
3131       CPPFLAGS_test="-I${with_a52}/include"
3132     fi
3133     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
3134     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
3135     AC_CHECK_HEADERS(a52dec/a52.h, [
3136       AC_CHECK_LIB(a52, a52_free, [
3137         VLC_ADD_PLUGIN([a52tofloat32])
3138         VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
3139         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
3140       ],[
3141         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.])
3142         ])
3143     ],[
3144       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.])
3145     ])
3146     CPPFLAGS="${CPPFLAGS_save}"
3147     LDFLAGS="${LDFLAGS_save}"
3148   fi
3149 fi
3150
3151 AC_ARG_WITH(a52-fixed,
3152       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
3153       [
3154         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
3155
3156 dnl
3157 dnl DTS Coherent Acoustics decoder plugin
3158 dnl
3159 AS_IF([test "x${enable_dts}" != "x"], [
3160   AC_MSG_ERROR([--enable-dts is obsolete. Please use libdca and --enable-dca.])
3161 ])
3162 PKG_ENABLE_MODULES_VLC([DCA], [dtstofloat32], [libdca >= 0.0.5], [DTS Coherent Acoustics support with libdca], [auto])
3163
3164 dnl
3165 dnl  Flac plugin
3166 dnl
3167 PKG_ENABLE_MODULES_VLC([FLAC], [], [flac], [libflac decoder/encoder support], [auto])
3168
3169 dnl
3170 dnl  Libmpeg2 plugin
3171 dnl
3172 PKG_ENABLE_MODULES_VLC([LIBMPEG2], [], [libmpeg2 > 0.3.2], [libmpeg2 decoder support], [auto])
3173
3174 dnl
3175 dnl  Vorbis plugin
3176 dnl
3177 PKG_ENABLE_MODULES_VLC([VORBIS], [], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
3178
3179 dnl
3180 dnl  Tremor plugin
3181 dnl
3182 AC_ARG_ENABLE(tremor,
3183   [  --enable-tremor         Tremor decoder support (default disabled)])
3184 if test "${enable_tremor}" = "yes"
3185 then
3186   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3187     VLC_ADD_PLUGIN([tremor])
3188     VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
3189    ],[])
3190 fi
3191
3192 dnl
3193 dnl  Speex plugin
3194 dnl
3195 PKG_ENABLE_MODULES_VLC([SPEEX], [], [ogg speex >= 1.0.5], [Speex decoder support], [auto])
3196
3197 dnl
3198 dnl  tarkin decoder plugin
3199 dnl
3200 AC_ARG_ENABLE(tarkin,
3201 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3202 if test "${enable_tarkin}" = "yes"
3203 then
3204   AC_ARG_WITH(tarkin-tree,
3205   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3206   if test -n "${with_tarkin_tree}"
3207   then
3208     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3209     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3210     if test -f "${real_tarkin_tree}/tarkin.o"
3211     then
3212       VLC_ADD_PLUGIN([tarkin])
3213       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3214       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])
3215       AC_MSG_RESULT(yes)
3216     else
3217       dnl  The given tarkin tree wasn't built
3218       AC_MSG_RESULT(no)
3219       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3220                     make sure you compiled tarkin in ${with_tarkin_tree}])
3221     fi
3222   fi
3223 fi
3224
3225 dnl
3226 dnl  theora decoder plugin
3227 dnl
3228 PKG_ENABLE_MODULES_VLC([THEORA], [], [ogg theora >= 1.0], [experimental theora codec], [auto])
3229
3230 dnl
3231 dnl  dirac encoder plugin
3232 dnl
3233 PKG_ENABLE_MODULES_VLC([DIRAC], [], [dirac >= 0.10.0], [dirac encoder], [auto])
3234
3235 dnl
3236 dnl  schroedinger decoder plugin (for dirac format video)
3237 dnl
3238 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [], [schroedinger-1.0 >= 1.0.6], [dirac decoder using schroedinger], [auto])
3239
3240 dnl
3241 dnl  PNG decoder module
3242 dnl
3243 AC_ARG_ENABLE(png,
3244   [  --enable-png            PNG support (default enabled)])
3245 if test "${enable_png}" != "no"; then
3246 AC_CHECK_HEADERS(png.h, [
3247   LDFLAGS="${LDFLAGS_save} -lz"
3248   AC_CHECK_LIB(png, png_set_rows, [
3249     VLC_ADD_LIBS([png],[-lpng -lz])
3250     VLC_ADD_PLUGIN([png])
3251     VLC_ADD_PLUGIN([osdmenu])
3252     VLC_ADD_PLUGIN([osd_parser])
3253     AC_DEFINE(HAVE_LIBPNG, 1, [Define if you have the PNG library: libpng])],
3254     [],[-lz])
3255     LDFLAGS="${LDFLAGS_save}"
3256   ])
3257 fi
3258 AM_CONDITIONAL(BUILD_OSDMENU, [test "${enable_png}" != "no"])
3259
3260 dnl
3261 dnl H264 encoder plugin (using libx264)
3262 dnl
3263 AC_ARG_ENABLE(x264,
3264   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3265 if test "${enable_x264}" != "no"; then
3266   AC_ARG_WITH(x264-tree,
3267     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3268   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3269   then
3270     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3271     if test -z "${real_x264_tree}"
3272     then
3273       dnl  The given directory can't be found
3274       AC_MSG_RESULT(no)
3275       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3276     fi
3277     dnl  Use a custom libx264
3278     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3279     if test -f ${real_x264_tree}/x264.h
3280     then
3281       AC_MSG_RESULT(yes)
3282       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3283       VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
3284       PKG_CHECK_MODULES(X264,x264, [
3285         VLC_ADD_PLUGIN([x264])
3286         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3287         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3288         if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3289           VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3290         fi
3291       ],[
3292         AC_MSG_ERROR([the specified tree hasn't been compiled])
3293       ])
3294       LDFLAGS="${LDFLAGS_save}"
3295     else
3296       AC_MSG_RESULT(no)
3297       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3298     fi
3299   else
3300       PKG_CHECK_MODULES(X264,x264, [
3301         VLC_ADD_PLUGIN([x264])
3302         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3303
3304         AC_CACHE_CHECK([if linker supports -Bsymbolic],
3305           [ac_cv_ld_bsymbolic],
3306           [LDFLAGS="${LDFLAGS_vlc} -Wl,-Bsymbolic"
3307             AC_TRY_LINK([],,ac_cv_ld_bsymbolic=yes,ac_cv_ld_bsymbolic=no)
3308             LDFLAGS="${LDFLAGS_save}"
3309           ])
3310         AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
3311           VLC_ADD_LDFLAGS([x264],[-Wl,-Bsymbolic])
3312         ])
3313
3314         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3315         if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3316           VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3317         fi
3318       ],[
3319         if test "${enable_x264}" = "yes"; then
3320             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
3321           fi
3322       ])
3323     LDFLAGS="${LDFLAGS_save}"
3324   fi
3325 fi
3326
3327 dnl
3328 dnl libfluidsynth (MIDI synthetizer) plugin
3329 dnl
3330 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [], [fluidsynth], [MIDI synthetiser with libfluidsynth], [auto])
3331
3332 dnl
3333 dnl Teletext Modules
3334 dnl vbi decoder plugin (using libzbvi)
3335 dnl telx module
3336 dnl uncompatible
3337 dnl
3338 AC_ARG_ENABLE(zvbi,
3339   AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
3340                   libzvbi (default enabled)]))
3341 AC_ARG_ENABLE(telx,
3342   AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
3343                   zvbi) (default enabled if zvbi is absent)]))
3344
3345 AS_IF( [test "${enable_zvbi}" != "no"],[
3346     PKG_CHECK_MODULES(ZVBI,
3347         zvbi-0.2 >= 0.2.25,
3348         [
3349           VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
3350           if test "${SYS}" = "mingw32"; then
3351               VLC_ADD_LIBS([zvbi],[ -lpthreadGC2])
3352           fi
3353           VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
3354           VLC_ADD_PLUGIN([zvbi])
3355           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
3356           AS_IF( [test "${enable_telx}" = "yes"],[
3357                   AC_MSG_WARN([The zvbi and telx modules are uncompatibles.
3358                                Using zvbi.])
3359                   ])
3360         ],[
3361           AC_MSG_WARN(ZVBI library not found. Enabling the telx module instead)
3362         ])
3363     ])
3364 AS_IF( [test "${enable_telx}" != "no" ],[
3365   VLC_ADD_PLUGIN([telx])
3366   ])
3367
3368 dnl
3369 dnl libass subtitle rendering module
3370 dnl
3371 AC_ARG_ENABLE(libass,
3372   [  --enable-libass         Subtitle support using libass (default disabled)])
3373 AS_IF( [test "${enable_libass}" = "yes"], [
3374   PKG_CHECK_MODULES(LIBASS, libass >= 0.9.6,
3375       [
3376         VLC_ADD_LDFLAGS([libass],[$LIBASS_LIBS])
3377         VLC_ADD_CFLAGS([libass],[$LIBASS_CFLAGS])
3378         VLC_ADD_PLUGIN([libass])
3379
3380         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
3381           [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
3382         if test "${SYS}" = "mingw32"; then
3383            VLC_ADD_LIBS([libass],[-lfontconfig -lfreetype -liconv -lz])
3384         else
3385            VLC_ADD_LIBS([libass],[-lfontconfig])
3386         fi
3387        ])
3388       ],[
3389         AC_MSG_WARN([LIBASS library not found])
3390       ])
3391   ])
3392
3393 dnl
3394 dnl asa demuxer
3395 dnl
3396 AC_ARG_ENABLE(asademux,
3397   [  --enable-asademux       asa subtitle demuxing (default disabled)])
3398 AS_IF( [test "${enable_asademux}" = "yes"], [
3399   PKG_CHECK_MODULES(PCRE,
3400       libpcre >= 6.5,
3401       [
3402         VLC_ADD_LDFLAGS([asademux],[$PCRE_LIBS])
3403         VLC_ADD_CFLAGS([asademux],[$PCRE_CFLAGS])
3404         if test "${SYS}" = "mingw32"; then
3405             VLC_ADD_CPPFLAGS([asademux],[-DPCRE_STATIC])
3406         fi
3407         VLC_ADD_PLUGIN([asademux])
3408       ],[
3409         AC_MSG_WARN([PCRE library not found (required for asademux)])
3410       ])
3411   ])
3412
3413 dnl
3414 dnl  CMML plugin
3415 dnl
3416 AC_ARG_ENABLE(cmml,
3417   [  --enable-cmml           CMML support (default enabled)])
3418 if test "${enable_cmml}" != "no"
3419 then
3420   VLC_ADD_PLUGIN([cmml])
3421 fi
3422
3423 dnl
3424 dnl  kate decoder plugin
3425 dnl
3426 AC_ARG_ENABLE(kate,
3427 [  --enable-kate           kate codec (default enabled)])
3428 AS_IF([test "${enable_kate}" != "no"], [
3429   PKG_CHECK_MODULES(KATE,[kate >= 0.1.5], [
3430       VLC_ADD_PLUGIN([kate])
3431       VLC_ADD_CFLAGS([kate],[$KATE_CFLAGS])
3432       VLC_ADD_LIBS([kate],[$KATE_LIBS]) ],[
3433         AC_CHECK_HEADERS(kate/kate.h, [
3434           AC_CHECK_LIB(kate, kate_decode_init, [
3435             VLC_ADD_PLUGIN([kate])
3436             kate_libs="-lkate -logg"
3437             VLC_ADD_LDFLAGS([kate],[${kate_libs}]) ],[
3438             AS_IF([test "x${enable_kate}" != "x"], [
3439               AC_MSG_ERROR([libkate doesn't appear to be installed on your system.
3440               You also need to check that you have a libogg posterior to the 1.0 release.])
3441             ])
3442           ], [-lkate -logg])
3443         ],[
3444           AS_IF([test "x${enable_kate}" != "x"], [
3445             AC_MSG_ERROR([libkate headers do not appear to be installed on your system.
3446             You also need to check that you have a libogg posterior to the 1.0 release.])
3447           ])
3448         ])
3449   ])
3450 ])
3451
3452
3453 dnl
3454 dnl  tiger decoder plugin
3455 dnl
3456 PKG_ENABLE_MODULES_VLC([TIGER], [], [tiger >= 0.3.1], [Tiger rendering library for Kate streams],[auto])
3457
3458
3459 dnl
3460 dnl  Video plugins
3461 dnl
3462
3463 AC_ARG_WITH(,[Video plugins:])
3464
3465 dnl
3466 dnl  Xlib
3467 dnl
3468
3469 AC_PATH_XTRA()
3470 AC_ARG_ENABLE(x11,
3471   [  --enable-x11            X11 support with Xlib (default enabled)],, [
3472   AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"], [
3473     enable_x11="yes"
3474   ], [
3475     enable_x11="no"
3476   ])
3477 ])
3478
3479 CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3480
3481 AS_IF([test "${enable_x11}" != "no"], [
3482   AC_CHECK_HEADERS(X11/Xlib.h)
3483
3484 dnl Check for DPMS
3485   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
3486     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
3487     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
3488       AC_MSG_RESULT(yes)
3489       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
3490                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
3491     ],[
3492       AC_MSG_RESULT(no)
3493     ])
3494   ],,[
3495     #include <X11/Xlib.h>
3496   ])
3497 ])
3498
3499 dnl
3500 dnl  GLX module
3501 dnl  (enabled by default except on win32)
3502 dnl
3503 AC_ARG_ENABLE(glx,
3504   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)],, [
3505   enable_glx="$enable_x11"
3506 ])
3507 AS_IF([test "${enable_glx}" != "no"], [
3508   AC_CHECK_HEADERS(X11/Xlib.h GL/glu.h GL/glx.h)
3509   AC_COMPILE_IFELSE(AC_LANG_PROGRAM(
3510     [[#if !defined(HAVE_X11_XLIB_H) || !defined(HAVE_GL_GLU_H) || !defined(HAVE_GL_GLX_H)
3511     choke me
3512     #endif]]),
3513     [
3514       VLC_ADD_PLUGIN([glx])
3515       VLC_ADD_LIBS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU])
3516       VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}])
3517     ],[AC_MSG_ERROR([Please install GL development package. Alternatively you can also configure with --disable-glx.])])
3518 ])
3519
3520 dnl
3521 dnl  XVMC module
3522 dnl  (disabled by default except on win32)
3523 dnl
3524 AC_ARG_ENABLE(xvmc,
3525   [  --enable-xvmc           XvMC support (default disabled)],, [
3526   enable_xvmc="no"
3527 ])
3528 AS_IF([test "${enable_xvmc}" != "no"], [
3529   AC_CHECK_HEADERS(X11/extensions/vldXvMC.h, [
3530     VLC_ADD_PLUGIN([xvmc])
3531     VLC_ADD_LIBS([xvmc],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXvMCW -lXv ${LIBMPEG2_LIBS}])
3532     VLC_ADD_CPPFLAGS([xvmc],[${X_CFLAGS} ${LIBMPEG2_CFLAGS}])
3533   ], [
3534     AC_MSG_ERROR([XVideo-MotionCompensation extension not found!])
3535   ])
3536 ])
3537
3538 dnl End of Xlib tests
3539 CPPFLAGS="${CPPFLAGS_save}"
3540
3541
3542 dnl
3543 dnl  X C Bindings modules
3544 dnl
3545 AC_ARG_ENABLE(xcb,
3546   [  --enable-xcb            X11 support with XCB (default enabled)],, [
3547   AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"], [
3548     enable_xcb="yes"
3549   ], [
3550     enable_xcb="no"
3551   ])
3552 ])
3553 AC_ARG_ENABLE(xvideo,
3554   [  --enable-xvideo         XVideo support (default enabled)],, [
3555     enable_xvideo="$enable_xcb"
3556 ])
3557
3558 AS_IF([test "${enable_xcb}" != "no"], [
3559   PKG_CHECK_MODULES(XPROTO, [xproto])
3560
3561   dnl libxcb
3562   PKG_CHECK_MODULES(XCB, [xcb])
3563   PKG_CHECK_MODULES(XCB_SHM, [xcb-shm])
3564   VLC_ADD_PLUGIN([xcb_x11])
3565   VLC_ADD_PLUGIN([xcb_screen])
3566   VLC_SET_CFLAGS_WERROR([xcb_screen], [-Wno-error=uninitialized]) # some gcc report a warning which doesn't reveal an error
3567
3568   AS_IF([test "${enable_xvideo}" != "no"], [
3569     PKG_CHECK_MODULES(XCB_XV, [xcb-xv >= 1.1.90.1], [
3570       VLC_ADD_PLUGIN([xcb_xv])
3571     ], [
3572       PKG_CHECK_MODULES(XCB_XV, [xcb-xv], [
3573         VLC_ADD_PLUGIN([xcb_xv])
3574         VLC_ADD_CFLAGS([xcb_xv], [-DXCB_XV_OLD])
3575       ])
3576     ])
3577   ])
3578
3579   PKG_CHECK_MODULES(XCB_RANDR, [xcb-randr >= 1.3], [
3580     VLC_ADD_PLUGIN([panoramix])
3581     VLC_ADD_LIBS([panoramix],[${XCB_RANDR_LIBS} ${XCB_LIBS}])
3582     VLC_ADD_CFLAGS([panoramix],[${XCB_RANDR_CFLAGS} ${XCB_CFLAGS}])
3583   ], [true])
3584
3585   dnl xcb-utils
3586   PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms])
3587
3588   VLC_ADD_PLUGIN([xcb_window])
3589   VLC_ADD_PLUGIN([globalhotkeys])
3590   VLC_ADD_CFLAGS([globalhotkeys],[${XCB_KEYSYMS_CFLAGS} ${XCB_CFLAGS}] )
3591   VLC_ADD_LIBS([globalhotkeys],[${XCB_KEYSYMS_LIBS} ${XCB_LIBS}] )
3592 ])
3593
3594
3595 dnl
3596 dnl  OpenGL module
3597 dnl  (enabled by default except on beos)
3598 dnl
3599 AC_ARG_ENABLE(opengl,
3600   [  --enable-opengl         OpenGL support (default enabled)])
3601 if test "${enable_opengl}" != "no" &&
3602    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
3603   if test "${SYS}" != "darwin"; then
3604     AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
3605       VLC_ADD_PLUGIN([opengl])
3606       if test "${SYS}" != "mingw32"; then
3607         VLC_ADD_LIBS([opengl],[${X_LIBS} -lGL -lGLU])
3608       else
3609         VLC_ADD_LIBS([opengl],[-lopengl32 -lglu32])
3610       fi
3611     ])
3612   else
3613     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
3614     VLC_ADD_PLUGIN([opengl])
3615     VLC_ADD_LIBS([opengl],[-Wl,-framework,OpenGL])
3616   fi
3617 fi
3618
3619 dnl
3620 dnl  SDL module
3621 dnl
3622 AC_ARG_ENABLE(sdl,
3623   [  --enable-sdl            SDL support (default enabled)])
3624 AC_ARG_ENABLE(sdl-image,
3625   [  --enable-sdl-image      SDL image support (default enabled)])
3626 if test "${enable_sdl}" != "no"
3627 then
3628   SDL_PATH="${PATH}"
3629   AC_ARG_WITH(sdl-config-path,
3630     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
3631     [ if test "${with_sdl_config_path}" != "no"
3632       then
3633         SDL_PATH="${with_sdl_config_path}:${PATH}"
3634       fi ])
3635   AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
3636   SDL_HEADER="SDL/SDL.h"
3637   SDL_IMAGE="SDL/SDL_image.h"
3638
3639   if test "${SDL_CONFIG}" != "no";  then
3640      PKG_CHECK_MODULES(SDL, [sdl >= 1.2.10], [
3641         # SDL on Darwin is heavily patched and can only run SDL_image
3642         if test "${SYS}" != "darwin"; then
3643           VLC_ADD_PLUGIN([vout_sdl])
3644           VLC_ADD_PLUGIN([aout_sdl])
3645         fi
3646         VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} --cflags | sed 's,SDL,,'`])
3647         VLC_ADD_LIBS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} --libs | sed 's,-rdynamic,,'`])
3648
3649         # SDL_image
3650         AS_IF([ test "${enable_sdl_image}" != "no"],[
3651           AC_CHECK_HEADERS("SDL/SDL_image.h", [
3652             VLC_ADD_PLUGIN([sdl_image])
3653             AC_CHECK_LIB(png, png_set_rows, [VLC_ADD_LIBS([sdl_image],[-lpng -lz])],[],[-lz])
3654             AC_CHECK_LIB(jpeg, jpeg_start_decompress, [VLC_ADD_LIBS([sdl_image],[-ljpeg])])
3655             AC_CHECK_LIB(tiff, TIFFClientOpen, [VLC_ADD_LIBS([sdl_image],[-ltiff])])
3656             VLC_ADD_LIBS([sdl_image], [-lSDL_image])],
3657             [ AC_MSG_WARN([The development package for SDL_image is not installed.
3658       You should install it alongside your SDL package.])
3659             ])
3660         ])
3661      ],[
3662        AC_MSG_ERROR([The development package for SDL is too old. You need 1.2.10.
3663                     Alternatively you can also configure with --disable-sdl.])
3664      ])
3665   else if test "${enable_sdl}" =  "yes"; then
3666     AC_MSG_ERROR([I could not find the SDL package. You can download libSDL
3667 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
3668     ])
3669       fi
3670   fi
3671 fi
3672
3673 dnl
3674 dnl  freetype module
3675 dnl
3676 AC_ARG_ENABLE(freetype,
3677   [  --enable-freetype       freetype support (default enabled)])
3678 AC_ARG_ENABLE(fribidi,
3679   [  --enable-fribidi        fribidi support (default enabled)])
3680 AC_ARG_ENABLE(fontconfig,
3681   [  --enable-fontconfig,    fontconfig support (default enabled)])
3682 if test "${enable_freetype}" != "no"
3683 then
3684    PKG_CHECK_MODULES(FREETYPE, freetype2,[
3685       VLC_ADD_PLUGIN([freetype])
3686       have_freetype=yes
3687       VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
3688       if test "${SYS}" = "mingw32"; then
3689         VLC_ADD_LIBS([freetype],[-liconv -lz])
3690       fi
3691       VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
3692       if test "${enable_fontconfig}" != "no"
3693       then
3694         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
3695           [VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
3696            VLC_ADD_LIBS([freetype],[-lfontconfig])])
3697         AC_CHECK_HEADERS(Carbon/Carbon.h,
3698           [VLC_ADD_LDFLAGS([freetype],[-Wl,-framework,Carbon])])
3699       fi
3700
3701      dnl fribidi support
3702       if test "${enable_fribidi}" != "no"
3703       then
3704         PKG_CHECK_MODULES(FRIBIDI, fribidi, [
3705           VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
3706           VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
3707         ])
3708       fi
3709
3710   ],[
3711   have_freetype=no
3712   AS_IF([ test "${enable_freetype}" =  "yes"],[
3713     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
3714 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
3715       ])
3716     ])
3717   ])
3718
3719 fi
3720
3721 dnl
3722 dnl  libxml2 module
3723 dnl
3724 PKG_ENABLE_MODULES_VLC([libxml2], [xml], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
3725
3726 dnl
3727 dnl  SVG module
3728 dnl
3729 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3730
3731 dnl
3732 dnl Snapshot vout module (with cache)
3733 dnl
3734 AC_ARG_ENABLE(snapshot,
3735   [  --enable-snapshot       snapshot module (default disabled)])
3736 if test "${enable_snapshot}" = "yes"
3737 then
3738   VLC_ADD_PLUGIN([snapshot])
3739 fi
3740
3741 dnl
3742 dnl  Qt Embedded module
3743 dnl  (disabled by default)
3744 dnl
3745 AC_ARG_ENABLE(qte,
3746   [  --enable-qte            QT Embedded support (default disabled)])
3747 if test "${enable_qte}" = "yes"
3748 then
3749   AC_ARG_WITH(qte,
3750   [    --with-qte=PATH       Qt Embedded headers and libraries])
3751   if test "${with_qte}" != "no" -a -n "${with_qte}"
3752   then
3753     VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3754     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])
3755   else
3756     VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3757     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
3758   fi
3759   VLC_ADD_PLUGIN([qte])
3760   NEED_QTE_MAIN=yes
3761   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
3762   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
3763     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
3764   ] )
3765   CPPFLAGS="${CPPFLAGS_save}"
3766 fi
3767
3768 dnl
3769 dnl Roku HD1000 Video output module
3770 dnl
3771 AC_ARG_ENABLE(hd1000v,
3772   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
3773 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
3774   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3775    test "${enable_hd1000v}" = "yes"); then
3776   AC_LANG_PUSH([C++])
3777   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
3778   [
3779     can_build_roku="yes"
3780   ],
3781   [
3782     can_build_roku="no"
3783     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
3784   ])
3785   if test "$can_build_roku" = "yes"
3786   then
3787     VLC_ADD_PLUGIN([hd1000v])
3788     VLC_ADD_LIBS([hd1000v],[-lCascade -ldvbpsi -lmad])
3789   fi
3790   AC_LANG_POP([C++])
3791 fi
3792
3793 dnl
3794 dnl  Windows DirectX module
3795 dnl
3796
3797 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"
3798 then
3799   VLC_ADD_PLUGIN([panoramix])
3800 fi
3801
3802 AC_ARG_ENABLE(directx,
3803   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
3804 if test "${enable_directx}" != "no"
3805 then
3806   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"
3807   then
3808       AC_CHECK_HEADERS(ddraw.h,
3809       [ VLC_ADD_PLUGIN([directx])
3810         VLC_ADD_PLUGIN([aout_directx])
3811         VLC_ADD_LIBS([directx],[-lgdi32])
3812       ],[AC_MSG_ERROR([Cannot find DirectX headers!])]
3813       )
3814       AC_CHECK_HEADERS(GL/gl.h,
3815       [ VLC_ADD_PLUGIN([glwin32])
3816         VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
3817       ])
3818       AC_CHECK_HEADERS(d3d9.h,
3819       [ VLC_ADD_PLUGIN([direct3d])
3820         VLC_ADD_LIBS([direct3d],[-lgdi32])
3821       ])
3822       VLC_ADD_LIBS([direct3d directx glwin32],[-lole32])
3823   fi
3824 fi
3825
3826 dnl
3827 dnl  win32 GDI plugin
3828 dnl
3829 AC_ARG_ENABLE(wingdi,
3830   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
3831 if test "${enable_wingdi}" != "no"; then
3832   if test "${SYS}" = "mingw32"; then
3833     VLC_ADD_PLUGIN([wingdi])
3834     VLC_ADD_LIBS([wingdi],[-lgdi32 -lole32])
3835   fi
3836   if test "${SYS}" = "mingwce"; then
3837     VLC_ADD_PLUGIN([wingdi])
3838     VLC_ADD_PLUGIN([wingapi])
3839     VLC_ADD_LIBS([wingdi],[-laygshell])
3840     VLC_ADD_LIBS([wingapi],[-laygshell])
3841   fi
3842 fi
3843
3844
3845 dnl
3846 dnl  Linux framebuffer module
3847 dnl
3848 AC_ARG_ENABLE(fb,
3849   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
3850     if test "${enable_fb}" != "no"
3851     then
3852       AC_CHECK_HEADERS(linux/fb.h, [
3853         VLC_ADD_PLUGIN([fb])
3854       ])
3855     fi
3856
3857 dnl
3858 dnl  Linux MGA module
3859 dnl
3860 AC_ARG_ENABLE(mga,
3861   [  --enable-mga            Linux kernel Matrox support (default disabled)],
3862   [ if test "${enable_mga}" = "yes"
3863     then
3864       VLC_ADD_PLUGIN([mga])
3865     fi ])
3866
3867 dnl
3868 dnl  OMAP Framebuffer module
3869 dnl
3870 AC_ARG_ENABLE(omapfb,
3871   [  --enable-omapfb         OMAP framebuffer support (default disabled)])
3872     if test "${enable_omapfb}" = "yes"
3873     then
3874       AC_CHECK_HEADERS(asm/arch-omap/omapfb.h, [
3875         VLC_ADD_PLUGIN([omapfb])
3876         AC_CHECK_HEADERS(X11/Xlib.h, [
3877           VLC_ADD_LIBS([omapfb],[${X_LIBS} ${X_PRE_LIBS} -lX11]) ])
3878       ])
3879     fi
3880
3881 dnl
3882 dnl  SVGAlib module
3883 dnl
3884 AC_ARG_ENABLE(svgalib,
3885   [  --enable-svgalib        SVGAlib support (default disabled)])
3886 if test "${enable_svgalib}" = "yes"
3887 then
3888   VLC_ADD_PLUGIN([svgalib])
3889   VLC_ADD_LIBS([svgalib],[-lvgagl -lvga])
3890 fi
3891
3892 dnl
3893 dnl  DirectFB module
3894 dnl  try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
3895 dnl  TODO: support for static linking
3896 dnl
3897 AC_ARG_ENABLE(directfb,
3898   [  --enable-directfb       DirectFB support (default disabled)])
3899 AC_ARG_WITH(directfb,
3900   [    --with-directfb=PATH  path to DirectFB headers and libraries])
3901
3902 if test "${enable_directfb}" = "yes"; then
3903     have_directfb="false"
3904     CPPFLAGS_mydirectfb=
3905     LIBS_mydirectfb=
3906     if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
3907         dnl Trying the given location
3908         CPPFLAGS_save="${CPPFLAGS}"
3909         LIBS_save="${LIBS}"
3910
3911         CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
3912         LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/"
3913         LIBS_new="${LIBS_new} -L${with_directfb}/src/.libs/"
3914
3915         CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
3916         LIBS="${LIBS} ${LIBS_new}"
3917
3918         dnl FIXME: too obscure
3919         AC_CHECK_HEADER([directfb.h], [
3920             AC_CHECK_LIB([direct],[direct_initialize], [
3921                 AC_CHECK_LIB([fusion], [fusion_enter], [
3922                     AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
3923                 ], have_directfb="false")
3924             ], have_directfb="false")
3925         ], have_directfb="false")
3926
3927         dnl Restore flags
3928         CPPFLAGS="${CPPFLAGS_save}"
3929         LIBS="${LIBS_save}"
3930
3931         if test "${have_directfb}" = "true"; then
3932             LIBS_mydirectfb="${LIBS_new} -lz -ldl -ldirectfb -lfusion -ldirect -lpthread"
3933             CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
3934         fi
3935     else
3936         dnl Look for directfb-config
3937         AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
3938         if test "${DIRECTFB_CONFIG}" != "no"; then
3939             CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
3940             LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
3941             have_directfb="true"
3942         else
3943             dnl Trying with pkg-config
3944             PKG_CHECK_MODULES(DIRECTFB, directfb, [
3945                 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
3946                 LIBS_mydirectfb="${DIRECTFB_LIBS}"
3947                 have_directfb="true"
3948                 ], [have_directfb="false"])
3949         fi
3950     fi
3951     if test "${have_directfb}" = "true"; then
3952         VLC_ADD_PLUGIN([directfb])
3953         VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
3954         VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
3955     else
3956         AC_MSG_ERROR([cannot find directfb headers and/or libraries ])
3957     fi
3958 fi
3959
3960
3961
3962 dnl
3963 dnl  GGI module
3964 dnl
3965 AC_ARG_ENABLE(ggi,
3966   [  --enable-ggi            GGI support (default disabled)])
3967 if test "${enable_ggi}" = "yes"
3968 then
3969   AC_CHECK_HEADER([ggi/ggi.h],[
3970     VLC_ADD_PLUGIN([ggi])
3971     VLC_ADD_LIBS([ggi],[-lggi])
3972     AC_ARG_WITH(ggi,
3973       [    --with-ggi=PATH       path to libggi],
3974       [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
3975         then
3976           VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
3977           VLC_ADD_LIBS([ggi],[-L${with_ggi}/lib])
3978         fi ])
3979     ],[
3980        AC_MSG_ERROR([LibGGI development files can't be found])
3981     ])
3982 fi
3983
3984 dnl
3985 dnl  AA plugin
3986 dnl
3987 AC_ARG_ENABLE(aa,
3988   [  --enable-aa             aalib output (default disabled)])
3989 if test "${enable_aa}" = "yes"
3990 then
3991   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
3992   if test "${have_aa}" = "true"
3993   then
3994     VLC_ADD_PLUGIN([aa])
3995     VLC_ADD_LIBS([aa],[-laa])
3996   fi
3997 fi
3998
3999 dnl
4000 dnl  libcaca plugin
4001 dnl
4002 PKG_ENABLE_MODULES_VLC([caca], [], [caca >= 0.99.beta1], [libcaca output],[auto])
4003
4004 dnl
4005 dnl  Audio plugins
4006 dnl
4007
4008 AC_ARG_WITH(,[Audio plugins:])
4009
4010 dnl
4011 dnl  OSS /dev/dsp module (enabled by default except on win32)
4012 dnl
4013 AC_ARG_ENABLE(oss,
4014   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
4015
4016 if test "${enable_oss}" != "no" &&
4017   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4018    test "${enable_oss}" = "yes")
4019 then
4020   AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
4021     VLC_ADD_PLUGIN([oss])
4022     VLC_ADD_PLUGIN([access_oss])
4023     AC_CHECK_LIB(ossaudio,main,[VLC_ADD_LIBS([oss],[-lossaudio])])
4024   ])
4025 fi
4026
4027 dnl
4028 dnl  Pulseaudio module
4029 dnl
4030 PKG_ENABLE_MODULES_VLC([PULSE], [], [libpulse >= 0.9.11], [Pulseaudio support], [auto])
4031
4032 dnl
4033 dnl  Portaudio module
4034 dnl
4035 PKG_ENABLE_MODULES_VLC([PORTAUDIO], [], [portaudio-2.0], [Portaudio library support], [auto])
4036
4037 dnl
4038 dnl  ALSA module
4039 dnl
4040 PKG_ENABLE_MODULES_VLC([ALSA], [], [alsa >= 1.0.0], [Alsa sound support for linux], [auto])
4041 PKG_ENABLE_MODULES_VLC([ACCESS_ALSA], [access_alsa], [alsa >= 1.0.0], [Alsa access for linux], [auto])
4042
4043 dnl
4044 dnl  win32 waveOut plugin
4045 dnl
4046 AC_ARG_ENABLE(waveout,
4047   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
4048 if test "${enable_waveout}" != "no"; then
4049   if test "${SYS}" = "mingw32"; then
4050     VLC_ADD_PLUGIN([waveout])
4051     VLC_ADD_LIBS([waveout],[-lwinmm])
4052   fi
4053   if test "${SYS}" = "mingwce"; then
4054     VLC_ADD_PLUGIN([waveout])
4055   fi
4056 fi
4057
4058 dnl
4059 dnl  CoreAudio plugin
4060 dnl
4061 AC_ARG_ENABLE(macosx-audio,
4062   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
4063 if test "${enable_macosx-audio}" != "no" &&
4064   (test "${SYS}" = "darwin" || test "${enable_macosx-audio}" = "yes")
4065 then
4066   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h,
4067     [ VLC_ADD_PLUGIN([auhal])
4068       VLC_ADD_LDFLAGS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
4069     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
4070 fi
4071
4072 dnl
4073 dnl  Roku HD1000 audio
4074 dnl
4075 AC_ARG_ENABLE(hd1000a,
4076   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
4077 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
4078   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4079    test "${enable_hd1000a}" = "yes")
4080 then
4081   AC_LANG_PUSH([C++])
4082   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
4083     VLC_ADD_PLUGIN([hd1000a])
4084     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LIBS([hd1000a],[-lHDMachineX225]))  ])
4085   AC_LANG_POP([C++])
4086 fi
4087
4088 dnl
4089 dnl  JACK modules
4090 dnl
4091 PKG_ENABLE_MODULES_VLC([JACK], [jack], [jack], [JACK audio I/O modules],[auto])
4092 PKG_ENABLE_MODULES_VLC([JACK], [access_jack], [jack], [JACK audio I/O modules],[auto])
4093
4094
4095 dnl
4096 dnl  CyberLink for C++ UPnP stack
4097 dnl
4098 AC_ARG_ENABLE(cyberlink,
4099   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
4100   AS_IF([test "${enable_cyberlink}" = "yes" ], [
4101   AC_ARG_WITH(cyberlink-tree,
4102     [    --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
4103
4104   dnl
4105   dnl test for --with-cyberlink-tree
4106   dnl
4107   AS_IF([test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""], [
4108     AC_LANG_PUSH(C++)
4109     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
4110     AS_IF([test -z "${real_cyberlink_tree}"], [
4111       dnl  The given directory can't be found
4112       AC_MSG_RESULT(no)
4113       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
4114     ])
4115     CPPFLAGS_save="${CPPFLAGS}"
4116     CPPFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
4117     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_cyberlink}"
4118     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
4119       [ VLC_ADD_CXXFLAGS([upnp_cc], [${CPPFLAGS_cyberlink}])
4120         VLC_ADD_PLUGIN([upnp_cc])
4121       ],[
4122         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
4123       ])
4124     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
4125     AS_IF([test -f "${real_cyberlink_tree}/lib/unix/libclink.a"], [
4126       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
4127       dnl The mere fact that we have to make such an ugly check sucks
4128       AC_MSG_CHECKING(for XML parser to link CyberLink with)
4129       LIBS_save="$LIBS"
4130       LIBS_cclink="no"
4131       for l in "`xml2-config --libs`" -lexpat -lxerces-c; do
4132         LIBS="$LIBS_save ${real_cyberlink_tree}/lib/unix/libclink.a -lpthread $l"
4133         AC_LINK_IFELSE([AC_LANG_PROGRAM([
4134 #include <cybergarage/upnp/media/player/MediaPlayer.h>
4135 using namespace CyberLink;
4136
4137 class testclass : public SearchResponseListener, public MediaPlayer
4138 {
4139     virtual void deviceSearchResponseReceived( SSDPPacket *)
4140     {
4141     }
4142
4143     public:
4144       testclass (void)
4145       {
4146         addSearchResponseListener (this);
4147         start ();
4148       }
4149 };
4150 ],[testclass l;])],[LIBS_cclink="$l"])
4151       done
4152       LIBS="${LIBS_save}"
4153       dnl should not happen - otherwise this needs fixing - hence FAILURE
4154       AS_IF([test "${LIBS_cclink}" = "no"],
4155         [AC_MSG_FAILURE([cannot find XML parser for CyberLink])])
4156       AC_MSG_RESULT([${LIBS_cclink}])
4157       VLC_ADD_LIBS([upnp_cc], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}])
4158     ], [
4159       AC_MSG_RESULT(no)
4160       AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
4161     ])
4162     CPPFLAGS="${CPPFLAGS_save}"
4163     AC_LANG_POP([C++])
4164   ])
4165 ])
4166
4167 dnl
4168 dnl UPnP Plugin (Intel SDK)
4169 dnl
4170 PKG_ENABLE_MODULES_VLC([UPNP], [upnp_intel], [libupnp], [Intel UPnp SDK],[auto])
4171
4172
4173 dnl
4174 dnl  Interface plugins
4175 dnl
4176
4177 AC_ARG_WITH(,[Interface plugins:])
4178
4179 dnl special case for BeOS
4180 if test "${SYS}" = "beos"
4181 then
4182     VLC_ADD_PLUGIN([beos])
4183 fi
4184
4185 dnl
4186 dnl Skins2 module
4187 dnl
4188 AC_ARG_ENABLE(skins2,
4189   [AS_HELP_STRING([--enable-skins2],[Skins2 interface module (default
4190    enabled except on MacOSX, BeOS and WinCE)])])
4191 if test "${enable_skins2}" = "yes" ||
4192   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4193    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
4194
4195   dnl test for the required libraries
4196   skins2_missing_lib="no"
4197
4198   dnl freetype
4199   if test "${have_freetype}" != "yes"; then
4200     skins2_missing_lib="yes"
4201     if test "${enable_skins2}" = "yes"; then
4202       AC_MSG_ERROR([Could not find freetype (required for skins2)])
4203     fi
4204   fi
4205
4206   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32"); then
4207     VLC_ADD_PLUGIN([skins2])
4208     ALIASES="${ALIASES} svlc"
4209     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
4210     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4211     VLC_ADD_LIBS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
4212
4213   else if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "darwin"); then
4214     VLC_ADD_PLUGIN([skins2])
4215     ALIASES="${ALIASES} svlc"
4216     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
4217     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4218     VLC_ADD_LDFLAGS([skins2],[-Wl,-framework,Carbon])
4219
4220   else if test "${skins2_missing_lib}" = "no"; then
4221     VLC_ADD_PLUGIN([skins2])
4222     ALIASES="${ALIASES} svlc"
4223     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} -DX11_SKINS])
4224     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4225     VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lX11])
4226   fi fi fi
4227 fi
4228 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes" ||
4229          (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4230           test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no")])
4231
4232 dnl
4233 dnl Maemo
4234 dnl
4235 AC_ARG_ENABLE(maemo,
4236   [  --enable-maemo          Internet tablets based on Maemo SDK (default disabled)])
4237 if test "${enable_maemo}" = "yes"
4238 then
4239   PKG_CHECK_MODULES(HILDON, [hildon-1 hildon-fm-2], [
4240     VLC_ADD_CFLAGS([maemo],[${HILDON_CFLAGS}])
4241     VLC_ADD_LIBS([maemo],[${HILDON_LIBS}])
4242     VLC_ADD_PLUGIN([maemo])
4243     VLC_ADD_PLUGIN([swscale_maemo])
4244     AC_DEFINE([BUILD_MAEMO], 1, [Define if you are using Maemo interfaces])
4245     ALIASES="${ALIASES} mvlc"
4246   ], [
4247     AS_IF([test "${enable_maemo}" = "yes"],[
4248       AC_MSG_ERROR([Hildon libraries not found])
4249     ])
4250     enable_maemo="no"
4251   ])
4252 fi
4253 AM_CONDITIONAL(BUILD_MAEMO, [test "${enable_maemo}" = "yes"])
4254
4255 dnl
4256 dnl QT 4
4257 dnl
4258 AC_ARG_ENABLE(qt4,
4259   [  --enable-qt4            QT 4 support (default enabled) ],, [
4260   AS_IF([test "${SYS}" = "darwin"], [enable_qt4=no])
4261 ])
4262 AS_IF([test "${enable_qt4}" != "no"], [
4263   PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.4.0], [
4264     VLC_ADD_PLUGIN([qt4])
4265     AC_DEFINE([HAVE_QT4], 1, [Define to 1 if you have QT4 library.])
4266     ALIASES="${ALIASES} qvlc"
4267     AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "darwin"], [
4268         VLC_ADD_LIBS([qt4],[$QT4_LIBS -lX11])
4269     ], [
4270         VLC_ADD_LIBS([qt4],[$QT4_LIBS -lole32])
4271     ])
4272     QT4LOCALEDIR="$($PKG_CONFIG --variable=prefix QtCore)/share/qt4/translations/"
4273     AC_SUBST(QT4LOCALEDIR)
4274     VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS -DQT4LOCALEDIR=\\\\\\\"${QT4LOCALEDIR}\\\\\\\"])
4275     AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4276     AC_PATH_PROG(RCC, rcc, rcc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4277     AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4278   ], [
4279     AS_IF([test "${enable_qt4}" = "yes"],[
4280       AC_MSG_ERROR([Qt 4 library not found])
4281     ],[
4282       AC_MSG_WARN([Qt 4 library not found])
4283     ])
4284     enable_qt4="no"
4285   ])
4286 ])
4287 AM_CONDITIONAL(ENABLE_QT4, [test "x$enable_qt4" != "xno"])
4288
4289 dnl
4290 dnl  WinCE GUI module
4291 dnl
4292 AC_ARG_ENABLE(wince,
4293   [  --enable-wince          Windows CE interface (default enabled with MinGW)])
4294 if test "${enable_wince}" != "no"; then
4295   if test "${SYS}" = "mingwce"; then
4296     VLC_ADD_PLUGIN([wince])
4297     VLC_ADD_CXXFLAGS([wince],[])
4298     VLC_ADD_LIBS([wince],[-lcommctrl -lcommdlg -laygshell])
4299     dnl Gross hack
4300     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4301   elif test "${SYS}" = "mingw32"; then
4302     VLC_ADD_CXXFLAGS([wince],[])
4303     VLC_ADD_LIBS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
4304     dnl Gross hack
4305     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4306   fi
4307 fi
4308
4309 dnl
4310 dnl Simple test for skins2 dependency
4311 dnl
4312 AS_IF([test "${enable_skins2}" != "no" && test "x$enable_qt4" = "xno"], [
4313   AC_MSG_ERROR([The skins2 module depends on a the Qt4 development package. Without it you won't be able to open any dialog box from the interface, which makes the skins2 interface rather useless. Install the Qt4 development package or alternatively you can also configure with: --disable-qt4 --disable-skins2.])
4314 ])
4315
4316 dnl
4317 dnl  Opie QT embedded module
4318 dnl
4319 AC_ARG_ENABLE(opie,
4320   [  --enable-opie           Qt embedded interface support (default disabled)],
4321   [if test "${enable_opie}" = "yes"; then
4322      AC_ARG_WITH(qte,
4323      [    --with-qte=PATH       Qt Embedded headers and libraries])
4324      if test "${with_qte}" != "no" -a -n "${with_qte}"
4325      then
4326        VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4327        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])
4328      else
4329        VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
4330        VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
4331      fi
4332      CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4333      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4334        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4335      ] )
4336      CPPFLAGS="${CPPFLAGS_save}"
4337
4338      VLC_ADD_PLUGIN([opie])
4339      NEED_QTE_MAIN=yes
4340      VLC_ADD_LIBS([opie],[-lqpe ${LDFLAGS_qte}])
4341      VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
4342      if test "${with_qte}" != "no" -a -n "${with_qte}"
4343      then
4344        MOC=${with_qte}/bin/moc
4345      else
4346        MOC=${QTDIR}/bin/moc
4347      fi
4348    fi])
4349
4350 dnl
4351 dnl  MacOS X video output/gui modules
4352 dnl
4353 AC_ARG_ENABLE(macosx,
4354   [  --enable-macosx         MacOS X support (default enabled on MacOS X)])
4355 if test "x${enable_macosx}" = "xyes"
4356 then
4357   VLC_ADD_LDFLAGS([access_eyetv],                     [-Wl,-framework,Foundation])
4358   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer qtcapture],[-Wl,-framework,Cocoa])
4359   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer],[-Wl,-framework,OpenGL])
4360   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,Carbon])
4361   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,CoreServices])
4362   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,AGL])
4363   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,IOKit])
4364   VLC_ADD_LDFLAGS([macosx],                           [-F\\\${top_srcdir}/extras/contrib/Sparkle -Wl,-framework,Sparkle])
4365   VLC_ADD_OBJCFLAGS([macosx],                         [-F\\\${top_srcdir}/extras/contrib/Sparkle])
4366   dnl For bug report
4367   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,AddressBook])
4368   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,QTKit])
4369   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,CoreAudio])
4370   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,WebKit])
4371   VLC_ADD_LDFLAGS([opengllayer qtcapture],            [-Wl,-framework,QuartzCore])
4372   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,CoreVideo])
4373   VLC_ADD_OBJCFLAGS([macosx minimal_macosx opengllayer growl opengllayer], [-fobjc-exceptions] )
4374
4375   VLC_ADD_PLUGIN([access_eyetv])
4376   VLC_ADD_PLUGIN([qtcapture])
4377   VLC_ADD_PLUGIN([macosx])
4378   VLC_ADD_PLUGIN([minimal_macosx])
4379   VLC_ADD_PLUGIN([opengllayer])
4380 fi
4381
4382 dnl
4383 dnl  QNX RTOS module
4384 dnl
4385 AC_ARG_ENABLE(qnx,
4386   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
4387     if test "${enable_qnx}" != "no"
4388     then
4389       AC_CHECK_HEADERS(Ph.h, [
4390         VLC_ADD_PLUGIN([qnx])
4391         VLC_ADD_LIBS([qnx],[-lasound -lph])
4392       ])
4393     fi
4394
4395 dnl
4396 dnl  ncurses module
4397 dnl
4398 AC_ARG_ENABLE(ncurses,
4399   [  --disable-ncurses       ncurses interface support (default enabled)],
4400   [if test "${enable_ncurses}" != "no"; then
4401     AC_CHECK_HEADER(ncurses.h,
4402       [AC_CHECK_LIB(ncursesw, mvprintw,
4403         [VLC_ADD_PLUGIN([ncurses])
4404         VLC_ADD_LIBS([ncurses],[-lncursesw])
4405         ALIASES="${ALIASES} nvlc"
4406         AC_DEFINE([HAVE_NCURSESW], 1, [Define to 1 if you have libncursesw.])
4407         AC_CHECK_LIB(ncursesw, tgetent, [],
4408           AC_CHECK_LIB(tinfow, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfow])],
4409             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
4410               [AS_IF([test "x${enable_ncurses}" != "x"],
4411                 [AC_MSG_ERROR([tgetent not found in ncursesw tinfow tinfo]
4412                )])])
4413             ]
4414           )
4415         )
4416         ],
4417         [AC_CHECK_LIB( ncurses, mvprintw,
4418           [VLC_ADD_PLUGIN([ncurses])
4419           ALIASES="${ALIASES} nvlc"
4420           VLC_ADD_LIBS([ncurses],[-lncurses])
4421           AC_CHECK_LIB(ncurses, tgetent, [],
4422             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
4423               [AS_IF([test "x${enable_ncurses}" != "x"],
4424                 [AC_MSG_ERROR([tgetent not found in ncurses tinfo])])]
4425             )]
4426           )],
4427           [AS_IF([test "x${enable_ncurses}" != "x"], [
4428             AC_MSG_ERROR([libncurses not found])])]
4429         )]
4430       )]
4431     )
4432   fi]
4433 )
4434
4435 dnl
4436 dnl  XOSD plugin
4437 dnl
4438 AC_ARG_ENABLE(xosd,
4439   [  --enable-xosd           xosd interface support (default disabled)])
4440 if test "${enable_xosd}" = "yes"
4441 then
4442   AC_CHECK_HEADERS(xosd.h,
4443     AC_CHECK_LIB(xosd, xosd_set_horizontal_offset, [
4444       VLC_ADD_PLUGIN([xosd])
4445       VLC_ADD_LIBS([xosd],[-lxosd])
4446     ])
4447   )
4448 fi
4449
4450 dnl
4451 dnl Framebuffer (overlay) plugin
4452 dnl
4453 AC_ARG_ENABLE(fbosd,
4454   [  --enable-fbosd          fbosd interface support (default disabled)])
4455 if test "${enable_fbosd}" = "yes"
4456 then
4457   AC_CHECK_HEADERS(linux/fb.h, [
4458     VLC_ADD_PLUGIN([fbosd])
4459  ])
4460 fi
4461
4462 dnl
4463 dnl Visualisation plugin
4464 dnl
4465 AC_ARG_ENABLE(visual,
4466   [  --enable-visual         visualisation plugin (default enabled)])
4467 if test "${enable_visual}" != "no"
4468 then
4469     VLC_ADD_PLUGIN([visual])
4470 fi
4471
4472 dnl
4473 dnl  goom visualization plugin
4474 dnl
4475 PKG_ENABLE_MODULES_VLC([goom], [], [libgoom2], [goom visualization plugin], [auto])
4476
4477 dnl
4478 dnl libprojectM visualization plugin
4479 dnl
4480 PKG_ENABLE_MODULES_VLC([projectm], [], [libprojectM], [projectM visualization plugin], [auto])
4481
4482 dnl
4483 dnl  AtmoLight (homebrew AmbiLight)
4484 dnl
4485 AC_ARG_ENABLE(atmo,
4486 AS_HELP_STRING([--disable-atmo],[AtmoLight (homebrew Philips ambilight)
4487                 (broken, default disabled)]),, [enable_atmo="no"])
4488 AS_IF([test "${enable_atmo}" != no], [