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