1 dnl Autoconf settings for vlc
3 AC_COPYRIGHT([Copyright 1999-2020 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-2020"
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 Check the compiler supports atomics in C
74 AC_MSG_CHECKING([C atomics])
77 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <stdatomic.h>],[
78 atomic_uintmax_t test;
79 atomic_init(&test, 0);
80 atomic_fetch_add_explicit(&test, 2u, memory_order_relaxed);
81 ])], [AC_MSG_RESULT([built-in])], [
82 LDFLAGS="$LDFLAGS -latomic"
83 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <stdatomic.h>],[
84 atomic_uintmax_t test;
85 atomic_init(&test, 0);
86 atomic_fetch_add_explicit(&test, 2u, memory_order_relaxed);
88 AC_MSG_RESULT([using -latomic])
91 AC_MSG_ERROR([VLC requires atomics support])
95 AC_SUBST([ATOMIC_LIB])
97 dnl Extend the --help string at the current spot.
98 AC_DEFUN([EXTEND_HELP_STRING], [m4_divert_once([HELP_ENABLE], [$1])])
100 dnl Allow binary package maintainer to pass a custom string to avoid
102 AC_ARG_WITH([binary-version],
103 AS_HELP_STRING([--with-binary-version=STRING],
104 [To avoid plugins cache problem between binary version]),[],[])
105 AS_IF([test -n "${with_binary_version}"],[
106 AC_DEFINE_UNQUOTED([DISTRO_VERSION],["${with_binary_version}"],
107 [Binary specific version])
110 dnl Prevent clang from accepting unknown flags with a mere warning
111 AX_CHECK_COMPILE_FLAG([-Werror=invalid-command-line-argument], [
112 AX_APPEND_FLAG([-Werror=invalid-command-line-argument], [CFLAGS])
113 AX_APPEND_FLAG([-Werror=invalid-command-line-argument], [CXXFLAGS])
114 AX_APPEND_FLAG([-Werror=invalid-command-line-argument], [OBJCFLAGS])
116 AX_CHECK_COMPILE_FLAG([-Werror=unknown-warning-option], [
117 AX_APPEND_FLAG([-Werror=unknown-warning-option], [CFLAGS])
118 AX_APPEND_FLAG([-Werror=unknown-warning-option], [CXXFLAGS])
119 AX_APPEND_FLAG([-Werror=unknown-warning-option], [OBJCFLAGS])
123 dnl Check the operating system
130 dnl Set x86 asm flags and defines
132 case "${host_cpu}" in
134 X86ASMFLAGS="-f elf32"
135 X86ASMDEFS="-DARCH_X86_32=1 -DARCH_X86_64=0"
138 X86ASMFLAGS="-f elf64"
139 X86ASMDEFS="-DARCH_X86_32=0 -DARCH_X86_64=1"
149 CFLAGS="${CFLAGS} -pthread"
153 CFLAGS="${CFLAGS} -pthread"
157 CFLAGS="${CFLAGS} -pthread"
158 CPPFLAGS="${CPPFLAGS} -I/usr/local/include"
159 LDFLAGS="${LDFLAGS} -L/usr/local/lib"
164 CPPFLAGS="${CPPFLAGS} -I/usr/local/include -I/usr/X11R6/include"
165 LDFLAGS="${LDFLAGS} -L/usr/local/lib -L/usr/X11R6/lib/"
176 dnl Work around an Xcode 11 bug, fixed in Xcode 11.3.1
177 AX_APPEND_FLAG([-fno-stack-check], [CFLAGS])
178 AX_APPEND_FLAG([-fno-stack-check], [CXXFLAGS])
179 AX_APPEND_FLAG([-fno-stack-check], [OBJCFLAGS])
181 case "${host_cpu}" in
183 X86ASMFLAGS="-f macho32"
184 AX_APPEND_FLAG([-DPREFIX], [X86ASMDEFS])
187 X86ASMFLAGS="-f macho64"
188 AX_APPEND_FLAG([-DPREFIX], [X86ASMDEFS])
191 ac_cv_c_bigendian="no"
192 ac_cv_c_attribute_packed="no"
196 AX_APPEND_FLAG([-D_INTL_REDIRECT_MACROS], [CPPFLAGS])
197 AX_APPEND_FLAG([-stdlib=libc++], [CXXFLAGS])
198 AX_APPEND_FLAG([-Werror=partial-availability], [OBJCFLAGS])
199 AX_APPEND_FLAG([-Wl,-headerpad_max_install_names], [LDFLAGS])
201 VLC_ADD_LIBS([libvlc vlc],[-Wl,-undefined,dynamic_lookup,-framework,AppKit])
202 VLC_ADD_LIBS([libvlccore],[-Wl,-framework,CoreFoundation,-framework,CoreServices])
205 [#import <TargetConditionals.h>
213 [#import <TargetConditionals.h>
224 dnl Handle Mac OS X SDK flags
226 AC_ARG_WITH(macosx-sdk,
227 AS_HELP_STRING([--with-macosx-sdk=DIR],
228 [compile using the SDK in DIR]))
229 if test "${with_macosx_sdk}" != "" ; then
230 test ! -d "${with_macosx_sdk}" && AC_MSG_ERROR([SDK "${with_macosx_sdk}" not found])
231 CPP="${CPP} -isysroot ${with_macosx_sdk}"
232 CC="${CC} -isysroot ${with_macosx_sdk}"
233 CXX="${CXX} -isysroot ${with_macosx_sdk}"
234 OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
235 LD="${LD} -syslibroot ${with_macosx_sdk}"
237 AC_ARG_WITH(macosx-version-min,
238 AS_HELP_STRING([--with-macosx-version-min=VERSION],
239 [compile for Mac OS X VERSION and above]))
240 if test "${with_macosx_version_min}" != "" ; then
241 CPP="${CPP} -mmacosx-version-min=${with_macosx_version_min}"
242 CC="${CC} -mmacosx-version-min=${with_macosx_version_min}"
243 CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
244 OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
245 LD="${LD} -mmacosx_version_min=${with_macosx_version_min}"
248 *mingw32* | *cygwin* | *wince* | *mingwce*)
249 dnl Force libtool to not link to (shared) libgcc_s when detecting C++ dependencies
250 dnl When doing this test with -static-libgcc it will link on (static) libgcc_eh
251 CXXFLAGS="${CXXFLAGS} -static-libgcc"
252 AC_CHECK_TOOL(WINDRES, windres, :)
253 AC_CHECK_TOOL(OBJCOPY, objcopy, :)
254 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
255 [[#ifdef _WIN32_WINNT
256 # error _WIN32_WINNT already defined
258 # include <windows.h>
259 # if defined(_WIN32_WINNT) && _WIN32_WINNT >= 0x0601
260 # error _WIN32_WINNT toolchain default high enough
265 AC_DEFINE([_WIN32_WINNT], [0x0601], [Define to '0x0601' for Windows 7 APIs.])
267 AC_DEFINE([_WIN32_IE], [0x0600], [Define to '0x0600' for IE 6.0 (and shell) APIs.])
268 AC_DEFINE([UNICODE], [1], [Define to 1 for Unicode (Wide Chars) APIs.])
269 AC_DEFINE([_ISOC99_SOURCE], [1], [Extensions to ISO C89 from ISO C99.])
270 AC_DEFINE([_ISOC11_SOURCE], [1], [Extensions to ISO C99 from ISO C11.])
271 AC_DEFINE([_POSIX_SOURCE], [1], [IEEE Std 1003.1.])
272 AC_DEFINE([_POSIX_C_SOURCE], [200809L], [IEEE Std 1003.1.])
273 AC_DEFINE([_XOPEN_SOURCE], [700], [POSIX and XPG 7th edition])
274 AC_DEFINE([_XOPEN_SOURCE_EXTENDED], [1], [XPG things and X/Open Unix extensions.])
275 AC_DEFINE([_BSD_SOURCE], [1], [ISO C, POSIX, and 4.3BSD things.])
276 AC_DEFINE([_SVID_SOURCE], [1], [ISO C, POSIX, and SVID things.])
283 dnl Check if we are using the mno-cygwin mode in which case we are
284 dnl actually dealing with a mingw32 compiler.
289 SYS=mingw32, AC_MSG_ERROR([VLC requires -mno-cygwin]))
293 if test "${SYS}" = "mingw32"; then
295 LDFLAGS="${LDFLAGS} -Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase"
297 AC_CHECK_PROGS(U2D, [unix2dos todos], unix2dos)
298 ac_default_prefix="`pwd`/_win32"
299 DESTDIR="`pwd`/_win32/"
302 dnl NSIS/MSI Installer prefix and WIN64
304 case "${host_cpu}" in
308 PROGRAMFILES="PROGRAMFILES64"
309 LDFLAGS="${LDFLAGS} -Wl,--high-entropy-va -Wl,--image-base,0x140000000"
314 PROGRAMFILES="PROGRAMFILES64"
315 LDFLAGS="${LDFLAGS} -Wl,--high-entropy-va -Wl,--image-base,0x140000000"
316 X86ASMFLAGS="-f win64"
320 PROGRAMFILES="PROGRAMFILES"
324 PROGRAMFILES="PROGRAMFILES"
325 X86ASMFLAGS="-f win32"
326 X86ASMDEFS="${X86ASMDEFS} -DPREFIX"
329 AC_SUBST([WINDOWS_ARCH])
330 AC_SUBST([PROGRAMFILES])
345 LDFLAGS="${LDFLAGS} -Zomf -Zbin-files -Zargs-wild -Zhigh-mem"
346 AC_LIBOBJ([freeaddrinfo])
347 AC_LIBOBJ([gai_strerror])
348 AC_CHECK_FUNCS([if_nametoindex])
349 X86ASMFLAGS="-f aout"
350 X86ASMDEFS="-DARCH_X86_32=1 -DARCH_X86_64=0 -DPREFIX"
354 AC_DEFINE([_XOPEN_SOURCE], [700], [POSIX and XPG 7th edition])
365 AC_ARG_ENABLE([winstore_app],
366 AS_HELP_STRING([--enable-winstore-app],
367 [Build targetted for Windows Store apps (default disabled)]))
370 AS_IF([test "${SYS}" = "mingw32"],[
372 AS_IF([test "${enable_winstore_app}" = "yes"], [
375 AX_APPEND_FLAG([-DWINSTORECOMPAT],[CFLAGS])
376 AX_APPEND_FLAG([-DWINSTORECOMPAT],[CPPFLAGS])
377 AX_APPEND_FLAG([-DWINSTORECOMPAT],[CXXFLAGS])
378 AX_APPEND_FLAG([-lwinstorecompat], [LDFLAGS])
379 VLC_ADD_LIBS([libvlccore], [-lruntimeobject])
380 AC_LIBOBJ([gai_strerror])
384 AC_DEFINE_UNQUOTED(VLC_WINSTORE_APP, ${vlc_winstore_app}, [Define to 1 if you want to build for Windows Store apps])
388 AS_HELP_STRING([--enable-pdb],
389 [Build PDB files for windows targets (default off)]))
390 AS_IF([test "${SYS}" = "mingw32"],[
391 AS_IF([test "${enable_pdb}" = "yes"], [
393 AX_APPEND_FLAG([-g -gcodeview],[CFLAGS])
394 AX_APPEND_FLAG([-g -gcodeview],[CXXFLAGS])
395 LDFLAGS="${LDFLAGS} -Wl,-pdb="
399 AM_CONDITIONAL([HAVE_FREEBSD], [test "${SYS}" = "freebsd"])
400 AM_CONDITIONAL([HAVE_LINUX], [test "${SYS}" = "linux"])
401 AM_CONDITIONAL([HAVE_OS2], [test "${SYS}" = "os2"])
403 AM_CONDITIONAL([HAVE_DARWIN], [test "${SYS}" = "darwin"])
404 AM_CONDITIONAL([HAVE_IOS], [test "${HAVE_IOS}" = "1"])
405 AM_CONDITIONAL([HAVE_OSX], [test "${HAVE_OSX}" = "1"])
406 AM_CONDITIONAL([HAVE_TVOS], [test "${HAVE_TVOS}" = "1"])
408 AM_CONDITIONAL([HAVE_NACL], [test "${SYS}" = "nacl"])
409 AM_CONDITIONAL([HAVE_LIBANL], [test "${HAVE_LIBANL}" = "1"])
411 AM_CONDITIONAL([HAVE_WIN32], [test "${SYS}" = "mingw32"])
412 AM_CONDITIONAL([HAVE_WIN64], [test "${HAVE_WIN64}" = "1"]) dnl Only used for the packaging
413 AM_CONDITIONAL([HAVE_WINSTORE], [test "$vlc_winstore_app" = "1"])
414 AM_CONDITIONAL([HAVE_WIN32_DESKTOP], [test "${SYS}" = "mingw32" -a "$vlc_winstore_app" = "0"])
415 AM_CONDITIONAL([ENABLE_PDB], [test "$vlc_build_pdb" = "1"])
417 dnl Use nasm/yasm only on x86
418 AC_CHECK_PROGS(X86ASM, [nasm yasm])
419 AM_CONDITIONAL([HAVE_X86ASM], [test -n "${X86ASM}" && test -n "${X86ASMFLAGS}"])
420 AM_COND_IF([HAVE_X86ASM], [
421 AC_DEFINE([HAVE_X86ASM], [1], [Use external asm on x86.])
424 dnl Because DOLT is not able to handle --with-pic
425 dnl correctly, manually add -DPIC to the options for
426 dnl nasm / yasm here.
427 AS_IF([test x$with_pic = xyes], [X86ASMDEFS="${X86ASMDEFS} -DPIC"])
429 AC_SUBST([X86ASMFLAGS])
430 AC_SUBST([X86ASMDEFS])
433 dnl Sadly autoconf does not think about testing foo.exe when ask to test
434 dnl for program foo on win32
435 case "${build_os}" in
437 ac_executable_extensions=".exe"
446 AC_SUBST([BUILDEXEEXT])
448 dnl Android is linux, but a bit different
449 AS_IF([test "$SYS" = linux],[
450 AC_MSG_CHECKING([for an Android system])
451 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
452 [[#ifndef __ANDROID__
463 AM_CONDITIONAL([HAVE_ANDROID], [test "${HAVE_ANDROID}" = "1"])
466 dnl Check for the contrib directory
469 AS_HELP_STRING([--with-contrib[=DIR]],
470 [search for 3rd party libraries in DIR/include and DIR/lib])
472 AC_MSG_CHECKING([for 3rd party libraries path])
473 AS_IF([test -z "${with_contrib}" || test "${with_contrib}" = "yes"], [
474 CONTRIB_DIR="${srcdir}/contrib/${host}"
475 AS_IF([test ! -d "${CONTRIB_DIR}"], [
476 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
477 CONTRIB_DIR="${srcdir}/contrib/`$CC -dumpmachine`"
478 AS_IF([test ! -d "${CONTRIB_DIR}"], [
479 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
481 AC_MSG_RESULT([not found])
485 AS_IF([test "${with_contrib}" != "no"], [
486 CONTRIB_DIR="${with_contrib}"
489 AC_MSG_RESULT([disabled])
492 AS_IF([test -n "${CONTRIB_DIR}"], [
493 AS_IF([test -d "${CONTRIB_DIR}/lib"],[
494 CONTRIB_DIR=`cd "${CONTRIB_DIR}" && pwd`
496 echo "${CONTRIB_DIR}/lib not found" >&AS_MESSAGE_LOG_FD
498 AC_MSG_RESULT([not usable])
502 AS_IF([test -n "${CONTRIB_DIR}"], [
503 AC_MSG_RESULT([${CONTRIB_DIR}])
504 CPPFLAGS="${CPPFLAGS} -I${CONTRIB_DIR}/include"
505 CFLAGS="${CFLAGS} -I${CONTRIB_DIR}/include"
506 CXXFLAGS="${CXXFLAGS} -I${CONTRIB_DIR}/include"
507 OBJCFLAGS="${OBJCFLAGS} -I${CONTRIB_DIR}/include -F${CONTRIB_DIR} -F${CONTRIB_DIR}/Frameworks"
508 PKG_CONFIG_PATH="${CONTRIB_DIR}/lib/pkgconfig:${CONTRIB_DIR}/share/pkgconfig:${PKG_CONFIG_PATH}"
509 case "${build_os}" in
511 export PKG_CONFIG_PATH=`cygpath -mp ${PKG_CONFIG_PATH}`
514 export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}"
517 LDFLAGS="${LDFLAGS} -L${CONTRIB_DIR}/lib"
519 AS_IF([test -z "$LUAC"], [
520 dnl Old contribs mixed cross-tools and cross-compiled executables
521 AS_IF([test -x "${CONTRIB_DIR}/bin/luac${BUILDEXEEXT}"], [
522 LUAC="${CONTRIB_DIR}/bin/luac${BUILDEXEEXT}"
525 dnl Newer contribs follow usual name space rules
526 AS_IF([test -x "${CONTRIB_DIR}/../bin/${host_alias}-luac${BUILDEXEEXT}"], [
527 LUAC="${CONTRIB_DIR}/../bin/${host_alias}-luac${BUILDEXEEXT}"
531 AS_IF([test "${SYS}" = "darwin"], [
532 export LD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$LD_LIBRARY_PATH"
533 export DYLD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$DYLD_LIBRARY_PATH"
536 AS_IF([test -n "${with_contrib}" && test "${with_contrib}" != "no"], [
537 AC_MSG_ERROR([Third party libraries not found!])
540 AC_SUBST([CONTRIB_DIR])
542 dnl Add extras/tools to the PATH
543 TOOLS_DIR="${srcdir}/extras/tools/build/bin"
544 AS_IF([test -d "${TOOLS_DIR}"], [
545 TOOLS_DIR=`cd "${TOOLS_DIR}" && pwd`
546 export PATH="${TOOLS_DIR}":$PATH
551 dnl It's very bad, but our former custom system was worst
555 dnl override platform specific check for dependent libraries
556 dnl otherwise libtool linking of shared libraries will
557 dnl fail on anything other than pass_all.
558 AC_CACHE_VAL(lt_cv_deplibs_check_method,
559 [lt_cv_deplibs_check_method=pass_all])
561 LT_INIT([dlopen win32-dll shared disable-static])
563 LT_LANG([Windows Resource])
567 lt_cv_deplibs_check_method=pass_all
569 AS_IF([test "${enable_shared}" = "no" -a "${enable_vlc}" != "no"], [
570 AC_MSG_ERROR([VLC is based on plugins. Shared libraries cannot be disabled.])
576 AM_GNU_GETTEXT_VERSION([0.19.8])
577 AM_GNU_GETTEXT([external], [need-formatstring-macros])
586 AS_IF([test "${SYS}" = "mingw32"], [
588 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
589 #if !defined(__MINGW32__)
590 # error Not compiling with mingw
594 dnl Check for broken versions of mingw-runtime compatability library
595 AC_MSG_CHECKING(for broken mingw-runtime)
596 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
598 #if defined(__MINGW64_VERSION_MAJOR)
599 # if __MINGW64_VERSION_MAJOR < 5
600 # error Update your mingw-w64! This one is too old.
603 # error You cannot compile with Mingw. Use Mingw-w64!
608 AC_MSG_RESULT([present])
609 AC_MSG_ERROR([LibVLC requires Mingw-w64 version 5.0 or higher!])
612 dnl force use of mingw provided c99 *printf over msvcrt
613 CPPFLAGS="${CPPFLAGS} -D__USE_MINGW_ANSI_STDIO=1"
615 dnl Check for the need to include the mingwex lib for mingw32
617 AC_CHECK_LIB([mingwex], [opendir],
618 AC_CHECK_LIB([mingw32], [opendir],,
619 [VLC_ADD_LIBS([libvlccore],[-lmingwex])])
623 AC_MSG_RESULT([Not compiling with mingw])
626 dnl Check for fnative-struct or mms-bitfields support for mingw32
627 AX_CHECK_COMPILE_FLAG([-mms-bitfields], [
628 AX_APPEND_FLAG([-mms-bitfields], [CFLAGS])
629 AX_APPEND_FLAG([-mms-bitfields], [CXXFLAGS])
630 # Check for the warning flag without "-Wno-", GCC accepts
631 # -Wno-<anything> for unsupported warnings, which can trigger
632 # other warnings instead.
633 AX_CHECK_COMPILE_FLAG([-Wincompatible-ms-struct], [
634 AX_APPEND_FLAG([-Wno-incompatible-ms-struct], [CFLAGS])
635 AX_APPEND_FLAG([-Wno-incompatible-ms-struct], [CXXFLAGS])
638 AX_CHECK_COMPILE_FLAG([-fnative-struct], [
639 AX_APPEND_FLAG([-fnative-struct], [CFLAGS])
640 AX_APPEND_FLAG([-fnative-struct], [CXXFLAGS])
647 dnl Buggy glibc prevention. Purposedly not cached.
648 dnl See sourceware.org bugs 5058 and 5443.
649 dnl Ubuntu alone has 20 bug numbers for this...
651 AC_MSG_CHECKING(for buggy GNU/libc versions)
652 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
654 #if defined (__GLIBC__) && (__GLIBC__ == 2) \
655 && (__GLIBC_MINOR__ >= 5) && (__GLIBC_MINOR__ <= 7)
656 # error GNU/libc with dcgettext killer bug!
659 AC_MSG_RESULT([not present])
661 AC_MSG_RESULT([found])
662 AS_IF([test "x${enable_nls}" != "xno"], [
663 AC_MSG_ERROR([Buggy GNU/libc (version 2.5 - 2.7) present. VLC would crash; there is no viable
664 work-around for this. Check with your distribution vendor on how to update the
665 glibc run-time. Alternatively, build with --disable-nls.])
669 dnl Plugin compilation stuff
673 dnl Check for system libs needed
676 dnl Check for usual libc functions
677 AC_CHECK_FUNCS([accept4 fcntl flock fstatat fstatvfs fork getmntent_r getenv getpwuid_r isatty memalign mkostemp mmap open_memstream newlocale pipe2 pread posix_fadvise posix_madvise setlocale stricmp strnicmp strptime uselocale])
678 AC_REPLACE_FUNCS([aligned_alloc atof atoll dirfd fdopendir flockfile fsync getdelim getpid lfind lldiv memrchr nrand48 poll posix_memalign recvmsg rewind sendmsg setenv strcasecmp strcasestr strdup strlcpy strndup strnlen strnstr strsep strtof strtok_r strtoll swab tdestroy tfind timegm timespec_get strverscmp pathconf])
679 AC_REPLACE_FUNCS([gettimeofday])
680 AC_CHECK_FUNC(fdatasync,,
681 [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
684 VLC_REPLACE_DECL([realpath], [#include <stdlib.h>])
686 dnl mingw64 implements those as static inline, not functions with C linkage
687 VLC_REPLACE_DECL([asprintf], [#include <stdio.h>])
688 VLC_REPLACE_DECL([vasprintf], [#include <stdio.h>])
689 VLC_REPLACE_DECL([gmtime_r], [#include <time.h>])
690 VLC_REPLACE_DECL([localtime_r], [#include <time.h>])
692 dnl C11 static_assert()
693 AC_MSG_CHECKING([for static_assert in assert.h])
694 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <assert.h>], [
695 static_assert(1, "The impossible happened.");
698 AC_DEFINE([HAVE_STATIC_ASSERT], [1], [Define to 1 if <assert.h> defines static_assert.])
703 # Windows CE does not have strcoll()
706 dnl Check for non-standard system calls
709 AC_CHECK_FUNCS([eventfd vmsplice sched_getaffinity recvmmsg memfd_create])
712 AC_CHECK_FUNCS([_lock_file])
716 AH_BOTTOM([#include <vlc_fixups.h>])
718 dnl Check for struct pollfd
719 AC_CHECK_TYPES([struct pollfd],,,
720 [#include <sys/types.h>
723 #elif defined (_WIN32)
724 # include <winsock2.h>
728 dnl Check for struct timespec
729 AC_CHECK_TYPES([struct timespec],,,
732 dnl Check for max_align_t
733 AC_CHECK_TYPES([max_align_t],,,
734 [#include <stddef.h>])
736 dnl Checks for socket stuff
739 AC_SEARCH_LIBS(connect, [socket], [
740 AS_IF([test "$ac_cv_search_connect" != "none required"], [
741 SOCKET_LIBS="$ac_cv_search_connect"
744 AS_IF([test "${SYS}" = "mingw32"], [
745 SOCKET_LIBS="-lws2_32 -liphlpapi"
749 AC_SEARCH_LIBS([inet_pton], [nsl], [
750 AS_IF([test "$ac_cv_search_inet_pton" != "none required"], [
751 SOCKET_LIBS="$ac_cv_search_inet_pton $SOCKET_LIBS"
753 ],, [${SOCKET_LIBS}])
755 LIBS="${LIBS} ${SOCKET_LIBS}"
757 AC_LANG_PROGRAM([#ifdef _WIN32
758 #include <ws2tcpip.h>
760 # if _WIN32_WINNT < 0x600
764 #include <sys/socket.h>
765 #include <arpa/inet.h>
767 char dst[[sizeof(struct in_addr)]];
768 inet_pton(AF_INET, "127.0.0.1", dst);
769 ])],[AC_DEFINE([HAVE_INET_PTON],[1],[Define to 1 if you have inet_pton function])],[AC_LIBOBJ([inet_pton])])
770 AC_CHECK_TYPES([struct if_nameindex],,,[#include <net/if.h>])
771 AC_CHECK_FUNCS([if_nameindex])
773 AC_SUBST([SOCKET_LIBS])
775 dnl Check for socklen_t
776 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
777 AC_CACHE_CHECK([for socklen_t in sys/socket.h], dnl ` (fix VIM syntax highlight
778 ac_cv_type_socklen_t,
779 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
780 [#include <sys/types.h>
782 # include <winsock2.h>
783 # include <ws2tcpip.h>
785 # include <sys/socket.h>
786 #endif]], [[socklen_t len; len = 0;]])],
787 ac_cv_type_socklen_t=yes,
788 ac_cv_type_socklen_t=no)])
789 AS_IF([test "$ac_cv_type_socklen_t" = no], [
792 #include <sys/types.h>
794 # include <winsock2.h>
795 # include <ws2tcpip.h>
797 # include <sys/socket.h>
800 _Generic(getpeername, int (*)(int, struct sockaddr *, int *): 0);
802 ], AC_DEFINE(socklen_t, int), AC_DEFINE(socklen_t, unsigned int))
805 dnl Check for struct sockaddr_storage
806 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
807 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
808 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
810 [#include <sys/types.h>
811 #if defined( _WIN32 )
812 # include <winsock2.h>
814 # include <sys/socket.h>
815 #endif], [struct sockaddr_storage addr;],
816 ac_cv_struct_sockaddr_storage=yes,
817 ac_cv_struct_sockaddr_storage=no)])
818 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
819 AC_DEFINE(sockaddr_storage, sockaddr)
820 AC_DEFINE(ss_family, sa_family)
823 dnl FreeBSD has a gnugetopt library for this:
825 AC_CHECK_FUNC(getopt_long,, [
826 AC_CHECK_LIB([gnugetopt],[getopt_long], [
827 GNUGETOPT_LIBS="-lgnugetopt"
830 AC_SUBST([GNUGETOPT_LIBS])
832 AC_CHECK_LIB([m], [cos], [
839 AC_CHECK_LIB([m], [lrintf], [
840 AC_DEFINE(HAVE_LRINTF, 1, [Define to 1 if you have the lrintf function])
841 VLC_ADD_LIBS([skins2],[-lm])
843 AC_CHECK_LIB([m], [nanf],
844 AC_DEFINE(HAVE_NANF, 1, [Define to 1 if you have the NANF function])
846 AC_CHECK_LIB([m], [sincos], [
847 AC_DEFINE(HAVE_SINCOS, 1, [Define to 1 if you have the sincos function.])
852 AC_MSG_CHECKING([broken qsort_r prototype])
853 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <stdlib.h>
855 _Static_assert(_Generic((qsort_r),
856 void (*)(void *, size_t, size_t, void *,
857 int (*)(void *, const void *, const void *)) : 1, default: 0),
858 "Bad prototype not matched");
860 AC_MSG_RESULT([broken])
861 AC_DEFINE([HAVE_BROKEN_QSORT_R], 1, [Defined to 1 if the qsort_r() prototype contradicts the upcoming POSIX standard.])
866 AC_MSG_CHECKING([_Thread_local support])
867 AC_COMPILE_IFELSE([AC_LANG_SOURCE([_Thread_local int foo = 0;
870 AC_DEFINE(HAVE_THREAD_LOCAL, 1, [Defined to 1 if C11 _Thread_local storage qualifier is supported])
871 ],[ AC_MSG_RESULT([no])])
873 dnl __STDC_NO_THREADS__ can't be trusted on some platforms.
874 dnl check for its availability explicitely
875 AC_CHECK_HEADERS([threads.h])
877 AC_CHECK_LIB([anl],[getaddrinfo_a],[
878 AC_DEFINE(HAVE_LIBANL, 1, [Define to 1 if you have the anl library])
881 dnl Check for dynamic plugins
883 have_dynamic_objects="no"
885 AC_SEARCH_LIBS(dlsym, [dl svld], [
886 AS_IF([test "$ac_cv_search_dlsym" != "none required"], [
887 LIBDL="$ac_cv_search_dlsym"
889 have_dynamic_objects="yes"
894 AS_IF([test "${SYS}" = "mingw32"], [
896 have_dynamic_objects="yes" #assume we can use shared objects
899 AC_ARG_WITH([libfuzzer],
900 AS_HELP_STRING([--with-libfuzzer=DIR],
901 [use libFuzzer library from DIR and triggers sanitize coverage (default disabled)]),
904 AS_VAR_IF(with_libfuzzer, no, [], [
909 AM_CONDITIONAL([HAVE_LIBFUZZER], [test "${with_libfuzzer}" != "no"])
911 AS_IF([test "${enable_shared}" = "no"], [
912 have_dynamic_objects=no
914 AM_CONDITIONAL([HAVE_DYNAMIC_PLUGINS], [test "${have_dynamic_objects}" != "no"])
918 AS_IF([test "${SYS}" != "mingw32"], [
919 AC_SEARCH_LIBS([clock_nanosleep], [rt pthread], [
920 AS_IF([test "$ac_cv_search_clock_nanosleep" != "none required"], [
921 LIBRT="$ac_cv_search_clock_nanosleep"
924 AC_SEARCH_LIBS([nanosleep], [rt pthread posix4], [
925 AS_IF([test "$ac_cv_search_nanosleep" != "none required"], [
926 LIBRT="$ac_cv_search_nanosleep"
933 dnl Check for clock_* functions, needs to be done here,
934 dnl after the -lrt check
935 AC_REPLACE_FUNCS([clock_gettime clock_nanosleep clock_getres])
938 dnl Check for headers
942 AC_CHECK_HEADERS([arpa/inet.h pthread.h search.h sys/shm.h sys/socket.h sys/uio.h])
943 AC_CHECK_HEADERS([net/if.h], [], [],
945 #include <sys/types.h>
946 #include <sys/socket.h>
948 AC_CHECK_HEADER([syslog.h], [have_syslog="yes"], [have_syslog="no"])
949 AM_CONDITIONAL([HAVE_SYSLOG], [test "$have_syslog" = "yes"])
952 AC_CHECK_HEADERS([netinet/tcp.h netinet/udplite.h sys/param.h sys/mount.h])
955 AC_CHECK_HEADERS([features.h getopt.h linux/dccp.h linux/magic.h sys/eventfd.h])
958 AC_CHECK_HEADERS([xlocale.h])
960 dnl Check if C++ headers define locale_t
962 AC_CACHE_CHECK([if C++ headers define locale_t],
963 [ac_cv_cxx_locale_t],
964 [ac_cv_cxx_locale_t=no
965 AC_TRY_COMPILE([#include <locale>], [locale_t loc;],
966 [ac_cv_cxx_locale_t=yes])])
967 if test "${ac_cv_cxx_locale_t}" != "no"; then
968 AC_DEFINE(HAVE_CXX_LOCALE_T, 1, Define to 1 if C++ headers define locale_t)
972 dnl LP64 and LLP64 architectures had better define ssize_t by themselves...
973 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.]) dnl ` (fix VIM syntax highlight
974 AC_CHECK_TYPE(ssize_t,, [
975 AC_DEFINE(ssize_t, int)
978 dnl It seems that autoconf detects pkg-config only during the first
979 dnl PKG_CHECK_MODULES from configure.ac - which makes sense. But in our case,
980 dnl it is nested within a conditional block, so it was not working right.
981 PKG_PROG_PKG_CONFIG()
983 dnl On some OS we need static linking
984 AS_IF([test -n "${PKG_CONFIG}" ],[
985 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "darwin" -o "${SYS}" = "os2" ],[
986 PKG_CONFIG="${PKG_CONFIG} --static"
992 dnl Check for zlib.h and -lz if available
994 AC_CHECK_HEADERS([zlib.h], [ have_zlib=yes ], [ have_zlib=no ])
995 AM_CONDITIONAL([HAVE_ZLIB], [ test "${have_zlib}" = "yes" ])
996 if test "${have_zlib}" = "yes"
998 VLC_ADD_LIBS([sap],[-lz])
1003 dnl Domain name i18n support via GNU libidn
1005 PKG_CHECK_MODULES([IDN], [libidn], [
1007 AC_DEFINE([HAVE_IDN], 1, [Define to 1 if you have GNU libidn.])
1014 AC_ARG_ENABLE([dbus],
1015 AS_HELP_STRING([--enable-dbus],
1016 [compile D-Bus message bus support (default enabled)]))
1018 AS_IF([test "${enable_dbus}" != "no"], [
1019 PKG_CHECK_MODULES(DBUS, [dbus-1 >= 1.6.0], [
1022 AS_IF([test -n "${enable_dbus}"], [
1023 AC_MSG_ERROR([${DBUS_PKG_ERRORS}.])
1025 AC_MSG_WARN([${DBUS_PKG_ERRORS}.])
1029 AM_CONDITIONAL([HAVE_DBUS], [test "${have_dbus}" = "yes"])
1032 dnl Check for systemd
1033 PKG_CHECK_MODULES([SYSTEMD], [libsystemd], [
1036 AC_MSG_WARN([${SYSTEMD_PKG_ERRORS}.])
1038 AM_CONDITIONAL([HAVE_SYSTEMD], [test "${have_systemd}" = "yes"])
1041 EXTEND_HELP_STRING([Optimization options:])
1043 dnl Compiler warnings
1046 AX_APPEND_COMPILE_FLAGS([-Wall -Wextra -Wsign-compare -Wundef -Wpointer-arith -Wvolatile-register-var -Wformat -Wformat-security -Wduplicated-branches -Wduplicated-cond], [CFLAGS])
1047 AX_APPEND_COMPILE_FLAGS([-Wall -Wextra -Wsign-compare -Wundef -Wpointer-arith -Wvolatile-register-var -Wformat -Wformat-security -Wduplicated-branches -Wduplicated-cond], [CXXFLAGS])
1049 AX_APPEND_COMPILE_FLAGS([-Wbad-function-cast -Wwrite-strings -Wmissing-prototypes -Werror-implicit-function-declaration -Winit-self -Wlogical-op -Wshadow=local -Wmultistatement-macros], [CFLAGS])
1050 AX_APPEND_COMPILE_FLAGS([-pipe], [CFLAGS])
1055 AC_ARG_ENABLE([debug],
1056 AS_HELP_STRING([--disable-debug],
1057 [disable run-time assertions (default enabled)]),,
1058 [enable_debug="yes"])
1060 [Define to 1 if debug code should NOT be compiled])
1061 AS_IF([test "${enable_debug}" != "no"], [
1062 AC_CHECK_HEADERS([valgrind/valgrind.h])
1070 AC_ARG_ENABLE([gprof],
1071 AS_HELP_STRING([--enable-gprof],[profile with gprof (default disabled)]),,
1072 [enable_gprof="no"])
1073 AS_IF([test "${enable_gprof}" != "no"], [
1074 CFLAGS="${CFLAGS} -pg"
1075 CXXFLAGS="${CXXFLAGS} -pg"
1076 OBJCFLAGS="${OBJCFLAGS} -pg"
1077 LDFLAGS="${LDFLAGS} -pg"
1080 AC_ARG_ENABLE([cprof],
1081 AS_HELP_STRING([--enable-cprof],[profile with cprof (default disabled)]),,
1082 [enable_cprof="no"])
1083 AS_IF([test "${enable_gprof}" != "no"], [
1084 CFLAGS="${CFLAGS} -finstrument-functions"
1085 CXXFLAGS="${CXXFLAGS} -finstrument-functions"
1086 OBJCFLAGS="${OBJCFLAGS} -finstrument-functions"
1087 LDFLAGS="${LDFLAGS} -finstrument-functions"
1093 AC_ARG_ENABLE([coverage],
1094 AS_HELP_STRING([--enable-coverage],
1095 [build for test coverage (default disabled)]),,
1096 [enable_coverage="no"])
1097 AS_IF([test "${enable_coverage}" != "no"], [
1098 CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
1099 CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
1100 LDFLAGS="-lgcov ${LDFLAGS}"
1103 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "os2"], [
1105 CFLAGS="${CFLAGS} -fvisibility=hidden"
1106 CXXFLAGS="${CXXFLAGS} -fvisibility=hidden"
1107 OBJCFLAGS="${OBJCFLAGS} -fvisibility=hidden"
1108 AC_CACHE_CHECK([if $CC accepts -fvisibility=hidden],
1109 [ac_cv_c_visibility_hidden], [
1110 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1111 ac_cv_c_visibility_hidden=yes
1113 ac_cv_c_visibility_hidden=no
1116 AS_IF([test "${ac_cv_c_visibility_hidden}" = "no"], [VLC_RESTORE_FLAGS])
1122 AC_ARG_WITH([sanitizer],
1123 AS_HELP_STRING([--with-sanitizer=(address/memory/undefined/thread)],
1124 [build with sanitizer flags (default disabled)]),
1126 [with_sanitizer=no])
1128 AS_VAR_IF(with_sanitizer, no, [], [
1129 AX_CHECK_COMPILE_FLAG([-fsanitize=${with_sanitizer}], [
1130 AX_APPEND_FLAG([-fsanitize=${with_sanitizer}])
1131 AX_APPEND_FLAG([-fsanitize=${with_sanitizer}], [CXXFLAGS])
1132 AX_APPEND_FLAG([-fsanitize=${with_sanitizer}], [LDFLAGS])
1134 AC_MSG_ERROR(["-fsanitize=${with_sanitizer} not supported!"])
1136 AX_APPEND_FLAG([-g])
1137 AX_APPEND_FLAG([-g], [CXXFLAGS])
1139 AS_IF([test -z "${with_sanitizer##*address*}" ], [
1140 AX_APPEND_COMPILE_FLAGS([-fsanitize-address-use-after-scope -fno-omit-frame-pointer -fsanitize=pointer-compare -fsanitize=pointer-subtract])
1141 AX_APPEND_COMPILE_FLAGS([-fsanitize-address-use-after-scope -fno-omit-frame-pointer -fsanitize=pointer-compare -fsanitize=pointer-subtract], [CXXFLAGS])
1143 AS_IF([test -z "${with_sanitizer##*memory*}" ], [
1144 AX_APPEND_COMPILE_FLAGS([-fPIE -pie])
1145 AX_APPEND_COMPILE_FLAGS([-fPIE -pie], [CXXFLAGS])
1147 AS_IF([test -z "${with_sanitizer##*thread*}" ], [
1148 AX_APPEND_COMPILE_FLAGS([-fPIE -pie])
1149 AX_APPEND_COMPILE_FLAGS([-fPIE -pie], [CXXFLAGS])
1154 dnl Enable/disable optimizations
1156 AC_ARG_ENABLE([optimizations],
1157 AS_HELP_STRING([--disable-optimizations],
1158 [disable compiler optimizations (default enabled)]),,
1159 [enable_optimizations="yes"])
1161 dnl Check for various optimization flags
1162 AS_IF([test "${enable_optimizations}" != "no"], [
1164 dnl -O3 only in production builds
1165 AS_IF([test "${enable_debug}" = "no"], [
1167 CFLAGS="${CFLAGS} -O3"
1168 CXXFLAGS="${CXXFLAGS} -O3"
1169 OBJCFLAGS="${OBJCFLAGS} -O3"
1170 AC_CACHE_CHECK([if $CC accepts -O3], [ac_cv_c_o3], [
1171 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1177 AS_IF([test "${ac_cv_c_o3}" = "no"], [VLC_RESTORE_FLAGS])
1180 dnl Check for fast maths
1181 AX_APPEND_COMPILE_FLAGS([-fno-math-errno -funsafe-math-optimizations -fno-rounding-math -fno-signaling-nans -fcx-limited-range], [CFLAGS])
1182 AX_APPEND_COMPILE_FLAGS([-fno-math-errno -funsafe-math-optimizations -fno-rounding-math -fno-signaling-nans -fcx-limited-range], [CXXFLAGS])
1185 #if defined(_MSC_VER) && !defined(__clang__)
1186 # pragma fenv_access(off)
1187 # pragma fp_contract(on)
1188 #elif defined(__GNUC__)
1189 /* Not supported so far */
1191 # pragma STDC FENV_ACCESS OFF
1192 # pragma STDC FP_CONTRACT ON
1196 dnl Check for -funroll-loops
1198 CFLAGS="${CFLAGS} -funroll-loops"
1199 CXXFLAGS="${CXXFLAGS} -funroll-loops"
1200 OBJCFLAGS="${OBJCFLAGS} -funroll-loops"
1201 AC_CACHE_CHECK([if $CC accepts -funroll-loops], [ac_cv_c_unroll_loops], [
1202 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1203 ac_cv_c_unroll_loops=yes
1205 ac_cv_c_unroll_loops=no
1208 AS_IF([test "${ac_cv_c_unroll_loops}" = "no"], [VLC_RESTORE_FLAGS])
1210 AS_IF([test "$enable_debug" = "no"], [
1211 dnl Check for -fomit-frame-pointer
1213 CFLAGS="${CFLAGS} -fomit-frame-pointer"
1214 CXXFLAGS="${CXXFLAGS} -fomit-frame-pointer"
1215 OBJCFLAGS="${OBJCFLAGS} -fomit-frame-pointer"
1216 AC_CACHE_CHECK([if $CC accepts -fomit-frame-pointer],
1217 [ac_cv_c_omit_frame_pointer], [
1218 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1219 ac_cv_c_omit_frame_pointer=yes
1221 ac_cv_c_omit_frame_pointer=no
1224 AS_IF([test "${ac_cv_c_omit_frame_pointer}" = "no"], [VLC_RESTORE_FLAGS])
1229 AC_ARG_ENABLE([ssp],
1230 AS_HELP_STRING([--disable-ssp],
1231 [disable stack smashing protection (default enabled for optimized builds)]), [],
1234 AS_IF([test "${enable_ssp}" != "no" -a "${enable_optimizations}" != "no"], [
1236 AX_APPEND_COMPILE_FLAGS([-fstack-protector-strong])
1237 AX_APPEND_COMPILE_FLAGS([-fstack-protector-strong], [CXXFLAGS])
1238 dnl Win32 requires linking to ssp for stack-protection
1239 AS_IF([test "${SYS}" = "mingw32"], [
1240 LDFLAGS="${LDFLAGS} -lssp"
1241 AC_CACHE_CHECK([if linker supports stack protectors], [ac_cv_ld_ssp], [
1242 AC_TRY_LINK([#include <stdio.h>],[char buf[100]; fgets(buf, sizeof(buf), stdin);], [
1248 AS_IF([test "${ac_cv_ld_ssp}" = "no"], [VLC_RESTORE_FLAGS])
1252 AS_IF([test "${SYS}" = "mingw32"], [
1253 dnl library for BCrypt APIs
1254 AS_IF([test "${vlc_winstore_app}" = 1],
1255 VLC_ADD_LIBS([libvlccore], [-lbcrypt]))
1259 LDFLAGS="${LDFLAGS} -Wl,-Bsymbolic"
1260 AC_CACHE_CHECK([if linker supports -Bsymbolic], [ac_cv_ld_bsymbolic], [
1262 ac_cv_ld_bsymbolic="-Wl,-Bsymbolic"
1264 ac_cv_ld_bsymbolic=""
1268 SYMBOLIC_LDFLAGS="${ac_cv_ld_bsymbolic}"
1269 AC_SUBST([SYMBOLIC_LDFLAGS])
1272 LDFLAGS="${LDFLAGS} -Wl,-z,defs"
1273 AC_CACHE_CHECK([if linker supports -z,defs], [ac_cv_ld_z_defs], [
1275 ac_cv_ld_z_defs="yes"
1277 ac_cv_ld_z_defs="no"
1280 AS_IF([test "${ac_cv_ld_z_defs}" = "no"], [VLC_RESTORE_FLAGS])
1282 dnl Check for __attribute__((packed))
1283 AC_CACHE_CHECK([for __attribute__((packed))],
1284 [ac_cv_c_attribute_packed],
1285 [ac_cv_c_attribute_packed=no
1286 AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b; (void)b;],
1287 [ac_cv_c_attribute_packed=yes])])
1288 if test "${ac_cv_c_attribute_packed}" != "no"; then
1289 AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1295 case "${host_cpu}" in
1308 dnl Check for backtrace() support
1309 AC_CHECK_HEADERS([execinfo.h])
1310 AC_CHECK_FUNCS([backtrace])
1315 ALIASES="${ALIASES} cvlc rvlc"
1318 dnl Accelerated modules
1321 dnl Check for fully working MMX intrinsics
1322 dnl We need support for -mmmx, we need <mmintrin.h>, and we also need a
1323 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1324 AC_ARG_ENABLE([mmx],
1325 AS_HELP_STRING([--disable-mmx],
1326 [disable MMX optimizations (default auto)]),,[
1327 case "${host_cpu}" in
1338 AS_IF([test "${enable_mmx}" != "no"], [
1341 CFLAGS="${CFLAGS} -mmmx"
1342 AC_CACHE_CHECK([if $CC groks MMX intrinsics], [ac_cv_c_mmx_intrinsics], [
1343 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1344 [#include <mmintrin.h>
1346 uint64_t frobzor;]], [
1348 a = b = c = (__m64)frobzor;
1349 a = _mm_slli_pi16(a, 3);
1350 a = _mm_adds_pi16(a, b);
1351 c = _mm_srli_pi16(c, 8);
1352 c = _mm_slli_pi16(c, 3);
1353 b = _mm_adds_pi16(b, c);
1354 a = _mm_unpacklo_pi8(a, b);
1355 frobzor = (uint64_t)a;]])], [
1356 ac_cv_c_mmx_intrinsics=yes
1358 ac_cv_c_mmx_intrinsics=no
1362 AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1363 AC_DEFINE(HAVE_MMX_INTRINSICS, 1, [Define to 1 if MMX intrinsics are available.])
1367 CFLAGS="${CFLAGS} -mmmx"
1368 AC_CACHE_CHECK([if $CC groks MMX inline assembly], [ac_cv_mmx_inline], [
1369 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1371 asm volatile("packuswb %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1374 ac_cv_mmx_inline=yes
1379 AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1380 AC_DEFINE(CAN_COMPILE_MMX, 1, [Define to 1 inline MMX assembly is available.])
1384 AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1385 [ac_cv_mmxext_inline], [
1386 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1388 asm volatile("maskmovq %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1391 ac_cv_mmxext_inline=yes
1393 ac_cv_mmxext_inline=no
1397 AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1398 AC_DEFINE(CAN_COMPILE_MMXEXT, 1, [Define to 1 if MMX EXT inline assembly is available.])
1402 AM_CONDITIONAL([HAVE_MMX], [test "${have_mmx}" = "yes"])
1403 AM_CONDITIONAL([HAVE_MMXEXT], [test "${have_mmxext}" = "yes"])
1405 dnl Check for fully workin SSE2 intrinsics
1406 dnl We need support for -msse[2], we need <emmintrin.h>, and we also need a
1407 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1408 AC_ARG_ENABLE([sse],
1409 AS_HELP_STRING([--disable-sse],
1410 [disable SSE (1-4) optimizations (default auto)]),, [
1411 case "${host_cpu}" in
1421 AS_IF([test "${enable_sse}" != "no"], [
1422 ARCH="${ARCH} sse sse2"
1425 CFLAGS="${CFLAGS} -msse2"
1426 AC_CACHE_CHECK([if $CC groks SSE2 intrinsics], [ac_cv_c_sse2_intrinsics], [
1427 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1428 [#include <emmintrin.h>
1430 uint64_t frobzor;]], [
1432 a = b = c = _mm_set1_epi64((__m64)frobzor);
1433 a = _mm_slli_epi16(a, 3);
1434 a = _mm_adds_epi16(a, b);
1435 c = _mm_srli_epi16(c, 8);
1436 c = _mm_slli_epi16(c, 3);
1437 b = _mm_adds_epi16(b, c);
1438 a = _mm_unpacklo_epi8(a, b);
1439 frobzor = (uint64_t)_mm_movepi64_pi64(a);]])], [
1440 ac_cv_c_sse2_intrinsics=yes
1442 ac_cv_c_sse2_intrinsics=no
1446 AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1447 AC_DEFINE(HAVE_SSE2_INTRINSICS, 1, [Define to 1 if SSE2 intrinsics are available.])
1451 CFLAGS="${CFLAGS} -msse"
1452 AC_CACHE_CHECK([if $CC groks SSE inline assembly], [ac_cv_sse_inline], [
1453 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1455 asm volatile("xorps %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1458 ac_cv_sse_inline=yes
1464 AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1465 AC_DEFINE(CAN_COMPILE_SSE, 1, [Define to 1 if SSE inline assembly is available.])
1468 AC_CACHE_CHECK([if $CC groks SSE2 inline assembly], [ac_cv_sse2_inline], [
1469 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1471 asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1474 ac_cv_sse2_inline=yes
1476 ac_cv_sse2_inline=no
1479 AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1480 AC_DEFINE(CAN_COMPILE_SSE2, 1, [Define to 1 if SSE2 inline assembly is available.])
1485 AC_CACHE_CHECK([if $CC groks SSE3 inline assembly], [ac_cv_sse3_inline], [
1486 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1488 asm volatile("movsldup %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1491 ac_cv_sse3_inline=yes
1493 ac_cv_sse3_inline=no
1497 AS_IF([test "${ac_cv_sse3_inline}" != "no"], [
1498 AC_DEFINE(CAN_COMPILE_SSE3, 1, [Define to 1 if SSE3 inline assembly is available.]) ])
1501 AC_CACHE_CHECK([if $CC groks SSSE3 inline assembly], [ac_cv_ssse3_inline], [
1502 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1504 asm volatile("pabsw %%xmm0,%%xmm0"::"r"(p):"xmm0");
1507 ac_cv_ssse3_inline=yes
1509 ac_cv_ssse3_inline=no
1513 AS_IF([test "${ac_cv_ssse3_inline}" != "no"], [
1514 AC_DEFINE(CAN_COMPILE_SSSE3, 1, [Define to 1 if SSSE3 inline assembly is available.]) ])
1517 AC_CACHE_CHECK([if $CC groks SSE4.1 inline assembly],
1518 [ac_cv_sse4_1_inline], [
1519 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1521 asm volatile("pmaxsb %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1524 ac_cv_sse4_1_inline=yes
1526 ac_cv_sse4_1_inline=no
1530 AS_IF([test "${ac_cv_sse4_1_inline}" != "no"], [
1531 AC_DEFINE(CAN_COMPILE_SSE4_1, 1, [Define to 1 if SSE4_1 inline assembly is available.]) ])
1534 AC_CACHE_CHECK([if $CC groks SSE4.2 inline assembly],
1535 [ac_cv_sse4_2_inline], [
1536 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1538 asm volatile("pcmpgtq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1541 ac_cv_sse4_2_inline=yes
1543 ac_cv_sse4_2_inline=no
1547 AS_IF([test "${ac_cv_sse4_2_inline}" != "no"], [
1548 AC_DEFINE(CAN_COMPILE_SSE4_2, 1, [Define to 1 if SSE4_2 inline assembly is available.]) ])
1551 AC_CACHE_CHECK([if $CC groks SSE4A inline assembly], [ac_cv_sse4a_inline], [
1552 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1554 asm volatile("insertq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1557 ac_cv_sse4a_inline=yes
1559 ac_cv_sse4a_inline=no
1563 AS_IF([test "${ac_cv_sse4a_inline}" != "no"], [
1564 AC_DEFINE([CAN_COMPILE_SSE4A], [1], [Define to 1 if SSE4A inline assembly is available.]) ])
1566 AM_CONDITIONAL([HAVE_SSE2], [test "$have_sse2" = "yes"])
1568 dnl Check for fully workin AVX2 intrinsics
1569 dnl We need support for -mavx[2], we need <immintrin.h>, and we also need a
1570 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1571 AC_ARG_ENABLE([avx],
1572 AS_HELP_STRING([--disable-avx],
1573 [disable AVX (1-2) optimizations (default auto)]),, [
1574 case "${host_cpu}" in
1584 AS_IF([test "${enable_avx}" != "no"], [
1585 ARCH="${ARCH} avx avx2"
1588 CFLAGS="${CFLAGS} -mavx2"
1589 AC_CACHE_CHECK([if $CC groks AVX2 intrinsics], [ac_cv_c_avx2_intrinsics], [
1590 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1591 [#include <immintrin.h>
1593 uint64_t frobzor;]], [
1595 a = b = c = _mm256_set1_epi64x((int64_t)frobzor);
1596 a = _mm256_slli_epi16(a, 3);
1597 a = _mm256_adds_epi16(a, b);
1598 c = _mm256_srli_epi16(c, 8);
1599 c = _mm256_slli_epi16(c, 3);
1600 b = _mm256_adds_epi16(b, c);
1601 a = _mm256_unpacklo_epi8(a, b);
1602 frobzor = (uint64_t)_mm256_extract_epi64(a, 0);]])], [
1603 ac_cv_c_avx2_intrinsics=yes
1605 ac_cv_c_avx2_intrinsics=no
1609 AS_IF([test "${ac_cv_c_avx2_intrinsics}" != "no"], [
1610 AC_DEFINE(HAVE_AVX2_INTRINSICS, 1, [Define to 1 if AVX2 intrinsics are available.])
1614 CFLAGS="${CFLAGS} -mavx"
1615 AC_CACHE_CHECK([if $CC groks AVX inline assembly], [ac_cv_avx_inline], [
1616 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1618 asm volatile("xorps256 %%ymm1,%%ymm2"::"r"(p):"ymm1", "ymm2");
1621 ac_cv_avx_inline=yes
1627 AS_IF([test "${ac_cv_avx_inline}" != "no" -a "${SYS}" != "solaris"], [
1628 AC_DEFINE(CAN_COMPILE_AVX, 1, [Define to 1 if AVX inline assembly is available.])
1631 AC_CACHE_CHECK([if $CC groks AVX2 inline assembly], [ac_cv_avx2_inline], [
1632 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1634 asm volatile("punpckhqdq256 %%ymm1,%%ymm2"::"r"(p):"ymm1", "ymm2");
1637 ac_cv_avx2_inline=yes
1639 ac_cv_avx2_inline=no
1643 AS_IF([test "${ac_cv_avx2_inline}" != "no" -a "${SYS}" != "solaris"], [
1644 AC_DEFINE(CAN_COMPILE_AVX2, 1, [Define to 1 if AVX2 inline assembly is available.])
1648 AM_CONDITIONAL([HAVE_AVX2], [test "$have_avx2" = "yes"])
1651 CFLAGS="${CFLAGS} -mmmx"
1653 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly], [ac_cv_3dnow_inline], [
1654 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1656 asm volatile("pfadd %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1659 ac_cv_3dnow_inline=yes
1661 ac_cv_3dnow_inline=no
1665 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1666 AC_DEFINE([CAN_COMPILE_3DNOW], 1,
1667 [Define to 1 if 3D Now! inline assembly is available.])
1670 AM_CONDITIONAL([HAVE_3DNOW], [test "$have_3dnow" = "yes"])
1673 AC_ARG_ENABLE([neon],
1674 AS_HELP_STRING([--disable-neon],
1675 [disable ARM NEON optimizations (default auto)]),, [
1676 case "${host_cpu}" in
1688 AS_IF([test "${enable_neon}" != "no"], [
1690 AC_CACHE_CHECK([if $CCAS groks ARM NEON assembly], [ac_cv_arm_neon], [
1691 AS_IF([test "${enable_neon}" != "64"], [
1692 CFLAGS="${CFLAGS} -mfpu=neon -mhard-float"
1695 asm volatile("vqmovun.s64 d0, q1":::"d0");
1703 CFLAGS="${CFLAGS} -march=armv8-a+simd"
1706 asm volatile("uhadd v0.8b, v0.8b, v1.8b":::"v0");
1717 AM_CONDITIONAL([HAVE_NEON], [test "${ac_cv_arm_neon}" = "32"])
1718 AM_CONDITIONAL([HAVE_ARM64], [test "${ac_cv_arm_neon}" = "64"])
1720 AC_ARG_ENABLE([sve],
1721 AS_HELP_STRING([--disable-sve],
1722 [disable ARM SVE optimizations (default auto)]),, [
1723 AS_IF([test "${host_cpu}" = "aarch64"], [enable_sve="yes"] ,[enable_sve="no"])
1725 AS_IF([test "${enable_sve}" != "no"], [
1727 CFLAGS="${CFLAGS} -march=armv8-a+sve"
1728 AC_CACHE_CHECK([if $CCAS groks ARM SVE assembly], [ac_cv_arm_sve], [
1731 asm volatile("ptrue p0.s" ::: "p0");
1741 AM_CONDITIONAL([HAVE_SVE], [test "${ac_cv_arm_sve}" = "yes"])
1743 AC_ARG_ENABLE([branch-protection],
1744 AS_HELP_STRING([--disable-branch-protection],
1745 [disable AArch64 branch protection (default auto)]),, [
1746 AS_IF([test "${host_cpu}" = "aarch64"],
1747 [enable_branch_protection="yes"], [enable_branch_protection="no"])
1749 AS_IF([test "${enable_branch_protection}" != "no"], [
1750 AX_CHECK_COMPILE_FLAG([-mbranch-protection=standard], [
1751 AX_APPEND_FLAG([-mbranch-protection=standard], [CFLAGS])
1752 AX_APPEND_FLAG([-mbranch-protection=standard], [CXXFLAGS])
1757 AC_ARG_ENABLE([altivec],
1758 AS_HELP_STRING([--disable-altivec],
1759 [disable AltiVec optimizations (default auto)]),, [
1760 AS_CASE("${host_cpu}", [powerpc*],
1761 [enable_altivec=yes], [enable_altivec=no])
1765 AS_IF([test "${enable_altivec}" = "yes"], [
1766 ARCH="${ARCH} altivec";
1768 AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1769 [ac_cv_altivec_inline],
1770 [AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1771 ac_cv_altivec_inline="yes",
1772 [CFLAGS="${CFLAGS} -Wa,-maltivec"
1773 AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1774 [ac_cv_altivec_inline="-Wa,-maltivec"],
1775 ac_cv_altivec_inline=no)
1778 AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1779 AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1780 [Define to 1 if AltiVec inline assembly is available.])
1781 AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1782 ALTIVEC_CFLAGS="${ac_cv_altivec_inline}"
1783 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_altivec_inline}])
1789 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1790 [ac_cv_c_altivec], [
1791 CFLAGS="${CFLAGS} -maltivec"
1792 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1793 [#include <altivec.h>]], [
1794 [vec_ld(0, (unsigned char *)0);]])], [
1795 ac_cv_c_altivec="-maltivec"
1797 ac_cv_c_altivec="no"
1801 AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1802 CPPFLAGS="${CPPFLAGS} ${ac_cv_c_altivec}"
1803 AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, [Define to 1 if C AltiVec extensions are available.])
1804 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_c_altivec}])
1805 ALTIVEC_CFLAGS="$ALTIVEC_CFLAGS ${ac_cv_c_altivec}"
1806 VLC_ADD_CFLAGS([deinterlace],[${ac_cv_c_altivec}])
1809 AC_CHECK_HEADERS([altivec.h])
1812 LDFLAGS="${LDFLAGS} -Wl,-framework,vecLib"
1813 AC_CACHE_CHECK([if linker needs -framework vecLib],
1815 [AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)])
1817 AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1818 VLC_ADD_LIBS([libvlccore],[-Wl,-framework,vecLib])
1821 AC_SUBST([ALTIVEC_CFLAGS])
1822 AM_CONDITIONAL([HAVE_ALTIVEC], [test "$have_altivec" = "yes"])
1827 AC_ARG_ENABLE([optimize-memory],
1828 AS_HELP_STRING([--enable-optimize-memory],
1829 [optimize memory usage over performance]))
1830 if test "${enable_optimize_memory}" = "yes"; then
1831 AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1835 dnl Allow running as root (useful for people running on embedded platforms)
1837 AC_ARG_ENABLE([run-as-root],
1838 AS_HELP_STRING([--enable-run-as-root],
1839 [allow running VLC as root (default disabled)]))
1840 AS_IF([test "${enable_run_as_root}" = "yes"],[
1841 AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1842 [Define to 1 to allow running VLC as root (uid 0).])
1848 AC_ARG_ENABLE([sout],
1849 AS_HELP_STRING([--disable-sout],
1850 [disable streaming output (default enabled)]))
1851 AS_IF([test "${enable_sout}" != "no"], [
1852 AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1854 AM_CONDITIONAL([ENABLE_SOUT], [test "${enable_sout}" != "no"])
1857 AC_ARG_ENABLE([lua],
1858 AS_HELP_STRING([--disable-lua],
1859 [disable LUA scripting support (default enabled)]))
1860 if test "${enable_lua}" != "no"
1862 PKG_CHECK_MODULES(LUA, lua5.2,
1865 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua 5.1 instead])
1867 PKG_CHECK_MODULES(LUA, lua5.1,
1870 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua >= 5.1 instead])
1871 PKG_CHECK_MODULES(LUA, lua >= 5.1,
1874 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying manual detection instead])
1876 AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1879 AC_CHECK_LIB( lua5.2 , luaL_newstate,
1880 [LUA_LIBS="-llua5.2"],
1881 AC_CHECK_LIB( lua5.1 , luaL_newstate,
1882 [LUA_LIBS="-llua5.1"],
1883 AC_CHECK_LIB( lua51 , luaL_newstate,
1884 [LUA_LIBS="-llua51"],
1885 AC_CHECK_LIB( lua , luaL_newstate,
1893 if test "x${have_lua}" != "xyes" ; then
1894 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.])
1896 AC_ARG_VAR([LUAC], [LUA byte compiler])
1897 AS_IF([test -z "$LUAC"], [
1898 AC_CHECK_TOOL(LUAC, [luac], [false])
1900 AS_IF([test "${LUAC}" = "false"], [
1901 AC_MSG_ERROR([Could not find the LUA byte compiler.])
1903 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], [
1904 AC_MSG_ERROR([You need 32-bits luac when using lua from contrib.])
1907 AM_CONDITIONAL([BUILD_LUA], [test "${have_lua}" = "yes"])
1911 dnl VideoLAN manager
1913 AC_ARG_ENABLE([vlm],
1914 AS_HELP_STRING([--disable-vlm],
1915 [disable the stream manager (default enabled)]),,
1916 [enable_vlm="${enable_sout}"])
1917 AS_IF([test "${enable_vlm}" != "no"], [
1918 AS_IF([test "${enable_sout}" = "no"], [
1919 AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1921 AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1923 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1927 dnl Addons manager storage and repositories modules
1929 AC_ARG_ENABLE([addonmanagermodules],
1930 AS_HELP_STRING([--disable-addonmanagermodules],
1931 [disable the addons manager modules (default enabled)]))
1932 if test "${enable_addonmanagermodules}" != "no"
1934 AC_DEFINE(ENABLE_ADDONMANAGERMODULES, 1, [Define if you want the addons manager modules])
1936 AM_CONDITIONAL([ENABLE_ADDONMANAGERMODULES], [test "${enable_addonmanagermodules}" != "no"])
1943 EXTEND_HELP_STRING([Input plugins:])
1946 dnl libarchive access module
1948 PKG_ENABLE_MODULES_VLC([ARCHIVE], [archive], [libarchive >= 3.1.0], (libarchive support), [auto])
1953 AC_ARG_ENABLE([live555],
1954 AS_HELP_STRING([--enable-live555],
1955 [enable RTSP input through live555 (default enabled)]))
1957 AS_IF([test "${enable_live555}" != "no" -a -n "${CXX}"], [
1958 PKG_CHECK_MODULES(LIVE555, live555, [
1959 VLC_ADD_PLUGIN([live555])
1960 VLC_ADD_CXXFLAGS([live555], [$LIVE555_CFLAGS])
1961 VLC_ADD_LIBS([live555],[$LIVE555_LIBS])
1963 AC_MSG_WARN([${LIVE555_PKG_ERRORS}.])
1968 dnl detect include paths
1969 AS_IF([test -f "${CONTRIB_DIR}/include/UsageEnvironment/UsageEnvironment.hh"], [
1970 CPPFLAGS_live555="-I${CONTRIB_DIR}/include/liveMedia -I${CONTRIB_DIR}/include/groupsock -I${CONTRIB_DIR}/include/BasicUsageEnvironment -I${CONTRIB_DIR}/include/UsageEnvironment"
1972 AS_IF([test "${SYS}" != "os2"], [
1973 LIVE555_PREFIX=${LIVE555_PREFIX-"/usr"}
1974 CPPFLAGS_live555="-I${LIVE555_PREFIX}/include/liveMedia -I${LIVE555_PREFIX}/include/groupsock -I${LIVE555_PREFIX}/include/BasicUsageEnvironment -I${LIVE555_PREFIX}/include/UsageEnvironment"
1976 LIVE555_PREFIX=${LIVE555_PREFIX-"/usr/lib/live"}
1977 CPPFLAGS_live555="-I${LIVE555_PREFIX}/liveMedia/include -I${LIVE555_PREFIX}/groupsock/include -I${LIVE555_PREFIX}/BasicUsageEnvironment/include -I${LIVE555_PREFIX}/UsageEnvironment/include"
1978 LDFLAGS_live555="-L${LIVE555_PREFIX}/liveMedia -L${LIVE555_PREFIX}/groupsock -L${LIVE555_PREFIX}/BasicUsageEnvironment -L${LIVE555_PREFIX}/UsageEnvironment"
1983 AS_IF([test "${SYS}" = "solaris"], [
1984 CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1986 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1987 LDFLAGS="${LDFLAGS} ${LDFLAGS_live555}"
1990 AC_CACHE_CHECK([for live555 version 1324598400 or later], [ac_cv_live555], [
1991 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
1992 [#include <liveMedia_version.hh>
1993 #if !defined (LIVEMEDIA_LIBRARY_VERSION_INT) || (LIVEMEDIA_LIBRARY_VERSION_INT < 1324598400)
2003 AS_IF([test "$ac_cv_live555" = "no"], [
2004 AC_MSG_WARN([live555 is missing or its installed version is too old:
2005 Version 2011.12.23 or later is required to proceed.
2006 You can get an updated one from http://www.live555.com/liveMedia .])
2007 AS_IF([test -n "${enable_live555}"], [
2008 AC_MSG_ERROR([Update live555 or pass --disable-live555 to disable RTSP input support.])
2011 other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
2012 other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
2013 AS_IF([test "${SYS}" = "mingw32"], [
2014 # add ws2_32 for closesocket, select, recv
2015 other_libs="$other_libs -lws2_32"
2018 dnl We need to check for pic because live555 don't provide shared libs
2019 dnl and we want to build a plugins so we need -fPIC on some arch.
2020 VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
2021 VLC_ADD_LDFLAGS([live555], [${LDFLAGS_live555}])
2022 AC_CHECK_LIB([liveMedia_pic], [main], [
2023 VLC_ADD_PLUGIN([live555])
2024 VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
2026 AC_CHECK_LIB([liveMedia], [main], [
2027 VLC_ADD_PLUGIN([live555])
2028 VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
2029 ],[],[${other_libs}])
2030 ],[${other_libs_pic}])
2038 dnl IIDC and DV FireWire input modules
2040 PKG_ENABLE_MODULES_VLC([DC1394], [], [libdc1394-2 >= 2.1.0], [IIDC FireWire input module], [auto])
2041 PKG_ENABLE_MODULES_VLC([DV1394], [], [libraw1394 >= 2.0.1 libavc1394 >= 0.5.3], [DV FireWire input module], [auto])
2044 dnl - linsys modules: access module check for libzvbi
2046 AC_ARG_ENABLE([linsys],
2047 AS_HELP_STRING([--enable-linsys],
2048 [Linux Linear Systems Ltd. SDI and HD-SDI input cards (default enabled)]))
2049 AS_IF([test "$SYS" = "linux" -a "${enable_linsys}" != "no"], [
2050 VLC_ADD_PLUGIN([linsys_hdsdi])
2051 PKG_CHECK_MODULES(LINSYS_SDI, [zvbi-0.2 >= 0.2.28], [
2052 VLC_ADD_PLUGIN([linsys_sdi])
2054 AC_MSG_WARN([${LINSYS_SDI_PKG_ERRORS}.])
2059 dnl dvdread module: check for libdvdread
2061 PKG_ENABLE_MODULES_VLC([DVDREAD], [], [dvdread > 6.0.0], [dvdread input module], [auto])
2064 dnl libdvdnav plugin
2066 PKG_ENABLE_MODULES_VLC([DVDNAV], [], [dvdnav >= 6.0.0], [DVD with navigation input module (dvdnav)], [auto])
2069 dnl Blu-ray Disc Support with libbluray
2071 PKG_ENABLE_MODULES_VLC([BLURAY], [libbluray], [libbluray >= 0.6.2], (libbluray for Blu-ray disc support ) )
2074 dnl OpenCV wrapper and example filters
2076 PKG_ENABLE_MODULES_VLC([OPENCV], [opencv_example opencv_wrapper], [opencv > 2.0], (OpenCV (computer vision) filter), [auto])
2080 dnl libsmbclient plugin
2082 PKG_ENABLE_MODULES_VLC([SMBCLIENT], [smbc], [smbclient], (SMB/CIFS support), [auto])
2085 dnl liBDSM access module
2087 AM_CONDITIONAL([HAVE_DSM], [test "$AS_TR_SH(with_dsm)" = "yes"])
2088 PKG_WITH_MODULES([DSM], [libdsm >= 0.2.0], [
2089 VLC_ADD_PLUGIN([dsm])
2090 VLC_ADD_CFLAGS([dsm], [$DSM_CFLAGS])
2091 VLC_ADD_LIBS([dsm], [$DSM_LIBS])
2093 ],,[libdsm SMB/CIFS access/sd module], [auto])
2094 AM_CONDITIONAL([HAVE_DSM], [test "${have_dsm}" = "yes"])
2097 dnl sftp access support
2099 PKG_ENABLE_MODULES_VLC([SFTP], [sftp], [libssh2], (support SFTP file transfer via libssh2), [auto])
2102 dnl nfs access support
2104 PKG_ENABLE_MODULES_VLC([NFS], [nfs], [libnfs >= 1.10.0], (support nfs protocol via libnfs), [auto])
2107 dnl smb2 access support
2109 PKG_ENABLE_MODULES_VLC([SMB2], [smb2], [libsmb2 >= 3.0.0], (support smb2 protocol via libsmb2), [auto])
2114 AC_ARG_ENABLE([v4l2], AS_HELP_STRING([--disable-v4l2],
2115 [disable Video4Linux version 2 (default auto)]))
2117 AS_IF([test "$enable_v4l2" != "no"], [
2118 AC_CHECK_HEADERS([linux/videodev2.h], [
2122 AM_CONDITIONAL([HAVE_V4L2], [test "${have_v4l2}" != "no"])
2125 dnl NVDEC decoder/encoder
2127 AC_ARG_ENABLE([nvdec], AS_HELP_STRING([--disable-nvdec],
2128 [disable NVDEC decoder (default auto)]))
2130 AS_IF([test "$enable_nvdec" != "no"], [
2131 AC_CHECK_HEADERS([ffnvcodec/dynlink_loader.h], [
2135 AM_CONDITIONAL([HAVE_NVDEC], [test "${have_nvdec}" != "no"])
2138 dnl special access module for Blackmagic SDI cards
2140 AC_ARG_ENABLE([decklink],
2141 AS_HELP_STRING([--disable-decklink],
2142 [disable Blackmagic DeckLink SDI input (default auto)]))
2143 AC_ARG_WITH([decklink_sdk],
2144 AS_HELP_STRING([--with-decklink-sdk=DIR],
2145 [location of Blackmagic DeckLink SDI SDK]))
2147 if test "${enable_decklink}" != "no"
2149 if test "${with_decklink_sdk}" != "no" -a -n "${with_decklink_sdk}"
2151 VLC_ADD_CPPFLAGS([decklink decklinkoutput stream_out_sdi],[-I${with_decklink_sdk}/include])
2154 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_decklink}"
2156 AC_CHECK_HEADERS([DeckLinkAPIDispatch.cpp], [
2158 AS_IF([test "${SYS}" = "darwin"], [
2159 VLC_ADD_LIBS([decklink decklinkoutput],[-Wl,-framework,CoreFoundation])
2162 AS_IF([test "${enable_decklink}" = "yes"], [
2163 AC_MSG_ERROR([Blackmagic DeckLink SDI include files not found!])
2165 AC_MSG_WARN([Blackmagic DeckLink SDI include files not found, decklink disabled])
2171 AM_CONDITIONAL([HAVE_DECKLINK], [ test "${have_decklink}" != "no" ])
2175 dnl Built-in CD-DA and VCD module
2177 AC_ARG_ENABLE([vcd],
2178 AS_HELP_STRING([--disable-vcd],
2179 [disable built-in VCD and CD-DA support (default enabled)]))
2181 AC_ARG_ENABLE([libcddb],
2182 AS_HELP_STRING([--disable-libcddb],
2183 [disable CDDB for Audio CD (default enabled)]))
2185 if test "${enable_vcd}" != "no" -a "${enable_winstore_app}" != "yes"
2187 AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2188 AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2190 VLC_ADD_PLUGIN([vcd cdda])
2195 AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2196 AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2198 VLC_ADD_PLUGIN([vcd cdda])
2199 AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2204 AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2205 AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2207 VLC_ADD_PLUGIN([vcd cdda])
2208 AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2213 if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32" -o "${SYS}" = "os2" -o "${SYS}" = "darwin"
2215 VLC_ADD_PLUGIN([vcd cdda])
2218 if test "$enable_libcddb" != "no"; then
2219 PKG_CHECK_MODULES(LIBCDDB, [libcddb >= 0.9.5], [
2221 AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2222 VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2223 VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2225 [AC_MSG_WARN([${LIBCDDB_PKG_ERRORS}: CDDB access disabled.])
2233 AC_CACHE_CHECK([for Linux DVB version 5.1], [ac_cv_linux_dvb_5_1], [
2234 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
2235 [#include <linux/dvb/version.h>
2236 #if (DVB_API_VERSION < 5)
2237 # error Linux DVB API v3.2 and older are not supported.
2239 #if (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR < 1)
2240 # error Linux DVB API v5.0 is unsupported. Please update.
2243 ac_cv_linux_dvb_5_1=yes
2245 ac_cv_linux_dvb_5_1=no
2247 AM_CONDITIONAL([HAVE_LINUX_DVB], [test "$ac_cv_linux_dvb_5_1" = "yes"])
2250 dnl Screen capture module
2252 AC_ARG_ENABLE([screen],
2253 AS_HELP_STRING([--enable-screen],
2254 [disable screen capture (default enabled)]))
2255 if test "${enable_screen}" != "no"; then
2256 if test "${SYS}" = "darwin"; then
2257 AC_CHECK_HEADERS([ApplicationServices/ApplicationServices.h], [
2258 VLC_ADD_PLUGIN([screen])
2262 AM_CONDITIONAL([HAVE_MAC_SCREEN], [test "${SYS}" = "darwin" -a "x${enable_screen}" != "xno"])
2265 dnl VNC/RFB access module
2267 PKG_ENABLE_MODULES_VLC([VNC], [vnc], [libvncclient >= 0.9.9], (VNC/rfb client support), [auto])
2269 dnl RDP/Remote Desktop access module
2271 PKG_ENABLE_MODULES_VLC([FREERDP], [rdp], [freerdp >= 1.0.1], (RDP/Remote Desktop client support) )
2275 AC_SUBST([have_avfoundation], ["no"])
2276 AC_ARG_ENABLE([macosx-avfoundation],
2277 AS_HELP_STRING([--enable-macosx-avfoundation], [Mac OS X avcapture (video) module (default enabled on Mac OS X)]))
2278 if test "x${enable_macosx_avfoundation}" != "xno" &&
2279 (test "${SYS}" = "darwin" || test "${enable_macosx_avfoundation}" = "yes")
2281 SAVED_LIBS="${LIBS}"
2282 LIBS="-framework AVFoundation"
2283 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [])],[have_avfoundation=yes],[have_avfoundation=no])
2284 LIBS="${SAVED_LIBS}"
2285 if test "${have_avfoundation}" != "no"
2287 VLC_ADD_PLUGIN([avcapture])
2290 AM_CONDITIONAL([HAVE_AVFOUNDATION], [test "${have_avfoundation}" != "no"])
2293 dnl DCP plugin (using asdcplib)
2295 PKG_WITH_MODULES([ASDCP], [asdcplib], [have_asdcp="yes"])
2296 AM_CONDITIONAL([HAVE_ASDCP], [test "${have_asdcp}" = "yes"])
2302 EXTEND_HELP_STRING([Mux/Demux plugins:])
2305 dnl libdvbpsi check for ts mux/demux
2308 PKG_WITH_MODULES([DVBPSI], [libdvbpsi >= 1.2.0], [have_dvbpsi="yes"])
2309 AM_CONDITIONAL([HAVE_DVBPSI], [test "${have_dvbpsi}" = "yes"])
2313 dnl GME demux plugin
2315 AC_ARG_ENABLE([gme],
2316 AS_HELP_STRING([--enable-gme],
2317 [use Game Music Emu (default auto)]))
2318 AS_IF([test "${enable_gme}" != "no"], [
2319 AC_CHECK_HEADER([gme/gme.h], [
2320 AC_CHECK_LIB([gme], [gme_identify_header], [
2321 VLC_ADD_PLUGIN([gme])
2323 AC_CHECK_LIB([gme], [gme_identify_extension], [
2324 VLC_ADD_LIBS([gme], [-lstdc++ $LIBM])
2325 VLC_ADD_PLUGIN([gme])
2326 ],, [-lstdc++ $LIBM])
2328 VLC_ADD_LIBS([gme], [-lgme])
2330 AS_IF([test "x${enable_gme}" != "x"], [
2331 AC_MSG_ERROR([GME cannot be found. Please install the development files.])
2340 AC_ARG_ENABLE([sid],
2341 AS_HELP_STRING([--enable-sid],[C64 sid demux support (default auto)]))
2342 AS_IF([test "${enable_sid}" != "no"], [
2343 PKG_CHECK_MODULES(SID, [libsidplay2], [
2345 oldCPPFLAGS="$CPPFLAGS"
2346 CPPFLAGS="$CPPFLAGS $SID_CFLAGS"
2347 AC_CHECK_HEADER([sidplay/builders/resid.h], [
2348 VLC_ADD_PLUGIN([sid])
2349 VLC_ADD_CFLAGS([sid], [$SID_CFLAGS])
2350 VLC_ADD_LIBS([sid], [$SID_LIBS] [-lresid-builder])
2352 AS_IF([test -n "${enable_sid}"],
2353 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2354 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2357 CPPFLAGS="$oldCPPFLAGS"
2360 AS_IF([test "x${enable_sid}" = "xyes"],
2361 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2362 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2369 dnl ogg demux plugin
2371 PKG_ENABLE_MODULES_VLC([OGG], [mux_ogg], [ogg >= 1.0], [Ogg demux support], [auto])
2372 PKG_CHECK_MODULES(LIBVORBIS, [vorbis >= 1.1], [
2373 AC_DEFINE(HAVE_LIBVORBIS, 1, [Define to 1 if you have the libvorbis])
2375 PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto], [${LIBVORBIS_CFLAGS}], [${LIBVORBIS_LIBS}])
2376 if test "${enable_sout}" != "no"; then
2377 dnl Check for libshout
2378 PKG_ENABLE_MODULES_VLC([SHOUT], [access_output_shout], [shout >= 2.1], [libshout output plugin], [auto])
2382 dnl matroska demux plugin
2384 PKG_WITH_MODULES([MATROSKA], [libebml >= 1.3.6 libmatroska], [
2385 VLC_ADD_PLUGIN([mkv])
2386 VLC_ADD_CFLAGS([mkv], [$MATROSKA_CFLAGS])
2387 VLC_ADD_LIBS([mkv], [$MATROSKA_LIBS])
2389 ],,[MKV format support], [auto])
2390 AM_CONDITIONAL([HAVE_MATROSKA], [test "${have_matroska}" = "yes"])
2393 dnl modplug demux plugin
2395 AC_ARG_ENABLE([mod],
2396 AS_HELP_STRING([--disable-mod],
2397 [do not use libmodplug (default auto)]))
2398 if test "${enable_mod}" != "no" ; then
2399 PKG_CHECK_MODULES(LIBMODPLUG, [libmodplug >= 0.8.9.0], [
2400 VLC_ADD_PLUGIN([mod])
2401 VLC_ADD_CXXFLAGS([mod],[$LIBMODPLUG_CFLAGS])
2402 VLC_ADD_CFLAGS([mod],[$LIBMODPLUG_CFLAGS]) #modules/demux/mod.c needs CFLAGS_mod, not CXXFLAGS_mod
2403 VLC_ADD_LIBS([mod],[$LIBMODPLUG_LIBS])
2405 AS_IF([test -n "${enable_mod}"],
2406 [AC_MSG_ERROR([${LIBMODPLUG_PKG_ERRORS}.])],
2407 [AC_MSG_WARN([${LIBMODPLUG_PKG_ERRORS}.])])
2412 dnl mpc demux plugin
2414 AC_ARG_ENABLE([mpc],
2415 AS_HELP_STRING([--disable-mpc], [do not use libmpcdec (default auto)]))
2416 if test "${enable_mpc}" != "no"
2418 AC_CHECK_HEADERS([mpcdec/mpcdec.h], [
2419 VLC_ADD_PLUGIN([mpc])
2420 VLC_ADD_LIBS([mpc],[-lmpcdec])])
2427 EXTEND_HELP_STRING([Codec plugins:])
2430 dnl shine encoder plugin
2432 PKG_ENABLE_MODULES_VLC([SHINE], [], [shine >= 3.0.0], [MPEG Audio Layer 3 encoder], [auto], [], [], [])
2436 dnl openmax il codec plugin
2438 AC_ARG_ENABLE([omxil],
2439 AS_HELP_STRING([--enable-omxil], [openmax il codec module (default disabled)]))
2440 if test "${enable_omxil}" = "yes"
2442 VLC_ADD_PLUGIN([omxil])
2446 dnl raspberry pi openmax il configuration
2448 AC_ARG_ENABLE([rpi-omxil],
2449 AS_HELP_STRING([--enable-rpi-omxil], [openmax il configured for raspberry pi (default disabled)]))
2450 if test "${enable_rpi_omxil}" = "yes"
2452 VLC_ADD_PLUGIN([omxil])
2453 VLC_ADD_CFLAGS([omxil],[-DRPI_OMX])
2457 dnl CrystalHD codec plugin
2459 AC_ARG_ENABLE([crystalhd],
2460 AS_HELP_STRING([--enable-crystalhd], [crystalhd codec plugin (default auto)]))
2461 if test "${enable_crystalhd}" != "no"; then
2462 AC_CHECK_HEADER(libcrystalhd/libcrystalhd_if.h, [
2463 VLC_ADD_PLUGIN([crystalhd])
2464 VLC_ADD_LIBS([crystalhd], [-lcrystalhd])
2466 if test "${SYS}" = "mingw32" ; then
2467 AC_CHECK_HEADERS([libcrystalhd/bc_dts_defs.h], [
2468 VLC_ADD_PLUGIN([crystalhd])
2469 AC_CHECK_HEADERS([libcrystalhd/bc_drv_if.h], [
2470 VLC_ADD_LIBS([crystalhd], [-lbcmDIL])
2473 AS_IF([test x"${enable_crystalhd}" = "xyes"],
2474 [AC_MSG_ERROR("Could not find CrystalHD development headers")],
2475 [AC_MSG_WARN("Could not find CrystalHD development headers")])
2476 ],[#define __LINUX_USER__
2477 #include <libcrystalhd/bc_dts_types.h>
2481 #include <libcrystalhd/bc_dts_types.h>
2492 AC_ARG_WITH(mad, AS_HELP_STRING([--with-mad=PATH], [path to libmad]), [
2497 AS_IF([test "${with_mad}" != "no"], [
2498 MAD_CFLAGS="-I${with_mad}/include"
2499 MAD_LIBS="-L${with_mad}/lib"
2502 AC_ARG_ENABLE([mad],
2503 AS_HELP_STRING([--enable-mad], [libmad module (default enabled)]))
2504 AS_IF([test "${enable_mad}" != "no"], [
2506 CPPFLAGS="${CPPFLAGS} ${MAD_CFLAGS}"
2507 LDFLAGS="${LDFLAGS} ${MAD_LIBS}"
2508 AC_CHECK_HEADERS([mad.h], [
2509 AC_CHECK_LIB([mad], [mad_bit_init], [
2511 MAD_LIBS="${MAD_LIBS} -lmad"
2515 AS_IF([test -n "$enable_mad" -a "${have_mad}" = "no"], [
2516 AC_MSG_ERROR([Could not find libmad. Install it or pass --disable-mad to disable it.])
2519 AC_SUBST([MAD_CFLAGS])
2520 AC_SUBST([MAD_LIBS])
2521 AM_CONDITIONAL([HAVE_MAD], [test "${have_mad}" = "yes"])
2526 PKG_ENABLE_MODULES_VLC([MPG123], [mpg123], [libmpg123], [libmpg123 decoder support], [auto])
2531 AC_ARG_ENABLE([gst-decode],
2532 AS_HELP_STRING([--enable-gst-decode], [GStreamer based decoding support (currently supports only video decoding) (default auto)]))
2534 have_gst_decode="no"
2535 AS_IF([test "${enable_gst_decode}" != "no"], [
2536 PKG_CHECK_MODULES([GST_APP], [gstreamer-app-1.0], [
2537 PKG_CHECK_MODULES([GST_VIDEO], [gstreamer-video-1.0], [
2538 have_gst_decode="yes"
2540 AC_MSG_WARN([${GST_VIDEO_PKG_ERRORS}. GStreamer decoder module will not be built.])
2543 AC_MSG_WARN([${GST_APP_PKG_ERRORS}. GStreamer modules will not be built.])
2546 AM_CONDITIONAL([HAVE_GST_DECODE], [test "${have_gst_decode}" = "yes"])
2549 dnl avcodec decoder/encoder plugin
2551 AC_ARG_ENABLE([merge-ffmpeg],
2552 AS_HELP_STRING([--enable-merge-ffmpeg], [merge FFmpeg-based plugins (default disabled)]),, [
2553 enable_merge_ffmpeg="no"
2555 AM_CONDITIONAL([MERGE_FFMPEG], [test "$enable_merge_ffmpeg" != "no"])
2557 AC_MSG_CHECKING([for libavutil variant])
2558 PKG_CHECK_EXISTS([libavutil], [
2559 libavutil_version="$(${PKG_CONFIG} --modversion libavutil)"
2560 libavutil_micro="${libavutil_version##*.}"
2561 AS_IF([test ${libavutil_micro} -le 99], [
2569 AC_MSG_RESULT([${avfork}])
2571 AC_ARG_ENABLE([avcodec],
2572 AS_HELP_STRING([--enable-avcodec], [libavcodec codec (default enabled)]))
2573 AS_IF([test "${enable_avcodec}" != "no"], [
2574 dnl We need >=57.16.0 from libav or >=57.37.100 from ffmpeg
2576 libav) av_codec_ver="57.16.0" ;;
2577 dnl 05f66706d182eb0c36af54d72614bf4c33e957a9 includes libavutil 55.9.0
2578 ffmpeg) av_codec_ver="57.37.100" ;;
2579 dnl 7fc329e2dd6226dfecaa4a1d7adf353bf2773726 include libavutil 55.22.101
2580 *) AC_MSG_ERROR([Missing libav or FFmpeg. Pass --disable-avcodec to ignore this error.])
2582 PKG_CHECK_MODULES(AVCODEC,[libavcodec >= ${av_codec_ver} libavutil >= 55.9.0], [
2584 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2585 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2586 AC_CHECK_HEADERS([libavcodec/avcodec.h])
2587 AC_CHECK_HEADERS([libavutil/avutil.h])
2591 AC_MSG_ERROR([${AVCODEC_PKG_ERRORS}. Pass --disable-avcodec to ignore this error.])
2596 AM_CONDITIONAL([HAVE_AVCODEC], [test "${have_avcodec}" != "no"])
2599 dnl libva needs avcodec
2601 AC_ARG_ENABLE([libva],
2602 AS_HELP_STRING([--enable-libva], [VAAPI GPU decoding support (libVA) (default auto)]))
2604 AS_IF([test "${enable_libva}" = "yes" -a "${have_avcodec}" != "yes" ], [
2605 AC_MSG_ERROR([--enable-libva and --disable-avcodec options are mutually exclusive. Use --enable-avcodec.])
2612 AS_IF([test "${enable_libva}" != "no"], [
2613 PKG_CHECK_MODULES([LIBVA], [libva >= 0.38], [
2616 AS_IF([test -n "${enable_libva}"], [
2617 AC_MSG_ERROR([${LIBVA_PKG_ERRORS}.])
2619 AC_MSG_WARN([${LIBVA_PKG_ERRORS}.])
2622 PKG_CHECK_MODULES([LIBVA_DRM], [libva-drm], [
2623 have_vaapi_drm="yes"
2625 AC_MSG_WARN([${LIBVA_DRM_PKG_ERRORS}.])
2627 PKG_CHECK_MODULES(LIBVA_X11, [libva-x11], [
2628 have_vaapi_x11="yes"
2630 AC_MSG_WARN([${LIBVA_X11_PKG_ERRORS}.])
2632 PKG_CHECK_MODULES(LIBVA_WL, [libva-wayland], [
2635 AC_MSG_WARN([${LIBVA_WL_PKG_ERRORS}.])
2638 AM_CONDITIONAL([HAVE_VAAPI], [test "${have_vaapi}" = "yes"])
2639 AM_CONDITIONAL([HAVE_VAAPI_DRM], [test "${have_vaapi_drm}" = "yes"])
2640 AM_CONDITIONAL([HAVE_VAAPI_X11], [test "${have_vaapi_x11}" = "yes"])
2641 AM_CONDITIONAL([HAVE_VAAPI_WL], [test "${have_vaapi_wl}" = "yes"])
2643 have_avcodec_vaapi="no"
2644 AS_IF([test "${have_vaapi}" = "yes" -a "${have_avcodec}" = "yes"], [
2646 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2647 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2648 AC_CHECK_HEADERS([libavcodec/vaapi.h], [
2649 AC_MSG_NOTICE([VA API acceleration activated])
2650 have_avcodec_vaapi="yes"
2652 AS_IF([test -n "${enable_libva}"], [
2653 AC_MSG_ERROR([libva is present but libavcodec/vaapi.h is missing])
2655 AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing ])
2660 AM_CONDITIONAL([HAVE_AVCODEC_VAAPI], [test "${have_avcodec_vaapi}" = "yes"])
2663 dnl dxva2 needs avcodec
2665 AC_ARG_ENABLE([dxva2],
2666 AS_HELP_STRING([--enable-dxva2], [DxVA2 GPU decoding support (default auto)]))
2668 have_avcodec_dxva2="no"
2669 AS_IF([test "${enable_dxva2}" != "no"], [
2670 if test "${SYS}" = "mingw32"; then
2671 AS_IF([test "x${have_avcodec}" = "xyes"], [
2672 AC_CHECK_HEADERS([dxva2api.h],
2674 AC_CHECK_HEADERS([libavcodec/dxva2.h], [
2675 AC_MSG_NOTICE([DxVA2 acceleration activated])
2676 have_avcodec_dxva2="yes"
2678 AS_IF([test "${enable_dxva2}" = "yes"],
2679 [AC_MSG_ERROR([dxva2 is present but libavcodec/dxva2.h is missing])],
2680 [AC_MSG_WARN([dxva2 is present but libavcodec/dxva2.h is missing ])])
2681 ], [#undef _WIN32_WINNT
2682 /* DXVA2 is only available in Vista and above */
2683 #define _WIN32_WINNT 0x600])
2685 AS_IF([test "${enable_dxva2}" = "yes"],
2686 [AC_MSG_ERROR([Could not find required dxva2api.h])],
2687 [AC_MSG_WARN([dxva2api.h not found])])
2688 ],[#include <d3d9.h>])
2690 AS_IF([test "x${enable_dxva2}" != "x"], [
2691 AC_MSG_ERROR([--enable-dxva2 and --disable-avcodec options are mutually exclusive.])
2696 AM_CONDITIONAL([HAVE_AVCODEC_DXVA2], [test "${have_avcodec_dxva2}" = "yes"])
2699 dnl d3d11va needs avcodec
2701 AC_ARG_ENABLE([d3d11va],
2702 AS_HELP_STRING([--enable-d3d11va], [D3D11 GPU decoding support (default auto)]))
2704 have_avcodec_d3d11va="no"
2705 AS_IF([test "${enable_d3d11va}" != "no"], [
2706 if test "${SYS}" = "mingw32"; then
2707 AS_IF([test "x${have_avcodec}" = "xyes"], [
2708 AC_CHECK_TYPES([ID3D11VideoDecoder],
2710 AC_CHECK_HEADERS([dxva2api.h],
2712 AC_CHECK_HEADERS([libavcodec/d3d11va.h], [
2713 AC_MSG_NOTICE([D3D11 acceleration activated])
2714 AC_DEFINE([HAVE_AVCODEC_D3D11VA], [1], [Define if the d3d11va module is built])
2715 have_avcodec_d3d11va="yes"
2717 AS_IF([test "${enable_d3d11va}" = "yes"],
2718 [AC_MSG_ERROR([d3d11va is present but libavcodec/d3d11va.h is missing])],
2719 [AC_MSG_WARN([d3d11va is present but libavcodec/d3d11va.h is missing ])])
2720 ], [#undef _WIN32_WINNT
2721 /* D3D11 is only available in Vista and above */
2722 #define _WIN32_WINNT 0x600])
2724 AS_IF([test "${enable_d3d11va}" = "yes"],
2725 [AC_MSG_ERROR([Could not find required dxva2api.h])],
2726 [AC_MSG_WARN([dxva2api.h not found])])
2727 ],[#include <d3d9.h>])
2729 AS_IF([test "${enable_d3d11va}" = "yes"],
2730 [AC_MSG_ERROR([Could not find required ID3D11VideoDecoder in d3d11.h])],
2731 [AC_MSG_WARN([ID3D11VideoDecoder not found])])
2732 ], [#include <d3d11.h>])
2734 AS_IF([test "x${enable_d3d11va}" != "x"], [
2735 AC_MSG_ERROR([--enable-d3d11va and --disable-avcodec options are mutually exclusive.])
2740 AM_CONDITIONAL([HAVE_AVCODEC_D3D11VA], [test "${have_avcodec_d3d11va}" = "yes"])
2745 AC_CHECK_HEADERS([dxgidebug.h dxgi1_6.h])
2748 dnl IApplicationData2
2750 have_iapplication_data2="no"
2751 AC_CHECK_TYPES([IApplicationData2],[],[],[#include <windows.storage.h>])
2754 dnl avformat demuxer/muxer plugin
2757 AC_ARG_ENABLE([avformat],
2758 AS_HELP_STRING([--enable-avformat], [libavformat containers (default enabled)]),, [
2759 enable_avformat="${have_avcodec}"
2762 AS_IF([test "${enable_avformat}" != "no"], [
2763 PKG_CHECK_MODULES(AVFORMAT,[libavformat >= 53.21.0 libavcodec libavutil], [
2766 CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2767 CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2768 AC_CHECK_HEADERS([libavformat/avformat.h libavformat/avio.h])
2769 AC_CHECK_HEADERS([libavcodec/avcodec.h])
2770 AC_CHECK_HEADERS([libavutil/avutil.h])
2771 AS_IF([test "$enable_merge_ffmpeg" = "no"], [
2776 AC_MSG_ERROR([${AVFORMAT_PKG_ERRORS}. Pass --disable-avformat to ignore this error.])
2779 AM_CONDITIONAL([HAVE_AVFORMAT], [test "${enable_avformat}" != "no"])
2782 dnl swscale image scaling and conversion plugin
2785 AC_ARG_ENABLE([swscale],
2786 AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
2787 (default enabled)]))
2788 if test "${enable_swscale}" != "no"
2790 PKG_CHECK_MODULES(SWSCALE,[libswscale],
2793 CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
2794 CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
2795 AC_CHECK_HEADERS([libswscale/swscale.h])
2796 AC_CHECK_HEADERS([libavutil/avutil.h])
2797 VLC_ADD_PLUGIN([swscale])
2798 VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
2799 VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
2800 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2801 VLC_ADD_LIBS([swscale],[${ac_cv_ld_bsymbolic}])
2805 AC_MSG_ERROR([${SWSCALE_PKG_ERRORS}. Pass --disable-swscale to ignore this error. Proper software scaling and some video chroma conversion will be missing.])
2813 AC_ARG_ENABLE([postproc],
2814 AS_HELP_STRING([--enable-postproc], [libpostproc image post-processing (default auto)]))
2815 if test "${enable_postproc}" != "no"
2817 PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
2820 CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
2821 CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
2822 AC_CHECK_HEADERS([postproc/postprocess.h])
2823 VLC_ADD_PLUGIN([postproc])
2826 AC_MSG_WARN([${POSTPROC_PKG_ERRORS}.])
2831 dnl faad decoder plugin
2833 AC_ARG_ENABLE([faad],
2834 AS_HELP_STRING([--enable-faad], [faad codec (default auto)]))
2836 AS_IF([test "${enable_faad}" != "no"], [
2837 AC_CHECK_HEADERS([neaacdec.h], [
2838 AC_CHECK_LIB([faad], [NeAACDecOpen], [have_faad="yes"],, [$LIBM])
2840 AS_IF([test "${have_faad}" = "yes"], [
2841 VLC_ADD_PLUGIN([faad])
2842 VLC_ADD_LIBS([faad],[-lfaad])
2844 AS_IF([test "${enable_faad}" = "yes"], [
2845 AC_MSG_ERROR([cannot find FAAD library])
2847 AC_MSG_WARN([cannot find FAAD library])
2854 dnl AOM decoder plugin
2856 PKG_ENABLE_MODULES_VLC([AOM], [], [aom], [experimental AV1 codec (default auto)])
2859 dnl Dav1d decoder plugin
2861 PKG_ENABLE_MODULES_VLC([DAV1D], [], [dav1d >= 0.5.0], [AV1 decoder (default auto)])
2864 dnl libvpx decoder plugin
2866 AC_ARG_ENABLE([vpx],
2867 AS_HELP_STRING([--enable-vpx],[libvpx VP8/VP9 encoder and decoder (default auto)]))
2868 AS_IF([test "${enable_vpx}" != "no"],[
2869 PKG_CHECK_MODULES([VPX], [vpx >= 1.5.0], [
2870 VLC_ADD_PLUGIN([vpx])
2871 VLC_ADD_CPPFLAGS([vpx], [${VPX_CFLAGS}])
2872 VLC_ADD_LIBS([vpx], [${VPX_LIBS}])
2873 AC_CHECK_LIB([vpx],[vpx_codec_vp8_dx], [
2874 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP8_DECODER])
2875 ], [], [${VPX_LIBS}])
2876 AC_CHECK_LIB([vpx],[vpx_codec_vp9_dx], [
2877 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP9_DECODER])
2878 ], [], [${VPX_LIBS}])
2879 AC_CHECK_LIB([vpx],[vpx_codec_vp8_cx], [
2880 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP8_ENCODER])
2881 ], [], [${VPX_LIBS}])
2882 AC_CHECK_LIB([vpx],[vpx_codec_vp9_cx], [
2883 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP9_ENCODER])
2884 ], [], [${VPX_LIBS}])
2886 AS_IF([test "${enable_vpx}" = "yes"],[
2887 AC_MSG_ERROR([libvpx 1.5.0 or higher was not found])
2892 dnl twolame encoder plugin
2894 PKG_ENABLE_MODULES_VLC([TWOLAME], [], [twolame], [MPEG Audio Layer 2 encoder], [auto], [], [], [ -DLIBTWOLAME_STATIC])
2897 dnl fdk-aac encoder plugin
2899 PKG_ENABLE_MODULES_VLC([FDKAAC], [], [fdk-aac], [FDK-AAC encoder], [disabled])
2903 dnl A52/AC3 decoder plugin
2905 AC_ARG_ENABLE([a52],
2906 AS_HELP_STRING([--enable-a52], [A/52 support with liba52 (default enabled)]))
2907 if test "${enable_a52}" != "no"
2910 AS_HELP_STRING([--with-a52=PATH], [a52 headers and libraries]))
2911 if test -z "${with_a52}"
2916 LDFLAGS_test="-L${with_a52}/lib"
2917 CPPFLAGS_test="-I${with_a52}/include"
2920 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_test} ${CPPFLAGS_a52}"
2921 LDFLAGS="${LDFLAGS} ${LDFLAGS_test} ${LIBS_a52}"
2922 AC_CHECK_HEADERS([a52dec/a52.h], [
2923 AC_CHECK_LIB([a52], [a52_free], [
2924 VLC_ADD_PLUGIN([a52])
2925 VLC_ADD_LIBS([a52],[${LDFLAGS_test} -la52 $LIBM])
2926 VLC_ADD_CPPFLAGS([a52],[${CPPFLAGS_test}])
2928 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.])
2931 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.])
2937 dnl DTS Coherent Acoustics decoder plugin
2939 PKG_ENABLE_MODULES_VLC([DCA], [dca], [libdca >= 0.0.5], [DTS Coherent Acoustics support with libdca], [auto])
2944 PKG_ENABLE_MODULES_VLC([FLAC], [], [flac], [libflac decoder/encoder support], [auto])
2949 PKG_ENABLE_MODULES_VLC([LIBMPEG2], [], [libmpeg2 > 0.3.2], [libmpeg2 decoder support], [auto])
2954 PKG_ENABLE_MODULES_VLC([VORBIS], [], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
2959 AC_ARG_ENABLE([tremor],
2960 AS_HELP_STRING([--enable-tremor], [Tremor decoder support (default disabled)]))
2961 if test "${enable_tremor}" = "yes"
2963 AC_CHECK_HEADERS([tremor/ivorbiscodec.h], [
2964 VLC_ADD_PLUGIN([tremor])
2971 PKG_ENABLE_MODULES_VLC([SPEEX], [], [ogg speex >= 1.0.5], [Speex support], [auto])
2973 AS_IF([test "${enable_speex}" != "no"], [
2974 PKG_CHECK_MODULES([SPEEXDSP], [speexdsp], [
2977 AC_MSG_WARN([${SPEEXDSP_PKG_ERRORS}.])
2980 AM_CONDITIONAL([HAVE_SPEEXDSP], [test "$have_speexdsp" = "yes"])
2985 PKG_ENABLE_MODULES_VLC([OPUS], [], [ogg opus >= 1.0.3], [Opus support], [auto])
2988 dnl Ambisonic channel mixer and binauralizer plugin
2990 PKG_ENABLE_MODULES_VLC([SPATIALAUDIO], [], [spatialaudio], [Ambisonic channel mixer and binauralizer], [auto])
2993 dnl theora decoder plugin
2995 PKG_ENABLE_MODULES_VLC([THEORA], [], [ogg theoradec >= 1.0 theoraenc], [experimental theora codec], [auto])
2998 dnl OggSpots decoder plugin
3000 PKG_ENABLE_MODULES_VLC([OGGSPOTS], [], [ogg], [experimental OggSpots codec], [auto])
3003 dnl Daala decoder plugin
3005 PKG_ENABLE_MODULES_VLC([DAALA], [], [daaladec daalaenc], [experimental daala codec], [disabled])
3008 dnl schroedinger decoder plugin (for dirac format video)
3010 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [], [schroedinger-1.0 >= 1.0.10], [dirac decoder and encoder using schroedinger], [auto])
3013 dnl PNG decoder module
3015 AC_ARG_ENABLE([png],
3016 AS_HELP_STRING([--enable-png], [PNG support (default enabled)]))
3017 AS_IF([test "${enable_png}" != "no"], [
3018 AC_CHECK_HEADERS([png.h], [
3020 LDFLAGS="${LDFLAGS} -lz $LIBM"
3021 AC_CHECK_LIB([png], [png_set_alpha_mode], [
3022 VLC_ADD_PLUGIN([png])
3029 dnl JPEG decoder module
3031 AC_ARG_ENABLE([jpeg],
3032 AS_HELP_STRING([--enable-jpeg], [JPEG support (default enabled)]))
3033 AS_IF([test "${enable_jpeg}" != "no"], [
3034 AC_CHECK_HEADERS([jpeglib.h], [
3035 VLC_ADD_PLUGIN([jpeg])
3040 dnl BPG decoder module
3042 AC_ARG_ENABLE([bpg],
3043 AS_HELP_STRING([--enable-bpg], [BPG support (default disabled)]))
3044 AS_IF([test "${enable_bpg}" != "no"], [
3045 AC_CHECK_HEADERS([libbpg.h], [
3046 VLC_ADD_PLUGIN([bpg])
3051 dnl H262 encoder plugin (lib262)
3053 AC_ARG_ENABLE([x262],
3054 AS_HELP_STRING([--enable-x262], [H262 encoding support with static libx262 (default disabled)]))
3055 if test "${enable_x262}" != "no"; then
3056 PKG_CHECK_MODULES(X262, x262, [
3057 VLC_ADD_PLUGIN([x262])
3058 VLC_ADD_LDFLAGS([x262],[${X262_LIBS}])
3059 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
3060 VLC_ADD_LIBS([x262],[${av_cv_ld_bsymbolic}])
3062 VLC_ADD_CFLAGS([x262],[${X262_CFLAGS}])
3063 if echo ${X262_LIBS} |grep -q 'pthreadGC2'; then
3064 VLC_ADD_CFLAGS([x262], [-DPTW32_STATIC_LIB])
3067 if test "${enable_x262}" = "yes"; then
3068 AC_MSG_ERROR([x262 module doesn't work without staticly compiled libx262.a])
3074 PKG_ENABLE_MODULES_VLC([X265],, [x265], [HEVC/H.265 encoder], [auto])
3077 dnl H264 encoder plugin (using libx264)
3079 AC_ARG_ENABLE([x264],
3080 AS_HELP_STRING([--enable-x264], [H264 encoding support with libx264 (default enabled)]))
3081 if test "${enable_x264}" != "no"; then
3082 PKG_CHECK_MODULES(X264,x264 >= 0.148, [
3083 VLC_ADD_PLUGIN([x264])
3084 VLC_ADD_LIBS([x264],[${X264_LIBS}])
3086 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
3087 VLC_ADD_LDFLAGS([x264],[${ac_cv_ld_bsymbolic}])
3090 VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3091 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3092 VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3095 if test "${enable_x264}" = "yes"; then
3096 AC_MSG_ERROR([${X264_PKG_ERRORS}: you may get it from http://www.videolan.org/x264.html])
3102 dnl H264 encoder plugin (libx264 > 153)
3104 AC_ARG_ENABLE([x26410b],
3105 AS_HELP_STRING([--enable-x26410b], [H264 10-bit encoding support with libx264 (default enabled)]))
3106 if test "${enable_x26410b}" != "no"; then
3107 PKG_CHECK_MODULES(X26410b,x264 >= 0.153, [
3108 VLC_ADD_PLUGIN([x26410b])
3109 VLC_ADD_LIBS([x26410b],[${X264_LIBS}])
3111 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
3112 VLC_ADD_LDFLAGS([x26410b],[${ac_cv_ld_bsymbolic}])
3115 VLC_ADD_CFLAGS([x26410b],[${X264_CFLAGS}])
3116 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3117 VLC_ADD_CFLAGS([x26410b], [-DPTW32_STATIC_LIB])
3120 if test "${enable_x26410b}" = "yes"; then
3121 AC_MSG_ERROR([${X264_PKG_ERRORS}: you may get it from http://www.videolan.org/x264.html])
3128 dnl Intel QuickSync (aka MediaSDK) H264/H262 encoder
3130 PKG_ENABLE_MODULES_VLC([MFX], [qsv], [libmfx], [Intel QuickSync MPEG4-Part10/MPEG2 (aka H.264/H.262) encoder], [auto])
3133 dnl libfluidsynth (MIDI synthetizer) plugin
3135 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [], [fluidsynth >= 1.1.2], [MIDI synthetiser with libfluidsynth], [auto])
3136 PKG_ENABLE_MODULES_VLC([FLUIDLITE], [fluidsynth], [fluidlite], [MIDI synthetiser with libfluidsynth], [auto])
3137 AC_CHECK_HEADERS([fluidlite.h], [AC_SUBST([FLUIDSYNTH_LIBS], ${FLUIDLITE_LIBS})])
3140 dnl Teletext Modules
3141 dnl vbi decoder plugin (using libzbvi)
3145 AC_ARG_ENABLE([zvbi],
3146 AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
3147 libzvbi (default enabled)]))
3148 AC_ARG_ENABLE([telx],
3149 AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
3150 zvbi) (default enabled if zvbi is absent)]))
3152 AS_IF( [test "${enable_zvbi}" != "no"],[
3153 PKG_CHECK_MODULES(ZVBI, [zvbi-0.2 >= 0.2.28],
3155 VLC_ADD_PLUGIN([zvbi])
3156 AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
3157 AS_IF( [test "${enable_telx}" = "yes"],[
3158 AC_MSG_WARN([The zvbi and telx modules are incompatible. Using zvbi.])
3161 AC_MSG_WARN([${ZVBI_PKG_ERRORS}. Enabling the telx module instead.])
3164 AS_IF( [test "${enable_telx}" != "no" ],[
3165 VLC_ADD_PLUGIN([telx])
3169 dnl ARIB subtitles rendering module
3171 AC_ARG_ENABLE([aribsub],
3172 AS_HELP_STRING([--enable-aribsub],[ARIB Subtitles support (default enabled)]))
3173 AS_IF( [test "${enable_aribsub}" != "no" ],[
3174 PKG_CHECK_MODULES(ARIBB24, [aribb24 >= 1.0.1], [
3176 VLC_ADD_PLUGIN([aribsub])
3177 VLC_ADD_LIBS([aribsub],[-laribb24])
3178 AC_DEFINE(HAVE_ARIBB24, 1, [Define if libaribb24 is available.])
3180 AC_MSG_WARN(Library [aribb24] needed for [aribsub] was not found)
3184 AM_CONDITIONAL([HAVE_ARIBB24], [test x"${have_aribb24}" = x"yes"])
3189 PKG_ENABLE_MODULES_VLC([ARIBB25], [aribcam], [aribb25 >= 0.2.6], [ARIB STD-B25], [auto])
3192 dnl kate decoder plugin
3194 PKG_ENABLE_MODULES_VLC([KATE], [], [kate >= 0.3.0], [kate codec], [auto])
3197 dnl tiger rendering for kate decoder plugin
3199 AC_ARG_ENABLE([tiger],
3200 AS_HELP_STRING([--enable-tiger], [Tiger rendering library for Kate streams (default auto)]))
3201 AS_IF([test "${enable_tiger}" != "no"], [
3202 PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
3203 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])],[
3204 AS_IF([test -n "${enable_tiger}"], [
3205 AC_MSG_ERROR([${TIGER_PKG_ERRORS}.])
3211 dnl check if we can build the css selector engine
3213 AC_ARG_ENABLE([css],
3214 AS_HELP_STRING([--enable-css], [CSS selector engine (default auto)]))
3215 AS_IF([test "${enable_css}" != "no"], [
3217 AC_DEFINE(HAVE_CSS, 1, [Define if CSS engine is built])
3219 AM_CONDITIONAL([ENABLE_CSS], [test "${with_css}" = "yes"])
3226 EXTEND_HELP_STRING([Video plugins:])
3229 dnl libplacebo support
3231 AC_ARG_ENABLE([libplacebo],
3232 AS_HELP_STRING([--disable-libplacebo],
3233 [disable libplacebo support (default auto)]))
3235 AS_IF([test "$enable_libplacebo" != "no"], [
3236 PKG_CHECK_MODULES([LIBPLACEBO], [libplacebo >= 0.5], [
3237 AC_DEFINE([HAVE_LIBPLACEBO], [1], [Define to 1 if libplacebo is enabled.])
3238 PKG_CHECK_MODULES([LIBPLACEBO], [libplacebo >= 1.7],
3239 [have_libplacebo_vk="yes"], [have_libplacebo_vk="no"])
3241 AS_IF([test -n "${enable_libplacebo}"], [
3242 AC_MSG_ERROR([${LIBPLACEBO_PKG_ERRORS}.])
3244 enable_libplacebo="no"
3247 AM_CONDITIONAL([HAVE_LIBPLACEBO], [test "$enable_libplacebo" != "no"])
3252 PKG_CHECK_MODULES([EGL], [egl], [
3257 AM_CONDITIONAL([HAVE_EGL], [test "${have_egl}" = "yes"])
3260 PKG_CHECK_MODULES([GL], [gl], [
3263 AC_MSG_CHECKING([for OpenGL])
3264 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
3266 # include <GL/glew.h>
3270 [int t0 = GL_TEXTURE0;]])
3274 AS_IF([test "${SYS}" != "mingw32"], [
3277 GL_LIBS="-lopengl32"
3280 AC_MSG_RESULT([${have_gl}])
3282 AM_CONDITIONAL([HAVE_GL], [test "${have_gl}" = "yes"])
3283 AS_IF([test "${have_gl}" = "yes"], [
3284 AC_DEFINE([HAVE_GL], 1, [Defined if having OpenGL])
3287 dnl OpenGL ES 2: depends on EGL 1.1
3288 PKG_ENABLE_MODULES_VLC([GLES2], [], [glesv2], [OpenGL ES v2 support], [disabled])
3293 AC_ARG_ENABLE(vulkan,
3294 [AS_HELP_STRING([--disable-vulkan],
3295 [disable Vulkan support (default auto)])])
3297 AS_IF([test "$enable_vulkan" != "no"], [
3298 AS_IF([test "$have_libplacebo_vk" = "yes"], [
3299 PKG_CHECK_MODULES([VULKAN], [vulkan >= 1.0.26], [
3300 AC_DEFINE([HAVE_VULKAN], [1], [Define to 1 if vulkan is enabled.])
3302 AS_IF([test -n "${enable_vulkan}"], [
3303 AC_MSG_ERROR([${VULKAN_PKG_ERRORS}.])
3308 AS_IF([test -n "${enable_vulkan}"], [
3309 AC_MSG_ERROR([Vulkan support requires libplacebo 1.7 as well. Do not use --disable-libplacebo.])
3314 AM_CONDITIONAL(HAVE_VULKAN, [test "$enable_vulkan" != "no"])
3321 AC_CHECK_HEADERS([X11/Xlib.h])
3324 dnl X C Bindings modules
3326 AC_ARG_ENABLE([xcb],
3327 AS_HELP_STRING([--enable-xcb], [X11 support with XCB (default enabled)]),, [
3328 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "darwin"], [
3336 have_xkbcommon_x11="no"
3337 have_xcb_keysyms="no"
3338 AS_IF([test "${enable_xcb}" != "no"], [
3342 PKG_CHECK_MODULES([XCB], [xcb >= 1.6],, [
3343 xcb_err="$xcb_err ${XCB_PKG_ERRORS}."])
3344 PKG_CHECK_MODULES([XCB_COMPOSITE], [xcb-composite],, [
3345 xcb_err="$xcb_err ${XCB_COMPOSITE_PKG_ERRORS}."])
3346 PKG_CHECK_MODULES([XCB_RANDR], [xcb-randr >= 1.3],, [
3347 xcb_err="$xcb_err ${XCB_RANDR_PKG_ERRORS}."])
3348 PKG_CHECK_MODULES([XCB_RENDER], [xcb-render],, [
3349 xcb_err="$xcb_err ${XCB_RENDER_PKG_ERRORS}."])
3350 PKG_CHECK_MODULES([XCB_SHM], [xcb-shm >= 1.9.2],, [
3351 xcb_err="$xcb_err ${XCB_SHM_PKG_ERRORS}."])
3352 PKG_CHECK_MODULES([XCB_XKB], [xcb-xkb],, [
3353 xcb_err="$xcb_err ${XCB_XKB_PKG_ERRORS}."])
3356 PKG_CHECK_MODULES(XPROTO, [xproto],, [
3357 xcb_err="$xcb_err ${XPROTO_PKG_ERRORS}."])
3359 AS_IF([test -n "$xcb_err"], [
3360 AC_MSG_ERROR([$xcb_err Pass --disable-xcb to skip X11 support.])
3364 PKG_CHECK_MODULES([XKBCOMMON_X11], [xkbcommon-x11], [
3365 have_xkbcommon_x11="yes"
3367 AC_MSG_WARN([${XKBCOMMON_X11_PKG_ERRORS}. Hotkeys are disabled.])
3371 PKG_CHECK_MODULES([XCB_KEYSYMS], [xcb-keysyms >= 0.3.4], [
3372 have_xcb_keysyms="yes"
3374 AC_MSG_WARN([${XCB_KEYSYMS_PKG_ERRORS}. Global hotkeys are disabled.])
3379 AM_CONDITIONAL([HAVE_XCB], [test "${have_xcb}" = "yes"])
3380 AM_CONDITIONAL([HAVE_XKBCOMMON_X11], [test "${have_xkbcommon_x11}" = "yes"])
3381 AM_CONDITIONAL([HAVE_XCB_KEYSYMS], [test "${have_xcb_keysyms}" = "yes"])
3387 AC_ARG_ENABLE([vdpau],
3388 [AS_HELP_STRING([--enable-vdpau], [VDPAU hardware support (default auto)])])
3390 AS_IF([test "${enable_vdpau}" != "no"], [
3391 PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.6], [
3393 AS_IF([test "${no_x}" = "yes"], [
3394 AC_MSG_ERROR([VDPAU requires Xlib (X11).])
3397 AS_IF([test -n "${enable_vdpau}"], [
3398 AC_MSG_ERROR([${VDPAU_PKG_ERRORS}.])
3402 AM_CONDITIONAL([HAVE_VDPAU], [test "${have_vdpau}" = "yes"])
3404 have_avcodec_vdpau="no"
3405 AS_IF([test "${have_vdpau}" = "yes" -a "${have_avcodec}" = "yes"], [
3407 libav) av_vdpau_ver="56.10.0" ;;
3408 ffmpeg) av_vdpau_ver="56.19.100" ;;
3410 PKG_CHECK_EXISTS([libavcodec >= ${av_vdpau_ver}], [
3411 have_avcodec_vdpau="yes"
3412 AC_MSG_NOTICE([VDPAU decoding acceleration activated])
3414 AS_IF([test -n "${enable_vdpau}"], [
3415 AC_MSG_ERROR([libavcodec >= 56.10.0 is required for VDPAU decoding.])
3417 AC_MSG_WARN([libavcodec >= 56.10.0 are required for VDPAU decoding.])
3421 AM_CONDITIONAL([HAVE_AVCODEC_VDPAU], [test "${have_avcodec_vdpau}" = "yes"])
3427 AC_ARG_ENABLE([wayland],
3428 AS_HELP_STRING([--enable-wayland], [Wayland support (default auto)]))
3431 AS_IF([test "${enable_wayland}" != "no"], [
3435 PKG_CHECK_MODULES([WAYLAND_CLIENT], [wayland-client >= 1.5.91],, [
3436 wl_err="$wl_err ${WAYLAND_CLIENT_PKG_ERRORS}."
3438 PKG_CHECK_MODULES([WAYLAND_CURSOR], [wayland-cursor],, [
3439 wl_err="$wl_err ${WAYLAND_CURSOR_PKG_ERRORS}."
3441 PKG_CHECK_MODULES([WAYLAND_EGL], [wayland-egl],, [
3442 wl_err="$wl_err ${WAYLAND_EGL_PKG_ERRORS}."
3444 PKG_CHECK_MODULES([WAYLAND_SCANNER], [wayland-scanner >= 1.15], [
3445 WAYLAND_SCANNER="$(${PKG_CONFIG} wayland-scanner --variable wayland_scanner)"
3447 wl_err="$wl_err ${WAYLAND_SCANNER_PKG_ERRORS}."
3450 dnl wayland-protocols
3451 PKG_CHECK_MODULES([WAYLAND_PROTOCOLS], [wayland-protocols >= 1.15], [
3452 WAYLAND_PROTOCOLS="$(${PKG_CONFIG} wayland-protocols --variable pkgdatadir)"
3454 wl_err="$wl_err ${WAYLAND_PROTOCOLS_PKG_ERRORS}."
3457 AS_IF([test -n "$wl_err"], [
3458 AS_IF([test -n "$enable_wayland"], [
3459 AC_MSG_ERROR([$wl_err])
3461 AC_MSG_WARN([$wl_err])
3468 PKG_CHECK_MODULES([XKBCOMMON], [xkbcommon], [
3469 have_xkbcommon="yes"
3471 AC_MSG_WARN([${XKBCOMMON_PKG_ERRORS}. Hotkeys are disabled.])
3474 AM_CONDITIONAL([HAVE_WAYLAND], [test "${have_wayland}" = "yes"])
3475 AC_SUBST([WAYLAND_PROTOCOLS])
3476 AC_SUBST([WAYLAND_SCANNER])
3477 AM_CONDITIONAL([HAVE_XKBCOMMON], [test "${have_xkbcommon}" = "yes"])
3481 dnl SDL image decoder module
3483 AC_ARG_ENABLE([sdl-image],
3484 AS_HELP_STRING([--enable-sdl-image], [SDL image support (default enabled)]))
3485 AS_IF([test "${enable_sdl_image}" != "no"],[
3486 PKG_CHECK_MODULES(SDL_IMAGE, [SDL_image >= 1.2.10], [
3487 VLC_ADD_PLUGIN([sdl_image])
3489 AC_MSG_WARN([${SDL_IMAGE_PKG_ERRORS}. You should install it alongside your SDL package.])
3496 AC_ARG_ENABLE([freetype],
3497 AS_HELP_STRING([--enable-freetype], [freetype support (default auto)]))
3498 AC_ARG_ENABLE([fribidi],
3499 AS_HELP_STRING([--enable-fribidi], [fribidi support (default auto)]))
3500 AC_ARG_ENABLE([harfbuzz],
3501 AS_HELP_STRING([--enable-harfbuzz], [harfbuzz support (default auto)]))
3502 AC_ARG_ENABLE([fontconfig],
3503 AS_HELP_STRING([--enable-fontconfig], [fontconfig support (default auto)]))
3505 AC_ARG_WITH([default-font],
3506 AS_HELP_STRING([--with-default-font=PATH],
3507 [Path to the default font]),
3508 [AC_DEFINE_UNQUOTED([DEFAULT_FONT_FILE],
3509 "$withval", [Default font])])
3510 AC_ARG_WITH([default-monospace-font],
3511 AS_HELP_STRING([--with-default-monospace-font=PATH],
3512 [Path to the default font]),
3513 [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FONT_FILE],
3514 "$withval", [Default monospace font])])
3516 AC_ARG_WITH([default-font-family],
3517 AS_HELP_STRING([--with-default-font-family=NAME],
3518 [Name of the default font family]),
3519 [AC_DEFINE_UNQUOTED([DEFAULT_FAMILY],
3520 "$withval", [Default font family])])
3521 AC_ARG_WITH([default-monospace-font-family],
3522 AS_HELP_STRING([--with-default-monospace-font-family=NAME],
3523 [Name of the default font family]),
3524 [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FAMILY],
3525 "$withval", [Default monospace font family])])
3528 have_fontconfig="no"
3532 if test "${enable_freetype}" != "no"; then
3533 PKG_CHECK_MODULES(FREETYPE, freetype2, [
3535 VLC_ADD_CPPFLAGS([skins2],[${FREETYPE_CFLAGS}])
3536 VLC_ADD_LIBS([skins2],[${FREETYPE_LIBS}])
3538 dnl fontconfig support
3539 AS_IF([test "${enable_fontconfig}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "darwin"], [
3540 PKG_CHECK_MODULES(FONTCONFIG, [fontconfig >= 2.11], [
3541 have_fontconfig="yes"
3543 AC_MSG_WARN([${FONTCONFIG_PKG_ERRORS}. Styles will be disabled in FreeType.])
3548 if test "${enable_fribidi}" != "no"; then
3549 PKG_CHECK_MODULES(FRIBIDI, fribidi, [
3551 VLC_ADD_CPPFLAGS([skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
3552 VLC_ADD_LIBS([skins2], [${FRIBIDI_LIBS}])
3553 ],[AC_MSG_WARN([${FRIBIDI_PKG_ERRORS}. Bidirectional text and complex scripts (Arabic, Farsi, Thai...) will be disabled in FreeType.])])
3556 dnl harfbuzz support
3557 if test "${have_fribidi}" != "no"; then
3558 if test "${enable_harfbuzz}" != "no"; then
3559 PKG_CHECK_MODULES(HARFBUZZ, harfbuzz, [
3561 VLC_ADD_CPPFLAGS([skins2], [${HARFBUZZ_CFLAGS} -DHAVE_HARFBUZZ])
3562 VLC_ADD_LIBS([skins2], [${HARFBUZZ_LIBS}])
3563 ],[AC_MSG_WARN([${HARFBUZZ_PKG_ERRORS}. Support for complex scripts (Arabic, Farsi, Thai...) will be disabled in FreeType.])])
3567 AS_IF([test -n "${enable_freetype}"],[
3568 AC_MSG_ERROR([${FREETYPE_PKG_ERRORS}. Install FreeType2 development or configure with --disable-freetype.])
3573 AM_CONDITIONAL([HAVE_FREETYPE], [test "${have_freetype}" = "yes"])
3574 AM_CONDITIONAL([HAVE_FONTCONFIG], [test "${have_fontconfig}" = "yes"])
3575 AM_CONDITIONAL([HAVE_FRIBIDI], [test "${have_fribidi}" = "yes"])
3576 AM_CONDITIONAL([HAVE_HARFBUZZ], [test "${have_harfbuzz}" = "yes"])
3579 dnl libass subtitle rendering module
3581 AC_ARG_ENABLE([libass],
3582 AS_HELP_STRING([--enable-libass], [Subtitle support using libass (default enabled)]))
3583 AS_IF( [test "${enable_libass}" != "no"], [
3584 PKG_CHECK_MODULES(LIBASS, [libass >= 0.9.8],
3586 VLC_ADD_PLUGIN([libass])
3588 if test "${have_fontconfig}" != "no"; then
3589 VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
3590 VLC_ADD_LIBS([libass],[${FONTCONFIG_LIBS}])
3593 AC_MSG_WARN([${LIBASS_PKG_ERRORS}.])
3598 dnl SAPI (text to Speech renderer for Windows)
3601 AC_CHECK_TYPES([ISpObjectToken],[
3603 ],[AC_MSG_WARN([sapi.h not found. Text to Speech renderer for Windows disabled])],
3604 [#include <windows.h>
3606 #include <sphelper.h>])
3607 AM_CONDITIONAL([HAVE_SAPI], [test "${have_sapi}" = "yes"])
3611 dnl SVG module (text rendering and image decoding)
3613 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3614 PKG_ENABLE_MODULES_VLC([SVGDEC], [], [librsvg-2.0 >= 2.9.0 cairo >= 1.13.1], [SVG image decoder library],[auto])
3617 dnl Windows DirectX module
3620 AC_ARG_ENABLE([directx],
3621 AS_HELP_STRING([--enable-directx],
3622 [Microsoft DirectX support (default enabled on Windows)]),, [
3623 AS_IF([test "${SYS}" = "mingw32"], [
3624 enable_directx="yes"
3629 AS_IF([test "${enable_directx}" != "no"], [
3631 AC_CHECK_HEADERS([GL/glew.h], [
3632 AC_CHECK_HEADERS([GL/wglew.h], [
3633 VLC_ADD_PLUGIN([glwin32 wgl])
3635 #include <windows.h>
3636 #include <GL/glew.h>
3638 #include <windows.h>
3642 AC_CHECK_HEADERS([d3d11.h], [
3643 VLC_ADD_PLUGIN([direct3d11 direct3d11_filters])
3647 AC_CHECK_HEADERS([d3d9.h], [
3648 VLC_ADD_PLUGIN([direct3d9])
3649 AC_CHECK_HEADERS([d3dx9effect.h])
3651 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
3652 [[#define COBJMACROS
3654 #include <dxva2api.h>
3655 #ifndef IDirectXVideoProcessorService_GetVideoProcessorDeviceGuids
3656 # error dxva2 too old
3660 VLC_ADD_PLUGIN([direct3d9_filters])
3662 [AC_MSG_WARN([Could not find required IDirectXVideoDecoder in dxva2api.h])])
3668 dnl Linux framebuffer module
3670 AC_CHECK_HEADER([linux/fb.h], [
3671 VLC_ADD_PLUGIN([fb])
3675 dnl Linux kernel mode setting module
3677 PKG_ENABLE_MODULES_VLC([KMS], [], [libdrm >= 2.4.83], [Linux kernel mode setting output], [auto])
3682 PKG_ENABLE_MODULES_VLC([CACA], [], [caca >= 0.99.beta14], [libcaca output],[auto])
3687 AC_ARG_ENABLE([kva],
3688 AS_HELP_STRING([--enable-kva],
3689 [support the K Video Accelerator KVA (default enabled on OS/2)]),, [
3690 AS_IF([test "$SYS" = "os2"], [
3696 AS_IF([test "$enable_kva" != "no"], [
3697 AC_CHECK_HEADERS([kva.h], [
3699 AC_CHECK_LIB([kva], [main], [
3704 AC_SUBST([KVA_LIBS])
3705 AM_CONDITIONAL([HAVE_KVA], [test "${have_kva}" = "yes"])
3710 AC_ARG_ENABLE([mmal],
3711 AS_HELP_STRING([--enable-mmal],
3712 [Multi-Media Abstraction Layer (MMAL) hardware plugin (default enable)]))
3713 if test "${enable_mmal}" != "no"; then
3715 LDFLAGS="${LDFLAGS} -L/opt/vc/lib -lvchostif"
3716 CPPFLAGS="${CPPFLAGS} -isystem /opt/vc/include -isystem /opt/vc/include/interface/vcos/pthreads -isystem /opt/vc/include/interface/vmcs_host/linux"
3717 AC_CHECK_HEADERS([interface/mmal/mmal.h],
3718 [ AC_CHECK_LIB([bcm_host], [vc_tv_unregister_callback_full], [
3720 VLC_ADD_PLUGIN([mmal])
3721 VLC_ADD_LDFLAGS([mmal],[ -L/opt/vc/lib ])
3722 VLC_ADD_CFLAGS([mmal],[ -isystem /opt/vc/include -isystem /opt/vc/include/interface/vcos/pthreads -isystem /opt/vc/include/interface/vmcs_host/linux ])
3723 VLC_ADD_LIBS([mmal],[ -lbcm_host -lmmal -lmmal_core -lmmal_components -lmmal_util -lvchostif -lvcsm -lvchiq_arm ]) ], [
3724 AS_IF([test "${enable_mmal}" = "yes"],
3725 [ AC_MSG_ERROR([Cannot find bcm library...]) ],
3726 [ AC_MSG_WARN([Cannot find bcm library...]) ])
3729 ] , [ AS_IF([test "${enable_mmal}" = "yes"],
3730 [ AC_MSG_ERROR([Cannot find development headers for mmal...]) ],
3731 [ AC_MSG_WARN([Cannot find development headers for mmal...]) ]) ])
3734 AM_CONDITIONAL([HAVE_MMAL], [test "${have_mmal}" = "yes"])
3740 EXTEND_HELP_STRING([Audio plugins:])
3743 dnl Pulseaudio module
3745 AC_ARG_ENABLE([pulse],
3746 AS_HELP_STRING([--enable-pulse],
3747 [use the PulseAudio client library (default auto)]))
3749 AS_IF([test "${enable_pulse}" != "no"], [
3750 PKG_CHECK_MODULES([PULSE], [libpulse >= 1.0], [
3753 AS_IF([test "x${enable_pulse}" != "x"], [
3754 AC_MSG_ERROR([$PULSE_PKG_ERRORS. PulseAudio 1.0 or later required.])
3758 AM_CONDITIONAL([HAVE_PULSE], [test "${have_pulse}" = "yes"])
3763 AC_ARG_ENABLE([alsa],
3764 AS_HELP_STRING([--enable-alsa],
3765 [support the Advanced Linux Sound Architecture (default auto)]),, [
3766 AS_IF([test "$SYS" = "linux" -a "${have_pulse}" = "no"], [
3771 AS_IF([test "${enable_alsa}" != "no"], [
3772 PKG_CHECK_MODULES([ALSA], [alsa >= 1.0.24], [
3775 AS_IF([test "x${enable_alsa}" != "x"], [
3776 AC_MSG_ERROR([$ALSA_PKG_ERRORS. alsa-lib 1.0.24 or later required. Pass --disable-alsa to ignore this error.])
3780 AM_CONDITIONAL([HAVE_ALSA], [test "${have_alsa}" = "yes"])
3783 dnl Open Sound System module
3785 AC_ARG_ENABLE([oss],
3786 AS_HELP_STRING([--enable-oss],
3787 [support the Open Sound System OSS (default enabled on FreeBSD/NetBSD/DragonFlyBSD)]),, [
3788 AS_IF([test "$SYS" = "mingw32" -o "$SYS" = "linux" -o "$SYS" = "openbsd"], [
3794 AS_IF([test "$enable_oss" != "no"], [
3795 AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
3797 AC_CHECK_LIB([ossaudio], [main], [
3798 OSS_LIBS="-lossaudio"
3802 AC_SUBST([OSS_LIBS])
3803 AM_CONDITIONAL([HAVE_OSS], [test "${have_oss}" = "yes"])
3806 dnl OpenBSD sndio module
3808 AC_ARG_ENABLE([sndio],
3809 AS_HELP_STRING([--disable-sndio],
3810 [support the OpenBSD sndio (default auto)]),, [
3811 AS_IF([test "$SYS" = "openbsd"], [
3816 AS_IF([test "$enable_sndio" != "no"], [
3817 AC_CHECK_HEADER([sndio.h], [
3821 AM_CONDITIONAL([HAVE_SNDIO], [test "${have_sndio}" = "yes"])
3824 dnl Windows Audio Session plugin
3826 AC_ARG_ENABLE([wasapi],
3827 AS_HELP_STRING([--enable-wasapi],
3828 [use the Windows Audio Session API (default auto)])
3831 AS_IF([test "$enable_wasapi" != "no"], [
3832 AC_CHECK_HEADER([audioclient.h], [
3835 AS_IF([test "x${enable_wasapi}" != "x"], [
3836 AC_MSG_ERROR([Windows Audio Session API not found.])
3840 AM_CONDITIONAL([HAVE_WASAPI], [test "${have_wasapi}" = "yes"])
3845 AC_ARG_ENABLE([jack],
3846 AS_HELP_STRING([--disable-jack],
3847 [do not use jack (default auto)]))
3849 AS_IF([test "${enable_jack}" != "no"], [
3850 PKG_CHECK_MODULES(JACK, jack >= 1.9.7,
3853 AC_MSG_WARN([${JACK_PKG_ERRORS}, trying jack1 instead])
3855 PKG_CHECK_MODULES(JACK, jack >= 0.120.1 jack < 1.0,
3858 AS_IF([test -n "${enable_jack}"],
3859 [AC_MSG_ERROR([${JACK_PKG_ERRORS}.])],
3860 [AC_MSG_WARN([${JACK_PKG_ERRORS}.])])
3864 AM_CONDITIONAL([HAVE_JACK], [test "${have_jack}" != "no"])
3867 dnl OpenSLES Android
3869 AC_ARG_ENABLE([opensles],
3870 AS_HELP_STRING([--enable-opensles], [Android OpenSL ES audio module (default disabled)]))
3871 if test "${HAVE_ANDROID}" = "1"; then
3872 if test "${enable_opensles}" = "yes"; then
3873 AC_CHECK_HEADERS([SLES/OpenSLES.h],
3874 [ VLC_ADD_PLUGIN([opensles_android]) ],
3875 [ AC_MSG_ERROR([cannot find OpenSLES headers])] )
3880 dnl libsamplerate plugin
3882 PKG_ENABLE_MODULES_VLC([SAMPLERATE], [], [samplerate], [Resampler with libsamplerate], [auto])
3887 PKG_ENABLE_MODULES_VLC([SOXR], [], [soxr >= 0.1.2], [SoX Resampler library], [auto])
3892 AC_ARG_ENABLE([kai],
3893 AS_HELP_STRING([--enable-kai],
3894 [support the K Audio Interface KAI (default enabled on OS/2)]),, [
3895 AS_IF([test "$SYS" = "os2"], [
3901 AS_IF([test "$enable_kai" != "no"], [
3902 AC_CHECK_HEADERS([kai.h], [
3904 AC_CHECK_LIB([kai], [main], [
3909 AC_SUBST([KAI_LIBS])
3910 AM_CONDITIONAL([HAVE_KAI], [test "${have_kai}" = "yes"])
3913 dnl chromaprint audio track fingerprinter
3915 PKG_ENABLE_MODULES_VLC([CHROMAPRINT], [stream_out_chromaprint], [libchromaprint >= 0.6.0], [Chromaprint audio fingeprinter], [auto])
3918 dnl Chromecast streaming support
3920 m4_pushdef([protobuf_lite_version], 2.5.0)
3921 AC_ARG_VAR(PROTOC, [protobuf compiler])
3922 AC_CHECK_PROGS(PROTOC, protoc, no)
3923 PKG_WITH_MODULES([CHROMECAST],[protobuf-lite >= protobuf_lite_version], [
3924 AS_IF([test "x${PROTOC}" != "xno"], [
3925 build_chromecast="yes"
3927 AC_MSG_ERROR(protoc compiler needed for [chromecast] was not found)
3930 AS_IF([test "${enable_chromecast}" = "yes"],
3931 AC_MSG_ERROR(Library [protobuf-lite >= protobuf_lite_version] needed for [chromecast] was not found),
3932 AC_MSG_WARN(Library [protobuf-lite >= protobuf_lite_version] needed for [chromecast] was not found)
3934 enable_chromecast="no"
3935 ], [(Chromecast streaming support)], [auto])
3936 AM_CONDITIONAL([BUILD_CHROMECAST], [test "${build_chromecast}" = "yes"])
3937 m4_popdef([protobuf_lite_version])
3940 dnl Interface plugins
3943 EXTEND_HELP_STRING([Interface plugins:])
3949 AS_HELP_STRING([--disable-qt], [Qt UI support (default enabled)]),, [
3950 AS_IF([test "${enable_vlc}" != "no"], [enable_qt="yes"])
3951 AS_IF([test "${SYS}" = "darwin"], [
3956 AS_IF([test "${enable_qt}" != "no"], [
3957 PKG_CHECK_MODULES([QT], [Qt5Core >= 5.11.0 Qt5Widgets Qt5Gui Qt5Quick Qt5QuickWidgets Qt5QuickControls2 Qt5Svg], [
3958 PKG_CHECK_MODULES([QT5_X11], [Qt5X11Extras], [
3961 AC_MSG_WARN([Not building Qt Interface with X11 helpers.])
3963 QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix Qt5Core)"
3964 QT_HOST_PATH="$(eval $PKG_CONFIG --variable=host_bins Qt5Core)"
3965 QT_VERSION="$(eval $PKG_CONFIG --modversion Qt5Gui)"
3966 AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3967 AC_PATH_PROGS(RCC, [rcc-qt5 rcc], rcc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3968 AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3969 AC_PATH_PROGS(QMLCACHE, [qmlcachegen-qt5 qmlcachegen], no, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3970 AS_IF([test "x${QMLCACHE}" = "xno"], [
3971 AC_MSG_WARN([qmlcachegen not found])
3974 AS_IF([test -n "${enable_qt}"],[
3975 AC_MSG_ERROR([${QT_PKG_ERRORS}. If you want to build VLC without GUI, pass --disable-qt.])
3977 AC_MSG_WARN([${QT_PKG_ERRORS}.])
3983 AC_ARG_ENABLE([qt-qml-cache],
3984 AS_HELP_STRING([--enable-qt-qml-cache],
3985 [enable qml cache generation]))
3986 AM_CONDITIONAL([HAVE_QMLCACHE], [test "${enable_qt_qml_cache}" = "yes" && test "x$QMLCACHE" != "xno"])
3988 AC_ARG_ENABLE([qt-qml-debug],
3989 AS_HELP_STRING([--enable-qt-qml-debug], [enable qml debuger]))
3990 AM_CONDITIONAL(QT_QML_DEBUG, [test "${enable_qt_qml_debug}" = "yes"])
3992 AS_IF([test "${enable_qt}" != "no"], [
3993 ALIASES="${ALIASES} qvlc"
3995 AC_SUBST([QT_VERSION])
3996 AM_CONDITIONAL([ENABLE_QT], [test "$enable_qt" != "no"])
3997 AM_CONDITIONAL([HAVE_QT5_X11], [test "${have_qt5_x11}" = "yes"])
4000 dnl detect kde4-config patch (used for kde solids).
4002 AC_ARG_VAR([KDE4_CONFIG], [kde4-config utility])
4003 AS_IF([test "x$KDE4_CONFIG" = "x"], [
4004 KDE4_CONFIG="kde4-config"
4008 dnl Simple test for skins2 dependency
4010 AS_IF([test "$enable_qt" = "no"], [
4011 AS_IF([test "${enable_skins2}" = "yes"], [
4012 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.])
4015 AC_MSG_WARN([The skins2 module depends on the Qt interface, Qt is not built so skins2 is disabled.])
4022 AC_ARG_ENABLE([skins2],
4023 AS_HELP_STRING([--enable-skins2], [skins interface module (default auto)]))
4024 AS_IF([test "${enable_skins2}" != "no"], [
4025 have_skins_deps="yes"
4028 AS_IF([test "${SYS}" = "mingw32"], [
4029 VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -DWIN32_SKINS])
4030 VLC_ADD_LIBS([skins2],[-lgdi32 -lole32 -luuid -lmsimg32])
4032 ], [test "${SYS}" = "os2"], [
4033 VLC_ADD_CPPFLAGS([skins2],[ -DOS2_SKINS])
4036 PKG_CHECK_MODULES([XPM], [xpm],, [have_skins_deps="no"])
4037 PKG_CHECK_MODULES([XINERAMA], [xinerama],, [have_skins_deps="no"])
4038 PKG_CHECK_MODULES([XCURSOR], [xcursor],, [have_skins_deps="no"])
4039 PKG_CHECK_MODULES([XEXT], [xext],, [have_skins_deps="no"])
4040 VLC_ADD_CPPFLAGS([skins2],[${X_CFLAGS} ${XEXT_CFLAGS} ${XPM_CFLAGS} -DX11_SKINS])
4041 VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} ${XEXT_LIBS} ${XPM_LIBS} ${XINERAMA_LIBS} ${XCURSOR_LIBS} -lX11])
4044 dnl we need freetype
4045 AS_IF([test "${have_freetype}" != "yes"], [
4046 have_skins_deps="no"
4049 AS_IF([test "${have_skins_deps}" = "no"], [
4050 AS_IF([test "x${enable_skins2}" = "x"], [
4051 AC_MSG_WARN([Skins2 interface disabled due to missing dependencies.])
4053 AC_MSG_ERROR([Skins2 interface requires FreeType, libxcursor, libxpm, libxext and libxinerama])
4057 ALIASES="${ALIASES} svlc"
4061 AM_CONDITIONAL([BUILD_SKINS], [test "${enable_skins2}" = "yes"])
4063 AC_ARG_ENABLE([libtar],
4064 AS_HELP_STRING([--enable-libtar], [libtar support for skins2 (default auto)]))
4065 AS_IF([test "${enable_skins2}" = "yes" && test "${enable_libtar}" != "no"], [
4066 AC_CHECK_HEADERS([libtar.h], [
4067 VLC_ADD_LIBS([skins2],[-ltar])
4072 dnl MacOS X gui module
4074 AC_ARG_ENABLE([macosx],
4075 AS_HELP_STRING([--enable-macosx], [Mac OS X gui support (default enabled on Mac OS X)]))
4076 if test "x${enable_macosx}" != "xno" -a "${SYS}" = "darwin"
4080 dnl If possible, use xcrun to find the right ibtool
4083 AC_PATH_PROG([XCRUN], [xcrun], [no])
4084 AS_IF([test ! "x${XCRUN}" = "xno"], [
4085 AC_MSG_CHECKING([for ibtool (using xcrun)])
4086 XIB="$(eval $XCRUN -f ibtool 2>/dev/null || echo no)"
4087 AC_MSG_RESULT([${XIB}])
4089 AC_MSG_WARN([Looking for tools without using xcrun])
4092 AS_IF([test "x${XIB}" = "xno"], [
4093 AC_PATH_PROG(XIB, [ibtool], [no])
4094 AS_IF([test "x${XIB}" = "xno"], [
4095 AC_MSG_ERROR([ibtool was not found, but is required for --enable-macosx])
4099 AM_CONDITIONAL([ENABLE_MACOSX_UI], [test "$enable_macosx" != "no" -a "${SYS}" = "darwin"])
4102 dnl MacOS X sparkle update support
4104 AC_ARG_ENABLE([sparkle],
4105 AS_HELP_STRING([--enable-sparkle], [Sparkle update support for OS X (default enabled on Mac OS X)]))
4106 if test "x${enable_sparkle}" != "xno" -a "${HAVE_OSX}" = "1"
4108 if test ! -d ${CONTRIB_DIR}/Sparkle.framework -a ! -d ${CONTRIB_DIR}/Frameworks/Sparkle.framework
4110 AC_MSG_ERROR([Sparkle framework is required and was not found in ${CONTRIB_DIR}])
4113 AC_DEFINE([HAVE_SPARKLE], [1], [Define to 1 if sparkle is enabled.])
4115 AM_CONDITIONAL([HAVE_SPARKLE], [test "$enable_sparkle" != "no"])
4118 dnl MacOS X breakpad creash reporter support
4120 AC_ARG_WITH([breakpad],
4121 AS_HELP_STRING([--with-breakpad=URL], [Enable Breakpad reporter using given URL]), [], [with_breakpad=no])
4123 AS_IF([test "$with_breakpad" != "no"], [
4125 AS_IF([test "$with_breakpad" = "yes"], [
4126 AC_MSG_ERROR([You need to supply the CrashDragon Server URL as value for --with-breakpad])
4129 AS_IF([test "$HAVE_OSX" = "1"], [
4130 AC_MSG_CHECKING([for Breakpad framework])
4131 AS_IF([test ! -d ${CONTRIB_DIR}/Breakpad.framework -a \
4132 ! -d ${CONTRIB_DIR}/Frameworks/Breakpad.framework], [
4135 AC_MSG_ERROR([Breakpad framework is required and was not found in ${CONTRIB_DIR}])
4137 AC_MSG_RESULT([yes])
4140 PKG_CHECK_MODULES([BREAKPAD], [breakpad-client], [
4141 LDFLAGS="${LDFLAGS} -Wl,--build-id"
4143 AC_MSG_ERROR(["breakpad not found"])
4148 AM_CONDITIONAL([HAVE_BREAKPAD], [test "$with_breakpad" != "no"])
4149 AS_IF([test "$with_breakpad" != "no"], [
4150 AC_SUBST([BREAKPAD_URL], ["${with_breakpad}"])
4154 dnl Minimal Mac OS X module
4156 AC_ARG_ENABLE([minimal-macosx],
4157 AS_HELP_STRING([--enable-minimal-macosx], [Minimal Mac OS X support (default disabled)]))
4158 if test "${enable_minimal_macosx}" = "yes" -a "${SYS}" = "darwin"
4160 VLC_ADD_PLUGIN([minimal_macosx])
4164 dnl Mac OS X fancy dmg build tool
4166 if test "${HAVE_OSX}" = "1"
4168 AC_PATH_PROG(DMGBUILD, dmgbuild, no)
4169 AS_IF([test "x${DMGBUILD}" = "xno"], [
4170 AC_MSG_WARN([dmgbuild not found -- unable to build fancy DMGs])
4173 AM_CONDITIONAL([HAVE_DMGBUILD], [test "x$DMGBUILD" != "xno" -a "${HAVE_OSX}" = "1"])
4176 dnl VideoToolbox plugins
4177 AC_CHECK_HEADERS([VideoToolbox/VideoToolbox.h], [
4178 VLC_ADD_PLUGIN([videotoolbox])
4179 VLC_ADD_PLUGIN([cvpx])
4183 dnl AudioToolbox MIDI plugin
4184 AC_CHECK_HEADERS([AudioToolbox/AudioToolbox.h], [
4185 VLC_ADD_PLUGIN([audiotoolboxmidi])
4191 AC_ARG_ENABLE([ncurses],
4192 AS_HELP_STRING([--disable-ncurses],[ncurses text-based interface (default auto)]))
4194 AS_IF([test "${enable_ncurses}" != "no"] ,[
4195 PKG_CHECK_MODULES([NCURSES], [ncursesw], [
4197 ALIASES="${ALIASES} nvlc"
4199 AS_IF([test -n "${enable_ncurses}"], [
4200 AC_MSG_ERROR([${NCURSES_PKG_ERRORS}.])
4204 AM_CONDITIONAL([HAVE_NCURSES], [test "${have_ncurses}" = "yes"])
4209 AC_ARG_ENABLE([lirc],
4210 AS_HELP_STRING([--enable-lirc], [lirc support (default disabled)]))
4212 AS_IF([test "${enable_lirc}" = "yes"], [
4213 AC_CHECK_HEADER(lirc/lirc_client.h, [
4214 AC_CHECK_LIB([lirc_client], [lirc_init], [
4219 AM_CONDITIONAL([HAVE_LIRC], [test "${have_lirc}" = "yes"])
4224 PKG_CHECK_MODULES([BITSTREAM], [bitstream > 1.4],[have_bitstream="yes"], [have_bitstream="no"])
4225 AM_CONDITIONAL([HAVE_BITSTREAM], [test "${have_bitstream}" = "yes"])
4230 PKG_ENABLE_MODULES_VLC([SRT], [access_srt access_output_srt], [srt >= 1.3.0], [SRT input/output plugin], [auto], [], [], [-DENABLE_SRT])
4232 EXTEND_HELP_STRING([Visualisations and Video filter plugins:])
4234 dnl goom visualization plugin
4236 PKG_ENABLE_MODULES_VLC([GOOM], [], [libgoom2], [goom visualization plugin], [auto])
4239 dnl libprojectM visualization plugin
4241 AC_ARG_ENABLE([projectm],
4242 AS_HELP_STRING([--enable-projectm], [projectM visualization plugin (default enabled)]))
4243 AS_IF([test "${enable_projectm}" != "no"],
4245 PKG_CHECK_MODULES(PROJECTM, libprojectM,
4247 VLC_ADD_PLUGIN([projectm])
4248 PKG_CHECK_EXISTS([libprojectM >= 2.0.0],
4249 [ AC_DEFINE([HAVE_PROJECTM2], 1, [Define to 1 if using libprojectM 2.x]) ],
4250 [ AC_MSG_WARN( [Using libprojectM version 1] )
4253 AC_MSG_WARN([${PROJECTM_PKG_ERRORS}.])
4258 dnl Vovoid VSXu visualization plugin
4260 AC_ARG_ENABLE([vsxu],
4261 AS_HELP_STRING([--enable-vsxu], [Vovoid VSXu visualization plugin (default auto)]))
4262 AS_IF([test "${enable_vsxu}" != "no"],
4264 PKG_CHECK_MODULES(VSXU, libvsxu,
4266 VLC_ADD_PLUGIN([vsxu])
4268 AC_MSG_WARN([${VSXU_PKG_ERRORS}.])
4272 EXTEND_HELP_STRING([Service Discovery plugins:])
4274 dnl Avahi-Zeroconf services discovery
4275 PKG_ENABLE_MODULES_VLC([AVAHI], [], [avahi-client >= 0.6], [Zeroconf services discovery], [auto])
4278 dnl libudev services discovery
4279 PKG_ENABLE_MODULES_VLC([UDEV], [], [libudev >= 142], [Linux udev services discovery], [auto])
4282 dnl MTP devices services discovery
4283 PKG_ENABLE_MODULES_VLC([MTP], [mtp access_mtp], [libmtp >= 1.0.0], [MTP devices support], [auto])
4286 dnl UPnP Plugin (Intel SDK)
4288 PKG_ENABLE_MODULES_VLC([UPNP], [upnp], [libupnp], [Intel UPNP SDK],[auto])
4291 dnl mDNS using libmicrodns
4293 PKG_ENABLE_MODULES_VLC([MICRODNS], [], [microdns >= 0.1.2], [mDNS services discovery], [auto])
4296 EXTEND_HELP_STRING([Misc options:])
4301 PKG_ENABLE_MODULES_VLC([LIBXML2], [xml], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
4307 AC_ARG_ENABLE([libgcrypt],
4308 AS_HELP_STRING([--disable-libgcrypt], [gcrypt support (default enabled)]))
4309 AC_ARG_VAR([GCRYPT_CFLAGS], [C compiler flags for gcrypt])
4310 AC_ARG_VAR([GCRYPT_LIBS], [linker flags flags for gcrypt])
4312 # require libgcrypt >= 1.6.0
4313 AS_IF([test "${enable_libgcrypt}" != "no"], [
4314 AC_CACHE_CHECK([for gcrypt 1.6.0 or later], [ac_cv_lib_gcrypt], [
4316 CFLAGS="${CFLAGS} ${GCRYPT_CFLAGS}"
4317 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
4318 [#include <gcrypt.h>
4319 #if GCRYPT_VERSION_NUMBER < 0x010600
4322 ac_cv_lib_gcrypt=yes
4329 AS_IF([test "${ac_cv_lib_gcrypt}" = "yes"], [
4330 AC_DEFINE([HAVE_GCRYPT], 1, [Defined if having gcrypt])
4332 AS_IF([test "${enable_libgcrypt}" = "yes"], [
4333 AC_MSG_ERROR([libgcrypt version 1.6.0 or higher not found. Install libgcrypt or pass --disable-libgcrypt.])
4338 AS_IF([test -z "$GCRYPT_LIBS"], [
4339 GCRYPT_LIBS="-lgcrypt -lgpg-error"
4342 AC_SUBST([GCRYPT_CFLAGS])
4343 AC_SUBST([GCRYPT_LIBS])
4344 AM_CONDITIONAL([HAVE_GCRYPT], [test "${ac_cv_lib_gcrypt}" = "yes"])
4349 AC_ARG_ENABLE([gnutls],
4350 AS_HELP_STRING([--enable-gnutls], [GNU TLS TLS/SSL support (default enabled)]))
4351 AS_IF([test "${enable_gnutls}" != "no"], [
4352 PKG_CHECK_MODULES(GNUTLS, [gnutls >= 3.5.0], [
4353 VLC_ADD_PLUGIN([gnutls])
4355 AS_IF([test -n "${enable_gnutls}"], [
4356 AC_MSG_ERROR([${GNUTLS_PKG_ERRORS}.)])
4365 AC_ARG_ENABLE([taglib],
4366 AS_HELP_STRING([--disable-taglib],
4367 [do not use TagLib (default enabled)]))
4368 AS_IF([test "${enable_taglib}" != "no"], [
4369 PKG_CHECK_MODULES(TAGLIB, taglib >= 1.11, [
4370 VLC_ADD_PLUGIN([taglib])
4372 AC_MSG_WARN([${TAGLIB_PKG_ERRORS}.])])
4378 PKG_ENABLE_MODULES_VLC([SECRET], [], [libsecret-1 >= 0.18], [use libsecret for keystore], [auto])
4383 AC_ARG_ENABLE([kwallet],
4384 AS_HELP_STRING([--enable-kwallet],
4385 [use kwallet (via D-Bus) for keystore (default enabled)]))
4386 AS_IF([test "${enable_kwallet}" != "no" -a "${have_dbus}" = "yes"], [
4387 VLC_ADD_PLUGIN([kwallet])
4391 dnl update checking system
4393 AC_ARG_ENABLE([update-check],
4394 AS_HELP_STRING([--enable-update-check], [update checking system (default disabled)]))
4395 if test "${enable_update_check}" = "yes"
4397 AS_IF([test "${ac_cv_lib_gcrypt}" != "yes"],[
4398 AC_MSG_ERROR([libgcrypt is required for update checking system]) ])
4400 AM_CONDITIONAL([UPDATE_CHECK], [test "${enable_update_check}" = "yes"])
4403 dnl OS X notification plugin
4405 AC_ARG_ENABLE([osx_notifications],
4406 AS_HELP_STRING([--enable-osx-notifications],
4407 [macOS notification plugin (default disabled)]),,
4408 [enable_osx_notifications=no])
4409 AS_IF([test "${enable_osx_notifications}" != "no"], [
4410 VLC_ADD_PLUGIN([osx_notifications])
4414 dnl Libnotify notification plugin
4416 PKG_ENABLE_MODULES_VLC([NOTIFY], [], [libnotify gtk+-3.0], [libnotify notification], [auto])
4418 PKG_ENABLE_MODULES_VLC([MEDIALIBRARY], [medialibrary], [medialibrary >= 0.7.1], (medialibrary support), [auto])
4421 dnl Endianness check
4424 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
4425 DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
4429 AC_SUBST([DEFS_BIGENDIAN])
4432 dnl Where to install KDE solid .desktop
4434 AC_ARG_WITH(kde-solid,
4435 AS_HELP_STRING([--with-kde-solid=PATH],
4436 [KDE Solid actions directory (auto)]),, [
4438 if test "${SYS}" != "mingw32" -a "${SYS}" != "darwin" -a "${HAVE_ANDROID}" != "1" ; then
4439 with_kde_solid="yes"
4443 AS_IF([test "${with_kde_solid}" != "no"], [
4444 AS_IF([test "${with_kde_solid}" = "yes"], [
4445 kde4datadir="`${KDE4_CONFIG} --install data`"
4446 AS_IF([test "x$kde4datadir" = "x"], [kde4datadir='${datadir}/kde4/apps'])
4447 soliddatadir="${kde4datadir}/solid/actions"
4449 soliddatadir="${with_kde_solid}"
4452 AC_SUBST([soliddatadir])
4453 AM_CONDITIONAL([KDE_SOLID], [test "x${soliddatadir}" != "x"])
4456 dnl Find tools for win32 packaging
4458 AS_IF([test "${SYS}" = "mingw32"], [
4460 dnl Find makensis required to build the NSIS installer
4462 nsis_major_required="3"
4463 nsis_version_ok="no"
4464 AC_PATH_PROG([MAKENSIS], [makensis], [no])
4465 AS_IF([test "$MAKENSIS" != "no"], [
4467 AC_MSG_CHECKING([makensis version])
4468 nsis_version=$($MAKENSIS -VERSION)
4469 AC_MSG_RESULT([$nsis_version])
4470 nsis_version_major=$(echo "$nsis_version" | awk -F \. '{print $1}' | sed 's/v//')
4471 # Check if major version is a valid number
4472 AS_IF([test -n "$nsis_version_major" && \
4473 test "$nsis_version_major" -eq "$nsis_version_major" 2> /dev/null], [
4474 # Do the version check using major version
4475 AS_IF([test "$nsis_version_major" -lt "$nsis_major_required"], [
4476 AC_MSG_WARN([makensis too old, (needs ${nsis_major_required}.x, have ${nsis_version_major}.x)])
4478 nsis_version_ok="yes"
4481 AC_MSG_WARN([failed to check the makensis version])
4487 AC_PATH_PROG([SEVENZIP], [7z], [7z])
4489 AM_CONDITIONAL([HAVE_MAKENSIS], [test "x$MAKENSIS" != "xno" && test "$nsis_version_ok" = "yes"])
4492 dnl Check wether we have the PROCESS_MITIGATION_IMAGE_LOAD_POLICY
4493 dnl It should only be available when building for win10, but some SDKs define it unconditionnaly
4495 if test "${SYS}" = "mingw32"; then
4496 AC_CHECK_TYPES([PROCESS_MITIGATION_IMAGE_LOAD_POLICY],,,[#include <windows.h>])
4499 EXTEND_HELP_STRING([Components:])
4504 AC_ARG_ENABLE([vlc],
4505 AS_HELP_STRING([--enable-vlc], [build the VLC media player (default enabled)]))
4506 AM_CONDITIONAL([BUILD_VLC], [test "${enable_vlc}" != "no"])
4509 dnl Fuzzer (at the end not to mess dependencies FLAGS)
4511 AS_VAR_IF(with_libfuzzer, no, [], [
4512 LIBS="-lstdc++ ${LIBM}"
4513 AS_IF([test "${with_libfuzzer}" != "yes"], [
4514 LIBS="$LIBS -L${with_libfuzzer}"
4516 LIBS="$LIBS -lFuzzer"
4517 AX_CHECK_COMPILE_FLAG(-fsanitize-coverage=trace-pc-guard, [
4518 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc-guard])
4519 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc-guard], [CXXFLAGS])
4520 AX_APPEND_COMPILE_FLAGS([-fsanitize-coverage=trace-cmp])
4521 AX_APPEND_COMPILE_FLAGS([-fsanitize-coverage=trace-cmp], [CXXFLAGS])
4523 AX_CHECK_COMPILE_FLAG(-fsanitize-coverage=trace-pc, [
4524 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc])
4525 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc], [CXXFLAGS])
4527 AC_MSG_ERROR([Sanitizer coverage not supported by your compiler])
4533 dnl Stuff used by the program
4535 VERSION_MESSAGE="${VERSION} ${CODENAME}"
4536 COPYRIGHT_MESSAGE="Copyright © ${COPYRIGHT_YEARS} the VideoLAN team"
4537 AC_DEFINE_UNQUOTED([VERSION_MESSAGE], "${VERSION_MESSAGE}", [Simple version string])
4538 AC_DEFINE_UNQUOTED([COPYRIGHT_MESSAGE], "${COPYRIGHT_MESSAGE}", [Copyright string])
4539 AC_DEFINE_UNQUOTED([COPYRIGHT_YEARS], "${COPYRIGHT_YEARS}", [The copyright years])
4540 AC_DEFINE_UNQUOTED([CONFIGURE_LINE], "${CONFIGURE_LINE}", [The ./configure command line])
4541 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_MAJOR],${VERSION_MAJOR}, [version major number])
4542 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_MINOR],${VERSION_MINOR}, [version minor number])
4543 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_REVISION],${VERSION_REVISION}, [version revision number])
4544 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_EXTRA],${VERSION_EXTRA}, [version extra number])
4545 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_DEV],"${VERSION_DEV}", [version development string])
4546 AC_SUBST([COPYRIGHT_MESSAGE])
4547 AC_SUBST([VERSION_MESSAGE])
4548 AC_SUBST([VERSION_MAJOR])
4549 AC_SUBST([VERSION_MINOR])
4550 AC_SUBST([VERSION_REVISION])
4551 AC_SUBST([VERSION_EXTRA])
4552 AC_SUBST([COPYRIGHT_YEARS])
4553 AC_DEFINE_UNQUOTED([VLC_COMPILE_BY], "`whoami|sed -e 's/\\\/\\\\\\\/g'`", [user who ran configure])
4554 AC_DEFINE_UNQUOTED([VLC_COMPILE_HOST], "`hostname -f 2>/dev/null || hostname`", [host which ran configure])
4555 AC_DEFINE_UNQUOTED([VLC_COMPILER], "`$CC -v 2>&1 | tail -n 1 | sed -e 's/ *$//'`", [compiler])
4557 dnl Handle substvars that use $(top_srcdir)
4559 CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS}"
4562 dnl Configuration is finished
4572 AC_SUBST([WINE_SDK_PATH])
4574 AC_SUBST([AM_CPPFLAGS])
4575 AC_SUBST([MACOSX_DEPLOYMENT_TARGET])
4576 AC_SUBST([FILE_LIBVLCCORE_DLL])
4577 AC_SUBST([FILE_LIBVLC_DLL])
4591 modules/hw/mmal/Makefile
4592 share/vlc.appdata.xml.in
4595 AM_COND_IF([HAVE_WIN32], [
4597 extras/package/win32/NSIS/spad.nsi
4598 extras/package/win32/NSIS/vlc.win32.nsi
4599 extras/package/win32/msi/config.wxi
4603 AM_COND_IF([HAVE_DARWIN], [
4605 modules/gui/macosx/UI/InfoPlist.strings:modules/gui/macosx/Resources/InfoPlist.strings.in
4606 share/macosx/Info.plist:share/Info.plist.in
4610 dnl Generate makefiles
4613 dnl Do we have to use make or gmake ?
4614 if make --version 2>&1|grep -q GNU
4616 # GNU make, all seems good
4619 # Known GNU make alias (on BSD)
4622 dnl Shortcut to nice compile message
4623 if test -n $SHELL; then
4624 SHELL=${CONFIG_SHELL-/bin/sh}
4627 compile_top_srcdir=`sed -ne "s/^top_srcdir *= *//p" < Makefile`
4631 export PATH=\"$PATH\" LANG=C
4632 ($MAKE V=1 \$@ 2>&1 || touch .error\$\$)| $compile_top_srcdir/extras/buildsystem/make.pl
4633 test -f .error\$\$ && ERROR=1
4635 exit \$ERROR" >compile
4639 libvlc configuration
4640 --------------------
4641 version : ${VERSION}
4643 architecture : ${ARCH}
4644 optimizations : ${enable_optimizations}"
4645 if test "${enable_vlc}" != "no"; then
4646 echo "vlc aliases :${ALIASES}"
4648 echo "build vlc executable : no"
4651 To build vlc and its plugins, type \`$MAKE', or \`./compile' if you like nice colors."