1 dnl Autoconf settings for vlc
3 AC_COPYRIGHT([Copyright 2002-2014 VLC authors and VideoLAN])
5 AC_INIT(vlc, 3.0.0-git)
15 CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
17 COPYRIGHT_YEARS="1996-2014"
19 AC_CONFIG_SRCDIR(src/libvlc.c)
20 AC_CONFIG_AUX_DIR(autotools)
21 AC_CONFIG_MACRO_DIR(m4)
22 AC_CONFIG_LIBOBJ_DIR(compat)
25 AC_PRESERVE_HELP_ORDER
27 AM_INIT_AUTOMAKE(tar-ustar color-tests foreign)
28 AC_CONFIG_HEADERS([config.h])
30 # Disable with "./configure --disable-silent-rules" or "make V=1"
31 AM_SILENT_RULES([yes])
33 dnl Too many people are not aware of maintainer mode:
34 dnl If you want to use it, you definitely know what you are doing, so
35 dnl you can specify "--disable-maintainer-mode". But if you want the default
36 dnl automake behavior, you've likely never heard of maintainer mode, so we
37 dnl can't expect you to enable it manually.
38 AS_IF([test "x${enable_maintainer_mode}" != "xno"],
39 [enable_maintainer_mode="yes"])
45 dnl vlcincludedir="\${includedir}/\${PKGDIR}"
46 dnl AC_SUBST(vlcincludedir)
47 vlcdatadir="\${datadir}/\${PKGDIR}"
49 vlclibdir="\${libdir}/\${PKGDIR}"
56 AC_USE_SYSTEM_EXTENSIONS
57 AC_DEFINE([_FORTIFY_SOURCE], 2, [Define to 2 to get glibc warnings.])
58 AC_DEFINE([_FILE_OFFSET_BITS], 64, [Define to 64 for large files support.])
64 AC_DEFINE([_THREAD_SAFE],, [Same as _REENTANT for some other OSes.])
65 AC_DEFINE([__LIBVLC__],, [Define within the LibVLC source code tree.])
66 AC_DEFINE([WIN32_LEAN_AND_MEAN],, [Define to limit the scope of <windows.h>.])
72 _AM_DEPENDENCIES([OBJC])
78 AC_ARG_VAR([DESKTOP_FILE_VALIDATE], [Validator for desktop entry files])
79 AC_CHECK_PROGS(DESKTOP_FILE_VALIDATE, [${DESKTOP_FILE_VALIDATE} desktop-file-validate], :)
80 AC_PATH_PROG(YASM, yasm)
82 dnl Check for compiler properties
87 dnl Extend the --help string at the current spot.
88 AC_DEFUN([EXTEND_HELP_STRING], [m4_divert_once([HELP_ENABLE], [$1])])
90 dnl Allow binary package maintainer to pass a custom string to avoid
92 AC_ARG_WITH(binary-version,
93 AS_HELP_STRING([--with-binary-version=STRING],
94 [To avoid plugins cache problem between binary version]),[],[])
95 AS_IF([test -n "${with_binary_version}"],[
96 AC_DEFINE_UNQUOTED([DISTRO_VERSION],["${with_binary_version}"],
97 [Binary specific version])
101 dnl Check the operating system
127 CFLAGS="${CFLAGS} -pthread"
131 CFLAGS="${CFLAGS} -pthread"
132 CPPFLAGS="${CPPFLAGS} -I/usr/local/include"
133 LDFLAGS="${LDFLAGS} -L/usr/local/lib"
137 CPPFLAGS="${CPPFLAGS} -I/usr/local/include -I/usr/X11R6/include"
138 LDFLAGS="${LDFLAGS} -L/usr/local/lib -L/usr/X11R6/lib/"
148 dnl Force gcc "-arch" flag
152 ARCH_flag="-arch i386"
153 YASMFLAGS="-f macho32"
156 ARCH_flag="-arch ppc64"
159 ARCH_flag="-arch ppc"
162 ARCH_flag="-arch x86_64"
163 YASMFLAGS="-f macho64"
166 ac_cv_c_bigendian="no"
167 ac_cv_c_attribute_packed="no"
172 CFLAGS="${CFLAGS} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"
173 CXXFLAGS="${CXXFLAGS} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"
174 CPPFLAGS="${CPPFLAGS} ${ARCH_flag}"
175 OBJCFLAGS="${OBJCFLAGS} -D_INTL_REDIRECT_MACROS -std=gnu99 ${ARCH_flag}"
176 LDFLAGS="${LDFLAGS} -Wl,-headerpad_max_install_names ${ARCH_flag}"
177 VLC_ADD_LIBS([libvlc vlc],[-Wl,-undefined,dynamic_lookup,-framework,AppKit])
178 VLC_ADD_LIBS([libvlccore],[-Wl,-framework,CoreFoundation,-framework,CoreServices])
181 [#import <TargetConditionals.h>
188 dnl Allow binaries created on Lion to run on earlier releases
190 [#import <Cocoa/Cocoa.h>
191 #ifdef MAC_OS_X_VERSION_10_7
194 [AC_MSG_RESULT([yes])
195 AC_LIBOBJ([getdelim])
197 AC_LIBOBJ([strnlen])],)
200 dnl Handle Mac OS X SDK flags
202 AC_ARG_WITH(macosx-sdk,
203 [AS_HELP_STRING([--with-macosx-sdk=DIR],
204 [compile using the SDK in DIR])])
205 if test "${with_macosx_sdk}" != "" ; then
206 test ! -d "${with_macosx_sdk}" && AC_MSG_ERROR([SDK "${with_macosx_sdk}" not found])
207 CPP="${CPP} -isysroot ${with_macosx_sdk}"
208 CC="${CC} -isysroot ${with_macosx_sdk}"
209 CXX="${CXX} -isysroot ${with_macosx_sdk}"
210 OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
211 LD="${LD} -syslibroot ${with_macosx_sdk}"
213 AC_ARG_WITH(macosx-version-min,
214 [AS_HELP_STRING([--with-macosx-version-min=VERSION],
215 [compile for Mac OS X VERSION and above])])
216 if test "${with_macosx_version_min}" != "" ; then
217 CPP="${CPP} -mmacosx-version-min=${with_macosx_version_min}"
218 CC="${CC} -mmacosx-version-min=${with_macosx_version_min}"
219 CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
220 OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
221 LD="${LD} -mmacosx_version_min=${with_macosx_version_min}"
224 *mingw32* | *cygwin* | *wince* | *mingwce*)
225 AC_CHECK_TOOL(WINDRES, windres, :)
226 AC_CHECK_TOOL(OBJCOPY, objcopy, :)
227 AH_TOP([#if defined(_WIN32) && !defined(_WIN32_WINNT)])
228 AH_TOP([# define _WIN32_WINNT 0x0502 /* Windows XP SP2 */])
230 AC_DEFINE([_WIN32_IE], 0x0600, [Define to '0x0600' for IE 6.0 (and shell) APIs.])
231 AC_DEFINE([_UNICODE], [1], [Define to 1 for Unicode (Wide Chars) APIs.])
232 AC_DEFINE([UNICODE], [1], [Define to 1 for Unicode (Wide Chars) APIs.])
233 AC_DEFINE([_ISOC99_SOURCE], [1], [Extensions to ISO C89 from ISO C99.])
234 AC_DEFINE([_ISOC11_SOURCE], [1], [Extensions to ISO C99 from ISO C11.])
235 AC_DEFINE([_POSIX_SOURCE], [1], [IEEE Std 1003.1.])
236 AC_DEFINE([_POSIX_C_SOURCE], [200809L], [IEEE Std 1003.1.])
237 AC_DEFINE([_XOPEN_SOURCE], [700], [POSIX and XPG 7th edition])
238 AC_DEFINE([_XOPEN_SOURCE_EXTENDED], [1], [XPG things and X/Open Unix extensions.])
239 AC_DEFINE([_BSD_SOURCE], [1], [ISO C, POSIX, and 4.3BSD things.])
240 AC_DEFINE([_SVID_SOURCE], [1], [ISO C, POSIX, and SVID things.])
247 dnl Check if we are using the mno-cygwin mode in which case we are
248 dnl actually dealing with a mingw32 compiler.
253 SYS=mingw32, AC_MSG_ERROR([VLC requires -mno-cygwin]))
257 if test "${SYS}" = "mingw32"; then
259 LDFLAGS="${LDFLAGS} -Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase"
261 VLC_ADD_LDFLAGS([vlc],[-mwindows])
262 AC_CHECK_PROGS(U2D, [unix2dos todos], unix2dos)
263 ac_default_prefix="`pwd`/_win32"
264 DESTDIR="`pwd`/_win32/"
267 dnl NSIS/MSI Installer prefix and WIN64
273 PROGRAMFILES="PROGRAMFILES64"
278 PROGRAMFILES="PROGRAMFILES"
282 AC_SUBST(WINDOWS_ARCH)
283 AC_SUBST(PROGRAMFILES)
301 LDFLAGS="${LDFLAGS} -Zomf -Zbin-files -Zargs-wild -Zhigh-mem"
307 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
308 AM_CONDITIONAL(HAVE_LINUX, test "${SYS}" = "linux")
309 AM_CONDITIONAL(HAVE_OS2, test "${SYS}" = "os2")
310 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
311 AM_CONDITIONAL(HAVE_WIN64, test "${HAVE_WIN64}" = "1")
312 AM_CONDITIONAL(HAVE_SYMBIAN, test "${SYS}" = "symbian")
313 AM_CONDITIONAL(HAVE_IOS, test "${HAVE_IOS}" = "1")
314 AM_CONDITIONAL(HAVE_OSX, test "${HAVE_OSX}" = "1")
319 dnl Sadly autoconf does not think about testing foo.exe when ask to test
320 dnl for program foo on win32
321 case "${build_os}" in
323 ac_executable_extensions=".exe"
329 dnl Android is linux, but a bit different
330 AS_IF([test "$SYS" = linux],[
331 AC_MSG_CHECKING([for an Android system])
332 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
333 [[#ifndef __ANDROID__
344 AM_CONDITIONAL(HAVE_ANDROID, test "${HAVE_ANDROID}" = "1")
348 dnl Check for the contrib directory
351 [AS_HELP_STRING([--with-contrib[=DIR]],
352 [search for 3rd party libraries in DIR/include and DIR/lib])
354 AC_MSG_CHECKING([for 3rd party libraries path])
355 AS_IF([test -z "${with_contrib}" || test "${with_contrib}" = "yes"], [
356 CONTRIB_DIR="${srcdir}/contrib/${host}"
357 AS_IF([test ! -d "${CONTRIB_DIR}"], [
358 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
359 CONTRIB_DIR="${srcdir}/contrib/`$CC -dumpmachine`"
360 AS_IF([test ! -d "${CONTRIB_DIR}"], [
361 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
362 CONTRIB_DIR="${srcdir}/extras/contrib/hosts/${host}"
363 AS_IF([test ! -d "${CONTRIB_DIR}"], [
364 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
365 CONTRIB_DIR="${srcdir}/extras/contrib/hosts/`$CC -dumpmachine`"
366 AS_IF([test ! -d "${CONTRIB_DIR}"], [
367 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
369 AC_MSG_RESULT([not found])
375 AS_IF([test "${with_contrib}" != "no"], [
376 CONTRIB_DIR="${with_contrib}"
379 AC_MSG_RESULT([disabled])
382 AS_IF([test -n "${CONTRIB_DIR}"], [
383 AS_IF([test -d "${CONTRIB_DIR}/lib"],[
384 CONTRIB_DIR=`cd "${CONTRIB_DIR}" && pwd`
386 echo "${CONTRIB_DIR}/lib not found" >&AS_MESSAGE_LOG_FD
388 AC_MSG_RESULT([not usable])
392 AS_IF([test -n "${CONTRIB_DIR}"], [
393 AC_MSG_RESULT([${CONTRIB_DIR}])
394 export PATH=${CONTRIB_DIR}/bin:$PATH
395 CPPFLAGS="${CPPFLAGS} -I${CONTRIB_DIR}/include"
396 CFLAGS="${CFLAGS} -I${CONTRIB_DIR}/include"
397 CXXFLAGS="${CXXFLAGS} -I${CONTRIB_DIR}/include"
398 OBJCFLAGS="${OBJCFLAGS} -I${CONTRIB_DIR}/include"
399 export PKG_CONFIG_PATH="${CONTRIB_DIR}/lib/pkgconfig:$PKG_CONFIG_PATH"
400 LDFLAGS="${LDFLAGS} -L${CONTRIB_DIR}/lib"
402 AS_IF([test "${SYS}" = "darwin"], [
403 export LD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$LD_LIBRARY_PATH"
404 export DYLD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$DYLD_LIBRARY_PATH"
407 AS_IF([test -n "${with_contrib}" && test "${with_contrib}" != "no"], [
408 AC_MSG_ERROR([Third party libraries not found!])
411 AC_SUBST(CONTRIB_DIR)
413 dnl Add extras/tools to the PATH
414 TOOLS_DIR="${srcdir}/extras/tools/build/bin"
415 AS_IF([test -d "${TOOLS_DIR}"], [
416 TOOLS_DIR=`cd "${TOOLS_DIR}" && pwd`
417 export PATH="${TOOLS_DIR}":$PATH
422 dnl It's very bad, but our former custom system was worst
426 dnl override platform specific check for dependent libraries
427 dnl otherwise libtool linking of shared libraries will
428 dnl fail on anything other than pass_all.
429 AC_CACHE_VAL(lt_cv_deplibs_check_method,
430 [lt_cv_deplibs_check_method=pass_all])
432 LT_INIT([dlopen win32-dll shared disable-static])
434 LT_LANG([Windows Resource])
438 lt_cv_deplibs_check_method=pass_all
440 AS_IF([test "${enable_shared}" = "no" -a "${enable_vlc}" != "no"], [
441 AC_MSG_ERROR([VLC is based on plugins. Shared libraries cannot be disabled.])
447 AM_GNU_GETTEXT_VERSION([0.19.2])
448 AM_GNU_GETTEXT([external], [need-ngettext])
457 AS_IF([test "${SYS}" = "mingw32"], [
458 dnl Check for broken versions of mingw-runtime compatability library
459 AC_MSG_CHECKING(for broken mingw-runtime)
460 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
462 #if defined(__MINGW64_VERSION_MAJOR)
463 # if __MINGW64_VERSION_MAJOR < 3
464 # error Attempting to use mingw-runtime with broken vsnprintf and direct2d support
466 #elif __MINGW32_MAJOR_VERSION == 3 && __MINGW32_MINOR_VERSION < 15
467 # error Attempting to use mingw-runtime with broken vsnprintf support
472 AC_MSG_RESULT([present])
473 AC_MSG_ERROR([LibVLC requires mingw-runtime version 3.15 or higher, or mingw-w64 version 3.0 or higher!])
475 dnl force use of mingw provided c99 *printf over msvcrt
476 CPPFLAGS="${CPPFLAGS} -D__USE_MINGW_ANSI_STDIO=1"
478 dnl Check for the need to include the mingwex lib for mingw32
480 AC_CHECK_LIB(mingwex,opendir,
481 AC_CHECK_LIB(mingw32,opendir,,
482 [VLC_ADD_LIBS([libvlccore],[-lmingwex])])
486 dnl Check for fnative-struct or mms-bitfields support for mingw32
488 CFLAGS="${CFLAGS} -mms-bitfields"
489 CXXFLAGS="${CXXFLAGS} -mms-bitfields"
490 AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
491 [ac_cv_c_mms_bitfields],
492 [AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
493 if test "${ac_cv_c_mms_bitfields}" = "no"; then
495 CFLAGS="${CFLAGS} -fnative-struct"
496 CXXFLAGS="${CXXFLAGS} -fnative-struct"
497 AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
498 [ac_cv_c_fnative_struct],
499 [AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
500 "${ac_cv_c_fnative_struct}" = "no" && VLC_RESTORE_FLAGS
504 AC_ARG_ENABLE(winstore_app,
505 AS_HELP_STRING([--enable-winstore-app],
506 [Build targetted for Windows Store apps (default disabled)]))
509 AS_IF([test "${SYS}" = "mingw32"],[
510 AS_IF([test "${enable_winstore_app}" = "yes"], [
512 VLC_ADD_LIBS([libvlccore], [-lole32 -lruntimeobject])
514 VLC_ADD_LIBS([win32text],[-lgdi32])
515 VLC_ADD_LIBS([libvlccore],[-lwinmm])
518 AC_DEFINE_UNQUOTED(VLC_WINSTORE_APP, ${vlc_winstore_app}, [Define to 1 if you want to build for Windows Store apps])
519 AM_CONDITIONAL([HAVE_WINSTORE], [test "$vlc_winstore_app" = "1"])
523 dnl Buggy glibc prevention. Purposedly not cached.
524 dnl See sourceware.org bugs 5058 and 5443.
525 dnl Ubuntu alone has 20 bug numbers for this...
527 AC_MSG_CHECKING(for buggy GNU/libc versions)
528 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
530 #if defined (__GLIBC__) && (__GLIBC__ == 2) \
531 && (__GLIBC_MINOR__ >= 5) && (__GLIBC_MINOR__ <= 7)
532 # error GNU/libc with dcgettext killer bug!
535 AC_MSG_RESULT([not present])
537 AC_MSG_RESULT([found])
538 AS_IF([test "x${enable_nls}" != "xno"], [
539 AC_MSG_ERROR([Buggy GNU/libc (version 2.5 - 2.7) present. VLC would crash; there is no viable
540 work-around for this. Check with your distribution vendor on how to update the
541 glibc run-time. Alternatively, build with --disable-nls.])
545 dnl Plugin compilation stuff
549 dnl Check for system libs needed
552 dnl Check for usual libc functions
553 AC_CHECK_DECLS([nanosleep],,,[#include <time.h>])
554 AC_CHECK_FUNCS([daemon fcntl fstatvfs fork getenv getpwuid_r isatty lstat memalign mmap open_memstream openat pread posix_fadvise posix_madvise setlocale stricmp strnicmp strptime uselocale pthread_cond_timedwait_monotonic_np pthread_condattr_setclock])
555 AC_REPLACE_FUNCS([atof atoll dirfd fdopendir flockfile fsync getdelim getpid gmtime_r lldiv localtime_r nrand48 poll posix_memalign rewind setenv strcasecmp strcasestr strdup strlcpy strndup strnlen strsep strtof strtok_r strtoll swab tdestroy strverscmp])
556 AC_CHECK_FUNCS(fdatasync,,
557 [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
560 dnl mingw64 implements those as static inline, not functions with C linkage
562 AC_LANG_PROGRAM([#include <stdio.h>], [
564 if (asprintf(&c, "%s %d", "string", 1) == -1)
566 ])],[AC_DEFINE([HAVE_ASPRINTF],[1],[Define to 1 if you have asprintf function])],[AC_LIBOBJ([asprintf])])
568 AC_LANG_PROGRAM([#include <stdio.h>
569 #include <stdarg.h>], [
572 if (vasprintf(&c, "%s %d", ap) == -1)
574 ])],[AC_DEFINE([HAVE_VASPRINTF],[1],[Define to 1 if you have asprintf function])],[AC_LIBOBJ([vasprintf])])
576 dnl C11 static_assert()
577 AC_MSG_CHECKING([for static_assert in assert.h])
578 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <assert.h>], [
579 static_assert(1, "The impossible happened.");
582 AC_DEFINE([HAVE_STATIC_ASSERT], [1], [Define to 1 if <assert.h> defines static_assert.])
587 # Windows CE does not have strcoll()
590 dnl Check for non-standard system calls
593 AC_CHECK_FUNCS([accept4 pipe2 eventfd vmsplice sched_getaffinity])
596 AC_CHECK_FUNCS([_lock_file])
600 AH_BOTTOM([#include <vlc_fixups.h>])
602 dnl Check for struct pollfd
603 AC_CHECK_TYPES([struct pollfd],,,
604 [#include <sys/types.h>
607 #elif defined (_WIN32)
608 # include <winsock2.h>
612 dnl Checks for socket stuff
615 AC_SEARCH_LIBS(connect, [socket], [
616 AS_IF([test "$ac_cv_search_connect" != "none required"], [
617 SOCKET_LIBS="$ac_cv_search_connect"
620 AS_IF([test "${SYS}" = "mingw32"], [
621 SOCKET_LIBS="-lws2_32"
625 AC_SEARCH_LIBS([inet_pton], [nsl], [
626 AS_IF([test "$ac_cv_search_getaddrinfo" != "none required"], [
627 SOCKET_LIBS="$ac_cv_search_getaddrinfo $SOCKET_LIBS"
629 ],, [${SOCKET_LIBS}])
631 LIBS="${LIBS} ${SOCKET_LIBS}"
633 AC_LANG_PROGRAM([#ifdef _WIN32
634 # if _WIN32_WINNT < 0x600
637 #include <ws2tcpip.h>
639 #include <sys/socket.h>
640 #include <arpa/inet.h>
642 char dst[[sizeof(struct in_addr)]];
643 inet_pton(AF_INET, "127.0.0.1", dst);
644 ])],[AC_DEFINE([HAVE_INET_PTON],[1],[Define to 1 if you have inet_pton function])],[AC_LIBOBJ([inet_pton])])
645 AC_CHECK_FUNCS([if_nameindex if_nametoindex])
648 AS_IF([test -n "$SOCKET_LIBS"], [
649 VLC_ADD_LIBS([access_rtmp access_output_shout sap stream_out_standard stream_out_rtp stream_out_raop stream_out_chromecast oldrc netsync ts remoteosd audiobargraph_a],[${SOCKET_LIBS}])
651 AC_SUBST(SOCKET_LIBS)
653 dnl Check for socklen_t
654 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
655 AC_CACHE_CHECK([for socklen_t in sys/socket.h], dnl ` (fix VIM syntax highlight
656 ac_cv_type_socklen_t,
657 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
658 [#include <sys/types.h>
660 # include <winsock2.h>
661 # include <ws2tcpip.h>
663 # include <sys/socket.h>
664 #endif]], [[socklen_t len; len = 0;]])],
665 ac_cv_type_socklen_t=yes,
666 ac_cv_type_socklen_t=no)])
667 AS_IF([test "$ac_cv_type_socklen_t" = no],
668 [AC_DEFINE(socklen_t, int)])
670 dnl Check for struct sockaddr_storage
671 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
672 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
673 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
675 [#include <sys/types.h>
676 #if defined( _WIN32 )
677 # include <winsock2.h>
679 # include <sys/socket.h>
680 #endif], [struct sockaddr_storage addr;],
681 ac_cv_struct_sockaddr_storage=yes,
682 ac_cv_struct_sockaddr_storage=no)])
683 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
684 AC_DEFINE(sockaddr_storage, sockaddr)
685 AC_DEFINE(ss_family, sa_family)
688 dnl FreeBSD has a gnugetopt library for this:
690 AC_CHECK_FUNC(getopt_long,, [
691 AC_CHECK_LIB([gnugetopt],[getopt_long], [
692 GNUGETOPT_LIBS="-lgnugetopt"
695 AC_SUBST(GNUGETOPT_LIBS)
698 VLC_ADD_LIBS([adjust wave ripple psychedelic gradient a52tofloat32 dtstofloat32 x264 goom noise grain scene chorus_flanger freetype swscale postproc equalizer spatializer param_eq samplerate freetype mpc qt4 compressor headphone_channel_mixer normvol audiobargraph_a audiobargraph_v mono colorthres extract ball hotkeys mosaic gaussianblur x262 x26410b hqdn3d anaglyph oldrc ncurses oldmovie glspectrum smooth],[-lm])
705 AC_CHECK_LIB(m,lrintf, [
706 AC_DEFINE(HAVE_LRINTF, 1, [Define to 1 if you have the lrintf function])
707 VLC_ADD_LIBS([skins2],[-lm])
710 AC_DEFINE(HAVE_NANF, 1, [Define to 1 if you have the NANF function])
713 dnl Check for dynamic plugins
715 have_dynamic_objects="no"
717 AC_SEARCH_LIBS(dlsym, [dl svld], [
718 AS_IF([test "$ac_cv_search_dlsym" != "none required"], [
719 LIBDL="$ac_cv_search_dlsym"
721 have_dynamic_objects="yes"
726 AS_IF([test "${SYS}" = "mingw32"], [
728 have_dynamic_objects="yes" #assume we can use shared objects
731 AS_IF([test "${enable_shared}" = "no"], [
732 have_dynamic_objects=no
734 AM_CONDITIONAL(HAVE_DYNAMIC_PLUGINS, [test "${have_dynamic_objects}" != "no"])
738 dnl Check for thread library
740 AS_IF([test "${SYS}" != "mingw32"], [
743 AC_SEARCH_LIBS(pthread_rwlock_init, pthread pthreads c_r, [
744 AS_IF([test "$ac_cv_search_pthread_rwlock_init" != "none required"], [
745 LIBPTHREAD="$ac_cv_search_pthread_rwlock_init"
750 AC_CHECK_LIB(rt, clock_nanosleep, [
751 VLC_ADD_LIBS([libvlccore],[-lrt])
753 AC_CHECK_FUNC(nanosleep,,[
754 AC_CHECK_LIB(rt,nanosleep, [
755 VLC_ADD_LIBS([libvlccore],[-lrt])
757 AC_CHECK_LIB(posix4,nanosleep, [
758 VLC_ADD_LIBS([libvlccore],[-lposix4])
763 AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LIBS([libvlccore],[-lrt])])
768 dnl Check for headers
770 AC_CHECK_HEADERS([arpa/inet.h pthread.h search.h syslog.h sys/shm.h sys/socket.h])
771 AC_CHECK_HEADERS([net/if.h], [], [],
773 #include <sys/types.h>
774 #include <sys/socket.h>
777 AC_CHECK_HEADERS([netinet/udplite.h sys/param.h sys/mount.h])
779 AC_CHECK_HEADERS([getopt.h linux/dccp.h linux/magic.h mntent.h sys/eventfd.h])
781 AC_CHECK_HEADERS([xlocale.h])
783 dnl LP64 and LLP64 architectures had better define ssize_t by themselves...
784 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.]) dnl ` (fix VIM syntax highlight
785 AC_CHECK_TYPE(ssize_t,, [
786 AC_DEFINE(ssize_t, int)
789 dnl It seems that autoconf detects pkg-config only during the first
790 dnl PKG_CHECK_MODULES from configure.ac - which makes sense. But in our case,
791 dnl it is nested within a conditional block, so it was not working right.
792 dnl Make PKG_CONFIG_PATH precious so that it appears in the help and get saved
793 AC_ARG_VAR(PKG_CONFIG_PATH,
794 [Paths where to find .pc not at the default location])
795 PKG_PROG_PKG_CONFIG()
797 dnl On some OS we need static linking
798 AS_IF([test -n "${PKG_CONFIG}" ],[
799 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "darwin" -o "${SYS}" = "os2" ],[
800 PKG_CONFIG="${PKG_CONFIG} --static"
806 dnl Check for zlib.h and -lz along with system -lminizip if available
808 AC_CHECK_HEADERS(zlib.h, [ have_zlib=yes ], [ have_zlib=no ])
809 AM_CONDITIONAL(HAVE_ZLIB, [ test "${have_zlib}" = "yes" ])
810 if test "${have_zlib}" = "yes"
812 VLC_ADD_LIBS([skins2 sap unzip zip],[-lz])
813 PKG_CHECK_MODULES([MINIZIP], [minizip] , [ have_minizip=yes ], [
814 AC_CHECK_HEADERS([unzip.h], [
816 MINIZIP_LIBS="-lminizip -lz"
818 VLC_ADD_CPPFLAGS([skins2], [-I\\\$(top_srcdir)/modules/access/zip/unzip])
819 VLC_ADD_LIBS([skins2], [\\\$(top_builddir)/modules/libunzip.la])
823 VLC_ADD_CPPFLAGS([skins2],[$MINIZIP_CFLAGS])
824 VLC_ADD_LIBS([skins2],[$MINIZIP_LIBS])
826 AM_CONDITIONAL(HAVE_MINIZIP, [ test "${have_minizip}" = "yes" ])
830 dnl Domain name i18n support via GNU libidn
832 PKG_CHECK_MODULES([IDN], [libidn], [
834 AC_DEFINE([HAVE_IDN], 1, [Define to 1 if you have GNU libidn.])
842 [AS_HELP_STRING([--enable-dbus],
843 [compile D-Bus message bus support (default enabled)])])
845 AS_IF([test "${enable_dbus}" != "no"], [
846 PKG_CHECK_MODULES(DBUS, [dbus-1 >= 1.6.0], [
849 AS_IF([test -n "${enable_dbus}"], [
850 AC_MSG_ERROR([${DBUS_PKG_ERRORS}.])
852 AC_MSG_WARN([${DBUS_PKG_ERRORS}.])
856 AM_CONDITIONAL([HAVE_DBUS], [test "${have_dbus}" = "yes"])
858 dnl Check for ntohl, etc.
860 CFLAGS="${CFLAGS} -Wall -Werror"
861 AC_CACHE_CHECK([for ntohl in sys/param.h],
862 [ac_cv_c_ntohl_sys_param_h],
863 [ AC_TRY_COMPILE([#include <sys/param.h>],
864 [int meuh; ntohl(meuh);],
865 ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
866 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
867 AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
871 EXTEND_HELP_STRING([Optimization options:])
873 dnl Compiler warnings
876 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 init-self logical-op])
877 RDC_PROG_CC_FLAGS([-pipe])
879 RDC_PROG_CXX_WFLAGS([all extra sign-compare undef pointer-arith volatile-register-var])
886 [AS_HELP_STRING([--enable-debug],
887 [build with run-time assertions (default disabled)])],,
890 [Define to 1 if debug code should NOT be compiled])
891 AS_IF([test "${enable_debug}" != "no"], [
892 AC_CHECK_HEADERS([valgrind/valgrind.h])
901 [AS_HELP_STRING([--enable-gprof],[profile with gprof (default disabled)])],,
903 AS_IF([test "${enable_gprof}" != "no"], [
904 CFLAGS="${CFLAGS} -pg"
905 CXXFLAGS="${CXXFLAGS} -pg"
906 OBJCFLAGS="${OBJCFLAGS} -pg"
907 LDFLAGS="${LDFLAGS} -pg"
911 [AS_HELP_STRING([--enable-cprof],[profile with cprof (default disabled)])],,
913 AS_IF([test "${enable_gprof}" != "no"], [
914 CFLAGS="${CFLAGS} -finstrument-functions"
915 CXXFLAGS="${CXXFLAGS} -finstrument-functions"
916 OBJCFLAGS="${OBJCFLAGS} -finstrument-functions"
917 LDFLAGS="${LDFLAGS} -finstrument-functions"
923 AC_ARG_ENABLE(coverage,
924 [AS_HELP_STRING([--enable-coverage],
925 [build for test coverage (default disabled)])],,
926 [enable_coverage="no"])
927 AS_IF([test "${enable_coverage}" != "no"], [
928 CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
929 CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
930 LDFLAGS="-lgcov ${LDFLAGS}"
933 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "os2"], [
935 CFLAGS="${CFLAGS} -fvisibility=hidden"
936 CXXFLAGS="${CXXFLAGS} -fvisibility=hidden"
937 OBJCFLAGS="${OBJCFLAGS} -fvisibility=hidden"
938 AC_CACHE_CHECK([if $CC accepts -fvisibility=hidden],
939 [ac_cv_c_visibility_hidden], [
940 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
941 ac_cv_c_visibility_hidden=yes
943 ac_cv_c_visibility_hidden=no
946 AS_IF([test "${ac_cv_c_visibility_hidden}" = "no"], [VLC_RESTORE_FLAGS])
951 dnl Enable/disable optimizations
953 AC_ARG_ENABLE(optimizations,
954 [AS_HELP_STRING([--disable-optimizations],
955 [disable compiler optimizations (default enabled)])],,
956 [enable_optimizations="yes"])
958 dnl Check for various optimization flags
959 AS_IF([test "${enable_optimizations}" != "no"], [
961 dnl -O3 only in production builds
962 AS_IF([test "${enable_debug}" = "no"], [
964 CFLAGS="${CFLAGS} -O3"
965 CXXFLAGS="${CXXFLAGS} -O3"
966 OBJCFLAGS="${OBJCFLAGS} -O3"
967 AC_CACHE_CHECK([if $CC accepts -O3], [ac_cv_c_o3], [
968 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
974 AS_IF([test "${ac_cv_c_o3}" = "no"], [VLC_RESTORE_FLAGS])
977 dnl Check for -ffast-math
979 CFLAGS="${CFLAGS} -ffast-math"
980 CXXFLAGS="${CXXFLAGS} -ffast-math"
981 OBJCFLAGS="${OBJCFLAGS} -ffast-math"
982 AC_CACHE_CHECK([if $CC accepts -ffast-math], [ac_cv_c_fast_math], [
983 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
984 ac_cv_c_fast_math=yes
989 AS_IF([test "${ac_cv_c_fast_math}" = "no"], [VLC_RESTORE_FLAGS])
991 #ifndef __FAST_MATH__
993 # pragma STDC FENV_ACCESS OFF
994 # pragma STDC FP_CONTRACT ON
996 # pragma fenv_access(off)
997 # pragma fp_contract(on)
1002 dnl Check for -funroll-loops
1004 CFLAGS="${CFLAGS} -funroll-loops"
1005 CXXFLAGS="${CXXFLAGS} -funroll-loops"
1006 OBJCFLAGS="${OBJCFLAGS} -funroll-loops"
1007 AC_CACHE_CHECK([if $CC accepts -funroll-loops], [ac_cv_c_unroll_loops], [
1008 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1009 ac_cv_c_unroll_loops=yes
1011 ac_cv_c_unroll_loops=no
1014 AS_IF([test "${ac_cv_c_unroll_loops}" = "no"], [VLC_RESTORE_FLAGS])
1016 AS_IF([test "$enable_debug" = "no"], [
1017 dnl Check for -fomit-frame-pointer
1019 CFLAGS="${CFLAGS} -fomit-frame-pointer"
1020 CXXFLAGS="${CXXFLAGS} -fomit-frame-pointer"
1021 OBJCFLAGS="${OBJCFLAGS} -fomit-frame-pointer"
1022 AC_CACHE_CHECK([if $CC accepts -fomit-frame-pointer],
1023 [ac_cv_c_omit_frame_pointer], [
1024 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1025 ac_cv_c_omit_frame_pointer=yes
1027 ac_cv_c_omit_frame_pointer=no
1030 AS_IF([test "${ac_cv_c_omit_frame_pointer}" = "no"], [VLC_RESTORE_FLAGS])
1035 LDFLAGS="${LDFLAGS} -Wl,-Bsymbolic"
1036 AC_CACHE_CHECK([if linker supports -Bsymbolic], [ac_cv_ld_bsymbolic], [
1038 ac_cv_ld_bsymbolic="-Wl,-Bsymbolic"
1040 ac_cv_ld_bsymbolic=""
1044 SYMBOLIC_LDFLAGS="${ac_cv_ld_bsymbolic}"
1045 AC_SUBST(SYMBOLIC_LDFLAGS)
1047 dnl Checks for __attribute__(aligned()) directive
1049 CFLAGS="${CFLAGS} -Werror"
1050 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1051 [ac_cv_c_attribute_aligned],
1052 [ac_cv_c_attribute_aligned=0
1053 for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1055 [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1056 [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1059 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1060 AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1061 [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1064 dnl Check for __attribute__((packed))
1065 AC_CACHE_CHECK([for __attribute__((packed))],
1066 [ac_cv_c_attribute_packed],
1067 [ac_cv_c_attribute_packed=no
1068 AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b; (void)b;],
1069 [ac_cv_c_attribute_packed=yes])])
1070 if test "${ac_cv_c_attribute_packed}" != "no"; then
1071 AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1077 case "${host_cpu}" in
1086 dnl Check for backtrace() support
1087 AC_CHECK_HEADERS(execinfo.h)
1088 AC_CHECK_FUNCS(backtrace)
1093 ALIASES="${ALIASES} cvlc rvlc"
1096 dnl Accelerated modules
1099 dnl Check for fully working MMX intrinsics
1100 dnl We need support for -mmmx, we need <mmintrin.h>, and we also need a
1101 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1103 [AS_HELP_STRING([--disable-mmx],
1104 [disable MMX optimizations (default auto)])],,[
1105 case "${host_cpu}" in
1116 AS_IF([test "${enable_mmx}" != "no"], [
1119 CFLAGS="${CFLAGS} -mmmx"
1120 AC_CACHE_CHECK([if $CC groks MMX intrinsics], [ac_cv_c_mmx_intrinsics], [
1121 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1122 [#include <mmintrin.h>
1124 uint64_t frobzor;]], [
1126 a = b = c = (__m64)frobzor;
1127 a = _mm_slli_pi16(a, 3);
1128 a = _mm_adds_pi16(a, b);
1129 c = _mm_srli_pi16(c, 8);
1130 c = _mm_slli_pi16(c, 3);
1131 b = _mm_adds_pi16(b, c);
1132 a = _mm_unpacklo_pi8(a, b);
1133 frobzor = (uint64_t)a;]])], [
1134 ac_cv_c_mmx_intrinsics=yes
1136 ac_cv_c_mmx_intrinsics=no
1140 AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1141 AC_DEFINE(HAVE_MMX_INTRINSICS, 1, [Define to 1 if MMX intrinsics are available.])
1145 CFLAGS="${CFLAGS} -mmmx"
1146 AC_CACHE_CHECK([if $CC groks MMX inline assembly], [ac_cv_mmx_inline], [
1147 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1149 asm volatile("packuswb %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1152 ac_cv_mmx_inline=yes
1157 AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1158 AC_DEFINE(CAN_COMPILE_MMX, 1, [Define to 1 inline MMX assembly is available.])
1162 AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1163 [ac_cv_mmxext_inline], [
1164 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1166 asm volatile("maskmovq %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1169 ac_cv_mmxext_inline=yes
1171 ac_cv_mmxext_inline=no
1175 AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1176 AC_DEFINE(CAN_COMPILE_MMXEXT, 1, [Define to 1 if MMX EXT inline assembly is available.])
1180 AM_CONDITIONAL([HAVE_MMX], [test "${have_mmx}" = "yes"])
1181 AM_CONDITIONAL([HAVE_MMXEXT], [test "${have_mmxext}" = "yes"])
1183 dnl Check for fully workin SSE2 intrinsics
1184 dnl We need support for -mmmx, we need <emmintrin.h>, and we also need a
1185 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1187 [AS_HELP_STRING([--disable-sse],
1188 [disable SSE (1-4) optimizations (default auto)])],, [
1189 case "${host_cpu}" in
1199 AS_IF([test "${enable_sse}" != "no"], [
1200 ARCH="${ARCH} sse sse2"
1203 CFLAGS="${CFLAGS} -msse2"
1204 AC_CACHE_CHECK([if $CC groks SSE2 intrinsics], [ac_cv_c_sse2_intrinsics], [
1205 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1206 [#include <emmintrin.h>
1208 uint64_t frobzor;]], [
1210 a = b = c = _mm_set1_epi64((__m64)frobzor);
1211 a = _mm_slli_epi16(a, 3);
1212 a = _mm_adds_epi16(a, b);
1213 c = _mm_srli_epi16(c, 8);
1214 c = _mm_slli_epi16(c, 3);
1215 b = _mm_adds_epi16(b, c);
1216 a = _mm_unpacklo_epi8(a, b);
1217 frobzor = (uint64_t)_mm_movepi64_pi64(a);]])], [
1218 ac_cv_c_sse2_intrinsics=yes
1220 ac_cv_c_sse2_intrinsics=no
1224 AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1225 AC_DEFINE(HAVE_SSE2_INTRINSICS, 1, [Define to 1 if SSE2 intrinsics are available.])
1229 CFLAGS="${CFLAGS} -msse"
1230 AC_CACHE_CHECK([if $CC groks SSE inline assembly], [ac_cv_sse_inline], [
1231 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1233 asm volatile("xorps %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1236 ac_cv_sse_inline=yes
1242 AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1243 AC_DEFINE(CAN_COMPILE_SSE, 1, [Define to 1 if SSE inline assembly is available.])
1246 AC_CACHE_CHECK([if $CC groks SSE2 inline assembly], [ac_cv_sse2_inline], [
1247 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1249 asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1252 ac_cv_sse2_inline=yes
1254 ac_cv_sse2_inline=no
1257 AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1258 AC_DEFINE(CAN_COMPILE_SSE2, 1, [Define to 1 if SSE2 inline assembly is available.])
1263 AC_CACHE_CHECK([if $CC groks SSE3 inline assembly], [ac_cv_sse3_inline], [
1264 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1266 asm volatile("movsldup %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1269 ac_cv_sse3_inline=yes
1271 ac_cv_sse3_inline=no
1275 AS_IF([test "${ac_cv_sse3_inline}" != "no"], [
1276 AC_DEFINE(CAN_COMPILE_SSE3, 1, [Define to 1 if SSE3 inline assembly is available.]) ])
1278 AC_CACHE_CHECK([if $CC groks SSSE3 inline assembly], [ac_cv_ssse3_inline], [
1279 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1281 asm volatile("pabsw %%xmm0,%%xmm0"::"r"(p):"xmm0");
1284 ac_cv_ssse3_inline=yes
1286 ac_cv_ssse3_inline=no
1290 AS_IF([test "${ac_cv_ssse3_inline}" != "no"], [
1291 AC_DEFINE(CAN_COMPILE_SSSE3, 1, [Define to 1 if SSSE3 inline assembly is available.]) ])
1294 AC_CACHE_CHECK([if $CC groks SSE4.1 inline assembly],
1295 [ac_cv_sse4_1_inline], [
1296 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1298 asm volatile("pmaxsb %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1301 ac_cv_sse4_1_inline=yes
1303 ac_cv_sse4_1_inline=no
1307 AS_IF([test "${ac_cv_sse4_1_inline}" != "no"], [
1308 AC_DEFINE(CAN_COMPILE_SSE4_1, 1, [Define to 1 if SSE4_1 inline assembly is available.]) ])
1311 AC_CACHE_CHECK([if $CC groks SSE4.2 inline assembly],
1312 [ac_cv_sse4_2_inline], [
1313 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1315 asm volatile("pcmpgtq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1318 ac_cv_sse4_2_inline=yes
1320 ac_cv_sse4_2_inline=no
1324 AS_IF([test "${ac_cv_sse4_2_inline}" != "no"], [
1325 AC_DEFINE(CAN_COMPILE_SSE4_2, 1, [Define to 1 if SSE4_2 inline assembly is available.]) ])
1328 AC_CACHE_CHECK([if $CC groks SSE4A inline assembly], [ac_cv_sse4a_inline], [
1329 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1331 asm volatile("insertq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1334 ac_cv_sse4a_inline=yes
1336 ac_cv_sse4a_inline=no
1340 AS_IF([test "${ac_cv_sse4a_inline}" != "no"], [
1341 AC_DEFINE(CAN_COMPILE_SSE4A, 1, [Define to 1 if SSE4A inline assembly is available.]) ])
1343 AM_CONDITIONAL([HAVE_SSE2], [test "$have_sse2" = "yes"])
1346 CFLAGS="${CFLAGS} -mmmx"
1348 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly], [ac_cv_3dnow_inline], [
1349 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1351 asm volatile("pfadd %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1354 ac_cv_3dnow_inline=yes
1356 ac_cv_3dnow_inline=no
1360 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1361 AC_DEFINE(CAN_COMPILE_3DNOW, 1,
1362 [Define to 1 if 3D Now! inline assembly is available.])
1365 AM_CONDITIONAL([HAVE_3DNOW], [test "$have_3dnow" = "yes"])
1369 [AS_HELP_STRING([--disable-neon],
1370 [disable NEON optimizations (default auto)])],, [
1371 AS_IF([test "${host_cpu}" = "arm"], [enable_neon="yes"] ,[enable_neon="no"])
1373 AS_IF([test "${enable_neon}" != "no"], [
1375 CFLAGS="${CFLAGS} -mfpu=neon -mhard-float"
1376 AC_CACHE_CHECK([if $CCAS groks ARM NEON assembly], [ac_cv_arm_neon], [
1379 asm volatile("vqmovun.s64 d0, q1":::"d0");
1382 ac_cv_arm_neon="yes"
1389 AM_CONDITIONAL(HAVE_NEON, [test "${ac_cv_arm_neon}" = "yes"])
1392 AC_ARG_ENABLE(altivec,
1393 [AS_HELP_STRING([--disable-altivec],
1394 [disable AltiVec optimizations (default auto)])],, [
1395 AS_CASE("${host_cpu}", [powerpc*],
1396 [enable_altivec=yes], [enable_altivec=no])
1400 AS_IF([test "${enable_altivec}" = "yes"], [
1401 ARCH="${ARCH} altivec";
1403 AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1404 [ac_cv_altivec_inline],
1405 [AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1406 ac_cv_altivec_inline="yes",
1407 [CFLAGS="${CFLAGS} -Wa,-maltivec"
1408 AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1409 [ac_cv_altivec_inline="-Wa,-maltivec"],
1410 ac_cv_altivec_inline=no)
1413 AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1414 AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1415 [Define to 1 if AltiVec inline assembly is available.])
1416 AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1417 ALTIVEC_CFLAGS="${ac_cv_altivec_inline}"
1418 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_altivec_inline}])
1424 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1425 [ac_cv_c_altivec], [
1426 CFLAGS="${CFLAGS} -maltivec"
1427 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1428 [#include <altivec.h>]], [
1429 [vec_ld(0, (unsigned char *)0);]])], [
1430 ac_cv_c_altivec="-maltivec"
1432 ac_cv_c_altivec="no"
1436 AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1437 CPPFLAGS="${CPPFLAGS} ${ac_cv_c_altivec}"
1438 AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, [Define to 1 if C AltiVec extensions are available.])
1439 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_c_altivec}])
1440 ALTIVEC_CFLAGS="$ALTIVEC_FLAGS ${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}"
1441 VLC_ADD_CFLAGS([deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1444 AC_CHECK_HEADERS(altivec.h)
1447 LDFLAGS="${LDFLAGS} -Wl,-framework,vecLib"
1448 AC_CACHE_CHECK([if linker needs -framework vecLib],
1450 [AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)])
1452 AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1453 VLC_ADD_LIBS([libvlccore],[-Wl,-framework,vecLib])
1456 AC_SUBST(ALTIVEC_CFLAGS)
1457 AM_CONDITIONAL([HAVE_ALTIVEC], [test "$have_altivec" = "yes"])
1462 AC_ARG_ENABLE(optimize-memory,
1463 [AS_HELP_STRING([--enable-optimize-memory],
1464 [optimize memory usage over performance])])
1465 if test "${enable_optimize_memory}" = "yes"; then
1466 AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1470 dnl Allow running as root (useful for people running on embedded platforms)
1472 AC_ARG_ENABLE(run-as-root,
1473 [AS_HELP_STRING([--enable-run-as-root],
1474 [allow running VLC as root (default disabled)])])
1475 AS_IF([test "${enable_run_as_root}" = "yes"],[
1476 AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1477 [Define to 1 to allow running VLC as root (uid 0).])
1484 [AS_HELP_STRING([--disable-sout],
1485 [disable streaming output (default enabled)])])
1486 AS_IF([test "${enable_sout}" != "no"], [
1487 AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1489 AM_CONDITIONAL(ENABLE_SOUT, [test "${enable_sout}" != "no"])
1493 [AS_HELP_STRING([--disable-lua],
1494 [disable LUA scripting support (default enabled)])])
1495 if test "${enable_lua}" != "no"
1497 PKG_CHECK_MODULES(LUA, lua5.2,
1500 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua 5.1 instead])
1502 PKG_CHECK_MODULES(LUA, lua5.1,
1505 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua >= 5.1 instead])
1506 PKG_CHECK_MODULES(LUA, lua >= 5.1,
1509 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying manual detection instead])
1511 AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1514 AC_CHECK_LIB( lua5.2 , luaL_newstate,
1515 [LUA_LIBS="-llua5.2"],
1516 AC_CHECK_LIB( lua5.1 , luaL_newstate,
1517 [LUA_LIBS="-llua5.1"],
1518 AC_CHECK_LIB( lua51 , luaL_newstate,
1519 [LUA_LIBS="-llua51"],
1520 AC_CHECK_LIB( lua , luaL_newstate,
1528 if test "x${have_lua}" != "xyes" ; then
1529 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.])
1531 AC_ARG_VAR([LUAC], [LUA byte compiler])
1532 AC_PATH_PROGS(LUAC,[${LUAC} luac], [false])
1533 AS_IF([test "${LUAC}" = "false"], [
1534 AC_MSG_ERROR([Could not find the LUA byte compiler.])
1536 AS_IF([test -d "${CONTRIB_DIR}" -a -f "${CONTRIB_DIR}/lib/liblua.a" -a `echo|${LUAC} -o - -|od -j 8 -N 2 -t x2|head -n 1|tr -s ' '|cut -d' ' -f2` != 0404], [
1537 AC_MSG_ERROR([You need 32-bits luac when using using lua from contrib.])
1540 AM_CONDITIONAL(BUILD_LUA, [test "${have_lua}" = "yes"])
1546 AC_ARG_ENABLE(httpd,
1547 [AS_HELP_STRING([--disable-httpd],
1548 [disable the built-in HTTP server (default enabled)])])
1549 if test "${enable_httpd}" != "no"
1551 AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP daemon support)
1553 AM_CONDITIONAL(BUILD_HTTPD, [test "${enable_httpd}" != "no"])
1557 dnl VideoLAN manager
1560 [AS_HELP_STRING([--disable-vlm],
1561 [disable the stream manager (default enabled)])],,
1562 [enable_vlm="${enable_sout}"])
1563 AS_IF([test "${enable_vlm}" != "no"], [
1564 AS_IF([test "${enable_sout}" = "no"], [
1565 AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1567 AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1569 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1573 dnl Addons manager storage and repositories modules
1575 AC_ARG_ENABLE(addonmanagermodules,
1576 [AS_HELP_STRING([--disable-addonmanagermodules],
1577 [disable the addons manager modules (default enabled)])])
1578 if test "${enable_addonmanagermodules}" != "no"
1580 AC_DEFINE(ENABLE_ADDONMANAGERMODULES, 1, [Define if you want the addons manager modules])
1582 AM_CONDITIONAL([ENABLE_ADDONMANAGERMODULES], [test "${enable_addonmanagermodules}" != "no"])
1589 EXTEND_HELP_STRING([Input plugins:])
1592 dnl libarchive access module
1594 PKG_ENABLE_MODULES_VLC([ARCHIVE], [access_archive], [libarchive >= 2.8.5], (libarchive support), [auto])
1599 AC_ARG_ENABLE(live555,
1600 [AS_HELP_STRING([--enable-live555],
1601 [enable RTSP input through live555 (default enabled)])])
1603 AS_IF([test "${enable_live555}" != "no" -a -n "${CXX}"], [
1604 PKG_CHECK_MODULES(LIVE555, live555, [
1605 VLC_ADD_PLUGIN([live555])
1606 VLC_ADD_CXXFLAGS([live555], [$LIVE555_CFLAGS])
1607 VLC_ADD_LIBS([live555],[$LIVE555_LIBS])
1609 AC_MSG_WARN([${LIVE555_PKG_ERRORS}.])
1614 dnl detect include paths
1615 AS_IF([test -f "${CONTRIB_DIR}/include/UsageEnvironment.hh"], [
1616 CPPFLAGS_live555="-I${CONTRIB_DIR}/include/liveMedia -I${CONTRIB_DIR}/include/groupsock -I${CONTRIB_DIR}/include/BasicUsageEnvironment -I${CONTRIB_DIR}/include/UsageEnvironment"
1618 AS_IF([test "${SYS}" != "os2"], [
1619 LIVE555_PREFIX=${LIVE555_PREFIX-"/usr"}
1620 CPPFLAGS_live555="-I${LIVE555_PREFIX}/include/liveMedia -I${LIVE555_PREFIX}/include/groupsock -I${LIVE555_PREFIX}/include/BasicUsageEnvironment -I${LIVE555_PREFIX}/include/UsageEnvironment"
1622 LIVE555_PREFIX=${LIVE555_PREFIX-"/usr/lib/live"}
1623 CPPFLAGS_live555="-I${LIVE555_PREFIX}/liveMedia/include -I${LIVE555_PREFIX}/groupsock/include -I${LIVE555_PREFIX}/BasicUsageEnvironment/include -I${LIVE555_PREFIX}/UsageEnvironment/include"
1624 LDFLAGS_live555="-L${LIVE555_PREFIX}/liveMedia -L${LIVE555_PREFIX}/groupsock -L${LIVE555_PREFIX}/BasicUsageEnvironment -L${LIVE555_PREFIX}/UsageEnvironment"
1629 AS_IF([test "${SYS}" = "solaris"], [
1630 CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1632 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1633 LDFLAGS="${LDFLAGS} ${LDFLAGS_live555}"
1636 AC_CACHE_CHECK([for live555 version 1324598400 or later], [ac_cv_live555], [
1637 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
1638 [#include <liveMedia_version.hh>
1639 #if !defined (LIVEMEDIA_LIBRARY_VERSION_INT) || (LIVEMEDIA_LIBRARY_VERSION_INT < 1324598400)
1649 AS_IF([test "$ac_cv_live555" = "no"], [
1650 AC_MSG_WARN([live555 is missing or its installed version is too old:
1651 Version 2011.12.23 or later is required to proceed.
1652 You can get an updated one from http://www.live555.com/liveMedia .])
1653 AS_IF([test -n "${enable_live555}"], [
1654 AC_MSG_ERROR([Update live555 or pass --disable-live555 to disable RTSP input support.])
1657 other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1658 other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
1659 AS_IF([test "${SYS}" = "mingw32"], [
1660 # add ws2_32 for closesocket, select, recv
1661 other_libs="$other_libs -lws2_32"
1664 dnl We need to check for pic because live555 don't provide shared libs
1665 dnl and we want to build a plugins so we need -fPIC on some arch.
1666 VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1667 VLC_ADD_LDFLAGS([live555], [${LDFLAGS_live555}])
1668 AC_CHECK_LIB(liveMedia_pic, main, [
1669 VLC_ADD_PLUGIN([live555])
1670 VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
1672 AC_CHECK_LIB(liveMedia, main, [
1673 VLC_ADD_PLUGIN([live555])
1674 VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1675 ],[],[${other_libs}])
1676 ],[${other_libs_pic}])
1684 dnl IIDC and DV FireWire input modules
1686 PKG_ENABLE_MODULES_VLC([DC1394], [], [libdc1394-2 >= 2.1.0], [IIDC FireWire input module], [auto])
1687 PKG_ENABLE_MODULES_VLC([DV1394], [], [libraw1394 >= 2.0.1 libavc1394 >= 0.5.3], [DV FireWire input module], [auto])
1690 dnl - linsys modules: access module check for libzvbi
1692 AC_ARG_ENABLE(linsys,
1693 [AS_HELP_STRING([--enable-linsys],
1694 [Linux Linear Systems Ltd. SDI and HD-SDI input cards (default enabled)])])
1695 AS_IF([test "$SYS" = "linux" -a "${enable_linsys}" != "no"], [
1696 VLC_ADD_PLUGIN([linsys_hdsdi])
1697 PKG_CHECK_MODULES(LINSYS_SDI, [zvbi-0.2 >= 0.2.28], [
1698 VLC_ADD_PLUGIN([linsys_sdi])
1700 AC_MSG_WARN([${LINSYS_SDI_PKG_ERRORS}.])
1705 dnl dvdread module: check for libdvdread
1707 PKG_ENABLE_MODULES_VLC([DVDREAD], [], [dvdread > 4.9.0], [dvdread input module], [auto])
1710 dnl libdvdnav plugin
1712 PKG_ENABLE_MODULES_VLC([DVDNAV], [], [dvdnav > 4.9.0], [DVD with navigation input module (dvdnav)], [auto])
1715 dnl Blu-ray Disc Support with libbluray
1717 PKG_ENABLE_MODULES_VLC([BLURAY], [libbluray], [libbluray >= 0.3.0], (libbluray for Blu-ray disc support ) )
1720 dnl OpenCV wrapper and example filters
1722 PKG_ENABLE_MODULES_VLC([OPENCV], [opencv_example opencv_wrapper], [opencv > 2.0], (OpenCV (computer vision) filter), [auto])
1726 dnl libsmbclient plugin
1728 PKG_ENABLE_MODULES_VLC([SMBCLIENT], [smb], [smbclient], (SMB/CIFS support), [auto])
1729 AS_IF([test "${SYS}" = "mingw32"], [ VLC_ADD_PLUGIN([access_smb]) ])
1732 dnl liBDSM access module
1734 PKG_ENABLE_MODULES_VLC([DSM], [dsm], [libdsm], [libdsm SMB/CIFS access/sd module], [auto])
1737 dnl sftp access support
1739 PKG_ENABLE_MODULES_VLC([SFTP], [sftp], [libssh2], (support SFTP file transfer via libssh2), [auto])
1744 AC_ARG_ENABLE(v4l2, [AS_HELP_STRING([--disable-v4l2],
1745 [disable Video4Linux version 2 (default auto)])])
1747 AS_IF([test "$enable_v4l2" != "no"], [
1748 AC_CHECK_HEADERS([linux/videodev2.h sys/videoio.h], [
1752 AM_CONDITIONAL(HAVE_V4L2, [test "${have_v4l2}" != "no"])
1755 dnl special access module for Blackmagic SDI cards
1757 AC_ARG_ENABLE(decklink,
1758 [AS_HELP_STRING([--disable-decklink],
1759 [disable Blackmagic DeckLink SDI input (default auto)])])
1760 AC_ARG_WITH(decklink_sdk,
1761 [AS_HELP_STRING[--with-decklink-sdk=DIR],
1762 [ location of Blackmagic DeckLink SDI SDK])])
1764 if test "${enable_decklink}" != "no"
1766 if test "${with_decklink_sdk}" != "no" -a -n "${with_decklink_sdk}"
1768 VLC_ADD_CPPFLAGS([decklink decklinkoutput],[-I${with_decklink_sdk}/include])
1771 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_decklink}"
1773 AC_CHECK_HEADERS(DeckLinkAPIDispatch.cpp, [
1776 AC_MSG_WARN(Blackmagic DeckLink SDI include files not found, decklink disabled)
1781 AM_CONDITIONAL(HAVE_DECKLINK, [ test "${have_decklink}" != "no" ])
1785 dnl gnomeVFS access module
1787 PKG_ENABLE_MODULES_VLC([GNOMEVFS], [gnomevfs], [gnome-vfs-2.0], [GnomeVFS access module], [auto])
1792 PKG_ENABLE_MODULES_VLC([VCDX], [vcdx], [libcdio >= 0.78.2 libiso9660 >= 0.72 libvcdinfo >= 0.7.22], [navigate VCD with libvcdinfo], [no])
1795 dnl Built-in CD-DA and VCD module
1798 [AS_HELP_STRING([--disable-vcd],
1799 [disable built-in VCD and CD-DA support (default enabled)])])
1801 AC_ARG_ENABLE(libcddb,
1802 [AS_HELP_STRING([--disable-libcddb],
1803 [disable CDDB for Audio CD (default enabled)])])
1805 if test "${enable_vcd}" != "no"
1807 AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
1808 AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
1810 VLC_ADD_PLUGIN([vcd cdda])
1815 AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
1816 AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
1818 VLC_ADD_PLUGIN([vcd cdda])
1819 AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
1824 AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
1825 AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
1827 VLC_ADD_PLUGIN([vcd cdda])
1828 AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
1833 if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32" -o "${SYS}" = "os2" -o "${SYS}" = "darwin"
1835 VLC_ADD_PLUGIN([vcd cdda])
1838 if test "$enable_libcddb" != "no"; then
1839 PKG_CHECK_MODULES(LIBCDDB, [libcddb >= 0.9.5], [
1841 AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
1842 VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
1843 VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
1845 [AC_MSG_WARN([${LIBCDDB_PKG_ERRORS}: CDDB access disabled.])
1853 AC_CACHE_CHECK([for Linux DVB version 5.1], [ac_cv_linux_dvb_5_1], [
1854 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
1855 [#include <linux/dvb/version.h>
1856 #if (DVB_API_VERSION < 5)
1857 # error Linux DVB API v3.2 and older are not supported.
1859 #if (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR < 1)
1860 # error Linux DVB API v5.0 is unsupported. Please update.
1863 ac_cv_linux_dvb_5_1=yes
1865 ac_cv_linux_dvb_5_1=no
1867 AM_CONDITIONAL([HAVE_LINUX_DVB], [test "$ac_cv_linux_dvb_5_1" = "yes"])
1870 dnl Screen capture module
1872 AC_ARG_ENABLE(screen,
1873 [AS_HELP_STRING([--enable-screen],
1874 [disable screen capture (default enabled)])])
1875 if test "${enable_screen}" != "no"; then
1876 if test "${SYS}" = "darwin"; then
1877 AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
1878 VLC_ADD_PLUGIN([screen])
1882 AM_CONDITIONAL(HAVE_MAC_SCREEN, [test "${SYS}" = "darwin" -a "x${enable_screen}" != "xno"])
1885 dnl VNC/RFB access module
1887 PKG_ENABLE_MODULES_VLC([VNC], [vnc], [libvncclient >= 0.9.9], (VNC/rfb client support), [auto])
1889 dnl RDP/Remote Desktop access module
1891 PKG_ENABLE_MODULES_VLC([FREERDP], [rdp], [freerdp >= 1.0.1], (RDP/Remote Desktop client support) )
1894 dnl Real RTSP plugin
1896 AC_ARG_ENABLE(realrtsp,
1897 [ --enable-realrtsp Real RTSP module (default disabled)])
1898 if test "${enable_realrtsp}" = "yes"; then
1899 VLC_ADD_PLUGIN([access_realrtsp])
1904 AC_ARG_ENABLE(macosx-eyetv,
1905 [ --enable-macosx-eyetv Mac OS X EyeTV (TNT Tuner) module (default enabled on Mac OS X)])
1906 if test "x${enable_macosx_eyetv}" != "xno" &&
1907 (test "${SYS}" = "darwin" || test "${enable_macosx_eyetv}" = "yes")
1909 VLC_ADD_PLUGIN([access_eyetv])
1914 AC_ARG_ENABLE(macosx-qtkit,
1915 [ --enable-macosx-qtkit Mac OS X qtcapture (video) and qtsound (audio) module (default enabled on Mac OS X)])
1916 if test "x${enable_macosx_qtkit}" != "xno" &&
1917 (test "${SYS}" = "darwin" || test "${enable_macosx_qtkit}" = "yes")
1919 VLC_ADD_PLUGIN([qtcapture])
1920 VLC_ADD_PLUGIN([qtsound])
1922 AM_CONDITIONAL(HAVE_QTKIT, [test "${SYS}" = "darwin" -a "x${enable_macosx_qtkit}" != "xno"])
1926 AC_SUBST(have_avfoundation, ["no"])
1927 AC_ARG_ENABLE(macosx-avfoundation,
1928 [ --enable-macosx-avfoundation Mac OS X avcapture (video) module (default enabled on Mac OS X)])
1929 if test "x${enable_macosx_avfoundation}" != "xno" &&
1930 (test "${SYS}" = "darwin" || test "${enable_macosx_avfoundation}" = "yes")
1932 SAVED_LIBS="${LIBS}"
1933 LIBS="-framework AVFoundation"
1934 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [])],[have_avfoundation=yes],[have_avfoundation=no])
1935 LIBS="${SAVED_LIBS}"
1936 if test "${have_avfoundation}" != "no"
1938 VLC_ADD_PLUGIN([avcapture])
1941 AM_CONDITIONAL(HAVE_AVFOUNDATION, [test "${have_avfoundation}" != "no"])
1944 dnl DCP plugin (using asdcplib)
1946 PKG_WITH_MODULES([ASDCP], [asdcplib], [have_asdcp="yes"])
1947 AM_CONDITIONAL(HAVE_ASDCP, [test "${have_asdcp}" = "yes"])
1953 EXTEND_HELP_STRING([Mux/Demux plugins:])
1956 dnl libdvbpsi check for ts mux/demux
1959 PKG_WITH_MODULES([DVBPSI], [libdvbpsi], [have_dvbpsi="yes"])
1960 AM_CONDITIONAL(HAVE_DVBPSI, [test "${have_dvbpsi}" = "yes"])
1964 dnl GME demux plugin
1967 [AS_HELP_STRING([--enable-gme],
1968 [use Game Music Emu (default auto)])])
1969 AS_IF([test "${enable_gme}" != "no"], [
1970 AC_CHECK_HEADER([gme/gme.h], [
1971 VLC_ADD_LIBS([gme], [-lgme])
1972 VLC_ADD_PLUGIN([gme])
1974 AS_IF([test "x${enable_gme}" != "x"], [
1975 AC_MSG_ERROR([GME cannot be found. Please install the development files.])
1985 [AS_HELP_STRING([--enable-sid],[C64 sid demux support (default auto)])])
1986 AS_IF([test "${enable_sid}" != "no"], [
1987 PKG_CHECK_MODULES(SID, [libsidplay2], [
1989 oldCPPFLAGS="$CPPFLAGS"
1990 CPPFLAGS="$CPPFLAGS $SID_CFLAGS"
1991 AC_CHECK_HEADER([sidplay/builders/resid.h], [
1992 VLC_ADD_PLUGIN([sid])
1993 VLC_ADD_CFLAGS([sid], [$SID_CFLAGS])
1994 VLC_ADD_LIBS([sid], [$SID_LIBS] [-lresid-builder])
1996 AS_IF([test -n "${enable_sid}"],
1997 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
1998 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2001 CPPFLAGS="$oldCPPFLAGS"
2004 AS_IF([test "x${enable_sid}" = "xyes"],
2005 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2006 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2013 dnl ogg demux plugin
2015 PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto])
2016 PKG_CHECK_MODULES(LIBVORBIS, [vorbis >= 1.1], [
2017 AC_DEFINE(HAVE_LIBVORBIS, 1, [Define to 1 if you have the libvorbis])
2019 PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto], [${LIBVORBIS_CFLAGS}], [${LIBVORBIS_LIBS}])
2020 if test "${enable_sout}" != "no"; then
2021 PKG_ENABLE_MODULES_VLC([MUX_OGG], [], [ogg >= 1.0], [Ogg mux support], [auto])
2022 dnl Check for libshout
2023 PKG_ENABLE_MODULES_VLC([SHOUT], [access_output_shout], [shout >= 2.1], [libshout output plugin], [auto])
2027 dnl matroska demux plugin
2030 [AS_HELP_STRING([--disable-mkv],
2031 [do not use libmatroska (default auto)])])
2032 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2034 AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2035 AC_MSG_CHECKING(for libebml version >= 1.0.0)
2037 [#include <ebml/EbmlVersion.h>
2038 #ifdef LIBEBML_VERSION
2039 #if LIBEBML_VERSION >= 0x010000
2043 [AC_MSG_RESULT([yes])
2044 AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2045 AC_MSG_CHECKING(for libmatroska version >= 1.0.0)
2047 [#include <matroska/KaxVersion.h>
2048 #ifdef LIBMATROSKA_VERSION
2049 #if LIBMATROSKA_VERSION >= 0x010000
2053 [AC_MSG_RESULT([yes])
2054 AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2055 AC_CHECK_LIB(ebml_pic, main, [
2056 VLC_ADD_PLUGIN([mkv])
2057 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2059 AC_CHECK_LIB(ebml, main, [
2060 VLC_ADD_PLUGIN([mkv])
2061 VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2066 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.])
2070 [AC_MSG_RESULT([no])
2071 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.])
2078 dnl modplug demux plugin
2081 [AS_HELP_STRING([--disable-mod],
2082 [do not use libmodplug (default auto)])])
2083 if test "${enable_mod}" != "no" ; then
2084 PKG_CHECK_MODULES(LIBMODPLUG, [libmodplug >= 0.8.4 libmodplug != 0.8.8], [
2085 VLC_ADD_PLUGIN([mod])
2086 VLC_ADD_CXXFLAGS([mod],[$LIBMODPLUG_CFLAGS])
2087 VLC_ADD_CFLAGS([mod],[$LIBMODPLUG_CFLAGS]) #modules/demux/mod.c needs CFLAGS_mod, not CXXFLAGS_mod
2088 VLC_ADD_LIBS([mod],[$LIBMODPLUG_LIBS])
2090 AS_IF([test -n "${enable_mod}"],
2091 [AC_MSG_ERROR([${LIBMODPLUG_PKG_ERRORS}.])],
2092 [AC_MSG_WARN([${LIBMODPLUG_PKG_ERRORS}.])])
2097 dnl mpc demux plugin
2100 [AS_HELP_STRING([--disable-mpc], [do not use libmpcdec (default auto)])])
2101 if test "${enable_mpc}" != "no"
2103 AC_CHECK_HEADERS([mpc/mpcdec.h], [
2104 VLC_ADD_PLUGIN([mpc])
2105 VLC_ADD_LIBS([mpc],[-lmpcdec])],
2106 [AC_CHECK_HEADERS([mpcdec/mpcdec.h], [
2107 VLC_ADD_PLUGIN([mpc])
2108 VLC_ADD_LIBS([mpc],[-lmpcdec])])])
2115 EXTEND_HELP_STRING([Codec plugins:])
2120 AC_ARG_ENABLE(wma-fixed,
2121 [ --enable-wma-fixed libwma-fixed module (default disabled)])
2122 if test "${enable_wma_fixed}" = "yes"
2124 VLC_ADD_PLUGIN([wma_fixed])
2128 dnl shine encoder plugin
2130 PKG_ENABLE_MODULES_VLC([SHINE], [], [shine >= 3.0.0], [MPEG Audio Layer 3 encoder], [auto], [], [], [])
2134 dnl openmax il codec plugin
2136 AC_ARG_ENABLE(omxil,
2137 [ --enable-omxil openmax il codec module (default disabled)])
2138 if test "${enable_omxil}" = "yes"
2140 VLC_ADD_PLUGIN([omxil])
2144 dnl openmax il vout plugin
2146 AC_ARG_ENABLE(omxil-vout,
2147 [ --enable-omxil-vout openmax il video output module (default disabled)])
2148 if test "${enable_omxil_vout}" = "yes"
2150 VLC_ADD_PLUGIN([omxil_vout])
2154 dnl raspberry pi openmax il configuration
2156 AC_ARG_ENABLE(rpi-omxil,
2157 [ --enable-rpi-omxil openmax il configured for raspberry pi (default disabled)])
2158 if test "${enable_rpi_omxil}" = "yes"
2160 VLC_ADD_PLUGIN([omxil omxil_vout])
2161 VLC_ADD_CFLAGS([omxil omxil_vout],[-DRPI_OMX])
2165 dnl CrystalHD codec plugin
2167 AC_ARG_ENABLE(crystalhd,
2168 [ --enable-crystalhd crystalhd codec plugin (default auto)])
2169 if test "${enable_crystalhd}" != "no"; then
2170 AC_CHECK_HEADER(libcrystalhd/libcrystalhd_if.h, [
2171 VLC_ADD_PLUGIN([crystalhd])
2172 VLC_ADD_LIBS([crystalhd], [-lcrystalhd])
2174 if test "${SYS}" = "mingw32" ; then
2175 AC_CHECK_HEADERS(libcrystalhd/bc_dts_defs.h, [
2176 VLC_ADD_PLUGIN([crystalhd])
2177 AC_CHECK_HEADERS(libcrystalhd/bc_drv_if.h, [
2178 VLC_ADD_LIBS([crystalhd], [-lbcmDIL])
2181 AS_IF([test x"${enable_crystalhd}" = "xyes"],
2182 [AC_MSG_ERROR("Could not find CrystalHD development headers")],
2183 [AC_MSG_WARN("Could not find CrystalHD development headers")])
2184 ],[#define __LINUX_USER__
2185 #include <libcrystalhd/bc_dts_types.h>
2189 #include <libcrystalhd/bc_dts_types.h>
2197 [ --enable-mad libmad module (default enabled)])
2198 if test "${enable_mad}" != "no"
2201 [ --with-mad=PATH path to libmad],[],[])
2202 if test "${with_mad}" != "no" -a -n "${with_mad}"
2204 VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2205 VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2208 AC_ARG_WITH(mad-tree,
2209 [ --with-mad-tree=PATH mad tree for static linking],[],[])
2210 if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2212 real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2213 if test -z "${real_mad_tree}"
2215 dnl The given directory can't be found
2217 AC_MSG_ERROR([${with_mad_tree} directory does not exist])
2219 dnl Use a custom libmad
2220 AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2221 if test -f ${real_mad_tree}/mad.h
2224 VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2225 VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2227 LDFLAGS="${LDFLAGS} ${LIBS_mpgatofixed32}"
2228 AC_CHECK_LIB(mad, mad_bit_init, [
2229 VLC_ADD_PLUGIN([mpgatofixed32])
2230 VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2231 ],[ AC_MSG_ERROR([the specified tree has not been compiled ])
2236 AC_MSG_ERROR([the specified tree does not have mad.h])
2240 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_mpgatofixed32}"
2241 LDFLAGS="${LDFLAGS} ${LIBS_mpgatofixed32}"
2242 AC_CHECK_HEADERS(mad.h, ,
2243 [ 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.]) ])
2244 AC_CHECK_LIB(mad, mad_bit_init, [
2245 VLC_ADD_PLUGIN([mpgatofixed32])
2246 VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2247 [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2253 AC_ARG_ENABLE(merge-ffmpeg,
2254 [ --enable-merge-ffmpeg merge FFmpeg-based plugins (default disabled)],, [
2255 enable_merge_ffmpeg="no"
2257 AM_CONDITIONAL([MERGE_FFMPEG], [test "$enable_merge_ffmpeg" != "no"])
2259 AC_MSG_CHECKING([for libavutil variant])
2260 PKG_CHECK_EXISTS([libavutil], [
2261 libavutil_version="$(${PKG_CONFIG} --modversion libavutil)"
2262 libavutil_micro="${libavutil_version##*.}"
2263 AS_IF([test ${libavutil_micro} -le 99], [
2271 AC_MSG_RESULT([${avfork}])
2276 AC_ARG_ENABLE(gst-decode,
2277 [ --enable-gst-decode GStreamer based decoding support (currently supports only video decoding) (default auto)])
2279 have_gst_decode="no"
2280 AS_IF([test "${enable_gst_decode}" != "no"], [
2281 PKG_CHECK_MODULES([GST_APP], [gstreamer-app-1.0], [
2282 PKG_CHECK_MODULES([GST_VIDEO], [gstreamer-video-1.0], [
2283 have_gst_decode="yes"
2285 AC_MSG_WARN([${GST_VIDEO_PKG_ERRORS}. GStreamer decoder module will not be built.])
2288 AC_MSG_WARN([${GST_APP_PKG_ERRORS}. GStreamer modules will not be built.])
2291 AM_CONDITIONAL([HAVE_GST_DECODE], [test "${have_gst_decode}" = "yes"])
2294 dnl avcodec decoder/encoder plugin
2296 AC_ARG_ENABLE(avcodec,
2297 [ --enable-avcodec libavcodec codec (default enabled)])
2298 AS_IF([test "${enable_avcodec}" != "no"], [
2299 PKG_CHECK_MODULES(AVCODEC,[libavcodec >= 54.25.0 libavutil >= 52.0.0], [
2300 dnl PKG_CHECK_EXISTS([libavcodec < 56],, [
2301 dnl AC_MSG_ERROR([libavcodec versions 56 and later are not supported yet.])
2304 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2305 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2306 AC_CHECK_HEADERS(libavcodec/avcodec.h)
2307 AC_CHECK_HEADERS(libavutil/avutil.h)
2311 AC_MSG_ERROR([${AVCODEC_PKG_ERRORS}. Pass --disable-avcodec to ignore this error.])
2316 AM_CONDITIONAL([HAVE_AVCODEC], [test "${have_avcodec}" != "no"])
2319 dnl libva needs avcodec
2321 AC_ARG_ENABLE(libva,
2322 [ --enable-libva VAAPI GPU decoding support (libVA) (default auto)])
2324 AS_IF([test "${enable_libva}" = "yes" -a "${have_avcodec}" != "yes" ], [
2325 AC_MSG_ERROR([--enable-libva and --disable-avcodec options are mutually exclusive. Use --enable-avcodec.])
2331 AS_IF([test "${enable_libva}" != "no"], [
2332 PKG_CHECK_EXISTS([libva], [
2335 AS_IF([test -n "${enable_libva}"], [
2336 AC_MSG_ERROR([${LIBVA_PKG_ERRORS}.])
2338 AC_MSG_WARN([${LIBVA_PKG_ERRORS}.])
2341 PKG_CHECK_MODULES([LIBVA_DRM], [libva-drm], [
2342 have_vaapi_drm="yes"
2344 AC_MSG_WARN([${LIBVA_DRM_PKG_ERRORS}.])
2346 PKG_CHECK_MODULES(LIBVA_X11, [libva-x11], [
2347 have_vaapi_x11="yes"
2349 AC_MSG_WARN([${LIBVA_X11_PKG_ERRORS}.])
2352 AM_CONDITIONAL([HAVE_VAAPI_DRM], [test "${have_vaapi_drm}" = "yes"])
2353 AM_CONDITIONAL([HAVE_VAAPI_X11], [test "${have_vaapi_x11}" = "yes"])
2355 have_avcodec_vaapi="no"
2356 AS_IF([test "${have_vaapi}" = "yes" -a "${have_avcodec}" = "yes"], [
2358 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2359 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2360 AC_CHECK_HEADERS([libavcodec/vaapi.h], [
2361 AC_MSG_NOTICE([VAAPI acceleration activated])
2362 have_avcodec_vaapi="yes"
2364 AS_IF([test -n "${enable_libva}"], [
2365 AC_MSG_ERROR([libva is present but libavcodec/vaapi.h is missing])
2367 AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing ])
2372 AM_CONDITIONAL([HAVE_AVCODEC_VAAPI], [test "${have_avcodec_vaapi}" = "yes"])
2375 dnl dxva2 needs avcodec
2377 AC_ARG_ENABLE(dxva2,
2378 [ --enable-dxva2 DxVA2 GPU decoding support (default auto)])
2380 have_avcodec_dxva2="no"
2381 AS_IF([test "${enable_dxva2}" != "no"], [
2382 if test "${SYS}" = "mingw32"; then
2383 AS_IF([test "x${have_avcodec}" = "xyes"], [
2384 AC_CHECK_HEADERS(dxva2api.h,
2386 AC_CHECK_HEADERS(libavcodec/dxva2.h, [
2387 AC_MSG_NOTICE([DxVA2 acceleration activated])
2388 have_avcodec_dxva2="yes"
2390 AS_IF([test "${enable_dxva2}" = "yes"],
2391 [AC_MSG_ERROR([dxva2 is present but libavcodec/dxva2.h is missing])],
2392 [AC_MSG_WARN([dxva2 is present but libavcodec/dxva2.h is missing ])])
2393 ], [#undef _WIN32_WINNT
2394 /* DXVA2 is only available in Vista and above */
2395 #define _WIN32_WINNT 0x600])
2397 AS_IF([test "${enable_dxva2}" = "yes"],
2398 [AC_MSG_ERROR([Could not find required dxva2api.h])],
2399 [AC_MSG_WARN([dxva2api.h not found])])
2402 AS_IF([test "x${enable_dxva2}" != "x"], [
2403 AC_MSG_ERROR([--enable-dxva2 and --disable-avcodec options are mutually exclusive.])
2408 AM_CONDITIONAL([HAVE_AVCODEC_DXVA2], [test "${have_avcodec_dxva2}" = "yes"])
2411 dnl vda needs avcodec
2414 [ --enable-vda VDA support (default auto)])
2416 have_avcodec_vda="no"
2417 AS_IF([test "${enable_vda}" != "no"], [
2418 if test "${SYS}" = "darwin"; then
2419 AS_IF([test "x${have_avcodec}" = "xyes"], [
2420 AC_CHECK_HEADERS(VideoDecodeAcceleration/VDADecoder.h,
2422 AC_CHECK_HEADERS(libavcodec/vda.h, [
2423 have_avcodec_vda="yes"
2425 AS_IF([test "${enable_vda}" = "yes"],
2426 [AC_MSG_ERROR([vda is present but libavcodec/vda.h is missing])],
2427 [AC_MSG_WARN([vda is present but libavcodec/vda.h is missing ])])
2430 AS_IF([test "${enable_vda}" = "yes"],
2431 [AC_MSG_ERROR([Could not find required VideoDecodeAcceleration/VDADecoder.h])],
2432 [AC_MSG_WARN([VideoDecodeAcceleration/VDADecoder.h not found])])
2435 AS_IF([test "x${enable_vda}" != "x"], [
2436 AC_MSG_ERROR([--enable-vda and --disable-avcodec options are mutually exclusive.])
2439 AS_IF([test "${have_avcodec_vda}" = "yes"], [
2441 LIBS="$LIBS $AVCODEC_LIBS"
2442 AC_CHECK_FUNCS([av_vda_alloc_context])
2447 AM_CONDITIONAL([HAVE_AVCODEC_VDA], [test "${have_avcodec_vda}" = "yes"])
2450 dnl avformat demuxer/muxer plugin
2453 AC_ARG_ENABLE(avformat,
2454 [ --enable-avformat libavformat containers (default enabled)],, [
2455 enable_avformat="${have_avcodec}"
2458 AS_IF([test "${enable_avformat}" != "no"], [
2459 PKG_CHECK_MODULES(AVFORMAT,[libavformat >= 53.21.0 libavcodec libavutil], [
2462 CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2463 CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2464 AC_CHECK_HEADERS(libavformat/avformat.h libavformat/avio.h)
2465 AC_CHECK_HEADERS(libavcodec/avcodec.h)
2466 AC_CHECK_HEADERS(libavutil/avutil.h)
2467 AS_IF([test "$enable_merge_ffmpeg" = "no"], [
2472 AC_MSG_ERROR([${AVFORMAT_PKG_ERRORS}. Pass --disable-avformat to ignore this error.])
2475 AM_CONDITIONAL([HAVE_AVFORMAT], [test "${enable_avformat}" != "no"])
2478 dnl swscale image scaling and conversion plugin
2481 AC_ARG_ENABLE(swscale,
2482 AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
2483 (default enabled)]))
2484 if test "${enable_swscale}" != "no"
2486 PKG_CHECK_MODULES(SWSCALE,[libswscale],
2489 CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
2490 CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
2491 AC_CHECK_HEADERS(libswscale/swscale.h)
2492 AC_CHECK_HEADERS(libavutil/avutil.h)
2493 VLC_ADD_PLUGIN([swscale])
2494 VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
2495 VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
2496 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2497 VLC_ADD_LIBS([swscale],[${ac_cv_ld_bsymbolic}])
2501 AC_MSG_ERROR([${SWSCALE_PKG_ERRORS}. Pass --disable-swscale to ignore this error. Proper software scaling and some video chroma conversion will be missing.])
2509 AC_ARG_ENABLE(postproc,
2510 [ --enable-postproc libpostproc image post-processing (default auto)])
2511 if test "${enable_postproc}" != "no"
2513 PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
2516 CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
2517 CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
2518 AC_CHECK_HEADERS(postproc/postprocess.h)
2519 VLC_ADD_PLUGIN([postproc])
2520 VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS $AVUTIL_LIBS])
2521 VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS $AVUTIL_CFLAGS])
2524 AC_MSG_WARN([${POSTPROC_PKG_ERRORS}.])
2529 dnl faad decoder plugin
2532 [ --enable-faad faad codec (default auto)])
2533 if test "${enable_faad}" != "no"; then
2534 AC_ARG_WITH(faad-tree, [ --with-faad-tree=PATH faad tree for static linking])
2535 if test -n "${with_faad_tree}"; then
2536 AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
2537 real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
2538 if test -z "${real_faad_tree}"; then
2539 dnl The given directory can't be found
2541 AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
2543 if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"; then
2544 dnl Use the custom faad
2545 AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
2546 VLC_ADD_PLUGIN([faad])
2547 VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
2548 VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
2550 dnl The given libfaad wasn't built
2552 AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
2556 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_faad}"
2557 LDFLAGS="${LDFLAGS} ${LIBS_faad}"
2558 AC_CHECK_HEADERS(faad.h,
2559 [ AC_CHECK_LIB(faad, faacDecOpen, [
2560 VLC_ADD_PLUGIN([faad])
2561 VLC_ADD_LIBS([faad],[-lfaad]) ], [
2562 AC_CHECK_LIB(faad, NeAACDecOpen, [
2563 VLC_ADD_PLUGIN([faad])
2564 VLC_ADD_LIBS([faad],[-lfaad]) ], [
2565 AS_IF([test "${enable_faad}" = "yes"],
2566 [ AC_MSG_ERROR([Cannot find libfaad library...]) ],
2567 [ AC_MSG_WARN([Cannot find libfaad library...]) ]) ]) ])
2568 ] , [ AS_IF([test "${enable_faad}" = "yes"],
2569 [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ],
2570 [ AC_MSG_WARN([Cannot find development headers for libfaad...]) ]) ])
2576 dnl libvpx decoder plugin
2579 AS_HELP_STRING([--enable-vpx],[libvpx VP8/VP9 decoder (default auto)]))
2580 AS_IF([test "${enable_vpx}" != "no"],[
2581 PKG_CHECK_MODULES([VPX], [vpx] , [
2582 VLC_ADD_PLUGIN([vpx])
2583 VLC_ADD_CPPFLAGS([vpx], [${VPX_CFLAGS}])
2584 VLC_ADD_LIBS([vpx], [${VPX_LIBS}])
2585 AC_CHECK_LIB([vpx],[vpx_codec_vp8_dx], [
2586 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP8_DECODER])
2587 ], [], [${VPX_LIBS}])
2588 AC_CHECK_LIB([vpx],[vpx_codec_vp9_dx], [
2589 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP9_DECODER])
2590 ], [], [${VPX_LIBS}])
2592 AS_IF([test "${enable_vpx}" = "yes"],[
2593 AC_MSG_ERROR([libvpx was not found])
2598 dnl twolame encoder plugin
2600 PKG_ENABLE_MODULES_VLC([TWOLAME], [], [twolame], [MPEG Audio Layer 2 encoder], [auto], [], [], [ -DLIBTWOLAME_STATIC])
2603 dnl fdk-aac encoder plugin
2605 PKG_ENABLE_MODULES_VLC([FDKAAC], [], [fdk-aac], [FDK-AAC encoder], [disabled])
2608 dnl QuickTime plugin
2610 AC_ARG_ENABLE(quicktime,
2611 [ --enable-quicktime QuickTime module (deprecated)])
2612 if test "${enable_quicktime}" = "yes"; then
2613 if test "${SYS}" = "mingw32"; then
2614 VLC_ADD_PLUGIN([quicktime])
2616 AC_CHECK_HEADERS(QuickTime/QuickTime.h,
2617 [ VLC_ADD_PLUGIN([quicktime])
2618 VLC_ADD_LIBS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
2619 ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
2624 dnl A52/AC3 decoder plugin
2627 [ --enable-a52 A/52 support with liba52 (default enabled)])
2628 if test "${enable_a52}" != "no"
2631 [ --with-a52=PATH a52 headers and libraries])
2632 AC_ARG_WITH(a52-tree,
2633 [ --with-a52-tree=PATH a52dec tree for static linking ],[],[])
2634 if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
2636 real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
2637 if test -z "${real_a52_tree}"
2639 dnl The given directory can't be found
2641 AC_MSG_ERROR([${with_a52_tree} directory does not exist])
2643 dnl Use a custom a52dec
2644 AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
2645 if test -f ${real_a52_tree}/include/a52.h
2648 VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
2649 VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
2651 LDFLAGS="${LDFLAGS} ${LIBS_a52tofloat32}"
2652 AC_CHECK_LIB(a52, a52_free, [
2653 VLC_ADD_PLUGIN([a52tofloat32])
2654 VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
2655 VLC_ADD_LIBS([a52tofloat32],[-la52])
2657 if test -f ${real_a52_tree}/liba52/.libs/liba52.a
2659 AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
2661 AC_MSG_ERROR([the specified tree has not been compiled])
2666 AC_MSG_ERROR([the specified tree does not have a52.h])
2669 if test -z "${with_a52}"
2674 LDFLAGS_test="-L${with_a52}/lib"
2675 CPPFLAGS_test="-I${with_a52}/include"
2678 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
2679 LDFLAGS="${LDFLAGS} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
2680 AC_CHECK_HEADERS(a52dec/a52.h, [
2681 AC_CHECK_LIB(a52, a52_free, [
2682 VLC_ADD_PLUGIN([a52tofloat32])
2683 VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
2684 VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
2686 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.])
2689 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.])
2696 dnl DTS Coherent Acoustics decoder plugin
2698 PKG_ENABLE_MODULES_VLC([DCA], [dtstofloat32], [libdca >= 0.0.5], [DTS Coherent Acoustics support with libdca], [auto])
2703 PKG_ENABLE_MODULES_VLC([FLAC], [], [flac], [libflac decoder/encoder support], [auto])
2708 PKG_ENABLE_MODULES_VLC([LIBMPEG2], [], [libmpeg2 > 0.3.2], [libmpeg2 decoder support], [auto])
2713 PKG_ENABLE_MODULES_VLC([VORBIS], [], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
2718 AC_ARG_ENABLE(tremor,
2719 [ --enable-tremor Tremor decoder support (default disabled)])
2720 if test "${enable_tremor}" = "yes"
2722 AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
2723 VLC_ADD_PLUGIN([tremor])
2730 PKG_ENABLE_MODULES_VLC([SPEEX], [], [ogg speex >= 1.0.5], [Speex support], [auto])
2732 AS_IF([test "${enable_speex}" != "no"], [
2733 PKG_CHECK_MODULES([SPEEXDSP], [speexdsp], [
2736 AC_MSG_WARN([${SPEEXDSP_PKG_ERRORS}.])
2739 AM_CONDITIONAL([HAVE_SPEEXDSP], [test "$have_speexdsp" = "yes"])
2744 PKG_ENABLE_MODULES_VLC([OPUS], [], [ogg opus >= 1.0.3], [Opus support], [auto])
2747 dnl theora decoder plugin
2749 PKG_ENABLE_MODULES_VLC([THEORA], [], [ogg theoradec >= 1.0 theoraenc], [experimental theora codec], [auto])
2752 dnl Daala decoder plugin
2754 PKG_ENABLE_MODULES_VLC([DAALA], [], [ogg daaladec daalaenc], [experimental daala codec], [disabled])
2757 dnl schroedinger decoder plugin (for dirac format video)
2759 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [], [schroedinger-1.0 >= 1.0.10], [dirac decoder and encoder using schroedinger], [auto])
2762 dnl PNG decoder module
2765 [ --enable-png PNG support (default enabled)])
2766 AS_IF([test "${enable_png}" != "no"], [
2767 AC_CHECK_HEADERS(png.h, [
2769 LDFLAGS="${LDFLAGS} -lz $LIBM"
2770 AC_CHECK_LIB(png, png_set_rows, [
2771 VLC_ADD_PLUGIN([png])
2778 dnl JPEG decoder module
2781 [ --enable-jpeg JPEG support (default enabled)])
2782 AS_IF([test "${enable_jpeg}" != "no"], [
2783 AC_CHECK_HEADERS(jpeglib.h, [
2784 VLC_ADD_PLUGIN([jpeg])
2789 dnl H262 encoder plugin (lib262)
2792 [ --enable-x262 H262 encoding support with static libx262 (default disabled)])
2793 if test "${enable_x262}" != "no"; then
2794 AC_ARG_WITH(x262-tree,
2795 [ --with-x262-tree=PATH H262 encoding module with libx262 (static linking)],[],[])
2796 if test "${with_x262_tree}" != "no" -a -n "${with_x262_tree}"
2798 real_x262_tree="̧`cd ${with_x262_tree} 2>/dev/null && pwd`"
2799 if test -z "${real_x262_tree}"
2802 AC_MSG_ERROR([${with_x262_tree} directory does not exist])
2804 AC_MSG_CHECKING(for x262.h in ${real_x262_tree})
2805 if test -f ${with_x262_tree}/x262_config.h
2807 VLC_ADD_PLUGIN([x262])
2808 VLC_ADD_CFLAGS([x262],[-I${with_x262_tree}])
2809 VLC_ADD_LIBS([x262],[-L${with_x262_tree} -lm -lpthread -lx262])
2812 AC_MSG_ERROR([${with_x262_tree} doesnt have x262_config.h])
2815 PKG_CHECK_MODULES(X262, x262, [
2816 VLC_ADD_PLUGIN([x262])
2817 VLC_ADD_LDFLAGS([x262],[${X262_LIBS}])
2818 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2819 VLC_ADD_LIBS([x262],[${av_cv_ld_bsymbolic}])
2821 VLC_ADD_CFLAGS([x262],[${X262_CFLAGS}])
2822 if echo ${X262_LIBS} |grep -q 'pthreadGC2'; then
2823 VLC_ADD_CFLAGS([x262], [-DPTW32_STATIC_LIB])
2826 if test "${enable_x262}" = "yes"; then
2827 AC_MSG_ERROR([x262 module doesn't work without staticly compiled libx262.a])
2834 PKG_ENABLE_MODULES_VLC([X265],, [x265], [HEVC/H.265 encoder], [auto])
2837 dnl H264 encoder plugin (10-bit lib264)
2839 AC_ARG_ENABLE(x26410b,
2840 [ --enable-x26410b H264 10-bit encoding support with static libx264 (default disabled)])
2841 if test "${enable_x26410b}" != "no"; then
2842 AC_ARG_WITH(x26410b-tree,
2843 [ --with-x26410b-tree=PATH H264 10-bit encoding module with libx264 (static linking)],[],[])
2844 if test "${with_x26410b_tree}" != "no" -a -n "${with_x26410b_tree}"
2846 real_x26410b_tree="̧`cd ${with_x26410b_tree} 2>/dev/null && pwd`"
2847 if test -z "${real_x26410b_tree}"
2850 AC_MSG_ERROR([${with_x26410b_tree} directory does not exist])
2852 AC_MSG_CHECKING(for x264.h in ${real_x26410b_tree})
2853 if test -f ${with_x26410b_tree}/x264_config.h
2856 AC_MSG_CHECKING(for 10-bit build of x264)
2857 if grep -q "BIT_DEPTH.*10" ${with_x26410b_tree}/x264_config.h ;then
2859 VLC_ADD_PLUGIN([x26410b])
2860 VLC_ADD_CFLAGS([x26410b],[-I${with_x26410b_tree}])
2861 VLC_ADD_LIBS([x26410b],[-L${with_x26410b_tree} -lm -lpthread -lx264])
2864 AC_MSG_ERROR([${with_x26410b_tree} isnt build 10-bit])
2868 AC_MSG_ERROR([${with_x26410b_tree} doesnt have x264_config.h])
2871 PKG_CHECK_MODULES(X26410B, x26410b, [
2872 VLC_ADD_PLUGIN([x26410b])
2873 VLC_ADD_LIBS([x26410b],[${X26410B_LIBS}])
2874 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2875 VLC_ADD_LDFLAGS([x26410b],[${ac_cv_ld_bsymbolic}])
2877 VLC_ADD_CFLAGS([x26410b],[${X26410B_CFLAGS}])
2878 if echo ${X26410B_LIBS} |grep -q 'pthreadGC2'; then
2879 VLC_ADD_CFLAGS([x26410b], [-DPTW32_STATIC_LIB])
2882 if test "${enable_x26410b}" = "yes"; then
2883 AC_MSG_ERROR([x26410b module doesn't work without staticly compiled libx264.a])
2891 dnl H264 encoder plugin (using libx264)
2894 [ --enable-x264 H264 encoding support with libx264 (default enabled)])
2895 if test "${enable_x264}" != "no"; then
2896 AC_ARG_WITH(x264-tree,
2897 [ --with-x264-tree=PATH x264 tree for static linking ],[],[])
2898 if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
2900 real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
2901 if test -z "${real_x264_tree}"
2903 dnl The given directory can't be found
2905 AC_MSG_ERROR([${with_x264_tree} directory does not exist])
2907 dnl Use a custom libx264
2908 AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
2909 if test -f ${real_x264_tree}/x264.h
2912 VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
2913 VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
2914 PKG_CHECK_MODULES(X264,x264, [
2915 VLC_ADD_PLUGIN([x264])
2916 VLC_ADD_LIBS([x264],[${X264_LIBS}])
2917 VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
2918 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
2919 VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
2922 AC_MSG_ERROR([the specified tree has not been compiled])
2926 AC_MSG_ERROR([the specified tree does not have x264.h])
2929 PKG_CHECK_MODULES(X264,x264 >= 0.86, [
2930 VLC_ADD_PLUGIN([x264])
2931 VLC_ADD_LIBS([x264],[${X264_LIBS}])
2933 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2934 VLC_ADD_LDFLAGS([x264],[${ac_cv_ld_bsymbolic}])
2937 VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
2938 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
2939 VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
2942 if test "${enable_x264}" = "yes"; then
2943 AC_MSG_ERROR([${X264_PKG_ERRORS}: you may get it from http://www.videolan.org/x264.html])
2950 dnl Intel QuickSync (aka MediaSDK) H264/H262 encoder
2952 PKG_ENABLE_MODULES_VLC([MFX], [qsv], [libmfx], [Intel QuickSync MPEG4-Part10/MPEG2 (aka H.264/H.262) encoder], [auto])
2955 dnl libfluidsynth (MIDI synthetizer) plugin
2957 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [], [fluidsynth >= 1.1.2], [MIDI synthetiser with libfluidsynth], [auto])
2960 dnl Teletext Modules
2961 dnl vbi decoder plugin (using libzbvi)
2966 AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
2967 libzvbi (default enabled)]))
2969 AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
2970 zvbi) (default enabled if zvbi is absent)]))
2972 AS_IF( [test "${enable_zvbi}" != "no"],[
2973 PKG_CHECK_MODULES(ZVBI, [zvbi-0.2 >= 0.2.28],
2975 VLC_ADD_PLUGIN([zvbi])
2976 AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
2977 AS_IF( [test "${enable_telx}" = "yes"],[
2978 AC_MSG_WARN([The zvbi and telx modules are incompatible. Using zvbi.])
2981 AC_MSG_WARN([${ZVBI_PKG_ERRORS}. Enabling the telx module instead.])
2984 AS_IF( [test "${enable_telx}" != "no" ],[
2985 VLC_ADD_PLUGIN([telx])
2989 dnl libass subtitle rendering module
2991 AC_ARG_ENABLE(libass,
2992 [ --enable-libass Subtitle support using libass (default enabled)])
2993 AS_IF( [test "${enable_libass}" != "no"], [
2994 PKG_CHECK_MODULES(LIBASS, [libass >= 0.9.8],
2996 VLC_ADD_PLUGIN([libass])
2998 AC_CHECK_HEADERS(fontconfig/fontconfig.h,
2999 [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
3000 VLC_ADD_LIBS([libass],[-lfontconfig])
3003 AC_MSG_WARN([${LIBASS_PKG_ERRORS}.])
3008 dnl ARIB subtitles rendering module
3010 AC_ARG_ENABLE(aribsub,
3011 [ --enable-aribsub ARIB Subtitles support (default enabled)])
3012 AS_IF( [test "${enable_aribsub}" != "no" ],[
3013 PKG_CHECK_MODULES(ARIBB24, [aribb24 >= 1.0.1], [
3015 VLC_ADD_PLUGIN([aribsub])
3016 VLC_ADD_LIBS([aribsub],[-laribb24])
3017 AC_DEFINE(HAVE_ARIBB24, 1, [Define if libaribb24 is available.])
3019 AC_MSG_WARN(Library [aribb24] needed for [aribsub] was not found)
3023 AM_CONDITIONAL([HAVE_ARIBB24], [test x"${have_aribb24}" = x"yes"])
3028 PKG_ENABLE_MODULES_VLC([ARIBB25], [aribcam], [aribb25 >= 0.2.6], [ARIB STD-B25], [auto])
3031 dnl kate decoder plugin
3033 PKG_ENABLE_MODULES_VLC([KATE], [], [kate >= 0.3.0], [kate codec], [auto])
3036 dnl tiger rendering for kate decoder plugin
3038 AC_ARG_ENABLE(tiger,
3039 [ --enable-tiger Tiger rendering library for Kate streams (default auto)])
3040 AS_IF([test "${enable_tiger}" != "no"], [
3041 PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
3042 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])],[
3043 AS_IF([test -n "${enable_tiger}"], [
3044 AC_MSG_ERROR([${TIGER_PKG_ERRORS}.])
3054 EXTEND_HELP_STRING([Video plugins:])
3059 PKG_CHECK_MODULES([EGL], [egl], [
3064 AM_CONDITIONAL([HAVE_EGL], [test "${have_egl}" = "yes"])
3067 PKG_CHECK_MODULES([GL], [gl], [
3070 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
3072 # include <GL/glew.h>
3076 [int t0 = GL_TEXTURE0;]])
3080 AS_IF([test "${SYS}" != "mingw32"], [
3083 GL_LIBS="-lopengl32"
3087 AM_CONDITIONAL([HAVE_GL], [test "${have_gl}" = "yes"])
3089 dnl OpenGL ES 2: depends on EGL 1.1
3090 PKG_ENABLE_MODULES_VLC([GLES2], [], [glesv2], [OpenGL ES v2 support], [disabled])
3091 dnl OpenGL ES 1: depends on EGL 1.0
3092 PKG_ENABLE_MODULES_VLC([GLES1], [], [glesv1_cm], [OpenGL ES v1 support], [disabled])
3099 AC_CHECK_HEADERS(X11/Xlib.h)
3102 dnl X C Bindings modules
3105 [ --enable-xcb X11 support with XCB (default enabled)],, [
3106 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "darwin" -a "${SYS}" != "symbian"], [
3112 AC_ARG_ENABLE(xvideo,
3113 [ --enable-xvideo XVideo support (default enabled)],, [
3114 enable_xvideo="$enable_xcb"
3117 [ --enable-glx OpenGL support through GLX (default enabled)],, [
3118 enable_glx="$enable_xcb"
3122 have_xcb_keysyms="no"
3124 have_xcb_xvideo="no"
3125 AS_IF([test "${enable_xcb}" != "no"], [
3127 PKG_CHECK_MODULES(XCB, [xcb >= 1.6])
3129 PKG_CHECK_MODULES(XCB_SHM, [xcb-shm])
3130 PKG_CHECK_MODULES(XCB_COMPOSITE, [xcb-composite])
3131 PKG_CHECK_MODULES(XPROTO, [xproto])
3133 AS_IF([test "${enable_xvideo}" != "no"], [
3134 PKG_CHECK_MODULES(XCB_XV, [xcb-xv >= 1.1.90.1], [have_xcb_xvideo="yes"])
3137 PKG_CHECK_MODULES(XCB_RANDR, [xcb-randr >= 1.3], [have_xcb_randr="yes"])
3140 PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms >= 0.3.4], [have_xcb_keysyms="yes"], [
3141 AC_MSG_WARN([${XCB_KEYSYMS_PKG_ERRORS}. Hotkeys will not work.])
3144 AM_CONDITIONAL([HAVE_XCB], [test "${have_xcb}" = "yes"])
3145 AM_CONDITIONAL([HAVE_XCB_KEYSYMS], [test "${have_xcb_keysyms}" = "yes"])
3146 AM_CONDITIONAL([HAVE_XCB_RANDR], [test "${have_xcb_randr}" = "yes"])
3147 AM_CONDITIONAL([HAVE_XCB_XVIDEO], [test "${have_xcb_xvideo}" = "yes"])
3153 AC_ARG_ENABLE(vdpau,
3154 [AS_HELP_STRING([--enable-vdpau], [VDPAU hardware support (default auto)])])
3156 AS_IF([test "${enable_vdpau}" != "no"], [
3157 PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.6], [
3159 AS_IF([test "${no_x}" = "yes"], [
3160 AC_MSG_ERROR([VDPAU requires Xlib (X11).])
3163 AS_IF([test -n "${enable_vdpau}"], [
3164 AC_MSG_ERROR([${VDPAU_PKG_ERRORS}.])
3168 AM_CONDITIONAL([HAVE_VDPAU], [test "${have_vdpau}" = "yes"])
3170 have_avcodec_vdpau="no"
3171 AS_IF([test "${have_vdpau}" = "yes" -a "${have_avcodec}" = "yes"], [
3173 libav) av_vdpau_ver="55.26.0" ;;
3174 ffmpeg) av_vdpau_ver="55.42.100" ;;
3176 PKG_CHECK_EXISTS([libavutil >= 52.4.0 libavcodec >= ${av_vdpau_ver}], [
3177 have_avcodec_vdpau="yes"
3178 AC_MSG_NOTICE([VDPAU decoding acceleration activated])
3180 AS_IF([test -n "${enable_vdpau}"], [
3181 AC_MSG_ERROR([libavutil >= 52.4.0 and libavcodec >= 55.26.0 are required for VDPAU decoding.])
3183 AC_MSG_WARN([libavutil >= 52.4.0 and libavcodec >= 55.26.0 are required for VDPAU decoding.])
3187 AM_CONDITIONAL([HAVE_AVCODEC_VDPAU], [test "${have_avcodec_vdpau}" = "yes"])
3193 AC_ARG_ENABLE(wayland,
3194 [AS_HELP_STRING([--enable-wayland], [Wayland support (default auto)])])
3196 AC_ARG_VAR([WAYLAND_SCANNER], [Wayland scanner utility])
3198 AS_IF([test "${enable_wayland}" != "no"], [
3199 AC_MSG_CHECKING([for the Wayland scanner])
3200 AS_IF([test -z "$WAYLAND_SCANNER"], [
3201 PKG_CHECK_EXISTS([wayland-scanner], [
3202 WAYLAND_SCANNER="$(${PKG_CONFIG} wayland-scanner --variable wayland_scanner)"
3204 WAYLAND_SCANNER="wayland-scanner"
3207 AC_MSG_RESULT([$WAYLAND_SCANNER])
3209 PKG_CHECK_MODULES([WAYLAND_CLIENT], [wayland-client >= 1.5.91], [
3212 AS_IF([test -n "${enable_wayland}"], [
3213 AC_MSG_ERROR([${WAYLAND_CLIENT_PKG_ERRORS}.])
3217 AS_IF([test "${have_egl}" = "yes"], [
3218 PKG_CHECK_MODULES([WAYLAND_EGL], [wayland-egl], [
3219 have_wayland_egl="yes"
3221 AS_IF([test -n "${enable_wayland}"], [
3222 AC_MSG_ERROR([${WAYLAND_EGL_PKG_ERRORS}.])
3227 AM_CONDITIONAL([HAVE_WAYLAND], [test "${have_wayland}" = "yes"])
3228 AM_CONDITIONAL([HAVE_WAYLAND_EGL], [test "${have_wayland_egl}" = "yes"])
3235 [ --enable-sdl SDL support (default enabled)])
3236 AC_ARG_ENABLE(sdl-image,
3237 [ --enable-sdl-image SDL image support (default enabled)])
3238 if test "${enable_sdl}" != "no"
3240 PKG_CHECK_MODULES(SDL, [sdl >= 1.2.10], [
3241 # SDL on Darwin is heavily patched and can only run SDL_image
3242 if test "${SYS}" != "darwin"; then
3243 VLC_ADD_PLUGIN([vout_sdl])
3247 AS_IF([ test "${enable_sdl_image}" != "no"],[
3248 PKG_CHECK_MODULES(SDL_IMAGE, [SDL_image >= 1.2.10], [
3249 VLC_ADD_PLUGIN([sdl_image])],
3250 [ AC_MSG_WARN([${SDL_IMAGE_PKG_ERRORS}. You should install it alongside your SDL package.])
3254 AC_MSG_WARN([${SDL_PKG_ERRORS}.])
3261 AC_ARG_ENABLE(freetype,
3262 [ --enable-freetype freetype support (default auto)])
3263 AC_ARG_ENABLE(fribidi,
3264 [ --enable-fribidi fribidi support (default auto)])
3265 AC_ARG_ENABLE(fontconfig,
3266 [ --enable-fontconfig fontconfig support (default auto)])
3268 AC_ARG_WITH([default-font],
3269 AS_HELP_STRING([--with-default-font=PATH],
3270 [Path to the default font]),
3271 [AC_DEFINE_UNQUOTED([DEFAULT_FONT_FILE],
3272 "$withval", [Default font])])
3273 AC_ARG_WITH([default-monospace-font],
3274 AS_HELP_STRING([--with-default-monospace-font=PATH],
3275 [Path to the default font]),
3276 [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FONT_FILE],
3277 "$withval", [Default monospace font])])
3279 AC_ARG_WITH([default-font-family],
3280 AS_HELP_STRING([--with-default-font-family=NAME],
3281 [Path to the default font family]),
3282 [AC_DEFINE_UNQUOTED([DEFAULT_FAMILY],
3283 "$withval", [Default font family])])
3284 AC_ARG_WITH([default-monospace-font-family],
3285 AS_HELP_STRING([--with-default-monospace-font-family=NAME],
3286 [Path to the default font family]),
3287 [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FAMILY],
3288 "$withval", [Default monospace font family])])
3290 if test "${enable_freetype}" != "no"; then
3291 PKG_CHECK_MODULES(FREETYPE, freetype2, [
3293 VLC_ADD_PLUGIN([freetype])
3294 VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
3295 if test "${SYS}" = "mingw32"; then
3296 VLC_ADD_LIBS([freetype],[-liconv -lz])
3298 VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
3300 AC_CHECK_HEADERS(Carbon/Carbon.h,
3301 [VLC_ADD_LIBS([freetype],[-Wl,-framework,Carbon])])
3303 dnl fontconfig support
3304 if test "${SYS}" != "mingw32"; then
3305 if test "${enable_fontconfig}" != "no"; then
3306 AC_CHECK_HEADERS(fontconfig/fontconfig.h, [
3307 VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
3308 VLC_ADD_LIBS([freetype],[-lfontconfig])
3309 ],[AC_MSG_WARN([library fontconfig not found. Styles will be disabled in freetype])])
3312 AS_IF([test "$vlc_winstore_app" != "1"],[
3313 VLC_ADD_LIBS([freetype],[-lgdi32])
3318 if test "${enable_fribidi}" != "no"; then
3319 PKG_CHECK_MODULES(FRIBIDI, fribidi, [
3320 VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
3321 VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
3322 ],[AC_MSG_WARN([${FRIBIDI_PKG_ERRORS}. Bidirectional support will be disabled in FreeType.])])
3327 AS_IF([test -n "${enable_freetype}"],[
3328 AC_MSG_ERROR([${FREETYPE_PKG_ERRORS}. Install FreeType2 development or configure with --disable-freetype.])
3335 dnl QuartzText vout module (iOS/Mac OS)
3337 AC_ARG_ENABLE(macosx-quartztext,
3338 [ --enable-macosx-quartztext Mac OS X quartz text module (default enabled on Mac OS X)])
3339 if test "x${enable_macosx_quartztext}" != "xno" &&
3340 (test "${SYS}" = "darwin" || test "${enable_macosx_quartztext}" = "yes")
3342 VLC_ADD_PLUGIN([quartztext])
3343 VLC_ADD_LIBS([quartztext],[-Wl,-framework,ApplicationServices])
3347 dnl SVG module (text rendering and image decoding)
3349 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3350 PKG_ENABLE_MODULES_VLC([SVGDEC], [], [librsvg-2.0 >= 2.9.0 cairo >= 1.13.1], [SVG image decoder library],[auto])
3353 dnl android surface module
3355 AC_ARG_ENABLE(android-surface,
3356 [ --enable-android-surface Android Surface video output module (default disabled)])
3357 if test "${enable_android_surface}" = "yes"; then
3358 VLC_ADD_PLUGIN([android_surface])
3359 VLC_ADD_PLUGIN([android_window])
3363 dnl Windows DirectX module
3366 AC_ARG_ENABLE(directx,
3367 [AS_HELP_STRING([--enable-directx],
3368 [Microsoft DirectX support (default enabled on Windows)])],, [
3369 AS_IF([test "${SYS}" = "mingw32"], [
3370 enable_directx="yes"
3376 AS_IF([test "${enable_directx}" != "no"], [
3378 AC_CHECK_HEADERS(ddraw.h, [
3381 AC_MSG_ERROR([Cannot find DirectX headers!])
3385 AC_CHECK_HEADERS(GL/wglew.h, [
3386 VLC_ADD_PLUGIN([glwin32])
3388 #include <windows.h>
3393 AC_CHECK_HEADERS(d3d9.h, [
3394 VLC_ADD_PLUGIN([direct3d])
3398 AC_CHECK_HEADERS(d2d1.h, [
3399 VLC_ADD_PLUGIN([direct2d])
3402 AM_CONDITIONAL([HAVE_DIRECTX], [test "$have_directx" = "yes"])
3405 dnl Linux framebuffer module
3407 AC_CHECK_HEADER([linux/fb.h], [
3408 VLC_ADD_PLUGIN([fb])
3414 dnl try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
3415 dnl TODO: support for static linking
3417 AC_ARG_ENABLE(directfb,
3418 [ --enable-directfb DirectFB support (default disabled)])
3419 AC_ARG_WITH(directfb,
3420 [ --with-directfb=PATH path to DirectFB headers and libraries])
3422 if test "${enable_directfb}" = "yes"; then
3423 have_directfb="false"
3424 CPPFLAGS_mydirectfb=
3426 if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
3427 dnl Trying the given location
3430 CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
3431 LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/ -L${with_directfb}/src/.libs/"
3433 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
3434 LIBS="${LIBS} ${LIBS_new}"
3436 dnl FIXME: too obscure
3437 AC_CHECK_HEADER([directfb.h], [
3438 AC_CHECK_LIB([direct],[direct_initialize], [
3439 AC_CHECK_LIB([fusion], [fusion_enter], [
3440 AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
3441 ], have_directfb="false")
3442 ], have_directfb="false")
3443 ], have_directfb="false")
3447 if test "${have_directfb}" = "true"; then
3448 LIBS_mydirectfb="${LIBS_new} -lz $LIBDL -ldirectfb -lfusion -ldirect -lpthread"
3449 CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
3452 dnl Look for directfb-config
3453 AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
3454 if test "${DIRECTFB_CONFIG}" != "no"; then
3455 CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
3456 LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
3457 have_directfb="true"
3459 dnl Trying with pkg-config
3460 PKG_CHECK_MODULES(DIRECTFB, directfb, [
3461 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
3462 LIBS_mydirectfb="${DIRECTFB_LIBS}"
3463 have_directfb="true"
3464 ], [have_directfb="false"])
3467 if test "${have_directfb}" = "true"; then
3468 VLC_ADD_PLUGIN([directfb])
3469 VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
3470 VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
3472 AC_MSG_ERROR([${DIRECTFB_PKG_ERRORS}.])
3480 [ --enable-aa aalib output (default disabled)])
3481 if test "${enable_aa}" = "yes"
3483 AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
3484 if test "${have_aa}" = "true"
3486 VLC_ADD_PLUGIN([aa])
3493 PKG_ENABLE_MODULES_VLC([CACA], [], [caca >= 0.99.beta14], [libcaca output],[auto])
3499 [AS_HELP_STRING([--enable-kva],
3500 [support the K Video Accelerator KVA (default enabled on OS/2)])],, [
3501 AS_IF([test "$SYS" = "os2"], [
3507 AS_IF([test "$enable_kva" != "no"], [
3508 AC_CHECK_HEADERS([kva.h], [
3510 AC_CHECK_LIB(kva, main, [
3516 AM_CONDITIONAL([HAVE_KVA], [test "${have_kva}" = "yes"])
3522 AS_HELP_STRING([--enable-mmal],
3523 [Multi-Media Abstraction Layer (MMAL) hardware plugin (default enable)]))
3524 if test "${enable_mmal}" != "no"; then
3526 LDFLAGS="${LDFLAGS} -L/opt/vc/lib"
3527 CPPFLAGS="${CPPFLAGS} -I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux"
3528 AC_CHECK_HEADERS(interface/mmal/mmal.h,
3529 [ AC_CHECK_LIB(bcm_host, vc_tv_unregister_callback_full, [
3531 VLC_ADD_PLUGIN([mmal])
3532 VLC_ADD_LDFLAGS([mmal],[ -L/opt/vc/lib ])
3533 VLC_ADD_CFLAGS([mmal],[ -I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux ])
3534 VLC_ADD_LIBS([mmal],[ -lbcm_host -lmmal ]) ], [
3535 AS_IF([test "${enable_mmal}" = "yes"],
3536 [ AC_MSG_ERROR([Cannot find bcm library...]) ],
3537 [ AC_MSG_WARN([Cannot find bcm library...]) ])
3540 ] , [ AS_IF([test "${enable_mmal}" = "yes"],
3541 [ AC_MSG_ERROR([Cannot find development headers for mmal...]) ],
3542 [ AC_MSG_WARN([Cannot find development headers for mmal...]) ]) ])
3545 AM_CONDITIONAL([HAVE_MMAL], [test "${have_mmal}" = "yes"])
3551 EXTEND_HELP_STRING([Audio plugins:])
3554 dnl Pulseaudio module
3556 AC_ARG_ENABLE(pulse,
3557 [AS_HELP_STRING([--enable-pulse],
3558 [use the PulseAudio client library (default auto)])])
3560 AS_IF([test "${enable_pulse}" != "no"], [
3561 PKG_CHECK_MODULES([PULSE], [libpulse >= 1.0], [
3564 AS_IF([test "x${enable_pulse}" != "x"], [
3565 AC_MSG_ERROR([$PULSE_PKG_ERRORS. PulseAudio 1.0 or later required.])
3569 AM_CONDITIONAL([HAVE_PULSE], [test "${have_pulse}" = "yes"])
3575 [AS_HELP_STRING([--enable-alsa],
3576 [support the Advanced Linux Sound Architecture (default auto)])],, [
3577 AS_IF([test "$SYS" = "linux" -a "${have_pulse}" = "no"], [
3582 AS_IF([test "${enable_alsa}" != "no"], [
3583 PKG_CHECK_MODULES([ALSA], [alsa >= 1.0.24], [
3586 AS_IF([test "x${enable_alsa}" != "x"], [
3587 AC_MSG_ERROR([$ALSA_PKG_ERRORS. alsa-lib 1.0.24 or later required.])
3591 AM_CONDITIONAL([HAVE_ALSA], [test "${have_alsa}" = "yes"])
3594 dnl Open Sound System module
3597 [AS_HELP_STRING([--enable-oss],
3598 [support the Open Sound System OSS (default enabled on FreeBSD/NetBSD/DragonFlyBSD)])],, [
3599 AS_IF([test "$SYS" = "mingw32" -o "$SYS" = "linux" -o "$SYS" = "openbsd"], [
3605 AS_IF([test "$enable_oss" != "no"], [
3606 AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
3608 AC_CHECK_LIB(ossaudio, main, [
3609 OSS_LIBS="-lossaudio"
3614 AM_CONDITIONAL([HAVE_OSS], [test "${have_oss}" = "yes"])
3617 dnl OpenBSD sndio module
3619 AC_ARG_ENABLE([sndio],
3620 [AS_HELP_STRING([--disable-sndio],
3621 [support the OpenBSD sndio (default auto)])],, [
3622 AS_IF([test "$SYS" = "openbsd"], [
3627 AS_IF([test "$enable_sndio" != "no"], [
3628 AC_CHECK_HEADER([sndio.h], [
3632 AM_CONDITIONAL([HAVE_SNDIO], [test "${have_sndio}" = "yes"])
3635 dnl Windows Audio Session plugin
3637 AC_ARG_ENABLE([wasapi],
3638 [AS_HELP_STRING([--enable-wasapi],
3639 [use the Windows Audio Session API (default auto)])
3642 AS_IF([test "$enable_wasapi" != "no"], [
3643 AC_CHECK_HEADER([audioclient.h], [
3646 AS_IF([test "x${enable_wasapi}" != "x"], [
3647 AC_MSG_ERROR([Windows Audio Session API not found.])
3651 AM_CONDITIONAL([HAVE_WASAPI], [test "${have_wasapi}" = "yes"])
3654 dnl AudioQueue plugin
3656 AC_ARG_ENABLE(audioqueue,
3657 [ --enable-audioqueue AudioQueue audio module (default disabled)])
3658 if test "${enable_audioqueue}" = "yes"
3660 VLC_ADD_PLUGIN([audioqueue])
3667 [AS_HELP_STRING([--disable-jack],
3668 [do not use jack (default auto)])])
3670 AS_IF([test "${enable_jack}" != "no"], [
3671 PKG_CHECK_MODULES(JACK, jack >= 1.9.7,
3674 AC_MSG_WARN([${JACK_PKG_ERRORS}, trying jack1 instead])
3676 PKG_CHECK_MODULES(JACK, jack >= 0.120.1 jack < 1.0,
3679 AS_IF([test -n "${enable_jack}"],
3680 [AC_MSG_ERROR([${JACK_PKG_ERRORS}.])],
3681 [AC_MSG_WARN([${JACK_PKG_ERRORS}.])])
3685 AM_CONDITIONAL([HAVE_JACK], [test "${have_jack}" != "no"])
3688 dnl OpenSLES Android
3690 AC_ARG_ENABLE(opensles,
3691 [ --enable-opensles Android OpenSL ES audio module (default disabled)])
3692 if test "${HAVE_ANDROID}" = "1"; then
3693 if test "${enable_opensles}" = "yes"; then
3694 AC_CHECK_HEADERS(SLES/OpenSLES.h,
3695 [ VLC_ADD_PLUGIN([opensles_android]) ],
3696 [ AC_MSG_ERROR([cannot find OpenSLES headers])] )
3701 dnl libsamplerate plugin
3703 PKG_ENABLE_MODULES_VLC([SAMPLERATE], [], [samplerate], [Resampler with libsamplerate], [auto])
3709 [AS_HELP_STRING([--enable-kai],
3710 [support the K Audio Interface KAI (default enabled on OS/2)])],, [
3711 AS_IF([test "$SYS" = "os2"], [
3717 AS_IF([test "$enable_kai" != "no"], [
3718 AC_CHECK_HEADERS([kai.h], [
3720 AC_CHECK_LIB(kai, main, [
3726 AM_CONDITIONAL([HAVE_KAI], [test "${have_kai}" = "yes"])
3729 dnl chromaprint audio track fingerprinter
3731 m4_pushdef([libchromaprint_version], 0.6.0)
3732 PKG_WITH_MODULES([CHROMAPRINT],[libchromaprint >= libchromaprint_version],
3733 VLC_ADD_PLUGIN([stream_out_chromaprint])
3734 VLC_ADD_CFLAGS([stream_out_chromaprint],[${CHROMAPRINT_CFLAGS}] [-I./webservices -I../stream_out])
3735 VLC_ADD_LIBS([stream_out_chromaprint],[${CHROMAPRINT_LIBS}]),
3736 AS_IF([test "${enable_chromaprint}" = "yes"],
3737 [AC_MSG_ERROR(Library [libchromaprint >= libchromaprint_version] needed for [chromaprint] was not found)],
3738 [AC_MSG_WARN(Library [libchromaprint >= libchromaprint_version] needed for [chromaprint] was not found)]
3740 [(Chromaprint based audio fingerprinter)],[auto])
3741 m4_popdef([libchromaprint_version])
3744 dnl Chromecast streaming support
3746 m4_pushdef([protobuf_lite_version], 2.5.0)
3747 AC_ARG_VAR(PROTOC, [protobuf compiler])
3748 AC_PATH_PROGS(PROTOC, protoc, no)
3749 PKG_WITH_MODULES([CHROMECAST],[protobuf-lite >= protobuf_lite_version], [
3750 AS_IF([test "x${PROTOC}" != "xno"], [
3751 VLC_ADD_PLUGIN([stream_out_chromecast])
3752 VLC_ADD_CXXFLAGS([stream_out_chromecast],[${CHROMECAST_CFLAGS}] [-I./chromecast])
3753 VLC_ADD_LIBS([stream_out_chromecast],[${CHROMECAST_LIBS}])
3754 build_chromecast="yes"
3756 AC_MSG_ERROR(protoc compiler needed for [chromecast] was not found)
3759 AS_IF([test "${enable_chromecast}" = "yes"],
3760 AC_MSG_ERROR(Library [protobuf-lite >= protobuf_lite_version] needed for [chromecast] was not found),
3761 AC_MSG_WARN(Library [protobuf-lite >= protobuf_lite_version] needed for [chromecast] was not found)
3763 enable_chromecast="no"
3764 ], [(Chromecast streaming support)], [auto])
3765 AM_CONDITIONAL([BUILD_CHROMECAST], [test "${build_chromecast}" = "yes"])
3766 m4_popdef([protobuf_lite_version])
3769 dnl Interface plugins
3772 EXTEND_HELP_STRING([Interface plugins:])
3778 AS_HELP_STRING([--disable-qt], [Qt UI support (default enabled)])],, [
3779 AS_IF([test "${SYS}" = "darwin"], [
3783 AS_IF([test "${enable_qt}" != "no"], [
3784 PKG_CHECK_MODULES([QT], [Qt5Core >= 5.1.0 Qt5Widgets Qt5Gui], [
3785 PKG_CHECK_MODULES([QTX11], [Qt5X11Extras], [
3786 VLC_ADD_LIBS([qt4],[${QTX11_LIBS}])
3787 VLC_ADD_CXXFLAGS([qt4],[${QTX11_CFLAGS} -DQT5_HAS_X11])
3789 AC_MSG_WARN([Not building Qt Interface with X11 helpers.])
3791 QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix Qt5Core)"
3792 QT_HOST_PATH="$(eval $PKG_CONFIG --variable=host_bins Qt5Core)"
3793 AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin" "${CONTRIB_DIR}/bin"])
3794 AC_PATH_PROGS(RCC, [rcc-qt5 rcc], rcc, ["${QT_HOST_PATH}" "${QT_PATH}/bin" "${CONTRIB_DIR}/bin"])
3795 AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, ["${QT_HOST_PATH}" "${QT_PATH}/bin" "${CONTRIB_DIR}/bin"])
3797 PKG_CHECK_MODULES([QT], [QtCore QtGui >= 4.6.0],, [
3798 AS_IF([test -n "${enable_qt}"],[
3799 AC_MSG_ERROR([${QT_PKG_ERRORS}.])
3801 AC_MSG_WARN([${QT_PKG_ERRORS}.])
3805 QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix QtCore)"
3806 AC_PATH_PROGS(MOC, [moc-qt4 moc], moc, ["${QT_PATH}/bin" "${CONTRIB_DIR}/bin"])
3807 AC_PATH_PROG(RCC, rcc, rcc, [${QT_PATH}/bin ${CONTRIB_DIR}/bin])
3808 AC_PATH_PROGS(UIC, [uic-qt4 uic], uic, ["${QT_PATH}/bin" "${CONTRIB_DIR}/bin"])
3811 AS_IF([test "${enable_qt}" != "no"], [
3812 VLC_ADD_PLUGIN([qt4])
3813 ALIASES="${ALIASES} qvlc"
3815 AM_CONDITIONAL(ENABLE_QT4, [test "$enable_qt" != "no"])
3818 dnl Simple test for skins2 dependency
3820 AS_IF([test "$enable_qt" = "no"], [
3821 AS_IF([test "${enable_skins2}" = "yes"], [
3822 AC_MSG_ERROR([The skins2 module depends on the Qt4 interface. Without it you will not 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.])
3825 AC_MSG_WARN([The skins2 module depends on the Qt4 interface, Qt4 is not built so skins2 is disabled.])
3832 AC_ARG_ENABLE(skins2,
3833 [AS_HELP_STRING([--enable-skins2], [skins interface module (default auto)])])
3834 AS_IF([test "${enable_skins2}" != "no"], [
3835 have_skins_deps="yes"
3838 AS_IF([test "${SYS}" = "mingw32"], [
3839 VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -DWIN32_SKINS])
3840 VLC_ADD_LIBS([skins2],[-lgdi32 -lole32 -luuid -lmsimg32])
3842 ], [test "${SYS}" = "darwin"], [
3843 VLC_ADD_CPPFLAGS([skins2],[ -DMACOSX_SKINS])
3844 VLC_ADD_LIBS([skins2],[-Wl,-framework,Carbon])
3846 ], [test "${SYS}" = "os2"], [
3847 VLC_ADD_CPPFLAGS([skins2],[ -DOS2_SKINS])
3850 PKG_CHECK_MODULES([XPM], [xpm],, [have_skins_deps="no"])
3851 PKG_CHECK_MODULES([XINERAMA], [xinerama],, [have_skins_deps="no"])
3852 PKG_CHECK_MODULES([XEXT], [xext],, [have_skins_deps="no"])
3853 VLC_ADD_CPPFLAGS([skins2],[${X_CFLAGS} ${XEXT_CFLAGS} ${XPM_CFLAGS} -DX11_SKINS])
3854 VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} ${XEXT_LIBS} ${XPM_LIBS} ${XINERAMA_LIBS} -lX11])
3858 VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3860 dnl we need freetype
3861 AS_IF([test "${have_freetype}" != "yes"], [
3862 have_skins_deps="no"
3865 AS_IF([test "${have_skins_deps}" = "no"], [
3866 AS_IF([test "x${enable_skins2}" = "x"], [
3867 AC_MSG_WARN([Skins2 interface disabled due to missing dependencies.])
3869 AC_MSG_ERROR([Skins2 interface requires FreeType, libxpm, libxext and libxinerama])
3873 VLC_ADD_PLUGIN([skins2])
3874 ALIASES="${ALIASES} svlc"
3878 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes"])
3880 AC_ARG_ENABLE(libtar,
3881 [ --enable-libtar libtar support for skins2 (default auto)])
3882 AS_IF([test "${enable_skins2}" = "yes" && test "${enable_libtar}" != "no"], [
3883 AC_CHECK_HEADERS(libtar.h, [
3884 VLC_ADD_LIBS([skins2],[-ltar])
3889 dnl MacOS X gui module
3891 AC_ARG_ENABLE(macosx,
3892 [ --enable-macosx Mac OS X gui support (default enabled on Mac OS X)])
3893 if test "x${enable_macosx}" != "xno" -a "${SYS}" = "darwin"
3895 VLC_ADD_LIBS([macosx], [-Wl,-framework,Cocoa -Wl,-framework,Carbon -Wl,-framework,CoreServices])
3896 VLC_ADD_OBJCFLAGS([macosx], [-fobjc-exceptions] )
3897 VLC_ADD_PLUGIN([macosx])
3899 VLC_ADD_LIBS([macosx], [-Wl,-framework,QTKit -Wl,-framework,IOKit -Wl,-framework,AddressBook -Wl,-framework,WebKit -Wl,-framework,CoreAudio -Wl,-framework,SystemConfiguration -Wl,-framework,ScriptingBridge])
3901 if test ! -d ${CONTRIB_DIR}/Sparkle.framework
3903 AC_MSG_ERROR([Sparkle framework is required and was not found in ${CONTRIB_DIR}])
3905 VLC_ADD_LIBS([macosx], [-F${CONTRIB_DIR} -Wl,-framework,Sparkle])
3906 VLC_ADD_OBJCFLAGS([macosx], [-F${CONTRIB_DIR}])
3908 if test ! -d ${CONTRIB_DIR}/BGHUDAppKit.framework
3910 AC_MSG_ERROR([BGHUDAppKit framework is required and was not found in ${CONTRIB_DIR}])
3912 VLC_ADD_LIBS([macosx], [-F${CONTRIB_DIR} -Wl,-framework,BGHUDAppKit])
3913 VLC_ADD_OBJCFLAGS([macosx], [-F${CONTRIB_DIR}])
3915 AM_CONDITIONAL(ENABLE_MACOSX_UI, [test "$enable_macosx" != "no"])
3918 dnl Minimal Mac OS X module
3920 AC_ARG_ENABLE(minimal-macosx,
3921 [ --enable-minimal-macosx Minimal Mac OS X support (default disabled)])
3922 if test "${enable_minimal_macosx}" = "yes" -a "${SYS}" = "darwin"
3924 VLC_ADD_LIBS([minimal_macosx], [-Wl,-framework,Cocoa])
3925 VLC_ADD_OBJCFLAGS([minimal_macosx], [-fobjc-exceptions] )
3926 VLC_ADD_PLUGIN([minimal_macosx])
3928 AM_CONDITIONAL(ENABLE_MINIMAL_MACOSX, [test "$enable_minimal_macosx" != "no"])
3931 dnl MacOS X dialog provider
3933 AC_ARG_ENABLE(macosx-dialog-provider,
3934 [ --enable-macosx-dialog-provider Mac OS X dialog module (default enabled on Mac OS X)])
3935 if test "x${enable_macosx_dialog_provider}" != "xno" &&
3936 (test "${SYS}" = "darwin" || test "${enable_macosx_dialog_provider}" = "yes")
3938 VLC_ADD_LIBS([macosx_dialog_provider],[-Wl,-framework,Cocoa])
3939 VLC_ADD_PLUGIN([macosx_dialog_provider])
3941 AM_CONDITIONAL(ENABLE_MACOSX_DIALOG_PROVIDER, [test "$enable_macosx_dialog_provider" != "no"])
3946 AC_ARG_ENABLE(ncurses,
3947 [AS_HELP_STRING([--disable-ncurses],[ncurses text-based interface (default auto)])])
3948 AS_IF([test "${enable_ncurses}" != "no"] ,[
3949 PKG_CHECK_MODULES([NCURSES], [ncursesw], [
3950 VLC_ADD_PLUGIN([ncurses])
3951 VLC_ADD_CFLAGS([ncurses],[${NCURSES_CFLAGS}])
3952 VLC_ADD_LIBS([ncurses],[${NCURSES_LIBS}])
3953 ALIASES="${ALIASES} nvlc"
3955 AS_IF([test -n "${enable_ncurses}"], [
3956 AC_MSG_ERROR([${NCURSES_PKG_ERRORS}.])
3965 [ --enable-lirc lirc support (default disabled)])
3966 if test "${enable_lirc}" = "yes"
3968 AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
3969 if test "${have_lirc}" = "true"
3971 VLC_ADD_PLUGIN([lirc])
3972 VLC_ADD_LIBS([lirc],[-llirc_client])
3976 EXTEND_HELP_STRING([Visualisations and Video filter plugins:])
3978 dnl goom visualization plugin
3980 PKG_ENABLE_MODULES_VLC([GOOM], [], [libgoom2], [goom visualization plugin], [auto])
3983 dnl libprojectM visualization plugin
3985 AC_ARG_ENABLE(projectm,
3986 [ --enable-projectm projectM visualization plugin (default enabled)])
3987 AS_IF([test "${enable_projectm}" != "no"],
3989 PKG_CHECK_MODULES(PROJECTM, libprojectM,
3991 VLC_ADD_PLUGIN([projectm])
3992 PKG_CHECK_EXISTS([libprojectM >= 2.0.0],
3993 [ AC_DEFINE([HAVE_PROJECTM2], 1, [Define to 1 if using libprojectM 2.x]) ],
3994 [ AC_MSG_WARN( [Using libprojectM version 1] )
3997 AC_MSG_WARN([${PROJECTM_PKG_ERRORS}.])
4002 dnl Vovoid VSXu visualization plugin
4005 [ --enable-vsxu Vovoid VSXu visualization plugin (default auto)])
4006 AS_IF([test "${enable_vsxu}" != "no"],
4008 PKG_CHECK_MODULES(VSXU, libvsxu,
4010 VLC_ADD_PLUGIN([vsxu])
4011 VLC_ADD_CXXFLAGS([vsxu],[$VSXU_CFLAGS])
4012 VLC_ADD_LIBS([vsxu],[$VSXU_LIBS])
4014 AC_MSG_WARN([${VSXU_PKG_ERRORS}.])
4019 dnl AtmoLight (homemade Philips Ambilight clone)
4022 AS_HELP_STRING([--disable-atmo],[AtmoLight (homemade Philips Ambilight clone)
4023 (default enabled)]),, [enable_atmo="yes"])
4024 AS_IF([test "${enable_atmo}" != no], [
4025 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "linux"], [
4027 VLC_ADD_PLUGIN([atmo])
4035 AC_ARG_ENABLE(glspectrum,
4036 [ --enable-glspectrum 3D OpenGL spectrum visualization (default auto)])
4037 if test "${enable_glspectrum}" != "no" && test "${have_gl}" = "yes"
4039 VLC_ADD_PLUGIN([glspectrum])
4040 VLC_ADD_LIBS([glspectrum],[$GL_LIBS])
4043 EXTEND_HELP_STRING([Service Discovery plugins:])
4045 dnl Bonjour services discovery
4046 PKG_ENABLE_MODULES_VLC([BONJOUR], [], [avahi-client >= 0.6], [Bonjour services discovery], [auto])
4049 dnl libudev services discovery
4050 PKG_ENABLE_MODULES_VLC([UDEV], [], [libudev >= 142], [Linux udev services discovery], [auto])
4053 dnl MTP devices services discovery
4054 PKG_ENABLE_MODULES_VLC([MTP], [mtp access_mtp], [libmtp >= 1.0.0], [MTP devices support], [auto])
4057 dnl UPnP Plugin (Intel SDK)
4059 PKG_ENABLE_MODULES_VLC([UPNP], [upnp], [libupnp], [Intel UPNP SDK],[auto])
4061 EXTEND_HELP_STRING([Misc options:])
4066 PKG_ENABLE_MODULES_VLC([LIBXML2], [xml], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
4072 AC_ARG_ENABLE(libgcrypt,
4073 [ --disable-libgcrypt gcrypt support (default enabled)])
4074 AS_IF([test "${enable_libgcrypt}" != "no"], [
4075 AC_CHECK_DECL([GCRYCTL_SET_THREAD_CBS], [
4076 libgcrypt-config --version >/dev/null || \
4077 AC_MSG_ERROR([gcrypt.h present but libgcrypt-config could not be found])
4078 AC_CHECK_LIB(gcrypt, gcry_control, [
4079 have_libgcrypt="yes"
4080 GCRYPT_CFLAGS="`libgcrypt-config --cflags`"
4081 GCRYPT_LIBS="`libgcrypt-config --libs`"
4083 AC_MSG_ERROR([libgcrypt not found. Install libgcrypt or pass --disable-libgcrypt.])
4084 ], [`libgcrypt-config --libs`])
4086 AC_MSG_ERROR([libgcrypt version 1.1.94 or higher not found. Install libgcrypt or pass --disable-libgcrypt.])
4087 ], [#include <gcrypt.h>]
4091 AC_SUBST(GCRYPT_CFLAGS)
4092 AC_SUBST(GCRYPT_LIBS)
4093 AM_CONDITIONAL([HAVE_GCRYPT], [test "${have_libgcrypt}" = "yes"])
4098 AC_ARG_ENABLE(gnutls,
4099 [ --enable-gnutls GNU TLS TLS/SSL support (default enabled)])
4100 AS_IF([test "${enable_gnutls}" != "no"], [
4101 PKG_CHECK_MODULES(GNUTLS, [gnutls >= 3.2.0], [
4102 VLC_ADD_PLUGIN([gnutls])
4104 AS_IF([test -n "${enable_gnutls}"], [
4105 AC_MSG_ERROR([${GNUTLS_PKG_ERRORS}.)])
4114 AC_ARG_ENABLE(taglib,
4115 [AS_HELP_STRING([--disable-taglib],
4116 [do not use TagLib (default enabled)])])
4117 AS_IF([test "${enable_taglib}" != "no"], [
4118 PKG_CHECK_MODULES(TAGLIB, taglib >= 1.9, [
4119 VLC_ADD_PLUGIN([taglib])
4121 AC_MSG_WARN([${TAGLIB_PKG_ERRORS}.])])
4126 dnl update checking system
4128 AC_ARG_ENABLE(update-check,
4129 [ --enable-update-check update checking system (default disabled)])
4130 if test "${enable_update_check}" = "yes"
4132 if test "${have_libgcrypt}" != "yes"
4134 AC_MSG_ERROR([libgcrypt is required for update checking system])
4136 VLC_ADD_LIBS([libvlccore], [${GCRYPT_LIBS}])
4137 VLC_ADD_CFLAGS([libvlccore], [${GCRYPT_CFLAGS}])
4138 AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
4142 dnl Growl notification plugin
4144 AC_ARG_ENABLE(growl,
4145 [ --enable-growl growl notification plugin (default disabled)],,
4147 AS_IF([test "${enable_growl}" != "no"], [
4148 AC_CHECK_HEADERS(${CONTRIB_DIR}/Growl.framework/Versions/A/Headers/Growl.h, [
4149 VLC_ADD_PLUGIN([growl])
4150 VLC_ADD_LIBS([growl], [-F${CONTRIB_DIR} -Wl,-framework,Growl,-framework,Foundation])
4151 VLC_ADD_OBJCFLAGS([growl], [-F${CONTRIB_DIR}])
4152 VLC_ADD_OBJCFLAGS([growl], [-fobjc-exceptions] )
4158 dnl Libnotify notification plugin
4160 PKG_ENABLE_MODULES_VLC([NOTIFY], [], [libnotify gtk+-2.0], [libnotify notification], [auto])
4163 dnl Endianness check
4166 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
4167 DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
4171 AC_SUBST(DEFS_BIGENDIAN)
4174 dnl Where to install KDE solid .desktop
4176 AC_ARG_VAR([KDE4_CONFIG], [kde4-config utility])
4177 AS_IF([test "x$KDE4_CONFIG" = "x"], [
4178 KDE4_CONFIG="kde4-config"
4181 AC_ARG_WITH(kde-solid,
4182 AS_HELP_STRING([--with-kde-solid=PATH],
4183 [KDE Solid actions directory (auto)]),, [
4185 if test "${SYS}" != "mingw32" -a "${SYS}" != "darwin" ; then
4186 with_kde_solid="yes"
4190 AS_IF([test "${with_kde_solid}" != "no"], [
4191 AS_IF([test "${with_kde_solid}" = "yes"], [
4192 kde4datadir="`${KDE4_CONFIG} --install data`"
4193 AS_IF([test "x$kde4datadir" = "x"], [kde4datadir='${datadir}/kde4/apps'])
4194 soliddatadir="${kde4datadir}/solid/actions"
4196 soliddatadir="${with_kde_solid}"
4199 AC_SUBST(soliddatadir)
4200 AM_CONDITIONAL(KDE_SOLID, [test "x${soliddatadir}" != "x"])
4202 EXTEND_HELP_STRING([Components:])
4208 [ --enable-vlc build the VLC media player (default enabled)])
4209 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
4211 AC_ARG_ENABLE(macosx-vlc-app,
4212 [ --enable-macosx-vlc-app build the VLC media player (default enabled on Mac OS X)])
4213 AM_CONDITIONAL(BUILD_MACOSX_VLC_APP, [test "${enable_macosx_vlc_app}" != "no" &&
4214 (test "${SYS}" = "darwin" || test "${enable_macosx_vlc_app}" = "yes") ])
4217 dnl Stuff used by the program
4219 VERSION_MESSAGE="${VERSION} ${CODENAME}"
4220 COPYRIGHT_MESSAGE="Copyright © ${COPYRIGHT_YEARS} the VideoLAN team"
4221 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string])
4222 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string])
4223 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
4224 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
4225 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,${VERSION_MAJOR}, [version major number])
4226 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,${VERSION_MINOR}, [version minor number])
4227 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,${VERSION_REVISION}, [version revision number])
4228 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,${VERSION_EXTRA}, [version extra number])
4229 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_DEV,"${VERSION_DEV}", [version development string])
4230 AC_SUBST(COPYRIGHT_MESSAGE)
4231 AC_SUBST(VERSION_MESSAGE)
4232 AC_SUBST(VERSION_MAJOR)
4233 AC_SUBST(VERSION_MINOR)
4234 AC_SUBST(VERSION_REVISION)
4235 AC_SUBST(VERSION_EXTRA)
4236 AC_SUBST(COPYRIGHT_YEARS)
4237 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami|sed -e 's/\\\/\\\\\\\/g'`", [user who ran configure])
4238 AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -f 2>/dev/null || hostname`", [host which ran configure])
4239 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1 | sed -e 's/ *$//'`", [compiler])
4241 dnl Handle substvars that use $(top_srcdir)
4243 CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS}"
4246 dnl Configuration is finished
4256 AC_SUBST(WINE_SDK_PATH)
4258 AC_SUBST(AM_CPPFLAGS)
4259 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
4260 AC_SUBST(FILE_LIBVLCCORE_DLL)
4261 AC_SUBST(FILE_LIBVLC_DLL)
4275 modules/access_output/Makefile
4276 modules/audio_filter/Makefile
4277 modules/control/Makefile
4278 modules/gui/Makefile
4279 modules/gui/ios_dialog_provider/Makefile
4280 modules/gui/macosx/Makefile
4281 modules/gui/minimal_macosx/Makefile
4282 modules/gui/macosx_dialog_provider/Makefile
4283 modules/gui/qt4/Makefile
4284 modules/gui/skins2/Makefile
4285 modules/mux/Makefile
4286 modules/packetizer/Makefile
4287 modules/stream_out/Makefile
4288 modules/text_renderer/Makefile
4289 modules/video_filter/Makefile
4290 modules/visualization/Makefile
4291 modules/hw/mmal/Makefile
4294 AM_COND_IF([HAVE_WIN32], [
4296 extras/package/win32/NSIS/spad.nsi
4297 extras/package/win32/NSIS/vlc.win32.nsi
4298 extras/package/win32/msi/config.wxi
4302 AM_COND_IF([HAVE_DARWIN], [
4304 extras/package/macosx/Info.plist
4305 extras/package/macosx/Resources/English.lproj/InfoPlist.strings
4309 dnl Generate makefiles
4312 dnl Do we have to use make or gmake ?
4313 if make --version 2>&1|grep -q GNU
4315 # GNU make, all seems good
4318 # Known GNU make alias (on BSD)
4321 dnl Shortcut to nice compile message
4322 if test -n $SHELL; then
4323 SHELL=${CONFIG_SHELL-/bin/sh}
4326 compile_top_srcdir=`sed -ne "s/^top_srcdir *= *//p" < Makefile`
4330 export PATH=\"$PATH\" LANG=C
4331 ($MAKE V=1 \$@ 2>&1 || touch .error\$\$)| $compile_top_srcdir/extras/buildsystem/make.pl
4332 test -f .error\$\$ && ERROR=1
4334 exit \$ERROR" >compile
4338 libvlc configuration
4339 --------------------
4340 version : ${VERSION}
4342 architecture : ${ARCH}
4343 optimizations : ${enable_optimizations}"
4344 if test "${enable_vlc}" != "no"; then
4345 echo "vlc aliases :${ALIASES}"
4347 echo "build vlc executable : no"
4350 To build vlc and its plugins, type \`$MAKE', or \`./compile' if you like nice colors."