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