aout: lock output fifo later
[vlc.git] / configure.ac
blob5762485cc1ebcce4bf03a6a6e5b1b10511712ea9
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([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}/liveMedia -lliveMedia])
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}/UsageEnvironment -lUsageEnvironment])
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-merged-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.])])
3665 dnl  XVMC module
3666 dnl  (disabled by default except on win32)
3668 AC_ARG_ENABLE(xvmc,
3669   [  --enable-xvmc           XvMC support (default disabled)],, [
3670   enable_xvmc="no"
3672 AS_IF([test "${enable_xvmc}" != "no"], [
3673   AC_CHECK_HEADERS(X11/extensions/vldXvMC.h, [
3674     AS_IF([test "${enable_libmpeg2}" = "yes"], [
3675       VLC_ADD_PLUGIN([xvmc])
3676       VLC_ADD_LIBS([xvmc],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXvMCW -lXv ${LIBMPEG2_LIBS}])
3677       VLC_ADD_CPPFLAGS([xvmc],[${X_CFLAGS} ${LIBMPEG2_CFLAGS}])
3678     ], [
3679       AC_MSG_ERROR([XVideo-MotionCompensation needs libmpeg2 which isn't available])
3680     ])
3681   ], [
3682     AC_MSG_ERROR([XVideo-MotionCompensation extension not found!])
3683   ])
3686 dnl End of Xlib tests
3687 CPPFLAGS="${CPPFLAGS_save}"
3691 dnl  X C Bindings modules
3693 AC_ARG_ENABLE(xcb,
3694   [  --enable-xcb            X11 support with XCB (default enabled)],, [
3695   AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"], [
3696     enable_xcb="yes"
3697   ], [
3698     enable_xcb="no"
3699   ])
3701 AC_ARG_ENABLE(xvideo,
3702   [  --enable-xvideo         XVideo support (default enabled)],, [
3703     enable_xvideo="$enable_xcb"
3706 need_xid_provider="no"
3707 AS_IF([test "${enable_xcb}" != "no"], [
3708   dnl libxcb
3709   PKG_CHECK_MODULES(XCB, [xcb])
3710   PKG_CHECK_MODULES(XCB_SHM, [xcb-shm])
3711   VLC_ADD_PLUGIN([xcb_x11])
3712   VLC_ADD_PLUGIN([xcb_screen])
3713   VLC_ADD_PLUGIN([xcb_apps])
3714   VLC_SET_CFLAGS_WERROR([xcb_screen], [-Wno-error=uninitialized]) # some gcc report a warning which doesn't reveal an error
3716   AS_IF([test "${enable_xvideo}" != "no"], [
3717     PKG_CHECK_MODULES(XCB_XV, [xcb-xv >= 1.1.90.1], [
3718       VLC_ADD_PLUGIN([xcb_xv])
3719     ], [
3720       PKG_CHECK_MODULES(XCB_XV, [xcb-xv], [
3721         VLC_ADD_PLUGIN([xcb_xv])
3722         VLC_ADD_CFLAGS([xcb_xv], [-DXCB_XV_OLD])
3723       ])
3724     ])
3725   ])
3727   PKG_CHECK_MODULES(XCB_RANDR, [xcb-randr >= 1.3], [
3728     VLC_ADD_PLUGIN([panoramix])
3729     VLC_ADD_LIBS([panoramix],[${XCB_RANDR_LIBS} ${XCB_LIBS}])
3730     VLC_ADD_CFLAGS([panoramix],[${XCB_RANDR_CFLAGS} ${XCB_CFLAGS}])
3731   ], [true])
3733   dnl xcb-utils
3734   PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms >= 0.3.4], [
3735     have_xcb_keysyms="yes"
3736   ], [
3737     PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms], [
3738       have_xcb_keysyms="yes"
3739       VLC_ADD_CFLAGS([globalhotkeys], [-DXCB_KEYSYM_OLD_API])
3740     ], [
3741       have_xcb_keysyms="no"
3742       need_xid_provider="yes"
3743     ])
3744   ])
3746   AS_IF([test "${have_xcb_keysyms}" = "yes"], [
3747     PKG_CHECK_MODULES(XPROTO, [xproto])
3748     VLC_ADD_PLUGIN([xcb_window])
3749     VLC_ADD_PLUGIN([globalhotkeys])
3750     VLC_ADD_CFLAGS([globalhotkeys], [${XCB_KEYSYMS_CFLAGS} ${XCB_CFLAGS}])
3751     VLC_ADD_LIBS([globalhotkeys], [${XCB_KEYSYMS_LIBS} ${XCB_LIBS}])
3752   ])
3753   VLC_ADD_PLUGIN([xdg_screensaver])
3758 dnl  OpenGL module
3759 dnl  (enabled by default except on beos)
3761 AC_ARG_ENABLE(opengl,
3762   [  --enable-opengl         OpenGL support (default enabled)])
3763 if test "${enable_opengl}" != "no" &&
3764    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
3765   if test "${SYS}" != "darwin"; then
3766     AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
3767       VLC_ADD_PLUGIN([opengl])
3768       if test "${SYS}" != "mingw32"; then
3769         VLC_ADD_LIBS([opengl],[${X_LIBS} -lGL -lGLU])
3770       else
3771         VLC_ADD_LIBS([opengl],[-lopengl32 -lglu32])
3772       fi
3773     ])
3774   else
3775     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
3776     VLC_ADD_PLUGIN([opengl])
3777     VLC_ADD_LIBS([opengl],[-Wl,-framework,OpenGL])
3778   fi
3782 dnl  SDL module
3784 AC_ARG_ENABLE(sdl,
3785   [  --enable-sdl            SDL support (default enabled)])
3786 AC_ARG_ENABLE(sdl-image,
3787   [  --enable-sdl-image      SDL image support (default enabled)])
3788 if test "${enable_sdl}" != "no"
3789 then
3790   SDL_PATH="${PATH}"
3791   AC_ARG_WITH(sdl-config-path,
3792     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
3793     [ if test "${with_sdl_config_path}" != "no"
3794       then
3795         SDL_PATH="${with_sdl_config_path}:${PATH}"
3796       fi ])
3797   AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
3798   SDL_HEADER="SDL/SDL.h"
3799   SDL_IMAGE="SDL/SDL_image.h"
3801   if test "${SDL_CONFIG}" != "no";  then
3802      PKG_CHECK_MODULES(SDL, [sdl >= 1.2.10], [
3803         # SDL on Darwin is heavily patched and can only run SDL_image
3804         if test "${SYS}" != "darwin"; then
3805           VLC_ADD_PLUGIN([vout_sdl])
3806           VLC_ADD_PLUGIN([aout_sdl])
3807         fi
3808         VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} --cflags | sed 's,SDL,,'`])
3809         VLC_ADD_LIBS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} --libs | sed 's,-rdynamic,,'`])
3811         # SDL_image
3812         AS_IF([ test "${enable_sdl_image}" != "no"],[
3813           AC_CHECK_HEADERS("SDL/SDL_image.h", [
3814             VLC_ADD_PLUGIN([sdl_image])
3815             AC_CHECK_LIB(png, png_set_rows, [VLC_ADD_LIBS([sdl_image],[-lpng -lz])],[],[-lz])
3816             AC_CHECK_LIB(jpeg, jpeg_start_decompress, [VLC_ADD_LIBS([sdl_image],[-ljpeg])])
3817             AC_CHECK_LIB(tiff, TIFFClientOpen, [VLC_ADD_LIBS([sdl_image],[-ltiff])])
3818             VLC_ADD_LIBS([sdl_image], [-lSDL_image])],
3819             [ AC_MSG_WARN([The development package for SDL_image is not installed.
3820       You should install it alongside your SDL package.])
3821             ])
3822         ])
3823      ],[
3824        AC_MSG_ERROR([The development package for SDL is too old. You need 1.2.10.
3825                     Alternatively you can also configure with --disable-sdl.])
3826      ])
3827   else if test "${enable_sdl}" =  "yes"; then
3828     AC_MSG_ERROR([I could not find the SDL package. You can download libSDL
3829 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
3830     ])
3831       fi
3832   fi
3836 dnl  freetype module
3838 AC_ARG_ENABLE(freetype,
3839   [  --enable-freetype       freetype support (default enabled)])
3840 AC_ARG_ENABLE(fribidi,
3841   [  --enable-fribidi        fribidi support (default enabled)])
3842 AC_ARG_ENABLE(fontconfig,
3843   [  --enable-fontconfig,    fontconfig support (default enabled)])
3844 if test "${enable_freetype}" != "no"
3845 then
3846    PKG_CHECK_MODULES(FREETYPE, freetype2,[
3847       VLC_ADD_PLUGIN([freetype])
3848       have_freetype=yes
3849       VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
3850       if test "${SYS}" = "mingw32"; then
3851         VLC_ADD_LIBS([freetype],[-liconv -lz])
3852       fi
3853       VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
3854       if test "${enable_fontconfig}" != "no"
3855       then
3856         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
3857           [VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
3858            VLC_ADD_LIBS([freetype],[-lfontconfig])])
3859         AC_CHECK_HEADERS(Carbon/Carbon.h,
3860           [VLC_ADD_LDFLAGS([freetype],[-Wl,-framework,Carbon])])
3861       fi
3863      dnl fribidi support
3864       if test "${enable_fribidi}" != "no"
3865       then
3866         PKG_CHECK_MODULES(FRIBIDI, fribidi, [
3867           VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
3868           VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
3869         ])
3870       fi
3872   ],[
3873   have_freetype=no
3874   AS_IF([ test "${enable_freetype}" =  "yes"],[
3875     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
3876 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
3877       ])
3878     ])
3879   ])
3884 dnl  libxml2 module
3886 PKG_ENABLE_MODULES_VLC([LIBXML2], [xml], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
3889 dnl  SVG module
3891 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3894 dnl Snapshot vout module (with cache)
3896 AC_ARG_ENABLE(snapshot,
3897   [  --enable-snapshot       snapshot module (default disabled)])
3898 if test "${enable_snapshot}" = "yes"
3899 then
3900   VLC_ADD_PLUGIN([snapshot])
3904 dnl  Qt Embedded module
3905 dnl  (disabled by default)
3907 AC_ARG_ENABLE(qte,
3908   [  --enable-qte            QT Embedded support (default disabled)])
3909 if test "${enable_qte}" = "yes"
3910 then
3911   AC_ARG_WITH(qte,
3912   [    --with-qte=PATH       Qt Embedded headers and libraries])
3913   if test "${with_qte}" != "no" -a -n "${with_qte}"
3914   then
3915     VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3916     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])
3917   else
3918     VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3919     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
3920   fi
3921   VLC_ADD_PLUGIN([qte])
3922   NEED_QTE_MAIN=yes
3923   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
3924   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
3925     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
3926   ] )
3927   CPPFLAGS="${CPPFLAGS_save}"
3931 dnl Roku HD1000 Video output module
3933 AC_ARG_ENABLE(hd1000v,
3934   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
3935 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
3936   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3937    test "${enable_hd1000v}" = "yes"); then
3938   AC_LANG_PUSH([C++])
3939   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
3940   [
3941     can_build_roku="yes"
3942   ],
3943   [
3944     can_build_roku="no"
3945     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
3946   ])
3947   if test "$can_build_roku" = "yes"
3948   then
3949     VLC_ADD_PLUGIN([hd1000v])
3950     VLC_ADD_LIBS([hd1000v],[-lCascade -ldvbpsi -lmad])
3951   fi
3952   AC_LANG_POP([C++])
3956 dnl  Windows DirectX module
3959 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"
3960 then
3961   VLC_ADD_PLUGIN([panoramix])
3964 AC_ARG_ENABLE(directx,
3965   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
3966 if test "${enable_directx}" != "no"
3967 then
3968   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"
3969   then
3970       AC_CHECK_HEADERS(ddraw.h,
3971       [ VLC_ADD_PLUGIN([directx])
3972         VLC_ADD_PLUGIN([aout_directx])
3973         VLC_ADD_LIBS([directx],[-lgdi32])
3974       ],[AC_MSG_ERROR([Cannot find DirectX headers!])]
3975       )
3976       AC_CHECK_HEADERS(GL/gl.h,
3977       [ VLC_ADD_PLUGIN([glwin32])
3978         VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
3979       ])
3980       AC_CHECK_HEADERS(d3d9.h,
3981       [ VLC_ADD_PLUGIN([direct3d])
3982         VLC_ADD_LIBS([direct3d],[-lgdi32])
3983       ])
3984       VLC_ADD_LIBS([direct3d directx glwin32],[-lole32])
3985   fi
3989 dnl  win32 GDI plugin
3991 AC_ARG_ENABLE(wingdi,
3992   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
3993 if test "${enable_wingdi}" != "no"; then
3994   if test "${SYS}" = "mingw32"; then
3995     VLC_ADD_PLUGIN([wingdi])
3996     VLC_ADD_LIBS([wingdi],[-lgdi32 -lole32])
3997   fi
3998   if test "${SYS}" = "mingwce"; then
3999     VLC_ADD_PLUGIN([wingdi])
4000     VLC_ADD_PLUGIN([wingapi])
4001     VLC_ADD_LIBS([wingdi],[-laygshell])
4002     VLC_ADD_LIBS([wingapi],[-laygshell])
4003   fi
4008 dnl  Linux framebuffer module
4010 AC_ARG_ENABLE(fb,
4011   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
4012     if test "${enable_fb}" != "no"
4013     then
4014       AC_CHECK_HEADERS(linux/fb.h, [
4015         VLC_ADD_PLUGIN([fb])
4016       ])
4017     fi
4020 dnl  Linux MGA module
4022 AC_ARG_ENABLE(mga,
4023   [  --enable-mga            Linux kernel Matrox support (default disabled)],
4024   [ if test "${enable_mga}" = "yes"
4025     then
4026       VLC_ADD_PLUGIN([mga])
4027     fi ])
4030 dnl  OMAP Framebuffer module
4032 AC_ARG_ENABLE(omapfb,
4033   [  --enable-omapfb         OMAP framebuffer support (default disabled)])
4034     if test "${enable_omapfb}" = "yes"
4035     then
4036       AC_CHECK_HEADERS(asm/arch-omap/omapfb.h, [
4037         VLC_ADD_PLUGIN([omapfb])
4038         AC_CHECK_HEADERS(X11/Xlib.h, [
4039           VLC_ADD_LIBS([omapfb],[${X_LIBS} ${X_PRE_LIBS} -lX11]) ])
4040       ])
4041       VLC_ADD_PLUGIN([swscale_omap])
4042     fi
4045 dnl  SVGAlib module
4047 AC_ARG_ENABLE(svgalib,
4048   [  --enable-svgalib        SVGAlib support (default disabled)])
4049 if test "${enable_svgalib}" = "yes"
4050 then
4051   VLC_ADD_PLUGIN([svgalib])
4052   VLC_ADD_LIBS([svgalib],[-lvgagl -lvga])
4056 dnl  DirectFB module
4057 dnl  try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
4058 dnl  TODO: support for static linking
4060 AC_ARG_ENABLE(directfb,
4061   [  --enable-directfb       DirectFB support (default disabled)])
4062 AC_ARG_WITH(directfb,
4063   [    --with-directfb=PATH  path to DirectFB headers and libraries])
4065 if test "${enable_directfb}" = "yes"; then
4066     have_directfb="false"
4067     CPPFLAGS_mydirectfb=
4068     LIBS_mydirectfb=
4069     if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
4070         dnl Trying the given location
4071         CPPFLAGS_save="${CPPFLAGS}"
4072         LIBS_save="${LIBS}"
4074         CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
4075         LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/"
4076         LIBS_new="${LIBS_new} -L${with_directfb}/src/.libs/"
4078         CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
4079         LIBS="${LIBS} ${LIBS_new}"
4081         dnl FIXME: too obscure
4082         AC_CHECK_HEADER([directfb.h], [
4083             AC_CHECK_LIB([direct],[direct_initialize], [
4084                 AC_CHECK_LIB([fusion], [fusion_enter], [
4085                     AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
4086                 ], have_directfb="false")
4087             ], have_directfb="false")
4088         ], have_directfb="false")
4090         dnl Restore flags
4091         CPPFLAGS="${CPPFLAGS_save}"
4092         LIBS="${LIBS_save}"
4094         if test "${have_directfb}" = "true"; then
4095             LIBS_mydirectfb="${LIBS_new} -lz -ldl -ldirectfb -lfusion -ldirect -lpthread"
4096             CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
4097         fi
4098     else
4099         dnl Look for directfb-config
4100         AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
4101         if test "${DIRECTFB_CONFIG}" != "no"; then
4102             CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
4103             LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
4104             have_directfb="true"
4105         else
4106             dnl Trying with pkg-config
4107             PKG_CHECK_MODULES(DIRECTFB, directfb, [
4108                 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
4109                 LIBS_mydirectfb="${DIRECTFB_LIBS}"
4110                 have_directfb="true"
4111                 ], [have_directfb="false"])
4112         fi
4113     fi
4114     if test "${have_directfb}" = "true"; then
4115         VLC_ADD_PLUGIN([directfb])
4116         VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
4117         VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
4118     else
4119         AC_MSG_ERROR([cannot find directfb headers and/or libraries ])
4120     fi
4126 dnl  GGI module
4128 AC_ARG_ENABLE(ggi,
4129   [  --enable-ggi            GGI support (default disabled)])
4130 if test "${enable_ggi}" = "yes"
4131 then
4132   AC_CHECK_HEADER([ggi/ggi.h],[
4133     VLC_ADD_PLUGIN([ggi])
4134     VLC_ADD_LIBS([ggi],[-lggi])
4135     AC_ARG_WITH(ggi,
4136       [    --with-ggi=PATH       path to libggi],
4137       [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
4138         then
4139           VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
4140           VLC_ADD_LIBS([ggi],[-L${with_ggi}/lib])
4141         fi ])
4142     ],[
4143        AC_MSG_ERROR([LibGGI development files can't be found])
4144     ])
4148 dnl  AA plugin
4150 AC_ARG_ENABLE(aa,
4151   [  --enable-aa             aalib output (default disabled)])
4152 if test "${enable_aa}" = "yes"
4153 then
4154   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
4155   if test "${have_aa}" = "true"
4156   then
4157     VLC_ADD_PLUGIN([aa])
4158     VLC_ADD_LIBS([aa],[-laa])
4159   fi
4163 dnl  libcaca plugin
4165 PKG_ENABLE_MODULES_VLC([CACA], [], [caca >= 0.99.beta1], [libcaca output],[auto])
4168 dnl  Audio plugins
4171 AC_ARG_WITH(,[Audio plugins:])
4174 dnl  OSS /dev/dsp module (enabled by default except on win32)
4176 AC_ARG_ENABLE(oss,
4177   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
4179 if test "${enable_oss}" != "no" &&
4180   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4181    test "${enable_oss}" = "yes")
4182 then
4183   AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
4184     VLC_ADD_PLUGIN([oss])
4185     VLC_ADD_PLUGIN([access_oss])
4186     AC_CHECK_LIB(ossaudio,main,[VLC_ADD_LIBS([oss],[-lossaudio])
4187                                 VLC_ADD_LIBS([access_oss],[-lossaudio])])
4188   ])
4192 dnl  Pulseaudio module
4194 PKG_ENABLE_MODULES_VLC([PULSE], [], [libpulse >= 0.9.11], [Pulseaudio support], [auto])
4197 dnl  Portaudio module
4199 PKG_ENABLE_MODULES_VLC([PORTAUDIO], [], [portaudio-2.0], [Portaudio library support], [auto])
4202 dnl  ALSA module
4204 PKG_ENABLE_MODULES_VLC([ALSA], [], [alsa >= 1.0.0], [Alsa sound support for linux], [auto])
4205 PKG_ENABLE_MODULES_VLC([ACCESS_ALSA], [access_alsa], [alsa >= 1.0.0], [Alsa access for linux], [auto])
4208 dnl  win32 waveOut plugin
4210 AC_ARG_ENABLE(waveout,
4211   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
4212 if test "${enable_waveout}" != "no"; then
4213   if test "${SYS}" = "mingw32"; then
4214     VLC_ADD_PLUGIN([waveout])
4215     VLC_ADD_LIBS([waveout],[-lwinmm])
4216   fi
4217   if test "${SYS}" = "mingwce"; then
4218     VLC_ADD_PLUGIN([waveout])
4219   fi
4223 dnl  CoreAudio plugin
4225 AC_ARG_ENABLE(macosx-audio,
4226   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
4227 if test "${enable_macosx-audio}" != "no" &&
4228   (test "${SYS}" = "darwin" || test "${enable_macosx-audio}" = "yes")
4229 then
4230   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h,
4231     [ VLC_ADD_PLUGIN([auhal])
4232       VLC_ADD_LDFLAGS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
4233     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
4237 dnl  Roku HD1000 audio
4239 AC_ARG_ENABLE(hd1000a,
4240   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
4241 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
4242   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4243    test "${enable_hd1000a}" = "yes")
4244 then
4245   AC_LANG_PUSH([C++])
4246   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
4247     VLC_ADD_PLUGIN([hd1000a])
4248     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LIBS([hd1000a],[-lHDMachineX225]))  ])
4249   AC_LANG_POP([C++])
4253 dnl  JACK modules
4255 PKG_ENABLE_MODULES_VLC([JACK], [jack], [jack], [JACK audio I/O modules],[auto])
4256 PKG_ENABLE_MODULES_VLC([JACK], [access_jack], [jack], [JACK audio I/O modules],[auto])
4260 dnl  CyberLink for C++ UPnP stack
4262 AC_ARG_ENABLE(cyberlink,
4263   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
4264   AS_IF([test "${enable_cyberlink}" = "yes" ], [
4265   AC_ARG_WITH(cyberlink-tree,
4266     [    --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
4268   dnl
4269   dnl test for --with-cyberlink-tree
4270   dnl
4271   AS_IF([test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""], [
4272     AC_LANG_PUSH(C++)
4273     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
4274     AS_IF([test -z "${real_cyberlink_tree}"], [
4275       dnl  The given directory can't be found
4276       AC_MSG_RESULT(no)
4277       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
4278     ])
4279     CPPFLAGS_save="${CPPFLAGS}"
4280     CPPFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
4281     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_cyberlink}"
4282     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
4283       [ VLC_ADD_CXXFLAGS([upnp_cc], [${CPPFLAGS_cyberlink}])
4284         VLC_ADD_PLUGIN([upnp_cc])
4285       ],[
4286         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
4287       ])
4288     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
4289     AS_IF([test -f "${real_cyberlink_tree}/lib/unix/libclink.a"], [
4290       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
4291       dnl The mere fact that we have to make such an ugly check sucks
4292       AC_MSG_CHECKING(for XML parser to link CyberLink with)
4293       LIBS_save="$LIBS"
4294       LIBS_cclink="no"
4295       for l in "`xml2-config --libs`" -lexpat -lxerces-c; do
4296         LIBS="$LIBS_save ${real_cyberlink_tree}/lib/unix/libclink.a -lpthread $l"
4297         AC_LINK_IFELSE([AC_LANG_PROGRAM([
4298 #include <cybergarage/upnp/media/player/MediaPlayer.h>
4299 using namespace CyberLink;
4301 class testclass : public SearchResponseListener, public MediaPlayer
4303     virtual void deviceSearchResponseReceived( SSDPPacket *)
4304     {
4305     }
4307     public:
4308       testclass (void)
4309       {
4310         addSearchResponseListener (this);
4311         start ();
4312       }
4314 ],[testclass l;])],[LIBS_cclink="$l"])
4315       done
4316       LIBS="${LIBS_save}"
4317       dnl should not happen - otherwise this needs fixing - hence FAILURE
4318       AS_IF([test "${LIBS_cclink}" = "no"],
4319         [AC_MSG_FAILURE([cannot find XML parser for CyberLink])])
4320       AC_MSG_RESULT([${LIBS_cclink}])
4321       VLC_ADD_LIBS([upnp_cc], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}])
4322     ], [
4323       AC_MSG_RESULT(no)
4324       AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
4325     ])
4326     CPPFLAGS="${CPPFLAGS_save}"
4327     AC_LANG_POP([C++])
4328   ])
4332 dnl UPnP Plugin (Intel SDK)
4334 PKG_ENABLE_MODULES_VLC([UPNP], [upnp_intel], [libupnp], [Intel UPnp SDK],[auto])
4338 dnl  Interface plugins
4341 AC_ARG_WITH(,[Interface plugins:])
4343 dnl special case for BeOS
4344 if test "${SYS}" = "beos"
4345 then
4346     VLC_ADD_PLUGIN([beos])
4350 dnl Skins2 module
4352 AC_ARG_ENABLE(skins2,
4353   [AS_HELP_STRING([--enable-skins2],[Skins2 interface module (default
4354    enabled except on MacOSX, BeOS and WinCE)])])
4355 if test "${enable_skins2}" = "yes" ||
4356   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4357    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
4359   dnl test for the required libraries
4360   skins2_missing_lib="no"
4362   dnl freetype
4363   if test "${have_freetype}" != "yes"; then
4364     skins2_missing_lib="yes"
4365     if test "${enable_skins2}" = "yes"; then
4366       AC_MSG_ERROR([Could not find freetype (required for skins2)])
4367     fi
4368   fi
4370   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32"); then
4371     VLC_ADD_PLUGIN([skins2])
4372     ALIASES="${ALIASES} svlc"
4373     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
4374     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4375     VLC_ADD_LIBS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
4377   else if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "darwin"); then
4378     VLC_ADD_PLUGIN([skins2])
4379     ALIASES="${ALIASES} svlc"
4380     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
4381     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4382     VLC_ADD_LDFLAGS([skins2],[-Wl,-framework,Carbon])
4384   else if test "${skins2_missing_lib}" = "no"; then
4385     VLC_ADD_PLUGIN([skins2])
4386     ALIASES="${ALIASES} svlc"
4387     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} -DX11_SKINS])
4388     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4389     VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lX11])
4390     need_xid_provider="no"
4391   fi fi fi
4393 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes" ||
4394          (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4395           test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no")])
4398 dnl Hildon UI
4400 AC_ARG_ENABLE(hildon,
4401   [  --enable-hildon         Hildon touchscreen UI (default disabled)])
4402 AS_IF([test "${enable_hildon}" = "yes"], [
4403   PKG_CHECK_MODULES(HILDON, [hildon-1 hildon-fm-2], [
4404     VLC_ADD_CFLAGS([hildon],[${HILDON_CFLAGS}])
4405     VLC_ADD_LIBS([hildon],[${HILDON_LIBS}])
4406     VLC_ADD_PLUGIN([hildon])
4407     ALIASES="${ALIASES} mvlc"
4408     need_xid_provider="no"
4409   ], [
4410     AS_IF([test "${enable_hildon}" = "yes"],[
4411       AC_MSG_ERROR([Hildon libraries not found])
4412     ])
4413     enable_hildon="no"
4414   ])
4416 AM_CONDITIONAL(BUILD_HILDON, [test "${enable_hildon}" = "yes"])
4419 dnl QT 4
4421 AC_ARG_ENABLE(qt4,
4422   [  --enable-qt4            QT 4 support (default enabled) ],, [
4423   AS_IF([test "${SYS}" = "darwin"], [enable_qt4=no])
4425 AS_IF([test "${enable_qt4}" != "no"], [
4426   PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.4.0], [
4427     VLC_ADD_PLUGIN([qt4])
4428     ALIASES="${ALIASES} qvlc"
4429     AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "darwin"], [
4430         VLC_ADD_LIBS([qt4],[$QT4_LIBS -lX11])
4431         need_xid_provider="no"
4432     ], [
4433         VLC_ADD_LIBS([qt4],[$QT4_LIBS -lole32])
4434     ])
4435     QT4LOCALEDIR="$(eval $PKG_CONFIG --variable=prefix QtCore)/share/qt4/translations/"
4436     AC_SUBST(QT4LOCALEDIR)
4437     VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS -DQT4LOCALEDIR=\\\\\\\"${QT4LOCALEDIR}\\\\\\\"])
4438     AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`eval $PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4439     AC_PATH_PROG(RCC, rcc, rcc,`eval $PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4440     AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`eval $PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4441   ], [
4442     AS_IF([test "${enable_qt4}" = "yes"],[
4443       AC_MSG_ERROR([Qt 4 library not found])
4444     ],[
4445       AC_MSG_WARN([Qt 4 library not found])
4446     ])
4447     enable_qt4="no"
4448   ])
4450 AM_CONDITIONAL(ENABLE_QT4, [test "x$enable_qt4" != "xno"])
4453 dnl  WinCE GUI module
4455 AC_ARG_ENABLE(wince,
4456   [  --enable-wince          Windows CE interface (default enabled with MinGW)])
4457 if test "${enable_wince}" != "no"; then
4458   if test "${SYS}" = "mingwce"; then
4459     VLC_ADD_PLUGIN([wince])
4460     VLC_ADD_CXXFLAGS([wince],[])
4461     VLC_ADD_LIBS([wince],[-lcommctrl -lcommdlg -laygshell])
4462     dnl Gross hack
4463     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4464   elif test "${SYS}" = "mingw32"; then
4465     VLC_ADD_CXXFLAGS([wince],[])
4466     VLC_ADD_LIBS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
4467     dnl Gross hack
4468     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4469   fi
4473 dnl Simple test for skins2 dependency
4475 AS_IF([test "${enable_skins2}" != "no" && test "x$enable_qt4" = "xno"], [
4476   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.])
4480 dnl  Opie QT embedded module
4482 AC_ARG_ENABLE(opie,
4483   [  --enable-opie           Qt embedded interface support (default disabled)],
4484   [if test "${enable_opie}" = "yes"; then
4485      AC_ARG_WITH(qte,
4486      [    --with-qte=PATH       Qt Embedded headers and libraries])
4487      if test "${with_qte}" != "no" -a -n "${with_qte}"
4488      then
4489        VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4490        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])
4491      else
4492        VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
4493        VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
4494      fi
4495      CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4496      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4497        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4498      ] )
4499      CPPFLAGS="${CPPFLAGS_save}"
4501      VLC_ADD_PLUGIN([opie])
4502      NEED_QTE_MAIN=yes
4503      VLC_ADD_LIBS([opie],[-lqpe ${LDFLAGS_qte}])
4504      VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
4505      if test "${with_qte}" != "no" -a -n "${with_qte}"
4506      then
4507        MOC=${with_qte}/bin/moc
4508      else
4509        MOC=${QTDIR}/bin/moc
4510      fi
4511    fi])
4514 dnl  MacOS X video output/gui modules
4516 AC_ARG_ENABLE(macosx,
4517   [  --enable-macosx         MacOS X support (default enabled on MacOS X)])
4518 if test "x${enable_macosx}" = "xyes"
4519 then
4520   VLC_ADD_LDFLAGS([access_eyetv],                     [-Wl,-framework,Foundation])
4521   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer qtcapture],[-Wl,-framework,Cocoa])
4522   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer],[-Wl,-framework,OpenGL])
4523   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,Carbon])
4524   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,CoreServices])
4525   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,AGL])
4526   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,IOKit])
4527   VLC_ADD_LDFLAGS([macosx],                           [-F\\\${top_srcdir}/extras/contrib/Sparkle -Wl,-framework,Sparkle])
4528   VLC_ADD_OBJCFLAGS([macosx],                         [-F\\\${top_srcdir}/extras/contrib/Sparkle])
4529   dnl For bug report
4530   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,AddressBook])
4531   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,QTKit])
4532   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,CoreAudio])
4533   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,WebKit])
4534   VLC_ADD_LDFLAGS([opengllayer qtcapture],            [-Wl,-framework,QuartzCore])
4535   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,CoreVideo])
4536   VLC_ADD_OBJCFLAGS([macosx minimal_macosx opengllayer growl opengllayer], [-fobjc-exceptions] )
4538   VLC_ADD_PLUGIN([access_eyetv])
4539   VLC_ADD_PLUGIN([qtcapture])
4540   VLC_ADD_PLUGIN([macosx])
4541   VLC_ADD_PLUGIN([minimal_macosx])
4542   VLC_ADD_PLUGIN([opengllayer])
4546 dnl  QNX RTOS module
4548 AC_ARG_ENABLE(qnx,
4549   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
4550     if test "${enable_qnx}" != "no"
4551     then
4552       AC_CHECK_HEADERS(Ph.h, [
4553         VLC_ADD_PLUGIN([qnx])
4554         VLC_ADD_LIBS([qnx],[-lasound -lph])
4555       ])
4556     fi
4559 dnl  ncurses module
4561 AC_ARG_ENABLE(ncurses,
4562   [  --disable-ncurses       ncurses interface support (default enabled)],
4563   [if test "${enable_ncurses}" != "no"; then
4564     AC_CHECK_HEADER(ncurses.h,
4565       [AC_CHECK_LIB(ncursesw, mvprintw,
4566         [VLC_ADD_PLUGIN([ncurses])
4567         VLC_ADD_LIBS([ncurses],[-lncursesw])
4568         ALIASES="${ALIASES} nvlc"
4569         AC_DEFINE([HAVE_NCURSESW], 1, [Define to 1 if you have libncursesw.])
4570         AC_CHECK_LIB(ncursesw, tgetent, [],
4571           AC_CHECK_LIB(tinfow, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfow])],
4572             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
4573               [AS_IF([test "x${enable_ncurses}" != "x"],
4574                 [AC_MSG_ERROR([tgetent not found in ncursesw tinfow tinfo]
4575                )])])
4576             ]
4577           )
4578         )
4579         ],
4580         [AC_CHECK_LIB( ncurses, mvprintw,
4581           [VLC_ADD_PLUGIN([ncurses])
4582           ALIASES="${ALIASES} nvlc"
4583           VLC_ADD_LIBS([ncurses],[-lncurses])
4584           AC_CHECK_LIB(ncurses, tgetent, [],
4585             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
4586               [AS_IF([test "x${enable_ncurses}" != "x"],
4587                 [AC_MSG_ERROR([tgetent not found in ncurses tinfo])])]
4588             )]
4589           )],
4590           [AS_IF([test "x${enable_ncurses}" != "x"], [
4591             AC_MSG_ERROR([libncurses not found])])]
4592         )]
4593       )]
4594     )
4595   fi]
4599 dnl  XOSD plugin
4601 AC_ARG_ENABLE(xosd,
4602   [  --enable-xosd           xosd interface support (default disabled)])
4603 if test "${enable_xosd}" = "yes"
4604 then
4605   AC_CHECK_HEADERS(xosd.h,
4606     AC_CHECK_LIB(xosd, xosd_set_horizontal_offset, [
4607       VLC_ADD_PLUGIN([xosd])
4608       VLC_ADD_LIBS([xosd],[-lxosd])
4609     ])
4610   )
4614 dnl Framebuffer (overlay) plugin
4616 AC_ARG_ENABLE(fbosd,
4617   [  --enable-fbosd          fbosd interface support (default disabled)])
4618 if test "${enable_fbosd}" = "yes"
4619 then
4620   AC_CHECK_HEADERS(linux/fb.h, [
4621     VLC_ADD_PLUGIN([fbosd])
4622  ])
4626 dnl Post-interface configuration checks
4628 AS_IF([test "$need_xid_provider" = "yes"], [
4629   AC_MSG_ERROR([X11 video outputs need a window provider (Qt4, Skins2, Hildon or xcb-utils), but none were found. Please install xcb-keysyms.])
4633 dnl Visualisation plugin
4635 AC_ARG_ENABLE(visual,
4636   [  --enable-visual         visualisation plugin (default enabled)])
4637 if test "${enable_visual}" != "no"
4638 then
4639     VLC_ADD_PLUGIN([visual])
4643 dnl  goom visualization plugin
4645 PKG_ENABLE_MODULES_VLC([GOOM], [], [libgoom2], [goom visualization plugin], [auto])
4648 dnl libprojectM visualization plugin
4650 PKG_ENABLE_MODULES_VLC([PROJECTM], [], [libprojectM], [projectM visualization plugin], [auto])
4653 dnl  AtmoLight (homebrew AmbiLight)
4655 AC_ARG_ENABLE(atmo,
4656 AS_HELP_STRING([--disable-atmo],[AtmoLight (homebrew Philips ambilight)
4657                 (broken, default disabled)]),, [enable_atmo="no"])
4658 AS_IF([test "${enable_atmo}" != no], [
4659   AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "linux"], [
4660     AC_LANG_PUSH(C++)
4661     VLC_ADD_PLUGIN([atmo])
4662     AC_LANG_POP(C++)
4663   ])
4667 dnl  Bonjour services discovery
4668 PKG_ENABLE_MODULES_VLC([BONJOUR], [], [avahi-client >= 0.6], [Bonjour services discovery], [auto])
4671 dnl  libudev services discovery
4672 PKG_ENABLE_MODULES_VLC([UDEV], [], [libudev >= 142], [Linux udev services discovery], [auto])
4675 dnl MTP devices services discovery
4676 PKG_ENABLE_MODULES_VLC([MTP], [], [libmtp >= 0.3.0],[MTP devices support],[auto])
4679 dnl  Lirc plugin
4681 AC_ARG_ENABLE(lirc,
4682   [  --enable-lirc           lirc support (default disabled)])
4683 if test "${enable_lirc}" = "yes"
4684 then
4685   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
4686   if test "${have_lirc}" = "true"
4687   then
4688     VLC_ADD_PLUGIN([lirc])
4689     VLC_ADD_LIBS([lirc],[-llirc_client])
4690   fi
4694 AC_ARG_WITH(,[Misc options:])
4697 dnl libgcrypt
4699 AC_ARG_ENABLE(libgcrypt,
4700   [  --disable-libgcrypt      gcrypt support (default enabled)])
4701 AS_IF([test "${enable_libgcrypt}" != "no"], [
4702   AC_CHECK_DECL([GCRYCTL_SET_THREAD_CBS], [
4703     libgcrypt-config --version >/dev/null || \
4704         AC_MSG_ERROR([gcrypt.h present but libgcrypt-config could not be found])
4705     AC_CHECK_LIB(gcrypt, gcry_control, [
4706       have_libgcrypt="yes"
4707       GCRYPT_CFLAGS="`libgcrypt-config --cflags`"
4708       GCRYPT_LIBS="`libgcrypt-config --libs`"
4709     ], [
4710       AC_MSG_ERROR([libgcrypt not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
4711     ], [`libgcrypt-config --libs`])
4712   ], [
4713     AC_MSG_ERROR([libgcrypt version 1.1.94 or higher not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
4714   ], [#include <gcrypt.h>]
4715   )
4718 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
4719   AS_IF([test "${have_libgcrypt}" = "yes"],[
4720     VLC_ADD_LIBS([rtp stream_out_rtp], [${GCRYPT_LIBS}])
4721   ])
4723 AC_SUBST(GCRYPT_CFLAGS)
4724 AC_SUBST(GCRYPT_LIBS)
4725 AM_CONDITIONAL([HAVE_GCRYPT], [test "${have_libgcrypt}" = "yes"])
4728 dnl TLS/SSL
4730 AC_ARG_ENABLE(gnutls,
4731   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
4733 AS_IF([test "${enable_gnutls}" != "no"], [
4734   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.7.4], [
4735     VLC_ADD_PLUGIN([gnutls])
4736     VLC_ADD_CFLAGS([gnutls], [$GNUTLS_CFLAGS])
4737     AS_IF([test "${SYS}" = "mingw32"], [
4738       dnl pkg-config --libs gnutls omits these
4739       VLC_ADD_LIBS([gnutls], [-lz])
4740       VLC_ADD_LIBS([gnutls], [${LTLIBINTL}])
4741     ])
4742     dnl The GnuTLS plugin invokes gcry_control directly.
4743     AS_IF([test "${have_libgcrypt}" = "yes"],[
4744       VLC_ADD_LIBS([gnutls], [${GCRYPT_LIBS}])
4745       VLC_ADD_CFLAGS([gnutls], [${GCRYPT_CFLAGS}])
4746     ])
4747     VLC_ADD_LIBS([gnutls], [$GNUTLS_LIBS])
4748   ], [
4749     AS_IF([test "${enable_gnutls}" = "yes"], [
4750       AC_MSG_ERROR([gnutls not present or too old (version 1.7.4 required)])
4751     ])
4752   ])
4757 dnl RemoteOSD plugin (VNC client as video filter)
4759 AC_ARG_ENABLE(remoteosd,
4760   [  --disable-remoteosd     RemoteOSD plugin (default enabled)])
4762 AS_IF([test "${enable_remoteosd}" != "no"], [
4763   AS_IF([test "${have_libgcrypt}" = "yes"],[
4764     VLC_ADD_PLUGIN([remoteosd])
4765     VLC_ADD_LIBS([remoteosd], ${GCRYPT_LIBS})
4766     VLC_ADD_CFLAGS([remoteosd], ${GCRYPT_CFLAGS})
4767   ], [
4768     AC_MSG_ERROR([libgcrypt support required for RemoteOSD plugin])
4769   ])
4774 dnl RAOP plugin
4776 AC_MSG_CHECKING([whether to enable RAOP plugin])
4777 AS_IF([test "${have_libgcrypt}" = "yes"], [
4778   AC_MSG_RESULT(yes)
4779   VLC_ADD_PLUGIN([stream_out_raop])
4780   VLC_ADD_LIBS([stream_out_raop], [${GCRYPT_LIBS} -lgpg-error])
4781   VLC_ADD_CFLAGS([stream_out_raop], [${GCRYPT_CFLAGS}])
4782 ], [
4783   AC_MSG_RESULT(no)
4784   AC_MSG_WARN([libgcrypt support required for RAOP plugin])
4789 dnl OSSO (Maemo screen blanking) plugin
4791 PKG_ENABLE_MODULES_VLC([OSSO], [], [libosso], [Maemo support], [auto])
4793 AS_IF([test -f "/etc/maemo_version"], [
4794   AC_DEFINE([HAVE_MAEMO], 1, [Define to 1 if building for the Maemo platform.])
4799 dnl update checking system
4801 AC_ARG_ENABLE(update-check,
4802   [  --enable-update-check   update checking system (default disabled)])
4803 if test "${enable_update_check}" = "yes"
4804 then
4805   if test "${have_libgcrypt}" != "yes"
4806   then
4807     AC_MSG_ERROR([libgcrypt is required for update checking system])
4808   fi
4809   VLC_ADD_LIBS([libvlccore], [${GCRYPT_LIBS}])
4810   VLC_ADD_CFLAGS([libvlccore], [${GCRYPT_CFLAGS}])
4811   AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
4816 dnl  Endianness check
4818 AC_C_BIGENDIAN
4819 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
4820   DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
4821 ], [
4822   DEFS_BIGENDIAN=""
4824 AC_SUBST(DEFS_BIGENDIAN)
4827 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
4829 loader=false
4830 AC_ARG_ENABLE(loader,
4831   AS_HELP_STRING([--enable-loader],[build DLL loader for ELF i386 platforms
4832                   (default disabled)]))
4833 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
4834 AS_IF([test "${enable_loader}" = "yes"],
4835   [ VLC_ADD_PLUGIN([dmo])
4836     VLC_ADD_CPPFLAGS([dmo],[-I\\\${top_srcdir}/libs/loader])
4837     VLC_ADD_LIBS([dmo],[\\\${top_builddir}/libs/loader/libloader.la -lpthread])
4838     VLC_ADD_CPPFLAGS([quicktime],[-I\\\${top_srcdir}/libs/loader])
4839     VLC_ADD_LIBS([quicktime],[\\\${top_builddir}/libs/loader/libloader.la -lpthread])
4840     VLC_ADD_CPPFLAGS([realaudio],[-I\\\${top_srcdir}/libs/loader -DLOADER])
4841     VLC_ADD_LIBS([realaudio],[\\\${top_builddir}/libs/loader/libloader.la])
4842     VLC_ADD_CPPFLAGS([realvideo],[-I\\\${top_srcdir}/libs/loader -DLOADER])
4843     VLC_ADD_LIBS([realvideo],[\\\${top_builddir}/libs/loader/libloader.la])
4844   ])
4846 AC_ARG_WITH(,[Components:])
4849 dnl  the VLC binary
4851 AC_ARG_ENABLE(vlc,
4852   [  --enable-vlc            build the VLC media player (default enabled)])
4853 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
4856 dnl  Microsoft ActiveX support
4858 activex=false
4859 AC_ARG_ENABLE(activex,
4860   AS_HELP_STRING([--enable-activex],[build a vlc-based ActiveX control
4861                   (default enabled on Win32)]))
4862 AC_ARG_WITH(wine-sdk-path,
4863   [    --with-wine-sdk-path=PATH path to wine sdk])
4864 if test "${enable_activex}" != "no"
4865 then
4866   if test "${SYS}" = "mingw32"
4867   then
4868     AC_CHECK_PROGS(MIDL, [midl], no)
4869     if test "${with_wine_sdk_path}" != ""
4870     then
4871        WINE_SDK_PATH=${with_wine_sdk_path}
4872        AC_PATH_PROG(WIDL, widl, no, [$WINE_SDK_PATH/bin:$WINE_SDK_PATH/tools/widl])
4873     else
4874        WIDL=no
4875     fi
4876     AC_LANG_PUSH(C++)
4877     AC_CHECK_HEADERS(ole2.h,
4878       [AC_CHECK_HEADERS(olectl.h,
4879         [ VLC_ADD_CPPFLAGS([activex],[-DUNICODE -D_UNICODE -D_MIDL_USE_GUIDDEF_])
4880           VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
4881           VLC_ADD_LIBS([activex],[-lole32 -loleaut32 -luuid -lshlwapi])
4882           AC_CHECK_HEADERS(objsafe.h,
4883             VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER]),,
4884             [
4885              #if HAVE_OLE2_H
4886              #   include <ole2.h>
4887              #endif
4888             ]
4889           )
4890           activex=:
4891           PLUGINS_BINDINGS="${PLUGINS_BINDINGS} activex"
4892         ],
4893         [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
4894       )],
4895       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
4896     )
4897     AC_LANG_POP(C++)
4898   fi
4900 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
4901 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
4902 AC_ARG_VAR(WIDL, [Wine IDL compiler (requires Wine SDK)])
4903 AM_CONDITIONAL(HAS_WIDL_COMPILER, test "${WIDL}" != "no")
4904 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
4907 dnl  Mozilla plugin
4909 mozilla=false
4910 AC_ARG_ENABLE(mozilla,
4911   AS_HELP_STRING([--enable-mozilla],[build a vlc-based Firefox/Mozilla plugin
4912                   (default disabled)]))
4913 AC_ARG_WITH(mozilla-sdk-path,
4914   [    --with-mozilla-sdk-path=PATH path to mozilla sdk])
4915 AC_ARG_WITH(mozilla-pkg,
4916   [    --with-mozilla-pkg=PKG  look for PKG.pc to build the mozilla plugin.])
4917 AC_LANG_PUSH(C++)
4918 if test "${enable_mozilla}" = "yes"
4919 then
4920   AS_IF([test "${with_mozilla_sdk_path}" = "" -o "${with_mozilla_sdk_path}" = "no"],
4921     [
4922     dnl pkg-config
4923     dnl As we want to do a loop due to the number of name possible for the .pc
4924     dnl we can't use the pkg-config macros.
4926     AC_ARG_VAR([MOZILLA_CFLAGS], [C compiler flags for Mozilla, overriding pkg-config])
4927     AC_ARG_VAR([MOZILLA_LIBS], [linker flags for Mozilla, overriding pkg-config])
4928     AC_MSG_NOTICE([Checking for Mozilla])
4929     found=0
4930     if test -n "$MOZILLA_CFLAGS" -a -n "$MOZILLA_LIBS"
4931     then
4932       found=1
4933     else
4934       if test -n "$PKG_CONFIG"; then
4935         for i in "${with_mozilla_pkg}" libxul {seamonkey,iceape,xulrunner,firefox,iceweasel,mozilla}-plugin; do
4936           echo "Trying to find $i.pc files" >&5
4937           if $PKG_CONFIG --exists --print-errors "$i" 2>&5
4938           then
4939             echo "Using $i.pc files." >&5
4940             echo "Using $i.pc files." >&6
4941             found=1
4942             MOZILLA_CFLAGS=$(eval $PKG_CONFIG --cflags "$i" )
4943             MOZILLA_LIBS=$(eval $PKG_CONFIG --libs "$i" )
4944             break
4945           fi
4946         done
4947       fi
4948     fi
4949     AS_IF( [test $found = 1],[
4950         CPPFLAGS="${CPPFLAGS_save} ${MOZILLA_CFLAGS}"
4951         MOZILLA_REQUIRED_HEADERS=1
4952         AC_CHECK_HEADERS([npfunctions.h])
4953         AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
4954         AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
4955           [#if HAVE_NPAPI_H
4956            # include <npapi.h>
4957            #endif
4958           ])
4959         if test "${MOZILLA_REQUIRED_HEADERS}" = "0"; then
4960             AC_MSG_ERROR([Please install the Firefox development tools; mozilla-config.h, plugin/npapi.h and plugin/npruntime.h were not found.])
4961         fi
4962         MOZILLA_REQUIRED_HEADERS=
4963         mozilla=:
4964         AS_IF([ test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"],[
4965            VLC_ADD_CPPFLAGS([mozilla],[-DXP_UNIX -DOJI])
4966            AS_IF([ test "${SYS}" != "darwin"],[
4967              PKG_CHECK_MODULES(XPM, [xpm xt],[
4968                 VLC_ADD_CPPFLAGS([mozilla],[-DMOZ_X11])
4969              ],[
4970                 AC_MSG_ERROR([Please install the libXpm and libXt development files.])
4971              ])
4972           ])
4973         ])
4974         VLC_ADD_CPPFLAGS([mozilla],[${CPPFLAGS} ${XPM_CFLAGS}])
4975         VLC_ADD_LIBS([mozilla],[${MOZILLA_LIBS} ${XPM_LIBS}])
4976         VLC_ADD_PLUGIN([mozilla])
4977         PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
4978         MOZILLA_CONFIG=
4979         CPPFLAGS="${CPPFLAGS_save}"
4980           ],
4981           [
4982             AC_PATH_PROGS(MOZILLA_CONFIG,
4983             [mozilla-config seamonkey-config xulrunner-config],
4984         [no])
4985             test "${MOZILLA_CONFIG}" = "no" && AC_MSG_ERROR([Please install the Mozilla development tools. mozilla-config was not found.])
4986           ]
4987         )
4988     dnl pkg-config failed but we might have found a mozilla-config
4989     AS_IF( [test ! -z "${MOZILLA_CONFIG}"],[
4990       if ${MOZILLA_CONFIG} --defines | grep -q 'MOZ_X11=1'; then
4991         LDFLAGS="${LDFLAGS_save} ${X_LIBS} ${X_PRE_LIBS}"
4992         AC_CHECK_LIB(Xt,XtStrings,
4993          [
4994            VLC_ADD_CPPFLAGS([mozilla],[${X_CFLAGS}])
4995            VLC_ADD_LIBS([mozilla],[${X_LIBS} ${X_PRE_LIBS} -lXt -lX11 -lSM -lICE -lXpm])
4996          ],
4997          [],
4998          [[${X_LIBS} ${X_PRE_LIBS} -lX11 -lSM -lICE -lXpm]
4999         ])
5000         AC_CHECK_HEADERS(X11/xpm.h,,AC_MSG_ERROR([Please install libXpm-devel library for required X11/xpm.h]))
5001         LDFLAGS="${LDFLAGS_save}"
5002       fi
5004       mozilla=:
5005       PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5006       VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin java`]])
5007       VLC_ADD_LIBS([mozilla],[`${MOZILLA_CONFIG} --libs plugin`])
5008       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
5009       MOZILLA_REQUIRED_HEADERS=1
5010       AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5011       AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5012       AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5013         [#if HAVE_NPAPI_H
5014          # include <npapi.h>
5015          #endif
5016         ])
5017       if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5018       then
5019         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5020       fi
5021       MOZILLA_REQUIRED_HEADERS=
5022       CPPFLAGS="${CPPFLAGS_save}"
5023       MOZILLA_SDK_PATH="`${MOZILLA_CONFIG} --prefix`"
5024     ])
5025     dnl End of moz_sdk = ""
5026   ],[
5027     dnl special case for mingw32
5028     if test "${SYS}" = "mingw32"
5029     then
5030       AC_CHECK_TOOL(CYGPATH, cygpath, "")
5031       dnl latest gecko sdk does not have an xpcom directory
5032       if test -d "${with_mozilla_sdk_path}/xpcom"; then
5033           mozilla_sdk_xpcom="/xpcom"
5034       fi
5035     fi
5037     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
5038     CPPFLAGS="${CPPFLAGS_save} -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include"
5039     MOZILLA_REQUIRED_HEADERS=1
5040     AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5041     AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5042     AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5043         [#if HAVE_NPAPI_H
5044           #include <npapi.h>
5045           #endif
5046         ])
5047     if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5048     then
5049         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5050     fi
5051     MOZILLA_REQUIRED_HEADERS=
5052     mozilla=:
5053     PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5054     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])
5055     if ${need_xpcom_libs}; then
5056        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])
5057       if test "${SYS}" = "mingw32"; then
5058         dnl latest gecko sdk does not have embedstring
5059         if test -d "${real_mozilla_sdk}/embedstring/bin"
5060         then
5061           VLC_ADD_LIBS([mozilla],[-lembedstring])
5062         fi
5063       fi
5064     fi
5065     MOZILLA_SDK_PATH="${real_mozilla_sdk}"
5067     if test -n "${CYGPATH}"; then
5068       real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
5069     fi
5070     CPPFLAGS="${CPPFLAGS_save}"
5071  ])
5073 AC_LANG_POP(C++)
5074 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
5076 dnl Tests for Xsp
5077 AC_CHECK_LIB(Xsp, XSPSetPixelDoubling,[
5078   VLC_ADD_CPPFLAGS([xvmc glx],[-DHAVE_XSP])
5079   VLC_ADD_LIBS([xvmc glx],[-lXsp])
5083 dnl  test plugins
5085 AC_ARG_ENABLE(testsuite,
5086   [  --enable-testsuite      build test modules (default disabled)])
5087 if test "${enable_testsuite}" = "yes"
5088 then
5089   TESTS="test1 test2 test3 test4"
5091   dnl  we define those so that bootstrap sets the right linker
5092   VLC_ADD_CXXFLAGS([test2],[])
5093   VLC_ADD_OBJCFLAGS([test3],[])
5094   dnl  this one is needed until automake knows what to do
5095   VLC_ADD_LIBS([test3],[-lobjc])
5097   VLC_ADD_PLUGIN([test1])
5098   VLC_ADD_PLUGIN([test2])
5099   VLC_ADD_PLUGIN([test3])
5100   VLC_ADD_PLUGIN([test4])
5104 dnl  qte_main plugin
5106 if test "${NEED_QTE_MAIN}" != "no"
5107 then
5108     VLC_ADD_PLUGIN([qte_main])
5109     VLC_ADD_CXXFLAGS([opie qte qt_video],[-DNEED_QTE_MAIN])
5110     VLC_ADD_CXXFLAGS([qte_main],[${CXXFLAGS_qte} ${CXXFLAGS_qt_video}])
5111     VLC_ADD_LDFLAGS([qte_main],[${LDFLAGS_qte} ${LDFLAGS_qt_video}])
5115 dnl  Plugin and builtin checks
5117 plugin_support=yes
5119 dnl Automagically disable plugins if there is no system support for
5120 dnl dynamically loadable files (.so, .dll, .dylib).
5121 dnl don't forget vlc-win32 still can load .dll as plugins
5122 AS_IF([test "${ac_cv_have_plugins}" = "no"], [
5123   AC_MSG_WARN([*** No plugin support! Building statically! ***])
5124   plugin_support=no
5127 AS_IF([test "${plugin_support}" != "no"], [
5128   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, [Define if dynamic plugins are supported])
5132 dnl Pic and shared libvlc stuff
5134 AS_IF([test "${SYS}" = "mingw32"], [
5135   FILE_LIBVLCCORE_DLL="!define LIBVLCCORE_DLL libvlccore.dll"
5136   FILE_LIBVLC_DLL="!define LIBVLC_DLL libvlc.dll"
5140 dnl  Stuff used by the program
5142 VERSION_MESSAGE="${VERSION} ${CODENAME}"
5143 COPYRIGHT_MESSAGE="VLC media player - version ${VERSION_MESSAGE} - (c) ${COPYRIGHT_YEARS} the VideoLAN team"
5144 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string])
5145 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string])
5146 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
5147 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
5148 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
5149 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
5150 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
5151 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
5152 AC_SUBST(COPYRIGHT_MESSAGE)
5153 AC_SUBST(VERSION_MESSAGE)
5154 AC_SUBST(VERSION_MAJOR)
5155 AC_SUBST(VERSION_MINOR)
5156 AC_SUBST(VERSION_REVISION)
5157 AC_SUBST(VERSION_EXTRA)
5158 AC_SUBST(COPYRIGHT_YEARS)
5159 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure])
5160 if test "${build_os}" = "cygwin"
5161 then
5162     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [host which ran configure])
5163 else
5164     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -s`", [host which ran configure])
5166 AC_DEFINE_UNQUOTED(VLC_COMPILE_DOMAIN, "`dnsdomainname 2>/dev/null || domainname 2>/dev/null || echo unknown`", [domain of the host which ran configure])
5167 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler])
5168 dnl Win32 need s a numerical version_extra.
5169 case $( echo ${VERSION_EXTRA}|wc -m ) in
5170        "1") VERSION_EXTRA_RC="0";;
5171        "2") VERSION_EXTRA_RC=$( echo ${VERSION_EXTRA}|tr "abcdefghi" "123456789") ;;
5172        *) VERSION_EXTRA_RC="99"
5173 esac
5174 AC_SUBST(VERSION_EXTRA_RC)
5176 dnl  Handle substvars that use $(top_srcdir)
5178 VLC_CONFIG="top_srcdir=\"\$(top_srcdir)\" top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
5179 AC_SUBST(VLC_CONFIG)
5180 CPPFLAGS_save="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS_save}"
5183 dnl  Restore *FLAGS
5185 VLC_RESTORE_FLAGS
5188 dnl Sort the modules list
5190 PLUGINS=$( (for i in `echo $PLUGINS`; do echo $i; done)|sort|xargs )
5193 dnl  Create the vlc-config script
5195 LDFLAGS_libvlc="${LDFLAGS_libvlc} ${LDFLAGS_builtin}"
5198 dnl  Configuration is finished
5200 AC_SUBST(SYS)
5201 AC_SUBST(ARCH)
5202 AC_SUBST(ALIASES)
5203 AC_SUBST(ASM)
5204 AC_SUBST(MOC)
5205 AC_SUBST(RCC)
5206 AC_SUBST(UIC)
5207 AC_SUBST(WINDRES)
5208 AC_SUBST(MOZILLA_SDK_PATH)
5209 AC_SUBST(WINE_SDK_PATH)
5210 AC_SUBST(LIBEXT)
5211 AC_SUBST(AM_CPPFLAGS)
5212 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
5213 AC_SUBST(FILE_LIBVLCCORE_DLL)
5214 AC_SUBST(FILE_LIBVLC_DLL)
5216 dnl Create vlc-config.in
5217 VLC_OUTPUT_VLC_CONFIG_IN
5219 AC_CONFIG_FILES([
5220   extras/package/win32/vlc.win32.nsi
5221   extras/package/macosx/Info.plist
5222   extras/package/macosx/Resources/English.lproj/InfoPlist.strings
5223   extras/package/macosx/plugin/Info.plist
5224   extras/package/macosx/plugin/InstallerInfo.plist
5225   Makefile
5226   projects/activex/Makefile
5227   projects/activex/axvlc.inf
5228   doc/Makefile
5229   extras/package/ipkg/Makefile
5230   libs/loader/Makefile
5231   libs/srtp/Makefile
5232   libs/unzip/Makefile
5233   modules/Makefile
5234   projects/mozilla/Makefile
5235   m4/Makefile
5236   po/Makefile.in
5237   projects/activex/axvlc_rc.rc
5238   projects/mozilla/npvlc_rc.rc
5239   projects/mozilla/vlc.r
5240   projects/mozilla/install.js
5241   share/Makefile
5242   share/vlc_win32_rc.rc
5243   share/libvlc_win32_rc.rc
5244   compat/Makefile
5245   src/Makefile
5246   src/test/Makefile
5247   bin/Makefile
5248   test/Makefile
5249   modules/access/Makefile
5250   modules/access/bd/Makefile
5251   modules/access/bda/Makefile
5252   modules/access/dshow/Makefile
5253   modules/access/dvb/Makefile
5254   modules/access/mms/Makefile
5255   modules/access/cdda/Makefile
5256   modules/access/rtp/Makefile
5257   modules/access/rtsp/Makefile
5258   modules/access/vcd/Makefile
5259   modules/access/vcdx/Makefile
5260   modules/access/screen/Makefile
5261   modules/access/zip/Makefile
5262   modules/access_output/Makefile
5263   modules/audio_filter/Makefile
5264   modules/audio_filter/channel_mixer/Makefile
5265   modules/audio_filter/converter/Makefile
5266   modules/audio_filter/resampler/Makefile
5267   modules/audio_filter/spatializer/Makefile
5268   modules/audio_mixer/Makefile
5269   modules/audio_output/Makefile
5270   modules/codec/Makefile
5271   modules/codec/avcodec/Makefile
5272   modules/codec/cmml/Makefile
5273   modules/codec/dmo/Makefile
5274   modules/codec/shine/Makefile
5275   modules/codec/subtitles/Makefile
5276   modules/codec/spudec/Makefile
5277   modules/codec/wmafixed/Makefile
5278   modules/codec/xvmc/Makefile
5279   modules/control/Makefile
5280   modules/control/http/Makefile
5281   modules/control/globalhotkeys/Makefile
5282   modules/demux/Makefile
5283   modules/demux/asf/Makefile
5284   modules/demux/avformat/Makefile
5285   modules/demux/avi/Makefile
5286   modules/demux/mkv/Makefile
5287   modules/demux/mp4/Makefile
5288   modules/demux/mpeg/Makefile
5289   modules/demux/playlist/Makefile
5290   modules/gui/Makefile
5291   modules/gui/beos/Makefile
5292   modules/gui/macosx/Makefile
5293   modules/gui/hildon/Makefile
5294   modules/gui/minimal_macosx/Makefile
5295   modules/gui/qnx/Makefile
5296   modules/gui/qt4/Makefile
5297   modules/gui/skins2/Makefile
5298   modules/gui/wince/Makefile
5299   modules/meta_engine/Makefile
5300   modules/misc/Makefile
5301   modules/misc/dummy/Makefile
5302   modules/misc/lua/Makefile
5303   modules/misc/memcpy/Makefile
5304   modules/misc/notify/Makefile
5305   modules/misc/testsuite/Makefile
5306   modules/misc/playlist/Makefile
5307   modules/misc/osd/Makefile
5308   modules/misc/stats/Makefile
5309   modules/misc/xml/Makefile
5310   modules/mux/Makefile
5311   modules/mux/mpeg/Makefile
5312   modules/packetizer/Makefile
5313   modules/services_discovery/Makefile
5314   modules/stream_filter/Makefile
5315   modules/stream_out/Makefile
5316   modules/stream_out/transcode/Makefile
5317   modules/video_chroma/Makefile
5318   modules/video_filter/Makefile
5319   modules/video_filter/dynamicoverlay/Makefile
5320   modules/video_output/Makefile
5321   modules/video_output/msw/Makefile
5322   modules/video_output/qte/Makefile
5323   modules/video_output/x11/Makefile
5324   modules/visualization/Makefile
5325   modules/visualization/visual/Makefile
5328 dnl Generate makefiles
5329 AC_OUTPUT
5331 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
5332 # not provided with the source
5333 ${SHELL} ./config.status --file=vlc-config
5334 chmod 0755 vlc-config
5336 /bin/echo -n "Enabled modules: "
5337 ./vlc-config --list plugin
5339 dnl Do we have to use make or gmake ?
5340 USE_MAKE_OR_GMAKE=`case "${SYS}" in openbsd*) echo "gmake";; *) echo "make";; esac`
5341 dnl Shortcut to nice compile message
5342 rm -f compile
5343 echo '#! /bin/sh' >compile
5344 echo rm -f .error\$\$ >>compile
5345 echo ERROR=0 >>compile
5346 echo export PATH=$PATH LANG=C >>compile
5347 echo "($USE_MAKE_OR_GMAKE V=1 \$@ 2>&1 || touch .error\$\$)| \\" >>compile
5348 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/buildsystem/make.pl' >>compile
5349 echo test -f .error\$\$ \&\& ERROR=1 >>compile
5350 echo rm -f .error\$\$ >>compile
5351 echo exit \$ERROR >>compile
5352 chmod a+x compile
5354 printf "
5355 libvlc configuration
5356 --------------------
5357 version               : ${VERSION}
5358 system                : ${SYS}
5359 architecture          : ${ARCH}
5360 build flavour         : "
5361 test "${enable_debug}" = "yes" && printf "debug "
5362 test "${enable_cprof}" = "yes" && printf "cprof "
5363 test "${enable_gprof}" = "yes" && printf "gprof "
5364 test "${enable_optimizations}" = "yes" && printf "optim "
5365 test "${enable_release}" = "yes" && printf "release " || printf "devel "
5366 echo ""
5367 if test "${enable_vlc}" != "no"; then
5368 echo "vlc aliases           :${ALIASES}"
5369 else
5370 echo "build vlc executable  : no"
5372 echo "plugins/bindings      :${PLUGINS_BINDINGS}
5374 You can tune the compiler flags in vlc-config.
5375 To build vlc and its plugins, type \`./compile' or \`$USE_MAKE_OR_GMAKE'.
5377 if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
5378    echo ""
5379    echo "Warning: Due to a bug in ld, mmx/sse support has been"
5380    echo "         turned off."
5381    echo "         FFmpeg will be REALLY slow."
5382    echo "         VLC WILL NOT PERFORM AS EXPECTED."
5383    echo ""