spudec: use VLC_TS_INVALID (refs #3135)
[vlc/solaris.git] / configure.ac
blob420ce5845d89c624114e363b2a2b7409136fdb78
1 dnl Autoconf settings for vlc
3 AC_COPYRIGHT([Copyright 2002-2009 the VideoLAN team])
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)
13 CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
14 CODENAME="Yellow Bastard"
15 COPYRIGHT_YEARS="1996-2009"
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
25 AM_INIT_AUTOMAKE(tar-ustar)
26 AM_CONFIG_HEADER(config.h)
28 # Disable with "./configure --disable-silent-rules" or "make V=1"
29 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
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.
38 AS_IF([test "x${enable_maintainer_mode}" != "xno"],
39     [enable_maintainer_mode="yes"])
40 AM_MAINTAINER_MODE
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)
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])
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])
70 dnl
71 dnl  Save *FLAGS
72 dnl
73 VLC_SAVE_FLAGS
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.])
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
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, :)
99 dnl Check for compiler properties
100 AC_C_CONST
101 AC_C_INLINE
102 AC_C_RESTRICT
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       ])
116 dnl  Check for the contrib directory
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"
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
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   ])
179 dnl  Set default values
181 LDFLAGS_vlc="${LDFLAGS}"
184 dnl  Check the operating system
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       openbsd*)
209         CPPFLAGS_save="${CPPFLAGS_save} -I/usr/local/include -I/usr/X11R6/include"
210         CPPFLAGS="${CPPFLAGS_save}"
211         LDFLAGS_save="${LDFLAGS_save} -L/usr/local/lib -L/usr/X11R6/lib/"
212         LDFLAGS="${LDFLAGS_save}"
213         ;;
214     esac
215     ;;
216   darwin*)
217     SYS=darwin
218     CFLAGS_save="${CFLAGS_save} -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
219     CXXFLAGS_save="${CXXFLAGS_save} -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
220     OBJCFLAGS_save="${OBJCFLAGS_save} -D_INTL_REDIRECT_MACROS -std=gnu99"; OBJCFLAGS="${OBJCFLAGS_save}"
221     LDFLAGS_save="${LDFLAGS_save} -Wl,-headerpad_max_install_names"; LDFLAGS="${LDFLAGS_save}"
222     VLC_ADD_LDFLAGS([mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
223     VLC_ADD_LDFLAGS([mkv mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
224     VLC_ADD_LDFLAGS([vlc],[-Wl,-undefined,dynamic_lookup])
225     VLC_ADD_LDFLAGS([libvlc],[-Wl,-undefined,dynamic_lookup])
226     VLC_ADD_LDFLAGS([avcodec avformat swscale postproc i420_rgb_mmx x264],[-Wl,-read_only_relocs,suppress])
227     VLC_ADD_CFLAGS([motion],[-fconstant-cfstrings])
228     VLC_ADD_LDFLAGS([libvlccore],[-Wl,-framework,CoreFoundation])
229     VLC_ADD_LDFLAGS([motion],[-Wl,-framework,IOKit,-framework,CoreFoundation])
230     AC_ARG_ENABLE(macosx-defaults,
231       AS_HELP_STRING([--enable-macosx-defaults],[Build the default configuration on Mac OS X (default enabled)]))
232     if test "x${enable_macosx_defaults}" != "xno"
233     then
234         echo ""
235         echo "Building with Mac OS X defaults:"
236         with_macosx_version_min="10.5"
237         echo "  Assuming --with-macosx-version-min=10.5"
238         with_macosx_sdk="/Developer/SDKs/MacOSX${with_macosx_version_min}.sdk"
239         echo "  Assuming --with-macosx-sdk=/Developer/SDKs/MacOSX${with_macosx_version_min}.sdk"
240         build_dir=`pwd`
241         echo "  Assuming --prefix=${build_dir}/vlc_install_dir"
242         ac_default_prefix="${build_dir}/vlc_install_dir"
243         enable_macosx="yes"
244         echo "  Assuming --enable-macosx"
245         enable_faad="yes"
246         echo "  Assuming --enable-faad"
247         enable_flac="yes"
248         echo "  Assuming --enable-flac"
249         enable_theora="yes"
250         echo "  Assuming --enable-theora"
251         enable_shout="yes"
252         echo "  Assuming --enable-shout"
253         enable_cddax="yes"
254         echo "  Assuming --enable-cddax"
255         enable_vcdx="yes"
256         echo "  Assuming --enable-vcdx"
257         enable_caca="yes"
258         echo "  Assuming --enable-caca"
259         enable_ncurses="yes"
260         echo "  Assuming --enable-ncurses"
261         enable_twolame="yes"
262         echo "  Assuming --enable-twolame"
263         enable_realrtsp="yes"
264         echo "  Assuming --enable-realrtsp"
265         enable_libass="yes"
266         echo "  Assuming --enable-libass"
267         enable_asademux="yes"
268         echo "  Assuming --enable-asademux"
270         enable_skins2="no"
271         echo "  Assuming --disable-skins2"
272         enable_x11="no"
273         echo "  Assuming --disable-x11"
274         enable_xcb="no"
275         echo "  Assuming --disable-xcb"
276         enable_glx="no"
277         echo "  Assuming --disable-glx"
278         enable_xvideo="no"
279         echo "  Assuming --disable-xvideo"
280     fi
281     dnl
282     dnl  Check for Mac OS X SDK settings
283     dnl
284     AC_ARG_WITH(macosx-sdk,
285        [  --with-macosx-sdk=DIR   compile using the SDK in DIR])
286     if test "${with_macosx_sdk}" != "" ; then
287         CPP="${CPP} -isysroot ${with_macosx_sdk}"
288         CC="${CC} -isysroot ${with_macosx_sdk}"
289         CXX="${CXX} -isysroot ${with_macosx_sdk}"
290         OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
291         LD="${LD} -syslibroot ${with_macosx_sdk}"
292     fi
293     AC_ARG_WITH(macosx-version-min,
294        [  --with-macosx-version-min=VERSION  compile for MacOSX VERSION and above])
295     if test "${with_macosx_version_min}" != "" ; then
296         CPP="${CPP} -mmacosx-version-min=${with_macosx_version_min}"
297         CC="${CC} -mmacosx-version-min=${with_macosx_version_min}"
298         CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
299         OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
300         LD="${LD} -macosx_version_min=${with_macosx_version_min}"
301         CFLAGS_save="${CFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CFLAGS="${CFLAGS_save}"
302         CXXFLAGS_save="${CXXFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CXXFLAGS="${CXXFLAGS_save}"
303         OBJCFLAGS_save="${OBJCFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; OBJCFLAGS="${OBJCFLAGS_save}"
304         MACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}
305         export MACOSX_DEPLOYMENT_TARGET
306     fi
307     ;;
308   darwin9*)
309     if (test ".`uname -p`" = ".i386"); then
310         dnl Due to a ld(64) bug in 10.5 we cannot use our mmx code
311         dnl without hacking it a lot, we disable mmx and sse.
312         dnl (that bug is about ld being unable to handle
313         dnl text relocation)
314         save_cflags="$CFLAGS"
315         CFLAGS="$CFLAGS -dynamiclib -single_module -read_only_relocs suppress"
316         AC_TRY_LINK(
317             [int a;], [asm("movq _a,%mm0\n");],
318             ac_ld_does_not_support_text_reloc=no,
319             ac_ld_does_not_support_text_reloc=yes)
320         CFLAGS="$save_cflags"
322         if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
323             enable_mmx="no"
324             echo "  Assuming --disable-mmx (due to a bug in ld)"
325             enable_sse="no"
326             echo "  Assuming --disable-sse (due to a bug in ld)"
327         fi
328     fi
329     ;;
330   *mingw32* | *cygwin* | *wince* | *mingwce*)
331     AC_CHECK_TOOL(WINDRES, windres, :)
332     AC_CHECK_TOOL(OBJCOPY, objcopy, :)
334     case "${host_os}" in
335       *wince* | *mingwce* | *mingw32ce*)
336         SYS=mingwce
337         dnl Sadly CeGCC still needs non-wince macros
338         AC_DEFINE([_WIN32_WINNT], 0x0501, [Define to '0x0500' for Windows 2000 APIs.])
339         ;;
340       *mingw32*)
341         SYS=mingw32
342         AC_DEFINE([_WIN32_WINNT], 0x0500, [Define to '0x0500' for Windows 2000 APIs.])
343         ;;
344       *cygwin*)
345         dnl Check if we are using the mno-cygwin mode in which case we are
346         dnl actually dealing with a mingw32 compiler.
347         AC_DEFINE([_WIN32_WINNT], 0x0500, [Define to '0x0500' for Windows 2000 APIs.])
348         AC_EGREP_CPP(yes,
349             [#ifdef WIN32
350              yes
351              #endif],
352             SYS=mingw32, AC_MSG_ERROR([VLC requires -mno-cygwin]))
353         ;;
354     esac
356     if test "${SYS}" = "mingw32"; then
357         # add ws2_32 for closesocket, select, recv
358         VLC_ADD_LIBS([libvlccore],[-lws2_32 -lnetapi32 -lwinmm])
359         VLC_ADD_LDFLAGS([vlc],[-mwindows])
360         VLC_ADD_LIBS([activex mozilla],[-lgdi32])
361         VLC_ADD_LIBS([cdda vcdx cddax sdl_image aout_sdl vout_sdl],[-lwinmm])
362         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 audiobargraph_a],[-lws2_32])
363         VLC_ADD_LIBS([access_file], [-lshlwapi])
364         dnl
365         dnl DEP and ASLR options
366         dnl
367         AC_ARG_ENABLE(peflags,
368           [  --enable-peflags          peflags use (default enabled)])
369         if test "${enable_peflags}" != "no"
370         then
371           AC_CHECK_TOOL(PEFLAGS, peflags, :)
372         fi
373     fi
374     if test "${SYS}" = "mingwce"; then
375         # add ws2 for closesocket, select, recv
376         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 telnet audiobargraph_a],[-lws2])
377         VLC_ADD_LIBS([libvlccore],[-lmmtimer])
378    fi
379     ;;
380   *nto*)
381     SYS=nto
382     ;;
383   solaris*)
384     SYS=solaris
385     ;;
386   hpux*)
387     SYS=hpux
388     ;;
389   beos)
390     SYS=beos
391     CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}"
392     CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}"
393     VLC_ADD_CXXFLAGS([beos],[])
394     VLC_ADD_LIBS([vlc libvlccore logger],[-lbe])
395     VLC_ADD_LIBS([beos],[-lbe -lmedia -ltranslation -ltracker -lgame])
396     VLC_ADD_LIBS([dvdnav dvdread],[-ldl])
397     VLC_ADD_LIBS([access_file],[-lpoll])
398     LDFLAGS_save="${LDFLAGS_save} -lintl"; LDFLAGS="${LDFLAGS_save}"
399     dnl Check for BONE
400     if test -f /boot/beos/system/lib/libbind.so; then
401         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlccore growl_udp],[-lbind -lsocket])
402     else
403         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlccore growl_udp],[-lnet])
404     fi
406     dnl Ugly check for Zeta
407     if test -f /boot/beos/system/lib/libzeta.so; then
408         VLC_ADD_LIBS([beos],[-lzeta])
409     fi
410     ;;
411   *)
412     SYS="${host_os}"
413     ;;
414 esac
415 AM_CONDITIONAL(HAVE_BEOS, test "${SYS}" = "beos")
416 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
417 AM_CONDITIONAL(HAVE_LINUX, [test "${SYS}" = "linux"])
418 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
419 AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
420 AM_CONDITIONAL(USE_PEFLAGS, [test "${enable_peflags}" = "yes"])
423 dnl Sadly autoconf doesn't think about testing foo.exe when ask to test
424 dnl for program foo on win32
426 case "${build_os}" in
427     cygwin|msys)
428         ac_executable_extensions=".exe"
429     ;;
430     *)
431     ;;
432 esac
435 dnl  Libtool
436 dnl  It's very bad, but our former custom system was worst
437 dnl  -- Courmisch
440 dnl override platform specific check for dependent libraries
441 dnl otherwise libtool linking of shared libraries will
442 dnl fail on anything other than pass_all.
443 AC_CACHE_VAL(lt_cv_deplibs_check_method,
444     [lt_cv_deplibs_check_method=pass_all])
446 AC_DISABLE_STATIC
447 dnl AC_DISABLE_FAST_INSTALL
448 AC_LIBTOOL_DLOPEN
449 AC_LIBTOOL_WIN32_DLL
450 m4_undefine([AC_PROG_F77])
451 m4_defun([AC_PROG_F77],[])
452 AC_PROG_LIBTOOL
454 m4_undefine([AC_DEPLIBS_CHECK_METHOD])
455 m4_defun([AC_DEPLIBS_CHECK_METHOD],[])
457 lt_cv_deplibs_check_method=pass_all
459 AS_IF([test "${enable_shared}" = "no"], [
460   AC_MSG_ERROR([VLC is based on plugins. Shared libraries cannot be disabled.])
464 dnl Gettext stuff
466 AM_GNU_GETTEXT_VERSION([0.17])
467 AM_GNU_GETTEXT([external])
468 VLC_ADD_LIBS([libvlccore vlc], [${LTLIBINTL}])
471 dnl Iconv stuff
473 AM_ICONV
474 VLC_ADD_CFLAGS([libvlccore],[${INCICONV}])
475 VLC_ADD_LIBS([libvlccore],[${LTLIBICONV}])
477 dnl Check for broken versions of mingw-runtime compatability library
478 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"], [
479     AC_MSG_CHECKING(for broken mingw-runtime)
480     AC_PREPROC_IFELSE([
481 #include <_mingw.h>
482 #if (__MINGW32_MAJOR_VERSION == 3) && (__MINGW32_MINOR_VERSION < 15)
483 # error Attempting to use mingw-runtime with broken vsnprintf support
484 #endif
485 ], [
486         AC_MSG_RESULT([ok])
487 ], [
488         AC_MSG_RESULT([present])
489         AC_MSG_ERROR([LibVLC requires mingw-runtime version 3.15 or higher!])
491     dnl force use of mingw provided c99 *printf over msvcrt
492     CPPFLAGS="${CPPFLAGS} -D__USE_MINGW_ANSI_STDIO=1"
493     CPPFLAGS_save="${CPPFLAGS_save} -D__USE_MINGW_ANSI_STDIO=1"
496 dnl Check for the need to include the mingwex lib for mingw32
497 if test "${SYS}" = "mingw32"
498 then
499     AC_CHECK_LIB(mingwex,opendir,
500         AC_CHECK_LIB(mingw32,opendir,,
501             [VLC_ADD_LIBS([libvlccore],[-lmingwex])])
502     )
505 dnl Check for fnative-struct or mms-bitfields support for mingw32
506 if test "${SYS}" = "mingw32"
507 then
508     AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
509         [ac_cv_c_mms_bitfields],
510         [CFLAGS="${CFLAGS_save} -mms-bitfields"
511          AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
512     if test "${ac_cv_c_mms_bitfields}" != "no"; then
513         CFLAGS_save="${CFLAGS_save} -mms-bitfields";
514         CXXFLAGS_save="${CXXFLAGS_save} -mms-bitfields";
515     else
516         AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
517             [ac_cv_c_fnative_struct],
518             [CFLAGS="${CFLAGS_save} -fnative-struct"
519              AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
520         if test "${ac_cv_c_fnative_struct}" != "no"; then
521             CFLAGS_save="${CFLAGS_save} -fnative-struct";
522             CXXFLAGS_save="${CXXFLAGS_save} -fnative-struct";
523         fi
524     fi
526     CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
529 dnl Check for fvtable-thunks support for mingw32
530 if test "${SYS}" = "mingw32" -a "${CXX}" != ""
531 then
532 AC_LANG_PUSH(C++)
533     AC_CACHE_CHECK([if \$CXX accepts -fvtable-thunks],
534         [ac_cv_cxx_fvtable_thunks],
535         [CXXFLAGS="${CXXFLAGS_save} -Wall -Werror -fvtable-thunks"
536          AC_TRY_COMPILE([],,ac_cv_cxx_fvtable_thunks=yes,
537                         ac_cv_cxx_fvtable_thunks=no)])
538     if test "${ac_cv_cxx_fvtable_thunks}" = "yes"; then
539         CXXFLAGS_mingw32_special="-fvtable-thunks"
540     fi
542     CXXFLAGS_save="${CXXFLAGS_save} ${CXXFLAGS_mingw32_special}"; CXXFLAGS="${CXXFLAGS_save}"
543 AC_LANG_POP(C++)
547 dnl Buggy glibc prevention. Purposedly not cached.
548 dnl See sourceware.org bugs 5058 and 5443.
549 dnl Ubuntu alone has 20 bug numbers for this...
551 AC_MSG_CHECKING(for buggy GNU/libc versions)
552 AC_PREPROC_IFELSE([
553 #include <limits.h>
554 #if defined (__GLIBC__) && (__GLIBC__ == 2) \
555   && (__GLIBC_MINOR__ >= 5) && (__GLIBC_MINOR__ <= 7)
556 # error GNU/libc with dcgettext killer bug!
557 #endif
558 ], [
559   AC_MSG_RESULT([not present])
560 ], [
561   AC_MSG_RESULT([found])
562   AS_IF([test "x${enable_nls}" != "xno" || test "x${enable_mozilla}" != "xno"], [
563     AC_MSG_ERROR([Buggy GNU/libc (version 2.5 - 2.7) present. VLC would crash; there is no viable
564 work-around for this. Check with your distribution vendor on how to update the
565 glibc run-time. Alternatively, build with --disable-nls --disable-mozilla and
566 be sure to not use LibVLC from other applications/wrappers.])
567   ], [
568     AC_DEFINE(DISABLE_BUGGY_GLIBC_CHECK, 1, [Disables runtime check for buggy glibc.])
569   ])
572 dnl Plugin compilation stuff
574 VLC_LIBRARY_SUFFIX
576 dnl The -DSYS_FOO flag
577 CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
579 dnl Check for system libs needed
580 need_libc=false
582 dnl Check for usual libc functions
583 AC_CHECK_FUNCS([gettimeofday isatty sigrelse getpwuid_r memalign posix_memalign if_nametoindex getenv putenv setenv ctime_r daemon fork lstat posix_fadvise posix_madvise uselocale])
584 AC_CHECK_FUNCS(fcntl)
585 AC_REPLACE_FUNCS([asprintf atof atoll getcwd getpid gmtime_r lldiv localtime_r rewind strcasecmp strcasestr strdup strlcpy strncasecmp strndup strnlen strsep strtof strtok_r strtoll vasprintf swab tdestroy])
586 AC_CHECK_FUNCS([stricmp strnicmp])
587 AC_CHECK_FUNCS(fdatasync,,
588   [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
591 dnl Check for non-standard system calls
592 AC_CHECK_FUNCS([vmsplice eventfd fstatfs accept4])
594 AH_BOTTOM([#include <vlc_fixups.h>])
596 AC_CHECK_FUNCS(mmap, [VLC_ADD_PLUGIN([access_mmap])])
598 dnl Check for setlocal and langinfo
599 AC_CHECK_FUNCS(setlocale)
600 AC_CHECK_HEADERS(langinfo.h)
601 AC_CHECK_FUNCS(nl_langinfo)
603 AC_CACHE_CHECK([for nl_langinfo and CODESET], ac_cv_langinfo_codeset,
604   [AC_TRY_LINK([#include <langinfo.h>],
605     [char* cs = nl_langinfo(CODESET);],
606     ac_cv_langinfo_codeset=yes,
607     ac_cv_langinfo_codeset=no)
608   ])
609 if test ${ac_cv_langinfo_codeset} = yes; then
610   AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
611     [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
614 SOCKET_LIBS=""
615 AC_CHECK_FUNCS(connect,,[
616   AC_CHECK_LIB(socket,connect,[
617     VLC_ADD_LIBS([libvlccore cdda cddax],-lsocket)
618     SOCKET_LIBS="-lsocket"
619   ])
621 AC_SUBST(SOCKET_LIBS)
623 AC_CHECK_FUNCS(send,,[
624   AC_CHECK_LIB(socket,send,[
625     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])
626   ])
630 dnl Check for socklen_t
631 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
632 AC_CACHE_CHECK([for socklen_t in sys/socket.h],
633 ac_cv_type_socklen_t,
634 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
635 [#include <sys/types.h>
636 #ifdef WIN32
637 # include <winsock2.h>
638 # include <ws2tcpip.h>
639 #else
640 # include <sys/socket.h>
641 #endif]], [[socklen_t len; len = 0;]])],
642 ac_cv_type_socklen_t=yes,
643 ac_cv_type_socklen_t=no)])
644 AS_IF([test "$ac_cv_type_socklen_t" = no],
645  [AC_DEFINE(socklen_t, int)])
647 dnl Check for struct sockaddr_storage
648 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.])
649 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.])
650 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
651   [AC_TRY_COMPILE(
652     [#include <sys/types.h>
653      #if defined( UNDER_CE )
654      # include <winsock2.h>
655      #elif defined( WIN32 )
656      # include <winsock2.h>
657      #else
658      # include <sys/socket.h>
659      #endif], [struct sockaddr_storage addr;],
660      ac_cv_struct_sockaddr_storage=yes,
661      ac_cv_struct_sockaddr_storage=no)])
662 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
663   AC_DEFINE(sockaddr_storage, sockaddr)
664   AC_DEFINE(ss_family, sa_family)
667 dnl getaddrinfo, getnameinfo and gai_strerror check
668 dnl  -lnsl and -lsocket are needed on Solaris;
669 dnl  we purposedly make the test fail on Windows
670 LIBS_save="${LIBS}"
671 AH_TEMPLATE(HAVE_GETADDRINFO, [Define to 1 if you have the `getaddrinfo' function.])
672 AC_SEARCH_LIBS([getaddrinfo], [nsl], [AC_DEFINE(HAVE_GETADDRINFO)],, [${SOCKET_LIBS}])
674 dnl NOTE: we assume getaddrinfo will be present if getnameinfo or gai_strerro
675 dnl are
676 LIBS="${LIBS_gai}"
677 AC_CHECK_FUNCS([getnameinfo gai_strerror])
678 LIBS="${LIBS_save}"
680 AH_TEMPLATE(HAVE_ADDRINFO, [Define to 1 if <netdb.h> defines `struct addrinfo'.])
681 AC_CHECK_TYPES([struct addrinfo],[AC_DEFINE(HAVE_ADDRINFO)],,
682 [#include <sys/types.h>
683 #if defined( WIN32 ) || defined( UNDER_CE )
684 # if defined(UNDER_CE) && defined(sockaddr_storage)
685 #  undef sockaddr_storage
686 # endif
687 # include <winsock2.h>
688 # include <ws2tcpip.h>
689 #else
690 # include <netdb.h>
691 #endif])
693 dnl Check for va_copy
694 AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
695   AC_TRY_LINK(
696     [#include <stdarg.h>],
697     [va_list ap1, ap2; va_copy(ap1,ap2);],
698     [ac_cv_c_va_copy="yes"],
699     [ac_cv_c_va_copy="no"]))
700 if test "${ac_cv_c_va_copy}" = "yes"; then
701   AC_DEFINE(HAVE_VA_COPY, 1, [Define if <stdarg.h> defines va_copy.])
703 AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
704   AC_TRY_LINK(
705     [#include <stdarg.h>],
706     [va_list ap1, ap2; __va_copy(ap1,ap2);],
707     [ac_cv_c___va_copy="yes"],
708     [ac_cv_c___va_copy="no"]))
709 if test "${ac_cv_c___va_copy}" = "yes"; then
710   AC_DEFINE(HAVE___VA_COPY, 1, [Define if <stdarg.h> defines __va_copy.])
713 AC_CHECK_FUNCS(inet_aton,,[
714   AC_CHECK_LIB(resolv,inet_aton,[
715     VLC_ADD_LIBS([libvlccore],[-lresolv])
716   ])
719 dnl Check for getopt (always use builtin one on win32)
720 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
721 need_getopt=:
722 else
723 need_getopt=false
724 AC_CHECK_FUNCS(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
725 [ # FreeBSD has a gnugetopt library for this:
726   AC_CHECK_LIB([gnugetopt],[getopt_long],
727     [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support)
728      VLC_ADD_LIBS([libvlccore],[-lgnugetopt])],
729     [need_getopt=:])])
731 AM_CONDITIONAL(BUILD_GETOPT, ${need_getopt})
733 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
734 AC_TYPE_SIGNAL
735 AC_CHECK_LIB(m,cos,[
736   VLC_ADD_LIBS([adjust wave ripple psychedelic gradient a52tofloat32 dtstofloat32 x264 goom visual panoramix rotate noise grain scene kate flac lua chorus_flanger],[-lm])
738 AC_CHECK_LIB(m,pow,[
739   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])
741 AC_CHECK_LIB(m,sqrt,[
742   VLC_ADD_LIBS([headphone_channel_mixer normvol audiobargraph_a speex mono colorthres extract],[-lm])
744 AC_CHECK_LIB(m,ceil,[
745   VLC_ADD_LIBS([access_imem hotkeys mosaic swscale_omap],[-lm])
747 AC_CHECK_LIB(m,exp,[
748   VLC_ADD_LIBS([gaussianblur],[-lm])
750 AC_CHECK_LIB(m,round,[
751   VLC_ADD_LIBS([dbus],[-lm])
753 AC_CHECK_LIB(m,sqrtf,[
754   VLC_ADD_LIBS([x264],[-lm])
756 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
758 AC_CHECK_LIB(m,lrintf, [
759   AC_DEFINE(HAVE_LRINTF, 1, [Define to 1 if you have the lrintf function])
760   VLC_ADD_LIBS([skins2],[-lm])
763 dnl Check for dynamic plugins
764 ac_cv_have_plugins=no
766 # HP-UX style
767 if test "${ac_cv_have_plugins}" = "no"; then
768   AC_CHECK_HEADERS(dl.h)
769   ac_cv_my_have_shl_load=no
770   AC_CHECK_FUNC(shl_load,
771    [ac_cv_my_have_shl_load=yes,
772     AC_CHECK_LIB(dld, shl_load,
773      [ac_cv_my_have_shl_load=yes
774       VLC_ADD_LIBS([libvlccore],[-ldld])])])
775   if test "${ac_cv_my_have_shl_load}" = "yes"; then
776     AC_DEFINE(HAVE_DL_SHL_LOAD, 1, [Define if you have the shl_load API])
777     ac_cv_have_plugins=yes
778   fi
781 # Win32 style
782 if test "${ac_cv_have_plugins}" = "no"; then
783   if test "${SYS}" = "mingw32" ; then
784     AC_CHECK_LIB(kernel32, main,
785      [VLC_ADD_LIBS([libvlccore],[-lkernel32])
786       AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
787       ac_cv_have_plugins=yes])
788   fi
791 # WinCE style
792 if test "${ac_cv_have_plugins}" = "no"; then
793   if test "${SYS}" = "mingwce"; then
794     AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
795     ac_cv_have_plugins=yes
796   fi
799 # BeOS style
800 if test "${ac_cv_have_plugins}" = "no"; then
801   AC_CHECK_HEADERS(image.h)
802   AC_CHECK_FUNCS(load_add_on,
803    [AC_DEFINE(HAVE_DL_BEOS, 1, [Define if you have the BeOS dl])
804     ac_cv_have_plugins=yes])
807 # Only test for dlopen() if the others didn't work
808 if test "${ac_cv_have_plugins}" = "no" -o "${SYS}" = "darwin"; then
809   AC_CHECK_HEADERS(dlfcn.h sys/dl.h)
810   ac_cv_my_have_dlopen=no
811   AC_CHECK_FUNC(dlopen,
812     ac_cv_my_have_dlopen=yes,
813     AC_CHECK_LIB(dl, dlopen,
814       ac_cv_my_have_dlopen=yes
815       VLC_ADD_LIBS([libvlccore realaudio realvideo lua],[-ldl]),
816       AC_CHECK_LIB(svld, dlopen,
817         ac_cv_my_have_dlopen=yes
818         VLC_ADD_LIBS([libvlccore],[-lsvld]))))
819   if test "${ac_cv_my_have_dlopen}" = "yes"; then
820     AC_DEFINE(HAVE_DL_DLOPEN, 1, [Define if you have the dlopen API])
821     ac_cv_have_plugins=yes
822   fi
825 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
826 dnl Check for pthreads - borrowed from XMMS
827 THREAD_LIB=error
828 if test "${THREAD_LIB}" = "error"; then
829   AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
831 if test "${THREAD_LIB}" = "error"; then
832   AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
834 if test "${THREAD_LIB}" = "error"; then
835   AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
837 if test "${THREAD_LIB}" = "error"; then
838   AC_CHECK_FUNCS(pthread_mutex_lock)
839   THREAD_LIB=""
842 VLC_ADD_LIBS([libvlccore libvlc plugin],[${THREAD_LIB}])
844 AC_CHECK_LIB(rt, clock_nanosleep, [
845   VLC_ADD_LIBS([libvlccore],[-lrt])
846   AC_DEFINE(HAVE_CLOCK_NANOSLEEP, 1, [Define to 1 if you have clock_nanosleep.])
847 ], [
848   dnl HP/UX port
849   AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LIBS([libvlccore],[-lrt])])
852 have_nanosleep=false
853 AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[
854   AC_CHECK_LIB(rt,nanosleep,
855     [VLC_ADD_LIBS([libvlccore],[-lrt]) have_nanosleep=:],
856     [AC_CHECK_LIB(posix4,nanosleep,
857         [VLC_ADD_LIBS([libvlccore],[-lposix4]) have_nanosleep=:])]
858   )
860 if ${have_nanosleep}; then
861   AC_DEFINE(HAVE_NANOSLEEP, 1, [Define if nanosleep is available.])
863 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
865 dnl Check for misc headers
866 AC_MSG_CHECKING(for strncasecmp in strings.h)
867 AC_EGREP_HEADER(strncasecmp,strings.h,[
868   AC_MSG_RESULT(yes)
869   AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
870             Define if <strings.h> defines strncasecmp.)],[
871   AC_MSG_RESULT(no)])
873 dnl Check for headers
874 AC_CHECK_HEADERS(getopt.h strings.h locale.h xlocale.h)
875 AC_CHECK_HEADERS(fcntl.h sys/types.h sys/time.h sys/times.h sys/ioctl.h sys/stat.h sys/mount.h)
876 AC_CHECK_HEADERS([arpa/inet.h netinet/in.h netinet/udplite.h sys/eventfd.h])
877 AC_CHECK_HEADERS([net/if.h], [], [],
878   [
879     #include <sys/types.h>
880     #include <sys/socket.h>
881   ])
882 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
883 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
884 AC_CHECK_HEADERS([linux/version.h linux/dccp.h scsi/scsi.h linux/magic.h])
885 AC_CHECK_HEADERS(syslog.h)
886 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
888 AC_HEADER_TIME
890 dnl LP64 adn LLP64 architectures had better define ssize_t by themselves...
891 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.])
892 AC_CHECK_TYPE(ssize_t,, [
893   AC_DEFINE(ssize_t, int)
896 dnl Check for poll
897 AC_SEARCH_LIBS(poll, [poll], [AC_DEFINE(HAVE_POLL, 1, [Define to 1 if the OS is usabl... err, has poll().])], [
898 if test ${SYS} != "mingw32" -a ${SYS} != "mingwce"
899 then
900     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])
904 dnl Check for dirent
905 need_dirent=false
906 AC_CHECK_HEADERS(dirent.h,,[need_dirent=:])
907 AM_CONDITIONAL(BUILD_DIRENT, ${need_dirent})
909 dnl Mac OS X and other OSes don't have declaration for nanosleep
910 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
911 AC_MSG_CHECKING(for nanosleep in time.h)
912 AC_EGREP_HEADER(nanosleep,time.h,[
913   AC_MSG_RESULT(yes)
914   AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
915             Define if <time.h> defines nanosleep.)
917   AC_MSG_RESULT(no)
919 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
921 dnl Make sure we have timespecs
922 AC_MSG_CHECKING(for timespec in sys/time.h)
923 AC_EGREP_HEADER(timespec,sys/time.h,[
924   AC_MSG_RESULT(yes)
925   AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
926             Define if <sys/time.h> defines struct timespec.)
928   AC_MSG_RESULT(no)
931 dnl Check for threads library
932 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
933 AC_CHECK_HEADERS(pthread.h)
934 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
936 dnl It seems that autoconf detects pkg-config only during the first
937 dnl PKG_CHECK_MODULES from configure.ac - which makes sense. But in our case,
938 dnl it is nested within a conditional block, so it was not working right.
939 dnl Make PKG_CONFIG_PATH precious so that it appears in the help and get saved
940 AC_ARG_VAR(PKG_CONFIG_PATH,
941            [Paths where to find .pc not at the default location])
942 PKG_PROG_PKG_CONFIG()
944 dnl On some OS we need static linking 
945 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "darwin" ],[
946        PKG_CONFIG="${PKG_CONFIG} --static"
947     ])
951 dnl Check for zlib.h and -lz along with system -lminizip if available
952 dnl 
953 AC_CHECK_HEADERS(zlib.h, [ have_zlib=yes ], [ have_zlib=no ])
954 AM_CONDITIONAL(HAVE_ZLIB, [ test "${have_zlib}" = "yes" ])
955 if test "${have_zlib}" = "yes"
956 then
957   VLC_ADD_LIBS([access_http gme mp4 skins2 sap mkv unzip zip],[-lz])
958   PKG_CHECK_MODULES([MINIZIP], [minizip] , [ have_minizip=yes ], [
959     AC_CHECK_HEADERS([unzip.h], [ 
960       have_minizip=yes
961       MINIZIP_LIBS="-lminizip -lz"
962     ], [
963       have_minizip=no
964       MINIZIP_CFLAGS="-I\\\${top_srcdir}/libs/unzip"
965       MINIZIP_LIBS="\\\${top_builddir}/libs/unzip/libunzip.la"
966     ])
967   ])
968   VLC_ADD_CPPFLAGS([skins2],[$MINIZIP_CFLAGS])
969   VLC_ADD_CFLAGS([zip],[$MINIZIP_CFLAGS])
970   VLC_ADD_LIBS([skins2 zip],[$MINIZIP_LIBS])
971   VLC_ADD_PLUGIN([unzip])
972   VLC_ADD_PLUGIN([zip])
974 AM_CONDITIONAL(HAVE_MINIZIP, [ test "${have_minizip}" = "yes" ])
977 dnl Check for dbus
978 AC_ARG_ENABLE(dbus,
979   [  --enable-dbus           Linux D-BUS message bus system (default enabled)])
980 case "${SYS}" in
981     linux*|*bsd*)
982 if test "${enable_dbus}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
983 then
984   dnl api stable dbus
985   PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.0.0,
986     [ AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
987       VLC_ADD_LIBS([libvlccore],[$DBUS_LIBS])
988       VLC_ADD_CFLAGS([libvlccore],[$DBUS_CFLAGS])
989       dnl Check for dbus control interface
990         AC_ARG_ENABLE(dbus-control, [  --disable-dbus-control  D-BUS control interface (default enabled)])
991         if test "${enable_dbus_control}" != "no"
992         then
993           VLC_ADD_PLUGIN([dbus])
994           VLC_ADD_LIBS([dbus],[$DBUS_LIBS])
995           VLC_ADD_CFLAGS([dbus],[$DBUS_CFLAGS])
996         fi
997       dnl Check for Telepathy
998         AC_ARG_ENABLE(telepathy,
999           AS_HELP_STRING([--enable-telepathy],[Telepathy Presence plugin through DBus(default enabled)]))
1000         if test "${enable_telepathy}" != "no"; then
1001           VLC_ADD_PLUGIN([telepathy])
1002           VLC_ADD_LIBS([telepathy],[$DBUS_LIBS])
1003           VLC_ADD_CFLAGS([telepathy],[$DBUS_CFLAGS])
1004         fi
1005         dnl Power Management Inhibiter
1006         VLC_ADD_PLUGIN([inhibit])
1007         VLC_ADD_LIBS([inhibit],[$DBUS_LIBS])
1008         VLC_ADD_CFLAGS([inhibit],[$DBUS_CFLAGS])
1009     ],
1010     [AC_MSG_ERROR([Couldn't find DBus >= 1.0.0, install libdbus-dev ?])]
1011   )
1014 esac
1016 dnl build the qte plugin ?
1017 NEED_QTE_MAIN=no
1019 dnl Check for ntohl, etc.
1020 AC_CACHE_CHECK([for ntohl in sys/param.h],
1021     [ac_cv_c_ntohl_sys_param_h],
1022     [CFLAGS="${CFLAGS_save} -Wall -Werror"
1023      AC_TRY_COMPILE([#include <sys/param.h>],
1024         [int meuh; ntohl(meuh);],
1025         ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
1026 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
1027     AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
1029 CFLAGS="${CFLAGS_save}"
1031 RDC_PROG_CC_WFLAGS([all extra sign-compare undef pointer-arith bad-function-cast write-strings missing-prototypes volatile-register-var error-implicit-function-declaration])
1032 RDC_PROG_CC_FLAGS([-pipe])
1034 AC_ARG_ENABLE(warnings-as-error,
1035       AS_HELP_STRING([--enable-warnings-as-error],[Treat acceptable warnings as error (default disabled)]),, [enable_warnings_as_error="no"])
1036 AS_IF([test "${enable_warnings_as_error}" = "yes"], [
1037     RDC_PROG_CC_WERRORFLAGS([unused-function unused-label unused-value unused-parameter unused-variable unused \
1038      missing-braces nonnull parentheses uninitialized address enum-compare undef comment switch \
1039      bad-function-cast implicit sequence-point strict-aliasing array-bounds missing-parameter-type \
1040      overflow int-to-pointer-cast pointer-to-int-cast div-by-zero overflow ignored])
1042 AC_SUBST(CFLAGS_WERROR)
1044 dnl Check for various optimization flags
1045 AC_CACHE_CHECK([if \$CC accepts -Os],
1046     [ac_cv_c_os],
1047     [CFLAGS="${CFLAGS_save} -Os"
1048      AC_TRY_COMPILE([],,ac_cv_c_os=yes, ac_cv_c_os=no)])
1049 if test "${ac_cv_c_os}" != "no"; then
1050     CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -Os"
1051 else
1052     AC_CACHE_CHECK([if \$CC accepts -O],
1053         [ac_cv_c_o],
1054         [CFLAGS="${CFLAGS_save} -O"
1055          AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
1056     if test "${ac_cv_c_o}" != "no"; then
1057         if test "${ac_cv_c_o3}" = "no"; then
1058             CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -O"
1059         fi
1060     fi
1063 AC_CACHE_CHECK([if \$CC accepts -O4],
1064     [ac_cv_c_o4],
1065     [CFLAGS="${CFLAGS_save} -O4"
1066      AC_TRY_COMPILE([],,ac_cv_c_o4=yes, ac_cv_c_o4=no)])
1067 if test "${ac_cv_c_o4}" != "no" -a "x${enable_debug}" = "xno"; then
1068     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O4"
1069 else
1070     AC_CACHE_CHECK([if \$CC accepts -O3],
1071         [ac_cv_c_o3],
1072         [CFLAGS="${CFLAGS_save} -O3"
1073          AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
1074     if test "${ac_cv_c_o3}" != "no" -a "x${enable_debug}" = "xno"; then
1075         CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O3"
1076     else
1077         AC_CACHE_CHECK([if \$CC accepts -O2],
1078             [ac_cv_c_o2],
1079             [CFLAGS="${CFLAGS_save} -O2"
1080              AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
1081         if test "${ac_cv_c_o2}" != "no"; then
1082             CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O2"
1083         else
1084             AC_CACHE_CHECK([if \$CC accepts -O],
1085                 [ac_cv_c_o],
1086                 [CFLAGS="${CFLAGS_save} -O"
1087                  AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
1088             if test "${ac_cv_c_o}" != "no"; then
1089                 CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O"
1090             fi
1091         fi
1092     fi
1095 AC_CACHE_CHECK([if \$CC accepts -O0],
1096     [ac_cv_c_o0],
1097     [CFLAGS="${CFLAGS_save} -O0"
1098      AC_TRY_COMPILE([],,ac_cv_c_o0=yes, ac_cv_c_o0=no)])
1099 if test "${ac_cv_c_o0}" != "no"; then
1100     CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O0"
1103 dnl Check for -ffast-math
1104 AC_CACHE_CHECK([if \$CC accepts -ffast-math],
1105     [ac_cv_c_fast_math],
1106     [CFLAGS="${CFLAGS_save} -ffast-math"
1107      AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
1108 if test "${ac_cv_c_fast_math}" != "no"; then
1109     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -ffast-math"
1112 dnl Check for -funroll-loops
1113 dnl Disabled on BeOS because BeOS' gcc is buggy and may crash with it
1114 if test "${SYS}" != "beos"
1115 then
1116   AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
1117       [ac_cv_c_unroll_loops],
1118       [CFLAGS="${CFLAGS_save} -funroll-loops"
1119        AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
1120   if test "${ac_cv_c_unroll_loops}" != "no"; then
1121       CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -funroll-loops"
1122   fi
1125 dnl Check for -fomit-frame-pointer
1126 AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
1127     [ac_cv_c_omit_frame_pointer],
1128     [CFLAGS="${CFLAGS_save} -fomit-frame-pointer"
1129      AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
1130 if test "${ac_cv_c_omit_frame_pointer}" != "no"; then
1131  if test "${SYS}" != "darwin"; then
1132     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
1133  else
1134     dnl On darwin we explicitely disable it.
1135     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fno-omit-frame-pointer"
1136  fi
1139 dnl Check for Darwin plugin linking flags
1140 AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error],
1141     [ac_cv_ld_darwin],
1142     [CFLAGS="${CFLAGS_save} -bundle -undefined error"
1143      AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
1144 if test "${ac_cv_ld_darwin}" != "no"; then
1145     VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
1148 dnl Checks for __attribute__(aligned()) directive
1149 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1150     [ac_cv_c_attribute_aligned],
1151     [ac_cv_c_attribute_aligned=0
1152         CFLAGS="${CFLAGS_save} -Werror"
1153     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1154         AC_TRY_COMPILE([],
1155         [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1156         [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1157     done
1158         CFLAGS="${CFLAGS_save}"])
1159 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1160     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1161         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1164 dnl Check for __attribute__((packed))
1165 AC_CACHE_CHECK([for __attribute__((packed))],
1166   [ac_cv_c_attribute_packed],
1167   [ac_cv_c_attribute_packed=no
1168    AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b; (void)b;],
1169                     [ac_cv_c_attribute_packed=yes])])
1170 if test "${ac_cv_c_attribute_packed}" != "no"; then
1171   AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1175 dnl  Check the CPU
1177 case "${host_cpu}" in
1178   "")
1179     ARCH=unknown
1180     ;;
1181   *)
1182     ARCH="${host_cpu}"
1183     ;;
1184 esac
1186 dnl Check for backtrace() support
1187 AC_CHECK_HEADERS(execinfo.h)
1188 AC_CHECK_FUNCS(backtrace)
1191 dnl  Enable profiling
1193 AC_ARG_ENABLE(gprof,
1194 [  --enable-gprof          gprof profiling (default disabled)])
1195 AC_ARG_ENABLE(cprof,
1196 [  --enable-cprof          cprof profiling (default disabled)])
1197 test "${enable_gprof}" != "yes" && enable_gprof="no"
1198 test "${enable_cprof}" != "yes" && enable_cprof="no"
1201 dnl  default modules
1203 dnl Video filters:
1204 VLC_ADD_PLUGIN([deinterlace])
1205 VLC_ADD_PLUGIN([yuvp])
1206 VLC_ADD_PLUGIN([invert])
1207 VLC_ADD_PLUGIN([mirror])
1208 VLC_ADD_PLUGIN([adjust])
1209 VLC_ADD_PLUGIN([transform])
1210 VLC_ADD_PLUGIN([wave])
1211 VLC_ADD_PLUGIN([ripple])
1212 VLC_ADD_PLUGIN([psychedelic])
1213 VLC_ADD_PLUGIN([gradient])
1214 VLC_ADD_PLUGIN([motionblur])
1215 VLC_ADD_PLUGIN([rv32])
1216 VLC_ADD_PLUGIN([rotate])
1217 VLC_ADD_PLUGIN([noise])
1218 VLC_ADD_PLUGIN([grain])
1219 VLC_ADD_PLUGIN([extract])
1220 VLC_ADD_PLUGIN([sharpen])
1221 VLC_ADD_PLUGIN([croppadd])
1222 VLC_ADD_PLUGIN([canvas])
1223 VLC_ADD_PLUGIN([blendbench])
1224 VLC_ADD_PLUGIN([blend])
1225 VLC_ADD_PLUGIN([scale])
1226 VLC_ADD_PLUGIN([vmem])
1227 VLC_ADD_PLUGIN([logo])
1228 VLC_ADD_PLUGIN([audiobargraph_v])
1229 VLC_ADD_PLUGIN([magnify])
1230 VLC_ADD_PLUGIN([puzzle])
1231 VLC_ADD_PLUGIN([colorthres])
1232 VLC_ADD_PLUGIN([scene])
1233 VLC_ADD_PLUGIN([yuv])
1235 ALIASES="${ALIASES} cvlc"
1238 dnl default modules that need g++
1240 AC_LANG_PUSH(C++)
1241 VLC_ADD_PLUGIN([spatializer])
1242 AC_LANG_POP(C++)
1244 if test "${SYS}" != "mingwce"; then
1245   VLC_ADD_PLUGIN([gestures])
1246   VLC_ADD_PLUGIN([rc])
1247   VLC_ADD_PLUGIN([hotkeys])
1248   VLC_ADD_PLUGIN([showintf])
1249   VLC_ADD_PLUGIN([marq])
1250   VLC_ADD_PLUGIN([podcast])
1251   VLC_ADD_PLUGIN([shout])
1252   VLC_ADD_PLUGIN([sap])
1253   VLC_ADD_PLUGIN([mediadirs])
1254   VLC_ADD_PLUGIN([fake])
1255   VLC_ADD_PLUGIN([folder])
1256   VLC_ADD_PLUGIN([rss])
1257   VLC_ADD_PLUGIN([mosaic])
1258   VLC_ADD_PLUGIN([wall])
1259   VLC_ADD_PLUGIN([motiondetect])
1260   VLC_ADD_PLUGIN([clone])
1261   VLC_ADD_PLUGIN([crop])
1262   VLC_ADD_PLUGIN([erase])
1263   VLC_ADD_PLUGIN([bluescreen])
1264   VLC_ADD_PLUGIN([alphamask])
1265   VLC_ADD_PLUGIN([gaussianblur])
1266   VLC_ADD_PLUGIN([i420_yuy2])
1267   VLC_ADD_PLUGIN([i422_yuy2])
1268   VLC_ADD_PLUGIN([i420_ymga])
1269   VLC_ADD_PLUGIN([i422_i420])
1270   VLC_ADD_PLUGIN([yuy2_i422])
1271   VLC_ADD_PLUGIN([yuy2_i420])
1272   VLC_ADD_PLUGIN([chain])
1273   VLC_ADD_PLUGIN([aout_file])
1274   VLC_ADD_PLUGIN([linear_resampler])
1275   VLC_ADD_PLUGIN([bandlimited_resampler])
1276   VLC_ADD_PLUGIN([float32_mixer])
1277   VLC_ADD_PLUGIN([spdif_mixer])
1278   VLC_ADD_PLUGIN([simple_channel_mixer])
1279   VLC_ADD_PLUGIN([dolby_surround_decoder])
1280   VLC_ADD_PLUGIN([headphone_channel_mixer])
1281   VLC_ADD_PLUGIN([normvol])
1282   VLC_ADD_PLUGIN([audiobargraph_a])
1283   VLC_ADD_PLUGIN([equalizer])
1284   VLC_ADD_PLUGIN([param_eq])
1285   VLC_ADD_PLUGIN([scaletempo])
1286   VLC_ADD_PLUGIN([a52tospdif])
1287   VLC_ADD_PLUGIN([dtstospdif])
1288   ALIASES="${ALIASES} rvlc"
1291 if test "${SYS}" = "mingwce"; then
1292   VLC_ADD_PLUGIN([chain])
1293   VLC_ADD_PLUGIN([aout_file])
1294   VLC_ADD_PLUGIN([linear_resampler])
1295   VLC_ADD_PLUGIN([bandlimited_resampler])
1296   VLC_ADD_PLUGIN([float32_mixer])
1297   VLC_ADD_PLUGIN([spdif_mixer])
1298   VLC_ADD_PLUGIN([simple_channel_mixer])
1299   VLC_ADD_PLUGIN([headphone_channel_mixer])
1300   VLC_ADD_PLUGIN([normvol])
1301   VLC_ADD_PLUGIN([audiobargraph_a])
1302   VLC_ADD_PLUGIN([a52tospdif])
1303   VLC_ADD_PLUGIN([dtstospdif])
1304   VLC_ADD_PLUGIN([i420_yuy2])
1305   VLC_ADD_PLUGIN([i422_yuy2])
1306   VLC_ADD_PLUGIN([i420_ymga])
1307   VLC_ADD_PLUGIN([i422_i420])
1308   VLC_ADD_PLUGIN([yuy2_i422])
1309   VLC_ADD_PLUGIN([yuy2_i420])
1313 dnl Some plugins aren't useful on some platforms
1315 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1316     VLC_ADD_PLUGIN([screensaver])
1317     VLC_ADD_PLUGIN([motion])
1318     VLC_ADD_PLUGIN([dynamicoverlay])
1319     VLC_ADD_PLUGIN([signals])
1320 elif test "${SYS}" != "mingwce"; then
1321     VLC_ADD_PLUGIN([ntservice])
1322     VLC_ADD_PLUGIN([access_smb])
1323     VLC_ADD_PLUGIN([dmo])
1324     VLC_ADD_PLUGIN([msn])
1325     VLC_ADD_LIBS([dmo],[-lole32 -luuid])
1326     VLC_ADD_PLUGIN([globalhotkeys])
1327 else
1328     VLC_ADD_PLUGIN([win32text])
1330 if test "${SYS}" = "darwin"; then
1331     VLC_ADD_PLUGIN([quartztext])
1332     VLC_ADD_LDFLAGS([quartztext],[-Wl,-framework,ApplicationServices])
1336 dnl  Accelerated modules
1338 AC_ARG_WITH(,[])
1339 AC_ARG_WITH(,[Optimization options:])
1341 dnl  Check for fully working MMX intrinsics
1342 dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a
1343 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1344 AC_ARG_ENABLE(mmx,
1345 [  --disable-mmx           disable MMX optimizations (default auto)],,[
1346   case "${host_cpu}" in
1347     i?86|x86_64)
1348       enable_mmx="yes"
1349       ;;
1350     *)
1351       enable_mmx="no"
1352       ;;
1353   esac
1355 AS_IF([test "${enable_mmx}" != "no"], [
1356   ARCH="${ARCH} mmx"
1358   AC_CACHE_CHECK([if $CC groks MMX intrinsics],
1359     [ac_cv_c_mmx_intrinsics],
1360     [CFLAGS="${CFLAGS_save} -O -mmmx"
1361      AC_TRY_COMPILE([#include <mmintrin.h>
1362                      #include <stdint.h>
1363                      uint64_t frobzor;],
1364                     [__m64 a, b, c;
1365                      a = b = c = (__m64)frobzor;
1366                      a = _mm_slli_pi16(a, 3);
1367                      a = _mm_adds_pi16(a, b);
1368                      c = _mm_srli_pi16(c, 8);
1369                      c = _mm_slli_pi16(c, 3);
1370                      b = _mm_adds_pi16(b, c);
1371                      a = _mm_unpacklo_pi8(a, b);
1372                      frobzor = (uint64_t)a;],
1373                     [ac_cv_c_mmx_intrinsics=yes],
1374                     [ac_cv_c_mmx_intrinsics=no])])
1375   AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1376     AC_DEFINE(HAVE_MMX_INTRINSICS, 1,
1377               [Define to 1 if MMX intrinsics are available.])
1378     VLC_ADD_CFLAGS([memcpymmx i420_rgb_mmx i420_yuy2_mmx i422_yuy2_mmx i420_ymga_mmx],[-mmmx])
1379   ])
1381   AC_CACHE_CHECK([if $CC groks MMX inline assembly],
1382     [ac_cv_mmx_inline],
1383     [CFLAGS="${CFLAGS_save}"
1384      AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
1385                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
1386   AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1387     AC_DEFINE(CAN_COMPILE_MMX, 1,
1388               [Define to 1 inline MMX assembly is available.])
1389     VLC_ADD_PLUGIN([memcpymmx])
1390     VLC_ADD_PLUGIN([i420_rgb_mmx])
1391     VLC_ADD_PLUGIN([i420_yuy2_mmx])
1392     VLC_ADD_PLUGIN([i422_yuy2_mmx])
1393     VLC_ADD_PLUGIN([i420_ymga_mmx])
1394   ])
1396   AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1397     [ac_cv_mmxext_inline],
1398     [CFLAGS="${CFLAGS_save}"
1399      AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
1400                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
1401   AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1402     AC_DEFINE(CAN_COMPILE_MMXEXT, 1,
1403               [Define to 1 if MMX EXT inline assembly is available.])
1404     VLC_ADD_PLUGIN([memcpymmxext])
1405   ])
1408 dnl  Check for fully workin SSE2 intrinsics
1409 dnl  We need support for -mmmx, we need <emmintrin.h>, and we also need a
1410 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1411 AC_ARG_ENABLE(sse,
1412 [  --disable-sse           disable SSE (1, 2, 3 and 4) optimizations (default auto)]
1413 ,, [
1414   case "${host_cpu}" in
1415     i686|x86_64)
1416       enable_sse=yes
1417       ;;
1418     *)
1419       enable_sse=no
1420       ;;
1421   esac
1423 AS_IF([test "${enable_sse}" != "no"], [
1424   ARCH="${ARCH} sse sse2"
1426   AC_CACHE_CHECK([if $CC groks SSE2 intrinsics],
1427     [ac_cv_c_sse2_intrinsics],
1428     [CFLAGS="${CFLAGS_save} -O -msse2"
1429      AC_TRY_COMPILE([#include <emmintrin.h>
1430                      #include <stdint.h>
1431                      uint64_t frobzor;],
1432                     [__m128i a, b, c;
1433                      a = b = c = _mm_set1_epi64((__m64)frobzor);
1434                      a = _mm_slli_epi16(a, 3);
1435                      a = _mm_adds_epi16(a, b);
1436                      c = _mm_srli_epi16(c, 8);
1437                      c = _mm_slli_epi16(c, 3);
1438                      b = _mm_adds_epi16(b, c);
1439                      a = _mm_unpacklo_epi8(a, b);
1440                      frobzor = (uint64_t)_mm_movepi64_pi64(a);],
1441                     [ac_cv_c_sse2_intrinsics=yes],
1442                     [ac_cv_c_sse2_intrinsics=no])])
1443   AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1444     AC_DEFINE(HAVE_SSE2_INTRINSICS, 1,
1445               [Define to 1 if SSE2 intrinsics are available.])
1446     VLC_ADD_CFLAGS([i420_rgb_sse2 i420_yuy2_sse2 i422_yuy2_sse2],[-msse2])
1447   ])
1449   AC_CACHE_CHECK([if $CC groks SSE inline assembly],
1450     [ac_cv_sse_inline],
1451     [CFLAGS="${CFLAGS_save}"
1452      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
1453                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
1454   AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1455     AC_DEFINE(CAN_COMPILE_SSE, 1,
1456               [Define to 1 if SSE inline assembly is available.])
1457   ])
1459   AC_CACHE_CHECK([if $CC groks SSE2 inline assembly],
1460     [ac_cv_sse2_inline],
1461     [CFLAGS="${CFLAGS_save}"
1462      AC_TRY_COMPILE(,[void *p;asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p));],
1463                     ac_cv_sse2_inline=yes, ac_cv_sse2_inline=no)])
1464   AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1465     AC_DEFINE(CAN_COMPILE_SSE2, 1,
1466               [Define to 1 if SSE2 inline assembly is available.])
1467     VLC_ADD_PLUGIN([i420_rgb_sse2])
1468     VLC_ADD_PLUGIN([i420_yuy2_sse2])
1469     VLC_ADD_PLUGIN([i422_yuy2_sse2])
1470   ])
1472   # SSE3
1473   AC_CACHE_CHECK([if $CC groks SSE3 inline assembly],
1474     [ac_cv_sse3_inline],
1475     [CFLAGS="${CFLAGS_save}"
1476      AC_TRY_COMPILE(,[void *p;asm volatile("movsldup %%xmm1,%%xmm0"::"r"(p));],
1477                     ac_cv_sse3_inline=yes, ac_cv_sse3_inline=no)])
1478   AS_IF([test "${ac_cv_sse3_inline}" != "no"], [
1479     AC_DEFINE(CAN_COMPILE_SSE3, 1,
1480               [Define to 1 if SSE3 inline assembly is available.]) ])
1481   # SSSE3
1482   AC_CACHE_CHECK([if $CC groks SSSE3 inline assembly],
1483     [ac_cv_ssse3_inline],
1484     [CFLAGS="${CFLAGS_save}"
1485      AC_TRY_COMPILE(,[void *p;asm volatile("pabsw %%xmm0,%%xmm0"::"r"(p));],
1486                     ac_cv_ssse3_inline=yes, ac_cv_ssse3_inline=no)])
1487   AS_IF([test "${ac_cv_ssse3_inline}" != "no"], [
1488     AC_DEFINE(CAN_COMPILE_SSSE3, 1,
1489               [Define to 1 if SSSE3 inline assembly is available.]) ])
1491   # SSE4.1
1492   AC_CACHE_CHECK([if $CC groks SSE4.1 inline assembly],
1493     [ac_cv_sse4_1_inline],
1494     [CFLAGS="${CFLAGS_save}"
1495      AC_TRY_COMPILE(,[void *p;asm volatile("pmaxsb %%xmm1,%%xmm0"::"r"(p));],
1496                     ac_cv_sse4_1_inline=yes, ac_cv_sse4_1_inline=no)])
1497   AS_IF([test "${ac_cv_sse4_1_inline}" != "no"], [
1498     AC_DEFINE(CAN_COMPILE_SSE4_1, 1,
1499               [Define to 1 if SSE4_1 inline assembly is available.]) ])
1501   # SSE4.2
1502   AC_CACHE_CHECK([if $CC groks SSE4.2 inline assembly],
1503     [ac_cv_sse4_2_inline],
1504     [CFLAGS="${CFLAGS_save}"
1505      AC_TRY_COMPILE(,[void *p;asm volatile("pcmpgtq %%xmm1,%%xmm0"::"r"(p));],
1506                     ac_cv_sse4_2_inline=yes, ac_cv_sse4_2_inline=no)])
1507   AS_IF([test "${ac_cv_sse4_2_inline}" != "no"], [
1508     AC_DEFINE(CAN_COMPILE_SSE4_2, 1,
1509               [Define to 1 if SSE4_2 inline assembly is available.]) ])
1511   # SSE4A
1512   AC_CACHE_CHECK([if $CC groks SSE4A inline assembly],
1513     [ac_cv_sse4a_inline],
1514     [CFLAGS="${CFLAGS_save}"
1515      AC_TRY_COMPILE(,[void *p;asm volatile("insertq %%xmm1,%%xmm0"::"r"(p));],
1516                     ac_cv_sse4a_inline=yes, ac_cv_sse4a_inline=no)])
1517   AS_IF([test "${ac_cv_sse4a_inline}" != "no"], [
1518     AC_DEFINE(CAN_COMPILE_SSE4A, 1,
1519               [Define to 1 if SSE4A inline assembly is available.]) ])
1522 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly],
1523     [ac_cv_3dnow_inline],
1524     [CFLAGS="${CFLAGS_save}"
1525      AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
1526                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
1527 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1528   AC_DEFINE(CAN_COMPILE_3DNOW, 1,
1529             [Define to 1 if 3D Now! inline assembly is available.])
1530   VLC_ADD_PLUGIN([memcpy3dn])
1534 AC_ARG_ENABLE(neon,
1535 [ --disable-neon           disable NEON optimizations (default auto)],, [
1536   AS_IF([test "${host_cpu}" = "arm"], [enable_neon="yes"] ,[enable_neon="no"])
1538 AS_IF([test "${enable_neon}" != "no"], [
1539   AC_CACHE_CHECK([if $CC groks NEON inline assembly], [ac_cv_neon_inline], [
1540     AC_COMPILE_IFELSE([
1541       AC_LANG_PROGRAM(,[[asm volatile("vqmovun.s64 d0, q1":::"d0");]])
1542     ], [
1543       ac_cv_neon_inline="yes"
1544     ], [
1545       ac_cv_neon_inline="no"
1546     ])
1547   ])
1549 AM_CONDITIONAL(HAVE_NEON, [test "${ac_cv_neon_inline}" = "yes"])
1551 AC_ARG_ENABLE(altivec,
1552 [  --disable-altivec       disable AltiVec optimizations (default auto)],, [
1553   AS_IF([test "${host_cpu}" = "powerpc"],
1554         [enable_altivec=yes], [enable_altivec=no])
1556 AS_IF([test "${enable_altivec}" = "yes"], [
1557   ARCH="${ARCH} altivec";
1558   AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1559     [ac_cv_altivec_inline],
1560     [CFLAGS="${CFLAGS_save}"
1561      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1562          ac_cv_altivec_inline="yes",
1563          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
1564           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1565             [ac_cv_altivec_inline="-Wa,-m7400"],
1566             ac_cv_altivec_inline=no)
1567          ])])
1568   AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1569     AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1570               [Define to 1 if AltiVec inline assembly is available.])
1571     AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1572       VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
1573       VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
1574       VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1575       VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1576       VLC_ADD_CFLAGS([libvlccore],[${ac_cv_altivec_inline}])
1577     ])
1578     VLC_ADD_PLUGIN([memcpyaltivec])
1579     VLC_ADD_PLUGIN([i420_yuy2_altivec])
1580   ])
1582 dnl The AltiVec C extensions
1584 dnl There are several possible cases:
1585 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1586 dnl                      need <altivec.h>
1587 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1588 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1589 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1590 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1591 dnl - Others: test should fail
1592   AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1593   [ac_cv_c_altivec],
1594   [# OS X/PPC test (gcc 4.x)
1595    CFLAGS="${CFLAGS_save} -mpim-altivec -force_cpusubtype_ALL"
1596    AC_TRY_COMPILE([vector unsigned char foo;],
1597      [vec_ld(0, (unsigned char *)0);],
1598      [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1599      [# OS X/PPC test (gcc 3.x)
1600       CFLAGS="${CFLAGS_save} -faltivec"
1601       AC_TRY_COMPILE([vector unsigned char foo;],
1602         [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1603         [ac_cv_c_altivec="-faltivec"],
1604         dnl Below this are the Linux tests
1605         [# Linux/PPC test (gcc 4.x)
1606          CFLAGS="${CFLAGS_save} -maltivec"
1607          AC_TRY_COMPILE([#include <altivec.h>],
1608            [vec_ld(0, (unsigned char *)0);],
1609            [ac_cv_c_altivec="-maltivec"],
1610            [# Linux/PPC test (gcc 3.3)
1611             CFLAGS="${CFLAGS_save} -maltivec -mabi=altivec"
1612             AC_TRY_COMPILE([#include <altivec.h>],
1613               [vec_ld(0, (unsigned char *)0);],
1614               [ac_cv_c_altivec=""
1615                ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1616               [# Linux/PPC test (gcc 3.3)
1617                CFLAGS="${CFLAGS_save} -fvec"
1618                AC_TRY_COMPILE([#include <altivec.h>],
1619                  [vec_ld(0, (unsigned char *)0);],
1620                  [ac_cv_c_altivec="-fvec"],
1621                  [ac_cv_c_altivec=no])
1622               ])
1623            ])
1624         ])
1625      ])
1626    CFLAGS="${CFLAGS_save}"
1627   ])
1628   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1629     CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
1630   ])
1632   AC_CHECK_HEADERS(altivec.h)
1633   CPPFLAGS="${CPPFLAGS_save}"
1635   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1636     AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1,
1637               [Define to 1 if C AltiVec extensions are available.])
1638     VLC_ADD_CFLAGS([libvlccore],[${ac_cv_c_altivec}])
1639     VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
1640     VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1641     VLC_ADD_PLUGIN([memcpyaltivec])
1642     VLC_ADD_PLUGIN([i420_yuy2_altivec])
1643   ])
1645   AC_CACHE_CHECK([if linker needs -framework vecLib],
1646     [ac_cv_ld_altivec],
1647     [LDFLAGS="${LDFLAGS_vlc} -Wl,-framework,vecLib"
1648      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
1649      LDFLAGS="${LDFLAGS_save}"
1650     ])
1651   AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1652     VLC_ADD_LDFLAGS([libvlccore idctaltivec motionaltivec memcpyaltivec],[-Wl,-framework,vecLib])
1653   ])
1657 dnl  Special arch tuning
1659 AC_ARG_WITH(tuning,
1660 [  --with-tuning=ARCH      enable special tuning for an architecture
1661                           (default Pentium 2 on IA-32 and G4 on PPC)])
1662 if test -n "${with_tuning}"; then
1663     if test "${with_tuning}" != "no"; then
1664         CFLAGS_TUNING="-mtune=${with_tuning}"
1665     fi
1666 else
1667     if test "${SYS}" = "darwin" -a "${host_cpu}" != "powerpc"; then
1668         CFLAGS_TUNING="-march=prescott -mtune=generic"
1669     elif test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "i386"; then
1670         CFLAGS_TUNING="-mtune=pentium2"
1671     elif test "${host_cpu}" = "x86_64"; then
1672         CFLAGS_TUNING="-mtune=athlon64"
1673     elif test "${host_cpu}" = "powerpc"; then
1674         CFLAGS_TUNING="-mtune=G4";
1675     fi
1678 dnl NOTE: this can't be cached cleanly
1679 AS_IF([test "${CFLAGS_TUNING}"],
1680    [CFLAGS_save="${CFLAGS}"
1681     CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1683     AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1684     AC_COMPILE_IFELSE([ ],
1685                       [tuning="yes"],
1686                       [CFLAGS_TUNING=""; tuning="no"
1687                        AS_IF([test "${with_tuning}"],
1688                              [AC_MSG_ERROR([requested tuning not supported])])])
1690     AC_MSG_RESULT([$tuning])
1691     CFLAGS="${CFLAGS_save}"
1695 dnl  Memory usage
1697 AC_ARG_ENABLE(optimize-memory,
1698 [  --enable-optimize-memory optimize memory usage over performance])
1699 if test "${enable_optimize_memory}" = "yes"; then
1700   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1704 dnl  Enable/disable optimizations
1706 AC_ARG_ENABLE(optimizations,
1707 [  --disable-optimizations disable compiler optimizations (default enabled)])
1708 if test "${enable_optimizations}" != "no"; then
1709    if test "${enable_optimize_memory}" = "yes"; then
1710       enable_optimizations="size"
1711    else
1712       enable_optimizations="speed"
1713    fi
1717 dnl  Debugging mode
1719 AC_ARG_ENABLE(debug,
1720 [  --enable-debug          debug mode (default disabled)])
1721 test "${enable_debug}" != "yes" && enable_debug="no"
1722 AH_TEMPLATE(NDEBUG,
1723             [Define to 1 if debug code should NOT be compiled])
1724 AS_IF([test "x${enable_debug}" = "xno"], [
1725   AC_DEFINE(NDEBUG)
1726 ], [
1727   AC_CHECK_HEADERS([valgrind/valgrind.h])
1731 dnl Allow runing as root (usefull for people runing on embedded platforms)
1733 AC_ARG_ENABLE(run-as-root,
1734 [  --enable-run-as-root    allow runing VLC as root (default disabled)])
1735 AS_IF([test "${enable_run_as_root}" = "yes"],[
1736     AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1737               [Define to 1 to allow runing VLC as root (uid 0).])
1741 dnl  Test coverage
1743 AC_ARG_ENABLE(coverage,
1744         [  --enable-coverage       build for test coverage (default disabled)],,
1745         [enable_coverage="no"])
1746 AS_IF([test "${enable_coverage}" != "no"], [
1747         CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
1748         CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
1749         LDFLAGS="-lgcov ${LDFLAGS}"
1750         dnl ugly...
1751         CFLAGS_save="${CFLAGS}"
1752         CXXFLAGS_save="${CXXFLAGS}"
1753         LDFLAGS_save="${LDFLAGS}"
1757 dnl  Enable release-specific flags
1759 AC_ARG_ENABLE(release,
1760 [  --enable-release        activate extra optimizations (default disabled)])
1761 test "${enable_release}" != "yes" && enable_release="no"
1764 dnl Stream output
1766 AC_ARG_ENABLE(sout,
1767   [  --enable-sout           Stream output modules (default enabled)])
1768 AS_IF([test "${enable_sout}" != "no"], [
1769   AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1771 AM_CONDITIONAL(ENABLE_SOUT, [test "${enable_sout}" != "no"])
1773 dnl Lua modules
1774 AC_ARG_ENABLE(lua,
1775   AS_HELP_STRING([--enable-lua],[lua playlist, metafetcher and interface
1776                   plugins (default enabled)]))
1777 if test "${enable_lua}" != "no"
1778 then
1779   PKG_CHECK_MODULES(LUA, lua5.1,
1780     [ have_lua=yes ],
1781     [
1782     AC_MSG_WARN([lua5.1 not found, trying lua >= 5.1 instead])
1783     PKG_CHECK_MODULES(LUA, lua >= 5.1,
1784       [ have_lua=yes ],
1785       [
1786         have_lua=yes
1787         AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1788           [],
1789           [ have_lua=no ] )
1790         AC_CHECK_LIB(  lua5.1 , luaL_newstate,
1791           [LUA_LIBS="-llua5.1"],
1792           AC_CHECK_LIB( lua51 , luaL_newstate,
1793             [LUA_LIBS="-llua51"],
1794             AC_CHECK_LIB( lua , luaL_newstate,
1795               [LUA_LIBS="-llua"],
1796               [ have_lua=no
1797                 AS_IF([test "x${enable_lua}" = "xyes"],
1798                   [AC_MSG_ERROR([lua >= 5.1 not found!])],
1799                   [AC_MSG_WARN([lua >= 5.1 not found!])])
1800               ], [-lm])
1801           )
1802         )
1803       ])
1804     ])
1805   if test "x${have_lua}" = "xyes" ;  then
1806      VLC_ADD_LIBS([lua],[$LUA_LIBS])
1807      VLC_ADD_CFLAGS([lua],[$LUA_CFLAGS])
1808   fi
1810 AM_CONDITIONAL(BUILD_LUA, [test "${have_lua}" = "yes"])
1813 dnl HTTP daemon
1815 AC_ARG_ENABLE(httpd,
1816   [  --enable-httpd          HTTP daemon (default enabled)])
1817 if test "${enable_httpd}" != "no"
1818 then
1819   VLC_ADD_PLUGIN([http])
1820   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
1822 AM_CONDITIONAL(BUILD_HTTPD, [test "${enable_httpd}" != "no"])
1825 dnl libproxy support
1827 AC_ARG_ENABLE(libproxy,
1828   [  --enable-libproxy       libproxy support (default auto)])
1829 AS_IF([test "${enable_libproxy}" != "no"], [
1830   PKG_CHECK_MODULES(LIBPROXY, libproxy-1.0, [
1831     AC_DEFINE(HAVE_LIBPROXY, 1, [Define if libproxy is available])
1832     VLC_ADD_CFLAGS([access_http],[$LIBPROXY_CFLAGS])
1833     VLC_ADD_LIBS([access_http],[$LIBPROXY_LIBS])
1834   ], [
1835     AS_IF([test "x${enable_libproxy}" != "x"], [
1836       AC_MSG_ERROR([libproxy could not be found on your system])
1837     ])
1838   ])
1843 dnl VideoLAN manager
1845 AC_ARG_ENABLE(vlm,
1846   [  --enable-vlm            VideoLAN manager (default enabled)],,
1847   [enable_vlm="${enable_sout}"])
1848 AS_IF([test "${enable_vlm}" != "no"], [
1849   AS_IF([test "${enable_sout}" = "no"], [
1850     AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1851   ])
1852   AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1853   VLC_ADD_PLUGIN([telnet])
1855 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1858 dnl Growl notification plugin
1860 AC_ARG_ENABLE(growl,
1861   [  --enable-growl          growl notification plugin (default disabled)],,
1862   [enable_growl=no])
1863 AS_IF([test "${enable_growl}" != "no"], [
1864     VLC_ADD_PLUGIN([growl_udp])
1865     AC_CHECK_HEADERS(Growl/GrowlDefines.h, [
1866       VLC_ADD_PLUGIN([growl])
1867       VLC_ADD_LDFLAGS([growl], [-Wl,-framework,Growl,-framework,AppKit])
1868     ])
1869   ]
1873 dnl Libnotify notification plugin
1875 PKG_ENABLE_MODULES_VLC([NOTIFY], [], [libnotify], [libnotify notification], [auto])
1878 dnl Audioscrobbler plugin
1881 AC_ARG_ENABLE(audioscrobbler,
1882   [  --disable-audioscrobbler Last.fm submission plugin (default enabled)])
1883 AS_IF([test "${enable_audioscrobbler}" != "no"], [
1884         VLC_ADD_PLUGIN([audioscrobbler])
1885   ])
1888 dnl Taglibplugin
1890 AC_ARG_ENABLE(taglib,
1891   [  --disable-taglib        Taglib support (default enabled) ])
1892   AS_IF([test "${enable_taglib}" != "no"],[
1893     PKG_CHECK_MODULES(TAGLIB, taglib >= 1.5,
1894       [ VLC_ADD_PLUGIN([taglib])
1895         VLC_ADD_LIBS([taglib],[$TAGLIB_LIBS -lz])
1896        VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS]) ],
1897       [AC_MSG_WARN(TagLib library not found)])
1898   ])
1901 dnl  Input plugins
1904 AC_ARG_WITH(,[Input plugins:])
1906 dnl  live555 input
1908 if test "${enable_livedotcom}"
1909 then
1910   AC_MSG_WARN(--{en|dis}able-livedotcom is deprecated. Use --{en|dis}able-live555 instead.)
1912 if test "${enable_livedotcom}" = "no"
1913 then
1914   enable_live555="no"
1917 AC_ARG_ENABLE(live555,
1918 [  --enable-live555        live555 RTSP input plugin (default enabled)])
1919 if test "${enable_live555}" != "no"; then
1920   AC_ARG_WITH(live555-tree,
1921     [    --with-live555-tree=PATH live.com tree for static linking])
1923   dnl
1924   dnl test for --with-live555-tree
1925   dnl
1926   if test "${with_livedotcom_tree}"
1927   then
1928     AC_MSG_WARN(--with-livedotcom-tree is deprecated. Use --with-live555-tree instead.)
1929   with_live555_tree="${with_livedotcom_tree}"
1930   fi
1932   if test -z "${with_live555_tree}" -a "${CXX}" != ""; then
1933     AC_LANG_PUSH(C++)
1934     CPPFLAGS_save="${CPPFLAGS}"
1935     CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1936     if test "${SYS}" = "solaris"; then
1937       CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1938     fi
1939     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1941     AC_CHECK_HEADERS(liveMedia_version.hh, [
1942       AC_MSG_CHECKING(for liveMedia version >= 1214895600 )
1943       AC_EGREP_CPP(yes,
1944         [#include <liveMedia_version.hh>
1945          #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
1946          #if LIVEMEDIA_LIBRARY_VERSION_INT < 1214895600
1947          yes
1948          #endif
1949          #endif],
1950         [AC_MSG_RESULT([no])
1951          AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia.
1952 lternatively you can use --disable-live555 to disable the liveMedia plugin.])
1953       ],[
1954          AC_MSG_RESULT([yes])
1955          ])
1956     ])
1957      other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1958      other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
1959       if test "${SYS}" = "mingw32"; then
1960         # add ws2_32 for closesocket, select, recv
1961         other_libs="$other_libs -lws2_32"
1962       elif test "${SYS}" = "mingwce"; then
1963         # add ws2 for closesocket, select, recv
1964         other_libs="$other_libs -lws2"
1965       fi
1966     dnl We need to check for pic because live555 don't provide shared libs
1967     dnl and we want to build a plugins so we need -fPIC on some arch.
1968     AC_CHECK_HEADERS(liveMedia.hh, [
1969       VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1970         AC_CHECK_LIB(liveMedia_pic, main, [
1971           VLC_ADD_PLUGIN([live555])
1972          VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
1973          ],[
1974         AC_CHECK_LIB(liveMedia, main, [
1975           VLC_ADD_PLUGIN([live555])
1976           VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1977         ],[],[${other_libs}]) ],[${other_libs_pic}])
1978     ],[
1979        AC_MSG_WARN([The development files for liveMedia (live555) can't be found])
1980     ])
1981     CPPFLAGS="${CPPFLAGS_save}"
1982     AC_LANG_POP(C++)
1983   else
1984     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_live555_tree})
1985     real_live555_tree="`cd ${with_live555_tree} 2>/dev/null && pwd`"
1986     if test -z "${real_live555_tree}"; then
1987       dnl  The given directory can't be found
1988       AC_MSG_RESULT(no)
1989       AC_MSG_ERROR([cannot cd to ${with_live555_tree}])
1990     fi
1991     if test -f "${real_live555_tree}/liveMedia/libliveMedia.a"; then
1992       AC_MSG_RESULT(${real_live555_tree}/liveMedia/libliveMedia.a)
1994       AC_CHECK_HEADERS(${real_live555_tree}/liveMedia/include/liveMedia_version.hh,[
1995         AC_MSG_CHECKING(for liveMedia version >= 1214895600 )
1996         AC_EGREP_CPP(yes,
1997           [#include "${real_live555_tree}/liveMedia/include/liveMedia_version.hh"
1998            #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
1999            #if LIVEMEDIA_LIBRARY_VERSION_INT < 1214895600
2000            yes
2001            #endif
2002            #endif],
2003           [AC_MSG_RESULT([no])
2004            AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia.
2005 lternatively you can use --disable-live555 to disable the liveMedia plugin.])
2006         ],[
2007            AC_MSG_RESULT([yes])
2008            ])
2009       ])
2011       VLC_ADD_PLUGIN([live555])
2013       if test "${SYS}" = "mingw32"; then
2014         # add ws2_32 for closesocket, select, recv
2015         VLC_ADD_LIBS([live555],[-lws2_32])
2016       fi
2018       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/UsageEnvironment -lUsageEnvironment])
2019       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
2020       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/groupsock -lgroupsock])
2021       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/liveMedia -lliveMedia])
2023       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/BasicUsageEnvironment/include])
2024       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/groupsock/include])
2025       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/liveMedia/include])
2026       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/UsageEnvironment/include ])
2027       if test "${SYS}" = "solaris"; then
2028         VLC_ADD_CXXFLAGS([live555],[-DSOLARIS])
2029       fi
2030     else
2031       dnl  The given live555 wasn't built
2032         AC_MSG_RESULT(no)
2033       if test "${enable_live555}" = "yes"; then
2034         AC_MSG_ERROR([cannot find ${real_live555_tree}/liveMedia/libliveMedia.a, make sure you compiled live555 in ${with_live555_tree}])
2035       fi        
2036     fi
2037   fi
2041 dnl - special access module for dc1394 input
2042 dnl - dv module: digital video module check for libraw1394
2044 PKG_ENABLE_MODULES_VLC([DC1394], [], [libraw1394 >= 2.0.1 libdc1394-2 >= 2.1.0], [dc1394 access module], [auto])
2045 PKG_ENABLE_MODULES_VLC([DV], [access_dv], [libraw1394 >= 2.0.1 libavc1394 >= 0.5.3], [DV input module], [auto])
2048 dnl dvdread module: check for libdvdread
2050 AC_ARG_ENABLE(dvdread,
2051 [  --enable-dvdread        dvdread input module (default disabled)])
2052 if test "${enable_dvdread}" != "no"
2053 then
2054   AC_ARG_WITH(dvdread,
2055   [    --with-dvdread=PATH   libdvdread headers and libraries])
2056   AC_ARG_WITH(dvdread-tree,
2057   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
2059   dnl Temporary hack (yeah, sure ;)
2060   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2061       VLC_ADD_LIBS([dvdread],[-ldvdcss])
2062   fi
2064   if test -z "${with_dvdread}"
2065   then
2066     if test -z "${with_dvdread_tree}"
2067     then
2068       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
2069         [ VLC_ADD_PLUGIN([dvdread])
2070           VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
2071         ],[
2072           AC_CHECK_HEADERS(libdvdread/dvd_reader.h,
2073             [ VLC_ADD_PLUGIN([dvdread])
2074               VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
2075             ],[
2076               if test -n "${enable_dvdread}"
2077               then
2078               AC_MSG_ERROR([cannot find libdvdread headers])
2079              fi
2080            ])
2081         ])
2082     else
2083       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
2084       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
2085       if test -z "${real_dvdread_tree}"
2086       then
2087         dnl  The given directory can't be found
2088         AC_MSG_RESULT(no)
2089         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
2090       fi
2091       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
2092       then
2093         dnl  Use a custom libdvdread
2094         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
2095         VLC_ADD_PLUGIN([dvdread])
2096         VLC_ADD_LIBS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LIBS_dvdcss}])
2097         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
2098       else
2099         dnl  The given libdvdread wasn't built
2100         AC_MSG_RESULT(no)
2101         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
2102       fi
2103     fi
2104   else
2105     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
2106     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
2107     then
2108       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
2109       AC_MSG_RESULT(yes)
2110       VLC_ADD_PLUGIN([dvdread])
2111       VLC_ADD_LIBS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LIBS_dvdcss}])
2112       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
2113     else
2114       dnl  No libdvdread could be found, sorry
2115       AC_MSG_RESULT(no)
2116       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
2117     fi
2118   fi
2122 dnl  libdvdnav plugin
2124 AC_ARG_ENABLE(dvdnav,
2125   [  --enable-dvdnav         dvdnav input module (default enabled)])
2126 if test "${enable_dvdnav}" != "no"
2127 then
2128   dnl Same hack than dvdread
2129   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2130       VLC_ADD_LIBS([dvdnav],[-ldvdcss])
2131   fi
2133   DVDNAV_PATH="${PATH}"
2134   AC_ARG_WITH(dvdnav-config-path,
2135     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
2136     [ if test "${with_dvdnav_config_path}" != "no"
2137       then
2138         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
2139       fi ])
2140   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
2141   if test "${DVDNAV_CONFIG}" != "no"
2142   then
2143     VLC_ADD_PLUGIN([dvdnav])
2144     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
2145     VLC_ADD_LIBS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
2146   fi
2150 dnl  Windows DirectShow access module
2152 AC_ARG_ENABLE(dshow,
2153   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
2154 if test "${enable_dshow}" != "no"
2155 then
2156   if test "${SYS}" = "mingw32"
2157   then
2158     AC_LANG_PUSH(C++)
2159       AC_CHECK_HEADERS(dshow.h,
2160       [ VLC_ADD_PLUGIN([dshow])
2161         VLC_ADD_CXXFLAGS([dshow],[])
2162         VLC_ADD_LIBS([dshow],[-lole32 -loleaut32 -luuid]) ])
2163     AC_LANG_POP(C++)
2164   fi
2168 dnl  Windows DirectShow BDA access module
2170 AC_ARG_ENABLE(bda,
2171   AS_HELP_STRING([--enable-bda],[Win32 DirectShow BDA support (default
2172                   enabled on Win32)]))
2173 if test "${enable_bda}" != "no"
2174 then
2175   if test "${SYS}" = "mingw32"
2176   then
2177       AC_CHECK_HEADERS(dshow.h,
2178       [ VLC_ADD_PLUGIN([bda])
2179         VLC_ADD_CXXFLAGS([bda],[])
2180         VLC_ADD_LIBS([bda],[-lstrmiids -lole32 -loleaut32 -luuid]) ])
2181   fi
2186 dnl  OpenCV wrapper and example filters
2188 AC_ARG_ENABLE(opencv,
2189   [  --enable-opencv         OpenCV (computer vision) filter (default disabled)])
2190 if test "${enable_opencv}" = "yes" -a "${CXX}" != "";
2191 then
2192   AC_ARG_WITH(opencv-tree,
2193   [    --with-opencv-tree=PATH opencv tree for linking])
2194     if test "${SYS}" = "mingw32"
2195     then
2196       test -z "${with_opencv_tree}" && AC_MSG_ERROR([You have to specify --with-opencv-tree])
2197       AC_MSG_CHECKING(for opencv in ${with_opencv_tree})
2198       if test -f ${with_opencv_tree}/cv/include/cv.h -a -f ${with_opencv_tree}/cxcore/include/cxcore.h \
2199         -a -f ${with_opencv_tree}/cvaux/include/cvaux.h -a -f ${with_opencv_tree}/otherlibs/highgui/highgui.h
2200       then
2201         AC_MSG_RESULT(yes)
2202         VLC_ADD_PLUGIN([opencv_wrapper])
2203         VLC_ADD_LIBS([opencv_wrapper],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2204         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])
2205         AC_LANG_PUSH(C++)
2206         VLC_ADD_PLUGIN([opencv_example])
2207         VLC_ADD_LIBS([opencv_example],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2208         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])
2209         AC_LANG_POP(C++)
2210       else
2211         dnl  No opencv could be found, sorry
2212         AC_MSG_RESULT(no)
2213         AC_MSG_ERROR([cannot find opencv in ${with_opencv_tree}])
2214       fi
2215     else
2216       PKG_CHECK_MODULES(OPENCV, opencv,
2217         [
2218           VLC_ADD_PLUGIN([opencv_example])
2219           VLC_ADD_PLUGIN([opencv_wrapper])
2220           VLC_ADD_LIBS([opencv_example opencv_wrapper],[${OPENCV_LIBS}])
2221           VLC_ADD_CFLAGS([opencv_wrapper],[${OPENCV_CFLAGS}])
2222           VLC_ADD_CXXFLAGS([opencv_example],[${OPENCV_CFLAGS}])
2223         ],
2224         [AC_MSG_ERROR([libopencv not found!])]
2225       )
2226     fi
2231 dnl  libsmbclient plugin
2233 AC_ARG_ENABLE(smb,
2234   [  --enable-smb            smb input module (default enabled)])
2235 if test "${enable_smb}" != "no"; then
2236   AC_CHECK_HEADERS(libsmbclient.h,
2237     [ VLC_ADD_PLUGIN([access_smb])
2238       VLC_ADD_LIBS([access_smb],[-lsmbclient]) ],
2239     [ if test -n "${enable_smb}"; then
2240         AC_MSG_ERROR([cannot find libsmbclient headers])
2241      fi ])
2246 dnl sftp access support
2248 AC_ARG_ENABLE(sftp,
2249   [  --enable-sftp           sftp input access module (default disable)])
2250 if test "${enable_sftp}" = "yes"; then
2251   AC_CHECK_HEADERS(libssh2.h, [
2252     VLC_ADD_PLUGIN([access_sftp])
2253     VLC_ADD_LIBS([access_sftp], [-lssh2])
2254   ])
2258 dnl  libdvbpsi ts demux/mux
2260 AC_ARG_ENABLE(dvbpsi,
2261   [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
2262 have_dvbpsi=no
2263 if test "${enable_dvbpsi}" != "no"
2264 then
2265   AC_ARG_WITH(dvbpsi,
2266   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
2267   AC_ARG_WITH(dvbpsi,
2268   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
2269   case "${with_dvbpsi}" in
2270   ""|yes)
2271     if test -z "${with_dvbpsi_tree}"
2272     then
2273       AC_CHECK_HEADERS(dvbpsi/dr.h,
2274         [ VLC_ADD_PLUGIN([ts])
2275           if test "${enable_sout}" != "no"; then
2276             VLC_ADD_PLUGIN([mux_ts])
2277           fi
2278           VLC_ADD_LIBS([mux_ts ts dvb],[-ldvbpsi])
2279           have_dvbpsi=yes],
2280         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
2281         [#if defined( HAVE_STDINT_H )
2282 #   include <stdint.h>
2283 #elif defined( HAVE_INTTYPES_H )
2284 #   include <inttypes.h>
2285 #endif
2286 #include <dvbpsi/dvbpsi.h>
2287 #include <dvbpsi/descriptor.h>
2288 #include <dvbpsi/pat.h>
2289 #include <dvbpsi/pmt.h>])
2290     else
2291       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
2292       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
2293       if test -z "${real_dvbpsi_tree}"
2294       then
2295         dnl  The given directory can't be found
2296         AC_MSG_RESULT(no)
2297         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
2298       fi
2299       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
2300       then
2301         dnl  Use a custom libdvbpsi
2302         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
2303         VLC_ADD_PLUGIN([ts])
2304         if test "${enable_sout}" != "no"; then
2305           VLC_ADD_PLUGIN([mux_ts])
2306         fi
2307         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
2308         VLC_ADD_LIBS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
2309         have_dvbpsi=yes
2310       else
2311         dnl  The given libdvbpsi wasn't built
2312         AC_MSG_RESULT(no)
2313         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
2314       fi
2315     fi
2316   ;;
2317   no)
2318     dnl  Compile without dvbpsi
2319   ;;
2320   *)
2321     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
2322     if test -z "${with_dvbpsi}"
2323     then
2324       LDFLAGS_test=""
2325       CPPFLAGS_test=""
2326     else
2327       LDFLAGS_test="-L${with_dvbpsi}/lib"
2328       CPPFLAGS_test="-I${with_dvbpsi}/include"
2329     fi
2330     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
2331     AC_CHECK_HEADERS([dvbpsi/dr.h],[
2332       VLC_ADD_PLUGIN([ts])
2333       if test "${enable_sout}" != "no"; then
2334         VLC_ADD_PLUGIN([mux_ts])
2335       fi
2336       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
2337       VLC_ADD_LIBS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
2338       have_dvbpsi=yes
2339     ],[
2340       if test -n "${enable_dvbpsi}"
2341       then
2342         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])
2343       fi
2344     ],
2345     [#if defined( HAVE_STDINT_H )
2346 #   include <stdint.h>
2347 #elif defined( HAVE_INTTYPES_H )
2348 #   include <inttypes.h>
2349 #endif
2350 #include <dvbpsi/dvbpsi.h>
2351 #include <dvbpsi/descriptor.h>
2352 #include <dvbpsi/pat.h>
2353 #include <dvbpsi/pmt.h>])
2354     CPPFLAGS="${CPPFLAGS_save}"
2355   ;;
2356   esac
2357   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
2358     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
2359   ], [], [${LIBS_ts}])
2364 dnl  Video4Linux plugin
2366 AC_ARG_ENABLE(v4l,
2367   [  --enable-v4l            Video4Linux input support (default disabled)])
2368 if test "${enable_v4l}" = "yes"
2369 then
2370   AC_ARG_WITH(v4l,
2371     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
2372   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
2373   then
2374     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
2375   fi
2377   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
2378   AC_CHECK_HEADERS(linux/videodev.h, [
2379     VLC_ADD_PLUGIN([v4l])
2380   ],[])
2381   CPPFLAGS="${CPPFLAGS_save}"
2385 dnl libv4l1 support for video4linux.
2387 AC_ARG_ENABLE( libv4l,
2388   [  --enable-libv4l        Libv4l Video4Linux support (default enabled)])
2389 if test "${enable_libv4l}" != "no" -a "${enable_v4l}" != "no"
2390 then
2391     PKG_CHECK_MODULES( LIBV4L, libv4l1, [
2392       VLC_ADD_LDFLAGS([v4l],[${LIBV4L_LIBS}])
2393       VLC_ADD_CFLAGS([v4l],[${LIBV4L_CFLAGS}])
2394       AC_DEFINE(HAVE_LIBV4L1, 1, Define if libv4l is available)],
2395       AC_MSG_WARN([LibV4L support disabled because libv4l development headers were not found])
2396     )
2400 dnl  Video4Linux2 plugin
2402 AC_ARG_ENABLE(v4l2,
2403   [  --enable-v4l2           Video4Linux2 input support (default enabled)])
2404 if test "${enable_v4l2}" != "no"
2405 then
2406   AC_ARG_WITH(v4l2,
2407     [    --with-v4l2=PATH       path to a v4l2-enabled kernel tree],[],[])
2408   if test "${with_v4l2}" != "no" -a -n "${with_v4l2}"
2409   then
2410     VLC_ADD_CPPFLAGS([v4l2],[-I${with_v4l2}/include])
2411   fi
2413   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l2}"
2414   AC_CHECK_HEADERS(linux/videodev2.h, [
2415     VLC_ADD_PLUGIN([v4l2])
2416   ],[])
2417   CPPFLAGS="${CPPFLAGS_save}"
2421 dnl libv4l2 support for video4linux.
2423 AC_ARG_ENABLE( libv4l2,
2424   [  --enable-libv4l2        Libv4l2 Video4Linux2 support (default enabled)])
2425 if test "${enable_libv4l2}" != "no" -a "${enable_v4l2}" != "no"
2426 then
2427     PKG_CHECK_MODULES( LIBV4L2, libv4l2, [
2428       VLC_ADD_LDFLAGS([v4l2],[${LIBV4L2_LIBS}])
2429       VLC_ADD_CFLAGS([v4l2],[${LIBV4L2_CFLAGS}])
2430       AC_DEFINE(HAVE_LIBV4L2, 1, Define if libv4l2 is available)],
2431       AC_MSG_WARN([LibV4L2 support disabled because libv4l2 development headers were not found])
2432     )
2436 dnl  special access module for Hauppauge PVR cards
2438 AC_ARG_ENABLE(pvr,
2439   [  --enable-pvr            PVR cards access module (default disabled)])
2440 if test "${enable_pvr}" = "yes"
2441 then
2442   VLC_ADD_PLUGIN([pvr])
2443   AC_ARG_WITH(videodev2,
2444     [  --with-videodev2=FILE   Location of videodev2.h file (default /usr/include/linux/videodev2.h)],[],[])
2445   if test "${with_videodev2}" != "no" -a -n "${with_videodev2}"
2446   then
2447     AC_DEFINE_UNQUOTED(VIDEODEV2_H_FILE, "${with_videodev2}", [Location of videodev2.h])
2448   fi
2450   AC_CACHE_CHECK([for new linux/videodev2.h],
2451       [ac_cv_new_linux_videodev2_h],
2452       [AC_TRY_COMPILE([
2453           #include <sys/types.h>
2454           #   ifdef VIDEODEV2_H_FILE
2455           #   include VIDEODEV2_H_FILE
2456           #   else
2457           #   include <linux/videodev2.h>
2458           #   endif
2459           ],
2460           [struct v4l2_ext_controls ctrls; ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG; ],
2461           ac_cv_new_linux_videodev2_h=yes,
2462           ac_cv_new_linux_videodev2_h=no)])
2463   if test "${ac_cv_new_linux_videodev2_h}" != "no"; then
2464     AC_DEFINE(HAVE_NEW_LINUX_VIDEODEV2_H, 1, [Define if new linux/videodev2.h present])
2465   fi
2469 dnl  gnomeVFS access module
2471 PKG_ENABLE_MODULES_VLC([GNOMEVFS], [access_gnomevfs], [gnome-vfs-2.0], [GnomeVFS access module], [auto])
2474 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
2475 AC_ARG_ENABLE(libcdio,
2476   [  --enable-libcdio        CD input and control library support (default enabled)])
2478 AC_ARG_ENABLE(vcdinfo,
2479   [  --enable-vcdinfo        VCD information library support (default enabled)])
2481 have_libcdio=no
2482 have_libvcdinfo=no
2483 if test "${enable_libcdio}" != "no"
2484 then
2485   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.78.2,
2486      have_libcdio=yes
2487      AC_DEFINE(HAVE_LIBCDIO, 1,
2488      [Define if you have libcdio 0.78.2 or greater installed]),
2489      [AC_MSG_WARN(CD Reading and information library not found)])
2491   if test "${enable_vcdinfo}" != "no"
2492   then
2493     PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.22,
2494        [have_libvcdinfo=yes],
2495        [AC_MSG_WARN(VCD information library not found)])
2496   fi
2500 dnl  VCDX and CDDAX modules
2502 AC_ARG_ENABLE(cddax,
2503   AS_HELP_STRING([--enable-cddax],[audio CD plugin with CD Text and CD paranoia
2504                   via libcdio (default disabled)]))
2506 AC_ARG_ENABLE(libcddb,
2507   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
2509 if test "${enable_cddax}" = "yes"
2510 then
2511   if test "$have_libcdio" = "yes"
2512   then
2513     AC_DEFINE(HAVE_CDDAX, 1, [Define for the audio CD plugin using libcdio])
2514     VLC_ADD_LIBS([cddax],[$LIBCDIO_LIBS])
2515     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
2516     VLC_ADD_PLUGIN([cddax])
2517     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
2518     VLC_ADD_LIBS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
2519     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
2520   else
2521     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
2522     HAVE_CDDAX=no
2523   fi
2525   if test "$enable_libcddb" != "no"; then
2526     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2527       HAVE_LIBCDDB=yes
2528       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2529       VLC_ADD_LIBS([cddax],[$LIBCDDB_LIBS])
2530       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
2531       ],
2532       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled)
2533       HAVE_LIBCDDB=no])
2534   fi
2538 AC_ARG_ENABLE(vcdx,
2539   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2541 if test "${enable_vcdx}" = "yes"
2542 then
2543   if test "${have_libvcdinfo}" = "yes"
2544   then
2545     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2546     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2547   else
2548     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
2549     HAVE_VCDX=no
2550   fi
2552   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
2553    [VLC_ADD_LIBS([vcdx],[$LIBISO9660_LIBS])
2554     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
2555     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
2556     HAVE_VCDX=no])
2558   if test "$have_libvcdinfo" = "yes"
2559   then
2560     AC_DEFINE(HAVE_VCDX, 1,
2561     [Define for the VCD plugin using libcdio/libvcdinfo])
2562     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2563     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2564     VLC_ADD_PLUGIN([vcdx])
2565   else
2566     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
2567     HAVE_VCDX=no
2568   fi
2572 dnl  Built-in CD-DA and VCD module
2574 AC_ARG_ENABLE(cdda,
2575   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
2577 AC_ARG_ENABLE(vcd,
2578   [  --enable-vcd            built-in VCD (default enabled)])
2580 if test "${enable_vcd}" != "no"
2581 then
2582   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2583   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2584     AC_MSG_RESULT(yes)
2585     VLC_ADD_PLUGIN([vcd])
2586     VLC_ADD_PLUGIN([cdda])
2587   ],[
2588     AC_MSG_RESULT(no)
2589   ])
2591   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2592   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2593     AC_MSG_RESULT(yes)
2594     VLC_ADD_PLUGIN([vcd])
2595     VLC_ADD_PLUGIN([cdda])
2596     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2597   ],[
2598     AC_MSG_RESULT(no)
2599   ])
2601   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2602   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2603     AC_MSG_RESULT(yes)
2604     VLC_ADD_PLUGIN([vcd])
2605     VLC_ADD_PLUGIN([cdda])
2606     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2607   ],[
2608     AC_MSG_RESULT(no)
2609   ])
2611   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2612   then
2613     VLC_ADD_PLUGIN([vcd])
2614     VLC_ADD_PLUGIN([cdda])
2615   fi
2617   if test "${SYS}" = "darwin"
2618   then
2619     VLC_ADD_PLUGIN([vcd])
2620     VLC_ADD_PLUGIN([cdda])
2621     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-Wl,-framework,IOKit,-framework,CoreFoundation])
2622     VLC_ADD_LIBS([vcdx cddax cdda],[-liconv])
2623   fi
2625   if test "$enable_libcddb" != "no"; then
2626     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2627       HAVE_LIBCDDB=yes
2628       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2629       VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2630       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2631       ],:
2632       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled)
2633       HAVE_LIBCDDB=no])
2634   fi
2638 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2640 AC_ARG_ENABLE(dvb,
2641   [  --enable-dvb            DVB-S/T/C card support (default enabled)])
2643 if test "${enable_dvb}" != "no"
2644 then
2645     AS_IF([test "${have_dvbpsi}" = "yes" ],[
2646     AC_ARG_WITH(dvb,
2647      [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
2648      if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2649      then
2650        VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2651      fi
2652      CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2653      AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2654      VLC_ADD_PLUGIN([dvb])
2655      ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2656      CPPFLAGS="${CPPFLAGS_save}"
2657    ],[
2658      AC_MSG_WARN([the dvb access module requires libdvbpsi])
2659     ])
2663 dnl  Screen capture module
2665 AC_ARG_ENABLE(screen,
2666   [  --enable-screen         Screen capture support (default enabled)])
2667 if test "${enable_screen}" != "no"; then
2668   if test "${SYS}" = "darwin"; then
2669     AC_CHECK_HEADERS(OpenGL/gl.h, [
2670       AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2671         VLC_ADD_PLUGIN([screen])
2672         VLC_ADD_LDFLAGS([screen],[-Wl,-framework,OpenGL,-framework,ApplicationServices])
2673       ])
2674     ])
2675   elif test "${SYS}" = "mingw32"; then
2676     VLC_ADD_PLUGIN([screen])
2677     VLC_ADD_LIBS([screen],[-lgdi32])
2678   elif test "${SYS}" = "mingwce"; then
2679     CPPFLAGS="${CPPFLAGS_save}"
2680   elif test "${SYS}" = "beos"; then
2681     VLC_ADD_PLUGIN([screen])
2682     VLC_ADD_CXXFLAGS([screen],[])
2683     VLC_ADD_LIBS([screen],[-lbe])
2684   fi
2688 dnl  ipv6 plugin - not for QNX yet
2690 have_ipv6=no
2691 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2692   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2695 AS_IF([test "${have_ipv6}" = "yes"], [
2696   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2699 AC_CHECK_FUNCS(inet_ntop,[
2700   AC_DEFINE(HAVE_INET_NTOP, 1, [Define to 1 if you have inet_ntop().])])
2704 dnl  ogg demux plugin
2706 PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto])
2707 if test "${enable_sout}" != "no"; then
2708     PKG_ENABLE_MODULES_VLC([MUX_OGG], [], [ogg >= 1.0], [Ogg demux support], [auto])
2711 if test "${enable_sout}" != "no"; then
2712 dnl Check for libshout
2713 PKG_ENABLE_MODULES_VLC([SHOUT], [access_output_shout], [shout >= 2.1], [libshout output plugin], [auto])
2717 dnl  matroska demux plugin
2719 AC_ARG_ENABLE(mkv,
2720   [  --enable-mkv            Matroska demux support (default enabled)])
2721 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2722   AC_LANG_PUSH(C++)
2723   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2724     AC_MSG_CHECKING(for libebml version >= 0.7.7)
2725     AC_EGREP_CPP(yes,
2726       [#include <ebml/EbmlVersion.h>
2727        #ifdef LIBEBML_VERSION
2728        #if LIBEBML_VERSION >= 0x000706
2729        yes
2730        #endif
2731        #endif],
2732       [AC_MSG_RESULT([yes])
2733         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2734           AC_MSG_CHECKING(for libmatroska version >= 0.8.0)
2735           AC_EGREP_CPP(yes,
2736             [#include <matroska/KaxVersion.h>
2737              #ifdef LIBMATROSKA_VERSION
2738              #if LIBMATROSKA_VERSION >= 0x000705
2739              yes
2740              #endif
2741              #endif],
2742             [AC_MSG_RESULT([yes])
2743               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2744               VLC_ADD_CXXFLAGS([mkv],[])
2745               if test "${SYS}" = "darwin"; then
2746                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2747               fi
2748               AC_CHECK_LIB(ebml_pic, main, [
2749                 VLC_ADD_PLUGIN([mkv])
2750                 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2751               ],
2752                 AC_CHECK_LIB(ebml, main, [
2753                   VLC_ADD_PLUGIN([mkv])
2754                   VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2755                 ])
2756               )
2757             ],
2758             [AC_MSG_RESULT([no])
2759               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.])
2760           ])
2761         ])
2762       ],
2763       [AC_MSG_RESULT([no])
2764         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.])
2765     ])
2766   ])
2767   AC_LANG_POP(C++)
2771 dnl  modplug demux plugin
2773 AC_ARG_ENABLE(mod,
2774   [  --enable-mod            Mod demux support (default enabled)])
2775 if test "${enable_mod}" != "no"
2776 then
2777   AC_ARG_WITH(mod-tree,
2778   [    --with-mod-tree=PATH mod tree for static linking])
2779   if test -n "${with_mod_tree}"
2780   then
2781     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2782     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2783     if test -z "${real_mod_tree}"
2784     then
2785       dnl  The given directory can't be found
2786       AC_MSG_RESULT(no)
2787       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2788     fi
2789     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2790     then
2791       dnl  Use a custom mod
2792       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2793       VLC_ADD_PLUGIN([mod])
2794       VLC_ADD_LIBS([mod],[${real_mod_tree}/src/.libs/libmodplug.a -lstdc++])
2795       VLC_ADD_CXXFLAGS([mod],[-I${real_mod_tree}/include])
2796     else
2797       dnl  The given mod wasn't built
2798       AC_MSG_RESULT(no)
2799       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2800     fi
2801   else
2802     AC_CHECK_HEADERS(libmodplug/modplug.h, [
2803       VLC_ADD_PLUGIN([mod])
2804       VLC_ADD_CXXFLAGS([mod],[])
2805       VLC_ADD_LIBS([mod],[-lmodplug -lstdc++])])
2806   fi
2810 dnl  mpc demux plugin
2812 AC_ARG_ENABLE(mpc,
2813   [  --enable-mpc            Mpc demux support (default enabled)])
2814 if test "${enable_mpc}" != "no"
2815 then
2816   AC_CHECK_HEADERS([mpc/mpcdec.h], [
2817     VLC_ADD_PLUGIN([mpc])
2818     VLC_ADD_LIBS([mpc],[-lmpcdec])],
2819     [AC_CHECK_HEADERS([mpcdec/mpcdec.h], [
2820     VLC_ADD_PLUGIN([mpc])
2821     VLC_ADD_LIBS([mpc],[-lmpcdec])])])
2825 dnl  game music emu demux plugin
2827 AC_ARG_ENABLE(gme,
2828   [  --enable-gme            Game Music Emu demux support (default enabled)])
2829 if test "${enable_gme}" != "no" -a "${CXX}" != "";
2830 then
2831   AC_LANG_PUSH(C++)
2832   AC_ARG_WITH(gme-tree,
2833   [    --with-gme-tree=PATH gme tree for static linking])
2834   if test -n "${with_gme_tree}"
2835   then
2836     AC_MSG_CHECKING(for libgme.a in ${with_mod_tree})
2837     real_gme_tree="`cd ${with_gme_tree} 2>/dev/null && pwd`"
2838     if test -z "${real_gme_tree}"
2839     then
2840       dnl  The given directory can't be found
2841       AC_MSG_RESULT(no)
2842       AC_MSG_ERROR([cannot cd to ${with_gme_tree}])
2843     fi
2844     if test -f "${real_gme_tree}/gme/libgme.a"
2845     then
2846       dnl  Use a custom gme
2847       AC_MSG_RESULT(${real_gme_tree}/gme/libgme.a)
2848       VLC_ADD_PLUGIN([gme])
2849       VLC_ADD_LIBS([gme],[${real_gme_tree}/gme/libgme.a])
2850       VLC_ADD_CXXFLAGS([gme],[-I${real_gme_tree}/gme])
2851     else
2852       dnl  The given gme wasn't built
2853       AC_MSG_RESULT(no)
2854       AC_MSG_ERROR([cannot find ${real_mod_tree}/gme/libgme.a, make sure you compiled gme in ${with_gme_tree}])
2855     fi
2856   else
2857       AC_MSG_WARN([only static linking is available, you must provide a gme-tree])
2858   fi
2859   AC_LANG_POP(C++)
2863 dnl  Codec plugins
2866 AC_ARG_WITH(,[Codec plugins:])
2869 dnl wmafixed plugin
2871 AC_ARG_ENABLE(wma-fixed,
2872   [  --enable-wma-fixed      libwma-fixed module (default disabled)])
2873 if test "${enable_wma_fixed}" = "yes"
2874 then
2875   VLC_ADD_PLUGIN([wma_fixed])
2879 dnl shine fixed point mp3 encoder
2881 AC_ARG_ENABLE(shine,
2882   [  --enable-shine          shine mp3 encoding module (default disabled)])
2883 if test "${enable_shine}" = "yes"
2884 then
2885   VLC_ADD_PLUGIN([shine])
2889 dnl  mad plugin
2891 AC_ARG_ENABLE(mad,
2892   [  --enable-mad            libmad module (default enabled)])
2893 if test "${enable_mad}" != "no"
2894 then
2895   AC_ARG_WITH(mad,
2896     [    --with-mad=PATH       path to libmad],[],[])
2897   if test "${with_mad}" != "no" -a -n "${with_mad}"
2898   then
2899     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2900     VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2901   fi
2903   AC_ARG_WITH(mad-tree,
2904     [    --with-mad-tree=PATH   mad tree for static linking],[],[])
2905   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2906   then
2907     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2908     if test -z "${real_mad_tree}"
2909     then
2910       dnl  The given directory can't be found
2911       AC_MSG_RESULT(no)
2912       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2913     fi
2914     dnl  Use a custom libmad
2915     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2916     if test -f ${real_mad_tree}/mad.h
2917     then
2918       AC_MSG_RESULT(yes)
2919       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2920       VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2921       LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2922       AC_CHECK_LIB(mad, mad_bit_init, [
2923         VLC_ADD_PLUGIN([mpgatofixed32])
2924         VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2925         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2926       ],[])
2927       LDFLAGS="${LDFLAGS_save}"
2928     else
2929       AC_MSG_RESULT(no)
2930       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2931     fi
2932   else
2933     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2934     LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2935     AC_CHECK_HEADERS(mad.h, ,
2936       [ 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.]) ])
2937     AC_CHECK_LIB(mad, mad_bit_init, [
2938       VLC_ADD_PLUGIN([mpgatofixed32])
2939       VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2940       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2941     CPPFLAGS="${CPPFLAGS_save}"
2942     LDFLAGS="${LDFLAGS_save}"
2943   fi
2947 dnl   libid3tag support (FIXME!!! doesn't work with new input)
2949 AC_ARG_ENABLE( id3tag,
2950 [  --disable-id3tag        id3tag metadata reader plugin (default disabled)])
2951 AS_IF([test "${enable_id3tag}" = "yes"], [
2952   AC_CHECK_HEADERS(id3tag.h, [
2953       AS_IF([test "${have_zlib}" = "yes"],[
2954           VLC_ADD_LIBS([id3tag],[-lid3tag -lz])
2955           VLC_ADD_PLUGIN([id3tag])
2956        ])
2957     ])
2960 AC_ARG_ENABLE(merge-ffmpeg,
2961 [  --enable-merge-ffmpeg  merge FFmpeg-based plugins (default disabled)],, [
2962   enable_merge_ffmpeg="no"
2964 AM_CONDITIONAL([MERGE_FFMPEG], [test "$enable_merge_ffmpeg" != "no"])
2967 dnl  avcodec decoder/encoder plugin
2970 if test "${with_ffmpeg_tree}"
2971 then
2972   AC_MSG_WARN([--with-ffmpeg-tree is deprecated. Use PKG_CONFIG_PATH instead.])
2975 AC_ARG_ENABLE(avcodec,
2976 [  --enable-avcodec        libavcodec codec (default enabled)])
2977 if test "${enable_avcodec}" != "no"
2978 then
2979   PKG_CHECK_MODULES(AVCODEC,[libavcodec >= 51.48.0 libavutil],
2980     [
2981       VLC_SAVE_FLAGS
2982       CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2983       CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2984       AC_CHECK_HEADERS(libavcodec/avcodec.h ffmpeg/avcodec.h)
2985       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
2986       VLC_ADD_PLUGIN([avcodec])
2987       VLC_ADD_LIBS([avcodec],[$AVCODEC_LIBS])
2988       VLC_ADD_CFLAGS([avcodec],[$AVCODEC_CFLAGS])
2989       VLC_RESTORE_FLAGS
2990       have_avcodec="yes"
2991     ],[
2992       AC_MSG_ERROR([Could not find libavcodec or libavutil. Use --disable-avcodec to ignore this error.])
2993   ])
2997 dnl libva needs avcodec
2999 AC_ARG_ENABLE(libva,
3000   [  --enable-libva         libva VAAPI support (default disabled)])
3001 AS_IF([test "${enable_libva}" = "yes"], [
3002   AS_IF([test "x${have_avcodec}" = "xyes"], [
3003     PKG_CHECK_MODULES(LIBVA, [libva libva-x11],
3004       [
3005         VLC_ADD_LIBS([avcodec],[$LIBVA_LIBS])
3006         VLC_ADD_CFLAGS([avcodec],[$LIBVA_CFLAGS])
3007         AC_DEFINE(HAVE_AVCODEC_VAAPI, 1, [Define if avcodec has to be built with VAAPI support.])
3008       ],[
3009         AC_MSG_ERROR([Could not find libva.])
3010     ])
3011   ],[
3012     AC_MSG_ERROR([libva VAAPI support depends on libavcodec.])
3013   ])
3017 dnl stream_out switcher needs libavcodec
3019 AC_ARG_ENABLE(switcher,
3020   [  --enable-switcher       Stream-out switcher plugin (default disabled)])
3021 AS_IF([test "${enable_switcher}" = "yes"], [
3022   AS_IF([test "x${have_avcodec}" = "xyes"], [
3023     VLC_ADD_PLUGIN([stream_out_switcher])
3024     VLC_ADD_LIBS([stream_out_switcher],[$AVCODEC_LIBS $AVUTIL_LIBS])
3025     VLC_ADD_CFLAGS([stream_out_switcher],[$AVCODEC_CFLAGS $AVUTIL_CFLAGS])
3026   ],[AC_MSG_ERROR([Stream_out switcher depends on avcodec])
3027   ])
3032 dnl  avformat demuxer/muxer plugin
3035 AC_ARG_ENABLE(avformat,
3036 [  --enable-avformat       libavformat containers (default enabled)])
3037 if test "${enable_avformat}" != "no"
3038 then
3039   PKG_CHECK_MODULES(AVFORMAT,[libavformat libavutil],
3040     [
3041       VLC_SAVE_FLAGS
3042       CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
3043       CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
3044       AC_CHECK_HEADERS(libavformat/avformat.h ffmpeg/avformat.h)
3045       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
3046       AS_IF([test "$enable_merge_ffmpeg" = "no"], [
3047         VLC_ADD_PLUGIN([avformat])
3048         VLC_ADD_LIBS([avformat],[$AVFORMAT_LIBS $AVUTIL_LIBS])
3049         VLC_ADD_CFLAGS([avformat],[$AVFORMAT_CFLAGS $AVUTIL_CFLAGS])
3050       ], [
3051         VLC_ADD_LIBS([avcodec],[$AVFORMAT_LIBS $AVUTIL_LIBS])
3052         VLC_ADD_CFLAGS([avcodec],[$AVFORMAT_CFLAGS $AVUTIL_CFLAGS])
3053       ])
3054       VLC_RESTORE_FLAGS
3055     ],[
3056       AC_MSG_ERROR([Could not find libavformat or libavutil. Use --disable-avformat to ignore this error.])
3057   ])
3061 dnl  swscale image scaling and conversion plugin
3064 AC_ARG_ENABLE(swscale,
3065   AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
3066                   (default enabled)]))
3067 if test "${enable_swscale}" != "no"
3068 then
3069   PKG_CHECK_MODULES(SWSCALE,[libswscale],
3070     [
3071       VLC_SAVE_FLAGS
3072       CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
3073       CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
3074       AC_CHECK_HEADERS(libswscale/swscale.h ffmpeg/swscale.h)
3075       VLC_ADD_PLUGIN([swscale])
3076       VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
3077       VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
3078       VLC_RESTORE_FLAGS
3079     ],[
3080       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.])
3081   ])
3085 dnl  postproc plugin
3088 AC_ARG_ENABLE(postproc,
3089 [  --enable-postproc       libpostproc image post-processing (default enabled)])
3090 if test "${enable_postproc}" != "no"
3091 then
3092   PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
3093     [
3094       VLC_SAVE_FLAGS
3095       CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
3096       CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
3097       AC_CHECK_HEADERS(postproc/postprocess.h)
3098       VLC_ADD_PLUGIN([postproc])
3099       VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS $AVUTIL_LIBS])
3100       VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS $AVUTIL_CFLAGS])
3101       VLC_RESTORE_FLAGS
3102     ],[
3103       AC_MSG_ERROR([Could not find libpostproc. Use --disable-postproc to ignore this error.])
3104   ])
3108 dnl  faad decoder plugin
3110 AC_ARG_ENABLE(faad,
3111 [  --enable-faad           faad codec (default disabled)])
3112 if test "${enable_faad}" = "yes"
3113 then
3114   AC_ARG_WITH(faad-tree,
3115   [    --with-faad-tree=PATH faad tree for static linking])
3116   if test -n "${with_faad_tree}"
3117   then
3118     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
3119     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
3120     if test -z "${real_faad_tree}"
3121     then
3122       dnl  The given directory can't be found
3123       AC_MSG_RESULT(no)
3124       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
3125     fi
3126     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
3127     then
3128       dnl  Use a custom faad
3129       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
3130       VLC_ADD_PLUGIN([faad])
3131       VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
3132       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
3133     else
3134       dnl  The given libfaad wasn't built
3135       AC_MSG_RESULT(no)
3136       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
3137     fi
3138   else
3139     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
3140     LDFLAGS="${LDFLAGS_save} ${LIBS_faad}"
3141     AC_CHECK_HEADERS(faad.h, ,
3142       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
3143     AC_CHECK_LIB(faad, faacDecOpen, [
3144       VLC_ADD_PLUGIN([faad])
3145       VLC_ADD_LIBS([faad],[-lfaad]) ],
3146       AC_CHECK_LIB(faad, NeAACDecOpen, [
3147         VLC_ADD_PLUGIN([faad])
3148         VLC_ADD_LIBS([faad],[-lfaad]) ],
3149         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
3150     LDFLAGS="${LDFLAGS_save}"
3151     CPPFLAGS="${CPPFLAGS_save}"
3152   fi
3156 dnl twolame encoder plugin
3158 PKG_ENABLE_MODULES_VLC([TWOLAME], [], [twolame], [MPEG Audio Layer 2 encoder], [auto], [], [], [ -DLIBTWOLAME_STATIC])
3161 dnl  QuickTime plugin
3163 AC_ARG_ENABLE(quicktime,
3164   [  --enable-quicktime      QuickTime module (deprecated)])
3165 if test "${enable_quicktime}" = "yes"; then
3166   if test "${SYS}" = "mingw32"; then
3167     VLC_ADD_PLUGIN([quicktime])
3168   else
3169   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
3170     [ VLC_ADD_PLUGIN([quicktime])
3171       VLC_ADD_LDFLAGS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
3172     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
3173   fi
3177 dnl  Real plugin
3179 AC_ARG_ENABLE(real,
3180   [  --enable-real           Real media module (default disabled)])
3181 if test "${enable_real}" = "yes"; then
3182   VLC_ADD_PLUGIN([realaudio])
3183   VLC_ADD_PLUGIN([realvideo])
3187 dnl  Real RTSP plugin
3189 AC_ARG_ENABLE(realrtsp,
3190   [  --enable-realrtsp       Real RTSP module (default disabled)])
3191 if test "${enable_realrtsp}" = "yes"; then
3192   VLC_ADD_PLUGIN([access_realrtsp])
3195 AC_ARG_ENABLE(libsysfs,
3196   [  --enable-libsysfs       Get user key from firewire connected iPod via libsysfs (default enabled)])
3198 AS_IF([test "${enable_libsysfs}" != "no"],[
3199   AC_CHECK_HEADERS(sysfs/libsysfs.h, [
3200     VLC_ADD_LIBS([mp4 mkv],[-lsysfs])
3201   ] )
3205 dnl skins2 module
3207 AC_ARG_ENABLE(libtar,
3208   [  --enable-libtar         libtar support for skins2 (default enabled)])
3210 AS_IF([test "${enable_libtar}" != "no"],[
3211   AC_CHECK_HEADERS(libtar.h, [
3212     VLC_ADD_LIBS([skins2],[-ltar])
3213   ] )
3217 dnl A52/AC3 decoder plugin
3219 AC_ARG_ENABLE(a52,
3220   [  --enable-a52            A/52 support with liba52 (default enabled)])
3221 if test "${enable_a52}" != "no"
3222 then
3223   AC_ARG_WITH(a52,
3224     [    --with-a52=PATH       a52 headers and libraries])
3225   AC_ARG_WITH(a52-tree,
3226     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
3227   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
3228   then
3229     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
3230     if test -z "${real_a52_tree}"
3231     then
3232       dnl  The given directory can't be found
3233       AC_MSG_RESULT(no)
3234       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
3235     fi
3236     dnl  Use a custom a52dec
3237     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
3238     if test -f ${real_a52_tree}/include/a52.h
3239     then
3240       AC_MSG_RESULT(yes)
3241       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
3242       VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
3243       LDFLAGS="${LDFLAGS_save} ${LIBS_a52tofloat32}"
3244       AC_CHECK_LIB(a52, a52_free, [
3245         VLC_ADD_PLUGIN([a52tofloat32])
3246         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
3247         VLC_ADD_LIBS([a52tofloat32],[-la52])
3248         ],[
3249         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
3250         then
3251           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
3252         else
3253           AC_MSG_ERROR([the specified tree hasn't been compiled])
3254         fi
3255       ])
3256       LDFLAGS="${LDFLAGS_save}"
3257     else
3258       AC_MSG_RESULT(no)
3259       AC_MSG_ERROR([the specified tree doesn't have a52.h])
3260     fi
3261   else
3262     if test -z "${with_a52}"
3263     then
3264       LDFLAGS_test=""
3265       CPPFLAGS_test=""
3266     else
3267       LDFLAGS_test="-L${with_a52}/lib"
3268       CPPFLAGS_test="-I${with_a52}/include"
3269     fi
3270     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
3271     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
3272     AC_CHECK_HEADERS(a52dec/a52.h, [
3273       AC_CHECK_LIB(a52, a52_free, [
3274         VLC_ADD_PLUGIN([a52tofloat32])
3275         VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
3276         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
3277       ],[
3278         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.])
3279         ])
3280     ],[
3281       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.])
3282     ])
3283     CPPFLAGS="${CPPFLAGS_save}"
3284     LDFLAGS="${LDFLAGS_save}"
3285   fi
3288 AC_ARG_WITH(a52-fixed,
3289       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
3290       [
3291         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
3294 dnl DTS Coherent Acoustics decoder plugin
3296 AS_IF([test "x${enable_dts}" != "x"], [
3297   AC_MSG_ERROR([--enable-dts is obsolete. Please use libdca and --enable-dca.])
3299 PKG_ENABLE_MODULES_VLC([DCA], [dtstofloat32], [libdca >= 0.0.5], [DTS Coherent Acoustics support with libdca], [auto])
3302 dnl  Flac plugin
3304 PKG_ENABLE_MODULES_VLC([FLAC], [], [flac], [libflac decoder/encoder support], [auto])
3307 dnl  Libmpeg2 plugin
3309 PKG_ENABLE_MODULES_VLC([LIBMPEG2], [], [libmpeg2 > 0.3.2], [libmpeg2 decoder support], [auto])
3312 dnl  Vorbis plugin
3314 PKG_ENABLE_MODULES_VLC([VORBIS], [], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
3317 dnl  Tremor plugin
3319 AC_ARG_ENABLE(tremor,
3320   [  --enable-tremor         Tremor decoder support (default disabled)])
3321 if test "${enable_tremor}" = "yes"
3322 then
3323   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3324     VLC_ADD_PLUGIN([tremor])
3325     VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
3326    ],[])
3330 dnl  Speex plugin
3332 PKG_ENABLE_MODULES_VLC([SPEEX], [], [ogg speex >= 1.0.5], [Speex decoder support], [auto])
3335 dnl  tarkin decoder plugin
3337 AC_ARG_ENABLE(tarkin,
3338 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3339 if test "${enable_tarkin}" = "yes"
3340 then
3341   AC_ARG_WITH(tarkin-tree,
3342   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3343   if test -n "${with_tarkin_tree}"
3344   then
3345     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3346     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3347     if test -f "${real_tarkin_tree}/tarkin.o"
3348     then
3349       VLC_ADD_PLUGIN([tarkin])
3350       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3351       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])
3352       AC_MSG_RESULT(yes)
3353     else
3354       dnl  The given tarkin tree wasn't built
3355       AC_MSG_RESULT(no)
3356       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3357                     make sure you compiled tarkin in ${with_tarkin_tree}])
3358     fi
3359   fi
3363 dnl  theora decoder plugin
3365 PKG_ENABLE_MODULES_VLC([THEORA], [], [ogg theora >= 1.0], [experimental theora codec], [auto])
3368 dnl  dirac encoder plugin
3370 PKG_ENABLE_MODULES_VLC([DIRAC], [], [dirac >= 0.10.0], [dirac encoder], [auto])
3373 dnl  schroedinger decoder plugin (for dirac format video)
3375 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [], [schroedinger-1.0 >= 1.0.6], [dirac decoder using schroedinger], [auto])
3378 dnl  PNG decoder module
3380 AC_ARG_ENABLE(png,
3381   [  --enable-png            PNG support (default enabled)])
3382 if test "${enable_png}" != "no"; then
3383 AC_CHECK_HEADERS(png.h, [
3384   LDFLAGS="${LDFLAGS_save} -lz"
3385   AC_CHECK_LIB(png, png_set_rows, [
3386     VLC_ADD_LIBS([png],[-lpng -lz])
3387     VLC_ADD_PLUGIN([png])
3388     VLC_ADD_PLUGIN([osdmenu])
3389     VLC_ADD_PLUGIN([osd_parser])],
3390     [],[-lz])
3391     LDFLAGS="${LDFLAGS_save}"
3392   ])
3394 AM_CONDITIONAL(BUILD_OSDMENU, [test "${enable_png}" != "no"])
3397 dnl H264 encoder plugin (using libx264)
3399 AC_ARG_ENABLE(x264,
3400   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3401 if test "${enable_x264}" != "no"; then
3402   AC_ARG_WITH(x264-tree,
3403     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3404   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3405   then
3406     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3407     if test -z "${real_x264_tree}"
3408     then
3409       dnl  The given directory can't be found
3410       AC_MSG_RESULT(no)
3411       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3412     fi
3413     dnl  Use a custom libx264
3414     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3415     if test -f ${real_x264_tree}/x264.h
3416     then
3417       AC_MSG_RESULT(yes)
3418       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3419       VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
3420       PKG_CHECK_MODULES(X264,x264, [
3421         VLC_ADD_PLUGIN([x264])
3422         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3423         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3424         if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3425           VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3426         fi
3427       ],[
3428         AC_MSG_ERROR([the specified tree hasn't been compiled])
3429       ])
3430       LDFLAGS="${LDFLAGS_save}"
3431     else
3432       AC_MSG_RESULT(no)
3433       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3434     fi
3435   else
3436       PKG_CHECK_MODULES(X264,x264 >= 0.76, [
3437         VLC_ADD_PLUGIN([x264])
3438         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3440         AC_CACHE_CHECK([if linker supports -Bsymbolic],
3441           [ac_cv_ld_bsymbolic],
3442           [LDFLAGS="${LDFLAGS_vlc} -Wl,-Bsymbolic"
3443             AC_TRY_LINK([],,ac_cv_ld_bsymbolic=yes,ac_cv_ld_bsymbolic=no)
3444             LDFLAGS="${LDFLAGS_save}"
3445           ])
3446         AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
3447           VLC_ADD_LDFLAGS([x264],[-Wl,-Bsymbolic])
3448         ])
3450         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3451         if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3452           VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3453         fi
3454       ],[
3455         if test "${enable_x264}" = "yes"; then
3456             AC_MSG_ERROR([Could not find libx264 >= 0.76 on your system: you may get it from http://www.videolan.org/x264.html])
3457           fi
3458       ])
3459     LDFLAGS="${LDFLAGS_save}"
3460   fi
3464 dnl libfluidsynth (MIDI synthetizer) plugin
3466 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [], [fluidsynth], [MIDI synthetiser with libfluidsynth], [auto])
3469 dnl Teletext Modules
3470 dnl vbi decoder plugin (using libzbvi)
3471 dnl telx module
3472 dnl uncompatible
3474 AC_ARG_ENABLE(zvbi,
3475   AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
3476                   libzvbi (default enabled)]))
3477 AC_ARG_ENABLE(telx,
3478   AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
3479                   zvbi) (default enabled if zvbi is absent)]))
3481 AS_IF( [test "${enable_zvbi}" != "no"],[
3482     PKG_CHECK_MODULES(ZVBI,
3483         zvbi-0.2 >= 0.2.25,
3484         [
3485           VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
3486           if test "${SYS}" = "mingw32"; then
3487               VLC_ADD_LIBS([zvbi],[ -lpthreadGC2])
3488           fi
3489           VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
3490           VLC_ADD_PLUGIN([zvbi])
3491           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
3492           AS_IF( [test "${enable_telx}" = "yes"],[
3493                   AC_MSG_WARN([The zvbi and telx modules are uncompatibles.
3494                                Using zvbi.])
3495                   ])
3496         ],[
3497           AC_MSG_WARN(ZVBI library not found. Enabling the telx module instead)
3498         ])
3499     ])
3500 AS_IF( [test "${enable_telx}" != "no" ],[
3501   VLC_ADD_PLUGIN([telx])
3502   ])
3505 dnl libass subtitle rendering module
3507 AC_ARG_ENABLE(libass,
3508   [  --enable-libass         Subtitle support using libass (default enabled)])
3509 AS_IF( [test "${enable_libass}" != "no"], [
3510   PKG_CHECK_MODULES(LIBASS, libass >= 0.9.6,
3511       [
3512         VLC_ADD_LIBS([libass],[$LIBASS_LIBS])
3513         VLC_ADD_CFLAGS([libass],[$LIBASS_CFLAGS])
3514         VLC_ADD_PLUGIN([libass])
3516         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
3517           [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
3518            VLC_ADD_LIBS([libass],[-lfontconfig])
3519        ])
3520       ],[
3521         AC_MSG_WARN([LIBASS library not found])
3522       ])
3523   ])
3526 dnl asa demuxer
3528 AC_ARG_ENABLE(asademux,
3529   [  --enable-asademux       asa subtitle demuxing (default disabled)])
3530 AS_IF( [test "${enable_asademux}" = "yes"], [
3531   PKG_CHECK_MODULES(PCRE,
3532       libpcre >= 6.5,
3533       [
3534         VLC_ADD_LDFLAGS([asademux],[$PCRE_LIBS])
3535         VLC_ADD_CFLAGS([asademux],[$PCRE_CFLAGS])
3536         if test "${SYS}" = "mingw32"; then
3537             VLC_ADD_CPPFLAGS([asademux],[-DPCRE_STATIC])
3538         fi
3539         VLC_ADD_PLUGIN([asademux])
3540       ],[
3541         AC_MSG_WARN([PCRE library not found (required for asademux)])
3542       ])
3543   ])
3546 dnl  CMML plugin
3548 AC_ARG_ENABLE(cmml,
3549   [  --enable-cmml           CMML support (default enabled)])
3550 if test "${enable_cmml}" != "no"
3551 then
3552   VLC_ADD_PLUGIN([cmml])
3556 dnl  kate decoder plugin
3558 AC_ARG_ENABLE(kate,
3559 [  --enable-kate           kate codec (default enabled)])
3560 AS_IF([test "${enable_kate}" != "no"], [
3561   PKG_CHECK_MODULES(KATE,[kate >= 0.1.5], [
3562       VLC_ADD_PLUGIN([kate])
3563       VLC_ADD_CFLAGS([kate],[$KATE_CFLAGS])
3564       VLC_ADD_LIBS([kate],[$KATE_LIBS]) ],[
3565         AC_CHECK_HEADERS(kate/kate.h, [
3566           AC_CHECK_LIB(kate, kate_decode_init, [
3567             VLC_ADD_PLUGIN([kate])
3568             kate_libs="-lkate -logg"
3569             VLC_ADD_LDFLAGS([kate],[${kate_libs}]) ],[
3570             AS_IF([test "x${enable_kate}" != "x"], [
3571               AC_MSG_ERROR([libkate doesn't appear to be installed on your system.
3572               You also need to check that you have a libogg posterior to the 1.0 release.])
3573             ])
3574           ], [-lkate -logg])
3575         ],[
3576           AS_IF([test "x${enable_kate}" != "x"], [
3577             AC_MSG_ERROR([libkate headers do not appear to be installed on your system.
3578             You also need to check that you have a libogg posterior to the 1.0 release.])
3579           ])
3580         ])
3581   ])
3586 dnl  tiger rendering for kate decoder plugin
3588 AC_ARG_ENABLE(tiger,
3589 [  --enable-tiger          Tiger rendering library for Kate streams (default enabled)])
3590 AS_IF([test "${enable_tiger}" != "no"], [
3591   PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
3592       AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])
3593       VLC_ADD_CFLAGS([kate],[$TIGER_CFLAGS])
3594       VLC_ADD_LIBS([kate],[$TIGER_LIBS]) ],[
3595         AS_IF([test "x${enable_tiger}" != "x"], [
3596           AC_MSG_ERROR([libtiger does not appear to be installed on your system.])
3597         ])
3598   ])
3604 dnl  Video plugins
3607 AC_ARG_WITH(,[Video plugins:])
3610 dnl  Xlib
3613 AC_PATH_XTRA()
3614 AC_ARG_ENABLE(x11,
3615   [  --enable-x11            X11 support with Xlib (default enabled)],, [
3616   AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"], [
3617     enable_x11="yes"
3618   ], [
3619     enable_x11="no"
3620   ])
3623 CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3625 AS_IF([test "${enable_x11}" != "no"], [
3626   AC_CHECK_HEADERS(X11/Xlib.h)
3628 dnl Check for DPMS
3629   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
3630     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
3631     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
3632       AC_MSG_RESULT(yes)
3633       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
3634                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
3635     ],[
3636       AC_MSG_RESULT(no)
3637     ])
3638   ],,[
3639     #include <X11/Xlib.h>
3640   ])
3644 dnl  GLX module
3645 dnl  (enabled by default except on win32)
3647 AC_ARG_ENABLE(glx,
3648   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)],, [
3649   enable_glx="$enable_x11"
3651 AS_IF([test "${enable_glx}" != "no"], [
3652   AC_CHECK_HEADERS(X11/Xlib.h GL/glu.h GL/glx.h)
3653   AC_COMPILE_IFELSE(AC_LANG_PROGRAM(
3654     [[#if !defined(HAVE_X11_XLIB_H) || !defined(HAVE_GL_GLU_H) || !defined(HAVE_GL_GLX_H)
3655     choke me
3656     #endif]]),
3657     [
3658       VLC_ADD_PLUGIN([glx])
3659       VLC_ADD_LIBS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU])
3660       VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}])
3661     ],[AC_MSG_ERROR([Please install GL development package. Alternatively you can also configure with --disable-glx.])])
3664 dnl End of Xlib tests
3665 CPPFLAGS="${CPPFLAGS_save}"
3669 dnl  X C Bindings modules
3671 AC_ARG_ENABLE(xcb,
3672   [  --enable-xcb            X11 support with XCB (default enabled)],, [
3673   AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"], [
3674     enable_xcb="yes"
3675   ], [
3676     enable_xcb="no"
3677   ])
3679 AC_ARG_ENABLE(xvideo,
3680   [  --enable-xvideo         XVideo support (default enabled)],, [
3681     enable_xvideo="$enable_xcb"
3684 need_xid_provider="no"
3685 AS_IF([test "${enable_xcb}" != "no"], [
3686   dnl libxcb
3687   PKG_CHECK_MODULES(XCB, [xcb])
3688   PKG_CHECK_MODULES(XCB_SHM, [xcb-shm])
3689   VLC_ADD_PLUGIN([xcb_x11])
3690   VLC_ADD_PLUGIN([xcb_screen])
3691   VLC_ADD_PLUGIN([xcb_apps])
3692   VLC_SET_CFLAGS_WERROR([xcb_screen], [-Wno-error=uninitialized]) # some gcc report a warning which doesn't reveal an error
3694   AS_IF([test "${enable_xvideo}" != "no"], [
3695     PKG_CHECK_MODULES(XCB_XV, [xcb-xv >= 1.1.90.1], [
3696       VLC_ADD_PLUGIN([xcb_xv])
3697     ], [
3698       PKG_CHECK_MODULES(XCB_XV, [xcb-xv], [
3699         VLC_ADD_PLUGIN([xcb_xv])
3700         VLC_ADD_CFLAGS([xcb_xv], [-DXCB_XV_OLD])
3701       ])
3702     ])
3703   ])
3705   PKG_CHECK_MODULES(XCB_RANDR, [xcb-randr >= 1.3], [
3706     VLC_ADD_PLUGIN([panoramix])
3707     VLC_ADD_LIBS([panoramix],[${XCB_RANDR_LIBS} ${XCB_LIBS}])
3708     VLC_ADD_CFLAGS([panoramix],[${XCB_RANDR_CFLAGS} ${XCB_CFLAGS}])
3709   ], [true])
3711   dnl xcb-utils
3712   PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms >= 0.3.4], [
3713     have_xcb_keysyms="yes"
3714   ], [
3715     PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms], [
3716       have_xcb_keysyms="yes"
3717       VLC_ADD_CFLAGS([globalhotkeys], [-DXCB_KEYSYM_OLD_API])
3718     ], [
3719       have_xcb_keysyms="no"
3720       need_xid_provider="yes"
3721     ])
3722   ])
3724   AS_IF([test "${have_xcb_keysyms}" = "yes"], [
3725     PKG_CHECK_MODULES(XPROTO, [xproto])
3726     VLC_ADD_PLUGIN([xcb_window])
3727     VLC_ADD_PLUGIN([globalhotkeys])
3728     VLC_ADD_CFLAGS([globalhotkeys], [${XCB_KEYSYMS_CFLAGS} ${XCB_CFLAGS}])
3729     VLC_ADD_LIBS([globalhotkeys], [${XCB_KEYSYMS_LIBS} ${XCB_LIBS}])
3730   ])
3731   VLC_ADD_PLUGIN([xdg_screensaver])
3736 dnl  OpenGL module
3737 dnl  (enabled by default except on beos)
3739 AC_ARG_ENABLE(opengl,
3740   [  --enable-opengl         OpenGL support (default enabled)])
3741 if test "${enable_opengl}" != "no" &&
3742    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
3743   if test "${SYS}" != "darwin"; then
3744     AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
3745       VLC_ADD_PLUGIN([opengl])
3746       if test "${SYS}" != "mingw32"; then
3747         VLC_ADD_LIBS([opengl],[${X_LIBS} -lGL -lGLU])
3748       else
3749         VLC_ADD_LIBS([opengl],[-lopengl32 -lglu32])
3750       fi
3751     ])
3752   else
3753     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
3754     VLC_ADD_PLUGIN([opengl])
3755     VLC_ADD_LIBS([opengl],[-Wl,-framework,OpenGL])
3756   fi
3760 dnl  SDL module
3762 AC_ARG_ENABLE(sdl,
3763   [  --enable-sdl            SDL support (default enabled)])
3764 AC_ARG_ENABLE(sdl-image,
3765   [  --enable-sdl-image      SDL image support (default enabled)])
3766 if test "${enable_sdl}" != "no"
3767 then
3768   SDL_PATH="${PATH}"
3769   AC_ARG_WITH(sdl-config-path,
3770     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
3771     [ if test "${with_sdl_config_path}" != "no"
3772       then
3773         SDL_PATH="${with_sdl_config_path}:${PATH}"
3774       fi ])
3775   AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
3776   SDL_HEADER="SDL/SDL.h"
3777   SDL_IMAGE="SDL/SDL_image.h"
3779   if test "${SDL_CONFIG}" != "no";  then
3780      PKG_CHECK_MODULES(SDL, [sdl >= 1.2.10], [
3781         # SDL on Darwin is heavily patched and can only run SDL_image
3782         if test "${SYS}" != "darwin"; then
3783           VLC_ADD_PLUGIN([vout_sdl])
3784           VLC_ADD_PLUGIN([aout_sdl])
3785         fi
3786         VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} --cflags | sed 's,SDL,,'`])
3787         VLC_ADD_LIBS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} --libs | sed 's,-rdynamic,,'`])
3789         # SDL_image
3790         AS_IF([ test "${enable_sdl_image}" != "no"],[
3791           AC_CHECK_HEADERS("SDL/SDL_image.h", [
3792             VLC_ADD_PLUGIN([sdl_image])
3793             AC_CHECK_LIB(png, png_set_rows, [VLC_ADD_LIBS([sdl_image],[-lpng -lz])],[],[-lz])
3794             AC_CHECK_LIB(jpeg, jpeg_start_decompress, [VLC_ADD_LIBS([sdl_image],[-ljpeg])])
3795             AC_CHECK_LIB(tiff, TIFFClientOpen, [VLC_ADD_LIBS([sdl_image],[-ltiff])])
3796             VLC_ADD_LIBS([sdl_image], [-lSDL_image])],
3797             [ AC_MSG_WARN([The development package for SDL_image is not installed.
3798       You should install it alongside your SDL package.])
3799             ])
3800         ])
3801      ],[
3802        AC_MSG_ERROR([The development package for SDL is too old. You need 1.2.10.
3803                     Alternatively you can also configure with --disable-sdl.])
3804      ])
3805   else if test "${enable_sdl}" =  "yes"; then
3806     AC_MSG_ERROR([I could not find the SDL package. You can download libSDL
3807 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
3808     ])
3809       fi
3810   fi
3814 dnl  freetype module
3816 AC_ARG_ENABLE(freetype,
3817   [  --enable-freetype       freetype support (default enabled)])
3818 AC_ARG_ENABLE(fribidi,
3819   [  --enable-fribidi        fribidi support (default enabled)])
3820 AC_ARG_ENABLE(fontconfig,
3821   [  --enable-fontconfig,    fontconfig support (default enabled)])
3822 if test "${enable_freetype}" != "no"
3823 then
3824    PKG_CHECK_MODULES(FREETYPE, freetype2,[
3825       VLC_ADD_PLUGIN([freetype])
3826       have_freetype=yes
3827       VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
3828       if test "${SYS}" = "mingw32"; then
3829         VLC_ADD_LIBS([freetype],[-liconv -lz])
3830       fi
3831       VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
3832       if test "${enable_fontconfig}" != "no"
3833       then
3834         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
3835           [VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
3836            VLC_ADD_LIBS([freetype],[-lfontconfig])])
3837         AC_CHECK_HEADERS(Carbon/Carbon.h,
3838           [VLC_ADD_LDFLAGS([freetype],[-Wl,-framework,Carbon])])
3839       fi
3841      dnl fribidi support
3842       if test "${enable_fribidi}" != "no"
3843       then
3844         PKG_CHECK_MODULES(FRIBIDI, fribidi, [
3845           VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
3846           VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
3847         ])
3848       fi
3850   ],[
3851   have_freetype=no
3852   AS_IF([ test "${enable_freetype}" =  "yes"],[
3853     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
3854 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
3855       ])
3856     ])
3857   ])
3862 dnl  libxml2 module
3864 PKG_ENABLE_MODULES_VLC([LIBXML2], [xml], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
3867 dnl  SVG module
3869 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3872 dnl Snapshot vout module (with cache)
3874 AC_ARG_ENABLE(snapshot,
3875   [  --enable-snapshot       snapshot module (default disabled)])
3876 if test "${enable_snapshot}" = "yes"
3877 then
3878   VLC_ADD_PLUGIN([snapshot])
3882 dnl  Qt Embedded module
3883 dnl  (disabled by default)
3885 AC_ARG_ENABLE(qte,
3886   [  --enable-qte            QT Embedded support (default disabled)])
3887 if test "${enable_qte}" = "yes"
3888 then
3889   AC_ARG_WITH(qte,
3890   [    --with-qte=PATH       Qt Embedded headers and libraries])
3891   if test "${with_qte}" != "no" -a -n "${with_qte}"
3892   then
3893     VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3894     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])
3895   else
3896     VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3897     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
3898   fi
3899   VLC_ADD_PLUGIN([qte])
3900   NEED_QTE_MAIN=yes
3901   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
3902   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
3903     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
3904   ] )
3905   CPPFLAGS="${CPPFLAGS_save}"
3909 dnl Roku HD1000 Video output module
3911 AC_ARG_ENABLE(hd1000v,
3912   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
3913 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
3914   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3915    test "${enable_hd1000v}" = "yes"); then
3916   AC_LANG_PUSH([C++])
3917   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
3918   [
3919     can_build_roku="yes"
3920   ],
3921   [
3922     can_build_roku="no"
3923     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
3924   ])
3925   if test "$can_build_roku" = "yes"
3926   then
3927     VLC_ADD_PLUGIN([hd1000v])
3928     VLC_ADD_LIBS([hd1000v],[-lCascade -ldvbpsi -lmad])
3929   fi
3930   AC_LANG_POP([C++])
3934 dnl  Windows DirectX module
3937 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"
3938 then
3939   VLC_ADD_PLUGIN([panoramix])
3942 AC_ARG_ENABLE(directx,
3943   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
3944 if test "${enable_directx}" != "no"
3945 then
3946   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"
3947   then
3948       AC_CHECK_HEADERS(ddraw.h,
3949       [ VLC_ADD_PLUGIN([directx])
3950         VLC_ADD_PLUGIN([aout_directx])
3951         VLC_ADD_LIBS([directx],[-lgdi32])
3952       ],[AC_MSG_ERROR([Cannot find DirectX headers!])]
3953       )
3954       AC_CHECK_HEADERS(GL/gl.h,
3955       [ VLC_ADD_PLUGIN([glwin32])
3956         VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
3957       ])
3958       AC_CHECK_HEADERS(d3d9.h,
3959       [ VLC_ADD_PLUGIN([direct3d])
3960         VLC_ADD_LIBS([direct3d],[-lgdi32])
3961       ])
3962       VLC_ADD_LIBS([direct3d directx glwin32],[-lole32])
3963   fi
3967 dnl  win32 GDI plugin
3969 AC_ARG_ENABLE(wingdi,
3970   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
3971 if test "${enable_wingdi}" != "no"; then
3972   if test "${SYS}" = "mingw32"; then
3973     VLC_ADD_PLUGIN([wingdi])
3974     VLC_ADD_LIBS([wingdi],[-lgdi32 -lole32])
3975   fi
3976   if test "${SYS}" = "mingwce"; then
3977     VLC_ADD_PLUGIN([wingdi])
3978     VLC_ADD_PLUGIN([wingapi])
3979     VLC_ADD_LIBS([wingdi],[-laygshell])
3980     VLC_ADD_LIBS([wingapi],[-laygshell])
3981   fi
3986 dnl  Linux framebuffer module
3988 AC_ARG_ENABLE(fb,
3989   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
3990     if test "${enable_fb}" != "no"
3991     then
3992       AC_CHECK_HEADERS(linux/fb.h, [
3993         VLC_ADD_PLUGIN([fb])
3994       ])
3995     fi
3998 dnl  Linux MGA module
4000 AC_ARG_ENABLE(mga,
4001   [  --enable-mga            Linux kernel Matrox support (default disabled)],
4002   [ if test "${enable_mga}" = "yes"
4003     then
4004       VLC_ADD_PLUGIN([mga])
4005     fi ])
4008 dnl  OMAP Framebuffer module
4010 AC_ARG_ENABLE(omapfb,
4011   [  --enable-omapfb         OMAP framebuffer support (default disabled)])
4012     if test "${enable_omapfb}" = "yes"
4013     then
4014       AC_CHECK_HEADERS(asm/arch-omap/omapfb.h, [
4015         VLC_ADD_PLUGIN([omapfb])
4016         AC_CHECK_HEADERS(X11/Xlib.h, [
4017           VLC_ADD_LIBS([omapfb],[${X_LIBS} ${X_PRE_LIBS} -lX11]) ])
4018       ])
4019       VLC_ADD_PLUGIN([swscale_omap])
4020     fi
4023 dnl  SVGAlib module
4025 AC_ARG_ENABLE(svgalib,
4026   [  --enable-svgalib        SVGAlib support (default disabled)])
4027 if test "${enable_svgalib}" = "yes"
4028 then
4029   VLC_ADD_PLUGIN([svgalib])
4030   VLC_ADD_LIBS([svgalib],[-lvgagl -lvga])
4034 dnl  DirectFB module
4035 dnl  try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
4036 dnl  TODO: support for static linking
4038 AC_ARG_ENABLE(directfb,
4039   [  --enable-directfb       DirectFB support (default disabled)])
4040 AC_ARG_WITH(directfb,
4041   [    --with-directfb=PATH  path to DirectFB headers and libraries])
4043 if test "${enable_directfb}" = "yes"; then
4044     have_directfb="false"
4045     CPPFLAGS_mydirectfb=
4046     LIBS_mydirectfb=
4047     if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
4048         dnl Trying the given location
4049         CPPFLAGS_save="${CPPFLAGS}"
4050         LIBS_save="${LIBS}"
4052         CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
4053         LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/"
4054         LIBS_new="${LIBS_new} -L${with_directfb}/src/.libs/"
4056         CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
4057         LIBS="${LIBS} ${LIBS_new}"
4059         dnl FIXME: too obscure
4060         AC_CHECK_HEADER([directfb.h], [
4061             AC_CHECK_LIB([direct],[direct_initialize], [
4062                 AC_CHECK_LIB([fusion], [fusion_enter], [
4063                     AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
4064                 ], have_directfb="false")
4065             ], have_directfb="false")
4066         ], have_directfb="false")
4068         dnl Restore flags
4069         CPPFLAGS="${CPPFLAGS_save}"
4070         LIBS="${LIBS_save}"
4072         if test "${have_directfb}" = "true"; then
4073             LIBS_mydirectfb="${LIBS_new} -lz -ldl -ldirectfb -lfusion -ldirect -lpthread"
4074             CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
4075         fi
4076     else
4077         dnl Look for directfb-config
4078         AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
4079         if test "${DIRECTFB_CONFIG}" != "no"; then
4080             CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
4081             LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
4082             have_directfb="true"
4083         else
4084             dnl Trying with pkg-config
4085             PKG_CHECK_MODULES(DIRECTFB, directfb, [
4086                 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
4087                 LIBS_mydirectfb="${DIRECTFB_LIBS}"
4088                 have_directfb="true"
4089                 ], [have_directfb="false"])
4090         fi
4091     fi
4092     if test "${have_directfb}" = "true"; then
4093         VLC_ADD_PLUGIN([directfb])
4094         VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
4095         VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
4096     else
4097         AC_MSG_ERROR([cannot find directfb headers and/or libraries ])
4098     fi
4104 dnl  GGI module
4106 AC_ARG_ENABLE(ggi,
4107   [  --enable-ggi            GGI support (default disabled)])
4108 if test "${enable_ggi}" = "yes"
4109 then
4110   AC_CHECK_HEADER([ggi/ggi.h],[
4111     VLC_ADD_PLUGIN([ggi])
4112     VLC_ADD_LIBS([ggi],[-lggi])
4113     AC_ARG_WITH(ggi,
4114       [    --with-ggi=PATH       path to libggi],
4115       [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
4116         then
4117           VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
4118           VLC_ADD_LIBS([ggi],[-L${with_ggi}/lib])
4119         fi ])
4120     ],[
4121        AC_MSG_ERROR([LibGGI development files can't be found])
4122     ])
4126 dnl  AA plugin
4128 AC_ARG_ENABLE(aa,
4129   [  --enable-aa             aalib output (default disabled)])
4130 if test "${enable_aa}" = "yes"
4131 then
4132   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
4133   if test "${have_aa}" = "true"
4134   then
4135     VLC_ADD_PLUGIN([aa])
4136     VLC_ADD_LIBS([aa],[-laa])
4137   fi
4141 dnl  libcaca plugin
4143 PKG_ENABLE_MODULES_VLC([CACA], [], [caca >= 0.99.beta1], [libcaca output],[auto])
4146 dnl  Audio plugins
4149 AC_ARG_WITH(,[Audio plugins:])
4152 dnl  OSS /dev/dsp module (enabled by default except on win32)
4154 AC_ARG_ENABLE(oss,
4155   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
4157 if test "${enable_oss}" != "no" &&
4158   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4159    test "${enable_oss}" = "yes")
4160 then
4161   AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
4162     VLC_ADD_PLUGIN([oss])
4163     VLC_ADD_PLUGIN([access_oss])
4164     AC_CHECK_LIB(ossaudio,main,[VLC_ADD_LIBS([oss],[-lossaudio])
4165                                 VLC_ADD_LIBS([access_oss],[-lossaudio])])
4166   ])
4170 dnl  Pulseaudio module
4172 PKG_ENABLE_MODULES_VLC([PULSE], [], [libpulse >= 0.9.11], [Pulseaudio support], [auto])
4175 dnl  Portaudio module
4177 PKG_ENABLE_MODULES_VLC([PORTAUDIO], [], [portaudio-2.0], [Portaudio library support], [auto])
4180 dnl  ALSA module
4182 PKG_ENABLE_MODULES_VLC([ALSA], [], [alsa >= 1.0.0], [Alsa sound support for linux], [auto])
4183 PKG_ENABLE_MODULES_VLC([ACCESS_ALSA], [access_alsa], [alsa >= 1.0.0], [Alsa access for linux], [auto])
4186 dnl  win32 waveOut plugin
4188 AC_ARG_ENABLE(waveout,
4189   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
4190 if test "${enable_waveout}" != "no"; then
4191   if test "${SYS}" = "mingw32"; then
4192     VLC_ADD_PLUGIN([waveout])
4193     VLC_ADD_LIBS([waveout],[-lwinmm])
4194   fi
4195   if test "${SYS}" = "mingwce"; then
4196     VLC_ADD_PLUGIN([waveout])
4197   fi
4201 dnl  CoreAudio plugin
4203 AC_ARG_ENABLE(macosx-audio,
4204   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
4205 if test "${enable_macosx-audio}" != "no" &&
4206   (test "${SYS}" = "darwin" || test "${enable_macosx-audio}" = "yes")
4207 then
4208   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h,
4209     [ VLC_ADD_PLUGIN([auhal])
4210       VLC_ADD_LDFLAGS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
4211     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
4215 dnl  Roku HD1000 audio
4217 AC_ARG_ENABLE(hd1000a,
4218   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
4219 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
4220   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4221    test "${enable_hd1000a}" = "yes")
4222 then
4223   AC_LANG_PUSH([C++])
4224   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
4225     VLC_ADD_PLUGIN([hd1000a])
4226     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LIBS([hd1000a],[-lHDMachineX225]))  ])
4227   AC_LANG_POP([C++])
4231 dnl  JACK modules
4233 PKG_ENABLE_MODULES_VLC([JACK], [jack], [jack], [JACK audio I/O modules],[auto])
4234 PKG_ENABLE_MODULES_VLC([JACK], [access_jack], [jack], [JACK audio I/O modules],[auto])
4238 dnl  CyberLink for C++ UPnP stack
4240 AC_ARG_ENABLE(cyberlink,
4241   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
4242   AS_IF([test "${enable_cyberlink}" = "yes" ], [
4243   AC_ARG_WITH(cyberlink-tree,
4244     [    --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
4246   dnl
4247   dnl test for --with-cyberlink-tree
4248   dnl
4249   AS_IF([test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""], [
4250     AC_LANG_PUSH(C++)
4251     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
4252     AS_IF([test -z "${real_cyberlink_tree}"], [
4253       dnl  The given directory can't be found
4254       AC_MSG_RESULT(no)
4255       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
4256     ])
4257     CPPFLAGS_save="${CPPFLAGS}"
4258     CPPFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
4259     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_cyberlink}"
4260     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
4261       [ VLC_ADD_CXXFLAGS([upnp_cc], [${CPPFLAGS_cyberlink}])
4262         VLC_ADD_PLUGIN([upnp_cc])
4263       ],[
4264         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
4265       ])
4266     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
4267     AS_IF([test -f "${real_cyberlink_tree}/lib/unix/libclink.a"], [
4268       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
4269       dnl The mere fact that we have to make such an ugly check sucks
4270       AC_MSG_CHECKING(for XML parser to link CyberLink with)
4271       LIBS_save="$LIBS"
4272       LIBS_cclink="no"
4273       for l in "`xml2-config --libs`" -lexpat -lxerces-c; do
4274         LIBS="$LIBS_save ${real_cyberlink_tree}/lib/unix/libclink.a -lpthread $l"
4275         AC_LINK_IFELSE([AC_LANG_PROGRAM([
4276 #include <cybergarage/upnp/media/player/MediaPlayer.h>
4277 using namespace CyberLink;
4279 class testclass : public SearchResponseListener, public MediaPlayer
4281     virtual void deviceSearchResponseReceived( SSDPPacket *)
4282     {
4283     }
4285     public:
4286       testclass (void)
4287       {
4288         addSearchResponseListener (this);
4289         start ();
4290       }
4292 ],[testclass l;])],[LIBS_cclink="$l"])
4293       done
4294       LIBS="${LIBS_save}"
4295       dnl should not happen - otherwise this needs fixing - hence FAILURE
4296       AS_IF([test "${LIBS_cclink}" = "no"],
4297         [AC_MSG_FAILURE([cannot find XML parser for CyberLink])])
4298       AC_MSG_RESULT([${LIBS_cclink}])
4299       VLC_ADD_LIBS([upnp_cc], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}])
4300     ], [
4301       AC_MSG_RESULT(no)
4302       AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
4303     ])
4304     CPPFLAGS="${CPPFLAGS_save}"
4305     AC_LANG_POP([C++])
4306   ])
4310 dnl UPnP Plugin (Intel SDK)
4312 PKG_ENABLE_MODULES_VLC([UPNP], [upnp_intel], [libupnp], [Intel UPnp SDK],[auto])
4316 dnl  Interface plugins
4319 AC_ARG_WITH(,[Interface plugins:])
4321 dnl special case for BeOS
4322 if test "${SYS}" = "beos"
4323 then
4324     VLC_ADD_PLUGIN([beos])
4328 dnl Skins2 module
4330 AC_ARG_ENABLE(skins2,
4331   [AS_HELP_STRING([--enable-skins2],[Skins2 interface module (default
4332    enabled except on MacOSX, BeOS and WinCE)])])
4333 if test "${enable_skins2}" = "yes" ||
4334   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4335    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
4337   dnl test for the required libraries
4338   skins2_missing_lib="no"
4340   dnl freetype
4341   if test "${have_freetype}" != "yes"; then
4342     skins2_missing_lib="yes"
4343     if test "${enable_skins2}" = "yes"; then
4344       AC_MSG_ERROR([Could not find freetype (required for skins2)])
4345     fi
4346   fi
4348   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32"); then
4349     VLC_ADD_PLUGIN([skins2])
4350     ALIASES="${ALIASES} svlc"
4351     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
4352     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4353     VLC_ADD_LIBS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
4355   else if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "darwin"); then
4356     VLC_ADD_PLUGIN([skins2])
4357     ALIASES="${ALIASES} svlc"
4358     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
4359     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4360     VLC_ADD_LDFLAGS([skins2],[-Wl,-framework,Carbon])
4362   else if test "${skins2_missing_lib}" = "no"; then
4363     VLC_ADD_PLUGIN([skins2])
4364     ALIASES="${ALIASES} svlc"
4365     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} -DX11_SKINS])
4366     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4367     VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lX11])
4368     need_xid_provider="no"
4369   fi fi fi
4371 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes" ||
4372          (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4373           test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no")])
4376 dnl Hildon UI
4378 AC_ARG_ENABLE(hildon,
4379   [  --enable-hildon         Hildon touchscreen UI (default disabled)])
4380 AS_IF([test "${enable_hildon}" = "yes"], [
4381   PKG_CHECK_MODULES(HILDON, [hildon-1 hildon-fm-2], [
4382     VLC_ADD_CFLAGS([hildon],[${HILDON_CFLAGS}])
4383     VLC_ADD_LIBS([hildon],[${HILDON_LIBS}])
4384     VLC_ADD_PLUGIN([hildon])
4385     ALIASES="${ALIASES} mvlc"
4386     need_xid_provider="no"
4387   ], [
4388     AS_IF([test "${enable_hildon}" = "yes"],[
4389       AC_MSG_ERROR([Hildon libraries not found])
4390     ])
4391     enable_hildon="no"
4392   ])
4394 AM_CONDITIONAL(BUILD_HILDON, [test "${enable_hildon}" = "yes"])
4397 dnl QT 4
4399 AC_ARG_ENABLE(qt4,
4400   [  --enable-qt4            QT 4 support (default enabled) ],, [
4401   AS_IF([test "${SYS}" = "darwin"], [enable_qt4=no])
4403 AS_IF([test "${enable_qt4}" != "no"], [
4404   PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.4.0], [
4405     VLC_ADD_PLUGIN([qt4])
4406     ALIASES="${ALIASES} qvlc"
4407     AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "darwin"], [
4408         VLC_ADD_LIBS([qt4],[$QT4_LIBS -lX11])
4409         need_xid_provider="no"
4410     ], [
4411         VLC_ADD_LIBS([qt4],[$QT4_LIBS -lole32])
4412     ])
4413     QT4LOCALEDIR="$(eval $PKG_CONFIG --variable=prefix QtCore)/share/qt4/translations/"
4414     AC_SUBST(QT4LOCALEDIR)
4415     VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS -DQT4LOCALEDIR=\\\\\\\"${QT4LOCALEDIR}\\\\\\\"])
4416     AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`eval $PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4417     AC_PATH_PROG(RCC, rcc, rcc,`eval $PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4418     AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`eval $PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4419   ], [
4420     AS_IF([test "${enable_qt4}" = "yes"],[
4421       AC_MSG_ERROR([Qt 4 library not found])
4422     ],[
4423       AC_MSG_WARN([Qt 4 library not found])
4424     ])
4425     enable_qt4="no"
4426   ])
4428 AM_CONDITIONAL(ENABLE_QT4, [test "x$enable_qt4" != "xno"])
4431 dnl  WinCE GUI module
4433 AC_ARG_ENABLE(wince,
4434   [  --enable-wince          Windows CE interface (default enabled with MinGW)])
4435 if test "${enable_wince}" != "no"; then
4436   if test "${SYS}" = "mingwce"; then
4437     VLC_ADD_PLUGIN([wince])
4438     VLC_ADD_CXXFLAGS([wince],[])
4439     VLC_ADD_LIBS([wince],[-lcommctrl -lcommdlg -laygshell])
4440     dnl Gross hack
4441     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4442   elif test "${SYS}" = "mingw32"; then
4443     VLC_ADD_CXXFLAGS([wince],[])
4444     VLC_ADD_LIBS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
4445     dnl Gross hack
4446     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4447   fi
4451 dnl Simple test for skins2 dependency
4453 AS_IF([test "${enable_skins2}" != "no" && test "x$enable_qt4" = "xno"], [
4454   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.])
4458 dnl  Opie QT embedded module
4460 AC_ARG_ENABLE(opie,
4461   [  --enable-opie           Qt embedded interface support (default disabled)],
4462   [if test "${enable_opie}" = "yes"; then
4463      AC_ARG_WITH(qte,
4464      [    --with-qte=PATH       Qt Embedded headers and libraries])
4465      if test "${with_qte}" != "no" -a -n "${with_qte}"
4466      then
4467        VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4468        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])
4469      else
4470        VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
4471        VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
4472      fi
4473      CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4474      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4475        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4476      ] )
4477      CPPFLAGS="${CPPFLAGS_save}"
4479      VLC_ADD_PLUGIN([opie])
4480      NEED_QTE_MAIN=yes
4481      VLC_ADD_LIBS([opie],[-lqpe ${LDFLAGS_qte}])
4482      VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
4483      if test "${with_qte}" != "no" -a -n "${with_qte}"
4484      then
4485        MOC=${with_qte}/bin/moc
4486      else
4487        MOC=${QTDIR}/bin/moc
4488      fi
4489    fi])
4492 dnl  MacOS X video output/gui modules
4494 AC_ARG_ENABLE(macosx,
4495   [  --enable-macosx         MacOS X support (default enabled on MacOS X)])
4496 if test "x${enable_macosx}" = "xyes"
4497 then
4498   VLC_ADD_LDFLAGS([access_eyetv],                     [-Wl,-framework,Foundation])
4499   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer qtcapture],[-Wl,-framework,Cocoa])
4500   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer],[-Wl,-framework,OpenGL])
4501   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,Carbon])
4502   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,CoreServices])
4503   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,AGL])
4504   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,IOKit])
4505   VLC_ADD_LDFLAGS([macosx],                           [-F\\\${top_srcdir}/extras/contrib/Sparkle -Wl,-framework,Sparkle])
4506   VLC_ADD_OBJCFLAGS([macosx],                         [-F\\\${top_srcdir}/extras/contrib/Sparkle])
4507   dnl For bug report
4508   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,AddressBook])
4509   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,QTKit])
4510   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,CoreAudio])
4511   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,WebKit])
4512   VLC_ADD_LDFLAGS([opengllayer qtcapture],            [-Wl,-framework,QuartzCore])
4513   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,CoreVideo])
4514   VLC_ADD_OBJCFLAGS([macosx minimal_macosx opengllayer growl opengllayer], [-fobjc-exceptions] )
4516   VLC_ADD_PLUGIN([access_eyetv])
4517   VLC_ADD_PLUGIN([qtcapture])
4518   VLC_ADD_PLUGIN([macosx])
4519   VLC_ADD_PLUGIN([minimal_macosx])
4520   VLC_ADD_PLUGIN([opengllayer])
4524 dnl  QNX RTOS module
4526 AC_ARG_ENABLE(qnx,
4527   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
4528     if test "${enable_qnx}" != "no"
4529     then
4530       AC_CHECK_HEADERS(Ph.h, [
4531         VLC_ADD_PLUGIN([qnx])
4532         VLC_ADD_LIBS([qnx],[-lasound -lph])
4533       ])
4534     fi
4537 dnl  ncurses module
4539 AC_ARG_ENABLE(ncurses,
4540   [  --disable-ncurses       ncurses interface support (default enabled)],
4541   [if test "${enable_ncurses}" != "no"; then
4542     AC_CHECK_HEADER(ncurses.h,
4543       [AC_CHECK_LIB(ncursesw, mvprintw,
4544         [VLC_ADD_PLUGIN([ncurses])
4545         VLC_ADD_LIBS([ncurses],[-lncursesw])
4546         ALIASES="${ALIASES} nvlc"
4547         AC_DEFINE([HAVE_NCURSESW], 1, [Define to 1 if you have libncursesw.])
4548         AC_CHECK_LIB(ncursesw, tgetent, [],
4549           AC_CHECK_LIB(tinfow, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfow])],
4550             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
4551               [AS_IF([test "x${enable_ncurses}" != "x"],
4552                 [AC_MSG_ERROR([tgetent not found in ncursesw tinfow tinfo]
4553                )])])
4554             ]
4555           )
4556         )
4557         ],
4558         [AC_CHECK_LIB( ncurses, mvprintw,
4559           [VLC_ADD_PLUGIN([ncurses])
4560           ALIASES="${ALIASES} nvlc"
4561           VLC_ADD_LIBS([ncurses],[-lncurses])
4562           AC_CHECK_LIB(ncurses, tgetent, [],
4563             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
4564               [AS_IF([test "x${enable_ncurses}" != "x"],
4565                 [AC_MSG_ERROR([tgetent not found in ncurses tinfo])])]
4566             )]
4567           )],
4568           [AS_IF([test "x${enable_ncurses}" != "x"], [
4569             AC_MSG_ERROR([libncurses not found])])]
4570         )]
4571       )]
4572     )
4573   fi]
4577 dnl  XOSD plugin
4579 AC_ARG_ENABLE(xosd,
4580   [  --enable-xosd           xosd interface support (default disabled)])
4581 if test "${enable_xosd}" = "yes"
4582 then
4583   AC_CHECK_HEADERS(xosd.h,
4584     AC_CHECK_LIB(xosd, xosd_set_horizontal_offset, [
4585       VLC_ADD_PLUGIN([xosd])
4586       VLC_ADD_LIBS([xosd],[-lxosd])
4587     ])
4588   )
4592 dnl Framebuffer (overlay) plugin
4594 AC_ARG_ENABLE(fbosd,
4595   [  --enable-fbosd          fbosd interface support (default disabled)])
4596 if test "${enable_fbosd}" = "yes"
4597 then
4598   AC_CHECK_HEADERS(linux/fb.h, [
4599     VLC_ADD_PLUGIN([fbosd])
4600  ])
4604 dnl Post-interface configuration checks
4606 AS_IF([test "$need_xid_provider" = "yes"], [
4607   AC_MSG_ERROR([X11 video outputs need a window provider (Qt4, Skins2, Hildon or xcb-utils), but none were found. Please install xcb-keysyms.])
4611 dnl Visualisation plugin
4613 AC_ARG_ENABLE(visual,
4614   [  --enable-visual         visualisation plugin (default enabled)])
4615 if test "${enable_visual}" != "no"
4616 then
4617     VLC_ADD_PLUGIN([visual])
4621 dnl  goom visualization plugin
4623 PKG_ENABLE_MODULES_VLC([GOOM], [], [libgoom2], [goom visualization plugin], [auto])
4626 dnl libprojectM visualization plugin
4628 PKG_ENABLE_MODULES_VLC([PROJECTM], [], [libprojectM], [projectM visualization plugin], [auto])
4631 dnl  AtmoLight (homebrew AmbiLight)
4633 AC_ARG_ENABLE(atmo,
4634 AS_HELP_STRING([--disable-atmo],[AtmoLight (homebrew Philips ambilight)
4635                 (broken, default disabled)]),, [enable_atmo="no"])
4636 AS_IF([test "${enable_atmo}" != no], [
4637   AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "linux"], [
4638     AC_LANG_PUSH(C++)
4639     VLC_ADD_PLUGIN([atmo])
4640     AC_LANG_POP(C++)
4641   ])
4645 dnl  Bonjour services discovery
4646 PKG_ENABLE_MODULES_VLC([BONJOUR], [], [avahi-client >= 0.6], [Bonjour services discovery], [auto])
4649 dnl  libudev services discovery
4650 PKG_ENABLE_MODULES_VLC([UDEV], [], [libudev >= 142], [Linux udev services discovery], [auto])
4653 dnl MTP devices services discovery
4654 PKG_ENABLE_MODULES_VLC([MTP], [], [libmtp >= 0.3.0],[MTP devices support],[auto])
4657 dnl  Lirc plugin
4659 AC_ARG_ENABLE(lirc,
4660   [  --enable-lirc           lirc support (default disabled)])
4661 if test "${enable_lirc}" = "yes"
4662 then
4663   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
4664   if test "${have_lirc}" = "true"
4665   then
4666     VLC_ADD_PLUGIN([lirc])
4667     VLC_ADD_LIBS([lirc],[-llirc_client])
4668   fi
4672 AC_ARG_WITH(,[Misc options:])
4675 dnl libgcrypt
4677 AC_ARG_ENABLE(libgcrypt,
4678   [  --disable-libgcrypt      gcrypt support (default enabled)])
4679 AS_IF([test "${enable_libgcrypt}" != "no"], [
4680   AC_CHECK_DECL([GCRYCTL_SET_THREAD_CBS], [
4681     libgcrypt-config --version >/dev/null || \
4682         AC_MSG_ERROR([gcrypt.h present but libgcrypt-config could not be found])
4683     AC_CHECK_LIB(gcrypt, gcry_control, [
4684       have_libgcrypt="yes"
4685       GCRYPT_CFLAGS="`libgcrypt-config --cflags`"
4686       GCRYPT_LIBS="`libgcrypt-config --libs`"
4687     ], [
4688       AC_MSG_ERROR([libgcrypt not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
4689     ], [`libgcrypt-config --libs`])
4690   ], [
4691     AC_MSG_ERROR([libgcrypt version 1.1.94 or higher not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
4692   ], [#include <gcrypt.h>]
4693   )
4696 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
4697   AS_IF([test "${have_libgcrypt}" = "yes"],[
4698     VLC_ADD_LIBS([rtp stream_out_rtp], [${GCRYPT_LIBS}])
4699   ])
4701 AC_SUBST(GCRYPT_CFLAGS)
4702 AC_SUBST(GCRYPT_LIBS)
4703 AM_CONDITIONAL([HAVE_GCRYPT], [test "${have_libgcrypt}" = "yes"])
4706 dnl TLS/SSL
4708 AC_ARG_ENABLE(gnutls,
4709   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
4711 AS_IF([test "${enable_gnutls}" != "no"], [
4712   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.7.4], [
4713     VLC_ADD_PLUGIN([gnutls])
4714     VLC_ADD_CFLAGS([gnutls], [$GNUTLS_CFLAGS])
4715     AS_IF([test "${SYS}" = "mingw32"], [
4716       dnl pkg-config --libs gnutls omits these
4717       VLC_ADD_LIBS([gnutls], [-lz])
4718       VLC_ADD_LIBS([gnutls], [${LTLIBINTL}])
4719     ])
4720     dnl The GnuTLS plugin invokes gcry_control directly.
4721     AS_IF([test "${have_libgcrypt}" = "yes"],[
4722       VLC_ADD_LIBS([gnutls], [${GCRYPT_LIBS}])
4723       VLC_ADD_CFLAGS([gnutls], [${GCRYPT_CFLAGS}])
4724     ])
4725     VLC_ADD_LIBS([gnutls], [$GNUTLS_LIBS])
4726   ], [
4727     AS_IF([test "${enable_gnutls}" = "yes"], [
4728       AC_MSG_ERROR([gnutls not present or too old (version 1.7.4 required)])
4729     ])
4730   ])
4735 dnl RemoteOSD plugin (VNC client as video filter)
4737 AC_ARG_ENABLE(remoteosd,
4738   [  --disable-remoteosd     RemoteOSD plugin (default enabled)])
4740 AS_IF([test "${enable_remoteosd}" != "no"], [
4741   AS_IF([test "${have_libgcrypt}" = "yes"],[
4742     VLC_ADD_PLUGIN([remoteosd])
4743     VLC_ADD_LIBS([remoteosd], ${GCRYPT_LIBS})
4744     VLC_ADD_CFLAGS([remoteosd], ${GCRYPT_CFLAGS})
4745   ], [
4746     AC_MSG_ERROR([libgcrypt support required for RemoteOSD plugin])
4747   ])
4752 dnl RAOP plugin
4754 AC_MSG_CHECKING([whether to enable RAOP plugin])
4755 AS_IF([test "${have_libgcrypt}" = "yes"], [
4756   AC_MSG_RESULT(yes)
4757   VLC_ADD_PLUGIN([stream_out_raop])
4758   VLC_ADD_LIBS([stream_out_raop], [${GCRYPT_LIBS} -lgpg-error])
4759   VLC_ADD_CFLAGS([stream_out_raop], [${GCRYPT_CFLAGS}])
4760 ], [
4761   AC_MSG_RESULT(no)
4762   AC_MSG_WARN([libgcrypt support required for RAOP plugin])
4767 dnl OSSO (Maemo screen blanking) plugin
4769 PKG_ENABLE_MODULES_VLC([OSSO], [], [libosso], [Maemo support], [auto])
4771 AS_IF([test -f "/etc/maemo_version"], [
4772   AC_DEFINE([HAVE_MAEMO], 1, [Define to 1 if building for the Maemo platform.])
4777 dnl update checking system
4779 AC_ARG_ENABLE(update-check,
4780   [  --enable-update-check   update checking system (default disabled)])
4781 if test "${enable_update_check}" = "yes"
4782 then
4783   if test "${have_libgcrypt}" != "yes"
4784   then
4785     AC_MSG_ERROR([libgcrypt is required for update checking system])
4786   fi
4787   VLC_ADD_LIBS([libvlccore], [${GCRYPT_LIBS}])
4788   VLC_ADD_CFLAGS([libvlccore], [${GCRYPT_CFLAGS}])
4789   AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
4793 dnl SQLite
4795 AC_ARG_WITH(sqlite,
4796   [  --with-sqlite=PATH      sqlite path linking])
4797 if test "${SYS}" != "darwin"; then
4798   PKG_ENABLE_MODULES_VLC([SQLITE], [], [sqlite3], [sqlite3], [auto])
4799 else
4800   if test "${enable_sqlite}" != "no"
4801   then
4802     AC_CHECK_HEADERS(sqlite3.h, [
4803         VLC_ADD_PLUGIN([sqlite])
4804         if test "${with_sqlite}" != "no" -a -n "${with_sqlite}"; then
4805           AC_MSG_CHECKING(existence of sqlite directory in ${with_sqlite})
4806           real_sqlite="`cd ${with_sqlite} 2>/dev/null && pwd`"
4807           if test -z "${real_sqlite}"
4808           then
4809             dnl  The given directory can't be found
4810             AC_MSG_RESULT(no)
4811             AC_MSG_ERROR([cannot cd to ${with_sqlite}])
4812           fi
4813           VLC_ADD_CFLAGS([sqlite],[-I${with_sqlite}/include])
4814           VLC_ADD_LIBS([sqlite], [-L${with_sqlite}/lib -lsqlite3])
4815           AC_MSG_RESULT(yes)
4816         else
4817           VLC_ADD_LIBS([sqlite], [-lsqlite3])
4818         fi
4819         AC_DEFINE([SQLITE_MODULE], 1, [Define if you want to use SQLite module]) ],
4820         AC_MSG_ERROR([sqlite3 is required for sqlite module]) )
4821   fi
4823 AM_CONDITIONAL([HAVE_SQLITE], [test "${enable_sqlite}" != "no"])
4827 dnl  Endianness check
4829 AC_C_BIGENDIAN
4830 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
4831   DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
4832 ], [
4833   DEFS_BIGENDIAN=""
4835 AC_SUBST(DEFS_BIGENDIAN)
4838 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
4840 loader=false
4841 AC_ARG_ENABLE(loader,
4842   AS_HELP_STRING([--enable-loader],[build DLL loader for ELF i386 platforms
4843                   (default disabled)]))
4844 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
4845 AS_IF([test "${enable_loader}" = "yes"],
4846   [ VLC_ADD_PLUGIN([dmo])
4847     VLC_ADD_CPPFLAGS([dmo],[-I\\\${top_srcdir}/libs/loader])
4848     VLC_ADD_LIBS([dmo],[\\\${top_builddir}/libs/loader/libloader.la -lpthread])
4849     VLC_ADD_CPPFLAGS([quicktime],[-I\\\${top_srcdir}/libs/loader])
4850     VLC_ADD_LIBS([quicktime],[\\\${top_builddir}/libs/loader/libloader.la -lpthread])
4851     VLC_ADD_CPPFLAGS([realaudio],[-I\\\${top_srcdir}/libs/loader -DLOADER])
4852     VLC_ADD_LIBS([realaudio],[\\\${top_builddir}/libs/loader/libloader.la])
4853     VLC_ADD_CPPFLAGS([realvideo],[-I\\\${top_srcdir}/libs/loader -DLOADER])
4854     VLC_ADD_LIBS([realvideo],[\\\${top_builddir}/libs/loader/libloader.la])
4855   ])
4857 AC_ARG_WITH(,[Components:])
4860 dnl  the VLC binary
4862 AC_ARG_ENABLE(vlc,
4863   [  --enable-vlc            build the VLC media player (default enabled)])
4864 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
4867 dnl  Microsoft ActiveX support
4869 activex=false
4870 AC_ARG_ENABLE(activex,
4871   AS_HELP_STRING([--enable-activex],[build a vlc-based ActiveX control
4872                   (default enabled on Win32)]))
4873 AC_ARG_WITH(wine-sdk-path,
4874   [    --with-wine-sdk-path=PATH path to wine sdk])
4875 if test "${enable_activex}" != "no"
4876 then
4877   if test "${SYS}" = "mingw32"
4878   then
4879     AC_CHECK_PROGS(MIDL, [midl], no)
4880     if test "${with_wine_sdk_path}" != ""
4881     then
4882        WINE_SDK_PATH=${with_wine_sdk_path}
4883        AC_PATH_PROG(WIDL, widl, no, [$WINE_SDK_PATH/bin:$WINE_SDK_PATH/tools/widl])
4884     else
4885        WIDL=no
4886     fi
4887     AC_LANG_PUSH(C++)
4888     AC_CHECK_HEADERS(ole2.h,
4889       [AC_CHECK_HEADERS(olectl.h,
4890         [ VLC_ADD_CPPFLAGS([activex],[-DUNICODE -D_UNICODE -D_MIDL_USE_GUIDDEF_])
4891           VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
4892           VLC_ADD_LIBS([activex],[-lole32 -loleaut32 -luuid -lshlwapi])
4893           AC_CHECK_HEADERS(objsafe.h,
4894             VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER]),,
4895             [
4896              #if HAVE_OLE2_H
4897              #   include <ole2.h>
4898              #endif
4899             ]
4900           )
4901           activex=:
4902           PLUGINS_BINDINGS="${PLUGINS_BINDINGS} activex"
4903         ],
4904         [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
4905       )],
4906       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
4907     )
4908     AC_LANG_POP(C++)
4909   fi
4911 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
4912 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
4913 AC_ARG_VAR(WIDL, [Wine IDL compiler (requires Wine SDK)])
4914 AM_CONDITIONAL(HAS_WIDL_COMPILER, test "${WIDL}" != "no")
4915 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
4918 dnl  Mozilla plugin
4920 mozilla=false
4921 AC_ARG_ENABLE(mozilla,
4922   AS_HELP_STRING([--enable-mozilla],[build a vlc-based Firefox/Mozilla plugin
4923                   (default disabled)]))
4924 AC_ARG_WITH(mozilla-sdk-path,
4925   [    --with-mozilla-sdk-path=PATH path to mozilla sdk])
4926 AC_ARG_WITH(mozilla-pkg,
4927   [    --with-mozilla-pkg=PKG  look for PKG.pc to build the mozilla plugin.])
4928 AC_LANG_PUSH(C++)
4929 if test "${enable_mozilla}" = "yes"
4930 then
4931   AS_IF([test "${with_mozilla_sdk_path}" = "" -o "${with_mozilla_sdk_path}" = "no"],
4932     [
4933     dnl pkg-config
4934     dnl As we want to do a loop due to the number of name possible for the .pc
4935     dnl we can't use the pkg-config macros.
4937     AC_ARG_VAR([MOZILLA_CFLAGS], [C compiler flags for Mozilla, overriding pkg-config])
4938     AC_ARG_VAR([MOZILLA_LIBS], [linker flags for Mozilla, overriding pkg-config])
4939     AC_MSG_NOTICE([Checking for Mozilla])
4940     found=0
4941     if test -n "$MOZILLA_CFLAGS" -a -n "$MOZILLA_LIBS"
4942     then
4943       found=1
4944     else
4945       if test -n "$PKG_CONFIG"; then
4946         for i in "${with_mozilla_pkg}" libxul {seamonkey,iceape,xulrunner,firefox,iceweasel,mozilla}-plugin; do
4947           echo "Trying to find $i.pc files" >&5
4948           if $PKG_CONFIG --exists --print-errors "$i" 2>&5
4949           then
4950             echo "Using $i.pc files." >&5
4951             echo "Using $i.pc files." >&6
4952             found=1
4953             MOZILLA_CFLAGS=$(eval $PKG_CONFIG --cflags "$i" )
4954             MOZILLA_LIBS=$(eval $PKG_CONFIG --libs "$i" )
4955             break
4956           fi
4957         done
4958       fi
4959     fi
4960     AS_IF( [test $found = 1],[
4961         CPPFLAGS="${CPPFLAGS_save} ${MOZILLA_CFLAGS}"
4962         MOZILLA_REQUIRED_HEADERS=1
4963         AC_CHECK_HEADERS([npfunctions.h])
4964         AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
4965         AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
4966           [#if HAVE_NPAPI_H
4967            # include <npapi.h>
4968            #endif
4969           ])
4970         if test "${MOZILLA_REQUIRED_HEADERS}" = "0"; then
4971             AC_MSG_ERROR([Please install the Firefox development tools; mozilla-config.h, plugin/npapi.h and plugin/npruntime.h were not found.])
4972         fi
4973         MOZILLA_REQUIRED_HEADERS=
4974         mozilla=:
4975         AS_IF([ test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"],[
4976            VLC_ADD_CPPFLAGS([mozilla],[-DXP_UNIX -DOJI])
4977            AS_IF([ test "${SYS}" != "darwin"],[
4978              PKG_CHECK_MODULES(XPM, [xpm xt],[
4979                 VLC_ADD_CPPFLAGS([mozilla],[-DMOZ_X11])
4980              ],[
4981                 AC_MSG_ERROR([Please install the libXpm and libXt development files.])
4982              ])
4983           ])
4984         ])
4985         VLC_ADD_CPPFLAGS([mozilla],[${CPPFLAGS} ${XPM_CFLAGS}])
4986         VLC_ADD_LIBS([mozilla],[${MOZILLA_LIBS} ${XPM_LIBS}])
4987         VLC_ADD_PLUGIN([mozilla])
4988         PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
4989         MOZILLA_CONFIG=
4990         CPPFLAGS="${CPPFLAGS_save}"
4991           ],
4992           [
4993             AC_PATH_PROGS(MOZILLA_CONFIG,
4994             [mozilla-config seamonkey-config xulrunner-config],
4995         [no])
4996             test "${MOZILLA_CONFIG}" = "no" && AC_MSG_ERROR([Please install the Mozilla development tools. mozilla-config was not found.])
4997           ]
4998         )
4999     dnl pkg-config failed but we might have found a mozilla-config
5000     AS_IF( [test ! -z "${MOZILLA_CONFIG}"],[
5001       if ${MOZILLA_CONFIG} --defines | grep -q 'MOZ_X11=1'; then
5002         LDFLAGS="${LDFLAGS_save} ${X_LIBS} ${X_PRE_LIBS}"
5003         AC_CHECK_LIB(Xt,XtStrings,
5004          [
5005            VLC_ADD_CPPFLAGS([mozilla],[${X_CFLAGS}])
5006            VLC_ADD_LIBS([mozilla],[${X_LIBS} ${X_PRE_LIBS} -lXt -lX11 -lSM -lICE -lXpm])
5007          ],
5008          [],
5009          [[${X_LIBS} ${X_PRE_LIBS} -lX11 -lSM -lICE -lXpm]
5010         ])
5011         AC_CHECK_HEADERS(X11/xpm.h,,AC_MSG_ERROR([Please install libXpm-devel library for required X11/xpm.h]))
5012         LDFLAGS="${LDFLAGS_save}"
5013       fi
5015       mozilla=:
5016       PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5017       VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin java`]])
5018       VLC_ADD_LIBS([mozilla],[`${MOZILLA_CONFIG} --libs plugin`])
5019       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
5020       MOZILLA_REQUIRED_HEADERS=1
5021       AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5022       AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5023       AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5024         [#if HAVE_NPAPI_H
5025          # include <npapi.h>
5026          #endif
5027         ])
5028       if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5029       then
5030         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5031       fi
5032       MOZILLA_REQUIRED_HEADERS=
5033       CPPFLAGS="${CPPFLAGS_save}"
5034       MOZILLA_SDK_PATH="`${MOZILLA_CONFIG} --prefix`"
5035     ])
5036     dnl End of moz_sdk = ""
5037   ],[
5038     dnl special case for mingw32
5039     if test "${SYS}" = "mingw32"
5040     then
5041       AC_CHECK_TOOL(CYGPATH, cygpath, "")
5042       dnl latest gecko sdk does not have an xpcom directory
5043       if test -d "${with_mozilla_sdk_path}/xpcom"; then
5044           mozilla_sdk_xpcom="/xpcom"
5045       fi
5046     fi
5048     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
5049     CPPFLAGS="${CPPFLAGS_save} -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include"
5050     MOZILLA_REQUIRED_HEADERS=1
5051     AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5052     AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5053     AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5054         [#if HAVE_NPAPI_H
5055           #include <npapi.h>
5056           #endif
5057         ])
5058     if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5059     then
5060         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5061     fi
5062     MOZILLA_REQUIRED_HEADERS=
5063     mozilla=:
5064     PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5065     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])
5066     if ${need_xpcom_libs}; then
5067        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])
5068       if test "${SYS}" = "mingw32"; then
5069         dnl latest gecko sdk does not have embedstring
5070         if test -d "${real_mozilla_sdk}/embedstring/bin"
5071         then
5072           VLC_ADD_LIBS([mozilla],[-lembedstring])
5073         fi
5074       fi
5075     fi
5076     MOZILLA_SDK_PATH="${real_mozilla_sdk}"
5078     if test -n "${CYGPATH}"; then
5079       real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
5080     fi
5081     CPPFLAGS="${CPPFLAGS_save}"
5082  ])
5084 AC_LANG_POP(C++)
5085 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
5088 dnl  test plugins
5090 AC_ARG_ENABLE(testsuite,
5091   [  --enable-testsuite      build test modules (default disabled)])
5092 if test "${enable_testsuite}" = "yes"
5093 then
5094   TESTS="test1 test2 test3 test4"
5096   dnl  we define those so that bootstrap sets the right linker
5097   VLC_ADD_CXXFLAGS([test2],[])
5098   VLC_ADD_OBJCFLAGS([test3],[])
5099   dnl  this one is needed until automake knows what to do
5100   VLC_ADD_LIBS([test3],[-lobjc])
5102   VLC_ADD_PLUGIN([test1])
5103   VLC_ADD_PLUGIN([test2])
5104   VLC_ADD_PLUGIN([test3])
5105   VLC_ADD_PLUGIN([test4])
5109 dnl  qte_main plugin
5111 if test "${NEED_QTE_MAIN}" != "no"
5112 then
5113     VLC_ADD_PLUGIN([qte_main])
5114     VLC_ADD_CXXFLAGS([opie qte qt_video],[-DNEED_QTE_MAIN])
5115     VLC_ADD_CXXFLAGS([qte_main],[${CXXFLAGS_qte} ${CXXFLAGS_qt_video}])
5116     VLC_ADD_LDFLAGS([qte_main],[${LDFLAGS_qte} ${LDFLAGS_qt_video}])
5120 dnl  Plugin and builtin checks
5122 plugin_support=yes
5124 dnl Automagically disable plugins if there is no system support for
5125 dnl dynamically loadable files (.so, .dll, .dylib).
5126 dnl don't forget vlc-win32 still can load .dll as plugins
5127 AS_IF([test "${ac_cv_have_plugins}" = "no"], [
5128   AC_MSG_WARN([*** No plugin support! Building statically! ***])
5129   plugin_support=no
5132 AS_IF([test "${plugin_support}" != "no"], [
5133   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, [Define if dynamic plugins are supported])
5137 dnl Pic and shared libvlc stuff
5139 AS_IF([test "${SYS}" = "mingw32"], [
5140   FILE_LIBVLCCORE_DLL="!define LIBVLCCORE_DLL libvlccore.dll"
5141   FILE_LIBVLC_DLL="!define LIBVLC_DLL libvlc.dll"
5145 dnl  Stuff used by the program
5147 VERSION_MESSAGE="${VERSION} ${CODENAME}"
5148 COPYRIGHT_MESSAGE="VLC media player - version ${VERSION_MESSAGE} - (c) ${COPYRIGHT_YEARS} the VideoLAN team"
5149 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string])
5150 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string])
5151 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
5152 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
5153 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
5154 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
5155 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
5156 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
5157 AC_SUBST(COPYRIGHT_MESSAGE)
5158 AC_SUBST(VERSION_MESSAGE)
5159 AC_SUBST(VERSION_MAJOR)
5160 AC_SUBST(VERSION_MINOR)
5161 AC_SUBST(VERSION_REVISION)
5162 AC_SUBST(VERSION_EXTRA)
5163 AC_SUBST(COPYRIGHT_YEARS)
5164 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure])
5165 if test "${build_os}" = "cygwin"
5166 then
5167     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [host which ran configure])
5168 else
5169     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -s`", [host which ran configure])
5171 AC_DEFINE_UNQUOTED(VLC_COMPILE_DOMAIN, "`dnsdomainname 2>/dev/null || domainname 2>/dev/null || echo unknown`", [domain of the host which ran configure])
5172 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler])
5173 dnl Win32 need s a numerical version_extra.
5174 case $( echo ${VERSION_EXTRA}|wc -m ) in
5175        "1") VERSION_EXTRA_RC="0";;
5176        "2") VERSION_EXTRA_RC=$( echo ${VERSION_EXTRA}|tr "abcdefghi" "123456789") ;;
5177        *) VERSION_EXTRA_RC="99"
5178 esac
5179 AC_SUBST(VERSION_EXTRA_RC)
5181 dnl  Handle substvars that use $(top_srcdir)
5183 VLC_CONFIG="top_srcdir=\"\$(top_srcdir)\" top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
5184 AC_SUBST(VLC_CONFIG)
5185 CPPFLAGS_save="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS_save}"
5188 dnl  Restore *FLAGS
5190 VLC_RESTORE_FLAGS
5193 dnl Sort the modules list
5195 PLUGINS=$( (for i in `echo $PLUGINS`; do echo $i; done)|sort|xargs )
5198 dnl  Create the vlc-config script
5200 LDFLAGS_libvlc="${LDFLAGS_libvlc} ${LDFLAGS_builtin}"
5203 dnl  Configuration is finished
5205 AC_SUBST(SYS)
5206 AC_SUBST(ARCH)
5207 AC_SUBST(ALIASES)
5208 AC_SUBST(ASM)
5209 AC_SUBST(MOC)
5210 AC_SUBST(RCC)
5211 AC_SUBST(UIC)
5212 AC_SUBST(WINDRES)
5213 AC_SUBST(MOZILLA_SDK_PATH)
5214 AC_SUBST(WINE_SDK_PATH)
5215 AC_SUBST(LIBEXT)
5216 AC_SUBST(AM_CPPFLAGS)
5217 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
5218 AC_SUBST(FILE_LIBVLCCORE_DLL)
5219 AC_SUBST(FILE_LIBVLC_DLL)
5221 dnl Create vlc-config.in
5222 VLC_OUTPUT_VLC_CONFIG_IN
5224 AC_CONFIG_FILES([
5225   extras/package/win32/spad.nsi
5226   extras/package/win32/vlc.win32.nsi
5227   extras/package/macosx/Info.plist
5228   extras/package/macosx/Resources/English.lproj/InfoPlist.strings
5229   extras/package/macosx/plugin/Info.plist
5230   extras/package/macosx/plugin/InstallerInfo.plist
5231   Makefile
5232   projects/activex/Makefile
5233   projects/activex/axvlc.inf
5234   doc/Makefile
5235   extras/package/ipkg/Makefile
5236   libs/loader/Makefile
5237   libs/srtp/Makefile
5238   libs/unzip/Makefile
5239   modules/Makefile
5240   projects/mozilla/Makefile
5241   m4/Makefile
5242   po/Makefile.in
5243   projects/activex/axvlc_rc.rc
5244   projects/mozilla/npvlc_rc.rc
5245   projects/mozilla/vlc.r
5246   projects/mozilla/install.js
5247   share/Makefile
5248   share/vlc_win32_rc.rc
5249   share/libvlc_win32_rc.rc
5250   compat/Makefile
5251   src/Makefile
5252   src/test/Makefile
5253   bin/Makefile
5254   test/Makefile
5255   modules/access/Makefile
5256   modules/access/bd/Makefile
5257   modules/access/bda/Makefile
5258   modules/access/dshow/Makefile
5259   modules/access/dvb/Makefile
5260   modules/access/mms/Makefile
5261   modules/access/cdda/Makefile
5262   modules/access/rtp/Makefile
5263   modules/access/rtsp/Makefile
5264   modules/access/vcd/Makefile
5265   modules/access/vcdx/Makefile
5266   modules/access/screen/Makefile
5267   modules/access/zip/Makefile
5268   modules/access_output/Makefile
5269   modules/audio_filter/Makefile
5270   modules/audio_filter/channel_mixer/Makefile
5271   modules/audio_filter/converter/Makefile
5272   modules/audio_filter/resampler/Makefile
5273   modules/audio_filter/spatializer/Makefile
5274   modules/audio_mixer/Makefile
5275   modules/audio_output/Makefile
5276   modules/codec/Makefile
5277   modules/codec/avcodec/Makefile
5278   modules/codec/cmml/Makefile
5279   modules/codec/dmo/Makefile
5280   modules/codec/shine/Makefile
5281   modules/codec/subtitles/Makefile
5282   modules/codec/spudec/Makefile
5283   modules/codec/wmafixed/Makefile
5284   modules/control/Makefile
5285   modules/control/http/Makefile
5286   modules/control/globalhotkeys/Makefile
5287   modules/demux/Makefile
5288   modules/demux/asf/Makefile
5289   modules/demux/avformat/Makefile
5290   modules/demux/avi/Makefile
5291   modules/demux/mkv/Makefile
5292   modules/demux/mp4/Makefile
5293   modules/demux/mpeg/Makefile
5294   modules/demux/playlist/Makefile
5295   modules/gui/Makefile
5296   modules/gui/beos/Makefile
5297   modules/gui/macosx/Makefile
5298   modules/gui/hildon/Makefile
5299   modules/gui/minimal_macosx/Makefile
5300   modules/gui/qnx/Makefile
5301   modules/gui/qt4/Makefile
5302   modules/gui/skins2/Makefile
5303   modules/gui/wince/Makefile
5304   modules/meta_engine/Makefile
5305   modules/misc/Makefile
5306   modules/misc/dummy/Makefile
5307   modules/misc/lua/Makefile
5308   modules/misc/memcpy/Makefile
5309   modules/misc/notify/Makefile
5310   modules/misc/testsuite/Makefile
5311   modules/misc/playlist/Makefile
5312   modules/misc/osd/Makefile
5313   modules/misc/stats/Makefile
5314   modules/misc/xml/Makefile
5315   modules/mux/Makefile
5316   modules/mux/mpeg/Makefile
5317   modules/packetizer/Makefile
5318   modules/services_discovery/Makefile
5319   modules/stream_filter/Makefile
5320   modules/stream_out/Makefile
5321   modules/stream_out/transcode/Makefile
5322   modules/video_chroma/Makefile
5323   modules/video_filter/Makefile
5324   modules/video_filter/dynamicoverlay/Makefile
5325   modules/video_output/Makefile
5326   modules/video_output/msw/Makefile
5327   modules/video_output/qte/Makefile
5328   modules/video_output/x11/Makefile
5329   modules/visualization/Makefile
5330   modules/visualization/visual/Makefile
5333 dnl Generate makefiles
5334 AC_OUTPUT
5336 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
5337 # not provided with the source
5338 ${SHELL} ./config.status --file=vlc-config
5339 chmod 0755 vlc-config
5341 /bin/echo -n "Enabled modules: "
5342 ./vlc-config --list plugin
5344 dnl Do we have to use make or gmake ?
5345 USE_MAKE_OR_GMAKE=`case "${SYS}" in openbsd*) echo "gmake";; *) echo "make";; esac`
5346 dnl Shortcut to nice compile message
5347 rm -f compile
5348 echo '#! /bin/sh' >compile
5349 echo rm -f .error\$\$ >>compile
5350 echo ERROR=0 >>compile
5351 echo export PATH=$PATH LANG=C >>compile
5352 echo "($USE_MAKE_OR_GMAKE V=1 \$@ 2>&1 || touch .error\$\$)| \\" >>compile
5353 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/buildsystem/make.pl' >>compile
5354 echo test -f .error\$\$ \&\& ERROR=1 >>compile
5355 echo rm -f .error\$\$ >>compile
5356 echo exit \$ERROR >>compile
5357 chmod a+x compile
5359 printf "
5360 libvlc configuration
5361 --------------------
5362 version               : ${VERSION}
5363 system                : ${SYS}
5364 architecture          : ${ARCH}
5365 build flavour         : "
5366 test "${enable_debug}" = "yes" && printf "debug "
5367 test "${enable_cprof}" = "yes" && printf "cprof "
5368 test "${enable_gprof}" = "yes" && printf "gprof "
5369 test "${enable_optimizations}" = "yes" && printf "optim "
5370 test "${enable_release}" = "yes" && printf "release " || printf "devel "
5371 echo ""
5372 if test "${enable_vlc}" != "no"; then
5373 echo "vlc aliases           :${ALIASES}"
5374 else
5375 echo "build vlc executable  : no"
5377 echo "plugins/bindings      :${PLUGINS_BINDINGS}
5379 You can tune the compiler flags in vlc-config.
5380 To build vlc and its plugins, type \`./compile' or \`$USE_MAKE_OR_GMAKE'.
5382 if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
5383    echo ""
5384    echo "Warning: Due to a bug in ld, mmx/sse support has been"
5385    echo "         turned off."
5386    echo "         FFmpeg will be REALLY slow."
5387    echo "         VLC WILL NOT PERFORM AS EXPECTED."
5388    echo ""