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