1 dnl Autoconf settings for vlc
3 AC_COPYRIGHT([Copyright 1999-2019 VLC authors and VideoLAN])
5 AC_INIT([vlc], [4.0.0-dev])
15 CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
16 CODENAME="Otto Chriek"
17 COPYRIGHT_YEARS="1996-2019"
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 AM_SILENT_RULES([yes])
31 AM_MAINTAINER_MODE([enable])
37 AC_USE_SYSTEM_EXTENSIONS
39 AH_VERBATIM([FORTIFY_SOURCE],
40 [/* Enable compile-time and run-time bounds-checking, and some warnings,
41 without upsetting glibc 2.15+ or toolchains predefining _FORTIFY_SOURCE */
42 #if !defined _FORTIFY_SOURCE && defined __OPTIMIZE__ && __OPTIMIZE__
43 # define _FORTIFY_SOURCE 2
45 AC_DEFINE([_FILE_OFFSET_BITS], 64, [Define to 64 for large files support.])
46 AC_DEFINE([__LIBVLC__],, [Define within the LibVLC source code tree.])
47 AC_DEFINE([WIN32_LEAN_AND_MEAN],, [Define to limit the scope of <windows.h>.])
59 AC_ARG_VAR([DESKTOP_FILE_VALIDATE], [Validator for desktop entry files])
60 AC_CHECK_PROGS([DESKTOP_FILE_VALIDATE], [${DESKTOP_FILE_VALIDATE} desktop-file-validate], :)
61 AC_ARG_VAR([BUILDCC], [Build system C11 or C99 compiler command])
62 AC_CHECK_PROGS([BUILDCC], [c11-gcc c11 c99-gcc c99], [false])
63 AS_IF([test "$BUILDCC" = "false"], [
64 AC_MSG_ERROR([Cannot find native C99 compiler: please define BUILDCC.])
67 dnl Check for compiler properties
71 AX_CXX_COMPILE_STDCXX_14([noext], [mandatory])
73 dnl Extend the --help string at the current spot.
74 AC_DEFUN([EXTEND_HELP_STRING], [m4_divert_once([HELP_ENABLE], [$1])])
76 dnl Allow binary package maintainer to pass a custom string to avoid
78 AC_ARG_WITH([binary-version],
79 AS_HELP_STRING([--with-binary-version=STRING],
80 [To avoid plugins cache problem between binary version]),[],[])
81 AS_IF([test -n "${with_binary_version}"],[
82 AC_DEFINE_UNQUOTED([DISTRO_VERSION],["${with_binary_version}"],
83 [Binary specific version])
86 dnl Prevent clang from accepting unknown flags with a mere warning
87 AX_APPEND_COMPILE_FLAGS([-Werror=unknown-warning-option -Werror=invalid-command-line-argument], [CFLAGS])
88 AX_APPEND_COMPILE_FLAGS([-Werror=unknown-warning-option -Werror=invalid-command-line-argument], [CXXFLAGS])
91 dnl Check the operating system
98 dnl Set x86 asm flags and defines
100 case "${host_cpu}" in
102 X86ASMFLAGS="-f elf32"
103 X86ASMDEFS="-DARCH_X86_32=1 -DARCH_X86_64=0"
106 X86ASMFLAGS="-f elf64"
107 X86ASMDEFS="-DARCH_X86_32=0 -DARCH_X86_64=1"
117 CFLAGS="${CFLAGS} -pthread"
121 CFLAGS="${CFLAGS} -pthread"
125 CFLAGS="${CFLAGS} -pthread"
126 CPPFLAGS="${CPPFLAGS} -I/usr/local/include"
127 LDFLAGS="${LDFLAGS} -L/usr/local/lib"
132 CPPFLAGS="${CPPFLAGS} -I/usr/local/include -I/usr/X11R6/include"
133 LDFLAGS="${LDFLAGS} -L/usr/local/lib -L/usr/X11R6/lib/"
143 dnl Force gcc "-arch" flag
145 case "${host_cpu}" in
147 ARCH_flag="-arch i386"
148 X86ASMFLAGS="-f macho32"
149 X86ASMDEFS="${X86ASMDEFS} -DPREFIX"
152 ARCH_flag="-arch ppc64"
155 ARCH_flag="-arch ppc"
158 ARCH_flag="-arch x86_64"
159 X86ASMFLAGS="-f macho64"
160 X86ASMDEFS="${X86ASMDEFS} -DPREFIX"
163 ac_cv_c_bigendian="no"
164 ac_cv_c_attribute_packed="no"
169 CFLAGS="${CFLAGS} -D_INTL_REDIRECT_MACROS -std=gnu11 ${ARCH_flag}"
170 CXX="${CXX} -stdlib=libc++ -std=c++11"
171 CXXFLAGS="${CXXFLAGS} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"
172 CPPFLAGS="${CPPFLAGS} ${ARCH_flag}"
173 OBJCFLAGS="${OBJCFLAGS} -D_INTL_REDIRECT_MACROS -std=gnu11 ${ARCH_flag} -Werror=partial-availability"
174 LDFLAGS="${LDFLAGS} -Wl,-headerpad_max_install_names ${ARCH_flag}"
175 VLC_ADD_LIBS([libvlc vlc],[-Wl,-undefined,dynamic_lookup,-framework,AppKit])
176 VLC_ADD_LIBS([libvlccore],[-Wl,-framework,CoreFoundation,-framework,CoreServices])
179 [#import <TargetConditionals.h>
187 [#import <TargetConditionals.h>
197 dnl Handle Mac OS X SDK flags
199 AC_ARG_WITH(macosx-sdk,
200 AS_HELP_STRING([--with-macosx-sdk=DIR],
201 [compile using the SDK in DIR]))
202 if test "${with_macosx_sdk}" != "" ; then
203 test ! -d "${with_macosx_sdk}" && AC_MSG_ERROR([SDK "${with_macosx_sdk}" not found])
204 CPP="${CPP} -isysroot ${with_macosx_sdk}"
205 CC="${CC} -isysroot ${with_macosx_sdk}"
206 CXX="${CXX} -isysroot ${with_macosx_sdk}"
207 OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
208 LD="${LD} -syslibroot ${with_macosx_sdk}"
210 AC_ARG_WITH(macosx-version-min,
211 AS_HELP_STRING([--with-macosx-version-min=VERSION],
212 [compile for Mac OS X VERSION and above]))
213 if test "${with_macosx_version_min}" != "" ; then
214 CPP="${CPP} -mmacosx-version-min=${with_macosx_version_min}"
215 CC="${CC} -mmacosx-version-min=${with_macosx_version_min}"
216 CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
217 OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
218 LD="${LD} -mmacosx_version_min=${with_macosx_version_min}"
221 *mingw32* | *cygwin* | *wince* | *mingwce*)
222 dnl Force libtool to not link to (shared) libgcc_s when detecting C++ dependencies
223 dnl When doing this test with -static-libgcc it will link on (static) libgcc_eh
224 CXXFLAGS="${CXXFLAGS} -static-libgcc"
225 AC_CHECK_TOOL(WINDRES, windres, :)
226 AC_CHECK_TOOL(OBJCOPY, objcopy, :)
227 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
228 [[#ifdef _WIN32_WINNT
229 # error _WIN32_WINNT already defined
233 AC_DEFINE([_WIN32_WINNT], 0x0601, [Define to '0x0601' for Windows 7 APIs.])
235 AC_DEFINE([_WIN32_IE], 0x0600, [Define to '0x0600' for IE 6.0 (and shell) APIs.])
236 AC_DEFINE([UNICODE], [1], [Define to 1 for Unicode (Wide Chars) APIs.])
237 AC_DEFINE([_ISOC99_SOURCE], [1], [Extensions to ISO C89 from ISO C99.])
238 AC_DEFINE([_ISOC11_SOURCE], [1], [Extensions to ISO C99 from ISO C11.])
239 AC_DEFINE([_POSIX_SOURCE], [1], [IEEE Std 1003.1.])
240 AC_DEFINE([_POSIX_C_SOURCE], [200809L], [IEEE Std 1003.1.])
241 AC_DEFINE([_XOPEN_SOURCE], [700], [POSIX and XPG 7th edition])
242 AC_DEFINE([_XOPEN_SOURCE_EXTENDED], [1], [XPG things and X/Open Unix extensions.])
243 AC_DEFINE([_BSD_SOURCE], [1], [ISO C, POSIX, and 4.3BSD things.])
244 AC_DEFINE([_SVID_SOURCE], [1], [ISO C, POSIX, and SVID things.])
251 dnl Check if we are using the mno-cygwin mode in which case we are
252 dnl actually dealing with a mingw32 compiler.
257 SYS=mingw32, AC_MSG_ERROR([VLC requires -mno-cygwin]))
261 if test "${SYS}" = "mingw32"; then
263 LDFLAGS="${LDFLAGS} -Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase"
265 AC_CHECK_PROGS(U2D, [unix2dos todos], unix2dos)
266 ac_default_prefix="`pwd`/_win32"
267 DESTDIR="`pwd`/_win32/"
270 dnl NSIS/MSI Installer prefix and WIN64
272 case "${host_cpu}" in
276 PROGRAMFILES="PROGRAMFILES64"
277 LDFLAGS="${LDFLAGS} -Wl,--high-entropy-va -Wl,--image-base,0x140000000"
282 PROGRAMFILES="PROGRAMFILES64"
283 LDFLAGS="${LDFLAGS} -Wl,--high-entropy-va -Wl,--image-base,0x140000000"
284 X86ASMFLAGS="-f win64"
288 PROGRAMFILES="PROGRAMFILES"
292 PROGRAMFILES="PROGRAMFILES"
293 X86ASMFLAGS="-f win32"
294 X86ASMDEFS="${X86ASMDEFS} -DPREFIX"
297 AC_SUBST([WINDOWS_ARCH])
298 AC_SUBST([PROGRAMFILES])
313 LDFLAGS="${LDFLAGS} -Zomf -Zbin-files -Zargs-wild -Zhigh-mem"
314 AC_LIBOBJ([freeaddrinfo])
315 AC_LIBOBJ([gai_strerror])
316 AC_CHECK_FUNCS([if_nametoindex])
320 AC_DEFINE([_XOPEN_SOURCE], [700], [POSIX and XPG 7th edition])
331 AC_ARG_ENABLE([winstore_app],
332 AS_HELP_STRING([--enable-winstore-app],
333 [Build targetted for Windows Store apps (default disabled)]))
336 AS_IF([test "${SYS}" = "mingw32"],[
338 AS_IF([test "${enable_winstore_app}" = "yes"], [
341 AX_APPEND_FLAG([-DWINSTORECOMPAT],[CFLAGS])
342 AX_APPEND_FLAG([-DWINSTORECOMPAT],[CPPFLAGS])
343 AX_APPEND_FLAG([-DWINSTORECOMPAT],[CXXFLAGS])
344 AX_APPEND_FLAG([-lwinstorecompat], [LDFLAGS])
345 VLC_ADD_LIBS([libvlccore], [-lruntimeobject])
346 AC_LIBOBJ([gai_strerror])
350 AC_DEFINE_UNQUOTED(VLC_WINSTORE_APP, ${vlc_winstore_app}, [Define to 1 if you want to build for Windows Store apps])
354 AS_HELP_STRING([--enable-pdb],
355 [Build PDB files for windows targets (default off)]))
356 AS_IF([test "${SYS}" = "mingw32"],[
357 AS_IF([test "${enable_pdb}" = "yes"], [
359 AX_APPEND_FLAG([-g -gcodeview],[CFLAGS])
360 AX_APPEND_FLAG([-g -gcodeview],[CXXFLAGS])
361 LDFLAGS="${LDFLAGS} -Wl,-pdb="
365 AM_CONDITIONAL([HAVE_LINUX], [test "${SYS}" = "linux"])
366 AM_CONDITIONAL([HAVE_OS2], [test "${SYS}" = "os2"])
368 AM_CONDITIONAL([HAVE_DARWIN], [test "${SYS}" = "darwin"])
369 AM_CONDITIONAL([HAVE_IOS], [test "${HAVE_IOS}" = "1"])
370 AM_CONDITIONAL([HAVE_OSX], [test "${HAVE_OSX}" = "1"])
371 AM_CONDITIONAL([HAVE_TVOS], [test "${HAVE_TVOS}" = "1"])
373 AM_CONDITIONAL([HAVE_NACL], [test "${SYS}" = "nacl"])
374 AM_CONDITIONAL([HAVE_LIBANL], [test "${HAVE_LIBANL}" = "1"])
376 AM_CONDITIONAL([HAVE_WIN32], [test "${SYS}" = "mingw32"])
377 AM_CONDITIONAL([HAVE_WIN64], [test "${HAVE_WIN64}" = "1"]) dnl Only used for the packaging
378 AM_CONDITIONAL([HAVE_WINSTORE], [test "$vlc_winstore_app" = "1"])
379 AM_CONDITIONAL([HAVE_WIN32_DESKTOP], [test "${SYS}" = "mingw32" -a "$vlc_winstore_app" = "0"])
380 AM_CONDITIONAL([ENABLE_PDB], [test "$vlc_build_pdb" = "1"])
382 dnl Use nasm/yasm only on x86
383 AC_CHECK_PROGS(X86ASM, [nasm yasm])
384 AM_CONDITIONAL([HAVE_X86ASM], [test -n "${X86ASM}" && test -n "${X86ASMFLAGS}"])
385 AM_COND_IF([HAVE_X86ASM], [
386 AC_DEFINE([HAVE_X86ASM], [1], [Use external asm on x86.])
388 AC_SUBST([X86ASMFLAGS])
389 AC_SUBST([X86ASMDEFS])
392 dnl Sadly autoconf does not think about testing foo.exe when ask to test
393 dnl for program foo on win32
394 case "${build_os}" in
396 ac_executable_extensions=".exe"
405 AC_SUBST([BUILDEXEEXT])
407 dnl Android is linux, but a bit different
408 AS_IF([test "$SYS" = linux],[
409 AC_MSG_CHECKING([for an Android system])
410 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
411 [[#ifndef __ANDROID__
422 AM_CONDITIONAL([HAVE_ANDROID], [test "${HAVE_ANDROID}" = "1"])
424 dnl Tizen (minimum SDK version: 2.3)
425 AS_IF([test "$SYS" = linux],[
426 AC_MSG_CHECKING([for Tizen])
427 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
432 AC_DEFINE([HAVE_TIZEN_SDK], [1], [Define to 1 if vlc is built against Tizen SDK])
438 AM_CONDITIONAL([HAVE_TIZEN], [test "${HAVE_TIZEN}" = "1"])
441 dnl Check for the contrib directory
444 AS_HELP_STRING([--with-contrib[=DIR]],
445 [search for 3rd party libraries in DIR/include and DIR/lib])
447 AC_MSG_CHECKING([for 3rd party libraries path])
448 AS_IF([test -z "${with_contrib}" || test "${with_contrib}" = "yes"], [
449 CONTRIB_DIR="${srcdir}/contrib/${host}"
450 AS_IF([test ! -d "${CONTRIB_DIR}"], [
451 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
452 CONTRIB_DIR="${srcdir}/contrib/`$CC -dumpmachine`"
453 AS_IF([test ! -d "${CONTRIB_DIR}"], [
454 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
456 AC_MSG_RESULT([not found])
460 AS_IF([test "${with_contrib}" != "no"], [
461 CONTRIB_DIR="${with_contrib}"
464 AC_MSG_RESULT([disabled])
467 AS_IF([test -n "${CONTRIB_DIR}"], [
468 AS_IF([test -d "${CONTRIB_DIR}/lib"],[
469 CONTRIB_DIR=`cd "${CONTRIB_DIR}" && pwd`
471 echo "${CONTRIB_DIR}/lib not found" >&AS_MESSAGE_LOG_FD
473 AC_MSG_RESULT([not usable])
477 AS_IF([test -n "${CONTRIB_DIR}"], [
478 AC_MSG_RESULT([${CONTRIB_DIR}])
479 CPPFLAGS="${CPPFLAGS} -I${CONTRIB_DIR}/include"
480 CFLAGS="${CFLAGS} -I${CONTRIB_DIR}/include"
481 CXXFLAGS="${CXXFLAGS} -I${CONTRIB_DIR}/include"
482 OBJCFLAGS="${OBJCFLAGS} -I${CONTRIB_DIR}/include -F${CONTRIB_DIR} -F${CONTRIB_DIR}/Frameworks"
483 PKG_CONFIG_PATH="${CONTRIB_DIR}/lib/pkgconfig:${CONTRIB_DIR}/share/pkgconfig:${PKG_CONFIG_PATH}"
484 case "${build_os}" in
486 export PKG_CONFIG_PATH=`cygpath -mp ${PKG_CONFIG_PATH}`
489 export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}"
492 LDFLAGS="${LDFLAGS} -L${CONTRIB_DIR}/lib"
494 AS_IF([test -z "$LUAC"], [
495 dnl Old contribs mixed cross-tools and cross-compiled executables
496 AS_IF([test -x "${CONTRIB_DIR}/bin/luac${BUILDEXEEXT}"], [
497 LUAC="${CONTRIB_DIR}/bin/luac${BUILDEXEEXT}"
500 dnl Newer contribs follow usual name space rules
501 AS_IF([test -x "${CONTRIB_DIR}/../bin/${host_alias}-luac${BUILDEXEEXT}"], [
502 LUAC="${CONTRIB_DIR}/../bin/${host_alias}-luac${BUILDEXEEXT}"
506 AS_IF([test "${SYS}" = "darwin"], [
507 export LD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$LD_LIBRARY_PATH"
508 export DYLD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$DYLD_LIBRARY_PATH"
511 AS_IF([test -n "${with_contrib}" && test "${with_contrib}" != "no"], [
512 AC_MSG_ERROR([Third party libraries not found!])
515 AC_SUBST([CONTRIB_DIR])
517 dnl Add extras/tools to the PATH
518 TOOLS_DIR="${srcdir}/extras/tools/build/bin"
519 AS_IF([test -d "${TOOLS_DIR}"], [
520 TOOLS_DIR=`cd "${TOOLS_DIR}" && pwd`
521 export PATH="${TOOLS_DIR}":$PATH
526 dnl It's very bad, but our former custom system was worst
530 dnl override platform specific check for dependent libraries
531 dnl otherwise libtool linking of shared libraries will
532 dnl fail on anything other than pass_all.
533 AC_CACHE_VAL(lt_cv_deplibs_check_method,
534 [lt_cv_deplibs_check_method=pass_all])
536 LT_INIT([dlopen win32-dll shared disable-static])
538 LT_LANG([Windows Resource])
542 lt_cv_deplibs_check_method=pass_all
544 AS_IF([test "${enable_shared}" = "no" -a "${enable_vlc}" != "no"], [
545 AC_MSG_ERROR([VLC is based on plugins. Shared libraries cannot be disabled.])
551 AM_GNU_GETTEXT_VERSION([0.19.8])
552 AM_GNU_GETTEXT([external], [need-formatstring-macros])
561 AS_IF([test "${SYS}" = "mingw32"], [
563 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
564 #if !defined(__MINGW32__)
565 # error Not compiling with mingw
569 dnl Check for broken versions of mingw-runtime compatability library
570 AC_MSG_CHECKING(for broken mingw-runtime)
571 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
573 #if defined(__MINGW64_VERSION_MAJOR)
574 # if __MINGW64_VERSION_MAJOR < 5
575 # error Update your mingw-w64! This one is too old.
578 # error You cannot compile with Mingw. Use Mingw-w64!
583 AC_MSG_RESULT([present])
584 AC_MSG_ERROR([LibVLC requires Mingw-w64 version 5.0 or higher!])
587 dnl force use of mingw provided c99 *printf over msvcrt
588 CPPFLAGS="${CPPFLAGS} -D__USE_MINGW_ANSI_STDIO=1"
590 dnl Check for the need to include the mingwex lib for mingw32
592 AC_CHECK_LIB([mingwex], [opendir],
593 AC_CHECK_LIB([mingw32], [opendir],,
594 [VLC_ADD_LIBS([libvlccore],[-lmingwex])])
598 AC_MSG_RESULT([Not compiling with mingw])
601 dnl Check for fnative-struct or mms-bitfields support for mingw32
602 AX_CHECK_COMPILE_FLAG([-mms-bitfields], [
603 AX_APPEND_FLAG([-mms-bitfields], [CFLAGS])
604 AX_APPEND_FLAG([-mms-bitfields], [CXXFLAGS])
605 # Check for the warning flag without "-Wno-", GCC accepts
606 # -Wno-<anything> for unsupported warnings, which can trigger
607 # other warnings instead.
608 AX_CHECK_COMPILE_FLAG([-Wincompatible-ms-struct], [
609 AX_APPEND_FLAG([-Wno-incompatible-ms-struct], [CFLAGS])
610 AX_APPEND_FLAG([-Wno-incompatible-ms-struct], [CXXFLAGS])
613 AX_CHECK_COMPILE_FLAG([-fnative-struct], [
614 AX_APPEND_FLAG([-fnative-struct], [CFLAGS])
615 AX_APPEND_FLAG([-fnative-struct], [CXXFLAGS])
622 dnl Buggy glibc prevention. Purposedly not cached.
623 dnl See sourceware.org bugs 5058 and 5443.
624 dnl Ubuntu alone has 20 bug numbers for this...
626 AC_MSG_CHECKING(for buggy GNU/libc versions)
627 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
629 #if defined (__GLIBC__) && (__GLIBC__ == 2) \
630 && (__GLIBC_MINOR__ >= 5) && (__GLIBC_MINOR__ <= 7)
631 # error GNU/libc with dcgettext killer bug!
634 AC_MSG_RESULT([not present])
636 AC_MSG_RESULT([found])
637 AS_IF([test "x${enable_nls}" != "xno"], [
638 AC_MSG_ERROR([Buggy GNU/libc (version 2.5 - 2.7) present. VLC would crash; there is no viable
639 work-around for this. Check with your distribution vendor on how to update the
640 glibc run-time. Alternatively, build with --disable-nls.])
644 dnl Plugin compilation stuff
648 dnl Check for system libs needed
651 dnl Check for usual libc functions
652 AC_CHECK_FUNCS([accept4 daemon fcntl flock fstatvfs fork getenv getpwuid_r isatty memalign mkostemp mmap open_memstream newlocale openat pipe2 pread posix_fadvise posix_madvise posix_memalign setlocale stricmp strnicmp strptime uselocale])
653 AC_REPLACE_FUNCS([aligned_alloc atof atoll dirfd fdopendir flockfile fsync getdelim getpid lfind lldiv memrchr nrand48 poll recvmsg rewind sendmsg setenv strcasecmp strcasestr strdup strlcpy strndup strnlen strnstr strsep strtof strtok_r strtoll swab tdestroy tfind timegm timespec_get strverscmp pathconf])
654 AC_REPLACE_FUNCS([gettimeofday])
655 AC_CHECK_FUNC(fdatasync,,
656 [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
659 VLC_REPLACE_DECL([realpath], [#include <stdlib.h>])
661 dnl mingw64 implements those as static inline, not functions with C linkage
662 VLC_REPLACE_DECL([asprintf], [#include <stdio.h>])
663 VLC_REPLACE_DECL([vasprintf], [#include <stdio.h>])
664 VLC_REPLACE_DECL([gmtime_r], [#include <time.h>])
665 VLC_REPLACE_DECL([localtime_r], [#include <time.h>])
667 dnl C11 static_assert()
668 AC_MSG_CHECKING([for static_assert in assert.h])
669 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <assert.h>], [
670 static_assert(1, "The impossible happened.");
673 AC_DEFINE([HAVE_STATIC_ASSERT], [1], [Define to 1 if <assert.h> defines static_assert.])
678 # Windows CE does not have strcoll()
681 dnl Check for non-standard system calls
684 AC_CHECK_FUNCS([eventfd vmsplice sched_getaffinity recvmmsg memfd_create])
687 AC_CHECK_FUNCS([_lock_file])
691 AH_BOTTOM([#include <vlc_fixups.h>])
693 dnl Check for struct pollfd
694 AC_CHECK_TYPES([struct pollfd],,,
695 [#include <sys/types.h>
698 #elif defined (_WIN32)
699 # include <winsock2.h>
703 dnl Check for struct timespec
704 AC_CHECK_TYPES([struct timespec],,,
707 dnl Check for max_align_t
708 AC_CHECK_TYPES([max_align_t],,,
709 [#include <stddef.h>])
711 dnl Checks for socket stuff
714 AC_SEARCH_LIBS(connect, [socket], [
715 AS_IF([test "$ac_cv_search_connect" != "none required"], [
716 SOCKET_LIBS="$ac_cv_search_connect"
719 AS_IF([test "${SYS}" = "mingw32"], [
720 SOCKET_LIBS="-lws2_32 -liphlpapi"
724 AC_SEARCH_LIBS([inet_pton], [nsl], [
725 AS_IF([test "$ac_cv_search_inet_pton" != "none required"], [
726 SOCKET_LIBS="$ac_cv_search_inet_pton $SOCKET_LIBS"
728 ],, [${SOCKET_LIBS}])
730 LIBS="${LIBS} ${SOCKET_LIBS}"
732 AC_LANG_PROGRAM([#ifdef _WIN32
733 #include <ws2tcpip.h>
735 # if _WIN32_WINNT < 0x600
739 #include <sys/socket.h>
740 #include <arpa/inet.h>
742 char dst[[sizeof(struct in_addr)]];
743 inet_pton(AF_INET, "127.0.0.1", dst);
744 ])],[AC_DEFINE([HAVE_INET_PTON],[1],[Define to 1 if you have inet_pton function])],[AC_LIBOBJ([inet_pton])])
745 AC_CHECK_TYPES([struct if_nameindex],,,[#include <net/if.h>])
746 AC_CHECK_FUNCS([if_nameindex])
748 AC_SUBST([SOCKET_LIBS])
750 dnl Check for socklen_t
751 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
752 AC_CACHE_CHECK([for socklen_t in sys/socket.h], dnl ` (fix VIM syntax highlight
753 ac_cv_type_socklen_t,
754 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
755 [#include <sys/types.h>
757 # include <winsock2.h>
758 # include <ws2tcpip.h>
760 # include <sys/socket.h>
761 #endif]], [[socklen_t len; len = 0;]])],
762 ac_cv_type_socklen_t=yes,
763 ac_cv_type_socklen_t=no)])
764 AS_IF([test "$ac_cv_type_socklen_t" = no],
765 [AC_DEFINE(socklen_t, unsigned int)])
767 dnl Check for struct sockaddr_storage
768 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
769 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
770 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
772 [#include <sys/types.h>
773 #if defined( _WIN32 )
774 # include <winsock2.h>
776 # include <sys/socket.h>
777 #endif], [struct sockaddr_storage addr;],
778 ac_cv_struct_sockaddr_storage=yes,
779 ac_cv_struct_sockaddr_storage=no)])
780 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
781 AC_DEFINE(sockaddr_storage, sockaddr)
782 AC_DEFINE(ss_family, sa_family)
785 dnl FreeBSD has a gnugetopt library for this:
787 AC_CHECK_FUNC(getopt_long,, [
788 AC_CHECK_LIB([gnugetopt],[getopt_long], [
789 GNUGETOPT_LIBS="-lgnugetopt"
792 AC_SUBST([GNUGETOPT_LIBS])
794 AC_CHECK_LIB([m], [cos], [
801 AC_CHECK_LIB([m], [lrintf], [
802 AC_DEFINE(HAVE_LRINTF, 1, [Define to 1 if you have the lrintf function])
803 VLC_ADD_LIBS([skins2],[-lm])
805 AC_CHECK_LIB([m], [nanf],
806 AC_DEFINE(HAVE_NANF, 1, [Define to 1 if you have the NANF function])
808 AC_CHECK_LIB([m], [sincos], [
809 AC_DEFINE(HAVE_SINCOS, 1, [Define to 1 if you have the sincos function.])
814 AC_MSG_CHECKING([broken qsort_r prototype])
815 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <stdlib.h>
817 _Static_assert(_Generic((qsort_r),
818 void (*)(void *, size_t, size_t, void *,
819 int (*)(void *, const void *, const void *)) : 1, default: 0),
820 "Bad prototype not matched");
822 AC_MSG_RESULT([broken])
823 AC_DEFINE([HAVE_BROKEN_QSORT_R], 1, [Defined to 1 if the qsort_r() prototype contradicts the upcoming POSIX standard.])
828 AC_MSG_CHECKING([_Thread_local support])
829 AC_COMPILE_IFELSE([AC_LANG_SOURCE([_Thread_local int foo = 0;
832 AC_DEFINE(HAVE_THREAD_LOCAL, 1, [Defined to 1 if C11 _Thread_local storage qualifier is supported])
833 ],[ AC_MSG_RESULT([no])])
835 dnl __STDC_NO_THREADS__ can't be trusted on some platforms.
836 dnl check for its availability explicitely
837 AC_CHECK_HEADERS([threads.h])
839 AC_CHECK_LIB([anl],[getaddrinfo_a],[
840 AC_DEFINE(HAVE_LIBANL, 1, [Define to 1 if you have the anl library])
843 dnl Check for dynamic plugins
845 have_dynamic_objects="no"
847 AC_SEARCH_LIBS(dlsym, [dl svld], [
848 AS_IF([test "$ac_cv_search_dlsym" != "none required"], [
849 LIBDL="$ac_cv_search_dlsym"
851 have_dynamic_objects="yes"
856 AS_IF([test "${SYS}" = "mingw32"], [
858 have_dynamic_objects="yes" #assume we can use shared objects
861 AC_ARG_WITH([libfuzzer],
862 AS_HELP_STRING([--with-libfuzzer=DIR],
863 [use libFuzzer library from DIR and triggers sanitize coverage (default disabled)]),
866 AS_VAR_IF(with_libfuzzer, no, [], [
871 AM_CONDITIONAL([HAVE_LIBFUZZER], [test "${with_libfuzzer}" != "no"])
873 AS_IF([test "${enable_shared}" = "no"], [
874 have_dynamic_objects=no
876 AM_CONDITIONAL([HAVE_DYNAMIC_PLUGINS], [test "${have_dynamic_objects}" != "no"])
880 AS_IF([test "${SYS}" != "mingw32"], [
881 AC_SEARCH_LIBS([clock_nanosleep], [rt pthread], [
882 AS_IF([test "$ac_cv_search_clock_nanosleep" != "none required"], [
883 LIBRT="$ac_cv_search_clock_nanosleep"
886 AC_SEARCH_LIBS([nanosleep], [rt pthread posix4], [
887 AS_IF([test "$ac_cv_search_nanosleep" != "none required"], [
888 LIBRT="$ac_cv_search_nanosleep"
896 dnl Check for headers
900 AC_CHECK_HEADERS([arpa/inet.h pthread.h search.h sys/shm.h sys/socket.h sys/uio.h])
901 AC_CHECK_HEADERS([net/if.h], [], [],
903 #include <sys/types.h>
904 #include <sys/socket.h>
906 AC_CHECK_HEADER([syslog.h], [have_syslog="yes"], [have_syslog="no"])
907 AM_CONDITIONAL([HAVE_SYSLOG], [test "$have_syslog" = "yes"])
910 AC_CHECK_HEADERS([netinet/tcp.h netinet/udplite.h sys/param.h sys/mount.h])
913 AC_CHECK_HEADERS([features.h getopt.h linux/dccp.h linux/magic.h mntent.h sys/eventfd.h])
916 AC_CHECK_HEADERS([xlocale.h])
918 dnl Check if C++ headers define locale_t
920 AC_CACHE_CHECK([if C++ headers define locale_t],
921 [ac_cv_cxx_locale_t],
922 [ac_cv_cxx_locale_t=no
923 AC_TRY_COMPILE([#include <locale>], [locale_t loc;],
924 [ac_cv_cxx_locale_t=yes])])
925 if test "${ac_cv_cxx_locale_t}" != "no"; then
926 AC_DEFINE(HAVE_CXX_LOCALE_T, 1, Define to 1 if C++ headers define locale_t)
930 dnl LP64 and LLP64 architectures had better define ssize_t by themselves...
931 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.]) dnl ` (fix VIM syntax highlight
932 AC_CHECK_TYPE(ssize_t,, [
933 AC_DEFINE(ssize_t, int)
936 dnl It seems that autoconf detects pkg-config only during the first
937 dnl PKG_CHECK_MODULES from configure.ac - which makes sense. But in our case,
938 dnl it is nested within a conditional block, so it was not working right.
939 PKG_PROG_PKG_CONFIG()
941 dnl On some OS we need static linking
942 AS_IF([test -n "${PKG_CONFIG}" ],[
943 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "darwin" -o "${SYS}" = "os2" ],[
944 PKG_CONFIG="${PKG_CONFIG} --static"
950 dnl Check for zlib.h and -lz if available
952 AC_CHECK_HEADERS([zlib.h], [ have_zlib=yes ], [ have_zlib=no ])
953 AM_CONDITIONAL([HAVE_ZLIB], [ test "${have_zlib}" = "yes" ])
954 if test "${have_zlib}" = "yes"
956 VLC_ADD_LIBS([sap],[-lz])
961 dnl Domain name i18n support via GNU libidn
963 PKG_CHECK_MODULES([IDN], [libidn], [
965 AC_DEFINE([HAVE_IDN], 1, [Define to 1 if you have GNU libidn.])
972 AC_ARG_ENABLE([dbus],
973 AS_HELP_STRING([--enable-dbus],
974 [compile D-Bus message bus support (default enabled)]))
976 AS_IF([test "${enable_dbus}" != "no"], [
977 PKG_CHECK_MODULES(DBUS, [dbus-1 >= 1.6.0], [
980 AS_IF([test -n "${enable_dbus}"], [
981 AC_MSG_ERROR([${DBUS_PKG_ERRORS}.])
983 AC_MSG_WARN([${DBUS_PKG_ERRORS}.])
987 AM_CONDITIONAL([HAVE_DBUS], [test "${have_dbus}" = "yes"])
990 dnl Check for systemd
991 PKG_CHECK_MODULES([SYSTEMD], [libsystemd], [
994 AC_MSG_WARN([${SYSTEMD_PKG_ERRORS}.])
996 AM_CONDITIONAL([HAVE_SYSTEMD], [test "${have_systemd}" = "yes"])
999 EXTEND_HELP_STRING([Optimization options:])
1001 dnl Compiler warnings
1004 AX_APPEND_COMPILE_FLAGS([-Wall -Wextra -Wsign-compare -Wundef -Wpointer-arith -Wvolatile-register-var -Wformat -Wformat-security -Wduplicated-branches -Wduplicated-cond], [CFLAGS])
1005 AX_APPEND_COMPILE_FLAGS([-Wall -Wextra -Wsign-compare -Wundef -Wpointer-arith -Wvolatile-register-var -Wformat -Wformat-security -Wduplicated-branches -Wduplicated-cond], [CXXFLAGS])
1007 AX_APPEND_COMPILE_FLAGS([-Wbad-function-cast -Wwrite-strings -Wmissing-prototypes -Werror-implicit-function-declaration -Winit-self -Wlogical-op -Wshadow=local -Wmultistatement-macros], [CFLAGS])
1008 AX_APPEND_COMPILE_FLAGS([-pipe], [CFLAGS])
1013 AC_ARG_ENABLE([debug],
1014 AS_HELP_STRING([--disable-debug],
1015 [disable run-time assertions (default enabled)]),,
1016 [enable_debug="yes"])
1018 [Define to 1 if debug code should NOT be compiled])
1019 AS_IF([test "${enable_debug}" != "no"], [
1020 AC_CHECK_HEADERS([valgrind/valgrind.h])
1028 AC_ARG_ENABLE([gprof],
1029 AS_HELP_STRING([--enable-gprof],[profile with gprof (default disabled)]),,
1030 [enable_gprof="no"])
1031 AS_IF([test "${enable_gprof}" != "no"], [
1032 CFLAGS="${CFLAGS} -pg"
1033 CXXFLAGS="${CXXFLAGS} -pg"
1034 OBJCFLAGS="${OBJCFLAGS} -pg"
1035 LDFLAGS="${LDFLAGS} -pg"
1038 AC_ARG_ENABLE([cprof],
1039 AS_HELP_STRING([--enable-cprof],[profile with cprof (default disabled)]),,
1040 [enable_cprof="no"])
1041 AS_IF([test "${enable_gprof}" != "no"], [
1042 CFLAGS="${CFLAGS} -finstrument-functions"
1043 CXXFLAGS="${CXXFLAGS} -finstrument-functions"
1044 OBJCFLAGS="${OBJCFLAGS} -finstrument-functions"
1045 LDFLAGS="${LDFLAGS} -finstrument-functions"
1051 AC_ARG_ENABLE([coverage],
1052 AS_HELP_STRING([--enable-coverage],
1053 [build for test coverage (default disabled)]),,
1054 [enable_coverage="no"])
1055 AS_IF([test "${enable_coverage}" != "no"], [
1056 CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
1057 CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
1058 LDFLAGS="-lgcov ${LDFLAGS}"
1061 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "os2"], [
1063 CFLAGS="${CFLAGS} -fvisibility=hidden"
1064 CXXFLAGS="${CXXFLAGS} -fvisibility=hidden"
1065 OBJCFLAGS="${OBJCFLAGS} -fvisibility=hidden"
1066 AC_CACHE_CHECK([if $CC accepts -fvisibility=hidden],
1067 [ac_cv_c_visibility_hidden], [
1068 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1069 ac_cv_c_visibility_hidden=yes
1071 ac_cv_c_visibility_hidden=no
1074 AS_IF([test "${ac_cv_c_visibility_hidden}" = "no"], [VLC_RESTORE_FLAGS])
1080 AC_ARG_WITH([sanitizer],
1081 AS_HELP_STRING([--with-sanitizer=(address/memory/undefined/thread)],
1082 [build with sanitizer flags (default disabled)]),
1084 [with_sanitizer=no])
1086 AS_VAR_IF(with_sanitizer, no, [], [
1087 AX_CHECK_COMPILE_FLAG([-fsanitize=${with_sanitizer}], [
1088 AX_APPEND_FLAG([-fsanitize=${with_sanitizer}])
1089 AX_APPEND_FLAG([-fsanitize=${with_sanitizer}], [CXXFLAGS])
1090 AX_APPEND_FLAG([-fsanitize=${with_sanitizer}], [LDFLAGS])
1092 AC_MSG_ERROR(["-fsanitize=${with_sanitizer} not supported!"])
1094 AX_APPEND_FLAG([-g])
1095 AX_APPEND_FLAG([-g], [CXXFLAGS])
1097 AS_IF([test -z "${with_sanitizer##*address*}" ], [
1098 AX_APPEND_COMPILE_FLAGS([-fsanitize-address-use-after-scope -fno-omit-frame-pointer -fsanitize=pointer-compare -fsanitize=pointer-subtract])
1099 AX_APPEND_COMPILE_FLAGS([-fsanitize-address-use-after-scope -fno-omit-frame-pointer -fsanitize=pointer-compare -fsanitize=pointer-subtract], [CXXFLAGS])
1101 AS_IF([test -z "${with_sanitizer##*memory*}" ], [
1102 AX_APPEND_COMPILE_FLAGS([-fPIE -pie])
1103 AX_APPEND_COMPILE_FLAGS([-fPIE -pie], [CXXFLAGS])
1105 AS_IF([test -z "${with_sanitizer##*thread*}" ], [
1106 AX_APPEND_COMPILE_FLAGS([-fPIE -pie])
1107 AX_APPEND_COMPILE_FLAGS([-fPIE -pie], [CXXFLAGS])
1112 dnl Enable/disable optimizations
1114 AC_ARG_ENABLE([optimizations],
1115 AS_HELP_STRING([--disable-optimizations],
1116 [disable compiler optimizations (default enabled)]),,
1117 [enable_optimizations="yes"])
1119 dnl Check for various optimization flags
1120 AS_IF([test "${enable_optimizations}" != "no"], [
1122 dnl -O3 only in production builds
1123 AS_IF([test "${enable_debug}" = "no"], [
1125 CFLAGS="${CFLAGS} -O3"
1126 CXXFLAGS="${CXXFLAGS} -O3"
1127 OBJCFLAGS="${OBJCFLAGS} -O3"
1128 AC_CACHE_CHECK([if $CC accepts -O3], [ac_cv_c_o3], [
1129 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1135 AS_IF([test "${ac_cv_c_o3}" = "no"], [VLC_RESTORE_FLAGS])
1138 dnl Check for fast maths
1139 AX_APPEND_COMPILE_FLAGS([-fno-math-errno -funsafe-math-optimizations -fno-rounding-math -fno-signaling-nans -fcx-limited-range], [CFLAGS])
1140 AX_APPEND_COMPILE_FLAGS([-fno-math-errno -funsafe-math-optimizations -fno-rounding-math -fno-signaling-nans -fcx-limited-range], [CXXFLAGS])
1143 #if defined(_MSC_VER) && !defined(__clang__)
1144 # pragma fenv_access(off)
1145 # pragma fp_contract(on)
1146 #elif defined(__GNUC__)
1147 /* Not supported so far */
1149 # pragma STDC FENV_ACCESS OFF
1150 # pragma STDC FP_CONTRACT ON
1154 dnl Check for -funroll-loops
1156 CFLAGS="${CFLAGS} -funroll-loops"
1157 CXXFLAGS="${CXXFLAGS} -funroll-loops"
1158 OBJCFLAGS="${OBJCFLAGS} -funroll-loops"
1159 AC_CACHE_CHECK([if $CC accepts -funroll-loops], [ac_cv_c_unroll_loops], [
1160 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1161 ac_cv_c_unroll_loops=yes
1163 ac_cv_c_unroll_loops=no
1166 AS_IF([test "${ac_cv_c_unroll_loops}" = "no"], [VLC_RESTORE_FLAGS])
1168 AS_IF([test "$enable_debug" = "no"], [
1169 dnl Check for -fomit-frame-pointer
1171 CFLAGS="${CFLAGS} -fomit-frame-pointer"
1172 CXXFLAGS="${CXXFLAGS} -fomit-frame-pointer"
1173 OBJCFLAGS="${OBJCFLAGS} -fomit-frame-pointer"
1174 AC_CACHE_CHECK([if $CC accepts -fomit-frame-pointer],
1175 [ac_cv_c_omit_frame_pointer], [
1176 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1177 ac_cv_c_omit_frame_pointer=yes
1179 ac_cv_c_omit_frame_pointer=no
1182 AS_IF([test "${ac_cv_c_omit_frame_pointer}" = "no"], [VLC_RESTORE_FLAGS])
1187 AC_ARG_ENABLE([ssp],
1188 AS_HELP_STRING([--disable-ssp],
1189 [disable stack smashing protection (default enabled for optimized builds)]), [],
1192 AS_IF([test "${enable_ssp}" != "no" -a "${enable_optimizations}" != "no"], [
1194 AX_APPEND_COMPILE_FLAGS([-fstack-protector-strong])
1195 AX_APPEND_COMPILE_FLAGS([-fstack-protector-strong], [CXXFLAGS])
1196 dnl Win32 requires linking to ssp for stack-protection
1197 AS_IF([test "${SYS}" = "mingw32"], [
1198 LDFLAGS="${LDFLAGS} -lssp"
1199 AC_CACHE_CHECK([if linker supports stack protectors], [ac_cv_ld_ssp], [
1200 AC_TRY_LINK([#include <stdio.h>],[char buf[100]; fgets(buf, sizeof(buf), stdin);], [
1206 AS_IF([test "${ac_cv_ld_ssp}" = "no"], [VLC_RESTORE_FLAGS])
1210 AS_IF([test "${SYS}" = "mingw32"], [
1211 dnl library for BCrypt APIs
1212 AS_IF([test "${vlc_winstore_app}" = 1],
1213 [LDFLAGS="${LDFLAGS} -lbcrypt"])
1217 LDFLAGS="${LDFLAGS} -Wl,-Bsymbolic"
1218 AC_CACHE_CHECK([if linker supports -Bsymbolic], [ac_cv_ld_bsymbolic], [
1220 ac_cv_ld_bsymbolic="-Wl,-Bsymbolic"
1222 ac_cv_ld_bsymbolic=""
1226 SYMBOLIC_LDFLAGS="${ac_cv_ld_bsymbolic}"
1227 AC_SUBST([SYMBOLIC_LDFLAGS])
1230 LDFLAGS="${LDFLAGS} -Wl,-z,defs"
1231 AC_CACHE_CHECK([if linker supports -z,defs], [ac_cv_ld_z_defs], [
1233 ac_cv_ld_z_defs="yes"
1235 ac_cv_ld_z_defs="no"
1238 AS_IF([test "${ac_cv_ld_z_defs}" = "no"], [VLC_RESTORE_FLAGS])
1240 dnl Check for __attribute__((packed))
1241 AC_CACHE_CHECK([for __attribute__((packed))],
1242 [ac_cv_c_attribute_packed],
1243 [ac_cv_c_attribute_packed=no
1244 AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b; (void)b;],
1245 [ac_cv_c_attribute_packed=yes])])
1246 if test "${ac_cv_c_attribute_packed}" != "no"; then
1247 AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1253 case "${host_cpu}" in
1266 dnl Check for backtrace() support
1267 AC_CHECK_HEADERS([execinfo.h])
1268 AC_CHECK_FUNCS([backtrace])
1273 ALIASES="${ALIASES} cvlc rvlc"
1276 dnl Accelerated modules
1279 dnl Check for fully working MMX intrinsics
1280 dnl We need support for -mmmx, we need <mmintrin.h>, and we also need a
1281 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1282 AC_ARG_ENABLE([mmx],
1283 AS_HELP_STRING([--disable-mmx],
1284 [disable MMX optimizations (default auto)]),,[
1285 case "${host_cpu}" in
1296 AS_IF([test "${enable_mmx}" != "no"], [
1299 CFLAGS="${CFLAGS} -mmmx"
1300 AC_CACHE_CHECK([if $CC groks MMX intrinsics], [ac_cv_c_mmx_intrinsics], [
1301 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1302 [#include <mmintrin.h>
1304 uint64_t frobzor;]], [
1306 a = b = c = (__m64)frobzor;
1307 a = _mm_slli_pi16(a, 3);
1308 a = _mm_adds_pi16(a, b);
1309 c = _mm_srli_pi16(c, 8);
1310 c = _mm_slli_pi16(c, 3);
1311 b = _mm_adds_pi16(b, c);
1312 a = _mm_unpacklo_pi8(a, b);
1313 frobzor = (uint64_t)a;]])], [
1314 ac_cv_c_mmx_intrinsics=yes
1316 ac_cv_c_mmx_intrinsics=no
1320 AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1321 AC_DEFINE(HAVE_MMX_INTRINSICS, 1, [Define to 1 if MMX intrinsics are available.])
1325 CFLAGS="${CFLAGS} -mmmx"
1326 AC_CACHE_CHECK([if $CC groks MMX inline assembly], [ac_cv_mmx_inline], [
1327 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1329 asm volatile("packuswb %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1332 ac_cv_mmx_inline=yes
1337 AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1338 AC_DEFINE(CAN_COMPILE_MMX, 1, [Define to 1 inline MMX assembly is available.])
1342 AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1343 [ac_cv_mmxext_inline], [
1344 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1346 asm volatile("maskmovq %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1349 ac_cv_mmxext_inline=yes
1351 ac_cv_mmxext_inline=no
1355 AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1356 AC_DEFINE(CAN_COMPILE_MMXEXT, 1, [Define to 1 if MMX EXT inline assembly is available.])
1360 AM_CONDITIONAL([HAVE_MMX], [test "${have_mmx}" = "yes"])
1361 AM_CONDITIONAL([HAVE_MMXEXT], [test "${have_mmxext}" = "yes"])
1363 dnl Check for fully workin SSE2 intrinsics
1364 dnl We need support for -msse[2], we need <emmintrin.h>, and we also need a
1365 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1366 AC_ARG_ENABLE([sse],
1367 AS_HELP_STRING([--disable-sse],
1368 [disable SSE (1-4) optimizations (default auto)]),, [
1369 case "${host_cpu}" in
1379 AS_IF([test "${enable_sse}" != "no"], [
1380 ARCH="${ARCH} sse sse2"
1383 CFLAGS="${CFLAGS} -msse2"
1384 AC_CACHE_CHECK([if $CC groks SSE2 intrinsics], [ac_cv_c_sse2_intrinsics], [
1385 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1386 [#include <emmintrin.h>
1388 uint64_t frobzor;]], [
1390 a = b = c = _mm_set1_epi64((__m64)frobzor);
1391 a = _mm_slli_epi16(a, 3);
1392 a = _mm_adds_epi16(a, b);
1393 c = _mm_srli_epi16(c, 8);
1394 c = _mm_slli_epi16(c, 3);
1395 b = _mm_adds_epi16(b, c);
1396 a = _mm_unpacklo_epi8(a, b);
1397 frobzor = (uint64_t)_mm_movepi64_pi64(a);]])], [
1398 ac_cv_c_sse2_intrinsics=yes
1400 ac_cv_c_sse2_intrinsics=no
1404 AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1405 AC_DEFINE(HAVE_SSE2_INTRINSICS, 1, [Define to 1 if SSE2 intrinsics are available.])
1409 CFLAGS="${CFLAGS} -msse"
1410 AC_CACHE_CHECK([if $CC groks SSE inline assembly], [ac_cv_sse_inline], [
1411 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1413 asm volatile("xorps %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1416 ac_cv_sse_inline=yes
1422 AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1423 AC_DEFINE(CAN_COMPILE_SSE, 1, [Define to 1 if SSE inline assembly is available.])
1426 AC_CACHE_CHECK([if $CC groks SSE2 inline assembly], [ac_cv_sse2_inline], [
1427 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1429 asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1432 ac_cv_sse2_inline=yes
1434 ac_cv_sse2_inline=no
1437 AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1438 AC_DEFINE(CAN_COMPILE_SSE2, 1, [Define to 1 if SSE2 inline assembly is available.])
1443 AC_CACHE_CHECK([if $CC groks SSE3 inline assembly], [ac_cv_sse3_inline], [
1444 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1446 asm volatile("movsldup %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1449 ac_cv_sse3_inline=yes
1451 ac_cv_sse3_inline=no
1455 AS_IF([test "${ac_cv_sse3_inline}" != "no"], [
1456 AC_DEFINE(CAN_COMPILE_SSE3, 1, [Define to 1 if SSE3 inline assembly is available.]) ])
1459 AC_CACHE_CHECK([if $CC groks SSSE3 inline assembly], [ac_cv_ssse3_inline], [
1460 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1462 asm volatile("pabsw %%xmm0,%%xmm0"::"r"(p):"xmm0");
1465 ac_cv_ssse3_inline=yes
1467 ac_cv_ssse3_inline=no
1471 AS_IF([test "${ac_cv_ssse3_inline}" != "no"], [
1472 AC_DEFINE(CAN_COMPILE_SSSE3, 1, [Define to 1 if SSSE3 inline assembly is available.]) ])
1475 AC_CACHE_CHECK([if $CC groks SSE4.1 inline assembly],
1476 [ac_cv_sse4_1_inline], [
1477 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1479 asm volatile("pmaxsb %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1482 ac_cv_sse4_1_inline=yes
1484 ac_cv_sse4_1_inline=no
1488 AS_IF([test "${ac_cv_sse4_1_inline}" != "no"], [
1489 AC_DEFINE(CAN_COMPILE_SSE4_1, 1, [Define to 1 if SSE4_1 inline assembly is available.]) ])
1492 AC_CACHE_CHECK([if $CC groks SSE4.2 inline assembly],
1493 [ac_cv_sse4_2_inline], [
1494 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1496 asm volatile("pcmpgtq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1499 ac_cv_sse4_2_inline=yes
1501 ac_cv_sse4_2_inline=no
1505 AS_IF([test "${ac_cv_sse4_2_inline}" != "no"], [
1506 AC_DEFINE(CAN_COMPILE_SSE4_2, 1, [Define to 1 if SSE4_2 inline assembly is available.]) ])
1509 AC_CACHE_CHECK([if $CC groks SSE4A inline assembly], [ac_cv_sse4a_inline], [
1510 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1512 asm volatile("insertq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1515 ac_cv_sse4a_inline=yes
1517 ac_cv_sse4a_inline=no
1521 AS_IF([test "${ac_cv_sse4a_inline}" != "no"], [
1522 AC_DEFINE([CAN_COMPILE_SSE4A], [1], [Define to 1 if SSE4A inline assembly is available.]) ])
1524 AM_CONDITIONAL([HAVE_SSE2], [test "$have_sse2" = "yes"])
1526 dnl Check for fully workin AVX2 intrinsics
1527 dnl We need support for -mavx[2], we need <immintrin.h>, and we also need a
1528 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1529 AC_ARG_ENABLE([avx],
1530 AS_HELP_STRING([--disable-avx],
1531 [disable AVX (1-2) optimizations (default auto)]),, [
1532 case "${host_cpu}" in
1542 AS_IF([test "${enable_avx}" != "no"], [
1543 ARCH="${ARCH} avx avx2"
1546 CFLAGS="${CFLAGS} -mavx2"
1547 AC_CACHE_CHECK([if $CC groks AVX2 intrinsics], [ac_cv_c_avx2_intrinsics], [
1548 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1549 [#include <immintrin.h>
1551 uint64_t frobzor;]], [
1553 a = b = c = _mm256_set1_epi64x((int64_t)frobzor);
1554 a = _mm256_slli_epi16(a, 3);
1555 a = _mm256_adds_epi16(a, b);
1556 c = _mm256_srli_epi16(c, 8);
1557 c = _mm256_slli_epi16(c, 3);
1558 b = _mm256_adds_epi16(b, c);
1559 a = _mm256_unpacklo_epi8(a, b);
1560 frobzor = (uint64_t)_mm256_extract_epi64(a, 0);]])], [
1561 ac_cv_c_avx2_intrinsics=yes
1563 ac_cv_c_avx2_intrinsics=no
1567 AS_IF([test "${ac_cv_c_avx2_intrinsics}" != "no"], [
1568 AC_DEFINE(HAVE_AVX2_INTRINSICS, 1, [Define to 1 if AVX2 intrinsics are available.])
1572 CFLAGS="${CFLAGS} -mavx"
1573 AC_CACHE_CHECK([if $CC groks AVX inline assembly], [ac_cv_avx_inline], [
1574 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1576 asm volatile("xorps256 %%ymm1,%%ymm2"::"r"(p):"ymm1", "ymm2");
1579 ac_cv_avx_inline=yes
1585 AS_IF([test "${ac_cv_avx_inline}" != "no" -a "${SYS}" != "solaris"], [
1586 AC_DEFINE(CAN_COMPILE_AVX, 1, [Define to 1 if AVX inline assembly is available.])
1589 AC_CACHE_CHECK([if $CC groks AVX2 inline assembly], [ac_cv_avx2_inline], [
1590 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1592 asm volatile("punpckhqdq256 %%ymm1,%%ymm2"::"r"(p):"ymm1", "ymm2");
1595 ac_cv_avx2_inline=yes
1597 ac_cv_avx2_inline=no
1601 AS_IF([test "${ac_cv_avx2_inline}" != "no" -a "${SYS}" != "solaris"], [
1602 AC_DEFINE(CAN_COMPILE_AVX2, 1, [Define to 1 if AVX2 inline assembly is available.])
1606 AM_CONDITIONAL([HAVE_AVX2], [test "$have_avx2" = "yes"])
1609 CFLAGS="${CFLAGS} -mmmx"
1611 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly], [ac_cv_3dnow_inline], [
1612 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1614 asm volatile("pfadd %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1617 ac_cv_3dnow_inline=yes
1619 ac_cv_3dnow_inline=no
1623 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1624 AC_DEFINE([CAN_COMPILE_3DNOW], 1,
1625 [Define to 1 if 3D Now! inline assembly is available.])
1628 AM_CONDITIONAL([HAVE_3DNOW], [test "$have_3dnow" = "yes"])
1631 AC_ARG_ENABLE([neon],
1632 AS_HELP_STRING([--disable-neon],
1633 [disable ARM NEON optimizations (default auto)]),, [
1634 case "${host_cpu}" in
1646 AS_IF([test "${enable_neon}" != "no"], [
1648 AC_CACHE_CHECK([if $CCAS groks ARM NEON assembly], [ac_cv_arm_neon], [
1649 AS_IF([test "${enable_neon}" != "64"], [
1650 CFLAGS="${CFLAGS} -mfpu=neon -mhard-float"
1653 asm volatile("vqmovun.s64 d0, q1":::"d0");
1661 CFLAGS="${CFLAGS} -march=armv8-a+simd"
1664 asm volatile("uhadd v0.8b, v0.8b, v1.8b":::"v0");
1675 AM_CONDITIONAL([HAVE_NEON], [test "${ac_cv_arm_neon}" = "32"])
1676 AM_CONDITIONAL([HAVE_ARM64], [test "${ac_cv_arm_neon}" = "64"])
1678 AC_ARG_ENABLE([sve],
1679 AS_HELP_STRING([--disable-sve],
1680 [disable ARM SVE optimizations (default auto)]),, [
1681 AS_IF([test "${host_cpu}" = "aarch64"], [enable_sve="yes"] ,[enable_sve="no"])
1683 AS_IF([test "${enable_sve}" != "no"], [
1685 CFLAGS="${CFLAGS} -march=armv8-a+sve"
1686 AC_CACHE_CHECK([if $CCAS groks ARM SVE assembly], [ac_cv_arm_sve], [
1689 asm volatile("ptrue p0.s" ::: "p0");
1699 AM_CONDITIONAL([HAVE_SVE], [test "${ac_cv_arm_sve}" = "yes"])
1702 AC_ARG_ENABLE([altivec],
1703 AS_HELP_STRING([--disable-altivec],
1704 [disable AltiVec optimizations (default auto)]),, [
1705 AS_CASE("${host_cpu}", [powerpc*],
1706 [enable_altivec=yes], [enable_altivec=no])
1710 AS_IF([test "${enable_altivec}" = "yes"], [
1711 ARCH="${ARCH} altivec";
1713 AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1714 [ac_cv_altivec_inline],
1715 [AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1716 ac_cv_altivec_inline="yes",
1717 [CFLAGS="${CFLAGS} -Wa,-maltivec"
1718 AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1719 [ac_cv_altivec_inline="-Wa,-maltivec"],
1720 ac_cv_altivec_inline=no)
1723 AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1724 AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1725 [Define to 1 if AltiVec inline assembly is available.])
1726 AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1727 ALTIVEC_CFLAGS="${ac_cv_altivec_inline}"
1728 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_altivec_inline}])
1734 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1735 [ac_cv_c_altivec], [
1736 CFLAGS="${CFLAGS} -maltivec"
1737 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1738 [#include <altivec.h>]], [
1739 [vec_ld(0, (unsigned char *)0);]])], [
1740 ac_cv_c_altivec="-maltivec"
1742 ac_cv_c_altivec="no"
1746 AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1747 CPPFLAGS="${CPPFLAGS} ${ac_cv_c_altivec}"
1748 AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, [Define to 1 if C AltiVec extensions are available.])
1749 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_c_altivec}])
1750 ALTIVEC_CFLAGS="$ALTIVEC_CFLAGS ${ac_cv_c_altivec}"
1751 VLC_ADD_CFLAGS([deinterlace],[${ac_cv_c_altivec}])
1754 AC_CHECK_HEADERS([altivec.h])
1757 LDFLAGS="${LDFLAGS} -Wl,-framework,vecLib"
1758 AC_CACHE_CHECK([if linker needs -framework vecLib],
1760 [AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)])
1762 AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1763 VLC_ADD_LIBS([libvlccore],[-Wl,-framework,vecLib])
1766 AC_SUBST([ALTIVEC_CFLAGS])
1767 AM_CONDITIONAL([HAVE_ALTIVEC], [test "$have_altivec" = "yes"])
1772 AC_ARG_ENABLE([optimize-memory],
1773 AS_HELP_STRING([--enable-optimize-memory],
1774 [optimize memory usage over performance]))
1775 if test "${enable_optimize_memory}" = "yes"; then
1776 AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1780 dnl Allow running as root (useful for people running on embedded platforms)
1782 AC_ARG_ENABLE([run-as-root],
1783 AS_HELP_STRING([--enable-run-as-root],
1784 [allow running VLC as root (default disabled)]))
1785 AS_IF([test "${enable_run_as_root}" = "yes"],[
1786 AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1787 [Define to 1 to allow running VLC as root (uid 0).])
1793 AC_ARG_ENABLE([sout],
1794 AS_HELP_STRING([--disable-sout],
1795 [disable streaming output (default enabled)]))
1796 AS_IF([test "${enable_sout}" != "no"], [
1797 AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1799 AM_CONDITIONAL([ENABLE_SOUT], [test "${enable_sout}" != "no"])
1802 AC_ARG_ENABLE([lua],
1803 AS_HELP_STRING([--disable-lua],
1804 [disable LUA scripting support (default enabled)]))
1805 if test "${enable_lua}" != "no"
1807 PKG_CHECK_MODULES(LUA, lua5.2,
1810 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua 5.1 instead])
1812 PKG_CHECK_MODULES(LUA, lua5.1,
1815 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua >= 5.1 instead])
1816 PKG_CHECK_MODULES(LUA, lua >= 5.1,
1819 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying manual detection instead])
1821 AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1824 AC_CHECK_LIB( lua5.2 , luaL_newstate,
1825 [LUA_LIBS="-llua5.2"],
1826 AC_CHECK_LIB( lua5.1 , luaL_newstate,
1827 [LUA_LIBS="-llua5.1"],
1828 AC_CHECK_LIB( lua51 , luaL_newstate,
1829 [LUA_LIBS="-llua51"],
1830 AC_CHECK_LIB( lua , luaL_newstate,
1838 if test "x${have_lua}" != "xyes" ; then
1839 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.])
1841 AC_ARG_VAR([LUAC], [LUA byte compiler])
1842 AS_IF([test -z "$LUAC"], [
1843 AC_CHECK_TOOL(LUAC, [luac], [false])
1845 AS_IF([test "${LUAC}" = "false"], [
1846 AC_MSG_ERROR([Could not find the LUA byte compiler.])
1848 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], [
1849 AC_MSG_ERROR([You need 32-bits luac when using lua from contrib.])
1852 AM_CONDITIONAL([BUILD_LUA], [test "${have_lua}" = "yes"])
1856 dnl VideoLAN manager
1858 AC_ARG_ENABLE([vlm],
1859 AS_HELP_STRING([--disable-vlm],
1860 [disable the stream manager (default enabled)]),,
1861 [enable_vlm="${enable_sout}"])
1862 AS_IF([test "${enable_vlm}" != "no"], [
1863 AS_IF([test "${enable_sout}" = "no"], [
1864 AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1866 AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1868 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1872 dnl Addons manager storage and repositories modules
1874 AC_ARG_ENABLE([addonmanagermodules],
1875 AS_HELP_STRING([--disable-addonmanagermodules],
1876 [disable the addons manager modules (default enabled)]))
1877 if test "${enable_addonmanagermodules}" != "no"
1879 AC_DEFINE(ENABLE_ADDONMANAGERMODULES, 1, [Define if you want the addons manager modules])
1881 AM_CONDITIONAL([ENABLE_ADDONMANAGERMODULES], [test "${enable_addonmanagermodules}" != "no"])
1888 EXTEND_HELP_STRING([Input plugins:])
1891 dnl libarchive access module
1893 PKG_ENABLE_MODULES_VLC([ARCHIVE], [archive], [libarchive >= 3.1.0], (libarchive support), [auto])
1898 AC_ARG_ENABLE([live555],
1899 AS_HELP_STRING([--enable-live555],
1900 [enable RTSP input through live555 (default enabled)]))
1902 AS_IF([test "${enable_live555}" != "no" -a -n "${CXX}"], [
1903 PKG_CHECK_MODULES(LIVE555, live555, [
1904 VLC_ADD_PLUGIN([live555])
1905 VLC_ADD_CXXFLAGS([live555], [$LIVE555_CFLAGS])
1906 VLC_ADD_LIBS([live555],[$LIVE555_LIBS])
1908 AC_MSG_WARN([${LIVE555_PKG_ERRORS}.])
1913 dnl detect include paths
1914 AS_IF([test -f "${CONTRIB_DIR}/include/UsageEnvironment/UsageEnvironment.hh"], [
1915 CPPFLAGS_live555="-I${CONTRIB_DIR}/include/liveMedia -I${CONTRIB_DIR}/include/groupsock -I${CONTRIB_DIR}/include/BasicUsageEnvironment -I${CONTRIB_DIR}/include/UsageEnvironment"
1917 AS_IF([test "${SYS}" != "os2"], [
1918 LIVE555_PREFIX=${LIVE555_PREFIX-"/usr"}
1919 CPPFLAGS_live555="-I${LIVE555_PREFIX}/include/liveMedia -I${LIVE555_PREFIX}/include/groupsock -I${LIVE555_PREFIX}/include/BasicUsageEnvironment -I${LIVE555_PREFIX}/include/UsageEnvironment"
1921 LIVE555_PREFIX=${LIVE555_PREFIX-"/usr/lib/live"}
1922 CPPFLAGS_live555="-I${LIVE555_PREFIX}/liveMedia/include -I${LIVE555_PREFIX}/groupsock/include -I${LIVE555_PREFIX}/BasicUsageEnvironment/include -I${LIVE555_PREFIX}/UsageEnvironment/include"
1923 LDFLAGS_live555="-L${LIVE555_PREFIX}/liveMedia -L${LIVE555_PREFIX}/groupsock -L${LIVE555_PREFIX}/BasicUsageEnvironment -L${LIVE555_PREFIX}/UsageEnvironment"
1928 AS_IF([test "${SYS}" = "solaris"], [
1929 CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1931 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1932 LDFLAGS="${LDFLAGS} ${LDFLAGS_live555}"
1935 AC_CACHE_CHECK([for live555 version 1324598400 or later], [ac_cv_live555], [
1936 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
1937 [#include <liveMedia_version.hh>
1938 #if !defined (LIVEMEDIA_LIBRARY_VERSION_INT) || (LIVEMEDIA_LIBRARY_VERSION_INT < 1324598400)
1948 AS_IF([test "$ac_cv_live555" = "no"], [
1949 AC_MSG_WARN([live555 is missing or its installed version is too old:
1950 Version 2011.12.23 or later is required to proceed.
1951 You can get an updated one from http://www.live555.com/liveMedia .])
1952 AS_IF([test -n "${enable_live555}"], [
1953 AC_MSG_ERROR([Update live555 or pass --disable-live555 to disable RTSP input support.])
1956 other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1957 other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
1958 AS_IF([test "${SYS}" = "mingw32"], [
1959 # add ws2_32 for closesocket, select, recv
1960 other_libs="$other_libs -lws2_32"
1963 dnl We need to check for pic because live555 don't provide shared libs
1964 dnl and we want to build a plugins so we need -fPIC on some arch.
1965 VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1966 VLC_ADD_LDFLAGS([live555], [${LDFLAGS_live555}])
1967 AC_CHECK_LIB([liveMedia_pic], [main], [
1968 VLC_ADD_PLUGIN([live555])
1969 VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
1971 AC_CHECK_LIB([liveMedia], [main], [
1972 VLC_ADD_PLUGIN([live555])
1973 VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1974 ],[],[${other_libs}])
1975 ],[${other_libs_pic}])
1983 dnl IIDC and DV FireWire input modules
1985 PKG_ENABLE_MODULES_VLC([DC1394], [], [libdc1394-2 >= 2.1.0], [IIDC FireWire input module], [auto])
1986 PKG_ENABLE_MODULES_VLC([DV1394], [], [libraw1394 >= 2.0.1 libavc1394 >= 0.5.3], [DV FireWire input module], [auto])
1989 dnl - linsys modules: access module check for libzvbi
1991 AC_ARG_ENABLE([linsys],
1992 AS_HELP_STRING([--enable-linsys],
1993 [Linux Linear Systems Ltd. SDI and HD-SDI input cards (default enabled)]))
1994 AS_IF([test "$SYS" = "linux" -a "${enable_linsys}" != "no"], [
1995 VLC_ADD_PLUGIN([linsys_hdsdi])
1996 PKG_CHECK_MODULES(LINSYS_SDI, [zvbi-0.2 >= 0.2.28], [
1997 VLC_ADD_PLUGIN([linsys_sdi])
1999 AC_MSG_WARN([${LINSYS_SDI_PKG_ERRORS}.])
2004 dnl dvdread module: check for libdvdread
2006 PKG_ENABLE_MODULES_VLC([DVDREAD], [], [dvdread > 6.0.0], [dvdread input module], [auto])
2009 dnl libdvdnav plugin
2011 PKG_ENABLE_MODULES_VLC([DVDNAV], [], [dvdnav >= 6.0.0], [DVD with navigation input module (dvdnav)], [auto])
2014 dnl Blu-ray Disc Support with libbluray
2016 PKG_ENABLE_MODULES_VLC([BLURAY], [libbluray], [libbluray >= 0.6.2], (libbluray for Blu-ray disc support ) )
2019 dnl OpenCV wrapper and example filters
2021 PKG_ENABLE_MODULES_VLC([OPENCV], [opencv_example opencv_wrapper], [opencv > 2.0], (OpenCV (computer vision) filter), [auto])
2025 dnl libsmbclient plugin
2027 PKG_ENABLE_MODULES_VLC([SMBCLIENT], [smbc], [smbclient], (SMB/CIFS support), [auto])
2030 dnl liBDSM access module
2032 AM_CONDITIONAL([HAVE_DSM], [test "$AS_TR_SH(with_dsm)" = "yes"])
2033 PKG_WITH_MODULES([DSM], [libdsm >= 0.2.0], [
2034 VLC_ADD_PLUGIN([dsm])
2035 VLC_ADD_CFLAGS([dsm], [$DSM_CFLAGS])
2036 VLC_ADD_LIBS([dsm], [$DSM_LIBS])
2038 ],,[libdsm SMB/CIFS access/sd module], [auto])
2039 AM_CONDITIONAL([HAVE_DSM], [test "${have_dsm}" = "yes"])
2042 dnl sftp access support
2044 PKG_ENABLE_MODULES_VLC([SFTP], [sftp], [libssh2], (support SFTP file transfer via libssh2), [auto])
2047 dnl nfs access support
2049 PKG_ENABLE_MODULES_VLC([NFS], [nfs], [libnfs >= 1.10.0], (support nfs protocol via libnfs), [auto])
2052 dnl smb2 access support
2054 PKG_ENABLE_MODULES_VLC([SMB2], [smb2], [libsmb2 >= 2.0.0], (support smb2 protocol via libsmb2), [auto])
2059 AC_ARG_ENABLE([v4l2], AS_HELP_STRING([--disable-v4l2],
2060 [disable Video4Linux version 2 (default auto)]))
2062 AS_IF([test "$enable_v4l2" != "no"], [
2063 AC_CHECK_HEADERS([linux/videodev2.h], [
2067 AM_CONDITIONAL([HAVE_V4L2], [test "${have_v4l2}" != "no"])
2070 dnl special access module for Blackmagic SDI cards
2072 AC_ARG_ENABLE([decklink],
2073 AS_HELP_STRING([--disable-decklink],
2074 [disable Blackmagic DeckLink SDI input (default auto)]))
2075 AC_ARG_WITH([decklink_sdk],
2076 AS_HELP_STRING([--with-decklink-sdk=DIR],
2077 [location of Blackmagic DeckLink SDI SDK]))
2079 if test "${enable_decklink}" != "no"
2081 if test "${with_decklink_sdk}" != "no" -a -n "${with_decklink_sdk}"
2083 VLC_ADD_CPPFLAGS([decklink decklinkoutput stream_out_sdi],[-I${with_decklink_sdk}/include])
2086 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_decklink}"
2088 AC_CHECK_HEADERS([DeckLinkAPIDispatch.cpp], [
2090 AS_IF([test "${SYS}" = "darwin"], [
2091 VLC_ADD_LIBS([decklink decklinkoutput],[-Wl,-framework,CoreFoundation])
2094 AS_IF([test "${enable_decklink}" = "yes"], [
2095 AC_MSG_ERROR([Blackmagic DeckLink SDI include files not found!])
2097 AC_MSG_WARN([Blackmagic DeckLink SDI include files not found, decklink disabled])
2103 AM_CONDITIONAL([HAVE_DECKLINK], [ test "${have_decklink}" != "no" ])
2107 dnl Built-in CD-DA and VCD module
2109 AC_ARG_ENABLE([vcd],
2110 AS_HELP_STRING([--disable-vcd],
2111 [disable built-in VCD and CD-DA support (default enabled)]))
2113 AC_ARG_ENABLE([libcddb],
2114 AS_HELP_STRING([--disable-libcddb],
2115 [disable CDDB for Audio CD (default enabled)]))
2117 if test "${enable_vcd}" != "no" -a "${enable_winstore_app}" != "yes"
2119 AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2120 AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2122 VLC_ADD_PLUGIN([vcd cdda])
2127 AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2128 AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2130 VLC_ADD_PLUGIN([vcd cdda])
2131 AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2136 AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2137 AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2139 VLC_ADD_PLUGIN([vcd cdda])
2140 AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2145 if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32" -o "${SYS}" = "os2" -o "${SYS}" = "darwin"
2147 VLC_ADD_PLUGIN([vcd cdda])
2150 if test "$enable_libcddb" != "no"; then
2151 PKG_CHECK_MODULES(LIBCDDB, [libcddb >= 0.9.5], [
2153 AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2154 VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2155 VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2157 [AC_MSG_WARN([${LIBCDDB_PKG_ERRORS}: CDDB access disabled.])
2165 AC_CACHE_CHECK([for Linux DVB version 5.1], [ac_cv_linux_dvb_5_1], [
2166 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
2167 [#include <linux/dvb/version.h>
2168 #if (DVB_API_VERSION < 5)
2169 # error Linux DVB API v3.2 and older are not supported.
2171 #if (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR < 1)
2172 # error Linux DVB API v5.0 is unsupported. Please update.
2175 ac_cv_linux_dvb_5_1=yes
2177 ac_cv_linux_dvb_5_1=no
2179 AM_CONDITIONAL([HAVE_LINUX_DVB], [test "$ac_cv_linux_dvb_5_1" = "yes"])
2182 dnl Screen capture module
2184 AC_ARG_ENABLE([screen],
2185 AS_HELP_STRING([--enable-screen],
2186 [disable screen capture (default enabled)]))
2187 if test "${enable_screen}" != "no"; then
2188 if test "${SYS}" = "darwin"; then
2189 AC_CHECK_HEADERS([ApplicationServices/ApplicationServices.h], [
2190 VLC_ADD_PLUGIN([screen])
2194 AM_CONDITIONAL([HAVE_MAC_SCREEN], [test "${SYS}" = "darwin" -a "x${enable_screen}" != "xno"])
2197 dnl VNC/RFB access module
2199 PKG_ENABLE_MODULES_VLC([VNC], [vnc], [libvncclient >= 0.9.9], (VNC/rfb client support), [auto])
2201 dnl RDP/Remote Desktop access module
2203 PKG_ENABLE_MODULES_VLC([FREERDP], [rdp], [freerdp >= 1.0.1], (RDP/Remote Desktop client support) )
2207 AC_SUBST([have_avfoundation], ["no"])
2208 AC_ARG_ENABLE([macosx-avfoundation],
2209 AS_HELP_STRING([--enable-macosx-avfoundation], [Mac OS X avcapture (video) module (default enabled on Mac OS X)]))
2210 if test "x${enable_macosx_avfoundation}" != "xno" &&
2211 (test "${SYS}" = "darwin" || test "${enable_macosx_avfoundation}" = "yes")
2213 SAVED_LIBS="${LIBS}"
2214 LIBS="-framework AVFoundation"
2215 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [])],[have_avfoundation=yes],[have_avfoundation=no])
2216 LIBS="${SAVED_LIBS}"
2217 if test "${have_avfoundation}" != "no"
2219 VLC_ADD_PLUGIN([avcapture])
2222 AM_CONDITIONAL([HAVE_AVFOUNDATION], [test "${have_avfoundation}" != "no"])
2225 dnl DCP plugin (using asdcplib)
2227 PKG_WITH_MODULES([ASDCP], [asdcplib], [have_asdcp="yes"])
2228 AM_CONDITIONAL([HAVE_ASDCP], [test "${have_asdcp}" = "yes"])
2234 EXTEND_HELP_STRING([Mux/Demux plugins:])
2237 dnl libdvbpsi check for ts mux/demux
2240 PKG_WITH_MODULES([DVBPSI], [libdvbpsi >= 1.2.0], [have_dvbpsi="yes"])
2241 AM_CONDITIONAL([HAVE_DVBPSI], [test "${have_dvbpsi}" = "yes"])
2245 dnl GME demux plugin
2247 AC_ARG_ENABLE([gme],
2248 AS_HELP_STRING([--enable-gme],
2249 [use Game Music Emu (default auto)]))
2250 AS_IF([test "${enable_gme}" != "no"], [
2251 AC_CHECK_HEADER([gme/gme.h], [
2252 AC_CHECK_LIB([gme], [gme_identify_header], [
2253 VLC_ADD_PLUGIN([gme])
2255 AC_CHECK_LIB([gme], [gme_identify_extension], [
2256 VLC_ADD_LIBS([gme], [-lstdc++ $LIBM])
2257 VLC_ADD_PLUGIN([gme])
2258 ],, [-lstdc++ $LIBM])
2260 VLC_ADD_LIBS([gme], [-lgme])
2262 AS_IF([test "x${enable_gme}" != "x"], [
2263 AC_MSG_ERROR([GME cannot be found. Please install the development files.])
2272 AC_ARG_ENABLE([sid],
2273 AS_HELP_STRING([--enable-sid],[C64 sid demux support (default auto)]))
2274 AS_IF([test "${enable_sid}" != "no"], [
2275 PKG_CHECK_MODULES(SID, [libsidplay2], [
2277 oldCPPFLAGS="$CPPFLAGS"
2278 CPPFLAGS="$CPPFLAGS $SID_CFLAGS"
2279 AC_CHECK_HEADER([sidplay/builders/resid.h], [
2280 VLC_ADD_PLUGIN([sid])
2281 VLC_ADD_CFLAGS([sid], [$SID_CFLAGS])
2282 VLC_ADD_LIBS([sid], [$SID_LIBS] [-lresid-builder])
2284 AS_IF([test -n "${enable_sid}"],
2285 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2286 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2289 CPPFLAGS="$oldCPPFLAGS"
2292 AS_IF([test "x${enable_sid}" = "xyes"],
2293 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2294 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2301 dnl ogg demux plugin
2303 PKG_ENABLE_MODULES_VLC([OGG], [mux_ogg], [ogg >= 1.0], [Ogg demux support], [auto])
2304 PKG_CHECK_MODULES(LIBVORBIS, [vorbis >= 1.1], [
2305 AC_DEFINE(HAVE_LIBVORBIS, 1, [Define to 1 if you have the libvorbis])
2307 PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto], [${LIBVORBIS_CFLAGS}], [${LIBVORBIS_LIBS}])
2308 if test "${enable_sout}" != "no"; then
2309 dnl Check for libshout
2310 PKG_ENABLE_MODULES_VLC([SHOUT], [access_output_shout], [shout >= 2.1], [libshout output plugin], [auto])
2314 dnl matroska demux plugin
2316 PKG_WITH_MODULES([MATROSKA], [libebml libmatroska], [
2317 VLC_ADD_PLUGIN([mkv])
2318 VLC_ADD_CFLAGS([mkv], [$MATROSKA_CFLAGS])
2319 VLC_ADD_LIBS([mkv], [$MATROSKA_LIBS])
2321 ],,[MKV format support], [auto])
2322 AM_CONDITIONAL([HAVE_MATROSKA], [test "${have_matroska}" = "yes"])
2325 dnl modplug demux plugin
2327 AC_ARG_ENABLE([mod],
2328 AS_HELP_STRING([--disable-mod],
2329 [do not use libmodplug (default auto)]))
2330 if test "${enable_mod}" != "no" ; then
2331 PKG_CHECK_MODULES(LIBMODPLUG, [libmodplug >= 0.8.4 libmodplug != 0.8.8], [
2332 VLC_ADD_PLUGIN([mod])
2333 VLC_ADD_CXXFLAGS([mod],[$LIBMODPLUG_CFLAGS])
2334 VLC_ADD_CFLAGS([mod],[$LIBMODPLUG_CFLAGS]) #modules/demux/mod.c needs CFLAGS_mod, not CXXFLAGS_mod
2335 VLC_ADD_LIBS([mod],[$LIBMODPLUG_LIBS])
2337 AS_IF([test -n "${enable_mod}"],
2338 [AC_MSG_ERROR([${LIBMODPLUG_PKG_ERRORS}.])],
2339 [AC_MSG_WARN([${LIBMODPLUG_PKG_ERRORS}.])])
2344 dnl mpc demux plugin
2346 AC_ARG_ENABLE([mpc],
2347 AS_HELP_STRING([--disable-mpc], [do not use libmpcdec (default auto)]))
2348 if test "${enable_mpc}" != "no"
2350 AC_CHECK_HEADERS([mpcdec/mpcdec.h], [
2351 VLC_ADD_PLUGIN([mpc])
2352 VLC_ADD_LIBS([mpc],[-lmpcdec])])
2359 EXTEND_HELP_STRING([Codec plugins:])
2362 dnl shine encoder plugin
2364 PKG_ENABLE_MODULES_VLC([SHINE], [], [shine >= 3.0.0], [MPEG Audio Layer 3 encoder], [auto], [], [], [])
2368 dnl openmax il codec plugin
2370 AC_ARG_ENABLE([omxil],
2371 AS_HELP_STRING([--enable-omxil], [openmax il codec module (default disabled)]))
2372 if test "${enable_omxil}" = "yes"
2374 VLC_ADD_PLUGIN([omxil])
2378 dnl raspberry pi openmax il configuration
2380 AC_ARG_ENABLE([rpi-omxil],
2381 AS_HELP_STRING([--enable-rpi-omxil], [openmax il configured for raspberry pi (default disabled)]))
2382 if test "${enable_rpi_omxil}" = "yes"
2384 VLC_ADD_PLUGIN([omxil])
2385 VLC_ADD_CFLAGS([omxil],[-DRPI_OMX])
2389 dnl CrystalHD codec plugin
2391 AC_ARG_ENABLE([crystalhd],
2392 AS_HELP_STRING([--enable-crystalhd], [crystalhd codec plugin (default auto)]))
2393 if test "${enable_crystalhd}" != "no"; then
2394 AC_CHECK_HEADER(libcrystalhd/libcrystalhd_if.h, [
2395 VLC_ADD_PLUGIN([crystalhd])
2396 VLC_ADD_LIBS([crystalhd], [-lcrystalhd])
2398 if test "${SYS}" = "mingw32" ; then
2399 AC_CHECK_HEADERS([libcrystalhd/bc_dts_defs.h], [
2400 VLC_ADD_PLUGIN([crystalhd])
2401 AC_CHECK_HEADERS([libcrystalhd/bc_drv_if.h], [
2402 VLC_ADD_LIBS([crystalhd], [-lbcmDIL])
2405 AS_IF([test x"${enable_crystalhd}" = "xyes"],
2406 [AC_MSG_ERROR("Could not find CrystalHD development headers")],
2407 [AC_MSG_WARN("Could not find CrystalHD development headers")])
2408 ],[#define __LINUX_USER__
2409 #include <libcrystalhd/bc_dts_types.h>
2413 #include <libcrystalhd/bc_dts_types.h>
2424 AC_ARG_WITH(mad, AS_HELP_STRING([--with-mad=PATH], [path to libmad]), [
2429 AS_IF([test "${with_mad}" != "no"], [
2430 MAD_CFLAGS="-I${with_mad}/include"
2431 MAD_LIBS="-L${with_mad}/lib"
2434 AC_ARG_ENABLE([mad],
2435 AS_HELP_STRING([--enable-mad], [libmad module (default enabled)]))
2436 AS_IF([test "${enable_mad}" != "no"], [
2438 CPPFLAGS="${CPPFLAGS} ${MAD_CFLAGS}"
2439 LDFLAGS="${LDFLAGS} ${MAD_LIBS}"
2440 AC_CHECK_HEADERS([mad.h], [
2441 AC_CHECK_LIB([mad], [mad_bit_init], [
2443 MAD_LIBS="${MAD_LIBS} -lmad"
2447 AS_IF([test -n "$enable_mad" -a "${have_mad}" = "no"], [
2448 AC_MSG_ERROR([Could not find libmad. Install it or pass --disable-mad to disable it.])
2451 AC_SUBST([MAD_CFLAGS])
2452 AC_SUBST([MAD_LIBS])
2453 AM_CONDITIONAL([HAVE_MAD], [test "${have_mad}" = "yes"])
2458 PKG_ENABLE_MODULES_VLC([MPG123], [mpg123], [libmpg123], [libmpg123 decoder support], [auto])
2463 AC_ARG_ENABLE([gst-decode],
2464 AS_HELP_STRING([--enable-gst-decode], [GStreamer based decoding support (currently supports only video decoding) (default auto)]))
2466 have_gst_decode="no"
2467 AS_IF([test "${enable_gst_decode}" != "no"], [
2468 PKG_CHECK_MODULES([GST_APP], [gstreamer-app-1.0], [
2469 PKG_CHECK_MODULES([GST_VIDEO], [gstreamer-video-1.0], [
2470 have_gst_decode="yes"
2472 AC_MSG_WARN([${GST_VIDEO_PKG_ERRORS}. GStreamer decoder module will not be built.])
2475 AC_MSG_WARN([${GST_APP_PKG_ERRORS}. GStreamer modules will not be built.])
2478 AM_CONDITIONAL([HAVE_GST_DECODE], [test "${have_gst_decode}" = "yes"])
2481 dnl avcodec decoder/encoder plugin
2483 AC_ARG_ENABLE([merge-ffmpeg],
2484 AS_HELP_STRING([--enable-merge-ffmpeg], [merge FFmpeg-based plugins (default disabled)]),, [
2485 enable_merge_ffmpeg="no"
2487 AM_CONDITIONAL([MERGE_FFMPEG], [test "$enable_merge_ffmpeg" != "no"])
2489 AC_MSG_CHECKING([for libavutil variant])
2490 PKG_CHECK_EXISTS([libavutil], [
2491 libavutil_version="$(${PKG_CONFIG} --modversion libavutil)"
2492 libavutil_micro="${libavutil_version##*.}"
2493 AS_IF([test ${libavutil_micro} -le 99], [
2501 AC_MSG_RESULT([${avfork}])
2503 AC_ARG_ENABLE([avcodec],
2504 AS_HELP_STRING([--enable-avcodec], [libavcodec codec (default enabled)]))
2505 AS_IF([test "${enable_avcodec}" != "no"], [
2506 dnl We need >=57.16.0 from libav or >=57.37.100 from ffmpeg
2508 libav) av_codec_ver="57.16.0" ;;
2509 dnl 05f66706d182eb0c36af54d72614bf4c33e957a9 includes libavutil 55.9.0
2510 ffmpeg) av_codec_ver="57.37.100" ;;
2511 dnl 7fc329e2dd6226dfecaa4a1d7adf353bf2773726 include libavutil 55.22.101
2512 *) AC_MSG_ERROR([Missing libav or FFmpeg. Pass --disable-avcodec to ignore this error.])
2514 PKG_CHECK_MODULES(AVCODEC,[libavcodec >= ${av_codec_ver} libavutil >= 55.9.0], [
2516 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2517 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2518 AC_CHECK_HEADERS([libavcodec/avcodec.h])
2519 AC_CHECK_HEADERS([libavutil/avutil.h])
2523 AC_MSG_ERROR([${AVCODEC_PKG_ERRORS}. Pass --disable-avcodec to ignore this error.])
2528 AM_CONDITIONAL([HAVE_AVCODEC], [test "${have_avcodec}" != "no"])
2531 dnl libva needs avcodec
2533 AC_ARG_ENABLE([libva],
2534 AS_HELP_STRING([--enable-libva], [VAAPI GPU decoding support (libVA) (default auto)]))
2536 AS_IF([test "${enable_libva}" = "yes" -a "${have_avcodec}" != "yes" ], [
2537 AC_MSG_ERROR([--enable-libva and --disable-avcodec options are mutually exclusive. Use --enable-avcodec.])
2544 AS_IF([test "${enable_libva}" != "no"], [
2545 PKG_CHECK_MODULES([LIBVA], [libva >= 0.38], [
2548 AS_IF([test -n "${enable_libva}"], [
2549 AC_MSG_ERROR([${LIBVA_PKG_ERRORS}.])
2551 AC_MSG_WARN([${LIBVA_PKG_ERRORS}.])
2554 PKG_CHECK_MODULES([LIBVA_DRM], [libva-drm], [
2555 have_vaapi_drm="yes"
2557 AC_MSG_WARN([${LIBVA_DRM_PKG_ERRORS}.])
2559 PKG_CHECK_MODULES(LIBVA_X11, [libva-x11], [
2560 have_vaapi_x11="yes"
2562 AC_MSG_WARN([${LIBVA_X11_PKG_ERRORS}.])
2564 PKG_CHECK_MODULES(LIBVA_WL, [libva-wayland], [
2567 AC_MSG_WARN([${LIBVA_WL_PKG_ERRORS}.])
2570 AM_CONDITIONAL([HAVE_VAAPI], [test "${have_vaapi}" = "yes"])
2571 AM_CONDITIONAL([HAVE_VAAPI_DRM], [test "${have_vaapi_drm}" = "yes"])
2572 AM_CONDITIONAL([HAVE_VAAPI_X11], [test "${have_vaapi_x11}" = "yes"])
2573 AM_CONDITIONAL([HAVE_VAAPI_WL], [test "${have_vaapi_wl}" = "yes"])
2575 have_avcodec_vaapi="no"
2576 AS_IF([test "${have_vaapi}" = "yes" -a "${have_avcodec}" = "yes"], [
2578 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2579 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2580 AC_CHECK_HEADERS([libavcodec/vaapi.h], [
2581 AC_MSG_NOTICE([VA API acceleration activated])
2582 have_avcodec_vaapi="yes"
2584 AS_IF([test -n "${enable_libva}"], [
2585 AC_MSG_ERROR([libva is present but libavcodec/vaapi.h is missing])
2587 AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing ])
2592 AM_CONDITIONAL([HAVE_AVCODEC_VAAPI], [test "${have_avcodec_vaapi}" = "yes"])
2595 dnl dxva2 needs avcodec
2597 AC_ARG_ENABLE([dxva2],
2598 AS_HELP_STRING([--enable-dxva2], [DxVA2 GPU decoding support (default auto)]))
2600 have_avcodec_dxva2="no"
2601 AS_IF([test "${enable_dxva2}" != "no"], [
2602 if test "${SYS}" = "mingw32"; then
2603 AS_IF([test "x${have_avcodec}" = "xyes"], [
2604 AC_CHECK_HEADERS([dxva2api.h],
2606 AC_CHECK_HEADERS([libavcodec/dxva2.h], [
2607 AC_MSG_NOTICE([DxVA2 acceleration activated])
2608 have_avcodec_dxva2="yes"
2610 AS_IF([test "${enable_dxva2}" = "yes"],
2611 [AC_MSG_ERROR([dxva2 is present but libavcodec/dxva2.h is missing])],
2612 [AC_MSG_WARN([dxva2 is present but libavcodec/dxva2.h is missing ])])
2613 ], [#undef _WIN32_WINNT
2614 /* DXVA2 is only available in Vista and above */
2615 #define _WIN32_WINNT 0x600])
2617 AS_IF([test "${enable_dxva2}" = "yes"],
2618 [AC_MSG_ERROR([Could not find required dxva2api.h])],
2619 [AC_MSG_WARN([dxva2api.h not found])])
2620 ],[#include <d3d9.h>])
2622 AS_IF([test "x${enable_dxva2}" != "x"], [
2623 AC_MSG_ERROR([--enable-dxva2 and --disable-avcodec options are mutually exclusive.])
2628 AM_CONDITIONAL([HAVE_AVCODEC_DXVA2], [test "${have_avcodec_dxva2}" = "yes"])
2631 dnl d3d11va needs avcodec
2633 AC_ARG_ENABLE([d3d11va],
2634 AS_HELP_STRING([--enable-d3d11va], [D3D11 GPU decoding support (default auto)]))
2636 have_avcodec_d3d11va="no"
2637 AS_IF([test "${enable_d3d11va}" != "no"], [
2638 if test "${SYS}" = "mingw32"; then
2639 AS_IF([test "x${have_avcodec}" = "xyes"], [
2640 AC_CHECK_TYPES([ID3D11VideoDecoder],
2642 AC_CHECK_HEADERS([dxva2api.h],
2644 AC_CHECK_HEADERS([libavcodec/d3d11va.h], [
2645 AC_MSG_NOTICE([D3D11 acceleration activated])
2646 AC_DEFINE([HAVE_AVCODEC_D3D11VA], [1], [Define if the d3d11va module is built])
2647 have_avcodec_d3d11va="yes"
2649 AS_IF([test "${enable_d3d11va}" = "yes"],
2650 [AC_MSG_ERROR([d3d11va is present but libavcodec/d3d11va.h is missing])],
2651 [AC_MSG_WARN([d3d11va is present but libavcodec/d3d11va.h is missing ])])
2652 ], [#undef _WIN32_WINNT
2653 /* D3D11 is only available in Vista and above */
2654 #define _WIN32_WINNT 0x600])
2656 AS_IF([test "${enable_d3d11va}" = "yes"],
2657 [AC_MSG_ERROR([Could not find required dxva2api.h])],
2658 [AC_MSG_WARN([dxva2api.h not found])])
2659 ],[#include <d3d9.h>])
2661 AS_IF([test "${enable_d3d11va}" = "yes"],
2662 [AC_MSG_ERROR([Could not find required ID3D11VideoDecoder in d3d11.h])],
2663 [AC_MSG_WARN([ID3D11VideoDecoder not found])])
2664 ], [#include <d3d11.h>])
2666 AS_IF([test "x${enable_d3d11va}" != "x"], [
2667 AC_MSG_ERROR([--enable-d3d11va and --disable-avcodec options are mutually exclusive.])
2672 AM_CONDITIONAL([HAVE_AVCODEC_D3D11VA], [test "${have_avcodec_d3d11va}" = "yes"])
2677 AC_CHECK_HEADERS([dxgidebug.h dxgi1_6.h])
2680 dnl avformat demuxer/muxer plugin
2683 AC_ARG_ENABLE([avformat],
2684 AS_HELP_STRING([--enable-avformat], [libavformat containers (default enabled)]),, [
2685 enable_avformat="${have_avcodec}"
2688 AS_IF([test "${enable_avformat}" != "no"], [
2689 PKG_CHECK_MODULES(AVFORMAT,[libavformat >= 53.21.0 libavcodec libavutil], [
2692 CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2693 CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2694 AC_CHECK_HEADERS([libavformat/avformat.h libavformat/avio.h])
2695 AC_CHECK_HEADERS([libavcodec/avcodec.h])
2696 AC_CHECK_HEADERS([libavutil/avutil.h])
2697 AS_IF([test "$enable_merge_ffmpeg" = "no"], [
2702 AC_MSG_ERROR([${AVFORMAT_PKG_ERRORS}. Pass --disable-avformat to ignore this error.])
2705 AM_CONDITIONAL([HAVE_AVFORMAT], [test "${enable_avformat}" != "no"])
2708 dnl swscale image scaling and conversion plugin
2711 AC_ARG_ENABLE([swscale],
2712 AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
2713 (default enabled)]))
2714 if test "${enable_swscale}" != "no"
2716 PKG_CHECK_MODULES(SWSCALE,[libswscale],
2719 CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
2720 CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
2721 AC_CHECK_HEADERS([libswscale/swscale.h])
2722 AC_CHECK_HEADERS([libavutil/avutil.h])
2723 VLC_ADD_PLUGIN([swscale])
2724 VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
2725 VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
2726 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2727 VLC_ADD_LIBS([swscale],[${ac_cv_ld_bsymbolic}])
2731 AC_MSG_ERROR([${SWSCALE_PKG_ERRORS}. Pass --disable-swscale to ignore this error. Proper software scaling and some video chroma conversion will be missing.])
2739 AC_ARG_ENABLE([postproc],
2740 AS_HELP_STRING([--enable-postproc], [libpostproc image post-processing (default auto)]))
2741 if test "${enable_postproc}" != "no"
2743 PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
2746 CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
2747 CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
2748 AC_CHECK_HEADERS([postproc/postprocess.h])
2749 VLC_ADD_PLUGIN([postproc])
2752 AC_MSG_WARN([${POSTPROC_PKG_ERRORS}.])
2757 dnl faad decoder plugin
2759 AC_ARG_ENABLE([faad],
2760 AS_HELP_STRING([--enable-faad], [faad codec (default auto)]))
2762 AS_IF([test "${enable_faad}" != "no"], [
2763 AC_CHECK_HEADERS([neaacdec.h], [
2764 AC_CHECK_LIB([faad], [NeAACDecOpen], [have_faad="yes"],, [$LIBM])
2766 AS_IF([test "${have_faad}" = "yes"], [
2767 VLC_ADD_PLUGIN([faad])
2768 VLC_ADD_LIBS([faad],[-lfaad])
2770 AS_IF([test "${enable_faad}" = "yes"], [
2771 AC_MSG_ERROR([cannot find FAAD library])
2773 AC_MSG_WARN([cannot find FAAD library])
2780 dnl AOM decoder plugin
2782 PKG_ENABLE_MODULES_VLC([AOM], [], [aom], [experimental AV1 codec (default auto)])
2785 dnl Dav1d decoder plugin
2787 PKG_ENABLE_MODULES_VLC([DAV1D], [], [dav1d], [AV1 decoder (default auto)])
2790 dnl libvpx decoder plugin
2792 AC_ARG_ENABLE([vpx],
2793 AS_HELP_STRING([--enable-vpx],[libvpx VP8/VP9 encoder and decoder (default auto)]))
2794 AS_IF([test "${enable_vpx}" != "no"],[
2795 PKG_CHECK_MODULES([VPX], [vpx >= 1.5.0], [
2796 VLC_ADD_PLUGIN([vpx])
2797 VLC_ADD_CPPFLAGS([vpx], [${VPX_CFLAGS}])
2798 VLC_ADD_LIBS([vpx], [${VPX_LIBS}])
2799 AC_CHECK_LIB([vpx],[vpx_codec_vp8_dx], [
2800 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP8_DECODER])
2801 ], [], [${VPX_LIBS}])
2802 AC_CHECK_LIB([vpx],[vpx_codec_vp9_dx], [
2803 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP9_DECODER])
2804 ], [], [${VPX_LIBS}])
2805 AC_CHECK_LIB([vpx],[vpx_codec_vp8_cx], [
2806 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP8_ENCODER])
2807 ], [], [${VPX_LIBS}])
2808 AC_CHECK_LIB([vpx],[vpx_codec_vp9_cx], [
2809 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP9_ENCODER])
2810 ], [], [${VPX_LIBS}])
2812 AS_IF([test "${enable_vpx}" = "yes"],[
2813 AC_MSG_ERROR([libvpx 1.5.0 or higher was not found])
2818 dnl twolame encoder plugin
2820 PKG_ENABLE_MODULES_VLC([TWOLAME], [], [twolame], [MPEG Audio Layer 2 encoder], [auto], [], [], [ -DLIBTWOLAME_STATIC])
2823 dnl fdk-aac encoder plugin
2825 PKG_ENABLE_MODULES_VLC([FDKAAC], [], [fdk-aac], [FDK-AAC encoder], [disabled])
2829 dnl A52/AC3 decoder plugin
2831 AC_ARG_ENABLE([a52],
2832 AS_HELP_STRING([--enable-a52], [A/52 support with liba52 (default enabled)]))
2833 if test "${enable_a52}" != "no"
2836 AS_HELP_STRING([--with-a52=PATH], [a52 headers and libraries]))
2837 if test -z "${with_a52}"
2842 LDFLAGS_test="-L${with_a52}/lib"
2843 CPPFLAGS_test="-I${with_a52}/include"
2846 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_test} ${CPPFLAGS_a52}"
2847 LDFLAGS="${LDFLAGS} ${LDFLAGS_test} ${LIBS_a52}"
2848 AC_CHECK_HEADERS([a52dec/a52.h], [
2849 AC_CHECK_LIB([a52], [a52_free], [
2850 VLC_ADD_PLUGIN([a52])
2851 VLC_ADD_LIBS([a52],[${LDFLAGS_test} -la52 $LIBM])
2852 VLC_ADD_CPPFLAGS([a52],[${CPPFLAGS_test}])
2854 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.])
2857 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.])
2863 dnl DTS Coherent Acoustics decoder plugin
2865 PKG_ENABLE_MODULES_VLC([DCA], [dca], [libdca >= 0.0.5], [DTS Coherent Acoustics support with libdca], [auto])
2870 PKG_ENABLE_MODULES_VLC([FLAC], [], [flac], [libflac decoder/encoder support], [auto])
2875 PKG_ENABLE_MODULES_VLC([LIBMPEG2], [], [libmpeg2 > 0.3.2], [libmpeg2 decoder support], [auto])
2880 PKG_ENABLE_MODULES_VLC([VORBIS], [], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
2885 AC_ARG_ENABLE([tremor],
2886 AS_HELP_STRING([--enable-tremor], [Tremor decoder support (default disabled)]))
2887 if test "${enable_tremor}" = "yes"
2889 AC_CHECK_HEADERS([tremor/ivorbiscodec.h], [
2890 VLC_ADD_PLUGIN([tremor])
2897 PKG_ENABLE_MODULES_VLC([SPEEX], [], [ogg speex >= 1.0.5], [Speex support], [auto])
2899 AS_IF([test "${enable_speex}" != "no"], [
2900 PKG_CHECK_MODULES([SPEEXDSP], [speexdsp], [
2903 AC_MSG_WARN([${SPEEXDSP_PKG_ERRORS}.])
2906 AM_CONDITIONAL([HAVE_SPEEXDSP], [test "$have_speexdsp" = "yes"])
2911 PKG_ENABLE_MODULES_VLC([OPUS], [], [ogg opus >= 1.0.3], [Opus support], [auto])
2914 dnl Ambisonic channel mixer and binauralizer plugin
2916 PKG_ENABLE_MODULES_VLC([SPATIALAUDIO], [], [spatialaudio], [Ambisonic channel mixer and binauralizer], [auto])
2919 dnl theora decoder plugin
2921 PKG_ENABLE_MODULES_VLC([THEORA], [], [ogg theoradec >= 1.0 theoraenc], [experimental theora codec], [auto])
2924 dnl OggSpots decoder plugin
2926 PKG_ENABLE_MODULES_VLC([OGGSPOTS], [], [ogg], [experimental OggSpots codec], [auto])
2929 dnl Daala decoder plugin
2931 PKG_ENABLE_MODULES_VLC([DAALA], [], [daaladec daalaenc], [experimental daala codec], [disabled])
2934 dnl schroedinger decoder plugin (for dirac format video)
2936 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [], [schroedinger-1.0 >= 1.0.10], [dirac decoder and encoder using schroedinger], [auto])
2939 dnl PNG decoder module
2941 AC_ARG_ENABLE([png],
2942 AS_HELP_STRING([--enable-png], [PNG support (default enabled)]))
2943 AS_IF([test "${enable_png}" != "no"], [
2944 AC_CHECK_HEADERS([png.h], [
2946 LDFLAGS="${LDFLAGS} -lz $LIBM"
2947 AC_CHECK_LIB([png], [png_set_alpha_mode], [
2948 VLC_ADD_PLUGIN([png])
2955 dnl JPEG decoder module
2957 AC_ARG_ENABLE([jpeg],
2958 AS_HELP_STRING([--enable-jpeg], [JPEG support (default enabled)]))
2959 AS_IF([test "${enable_jpeg}" != "no"], [
2960 AC_CHECK_HEADERS([jpeglib.h], [
2961 VLC_ADD_PLUGIN([jpeg])
2966 dnl BPG decoder module
2968 AC_ARG_ENABLE([bpg],
2969 AS_HELP_STRING([--enable-bpg], [BPG support (default disabled)]))
2970 AS_IF([test "${enable_bpg}" != "no"], [
2971 AC_CHECK_HEADERS([libbpg.h], [
2972 VLC_ADD_PLUGIN([bpg])
2977 dnl H262 encoder plugin (lib262)
2979 AC_ARG_ENABLE([x262],
2980 AS_HELP_STRING([--enable-x262], [H262 encoding support with static libx262 (default disabled)]))
2981 if test "${enable_x262}" != "no"; then
2982 PKG_CHECK_MODULES(X262, x262, [
2983 VLC_ADD_PLUGIN([x262])
2984 VLC_ADD_LDFLAGS([x262],[${X262_LIBS}])
2985 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2986 VLC_ADD_LIBS([x262],[${av_cv_ld_bsymbolic}])
2988 VLC_ADD_CFLAGS([x262],[${X262_CFLAGS}])
2989 if echo ${X262_LIBS} |grep -q 'pthreadGC2'; then
2990 VLC_ADD_CFLAGS([x262], [-DPTW32_STATIC_LIB])
2993 if test "${enable_x262}" = "yes"; then
2994 AC_MSG_ERROR([x262 module doesn't work without staticly compiled libx262.a])
3000 PKG_ENABLE_MODULES_VLC([X265],, [x265], [HEVC/H.265 encoder], [auto])
3003 dnl H264 encoder plugin (using libx264)
3005 AC_ARG_ENABLE([x264],
3006 AS_HELP_STRING([--enable-x264], [H264 encoding support with libx264 (default enabled)]))
3007 if test "${enable_x264}" != "no"; then
3008 PKG_CHECK_MODULES(X264,x264 >= 0.148, [
3009 VLC_ADD_PLUGIN([x264])
3010 VLC_ADD_LIBS([x264],[${X264_LIBS}])
3012 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
3013 VLC_ADD_LDFLAGS([x264],[${ac_cv_ld_bsymbolic}])
3016 VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3017 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3018 VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3021 if test "${enable_x264}" = "yes"; then
3022 AC_MSG_ERROR([${X264_PKG_ERRORS}: you may get it from http://www.videolan.org/x264.html])
3028 dnl H264 encoder plugin (libx264 > 153)
3030 AC_ARG_ENABLE([x26410b],
3031 AS_HELP_STRING([--enable-x26410b], [H264 10-bit encoding support with libx264 (default enabled)]))
3032 if test "${enable_x26410b}" != "no"; then
3033 PKG_CHECK_MODULES(X26410b,x264 >= 0.153, [
3034 VLC_ADD_PLUGIN([x26410b])
3035 VLC_ADD_LIBS([x26410b],[${X264_LIBS}])
3037 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
3038 VLC_ADD_LDFLAGS([x26410b],[${ac_cv_ld_bsymbolic}])
3041 VLC_ADD_CFLAGS([x26410b],[${X264_CFLAGS}])
3042 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3043 VLC_ADD_CFLAGS([x26410b], [-DPTW32_STATIC_LIB])
3046 if test "${enable_x26410b}" = "yes"; then
3047 AC_MSG_ERROR([${X264_PKG_ERRORS}: you may get it from http://www.videolan.org/x264.html])
3054 dnl Intel QuickSync (aka MediaSDK) H264/H262 encoder
3056 PKG_ENABLE_MODULES_VLC([MFX], [qsv], [libmfx], [Intel QuickSync MPEG4-Part10/MPEG2 (aka H.264/H.262) encoder], [auto])
3059 dnl libfluidsynth (MIDI synthetizer) plugin
3061 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [], [fluidsynth >= 1.1.2], [MIDI synthetiser with libfluidsynth], [auto])
3062 PKG_ENABLE_MODULES_VLC([FLUIDLITE], [fluidsynth], [fluidlite], [MIDI synthetiser with libfluidsynth], [auto])
3063 AC_CHECK_HEADERS([fluidlite.h], [AC_SUBST([FLUIDSYNTH_LIBS], ${FLUIDLITE_LIBS})])
3066 dnl Teletext Modules
3067 dnl vbi decoder plugin (using libzbvi)
3071 AC_ARG_ENABLE([zvbi],
3072 AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
3073 libzvbi (default enabled)]))
3074 AC_ARG_ENABLE([telx],
3075 AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
3076 zvbi) (default enabled if zvbi is absent)]))
3078 AS_IF( [test "${enable_zvbi}" != "no"],[
3079 PKG_CHECK_MODULES(ZVBI, [zvbi-0.2 >= 0.2.28],
3081 VLC_ADD_PLUGIN([zvbi])
3082 AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
3083 AS_IF( [test "${enable_telx}" = "yes"],[
3084 AC_MSG_WARN([The zvbi and telx modules are incompatible. Using zvbi.])
3087 AC_MSG_WARN([${ZVBI_PKG_ERRORS}. Enabling the telx module instead.])
3090 AS_IF( [test "${enable_telx}" != "no" ],[
3091 VLC_ADD_PLUGIN([telx])
3095 dnl ARIB subtitles rendering module
3097 AC_ARG_ENABLE([aribsub],
3098 AS_HELP_STRING([--enable-aribsub],[ARIB Subtitles support (default enabled)]))
3099 AS_IF( [test "${enable_aribsub}" != "no" ],[
3100 PKG_CHECK_MODULES(ARIBB24, [aribb24 >= 1.0.1], [
3102 VLC_ADD_PLUGIN([aribsub])
3103 VLC_ADD_LIBS([aribsub],[-laribb24])
3104 AC_DEFINE(HAVE_ARIBB24, 1, [Define if libaribb24 is available.])
3106 AC_MSG_WARN(Library [aribb24] needed for [aribsub] was not found)
3110 AM_CONDITIONAL([HAVE_ARIBB24], [test x"${have_aribb24}" = x"yes"])
3115 PKG_ENABLE_MODULES_VLC([ARIBB25], [aribcam], [aribb25 >= 0.2.6], [ARIB STD-B25], [auto])
3118 dnl kate decoder plugin
3120 PKG_ENABLE_MODULES_VLC([KATE], [], [kate >= 0.3.0], [kate codec], [auto])
3123 dnl tiger rendering for kate decoder plugin
3125 AC_ARG_ENABLE([tiger],
3126 AS_HELP_STRING([--enable-tiger], [Tiger rendering library for Kate streams (default auto)]))
3127 AS_IF([test "${enable_tiger}" != "no"], [
3128 PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
3129 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])],[
3130 AS_IF([test -n "${enable_tiger}"], [
3131 AC_MSG_ERROR([${TIGER_PKG_ERRORS}.])
3137 dnl check if we can build the css selector engine
3139 AC_ARG_ENABLE([css],
3140 AS_HELP_STRING([--enable-css], [CSS selector engine (default auto)]))
3141 AS_IF([test "${enable_css}" != "no"], [
3143 AC_DEFINE(HAVE_CSS, 1, [Define if CSS engine is built])
3145 AM_CONDITIONAL([ENABLE_CSS], [test "${with_css}" = "yes"])
3152 EXTEND_HELP_STRING([Video plugins:])
3155 dnl libplacebo support
3157 AC_ARG_ENABLE([libplacebo],
3158 AS_HELP_STRING([--disable-libplacebo],
3159 [disable libplacebo support (default auto)]))
3161 AS_IF([test "$enable_libplacebo" != "no"], [
3162 PKG_CHECK_MODULES([LIBPLACEBO], [libplacebo >= 0.5], [
3163 AC_DEFINE([HAVE_LIBPLACEBO], [1], [Define to 1 if libplacebo is enabled.])
3164 PKG_CHECK_MODULES([LIBPLACEBO], [libplacebo >= 1.7],
3165 [have_libplacebo_vk="yes"], [have_libplacebo_vk="no"])
3167 AS_IF([test -n "${enable_libplacebo}"], [
3168 AC_MSG_ERROR([${LIBPLACEBO_PKG_ERRORS}.])
3170 enable_libplacebo="no"
3173 AM_CONDITIONAL([HAVE_LIBPLACEBO], [test "$enable_libplacebo" != "no"])
3178 PKG_CHECK_MODULES([EGL], [egl], [
3183 AM_CONDITIONAL([HAVE_EGL], [test "${have_egl}" = "yes"])
3186 PKG_CHECK_MODULES([GL], [gl], [
3189 AC_MSG_CHECKING([for OpenGL])
3190 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
3192 # include <GL/glew.h>
3196 [int t0 = GL_TEXTURE0;]])
3200 AS_IF([test "${SYS}" != "mingw32"], [
3203 GL_LIBS="-lopengl32"
3206 AC_MSG_RESULT([${have_gl}])
3208 AM_CONDITIONAL([HAVE_GL], [test "${have_gl}" = "yes"])
3209 AS_IF([test "${have_gl}" = "yes"], [
3210 AC_DEFINE([HAVE_GL], 1, [Defined if having OpenGL])
3213 dnl OpenGL ES 2: depends on EGL 1.1
3214 PKG_ENABLE_MODULES_VLC([GLES2], [], [glesv2], [OpenGL ES v2 support], [disabled])
3219 AC_ARG_ENABLE(vulkan,
3220 [AS_HELP_STRING([--disable-vulkan],
3221 [disable Vulkan support (default auto)])])
3223 AS_IF([test "$enable_vulkan" != "no"], [
3224 AS_IF([test "$have_libplacebo_vk" = "yes"], [
3225 PKG_CHECK_MODULES([VULKAN], [vulkan >= 1.0.26], [
3226 AC_DEFINE([HAVE_VULKAN], [1], [Define to 1 if vulkan is enabled.])
3228 AS_IF([test -n "${enable_vulkan}"], [
3229 AC_MSG_ERROR([${VULKAN_PKG_ERRORS}.])
3234 AS_IF([test -n "${enable_vulkan}"], [
3235 AC_MSG_ERROR([Vulkan support requires libplacebo 1.7 as well. Do not use --disable-libplacebo.])
3240 AM_CONDITIONAL(HAVE_VULKAN, [test "$enable_vulkan" != "no"])
3247 AC_CHECK_HEADERS([X11/Xlib.h])
3250 dnl X C Bindings modules
3252 AC_ARG_ENABLE([xcb],
3253 AS_HELP_STRING([--enable-xcb], [X11 support with XCB (default enabled)]),, [
3254 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "darwin"], [
3262 have_xkbcommon_x11="no"
3263 have_xcb_keysyms="no"
3264 AS_IF([test "${enable_xcb}" != "no"], [
3268 PKG_CHECK_MODULES([XCB], [xcb >= 1.6],, [
3269 xcb_err="$xcb_err ${XCB_PKG_ERRORS}."])
3270 PKG_CHECK_MODULES([XCB_COMPOSITE], [xcb-composite],, [
3271 xcb_err="$xcb_err ${XCB_COMPOSITE_PKG_ERRORS}."])
3272 PKG_CHECK_MODULES([XCB_RANDR], [xcb-randr >= 1.3],, [
3273 xcb_err="$xcb_err ${XCB_RANDR_PKG_ERRORS}."])
3274 PKG_CHECK_MODULES([XCB_RENDER], [xcb-render],, [
3275 xcb_err="$xcb_err ${XCB_RENDER_PKG_ERRORS}."])
3276 PKG_CHECK_MODULES([XCB_SHM], [xcb-shm >= 1.9.2],, [
3277 xcb_err="$xcb_err ${XCB_SHM_PKG_ERRORS}."])
3278 PKG_CHECK_MODULES([XCB_XKB], [xcb-xkb],, [
3279 xcb_err="$xcb_err ${XCB_XKB_PKG_ERRORS}."])
3282 PKG_CHECK_MODULES(XPROTO, [xproto],, [
3283 xcb_err="$xcb_err ${XPROTO_PKG_ERRORS}."])
3285 AS_IF([test -n "$xcb_err"], [
3286 AC_MSG_ERROR([$xcb_err Pass --disable-xcb to skip X11 support.])
3290 PKG_CHECK_MODULES([XKBCOMMON_X11], [xkbcommon-x11], [
3291 have_xkbcommon_x11="yes"
3293 AC_MSG_WARN([${XKBCOMMON_X11_PKG_ERRORS}. Hotkeys are disabled.])
3297 PKG_CHECK_MODULES([XCB_KEYSYMS], [xcb-keysyms >= 0.3.4], [
3298 have_xcb_keysyms="yes"
3300 AC_MSG_WARN([${XCB_KEYSYMS_PKG_ERRORS}. Global hotkeys are disabled.])
3305 AM_CONDITIONAL([HAVE_XCB], [test "${have_xcb}" = "yes"])
3306 AM_CONDITIONAL([HAVE_XKBCOMMON_X11], [test "${have_xkbcommon_x11}" = "yes"])
3307 AM_CONDITIONAL([HAVE_XCB_KEYSYMS], [test "${have_xcb_keysyms}" = "yes"])
3313 AC_ARG_ENABLE([vdpau],
3314 [AS_HELP_STRING([--enable-vdpau], [VDPAU hardware support (default auto)])])
3316 AS_IF([test "${enable_vdpau}" != "no"], [
3317 PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.6], [
3319 AS_IF([test "${no_x}" = "yes"], [
3320 AC_MSG_ERROR([VDPAU requires Xlib (X11).])
3323 AS_IF([test -n "${enable_vdpau}"], [
3324 AC_MSG_ERROR([${VDPAU_PKG_ERRORS}.])
3328 AM_CONDITIONAL([HAVE_VDPAU], [test "${have_vdpau}" = "yes"])
3330 have_avcodec_vdpau="no"
3331 AS_IF([test "${have_vdpau}" = "yes" -a "${have_avcodec}" = "yes"], [
3333 libav) av_vdpau_ver="56.10.0" ;;
3334 ffmpeg) av_vdpau_ver="56.19.100" ;;
3336 PKG_CHECK_EXISTS([libavcodec >= ${av_vdpau_ver}], [
3337 have_avcodec_vdpau="yes"
3338 AC_MSG_NOTICE([VDPAU decoding acceleration activated])
3340 AS_IF([test -n "${enable_vdpau}"], [
3341 AC_MSG_ERROR([libavcodec >= 56.10.0 is required for VDPAU decoding.])
3343 AC_MSG_WARN([libavcodec >= 56.10.0 are required for VDPAU decoding.])
3347 AM_CONDITIONAL([HAVE_AVCODEC_VDPAU], [test "${have_avcodec_vdpau}" = "yes"])
3353 AC_ARG_ENABLE([wayland],
3354 AS_HELP_STRING([--enable-wayland], [Wayland support (default auto)]))
3357 AS_IF([test "${enable_wayland}" != "no"], [
3361 PKG_CHECK_MODULES([WAYLAND_CLIENT], [wayland-client >= 1.5.91],, [
3362 wl_err="$wl_err ${WAYLAND_CLIENT_PKG_ERRORS}."
3364 PKG_CHECK_MODULES([WAYLAND_CURSOR], [wayland-cursor],, [
3365 wl_err="$wl_err ${WAYLAND_CURSOR_PKG_ERRORS}."
3367 PKG_CHECK_MODULES([WAYLAND_EGL], [wayland-egl],, [
3368 wl_err="$wl_err ${WAYLAND_EGL_PKG_ERRORS}."
3370 PKG_CHECK_MODULES([WAYLAND_SCANNER], [wayland-scanner >= 1.15], [
3371 WAYLAND_SCANNER="$(${PKG_CONFIG} wayland-scanner --variable wayland_scanner)"
3373 wl_err="$wl_err ${WAYLAND_SCANNER_PKG_ERRORS}."
3376 dnl wayland-protocols
3377 PKG_CHECK_MODULES([WAYLAND_PROTOCOLS], [wayland-protocols >= 1.15], [
3378 WAYLAND_PROTOCOLS="$(${PKG_CONFIG} wayland-protocols --variable pkgdatadir)"
3380 wl_err="$wl_err ${WAYLAND_PROTOCOLS_PKG_ERRORS}."
3383 AS_IF([test -n "$wl_err"], [
3384 AS_IF([test -n "$enable_wayland"], [
3385 AC_MSG_ERROR([$wl_err])
3387 AC_MSG_WARN([$wl_err])
3394 PKG_CHECK_MODULES([XKBCOMMON], [xkbcommon], [
3395 have_xkbcommon="yes"
3397 AC_MSG_WARN([${XKBCOMMON_PKG_ERRORS}. Hotkeys are disabled.])
3400 AM_CONDITIONAL([HAVE_WAYLAND], [test "${have_wayland}" = "yes"])
3401 AC_SUBST([WAYLAND_PROTOCOLS])
3402 AC_SUBST([WAYLAND_SCANNER])
3403 AM_CONDITIONAL([HAVE_XKBCOMMON], [test "${have_xkbcommon}" = "yes"])
3407 dnl SDL image decoder module
3409 AC_ARG_ENABLE([sdl-image],
3410 AS_HELP_STRING([--enable-sdl-image], [SDL image support (default enabled)]))
3411 AS_IF([test "${enable_sdl_image}" != "no"],[
3412 PKG_CHECK_MODULES(SDL_IMAGE, [SDL_image >= 1.2.10], [
3413 VLC_ADD_PLUGIN([sdl_image])
3415 AC_MSG_WARN([${SDL_IMAGE_PKG_ERRORS}. You should install it alongside your SDL package.])
3422 AC_ARG_ENABLE([freetype],
3423 AS_HELP_STRING([--enable-freetype], [freetype support (default auto)]))
3424 AC_ARG_ENABLE([fribidi],
3425 AS_HELP_STRING([--enable-fribidi], [fribidi support (default auto)]))
3426 AC_ARG_ENABLE([harfbuzz],
3427 AS_HELP_STRING([--enable-harfbuzz], [harfbuzz support (default auto)]))
3428 AC_ARG_ENABLE([fontconfig],
3429 AS_HELP_STRING([--enable-fontconfig], [fontconfig support (default auto)]))
3431 AC_ARG_WITH([default-font],
3432 AS_HELP_STRING([--with-default-font=PATH],
3433 [Path to the default font]),
3434 [AC_DEFINE_UNQUOTED([DEFAULT_FONT_FILE],
3435 "$withval", [Default font])])
3436 AC_ARG_WITH([default-monospace-font],
3437 AS_HELP_STRING([--with-default-monospace-font=PATH],
3438 [Path to the default font]),
3439 [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FONT_FILE],
3440 "$withval", [Default monospace font])])
3442 AC_ARG_WITH([default-font-family],
3443 AS_HELP_STRING([--with-default-font-family=NAME],
3444 [Name of the default font family]),
3445 [AC_DEFINE_UNQUOTED([DEFAULT_FAMILY],
3446 "$withval", [Default font family])])
3447 AC_ARG_WITH([default-monospace-font-family],
3448 AS_HELP_STRING([--with-default-monospace-font-family=NAME],
3449 [Name of the default font family]),
3450 [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FAMILY],
3451 "$withval", [Default monospace font family])])
3454 have_fontconfig="no"
3458 if test "${enable_freetype}" != "no"; then
3459 PKG_CHECK_MODULES(FREETYPE, freetype2, [
3461 VLC_ADD_CPPFLAGS([skins2],[${FREETYPE_CFLAGS}])
3462 VLC_ADD_LIBS([skins2],[${FREETYPE_LIBS}])
3464 dnl fontconfig support
3465 AS_IF([test "${enable_fontconfig}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "darwin"], [
3466 PKG_CHECK_MODULES(FONTCONFIG, [fontconfig >= 2.11], [
3467 have_fontconfig="yes"
3469 AC_MSG_WARN([${FONTCONFIG_PKG_ERRORS}. Styles will be disabled in FreeType.])
3474 if test "${enable_fribidi}" != "no"; then
3475 PKG_CHECK_MODULES(FRIBIDI, fribidi, [
3477 VLC_ADD_CPPFLAGS([skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
3478 VLC_ADD_LIBS([skins2], [${FRIBIDI_LIBS}])
3479 ],[AC_MSG_WARN([${FRIBIDI_PKG_ERRORS}. Bidirectional text and complex scripts (Arabic, Farsi, Thai...) will be disabled in FreeType.])])
3482 dnl harfbuzz support
3483 if test "${have_fribidi}" != "no"; then
3484 if test "${enable_harfbuzz}" != "no"; then
3485 PKG_CHECK_MODULES(HARFBUZZ, harfbuzz, [
3487 VLC_ADD_CPPFLAGS([skins2], [${HARFBUZZ_CFLAGS} -DHAVE_HARFBUZZ])
3488 VLC_ADD_LIBS([skins2], [${HARFBUZZ_LIBS}])
3489 ],[AC_MSG_WARN([${HARFBUZZ_PKG_ERRORS}. Support for complex scripts (Arabic, Farsi, Thai...) will be disabled in FreeType.])])
3493 AS_IF([test -n "${enable_freetype}"],[
3494 AC_MSG_ERROR([${FREETYPE_PKG_ERRORS}. Install FreeType2 development or configure with --disable-freetype.])
3499 AM_CONDITIONAL([HAVE_FREETYPE], [test "${have_freetype}" = "yes"])
3500 AM_CONDITIONAL([HAVE_FONTCONFIG], [test "${have_fontconfig}" = "yes"])
3501 AM_CONDITIONAL([HAVE_FRIBIDI], [test "${have_fribidi}" = "yes"])
3502 AM_CONDITIONAL([HAVE_HARFBUZZ], [test "${have_harfbuzz}" = "yes"])
3505 dnl libass subtitle rendering module
3507 AC_ARG_ENABLE([libass],
3508 AS_HELP_STRING([--enable-libass], [Subtitle support using libass (default enabled)]))
3509 AS_IF( [test "${enable_libass}" != "no"], [
3510 PKG_CHECK_MODULES(LIBASS, [libass >= 0.9.8],
3512 VLC_ADD_PLUGIN([libass])
3514 if test "${have_fontconfig}" != "no"; then
3515 VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
3516 VLC_ADD_LIBS([libass],[${FONTCONFIG_LIBS}])
3519 AC_MSG_WARN([${LIBASS_PKG_ERRORS}.])
3524 dnl SAPI (text to Speech renderer for Windows)
3527 AC_CHECK_TYPES([ISpObjectToken],[
3529 ],[AC_MSG_WARN([sapi.h not found. Text to Speech renderer for Windows disabled])],
3530 [#include <windows.h>
3532 #include <sphelper.h>])
3533 AM_CONDITIONAL([HAVE_SAPI], [test "${have_sapi}" = "yes"])
3537 dnl SVG module (text rendering and image decoding)
3539 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3540 PKG_ENABLE_MODULES_VLC([SVGDEC], [], [librsvg-2.0 >= 2.9.0 cairo >= 1.13.1], [SVG image decoder library],[auto])
3543 dnl Windows DirectX module
3546 AC_ARG_ENABLE([directx],
3547 AS_HELP_STRING([--enable-directx],
3548 [Microsoft DirectX support (default enabled on Windows)]),, [
3549 AS_IF([test "${SYS}" = "mingw32"], [
3550 enable_directx="yes"
3555 AS_IF([test "${enable_directx}" != "no"], [
3557 AC_CHECK_HEADERS([GL/glew.h], [
3558 AC_CHECK_HEADERS([GL/wglew.h], [
3559 VLC_ADD_PLUGIN([glwin32 wgl])
3561 #include <windows.h>
3562 #include <GL/glew.h>
3564 #include <windows.h>
3568 AC_CHECK_HEADERS([d3d11.h], [
3569 VLC_ADD_PLUGIN([direct3d11 direct3d11_filters])
3573 AC_CHECK_HEADERS([d3d9.h], [
3574 VLC_ADD_PLUGIN([direct3d9])
3575 AC_CHECK_HEADERS([d3dx9effect.h])
3577 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
3578 [[#define COBJMACROS
3580 #include <dxva2api.h>
3581 #ifndef IDirectXVideoProcessorService_GetVideoProcessorDeviceGuids
3582 # error dxva2 too old
3586 VLC_ADD_PLUGIN([direct3d9_filters])
3588 [AC_MSG_WARN([Could not find required IDirectXVideoDecoder in dxva2api.h])])
3594 dnl Linux framebuffer module
3596 AC_CHECK_HEADER([linux/fb.h], [
3597 VLC_ADD_PLUGIN([fb])
3601 dnl Linux kernel mode setting module
3603 PKG_ENABLE_MODULES_VLC([KMS], [], [libdrm >= 2.4.83], [Linux kernel mode setting output], [auto])
3608 PKG_ENABLE_MODULES_VLC([CACA], [], [caca >= 0.99.beta14], [libcaca output],[auto])
3613 AC_ARG_ENABLE([kva],
3614 AS_HELP_STRING([--enable-kva],
3615 [support the K Video Accelerator KVA (default enabled on OS/2)]),, [
3616 AS_IF([test "$SYS" = "os2"], [
3622 AS_IF([test "$enable_kva" != "no"], [
3623 AC_CHECK_HEADERS([kva.h], [
3625 AC_CHECK_LIB([kva], [main], [
3630 AC_SUBST([KVA_LIBS])
3631 AM_CONDITIONAL([HAVE_KVA], [test "${have_kva}" = "yes"])
3636 AC_ARG_ENABLE([mmal],
3637 AS_HELP_STRING([--enable-mmal],
3638 [Multi-Media Abstraction Layer (MMAL) hardware plugin (default enable)]))
3639 if test "${enable_mmal}" != "no"; then
3641 LDFLAGS="${LDFLAGS} -L/opt/vc/lib -lvchostif"
3642 CPPFLAGS="${CPPFLAGS} -isystem /opt/vc/include -isystem /opt/vc/include/interface/vcos/pthreads -isystem /opt/vc/include/interface/vmcs_host/linux"
3643 AC_CHECK_HEADERS([interface/mmal/mmal.h],
3644 [ AC_CHECK_LIB([bcm_host], [vc_tv_unregister_callback_full], [
3646 VLC_ADD_PLUGIN([mmal])
3647 VLC_ADD_LDFLAGS([mmal],[ -L/opt/vc/lib ])
3648 VLC_ADD_CFLAGS([mmal],[ -isystem /opt/vc/include -isystem /opt/vc/include/interface/vcos/pthreads -isystem /opt/vc/include/interface/vmcs_host/linux ])
3649 VLC_ADD_LIBS([mmal],[ -lbcm_host -lmmal -lmmal_core -lmmal_components -lmmal_util -lvchostif ]) ], [
3650 AS_IF([test "${enable_mmal}" = "yes"],
3651 [ AC_MSG_ERROR([Cannot find bcm library...]) ],
3652 [ AC_MSG_WARN([Cannot find bcm library...]) ])
3655 ] , [ AS_IF([test "${enable_mmal}" = "yes"],
3656 [ AC_MSG_ERROR([Cannot find development headers for mmal...]) ],
3657 [ AC_MSG_WARN([Cannot find development headers for mmal...]) ]) ])
3660 AM_CONDITIONAL([HAVE_MMAL], [test "${have_mmal}" = "yes"])
3666 EXTEND_HELP_STRING([Audio plugins:])
3669 dnl Pulseaudio module
3671 AC_ARG_ENABLE([pulse],
3672 AS_HELP_STRING([--enable-pulse],
3673 [use the PulseAudio client library (default auto)]))
3675 AS_IF([test "${enable_pulse}" != "no"], [
3676 PKG_CHECK_MODULES([PULSE], [libpulse >= 1.0], [
3679 AS_IF([test "x${enable_pulse}" != "x"], [
3680 AC_MSG_ERROR([$PULSE_PKG_ERRORS. PulseAudio 1.0 or later required.])
3684 AM_CONDITIONAL([HAVE_PULSE], [test "${have_pulse}" = "yes"])
3689 AC_ARG_ENABLE([alsa],
3690 AS_HELP_STRING([--enable-alsa],
3691 [support the Advanced Linux Sound Architecture (default auto)]),, [
3692 AS_IF([test "$SYS" = "linux" -a "${have_pulse}" = "no"], [
3697 AS_IF([test "${enable_alsa}" != "no"], [
3698 PKG_CHECK_MODULES([ALSA], [alsa >= 1.0.24], [
3701 AS_IF([test "x${enable_alsa}" != "x"], [
3702 AC_MSG_ERROR([$ALSA_PKG_ERRORS. alsa-lib 1.0.24 or later required. Pass --disable-alsa to ignore this error.])
3706 AM_CONDITIONAL([HAVE_ALSA], [test "${have_alsa}" = "yes"])
3709 dnl Open Sound System module
3711 AC_ARG_ENABLE([oss],
3712 AS_HELP_STRING([--enable-oss],
3713 [support the Open Sound System OSS (default enabled on FreeBSD/NetBSD/DragonFlyBSD)]),, [
3714 AS_IF([test "$SYS" = "mingw32" -o "$SYS" = "linux" -o "$SYS" = "openbsd"], [
3720 AS_IF([test "$enable_oss" != "no"], [
3721 AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
3723 AC_CHECK_LIB([ossaudio], [main], [
3724 OSS_LIBS="-lossaudio"
3728 AC_SUBST([OSS_LIBS])
3729 AM_CONDITIONAL([HAVE_OSS], [test "${have_oss}" = "yes"])
3732 dnl OpenBSD sndio module
3734 AC_ARG_ENABLE([sndio],
3735 AS_HELP_STRING([--disable-sndio],
3736 [support the OpenBSD sndio (default auto)]),, [
3737 AS_IF([test "$SYS" = "openbsd"], [
3742 AS_IF([test "$enable_sndio" != "no"], [
3743 AC_CHECK_HEADER([sndio.h], [
3747 AM_CONDITIONAL([HAVE_SNDIO], [test "${have_sndio}" = "yes"])
3750 dnl Windows Audio Session plugin
3752 AC_ARG_ENABLE([wasapi],
3753 AS_HELP_STRING([--enable-wasapi],
3754 [use the Windows Audio Session API (default auto)])
3757 AS_IF([test "$enable_wasapi" != "no"], [
3758 AC_CHECK_HEADER([audioclient.h], [
3761 AS_IF([test "x${enable_wasapi}" != "x"], [
3762 AC_MSG_ERROR([Windows Audio Session API not found.])
3766 AM_CONDITIONAL([HAVE_WASAPI], [test "${have_wasapi}" = "yes"])
3771 AC_ARG_ENABLE([jack],
3772 AS_HELP_STRING([--disable-jack],
3773 [do not use jack (default auto)]))
3775 AS_IF([test "${enable_jack}" != "no"], [
3776 PKG_CHECK_MODULES(JACK, jack >= 1.9.7,
3779 AC_MSG_WARN([${JACK_PKG_ERRORS}, trying jack1 instead])
3781 PKG_CHECK_MODULES(JACK, jack >= 0.120.1 jack < 1.0,
3784 AS_IF([test -n "${enable_jack}"],
3785 [AC_MSG_ERROR([${JACK_PKG_ERRORS}.])],
3786 [AC_MSG_WARN([${JACK_PKG_ERRORS}.])])
3790 AM_CONDITIONAL([HAVE_JACK], [test "${have_jack}" != "no"])
3793 dnl OpenSLES Android
3795 AC_ARG_ENABLE([opensles],
3796 AS_HELP_STRING([--enable-opensles], [Android OpenSL ES audio module (default disabled)]))
3797 if test "${HAVE_ANDROID}" = "1"; then
3798 if test "${enable_opensles}" = "yes"; then
3799 AC_CHECK_HEADERS([SLES/OpenSLES.h],
3800 [ VLC_ADD_PLUGIN([opensles_android]) ],
3801 [ AC_MSG_ERROR([cannot find OpenSLES headers])] )
3808 AC_ARG_ENABLE([tizen_audio],
3809 AS_HELP_STRING([--enable-tizen-audio],
3810 [Tizen audio module (default enabled on Tizen)]),, [
3811 AS_IF([test "$HAVE_TIZEN" = "1"], [
3812 enable_tizen_audio="yes"
3815 if test "${enable_tizen_audio}" = "yes"; then
3816 AC_CHECK_HEADERS([audio_io.h],
3817 [ VLC_ADD_PLUGIN([tizen_audio]) ],
3818 [ AC_MSG_ERROR([cannot find Tizen audio_io headers])] )
3822 dnl libsamplerate plugin
3824 PKG_ENABLE_MODULES_VLC([SAMPLERATE], [], [samplerate], [Resampler with libsamplerate], [auto])
3829 PKG_ENABLE_MODULES_VLC([SOXR], [], [soxr >= 0.1.2], [SoX Resampler library], [auto])
3834 AC_ARG_ENABLE([kai],
3835 AS_HELP_STRING([--enable-kai],
3836 [support the K Audio Interface KAI (default enabled on OS/2)]),, [
3837 AS_IF([test "$SYS" = "os2"], [
3843 AS_IF([test "$enable_kai" != "no"], [
3844 AC_CHECK_HEADERS([kai.h], [
3846 AC_CHECK_LIB([kai], [main], [
3851 AC_SUBST([KAI_LIBS])
3852 AM_CONDITIONAL([HAVE_KAI], [test "${have_kai}" = "yes"])
3855 dnl chromaprint audio track fingerprinter
3857 m4_pushdef([libchromaprint_version], 0.6.0)
3858 PKG_WITH_MODULES([CHROMAPRINT],[libchromaprint >= libchromaprint_version],
3859 VLC_ADD_PLUGIN([stream_out_chromaprint]),
3860 AS_IF([test "${enable_chromaprint}" = "yes"],
3861 [AC_MSG_ERROR(Library [libchromaprint >= libchromaprint_version] needed for [chromaprint] was not found)],
3862 [AC_MSG_WARN(Library [libchromaprint >= libchromaprint_version] needed for [chromaprint] was not found)]
3864 [(Chromaprint based audio fingerprinter)],[auto])
3865 m4_popdef([libchromaprint_version])
3868 dnl Chromecast streaming support
3870 m4_pushdef([protobuf_lite_version], 2.5.0)
3871 AC_ARG_VAR(PROTOC, [protobuf compiler])
3872 AC_CHECK_PROGS(PROTOC, protoc, no)
3873 PKG_WITH_MODULES([CHROMECAST],[protobuf-lite >= protobuf_lite_version], [
3874 AS_IF([test "x${PROTOC}" != "xno"], [
3875 build_chromecast="yes"
3877 AC_MSG_ERROR(protoc compiler needed for [chromecast] was not found)
3880 AS_IF([test "${enable_chromecast}" = "yes"],
3881 AC_MSG_ERROR(Library [protobuf-lite >= protobuf_lite_version] needed for [chromecast] was not found),
3882 AC_MSG_WARN(Library [protobuf-lite >= protobuf_lite_version] needed for [chromecast] was not found)
3884 enable_chromecast="no"
3885 ], [(Chromecast streaming support)], [auto])
3886 AM_CONDITIONAL([BUILD_CHROMECAST], [test "${build_chromecast}" = "yes"])
3887 m4_popdef([protobuf_lite_version])
3890 dnl Interface plugins
3893 EXTEND_HELP_STRING([Interface plugins:])
3899 AS_HELP_STRING([--disable-qt], [Qt UI support (default enabled)]),, [
3900 AS_IF([test "${enable_vlc}" != "no"], [enable_qt="yes"])
3901 AS_IF([test "${SYS}" = "darwin"], [
3906 AS_IF([test "${enable_qt}" != "no"], [
3907 PKG_CHECK_MODULES([QT], [Qt5Core >= 5.11.0 Qt5Widgets Qt5Gui Qt5Quick Qt5QuickWidgets Qt5QuickControls2 Qt5Svg], [
3908 PKG_CHECK_MODULES([QT5_X11], [Qt5X11Extras], [
3911 AC_MSG_WARN([Not building Qt Interface with X11 helpers.])
3913 QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix Qt5Core)"
3914 QT_HOST_PATH="$(eval $PKG_CONFIG --variable=host_bins Qt5Core)"
3915 QT_VERSION="$(eval $PKG_CONFIG --modversion Qt5Gui)"
3916 AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3917 AC_PATH_PROGS(RCC, [rcc-qt5 rcc], rcc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3918 AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3919 AC_PATH_PROGS(QMLCACHE, [qmlcachegen-qt5 qmlcachegen], no, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3920 AS_IF([test "x${QMLCACHE}" = "xno"], [
3921 AC_MSG_WARN([qmlcachegen not found])
3924 AS_IF([test -n "${enable_qt}"],[
3925 AC_MSG_ERROR([${QT_PKG_ERRORS}. If you want to build VLC without GUI, pass --disable-qt.])
3927 AC_MSG_WARN([${QT_PKG_ERRORS}.])
3933 AC_ARG_ENABLE([qt-qml-cache],
3934 AS_HELP_STRING([--enable-qt-qml-cache],
3935 [enable qml cache generation]))
3936 AM_CONDITIONAL([HAVE_QMLCACHE], [test "${enable_qt_qml_cache}" = "yes" && "x$QMLCACHE" != "xno"])
3938 AC_ARG_ENABLE([qt-qml-debug],
3939 AS_HELP_STRING([--enable-qt-qml-debug], [enable qml debuger]))
3940 AM_CONDITIONAL(QT_QML_DEBUG, [test "${enable_qt_qml_debug}" = "yes"])
3942 AS_IF([test "${enable_qt}" != "no"], [
3943 ALIASES="${ALIASES} qvlc"
3945 AC_SUBST([QT_VERSION])
3946 AM_CONDITIONAL([ENABLE_QT], [test "$enable_qt" != "no"])
3947 AM_CONDITIONAL([HAVE_QT5_X11], [test "${have_qt5_x11}" = "yes"])
3950 dnl detect kde4-config patch (used for kde solids).
3952 AC_ARG_VAR([KDE4_CONFIG], [kde4-config utility])
3953 AS_IF([test "x$KDE4_CONFIG" = "x"], [
3954 KDE4_CONFIG="kde4-config"
3958 dnl Simple test for skins2 dependency
3960 AS_IF([test "$enable_qt" = "no"], [
3961 AS_IF([test "${enable_skins2}" = "yes"], [
3962 AC_MSG_ERROR([The skins2 module depends on the Qt 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 Qt development package or alternatively you can also configure with: --disable-qt --disable-skins2.])
3965 AC_MSG_WARN([The skins2 module depends on the Qt interface, Qt is not built so skins2 is disabled.])
3972 AC_ARG_ENABLE([skins2],
3973 AS_HELP_STRING([--enable-skins2], [skins interface module (default auto)]))
3974 AS_IF([test "${enable_skins2}" != "no"], [
3975 have_skins_deps="yes"
3978 AS_IF([test "${SYS}" = "mingw32"], [
3979 VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -DWIN32_SKINS])
3980 VLC_ADD_LIBS([skins2],[-lgdi32 -lole32 -luuid -lmsimg32])
3982 ], [test "${SYS}" = "os2"], [
3983 VLC_ADD_CPPFLAGS([skins2],[ -DOS2_SKINS])
3986 PKG_CHECK_MODULES([XPM], [xpm],, [have_skins_deps="no"])
3987 PKG_CHECK_MODULES([XINERAMA], [xinerama],, [have_skins_deps="no"])
3988 PKG_CHECK_MODULES([XCURSOR], [xcursor],, [have_skins_deps="no"])
3989 PKG_CHECK_MODULES([XEXT], [xext],, [have_skins_deps="no"])
3990 VLC_ADD_CPPFLAGS([skins2],[${X_CFLAGS} ${XEXT_CFLAGS} ${XPM_CFLAGS} -DX11_SKINS])
3991 VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} ${XEXT_LIBS} ${XPM_LIBS} ${XINERAMA_LIBS} ${XCURSOR_LIBS} -lX11])
3994 dnl we need freetype
3995 AS_IF([test "${have_freetype}" != "yes"], [
3996 have_skins_deps="no"
3999 AS_IF([test "${have_skins_deps}" = "no"], [
4000 AS_IF([test "x${enable_skins2}" = "x"], [
4001 AC_MSG_WARN([Skins2 interface disabled due to missing dependencies.])
4003 AC_MSG_ERROR([Skins2 interface requires FreeType, libxcursor, libxpm, libxext and libxinerama])
4007 ALIASES="${ALIASES} svlc"
4012 AS_IF([test "${enable_skins2}" = "yes"], [
4013 AC_MSG_WARN([Skins2 interface disabled, it need to ported to the new player and playlist.])
4017 AM_CONDITIONAL([BUILD_SKINS], [test "${enable_skins2}" = "yes"])
4019 AC_ARG_ENABLE([libtar],
4020 AS_HELP_STRING([--enable-libtar], [libtar support for skins2 (default auto)]))
4021 AS_IF([test "${enable_skins2}" = "yes" && test "${enable_libtar}" != "no"], [
4022 AC_CHECK_HEADERS([libtar.h], [
4023 VLC_ADD_LIBS([skins2],[-ltar])
4028 dnl MacOS X gui module
4030 AC_ARG_ENABLE([macosx],
4031 AS_HELP_STRING([--enable-macosx], [Mac OS X gui support (default enabled on Mac OS X)]))
4032 if test "x${enable_macosx}" != "xno" -a "${SYS}" = "darwin"
4036 dnl If possible, use xcrun to find the right ibtool
4039 AC_PATH_PROG([XCRUN], [xcrun], [no])
4040 AS_IF([test ! "x${XCRUN}" = "xno"], [
4041 AC_MSG_CHECKING([for ibtool (using xcrun)])
4042 XIB="$(eval $XCRUN -f ibtool 2>/dev/null || echo no)"
4043 AC_MSG_RESULT([${XIB}])
4045 AC_MSG_WARN([Looking for tools without using xcrun])
4048 AS_IF([test "x${XIB}" = "xno"], [
4049 AC_PATH_PROG(XIB, [ibtool], [no])
4050 AS_IF([test "x${XIB}" = "xno"], [
4051 AC_MSG_ERROR([ibtool was not found, but is required for --enable-macosx])
4055 AM_CONDITIONAL([ENABLE_MACOSX_UI], [test "$enable_macosx" != "no" -a "${SYS}" = "darwin"])
4058 dnl MacOS X sparkle update support
4060 AC_ARG_ENABLE([sparkle],
4061 AS_HELP_STRING([--enable-sparkle], [Sparkle update support for OS X (default enabled on Mac OS X)]))
4062 if test "x${enable_sparkle}" != "xno" -a "${HAVE_OSX}" = "1"
4064 if test ! -d ${CONTRIB_DIR}/Sparkle.framework -a ! -d ${CONTRIB_DIR}/Frameworks/Sparkle.framework
4066 AC_MSG_ERROR([Sparkle framework is required and was not found in ${CONTRIB_DIR}])
4069 AC_DEFINE([HAVE_SPARKLE], [1], [Define to 1 if sparkle is enabled.])
4071 AM_CONDITIONAL([HAVE_SPARKLE], [test "$enable_sparkle" != "no"])
4074 dnl MacOS X breakpad creash reporter support
4076 AC_ARG_WITH([breakpad],
4077 AS_HELP_STRING([--with-breakpad=URL], [Enable Breakpad reporter using given URL]), [], [with_breakpad=no])
4079 AS_IF([test "$with_breakpad" != "no"], [
4081 AS_IF([test "$with_breakpad" = "yes"], [
4082 AC_MSG_ERROR([You need to supply the CrashDragon Server URL as value for --with-breakpad])
4085 AS_IF([test "$HAVE_OSX" = "1"], [
4086 AC_MSG_CHECKING([for Breakpad framework])
4087 AS_IF([test ! -d ${CONTRIB_DIR}/Breakpad.framework -a \
4088 ! -d ${CONTRIB_DIR}/Frameworks/Breakpad.framework], [
4091 AC_MSG_ERROR([Breakpad framework is required and was not found in ${CONTRIB_DIR}])
4093 AC_MSG_RESULT([yes])
4096 PKG_CHECK_MODULES([BREAKPAD], [breakpad-client], [
4097 LDFLAGS="${LDFLAGS} -Wl,--build-id"
4099 AC_MSG_ERROR(["breakpad not found"])
4104 AM_CONDITIONAL([HAVE_BREAKPAD], [test "$with_breakpad" != "no"])
4105 AS_IF([test "$with_breakpad" != "no"], [
4106 AC_SUBST([BREAKPAD_URL], ["${with_breakpad}"])
4110 dnl Minimal Mac OS X module
4112 AC_ARG_ENABLE([minimal-macosx],
4113 AS_HELP_STRING([--enable-minimal-macosx], [Minimal Mac OS X support (default disabled)]))
4114 if test "${enable_minimal_macosx}" = "yes" -a "${SYS}" = "darwin"
4116 VLC_ADD_PLUGIN([minimal_macosx])
4120 dnl Mac OS X fancy dmg build tool
4122 if test "${HAVE_OSX}" = "1"
4124 AC_PATH_PROG(DMGBUILD, dmgbuild, no)
4125 AS_IF([test "x${DMGBUILD}" = "xno"], [
4126 AC_MSG_WARN([dmgbuild not found -- unable to build fancy DMGs])
4129 AM_CONDITIONAL([HAVE_DMGBUILD], [test "x$DMGBUILD" != "xno" -a "${HAVE_OSX}" = "1"])
4132 dnl VideoToolbox plugins
4133 AC_CHECK_HEADERS([VideoToolbox/VideoToolbox.h], [
4134 VLC_ADD_PLUGIN([videotoolbox])
4135 VLC_ADD_PLUGIN([cvpx])
4139 dnl AudioToolbox MIDI plugin
4140 AC_CHECK_HEADERS([AudioToolbox/AudioToolbox.h], [
4141 VLC_ADD_PLUGIN([audiotoolboxmidi])
4147 AC_ARG_ENABLE([ncurses],
4148 AS_HELP_STRING([--disable-ncurses],[ncurses text-based interface (default auto)]))
4150 AS_IF([test "${enable_ncurses}" != "no"] ,[
4151 PKG_CHECK_MODULES([NCURSES], [ncursesw], [
4153 ALIASES="${ALIASES} nvlc"
4155 AS_IF([test -n "${enable_ncurses}"], [
4156 AC_MSG_ERROR([${NCURSES_PKG_ERRORS}.])
4160 AM_CONDITIONAL([HAVE_NCURSES], [test "${have_ncurses}" = "yes"])
4165 AC_ARG_ENABLE([lirc],
4166 AS_HELP_STRING([--enable-lirc], [lirc support (default disabled)]))
4168 AS_IF([test "${enable_lirc}" = "yes"], [
4169 AC_CHECK_HEADER(lirc/lirc_client.h, [
4170 AC_CHECK_LIB([lirc_client], [lirc_init], [
4175 AM_CONDITIONAL([HAVE_LIRC], [test "${have_lirc}" = "yes"])
4180 PKG_CHECK_MODULES([BITSTREAM], [bitstream > 1.4],[have_bitstream="yes"], [have_bitstream="no"])
4181 AM_CONDITIONAL([HAVE_BITSTREAM], [test "${have_bitstream}" = "yes"])
4186 PKG_ENABLE_MODULES_VLC([SRT], [access_srt access_output_srt], [srt >= 1.3.0], [SRT input/output plugin], [auto], [], [], [-DENABLE_SRT])
4188 EXTEND_HELP_STRING([Visualisations and Video filter plugins:])
4190 dnl goom visualization plugin
4192 PKG_ENABLE_MODULES_VLC([GOOM], [], [libgoom2], [goom visualization plugin], [auto])
4195 dnl libprojectM visualization plugin
4197 AC_ARG_ENABLE([projectm],
4198 AS_HELP_STRING([--enable-projectm], [projectM visualization plugin (default enabled)]))
4199 AS_IF([test "${enable_projectm}" != "no"],
4201 PKG_CHECK_MODULES(PROJECTM, libprojectM,
4203 VLC_ADD_PLUGIN([projectm])
4204 PKG_CHECK_EXISTS([libprojectM >= 2.0.0],
4205 [ AC_DEFINE([HAVE_PROJECTM2], 1, [Define to 1 if using libprojectM 2.x]) ],
4206 [ AC_MSG_WARN( [Using libprojectM version 1] )
4209 AC_MSG_WARN([${PROJECTM_PKG_ERRORS}.])
4214 dnl Vovoid VSXu visualization plugin
4216 AC_ARG_ENABLE([vsxu],
4217 AS_HELP_STRING([--enable-vsxu], [Vovoid VSXu visualization plugin (default auto)]))
4218 AS_IF([test "${enable_vsxu}" != "no"],
4220 PKG_CHECK_MODULES(VSXU, libvsxu,
4222 VLC_ADD_PLUGIN([vsxu])
4224 AC_MSG_WARN([${VSXU_PKG_ERRORS}.])
4228 EXTEND_HELP_STRING([Service Discovery plugins:])
4230 dnl Avahi-Zeroconf services discovery
4231 PKG_ENABLE_MODULES_VLC([AVAHI], [], [avahi-client >= 0.6], [Zeroconf services discovery], [auto])
4234 dnl libudev services discovery
4235 PKG_ENABLE_MODULES_VLC([UDEV], [], [libudev >= 142], [Linux udev services discovery], [auto])
4238 dnl MTP devices services discovery
4239 PKG_ENABLE_MODULES_VLC([MTP], [mtp access_mtp], [libmtp >= 1.0.0], [MTP devices support], [auto])
4242 dnl UPnP Plugin (Intel SDK)
4244 PKG_ENABLE_MODULES_VLC([UPNP], [upnp], [libupnp], [Intel UPNP SDK],[auto])
4247 dnl mDNS using libmicrodns
4249 PKG_ENABLE_MODULES_VLC([MICRODNS], [], [microdns], [mDNS services discovery], [auto])
4252 EXTEND_HELP_STRING([Misc options:])
4257 PKG_ENABLE_MODULES_VLC([LIBXML2], [xml], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
4263 AC_ARG_ENABLE([libgcrypt],
4264 AS_HELP_STRING([--disable-libgcrypt], [gcrypt support (default enabled)]))
4265 AC_ARG_VAR([GCRYPT_CFLAGS], [C compiler flags for gcrypt])
4266 AC_ARG_VAR([GCRYPT_LIBS], [linker flags flags for gcrypt])
4268 # require libgcrypt >= 1.6.0
4269 AS_IF([test "${enable_libgcrypt}" != "no"], [
4270 AC_CACHE_CHECK([for gcrypt 1.6.0 or later], [ac_cv_lib_gcrypt], [
4272 CFLAGS="${CFLAGS} ${GCRYPT_CFLAGS}"
4273 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
4274 [#include <gcrypt.h>
4275 #if GCRYPT_VERSION_NUMBER < 0x010600
4278 ac_cv_lib_gcrypt=yes
4285 AS_IF([test "${ac_cv_lib_gcrypt}" = "yes"], [
4286 AC_DEFINE([HAVE_GCRYPT], 1, [Defined if having gcrypt])
4288 AS_IF([test "${enable_libgcrypt}" = "yes"], [
4289 AC_MSG_ERROR([libgcrypt version 1.6.0 or higher not found. Install libgcrypt or pass --disable-libgcrypt.])
4294 AS_IF([test -z "$GCRYPT_LIBS"], [
4295 GCRYPT_LIBS="-lgcrypt -lgpg-error"
4298 AC_SUBST([GCRYPT_CFLAGS])
4299 AC_SUBST([GCRYPT_LIBS])
4300 AM_CONDITIONAL([HAVE_GCRYPT], [test "${ac_cv_lib_gcrypt}" = "yes"])
4305 AC_ARG_ENABLE([gnutls],
4306 AS_HELP_STRING([--enable-gnutls], [GNU TLS TLS/SSL support (default enabled)]))
4307 AS_IF([test "${enable_gnutls}" != "no"], [
4308 PKG_CHECK_MODULES(GNUTLS, [gnutls >= 3.5.0], [
4309 VLC_ADD_PLUGIN([gnutls])
4311 AS_IF([test -n "${enable_gnutls}"], [
4312 AC_MSG_ERROR([${GNUTLS_PKG_ERRORS}.)])
4321 AC_ARG_ENABLE([taglib],
4322 AS_HELP_STRING([--disable-taglib],
4323 [do not use TagLib (default enabled)]))
4324 AS_IF([test "${enable_taglib}" != "no"], [
4325 PKG_CHECK_MODULES(TAGLIB, taglib >= 1.11, [
4326 VLC_ADD_PLUGIN([taglib])
4328 AC_MSG_WARN([${TAGLIB_PKG_ERRORS}.])])
4334 PKG_ENABLE_MODULES_VLC([SECRET], [], [libsecret-1 >= 0.18], [use libsecret for keystore], [auto])
4339 AC_ARG_ENABLE([kwallet],
4340 AS_HELP_STRING([--enable-kwallet],
4341 [use kwallet (via D-Bus) for keystore (default enabled)]))
4342 AS_IF([test "${enable_kwallet}" != "no" -a "${have_dbus}" = "yes"], [
4343 VLC_ADD_PLUGIN([kwallet])
4347 dnl update checking system
4349 AC_ARG_ENABLE([update-check],
4350 AS_HELP_STRING([--enable-update-check], [update checking system (default disabled)]))
4351 if test "${enable_update_check}" = "yes"
4353 AS_IF([test "${ac_cv_lib_gcrypt}" != "yes"],[
4354 AC_MSG_ERROR([libgcrypt is required for update checking system]) ])
4356 AM_CONDITIONAL([UPDATE_CHECK], [test "${enable_update_check}" = "yes"])
4359 dnl OS X notification plugin
4361 AC_ARG_ENABLE([osx_notifications],
4362 AS_HELP_STRING([--enable-osx-notifications],
4363 [macOS notification plugin (default disabled)]),,
4364 [enable_osx_notifications=no])
4365 AS_IF([test "${enable_osx_notifications}" != "no"], [
4366 VLC_ADD_PLUGIN([osx_notifications])
4370 dnl Libnotify notification plugin
4372 PKG_ENABLE_MODULES_VLC([NOTIFY], [], [libnotify gtk+-3.0], [libnotify notification], [auto])
4374 PKG_ENABLE_MODULES_VLC([MEDIALIBRARY], [medialibrary], [medialibrary], (medialibrary support), [auto])
4377 dnl Endianness check
4380 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
4381 DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
4385 AC_SUBST([DEFS_BIGENDIAN])
4388 dnl Where to install KDE solid .desktop
4390 AC_ARG_WITH(kde-solid,
4391 AS_HELP_STRING([--with-kde-solid=PATH],
4392 [KDE Solid actions directory (auto)]),, [
4394 if test "${SYS}" != "mingw32" -a "${SYS}" != "darwin" -a "${HAVE_ANDROID}" != "1" ; then
4395 with_kde_solid="yes"
4399 AS_IF([test "${with_kde_solid}" != "no"], [
4400 AS_IF([test "${with_kde_solid}" = "yes"], [
4401 kde4datadir="`${KDE4_CONFIG} --install data`"
4402 AS_IF([test "x$kde4datadir" = "x"], [kde4datadir='${datadir}/kde4/apps'])
4403 soliddatadir="${kde4datadir}/solid/actions"
4405 soliddatadir="${with_kde_solid}"
4408 AC_SUBST([soliddatadir])
4409 AM_CONDITIONAL([KDE_SOLID], [test "x${soliddatadir}" != "x"])
4412 dnl Find tools for win32 packaging
4414 AS_IF([test "${SYS}" = "mingw32"], [
4416 dnl Find makensis required to build the NSIS installer
4418 nsis_major_required="3"
4419 nsis_version_ok="no"
4420 AC_PATH_PROG([MAKENSIS], [makensis], [no])
4421 AS_IF([test "$MAKENSIS" != "no"], [
4423 AC_MSG_CHECKING([makensis version])
4424 nsis_version=$($MAKENSIS -VERSION)
4425 AC_MSG_RESULT([$nsis_version])
4426 nsis_version_major=$(echo "$nsis_version" | awk -F \. '{print $1}' | sed 's/v//')
4427 # Check if major version is a valid number
4428 AS_IF([test -n "$nsis_version_major" && \
4429 test "$nsis_version_major" -eq "$nsis_version_major" 2> /dev/null], [
4430 # Do the version check using major version
4431 AS_IF([test "$nsis_version_major" -lt "$nsis_major_required"], [
4432 AC_MSG_WARN([makensis too old, (needs ${nsis_major_required}.x, have ${nsis_version_major}.x)])
4434 nsis_version_ok="yes"
4437 AC_MSG_WARN([failed to check the makensis version])
4443 AC_PATH_PROG([SEVENZIP], [7z], [7z])
4445 AM_CONDITIONAL([HAVE_MAKENSIS], [test "x$MAKENSIS" != "xno" && test "$nsis_version_ok" = "yes"])
4448 dnl Check wether we have the PROCESS_MITIGATION_IMAGE_LOAD_POLICY
4449 dnl It should only be available when building for win10, but some SDKs define it unconditionnaly
4451 if test "${SYS}" = "mingw32"; then
4452 AC_CHECK_TYPES([PROCESS_MITIGATION_IMAGE_LOAD_POLICY],,,[#include <windows.h>])
4455 EXTEND_HELP_STRING([Components:])
4460 AC_ARG_ENABLE([vlc],
4461 AS_HELP_STRING([--enable-vlc], [build the VLC media player (default enabled)]))
4462 AM_CONDITIONAL([BUILD_VLC], [test "${enable_vlc}" != "no"])
4465 dnl Fuzzer (at the end in order to don't mess dependencies FLAGS)
4467 AS_VAR_IF(with_libfuzzer, no, [], [
4468 LIBS="-lstdc++ ${LIBM} -L${with_libfuzzer} -lFuzzer"
4469 AX_CHECK_COMPILE_FLAG(-fsanitize-coverage=trace-pc-guard, [
4470 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc-guard])
4471 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc-guard], [CXXFLAGS])
4472 AX_APPEND_COMPILE_FLAGS([-fsanitize-coverage=trace-cmp])
4473 AX_APPEND_COMPILE_FLAGS([-fsanitize-coverage=trace-cmp], [CXXFLAGS])
4475 AX_CHECK_COMPILE_FLAG(-fsanitize-coverage=trace-pc, [
4476 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc])
4477 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc], [CXXFLAGS])
4479 AC_MSG_ERROR([Sanitizer coverage not supported by your compiler])
4485 dnl Stuff used by the program
4487 VERSION_MESSAGE="${VERSION} ${CODENAME}"
4488 COPYRIGHT_MESSAGE="Copyright © ${COPYRIGHT_YEARS} the VideoLAN team"
4489 AC_DEFINE_UNQUOTED([VERSION_MESSAGE], "${VERSION_MESSAGE}", [Simple version string])
4490 AC_DEFINE_UNQUOTED([COPYRIGHT_MESSAGE], "${COPYRIGHT_MESSAGE}", [Copyright string])
4491 AC_DEFINE_UNQUOTED([COPYRIGHT_YEARS], "${COPYRIGHT_YEARS}", [The copyright years])
4492 AC_DEFINE_UNQUOTED([CONFIGURE_LINE], "${CONFIGURE_LINE}", [The ./configure command line])
4493 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_MAJOR],${VERSION_MAJOR}, [version major number])
4494 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_MINOR],${VERSION_MINOR}, [version minor number])
4495 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_REVISION],${VERSION_REVISION}, [version revision number])
4496 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_EXTRA],${VERSION_EXTRA}, [version extra number])
4497 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_DEV],"${VERSION_DEV}", [version development string])
4498 AC_SUBST([COPYRIGHT_MESSAGE])
4499 AC_SUBST([VERSION_MESSAGE])
4500 AC_SUBST([VERSION_MAJOR])
4501 AC_SUBST([VERSION_MINOR])
4502 AC_SUBST([VERSION_REVISION])
4503 AC_SUBST([VERSION_EXTRA])
4504 AC_SUBST([COPYRIGHT_YEARS])
4505 AC_DEFINE_UNQUOTED([VLC_COMPILE_BY], "`whoami|sed -e 's/\\\/\\\\\\\/g'`", [user who ran configure])
4506 AC_DEFINE_UNQUOTED([VLC_COMPILE_HOST], "`hostname -f 2>/dev/null || hostname`", [host which ran configure])
4507 AC_DEFINE_UNQUOTED([VLC_COMPILER], "`$CC -v 2>&1 | tail -n 1 | sed -e 's/ *$//'`", [compiler])
4509 dnl Handle substvars that use $(top_srcdir)
4511 CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS}"
4514 dnl Configuration is finished
4524 AC_SUBST([WINE_SDK_PATH])
4526 AC_SUBST([AM_CPPFLAGS])
4527 AC_SUBST([MACOSX_DEPLOYMENT_TARGET])
4528 AC_SUBST([FILE_LIBVLCCORE_DLL])
4529 AC_SUBST([FILE_LIBVLC_DLL])
4543 modules/hw/mmal/Makefile
4544 share/vlc.appdata.xml.in
4547 AM_COND_IF([HAVE_WIN32], [
4549 extras/package/win32/NSIS/spad.nsi
4550 extras/package/win32/NSIS/vlc.win32.nsi
4551 extras/package/win32/msi/config.wxi
4555 AM_COND_IF([HAVE_DARWIN], [
4557 modules/gui/macosx/UI/InfoPlist.strings:modules/gui/macosx/Resources/InfoPlist.strings.in
4558 share/macosx/Info.plist:share/Info.plist.in
4562 dnl Generate makefiles
4565 dnl Do we have to use make or gmake ?
4566 if make --version 2>&1|grep -q GNU
4568 # GNU make, all seems good
4571 # Known GNU make alias (on BSD)
4574 dnl Shortcut to nice compile message
4575 if test -n $SHELL; then
4576 SHELL=${CONFIG_SHELL-/bin/sh}
4579 compile_top_srcdir=`sed -ne "s/^top_srcdir *= *//p" < Makefile`
4583 export PATH=\"$PATH\" LANG=C
4584 ($MAKE V=1 \$@ 2>&1 || touch .error\$\$)| $compile_top_srcdir/extras/buildsystem/make.pl
4585 test -f .error\$\$ && ERROR=1
4587 exit \$ERROR" >compile
4591 libvlc configuration
4592 --------------------
4593 version : ${VERSION}
4595 architecture : ${ARCH}
4596 optimizations : ${enable_optimizations}"
4597 if test "${enable_vlc}" != "no"; then
4598 echo "vlc aliases :${ALIASES}"
4600 echo "build vlc executable : no"
4603 To build vlc and its plugins, type \`$MAKE', or \`./compile' if you like nice colors."