Contribs: correctly extract D2D headers
[vlc/asuraparaju-public.git] / configure.ac
blobb06964f9ac244686470d92f7030b3401480b324a
1 dnl Autoconf settings for vlc
3 AC_COPYRIGHT([Copyright 2002-2010 the VideoLAN team])
5 AC_INIT(vlc, 1.2.0-git)
6 VERSION_MAJOR="1"
7 VERSION_MINOR="2"
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="Twoflower"
15 COPYRIGHT_YEARS="1996-2010"
17 AC_CONFIG_SRCDIR(src/libvlc.c)
18 AC_CONFIG_AUX_DIR(autotools)
19 AC_CONFIG_MACRO_DIR(m4)
20 AC_CONFIG_LIBOBJ_DIR(compat)
21 AC_CANONICAL_BUILD
22 AC_CANONICAL_HOST
23 AC_PRESERVE_HELP_ORDER
25 AM_INIT_AUTOMAKE(tar-ustar color-tests)
26 AM_CONFIG_HEADER(config.h)
28 # Disable with "./configure --disable-silent-rules" or "make V=1"
29 AM_SILENT_RULES([yes])
31 dnl Too many people are not aware of maintainer mode:
32 dnl If you want to use it, you definitely know what you are doing, so
33 dnl you can specify "--disable-maintainer-mode". But if you want the default
34 dnl automake behavior, you've likely never heard of maintainer mode, so we
35 dnl can't expect you to enable it manually.
36 AS_IF([test "x${enable_maintainer_mode}" != "xno"],
37     [enable_maintainer_mode="yes"])
38 AM_MAINTAINER_MODE
40 dnl
41 dnl Directories
42 dnl
43 dnl vlcincludedir="\${includedir}/\${PKGDIR}"
44 dnl AC_SUBST(vlcincludedir)
45 vlcdatadir="\${datadir}/\${PKGDIR}"
46 AC_SUBST(vlcdatadir)
47 vlclibdir="\${libdir}/\${PKGDIR}"
48 AC_SUBST(vlclibdir)
50 dnl
51 dnl  Save *FLAGS
52 dnl
53 VLC_SAVE_FLAGS
55 dnl
56 dnl Check for tools
57 dnl
58 AC_PROG_CC_C99
59 AC_USE_SYSTEM_EXTENSIONS
60 AC_DEFINE([_FORTIFY_SOURCE], 2, [Define to '2' to get glibc warnings.])
62 AM_PROG_CC_C_O
63 AC_PROG_CXX
64 AC_PROG_CPP
65 AC_PROG_OBJC
66 _AM_DEPENDENCIES([OBJC])
67 AC_PROG_EGREP
68 AC_PROG_MAKE_SET
69 AC_PROG_INSTALL
70 AM_PROG_AS
72 dnl Find the right ranlib, even when cross-compiling
73 AC_CHECK_TOOL(RANLIB, ranlib, :)
74 AC_CHECK_TOOL(STRIP, strip, :)
75 AC_CHECK_TOOL(AR, ar, :)
76 AC_CHECK_TOOL(LD, ld, :)
77 AC_CHECK_TOOL(DLLTOOL, dlltool, :)
79 dnl Check for compiler properties
80 AC_C_CONST
81 AC_C_INLINE
82 AC_C_RESTRICT
84 dnl Extend the --help string at the current spot.
85 AC_DEFUN([EXTEND_HELP_STRING], [m4_divert_once([HELP_ENABLE], [$1])])
87 dnl Allow binary package maintainer to pass a custom string to avoid
88 dnl cache problem
89 AC_ARG_WITH(binary-version,
90     AS_HELP_STRING([--with-binary-version=STRING],
91          [To avoid plugins cache problem between binary version]),[],[])
92 AS_IF([test -n "${with_binary_version}"],[
93     AC_DEFINE_UNQUOTED([DISTRO_VERSION],["${with_binary_version}"],
94          [Binary specific version])
98 dnl
99 dnl  Check for the contrib directory
101 AC_ARG_WITH(contrib,
102     [  --without-contrib       do not use the libraries in CONTRIB_DIR],[],[])
103 AC_ARG_VAR([CONTRIB_DIR], [directory containing pre-built contrib, overriding extras/contrib])
104 AS_IF([test "${with_contrib}" != "no"],[
105   AS_IF([test -z "$CONTRIB_DIR"], [
106       topdir="`dirname $0`"
107       if test "`echo \"$topdir\" | cut -c 1`" != "/"; then
108          topdir="`pwd`/$topdir"
109       fi
110       CONTRIB_DIR="${topdir}/extras/contrib/hosts/${host}"
111       if ! test -d "$CONTRIB_DIR"
112       then
113         gccmachine=`$CC -dumpmachine`
114         CONTRIB_DIR="${topdir}/extras/contrib/hosts/${gccmachine}"
115       fi
116   ])
117   AC_MSG_CHECKING([for libs in ${CONTRIB_DIR}])
118   AS_IF([test -d "${CONTRIB_DIR}/lib"],[
119     AC_MSG_RESULT([yes])
120     AC_SUBST(CONTRIB_DIR)
121     export PATH=${CONTRIB_DIR}/bin:$PATH
122     CPPFLAGS="${CPPFLAGS} -I${CONTRIB_DIR}/include"
123     CPPFLAGS_save="${CPPFLAGS_save} -I${CONTRIB_DIR}/include"
124     CFLAGS="${CFLAGS} -I${CONTRIB_DIR}/include"
125     CFLAGS_save="${CFLAGS_save} -I${CONTRIB_DIR}/include"
126     CXXFLAGS="${CXXFLAGS} -I${CONTRIB_DIR}/include"
127     CXXFLAGS_save="${CXXFLAGS_save} -I${CONTRIB_DIR}/include"
128     OBJCFLAGS="${OBJCFLAGS} -I${CONTRIB_DIR}/include"
129     OBJCFLAGS_save="${OBJCFLAGS_save} -I${CONTRIB_DIR}/include"
130     if test "$build" = "$host" -o "$PKG_CONFIG_LIBDIR"; then
131         export PKG_CONFIG_PATH="${CONTRIB_DIR}/lib/pkgconfig:$PKG_CONFIG_PATH"
132     else
133         export PKG_CONFIG_LIBDIR="${CONTRIB_DIR}/lib/pkgconfig"
134     fi
135     LDFLAGS="${LDFLAGS} -L${CONTRIB_DIR}/lib"
136     LDFLAGS_save="${LDFLAGS_save} -L${CONTRIB_DIR}/lib"
138     if test "${SYS}" = "darwin"; then
139       export LD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$LD_LIBRARY_PATH"
140       export DYLD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$DYLD_LIBRARY_PATH"
141     elif test "${SYS}" = "beos"; then
142       export LIBRARY_PATH="${CONTRIB_DIR}/lib:$LIBRARY_PATH"
143       export BELIBRARIES="${CONTRIB_DIR}/lib:$BELIBRARIES"
144     fi
145   ],[
146     AC_MSG_RESULT([no])
147     CONTRIB_DIR=""
148   ])
152 dnl  Set default values
154 LDFLAGS_vlc="${LDFLAGS}"
157 dnl  Check the operating system
159 case "${host_os}" in
160   "")
161     SYS=unknown
162     ;;
163   linux*)
164     SYS=linux
165     ;;
166   bsdi*)
167     SYS=bsdi
168     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
169     VLC_ADD_LIBS([vcd cdda vcdx],[-ldvd])
170     ;;
171   *bsd*)
172     SYS="${host_os}"
173     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
174     case "${host_os}" in
175       freebsd*)
176         CPPFLAGS_save="${CPPFLAGS_save} -I/usr/local/include"
177         CPPFLAGS="${CPPFLAGS_save}"
178         LDFLAGS_save="${LDFLAGS_save} -L/usr/local/lib"
179         LDFLAGS="${LDFLAGS_save}"
180         ;;
181       openbsd*)
182         CPPFLAGS_save="${CPPFLAGS_save} -I/usr/local/include -I/usr/X11R6/include"
183         CPPFLAGS="${CPPFLAGS_save}"
184         LDFLAGS_save="${LDFLAGS_save} -L/usr/local/lib -L/usr/X11R6/lib/"
185         LDFLAGS="${LDFLAGS_save}"
186         ;;
187     esac
188     ;;
189   darwin*)
191     dnl Force gcc "-arch" flag
192     ARCH_flag=""
193     case "${host}" in
194       i386*)
195         ARCH_flag="-arch i386"
196       ;;
197       ppc64*)
198         ARCH_flag="-arch ppc64"
199       ;;
200       ppc*)
201         ARCH_flag="-arch ppc"
202       ;;
203       x86_64*)
204         ARCH_flag="-arch x86_64"
205       ;;
206     esac
208     SYS=darwin
209     CFLAGS_save="${CFLAGS_save} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"; CFLAGS="${CFLAGS_save}"
210     CXXFLAGS_save="${CXXFLAGS_save} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"; CXXFLAGS="${CXXFLAGS_save}"
211     CPPFLAGS_save="${CPPFLAGS_save} ${ARCH_flag}"; CPPFLAGS="${CPPFLAGS_save}"
212     OBJCFLAGS_save="${OBJCFLAGS_save} -D_INTL_REDIRECT_MACROS -std=gnu99 ${ARCH_flag}"; OBJCFLAGS="${OBJCFLAGS_save}"
213     LDFLAGS_save="${LDFLAGS_save} -Wl,-headerpad_max_install_names ${ARCH_flag}"; LDFLAGS="${LDFLAGS_save}"
214     VLC_ADD_LDFLAGS([mkv mp4 motion], [-Wl,-framework,IOKit,-framework,CoreFoundation])
215     VLC_ADD_LDFLAGS([libvlc vlc],[-Wl,-undefined,dynamic_lookup])
216     VLC_ADD_LDFLAGS([avcodec avformat access_avio swscale postproc i420_rgb_mmx x264],[-Wl,-read_only_relocs,suppress])
217     VLC_ADD_CFLAGS([motion],[-fconstant-cfstrings])
218     VLC_ADD_LDFLAGS([libvlccore],[-Wl,-framework,CoreFoundation])
219     AC_ARG_ENABLE(macosx-defaults,
220       AS_HELP_STRING([--enable-macosx-defaults],[Build the default configuration on Mac OS X (default enabled)]))
221     if test "x${enable_macosx_defaults}" != "xno"
222     then
223         echo ""
224         echo "Building with Mac OS X defaults:"
225         with_macosx_version_min="10.5"
226         echo "  Assuming --with-macosx-version-min=10.5"
227         with_macosx_sdk="/Developer/SDKs/MacOSX${with_macosx_version_min}.sdk"
228         echo "  Assuming --with-macosx-sdk=/Developer/SDKs/MacOSX${with_macosx_version_min}.sdk"
229         build_dir=`pwd`
230         echo "  Assuming --prefix=${build_dir}/vlc_install_dir"
231         ac_default_prefix="${build_dir}/vlc_install_dir"
232         enable_faad="yes"
233         echo "  Assuming --enable-faad"
234         enable_flac="yes"
235         echo "  Assuming --enable-flac"
236         enable_theora="yes"
237         echo "  Assuming --enable-theora"
238         enable_shout="yes"
239         echo "  Assuming --enable-shout"
240         enable_vcdx="yes"
241         echo "  Assuming --enable-vcdx"
242         enable_caca="yes"
243         echo "  Assuming --enable-caca"
244         enable_ncurses="yes"
245         echo "  Assuming --enable-ncurses"
246         enable_twolame="yes"
247         echo "  Assuming --enable-twolame"
248         enable_realrtsp="yes"
249         echo "  Assuming --enable-realrtsp"
250         enable_libass="yes"
251         echo "  Assuming --enable-libass"
253         enable_skins2="no"
254         echo "  Assuming --disable-skins2"
255         enable_xcb="no"
256         echo "  Assuming --disable-xcb"
257     fi
258     dnl
259     dnl  Check for Mac OS X SDK settings
260     dnl
261     AC_ARG_WITH(macosx-sdk,
262        [  --with-macosx-sdk=DIR   compile using the SDK in DIR])
263     if test "${with_macosx_sdk}" != "" ; then
264         CPP="${CPP} -isysroot ${with_macosx_sdk}"
265         CC="${CC} -isysroot ${with_macosx_sdk}"
266         CXX="${CXX} -isysroot ${with_macosx_sdk}"
267         OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
268         LD="${LD} -syslibroot ${with_macosx_sdk}"
269     fi
270     AC_ARG_WITH(macosx-version-min,
271        [  --with-macosx-version-min=VERSION compile for MacOSX VERSION and above])
272     if test "${with_macosx_version_min}" != "" ; then
273         CPP="${CPP} -mmacosx-version-min=${with_macosx_version_min}"
274         CC="${CC} -mmacosx-version-min=${with_macosx_version_min}"
275         CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
276         OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
277         LD="${LD} -macosx_version_min=${with_macosx_version_min}"
278         CFLAGS_save="${CFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CFLAGS="${CFLAGS_save}"
279         CXXFLAGS_save="${CXXFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CXXFLAGS="${CXXFLAGS_save}"
280         OBJCFLAGS_save="${OBJCFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; OBJCFLAGS="${OBJCFLAGS_save}"
281         MACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}
282         export MACOSX_DEPLOYMENT_TARGET
283     fi
284     ;;
285   *mingw32* | *cygwin* | *wince* | *mingwce*)
286     AC_CHECK_TOOL(WINDRES, windres, :)
287     AC_CHECK_TOOL(OBJCOPY, objcopy, :)
289     case "${host_os}" in
290       *wince* | *mingwce* | *mingw32ce*)
291         SYS=mingwce
292         dnl Sadly CeGCC still needs non-wince macros
293         AC_DEFINE([_WIN32_WINNT], 0x0501, [Define to '0x0500' for Windows 2000 APIs.])
294         ;;
295       *mingw32*)
296         SYS=mingw32
297         AC_DEFINE([_WIN32_WINNT], 0x0501, [Define to '0x0500' for Windows XP APIs.])
298         ;;
299       *cygwin*)
300         dnl Check if we are using the mno-cygwin mode in which case we are
301         dnl actually dealing with a mingw32 compiler.
302         AC_DEFINE([_WIN32_WINNT], 0x0501, [Define to '0x0501' for Windows XP APIs.])
303         AC_EGREP_CPP(yes,
304             [#ifdef WIN32
305              yes
306              #endif],
307             SYS=mingw32, AC_MSG_ERROR([VLC requires -mno-cygwin]))
308         ;;
309     esac
311     if test "${SYS}" = "mingw32"; then
312         # add ws2_32 for closesocket, select, recv
313         VLC_ADD_LIBS([libvlccore],[-lws2_32 -lnetapi32 -lwinmm])
314         VLC_ADD_LDFLAGS([vlc],[-mwindows])
315         VLC_ADD_LIBS([activex win32text],[-lgdi32])
316         VLC_ADD_LIBS([cdda vcdx sdl_image aout_sdl vout_sdl],[-lwinmm])
317         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 oldhttp stream_out_standard stream_out_rtp stream_out_raop vod_rtsp access_realrtsp rtp oldrc netsync gnutls growl_udp flac ts audioscrobbler lua remoteosd zvbi audiobargraph_a netsync],[-lws2_32])
318         VLC_ADD_LIBS([filesystem], [-lshlwapi])
319         dnl
320         dnl DEP and ASLR options
321         dnl
322         AC_ARG_ENABLE(peflags,
323           [  --enable-peflags        peflags use (default enabled on Windows)])
324         if test "${enable_peflags}" != "no" ; then
325           AC_CHECK_TOOL(PEFLAGS, peflags, :)
326         fi
327         AC_CHECK_PROGS(U2D, [unix2dos todos], unix2dos)
328         ac_default_prefix="`pwd`/_win32"
329         DESTDIR="`pwd`/_win32/"
330     fi
331     if test "${SYS}" = "mingwce"; then
332         # add ws2 for closesocket, select, recv
333         VLC_ADD_LIBS([libvlccore access_http access_mms access_udp access_tcp access_ftp access_rtmp access_output_udp access_output_rtmp sap oldhttp netsync audioscrobbler growl rtp stream_out_standard stream_out_rtp remoteosd ts audiobargraph_a netsync],[-lws2])
334         VLC_ADD_LIBS([libvlccore],[-lmmtimer])
335         AC_CHECK_PROGS(U2D, [unix2dos todos], unix2dos)
336         ac_default_prefix="`pwd`/_wince"
337         DESTDIR="`pwd`/_wince/"
338     fi
339     ;;
340   *nto*)
341     SYS=nto
342     ;;
343   solaris*)
344     SYS=solaris
345     ;;
346   hpux*)
347     SYS=hpux
348     ;;
349   beos)
350     SYS=beos
351     CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}"
352     CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}"
353     VLC_ADD_CXXFLAGS([beos],[])
354     VLC_ADD_LIBS([vlc libvlccore logger],[-lbe])
355     VLC_ADD_LIBS([dvdnav dvdread],[-ldl])
356     VLC_ADD_LIBS([filesystem],[-lpoll])
357     LDFLAGS_save="${LDFLAGS_save} -lintl"; LDFLAGS="${LDFLAGS_save}"
358     dnl Check for BONE
359     if test -f /boot/beos/system/lib/libbind.so; then
360         VLC_ADD_LIBS([filesystem access_ftp access_mms access_output_udp netsync sap libvlccore growl_udp],[-lbind -lsocket])
361     else
362         VLC_ADD_LIBS([filesystem access_ftp access_mms access_output_udp netsync sap libvlccore growl_udp],[-lnet])
363     fi
364     ;;
365   *)
366     SYS="${host_os}"
367     ;;
368 esac
369 AM_CONDITIONAL(HAVE_BEOS, test "${SYS}" = "beos")
370 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
371 AM_CONDITIONAL(HAVE_LINUX, [test "${SYS}" = "linux"])
372 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
373 AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
374 AM_CONDITIONAL(USE_PEFLAGS, [test "${enable_peflags}" = "yes"])
377 dnl Sadly autoconf doesn't think about testing foo.exe when ask to test
378 dnl for program foo on win32
380 case "${build_os}" in
381     cygwin|msys)
382         ac_executable_extensions=".exe"
383     ;;
384     *)
385     ;;
386 esac
389 dnl  Libtool
390 dnl  It's very bad, but our former custom system was worst
391 dnl  -- Courmisch
394 dnl override platform specific check for dependent libraries
395 dnl otherwise libtool linking of shared libraries will
396 dnl fail on anything other than pass_all.
397 AC_CACHE_VAL(lt_cv_deplibs_check_method,
398     [lt_cv_deplibs_check_method=pass_all])
400 AC_DISABLE_STATIC
401 dnl AC_DISABLE_FAST_INSTALL
402 AC_LIBTOOL_DLOPEN
403 AC_LIBTOOL_WIN32_DLL
404 m4_undefine([AC_PROG_F77])
405 m4_defun([AC_PROG_F77],[])
406 AC_PROG_LIBTOOL
408 m4_undefine([AC_DEPLIBS_CHECK_METHOD])
409 m4_defun([AC_DEPLIBS_CHECK_METHOD],[])
411 lt_cv_deplibs_check_method=pass_all
413 AS_IF([test "${enable_shared}" = "no"], [
414   AC_MSG_ERROR([VLC is based on plugins. Shared libraries cannot be disabled.])
418 dnl Gettext stuff
420 AM_GNU_GETTEXT_VERSION([0.18.1])
421 AM_GNU_GETTEXT([external])
422 VLC_ADD_LIBS([libvlccore vlc], [${LTLIBINTL}])
425 dnl Iconv stuff
427 AM_ICONV
428 VLC_ADD_CFLAGS([libvlccore],[${INCICONV}])
429 VLC_ADD_LIBS([libvlccore],[${LTLIBICONV}])
431 dnl Check for broken versions of mingw-runtime compatability library
432 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"], [
433     AC_MSG_CHECKING(for broken mingw-runtime)
434     AC_PREPROC_IFELSE([
435 #include <_mingw.h>
436 #if (__MINGW32_MAJOR_VERSION == 3) && (__MINGW32_MINOR_VERSION < 15)
437 #ifndef __MINGW64_VERSION_MAJOR
438 # error Attempting to use mingw-runtime with broken vsnprintf support
439 #endif
440 #endif
441     ], [
442         AC_MSG_RESULT([ok])
443     ], [
444         AC_MSG_RESULT([present])
445         AC_MSG_ERROR([LibVLC requires mingw-runtime version 3.15 or higher!])
446     ])
447     dnl force use of mingw provided c99 *printf over msvcrt
448     CPPFLAGS="${CPPFLAGS} -D__USE_MINGW_ANSI_STDIO=1"
449     CPPFLAGS_save="${CPPFLAGS_save} -D__USE_MINGW_ANSI_STDIO=1"
452 dnl Check for the need to include the mingwex lib for mingw32
453 if test "${SYS}" = "mingw32" ; then
454     AC_CHECK_LIB(mingwex,opendir,
455         AC_CHECK_LIB(mingw32,opendir,,
456             [VLC_ADD_LIBS([libvlccore],[-lmingwex])])
457     )
460 dnl Check for fnative-struct or mms-bitfields support for mingw32
461 if test "${SYS}" = "mingw32" ; then
462     AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
463         [ac_cv_c_mms_bitfields],
464         [CFLAGS="${CFLAGS_save} -mms-bitfields"
465          AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
466     if test "${ac_cv_c_mms_bitfields}" != "no"; then
467         CFLAGS_save="${CFLAGS_save} -mms-bitfields";
468         CXXFLAGS_save="${CXXFLAGS_save} -mms-bitfields";
469     else
470         AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
471             [ac_cv_c_fnative_struct],
472             [CFLAGS="${CFLAGS_save} -fnative-struct"
473              AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
474         if test "${ac_cv_c_fnative_struct}" != "no"; then
475             CFLAGS_save="${CFLAGS_save} -fnative-struct";
476             CXXFLAGS_save="${CXXFLAGS_save} -fnative-struct";
477         fi
478     fi
480     CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
483 dnl Check for fvtable-thunks support for mingw32
484 if test "${SYS}" = "mingw32" -a "${CXX}" != "" ; then
485     AC_LANG_PUSH(C++)
486     AC_CACHE_CHECK([if \$CXX accepts -fvtable-thunks],
487         [ac_cv_cxx_fvtable_thunks],
488         [CXXFLAGS="${CXXFLAGS_save} -Wall -Werror -fvtable-thunks"
489          AC_TRY_COMPILE([],,ac_cv_cxx_fvtable_thunks=yes,
490                         ac_cv_cxx_fvtable_thunks=no)])
491     if test "${ac_cv_cxx_fvtable_thunks}" = "yes"; then
492         CXXFLAGS_mingw32_special="-fvtable-thunks"
493     fi
495     CXXFLAGS_save="${CXXFLAGS_save} ${CXXFLAGS_mingw32_special}"; CXXFLAGS="${CXXFLAGS_save}"
496     AC_LANG_POP(C++)
500 dnl Buggy glibc prevention. Purposedly not cached.
501 dnl See sourceware.org bugs 5058 and 5443.
502 dnl Ubuntu alone has 20 bug numbers for this...
504 AC_MSG_CHECKING(for buggy GNU/libc versions)
505 AC_PREPROC_IFELSE([
506 #include <limits.h>
507 #if defined (__GLIBC__) && (__GLIBC__ == 2) \
508   && (__GLIBC_MINOR__ >= 5) && (__GLIBC_MINOR__ <= 7)
509 # error GNU/libc with dcgettext killer bug!
510 #endif
511 ], [
512   AC_MSG_RESULT([not present])
513 ], [
514   AC_MSG_RESULT([found])
515   AS_IF([test "x${enable_nls}" != "xno"], [
516     AC_MSG_ERROR([Buggy GNU/libc (version 2.5 - 2.7) present. VLC would crash; there is no viable
517 work-around for this. Check with your distribution vendor on how to update the
518 glibc run-time. Alternatively, build with --disable-nls.])
519   ], [
520     AC_DEFINE(DISABLE_BUGGY_GLIBC_CHECK, 1, [Disables runtime check for buggy glibc.])
521   ])
524 dnl Plugin compilation stuff
526 VLC_LIBRARY_SUFFIX
528 dnl The -DSYS_FOO flag
529 CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
531 dnl Check for system libs needed
532 need_libc=false
534 dnl Check for usual libc functions
535 AC_CHECK_FUNCS([daemon fcntl fdopendir fstatvfs fork getenv getpwuid_r gettimeofday isatty lstat memalign openat posix_fadvise posix_madvise posix_memalign setenv setlocale stricmp strnicmp tdestroy uselocale])
536 AC_REPLACE_FUNCS([asprintf atof atoll getcwd getdelim getpid gmtime_r lldiv localtime_r nrand48 rewind strcasecmp strcasestr strdup strlcpy strncasecmp strndup strnlen strsep strtof strtok_r strtoll swab vasprintf])
537 AC_CHECK_FUNCS(fdatasync,,
538   [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
541 dnl Check for non-standard system calls
542 AC_CHECK_FUNCS([accept4 dup3 eventfd vmsplice sched_getaffinity])
544 AH_BOTTOM([#include <vlc_fixups.h>])
546 AC_CHECK_FUNCS(mmap, [VLC_ADD_PLUGIN([access_mmap])])
548 SOCKET_LIBS=""
549 AC_CHECK_FUNCS(connect,,[
550   AC_CHECK_LIB(socket,connect,[
551     VLC_ADD_LIBS([libvlccore cdda],-lsocket)
552     SOCKET_LIBS="-lsocket"
553   ])
555 AC_SUBST(SOCKET_LIBS)
557 AC_CHECK_FUNCS(send,,[
558   AC_CHECK_LIB(socket,send,[
559     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 netsync],[-lsocket])
560   ])
564 dnl Check for socklen_t
565 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
566 AC_CACHE_CHECK([for socklen_t in sys/socket.h],
567 ac_cv_type_socklen_t,
568 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
569 [#include <sys/types.h>
570 #ifdef WIN32
571 # include <winsock2.h>
572 # include <ws2tcpip.h>
573 #else
574 # include <sys/socket.h>
575 #endif]], [[socklen_t len; len = 0;]])],
576 ac_cv_type_socklen_t=yes,
577 ac_cv_type_socklen_t=no)])
578 AS_IF([test "$ac_cv_type_socklen_t" = no],
579  [AC_DEFINE(socklen_t, int)])
581 dnl Check for struct sockaddr_storage
582 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.])
583 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.])
584 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
585   [AC_TRY_COMPILE(
586     [#include <sys/types.h>
587      #if defined( UNDER_CE )
588      # include <winsock2.h>
589      #elif defined( WIN32 )
590      # include <winsock2.h>
591      #else
592      # include <sys/socket.h>
593      #endif], [struct sockaddr_storage addr;],
594      ac_cv_struct_sockaddr_storage=yes,
595      ac_cv_struct_sockaddr_storage=no)])
596 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
597   AC_DEFINE(sockaddr_storage, sockaddr)
598   AC_DEFINE(ss_family, sa_family)
601 dnl getaddrinfo, getnameinfo and gai_strerror check
602 dnl  -lnsl and -lsocket are needed on Solaris;
603 dnl  we purposedly make the test fail on Windows
604 LIBS_save="${LIBS}"
605 AC_SEARCH_LIBS([getaddrinfo], [nsl],,, [${SOCKET_LIBS}])
606 LIBS="${LIBS_save}"
608 dnl Check for va_copy
609 AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
610   AC_TRY_LINK(
611     [#include <stdarg.h>],
612     [va_list ap1, ap2; va_copy(ap1,ap2);],
613     [ac_cv_c_va_copy="yes"],
614     [ac_cv_c_va_copy="no"]))
615 if test "${ac_cv_c_va_copy}" = "yes"; then
616   AC_DEFINE(HAVE_VA_COPY, 1, [Define if <stdarg.h> defines va_copy.])
618 AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
619   AC_TRY_LINK(
620     [#include <stdarg.h>],
621     [va_list ap1, ap2; __va_copy(ap1,ap2);],
622     [ac_cv_c___va_copy="yes"],
623     [ac_cv_c___va_copy="no"]))
624 if test "${ac_cv_c___va_copy}" = "yes"; then
625   AC_DEFINE(HAVE___VA_COPY, 1, [Define if <stdarg.h> defines __va_copy.])
628 AC_CHECK_FUNCS(inet_aton,,[
629   AC_CHECK_LIB(resolv,inet_aton,[
630     VLC_ADD_LIBS([libvlccore],[-lresolv])
631   ])
634 dnl FreeBSD has a gnugetopt library for this:
635 GNUGETOPT_LIBS=""
636 AC_CHECK_FUNC(getopt_long,, [
637   AC_CHECK_LIB([gnugetopt],[getopt_long], [
638     GNUGETOPT_LIBS="-lgnugetopt"
639   ])
641 AC_SUBST(GNUGETOPT_LIBS)
643 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
644 AC_CHECK_LIB(m,cos,[
645   VLC_ADD_LIBS([adjust wave ripple psychedelic gradient a52tofloat32 dtstofloat32 x264 goom visual panoramix rotate noise grain scene kate flac lua chorus_flanger],[-lm])
647 AC_CHECK_LIB(m,pow,[
648   VLC_ADD_LIBS([avcodec avformat access_avio swscale postproc ffmpegaltivec i420_rgb faad twolame equalizer spatializer param_eq libvlccore freetype mod mpc dmo quicktime realvideo qt4],[-lm])
650 AC_CHECK_LIB(m,sqrt,[
651   VLC_ADD_LIBS([compressor headphone_channel_mixer normvol audiobargraph_a speex mono colorthres extract ball],[-lm])
653 AC_CHECK_LIB(m,ceil,[
654   VLC_ADD_LIBS([access_imem hotkeys mosaic swscale_omap],[-lm])
656 AC_CHECK_LIB(m,exp,[
657   VLC_ADD_LIBS([gaussianblur],[-lm])
659 AC_CHECK_LIB(m,round,[
660   VLC_ADD_LIBS([dbus],[-lm])
662 AC_CHECK_LIB(m,sqrtf,[
663   VLC_ADD_LIBS([x264],[-lm])
665 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
667 AC_CHECK_LIB(m,lrintf, [
668   AC_DEFINE(HAVE_LRINTF, 1, [Define to 1 if you have the lrintf function])
669   VLC_ADD_LIBS([skins2],[-lm])
672 dnl Check for dynamic plugins
673 ac_cv_have_plugins=no
675 # HP-UX style
676 if test "${ac_cv_have_plugins}" = "no"; then
677   AC_CHECK_HEADERS(dl.h)
678   ac_cv_my_have_shl_load=no
679   AC_CHECK_FUNC(shl_load,
680    [ac_cv_my_have_shl_load=yes,
681     AC_CHECK_LIB(dld, shl_load,
682      [ac_cv_my_have_shl_load=yes
683       VLC_ADD_LIBS([libvlccore],[-ldld])])])
684   if test "${ac_cv_my_have_shl_load}" = "yes"; then
685     AC_DEFINE(HAVE_DL_SHL_LOAD, 1, [Define if you have the shl_load API])
686     ac_cv_have_plugins=yes
687   fi
690 # Win32 style
691 if test "${ac_cv_have_plugins}" = "no"; then
692   if test "${SYS}" = "mingw32" ; then
693     AC_CHECK_LIB(kernel32, main,
694      [VLC_ADD_LIBS([libvlccore],[-lkernel32])
695       AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
696       ac_cv_have_plugins=yes])
697   fi
700 # WinCE style
701 if test "${ac_cv_have_plugins}" = "no"; then
702   if test "${SYS}" = "mingwce"; then
703     AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
704     ac_cv_have_plugins=yes
705   fi
708 # BeOS style
709 if test "${ac_cv_have_plugins}" = "no"; then
710   AC_CHECK_HEADERS(image.h)
711   AC_CHECK_FUNCS(load_add_on,
712    [AC_DEFINE(HAVE_DL_BEOS, 1, [Define if you have the BeOS dl])
713     ac_cv_have_plugins=yes])
716 # Only test for dlopen() if the others didn't work
717 LIBDL=""
718 if test "${ac_cv_have_plugins}" = "no" -o "${SYS}" = "darwin"; then
719   AC_CHECK_HEADERS(dlfcn.h sys/dl.h)
720   ac_cv_my_have_dlopen=no
721   AC_CHECK_FUNC(dlopen, [
722     ac_cv_my_have_dlopen=yes
723   ], [
724     AC_CHECK_LIB(dl, dlopen, [
725       ac_cv_my_have_dlopen=yes
726       LIBDL="-ldl"
727     ], [
728       AC_CHECK_LIB(svld, dlopen, [
729         ac_cv_my_have_dlopen=yes
730         LIBDL="-lsvld"
731       ])
732     ])
733   ])
734   if test "${ac_cv_my_have_dlopen}" = "yes"; then
735     AC_DEFINE(HAVE_DL_DLOPEN, 1, [Define if you have the dlopen API])
736     ac_cv_have_plugins=yes
737     VLC_ADD_LIBS([libvlccore realvideo lua],[$LIBDL])
738   fi
740 AC_SUBST(LIBDL)
742 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
743   dnl Check for pthreads - borrowed from XMMS
744   THREAD_LIB=error
745   if test "${THREAD_LIB}" = "error"; then
746     AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
747   fi
748   if test "${THREAD_LIB}" = "error"; then
749     AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
750   fi
751   if test "${THREAD_LIB}" = "error"; then
752     AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
753   fi
754   if test "${THREAD_LIB}" = "error"; then
755     AC_CHECK_FUNCS(pthread_mutex_lock)
756     THREAD_LIB=""
757   fi
759   VLC_ADD_LIBS([libvlccore libvlc vlc plugin],[${THREAD_LIB}])
761   AC_CHECK_LIB(rt, clock_nanosleep, [
762     VLC_ADD_LIBS([libvlccore],[-lrt])
763     AC_DEFINE(HAVE_CLOCK_NANOSLEEP, 1, [Define to 1 if you have clock_nanosleep.])
764   ], [
765     dnl HP/UX port
766     AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LIBS([libvlccore],[-lrt])])
767   ])
769   have_nanosleep=false
770   AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[
771     AC_CHECK_LIB(rt,nanosleep,
772       [VLC_ADD_LIBS([libvlccore],[-lrt]) have_nanosleep=:],
773       [AC_CHECK_LIB(posix4,nanosleep,
774           [VLC_ADD_LIBS([libvlccore],[-lposix4]) have_nanosleep=:])]
775     )
776   ])
777   if ${have_nanosleep}; then
778     AC_DEFINE(HAVE_NANOSLEEP, 1, [Define if nanosleep is available.])
779   fi
780 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
782 dnl Check for misc headers
783 AC_MSG_CHECKING(for strncasecmp in strings.h)
784 AC_EGREP_HEADER(strncasecmp,strings.h,[
785   AC_MSG_RESULT(yes)
786   AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
787             Define if <strings.h> defines strncasecmp.)],[
788   AC_MSG_RESULT(no)])
790 dnl Check for headers
791 AC_CHECK_HEADERS(getopt.h strings.h locale.h xlocale.h)
792 AC_CHECK_HEADERS(fcntl.h sys/time.h sys/ioctl.h sys/stat.h)
793 AC_CHECK_HEADERS([arpa/inet.h netinet/in.h netinet/udplite.h sys/eventfd.h])
794 AC_CHECK_HEADERS([net/if.h], [], [],
795   [
796     #include <sys/types.h>
797     #include <sys/socket.h>
798   ])
799 AC_CHECK_HEADERS([sys/mount.h], [], [],
800   [
801     #include <sys/param.h>
802   ])
804 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
805   AC_CHECK_HEADERS(machine/param.h sys/shm.h)
806   AC_CHECK_HEADERS([linux/version.h linux/dccp.h scsi/scsi.h linux/magic.h])
807   AC_CHECK_HEADERS(syslog.h)
808 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
810 dnl LP64 and LLP64 architectures had better define ssize_t by themselves...
811 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.])
812 AC_CHECK_TYPE(ssize_t,, [
813   AC_DEFINE(ssize_t, int)
816 dnl Check for poll
817 AC_SEARCH_LIBS(poll, [poll], [AC_DEFINE(HAVE_POLL, 1, [Define to 1 if the OS is usabl... err, has poll().])], [
818 if test ${SYS} != "mingw32" -a ${SYS} != "mingwce"
819 then
820     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])
824 dnl Mac OS X and other OSes don't have declaration for nanosleep
825 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
826   AC_MSG_CHECKING(for nanosleep in time.h)
827   AC_EGREP_HEADER(nanosleep,time.h,[
828     AC_MSG_RESULT(yes)
829     AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
830               Define if <time.h> defines nanosleep.)
831   ],[
832     AC_MSG_RESULT(no)
833   ])
834 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
836 dnl Make sure we have timespecs
837 AC_MSG_CHECKING(for timespec in sys/time.h)
838 AC_EGREP_HEADER(timespec,sys/time.h,[
839   AC_MSG_RESULT(yes)
840   AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
841             Define if <sys/time.h> defines struct timespec.)
843   AC_MSG_RESULT(no)
846 dnl Check for threads library
847 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
848   AC_CHECK_HEADERS(pthread.h)
849 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
851 dnl It seems that autoconf detects pkg-config only during the first
852 dnl PKG_CHECK_MODULES from configure.ac - which makes sense. But in our case,
853 dnl it is nested within a conditional block, so it was not working right.
854 dnl Make PKG_CONFIG_PATH precious so that it appears in the help and get saved
855 AC_ARG_VAR(PKG_CONFIG_PATH,
856        [Paths where to find .pc not at the default location])
857 PKG_PROG_PKG_CONFIG()
859 dnl On some OS we need static linking 
860 AS_IF([test -n "${PKG_CONFIG}" ],[
861     AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "darwin" ],[
862         PKG_CONFIG="${PKG_CONFIG} --static"
863     ])
868 dnl Check for zlib.h and -lz along with system -lminizip if available
870 AC_CHECK_HEADERS(zlib.h, [ have_zlib=yes ], [ have_zlib=no ])
871 AM_CONDITIONAL(HAVE_ZLIB, [ test "${have_zlib}" = "yes" ])
872 if test "${have_zlib}" = "yes"
873 then
874   VLC_ADD_LIBS([access_http gme mp4 skins2 sap mkv unzip zip],[-lz])
875   PKG_CHECK_MODULES([MINIZIP], [minizip] , [ have_minizip=yes ], [
876     AC_CHECK_HEADERS([unzip.h], [ 
877       have_minizip=yes
878       MINIZIP_LIBS="-lminizip -lz"
879     ], [
880       have_minizip=no
881       MINIZIP_CFLAGS="-I\\\${top_srcdir}/libs/unzip"
882       MINIZIP_LIBS="\\\${top_builddir}/libs/unzip/libunzip.la"
883     ])
884   ])
885   VLC_ADD_CPPFLAGS([skins2],[$MINIZIP_CFLAGS])
886   VLC_ADD_CFLAGS([zip],[$MINIZIP_CFLAGS])
887   VLC_ADD_LIBS([skins2 zip],[$MINIZIP_LIBS])
888   VLC_ADD_PLUGIN([unzip zip])
890 AM_CONDITIONAL(HAVE_MINIZIP, [ test "${have_minizip}" = "yes" ])
893 dnl Manual switch for UTF-8
894 AC_ARG_ENABLE(non-utf8,
895   [  --enable-non-utf8       Legacy non-UTF-8 systems support (default disabled)],, [
896   AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"], [
897     enable_non_utf8="no"
898   ])
900 AS_IF([test "${enable_non_utf8}" != "no"], [
901   AC_DEFINE([ASSUME_UTF8], [1],
902             [Define to 1 if the operating system uses UTF-8 internally])
906 dnl Check for dbus
907 AC_ARG_ENABLE(dbus,
908   [  --enable-dbus           Linux D-BUS message bus system (default enabled)])
909 case "${SYS}" in
910     linux*|*bsd*)
911 if test "${enable_dbus}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
912 then
913   dnl api stable dbus
914   PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.0.0,
915     [ AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
916       VLC_ADD_LIBS([libvlccore],[$DBUS_LIBS])
917       VLC_ADD_CFLAGS([libvlccore],[$DBUS_CFLAGS])
918       dnl Check for dbus control interface
919         AC_ARG_ENABLE(dbus-control, [  --disable-dbus-control  D-BUS control interface (default enabled)])
920         if test "${enable_dbus_control}" != "no"
921         then
922           VLC_ADD_PLUGIN([dbus])
923           VLC_ADD_LIBS([dbus],[$DBUS_LIBS])
924           VLC_ADD_CFLAGS([dbus],[$DBUS_CFLAGS])
925         fi
926       dnl Check for Telepathy
927         AC_ARG_ENABLE(telepathy,
928           AS_HELP_STRING([--enable-telepathy],[Telepathy Presence plugin through DBus(default enabled)]))
929         if test "${enable_telepathy}" != "no"; then
930           VLC_ADD_PLUGIN([telepathy])
931           VLC_ADD_LIBS([telepathy],[$DBUS_LIBS])
932           VLC_ADD_CFLAGS([telepathy],[$DBUS_CFLAGS])
933         fi
934         dnl Power Management Inhibiter
935         VLC_ADD_PLUGIN([inhibit])
936         VLC_ADD_LIBS([inhibit],[$DBUS_LIBS])
937         VLC_ADD_CFLAGS([inhibit],[$DBUS_CFLAGS])
938     ],
939     [AC_MSG_ERROR([Couldn't find DBus >= 1.0.0, install libdbus-dev ?])]
940   )
943 esac
945 dnl Check for ntohl, etc.
946 AC_CACHE_CHECK([for ntohl in sys/param.h],
947     [ac_cv_c_ntohl_sys_param_h],
948     [CFLAGS="${CFLAGS_save} -Wall -Werror"
949      AC_TRY_COMPILE([#include <sys/param.h>],
950         [int meuh; ntohl(meuh);],
951         ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
952 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
953     AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
955 CFLAGS="${CFLAGS_save}"
957 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])
958 RDC_PROG_CC_FLAGS([-pipe])
960 dnl Check for various optimization flags
961 AC_CACHE_CHECK([if \$CC accepts -Os],
962     [ac_cv_c_os],
963     [CFLAGS="${CFLAGS_save} -Os"
964      AC_TRY_COMPILE([],,ac_cv_c_os=yes, ac_cv_c_os=no)])
965 if test "${ac_cv_c_os}" != "no"; then
966     CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -Os"
967 else
968     AC_CACHE_CHECK([if \$CC accepts -O],
969         [ac_cv_c_o],
970         [CFLAGS="${CFLAGS_save} -O"
971          AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
972     if test "${ac_cv_c_o}" != "no"; then
973         if test "${ac_cv_c_o3}" = "no"; then
974             CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -O"
975         fi
976     fi
979 AC_CACHE_CHECK([if \$CC accepts -O4],
980     [ac_cv_c_o4],
981     [CFLAGS="${CFLAGS_save} -O4"
982      AC_TRY_COMPILE([],,ac_cv_c_o4=yes, ac_cv_c_o4=no)])
983 if test "${ac_cv_c_o4}" != "no" -a "x${enable_debug}" = "xno"; then
984     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O4"
985 else
986     AC_CACHE_CHECK([if \$CC accepts -O3],
987         [ac_cv_c_o3],
988         [CFLAGS="${CFLAGS_save} -O3"
989          AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
990     if test "${ac_cv_c_o3}" != "no" -a "x${enable_debug}" = "xno"; then
991         CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O3"
992     else
993         AC_CACHE_CHECK([if \$CC accepts -O2],
994             [ac_cv_c_o2],
995             [CFLAGS="${CFLAGS_save} -O2"
996              AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
997         if test "${ac_cv_c_o2}" != "no"; then
998             CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O2"
999         else
1000             AC_CACHE_CHECK([if \$CC accepts -O],
1001                 [ac_cv_c_o],
1002                 [CFLAGS="${CFLAGS_save} -O"
1003                  AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
1004             if test "${ac_cv_c_o}" != "no"; then
1005                 CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O"
1006             fi
1007         fi
1008     fi
1011 AC_CACHE_CHECK([if \$CC accepts -O0],
1012     [ac_cv_c_o0],
1013     [CFLAGS="${CFLAGS_save} -O0"
1014      AC_TRY_COMPILE([],,ac_cv_c_o0=yes, ac_cv_c_o0=no)])
1015 if test "${ac_cv_c_o0}" != "no"; then
1016     CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O0"
1019 dnl Check for -ffast-math
1020 AC_CACHE_CHECK([if \$CC accepts -ffast-math],
1021     [ac_cv_c_fast_math],
1022     [CFLAGS="${CFLAGS_save} -ffast-math"
1023      AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
1024 if test "${ac_cv_c_fast_math}" != "no"; then
1025     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -ffast-math"
1028 dnl Check for -funroll-loops
1029 dnl Disabled on BeOS because BeOS' gcc is buggy and may crash with it
1030 if test "${SYS}" != "beos"
1031 then
1032   AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
1033       [ac_cv_c_unroll_loops],
1034       [CFLAGS="${CFLAGS_save} -funroll-loops"
1035        AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
1036   if test "${ac_cv_c_unroll_loops}" != "no"; then
1037       CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -funroll-loops"
1038   fi
1041 dnl Check for -fomit-frame-pointer
1042 AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
1043     [ac_cv_c_omit_frame_pointer],
1044     [CFLAGS="${CFLAGS_save} -fomit-frame-pointer"
1045      AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
1046 if test "${ac_cv_c_omit_frame_pointer}" != "no"; then
1047  if test "${SYS}" != "darwin"; then
1048     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
1049  else
1050     dnl On darwin we explicitely disable it.
1051     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fno-omit-frame-pointer"
1052  fi
1055 dnl Check for Darwin plugin linking flags
1056 AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error],
1057     [ac_cv_ld_darwin],
1058     [CFLAGS="${CFLAGS_save} -bundle -undefined error"
1059      AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
1060 if test "${ac_cv_ld_darwin}" != "no"; then
1061     VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
1064 dnl Checks for __attribute__(aligned()) directive
1065 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1066     [ac_cv_c_attribute_aligned],
1067     [ac_cv_c_attribute_aligned=0
1068         CFLAGS="${CFLAGS_save} -Werror"
1069     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1070         AC_TRY_COMPILE([],
1071         [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1072         [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1073     done
1074         CFLAGS="${CFLAGS_save}"])
1075 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1076     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1077         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1080 dnl Check for __attribute__((packed))
1081 AC_CACHE_CHECK([for __attribute__((packed))],
1082   [ac_cv_c_attribute_packed],
1083   [ac_cv_c_attribute_packed=no
1084    AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b; (void)b;],
1085                     [ac_cv_c_attribute_packed=yes])])
1086 if test "${ac_cv_c_attribute_packed}" != "no"; then
1087   AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1091 dnl  Check the CPU
1093 case "${host_cpu}" in
1094   "")
1095     ARCH=unknown
1096     ;;
1097   *)
1098     ARCH="${host_cpu}"
1099     ;;
1100 esac
1102 dnl Check for backtrace() support
1103 AC_CHECK_HEADERS(execinfo.h)
1104 AC_CHECK_FUNCS(backtrace)
1107 dnl  Enable profiling
1109 AC_ARG_ENABLE(gprof,
1110 [  --enable-gprof          gprof profiling (default disabled)])
1111 AC_ARG_ENABLE(cprof,
1112 [  --enable-cprof          cprof profiling (default disabled)])
1113 test "${enable_gprof}" != "yes" && enable_gprof="no"
1114 test "${enable_cprof}" != "yes" && enable_cprof="no"
1117 dnl  default modules
1119 ALIASES="${ALIASES} cvlc rvlc"
1122 dnl Some plugins aren't useful on some platforms
1124 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1125     VLC_ADD_PLUGIN([dynamicoverlay])
1126 elif test "${SYS}" != "mingwce"; then
1127     VLC_ADD_PLUGIN([access_smb dmo globalhotkeys])
1128     VLC_ADD_LIBS([dmo],[-lole32 -luuid])
1130 if test "${SYS}" = "darwin"; then
1131     VLC_ADD_LDFLAGS([quartztext],[-Wl,-framework,ApplicationServices])
1135 dnl  Accelerated modules
1137 EXTEND_HELP_STRING([Optimization options:])
1139 dnl  Check for fully working MMX intrinsics
1140 dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a
1141 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1142 AC_ARG_ENABLE(mmx,
1143 [  --disable-mmx           disable MMX optimizations (default auto)],,[
1144   case "${host_cpu}" in
1145     i?86|x86_64)
1146       enable_mmx="yes"
1147       ;;
1148     *)
1149       enable_mmx="no"
1150       ;;
1151   esac
1153 have_mmx="no"
1154 have_mmxext="no"
1155 AS_IF([test "${enable_mmx}" != "no"], [
1156   ARCH="${ARCH} mmx"
1158   AC_CACHE_CHECK([if $CC groks MMX intrinsics],
1159     [ac_cv_c_mmx_intrinsics],
1160     [CFLAGS="${CFLAGS_save} -O -mmmx"
1161      AC_TRY_COMPILE([#include <mmintrin.h>
1162                      #include <stdint.h>
1163                      uint64_t frobzor;],
1164                     [__m64 a, b, c;
1165                      a = b = c = (__m64)frobzor;
1166                      a = _mm_slli_pi16(a, 3);
1167                      a = _mm_adds_pi16(a, b);
1168                      c = _mm_srli_pi16(c, 8);
1169                      c = _mm_slli_pi16(c, 3);
1170                      b = _mm_adds_pi16(b, c);
1171                      a = _mm_unpacklo_pi8(a, b);
1172                      frobzor = (uint64_t)a;],
1173                     [ac_cv_c_mmx_intrinsics=yes],
1174                     [ac_cv_c_mmx_intrinsics=no])])
1175   AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1176     AC_DEFINE(HAVE_MMX_INTRINSICS, 1,
1177               [Define to 1 if MMX intrinsics are available.])
1178     MMX_CFLAGS="-mmmx"
1179   ])
1181   AC_CACHE_CHECK([if $CC groks MMX inline assembly],
1182     [ac_cv_mmx_inline],
1183     [CFLAGS="${CFLAGS_save}"
1184      AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
1185                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
1186   AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1187     AC_DEFINE(CAN_COMPILE_MMX, 1,
1188               [Define to 1 inline MMX assembly is available.])
1189     have_mmx="yes"
1190   ])
1192   AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1193     [ac_cv_mmxext_inline],
1194     [CFLAGS="${CFLAGS_save}"
1195      AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
1196                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
1197   AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1198     AC_DEFINE(CAN_COMPILE_MMXEXT, 1,
1199               [Define to 1 if MMX EXT inline assembly is available.])
1200     have_mmxext="yes"
1201   ])
1203 AC_SUBST(MMX_CFLAGS)
1204 AM_CONDITIONAL([HAVE_MMX], [test "${have_mmx}" = "yes"])
1205 AM_CONDITIONAL([HAVE_MMXEXT], [test "${have_mmxext}" = "yes"])
1207 dnl  Check for fully workin SSE2 intrinsics
1208 dnl  We need support for -mmmx, we need <emmintrin.h>, and we also need a
1209 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1210 AC_ARG_ENABLE(sse,
1211 [  --disable-sse           disable SSE (1, 2, 3 and 4) optimizations (default auto)],
1212 , [
1213   case "${host_cpu}" in
1214     i686|x86_64)
1215       enable_sse=yes
1216       ;;
1217     *)
1218       enable_sse=no
1219       ;;
1220   esac
1222 have_sse2="no"
1223 AS_IF([test "${enable_sse}" != "no"], [
1224   ARCH="${ARCH} sse sse2"
1226   AC_CACHE_CHECK([if $CC groks SSE2 intrinsics],
1227     [ac_cv_c_sse2_intrinsics],
1228     [CFLAGS="${CFLAGS_save} -O -msse2"
1229      AC_TRY_COMPILE([#include <emmintrin.h>
1230                      #include <stdint.h>
1231                      uint64_t frobzor;],
1232                     [__m128i a, b, c;
1233                      a = b = c = _mm_set1_epi64((__m64)frobzor);
1234                      a = _mm_slli_epi16(a, 3);
1235                      a = _mm_adds_epi16(a, b);
1236                      c = _mm_srli_epi16(c, 8);
1237                      c = _mm_slli_epi16(c, 3);
1238                      b = _mm_adds_epi16(b, c);
1239                      a = _mm_unpacklo_epi8(a, b);
1240                      frobzor = (uint64_t)_mm_movepi64_pi64(a);],
1241                     [ac_cv_c_sse2_intrinsics=yes],
1242                     [ac_cv_c_sse2_intrinsics=no])])
1243   AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1244     AC_DEFINE(HAVE_SSE2_INTRINSICS, 1,
1245               [Define to 1 if SSE2 intrinsics are available.])
1246     SSE2_CFLAGS="-msse2"
1247   ])
1249   AC_CACHE_CHECK([if $CC groks SSE inline assembly],
1250     [ac_cv_sse_inline],
1251     [CFLAGS="${CFLAGS_save}"
1252      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
1253                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
1254   AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1255     AC_DEFINE(CAN_COMPILE_SSE, 1,
1256               [Define to 1 if SSE inline assembly is available.])
1257   ])
1259   AC_CACHE_CHECK([if $CC groks SSE2 inline assembly],
1260     [ac_cv_sse2_inline],
1261     [CFLAGS="${CFLAGS_save}"
1262      AC_TRY_COMPILE(,[void *p;asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p));],
1263                     ac_cv_sse2_inline=yes, ac_cv_sse2_inline=no)])
1264   AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1265     AC_DEFINE(CAN_COMPILE_SSE2, 1,
1266               [Define to 1 if SSE2 inline assembly is available.])
1267     have_sse2="yes"
1268   ])
1270   # SSE3
1271   AC_CACHE_CHECK([if $CC groks SSE3 inline assembly],
1272     [ac_cv_sse3_inline],
1273     [CFLAGS="${CFLAGS_save}"
1274      AC_TRY_COMPILE(,[void *p;asm volatile("movsldup %%xmm1,%%xmm0"::"r"(p));],
1275                     ac_cv_sse3_inline=yes, ac_cv_sse3_inline=no)])
1276   AS_IF([test "${ac_cv_sse3_inline}" != "no"], [
1277     AC_DEFINE(CAN_COMPILE_SSE3, 1,
1278               [Define to 1 if SSE3 inline assembly is available.]) ])
1279   # SSSE3
1280   AC_CACHE_CHECK([if $CC groks SSSE3 inline assembly],
1281     [ac_cv_ssse3_inline],
1282     [CFLAGS="${CFLAGS_save}"
1283      AC_TRY_COMPILE(,[void *p;asm volatile("pabsw %%xmm0,%%xmm0"::"r"(p));],
1284                     ac_cv_ssse3_inline=yes, ac_cv_ssse3_inline=no)])
1285   AS_IF([test "${ac_cv_ssse3_inline}" != "no"], [
1286     AC_DEFINE(CAN_COMPILE_SSSE3, 1,
1287               [Define to 1 if SSSE3 inline assembly is available.]) ])
1289   # SSE4.1
1290   AC_CACHE_CHECK([if $CC groks SSE4.1 inline assembly],
1291     [ac_cv_sse4_1_inline],
1292     [CFLAGS="${CFLAGS_save}"
1293      AC_TRY_COMPILE(,[void *p;asm volatile("pmaxsb %%xmm1,%%xmm0"::"r"(p));],
1294                     ac_cv_sse4_1_inline=yes, ac_cv_sse4_1_inline=no)])
1295   AS_IF([test "${ac_cv_sse4_1_inline}" != "no"], [
1296     AC_DEFINE(CAN_COMPILE_SSE4_1, 1,
1297               [Define to 1 if SSE4_1 inline assembly is available.]) ])
1299   # SSE4.2
1300   AC_CACHE_CHECK([if $CC groks SSE4.2 inline assembly],
1301     [ac_cv_sse4_2_inline],
1302     [CFLAGS="${CFLAGS_save}"
1303      AC_TRY_COMPILE(,[void *p;asm volatile("pcmpgtq %%xmm1,%%xmm0"::"r"(p));],
1304                     ac_cv_sse4_2_inline=yes, ac_cv_sse4_2_inline=no)])
1305   AS_IF([test "${ac_cv_sse4_2_inline}" != "no"], [
1306     AC_DEFINE(CAN_COMPILE_SSE4_2, 1,
1307               [Define to 1 if SSE4_2 inline assembly is available.]) ])
1309   # SSE4A
1310   AC_CACHE_CHECK([if $CC groks SSE4A inline assembly],
1311     [ac_cv_sse4a_inline],
1312     [CFLAGS="${CFLAGS_save}"
1313      AC_TRY_COMPILE(,[void *p;asm volatile("insertq %%xmm1,%%xmm0"::"r"(p));],
1314                     ac_cv_sse4a_inline=yes, ac_cv_sse4a_inline=no)])
1315   AS_IF([test "${ac_cv_sse4a_inline}" != "no"], [
1316     AC_DEFINE(CAN_COMPILE_SSE4A, 1,
1317               [Define to 1 if SSE4A inline assembly is available.]) ])
1319 AC_SUBST(SSE2_CFLAGS)
1320 AM_CONDITIONAL([HAVE_SSE2], [test "$have_sse2" = "yes"])
1322 have_3dnow="no"
1323 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly],
1324     [ac_cv_3dnow_inline],
1325     [CFLAGS="${CFLAGS_save}"
1326      AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
1327                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
1328 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1329   AC_DEFINE(CAN_COMPILE_3DNOW, 1,
1330             [Define to 1 if 3D Now! inline assembly is available.])
1331   have_3dnow="yes"
1333 AM_CONDITIONAL([HAVE_3DNOW], [test "$have_3dnow" = "yes"])
1336 AC_ARG_ENABLE(neon,
1337 [  --disable-neon          disable NEON optimizations (default auto)],, [
1338   AS_IF([test "${host_cpu}" = "arm"], [enable_neon="yes"] ,[enable_neon="no"])
1340 AS_IF([test "${enable_neon}" != "no"], [
1341   AC_CACHE_CHECK([if $CC groks NEON inline assembly], [ac_cv_neon_inline], [
1342     CFLAGS="${CFLAGS_save} -mfpu=neon"
1343     AC_COMPILE_IFELSE([
1344       AC_LANG_PROGRAM(,[[
1345 asm volatile("vqmovun.s64 d0, q1":::"d0");
1346 asm volatile("ssat r0, #1, r0":::"r0"); /* assume ARMv6 */
1348     ], [
1349       ac_cv_neon_inline="-mfpu=neon"
1350     ], [
1351       ac_cv_neon_inline="no"
1352     ])
1353     CFLAGS="${CFLAGS_save}"
1354   ])
1355   ARM_NEON_CFLAGS="$ac_cv_neon_inline"
1356 ], [
1357   ac_cv_neon_inline="no"
1359 AC_SUBST(ARM_NEON_CFLAGS)
1360 AM_CONDITIONAL(HAVE_ARM_NEON, [test "${ac_cv_neon_inline}" != "no"])
1363 AC_ARG_ENABLE(altivec,
1364 [  --disable-altivec       disable AltiVec optimizations (default auto)],, [
1365   AS_IF([test "${host_cpu}" = "powerpc"],
1366         [enable_altivec=yes], [enable_altivec=no])
1368 have_altivec="no"
1369 AS_IF([test "${enable_altivec}" = "yes"], [
1370   ARCH="${ARCH} altivec";
1371   AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1372     [ac_cv_altivec_inline],
1373     [CFLAGS="${CFLAGS_save}"
1374      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1375          ac_cv_altivec_inline="yes",
1376          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
1377           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1378             [ac_cv_altivec_inline="-Wa,-m7400"],
1379             ac_cv_altivec_inline=no)
1380          ])])
1381   AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1382     AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1383               [Define to 1 if AltiVec inline assembly is available.])
1384     AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1385       VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
1386       VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
1387       VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1388       VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1389       VLC_ADD_CFLAGS([libvlccore],[${ac_cv_altivec_inline}])
1390     ])
1391     have_altivec="yes"
1392   ])
1394 dnl The AltiVec C extensions
1396 dnl There are several possible cases:
1397 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1398 dnl                      need <altivec.h>
1399 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1400 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1401 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1402 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1403 dnl - Others: test should fail
1404   AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1405   [ac_cv_c_altivec],
1406   [# OS X/PPC test (gcc 4.x)
1407    CFLAGS="${CFLAGS_save} -mpim-altivec -force_cpusubtype_ALL"
1408    AC_TRY_COMPILE([vector unsigned char foo;],
1409      [vec_ld(0, (unsigned char *)0);],
1410      [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1411      [# OS X/PPC test (gcc 3.x)
1412       CFLAGS="${CFLAGS_save} -faltivec"
1413       AC_TRY_COMPILE([vector unsigned char foo;],
1414         [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1415         [ac_cv_c_altivec="-faltivec"],
1416         dnl Below this are the Linux tests
1417         [# Linux/PPC test (gcc 4.x)
1418          CFLAGS="${CFLAGS_save} -maltivec"
1419          AC_TRY_COMPILE([#include <altivec.h>],
1420            [vec_ld(0, (unsigned char *)0);],
1421            [ac_cv_c_altivec="-maltivec"],
1422            [# Linux/PPC test (gcc 3.3)
1423             CFLAGS="${CFLAGS_save} -maltivec -mabi=altivec"
1424             AC_TRY_COMPILE([#include <altivec.h>],
1425               [vec_ld(0, (unsigned char *)0);],
1426               [ac_cv_c_altivec=""
1427                ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1428               [# Linux/PPC test (gcc 3.3)
1429                CFLAGS="${CFLAGS_save} -fvec"
1430                AC_TRY_COMPILE([#include <altivec.h>],
1431                  [vec_ld(0, (unsigned char *)0);],
1432                  [ac_cv_c_altivec="-fvec"],
1433                  [ac_cv_c_altivec=no])
1434               ])
1435            ])
1436         ])
1437      ])
1438    CFLAGS="${CFLAGS_save}"
1439   ])
1440   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1441     CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
1442   ])
1444   AC_CHECK_HEADERS(altivec.h)
1445   CPPFLAGS="${CPPFLAGS_save}"
1447   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1448     AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1,
1449               [Define to 1 if C AltiVec extensions are available.])
1450     VLC_ADD_CFLAGS([libvlccore],[${ac_cv_c_altivec}])
1451     VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
1452     VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1453     have_altivec="yes"
1454   ])
1456   AC_CACHE_CHECK([if linker needs -framework vecLib],
1457     [ac_cv_ld_altivec],
1458     [LDFLAGS="${LDFLAGS_vlc} -Wl,-framework,vecLib"
1459      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
1460      LDFLAGS="${LDFLAGS_save}"
1461     ])
1462   AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1463     VLC_ADD_LDFLAGS([libvlccore idctaltivec motionaltivec memcpyaltivec],[-Wl,-framework,vecLib])
1464   ])
1466 AM_CONDITIONAL([HAVE_ALTIVEC], [test "$have_altivec" = "yes"])
1469 dnl  Special arch tuning
1471 AC_ARG_WITH(tuning,
1472 [  --with-tuning=ARCH      enable special tuning for an architecture
1473                           (default Pentium 2 on IA-32 and G4 on PPC)])
1474 if test -n "${with_tuning}"; then
1475     if test "${with_tuning}" != "no"; then
1476         CFLAGS_TUNING="-mtune=${with_tuning}"
1477     fi
1478 else
1479     if test "${SYS}" = "darwin" -a "${host_cpu}" != "powerpc"; then
1480         CFLAGS_TUNING="-march=prescott -mtune=generic"
1481     elif test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "i386"; then
1482         CFLAGS_TUNING="-mtune=pentium2"
1483     elif test "${host_cpu}" = "x86_64"; then
1484         CFLAGS_TUNING="-mtune=athlon64"
1485     elif test "${host_cpu}" = "powerpc"; then
1486         CFLAGS_TUNING="-mtune=G4";
1487     fi
1490 dnl NOTE: this can't be cached cleanly
1491 AS_IF([test "${CFLAGS_TUNING}"],
1492    [CFLAGS_save="${CFLAGS}"
1493     CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1495     AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1496     AC_COMPILE_IFELSE([ ],
1497                       [tuning="yes"],
1498                       [CFLAGS_TUNING=""; tuning="no"
1499                        AS_IF([test "${with_tuning}"],
1500                              [AC_MSG_ERROR([requested tuning not supported])])])
1502     AC_MSG_RESULT([$tuning])
1503     CFLAGS="${CFLAGS_save}"
1507 dnl  Memory usage
1509 AC_ARG_ENABLE(optimize-memory,
1510 [  --enable-optimize-memory optimize memory usage over performance])
1511 if test "${enable_optimize_memory}" = "yes"; then
1512   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1516 dnl  Enable/disable optimizations
1518 AC_ARG_ENABLE(optimizations,
1519 [  --disable-optimizations disable compiler optimizations (default enabled)])
1520 if test "${enable_optimizations}" != "no"; then
1521    if test "${enable_optimize_memory}" = "yes"; then
1522       enable_optimizations="size"
1523    else
1524       enable_optimizations="speed"
1525    fi
1529 dnl  Debugging mode
1531 AC_ARG_ENABLE(debug,
1532 [  --enable-debug          debug mode (default disabled)])
1533 test "${enable_debug}" != "yes" && enable_debug="no"
1534 AH_TEMPLATE(NDEBUG,
1535             [Define to 1 if debug code should NOT be compiled])
1536 AS_IF([test "x${enable_debug}" = "xno"], [
1537   AC_DEFINE(NDEBUG)
1538 ], [
1539   AC_CHECK_HEADERS([valgrind/valgrind.h])
1543 dnl Allow running as root (useful for people running on embedded platforms)
1545 AC_ARG_ENABLE(run-as-root,
1546 [  --enable-run-as-root    allow running VLC as root (default disabled)])
1547 AS_IF([test "${enable_run_as_root}" = "yes"],[
1548     AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1549               [Define to 1 to allow running VLC as root (uid 0).])
1553 dnl  Test coverage
1555 AC_ARG_ENABLE(coverage,
1556         [  --enable-coverage       build for test coverage (default disabled)],,
1557         [enable_coverage="no"])
1558 AS_IF([test "${enable_coverage}" != "no"], [
1559         CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
1560         CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
1561         LDFLAGS="-lgcov ${LDFLAGS}"
1562         dnl ugly...
1563         CFLAGS_save="${CFLAGS}"
1564         CXXFLAGS_save="${CXXFLAGS}"
1565         LDFLAGS_save="${LDFLAGS}"
1569 dnl Stream output
1571 AC_ARG_ENABLE(sout,
1572   [  --enable-sout           Stream output modules (default enabled)])
1573 AS_IF([test "${enable_sout}" != "no"], [
1574   AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1576 AM_CONDITIONAL(ENABLE_SOUT, [test "${enable_sout}" != "no"])
1578 dnl Lua modules
1579 AC_ARG_ENABLE(lua,
1580   AS_HELP_STRING([--enable-lua],[lua playlist, metafetcher and interface
1581                   plugins (default enabled)]))
1582 if test "${enable_lua}" != "no"
1583 then
1584   PKG_CHECK_MODULES(LUA, lua5.1,
1585     [ have_lua=yes ],
1586     [
1587     AC_MSG_WARN([lua5.1 not found, trying lua >= 5.1 instead])
1588     PKG_CHECK_MODULES(LUA, lua >= 5.1,
1589       [ have_lua=yes ],
1590       [
1591         have_lua=yes
1592         AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1593           [],
1594           [ have_lua=no ] )
1595         AC_CHECK_LIB(  lua5.1 , luaL_newstate,
1596           [LUA_LIBS="-llua5.1"],
1597           AC_CHECK_LIB( lua51 , luaL_newstate,
1598             [LUA_LIBS="-llua51"],
1599             AC_CHECK_LIB( lua , luaL_newstate,
1600               [LUA_LIBS="-llua"],
1601               [ have_lua=no
1602               ], [-lm])
1603           )
1604         )
1605       ])
1606     ])
1607   if test "x${have_lua}" = "xyes" ;  then
1608      VLC_ADD_LIBS([lua],[$LUA_LIBS])
1609      VLC_ADD_CFLAGS([lua],[$LUA_CFLAGS])
1610   else
1611       AC_MSG_ERROR([Could not find lua. Lua is needed for some interfaces (rc, telnet, http) as well as many other custom scripts. Use --disable-lua to ignore this error.])
1612   fi
1613   AC_ARG_VAR([LUAC], [LUA byte compiler])
1614   AC_PATH_PROGS(LUAC,[${LUAC} luac], [false])
1615   AS_IF([test "${LUAC}" = "false"], [
1616     AC_MSG_ERROR([Could not find the LUA byte compiler.])
1617   ])
1619 AM_CONDITIONAL(BUILD_LUA, [test "${have_lua}" = "yes"])
1622 dnl HTTP daemon
1624 AC_ARG_ENABLE(httpd,
1625   [  --enable-httpd          HTTP daemon (default enabled)])
1626 if test "${enable_httpd}" != "no"
1627 then
1628   VLC_ADD_PLUGIN([oldhttp])
1629   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
1631 AM_CONDITIONAL(BUILD_HTTPD, [test "${enable_httpd}" != "no"])
1634 dnl libproxy support
1636 AC_ARG_ENABLE(libproxy,
1637   [  --enable-libproxy       libproxy support (default auto)])
1638 AS_IF([test "${enable_libproxy}" != "no"], [
1639   PKG_CHECK_MODULES(LIBPROXY, libproxy-1.0, [
1640     AC_DEFINE(HAVE_LIBPROXY, 1, [Define if libproxy is available])
1641     VLC_ADD_CFLAGS([access_http],[$LIBPROXY_CFLAGS])
1642     VLC_ADD_LIBS([access_http],[$LIBPROXY_LIBS])
1643   ], [
1644     AS_IF([test "x${enable_libproxy}" != "x"], [
1645       AC_MSG_ERROR([libproxy could not be found on your system])
1646     ])
1647   ])
1652 dnl VideoLAN manager
1654 AC_ARG_ENABLE(vlm,
1655   [  --enable-vlm            VideoLAN manager (default enabled)],,
1656   [enable_vlm="${enable_sout}"])
1657 AS_IF([test "${enable_vlm}" != "no"], [
1658   AS_IF([test "${enable_sout}" = "no"], [
1659     AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1660   ])
1661   AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1663 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1666 dnl Growl notification plugin
1668 AC_ARG_ENABLE(growl,
1669   [  --enable-growl          growl notification plugin (default disabled)],,
1670   [enable_growl=no])
1671 AS_IF([test "${enable_growl}" != "no"], [
1672     VLC_ADD_PLUGIN([growl_udp])
1673     AC_CHECK_HEADERS(Growl/GrowlDefines.h, [
1674       VLC_ADD_PLUGIN([growl])
1675       VLC_ADD_LDFLAGS([growl], [-Wl,-framework,Growl,-framework,AppKit])
1676       VLC_ADD_OBJCFLAGS([growl], [-fobjc-exceptions] )
1677     ])
1678   ]
1682 dnl Libnotify notification plugin
1684 PKG_ENABLE_MODULES_VLC([NOTIFY], [], [libnotify], [libnotify notification], [auto])
1687 dnl Taglibplugin
1689 AC_ARG_ENABLE(taglib,
1690   [  --disable-taglib        Taglib support (default enabled) ])
1691   AS_IF([test "${enable_taglib}" != "no"],[
1692     PKG_CHECK_MODULES(TAGLIB, taglib >= 1.5,
1693       [ VLC_ADD_PLUGIN([taglib])
1694         VLC_ADD_LIBS([taglib],[$TAGLIB_LIBS -lz])
1695         VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS])
1696         AC_LANG_PUSH(C++)
1697         AC_CHECK_HEADERS(taglib/mp4coverart.h)
1698         AC_LANG_POP(C++)
1699       ],
1700       [AC_MSG_WARN(TagLib library not found)])
1701   ])
1704 dnl  Input plugins
1707 EXTEND_HELP_STRING([Input plugins:])
1709 dnl  live555 input
1711 AC_ARG_ENABLE(live555,
1712 [  --enable-live555        live555 RTSP input plugin (default enabled)])
1713 if test "${enable_live555}" != "no"; then
1714   AC_ARG_WITH(live555-tree,
1715     [  --with-live555-tree=PATH live.com tree for static linking])
1717   dnl
1718   dnl test for --with-live555-tree
1719   dnl
1720   if test -z "${with_live555_tree}" -a "${CXX}" != ""; then
1721     AC_LANG_PUSH(C++)
1722     CPPFLAGS_save="${CPPFLAGS}"
1723     if test -z "${CONTRIB_DIR}"; then
1724         CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1725     else
1726         CPPFLAGS_live555="-I${CONTRIB_DIR}/include/liveMedia -I${CONTRIB_DIR}/include/groupsock -I${CONTRIB_DIR}/include/BasicUsageEnvironment -I${CONTRIB_DIR}/include/UsageEnvironment"
1727     fi
1728     if test "${SYS}" = "solaris"; then
1729       CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1730     fi
1731     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1733     AC_CHECK_HEADERS(liveMedia_version.hh, [
1734       AC_MSG_CHECKING(for liveMedia version >= 1275091200 )
1735       AC_EGREP_CPP(yes,
1736         [#include <liveMedia_version.hh>
1737          #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
1738          #if LIVEMEDIA_LIBRARY_VERSION_INT < 1275091200
1739          yes
1740          #endif
1741          #endif],
1742         [AC_MSG_RESULT([no])
1743           AC_MSG_WARN([The installed liveMedia version is too old:
1744 Version 2010.05.29 or later is required to proceed.
1745 You can get an updated one from http://www.live555.com/liveMedia .])
1746           AS_IF([test "${enable_live555}" == "yes"], [
1747             AC_MSG_ERROR([Update live555 or pass --disable-live555 to disable the plugin.])
1748           ])
1749         ],[
1750           AC_MSG_RESULT([yes])
1751           other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1752           other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
1753           if test "${SYS}" = "mingw32"; then
1754             # add ws2_32 for closesocket, select, recv
1755             other_libs="$other_libs -lws2_32"
1756           elif test "${SYS}" = "mingwce"; then
1757             # add ws2 for closesocket, select, recv
1758             other_libs="$other_libs -lws2"
1759           fi
1761           dnl We need to check for pic because live555 don't provide shared libs
1762           dnl and we want to build a plugins so we need -fPIC on some arch.
1763           VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1764           AC_CHECK_LIB(liveMedia_pic, main, [
1765             VLC_ADD_PLUGIN([live555])
1766             VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
1767           ],[
1768             AC_CHECK_LIB(liveMedia, main, [
1769             VLC_ADD_PLUGIN([live555])
1770             VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1771           ],[],[${other_libs}]) ],[${other_libs_pic}])
1773           CPPFLAGS="${CPPFLAGS_save}"
1774           AC_LANG_POP(C++)
1775         ])
1776       ])
1777   else
1778     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_live555_tree})
1779     real_live555_tree="`cd ${with_live555_tree} 2>/dev/null && pwd`"
1780     if test -z "${real_live555_tree}"; then
1781       dnl  The given directory can't be found
1782       AC_MSG_RESULT(no)
1783       AC_MSG_ERROR([cannot cd to ${with_live555_tree}])
1784     fi
1785     if test -f "${real_live555_tree}/liveMedia/libliveMedia.a"; then
1786       AC_MSG_RESULT(${real_live555_tree}/liveMedia/libliveMedia.a)
1788       AC_CHECK_HEADERS(${real_live555_tree}/liveMedia/include/liveMedia_version.hh,[
1789         AC_MSG_CHECKING(for liveMedia version >= 1275091200 )
1790         AC_EGREP_CPP(yes,
1791           [#include "${real_live555_tree}/liveMedia/include/liveMedia_version.hh"
1792            #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
1793            #if LIVEMEDIA_LIBRARY_VERSION_INT < 1275091200
1794            yes
1795            #endif
1796            #endif],
1797           [AC_MSG_RESULT([no])
1798            AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia.
1799 lternatively you can use --disable-live555 to disable the liveMedia plugin.])
1800         ],[
1801            AC_MSG_RESULT([yes])
1802            ])
1803       ])
1805       VLC_ADD_PLUGIN([live555])
1807       if test "${SYS}" = "mingw32"; then
1808         # add ws2_32 for closesocket, select, recv
1809         VLC_ADD_LIBS([live555],[-lws2_32])
1810       fi
1812       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/UsageEnvironment -lUsageEnvironment])
1813       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1814       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/groupsock -lgroupsock])
1815       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/liveMedia -lliveMedia])
1817       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/BasicUsageEnvironment/include])
1818       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/groupsock/include])
1819       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/liveMedia/include])
1820       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/UsageEnvironment/include ])
1821       if test "${SYS}" = "solaris"; then
1822         VLC_ADD_CXXFLAGS([live555],[-DSOLARIS])
1823       fi
1824     else
1825       dnl  The given live555 wasn't built
1826         AC_MSG_RESULT(no)
1827       if test "${enable_live555}" = "yes"; then
1828         AC_MSG_ERROR([cannot find ${real_live555_tree}/liveMedia/libliveMedia.a, make sure you compiled live555 in ${with_live555_tree}])
1829       fi        
1830     fi
1831   fi
1835 dnl - special access module for dc1394 input
1836 dnl - dv module: digital video module check for libraw1394
1838 PKG_ENABLE_MODULES_VLC([DC1394], [], [libraw1394 >= 2.0.1 libdc1394-2 >= 2.1.0], [dc1394 access module], [auto])
1839 PKG_ENABLE_MODULES_VLC([DV], [access_dv], [libraw1394 >= 2.0.1 libavc1394 >= 0.5.3], [DV input module], [auto])
1842 dnl dvdread module: check for libdvdread
1844 dnl prepend -ldvdcss on OS that need it
1845 AS_CASE(["${SYS}"], [mingw32|darwin|beos], [VLC_ADD_LIBS([dvdread], [-ldvdcss])])
1846 PKG_ENABLE_MODULES_VLC([DVDREAD], [], [dvdread], [dvdread input module], [auto])
1849 dnl libdvdnav plugin
1851 AC_ARG_ENABLE(dvdnav,
1852   [  --enable-dvdnav         dvdnav input module (default enabled)])
1853 if test "${enable_dvdnav}" != "no"
1854 then
1855   dnl prepend -ldvdcss on OS that need it
1856   AS_CASE(["${SYS}"], [mingw32|darwin|beos], [VLC_ADD_LIBS([dvdnav], [-ldvdcss])])
1858   DVDNAV_PATH="${PATH}"
1859   AC_ARG_WITH(dvdnav-config-path,
1860     [  --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
1861     [ if test "${with_dvdnav_config_path}" != "no"
1862       then
1863         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
1864       fi ])
1865   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
1866   if test "${DVDNAV_CONFIG}" != "no"
1867   then
1868     VLC_ADD_PLUGIN([dvdnav])
1869     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
1870     VLC_ADD_LIBS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
1871     AC_CHECK_LIB(dvdnav, dvdnav_get_video_resolution,
1872                 AC_DEFINE(HAVE_DVDNAV_GET_VIDEO_RESOLUTION, 1, [Define if you have dvdnav_get_video_resolution.]),
1873                 [], [${LIBS_dvdnav}])
1874     AC_CHECK_LIB(dvdnav, dvdnav_describe_title_chapters,
1875                 AC_DEFINE(HAVE_DVDNAV_DESCRIBE_TITLE_CHAPTERS, 1, [Define if you have dvdnav_describe_title_chapters.]),
1876                 [], [${LIBS_dvdnav}])
1877   fi
1881 dnl  Windows DirectShow access module
1883 AC_ARG_ENABLE(dshow,
1884   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
1885 if test "${enable_dshow}" != "no"
1886 then
1887   if test "${SYS}" = "mingw32"
1888   then
1889     AC_LANG_PUSH(C++)
1890       AC_CHECK_HEADERS(dshow.h,
1891       [ VLC_ADD_PLUGIN([dshow])
1892         VLC_ADD_CXXFLAGS([dshow],[])
1893         VLC_ADD_LIBS([dshow],[-lole32 -loleaut32 -luuid]) ])
1894     AC_LANG_POP(C++)
1895   fi
1899 dnl  Windows DirectShow BDA access module
1901 AC_ARG_ENABLE(bda,
1902   AS_HELP_STRING([--enable-bda],[Win32 DirectShow BDA support (default
1903                   enabled on Win32)]))
1904 if test "${enable_bda}" != "no"
1905 then
1906   if test "${SYS}" = "mingw32"
1907   then
1908       AC_CHECK_HEADERS(dshow.h,
1909       [ VLC_ADD_PLUGIN([bda])
1910         VLC_ADD_CXXFLAGS([bda],[])
1911         VLC_ADD_LIBS([bda],[-lstrmiids -lole32 -loleaut32 -luuid]) ])
1912   fi
1917 dnl  Blu-ray Disc Support with libbluray
1919 PKG_ENABLE_MODULES_VLC([BLURAY], [libbluray], [libbluray], (libbluray for Blu-ray disc support ) )
1922 dnl  OpenCV wrapper and example filters
1924 PKG_ENABLE_MODULES_VLC([OPENCV], [opencv_example], [opencv], (OpenCV (computer vision) filter), [off])
1928 dnl  libsmbclient plugin
1930 AC_ARG_ENABLE(smb,
1931   [  --enable-smb            smb input module (default enabled)])
1932 if test "${enable_smb}" != "no"; then
1933   AC_CHECK_HEADERS(libsmbclient.h,
1934     [ VLC_ADD_PLUGIN([access_smb])
1935       VLC_ADD_LIBS([access_smb],[-lsmbclient]) ],
1936     [ if test -n "${enable_smb}"; then
1937         AC_MSG_ERROR([cannot find libsmbclient headers])
1938      fi ])
1943 dnl sftp access support
1945 AC_ARG_ENABLE(sftp,
1946   [  --enable-sftp           sftp input access module (default disable)])
1947 if test "${enable_sftp}" = "yes"; then
1948   AC_CHECK_HEADERS(libssh2.h, [
1949     VLC_ADD_PLUGIN([access_sftp])
1950     VLC_ADD_LIBS([access_sftp], [-lssh2])
1951   ])
1955 dnl  libdvbpsi ts demux/mux
1957 AC_ARG_ENABLE(dvbpsi,
1958   [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
1959 have_dvbpsi=no
1960 if test "${enable_dvbpsi}" != "no"
1961 then
1962   AC_ARG_WITH(dvbpsi,
1963   [  --with-dvbpsi=PATH      libdvbpsi headers and libraries])
1964   AC_ARG_WITH(dvbpsi,
1965   [  --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
1966   case "${with_dvbpsi}" in
1967   ""|yes)
1968     if test -z "${with_dvbpsi_tree}"
1969     then
1970       AC_CHECK_HEADERS(dvbpsi/dr.h,
1971         [ VLC_ADD_PLUGIN([ts])
1972           if test "${enable_sout}" != "no"; then
1973             VLC_ADD_PLUGIN([mux_ts])
1974           fi
1975           VLC_ADD_LIBS([mux_ts ts dvb],[-ldvbpsi])
1976           have_dvbpsi=yes],
1977         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
1978         [#if defined( HAVE_STDINT_H )
1979 #   include <stdint.h>
1980 #elif defined( HAVE_INTTYPES_H )
1981 #   include <inttypes.h>
1982 #endif
1983 #include <dvbpsi/dvbpsi.h>
1984 #include <dvbpsi/descriptor.h>
1985 #include <dvbpsi/pat.h>
1986 #include <dvbpsi/pmt.h>])
1987     else
1988       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
1989       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
1990       if test -z "${real_dvbpsi_tree}"
1991       then
1992         dnl  The given directory can't be found
1993         AC_MSG_RESULT(no)
1994         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
1995       fi
1996       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
1997       then
1998         dnl  Use a custom libdvbpsi
1999         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
2000         VLC_ADD_PLUGIN([ts])
2001         if test "${enable_sout}" != "no"; then
2002           VLC_ADD_PLUGIN([mux_ts])
2003         fi
2004         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
2005         VLC_ADD_LIBS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
2006         have_dvbpsi=yes
2007       else
2008         dnl  The given libdvbpsi wasn't built
2009         AC_MSG_RESULT(no)
2010         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
2011       fi
2012     fi
2013   ;;
2014   no)
2015     dnl  Compile without dvbpsi
2016   ;;
2017   *)
2018     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
2019     if test -z "${with_dvbpsi}"
2020     then
2021       LDFLAGS_test=""
2022       CPPFLAGS_test=""
2023     else
2024       LDFLAGS_test="-L${with_dvbpsi}/lib"
2025       CPPFLAGS_test="-I${with_dvbpsi}/include"
2026     fi
2027     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
2028     AC_CHECK_HEADERS([dvbpsi/dr.h],[
2029       VLC_ADD_PLUGIN([ts])
2030       if test "${enable_sout}" != "no"; then
2031         AC_CHECK_LIB(dvbpsi, dvbpsi_SDTServiceAddDescriptor,
2032            [VLC_ADD_PLUGIN([mux_ts])], [], [${LDFLAGS_test} -ldvbpsi])
2033       fi
2034       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
2035       VLC_ADD_LIBS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
2036       have_dvbpsi=yes
2037     ],[
2038       if test -n "${enable_dvbpsi}"
2039       then
2040         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.6])
2041       fi
2042     ],
2043     [#if defined( HAVE_STDINT_H )
2044 #   include <stdint.h>
2045 #elif defined( HAVE_INTTYPES_H )
2046 #   include <inttypes.h>
2047 #endif
2048 #include <dvbpsi/dvbpsi.h>
2049 #include <dvbpsi/descriptor.h>
2050 #include <dvbpsi/pat.h>
2051 #include <dvbpsi/pmt.h>])
2052     CPPFLAGS="${CPPFLAGS_save}"
2053   ;;
2054   esac
2055   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
2056     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
2057   ], [], [${LIBS_ts}])
2062 dnl  Video4Linux2 plugin
2064 AC_ARG_ENABLE(v4l2,
2065   [  --enable-v4l2           Video4Linux2 input support (default enabled)])
2066 if test "${enable_v4l2}" != "no"
2067 then
2068   AC_ARG_WITH(v4l2,
2069     [  --with-v4l2=PATH        path to a v4l2-enabled kernel tree],[],[])
2070   if test "${with_v4l2}" != "no" -a -n "${with_v4l2}"
2071   then
2072     VLC_ADD_CPPFLAGS([v4l2],[-I${with_v4l2}/include])
2073   fi
2075   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l2}"
2076   AC_CHECK_HEADERS(linux/videodev2.h sys/videoio.h, [
2077     VLC_ADD_PLUGIN([v4l2])
2078   ],[])
2079   CPPFLAGS="${CPPFLAGS_save}"
2083 dnl libv4l2 support for video4linux.
2085 AC_ARG_ENABLE( libv4l2,
2086   [  --enable-libv4l2        Libv4l2 Video4Linux2 support (default enabled)])
2087 if test "${enable_libv4l2}" != "no" -a "${enable_v4l2}" != "no"
2088 then
2089     PKG_CHECK_MODULES( LIBV4L2, libv4l2, [
2090       VLC_ADD_LDFLAGS([v4l2],[${LIBV4L2_LIBS}])
2091       VLC_ADD_CFLAGS([v4l2],[${LIBV4L2_CFLAGS}])
2092       AC_DEFINE(HAVE_LIBV4L2, 1, Define if libv4l2 is available)],
2093       AC_MSG_WARN([LibV4L2 support disabled because libv4l2 development headers were not found])
2094     )
2098 dnl  special access module for Hauppauge PVR cards
2100 AC_ARG_ENABLE(pvr,
2101   [  --enable-pvr            PVR cards access module (default disabled)])
2102 if test "${enable_pvr}" = "yes"
2103 then
2104   VLC_ADD_PLUGIN([pvr])
2105   AC_ARG_WITH(videodev2,
2106     [  --with-videodev2=FILE   Location of videodev2.h file (default /usr/include/linux/videodev2.h)],[],[])
2107   if test "${with_videodev2}" != "no" -a -n "${with_videodev2}"
2108   then
2109     AC_DEFINE_UNQUOTED(VIDEODEV2_H_FILE, "${with_videodev2}", [Location of videodev2.h])
2110   fi
2112   AC_CACHE_CHECK([for new linux/videodev2.h],
2113       [ac_cv_new_linux_videodev2_h],
2114       [AC_TRY_COMPILE([
2115           #include <sys/types.h>
2116           #   ifdef VIDEODEV2_H_FILE
2117           #   include VIDEODEV2_H_FILE
2118           #   else
2119           #   include <linux/videodev2.h>
2120           #   endif
2121           ],
2122           [struct v4l2_ext_controls ctrls; ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG; ],
2123           ac_cv_new_linux_videodev2_h=yes,
2124           ac_cv_new_linux_videodev2_h=no)])
2125   if test "${ac_cv_new_linux_videodev2_h}" != "no"; then
2126     AC_DEFINE(HAVE_NEW_LINUX_VIDEODEV2_H, 1, [Define if new linux/videodev2.h present])
2127   fi
2131 dnl  gnomeVFS access module
2133 PKG_ENABLE_MODULES_VLC([GNOMEVFS], [access_gnomevfs], [gnome-vfs-2.0], [GnomeVFS access module], [auto])
2136 dnl  VCDX modules
2138 AC_ARG_ENABLE(vcdx,
2139   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2141 if test "${enable_vcdx}" = "yes"
2142 then
2143         PKG_CHECK_MODULES(LIBCDIO, [libcdio >= 0.78.2 libiso9660 >= 0.72],
2144           [VLC_ADD_LIBS([vcdx],[$LIBCDIO_LIBS])
2145                  VLC_ADD_CFLAGS([vcdx],[$LIBCDIO_CFLAGS])],
2146                 [AC_MSG_ERROR([vcdx plugin requires libcdio >= 0.78.2 and libiso9660 >= 0.72])])
2147         PKG_CHECK_MODULES(LIBVCDINFO, libvcdinfo >= 0.7.22,
2148                 [VLC_ADD_LIBS([vcdx],[$LIBVCDINFO_LIBS])
2149                  VLC_ADD_CFLAGS([vcdx],[$LIBVCDINFO_CFLAGS])],
2150           [AC_MSG_ERROR([vcdx plugin requires libvcdinfo library >= 0.7.22])])
2151         VLC_ADD_PLUGIN([vcdx])
2155 dnl  Built-in CD-DA and VCD module
2157 AC_ARG_ENABLE(vcd,
2158   [  --enable-vcd            built-in VCD and CD-DA (default enabled)])
2160 AC_ARG_ENABLE(libcddb,
2161   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
2163 if test "${enable_vcd}" != "no"
2164 then
2165   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2166   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2167     AC_MSG_RESULT(yes)
2168     VLC_ADD_PLUGIN([vcd cdda])
2169   ],[
2170     AC_MSG_RESULT(no)
2171   ])
2173   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2174   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2175     AC_MSG_RESULT(yes)
2176     VLC_ADD_PLUGIN([vcd cdda])
2177     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2178   ],[
2179     AC_MSG_RESULT(no)
2180   ])
2182   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2183   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2184     AC_MSG_RESULT(yes)
2185     VLC_ADD_PLUGIN([vcd cdda])
2186     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2187   ],[
2188     AC_MSG_RESULT(no)
2189   ])
2191   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2192   then
2193     VLC_ADD_PLUGIN([vcd cdda])
2194   fi
2196   if test "${SYS}" = "darwin"
2197   then
2198     VLC_ADD_PLUGIN([vcd cdda])
2199     VLC_ADD_LDFLAGS([vcd vcdx cdda],[-Wl,-framework,IOKit,-framework,CoreFoundation])
2200     VLC_ADD_LIBS([vcdx cdda],[-liconv])
2201   fi
2203   if test "$enable_libcddb" != "no"; then
2204     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2205       HAVE_LIBCDDB=yes
2206       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2207       VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2208       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2209       ],:
2210       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled)
2211       HAVE_LIBCDDB=no])
2212   fi
2216 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2218 AC_ARG_ENABLE(dvb,
2219   [  --enable-dvb            DVB-S/T/C card support (default enabled)])
2221 if test "${enable_dvb}" != "no"
2222 then
2223     AS_IF([test "${have_dvbpsi}" = "yes" ],[
2224     AC_ARG_WITH(dvb,
2225      [  --with-dvb=PATH         path to a dvb- and v4l2-enabled kernel tree],[],[])
2226      if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2227      then
2228        VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2229      fi
2230      CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2231      AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2232      VLC_ADD_PLUGIN([dvb])
2233      ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2234      CPPFLAGS="${CPPFLAGS_save}"
2235    ],[
2236      AC_MSG_WARN([the dvb access module requires libdvbpsi])
2237     ])
2241 dnl  Screen capture module
2243 AC_ARG_ENABLE(screen,
2244   [  --enable-screen         Screen capture support (default enabled)])
2245 if test "${enable_screen}" != "no"; then
2246   if test "${SYS}" = "darwin"; then
2247     AC_CHECK_HEADERS(OpenGL/gl.h, [
2248       AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2249         VLC_ADD_PLUGIN([screen])
2250         VLC_ADD_LDFLAGS([screen],[-Wl,-framework,OpenGL,-framework,ApplicationServices])
2251       ])
2252     ])
2253   elif test "${SYS}" = "mingw32"; then
2254     VLC_ADD_PLUGIN([screen])
2255     VLC_ADD_LIBS([screen],[-lgdi32])
2256   elif test "${SYS}" = "mingwce"; then
2257     CPPFLAGS="${CPPFLAGS_save}"
2258   elif test "${SYS}" = "beos"; then
2259     VLC_ADD_PLUGIN([screen])
2260     VLC_ADD_CXXFLAGS([screen],[])
2261     VLC_ADD_LIBS([screen],[-lbe])
2262   fi
2266 dnl  ipv6 plugin
2268 have_ipv6=no
2269 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2270   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2273 AS_IF([test "${have_ipv6}" = "yes"], [
2274   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2277 AC_CHECK_FUNCS(inet_ntop,[
2278   AC_DEFINE(HAVE_INET_NTOP, 1, [Define to 1 if you have inet_ntop().])])
2282 dnl  ogg demux plugin
2284 PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto])
2285 if test "${enable_sout}" != "no"; then
2286     PKG_ENABLE_MODULES_VLC([MUX_OGG], [], [ogg >= 1.0], [Ogg mux support], [auto])
2289 if test "${enable_sout}" != "no"; then
2290 dnl Check for libshout
2291 PKG_ENABLE_MODULES_VLC([SHOUT], [access_output_shout], [shout >= 2.1], [libshout output plugin], [auto])
2295 dnl  matroska demux plugin
2297 AC_ARG_ENABLE(mkv,
2298   [  --enable-mkv            Matroska demux support (default enabled)])
2299 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2300   AC_LANG_PUSH(C++)
2301   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2302     AC_MSG_CHECKING(for libebml version >= 1.0.0)
2303     AC_EGREP_CPP(yes,
2304       [#include <ebml/EbmlVersion.h>
2305        #ifdef LIBEBML_VERSION
2306        #if LIBEBML_VERSION >= 0x010000
2307        yes
2308        #endif
2309        #endif],
2310       [AC_MSG_RESULT([yes])
2311         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2312           AC_MSG_CHECKING(for libmatroska version >= 1.0.0)
2313           AC_EGREP_CPP(yes,
2314             [#include <matroska/KaxVersion.h>
2315              #ifdef LIBMATROSKA_VERSION
2316              #if LIBMATROSKA_VERSION >= 0x010000
2317              yes
2318              #endif
2319              #endif],
2320             [AC_MSG_RESULT([yes])
2321               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2322               VLC_ADD_CXXFLAGS([mkv],[])
2323               if test "${SYS}" = "darwin"; then
2324                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2325               fi
2326               AC_CHECK_LIB(ebml_pic, main, [
2327                 VLC_ADD_PLUGIN([mkv])
2328                 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2329               ],
2330                 AC_CHECK_LIB(ebml, main, [
2331                   VLC_ADD_PLUGIN([mkv])
2332                   VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2333                 ])
2334       )
2335             ],
2336             [AC_MSG_RESULT([no])
2337               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.])
2338           ])
2339         ])
2340       ],
2341       [AC_MSG_RESULT([no])
2342         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.])
2343     ])
2344   ])
2345   AC_LANG_POP(C++)
2349 dnl  modplug demux plugin
2351 AC_ARG_ENABLE(mod,
2352   [  --enable-mod            Mod demux support (default auto)])
2353 if test "${enable_mod}" != "no" ; then
2354     PKG_CHECK_MODULES(LIBMODPLUG, [libmodplug >= 0.8.4 libmodplug != 0.8.8], [
2355           VLC_ADD_PLUGIN([mod])
2356           VLC_ADD_CXXFLAGS([mod],[$LIBMODPLUG_CFLAGS])
2357           VLC_ADD_LIBS([mod],[$LIBMODPLUG_LIBS])
2358     ],[
2359        AS_IF([test x"${enable_mod}" = "xyes"],
2360          [AC_MSG_ERROR(libmodplug not found or a broken version (0.8.8.0) was found!)],
2361          [AC_MSG_WARN(libmodplug not found or a broken version (0.8.8.0) was found!)])
2362     ])
2366 dnl  mpc demux plugin
2368 AC_ARG_ENABLE(mpc,
2369   [  --enable-mpc            Mpc demux support (default enabled)])
2370 if test "${enable_mpc}" != "no"
2371 then
2372   AC_CHECK_HEADERS([mpc/mpcdec.h], [
2373     VLC_ADD_PLUGIN([mpc])
2374     VLC_ADD_LIBS([mpc],[-lmpcdec])],
2375     [AC_CHECK_HEADERS([mpcdec/mpcdec.h], [
2376     VLC_ADD_PLUGIN([mpc])
2377     VLC_ADD_LIBS([mpc],[-lmpcdec])])])
2381 dnl  game music emu demux plugin
2383 AC_ARG_ENABLE(gme,
2384   [  --enable-gme            Game Music Emu demux support (default enabled)])
2385 if test "${enable_gme}" != "no" -a "${CXX}" != "";
2386 then
2387   AC_LANG_PUSH(C++)
2388   AC_ARG_WITH(gme-tree,
2389   [  --with-gme-tree=PATH    gme tree for static linking])
2390   if test -n "${with_gme_tree}"
2391   then
2392     AC_MSG_CHECKING(for libgme.a in ${with_mod_tree})
2393     real_gme_tree="`cd ${with_gme_tree} 2>/dev/null && pwd`"
2394     if test -z "${real_gme_tree}"
2395     then
2396       dnl  The given directory can't be found
2397       AC_MSG_RESULT(no)
2398       AC_MSG_ERROR([cannot cd to ${with_gme_tree}])
2399     fi
2400     if test -f "${real_gme_tree}/gme/libgme.a"
2401     then
2402       dnl  Use a custom gme
2403       AC_MSG_RESULT(${real_gme_tree}/gme/libgme.a)
2404       VLC_ADD_PLUGIN([gme])
2405       VLC_ADD_LIBS([gme],[${real_gme_tree}/gme/libgme.a])
2406       VLC_ADD_CXXFLAGS([gme],[-I${real_gme_tree}/gme])
2407     else
2408       dnl  The given gme wasn't built
2409       AC_MSG_RESULT(no)
2410       AC_MSG_ERROR([cannot find ${real_mod_tree}/gme/libgme.a, make sure you compiled gme in ${with_gme_tree}])
2411     fi
2412   else
2413       AC_MSG_WARN([only static linking is available, you must provide a gme-tree])
2414   fi
2415   AC_LANG_POP(C++)
2419 dnl  Codec plugins
2422 EXTEND_HELP_STRING([Codec plugins:])
2425 dnl wmafixed plugin
2427 AC_ARG_ENABLE(wma-fixed,
2428   [  --enable-wma-fixed      libwma-fixed module (default disabled)])
2429 if test "${enable_wma_fixed}" = "yes"
2430 then
2431   VLC_ADD_PLUGIN([wma_fixed])
2435 dnl shine fixed point mp3 encoder
2437 AC_ARG_ENABLE(shine,
2438   [  --enable-shine          shine mp3 encoding module (default disabled)])
2439 if test "${enable_shine}" = "yes"
2440 then
2441   VLC_ADD_PLUGIN([shine])
2445 dnl openmax il codec plugin
2447 AC_ARG_ENABLE(omxil,
2448   [  --enable-omxil          openmax il codec module (default disabled)])
2449 if test "${enable_omxil}" = "yes"
2450 then
2451   VLC_ADD_PLUGIN([omxil])
2452   VLC_ADD_LIBS([omxil], [$LIBDL])
2456 dnl  mad plugin
2458 AC_ARG_ENABLE(mad,
2459   [  --enable-mad            libmad module (default enabled)])
2460 if test "${enable_mad}" != "no"
2461 then
2462   AC_ARG_WITH(mad,
2463     [  --with-mad=PATH         path to libmad],[],[])
2464   if test "${with_mad}" != "no" -a -n "${with_mad}"
2465   then
2466     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2467     VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2468   fi
2470   AC_ARG_WITH(mad-tree,
2471     [  --with-mad-tree=PATH    mad tree for static linking],[],[])
2472   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2473   then
2474     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2475     if test -z "${real_mad_tree}"
2476     then
2477       dnl  The given directory can't be found
2478       AC_MSG_RESULT(no)
2479       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2480     fi
2481     dnl  Use a custom libmad
2482     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2483     if test -f ${real_mad_tree}/mad.h
2484     then
2485       AC_MSG_RESULT(yes)
2486       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2487       VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2488       LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2489       AC_CHECK_LIB(mad, mad_bit_init, [
2490         VLC_ADD_PLUGIN([mpgatofixed32])
2491         VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2492         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2493       ],[])
2494       LDFLAGS="${LDFLAGS_save}"
2495     else
2496       AC_MSG_RESULT(no)
2497       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2498     fi
2499   else
2500     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2501     LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2502     AC_CHECK_HEADERS(mad.h, ,
2503       [ 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.]) ])
2504     AC_CHECK_LIB(mad, mad_bit_init, [
2505       VLC_ADD_PLUGIN([mpgatofixed32])
2506       VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2507       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2508     CPPFLAGS="${CPPFLAGS_save}"
2509     LDFLAGS="${LDFLAGS_save}"
2510   fi
2514 AC_ARG_ENABLE(merge-ffmpeg,
2515 [  --enable-merge-ffmpeg   merge FFmpeg-based plugins (default disabled)],, [
2516   enable_merge_ffmpeg="no"
2518 AM_CONDITIONAL([MERGE_FFMPEG], [test "$enable_merge_ffmpeg" != "no"])
2520 AC_CACHE_CHECK([if linker supports -Bsymbolic],
2521   [ac_cv_ld_bsymbolic],
2522   [LDFLAGS="${LDFLAGS_vlc} -Wl,-Bsymbolic"
2523     AC_TRY_LINK([],,ac_cv_ld_bsymbolic=yes,ac_cv_ld_bsymbolic=no)
2524     LDFLAGS="${LDFLAGS_save}"
2525   ])
2528 dnl  avcodec decoder/encoder plugin
2530 AC_ARG_ENABLE(avcodec,
2531 [  --enable-avcodec        libavcodec codec (default enabled)])
2532 AS_IF([test "${enable_avcodec}" != "no"], [
2533   PKG_CHECK_MODULES(AVCODEC,[libavcodec >= 52.25.0 libavutil],
2534     [
2535       VLC_SAVE_FLAGS
2536       CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2537       CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2538       AC_CHECK_HEADERS(libavcodec/avcodec.h ffmpeg/avcodec.h)
2539       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
2540       VLC_ADD_PLUGIN([avcodec])
2541       VLC_ADD_LIBS([avcodec],[$AVCODEC_LIBS])
2542       AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2543         VLC_ADD_LDFLAGS([avcodec],[-Wl,-Bsymbolic])
2544       ])
2545       VLC_ADD_CFLAGS([avcodec],[$AVCODEC_CFLAGS])
2546       VLC_RESTORE_FLAGS
2547       have_avcodec="yes"
2548     ],[
2549       AC_MSG_ERROR([Could not find libavcodec or libavutil. Use --disable-avcodec to ignore this error.])
2550   ])
2551 ], [
2552   have_avcodec="no"
2556 dnl libva needs avcodec
2558 AC_ARG_ENABLE(libva,
2559   [  --enable-libva          libva VAAPI support (default auto)])
2561 AS_IF([test "${enable_libva}" != "no"], [
2562   AS_IF([test "x${have_avcodec}" = "xyes"], [
2563     PKG_CHECK_MODULES(LIBVA, [libva libva-x11],
2564       [
2565         VLC_SAVE_FLAGS
2566         CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2567         CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2568         AC_CHECK_HEADERS(libavcodec/vaapi.h, [
2569            VLC_ADD_LIBS([avcodec],[$LIBVA_LIBS ${X_LIBS} ${X_PRE_LIBS} -lX11])
2570            VLC_ADD_CFLAGS([avcodec],[$LIBVA_CFLAGS ${X_CFLAGS}])
2571            AC_DEFINE(HAVE_AVCODEC_VAAPI, 1, [Define if avcodec has to be built with VAAPI support.])
2572            echo "VAAPI acceleration activated"
2573         ],[
2574         AS_IF([test "${enable_libva}" == "yes"],
2575               [AC_MSG_ERROR([libva is present but libavcodec/vaapi.h is missing])],
2576               [AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing ])])
2577         ])
2578         VLC_RESTORE_FLAGS
2579       ],[
2580         AS_IF([test "${enable_libva}" == "yes"],
2581               [AC_MSG_ERROR([Could not find required libva.])],
2582               [AC_MSG_WARN([libva not found  ])])
2583       ])
2584   ],[
2585     AS_IF([test "x${enable_libva}" != "x"], [
2586       AC_MSG_ERROR([--enable-libva and --disable-avcodec options are mutually exclusive.])
2587     ])
2588   ])
2592 dnl dxva2 needs avcodec
2594 AC_ARG_ENABLE(dxva2,
2595   [  --enable-dxva2          DxVA2  support (default auto)])
2597 AS_IF([test "${enable_dxva2}" != "no"], [
2598   if test "${SYS}" = "mingw32"; then
2599   AS_IF([test "x${have_avcodec}" = "xyes"], [
2600     AC_CHECK_HEADERS(dxva2api.h, 
2601       [
2602         AC_CHECK_HEADERS(libavcodec/dxva2.h, [
2603            VLC_ADD_LIBS([avcodec],[-lole32 -lshlwapi -luuid])
2604            AC_DEFINE(HAVE_AVCODEC_DXVA2, 1, [Define if avcodec has to be built with DxVA2 support.])
2605            echo "DxVA2 acceleration activated"
2606         ],[
2607         AS_IF([test "${enable_dxva2}" == "yes"],
2608               [AC_MSG_ERROR([dxva2 is present but libavcodec/dxva2.h is missing])],
2609               [AC_MSG_WARN([dxva2 is present but libavcodec/dxva2.h is missing ])])
2610         ])
2611       ],[
2612         AS_IF([test "${enable_dxva2}" == "yes"],
2613               [AC_MSG_ERROR([Could not find required dxva2api.h])],
2614               [AC_MSG_WARN([dxva2api.h not found])])
2615       ])
2616   ],[
2617     AS_IF([test "x${enable_dxva2}" != "x"], [
2618       AC_MSG_ERROR([--enable-dxva2 and --disable-avcodec options are mutually exclusive.])
2619     ])
2620   ])
2621   fi
2626 dnl stream_out switcher needs libavcodec
2628 AC_ARG_ENABLE(switcher,
2629   [  --enable-switcher       Stream-out switcher plugin (default disabled)])
2630 AS_IF([test "${enable_switcher}" = "yes"], [
2631   AS_IF([test "x${have_avcodec}" = "xyes"], [
2632     VLC_ADD_PLUGIN([stream_out_switcher])
2633     VLC_ADD_LIBS([stream_out_switcher],[$AVCODEC_LIBS $AVUTIL_LIBS])
2634     VLC_ADD_CFLAGS([stream_out_switcher],[$AVCODEC_CFLAGS $AVUTIL_CFLAGS])
2635   ],[AC_MSG_ERROR([Stream_out switcher depends on avcodec])
2636   ])
2641 dnl  avformat demuxer/muxer plugin
2644 AC_ARG_ENABLE(avformat,
2645 [  --enable-avformat       libavformat containers (default enabled)],, [
2646   enable_avformat="${have_avcodec}"
2648 if test "${enable_avformat}" != "no"
2649 then
2650   PKG_CHECK_MODULES(AVFORMAT,[libavformat > 52.30.0 libavcodec libavutil],
2651     [
2652       VLC_SAVE_FLAGS
2653       CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2654       CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2655       AC_CHECK_HEADERS(libavformat/avformat.h ffmpeg/avformat.h)
2656       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
2657       AS_IF([test "$enable_merge_ffmpeg" = "no"], [
2658         VLC_ADD_PLUGIN([avformat access_avio])
2659         VLC_ADD_LIBS([avformat access_avio],[$AVFORMAT_LIBS $AVUTIL_LIBS])
2660         VLC_ADD_CFLAGS([avformat access_avio],[$AVFORMAT_CFLAGS $AVUTIL_CFLAGS])
2661         AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2662           VLC_ADD_LDFLAGS([avformat access_avio],[-Wl,-Bsymbolic])
2663         ])
2664       ], [
2665         VLC_ADD_LIBS([avcodec],[$AVFORMAT_LIBS $AVUTIL_LIBS])
2666         VLC_ADD_CFLAGS([avcodec],[$AVFORMAT_CFLAGS $AVUTIL_CFLAGS])
2667       ])
2668       VLC_RESTORE_FLAGS
2669     ],[
2670       AC_MSG_ERROR([Could not find libavformat or libavutil. Use --disable-avformat to ignore this error.])
2671   ])
2675 dnl  swscale image scaling and conversion plugin
2678 AC_ARG_ENABLE(swscale,
2679   AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
2680                   (default enabled)]))
2681 if test "${enable_swscale}" != "no"
2682 then
2683   PKG_CHECK_MODULES(SWSCALE,[libswscale],
2684     [
2685       VLC_SAVE_FLAGS
2686       CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
2687       CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
2688       AC_CHECK_HEADERS(libswscale/swscale.h ffmpeg/swscale.h)
2689       VLC_ADD_PLUGIN([swscale])
2690       VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
2691       VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
2692       AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2693         VLC_ADD_LDFLAGS([swscale],[-Wl,-Bsymbolic])
2694       ])
2695       VLC_RESTORE_FLAGS
2696     ],[
2697       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.])
2698   ])
2702 dnl  postproc plugin
2705 AC_ARG_ENABLE(postproc,
2706 [  --enable-postproc       libpostproc image post-processing (default enabled)])
2707 if test "${enable_postproc}" != "no"
2708 then
2709   PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
2710     [
2711       VLC_SAVE_FLAGS
2712       CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
2713       CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
2714       AC_CHECK_HEADERS(postproc/postprocess.h)
2715       VLC_ADD_PLUGIN([postproc])
2716       VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS $AVUTIL_LIBS])
2717       VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS $AVUTIL_CFLAGS])
2718       VLC_RESTORE_FLAGS
2719     ],[
2720       AC_MSG_ERROR([Could not find libpostproc. Use --disable-postproc to ignore this error.])
2721   ])
2725 dnl  faad decoder plugin
2727 AC_ARG_ENABLE(faad,
2728 [  --enable-faad           faad codec (default disabled)])
2729 if test "${enable_faad}" = "yes"
2730 then
2731   AC_ARG_WITH(faad-tree,
2732   [  --with-faad-tree=PATH   faad tree for static linking])
2733   if test -n "${with_faad_tree}"
2734   then
2735     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
2736     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
2737     if test -z "${real_faad_tree}"
2738     then
2739       dnl  The given directory can't be found
2740       AC_MSG_RESULT(no)
2741       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
2742     fi
2743     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
2744     then
2745       dnl  Use a custom faad
2746       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
2747       VLC_ADD_PLUGIN([faad])
2748       VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
2749       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
2750     else
2751       dnl  The given libfaad wasn't built
2752       AC_MSG_RESULT(no)
2753       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
2754     fi
2755   else
2756     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
2757     LDFLAGS="${LDFLAGS_save} ${LIBS_faad}"
2758     AC_CHECK_HEADERS(faad.h, ,
2759       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
2760     AC_CHECK_LIB(faad, faacDecOpen, [
2761       VLC_ADD_PLUGIN([faad])
2762       VLC_ADD_LIBS([faad],[-lfaad]) ],
2763       AC_CHECK_LIB(faad, NeAACDecOpen, [
2764         VLC_ADD_PLUGIN([faad])
2765         VLC_ADD_LIBS([faad],[-lfaad]) ],
2766         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
2767     LDFLAGS="${LDFLAGS_save}"
2768     CPPFLAGS="${CPPFLAGS_save}"
2769   fi
2773 dnl twolame encoder plugin
2775 PKG_ENABLE_MODULES_VLC([TWOLAME], [], [twolame], [MPEG Audio Layer 2 encoder], [auto], [], [], [ -DLIBTWOLAME_STATIC])
2778 dnl  QuickTime plugin
2780 AC_ARG_ENABLE(quicktime,
2781   [  --enable-quicktime      QuickTime module (deprecated)])
2782 if test "${enable_quicktime}" = "yes"; then
2783   if test "${SYS}" = "mingw32"; then
2784     VLC_ADD_PLUGIN([quicktime])
2785   else
2786   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
2787     [ VLC_ADD_PLUGIN([quicktime])
2788       VLC_ADD_LDFLAGS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
2789     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
2790   fi
2794 dnl  Real plugin
2796 AC_ARG_ENABLE(real,
2797   [  --enable-real           Real media module (default disabled)])
2798 if test "${enable_real}" = "yes"; then
2799   VLC_ADD_PLUGIN([realvideo])
2803 dnl  Real RTSP plugin
2805 AC_ARG_ENABLE(realrtsp,
2806   [  --enable-realrtsp       Real RTSP module (default disabled)])
2807 if test "${enable_realrtsp}" = "yes"; then
2808   VLC_ADD_PLUGIN([access_realrtsp])
2812 dnl skins2 module
2814 AC_ARG_ENABLE(libtar,
2815   [  --enable-libtar         libtar support for skins2 (default enabled)])
2817 AS_IF([test "${enable_libtar}" != "no"],[
2818   AC_CHECK_HEADERS(libtar.h, [
2819     VLC_ADD_LIBS([skins2],[-ltar])
2820   ] )
2824 dnl A52/AC3 decoder plugin
2826 AC_ARG_ENABLE(a52,
2827   [  --enable-a52            A/52 support with liba52 (default enabled)])
2828 if test "${enable_a52}" != "no"
2829 then
2830   AC_ARG_WITH(a52,
2831     [  --with-a52=PATH         a52 headers and libraries])
2832   AC_ARG_WITH(a52-tree,
2833     [  --with-a52-tree=PATH    a52dec tree for static linking ],[],[])
2834   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
2835   then
2836     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
2837     if test -z "${real_a52_tree}"
2838     then
2839       dnl  The given directory can't be found
2840       AC_MSG_RESULT(no)
2841       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
2842     fi
2843     dnl  Use a custom a52dec
2844     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
2845     if test -f ${real_a52_tree}/include/a52.h
2846     then
2847       AC_MSG_RESULT(yes)
2848       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
2849       VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
2850       LDFLAGS="${LDFLAGS_save} ${LIBS_a52tofloat32}"
2851       AC_CHECK_LIB(a52, a52_free, [
2852         VLC_ADD_PLUGIN([a52tofloat32])
2853         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
2854         VLC_ADD_LIBS([a52tofloat32],[-la52])
2855         ],[
2856         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
2857         then
2858           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
2859         else
2860           AC_MSG_ERROR([the specified tree hasn't been compiled])
2861         fi
2862       ])
2863       LDFLAGS="${LDFLAGS_save}"
2864     else
2865       AC_MSG_RESULT(no)
2866       AC_MSG_ERROR([the specified tree doesn't have a52.h])
2867     fi
2868   else
2869     if test -z "${with_a52}"
2870     then
2871       LDFLAGS_test=""
2872       CPPFLAGS_test=""
2873     else
2874       LDFLAGS_test="-L${with_a52}/lib"
2875       CPPFLAGS_test="-I${with_a52}/include"
2876     fi
2877     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
2878     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
2879     AC_CHECK_HEADERS(a52dec/a52.h, [
2880       AC_CHECK_LIB(a52, a52_free, [
2881         VLC_ADD_PLUGIN([a52tofloat32])
2882         VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
2883         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
2884       ],[
2885         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.])
2886         ])
2887     ],[
2888       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.])
2889     ])
2890     CPPFLAGS="${CPPFLAGS_save}"
2891     LDFLAGS="${LDFLAGS_save}"
2892   fi
2895 AC_ARG_WITH(a52-fixed,
2896       [  --with-a52-fixed        specify if liba52 has been compiled with fixed point support],
2897       [
2898         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
2901 dnl DTS Coherent Acoustics decoder plugin
2903 PKG_ENABLE_MODULES_VLC([DCA], [dtstofloat32], [libdca >= 0.0.5], [DTS Coherent Acoustics support with libdca], [auto])
2906 dnl  Flac plugin
2908 PKG_ENABLE_MODULES_VLC([FLAC], [], [flac], [libflac decoder/encoder support], [auto])
2911 dnl  Libmpeg2 plugin
2913 PKG_ENABLE_MODULES_VLC([LIBMPEG2], [], [libmpeg2 > 0.3.2], [libmpeg2 decoder support], [auto])
2916 dnl  Vorbis plugin
2918 PKG_ENABLE_MODULES_VLC([VORBIS], [], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
2921 dnl  Tremor plugin
2923 AC_ARG_ENABLE(tremor,
2924   [  --enable-tremor         Tremor decoder support (default disabled)])
2925 if test "${enable_tremor}" = "yes"
2926 then
2927   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
2928     VLC_ADD_PLUGIN([tremor])
2929     VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
2930    ],[])
2934 dnl  Speex plugin
2936 PKG_ENABLE_MODULES_VLC([SPEEX], [], [ogg speex >= 1.0.5], [Speex decoder support], [auto])
2939 dnl  theora decoder plugin
2941 PKG_ENABLE_MODULES_VLC([THEORA], [], [ogg theora >= 1.0], [experimental theora codec], [auto])
2944 dnl  dirac encoder plugin
2946 PKG_ENABLE_MODULES_VLC([DIRAC], [], [dirac >= 0.10.0], [dirac encoder], [auto])
2949 dnl  schroedinger decoder plugin (for dirac format video)
2951 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [], [schroedinger-1.0 >= 1.0.6], [dirac decoder using schroedinger], [auto])
2954 dnl  PNG decoder module
2956 AC_ARG_ENABLE(png,
2957   [  --enable-png            PNG support (default enabled)])
2958 if test "${enable_png}" != "no"; then
2959 AC_CHECK_HEADERS(png.h, [
2960   LDFLAGS="${LDFLAGS_save} -lz"
2961   AC_CHECK_LIB(png, png_set_rows, [
2962     VLC_ADD_LIBS([png],[-lpng -lz])
2963     VLC_ADD_PLUGIN([png osdmenu osd_parser])],
2964     [],[-lz])
2965     LDFLAGS="${LDFLAGS_save}"
2966   ])
2968 AM_CONDITIONAL(BUILD_OSDMENU, [test "${enable_png}" != "no"])
2971 dnl H264 encoder plugin (using libx264)
2973 AC_ARG_ENABLE(x264,
2974   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
2975 if test "${enable_x264}" != "no"; then
2976   AC_ARG_WITH(x264-tree,
2977     [  --with-x264-tree=PATH   x264 tree for static linking ],[],[])
2978   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
2979   then
2980     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
2981     if test -z "${real_x264_tree}"
2982     then
2983       dnl  The given directory can't be found
2984       AC_MSG_RESULT(no)
2985       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
2986     fi
2987     dnl  Use a custom libx264
2988     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
2989     if test -f ${real_x264_tree}/x264.h
2990     then
2991       AC_MSG_RESULT(yes)
2992       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
2993       VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
2994       PKG_CHECK_MODULES(X264,x264, [
2995         VLC_ADD_PLUGIN([x264])
2996         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
2997         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
2998         if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
2999           VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3000         fi
3001       ],[
3002         AC_MSG_ERROR([the specified tree hasn't been compiled])
3003       ])
3004       LDFLAGS="${LDFLAGS_save}"
3005     else
3006       AC_MSG_RESULT(no)
3007       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3008     fi
3009   else
3010       PKG_CHECK_MODULES(X264,x264 >= 0.86, [
3011         VLC_ADD_PLUGIN([x264])
3012         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3014         AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
3015           VLC_ADD_LDFLAGS([x264],[-Wl,-Bsymbolic])
3016         ])
3018         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3019         if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3020           VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3021         fi
3022       ],[
3023         if test "${enable_x264}" = "yes"; then
3024             AC_MSG_ERROR([Could not find libx264 >= 0.86 on your system: you may get it from http://www.videolan.org/x264.html])
3025           fi
3026       ])
3027     LDFLAGS="${LDFLAGS_save}"
3028   fi
3032 dnl libfluidsynth (MIDI synthetizer) plugin
3034 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [], [fluidsynth], [MIDI synthetiser with libfluidsynth], [auto])
3037 dnl Teletext Modules
3038 dnl vbi decoder plugin (using libzbvi)
3039 dnl telx module
3040 dnl uncompatible
3042 AC_ARG_ENABLE(zvbi,
3043   AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
3044                   libzvbi (default enabled)]))
3045 AC_ARG_ENABLE(telx,
3046   AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
3047                   zvbi) (default enabled if zvbi is absent)]))
3049 AS_IF( [test "${enable_zvbi}" != "no"],[
3050     PKG_CHECK_MODULES(ZVBI,
3051         zvbi-0.2 >= 0.2.28,
3052         [
3053           VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
3054           if test "${SYS}" = "mingw32"; then
3055               VLC_ADD_LIBS([zvbi],[ -lpthreadGC2])
3056           fi
3057           VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
3058           VLC_ADD_PLUGIN([zvbi])
3059           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
3060           AS_IF( [test "${enable_telx}" = "yes"],[
3061                   AC_MSG_WARN([The zvbi and telx modules are uncompatibles.
3062                                Using zvbi.])
3063                   ])
3064         ],[
3065           AC_MSG_WARN(ZVBI library not found. Enabling the telx module instead)
3066         ])
3067     ])
3068 AS_IF( [test "${enable_telx}" != "no" ],[
3069   VLC_ADD_PLUGIN([telx])
3070   ])
3073 dnl libass subtitle rendering module
3075 AC_ARG_ENABLE(libass,
3076   [  --enable-libass         Subtitle support using libass (default enabled)])
3077 AS_IF( [test "${enable_libass}" != "no"], [
3078   PKG_CHECK_MODULES(LIBASS, libass >= 0.9.6,
3079       [
3080         VLC_ADD_LIBS([libass],[$LIBASS_LIBS])
3081         VLC_ADD_CFLAGS([libass],[$LIBASS_CFLAGS])
3082         VLC_ADD_PLUGIN([libass])
3084         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
3085           [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
3086            VLC_ADD_LIBS([libass],[-lfontconfig])
3087        ])
3088       ],[
3089         AC_MSG_WARN([LIBASS library not found])
3090       ])
3091   ])
3094 dnl  kate decoder plugin
3096 AC_ARG_ENABLE(kate,
3097 [  --enable-kate           kate codec (default enabled)])
3098 AS_IF([test "${enable_kate}" != "no"], [
3099   PKG_CHECK_MODULES(KATE,[kate >= 0.1.5], [
3100       VLC_ADD_PLUGIN([kate])
3101       VLC_ADD_CFLAGS([kate],[$KATE_CFLAGS])
3102       VLC_ADD_LIBS([kate],[$KATE_LIBS]) ],[
3103         AC_CHECK_HEADERS(kate/kate.h, [
3104           AC_CHECK_LIB(kate, kate_decode_init, [
3105             VLC_ADD_PLUGIN([kate])
3106             kate_libs="-lkate -logg"
3107             VLC_ADD_LDFLAGS([kate],[${kate_libs}]) ],[
3108             AS_IF([test "x${enable_kate}" != "x"], [
3109               AC_MSG_ERROR([libkate doesn't appear to be installed on your system.
3110               You also need to check that you have a libogg posterior to the 1.0 release.])
3111             ])
3112           ], [-lkate -logg])
3113         ],[
3114           AS_IF([test "x${enable_kate}" != "x"], [
3115             AC_MSG_ERROR([libkate headers do not appear to be installed on your system.
3116             You also need to check that you have a libogg posterior to the 1.0 release.])
3117           ])
3118         ])
3119   ])
3124 dnl  tiger rendering for kate decoder plugin
3126 AC_ARG_ENABLE(tiger,
3127 [  --enable-tiger          Tiger rendering library for Kate streams (default enabled)])
3128 AS_IF([test "${enable_tiger}" != "no"], [
3129   PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
3130       AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])
3131       VLC_ADD_CFLAGS([kate],[$TIGER_CFLAGS])
3132       VLC_ADD_LIBS([kate],[$TIGER_LIBS]) ],[
3133         AS_IF([test "x${enable_tiger}" != "x"], [
3134           AC_MSG_ERROR([libtiger does not appear to be installed on your system.])
3135         ])
3136   ])
3142 dnl  Video plugins
3145 EXTEND_HELP_STRING([Video plugins:])
3148 dnl  Xlib
3151 AC_PATH_XTRA()
3152 AC_CHECK_HEADERS(X11/Xlib.h)
3155 dnl  X C Bindings modules
3157 AC_ARG_ENABLE(xcb,
3158   [  --enable-xcb            X11 support with XCB (default enabled)],, [
3159   AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "darwin"], [
3160     enable_xcb="yes"
3161   ], [
3162     enable_xcb="no"
3163   ])
3165 AC_ARG_ENABLE(xvideo,
3166   [  --enable-xvideo         XVideo support (default enabled)],, [
3167     enable_xvideo="$enable_xcb"
3170 need_xid_provider="no"
3171 AS_IF([test "${enable_xcb}" != "no"], [
3172   dnl libxcb
3173   PKG_CHECK_MODULES(XCB, [xcb])
3174   PKG_CHECK_MODULES(XCB_SHM, [xcb-shm])
3175   VLC_ADD_PLUGIN([screensaver xcb_x11 xcb_window xcb_screen xcb_apps])
3177   AS_IF([test "${enable_xvideo}" != "no"], [
3178     PKG_CHECK_MODULES(XCB_XV, [xcb-xv >= 1.1.90.1], [
3179       VLC_ADD_PLUGIN([xcb_xv])
3180     ], [
3181       PKG_CHECK_MODULES(XCB_XV, [xcb-xv], [
3182         VLC_ADD_PLUGIN([xcb_xv])
3183         VLC_ADD_CFLAGS([xcb_xv], [-DXCB_XV_OLD])
3184       ])
3185     ])
3186   ])
3188   PKG_CHECK_MODULES(XCB_RANDR, [xcb-randr >= 1.3], [
3189     VLC_ADD_PLUGIN([panoramix])
3190     VLC_ADD_LIBS([panoramix],[${XCB_RANDR_LIBS} ${XCB_LIBS}])
3191     VLC_ADD_CFLAGS([panoramix],[${XCB_RANDR_CFLAGS} ${XCB_CFLAGS}])
3192   ], [
3193     AC_MSG_WARN([libxcb-randr not found. Panoramix filter will not be supported.])
3194   ])
3196   dnl xcb-utils
3197   PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms >= 0.3.4], [
3198     have_xcb_keysyms="yes"
3199   ], [
3200     PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms], [
3201       have_xcb_keysyms="yes"
3202       VLC_ADD_CFLAGS([globalhotkeys], [-DXCB_KEYSYM_OLD_API])
3203     ], [
3204       have_xcb_keysyms="no"
3205       need_xid_provider="yes"
3206       AC_MSG_WARN([libxcb-keysyms not found. Hotkeys will not be supported.])
3207     ])
3208   ])
3210   AS_IF([test "${have_xcb_keysyms}" = "yes"], [
3211     PKG_CHECK_MODULES(XPROTO, [xproto])
3212     VLC_ADD_PLUGIN([globalhotkeys])
3213     VLC_ADD_CFLAGS([globalhotkeys], [${XCB_KEYSYMS_CFLAGS} ${XCB_CFLAGS}])
3214     VLC_ADD_LIBS([globalhotkeys], [${XCB_KEYSYMS_LIBS} ${XCB_LIBS}])
3215     VLC_ADD_CFLAGS([xcb_window], [-DHAVE_XCB_KEYSYMS])
3216   ])
3217   VLC_ADD_PLUGIN([xdg_screensaver])
3220 AC_ARG_ENABLE(glx,
3221   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)],, [
3222   enable_glx="$enable_xcb"
3224 AS_IF([test "${enable_glx}" != "no"], [
3225   PKG_CHECK_MODULES(XLIB_XCB, [x11-xcb])
3226   PKG_CHECK_MODULES(GL, [gl],, [
3227     AC_CHECK_HEADER([GL/gl.h], [
3228       GL_CFLAGS=""
3229       GL_LIBS="-lGL"
3230     ], [
3231       AC_MSG_ERROR([GLX (libGL) cannot be found. If you do not need OpenGL with X11, use --disable-glx.])
3232     ])
3233   ])
3234   VLC_ADD_PLUGIN([xcb_glx])
3236 AC_SUBST([GL_CFLAGS])
3237 AC_SUBST([GL_LIBS])
3240 dnl  SDL module
3242 AC_ARG_ENABLE(sdl,
3243   [  --enable-sdl            SDL support (default enabled)])
3244 AC_ARG_ENABLE(sdl-image,
3245   [  --enable-sdl-image      SDL image support (default enabled)])
3246 if test "${enable_sdl}" != "no"
3247 then
3248    PKG_CHECK_MODULES(SDL, [sdl >= 1.2.10], [
3249       # SDL on Darwin is heavily patched and can only run SDL_image
3250       if test "${SYS}" != "darwin"; then
3251         VLC_ADD_PLUGIN([vout_sdl aout_sdl])
3252       fi
3253       if test "${SYS}" != "mingw32"; then
3254         VLC_ADD_LIBS([vout_sdl],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3255       fi
3256       VLC_ADD_CFLAGS([vout_sdl aout_sdl],[${SDL_CFLAGS}])
3257       VLC_ADD_LIBS([vout_sdl aout_sdl],[${SDL_LIBS}])
3259       # SDL_image
3260       AS_IF([ test "${enable_sdl_image}" != "no"],[
3261         PKG_CHECK_MODULES(SDL_IMAGE, [SDL_image >= 1.2.10], [
3262           VLC_ADD_PLUGIN([sdl_image])
3263           VLC_ADD_LIBS([sdl_image],[${SDL_IMAGE_LIBS}])
3264           VLC_ADD_CFLAGS([sdl_image], [${SDL_IMAGE_CFLAGS}])],
3265           [ AC_MSG_WARN([The development package for SDL_image is not installed.
3266     You should install it alongside your SDL package.])
3267           ])
3268       ])
3269    ],[
3270      AC_MSG_WARN([The development package for SDL is not present or too old.
3271                   You need 1.2.10. Alternatively you can also configure with
3272                   --disable-sdl.])
3273    ])
3277 dnl  freetype module
3279 AC_ARG_ENABLE(freetype,
3280   [  --enable-freetype       freetype support (default enabled)])
3281 AC_ARG_ENABLE(fribidi,
3282   [  --enable-fribidi        fribidi support (default enabled)])
3283 AC_ARG_ENABLE(fontconfig,
3284   [  --enable-fontconfig     fontconfig support (default enabled)])
3285 if test "${enable_freetype}" != "no"
3286 then
3287    PKG_CHECK_MODULES(FREETYPE, freetype2,[
3288       VLC_ADD_PLUGIN([freetype])
3289       have_freetype=yes
3290       VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
3291       if test "${SYS}" = "mingw32"; then
3292         VLC_ADD_LIBS([freetype],[-liconv -lz])
3293       fi
3294       VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
3295       if test "${enable_fontconfig}" != "no"
3296       then
3297         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
3298           [VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
3299            VLC_ADD_LIBS([freetype],[-lfontconfig])])
3300         AC_CHECK_HEADERS(Carbon/Carbon.h,
3301           [VLC_ADD_LDFLAGS([freetype],[-Wl,-framework,Carbon])])
3302       fi
3304      dnl fribidi support
3305       if test "${enable_fribidi}" != "no"
3306       then
3307         PKG_CHECK_MODULES(FRIBIDI, fribidi, [
3308           VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
3309           VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
3310         ])
3311       fi
3313   ],[
3314   have_freetype=no
3315   AS_IF([ test "${enable_freetype}" =  "yes"],[
3316     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
3317 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
3318       ])
3319     ])
3320   ])
3325 dnl  libxml2 module
3327 PKG_ENABLE_MODULES_VLC([LIBXML2], [xml], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
3330 dnl  SVG module
3332 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3335 dnl Snapshot vout module (with cache)
3337 AC_ARG_ENABLE(snapshot,
3338   [  --enable-snapshot       snapshot module (default disabled)])
3339 if test "${enable_snapshot}" = "yes"
3340 then
3341   VLC_ADD_PLUGIN([snapshot])
3345 dnl  Windows DirectX module
3348 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"
3349 then
3350   VLC_ADD_PLUGIN([panoramix])
3353 AC_ARG_ENABLE(directx,
3354   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
3355 if test "${enable_directx}" != "no"
3356 then
3357   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"
3358   then
3359       AC_CHECK_HEADERS(ddraw.h,
3360       [ VLC_ADD_PLUGIN([directx aout_directx])
3361         VLC_ADD_LIBS([directx],[-lgdi32])
3362       ],[AC_MSG_ERROR([Cannot find DirectX headers!])]
3363       )
3364       AC_CHECK_HEADERS(GL/gl.h,
3365       [ VLC_ADD_PLUGIN([glwin32])
3366         VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
3367       ])
3368       AC_CHECK_HEADERS(d3d9.h,
3369       [ VLC_ADD_PLUGIN([direct3d])
3370         VLC_ADD_LIBS([direct3d],[-lgdi32])
3371       ])
3372       VLC_ADD_LIBS([direct3d directx glwin32],[-lole32])
3373   fi
3377 dnl  Windows Direct2D plugin
3379 AC_ARG_ENABLE(direct2d,
3380   [  --enable-direct2d         Win7/VistaPU Direct2D support (default auto on Win32)])
3381 if test "${enable_direct2d}" != "no"; then
3382   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"
3383   then
3384     AC_CHECK_HEADERS(d2d1.h,
3385       [
3386         VLC_ADD_PLUGIN([direct2d])
3387         VLC_ADD_LIBS([direct2d],[-lgdi32 -lole32])
3388       ], [AC_MSG_WARN([Cannot find Direct2D headers!])]
3389     )
3390   fi
3394 dnl  win32 GDI plugin
3396 AC_ARG_ENABLE(wingdi,
3397   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
3398 if test "${enable_wingdi}" != "no"; then
3399   if test "${SYS}" = "mingw32"; then
3400     VLC_ADD_PLUGIN([wingdi])
3401     VLC_ADD_LIBS([wingdi],[-lgdi32 -lole32])
3402   fi
3403   if test "${SYS}" = "mingwce"; then
3404     VLC_ADD_PLUGIN([wingdi wingapi])
3405     VLC_ADD_LIBS([wingdi],[-laygshell])
3406     VLC_ADD_LIBS([wingapi],[-laygshell])
3407   fi
3412 dnl  Linux framebuffer module
3414 AC_ARG_ENABLE(fb,
3415   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
3416     if test "${enable_fb}" != "no"
3417     then
3418       AC_CHECK_HEADERS(linux/fb.h, [
3419         VLC_ADD_PLUGIN([fb])
3420       ])
3421     fi
3424 dnl  DirectFB module
3425 dnl  try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
3426 dnl  TODO: support for static linking
3428 AC_ARG_ENABLE(directfb,
3429   [  --enable-directfb       DirectFB support (default disabled)])
3430 AC_ARG_WITH(directfb,
3431   [  --with-directfb=PATH    path to DirectFB headers and libraries])
3433 if test "${enable_directfb}" = "yes"; then
3434     have_directfb="false"
3435     CPPFLAGS_mydirectfb=
3436     LIBS_mydirectfb=
3437     if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
3438         dnl Trying the given location
3439         CPPFLAGS_save="${CPPFLAGS}"
3440         LIBS_save="${LIBS}"
3442         CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
3443         LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/"
3444         LIBS_new="${LIBS_new} -L${with_directfb}/src/.libs/"
3446         CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
3447         LIBS="${LIBS} ${LIBS_new}"
3449         dnl FIXME: too obscure
3450         AC_CHECK_HEADER([directfb.h], [
3451             AC_CHECK_LIB([direct],[direct_initialize], [
3452                 AC_CHECK_LIB([fusion], [fusion_enter], [
3453                     AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
3454                 ], have_directfb="false")
3455             ], have_directfb="false")
3456         ], have_directfb="false")
3458         dnl Restore flags
3459         CPPFLAGS="${CPPFLAGS_save}"
3460         LIBS="${LIBS_save}"
3462         if test "${have_directfb}" = "true"; then
3463             LIBS_mydirectfb="${LIBS_new} -lz $LIBDL -ldirectfb -lfusion -ldirect -lpthread"
3464             CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
3465         fi
3466     else
3467         dnl Look for directfb-config
3468         AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
3469         if test "${DIRECTFB_CONFIG}" != "no"; then
3470             CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
3471             LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
3472             have_directfb="true"
3473         else
3474             dnl Trying with pkg-config
3475             PKG_CHECK_MODULES(DIRECTFB, directfb, [
3476                 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
3477                 LIBS_mydirectfb="${DIRECTFB_LIBS}"
3478                 have_directfb="true"
3479                 ], [have_directfb="false"])
3480         fi
3481     fi
3482     if test "${have_directfb}" = "true"; then
3483         VLC_ADD_PLUGIN([directfb])
3484         VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
3485         VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
3486     else
3487         AC_MSG_ERROR([cannot find directfb headers and/or libraries ])
3488     fi
3492 dnl  AA plugin
3494 AC_ARG_ENABLE(aa,
3495   [  --enable-aa             aalib output (default disabled)])
3496 if test "${enable_aa}" = "yes"
3497 then
3498   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
3499   if test "${have_aa}" = "true"
3500   then
3501     VLC_ADD_PLUGIN([aa])
3502     VLC_ADD_LIBS([aa],[-laa])
3503     if test "${SYS}" != "mingw32"; then
3504       VLC_ADD_LIBS([aa],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3505     fi
3506   fi
3510 dnl  libcaca plugin
3512 PKG_ENABLE_MODULES_VLC([CACA], [], [caca >= 0.99.beta14], [libcaca output],[auto])
3515 dnl  Audio plugins
3518 EXTEND_HELP_STRING([Audio plugins:])
3521 dnl  OSS /dev/dsp module (enabled by default except on win32)
3523 AC_ARG_ENABLE(oss,
3524   [  --enable-oss            Open Sound System OSS support (default enabled)])
3526 if test "${enable_oss}" != "no" &&
3527   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3528    test "${enable_oss}" = "yes")
3529 then
3530   AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
3531     VLC_ADD_PLUGIN([oss access_oss])
3532     AC_CHECK_LIB(ossaudio,main,[VLC_ADD_LIBS([oss access_oss],[-lossaudio])])
3533   ])
3537 dnl  Pulseaudio module
3539 AS_IF([test "${no_x}" = "yes"], [
3540   AS_IF([test "${enable_pulse}" = "yes"], [
3541     AC_MSG_ERROR([Xlib is required for VLC PulseAudio support
3542 (see http://www.pulseaudio.org/ticket/799 for further reference).])
3543   ])
3544 ], [
3545   PKG_ENABLE_MODULES_VLC([PULSE], [], [libpulse >= 0.9.11], [Pulseaudio support], [auto])
3546   VLC_ADD_LIBS([pulse], [${X_LIBS} ${X_PRE_LIBS} -lX11])
3550 dnl  Portaudio module
3552 PKG_ENABLE_MODULES_VLC([PORTAUDIO], [], [portaudio-2.0], [Portaudio library support], [auto])
3555 dnl  ALSA module
3557 AC_ARG_ENABLE(alsa,
3558   [  --enable-alsa           Advanced Linux Sound Architecture (default auto)])
3559 have_alsa="no"
3560 AS_IF([test "${enable_alsa}" != "no"], [
3561   PKG_CHECK_MODULES([ALSA], [alsa >= 1.0.0], [
3562     have_alsa="yes"
3563   ], [
3564     AS_IF([test "x${enable_alsa}" != "x"], [
3565       AC_MSG_ERROR([alsa-lib not found])
3566     ])
3567   ])
3569 AM_CONDITIONAL([HAVE_ALSA], [test "${have_alsa}" = "yes"])
3572 dnl  win32 waveOut plugin
3574 AC_ARG_ENABLE(waveout,
3575   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
3576 if test "${enable_waveout}" != "no"; then
3577   if test "${SYS}" = "mingw32"; then
3578     VLC_ADD_PLUGIN([waveout])
3579     VLC_ADD_LIBS([waveout],[-lwinmm])
3580   fi
3581   if test "${SYS}" = "mingwce"; then
3582     VLC_ADD_PLUGIN([waveout])
3583   fi
3587 dnl  CoreAudio plugin
3589 AC_ARG_ENABLE(macosx-audio,
3590   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
3591 if test "x${enable_macosx_audio}" != "xno" &&
3592   (test "${SYS}" = "darwin" || test "${enable_macosx_audio}" = "yes")
3593 then
3594   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h,
3595     [ VLC_ADD_PLUGIN([auhal])
3596       VLC_ADD_LDFLAGS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
3597     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
3601 dnl  AudioQueue plugin
3603 AC_ARG_ENABLE(audioqueue,
3604   [  --enable-audioqueue       AudioQueue audio module (default disabled)])
3605 if test "${enable_audioqueue}" = "yes"
3606 then
3607   VLC_ADD_PLUGIN([audioqueue])
3608   VLC_ADD_LDFLAGS([audioqueue], [-Wl,-framework,AudioToolbox,-framework,CoreFoundation])
3612 dnl  Roku HD1000 audio
3614 AC_ARG_ENABLE(hd1000a,
3615   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
3616 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
3617   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3618    test "${enable_hd1000a}" = "yes")
3619 then
3620   AC_LANG_PUSH([C++])
3621   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
3622     VLC_ADD_PLUGIN([hd1000a])
3623     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LIBS([hd1000a],[-lHDMachineX225]))  ])
3624   AC_LANG_POP([C++])
3628 dnl  JACK modules
3630 PKG_ENABLE_MODULES_VLC([JACK], [jack access_jack], [jack], [JACK audio I/O modules],[auto])
3633 dnl UPnP Plugin (Intel SDK)
3635 PKG_ENABLE_MODULES_VLC([UPNP], [upnp_intel], [libupnp], [Intel UPnp SDK],[auto])
3636 VLC_ADD_CXXFLAGS([upnp_intel],[${UPNP_CFLAGS}])
3639 dnl  Interface plugins
3642 EXTEND_HELP_STRING([Interface plugins:])
3645 dnl Skins2 module
3647 AC_ARG_ENABLE(skins2,
3648   [AS_HELP_STRING([--enable-skins2],[Skins2 interface module (default
3649    enabled except on MacOSX, BeOS and WinCE)])])
3650 if test "${enable_skins2}" = "yes" ||
3651   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
3652    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
3654   dnl test for the required libraries
3655   skins2_missing_lib="no"
3657   dnl freetype
3658   if test "${have_freetype}" != "yes"; then
3659     skins2_missing_lib="yes"
3660     if test "${enable_skins2}" = "yes"; then
3661       AC_MSG_ERROR([Could not find freetype (required for skins2)])
3662     fi
3663   fi
3665   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32"); then
3666     VLC_ADD_PLUGIN([skins2])
3667     ALIASES="${ALIASES} svlc"
3668     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
3669     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3670     VLC_ADD_LIBS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
3672   else if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "darwin"); then
3673     VLC_ADD_PLUGIN([skins2])
3674     ALIASES="${ALIASES} svlc"
3675     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
3676     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3677     VLC_ADD_LDFLAGS([skins2],[-Wl,-framework,Carbon])
3679   else if test "${skins2_missing_lib}" = "no"; then
3680     VLC_ADD_PLUGIN([skins2])
3681     ALIASES="${ALIASES} svlc"
3682     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} -DX11_SKINS])
3683     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3684     VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lXpm -lX11])
3685     need_xid_provider="no"
3686   fi fi fi
3688 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes" ||
3689          (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
3690           test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no")])
3693 dnl Hildon UI
3695 AC_ARG_ENABLE(hildon,
3696   [  --enable-hildon         Hildon touchscreen UI (default disabled)])
3697 AS_IF([test "${enable_hildon}" = "yes"], [
3698   PKG_CHECK_MODULES(HILDON, [hildon-1], [
3699     PKG_CHECK_MODULES(HILDON_FM, hildon-fm-2, [
3700       VLC_ADD_CFLAGS([hildon],[${HILDON_FM_CFLAGS} -DHAVE_HILDON_FM])
3701       VLC_ADD_LIBS([hildon],[${HILDON_FM_LIBS}])
3702     ], [
3703       AC_MSG_WARN(hildon-fm-2 not found)
3704     ])
3705     VLC_ADD_CFLAGS([hildon],[${HILDON_CFLAGS} ${X_CFLAGS}])
3706     VLC_ADD_LIBS([hildon],[${HILDON_LIBS} ${X_LIBS} ${X_PRE_LIBS} -lX11])
3707     VLC_ADD_PLUGIN([hildon])
3708     ALIASES="${ALIASES} mvlc"
3709     need_xid_provider="no"
3710   ], [
3711     AS_IF([test "${enable_hildon}" = "yes"],[
3712       AC_MSG_ERROR([Hildon libraries not found])
3713     ])
3714     enable_hildon="no"
3715   ])
3717 AM_CONDITIONAL(BUILD_HILDON, [test "${enable_hildon}" = "yes"])
3720 dnl QT 4
3722 AC_ARG_ENABLE(qt4,
3723   [  --enable-qt4            Qt 4 support (default enabled) ],, [
3724   AS_IF([test "${SYS}" = "darwin"], [enable_qt4=no])
3726 AS_IF([test "${enable_qt4}" != "no"], [
3727   PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.4.0], [
3728     VLC_ADD_PLUGIN([qt4])
3729     VLC_ADD_LIBS([qt4],[${QT4_LIBS}])
3730     VLC_ADD_CXXFLAGS([qt4],[${QT4_CFLAGS}])
3731     ALIASES="${ALIASES} qvlc"
3733     AC_LANG_PUSH([C++])
3734     CPPFLAGS_save="${CPPFLAGS}"
3736     AC_MSG_CHECKING([whether Qt uses X11])
3737     CPPFLAGS="${CPPFLAGS} ${QT4_CFLAGS}"
3738     AC_PREPROC_IFELSE([
3739 #include <QWidget>
3740 #if !defined (Q_WS_X11)
3741 # error Fail
3742 #endif
3743     ], [
3744       AC_MSG_RESULT([yes])
3745       VLC_ADD_LIBS([qt4],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3746       need_xid_provider="no"
3747       VLC_ADD_CXXFLAGS([qt4],[${X_CFLAGS}])
3748     ], [
3749       AC_MSG_RESULT([no])
3750     ])
3752     CPPFLAGS="${CPPFLAGS_save}"
3753     AC_LANG_POP([C++])
3755     AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"], [
3756         VLC_ADD_LIBS([qt4],[-lole32])
3757     ])
3758     AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`eval $PKG_CONFIG --variable=exec_prefix QtCore`/bin)
3759     AC_PATH_PROG(RCC, rcc, rcc,`eval $PKG_CONFIG --variable=exec_prefix QtCore`/bin)
3760     AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`eval $PKG_CONFIG --variable=exec_prefix QtCore`/bin)
3761   ], [
3762     AS_IF([test "${enable_qt4}" = "yes"],[
3763       AC_MSG_ERROR([Qt 4 library not found])
3764     ],[
3765       AC_MSG_WARN([Qt 4 library not found])
3766     ])
3767     enable_qt4="no"
3768   ])
3770 AM_CONDITIONAL(ENABLE_QT4, [test "x$enable_qt4" != "xno"])
3773 dnl Simple test for skins2 dependency
3775 AS_IF([test "${enable_skins2}" != "no" && test "x$enable_qt4" = "xno"], [
3776   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.])
3780 dnl  MacOS X video output/gui modules
3782 AC_ARG_ENABLE(macosx,
3783   [  --enable-macosx         Mac OS X gui support (default enabled on Mac OS X)])
3784 if test "x${enable_macosx}" = "xyes"
3785 then
3786   VLC_ADD_LDFLAGS([macosx minimal_macosx],[-Wl,-framework,Cocoa])
3787   VLC_ADD_LDFLAGS([macosx minimal_macosx],[-Wl,-framework,OpenGL])
3788   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,Carbon])
3789   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,CoreServices])
3790   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,AGL])
3791   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,IOKit])
3792   VLC_ADD_LDFLAGS([macosx],                           [-F${CONTRIB_DIR}/Sparkle -Wl,-framework,Sparkle])
3793   VLC_ADD_OBJCFLAGS([macosx],                         [-F${CONTRIB_DIR}/Sparkle])
3794   dnl For bug report
3795   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,AddressBook])
3796   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,WebKit])
3797   VLC_ADD_OBJCFLAGS([macosx minimal_macosx], [-fobjc-exceptions] )
3799   VLC_ADD_PLUGIN([macosx minimal_macosx])
3803 dnl  MacOS X related modules
3806 AC_ARG_ENABLE(macosx-vout,
3807   [  --enable-macosx-vout    Mac OS X video output module (default enabled on Mac OS X)])
3808 if test "x${enable_macosx_vout}" != "xno" &&
3809   (test "${SYS}" = "darwin" || test "${enable_macosx_vout}" = "yes")
3810 then
3811   VLC_ADD_LDFLAGS([vout_macosx],[-Wl,-framework,Cocoa])
3812   VLC_ADD_LDFLAGS([vout_macosx],[-Wl,-framework,OpenGL])
3813   VLC_ADD_PLUGIN([vout_macosx])
3816 AC_ARG_ENABLE(macosx-dialog-provider,
3817   [  --enable-macosx-dialog-provider Mac OS X dialog module (default enabled on Mac OS X)])
3818 if test "x${enable_macosx_dialog_provider}" != "xno" &&
3819   (test "${SYS}" = "darwin" || test "${enable_macosx_dialog_provider}" = "yes")
3820 then
3821   VLC_ADD_LDFLAGS([macosx_dialog_provider],[-Wl,-framework,Cocoa])
3822   VLC_ADD_PLUGIN([macosx_dialog_provider])
3825 AC_ARG_ENABLE(macosx-qtcapture,
3826   [  --enable-macosx-qtcapture Mac OS X qtcapture (iSight) module (default enabled on Mac OS X)])
3827 if test "x${enable_macosx_qtcapture}" != "xno" &&
3828   (test "${SYS}" = "darwin" || test "${enable_macosx_qtcapture}" = "yes")
3829 then
3830   VLC_ADD_LDFLAGS([qtcapture], [-Wl,-framework,Cocoa])
3831   VLC_ADD_LDFLAGS([qtcapture], [-Wl,-framework,QTKit])
3832   VLC_ADD_LDFLAGS([qtcapture], [-Wl,-framework,CoreAudio])
3833   VLC_ADD_LDFLAGS([qtcapture], [-Wl,-framework,QuartzCore])
3834   VLC_ADD_LDFLAGS([qtcapture], [-Wl,-framework,CoreVideo])
3835   VLC_ADD_PLUGIN([qtcapture])
3838 AC_ARG_ENABLE(macosx-eyetv,
3839   [  --enable-macosx-eyetv   Mac OS X EyeTV (TNT Tuner) module (default enabled on Mac OS X)])
3840 if test "x${enable_macosx_eyetv}" != "xno" &&
3841   (test "${SYS}" = "darwin" || test "${enable_macosx_eyetv}" = "yes")
3842 then
3843   VLC_ADD_LDFLAGS([access_eyetv], [-Wl,-framework,Foundation])
3844   VLC_ADD_PLUGIN([access_eyetv])
3847 AC_ARG_ENABLE(macosx-vlc-app,
3848   [  --enable-macosx-vlc-app build the VLC media player (default enabled on Mac OS X)])
3849 AM_CONDITIONAL(BUILD_MACOSX_VLC_APP, [test "${enable_macosx_vlc_app}" != "no" &&
3850     (test "${SYS}" = "darwin" || test "${enable_macosx_vlc_app}" = "yes") ])
3854 dnl  ncurses module
3856 AC_ARG_ENABLE(ncurses,
3857   [  --disable-ncurses       ncurses interface support (default disabled)],
3858   [if test "${enable_ncurses}" != "no"; then
3859     AC_CHECK_HEADER(ncurses.h,
3860       [AC_CHECK_LIB(ncursesw, mvprintw,
3861         [VLC_ADD_PLUGIN([ncurses])
3862         VLC_ADD_LIBS([ncurses],[-lncursesw])
3863         ALIASES="${ALIASES} nvlc"
3864         AC_DEFINE([HAVE_NCURSESW], 1, [Define to 1 if you have libncursesw.])
3865         AC_CHECK_LIB(ncursesw, tgetent, [],
3866           AC_CHECK_LIB(tinfow, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfow])],
3867             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
3868               [AS_IF([test "x${enable_ncurses}" != "x"],
3869                 [AC_MSG_ERROR([tgetent not found in ncursesw tinfow tinfo]
3870                )])])
3871             ]
3872           )
3873         )
3874         ],
3875         [AC_CHECK_LIB( ncurses, mvprintw,
3876           [VLC_ADD_PLUGIN([ncurses])
3877           ALIASES="${ALIASES} nvlc"
3878           VLC_ADD_LIBS([ncurses],[-lncurses])
3879           AC_CHECK_LIB(ncurses, tgetent, [],
3880             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
3881               [AS_IF([test "x${enable_ncurses}" != "x"],
3882                 [AC_MSG_ERROR([tgetent not found in ncurses tinfo])])]
3883             )]
3884           )],
3885           [AS_IF([test "x${enable_ncurses}" != "x"], [
3886             AC_MSG_ERROR([libncurses not found])])]
3887         )]
3888       )]
3889     )
3890   fi]
3894 dnl  XOSD plugin
3896 AC_ARG_ENABLE(xosd,
3897   [  --enable-xosd           xosd interface support (default disabled)])
3898 if test "${enable_xosd}" = "yes"
3899 then
3900   AC_CHECK_HEADERS(xosd.h,
3901     AC_CHECK_LIB(xosd, xosd_set_horizontal_offset, [
3902       VLC_ADD_PLUGIN([xosd])
3903       VLC_ADD_LIBS([xosd],[-lxosd])
3904     ])
3905   )
3909 dnl Framebuffer (overlay) plugin
3911 AC_ARG_ENABLE(fbosd,
3912   [  --enable-fbosd          fbosd interface support (default disabled)])
3913 if test "${enable_fbosd}" = "yes"
3914 then
3915   AC_CHECK_HEADERS(linux/fb.h, [
3916     VLC_ADD_PLUGIN([fbosd])
3917  ])
3921 dnl Post-interface configuration checks
3923 AS_IF([test "$need_xid_provider" = "yes"], [
3924   AC_MSG_ERROR([X11 video outputs need a window provider (Qt4, Skins2, Hildon or xcb-utils), but none were found. Please install xcb-keysyms.])
3928 dnl Visualisation plugin
3930 AC_ARG_ENABLE(visual,
3931   [  --enable-visual         visualisation plugin (default enabled)])
3932 if test "${enable_visual}" != "no"
3933 then
3934     VLC_ADD_PLUGIN([visual])
3938 dnl  goom visualization plugin
3940 PKG_ENABLE_MODULES_VLC([GOOM], [], [libgoom2], [goom visualization plugin], [auto])
3943 dnl libprojectM visualization plugin
3945 AC_ARG_ENABLE(projectm,
3946   [  --enable-projectm          projectM visualization plugin (default enabled)])
3947 AS_IF([test "${enable_projectm}" != "no"],
3948   [
3949     PKG_CHECK_MODULES(PROJECTM, libprojectM,
3950     [
3951       VLC_ADD_PLUGIN([projectm])
3952       VLC_ADD_CXXFLAGS([projectm],[$PROJECTM_CFLAGS])
3953       VLC_ADD_LIBS([projectm],[$PROJECTM_LIBS])
3954       PKG_CHECK_MODULES(PROJECTM2, [libprojectM >= 2.0.0],
3955         [ AC_DEFINE([HAVE_PROJECTM2], 1, [Define to 1 if using libprojectM 2.x]) ],
3956         [ AC_MSG_WARN( [Using libprojectM version 1] )
3957       ])
3958     ],[
3959       AC_MSG_WARN([libprojectM library not found])
3960     ])
3961   ])
3964 dnl  AtmoLight (homemade Philips Ambilight clone)
3966 AC_ARG_ENABLE(atmo,
3967 AS_HELP_STRING([--disable-atmo],[AtmoLight (homemade Philips Ambilight clone)
3968                 (default enabled)]),, [enable_atmo="yes"])
3969 AS_IF([test "${enable_atmo}" != no], [
3970   AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "linux"], [
3971     AC_LANG_PUSH(C++)
3972     VLC_ADD_PLUGIN([atmo])
3973     AC_LANG_POP(C++)
3974   ])
3978 dnl  Bonjour services discovery
3979 PKG_ENABLE_MODULES_VLC([BONJOUR], [], [avahi-client >= 0.6], [Bonjour services discovery], [auto])
3982 dnl  libudev services discovery
3983 PKG_ENABLE_MODULES_VLC([UDEV], [], [libudev >= 142], [Linux udev services discovery], [auto])
3986 dnl MTP devices services discovery
3987 PKG_ENABLE_MODULES_VLC([MTP], [mtp access_mtp], [libmtp >= 1.0.0], [MTP devices support], [auto])
3990 dnl  Lirc plugin
3992 AC_ARG_ENABLE(lirc,
3993   [  --enable-lirc           lirc support (default disabled)])
3994 if test "${enable_lirc}" = "yes"
3995 then
3996   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
3997   if test "${have_lirc}" = "true"
3998   then
3999     VLC_ADD_PLUGIN([lirc])
4000     VLC_ADD_LIBS([lirc],[-llirc_client])
4001   fi
4004 EXTEND_HELP_STRING([Misc options:])
4007 dnl libgcrypt
4009 AC_ARG_ENABLE(libgcrypt,
4010   [  --disable-libgcrypt     gcrypt support (default enabled)])
4011 AS_IF([test "${enable_libgcrypt}" != "no"], [
4012   AC_CHECK_DECL([GCRYCTL_SET_THREAD_CBS], [
4013     libgcrypt-config --version >/dev/null || \
4014         AC_MSG_ERROR([gcrypt.h present but libgcrypt-config could not be found])
4015     AC_CHECK_LIB(gcrypt, gcry_control, [
4016       have_libgcrypt="yes"
4017       GCRYPT_CFLAGS="`libgcrypt-config --cflags`"
4018       GCRYPT_LIBS="`libgcrypt-config --libs`"
4019     ], [
4020       AC_MSG_ERROR([libgcrypt not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
4021     ], [`libgcrypt-config --libs`])
4022   ], [
4023     AC_MSG_ERROR([libgcrypt version 1.1.94 or higher not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
4024   ], [#include <gcrypt.h>]
4025   )
4028 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
4029   AS_IF([test "${have_libgcrypt}" = "yes"],[
4030     VLC_ADD_LIBS([rtp stream_out_rtp], [${GCRYPT_LIBS}])
4031   ])
4033 AC_SUBST(GCRYPT_CFLAGS)
4034 AC_SUBST(GCRYPT_LIBS)
4035 AM_CONDITIONAL([HAVE_GCRYPT], [test "${have_libgcrypt}" = "yes"])
4038 dnl TLS/SSL
4040 AC_ARG_ENABLE(gnutls,
4041   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
4043 AS_IF([test "${have_libgcrypt}" != "yes"], [
4044   AS_IF([test "${enable_gnutls}" = "yes"], [
4045     AC_MSG_ERROR([--enable-gnutls and --disable-libgcrypt are mutually exclusive.])
4046   ])
4047   enable_gnutls="no"
4049 AS_IF([test "${enable_gnutls}" != "no"], [
4050   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.7.4], [
4051     VLC_ADD_PLUGIN([gnutls])
4052     VLC_ADD_CFLAGS([gnutls], [$GNUTLS_CFLAGS])
4053     AS_IF([test "${SYS}" = "mingw32"], [
4054       dnl pkg-config --libs gnutls omits these
4055       VLC_ADD_LIBS([gnutls], [-lz ${LTLIBINTL}])
4056     ])
4057     dnl The GnuTLS plugin invokes gcry_control directly.
4058     AS_IF([test "${have_libgcrypt}" = "yes"],[
4059       VLC_ADD_LIBS([gnutls], [${GCRYPT_LIBS}])
4060       VLC_ADD_CFLAGS([gnutls], [${GCRYPT_CFLAGS}])
4061     ])
4062     VLC_ADD_LIBS([gnutls], [$GNUTLS_LIBS])
4063   ], [
4064     AS_IF([test "${enable_gnutls}" = "yes"], [
4065       AC_MSG_ERROR([gnutls not present or too old (version 1.7.4 required)])
4066     ])
4067   ])
4072 dnl RemoteOSD plugin (VNC client as video filter)
4074 AC_ARG_ENABLE(remoteosd,
4075   [  --disable-remoteosd     RemoteOSD plugin (default enabled)])
4077 AS_IF([test "${enable_remoteosd}" != "no"], [
4078   AS_IF([test "${have_libgcrypt}" = "yes"],[
4079     VLC_ADD_PLUGIN([remoteosd])
4080     VLC_ADD_LIBS([remoteosd], ${GCRYPT_LIBS})
4081     VLC_ADD_CFLAGS([remoteosd], ${GCRYPT_CFLAGS})
4082   ], [
4083     AC_MSG_ERROR([libgcrypt support required for RemoteOSD plugin])
4084   ])
4089 dnl RAOP plugin
4091 AC_MSG_CHECKING([whether to enable RAOP plugin])
4092 AS_IF([test "${have_libgcrypt}" = "yes"], [
4093   AC_MSG_RESULT(yes)
4094   VLC_ADD_PLUGIN([stream_out_raop])
4095   VLC_ADD_LIBS([stream_out_raop], [${GCRYPT_LIBS} -lgpg-error])
4096   VLC_ADD_CFLAGS([stream_out_raop], [${GCRYPT_CFLAGS}])
4097 ], [
4098   AC_MSG_RESULT(no)
4099   AC_MSG_WARN([libgcrypt support required for RAOP plugin])
4104 dnl OSSO (Maemo screen blanking) plugin
4106 PKG_ENABLE_MODULES_VLC([OSSO_SCREENSAVER], [], [libosso], [Maemo support], [auto])
4108 AS_IF([test -f "/etc/maemo_version"], [
4109   AC_DEFINE([HAVE_MAEMO], 1, [Define to 1 if building for the Maemo platform.])
4114 dnl update checking system
4116 AC_ARG_ENABLE(update-check,
4117   [  --enable-update-check   update checking system (default disabled)])
4118 if test "${enable_update_check}" = "yes"
4119 then
4120   if test "${have_libgcrypt}" != "yes"
4121   then
4122     AC_MSG_ERROR([libgcrypt is required for update checking system])
4123   fi
4124   VLC_ADD_LIBS([libvlccore], [${GCRYPT_LIBS}])
4125   VLC_ADD_CFLAGS([libvlccore], [${GCRYPT_CFLAGS}])
4126   AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
4130 dnl SQLite
4132 AC_ARG_WITH(sqlite,
4133   [  --with-sqlite=PATH      sqlite path linking])
4134 if test "${SYS}" != "darwin"; then
4135   PKG_ENABLE_MODULES_VLC([SQLITE], [], [sqlite3 >= 3.6.0], [sqlite3], [auto])
4136 else
4137   if test "${enable_sqlite}" != "no"
4138   then
4139     AC_CHECK_HEADERS(sqlite3.h, [
4140         VLC_ADD_PLUGIN([sqlite])
4141         if test "${with_sqlite}" != "no" -a -n "${with_sqlite}"; then
4142           AC_MSG_CHECKING(existence of sqlite directory in ${with_sqlite})
4143           real_sqlite="`cd ${with_sqlite} 2>/dev/null && pwd`"
4144           if test -z "${real_sqlite}"
4145           then
4146             dnl  The given directory can't be found
4147             AC_MSG_RESULT(no)
4148             AC_MSG_ERROR([cannot cd to ${with_sqlite}])
4149           fi
4150           VLC_ADD_CFLAGS([sqlite],[-I${with_sqlite}/include])
4151           VLC_ADD_LIBS([sqlite], [-L${with_sqlite}/lib -lsqlite3])
4152           AC_MSG_RESULT(yes)
4153         else
4154           VLC_ADD_LIBS([sqlite], [-lsqlite3])
4155         fi
4156         AC_DEFINE([SQLITE_MODULE], 1, [Define if you want to use SQLite module]) ],
4157         AC_MSG_ERROR([sqlite3 is required for sqlite module]) )
4158   fi
4160 AM_CONDITIONAL([HAVE_SQLITE], [test "${enable_sqlite}" != "no"])
4164 dnl  Endianness check
4166 AC_C_BIGENDIAN
4167 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
4168   DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
4169 ], [
4170   DEFS_BIGENDIAN=""
4172 AC_SUBST(DEFS_BIGENDIAN)
4175 dnl Where to install KDE solid .desktop
4177 AC_ARG_VAR([KDE4_CONFIG], [kde4-config utility])
4178 AS_IF([test "x$KDE4_CONFIG" = "x"], [
4179   KDE4_CONFIG="kde4-config"
4182 AC_ARG_WITH(kde-solid,
4183   AS_HELP_STRING([--with-kde-solid=PATH],
4184                  [KDE Solid actions directory (auto)]),, [
4186 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ; then
4187   with_kde_solid="yes"
4190 soliddatadir=""
4191 AS_IF([test "${with_kde_solid}" != "no"], [
4192   AS_IF([test "${with_kde_solid}" = "yes"], [
4193     kde4datadir="`${KDE4_CONFIG} --install data`"
4194     AS_IF([test "x$kde4datadir" = "x"], [kde4datadir='${datadir}/kde4/apps'])
4195     soliddatadir="${kde4datadir}/solid/actions"
4196   ], [
4197     soliddatadir="${with_kde_solid}"
4198   ])
4200 AC_SUBST(soliddatadir)
4201 AM_CONDITIONAL(KDE_SOLID, [test "x${soliddatadir}" != "x"])
4204 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
4206 loader=false
4207 AC_ARG_ENABLE(loader,
4208   AS_HELP_STRING([--enable-loader],[build DLL loader for ELF i386 platforms
4209                   (default disabled)]))
4210 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
4211 AS_IF([test "${enable_loader}" = "yes"],
4212   [ VLC_ADD_PLUGIN([dmo])
4213     VLC_ADD_CPPFLAGS([dmo quicktime realvideo],[-I\\\${top_srcdir}/libs/loader])
4214     VLC_ADD_LIBS([dmo quicktime realvideo],[\\\${top_builddir}/libs/loader/libloader.la])
4215     VLC_ADD_CPPFLAGS([realvideo], [-DLOADER])
4216     VLC_ADD_LIBS([dmo quicktime], [-lpthread])
4217   ])
4219 EXTEND_HELP_STRING([Components:])
4222 dnl  the VLC binary
4224 AC_ARG_ENABLE(vlc,
4225   [  --enable-vlc            build the VLC media player (default enabled)])
4226 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
4229 dnl  Microsoft ActiveX support
4231 activex=false
4232 AC_ARG_ENABLE(activex,
4233   AS_HELP_STRING([--enable-activex],[build a vlc-based ActiveX control
4234                   (default enabled on Win32)]))
4235 AC_ARG_WITH(wine-sdk-path,
4236   [  --with-wine-sdk-path=PATH path to wine sdk])
4237 if test "${enable_activex}" != "no"
4238 then
4239   if test "${SYS}" = "mingw32"
4240   then
4241     AC_CHECK_PROGS(MIDL, [midl], no)
4242     if test "${with_wine_sdk_path}" != ""
4243     then
4244        WINE_SDK_PATH=${with_wine_sdk_path}
4245        AC_PATH_PROG(WIDL, widl, no, [$WINE_SDK_PATH/bin:$WINE_SDK_PATH/tools/widl])
4246     else
4247        WIDL=no
4248     fi
4249     AC_LANG_PUSH(C++)
4250     AC_CHECK_HEADERS(ole2.h,
4251       [AC_CHECK_HEADERS(olectl.h,
4252         [ VLC_ADD_CPPFLAGS([activex],[-DUNICODE -D_UNICODE -D_MIDL_USE_GUIDDEF_])
4253           VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
4254           VLC_ADD_LIBS([activex],[-lole32 -loleaut32 -luuid -lshlwapi])
4255           AC_CHECK_HEADERS(objsafe.h,
4256             VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER]),,
4257             [
4258              #if HAVE_OLE2_H
4259              #   include <ole2.h>
4260              #endif
4261             ]
4262           )
4263           activex=:
4264           PLUGINS_BINDINGS="${PLUGINS_BINDINGS} activex"
4265         ],
4266         [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
4267       )],
4268       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
4269     )
4270     AC_LANG_POP(C++)
4271   fi
4273 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
4274 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
4275 AC_ARG_VAR(WIDL, [Wine IDL compiler (requires Wine SDK)])
4276 AM_CONDITIONAL(HAS_WIDL_COMPILER, test "${WIDL}" != "no")
4277 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
4281 dnl  Plugin and builtin checks
4283 plugin_support=yes
4285 dnl Automagically disable plugins if there is no system support for
4286 dnl dynamically loadable files (.so, .dll, .dylib).
4287 dnl don't forget vlc-win32 still can load .dll as plugins
4288 AS_IF([test "${ac_cv_have_plugins}" = "no"], [
4289   AC_MSG_WARN([*** No plugin support! Building statically! ***])
4290   plugin_support=no
4293 AS_IF([test "${plugin_support}" != "no"], [
4294   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, [Define if dynamic plugins are supported])
4298 dnl Pic and shared libvlc stuff
4300 AS_IF([test "${SYS}" = "mingw32"], [
4301   FILE_LIBVLCCORE_DLL="!define LIBVLCCORE_DLL libvlccore.dll"
4302   FILE_LIBVLC_DLL="!define LIBVLC_DLL libvlc.dll"
4306 dnl  Stuff used by the program
4308 VERSION_MESSAGE="${VERSION} ${CODENAME}"
4309 COPYRIGHT_MESSAGE="Copyright © ${COPYRIGHT_YEARS} the VideoLAN team"
4310 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string])
4311 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string])
4312 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
4313 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
4314 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
4315 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
4316 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
4317 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
4318 AC_SUBST(COPYRIGHT_MESSAGE)
4319 AC_SUBST(VERSION_MESSAGE)
4320 AC_SUBST(VERSION_MAJOR)
4321 AC_SUBST(VERSION_MINOR)
4322 AC_SUBST(VERSION_REVISION)
4323 AC_SUBST(VERSION_EXTRA)
4324 AC_SUBST(COPYRIGHT_YEARS)
4325 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure])
4326 AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -f 2>/dev/null || hostname`", [host which ran configure])
4327 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler])
4328 dnl Win32 need s a numerical version_extra.
4329 case $( echo ${VERSION_EXTRA}|wc -m ) in
4330        "1") VERSION_EXTRA_RC="0";;
4331        "2") VERSION_EXTRA_RC=$( echo ${VERSION_EXTRA}|tr "abcdefghi" "123456789") ;;
4332        *) VERSION_EXTRA_RC="99"
4333 esac
4334 AC_SUBST(VERSION_EXTRA_RC)
4336 dnl  Handle substvars that use $(top_srcdir)
4338 VLC_CONFIG="top_srcdir=\"\$(top_srcdir)\" top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
4339 AC_SUBST(VLC_CONFIG)
4340 CPPFLAGS_save="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS_save}"
4343 dnl  Restore *FLAGS
4345 VLC_RESTORE_FLAGS
4348 dnl Sort the modules list
4350 PLUGINS=$( (for i in `echo $PLUGINS`; do echo $i; done)|sort|xargs )
4353 dnl  Create the vlc-config script
4355 LDFLAGS_libvlc="${LDFLAGS_libvlc} ${LDFLAGS_builtin}"
4358 dnl  Configuration is finished
4360 AC_SUBST(SYS)
4361 AC_SUBST(ARCH)
4362 AC_SUBST(ALIASES)
4363 AC_SUBST(ASM)
4364 AC_SUBST(MOC)
4365 AC_SUBST(RCC)
4366 AC_SUBST(UIC)
4367 AC_SUBST(WINDRES)
4368 AC_SUBST(WINE_SDK_PATH)
4369 AC_SUBST(LIBEXT)
4370 AC_SUBST(AM_CPPFLAGS)
4371 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
4372 AC_SUBST(FILE_LIBVLCCORE_DLL)
4373 AC_SUBST(FILE_LIBVLC_DLL)
4375 dnl Create vlc-config.in
4376 VLC_OUTPUT_VLC_CONFIG_IN
4378 AC_CONFIG_FILES([
4379   Makefile
4380   projects/activex/Makefile
4381   doc/Makefile
4382   libs/loader/Makefile
4383   libs/srtp/Makefile
4384   libs/unzip/Makefile
4385   modules/Makefile
4386   m4/Makefile
4387   po/Makefile.in
4388   share/Makefile
4389   compat/Makefile
4390   src/Makefile
4391   src/test/Makefile
4392   bin/Makefile
4393   test/Makefile
4394   modules/access/Makefile
4395   modules/access/bd/Makefile
4396   modules/access/bda/Makefile
4397   modules/access/dshow/Makefile
4398   modules/access/dvb/Makefile
4399   modules/access/mms/Makefile
4400   modules/access/rtp/Makefile
4401   modules/access/rtsp/Makefile
4402   modules/access/vcd/Makefile
4403   modules/access/vcdx/Makefile
4404   modules/access/screen/Makefile
4405   modules/access/zip/Makefile
4406   modules/access_output/Makefile
4407   modules/audio_filter/Makefile
4408   modules/audio_filter/channel_mixer/Makefile
4409   modules/audio_filter/converter/Makefile
4410   modules/audio_filter/resampler/Makefile
4411   modules/audio_filter/spatializer/Makefile
4412   modules/audio_mixer/Makefile
4413   modules/audio_output/Makefile
4414   modules/codec/Makefile
4415   modules/codec/avcodec/Makefile
4416   modules/codec/dmo/Makefile
4417   modules/codec/omxil/Makefile
4418   modules/codec/shine/Makefile
4419   modules/codec/spudec/Makefile
4420   modules/codec/wmafixed/Makefile
4421   modules/control/Makefile
4422   modules/control/http/Makefile
4423   modules/control/dbus/Makefile
4424   modules/control/globalhotkeys/Makefile
4425   modules/demux/Makefile
4426   modules/demux/asf/Makefile
4427   modules/demux/avformat/Makefile
4428   modules/demux/avi/Makefile
4429   modules/demux/mkv/Makefile
4430   modules/demux/mp4/Makefile
4431   modules/demux/mpeg/Makefile
4432   modules/demux/playlist/Makefile
4433   modules/gui/Makefile
4434   modules/gui/macosx/Makefile
4435   modules/gui/hildon/Makefile
4436   modules/gui/minimal_macosx/Makefile
4437   modules/gui/macosx_dialog_provider/Makefile
4438   modules/gui/qt4/Makefile
4439   modules/gui/skins2/Makefile
4440   modules/meta_engine/Makefile
4441   modules/misc/Makefile
4442   modules/misc/dummy/Makefile
4443   modules/misc/lua/Makefile
4444   modules/misc/notify/Makefile
4445   modules/misc/playlist/Makefile
4446   modules/misc/osd/Makefile
4447   modules/misc/stats/Makefile
4448   modules/misc/xml/Makefile
4449   modules/mux/Makefile
4450   modules/mux/mpeg/Makefile
4451   modules/packetizer/Makefile
4452   modules/services_discovery/Makefile
4453   modules/stream_filter/Makefile
4454   modules/stream_out/Makefile
4455   modules/stream_out/transcode/Makefile
4456   modules/video_chroma/Makefile
4457   modules/video_filter/Makefile
4458   modules/video_filter/dynamicoverlay/Makefile
4459   modules/video_output/Makefile
4460   modules/video_output/msw/Makefile
4461   modules/visualization/Makefile
4462   modules/visualization/visual/Makefile
4463   modules/mmx/Makefile
4464   modules/mmxext/Makefile
4465   modules/3dnow/Makefile
4466   modules/sse2/Makefile
4467   modules/altivec/Makefile
4468   modules/arm_neon/Makefile
4471 AM_COND_IF([HAVE_WIN32], [
4472   AC_CONFIG_FILES([
4473     extras/package/win32/spad.nsi
4474     extras/package/win32/vlc.win32.nsi
4475   ])
4476   AM_COND_IF([BUILD_ACTIVEX], [
4477     AC_CONFIG_FILES([
4478       projects/activex/axvlc.inf
4479       projects/activex/axvlc_rc.rc
4480     ])
4481   ])
4484 AM_COND_IF([HAVE_DARWIN], [
4485   AC_CONFIG_FILES([
4486     extras/package/macosx/Info.plist
4487     extras/package/macosx/Resources/English.lproj/InfoPlist.strings
4488   ])
4491 dnl Generate makefiles
4492 AC_OUTPUT
4494 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
4495 # not provided with the source
4496 ${SHELL} ./config.status --file=vlc-config
4497 chmod 0755 vlc-config
4499 /bin/echo -n "Enabled modules: "
4500 ./vlc-config --list plugin
4502 dnl Do we have to use make or gmake ?
4503 USE_MAKE_OR_GMAKE=`case "${SYS}" in openbsd*) echo "gmake";; *) echo "make";; esac`
4504 dnl Shortcut to nice compile message
4505 rm -f compile
4506 if test -n $SHELL; then
4507   SHELL=${CONFIG_SHELL-/bin/sh}
4509 echo '#! '$SHELL >compile
4510 echo rm -f .error\$\$ >>compile
4511 echo ERROR=0 >>compile
4512 echo export PATH=$PATH LANG=C >>compile
4513 echo "($USE_MAKE_OR_GMAKE V=1 \$@ 2>&1 || touch .error\$\$)| \\" >>compile
4514 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/buildsystem/make.pl' >>compile
4515 echo test -f .error\$\$ \&\& ERROR=1 >>compile
4516 echo rm -f .error\$\$ >>compile
4517 echo exit \$ERROR >>compile
4518 chmod a+x compile
4520 printf "
4521 libvlc configuration
4522 --------------------
4523 version               : ${VERSION}
4524 system                : ${SYS}
4525 architecture          : ${ARCH}
4526 build flavour         : "
4527 test "${enable_debug}" = "yes" && printf "debug "
4528 test "${enable_cprof}" = "yes" && printf "cprof "
4529 test "${enable_gprof}" = "yes" && printf "gprof "
4530 test "${enable_optimizations}" = "yes" && printf "optim "
4531 echo ""
4532 if test "${enable_vlc}" != "no"; then
4533 echo "vlc aliases           :${ALIASES}"
4534 else
4535 echo "build vlc executable  : no"
4537 echo "plugins/bindings      :${PLUGINS_BINDINGS}
4539 You can tune the compiler flags in vlc-config.
4540 To build vlc and its plugins, type \`./compile' or \`$USE_MAKE_OR_GMAKE'.
4542 if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
4543    echo ""
4544    echo "Warning: Due to a bug in ld, mmx/sse support has been"
4545    echo "         turned off."
4546    echo "         FFmpeg will be REALLY slow."
4547    echo "         VLC WILL NOT PERFORM AS EXPECTED."
4548    echo ""