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])
205 [#import <TargetConditionals.h>
213 [#import <TargetConditionals.h>
223 AS_IF([test "${HAVE_OSX}" = "1"],[VLC_ADD_LIBS([libvlccore],[-Wl,-framework,CoreServices])])
226 dnl Handle Mac OS X SDK flags
228 AC_ARG_WITH(macosx-sdk,
229 AS_HELP_STRING([--with-macosx-sdk=DIR],
230 [compile using the SDK in DIR]))
231 if test "${with_macosx_sdk}" != "" ; then
232 test ! -d "${with_macosx_sdk}" && AC_MSG_ERROR([SDK "${with_macosx_sdk}" not found])
233 CPP="${CPP} -isysroot ${with_macosx_sdk}"
234 CC="${CC} -isysroot ${with_macosx_sdk}"
235 CXX="${CXX} -isysroot ${with_macosx_sdk}"
236 OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
237 LD="${LD} -syslibroot ${with_macosx_sdk}"
239 AC_ARG_WITH(macosx-version-min,
240 AS_HELP_STRING([--with-macosx-version-min=VERSION],
241 [compile for Mac OS X VERSION and above]))
242 if test "${with_macosx_version_min}" != "" ; then
243 CPP="${CPP} -mmacosx-version-min=${with_macosx_version_min}"
244 CC="${CC} -mmacosx-version-min=${with_macosx_version_min}"
245 CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
246 OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
247 LD="${LD} -mmacosx_version_min=${with_macosx_version_min}"
250 *mingw32* | *cygwin* | *wince* | *mingwce*)
251 dnl Force libtool to not link to (shared) libgcc_s when detecting C++ dependencies
252 dnl When doing this test with -static-libgcc it will link on (static) libgcc_eh
253 CXXFLAGS="${CXXFLAGS} -static-libgcc"
254 AC_CHECK_TOOL(WINDRES, windres, :)
255 AC_CHECK_TOOL(OBJCOPY, objcopy, :)
256 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
257 [[#ifdef _WIN32_WINNT
258 # error _WIN32_WINNT already defined
260 # include <windows.h>
261 # if defined(_WIN32_WINNT) && _WIN32_WINNT >= 0x0601
262 # error _WIN32_WINNT toolchain default high enough
267 AC_DEFINE([_WIN32_WINNT], [0x0601], [Define to '0x0601' for Windows 7 APIs.])
269 AC_MSG_CHECKING([if libsynchronization is needed])
270 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
271 [[#if _WIN32_WINNT >= 0x0602
272 # error building for Win8+ and above
279 VLC_ADD_LIBS([libvlccore], [-lsynchronization])
281 AC_DEFINE([_WIN32_IE], [0x0600], [Define to '0x0600' for IE 6.0 (and shell) APIs.])
282 AC_DEFINE([UNICODE], [1], [Define to 1 for Unicode (Wide Chars) APIs.])
283 AC_DEFINE([_ISOC99_SOURCE], [1], [Extensions to ISO C89 from ISO C99.])
284 AC_DEFINE([_ISOC11_SOURCE], [1], [Extensions to ISO C99 from ISO C11.])
285 AC_DEFINE([_POSIX_SOURCE], [1], [IEEE Std 1003.1.])
286 AC_DEFINE([_POSIX_C_SOURCE], [200809L], [IEEE Std 1003.1.])
287 AC_DEFINE([_XOPEN_SOURCE], [700], [POSIX and XPG 7th edition])
288 AC_DEFINE([_XOPEN_SOURCE_EXTENDED], [1], [XPG things and X/Open Unix extensions.])
289 AC_DEFINE([_BSD_SOURCE], [1], [ISO C, POSIX, and 4.3BSD things.])
290 AC_DEFINE([_SVID_SOURCE], [1], [ISO C, POSIX, and SVID things.])
297 dnl Check if we are using the mno-cygwin mode in which case we are
298 dnl actually dealing with a mingw32 compiler.
303 SYS=mingw32, AC_MSG_ERROR([VLC requires -mno-cygwin]))
307 if test "${SYS}" = "mingw32"; then
309 LDFLAGS="${LDFLAGS} -Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase"
311 AC_CHECK_PROGS(U2D, [unix2dos todos], unix2dos)
312 ac_default_prefix="`pwd`/_win32"
313 DESTDIR="`pwd`/_win32/"
316 dnl NSIS/MSI Installer prefix and WIN64
318 case "${host_cpu}" in
322 PROGRAMFILES="PROGRAMFILES64"
323 LDFLAGS="${LDFLAGS} -Wl,--high-entropy-va -Wl,--image-base,0x140000000"
328 PROGRAMFILES="PROGRAMFILES64"
329 LDFLAGS="${LDFLAGS} -Wl,--high-entropy-va -Wl,--image-base,0x140000000"
330 X86ASMFLAGS="-f win64"
334 PROGRAMFILES="PROGRAMFILES"
338 PROGRAMFILES="PROGRAMFILES"
339 X86ASMFLAGS="-f win32"
340 X86ASMDEFS="${X86ASMDEFS} -DPREFIX"
343 AC_SUBST([WINDOWS_ARCH])
344 AC_SUBST([PROGRAMFILES])
359 LDFLAGS="${LDFLAGS} -Zomf -Zbin-files -Zargs-wild -Zhigh-mem"
360 AC_LIBOBJ([freeaddrinfo])
361 AC_LIBOBJ([gai_strerror])
362 AC_CHECK_FUNCS([if_nametoindex])
363 X86ASMFLAGS="-f aout"
364 X86ASMDEFS="-DARCH_X86_32=1 -DARCH_X86_64=0 -DPREFIX"
368 AC_DEFINE([_XOPEN_SOURCE], [700], [POSIX and XPG 7th edition])
379 AC_ARG_ENABLE([winstore_app],
380 AS_HELP_STRING([--enable-winstore-app],
381 [Build targetted for Windows Store apps (default disabled)]))
384 AS_IF([test "${SYS}" = "mingw32"],[
386 AS_IF([test "${enable_winstore_app}" = "yes"], [
389 AX_APPEND_FLAG([-DWINSTORECOMPAT],[CFLAGS])
390 AX_APPEND_FLAG([-DWINSTORECOMPAT],[CPPFLAGS])
391 AX_APPEND_FLAG([-DWINSTORECOMPAT],[CXXFLAGS])
392 LDFLAGS="${LDFLAGS} -lwindowsappcompat"
393 VLC_ADD_LIBS([libvlccore], [-lruntimeobject])
394 AC_LIBOBJ([gai_strerror])
398 AC_DEFINE_UNQUOTED(VLC_WINSTORE_APP, ${vlc_winstore_app}, [Define to 1 if you want to build for Windows Store apps])
402 AS_HELP_STRING([--enable-pdb],
403 [Build PDB files for windows targets (default off)]))
404 AS_IF([test "${SYS}" = "mingw32"],[
405 AS_IF([test "${enable_pdb}" = "yes"], [
407 AX_APPEND_FLAG([-g -gcodeview],[CFLAGS])
408 AX_APPEND_FLAG([-g -gcodeview],[CXXFLAGS])
409 LDFLAGS="${LDFLAGS} -Wl,-pdb="
413 AM_CONDITIONAL([HAVE_FREEBSD], [test "${SYS}" = "freebsd"])
414 AM_CONDITIONAL([HAVE_LINUX], [test "${SYS}" = "linux"])
415 AM_CONDITIONAL([HAVE_OS2], [test "${SYS}" = "os2"])
417 AM_CONDITIONAL([HAVE_DARWIN], [test "${SYS}" = "darwin"])
418 AM_CONDITIONAL([HAVE_IOS], [test "${HAVE_IOS}" = "1"])
419 AM_CONDITIONAL([HAVE_OSX], [test "${HAVE_OSX}" = "1"])
420 AM_CONDITIONAL([HAVE_TVOS], [test "${HAVE_TVOS}" = "1"])
422 AM_CONDITIONAL([HAVE_NACL], [test "${SYS}" = "nacl"])
423 AM_CONDITIONAL([HAVE_LIBANL], [test "${HAVE_LIBANL}" = "1"])
425 AM_CONDITIONAL([HAVE_WIN32], [test "${SYS}" = "mingw32"])
426 AM_CONDITIONAL([HAVE_WIN64], [test "${HAVE_WIN64}" = "1"]) dnl Only used for the packaging
427 AM_CONDITIONAL([HAVE_WINSTORE], [test "$vlc_winstore_app" = "1"])
428 AM_CONDITIONAL([HAVE_WIN32_DESKTOP], [test "${SYS}" = "mingw32" -a "$vlc_winstore_app" = "0"])
429 AM_CONDITIONAL([ENABLE_PDB], [test "$vlc_build_pdb" = "1"])
431 dnl Use nasm/yasm only on x86
432 AC_CHECK_PROGS(X86ASM, [nasm yasm])
433 AM_CONDITIONAL([HAVE_X86ASM], [test -n "${X86ASM}" && test -n "${X86ASMFLAGS}"])
434 AM_COND_IF([HAVE_X86ASM], [
435 AC_DEFINE([HAVE_X86ASM], [1], [Use external asm on x86.])
438 dnl Because DOLT is not able to handle --with-pic
439 dnl correctly, manually add -DPIC to the options for
440 dnl nasm / yasm here.
441 AS_IF([test x$with_pic = xyes], [X86ASMDEFS="${X86ASMDEFS} -DPIC"])
443 AC_SUBST([X86ASMFLAGS])
444 AC_SUBST([X86ASMDEFS])
447 dnl Sadly autoconf does not think about testing foo.exe when ask to test
448 dnl for program foo on win32
449 case "${build_os}" in
451 ac_executable_extensions=".exe"
460 AC_SUBST([BUILDEXEEXT])
462 dnl Android is linux, but a bit different
463 AS_IF([test "$SYS" = linux],[
464 AC_MSG_CHECKING([for an Android system])
465 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
466 [[#ifndef __ANDROID__
477 AM_CONDITIONAL([HAVE_ANDROID], [test "${HAVE_ANDROID}" = "1"])
480 dnl Check for the contrib directory
483 AS_HELP_STRING([--with-contrib[=DIR]],
484 [search for 3rd party libraries in DIR/include and DIR/lib])
486 AC_MSG_CHECKING([for 3rd party libraries path])
487 AS_IF([test -z "${with_contrib}" || test "${with_contrib}" = "yes"], [
488 CONTRIB_DIR="${srcdir}/contrib/${host}"
489 AS_IF([test ! -d "${CONTRIB_DIR}"], [
490 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
491 CONTRIB_DIR="${srcdir}/contrib/`$CC -dumpmachine`"
492 AS_IF([test ! -d "${CONTRIB_DIR}"], [
493 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
495 AC_MSG_RESULT([not found])
499 AS_IF([test "${with_contrib}" != "no"], [
500 CONTRIB_DIR="${with_contrib}"
503 AC_MSG_RESULT([disabled])
506 AS_IF([test -n "${CONTRIB_DIR}"], [
507 AS_IF([test -d "${CONTRIB_DIR}/lib"],[
508 CONTRIB_DIR=`cd "${CONTRIB_DIR}" && pwd`
510 echo "${CONTRIB_DIR}/lib not found" >&AS_MESSAGE_LOG_FD
512 AC_MSG_RESULT([not usable])
516 AS_IF([test -n "${CONTRIB_DIR}"], [
517 AC_MSG_RESULT([${CONTRIB_DIR}])
518 CPPFLAGS="${CPPFLAGS} -I${CONTRIB_DIR}/include"
519 CFLAGS="${CFLAGS} -I${CONTRIB_DIR}/include"
520 CXXFLAGS="${CXXFLAGS} -I${CONTRIB_DIR}/include"
521 OBJCFLAGS="${OBJCFLAGS} -I${CONTRIB_DIR}/include -F${CONTRIB_DIR} -F${CONTRIB_DIR}/Frameworks"
522 PKG_CONFIG_PATH="${CONTRIB_DIR}/lib/pkgconfig:${CONTRIB_DIR}/share/pkgconfig:${PKG_CONFIG_PATH}"
523 case "${build_os}" in
525 export PKG_CONFIG_PATH=`cygpath -mp ${PKG_CONFIG_PATH}`
528 export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}"
531 LDFLAGS="${LDFLAGS} -L${CONTRIB_DIR}/lib"
533 AS_IF([test -z "$LUAC"], [
534 dnl Old contribs mixed cross-tools and cross-compiled executables
535 AS_IF([test -x "${CONTRIB_DIR}/bin/luac${BUILDEXEEXT}"], [
536 LUAC="${CONTRIB_DIR}/bin/luac${BUILDEXEEXT}"
539 dnl Newer contribs follow usual name space rules
540 AS_IF([test -x "${CONTRIB_DIR}/../bin/${host_alias}-luac${BUILDEXEEXT}"], [
541 LUAC="${CONTRIB_DIR}/../bin/${host_alias}-luac${BUILDEXEEXT}"
545 AS_IF([test "${SYS}" = "darwin"], [
546 export LD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$LD_LIBRARY_PATH"
547 export DYLD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$DYLD_LIBRARY_PATH"
550 AS_IF([test -n "${with_contrib}" && test "${with_contrib}" != "no"], [
551 AC_MSG_ERROR([Third party libraries not found!])
554 AC_SUBST([CONTRIB_DIR])
556 dnl Add extras/tools to the PATH
557 TOOLS_DIR="${srcdir}/extras/tools/build/bin"
558 AS_IF([test -d "${TOOLS_DIR}"], [
559 TOOLS_DIR=`cd "${TOOLS_DIR}" && pwd`
560 export PATH="${TOOLS_DIR}":$PATH
565 dnl It's very bad, but our former custom system was worst
569 dnl override platform specific check for dependent libraries
570 dnl otherwise libtool linking of shared libraries will
571 dnl fail on anything other than pass_all.
572 AC_CACHE_VAL(lt_cv_deplibs_check_method,
573 [lt_cv_deplibs_check_method=pass_all])
575 LT_INIT([dlopen win32-dll shared disable-static])
577 LT_LANG([Windows Resource])
581 lt_cv_deplibs_check_method=pass_all
583 AS_IF([test "${enable_shared}" = "no" -a "${enable_vlc}" != "no"], [
584 AC_MSG_ERROR([VLC is based on plugins. Shared libraries cannot be disabled.])
590 AM_GNU_GETTEXT_VERSION([0.19.8])
591 AM_GNU_GETTEXT([external], [need-formatstring-macros])
600 AS_IF([test "${SYS}" = "mingw32"], [
602 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
603 #if !defined(__MINGW32__)
604 # error Not compiling with mingw
608 dnl Check for broken versions of mingw-runtime compatability library
609 AC_MSG_CHECKING(for broken mingw-runtime)
610 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
612 #if defined(__MINGW64_VERSION_MAJOR)
613 # if __MINGW64_VERSION_MAJOR < 5
614 # error Update your mingw-w64! This one is too old.
617 # error You cannot compile with Mingw. Use Mingw-w64!
622 AC_MSG_RESULT([present])
623 AC_MSG_ERROR([LibVLC requires Mingw-w64 version 5.0 or higher!])
626 dnl force use of mingw provided c99 *printf over msvcrt
627 CPPFLAGS="${CPPFLAGS} -D__USE_MINGW_ANSI_STDIO=1"
629 dnl Check for the need to include the mingwex lib for mingw32
631 AC_CHECK_LIB([mingwex], [opendir],
632 AC_CHECK_LIB([mingw32], [opendir],,
633 [VLC_ADD_LIBS([libvlccore],[-lmingwex])])
637 AC_MSG_RESULT([Not compiling with mingw])
640 dnl Check for fnative-struct or mms-bitfields support for mingw32
641 AX_CHECK_COMPILE_FLAG([-mms-bitfields], [
642 AX_APPEND_FLAG([-mms-bitfields], [CFLAGS])
643 AX_APPEND_FLAG([-mms-bitfields], [CXXFLAGS])
644 # Check for the warning flag without "-Wno-", GCC accepts
645 # -Wno-<anything> for unsupported warnings, which can trigger
646 # other warnings instead.
647 AX_CHECK_COMPILE_FLAG([-Wincompatible-ms-struct], [
648 AX_APPEND_FLAG([-Wno-incompatible-ms-struct], [CFLAGS])
649 AX_APPEND_FLAG([-Wno-incompatible-ms-struct], [CXXFLAGS])
652 AX_CHECK_COMPILE_FLAG([-fnative-struct], [
653 AX_APPEND_FLAG([-fnative-struct], [CFLAGS])
654 AX_APPEND_FLAG([-fnative-struct], [CXXFLAGS])
661 dnl Buggy glibc prevention. Purposedly not cached.
662 dnl See sourceware.org bugs 5058 and 5443.
663 dnl Ubuntu alone has 20 bug numbers for this...
665 AC_MSG_CHECKING(for buggy GNU/libc versions)
666 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
668 #if defined (__GLIBC__) && (__GLIBC__ == 2) \
669 && (__GLIBC_MINOR__ >= 5) && (__GLIBC_MINOR__ <= 7)
670 # error GNU/libc with dcgettext killer bug!
673 AC_MSG_RESULT([not present])
675 AC_MSG_RESULT([found])
676 AS_IF([test "x${enable_nls}" != "xno"], [
677 AC_MSG_ERROR([Buggy GNU/libc (version 2.5 - 2.7) present. VLC would crash; there is no viable
678 work-around for this. Check with your distribution vendor on how to update the
679 glibc run-time. Alternatively, build with --disable-nls.])
683 dnl Plugin compilation stuff
687 dnl Check for system libs needed
690 dnl Check for usual libc functions
691 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])
692 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])
693 AC_REPLACE_FUNCS([gettimeofday])
694 AC_CHECK_FUNC(fdatasync,,
695 [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
698 VLC_REPLACE_DECL([realpath], [#include <stdlib.h>])
700 dnl mingw64 implements those as static inline, not functions with C linkage
701 VLC_REPLACE_DECL([asprintf], [#include <stdio.h>])
702 VLC_REPLACE_DECL([vasprintf], [#include <stdio.h>])
703 VLC_REPLACE_DECL([gmtime_r], [#include <time.h>])
704 VLC_REPLACE_DECL([localtime_r], [#include <time.h>])
706 dnl C11 static_assert()
707 AC_MSG_CHECKING([for static_assert in assert.h])
708 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <assert.h>], [
709 static_assert(1, "The impossible happened.");
712 AC_DEFINE([HAVE_STATIC_ASSERT], [1], [Define to 1 if <assert.h> defines static_assert.])
717 # Windows CE does not have strcoll()
720 dnl Check for non-standard system calls
723 AC_CHECK_FUNCS([eventfd vmsplice sched_getaffinity recvmmsg memfd_create])
726 AC_CHECK_FUNCS([_lock_file])
730 AH_BOTTOM([#include <vlc_fixups.h>])
732 dnl Check for struct timespec
733 AC_CHECK_TYPES([struct timespec],,,
736 dnl Check for max_align_t
737 AC_CHECK_TYPES([max_align_t],,,
738 [#include <stddef.h>])
740 dnl Checks for socket stuff
743 AC_SEARCH_LIBS(connect, [socket], [
744 AS_IF([test "$ac_cv_search_connect" != "none required"], [
745 SOCKET_LIBS="$ac_cv_search_connect"
748 AS_IF([test "${SYS}" = "mingw32"], [
749 SOCKET_LIBS="-lws2_32 -liphlpapi"
753 AC_SEARCH_LIBS([inet_pton], [nsl], [
754 AS_IF([test "$ac_cv_search_inet_pton" != "none required"], [
755 SOCKET_LIBS="$ac_cv_search_inet_pton $SOCKET_LIBS"
757 ],, [${SOCKET_LIBS}])
759 LIBS="${LIBS} ${SOCKET_LIBS}"
761 AC_LANG_PROGRAM([#ifdef _WIN32
762 #include <ws2tcpip.h>
764 # if _WIN32_WINNT < 0x600
768 #include <sys/socket.h>
769 #include <arpa/inet.h>
771 char dst[[sizeof(struct in_addr)]];
772 inet_pton(AF_INET, "127.0.0.1", dst);
773 ])],[AC_DEFINE([HAVE_INET_PTON],[1],[Define to 1 if you have inet_pton function])],[AC_LIBOBJ([inet_pton])])
774 AC_CHECK_TYPES([struct if_nameindex],,,[#include <net/if.h>])
775 AC_CHECK_FUNCS([if_nameindex])
777 AC_SUBST([SOCKET_LIBS])
779 dnl Check for socklen_t
780 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
781 AC_CACHE_CHECK([for socklen_t in sys/socket.h], dnl ` (fix VIM syntax highlight
782 ac_cv_type_socklen_t,
783 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
784 [#include <sys/types.h>
786 # include <winsock2.h>
787 # include <ws2tcpip.h>
789 # include <sys/socket.h>
790 #endif]], [[socklen_t len; len = 0;]])],
791 ac_cv_type_socklen_t=yes,
792 ac_cv_type_socklen_t=no)])
793 AS_IF([test "$ac_cv_type_socklen_t" = no], [
796 #include <sys/types.h>
798 # include <winsock2.h>
799 # include <ws2tcpip.h>
801 # include <sys/socket.h>
804 _Generic(getpeername, int (*)(int, struct sockaddr *, int *): 0);
806 ], AC_DEFINE(socklen_t, int), AC_DEFINE(socklen_t, unsigned int))
809 dnl Check for struct sockaddr_storage
810 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
811 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
812 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
814 [#include <sys/types.h>
815 #if defined( _WIN32 )
816 # include <winsock2.h>
818 # include <sys/socket.h>
819 #endif], [struct sockaddr_storage addr;],
820 ac_cv_struct_sockaddr_storage=yes,
821 ac_cv_struct_sockaddr_storage=no)])
822 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
823 AC_DEFINE(sockaddr_storage, sockaddr)
824 AC_DEFINE(ss_family, sa_family)
827 dnl FreeBSD has a gnugetopt library for this:
829 AC_CHECK_FUNC(getopt_long,, [
830 AC_CHECK_LIB([gnugetopt],[getopt_long], [
831 GNUGETOPT_LIBS="-lgnugetopt"
834 AC_SUBST([GNUGETOPT_LIBS])
836 AC_CHECK_LIB([m], [cos], [
843 AC_CHECK_LIB([m], [lrintf], [
844 AC_DEFINE(HAVE_LRINTF, 1, [Define to 1 if you have the lrintf function])
845 VLC_ADD_LIBS([skins2],[-lm])
847 AC_CHECK_LIB([m], [nanf],
848 AC_DEFINE(HAVE_NANF, 1, [Define to 1 if you have the NANF function])
850 AC_CHECK_LIB([m], [sincos], [
851 AC_DEFINE(HAVE_SINCOS, 1, [Define to 1 if you have the sincos function.])
856 AC_MSG_CHECKING([broken qsort_r prototype])
857 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <stdlib.h>
859 _Static_assert(_Generic((qsort_r),
860 void (*)(void *, size_t, size_t, void *,
861 int (*)(void *, const void *, const void *)) : 1, default: 0),
862 "Bad prototype not matched");
864 AC_MSG_RESULT([broken])
865 AC_DEFINE([HAVE_BROKEN_QSORT_R], 1, [Defined to 1 if the qsort_r() prototype contradicts the upcoming POSIX standard.])
870 AC_MSG_CHECKING([_Thread_local support])
871 AC_COMPILE_IFELSE([AC_LANG_SOURCE([_Thread_local int foo = 0;
874 AC_DEFINE(HAVE_THREAD_LOCAL, 1, [Defined to 1 if C11 _Thread_local storage qualifier is supported])
875 ],[ AC_MSG_RESULT([no])])
877 dnl __STDC_NO_THREADS__ can't be trusted on some platforms.
878 dnl check for its availability explicitely
879 AC_CHECK_HEADERS([threads.h])
881 AC_CHECK_LIB([anl],[getaddrinfo_a],[
882 AC_DEFINE(HAVE_LIBANL, 1, [Define to 1 if you have the anl library])
885 dnl Check for dynamic plugins
887 have_dynamic_objects="no"
889 AC_SEARCH_LIBS(dlsym, [dl svld], [
890 AS_IF([test "$ac_cv_search_dlsym" != "none required"], [
891 LIBDL="$ac_cv_search_dlsym"
893 have_dynamic_objects="yes"
898 AS_IF([test "${SYS}" = "mingw32"], [
900 have_dynamic_objects="yes" #assume we can use shared objects
903 AC_ARG_WITH([libfuzzer],
904 AS_HELP_STRING([--with-libfuzzer=DIR],
905 [use libFuzzer library from DIR and triggers sanitize coverage (default disabled)]),
908 AS_VAR_IF(with_libfuzzer, no, [], [
913 AM_CONDITIONAL([HAVE_LIBFUZZER], [test "${with_libfuzzer}" != "no"])
915 AS_IF([test "${enable_shared}" = "no"], [
916 have_dynamic_objects=no
918 AM_CONDITIONAL([HAVE_DYNAMIC_PLUGINS], [test "${have_dynamic_objects}" != "no"])
922 AS_IF([test "${SYS}" != "mingw32"], [
923 AC_SEARCH_LIBS([clock_nanosleep], [rt pthread], [
924 AS_IF([test "$ac_cv_search_clock_nanosleep" != "none required"], [
925 LIBRT="$ac_cv_search_clock_nanosleep"
928 AC_SEARCH_LIBS([nanosleep], [rt pthread posix4], [
929 AS_IF([test "$ac_cv_search_nanosleep" != "none required"], [
930 LIBRT="$ac_cv_search_nanosleep"
937 dnl Check for clock_* functions, needs to be done here,
938 dnl after the -lrt check
939 AC_REPLACE_FUNCS([clock_gettime clock_nanosleep clock_getres])
942 dnl Check for headers
946 AC_CHECK_HEADERS([arpa/inet.h poll.h pthread.h search.h sys/shm.h sys/socket.h sys/uio.h])
947 AC_CHECK_HEADERS([net/if.h], [], [],
949 #include <sys/types.h>
950 #include <sys/socket.h>
952 AC_CHECK_HEADER([syslog.h], [have_syslog="yes"], [have_syslog="no"])
953 AM_CONDITIONAL([HAVE_SYSLOG], [test "$have_syslog" = "yes"])
956 AC_CHECK_HEADERS([netinet/tcp.h netinet/udplite.h sys/param.h sys/mount.h])
959 AC_CHECK_HEADERS([features.h getopt.h linux/dccp.h linux/magic.h sys/eventfd.h])
962 AC_CHECK_HEADERS([xlocale.h])
964 dnl Check for struct pollfd
965 AC_CHECK_TYPES([struct pollfd],,,
966 [#include <sys/types.h>
969 #elif defined (_WIN32)
970 # include <winsock2.h>
974 dnl Check if C++ headers define locale_t
976 AC_CACHE_CHECK([if C++ headers define locale_t],
977 [ac_cv_cxx_locale_t],
978 [ac_cv_cxx_locale_t=no
979 AC_TRY_COMPILE([#include <locale>], [locale_t loc;],
980 [ac_cv_cxx_locale_t=yes])])
981 if test "${ac_cv_cxx_locale_t}" != "no"; then
982 AC_DEFINE(HAVE_CXX_LOCALE_T, 1, Define to 1 if C++ headers define locale_t)
986 dnl LP64 and LLP64 architectures had better define ssize_t by themselves...
987 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.]) dnl ` (fix VIM syntax highlight
988 AC_CHECK_TYPE(ssize_t,, [
989 AC_DEFINE(ssize_t, int)
992 dnl It seems that autoconf detects pkg-config only during the first
993 dnl PKG_CHECK_MODULES from configure.ac - which makes sense. But in our case,
994 dnl it is nested within a conditional block, so it was not working right.
995 PKG_PROG_PKG_CONFIG()
997 dnl On some OS we need static linking
998 AS_IF([test -n "${PKG_CONFIG}" ],[
999 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "darwin" -o "${SYS}" = "os2" ],[
1000 PKG_CONFIG="${PKG_CONFIG} --static"
1006 dnl Check for zlib.h and -lz if available
1008 AC_CHECK_HEADERS([zlib.h], [ have_zlib=yes ], [ have_zlib=no ])
1009 AM_CONDITIONAL([HAVE_ZLIB], [ test "${have_zlib}" = "yes" ])
1010 if test "${have_zlib}" = "yes"
1012 VLC_ADD_LIBS([sap],[-lz])
1017 dnl Domain name i18n support via GNU libidn
1019 PKG_CHECK_MODULES([IDN], [libidn], [
1021 AC_DEFINE([HAVE_IDN], 1, [Define to 1 if you have GNU libidn.])
1028 AC_ARG_ENABLE([dbus],
1029 AS_HELP_STRING([--enable-dbus],
1030 [compile D-Bus message bus support (default enabled)]))
1032 AS_IF([test "${enable_dbus}" != "no"], [
1033 PKG_CHECK_MODULES(DBUS, [dbus-1 >= 1.6.0], [
1036 AS_IF([test -n "${enable_dbus}"], [
1037 AC_MSG_ERROR([${DBUS_PKG_ERRORS}.])
1039 AC_MSG_WARN([${DBUS_PKG_ERRORS}.])
1043 AM_CONDITIONAL([HAVE_DBUS], [test "${have_dbus}" = "yes"])
1046 dnl Check for systemd
1047 PKG_CHECK_MODULES([SYSTEMD], [libsystemd], [
1050 AC_MSG_WARN([${SYSTEMD_PKG_ERRORS}.])
1052 AM_CONDITIONAL([HAVE_SYSTEMD], [test "${have_systemd}" = "yes"])
1055 EXTEND_HELP_STRING([Optimization options:])
1057 dnl Compiler warnings
1060 AX_APPEND_COMPILE_FLAGS([-Wall -Wextra -Wsign-compare -Wundef -Wpointer-arith -Wvolatile-register-var -Wformat -Wformat-security -Wduplicated-branches -Wduplicated-cond], [CFLAGS])
1061 AX_APPEND_COMPILE_FLAGS([-Wall -Wextra -Wsign-compare -Wundef -Wpointer-arith -Wvolatile-register-var -Wformat -Wformat-security -Wduplicated-branches -Wduplicated-cond], [CXXFLAGS])
1063 dnl -Werror-implicit-function-declaration is used for the if_nametoindex detection with winstore
1064 AX_APPEND_COMPILE_FLAGS([-Wbad-function-cast -Wwrite-strings -Wmissing-prototypes -Werror-implicit-function-declaration -Winit-self -Wlogical-op -Wshadow=local -Wmultistatement-macros], [CFLAGS])
1065 AX_APPEND_COMPILE_FLAGS([-pipe], [CFLAGS])
1067 dnl UWP forbidden checks
1068 AS_IF([test "${SYS}" = "mingw32"], [
1069 AC_MSG_CHECKING(for if_nametoindex availability)
1070 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
1071 [[#include <windows.h>
1072 #if defined(__MINGW64_VERSION_MAJOR) && __MINGW64_VERSION_MAJOR < 6
1073 # include <wincrypt.h>
1075 #include <iphlpapi.h>
1076 static void test (void) {
1081 AC_MSG_RESULT([present])
1082 AC_DEFINE([HAVE_IF_NAMETOINDEX], [1], [Define to 1 if you have if_nametoindex function])
1084 AC_MSG_RESULT([not present])
1091 AC_ARG_ENABLE([debug],
1092 AS_HELP_STRING([--disable-debug],
1093 [disable run-time assertions (default enabled)]),,
1094 [enable_debug="yes"])
1096 [Define to 1 if debug code should NOT be compiled])
1097 AS_IF([test "${enable_debug}" != "no"], [
1098 AC_CHECK_HEADERS([valgrind/valgrind.h])
1106 AC_ARG_ENABLE([gprof],
1107 AS_HELP_STRING([--enable-gprof],[profile with gprof (default disabled)]),,
1108 [enable_gprof="no"])
1109 AS_IF([test "${enable_gprof}" != "no"], [
1110 CFLAGS="${CFLAGS} -pg"
1111 CXXFLAGS="${CXXFLAGS} -pg"
1112 OBJCFLAGS="${OBJCFLAGS} -pg"
1113 LDFLAGS="${LDFLAGS} -pg"
1116 AC_ARG_ENABLE([cprof],
1117 AS_HELP_STRING([--enable-cprof],[profile with cprof (default disabled)]),,
1118 [enable_cprof="no"])
1119 AS_IF([test "${enable_gprof}" != "no"], [
1120 CFLAGS="${CFLAGS} -finstrument-functions"
1121 CXXFLAGS="${CXXFLAGS} -finstrument-functions"
1122 OBJCFLAGS="${OBJCFLAGS} -finstrument-functions"
1123 LDFLAGS="${LDFLAGS} -finstrument-functions"
1129 AC_ARG_ENABLE([coverage],
1130 AS_HELP_STRING([--enable-coverage],
1131 [build for test coverage (default disabled)]),,
1132 [enable_coverage="no"])
1133 AS_IF([test "${enable_coverage}" != "no"], [
1134 CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
1135 CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
1136 LDFLAGS="-lgcov ${LDFLAGS}"
1139 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "os2"], [
1141 CFLAGS="${CFLAGS} -fvisibility=hidden"
1142 CXXFLAGS="${CXXFLAGS} -fvisibility=hidden"
1143 OBJCFLAGS="${OBJCFLAGS} -fvisibility=hidden"
1144 AC_CACHE_CHECK([if $CC accepts -fvisibility=hidden],
1145 [ac_cv_c_visibility_hidden], [
1146 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1147 ac_cv_c_visibility_hidden=yes
1149 ac_cv_c_visibility_hidden=no
1152 AS_IF([test "${ac_cv_c_visibility_hidden}" = "no"], [VLC_RESTORE_FLAGS])
1158 AC_ARG_WITH([sanitizer],
1159 AS_HELP_STRING([--with-sanitizer=(address/memory/undefined/thread)],
1160 [build with sanitizer flags (default disabled)]),
1162 [with_sanitizer=no])
1164 AS_VAR_IF(with_sanitizer, no, [], [
1165 AX_CHECK_COMPILE_FLAG([-fsanitize=${with_sanitizer}], [
1166 AX_APPEND_FLAG([-fsanitize=${with_sanitizer}])
1167 AX_APPEND_FLAG([-fsanitize=${with_sanitizer}], [CXXFLAGS])
1168 AX_APPEND_FLAG([-fsanitize=${with_sanitizer}], [LDFLAGS])
1170 AC_MSG_ERROR(["-fsanitize=${with_sanitizer} not supported!"])
1172 AX_APPEND_FLAG([-g])
1173 AX_APPEND_FLAG([-g], [CXXFLAGS])
1175 AS_IF([test -z "${with_sanitizer##*address*}" ], [
1176 AX_APPEND_COMPILE_FLAGS([-fsanitize-address-use-after-scope -fno-omit-frame-pointer -fsanitize=pointer-compare -fsanitize=pointer-subtract])
1177 AX_APPEND_COMPILE_FLAGS([-fsanitize-address-use-after-scope -fno-omit-frame-pointer -fsanitize=pointer-compare -fsanitize=pointer-subtract], [CXXFLAGS])
1179 AS_IF([test -z "${with_sanitizer##*memory*}" ], [
1180 AX_APPEND_COMPILE_FLAGS([-fPIE -pie])
1181 AX_APPEND_COMPILE_FLAGS([-fPIE -pie], [CXXFLAGS])
1183 AS_IF([test -z "${with_sanitizer##*thread*}" ], [
1184 AX_APPEND_COMPILE_FLAGS([-fPIE -pie])
1185 AX_APPEND_COMPILE_FLAGS([-fPIE -pie], [CXXFLAGS])
1190 dnl Enable/disable optimizations
1192 AC_ARG_ENABLE([optimizations],
1193 AS_HELP_STRING([--disable-optimizations],
1194 [disable compiler optimizations (default enabled)]),,
1195 [enable_optimizations="yes"])
1197 dnl Check for various optimization flags
1198 AS_IF([test "${enable_optimizations}" != "no"], [
1200 dnl -O3 only in production builds
1201 AS_IF([test "${enable_debug}" = "no"], [
1203 CFLAGS="${CFLAGS} -O3"
1204 CXXFLAGS="${CXXFLAGS} -O3"
1205 OBJCFLAGS="${OBJCFLAGS} -O3"
1206 AC_CACHE_CHECK([if $CC accepts -O3], [ac_cv_c_o3], [
1207 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1213 AS_IF([test "${ac_cv_c_o3}" = "no"], [VLC_RESTORE_FLAGS])
1216 dnl Check for fast maths
1217 AX_APPEND_COMPILE_FLAGS([-fno-math-errno -funsafe-math-optimizations -fno-rounding-math -fno-signaling-nans -fcx-limited-range], [CFLAGS])
1218 AX_APPEND_COMPILE_FLAGS([-fno-math-errno -funsafe-math-optimizations -fno-rounding-math -fno-signaling-nans -fcx-limited-range], [CXXFLAGS])
1221 #if defined(_MSC_VER) && !defined(__clang__)
1222 # pragma fenv_access(off)
1223 # pragma fp_contract(on)
1224 #elif defined(__GNUC__)
1225 /* Not supported so far */
1227 # pragma STDC FENV_ACCESS OFF
1228 # pragma STDC FP_CONTRACT ON
1232 dnl Check for -funroll-loops
1234 CFLAGS="${CFLAGS} -funroll-loops"
1235 CXXFLAGS="${CXXFLAGS} -funroll-loops"
1236 OBJCFLAGS="${OBJCFLAGS} -funroll-loops"
1237 AC_CACHE_CHECK([if $CC accepts -funroll-loops], [ac_cv_c_unroll_loops], [
1238 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1239 ac_cv_c_unroll_loops=yes
1241 ac_cv_c_unroll_loops=no
1244 AS_IF([test "${ac_cv_c_unroll_loops}" = "no"], [VLC_RESTORE_FLAGS])
1246 AS_IF([test "$enable_debug" = "no"], [
1247 dnl Check for -fomit-frame-pointer
1249 CFLAGS="${CFLAGS} -fomit-frame-pointer"
1250 CXXFLAGS="${CXXFLAGS} -fomit-frame-pointer"
1251 OBJCFLAGS="${OBJCFLAGS} -fomit-frame-pointer"
1252 AC_CACHE_CHECK([if $CC accepts -fomit-frame-pointer],
1253 [ac_cv_c_omit_frame_pointer], [
1254 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1255 ac_cv_c_omit_frame_pointer=yes
1257 ac_cv_c_omit_frame_pointer=no
1260 AS_IF([test "${ac_cv_c_omit_frame_pointer}" = "no"], [VLC_RESTORE_FLAGS])
1265 AC_ARG_ENABLE([ssp],
1266 AS_HELP_STRING([--disable-ssp],
1267 [disable stack smashing protection (default enabled for optimized builds)]), [],
1270 AS_IF([test "${enable_ssp}" != "no" -a "${enable_optimizations}" != "no"], [
1272 AX_APPEND_COMPILE_FLAGS([-fstack-protector-strong])
1273 AX_APPEND_COMPILE_FLAGS([-fstack-protector-strong], [CXXFLAGS])
1274 dnl Win32 requires linking to ssp for stack-protection
1275 AS_IF([test "${SYS}" = "mingw32"], [
1276 LDFLAGS="${LDFLAGS} -lssp"
1277 AC_CACHE_CHECK([if linker supports stack protectors], [ac_cv_ld_ssp], [
1278 AC_TRY_LINK([#include <stdio.h>],[char buf[100]; fgets(buf, sizeof(buf), stdin);], [
1284 AS_IF([test "${ac_cv_ld_ssp}" = "no"], [VLC_RESTORE_FLAGS])
1288 AS_IF([test "${SYS}" = "mingw32"], [
1289 dnl library for BCrypt APIs
1290 AS_IF([test "${vlc_winstore_app}" = 1],
1291 VLC_ADD_LIBS([libvlccore], [-lbcrypt]))
1295 LDFLAGS="${LDFLAGS} -Wl,-Bsymbolic"
1296 AC_CACHE_CHECK([if linker supports -Bsymbolic], [ac_cv_ld_bsymbolic], [
1298 ac_cv_ld_bsymbolic="-Wl,-Bsymbolic"
1300 ac_cv_ld_bsymbolic=""
1304 SYMBOLIC_LDFLAGS="${ac_cv_ld_bsymbolic}"
1305 AC_SUBST([SYMBOLIC_LDFLAGS])
1308 LDFLAGS="${LDFLAGS} -Wl,-z,defs"
1309 AC_CACHE_CHECK([if linker supports -z,defs], [ac_cv_ld_z_defs], [
1311 ac_cv_ld_z_defs="yes"
1313 ac_cv_ld_z_defs="no"
1316 AS_IF([test "${ac_cv_ld_z_defs}" = "no"], [VLC_RESTORE_FLAGS])
1318 dnl Check for __attribute__((packed))
1319 AC_CACHE_CHECK([for __attribute__((packed))],
1320 [ac_cv_c_attribute_packed],
1321 [ac_cv_c_attribute_packed=no
1322 AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b; (void)b;],
1323 [ac_cv_c_attribute_packed=yes])])
1324 if test "${ac_cv_c_attribute_packed}" != "no"; then
1325 AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1331 case "${host_cpu}" in
1344 dnl Check for backtrace() support
1345 AC_CHECK_HEADERS([execinfo.h])
1346 AC_CHECK_FUNCS([backtrace])
1351 ALIASES="${ALIASES} cvlc rvlc"
1354 dnl Accelerated modules
1357 dnl Check for fully working MMX intrinsics
1358 dnl We need support for -mmmx, we need <mmintrin.h>, and we also need a
1359 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1360 AC_ARG_ENABLE([mmx],
1361 AS_HELP_STRING([--disable-mmx],
1362 [disable MMX optimizations (default auto)]),,[
1363 case "${host_cpu}" in
1374 AS_IF([test "${enable_mmx}" != "no"], [
1377 CFLAGS="${CFLAGS} -mmmx"
1378 AC_CACHE_CHECK([if $CC groks MMX intrinsics], [ac_cv_c_mmx_intrinsics], [
1379 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1380 [#include <mmintrin.h>
1382 uint64_t frobzor;]], [
1384 a = b = c = (__m64)frobzor;
1385 a = _mm_slli_pi16(a, 3);
1386 a = _mm_adds_pi16(a, b);
1387 c = _mm_srli_pi16(c, 8);
1388 c = _mm_slli_pi16(c, 3);
1389 b = _mm_adds_pi16(b, c);
1390 a = _mm_unpacklo_pi8(a, b);
1391 frobzor = (uint64_t)a;]])], [
1392 ac_cv_c_mmx_intrinsics=yes
1394 ac_cv_c_mmx_intrinsics=no
1398 AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1399 AC_DEFINE(HAVE_MMX_INTRINSICS, 1, [Define to 1 if MMX intrinsics are available.])
1403 CFLAGS="${CFLAGS} -mmmx"
1404 AC_CACHE_CHECK([if $CC groks MMX inline assembly], [ac_cv_mmx_inline], [
1405 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1407 asm volatile("packuswb %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1410 ac_cv_mmx_inline=yes
1415 AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1416 AC_DEFINE(CAN_COMPILE_MMX, 1, [Define to 1 inline MMX assembly is available.])
1420 AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1421 [ac_cv_mmxext_inline], [
1422 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1424 asm volatile("maskmovq %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1427 ac_cv_mmxext_inline=yes
1429 ac_cv_mmxext_inline=no
1433 AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1434 AC_DEFINE(CAN_COMPILE_MMXEXT, 1, [Define to 1 if MMX EXT inline assembly is available.])
1438 AM_CONDITIONAL([HAVE_MMX], [test "${have_mmx}" = "yes"])
1439 AM_CONDITIONAL([HAVE_MMXEXT], [test "${have_mmxext}" = "yes"])
1441 dnl Check for fully workin SSE2 intrinsics
1442 dnl We need support for -msse[2], we need <emmintrin.h>, and we also need a
1443 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1444 AC_ARG_ENABLE([sse],
1445 AS_HELP_STRING([--disable-sse],
1446 [disable SSE (1-4) optimizations (default auto)]),, [
1447 case "${host_cpu}" in
1457 AS_IF([test "${enable_sse}" != "no"], [
1458 ARCH="${ARCH} sse sse2"
1461 CFLAGS="${CFLAGS} -msse2"
1462 AC_CACHE_CHECK([if $CC groks SSE2 intrinsics], [ac_cv_c_sse2_intrinsics], [
1463 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1464 [#include <emmintrin.h>
1466 uint64_t frobzor;]], [
1468 a = b = c = _mm_set1_epi64((__m64)frobzor);
1469 a = _mm_slli_epi16(a, 3);
1470 a = _mm_adds_epi16(a, b);
1471 c = _mm_srli_epi16(c, 8);
1472 c = _mm_slli_epi16(c, 3);
1473 b = _mm_adds_epi16(b, c);
1474 a = _mm_unpacklo_epi8(a, b);
1475 frobzor = (uint64_t)_mm_movepi64_pi64(a);]])], [
1476 ac_cv_c_sse2_intrinsics=yes
1478 ac_cv_c_sse2_intrinsics=no
1482 AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1483 AC_DEFINE(HAVE_SSE2_INTRINSICS, 1, [Define to 1 if SSE2 intrinsics are available.])
1487 CFLAGS="${CFLAGS} -msse"
1488 AC_CACHE_CHECK([if $CC groks SSE inline assembly], [ac_cv_sse_inline], [
1489 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1491 asm volatile("xorps %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1494 ac_cv_sse_inline=yes
1500 AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1501 AC_DEFINE(CAN_COMPILE_SSE, 1, [Define to 1 if SSE inline assembly is available.])
1504 AC_CACHE_CHECK([if $CC groks SSE2 inline assembly], [ac_cv_sse2_inline], [
1505 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1507 asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1510 ac_cv_sse2_inline=yes
1512 ac_cv_sse2_inline=no
1515 AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1516 AC_DEFINE(CAN_COMPILE_SSE2, 1, [Define to 1 if SSE2 inline assembly is available.])
1521 AC_CACHE_CHECK([if $CC groks SSE3 inline assembly], [ac_cv_sse3_inline], [
1522 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1524 asm volatile("movsldup %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1527 ac_cv_sse3_inline=yes
1529 ac_cv_sse3_inline=no
1533 AS_IF([test "${ac_cv_sse3_inline}" != "no"], [
1534 AC_DEFINE(CAN_COMPILE_SSE3, 1, [Define to 1 if SSE3 inline assembly is available.]) ])
1537 AC_CACHE_CHECK([if $CC groks SSSE3 inline assembly], [ac_cv_ssse3_inline], [
1538 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1540 asm volatile("pabsw %%xmm0,%%xmm0"::"r"(p):"xmm0");
1543 ac_cv_ssse3_inline=yes
1545 ac_cv_ssse3_inline=no
1549 AS_IF([test "${ac_cv_ssse3_inline}" != "no"], [
1550 AC_DEFINE(CAN_COMPILE_SSSE3, 1, [Define to 1 if SSSE3 inline assembly is available.]) ])
1553 AC_CACHE_CHECK([if $CC groks SSE4.1 inline assembly],
1554 [ac_cv_sse4_1_inline], [
1555 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1557 asm volatile("pmaxsb %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1560 ac_cv_sse4_1_inline=yes
1562 ac_cv_sse4_1_inline=no
1566 AS_IF([test "${ac_cv_sse4_1_inline}" != "no"], [
1567 AC_DEFINE(CAN_COMPILE_SSE4_1, 1, [Define to 1 if SSE4_1 inline assembly is available.]) ])
1570 AC_CACHE_CHECK([if $CC groks SSE4.2 inline assembly],
1571 [ac_cv_sse4_2_inline], [
1572 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1574 asm volatile("pcmpgtq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1577 ac_cv_sse4_2_inline=yes
1579 ac_cv_sse4_2_inline=no
1583 AS_IF([test "${ac_cv_sse4_2_inline}" != "no"], [
1584 AC_DEFINE(CAN_COMPILE_SSE4_2, 1, [Define to 1 if SSE4_2 inline assembly is available.]) ])
1587 AC_CACHE_CHECK([if $CC groks SSE4A inline assembly], [ac_cv_sse4a_inline], [
1588 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1590 asm volatile("insertq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1593 ac_cv_sse4a_inline=yes
1595 ac_cv_sse4a_inline=no
1599 AS_IF([test "${ac_cv_sse4a_inline}" != "no"], [
1600 AC_DEFINE([CAN_COMPILE_SSE4A], [1], [Define to 1 if SSE4A inline assembly is available.]) ])
1602 AM_CONDITIONAL([HAVE_SSE2], [test "$have_sse2" = "yes"])
1604 dnl Check for fully workin AVX2 intrinsics
1605 dnl We need support for -mavx[2], we need <immintrin.h>, and we also need a
1606 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1607 AC_ARG_ENABLE([avx],
1608 AS_HELP_STRING([--disable-avx],
1609 [disable AVX (1-2) optimizations (default auto)]),, [
1610 case "${host_cpu}" in
1620 AS_IF([test "${enable_avx}" != "no"], [
1621 ARCH="${ARCH} avx avx2"
1624 CFLAGS="${CFLAGS} -mavx2"
1625 AC_CACHE_CHECK([if $CC groks AVX2 intrinsics], [ac_cv_c_avx2_intrinsics], [
1626 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1627 [#include <immintrin.h>
1629 uint64_t frobzor;]], [
1631 a = b = c = _mm256_set1_epi64x((int64_t)frobzor);
1632 a = _mm256_slli_epi16(a, 3);
1633 a = _mm256_adds_epi16(a, b);
1634 c = _mm256_srli_epi16(c, 8);
1635 c = _mm256_slli_epi16(c, 3);
1636 b = _mm256_adds_epi16(b, c);
1637 a = _mm256_unpacklo_epi8(a, b);
1638 frobzor = (uint64_t)_mm256_extract_epi64(a, 0);]])], [
1639 ac_cv_c_avx2_intrinsics=yes
1641 ac_cv_c_avx2_intrinsics=no
1645 AS_IF([test "${ac_cv_c_avx2_intrinsics}" != "no"], [
1646 AC_DEFINE(HAVE_AVX2_INTRINSICS, 1, [Define to 1 if AVX2 intrinsics are available.])
1650 CFLAGS="${CFLAGS} -mavx"
1651 AC_CACHE_CHECK([if $CC groks AVX inline assembly], [ac_cv_avx_inline], [
1652 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1654 asm volatile("xorps256 %%ymm1,%%ymm2"::"r"(p):"ymm1", "ymm2");
1657 ac_cv_avx_inline=yes
1663 AS_IF([test "${ac_cv_avx_inline}" != "no" -a "${SYS}" != "solaris"], [
1664 AC_DEFINE(CAN_COMPILE_AVX, 1, [Define to 1 if AVX inline assembly is available.])
1667 AC_CACHE_CHECK([if $CC groks AVX2 inline assembly], [ac_cv_avx2_inline], [
1668 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1670 asm volatile("punpckhqdq256 %%ymm1,%%ymm2"::"r"(p):"ymm1", "ymm2");
1673 ac_cv_avx2_inline=yes
1675 ac_cv_avx2_inline=no
1679 AS_IF([test "${ac_cv_avx2_inline}" != "no" -a "${SYS}" != "solaris"], [
1680 AC_DEFINE(CAN_COMPILE_AVX2, 1, [Define to 1 if AVX2 inline assembly is available.])
1684 AM_CONDITIONAL([HAVE_AVX2], [test "$have_avx2" = "yes"])
1687 CFLAGS="${CFLAGS} -mmmx"
1689 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly], [ac_cv_3dnow_inline], [
1690 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1692 asm volatile("pfadd %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1695 ac_cv_3dnow_inline=yes
1697 ac_cv_3dnow_inline=no
1701 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1702 AC_DEFINE([CAN_COMPILE_3DNOW], 1,
1703 [Define to 1 if 3D Now! inline assembly is available.])
1706 AM_CONDITIONAL([HAVE_3DNOW], [test "$have_3dnow" = "yes"])
1709 AC_ARG_ENABLE([neon],
1710 AS_HELP_STRING([--disable-neon],
1711 [disable ARM NEON optimizations (default auto)]),, [
1712 case "${host_cpu}" in
1724 AS_IF([test "${enable_neon}" != "no"], [
1726 AC_CACHE_CHECK([if $CCAS groks ARM NEON assembly], [ac_cv_arm_neon], [
1727 AS_IF([test "${enable_neon}" != "64"], [
1728 CFLAGS="${CFLAGS} -mfpu=neon -mhard-float"
1731 asm volatile("vqmovun.s64 d0, q1":::"d0");
1739 CFLAGS="${CFLAGS} -march=armv8-a+simd"
1742 asm volatile("uhadd v0.8b, v0.8b, v1.8b":::"v0");
1753 AM_CONDITIONAL([HAVE_NEON], [test "${ac_cv_arm_neon}" = "32"])
1754 AM_CONDITIONAL([HAVE_ARM64], [test "${ac_cv_arm_neon}" = "64"])
1756 AC_ARG_ENABLE([sve],
1757 AS_HELP_STRING([--disable-sve],
1758 [disable ARM SVE optimizations (default auto)]),, [
1759 AS_IF([test "${host_cpu}" = "aarch64"], [enable_sve="yes"] ,[enable_sve="no"])
1761 AS_IF([test "${enable_sve}" != "no"], [
1763 CFLAGS="${CFLAGS} -march=armv8-a+sve"
1764 AC_CACHE_CHECK([if $CCAS groks ARM SVE assembly], [ac_cv_arm_sve], [
1767 asm volatile("ptrue p0.s" ::: "p0");
1777 AM_CONDITIONAL([HAVE_SVE], [test "${ac_cv_arm_sve}" = "yes"])
1779 AC_ARG_ENABLE([branch-protection],
1780 AS_HELP_STRING([--disable-branch-protection],
1781 [disable AArch64 branch protection (default auto)]),, [
1782 AS_IF([test "${host_cpu}" = "aarch64"],
1783 [enable_branch_protection="yes"], [enable_branch_protection="no"])
1785 AS_IF([test "${enable_branch_protection}" != "no"], [
1786 AX_CHECK_COMPILE_FLAG([-mbranch-protection=standard], [
1787 AX_APPEND_FLAG([-mbranch-protection=standard], [CFLAGS])
1788 AX_APPEND_FLAG([-mbranch-protection=standard], [CXXFLAGS])
1793 AC_ARG_ENABLE([altivec],
1794 AS_HELP_STRING([--disable-altivec],
1795 [disable AltiVec optimizations (default auto)]),, [
1796 AS_CASE("${host_cpu}", [powerpc*],
1797 [enable_altivec=yes], [enable_altivec=no])
1801 AS_IF([test "${enable_altivec}" = "yes"], [
1802 ARCH="${ARCH} altivec";
1804 AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1805 [ac_cv_altivec_inline],
1806 [AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1807 ac_cv_altivec_inline="yes",
1808 [CFLAGS="${CFLAGS} -Wa,-maltivec"
1809 AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1810 [ac_cv_altivec_inline="-Wa,-maltivec"],
1811 ac_cv_altivec_inline=no)
1814 AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1815 AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1816 [Define to 1 if AltiVec inline assembly is available.])
1817 AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1818 ALTIVEC_CFLAGS="${ac_cv_altivec_inline}"
1819 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_altivec_inline}])
1825 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1826 [ac_cv_c_altivec], [
1827 CFLAGS="${CFLAGS} -maltivec"
1828 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1829 [#include <altivec.h>]], [
1830 [vec_ld(0, (unsigned char *)0);]])], [
1831 ac_cv_c_altivec="-maltivec"
1833 ac_cv_c_altivec="no"
1837 AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1838 CPPFLAGS="${CPPFLAGS} ${ac_cv_c_altivec}"
1839 AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, [Define to 1 if C AltiVec extensions are available.])
1840 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_c_altivec}])
1841 ALTIVEC_CFLAGS="$ALTIVEC_CFLAGS ${ac_cv_c_altivec}"
1842 VLC_ADD_CFLAGS([deinterlace],[${ac_cv_c_altivec}])
1845 AC_CHECK_HEADERS([altivec.h])
1848 LDFLAGS="${LDFLAGS} -Wl,-framework,vecLib"
1849 AC_CACHE_CHECK([if linker needs -framework vecLib],
1851 [AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)])
1853 AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1854 VLC_ADD_LIBS([libvlccore],[-Wl,-framework,vecLib])
1857 AC_SUBST([ALTIVEC_CFLAGS])
1858 AM_CONDITIONAL([HAVE_ALTIVEC], [test "$have_altivec" = "yes"])
1863 AC_ARG_ENABLE([optimize-memory],
1864 AS_HELP_STRING([--enable-optimize-memory],
1865 [optimize memory usage over performance]))
1866 if test "${enable_optimize_memory}" = "yes"; then
1867 AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1871 dnl Allow running as root (useful for people running on embedded platforms)
1873 AC_ARG_ENABLE([run-as-root],
1874 AS_HELP_STRING([--enable-run-as-root],
1875 [allow running VLC as root (default disabled)]))
1876 AS_IF([test "${enable_run_as_root}" = "yes"],[
1877 AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1878 [Define to 1 to allow running VLC as root (uid 0).])
1884 AC_ARG_ENABLE([sout],
1885 AS_HELP_STRING([--disable-sout],
1886 [disable streaming output (default enabled)]))
1887 AS_IF([test "${enable_sout}" != "no"], [
1888 AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1890 AM_CONDITIONAL([ENABLE_SOUT], [test "${enable_sout}" != "no"])
1893 AC_ARG_ENABLE([lua],
1894 AS_HELP_STRING([--disable-lua],
1895 [disable LUA scripting support (default enabled)]))
1896 if test "${enable_lua}" != "no"
1898 PKG_CHECK_MODULES(LUA, lua5.2,
1901 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua 5.1 instead])
1903 PKG_CHECK_MODULES(LUA, lua5.1,
1906 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua >= 5.1 instead])
1907 PKG_CHECK_MODULES(LUA, lua >= 5.1,
1910 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying manual detection instead])
1912 AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1915 AC_CHECK_LIB( lua5.2 , luaL_newstate,
1916 [LUA_LIBS="-llua5.2"],
1917 AC_CHECK_LIB( lua5.1 , luaL_newstate,
1918 [LUA_LIBS="-llua5.1"],
1919 AC_CHECK_LIB( lua51 , luaL_newstate,
1920 [LUA_LIBS="-llua51"],
1921 AC_CHECK_LIB( lua , luaL_newstate,
1929 if test "x${have_lua}" != "xyes" ; then
1930 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.])
1932 AC_ARG_VAR([LUAC], [LUA byte compiler])
1933 AS_IF([test -z "$LUAC"], [
1934 AC_CHECK_TOOL(LUAC, [luac], [false])
1936 AS_IF([test "${LUAC}" = "false"], [
1937 AC_MSG_ERROR([Could not find the LUA byte compiler.])
1939 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], [
1940 AC_MSG_ERROR([You need 32-bits luac when using lua from contrib.])
1943 AM_CONDITIONAL([BUILD_LUA], [test "${have_lua}" = "yes"])
1947 dnl VideoLAN manager
1949 AC_ARG_ENABLE([vlm],
1950 AS_HELP_STRING([--disable-vlm],
1951 [disable the stream manager (default enabled)]),,
1952 [enable_vlm="${enable_sout}"])
1953 AS_IF([test "${enable_vlm}" != "no"], [
1954 AS_IF([test "${enable_sout}" = "no"], [
1955 AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1957 AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1959 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1963 dnl Addons manager storage and repositories modules
1965 AC_ARG_ENABLE([addonmanagermodules],
1966 AS_HELP_STRING([--disable-addonmanagermodules],
1967 [disable the addons manager modules (default enabled)]))
1968 if test "${enable_addonmanagermodules}" != "no"
1970 AC_DEFINE(ENABLE_ADDONMANAGERMODULES, 1, [Define if you want the addons manager modules])
1972 AM_CONDITIONAL([ENABLE_ADDONMANAGERMODULES], [test "${enable_addonmanagermodules}" != "no"])
1979 EXTEND_HELP_STRING([Input plugins:])
1982 dnl libarchive access module
1984 PKG_ENABLE_MODULES_VLC([ARCHIVE], [archive], [libarchive >= 3.1.0], (libarchive support), [auto])
1989 AC_ARG_ENABLE([live555],
1990 AS_HELP_STRING([--enable-live555],
1991 [enable RTSP input through live555 (default enabled)]))
1993 AS_IF([test "${enable_live555}" != "no" -a -n "${CXX}"], [
1994 PKG_CHECK_MODULES(LIVE555, live555, [
1995 VLC_ADD_PLUGIN([live555])
1996 VLC_ADD_CXXFLAGS([live555], [$LIVE555_CFLAGS])
1997 VLC_ADD_LIBS([live555],[$LIVE555_LIBS])
1999 AC_MSG_WARN([${LIVE555_PKG_ERRORS}.])
2004 dnl detect include paths
2005 AS_IF([test -f "${CONTRIB_DIR}/include/UsageEnvironment/UsageEnvironment.hh"], [
2006 CPPFLAGS_live555="-I${CONTRIB_DIR}/include/liveMedia -I${CONTRIB_DIR}/include/groupsock -I${CONTRIB_DIR}/include/BasicUsageEnvironment -I${CONTRIB_DIR}/include/UsageEnvironment"
2008 AS_IF([test "${SYS}" != "os2"], [
2009 LIVE555_PREFIX=${LIVE555_PREFIX-"/usr"}
2010 CPPFLAGS_live555="-I${LIVE555_PREFIX}/include/liveMedia -I${LIVE555_PREFIX}/include/groupsock -I${LIVE555_PREFIX}/include/BasicUsageEnvironment -I${LIVE555_PREFIX}/include/UsageEnvironment"
2012 LIVE555_PREFIX=${LIVE555_PREFIX-"/usr/lib/live"}
2013 CPPFLAGS_live555="-I${LIVE555_PREFIX}/liveMedia/include -I${LIVE555_PREFIX}/groupsock/include -I${LIVE555_PREFIX}/BasicUsageEnvironment/include -I${LIVE555_PREFIX}/UsageEnvironment/include"
2014 LDFLAGS_live555="-L${LIVE555_PREFIX}/liveMedia -L${LIVE555_PREFIX}/groupsock -L${LIVE555_PREFIX}/BasicUsageEnvironment -L${LIVE555_PREFIX}/UsageEnvironment"
2019 AS_IF([test "${SYS}" = "solaris"], [
2020 CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
2022 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
2023 LDFLAGS="${LDFLAGS} ${LDFLAGS_live555}"
2026 AC_CACHE_CHECK([for live555 version 1324598400 or later], [ac_cv_live555], [
2027 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
2028 [#include <liveMedia_version.hh>
2029 #if !defined (LIVEMEDIA_LIBRARY_VERSION_INT) || (LIVEMEDIA_LIBRARY_VERSION_INT < 1324598400)
2039 AS_IF([test "$ac_cv_live555" = "no"], [
2040 AC_MSG_WARN([live555 is missing or its installed version is too old:
2041 Version 2011.12.23 or later is required to proceed.
2042 You can get an updated one from http://www.live555.com/liveMedia .])
2043 AS_IF([test -n "${enable_live555}"], [
2044 AC_MSG_ERROR([Update live555 or pass --disable-live555 to disable RTSP input support.])
2047 other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
2048 other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
2049 AS_IF([test "${SYS}" = "mingw32"], [
2050 # add ws2_32 for closesocket, select, recv
2051 other_libs="$other_libs -lws2_32"
2054 dnl We need to check for pic because live555 don't provide shared libs
2055 dnl and we want to build a plugins so we need -fPIC on some arch.
2056 VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
2057 VLC_ADD_LDFLAGS([live555], [${LDFLAGS_live555}])
2058 AC_CHECK_LIB([liveMedia_pic], [main], [
2059 VLC_ADD_PLUGIN([live555])
2060 VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
2062 AC_CHECK_LIB([liveMedia], [main], [
2063 VLC_ADD_PLUGIN([live555])
2064 VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
2065 ],[],[${other_libs}])
2066 ],[${other_libs_pic}])
2074 dnl IIDC and DV FireWire input modules
2076 PKG_ENABLE_MODULES_VLC([DC1394], [], [libdc1394-2 >= 2.1.0], [IIDC FireWire input module], [auto])
2077 PKG_ENABLE_MODULES_VLC([DV1394], [], [libraw1394 >= 2.0.1 libavc1394 >= 0.5.3], [DV FireWire input module], [auto])
2080 dnl - linsys modules: access module check for libzvbi
2082 AC_ARG_ENABLE([linsys],
2083 AS_HELP_STRING([--enable-linsys],
2084 [Linux Linear Systems Ltd. SDI and HD-SDI input cards (default enabled)]))
2085 AS_IF([test "$SYS" = "linux" -a "${enable_linsys}" != "no"], [
2086 VLC_ADD_PLUGIN([linsys_hdsdi])
2087 PKG_CHECK_MODULES(LINSYS_SDI, [zvbi-0.2 >= 0.2.28], [
2088 VLC_ADD_PLUGIN([linsys_sdi])
2090 AC_MSG_WARN([${LINSYS_SDI_PKG_ERRORS}.])
2095 dnl dvdread module: check for libdvdread
2097 PKG_ENABLE_MODULES_VLC([DVDREAD], [], [dvdread > 6.0.0], [dvdread input module], [auto])
2100 dnl libdvdnav plugin
2102 PKG_ENABLE_MODULES_VLC([DVDNAV], [], [dvdnav >= 6.0.0], [DVD with navigation input module (dvdnav)], [auto])
2105 dnl Blu-ray Disc Support with libbluray
2107 PKG_ENABLE_MODULES_VLC([BLURAY], [libbluray], [libbluray >= 0.6.2], (libbluray for Blu-ray disc support ) )
2110 dnl OpenCV wrapper and example filters
2112 PKG_ENABLE_MODULES_VLC([OPENCV], [opencv_example opencv_wrapper], [opencv > 2.0], (OpenCV (computer vision) filter), [auto])
2116 dnl libsmbclient plugin
2118 PKG_ENABLE_MODULES_VLC([SMBCLIENT], [smbc], [smbclient], (SMB/CIFS support), [auto])
2121 dnl liBDSM access module
2123 AM_CONDITIONAL([HAVE_DSM], [test "$AS_TR_SH(with_dsm)" = "yes"])
2124 PKG_WITH_MODULES([DSM], [libdsm >= 0.2.0], [
2125 VLC_ADD_PLUGIN([dsm])
2126 VLC_ADD_CFLAGS([dsm], [$DSM_CFLAGS])
2127 VLC_ADD_LIBS([dsm], [$DSM_LIBS])
2129 ],,[libdsm SMB/CIFS access/sd module], [auto])
2130 AM_CONDITIONAL([HAVE_DSM], [test "${have_dsm}" = "yes"])
2133 dnl sftp access support
2135 PKG_ENABLE_MODULES_VLC([SFTP], [sftp], [libssh2], (support SFTP file transfer via libssh2), [auto])
2138 dnl nfs access support
2140 PKG_ENABLE_MODULES_VLC([NFS], [nfs], [libnfs >= 1.10.0], (support nfs protocol via libnfs), [auto])
2143 dnl smb2 access support
2145 PKG_ENABLE_MODULES_VLC([SMB2], [smb2], [libsmb2 >= 3.0.0], (support smb2 protocol via libsmb2), [auto])
2150 AC_ARG_ENABLE([v4l2], AS_HELP_STRING([--disable-v4l2],
2151 [disable Video4Linux version 2 (default auto)]))
2153 AS_IF([test "$enable_v4l2" != "no"], [
2154 AC_CHECK_HEADERS([linux/videodev2.h], [
2158 AM_CONDITIONAL([HAVE_V4L2], [test "${have_v4l2}" != "no"])
2161 dnl NVDEC decoder/encoder
2163 AC_ARG_ENABLE([nvdec], AS_HELP_STRING([--disable-nvdec],
2164 [disable NVDEC decoder (default auto)]))
2166 AS_IF([test "$enable_nvdec" != "no"], [
2167 AC_CHECK_HEADERS([ffnvcodec/dynlink_loader.h], [
2171 AM_CONDITIONAL([HAVE_NVDEC], [test "${have_nvdec}" != "no"])
2174 dnl special access module for Blackmagic SDI cards
2176 AC_ARG_ENABLE([decklink],
2177 AS_HELP_STRING([--disable-decklink],
2178 [disable Blackmagic DeckLink SDI input (default auto)]))
2179 AC_ARG_WITH([decklink_sdk],
2180 AS_HELP_STRING([--with-decklink-sdk=DIR],
2181 [location of Blackmagic DeckLink SDI SDK]))
2183 if test "${enable_decklink}" != "no"
2185 if test "${with_decklink_sdk}" != "no" -a -n "${with_decklink_sdk}"
2187 VLC_ADD_CPPFLAGS([decklink decklinkoutput stream_out_sdi],[-I${with_decklink_sdk}/include])
2190 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_decklink}"
2192 AC_CHECK_HEADERS([DeckLinkAPIDispatch.cpp], [
2194 AS_IF([test "${SYS}" = "darwin"], [
2195 VLC_ADD_LIBS([decklink decklinkoutput],[-Wl,-framework,CoreFoundation])
2198 AS_IF([test "${enable_decklink}" = "yes"], [
2199 AC_MSG_ERROR([Blackmagic DeckLink SDI include files not found!])
2201 AC_MSG_WARN([Blackmagic DeckLink SDI include files not found, decklink disabled])
2207 AM_CONDITIONAL([HAVE_DECKLINK], [ test "${have_decklink}" != "no" ])
2211 dnl Built-in CD-DA and VCD module
2213 AC_ARG_ENABLE([vcd],
2214 AS_HELP_STRING([--disable-vcd],
2215 [disable built-in VCD and CD-DA support (default enabled)]))
2217 AC_ARG_ENABLE([libcddb],
2218 AS_HELP_STRING([--disable-libcddb],
2219 [disable CDDB for Audio CD (default enabled)]))
2221 if test "${enable_vcd}" != "no" -a "${enable_winstore_app}" != "yes"
2223 AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2224 AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2226 VLC_ADD_PLUGIN([vcd cdda])
2231 AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2232 AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2234 VLC_ADD_PLUGIN([vcd cdda])
2235 AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2240 AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2241 AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2243 VLC_ADD_PLUGIN([vcd cdda])
2244 AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2249 if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32" -o "${SYS}" = "os2" -o "${SYS}" = "darwin"
2251 VLC_ADD_PLUGIN([vcd cdda])
2254 if test "$enable_libcddb" != "no"; then
2255 PKG_CHECK_MODULES(LIBCDDB, [libcddb >= 0.9.5], [
2257 AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2258 VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2259 VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2261 [AC_MSG_WARN([${LIBCDDB_PKG_ERRORS}: CDDB access disabled.])
2269 AC_CACHE_CHECK([for Linux DVB version 5.1], [ac_cv_linux_dvb_5_1], [
2270 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
2271 [#include <linux/dvb/version.h>
2272 #if (DVB_API_VERSION < 5)
2273 # error Linux DVB API v3.2 and older are not supported.
2275 #if (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR < 1)
2276 # error Linux DVB API v5.0 is unsupported. Please update.
2279 ac_cv_linux_dvb_5_1=yes
2281 ac_cv_linux_dvb_5_1=no
2283 AM_CONDITIONAL([HAVE_LINUX_DVB], [test "$ac_cv_linux_dvb_5_1" = "yes"])
2286 dnl Screen capture module
2288 AC_ARG_ENABLE([screen],
2289 AS_HELP_STRING([--enable-screen],
2290 [disable screen capture (default enabled)]))
2291 if test "${enable_screen}" != "no"; then
2292 if test "${SYS}" = "darwin"; then
2293 AC_CHECK_HEADERS([ApplicationServices/ApplicationServices.h], [
2294 VLC_ADD_PLUGIN([screen])
2298 AM_CONDITIONAL([HAVE_MAC_SCREEN], [test "${SYS}" = "darwin" -a "x${enable_screen}" != "xno"])
2301 dnl VNC/RFB access module
2303 PKG_ENABLE_MODULES_VLC([VNC], [vnc], [libvncclient >= 0.9.9], (VNC/rfb client support), [auto])
2305 dnl RDP/Remote Desktop access module
2307 PKG_ENABLE_MODULES_VLC([FREERDP], [rdp], [freerdp >= 1.0.1], (RDP/Remote Desktop client support) )
2311 AC_SUBST([have_avfoundation], ["no"])
2312 AC_ARG_ENABLE([macosx-avfoundation],
2313 AS_HELP_STRING([--enable-macosx-avfoundation], [Mac OS X avcapture (video) module (default enabled on Mac OS X)]))
2314 if test "x${enable_macosx_avfoundation}" != "xno" &&
2315 (test "${SYS}" = "darwin" || test "${enable_macosx_avfoundation}" = "yes")
2317 SAVED_LIBS="${LIBS}"
2318 LIBS="-framework AVFoundation"
2319 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [])],[have_avfoundation=yes],[have_avfoundation=no])
2320 LIBS="${SAVED_LIBS}"
2321 if test "${have_avfoundation}" != "no"
2323 VLC_ADD_PLUGIN([avcapture])
2326 AM_CONDITIONAL([HAVE_AVFOUNDATION], [test "${have_avfoundation}" != "no"])
2329 dnl DCP plugin (using asdcplib)
2331 PKG_WITH_MODULES([ASDCP], [asdcplib], [have_asdcp="yes"])
2332 AM_CONDITIONAL([HAVE_ASDCP], [test "${have_asdcp}" = "yes"])
2338 EXTEND_HELP_STRING([Mux/Demux plugins:])
2341 dnl libdvbpsi check for ts mux/demux
2344 PKG_WITH_MODULES([DVBPSI], [libdvbpsi >= 1.2.0], [have_dvbpsi="yes"])
2345 AM_CONDITIONAL([HAVE_DVBPSI], [test "${have_dvbpsi}" = "yes"])
2349 dnl GME demux plugin
2351 AC_ARG_ENABLE([gme],
2352 AS_HELP_STRING([--enable-gme],
2353 [use Game Music Emu (default auto)]))
2354 AS_IF([test "${enable_gme}" != "no"], [
2355 AC_CHECK_HEADER([gme/gme.h], [
2356 AC_CHECK_LIB([gme], [gme_identify_header], [
2357 VLC_ADD_PLUGIN([gme])
2359 AC_CHECK_LIB([gme], [gme_identify_extension], [
2360 VLC_ADD_LIBS([gme], [-lstdc++ $LIBM])
2361 VLC_ADD_PLUGIN([gme])
2362 ],, [-lstdc++ $LIBM])
2364 VLC_ADD_LIBS([gme], [-lgme])
2366 AS_IF([test "x${enable_gme}" != "x"], [
2367 AC_MSG_ERROR([GME cannot be found. Please install the development files.])
2376 AC_ARG_ENABLE([sid],
2377 AS_HELP_STRING([--enable-sid],[C64 sid demux support (default auto)]))
2378 AS_IF([test "${enable_sid}" != "no"], [
2379 PKG_CHECK_MODULES(SID, [libsidplay2], [
2381 oldCPPFLAGS="$CPPFLAGS"
2382 CPPFLAGS="$CPPFLAGS $SID_CFLAGS"
2383 AC_CHECK_HEADER([sidplay/builders/resid.h], [
2384 VLC_ADD_PLUGIN([sid])
2385 VLC_ADD_CFLAGS([sid], [$SID_CFLAGS])
2386 VLC_ADD_LIBS([sid], [$SID_LIBS] [-lresid-builder])
2388 AS_IF([test -n "${enable_sid}"],
2389 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2390 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2393 CPPFLAGS="$oldCPPFLAGS"
2396 AS_IF([test "x${enable_sid}" = "xyes"],
2397 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2398 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2405 dnl ogg demux plugin
2407 PKG_ENABLE_MODULES_VLC([OGG], [mux_ogg], [ogg >= 1.0], [Ogg demux support], [auto])
2408 PKG_CHECK_MODULES(LIBVORBIS, [vorbis >= 1.1], [
2409 AC_DEFINE(HAVE_LIBVORBIS, 1, [Define to 1 if you have the libvorbis])
2411 PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto], [${LIBVORBIS_CFLAGS}], [${LIBVORBIS_LIBS}])
2412 if test "${enable_sout}" != "no"; then
2413 dnl Check for libshout
2414 PKG_ENABLE_MODULES_VLC([SHOUT], [access_output_shout], [shout >= 2.1], [libshout output plugin], [auto])
2418 dnl matroska demux plugin
2420 PKG_WITH_MODULES([MATROSKA], [libebml >= 1.3.6 libmatroska], [
2421 VLC_ADD_PLUGIN([mkv])
2422 VLC_ADD_CFLAGS([mkv], [$MATROSKA_CFLAGS])
2423 VLC_ADD_LIBS([mkv], [$MATROSKA_LIBS])
2425 ],,[MKV format support], [auto])
2426 AM_CONDITIONAL([HAVE_MATROSKA], [test "${have_matroska}" = "yes"])
2429 dnl modplug demux plugin
2431 AC_ARG_ENABLE([mod],
2432 AS_HELP_STRING([--disable-mod],
2433 [do not use libmodplug (default auto)]))
2434 if test "${enable_mod}" != "no" ; then
2435 PKG_CHECK_MODULES(LIBMODPLUG, [libmodplug >= 0.8.9.0], [
2436 VLC_ADD_PLUGIN([mod])
2437 VLC_ADD_CXXFLAGS([mod],[$LIBMODPLUG_CFLAGS])
2438 VLC_ADD_CFLAGS([mod],[$LIBMODPLUG_CFLAGS]) #modules/demux/mod.c needs CFLAGS_mod, not CXXFLAGS_mod
2439 VLC_ADD_LIBS([mod],[$LIBMODPLUG_LIBS])
2441 AS_IF([test -n "${enable_mod}"],
2442 [AC_MSG_ERROR([${LIBMODPLUG_PKG_ERRORS}.])],
2443 [AC_MSG_WARN([${LIBMODPLUG_PKG_ERRORS}.])])
2448 dnl mpc demux plugin
2450 AC_ARG_ENABLE([mpc],
2451 AS_HELP_STRING([--disable-mpc], [do not use libmpcdec (default auto)]))
2452 if test "${enable_mpc}" != "no"
2454 AC_CHECK_HEADERS([mpcdec/mpcdec.h], [
2455 VLC_ADD_PLUGIN([mpc])
2456 VLC_ADD_LIBS([mpc],[-lmpcdec])])
2463 EXTEND_HELP_STRING([Codec plugins:])
2466 dnl shine encoder plugin
2468 PKG_ENABLE_MODULES_VLC([SHINE], [], [shine >= 3.0.0], [MPEG Audio Layer 3 encoder], [auto], [], [], [])
2472 dnl openmax il codec plugin
2474 AC_ARG_ENABLE([omxil],
2475 AS_HELP_STRING([--enable-omxil], [openmax il codec module (default disabled)]))
2476 if test "${enable_omxil}" = "yes"
2478 VLC_ADD_PLUGIN([omxil])
2482 dnl raspberry pi openmax il configuration
2484 AC_ARG_ENABLE([rpi-omxil],
2485 AS_HELP_STRING([--enable-rpi-omxil], [openmax il configured for raspberry pi (default disabled)]))
2486 if test "${enable_rpi_omxil}" = "yes"
2488 VLC_ADD_PLUGIN([omxil])
2489 VLC_ADD_CFLAGS([omxil],[-DRPI_OMX])
2499 AC_ARG_WITH(mad, AS_HELP_STRING([--with-mad=PATH], [path to libmad]), [
2504 AS_IF([test "${with_mad}" != "no"], [
2505 MAD_CFLAGS="-I${with_mad}/include"
2506 MAD_LIBS="-L${with_mad}/lib"
2509 AC_ARG_ENABLE([mad],
2510 AS_HELP_STRING([--enable-mad], [libmad module (default enabled)]))
2511 AS_IF([test "${enable_mad}" != "no"], [
2513 CPPFLAGS="${CPPFLAGS} ${MAD_CFLAGS}"
2514 LDFLAGS="${LDFLAGS} ${MAD_LIBS}"
2515 AC_CHECK_HEADERS([mad.h], [
2516 AC_CHECK_LIB([mad], [mad_bit_init], [
2518 MAD_LIBS="${MAD_LIBS} -lmad"
2522 AS_IF([test -n "$enable_mad" -a "${have_mad}" = "no"], [
2523 AC_MSG_ERROR([Could not find libmad. Install it or pass --disable-mad to disable it.])
2526 AC_SUBST([MAD_CFLAGS])
2527 AC_SUBST([MAD_LIBS])
2528 AM_CONDITIONAL([HAVE_MAD], [test "${have_mad}" = "yes"])
2533 PKG_ENABLE_MODULES_VLC([MPG123], [mpg123], [libmpg123], [libmpg123 decoder support], [auto])
2538 AC_ARG_ENABLE([gst-decode],
2539 AS_HELP_STRING([--enable-gst-decode], [GStreamer based decoding support (currently supports only video decoding) (default auto)]))
2541 have_gst_decode="no"
2542 AS_IF([test "${enable_gst_decode}" != "no"], [
2543 PKG_CHECK_MODULES([GST_APP], [gstreamer-app-1.0], [
2544 PKG_CHECK_MODULES([GST_VIDEO], [gstreamer-video-1.0], [
2545 have_gst_decode="yes"
2547 AC_MSG_WARN([${GST_VIDEO_PKG_ERRORS}. GStreamer decoder module will not be built.])
2550 AC_MSG_WARN([${GST_APP_PKG_ERRORS}. GStreamer modules will not be built.])
2553 AM_CONDITIONAL([HAVE_GST_DECODE], [test "${have_gst_decode}" = "yes"])
2556 dnl avcodec decoder/encoder plugin
2558 AC_ARG_ENABLE([merge-ffmpeg],
2559 AS_HELP_STRING([--enable-merge-ffmpeg], [merge FFmpeg-based plugins (default disabled)]),, [
2560 enable_merge_ffmpeg="no"
2562 AM_CONDITIONAL([MERGE_FFMPEG], [test "$enable_merge_ffmpeg" != "no"])
2564 AC_MSG_CHECKING([for libavutil variant])
2565 PKG_CHECK_EXISTS([libavutil], [
2566 libavutil_version="$(${PKG_CONFIG} --modversion libavutil)"
2567 libavutil_micro="${libavutil_version##*.}"
2568 AS_IF([test ${libavutil_micro} -le 99], [
2576 AC_MSG_RESULT([${avfork}])
2578 AC_ARG_ENABLE([avcodec],
2579 AS_HELP_STRING([--enable-avcodec], [libavcodec codec (default enabled)]))
2580 AS_IF([test "${enable_avcodec}" != "no"], [
2581 dnl We need >=57.16.0 from libav or >=57.37.100 from ffmpeg
2583 libav) av_codec_ver="57.16.0" ;;
2584 dnl 05f66706d182eb0c36af54d72614bf4c33e957a9 includes libavutil 55.9.0
2585 ffmpeg) av_codec_ver="57.37.100" ;;
2586 dnl 7fc329e2dd6226dfecaa4a1d7adf353bf2773726 include libavutil 55.22.101
2587 *) AC_MSG_ERROR([Missing libav or FFmpeg. Pass --disable-avcodec to ignore this error.])
2589 PKG_CHECK_MODULES(AVCODEC,[libavcodec >= ${av_codec_ver} libavutil >= 55.9.0], [
2591 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2592 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2593 AC_CHECK_HEADERS([libavcodec/avcodec.h])
2594 AC_CHECK_HEADERS([libavutil/avutil.h])
2598 AC_MSG_ERROR([${AVCODEC_PKG_ERRORS}. Pass --disable-avcodec to ignore this error.])
2603 AM_CONDITIONAL([HAVE_AVCODEC], [test "${have_avcodec}" != "no"])
2606 dnl libva needs avcodec
2608 AC_ARG_ENABLE([libva],
2609 AS_HELP_STRING([--enable-libva], [VAAPI GPU decoding support (libVA) (default auto)]))
2611 AS_IF([test "${enable_libva}" = "yes" -a "${have_avcodec}" != "yes" ], [
2612 AC_MSG_ERROR([--enable-libva and --disable-avcodec options are mutually exclusive. Use --enable-avcodec.])
2619 AS_IF([test "${enable_libva}" != "no"], [
2620 PKG_CHECK_MODULES([LIBVA], [libva >= 1.0], [
2623 AS_IF([test -n "${enable_libva}"], [
2624 AC_MSG_ERROR([${LIBVA_PKG_ERRORS}.])
2626 AC_MSG_WARN([${LIBVA_PKG_ERRORS}.])
2629 PKG_CHECK_MODULES([LIBVA_DRM], [libva-drm], [
2630 have_vaapi_drm="yes"
2632 AC_MSG_WARN([${LIBVA_DRM_PKG_ERRORS}.])
2634 PKG_CHECK_MODULES(LIBVA_X11, [libva-x11], [
2635 have_vaapi_x11="yes"
2637 AC_MSG_WARN([${LIBVA_X11_PKG_ERRORS}.])
2639 PKG_CHECK_MODULES(LIBVA_WL, [libva-wayland], [
2642 AC_MSG_WARN([${LIBVA_WL_PKG_ERRORS}.])
2645 AM_CONDITIONAL([HAVE_VAAPI], [test "${have_vaapi}" = "yes"])
2646 AM_CONDITIONAL([HAVE_VAAPI_DRM], [test "${have_vaapi_drm}" = "yes"])
2647 AM_CONDITIONAL([HAVE_VAAPI_X11], [test "${have_vaapi_x11}" = "yes"])
2648 AM_CONDITIONAL([HAVE_VAAPI_WL], [test "${have_vaapi_wl}" = "yes"])
2650 have_avcodec_vaapi="no"
2651 AS_IF([test "${have_vaapi}" = "yes" -a "${have_avcodec}" = "yes"], [
2653 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2654 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2655 AC_CHECK_HEADERS([libavcodec/vaapi.h], [
2656 AC_MSG_NOTICE([VA API acceleration activated])
2657 have_avcodec_vaapi="yes"
2659 AS_IF([test -n "${enable_libva}"], [
2660 AC_MSG_ERROR([libva is present but libavcodec/vaapi.h is missing])
2662 AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing ])
2667 AM_CONDITIONAL([HAVE_AVCODEC_VAAPI], [test "${have_avcodec_vaapi}" = "yes"])
2670 dnl dxva2 needs avcodec
2672 AC_ARG_ENABLE([dxva2],
2673 AS_HELP_STRING([--enable-dxva2], [DxVA2 GPU decoding support (default auto)]))
2675 have_avcodec_dxva2="no"
2676 AS_IF([test "${enable_dxva2}" != "no"], [
2677 if test "${SYS}" = "mingw32"; then
2678 AS_IF([test "x${have_avcodec}" = "xyes"], [
2679 AC_CHECK_HEADERS([dxva2api.h],
2681 AC_CHECK_HEADERS([libavcodec/dxva2.h], [
2682 AC_MSG_NOTICE([DxVA2 acceleration activated])
2683 have_avcodec_dxva2="yes"
2685 AS_IF([test "${enable_dxva2}" = "yes"],
2686 [AC_MSG_ERROR([dxva2 is present but libavcodec/dxva2.h is missing])],
2687 [AC_MSG_WARN([dxva2 is present but libavcodec/dxva2.h is missing ])])
2688 ], [#undef _WIN32_WINNT
2689 /* DXVA2 is only available in Vista and above */
2690 #define _WIN32_WINNT 0x600])
2692 AS_IF([test "${enable_dxva2}" = "yes"],
2693 [AC_MSG_ERROR([Could not find required dxva2api.h])],
2694 [AC_MSG_WARN([dxva2api.h not found])])
2695 ],[#include <d3d9.h>])
2697 AS_IF([test "x${enable_dxva2}" != "x"], [
2698 AC_MSG_ERROR([--enable-dxva2 and --disable-avcodec options are mutually exclusive.])
2703 AM_CONDITIONAL([HAVE_AVCODEC_DXVA2], [test "${have_avcodec_dxva2}" = "yes"])
2706 dnl d3d11va needs avcodec
2708 AC_ARG_ENABLE([d3d11va],
2709 AS_HELP_STRING([--enable-d3d11va], [D3D11 GPU decoding support (default auto)]))
2711 have_avcodec_d3d11va="no"
2712 AS_IF([test "${enable_d3d11va}" != "no"], [
2713 if test "${SYS}" = "mingw32"; then
2714 AS_IF([test "x${have_avcodec}" = "xyes"], [
2715 AC_CHECK_TYPES([ID3D11VideoDecoder],
2717 AC_CHECK_HEADERS([dxva2api.h],
2719 AC_CHECK_HEADERS([libavcodec/d3d11va.h], [
2720 AC_MSG_NOTICE([D3D11 acceleration activated])
2721 AC_DEFINE([HAVE_AVCODEC_D3D11VA], [1], [Define if the d3d11va module is built])
2722 have_avcodec_d3d11va="yes"
2724 AS_IF([test "${enable_d3d11va}" = "yes"],
2725 [AC_MSG_ERROR([d3d11va is present but libavcodec/d3d11va.h is missing])],
2726 [AC_MSG_WARN([d3d11va is present but libavcodec/d3d11va.h is missing ])])
2727 ], [#undef _WIN32_WINNT
2728 /* D3D11 is only available in Vista and above */
2729 #define _WIN32_WINNT 0x600])
2731 AS_IF([test "${enable_d3d11va}" = "yes"],
2732 [AC_MSG_ERROR([Could not find required dxva2api.h])],
2733 [AC_MSG_WARN([dxva2api.h not found])])
2734 ],[#include <d3d9.h>])
2736 AS_IF([test "${enable_d3d11va}" = "yes"],
2737 [AC_MSG_ERROR([Could not find required ID3D11VideoDecoder in d3d11.h])],
2738 [AC_MSG_WARN([ID3D11VideoDecoder not found])])
2739 ], [#include <d3d11.h>])
2741 AS_IF([test "x${enable_d3d11va}" != "x"], [
2742 AC_MSG_ERROR([--enable-d3d11va and --disable-avcodec options are mutually exclusive.])
2747 AM_CONDITIONAL([HAVE_AVCODEC_D3D11VA], [test "${have_avcodec_d3d11va}" = "yes"])
2752 AC_CHECK_HEADERS([dxgidebug.h dxgi1_6.h])
2755 dnl IApplicationData2
2757 have_iapplication_data2="no"
2758 AC_CHECK_TYPES([IApplicationData2],[],[],[#include <windows.storage.h>])
2761 dnl DirectComposition
2764 AC_CHECK_HEADERS([dcomp.h], [
2767 #include <windows.h>
2770 AM_CONDITIONAL([HAVE_DCOMP], [test "${have_dcomp}" = "yes"])
2774 dnl avformat demuxer/muxer plugin
2777 AC_ARG_ENABLE([avformat],
2778 AS_HELP_STRING([--enable-avformat], [libavformat containers (default enabled)]),, [
2779 enable_avformat="${have_avcodec}"
2782 AS_IF([test "${enable_avformat}" != "no"], [
2783 PKG_CHECK_MODULES(AVFORMAT,[libavformat >= 53.21.0 libavcodec libavutil], [
2786 CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2787 CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2788 AC_CHECK_HEADERS([libavformat/avformat.h libavformat/avio.h])
2789 AC_CHECK_HEADERS([libavcodec/avcodec.h])
2790 AC_CHECK_HEADERS([libavutil/avutil.h])
2791 AS_IF([test "$enable_merge_ffmpeg" = "no"], [
2796 AC_MSG_ERROR([${AVFORMAT_PKG_ERRORS}. Pass --disable-avformat to ignore this error.])
2799 AM_CONDITIONAL([HAVE_AVFORMAT], [test "${enable_avformat}" != "no"])
2802 dnl swscale image scaling and conversion plugin
2805 AC_ARG_ENABLE([swscale],
2806 AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
2807 (default enabled)]))
2808 if test "${enable_swscale}" != "no"
2810 PKG_CHECK_MODULES(SWSCALE,[libswscale],
2813 CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
2814 CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
2815 AC_CHECK_HEADERS([libswscale/swscale.h])
2816 AC_CHECK_HEADERS([libavutil/avutil.h])
2817 VLC_ADD_PLUGIN([swscale])
2818 VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
2819 VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
2820 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2821 VLC_ADD_LIBS([swscale],[${ac_cv_ld_bsymbolic}])
2825 AC_MSG_ERROR([${SWSCALE_PKG_ERRORS}. Pass --disable-swscale to ignore this error. Proper software scaling and some video chroma conversion will be missing.])
2833 AC_ARG_ENABLE([postproc],
2834 AS_HELP_STRING([--enable-postproc], [libpostproc image post-processing (default auto)]))
2835 if test "${enable_postproc}" != "no"
2837 PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
2840 CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
2841 CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
2842 AC_CHECK_HEADERS([postproc/postprocess.h])
2843 VLC_ADD_PLUGIN([postproc])
2846 AC_MSG_WARN([${POSTPROC_PKG_ERRORS}.])
2851 dnl faad decoder plugin
2853 PKG_WITH_MODULES([FAAD],[faad2],
2854 VLC_ADD_PLUGIN(faad)
2855 VLC_ADD_CFLAGS(faad, [$FAAD_CFLAGS])
2856 VLC_ADD_LIBS(faad,[$FAAD_LIBS]),
2857 AS_IF([test "x${enable_faad}" != "xno"],[
2858 AC_CHECK_HEADERS([neaacdec.h], [
2859 AC_CHECK_LIB([faad], [NeAACDecOpen],[
2860 VLC_ADD_PLUGIN([faad])
2861 VLC_ADD_LIBS([faad],[-lfaad])
2865 AS_IF([test "x${found_faad}" != "xyes"],
2866 AS_IF([test "x${enable_faad}" == "xyes"],
2867 AC_MSG_ERROR([${FAAD_PKG_ERRORS}.]),
2868 AC_MSG_WARN([${FAAD_PKG_ERRORS}.]))
2871 [faad AAC audio decoder])
2874 dnl AOM decoder plugin
2876 PKG_ENABLE_MODULES_VLC([AOM], [], [aom], [experimental AV1 codec (default auto)])
2879 dnl Dav1d decoder plugin
2881 PKG_ENABLE_MODULES_VLC([DAV1D], [], [dav1d >= 0.5.0], [AV1 decoder (default auto)])
2884 dnl libvpx decoder plugin
2886 AC_ARG_ENABLE([vpx],
2887 AS_HELP_STRING([--enable-vpx],[libvpx VP8/VP9 encoder and decoder (default auto)]))
2888 AS_IF([test "${enable_vpx}" != "no"],[
2889 PKG_CHECK_MODULES([VPX], [vpx >= 1.5.0], [
2890 VLC_ADD_PLUGIN([vpx])
2891 VLC_ADD_CPPFLAGS([vpx], [${VPX_CFLAGS}])
2892 VLC_ADD_LIBS([vpx], [${VPX_LIBS}])
2893 AC_CHECK_LIB([vpx],[vpx_codec_vp8_dx], [
2894 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP8_DECODER])
2895 ], [], [${VPX_LIBS}])
2896 AC_CHECK_LIB([vpx],[vpx_codec_vp9_dx], [
2897 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP9_DECODER])
2898 ], [], [${VPX_LIBS}])
2899 AC_CHECK_LIB([vpx],[vpx_codec_vp8_cx], [
2900 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP8_ENCODER])
2901 ], [], [${VPX_LIBS}])
2902 AC_CHECK_LIB([vpx],[vpx_codec_vp9_cx], [
2903 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP9_ENCODER])
2904 ], [], [${VPX_LIBS}])
2906 AS_IF([test "${enable_vpx}" = "yes"],[
2907 AC_MSG_ERROR([libvpx 1.5.0 or higher was not found])
2912 dnl twolame encoder plugin
2914 PKG_ENABLE_MODULES_VLC([TWOLAME], [], [twolame], [MPEG Audio Layer 2 encoder], [auto], [], [], [ -DLIBTWOLAME_STATIC])
2917 dnl fdk-aac encoder plugin
2919 PKG_ENABLE_MODULES_VLC([FDKAAC], [], [fdk-aac], [FDK-AAC encoder], [disabled])
2923 dnl A52/AC3 decoder plugin
2925 AC_ARG_ENABLE([a52],
2926 AS_HELP_STRING([--enable-a52], [A/52 support with liba52 (default enabled)]))
2927 if test "${enable_a52}" != "no"
2930 AS_HELP_STRING([--with-a52=PATH], [a52 headers and libraries]))
2931 if test -z "${with_a52}"
2936 LDFLAGS_test="-L${with_a52}/lib"
2937 CPPFLAGS_test="-I${with_a52}/include"
2940 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_test} ${CPPFLAGS_a52}"
2941 LDFLAGS="${LDFLAGS} ${LDFLAGS_test} ${LIBS_a52}"
2942 AC_CHECK_HEADERS([a52dec/a52.h], [
2943 AC_CHECK_LIB([a52], [a52_free], [
2944 VLC_ADD_PLUGIN([a52])
2945 VLC_ADD_LIBS([a52],[${LDFLAGS_test} -la52 $LIBM])
2946 VLC_ADD_CPPFLAGS([a52],[${CPPFLAGS_test}])
2948 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.])
2951 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.])
2957 dnl DTS Coherent Acoustics decoder plugin
2959 PKG_ENABLE_MODULES_VLC([DCA], [dca], [libdca >= 0.0.5], [DTS Coherent Acoustics support with libdca], [auto])
2964 PKG_ENABLE_MODULES_VLC([FLAC], [], [flac], [libflac decoder/encoder support], [auto])
2969 PKG_ENABLE_MODULES_VLC([LIBMPEG2], [], [libmpeg2 > 0.3.2], [libmpeg2 decoder support], [auto])
2974 PKG_ENABLE_MODULES_VLC([VORBIS], [], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
2979 AC_ARG_ENABLE([tremor],
2980 AS_HELP_STRING([--enable-tremor], [Tremor decoder support (default disabled)]))
2981 if test "${enable_tremor}" = "yes"
2983 AC_CHECK_HEADERS([tremor/ivorbiscodec.h], [
2984 VLC_ADD_PLUGIN([tremor])
2991 PKG_ENABLE_MODULES_VLC([SPEEX], [], [ogg speex >= 1.0.5], [Speex support], [auto])
2993 AS_IF([test "${enable_speex}" != "no"], [
2994 PKG_CHECK_MODULES([SPEEXDSP], [speexdsp], [
2997 AC_MSG_WARN([${SPEEXDSP_PKG_ERRORS}.])
3000 AM_CONDITIONAL([HAVE_SPEEXDSP], [test "$have_speexdsp" = "yes"])
3005 PKG_ENABLE_MODULES_VLC([OPUS], [], [ogg opus >= 1.0.3], [Opus support], [auto])
3008 dnl Ambisonic channel mixer and binauralizer plugin
3010 PKG_ENABLE_MODULES_VLC([SPATIALAUDIO], [], [spatialaudio], [Ambisonic channel mixer and binauralizer], [auto])
3013 dnl theora decoder plugin
3015 PKG_ENABLE_MODULES_VLC([THEORA], [], [ogg theoradec >= 1.0 theoraenc], [experimental theora codec], [auto])
3018 dnl OggSpots decoder plugin
3020 PKG_ENABLE_MODULES_VLC([OGGSPOTS], [], [ogg], [experimental OggSpots codec], [auto])
3023 dnl Daala decoder plugin
3025 PKG_ENABLE_MODULES_VLC([DAALA], [], [daaladec daalaenc], [experimental daala codec], [disabled])
3028 dnl schroedinger decoder plugin (for dirac format video)
3030 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [], [schroedinger-1.0 >= 1.0.10], [dirac decoder and encoder using schroedinger], [auto])
3033 dnl PNG decoder module
3035 AC_ARG_ENABLE([png],
3036 AS_HELP_STRING([--enable-png], [PNG support (default enabled)]))
3037 AS_IF([test "${enable_png}" != "no"], [
3038 AC_CHECK_HEADERS([png.h], [
3040 LDFLAGS="${LDFLAGS} -lz $LIBM"
3041 AC_CHECK_LIB([png], [png_set_alpha_mode], [
3042 VLC_ADD_PLUGIN([png])
3049 dnl JPEG decoder module
3051 AC_ARG_ENABLE([jpeg],
3052 AS_HELP_STRING([--enable-jpeg], [JPEG support (default enabled)]))
3053 AS_IF([test "${enable_jpeg}" != "no"], [
3054 AC_CHECK_HEADERS([jpeglib.h], [
3055 VLC_ADD_PLUGIN([jpeg])
3060 dnl BPG decoder module
3062 AC_ARG_ENABLE([bpg],
3063 AS_HELP_STRING([--enable-bpg], [BPG support (default disabled)]))
3064 AS_IF([test "${enable_bpg}" != "no"], [
3065 AC_CHECK_HEADERS([libbpg.h], [
3066 VLC_ADD_PLUGIN([bpg])
3071 dnl H262 encoder plugin (lib262)
3073 AC_ARG_ENABLE([x262],
3074 AS_HELP_STRING([--enable-x262], [H262 encoding support with static libx262 (default disabled)]))
3075 if test "${enable_x262}" != "no"; then
3076 PKG_CHECK_MODULES(X262, x262, [
3077 VLC_ADD_PLUGIN([x262])
3078 VLC_ADD_LDFLAGS([x262],[${X262_LIBS}])
3079 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
3080 VLC_ADD_LIBS([x262],[${av_cv_ld_bsymbolic}])
3082 VLC_ADD_CFLAGS([x262],[${X262_CFLAGS}])
3083 if echo ${X262_LIBS} |grep -q 'pthreadGC2'; then
3084 VLC_ADD_CFLAGS([x262], [-DPTW32_STATIC_LIB])
3087 if test "${enable_x262}" = "yes"; then
3088 AC_MSG_ERROR([x262 module doesn't work without staticly compiled libx262.a])
3094 PKG_ENABLE_MODULES_VLC([X265],, [x265], [HEVC/H.265 encoder], [auto])
3097 dnl H264 encoder plugin (using libx264)
3099 AC_ARG_ENABLE([x264],
3100 AS_HELP_STRING([--enable-x264], [H264 encoding support with libx264 (default enabled)]))
3101 if test "${enable_x264}" != "no"; then
3102 PKG_CHECK_MODULES(X264,x264 >= 0.148, [
3103 VLC_ADD_PLUGIN([x264])
3104 VLC_ADD_LIBS([x264],[${X264_LIBS}])
3106 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
3107 VLC_ADD_LDFLAGS([x264],[${ac_cv_ld_bsymbolic}])
3110 VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3111 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3112 VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3115 if test "${enable_x264}" = "yes"; then
3116 AC_MSG_ERROR([${X264_PKG_ERRORS}: you may get it from http://www.videolan.org/x264.html])
3122 dnl H264 encoder plugin (libx264 > 153)
3124 AC_ARG_ENABLE([x26410b],
3125 AS_HELP_STRING([--enable-x26410b], [H264 10-bit encoding support with libx264 (default enabled)]))
3126 if test "${enable_x26410b}" != "no"; then
3127 PKG_CHECK_MODULES(X26410b,x264 >= 0.153, [
3128 VLC_ADD_PLUGIN([x26410b])
3129 VLC_ADD_LIBS([x26410b],[${X264_LIBS}])
3131 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
3132 VLC_ADD_LDFLAGS([x26410b],[${ac_cv_ld_bsymbolic}])
3135 VLC_ADD_CFLAGS([x26410b],[${X264_CFLAGS}])
3136 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3137 VLC_ADD_CFLAGS([x26410b], [-DPTW32_STATIC_LIB])
3140 if test "${enable_x26410b}" = "yes"; then
3141 AC_MSG_ERROR([${X264_PKG_ERRORS}: you may get it from http://www.videolan.org/x264.html])
3148 dnl Intel QuickSync (aka MediaSDK) H264/H262 encoder
3150 PKG_ENABLE_MODULES_VLC([MFX], [qsv], [libmfx], [Intel QuickSync MPEG4-Part10/MPEG2 (aka H.264/H.262) encoder], [auto])
3153 dnl libfluidsynth (MIDI synthetizer) plugin
3155 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [], [fluidsynth >= 1.1.2], [MIDI synthetiser with libfluidsynth], [auto])
3156 PKG_ENABLE_MODULES_VLC([FLUIDLITE], [fluidsynth], [fluidlite], [MIDI synthetiser with libfluidsynth], [auto])
3157 AC_CHECK_HEADERS([fluidlite.h], [AC_SUBST([FLUIDSYNTH_LIBS], ${FLUIDLITE_LIBS})])
3160 dnl Teletext Modules
3161 dnl vbi decoder plugin (using libzbvi)
3165 AC_ARG_ENABLE([zvbi],
3166 AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
3167 libzvbi (default enabled)]))
3168 AC_ARG_ENABLE([telx],
3169 AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
3170 zvbi) (default enabled if zvbi is absent)]))
3172 AS_IF( [test "${enable_zvbi}" != "no"],[
3173 PKG_CHECK_MODULES(ZVBI, [zvbi-0.2 >= 0.2.28],
3175 VLC_ADD_PLUGIN([zvbi])
3176 AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
3178 AS_IF( [test "${enable_telx}" = "yes"],[
3179 AC_MSG_WARN([The zvbi and telx modules are incompatible. Using zvbi.])
3182 AC_MSG_WARN([${ZVBI_PKG_ERRORS}. Enabling the telx module instead.])
3185 AM_CONDITIONAL([HAVE_ZVBI], [test "x${have_zvbi}" = x"yes"])
3187 AS_IF( [test "${enable_telx}" != "no" ],[
3188 VLC_ADD_PLUGIN([telx])
3190 AC_DEFINE(TELX_COMPILED, 1, [Define if the telx module is built])
3192 AM_CONDITIONAL([HAVE_TELX], [test "x${have_telx}" = x"yes"])
3195 dnl ARIB subtitles rendering module
3197 AC_ARG_ENABLE([aribsub],
3198 AS_HELP_STRING([--enable-aribsub],[ARIB Subtitles support (default enabled)]))
3199 AS_IF( [test "${enable_aribsub}" != "no" ],[
3200 PKG_CHECK_MODULES(ARIBB24, [aribb24 >= 1.0.1], [
3202 VLC_ADD_PLUGIN([aribsub])
3203 VLC_ADD_LIBS([aribsub],[-laribb24])
3204 AC_DEFINE(HAVE_ARIBB24, 1, [Define if libaribb24 is available.])
3206 AC_MSG_WARN(Library [aribb24] needed for [aribsub] was not found)
3210 AM_CONDITIONAL([HAVE_ARIBB24], [test x"${have_aribb24}" = x"yes"])
3215 PKG_ENABLE_MODULES_VLC([ARIBB25], [aribcam], [aribb25 >= 0.2.6], [ARIB STD-B25], [auto])
3218 dnl kate decoder plugin
3220 PKG_ENABLE_MODULES_VLC([KATE], [], [kate >= 0.3.0], [kate codec], [auto])
3223 dnl tiger rendering for kate decoder plugin
3225 AC_ARG_ENABLE([tiger],
3226 AS_HELP_STRING([--enable-tiger], [Tiger rendering library for Kate streams (default auto)]))
3227 AS_IF([test "${enable_tiger}" != "no"], [
3228 PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
3229 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])],[
3230 AS_IF([test -n "${enable_tiger}"], [
3231 AC_MSG_ERROR([${TIGER_PKG_ERRORS}.])
3237 dnl check if we can build the css selector engine
3239 AC_ARG_ENABLE([css],
3240 AS_HELP_STRING([--enable-css], [CSS selector engine (default auto)]))
3241 AS_IF([test "${enable_css}" != "no"], [
3243 AC_DEFINE(HAVE_CSS, 1, [Define if CSS engine is built])
3245 AM_CONDITIONAL([ENABLE_CSS], [test "${with_css}" = "yes"])
3252 EXTEND_HELP_STRING([Video plugins:])
3255 dnl libplacebo support
3257 AC_ARG_ENABLE([libplacebo],
3258 AS_HELP_STRING([--disable-libplacebo],
3259 [disable libplacebo support (default auto)]))
3261 AS_IF([test "$enable_libplacebo" != "no"], [
3262 PKG_CHECK_MODULES([LIBPLACEBO], [libplacebo >= 0.5], [
3263 AC_DEFINE([HAVE_LIBPLACEBO], [1], [Define to 1 if libplacebo is enabled.])
3264 PKG_CHECK_MODULES([LIBPLACEBO], [libplacebo >= 1.7],
3265 [have_libplacebo_vk="yes"], [have_libplacebo_vk="no"])
3267 AS_IF([test -n "${enable_libplacebo}"], [
3268 AC_MSG_ERROR([${LIBPLACEBO_PKG_ERRORS}.])
3270 enable_libplacebo="no"
3273 AM_CONDITIONAL([HAVE_LIBPLACEBO], [test "$enable_libplacebo" != "no"])
3278 PKG_CHECK_MODULES([EGL], [egl], [
3283 AM_CONDITIONAL([HAVE_EGL], [test "${have_egl}" = "yes"])
3286 PKG_CHECK_MODULES([GL], [gl], [
3289 AC_MSG_CHECKING([for OpenGL])
3290 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
3292 # include <GL/glew.h>
3296 [int t0 = GL_TEXTURE0;]])
3300 AS_IF([test "${SYS}" != "mingw32"], [
3303 GL_LIBS="-lopengl32"
3306 AC_MSG_RESULT([${have_gl}])
3308 AM_CONDITIONAL([HAVE_GL], [test "${have_gl}" = "yes"])
3309 AS_IF([test "${have_gl}" = "yes"], [
3310 AC_DEFINE([HAVE_GL], 1, [Defined if having OpenGL])
3313 dnl OpenGL ES 2: depends on EGL 1.1
3314 PKG_ENABLE_MODULES_VLC([GLES2], [], [glesv2], [OpenGL ES v2 support], [disabled])
3319 AC_ARG_ENABLE(vulkan,
3320 [AS_HELP_STRING([--disable-vulkan],
3321 [disable Vulkan support (default auto)])])
3323 AS_IF([test "$enable_vulkan" != "no"], [
3324 AS_IF([test "$have_libplacebo_vk" = "yes"], [
3325 PKG_CHECK_MODULES([VULKAN], [vulkan >= 1.0.26], [
3326 AC_DEFINE([HAVE_VULKAN], [1], [Define to 1 if vulkan is enabled.])
3328 AS_IF([test -n "${enable_vulkan}"], [
3329 AC_MSG_ERROR([${VULKAN_PKG_ERRORS}.])
3334 AS_IF([test -n "${enable_vulkan}"], [
3335 AC_MSG_ERROR([Vulkan support requires libplacebo 1.7 as well. Do not use --disable-libplacebo.])
3340 AM_CONDITIONAL(HAVE_VULKAN, [test "$enable_vulkan" != "no"])
3347 AC_CHECK_HEADERS([X11/Xlib.h])
3350 dnl X C Bindings modules
3352 AC_ARG_ENABLE([xcb],
3353 AS_HELP_STRING([--enable-xcb], [X11 support with XCB (default enabled)]),, [
3354 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "darwin"], [
3362 have_xkbcommon_x11="no"
3363 have_xcb_keysyms="no"
3364 AS_IF([test "${enable_xcb}" != "no"], [
3368 PKG_CHECK_MODULES([XCB], [xcb >= 1.6],, [
3369 xcb_err="$xcb_err ${XCB_PKG_ERRORS}."])
3370 PKG_CHECK_MODULES([XCB_COMPOSITE], [xcb-composite],, [
3371 xcb_err="$xcb_err ${XCB_COMPOSITE_PKG_ERRORS}."])
3372 PKG_CHECK_MODULES([XCB_RANDR], [xcb-randr >= 1.3],, [
3373 xcb_err="$xcb_err ${XCB_RANDR_PKG_ERRORS}."])
3374 PKG_CHECK_MODULES([XCB_RENDER], [xcb-render],, [
3375 xcb_err="$xcb_err ${XCB_RENDER_PKG_ERRORS}."])
3376 PKG_CHECK_MODULES([XCB_SHM], [xcb-shm >= 1.9.2],, [
3377 xcb_err="$xcb_err ${XCB_SHM_PKG_ERRORS}."])
3378 PKG_CHECK_MODULES([XCB_XKB], [xcb-xkb],, [
3379 xcb_err="$xcb_err ${XCB_XKB_PKG_ERRORS}."])
3382 PKG_CHECK_MODULES(XPROTO, [xproto],, [
3383 xcb_err="$xcb_err ${XPROTO_PKG_ERRORS}."])
3385 AS_IF([test -n "$xcb_err"], [
3386 AC_MSG_ERROR([$xcb_err Pass --disable-xcb to skip X11 support.])
3390 PKG_CHECK_MODULES([XKBCOMMON_X11], [xkbcommon-x11], [
3391 have_xkbcommon_x11="yes"
3393 AC_MSG_WARN([${XKBCOMMON_X11_PKG_ERRORS}. Hotkeys are disabled.])
3397 PKG_CHECK_MODULES([XCB_KEYSYMS], [xcb-keysyms >= 0.3.4], [
3398 have_xcb_keysyms="yes"
3400 AC_MSG_WARN([${XCB_KEYSYMS_PKG_ERRORS}. Global hotkeys are disabled.])
3405 AM_CONDITIONAL([HAVE_XCB], [test "${have_xcb}" = "yes"])
3406 AM_CONDITIONAL([HAVE_XKBCOMMON_X11], [test "${have_xkbcommon_x11}" = "yes"])
3407 AM_CONDITIONAL([HAVE_XCB_KEYSYMS], [test "${have_xcb_keysyms}" = "yes"])
3413 AC_ARG_ENABLE([vdpau],
3414 [AS_HELP_STRING([--enable-vdpau], [VDPAU hardware support (default auto)])])
3416 AS_IF([test "${enable_vdpau}" != "no"], [
3417 PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.6], [
3419 AS_IF([test "${no_x}" = "yes"], [
3420 AC_MSG_ERROR([VDPAU requires Xlib (X11).])
3423 AS_IF([test -n "${enable_vdpau}"], [
3424 AC_MSG_ERROR([${VDPAU_PKG_ERRORS}.])
3428 AM_CONDITIONAL([HAVE_VDPAU], [test "${have_vdpau}" = "yes"])
3430 have_avcodec_vdpau="no"
3431 AS_IF([test "${have_vdpau}" = "yes" -a "${have_avcodec}" = "yes"], [
3433 libav) av_vdpau_ver="56.10.0" ;;
3434 ffmpeg) av_vdpau_ver="56.19.100" ;;
3436 PKG_CHECK_EXISTS([libavcodec >= ${av_vdpau_ver}], [
3437 have_avcodec_vdpau="yes"
3438 AC_MSG_NOTICE([VDPAU decoding acceleration activated])
3440 AS_IF([test -n "${enable_vdpau}"], [
3441 AC_MSG_ERROR([libavcodec >= 56.10.0 is required for VDPAU decoding.])
3443 AC_MSG_WARN([libavcodec >= 56.10.0 are required for VDPAU decoding.])
3447 AM_CONDITIONAL([HAVE_AVCODEC_VDPAU], [test "${have_avcodec_vdpau}" = "yes"])
3453 AC_ARG_ENABLE([wayland],
3454 AS_HELP_STRING([--enable-wayland], [Wayland support (default auto)]))
3457 AS_IF([test "${enable_wayland}" != "no"], [
3461 PKG_CHECK_MODULES([WAYLAND_CLIENT], [wayland-client >= 1.5.91],, [
3462 wl_err="$wl_err ${WAYLAND_CLIENT_PKG_ERRORS}."
3464 PKG_CHECK_MODULES([WAYLAND_CURSOR], [wayland-cursor],, [
3465 wl_err="$wl_err ${WAYLAND_CURSOR_PKG_ERRORS}."
3467 PKG_CHECK_MODULES([WAYLAND_EGL], [wayland-egl],, [
3468 wl_err="$wl_err ${WAYLAND_EGL_PKG_ERRORS}."
3470 PKG_CHECK_MODULES([WAYLAND_SCANNER], [wayland-scanner >= 1.15], [
3471 WAYLAND_SCANNER="$(${PKG_CONFIG} wayland-scanner --variable wayland_scanner)"
3473 wl_err="$wl_err ${WAYLAND_SCANNER_PKG_ERRORS}."
3476 dnl wayland-protocols
3477 PKG_CHECK_MODULES([WAYLAND_PROTOCOLS], [wayland-protocols >= 1.15], [
3478 WAYLAND_PROTOCOLS="$(${PKG_CONFIG} wayland-protocols --variable pkgdatadir)"
3480 wl_err="$wl_err ${WAYLAND_PROTOCOLS_PKG_ERRORS}."
3483 AS_IF([test -n "$wl_err"], [
3484 AS_IF([test -n "$enable_wayland"], [
3485 AC_MSG_ERROR([$wl_err])
3487 AC_MSG_WARN([$wl_err])
3494 PKG_CHECK_MODULES([XKBCOMMON], [xkbcommon], [
3495 have_xkbcommon="yes"
3497 AC_MSG_WARN([${XKBCOMMON_PKG_ERRORS}. Hotkeys are disabled.])
3500 AM_CONDITIONAL([HAVE_WAYLAND], [test "${have_wayland}" = "yes"])
3501 AC_SUBST([WAYLAND_PROTOCOLS])
3502 AC_SUBST([WAYLAND_SCANNER])
3503 AM_CONDITIONAL([HAVE_XKBCOMMON], [test "${have_xkbcommon}" = "yes"])
3507 dnl SDL image decoder module
3509 AC_ARG_ENABLE([sdl-image],
3510 AS_HELP_STRING([--enable-sdl-image], [SDL image support (default enabled)]))
3511 AS_IF([test "${enable_sdl_image}" != "no"],[
3512 PKG_CHECK_MODULES(SDL_IMAGE, [SDL_image >= 1.2.10], [
3513 VLC_ADD_PLUGIN([sdl_image])
3515 AC_MSG_WARN([${SDL_IMAGE_PKG_ERRORS}. You should install it alongside your SDL package.])
3522 AC_ARG_ENABLE([freetype],
3523 AS_HELP_STRING([--enable-freetype], [freetype support (default auto)]))
3524 AC_ARG_ENABLE([fribidi],
3525 AS_HELP_STRING([--enable-fribidi], [fribidi support (default auto)]))
3526 AC_ARG_ENABLE([harfbuzz],
3527 AS_HELP_STRING([--enable-harfbuzz], [harfbuzz support (default auto)]))
3528 AC_ARG_ENABLE([fontconfig],
3529 AS_HELP_STRING([--enable-fontconfig], [fontconfig support (default auto)]))
3531 AC_ARG_WITH([default-font],
3532 AS_HELP_STRING([--with-default-font=PATH],
3533 [Path to the default font]),
3534 [AC_DEFINE_UNQUOTED([DEFAULT_FONT_FILE],
3535 "$withval", [Default font])])
3536 AC_ARG_WITH([default-monospace-font],
3537 AS_HELP_STRING([--with-default-monospace-font=PATH],
3538 [Path to the default font]),
3539 [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FONT_FILE],
3540 "$withval", [Default monospace font])])
3542 AC_ARG_WITH([default-font-family],
3543 AS_HELP_STRING([--with-default-font-family=NAME],
3544 [Name of the default font family]),
3545 [AC_DEFINE_UNQUOTED([DEFAULT_FAMILY],
3546 "$withval", [Default font family])])
3547 AC_ARG_WITH([default-monospace-font-family],
3548 AS_HELP_STRING([--with-default-monospace-font-family=NAME],
3549 [Name of the default font family]),
3550 [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FAMILY],
3551 "$withval", [Default monospace font family])])
3554 have_fontconfig="no"
3558 if test "${enable_freetype}" != "no"; then
3559 PKG_CHECK_MODULES(FREETYPE, freetype2, [
3561 VLC_ADD_CPPFLAGS([skins2],[${FREETYPE_CFLAGS}])
3562 VLC_ADD_LIBS([skins2],[${FREETYPE_LIBS}])
3564 dnl fontconfig support
3565 AS_IF([test "${enable_fontconfig}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "darwin"], [
3566 PKG_CHECK_MODULES(FONTCONFIG, [fontconfig >= 2.11], [
3567 have_fontconfig="yes"
3569 AC_MSG_WARN([${FONTCONFIG_PKG_ERRORS}. Styles will be disabled in FreeType.])
3574 if test "${enable_fribidi}" != "no"; then
3575 PKG_CHECK_MODULES(FRIBIDI, fribidi, [
3577 VLC_ADD_CPPFLAGS([skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
3578 VLC_ADD_LIBS([skins2], [${FRIBIDI_LIBS}])
3579 ],[AC_MSG_WARN([${FRIBIDI_PKG_ERRORS}. Bidirectional text and complex scripts (Arabic, Farsi, Thai...) will be disabled in FreeType.])])
3582 dnl harfbuzz support
3583 if test "${have_fribidi}" != "no"; then
3584 if test "${enable_harfbuzz}" != "no"; then
3585 PKG_CHECK_MODULES(HARFBUZZ, harfbuzz, [
3587 VLC_ADD_CPPFLAGS([skins2], [${HARFBUZZ_CFLAGS} -DHAVE_HARFBUZZ])
3588 VLC_ADD_LIBS([skins2], [${HARFBUZZ_LIBS}])
3589 ],[AC_MSG_WARN([${HARFBUZZ_PKG_ERRORS}. Support for complex scripts (Arabic, Farsi, Thai...) will be disabled in FreeType.])])
3593 AS_IF([test -n "${enable_freetype}"],[
3594 AC_MSG_ERROR([${FREETYPE_PKG_ERRORS}. Install FreeType2 development or configure with --disable-freetype.])
3599 AM_CONDITIONAL([HAVE_FREETYPE], [test "${have_freetype}" = "yes"])
3600 AM_CONDITIONAL([HAVE_FONTCONFIG], [test "${have_fontconfig}" = "yes"])
3601 AM_CONDITIONAL([HAVE_FRIBIDI], [test "${have_fribidi}" = "yes"])
3602 AM_CONDITIONAL([HAVE_HARFBUZZ], [test "${have_harfbuzz}" = "yes"])
3605 dnl libass subtitle rendering module
3607 AC_ARG_ENABLE([libass],
3608 AS_HELP_STRING([--enable-libass], [Subtitle support using libass (default enabled)]))
3609 AS_IF( [test "${enable_libass}" != "no"], [
3610 PKG_CHECK_MODULES(LIBASS, [libass >= 0.9.8],
3612 VLC_ADD_PLUGIN([libass])
3614 if test "${have_fontconfig}" != "no"; then
3615 VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
3616 VLC_ADD_LIBS([libass],[${FONTCONFIG_LIBS}])
3619 AC_MSG_WARN([${LIBASS_PKG_ERRORS}.])
3624 dnl SAPI (text to Speech renderer for Windows)
3627 AC_CHECK_TYPES([ISpObjectToken],[
3629 ],[AC_MSG_WARN([sapi.h not found. Text to Speech renderer for Windows disabled])],
3630 [#include <windows.h>
3632 #include <sphelper.h>])
3633 AM_CONDITIONAL([HAVE_SAPI], [test "${have_sapi}" = "yes"])
3637 dnl SVG module (text rendering and image decoding)
3639 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3640 PKG_ENABLE_MODULES_VLC([SVGDEC], [], [librsvg-2.0 >= 2.9.0 cairo >= 1.13.1], [SVG image decoder library],[auto])
3643 dnl Windows DirectX module
3646 AC_ARG_ENABLE([directx],
3647 AS_HELP_STRING([--enable-directx],
3648 [Microsoft DirectX support (default enabled on Windows)]),, [
3649 AS_IF([test "${SYS}" = "mingw32"], [
3650 enable_directx="yes"
3655 AS_IF([test "${enable_directx}" != "no"], [
3657 AC_CHECK_HEADERS([GL/glew.h], [
3658 AC_CHECK_HEADERS([GL/wglew.h], [
3659 VLC_ADD_PLUGIN([glwin32 wgl])
3661 #include <windows.h>
3662 #include <GL/glew.h>
3664 #include <windows.h>
3668 AC_CHECK_HEADERS([d3d11.h], [
3669 VLC_ADD_PLUGIN([direct3d11 direct3d11_filters])
3673 AC_CHECK_HEADERS([d3d9.h], [
3674 VLC_ADD_PLUGIN([direct3d9])
3675 AC_CHECK_HEADERS([d3dx9effect.h])
3677 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
3678 [[#define COBJMACROS
3680 #include <dxva2api.h>
3681 #ifndef IDirectXVideoProcessorService_GetVideoProcessorDeviceGuids
3682 # error dxva2 too old
3686 VLC_ADD_PLUGIN([direct3d9_filters])
3688 [AC_MSG_WARN([Could not find required IDirectXVideoDecoder in dxva2api.h])])
3694 dnl Linux framebuffer module
3696 AC_CHECK_HEADER([linux/fb.h], [
3697 VLC_ADD_PLUGIN([fb])
3701 dnl Linux kernel mode setting module
3703 PKG_ENABLE_MODULES_VLC([KMS], [], [libdrm >= 2.4.83], [Linux kernel mode setting output], [auto])
3708 PKG_ENABLE_MODULES_VLC([CACA], [], [caca >= 0.99.beta14], [libcaca output],[auto])
3713 AC_ARG_ENABLE([kva],
3714 AS_HELP_STRING([--enable-kva],
3715 [support the K Video Accelerator KVA (default enabled on OS/2)]),, [
3716 AS_IF([test "$SYS" = "os2"], [
3722 AS_IF([test "$enable_kva" != "no"], [
3723 AC_CHECK_HEADERS([kva.h], [
3725 AC_CHECK_LIB([kva], [main], [
3730 AC_SUBST([KVA_LIBS])
3731 AM_CONDITIONAL([HAVE_KVA], [test "${have_kva}" = "yes"])
3736 AC_ARG_ENABLE([mmal],
3737 AS_HELP_STRING([--enable-mmal],
3738 [Multi-Media Abstraction Layer (MMAL) hardware plugin (default enable)]))
3739 if test "${enable_mmal}" != "no"; then
3741 LDFLAGS="${LDFLAGS} -L/opt/vc/lib -lvchostif"
3742 CPPFLAGS="${CPPFLAGS} -isystem /opt/vc/include -isystem /opt/vc/include/interface/vcos/pthreads -isystem /opt/vc/include/interface/vmcs_host/linux"
3743 AC_CHECK_HEADERS([interface/mmal/mmal.h],
3744 [ AC_CHECK_LIB([bcm_host], [vc_tv_unregister_callback_full], [
3746 VLC_ADD_PLUGIN([mmal])
3747 VLC_ADD_LDFLAGS([mmal],[ -L/opt/vc/lib ])
3748 VLC_ADD_CFLAGS([mmal],[ -isystem /opt/vc/include -isystem /opt/vc/include/interface/vcos/pthreads -isystem /opt/vc/include/interface/vmcs_host/linux ])
3749 VLC_ADD_LIBS([mmal],[ -lbcm_host -lmmal -lmmal_core -lmmal_components -lmmal_util -lvchostif -lvcsm -lvchiq_arm ]) ], [
3750 AS_IF([test "${enable_mmal}" = "yes"],
3751 [ AC_MSG_ERROR([Cannot find bcm library...]) ],
3752 [ AC_MSG_WARN([Cannot find bcm library...]) ])
3755 ] , [ AS_IF([test "${enable_mmal}" = "yes"],
3756 [ AC_MSG_ERROR([Cannot find development headers for mmal...]) ],
3757 [ AC_MSG_WARN([Cannot find development headers for mmal...]) ]) ])
3760 AM_CONDITIONAL([HAVE_MMAL], [test "${have_mmal}" = "yes"])
3766 EXTEND_HELP_STRING([Audio plugins:])
3769 dnl Pulseaudio module
3771 AC_ARG_ENABLE([pulse],
3772 AS_HELP_STRING([--enable-pulse],
3773 [use the PulseAudio client library (default auto)]))
3775 AS_IF([test "${enable_pulse}" != "no"], [
3776 PKG_CHECK_MODULES([PULSE], [libpulse >= 1.0], [
3779 AS_IF([test "x${enable_pulse}" != "x"], [
3780 AC_MSG_ERROR([$PULSE_PKG_ERRORS. PulseAudio 1.0 or later required.])
3784 AM_CONDITIONAL([HAVE_PULSE], [test "${have_pulse}" = "yes"])
3789 AC_ARG_ENABLE([alsa],
3790 AS_HELP_STRING([--enable-alsa],
3791 [support the Advanced Linux Sound Architecture (default auto)]),, [
3792 AS_IF([test "$SYS" = "linux" -a "${have_pulse}" = "no"], [
3797 AS_IF([test "${enable_alsa}" != "no"], [
3798 PKG_CHECK_MODULES([ALSA], [alsa >= 1.0.24], [
3801 AS_IF([test "x${enable_alsa}" != "x"], [
3802 AC_MSG_ERROR([$ALSA_PKG_ERRORS. alsa-lib 1.0.24 or later required. Pass --disable-alsa to ignore this error.])
3806 AM_CONDITIONAL([HAVE_ALSA], [test "${have_alsa}" = "yes"])
3809 dnl Open Sound System module
3811 AC_ARG_ENABLE([oss],
3812 AS_HELP_STRING([--enable-oss],
3813 [support the Open Sound System OSS (default enabled on FreeBSD/NetBSD/DragonFlyBSD)]),, [
3814 AS_IF([test "$SYS" = "mingw32" -o "$SYS" = "linux" -o "$SYS" = "openbsd"], [
3820 AS_IF([test "$enable_oss" != "no"], [
3821 AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
3823 AC_CHECK_LIB([ossaudio], [main], [
3824 OSS_LIBS="-lossaudio"
3828 AC_SUBST([OSS_LIBS])
3829 AM_CONDITIONAL([HAVE_OSS], [test "${have_oss}" = "yes"])
3832 dnl OpenBSD sndio module
3834 AC_ARG_ENABLE([sndio],
3835 AS_HELP_STRING([--disable-sndio],
3836 [support the OpenBSD sndio (default auto)]),, [
3837 AS_IF([test "$SYS" = "openbsd"], [
3842 AS_IF([test "$enable_sndio" != "no"], [
3843 AC_CHECK_HEADER([sndio.h], [
3847 AM_CONDITIONAL([HAVE_SNDIO], [test "${have_sndio}" = "yes"])
3850 dnl Windows Audio Session plugin
3852 AC_ARG_ENABLE([wasapi],
3853 AS_HELP_STRING([--enable-wasapi],
3854 [use the Windows Audio Session API (default auto)])
3857 AS_IF([test "$enable_wasapi" != "no"], [
3858 AC_CHECK_HEADER([audioclient.h], [
3861 AS_IF([test "x${enable_wasapi}" != "x"], [
3862 AC_MSG_ERROR([Windows Audio Session API not found.])
3866 AM_CONDITIONAL([HAVE_WASAPI], [test "${have_wasapi}" = "yes"])
3871 AC_ARG_ENABLE([jack],
3872 AS_HELP_STRING([--disable-jack],
3873 [do not use jack (default auto)]))
3875 AS_IF([test "${enable_jack}" != "no"], [
3876 PKG_CHECK_MODULES(JACK, jack >= 1.9.7,
3879 AC_MSG_WARN([${JACK_PKG_ERRORS}, trying jack1 instead])
3881 PKG_CHECK_MODULES(JACK, jack >= 0.120.1 jack < 1.0,
3884 AS_IF([test -n "${enable_jack}"],
3885 [AC_MSG_ERROR([${JACK_PKG_ERRORS}.])],
3886 [AC_MSG_WARN([${JACK_PKG_ERRORS}.])])
3890 AM_CONDITIONAL([HAVE_JACK], [test "${have_jack}" != "no"])
3893 dnl OpenSLES Android
3895 AC_ARG_ENABLE([opensles],
3896 AS_HELP_STRING([--enable-opensles], [Android OpenSL ES audio module (default disabled)]))
3897 if test "${HAVE_ANDROID}" = "1"; then
3898 if test "${enable_opensles}" = "yes"; then
3899 AC_CHECK_HEADERS([SLES/OpenSLES.h],
3900 [ VLC_ADD_PLUGIN([opensles_android]) ],
3901 [ AC_MSG_ERROR([cannot find OpenSLES headers])] )
3906 dnl libsamplerate plugin
3908 PKG_ENABLE_MODULES_VLC([SAMPLERATE], [], [samplerate], [Resampler with libsamplerate], [auto])
3913 PKG_ENABLE_MODULES_VLC([SOXR], [], [soxr >= 0.1.2], [SoX Resampler library], [auto])
3918 AC_ARG_ENABLE([kai],
3919 AS_HELP_STRING([--enable-kai],
3920 [support the K Audio Interface KAI (default enabled on OS/2)]),, [
3921 AS_IF([test "$SYS" = "os2"], [
3927 AS_IF([test "$enable_kai" != "no"], [
3928 AC_CHECK_HEADERS([kai.h], [
3930 AC_CHECK_LIB([kai], [main], [
3935 AC_SUBST([KAI_LIBS])
3936 AM_CONDITIONAL([HAVE_KAI], [test "${have_kai}" = "yes"])
3939 dnl chromaprint audio track fingerprinter
3941 PKG_ENABLE_MODULES_VLC([CHROMAPRINT], [stream_out_chromaprint], [libchromaprint >= 0.6.0], [Chromaprint audio fingeprinter], [auto])
3944 dnl Chromecast streaming support
3946 m4_pushdef([protobuf_lite_version], 2.5.0)
3947 AC_ARG_VAR(PROTOC, [protobuf compiler])
3948 AC_CHECK_PROGS(PROTOC, protoc, no)
3949 PKG_WITH_MODULES([CHROMECAST],[protobuf-lite >= protobuf_lite_version], [
3950 AS_IF([test "x${PROTOC}" != "xno"], [
3951 build_chromecast="yes"
3953 AC_MSG_ERROR(protoc compiler needed for [chromecast] was not found)
3956 AS_IF([test "${enable_chromecast}" = "yes"],
3957 AC_MSG_ERROR(Library [protobuf-lite >= protobuf_lite_version] needed for [chromecast] was not found),
3958 AC_MSG_WARN(Library [protobuf-lite >= protobuf_lite_version] needed for [chromecast] was not found)
3960 enable_chromecast="no"
3961 ], [(Chromecast streaming support)], [auto])
3962 AM_CONDITIONAL([BUILD_CHROMECAST], [test "${build_chromecast}" = "yes"])
3963 m4_popdef([protobuf_lite_version])
3966 dnl Interface plugins
3969 EXTEND_HELP_STRING([Interface plugins:])
3975 AS_HELP_STRING([--disable-qt], [Qt UI support (default enabled)]),, [
3976 AS_IF([test "${enable_vlc}" != "no"], [enable_qt="yes"])
3977 AS_IF([test "${SYS}" = "darwin"], [
3982 AS_IF([test "${enable_qt}" != "no"], [
3983 PKG_CHECK_MODULES([QT], [Qt5Core >= 5.11.0 Qt5Widgets Qt5Gui Qt5Quick Qt5QuickWidgets Qt5QuickControls2 Qt5Svg], [
3984 PKG_CHECK_MODULES([QT5_X11], [Qt5X11Extras], [
3987 AC_MSG_WARN([Not building Qt Interface with X11 helpers.])
3989 QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix Qt5Core)"
3990 QT_HOST_PATH="$(eval $PKG_CONFIG --variable=host_bins Qt5Core)"
3991 QT_VERSION="$(eval $PKG_CONFIG --modversion Qt5Gui)"
3992 AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3993 AC_PATH_PROGS(RCC, [rcc-qt5 rcc], rcc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3994 AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3995 AC_PATH_PROGS(QMLCACHE, [qmlcachegen-qt5 qmlcachegen], no, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3996 AS_IF([test "x${QMLCACHE}" = "xno"], [
3997 AC_MSG_WARN([qmlcachegen not found])
4000 AS_IF([test -n "${enable_qt}"],[
4001 AC_MSG_ERROR([${QT_PKG_ERRORS}. If you want to build VLC without GUI, pass --disable-qt.])
4003 AC_MSG_WARN([${QT_PKG_ERRORS}.])
4009 AC_ARG_ENABLE([qt-qml-cache],
4010 AS_HELP_STRING([--enable-qt-qml-cache],
4011 [enable qml cache generation]))
4012 AM_CONDITIONAL([HAVE_QMLCACHE], [test "${enable_qt_qml_cache}" = "yes" && test "x$QMLCACHE" != "xno"])
4014 AC_ARG_ENABLE([qt-qml-debug],
4015 AS_HELP_STRING([--enable-qt-qml-debug], [enable qml debuger]))
4016 AM_CONDITIONAL(QT_QML_DEBUG, [test "${enable_qt_qml_debug}" = "yes"])
4018 AS_IF([test "${enable_qt}" != "no"], [
4019 ALIASES="${ALIASES} qvlc"
4021 AC_SUBST([QT_VERSION])
4022 AM_CONDITIONAL([ENABLE_QT], [test "$enable_qt" != "no"])
4023 AM_CONDITIONAL([HAVE_QT5_X11], [test "${have_qt5_x11}" = "yes"])
4026 dnl detect kde4-config patch (used for kde solids).
4028 AC_ARG_VAR([KDE4_CONFIG], [kde4-config utility])
4029 AS_IF([test "x$KDE4_CONFIG" = "x"], [
4030 KDE4_CONFIG="kde4-config"
4034 dnl Simple test for skins2 dependency
4036 AS_IF([test "$enable_qt" = "no"], [
4037 AS_IF([test "${enable_skins2}" = "yes"], [
4038 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.])
4041 AC_MSG_WARN([The skins2 module depends on the Qt interface, Qt is not built so skins2 is disabled.])
4048 AC_ARG_ENABLE([skins2],
4049 AS_HELP_STRING([--enable-skins2], [skins interface module (default auto)]))
4050 AS_IF([test "${enable_skins2}" != "no"], [
4051 have_skins_deps="yes"
4054 AS_IF([test "${SYS}" = "mingw32"], [
4055 VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -DWIN32_SKINS])
4056 VLC_ADD_LIBS([skins2],[-lgdi32 -lole32 -luuid -lmsimg32])
4058 ], [test "${SYS}" = "os2"], [
4059 VLC_ADD_CPPFLAGS([skins2],[ -DOS2_SKINS])
4062 PKG_CHECK_MODULES([XPM], [xpm],, [have_skins_deps="no"])
4063 PKG_CHECK_MODULES([XINERAMA], [xinerama],, [have_skins_deps="no"])
4064 PKG_CHECK_MODULES([XCURSOR], [xcursor],, [have_skins_deps="no"])
4065 PKG_CHECK_MODULES([XEXT], [xext],, [have_skins_deps="no"])
4066 VLC_ADD_CPPFLAGS([skins2],[${X_CFLAGS} ${XEXT_CFLAGS} ${XPM_CFLAGS} -DX11_SKINS])
4067 VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} ${XEXT_LIBS} ${XPM_LIBS} ${XINERAMA_LIBS} ${XCURSOR_LIBS} -lX11])
4070 dnl we need freetype
4071 AS_IF([test "${have_freetype}" != "yes"], [
4072 have_skins_deps="no"
4075 AS_IF([test "${have_skins_deps}" = "no"], [
4076 AS_IF([test "x${enable_skins2}" = "x"], [
4077 AC_MSG_WARN([Skins2 interface disabled due to missing dependencies.])
4079 AC_MSG_ERROR([Skins2 interface requires FreeType, libxcursor, libxpm, libxext and libxinerama])
4083 ALIASES="${ALIASES} svlc"
4087 AM_CONDITIONAL([BUILD_SKINS], [test "${enable_skins2}" = "yes"])
4089 AC_ARG_ENABLE([libtar],
4090 AS_HELP_STRING([--enable-libtar], [libtar support for skins2 (default auto)]))
4091 AS_IF([test "${enable_skins2}" = "yes" && test "${enable_libtar}" != "no"], [
4092 AC_CHECK_HEADERS([libtar.h], [
4093 VLC_ADD_LIBS([skins2],[-ltar])
4098 dnl MacOS X gui module
4100 AC_ARG_ENABLE([macosx],
4101 AS_HELP_STRING([--enable-macosx], [Mac OS X gui support (default enabled on Mac OS X)]))
4102 if test "x${enable_macosx}" != "xno" -a "${SYS}" = "darwin"
4106 dnl If possible, use xcrun to find the right ibtool
4109 AC_PATH_PROG([XCRUN], [xcrun], [no])
4110 AS_IF([test ! "x${XCRUN}" = "xno"], [
4111 AC_MSG_CHECKING([for ibtool (using xcrun)])
4112 XIB="$(eval $XCRUN -f ibtool 2>/dev/null || echo no)"
4113 AC_MSG_RESULT([${XIB}])
4115 AC_MSG_WARN([Looking for tools without using xcrun])
4118 AS_IF([test "x${XIB}" = "xno"], [
4119 AC_PATH_PROG(XIB, [ibtool], [no])
4120 AS_IF([test "x${XIB}" = "xno"], [
4121 AC_MSG_ERROR([ibtool was not found, but is required for --enable-macosx])
4125 AM_CONDITIONAL([ENABLE_MACOSX_UI], [test "$enable_macosx" != "no" -a "${SYS}" = "darwin"])
4128 dnl MacOS X sparkle update support
4130 AC_ARG_ENABLE([sparkle],
4131 AS_HELP_STRING([--enable-sparkle], [Sparkle update support for OS X (default enabled on Mac OS X)]))
4132 if test "x${enable_sparkle}" != "xno" -a "${HAVE_OSX}" = "1"
4134 if test ! -d ${CONTRIB_DIR}/Sparkle.framework -a ! -d ${CONTRIB_DIR}/Frameworks/Sparkle.framework
4136 AC_MSG_ERROR([Sparkle framework is required and was not found in ${CONTRIB_DIR}])
4139 AC_DEFINE([HAVE_SPARKLE], [1], [Define to 1 if sparkle is enabled.])
4141 AM_CONDITIONAL([HAVE_SPARKLE], [test "$enable_sparkle" != "no"])
4144 dnl MacOS X breakpad creash reporter support
4146 AC_ARG_WITH([breakpad],
4147 AS_HELP_STRING([--with-breakpad=URL], [Enable Breakpad reporter using given URL]), [], [with_breakpad=no])
4149 AS_IF([test "$with_breakpad" != "no"], [
4151 AS_IF([test "$with_breakpad" = "yes"], [
4152 AC_MSG_ERROR([You need to supply the CrashDragon Server URL as value for --with-breakpad])
4155 AS_IF([test "$HAVE_OSX" = "1"], [
4156 AC_MSG_CHECKING([for Breakpad framework])
4157 AS_IF([test ! -d ${CONTRIB_DIR}/Breakpad.framework -a \
4158 ! -d ${CONTRIB_DIR}/Frameworks/Breakpad.framework], [
4161 AC_MSG_ERROR([Breakpad framework is required and was not found in ${CONTRIB_DIR}])
4163 AC_MSG_RESULT([yes])
4166 PKG_CHECK_MODULES([BREAKPAD], [breakpad-client], [
4167 LDFLAGS="${LDFLAGS} -Wl,--build-id"
4169 AC_MSG_ERROR(["breakpad not found"])
4174 AM_CONDITIONAL([HAVE_BREAKPAD], [test "$with_breakpad" != "no"])
4175 AS_IF([test "$with_breakpad" != "no"], [
4176 AC_SUBST([BREAKPAD_URL], ["${with_breakpad}"])
4180 dnl Minimal Mac OS X module
4182 AC_ARG_ENABLE([minimal-macosx],
4183 AS_HELP_STRING([--enable-minimal-macosx], [Minimal Mac OS X support (default disabled)]))
4184 if test "${enable_minimal_macosx}" = "yes" -a "${SYS}" = "darwin"
4186 VLC_ADD_PLUGIN([minimal_macosx])
4190 dnl Mac OS X fancy dmg build tool
4192 if test "${HAVE_OSX}" = "1"
4194 AC_PATH_PROG(DMGBUILD, dmgbuild, no)
4195 AS_IF([test "x${DMGBUILD}" = "xno"], [
4196 AC_MSG_WARN([dmgbuild not found -- unable to build fancy DMGs])
4199 AM_CONDITIONAL([HAVE_DMGBUILD], [test "x$DMGBUILD" != "xno" -a "${HAVE_OSX}" = "1"])
4202 dnl VideoToolbox plugins
4203 AC_CHECK_HEADERS([VideoToolbox/VideoToolbox.h], [
4204 VLC_ADD_PLUGIN([videotoolbox])
4205 VLC_ADD_PLUGIN([cvpx])
4209 dnl AudioToolbox MIDI plugin
4210 AC_CHECK_HEADERS([AudioToolbox/AudioToolbox.h], [
4211 VLC_ADD_PLUGIN([audiotoolboxmidi])
4217 AC_ARG_ENABLE([ncurses],
4218 AS_HELP_STRING([--disable-ncurses],[ncurses text-based interface (default auto)]))
4220 AS_IF([test "${enable_ncurses}" != "no"] ,[
4221 PKG_CHECK_MODULES([NCURSES], [ncursesw], [
4223 ALIASES="${ALIASES} nvlc"
4225 AS_IF([test -n "${enable_ncurses}"], [
4226 AC_MSG_ERROR([${NCURSES_PKG_ERRORS}.])
4230 AM_CONDITIONAL([HAVE_NCURSES], [test "${have_ncurses}" = "yes"])
4235 AC_ARG_ENABLE([lirc],
4236 AS_HELP_STRING([--enable-lirc], [lirc support (default disabled)]))
4238 AS_IF([test "${enable_lirc}" = "yes"], [
4239 AC_CHECK_HEADER(lirc/lirc_client.h, [
4240 AC_CHECK_LIB([lirc_client], [lirc_init], [
4245 AM_CONDITIONAL([HAVE_LIRC], [test "${have_lirc}" = "yes"])
4250 PKG_CHECK_MODULES([BITSTREAM], [bitstream > 1.4],[have_bitstream="yes"], [have_bitstream="no"])
4251 AM_CONDITIONAL([HAVE_BITSTREAM], [test "${have_bitstream}" = "yes"])
4256 PKG_ENABLE_MODULES_VLC([SRT], [access_srt access_output_srt], [srt >= 1.3.0], [SRT input/output plugin], [auto], [], [], [-DENABLE_SRT])
4258 EXTEND_HELP_STRING([Visualisations and Video filter plugins:])
4260 dnl goom visualization plugin
4262 PKG_ENABLE_MODULES_VLC([GOOM], [], [libgoom2], [goom visualization plugin], [auto])
4265 dnl libprojectM visualization plugin
4267 AC_ARG_ENABLE([projectm],
4268 AS_HELP_STRING([--enable-projectm], [projectM visualization plugin (default enabled)]))
4269 AS_IF([test "${enable_projectm}" != "no"],
4271 PKG_CHECK_MODULES(PROJECTM, libprojectM,
4273 VLC_ADD_PLUGIN([projectm])
4274 PKG_CHECK_EXISTS([libprojectM >= 2.0.0],
4275 [ AC_DEFINE([HAVE_PROJECTM2], 1, [Define to 1 if using libprojectM 2.x]) ],
4276 [ AC_MSG_WARN( [Using libprojectM version 1] )
4279 AC_MSG_WARN([${PROJECTM_PKG_ERRORS}.])
4284 dnl Vovoid VSXu visualization plugin
4286 AC_ARG_ENABLE([vsxu],
4287 AS_HELP_STRING([--enable-vsxu], [Vovoid VSXu visualization plugin (default auto)]))
4288 AS_IF([test "${enable_vsxu}" != "no"],
4290 PKG_CHECK_MODULES(VSXU, libvsxu,
4292 VLC_ADD_PLUGIN([vsxu])
4294 AC_MSG_WARN([${VSXU_PKG_ERRORS}.])
4298 EXTEND_HELP_STRING([Service Discovery plugins:])
4300 dnl Avahi-Zeroconf services discovery
4301 PKG_ENABLE_MODULES_VLC([AVAHI], [], [avahi-client >= 0.6], [Zeroconf services discovery], [auto])
4304 dnl libudev services discovery
4305 PKG_ENABLE_MODULES_VLC([UDEV], [], [libudev >= 142], [Linux udev services discovery], [auto])
4308 dnl MTP devices services discovery
4309 PKG_ENABLE_MODULES_VLC([MTP], [mtp access_mtp], [libmtp >= 1.0.0], [MTP devices support], [auto])
4312 dnl UPnP Plugin (Intel SDK)
4314 PKG_ENABLE_MODULES_VLC([UPNP], [upnp], [libupnp], [Intel UPNP SDK],[auto])
4317 dnl mDNS using libmicrodns
4319 PKG_ENABLE_MODULES_VLC([MICRODNS], [], [microdns >= 0.1.2], [mDNS services discovery], [auto])
4322 EXTEND_HELP_STRING([Misc options:])
4327 PKG_ENABLE_MODULES_VLC([LIBXML2], [xml], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
4333 AC_ARG_ENABLE([libgcrypt],
4334 AS_HELP_STRING([--disable-libgcrypt], [gcrypt support (default enabled)]))
4335 AC_ARG_VAR([GCRYPT_CFLAGS], [C compiler flags for gcrypt])
4336 AC_ARG_VAR([GCRYPT_LIBS], [linker flags flags for gcrypt])
4338 # require libgcrypt >= 1.6.0
4339 AS_IF([test "${enable_libgcrypt}" != "no"], [
4340 AC_CACHE_CHECK([for gcrypt 1.6.0 or later], [ac_cv_lib_gcrypt], [
4342 CFLAGS="${CFLAGS} ${GCRYPT_CFLAGS}"
4343 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
4344 [#include <gcrypt.h>
4345 #if GCRYPT_VERSION_NUMBER < 0x010600
4348 ac_cv_lib_gcrypt=yes
4355 AS_IF([test "${ac_cv_lib_gcrypt}" = "yes"], [
4356 AC_DEFINE([HAVE_GCRYPT], 1, [Defined if having gcrypt])
4358 AS_IF([test "${enable_libgcrypt}" = "yes"], [
4359 AC_MSG_ERROR([libgcrypt version 1.6.0 or higher not found. Install libgcrypt or pass --disable-libgcrypt.])
4364 AS_IF([test -z "$GCRYPT_LIBS"], [
4365 GCRYPT_LIBS="-lgcrypt -lgpg-error"
4368 AC_SUBST([GCRYPT_CFLAGS])
4369 AC_SUBST([GCRYPT_LIBS])
4370 AM_CONDITIONAL([HAVE_GCRYPT], [test "${ac_cv_lib_gcrypt}" = "yes"])
4375 AC_ARG_ENABLE([gnutls],
4376 AS_HELP_STRING([--enable-gnutls], [GNU TLS TLS/SSL support (default enabled)]))
4377 AS_IF([test "${enable_gnutls}" != "no"], [
4378 PKG_CHECK_MODULES(GNUTLS, [gnutls >= 3.5.0], [
4379 VLC_ADD_PLUGIN([gnutls])
4381 AS_IF([test -n "${enable_gnutls}"], [
4382 AC_MSG_ERROR([${GNUTLS_PKG_ERRORS}.)])
4391 AC_ARG_ENABLE([taglib],
4392 AS_HELP_STRING([--disable-taglib],
4393 [do not use TagLib (default enabled)]))
4394 AS_IF([test "${enable_taglib}" != "no"], [
4395 PKG_CHECK_MODULES(TAGLIB, taglib >= 1.11, [
4396 VLC_ADD_PLUGIN([taglib])
4398 AC_MSG_WARN([${TAGLIB_PKG_ERRORS}.])])
4404 PKG_ENABLE_MODULES_VLC([SECRET], [], [libsecret-1 >= 0.18], [use libsecret for keystore], [auto])
4409 AC_ARG_ENABLE([kwallet],
4410 AS_HELP_STRING([--enable-kwallet],
4411 [use kwallet (via D-Bus) for keystore (default enabled)]))
4412 AS_IF([test "${enable_kwallet}" != "no" -a "${have_dbus}" = "yes"], [
4413 VLC_ADD_PLUGIN([kwallet])
4417 dnl update checking system
4419 AC_ARG_ENABLE([update-check],
4420 AS_HELP_STRING([--enable-update-check], [update checking system (default disabled)]))
4421 if test "${enable_update_check}" = "yes"
4423 AS_IF([test "${ac_cv_lib_gcrypt}" != "yes"],[
4424 AC_MSG_ERROR([libgcrypt is required for update checking system]) ])
4426 AM_CONDITIONAL([UPDATE_CHECK], [test "${enable_update_check}" = "yes"])
4429 dnl OS X notification plugin
4431 AC_ARG_ENABLE([osx_notifications],
4432 AS_HELP_STRING([--enable-osx-notifications],
4433 [macOS notification plugin (default disabled)]),,
4434 [enable_osx_notifications=no])
4435 AS_IF([test "${enable_osx_notifications}" != "no"], [
4436 VLC_ADD_PLUGIN([osx_notifications])
4440 dnl Libnotify notification plugin
4442 PKG_ENABLE_MODULES_VLC([NOTIFY], [], [libnotify], [libnotify notification], [auto])
4444 PKG_ENABLE_MODULES_VLC([MEDIALIBRARY], [medialibrary], [medialibrary >= 0.8.0], (medialibrary support), [auto])
4447 dnl Endianness check
4450 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
4451 DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
4455 AC_SUBST([DEFS_BIGENDIAN])
4458 dnl Where to install KDE solid .desktop
4460 AC_ARG_WITH(kde-solid,
4461 AS_HELP_STRING([--with-kde-solid=PATH],
4462 [KDE Solid actions directory (auto)]),, [
4464 if test "${SYS}" != "mingw32" -a "${SYS}" != "darwin" -a "${HAVE_ANDROID}" != "1" ; then
4465 with_kde_solid="yes"
4469 AS_IF([test "${with_kde_solid}" != "no"], [
4470 AS_IF([test "${with_kde_solid}" = "yes"], [
4471 kde4datadir="`${KDE4_CONFIG} --install data`"
4472 AS_IF([test "x$kde4datadir" = "x"], [kde4datadir='${datadir}/kde4/apps'])
4473 soliddatadir="${kde4datadir}/solid/actions"
4475 soliddatadir="${with_kde_solid}"
4478 AC_SUBST([soliddatadir])
4479 AM_CONDITIONAL([KDE_SOLID], [test "x${soliddatadir}" != "x"])
4482 dnl Find tools for win32 packaging
4484 AS_IF([test "${SYS}" = "mingw32"], [
4486 dnl Find makensis required to build the NSIS installer
4488 nsis_major_required="3"
4489 nsis_version_ok="no"
4490 AC_PATH_PROG([MAKENSIS], [makensis], [no])
4491 AS_IF([test "$MAKENSIS" != "no"], [
4493 AC_MSG_CHECKING([makensis version])
4494 nsis_version=$($MAKENSIS -VERSION)
4495 AC_MSG_RESULT([$nsis_version])
4496 nsis_version_major=$(echo "$nsis_version" | awk -F \. '{print $1}' | sed 's/v//')
4497 # Check if major version is a valid number
4498 AS_IF([test -n "$nsis_version_major" && \
4499 test "$nsis_version_major" -eq "$nsis_version_major" 2> /dev/null], [
4500 # Do the version check using major version
4501 AS_IF([test "$nsis_version_major" -lt "$nsis_major_required"], [
4502 AC_MSG_WARN([makensis too old, (needs ${nsis_major_required}.x, have ${nsis_version_major}.x)])
4504 nsis_version_ok="yes"
4507 AC_MSG_WARN([failed to check the makensis version])
4513 AC_PATH_PROG([SEVENZIP], [7z], [7z])
4515 AM_CONDITIONAL([HAVE_MAKENSIS], [test "x$MAKENSIS" != "xno" && test "$nsis_version_ok" = "yes"])
4518 dnl Check wether we have the PROCESS_MITIGATION_IMAGE_LOAD_POLICY
4519 dnl It should only be available when building for win10, but some SDKs define it unconditionnaly
4521 if test "${SYS}" = "mingw32"; then
4522 AC_CHECK_TYPES([PROCESS_MITIGATION_IMAGE_LOAD_POLICY],,,[#include <windows.h>])
4525 EXTEND_HELP_STRING([Components:])
4530 AC_ARG_ENABLE([vlc],
4531 AS_HELP_STRING([--enable-vlc], [build the VLC media player (default enabled)]))
4532 AM_CONDITIONAL([BUILD_VLC], [test "${enable_vlc}" != "no"])
4535 dnl Fuzzer (at the end not to mess dependencies FLAGS)
4537 AS_VAR_IF(with_libfuzzer, no, [], [
4538 LIBS="-lstdc++ ${LIBM}"
4539 AS_IF([test "${with_libfuzzer}" != "yes"], [
4540 LIBS="$LIBS -L${with_libfuzzer}"
4542 LIBS="$LIBS -lFuzzer"
4543 AX_CHECK_COMPILE_FLAG(-fsanitize-coverage=trace-pc-guard, [
4544 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc-guard])
4545 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc-guard], [CXXFLAGS])
4546 AX_APPEND_COMPILE_FLAGS([-fsanitize-coverage=trace-cmp])
4547 AX_APPEND_COMPILE_FLAGS([-fsanitize-coverage=trace-cmp], [CXXFLAGS])
4549 AX_CHECK_COMPILE_FLAG(-fsanitize-coverage=trace-pc, [
4550 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc])
4551 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc], [CXXFLAGS])
4553 AC_MSG_ERROR([Sanitizer coverage not supported by your compiler])
4559 dnl Stuff used by the program
4561 VERSION_MESSAGE="${VERSION} ${CODENAME}"
4562 COPYRIGHT_MESSAGE="Copyright © ${COPYRIGHT_YEARS} the VideoLAN team"
4563 AC_DEFINE_UNQUOTED([VERSION_MESSAGE], "${VERSION_MESSAGE}", [Simple version string])
4564 AC_DEFINE_UNQUOTED([COPYRIGHT_MESSAGE], "${COPYRIGHT_MESSAGE}", [Copyright string])
4565 AC_DEFINE_UNQUOTED([COPYRIGHT_YEARS], "${COPYRIGHT_YEARS}", [The copyright years])
4566 AC_DEFINE_UNQUOTED([CONFIGURE_LINE], "${CONFIGURE_LINE}", [The ./configure command line])
4567 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_MAJOR],${VERSION_MAJOR}, [version major number])
4568 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_MINOR],${VERSION_MINOR}, [version minor number])
4569 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_REVISION],${VERSION_REVISION}, [version revision number])
4570 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_EXTRA],${VERSION_EXTRA}, [version extra number])
4571 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_DEV],"${VERSION_DEV}", [version development string])
4572 AC_SUBST([COPYRIGHT_MESSAGE])
4573 AC_SUBST([VERSION_MESSAGE])
4574 AC_SUBST([VERSION_MAJOR])
4575 AC_SUBST([VERSION_MINOR])
4576 AC_SUBST([VERSION_REVISION])
4577 AC_SUBST([VERSION_EXTRA])
4578 AC_SUBST([COPYRIGHT_YEARS])
4579 AC_DEFINE_UNQUOTED([VLC_COMPILE_BY], "`whoami|sed -e 's/\\\/\\\\\\\/g'`", [user who ran configure])
4580 AC_DEFINE_UNQUOTED([VLC_COMPILE_HOST], "`hostname -f 2>/dev/null || hostname`", [host which ran configure])
4581 AC_DEFINE_UNQUOTED([VLC_COMPILER], "`$CC -v 2>&1 | tail -n 1 | sed -e 's/ *$//'`", [compiler])
4583 dnl Handle substvars that use $(top_srcdir)
4585 CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS}"
4588 dnl Configuration is finished
4598 AC_SUBST([WINE_SDK_PATH])
4600 AC_SUBST([AM_CPPFLAGS])
4601 AC_SUBST([MACOSX_DEPLOYMENT_TARGET])
4602 AC_SUBST([FILE_LIBVLCCORE_DLL])
4603 AC_SUBST([FILE_LIBVLC_DLL])
4617 modules/hw/mmal/Makefile
4618 share/vlc.appdata.xml.in
4621 AM_COND_IF([HAVE_WIN32], [
4623 extras/package/win32/NSIS/spad.nsi
4624 extras/package/win32/NSIS/vlc.win32.nsi
4625 extras/package/win32/msi/config.wxi
4629 AM_COND_IF([HAVE_DARWIN], [
4631 modules/gui/macosx/UI/InfoPlist.strings:modules/gui/macosx/Resources/InfoPlist.strings.in
4632 share/macosx/Info.plist:share/Info.plist.in
4636 dnl Generate makefiles
4639 dnl Do we have to use make or gmake ?
4640 if make --version 2>&1|grep -q GNU
4642 # GNU make, all seems good
4645 # Known GNU make alias (on BSD)
4648 dnl Shortcut to nice compile message
4649 if test -n $SHELL; then
4650 SHELL=${CONFIG_SHELL-/bin/sh}
4653 compile_top_srcdir=`sed -ne "s/^top_srcdir *= *//p" < Makefile`
4657 export PATH=\"$PATH\" LANG=C
4658 ($MAKE V=1 \$@ 2>&1 || touch .error\$\$)| $compile_top_srcdir/extras/buildsystem/make.pl
4659 test -f .error\$\$ && ERROR=1
4661 exit \$ERROR" >compile
4665 libvlc configuration
4666 --------------------
4667 version : ${VERSION}
4669 architecture : ${ARCH}
4670 optimizations : ${enable_optimizations}"
4671 if test "${enable_vlc}" != "no"; then
4672 echo "vlc aliases :${ALIASES}"
4674 echo "build vlc executable : no"
4677 To build vlc and its plugins, type \`$MAKE', or \`./compile' if you like nice colors."