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_DEFINE([_WIN32_IE], [0x0600], [Define to '0x0600' for IE 6.0 (and shell) APIs.])
270 AC_DEFINE([UNICODE], [1], [Define to 1 for Unicode (Wide Chars) APIs.])
271 AC_DEFINE([_ISOC99_SOURCE], [1], [Extensions to ISO C89 from ISO C99.])
272 AC_DEFINE([_ISOC11_SOURCE], [1], [Extensions to ISO C99 from ISO C11.])
273 AC_DEFINE([_POSIX_SOURCE], [1], [IEEE Std 1003.1.])
274 AC_DEFINE([_POSIX_C_SOURCE], [200809L], [IEEE Std 1003.1.])
275 AC_DEFINE([_XOPEN_SOURCE], [700], [POSIX and XPG 7th edition])
276 AC_DEFINE([_XOPEN_SOURCE_EXTENDED], [1], [XPG things and X/Open Unix extensions.])
277 AC_DEFINE([_BSD_SOURCE], [1], [ISO C, POSIX, and 4.3BSD things.])
278 AC_DEFINE([_SVID_SOURCE], [1], [ISO C, POSIX, and SVID things.])
285 dnl Check if we are using the mno-cygwin mode in which case we are
286 dnl actually dealing with a mingw32 compiler.
291 SYS=mingw32, AC_MSG_ERROR([VLC requires -mno-cygwin]))
295 if test "${SYS}" = "mingw32"; then
297 LDFLAGS="${LDFLAGS} -Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase"
299 AC_CHECK_PROGS(U2D, [unix2dos todos], unix2dos)
300 ac_default_prefix="`pwd`/_win32"
301 DESTDIR="`pwd`/_win32/"
304 dnl NSIS/MSI Installer prefix and WIN64
306 case "${host_cpu}" in
310 PROGRAMFILES="PROGRAMFILES64"
311 LDFLAGS="${LDFLAGS} -Wl,--high-entropy-va -Wl,--image-base,0x140000000"
316 PROGRAMFILES="PROGRAMFILES64"
317 LDFLAGS="${LDFLAGS} -Wl,--high-entropy-va -Wl,--image-base,0x140000000"
318 X86ASMFLAGS="-f win64"
322 PROGRAMFILES="PROGRAMFILES"
326 PROGRAMFILES="PROGRAMFILES"
327 X86ASMFLAGS="-f win32"
328 X86ASMDEFS="${X86ASMDEFS} -DPREFIX"
331 AC_SUBST([WINDOWS_ARCH])
332 AC_SUBST([PROGRAMFILES])
347 LDFLAGS="${LDFLAGS} -Zomf -Zbin-files -Zargs-wild -Zhigh-mem"
348 AC_LIBOBJ([freeaddrinfo])
349 AC_LIBOBJ([gai_strerror])
350 AC_CHECK_FUNCS([if_nametoindex])
351 X86ASMFLAGS="-f aout"
352 X86ASMDEFS="-DARCH_X86_32=1 -DARCH_X86_64=0 -DPREFIX"
356 AC_DEFINE([_XOPEN_SOURCE], [700], [POSIX and XPG 7th edition])
367 AC_ARG_ENABLE([winstore_app],
368 AS_HELP_STRING([--enable-winstore-app],
369 [Build targetted for Windows Store apps (default disabled)]))
372 AS_IF([test "${SYS}" = "mingw32"],[
374 AS_IF([test "${enable_winstore_app}" = "yes"], [
377 AX_APPEND_FLAG([-DWINSTORECOMPAT],[CFLAGS])
378 AX_APPEND_FLAG([-DWINSTORECOMPAT],[CPPFLAGS])
379 AX_APPEND_FLAG([-DWINSTORECOMPAT],[CXXFLAGS])
380 AX_APPEND_FLAG([-lwinstorecompat], [LDFLAGS])
381 VLC_ADD_LIBS([libvlccore], [-lruntimeobject])
382 AC_LIBOBJ([gai_strerror])
386 AC_DEFINE_UNQUOTED(VLC_WINSTORE_APP, ${vlc_winstore_app}, [Define to 1 if you want to build for Windows Store apps])
390 AS_HELP_STRING([--enable-pdb],
391 [Build PDB files for windows targets (default off)]))
392 AS_IF([test "${SYS}" = "mingw32"],[
393 AS_IF([test "${enable_pdb}" = "yes"], [
395 AX_APPEND_FLAG([-g -gcodeview],[CFLAGS])
396 AX_APPEND_FLAG([-g -gcodeview],[CXXFLAGS])
397 LDFLAGS="${LDFLAGS} -Wl,-pdb="
401 AM_CONDITIONAL([HAVE_FREEBSD], [test "${SYS}" = "freebsd"])
402 AM_CONDITIONAL([HAVE_LINUX], [test "${SYS}" = "linux"])
403 AM_CONDITIONAL([HAVE_OS2], [test "${SYS}" = "os2"])
405 AM_CONDITIONAL([HAVE_DARWIN], [test "${SYS}" = "darwin"])
406 AM_CONDITIONAL([HAVE_IOS], [test "${HAVE_IOS}" = "1"])
407 AM_CONDITIONAL([HAVE_OSX], [test "${HAVE_OSX}" = "1"])
408 AM_CONDITIONAL([HAVE_TVOS], [test "${HAVE_TVOS}" = "1"])
410 AM_CONDITIONAL([HAVE_NACL], [test "${SYS}" = "nacl"])
411 AM_CONDITIONAL([HAVE_LIBANL], [test "${HAVE_LIBANL}" = "1"])
413 AM_CONDITIONAL([HAVE_WIN32], [test "${SYS}" = "mingw32"])
414 AM_CONDITIONAL([HAVE_WIN64], [test "${HAVE_WIN64}" = "1"]) dnl Only used for the packaging
415 AM_CONDITIONAL([HAVE_WINSTORE], [test "$vlc_winstore_app" = "1"])
416 AM_CONDITIONAL([HAVE_WIN32_DESKTOP], [test "${SYS}" = "mingw32" -a "$vlc_winstore_app" = "0"])
417 AM_CONDITIONAL([ENABLE_PDB], [test "$vlc_build_pdb" = "1"])
419 dnl Use nasm/yasm only on x86
420 AC_CHECK_PROGS(X86ASM, [nasm yasm])
421 AM_CONDITIONAL([HAVE_X86ASM], [test -n "${X86ASM}" && test -n "${X86ASMFLAGS}"])
422 AM_COND_IF([HAVE_X86ASM], [
423 AC_DEFINE([HAVE_X86ASM], [1], [Use external asm on x86.])
426 dnl Because DOLT is not able to handle --with-pic
427 dnl correctly, manually add -DPIC to the options for
428 dnl nasm / yasm here.
429 AS_IF([test x$with_pic = xyes], [X86ASMDEFS="${X86ASMDEFS} -DPIC"])
431 AC_SUBST([X86ASMFLAGS])
432 AC_SUBST([X86ASMDEFS])
435 dnl Sadly autoconf does not think about testing foo.exe when ask to test
436 dnl for program foo on win32
437 case "${build_os}" in
439 ac_executable_extensions=".exe"
448 AC_SUBST([BUILDEXEEXT])
450 dnl Android is linux, but a bit different
451 AS_IF([test "$SYS" = linux],[
452 AC_MSG_CHECKING([for an Android system])
453 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
454 [[#ifndef __ANDROID__
465 AM_CONDITIONAL([HAVE_ANDROID], [test "${HAVE_ANDROID}" = "1"])
468 dnl Check for the contrib directory
471 AS_HELP_STRING([--with-contrib[=DIR]],
472 [search for 3rd party libraries in DIR/include and DIR/lib])
474 AC_MSG_CHECKING([for 3rd party libraries path])
475 AS_IF([test -z "${with_contrib}" || test "${with_contrib}" = "yes"], [
476 CONTRIB_DIR="${srcdir}/contrib/${host}"
477 AS_IF([test ! -d "${CONTRIB_DIR}"], [
478 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
479 CONTRIB_DIR="${srcdir}/contrib/`$CC -dumpmachine`"
480 AS_IF([test ! -d "${CONTRIB_DIR}"], [
481 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
483 AC_MSG_RESULT([not found])
487 AS_IF([test "${with_contrib}" != "no"], [
488 CONTRIB_DIR="${with_contrib}"
491 AC_MSG_RESULT([disabled])
494 AS_IF([test -n "${CONTRIB_DIR}"], [
495 AS_IF([test -d "${CONTRIB_DIR}/lib"],[
496 CONTRIB_DIR=`cd "${CONTRIB_DIR}" && pwd`
498 echo "${CONTRIB_DIR}/lib not found" >&AS_MESSAGE_LOG_FD
500 AC_MSG_RESULT([not usable])
504 AS_IF([test -n "${CONTRIB_DIR}"], [
505 AC_MSG_RESULT([${CONTRIB_DIR}])
506 CPPFLAGS="${CPPFLAGS} -I${CONTRIB_DIR}/include"
507 CFLAGS="${CFLAGS} -I${CONTRIB_DIR}/include"
508 CXXFLAGS="${CXXFLAGS} -I${CONTRIB_DIR}/include"
509 OBJCFLAGS="${OBJCFLAGS} -I${CONTRIB_DIR}/include -F${CONTRIB_DIR} -F${CONTRIB_DIR}/Frameworks"
510 PKG_CONFIG_PATH="${CONTRIB_DIR}/lib/pkgconfig:${CONTRIB_DIR}/share/pkgconfig:${PKG_CONFIG_PATH}"
511 case "${build_os}" in
513 export PKG_CONFIG_PATH=`cygpath -mp ${PKG_CONFIG_PATH}`
516 export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}"
519 LDFLAGS="${LDFLAGS} -L${CONTRIB_DIR}/lib"
521 AS_IF([test -z "$LUAC"], [
522 dnl Old contribs mixed cross-tools and cross-compiled executables
523 AS_IF([test -x "${CONTRIB_DIR}/bin/luac${BUILDEXEEXT}"], [
524 LUAC="${CONTRIB_DIR}/bin/luac${BUILDEXEEXT}"
527 dnl Newer contribs follow usual name space rules
528 AS_IF([test -x "${CONTRIB_DIR}/../bin/${host_alias}-luac${BUILDEXEEXT}"], [
529 LUAC="${CONTRIB_DIR}/../bin/${host_alias}-luac${BUILDEXEEXT}"
533 AS_IF([test "${SYS}" = "darwin"], [
534 export LD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$LD_LIBRARY_PATH"
535 export DYLD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$DYLD_LIBRARY_PATH"
538 AS_IF([test -n "${with_contrib}" && test "${with_contrib}" != "no"], [
539 AC_MSG_ERROR([Third party libraries not found!])
542 AC_SUBST([CONTRIB_DIR])
544 dnl Add extras/tools to the PATH
545 TOOLS_DIR="${srcdir}/extras/tools/build/bin"
546 AS_IF([test -d "${TOOLS_DIR}"], [
547 TOOLS_DIR=`cd "${TOOLS_DIR}" && pwd`
548 export PATH="${TOOLS_DIR}":$PATH
553 dnl It's very bad, but our former custom system was worst
557 dnl override platform specific check for dependent libraries
558 dnl otherwise libtool linking of shared libraries will
559 dnl fail on anything other than pass_all.
560 AC_CACHE_VAL(lt_cv_deplibs_check_method,
561 [lt_cv_deplibs_check_method=pass_all])
563 LT_INIT([dlopen win32-dll shared disable-static])
565 LT_LANG([Windows Resource])
569 lt_cv_deplibs_check_method=pass_all
571 AS_IF([test "${enable_shared}" = "no" -a "${enable_vlc}" != "no"], [
572 AC_MSG_ERROR([VLC is based on plugins. Shared libraries cannot be disabled.])
578 AM_GNU_GETTEXT_VERSION([0.19.8])
579 AM_GNU_GETTEXT([external], [need-formatstring-macros])
588 AS_IF([test "${SYS}" = "mingw32"], [
590 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
591 #if !defined(__MINGW32__)
592 # error Not compiling with mingw
596 dnl Check for broken versions of mingw-runtime compatability library
597 AC_MSG_CHECKING(for broken mingw-runtime)
598 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
600 #if defined(__MINGW64_VERSION_MAJOR)
601 # if __MINGW64_VERSION_MAJOR < 5
602 # error Update your mingw-w64! This one is too old.
605 # error You cannot compile with Mingw. Use Mingw-w64!
610 AC_MSG_RESULT([present])
611 AC_MSG_ERROR([LibVLC requires Mingw-w64 version 5.0 or higher!])
614 dnl force use of mingw provided c99 *printf over msvcrt
615 CPPFLAGS="${CPPFLAGS} -D__USE_MINGW_ANSI_STDIO=1"
617 dnl Check for the need to include the mingwex lib for mingw32
619 AC_CHECK_LIB([mingwex], [opendir],
620 AC_CHECK_LIB([mingw32], [opendir],,
621 [VLC_ADD_LIBS([libvlccore],[-lmingwex])])
625 AC_MSG_RESULT([Not compiling with mingw])
628 dnl Check for fnative-struct or mms-bitfields support for mingw32
629 AX_CHECK_COMPILE_FLAG([-mms-bitfields], [
630 AX_APPEND_FLAG([-mms-bitfields], [CFLAGS])
631 AX_APPEND_FLAG([-mms-bitfields], [CXXFLAGS])
632 # Check for the warning flag without "-Wno-", GCC accepts
633 # -Wno-<anything> for unsupported warnings, which can trigger
634 # other warnings instead.
635 AX_CHECK_COMPILE_FLAG([-Wincompatible-ms-struct], [
636 AX_APPEND_FLAG([-Wno-incompatible-ms-struct], [CFLAGS])
637 AX_APPEND_FLAG([-Wno-incompatible-ms-struct], [CXXFLAGS])
640 AX_CHECK_COMPILE_FLAG([-fnative-struct], [
641 AX_APPEND_FLAG([-fnative-struct], [CFLAGS])
642 AX_APPEND_FLAG([-fnative-struct], [CXXFLAGS])
649 dnl Buggy glibc prevention. Purposedly not cached.
650 dnl See sourceware.org bugs 5058 and 5443.
651 dnl Ubuntu alone has 20 bug numbers for this...
653 AC_MSG_CHECKING(for buggy GNU/libc versions)
654 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
656 #if defined (__GLIBC__) && (__GLIBC__ == 2) \
657 && (__GLIBC_MINOR__ >= 5) && (__GLIBC_MINOR__ <= 7)
658 # error GNU/libc with dcgettext killer bug!
661 AC_MSG_RESULT([not present])
663 AC_MSG_RESULT([found])
664 AS_IF([test "x${enable_nls}" != "xno"], [
665 AC_MSG_ERROR([Buggy GNU/libc (version 2.5 - 2.7) present. VLC would crash; there is no viable
666 work-around for this. Check with your distribution vendor on how to update the
667 glibc run-time. Alternatively, build with --disable-nls.])
671 dnl Plugin compilation stuff
675 dnl Check for system libs needed
678 dnl Check for usual libc functions
679 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])
680 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])
681 AC_REPLACE_FUNCS([gettimeofday])
682 AC_CHECK_FUNC(fdatasync,,
683 [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
686 VLC_REPLACE_DECL([realpath], [#include <stdlib.h>])
688 dnl mingw64 implements those as static inline, not functions with C linkage
689 VLC_REPLACE_DECL([asprintf], [#include <stdio.h>])
690 VLC_REPLACE_DECL([vasprintf], [#include <stdio.h>])
691 VLC_REPLACE_DECL([gmtime_r], [#include <time.h>])
692 VLC_REPLACE_DECL([localtime_r], [#include <time.h>])
694 dnl C11 static_assert()
695 AC_MSG_CHECKING([for static_assert in assert.h])
696 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <assert.h>], [
697 static_assert(1, "The impossible happened.");
700 AC_DEFINE([HAVE_STATIC_ASSERT], [1], [Define to 1 if <assert.h> defines static_assert.])
705 # Windows CE does not have strcoll()
708 dnl Check for non-standard system calls
711 AC_CHECK_FUNCS([eventfd vmsplice sched_getaffinity recvmmsg memfd_create])
714 AC_CHECK_FUNCS([_lock_file])
718 AH_BOTTOM([#include <vlc_fixups.h>])
720 dnl Check for struct pollfd
721 AC_CHECK_TYPES([struct pollfd],,,
722 [#include <sys/types.h>
725 #elif defined (_WIN32)
726 # include <winsock2.h>
730 dnl Check for struct timespec
731 AC_CHECK_TYPES([struct timespec],,,
734 dnl Check for max_align_t
735 AC_CHECK_TYPES([max_align_t],,,
736 [#include <stddef.h>])
738 dnl Checks for socket stuff
741 AC_SEARCH_LIBS(connect, [socket], [
742 AS_IF([test "$ac_cv_search_connect" != "none required"], [
743 SOCKET_LIBS="$ac_cv_search_connect"
746 AS_IF([test "${SYS}" = "mingw32"], [
747 SOCKET_LIBS="-lws2_32 -liphlpapi"
751 AC_SEARCH_LIBS([inet_pton], [nsl], [
752 AS_IF([test "$ac_cv_search_inet_pton" != "none required"], [
753 SOCKET_LIBS="$ac_cv_search_inet_pton $SOCKET_LIBS"
755 ],, [${SOCKET_LIBS}])
757 LIBS="${LIBS} ${SOCKET_LIBS}"
759 AC_LANG_PROGRAM([#ifdef _WIN32
760 #include <ws2tcpip.h>
762 # if _WIN32_WINNT < 0x600
766 #include <sys/socket.h>
767 #include <arpa/inet.h>
769 char dst[[sizeof(struct in_addr)]];
770 inet_pton(AF_INET, "127.0.0.1", dst);
771 ])],[AC_DEFINE([HAVE_INET_PTON],[1],[Define to 1 if you have inet_pton function])],[AC_LIBOBJ([inet_pton])])
772 AC_CHECK_TYPES([struct if_nameindex],,,[#include <net/if.h>])
773 AC_CHECK_FUNCS([if_nameindex])
775 AC_SUBST([SOCKET_LIBS])
777 dnl Check for socklen_t
778 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
779 AC_CACHE_CHECK([for socklen_t in sys/socket.h], dnl ` (fix VIM syntax highlight
780 ac_cv_type_socklen_t,
781 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
782 [#include <sys/types.h>
784 # include <winsock2.h>
785 # include <ws2tcpip.h>
787 # include <sys/socket.h>
788 #endif]], [[socklen_t len; len = 0;]])],
789 ac_cv_type_socklen_t=yes,
790 ac_cv_type_socklen_t=no)])
791 AS_IF([test "$ac_cv_type_socklen_t" = no], [
794 #include <sys/types.h>
796 # include <winsock2.h>
797 # include <ws2tcpip.h>
799 # include <sys/socket.h>
802 _Generic(getpeername, int (*)(int, struct sockaddr *, int *): 0);
804 ], AC_DEFINE(socklen_t, int), AC_DEFINE(socklen_t, unsigned int))
807 dnl Check for struct sockaddr_storage
808 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
809 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
810 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
812 [#include <sys/types.h>
813 #if defined( _WIN32 )
814 # include <winsock2.h>
816 # include <sys/socket.h>
817 #endif], [struct sockaddr_storage addr;],
818 ac_cv_struct_sockaddr_storage=yes,
819 ac_cv_struct_sockaddr_storage=no)])
820 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
821 AC_DEFINE(sockaddr_storage, sockaddr)
822 AC_DEFINE(ss_family, sa_family)
825 dnl FreeBSD has a gnugetopt library for this:
827 AC_CHECK_FUNC(getopt_long,, [
828 AC_CHECK_LIB([gnugetopt],[getopt_long], [
829 GNUGETOPT_LIBS="-lgnugetopt"
832 AC_SUBST([GNUGETOPT_LIBS])
834 AC_CHECK_LIB([m], [cos], [
841 AC_CHECK_LIB([m], [lrintf], [
842 AC_DEFINE(HAVE_LRINTF, 1, [Define to 1 if you have the lrintf function])
843 VLC_ADD_LIBS([skins2],[-lm])
845 AC_CHECK_LIB([m], [nanf],
846 AC_DEFINE(HAVE_NANF, 1, [Define to 1 if you have the NANF function])
848 AC_CHECK_LIB([m], [sincos], [
849 AC_DEFINE(HAVE_SINCOS, 1, [Define to 1 if you have the sincos function.])
854 AC_MSG_CHECKING([broken qsort_r prototype])
855 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <stdlib.h>
857 _Static_assert(_Generic((qsort_r),
858 void (*)(void *, size_t, size_t, void *,
859 int (*)(void *, const void *, const void *)) : 1, default: 0),
860 "Bad prototype not matched");
862 AC_MSG_RESULT([broken])
863 AC_DEFINE([HAVE_BROKEN_QSORT_R], 1, [Defined to 1 if the qsort_r() prototype contradicts the upcoming POSIX standard.])
868 AC_MSG_CHECKING([_Thread_local support])
869 AC_COMPILE_IFELSE([AC_LANG_SOURCE([_Thread_local int foo = 0;
872 AC_DEFINE(HAVE_THREAD_LOCAL, 1, [Defined to 1 if C11 _Thread_local storage qualifier is supported])
873 ],[ AC_MSG_RESULT([no])])
875 dnl __STDC_NO_THREADS__ can't be trusted on some platforms.
876 dnl check for its availability explicitely
877 AC_CHECK_HEADERS([threads.h])
879 AC_CHECK_LIB([anl],[getaddrinfo_a],[
880 AC_DEFINE(HAVE_LIBANL, 1, [Define to 1 if you have the anl library])
883 dnl Check for dynamic plugins
885 have_dynamic_objects="no"
887 AC_SEARCH_LIBS(dlsym, [dl svld], [
888 AS_IF([test "$ac_cv_search_dlsym" != "none required"], [
889 LIBDL="$ac_cv_search_dlsym"
891 have_dynamic_objects="yes"
896 AS_IF([test "${SYS}" = "mingw32"], [
898 have_dynamic_objects="yes" #assume we can use shared objects
901 AC_ARG_WITH([libfuzzer],
902 AS_HELP_STRING([--with-libfuzzer=DIR],
903 [use libFuzzer library from DIR and triggers sanitize coverage (default disabled)]),
906 AS_VAR_IF(with_libfuzzer, no, [], [
911 AM_CONDITIONAL([HAVE_LIBFUZZER], [test "${with_libfuzzer}" != "no"])
913 AS_IF([test "${enable_shared}" = "no"], [
914 have_dynamic_objects=no
916 AM_CONDITIONAL([HAVE_DYNAMIC_PLUGINS], [test "${have_dynamic_objects}" != "no"])
920 AS_IF([test "${SYS}" != "mingw32"], [
921 AC_SEARCH_LIBS([clock_nanosleep], [rt pthread], [
922 AS_IF([test "$ac_cv_search_clock_nanosleep" != "none required"], [
923 LIBRT="$ac_cv_search_clock_nanosleep"
926 AC_SEARCH_LIBS([nanosleep], [rt pthread posix4], [
927 AS_IF([test "$ac_cv_search_nanosleep" != "none required"], [
928 LIBRT="$ac_cv_search_nanosleep"
935 dnl Check for clock_* functions, needs to be done here,
936 dnl after the -lrt check
937 AC_REPLACE_FUNCS([clock_gettime clock_nanosleep clock_getres])
940 dnl Check for headers
944 AC_CHECK_HEADERS([arpa/inet.h pthread.h search.h sys/shm.h sys/socket.h sys/uio.h])
945 AC_CHECK_HEADERS([net/if.h], [], [],
947 #include <sys/types.h>
948 #include <sys/socket.h>
950 AC_CHECK_HEADER([syslog.h], [have_syslog="yes"], [have_syslog="no"])
951 AM_CONDITIONAL([HAVE_SYSLOG], [test "$have_syslog" = "yes"])
954 AC_CHECK_HEADERS([netinet/tcp.h netinet/udplite.h sys/param.h sys/mount.h])
957 AC_CHECK_HEADERS([features.h getopt.h linux/dccp.h linux/magic.h sys/eventfd.h])
960 AC_CHECK_HEADERS([xlocale.h])
962 dnl Check if C++ headers define locale_t
964 AC_CACHE_CHECK([if C++ headers define locale_t],
965 [ac_cv_cxx_locale_t],
966 [ac_cv_cxx_locale_t=no
967 AC_TRY_COMPILE([#include <locale>], [locale_t loc;],
968 [ac_cv_cxx_locale_t=yes])])
969 if test "${ac_cv_cxx_locale_t}" != "no"; then
970 AC_DEFINE(HAVE_CXX_LOCALE_T, 1, Define to 1 if C++ headers define locale_t)
974 dnl LP64 and LLP64 architectures had better define ssize_t by themselves...
975 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.]) dnl ` (fix VIM syntax highlight
976 AC_CHECK_TYPE(ssize_t,, [
977 AC_DEFINE(ssize_t, int)
980 dnl It seems that autoconf detects pkg-config only during the first
981 dnl PKG_CHECK_MODULES from configure.ac - which makes sense. But in our case,
982 dnl it is nested within a conditional block, so it was not working right.
983 PKG_PROG_PKG_CONFIG()
985 dnl On some OS we need static linking
986 AS_IF([test -n "${PKG_CONFIG}" ],[
987 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "darwin" -o "${SYS}" = "os2" ],[
988 PKG_CONFIG="${PKG_CONFIG} --static"
994 dnl Check for zlib.h and -lz if available
996 AC_CHECK_HEADERS([zlib.h], [ have_zlib=yes ], [ have_zlib=no ])
997 AM_CONDITIONAL([HAVE_ZLIB], [ test "${have_zlib}" = "yes" ])
998 if test "${have_zlib}" = "yes"
1000 VLC_ADD_LIBS([sap],[-lz])
1005 dnl Domain name i18n support via GNU libidn
1007 PKG_CHECK_MODULES([IDN], [libidn], [
1009 AC_DEFINE([HAVE_IDN], 1, [Define to 1 if you have GNU libidn.])
1016 AC_ARG_ENABLE([dbus],
1017 AS_HELP_STRING([--enable-dbus],
1018 [compile D-Bus message bus support (default enabled)]))
1020 AS_IF([test "${enable_dbus}" != "no"], [
1021 PKG_CHECK_MODULES(DBUS, [dbus-1 >= 1.6.0], [
1024 AS_IF([test -n "${enable_dbus}"], [
1025 AC_MSG_ERROR([${DBUS_PKG_ERRORS}.])
1027 AC_MSG_WARN([${DBUS_PKG_ERRORS}.])
1031 AM_CONDITIONAL([HAVE_DBUS], [test "${have_dbus}" = "yes"])
1034 dnl Check for systemd
1035 PKG_CHECK_MODULES([SYSTEMD], [libsystemd], [
1038 AC_MSG_WARN([${SYSTEMD_PKG_ERRORS}.])
1040 AM_CONDITIONAL([HAVE_SYSTEMD], [test "${have_systemd}" = "yes"])
1043 EXTEND_HELP_STRING([Optimization options:])
1045 dnl Compiler warnings
1048 AX_APPEND_COMPILE_FLAGS([-Wall -Wextra -Wsign-compare -Wundef -Wpointer-arith -Wvolatile-register-var -Wformat -Wformat-security -Wduplicated-branches -Wduplicated-cond], [CFLAGS])
1049 AX_APPEND_COMPILE_FLAGS([-Wall -Wextra -Wsign-compare -Wundef -Wpointer-arith -Wvolatile-register-var -Wformat -Wformat-security -Wduplicated-branches -Wduplicated-cond], [CXXFLAGS])
1051 AX_APPEND_COMPILE_FLAGS([-Wbad-function-cast -Wwrite-strings -Wmissing-prototypes -Werror-implicit-function-declaration -Winit-self -Wlogical-op -Wshadow=local -Wmultistatement-macros], [CFLAGS])
1052 AX_APPEND_COMPILE_FLAGS([-pipe], [CFLAGS])
1057 AC_ARG_ENABLE([debug],
1058 AS_HELP_STRING([--disable-debug],
1059 [disable run-time assertions (default enabled)]),,
1060 [enable_debug="yes"])
1062 [Define to 1 if debug code should NOT be compiled])
1063 AS_IF([test "${enable_debug}" != "no"], [
1064 AC_CHECK_HEADERS([valgrind/valgrind.h])
1072 AC_ARG_ENABLE([gprof],
1073 AS_HELP_STRING([--enable-gprof],[profile with gprof (default disabled)]),,
1074 [enable_gprof="no"])
1075 AS_IF([test "${enable_gprof}" != "no"], [
1076 CFLAGS="${CFLAGS} -pg"
1077 CXXFLAGS="${CXXFLAGS} -pg"
1078 OBJCFLAGS="${OBJCFLAGS} -pg"
1079 LDFLAGS="${LDFLAGS} -pg"
1082 AC_ARG_ENABLE([cprof],
1083 AS_HELP_STRING([--enable-cprof],[profile with cprof (default disabled)]),,
1084 [enable_cprof="no"])
1085 AS_IF([test "${enable_gprof}" != "no"], [
1086 CFLAGS="${CFLAGS} -finstrument-functions"
1087 CXXFLAGS="${CXXFLAGS} -finstrument-functions"
1088 OBJCFLAGS="${OBJCFLAGS} -finstrument-functions"
1089 LDFLAGS="${LDFLAGS} -finstrument-functions"
1095 AC_ARG_ENABLE([coverage],
1096 AS_HELP_STRING([--enable-coverage],
1097 [build for test coverage (default disabled)]),,
1098 [enable_coverage="no"])
1099 AS_IF([test "${enable_coverage}" != "no"], [
1100 CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
1101 CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
1102 LDFLAGS="-lgcov ${LDFLAGS}"
1105 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "os2"], [
1107 CFLAGS="${CFLAGS} -fvisibility=hidden"
1108 CXXFLAGS="${CXXFLAGS} -fvisibility=hidden"
1109 OBJCFLAGS="${OBJCFLAGS} -fvisibility=hidden"
1110 AC_CACHE_CHECK([if $CC accepts -fvisibility=hidden],
1111 [ac_cv_c_visibility_hidden], [
1112 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1113 ac_cv_c_visibility_hidden=yes
1115 ac_cv_c_visibility_hidden=no
1118 AS_IF([test "${ac_cv_c_visibility_hidden}" = "no"], [VLC_RESTORE_FLAGS])
1124 AC_ARG_WITH([sanitizer],
1125 AS_HELP_STRING([--with-sanitizer=(address/memory/undefined/thread)],
1126 [build with sanitizer flags (default disabled)]),
1128 [with_sanitizer=no])
1130 AS_VAR_IF(with_sanitizer, no, [], [
1131 AX_CHECK_COMPILE_FLAG([-fsanitize=${with_sanitizer}], [
1132 AX_APPEND_FLAG([-fsanitize=${with_sanitizer}])
1133 AX_APPEND_FLAG([-fsanitize=${with_sanitizer}], [CXXFLAGS])
1134 AX_APPEND_FLAG([-fsanitize=${with_sanitizer}], [LDFLAGS])
1136 AC_MSG_ERROR(["-fsanitize=${with_sanitizer} not supported!"])
1138 AX_APPEND_FLAG([-g])
1139 AX_APPEND_FLAG([-g], [CXXFLAGS])
1141 AS_IF([test -z "${with_sanitizer##*address*}" ], [
1142 AX_APPEND_COMPILE_FLAGS([-fsanitize-address-use-after-scope -fno-omit-frame-pointer -fsanitize=pointer-compare -fsanitize=pointer-subtract])
1143 AX_APPEND_COMPILE_FLAGS([-fsanitize-address-use-after-scope -fno-omit-frame-pointer -fsanitize=pointer-compare -fsanitize=pointer-subtract], [CXXFLAGS])
1145 AS_IF([test -z "${with_sanitizer##*memory*}" ], [
1146 AX_APPEND_COMPILE_FLAGS([-fPIE -pie])
1147 AX_APPEND_COMPILE_FLAGS([-fPIE -pie], [CXXFLAGS])
1149 AS_IF([test -z "${with_sanitizer##*thread*}" ], [
1150 AX_APPEND_COMPILE_FLAGS([-fPIE -pie])
1151 AX_APPEND_COMPILE_FLAGS([-fPIE -pie], [CXXFLAGS])
1156 dnl Enable/disable optimizations
1158 AC_ARG_ENABLE([optimizations],
1159 AS_HELP_STRING([--disable-optimizations],
1160 [disable compiler optimizations (default enabled)]),,
1161 [enable_optimizations="yes"])
1163 dnl Check for various optimization flags
1164 AS_IF([test "${enable_optimizations}" != "no"], [
1166 dnl -O3 only in production builds
1167 AS_IF([test "${enable_debug}" = "no"], [
1169 CFLAGS="${CFLAGS} -O3"
1170 CXXFLAGS="${CXXFLAGS} -O3"
1171 OBJCFLAGS="${OBJCFLAGS} -O3"
1172 AC_CACHE_CHECK([if $CC accepts -O3], [ac_cv_c_o3], [
1173 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1179 AS_IF([test "${ac_cv_c_o3}" = "no"], [VLC_RESTORE_FLAGS])
1182 dnl Check for fast maths
1183 AX_APPEND_COMPILE_FLAGS([-fno-math-errno -funsafe-math-optimizations -fno-rounding-math -fno-signaling-nans -fcx-limited-range], [CFLAGS])
1184 AX_APPEND_COMPILE_FLAGS([-fno-math-errno -funsafe-math-optimizations -fno-rounding-math -fno-signaling-nans -fcx-limited-range], [CXXFLAGS])
1187 #if defined(_MSC_VER) && !defined(__clang__)
1188 # pragma fenv_access(off)
1189 # pragma fp_contract(on)
1190 #elif defined(__GNUC__)
1191 /* Not supported so far */
1193 # pragma STDC FENV_ACCESS OFF
1194 # pragma STDC FP_CONTRACT ON
1198 dnl Check for -funroll-loops
1200 CFLAGS="${CFLAGS} -funroll-loops"
1201 CXXFLAGS="${CXXFLAGS} -funroll-loops"
1202 OBJCFLAGS="${OBJCFLAGS} -funroll-loops"
1203 AC_CACHE_CHECK([if $CC accepts -funroll-loops], [ac_cv_c_unroll_loops], [
1204 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1205 ac_cv_c_unroll_loops=yes
1207 ac_cv_c_unroll_loops=no
1210 AS_IF([test "${ac_cv_c_unroll_loops}" = "no"], [VLC_RESTORE_FLAGS])
1212 AS_IF([test "$enable_debug" = "no"], [
1213 dnl Check for -fomit-frame-pointer
1215 CFLAGS="${CFLAGS} -fomit-frame-pointer"
1216 CXXFLAGS="${CXXFLAGS} -fomit-frame-pointer"
1217 OBJCFLAGS="${OBJCFLAGS} -fomit-frame-pointer"
1218 AC_CACHE_CHECK([if $CC accepts -fomit-frame-pointer],
1219 [ac_cv_c_omit_frame_pointer], [
1220 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1221 ac_cv_c_omit_frame_pointer=yes
1223 ac_cv_c_omit_frame_pointer=no
1226 AS_IF([test "${ac_cv_c_omit_frame_pointer}" = "no"], [VLC_RESTORE_FLAGS])
1231 AC_ARG_ENABLE([ssp],
1232 AS_HELP_STRING([--disable-ssp],
1233 [disable stack smashing protection (default enabled for optimized builds)]), [],
1236 AS_IF([test "${enable_ssp}" != "no" -a "${enable_optimizations}" != "no"], [
1238 AX_APPEND_COMPILE_FLAGS([-fstack-protector-strong])
1239 AX_APPEND_COMPILE_FLAGS([-fstack-protector-strong], [CXXFLAGS])
1240 dnl Win32 requires linking to ssp for stack-protection
1241 AS_IF([test "${SYS}" = "mingw32"], [
1242 LDFLAGS="${LDFLAGS} -lssp"
1243 AC_CACHE_CHECK([if linker supports stack protectors], [ac_cv_ld_ssp], [
1244 AC_TRY_LINK([#include <stdio.h>],[char buf[100]; fgets(buf, sizeof(buf), stdin);], [
1250 AS_IF([test "${ac_cv_ld_ssp}" = "no"], [VLC_RESTORE_FLAGS])
1254 AS_IF([test "${SYS}" = "mingw32"], [
1255 dnl library for BCrypt APIs
1256 AS_IF([test "${vlc_winstore_app}" = 1],
1257 VLC_ADD_LIBS([libvlccore], [-lbcrypt]))
1261 LDFLAGS="${LDFLAGS} -Wl,-Bsymbolic"
1262 AC_CACHE_CHECK([if linker supports -Bsymbolic], [ac_cv_ld_bsymbolic], [
1264 ac_cv_ld_bsymbolic="-Wl,-Bsymbolic"
1266 ac_cv_ld_bsymbolic=""
1270 SYMBOLIC_LDFLAGS="${ac_cv_ld_bsymbolic}"
1271 AC_SUBST([SYMBOLIC_LDFLAGS])
1274 LDFLAGS="${LDFLAGS} -Wl,-z,defs"
1275 AC_CACHE_CHECK([if linker supports -z,defs], [ac_cv_ld_z_defs], [
1277 ac_cv_ld_z_defs="yes"
1279 ac_cv_ld_z_defs="no"
1282 AS_IF([test "${ac_cv_ld_z_defs}" = "no"], [VLC_RESTORE_FLAGS])
1284 dnl Check for __attribute__((packed))
1285 AC_CACHE_CHECK([for __attribute__((packed))],
1286 [ac_cv_c_attribute_packed],
1287 [ac_cv_c_attribute_packed=no
1288 AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b; (void)b;],
1289 [ac_cv_c_attribute_packed=yes])])
1290 if test "${ac_cv_c_attribute_packed}" != "no"; then
1291 AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1297 case "${host_cpu}" in
1310 dnl Check for backtrace() support
1311 AC_CHECK_HEADERS([execinfo.h])
1312 AC_CHECK_FUNCS([backtrace])
1317 ALIASES="${ALIASES} cvlc rvlc"
1320 dnl Accelerated modules
1323 dnl Check for fully working MMX intrinsics
1324 dnl We need support for -mmmx, we need <mmintrin.h>, and we also need a
1325 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1326 AC_ARG_ENABLE([mmx],
1327 AS_HELP_STRING([--disable-mmx],
1328 [disable MMX optimizations (default auto)]),,[
1329 case "${host_cpu}" in
1340 AS_IF([test "${enable_mmx}" != "no"], [
1343 CFLAGS="${CFLAGS} -mmmx"
1344 AC_CACHE_CHECK([if $CC groks MMX intrinsics], [ac_cv_c_mmx_intrinsics], [
1345 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1346 [#include <mmintrin.h>
1348 uint64_t frobzor;]], [
1350 a = b = c = (__m64)frobzor;
1351 a = _mm_slli_pi16(a, 3);
1352 a = _mm_adds_pi16(a, b);
1353 c = _mm_srli_pi16(c, 8);
1354 c = _mm_slli_pi16(c, 3);
1355 b = _mm_adds_pi16(b, c);
1356 a = _mm_unpacklo_pi8(a, b);
1357 frobzor = (uint64_t)a;]])], [
1358 ac_cv_c_mmx_intrinsics=yes
1360 ac_cv_c_mmx_intrinsics=no
1364 AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1365 AC_DEFINE(HAVE_MMX_INTRINSICS, 1, [Define to 1 if MMX intrinsics are available.])
1369 CFLAGS="${CFLAGS} -mmmx"
1370 AC_CACHE_CHECK([if $CC groks MMX inline assembly], [ac_cv_mmx_inline], [
1371 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1373 asm volatile("packuswb %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1376 ac_cv_mmx_inline=yes
1381 AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1382 AC_DEFINE(CAN_COMPILE_MMX, 1, [Define to 1 inline MMX assembly is available.])
1386 AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1387 [ac_cv_mmxext_inline], [
1388 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1390 asm volatile("maskmovq %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1393 ac_cv_mmxext_inline=yes
1395 ac_cv_mmxext_inline=no
1399 AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1400 AC_DEFINE(CAN_COMPILE_MMXEXT, 1, [Define to 1 if MMX EXT inline assembly is available.])
1404 AM_CONDITIONAL([HAVE_MMX], [test "${have_mmx}" = "yes"])
1405 AM_CONDITIONAL([HAVE_MMXEXT], [test "${have_mmxext}" = "yes"])
1407 dnl Check for fully workin SSE2 intrinsics
1408 dnl We need support for -msse[2], we need <emmintrin.h>, and we also need a
1409 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1410 AC_ARG_ENABLE([sse],
1411 AS_HELP_STRING([--disable-sse],
1412 [disable SSE (1-4) optimizations (default auto)]),, [
1413 case "${host_cpu}" in
1423 AS_IF([test "${enable_sse}" != "no"], [
1424 ARCH="${ARCH} sse sse2"
1427 CFLAGS="${CFLAGS} -msse2"
1428 AC_CACHE_CHECK([if $CC groks SSE2 intrinsics], [ac_cv_c_sse2_intrinsics], [
1429 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1430 [#include <emmintrin.h>
1432 uint64_t frobzor;]], [
1434 a = b = c = _mm_set1_epi64((__m64)frobzor);
1435 a = _mm_slli_epi16(a, 3);
1436 a = _mm_adds_epi16(a, b);
1437 c = _mm_srli_epi16(c, 8);
1438 c = _mm_slli_epi16(c, 3);
1439 b = _mm_adds_epi16(b, c);
1440 a = _mm_unpacklo_epi8(a, b);
1441 frobzor = (uint64_t)_mm_movepi64_pi64(a);]])], [
1442 ac_cv_c_sse2_intrinsics=yes
1444 ac_cv_c_sse2_intrinsics=no
1448 AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1449 AC_DEFINE(HAVE_SSE2_INTRINSICS, 1, [Define to 1 if SSE2 intrinsics are available.])
1453 CFLAGS="${CFLAGS} -msse"
1454 AC_CACHE_CHECK([if $CC groks SSE inline assembly], [ac_cv_sse_inline], [
1455 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1457 asm volatile("xorps %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1460 ac_cv_sse_inline=yes
1466 AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1467 AC_DEFINE(CAN_COMPILE_SSE, 1, [Define to 1 if SSE inline assembly is available.])
1470 AC_CACHE_CHECK([if $CC groks SSE2 inline assembly], [ac_cv_sse2_inline], [
1471 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1473 asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1476 ac_cv_sse2_inline=yes
1478 ac_cv_sse2_inline=no
1481 AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1482 AC_DEFINE(CAN_COMPILE_SSE2, 1, [Define to 1 if SSE2 inline assembly is available.])
1487 AC_CACHE_CHECK([if $CC groks SSE3 inline assembly], [ac_cv_sse3_inline], [
1488 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1490 asm volatile("movsldup %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1493 ac_cv_sse3_inline=yes
1495 ac_cv_sse3_inline=no
1499 AS_IF([test "${ac_cv_sse3_inline}" != "no"], [
1500 AC_DEFINE(CAN_COMPILE_SSE3, 1, [Define to 1 if SSE3 inline assembly is available.]) ])
1503 AC_CACHE_CHECK([if $CC groks SSSE3 inline assembly], [ac_cv_ssse3_inline], [
1504 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1506 asm volatile("pabsw %%xmm0,%%xmm0"::"r"(p):"xmm0");
1509 ac_cv_ssse3_inline=yes
1511 ac_cv_ssse3_inline=no
1515 AS_IF([test "${ac_cv_ssse3_inline}" != "no"], [
1516 AC_DEFINE(CAN_COMPILE_SSSE3, 1, [Define to 1 if SSSE3 inline assembly is available.]) ])
1519 AC_CACHE_CHECK([if $CC groks SSE4.1 inline assembly],
1520 [ac_cv_sse4_1_inline], [
1521 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1523 asm volatile("pmaxsb %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1526 ac_cv_sse4_1_inline=yes
1528 ac_cv_sse4_1_inline=no
1532 AS_IF([test "${ac_cv_sse4_1_inline}" != "no"], [
1533 AC_DEFINE(CAN_COMPILE_SSE4_1, 1, [Define to 1 if SSE4_1 inline assembly is available.]) ])
1536 AC_CACHE_CHECK([if $CC groks SSE4.2 inline assembly],
1537 [ac_cv_sse4_2_inline], [
1538 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1540 asm volatile("pcmpgtq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1543 ac_cv_sse4_2_inline=yes
1545 ac_cv_sse4_2_inline=no
1549 AS_IF([test "${ac_cv_sse4_2_inline}" != "no"], [
1550 AC_DEFINE(CAN_COMPILE_SSE4_2, 1, [Define to 1 if SSE4_2 inline assembly is available.]) ])
1553 AC_CACHE_CHECK([if $CC groks SSE4A inline assembly], [ac_cv_sse4a_inline], [
1554 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1556 asm volatile("insertq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1559 ac_cv_sse4a_inline=yes
1561 ac_cv_sse4a_inline=no
1565 AS_IF([test "${ac_cv_sse4a_inline}" != "no"], [
1566 AC_DEFINE([CAN_COMPILE_SSE4A], [1], [Define to 1 if SSE4A inline assembly is available.]) ])
1568 AM_CONDITIONAL([HAVE_SSE2], [test "$have_sse2" = "yes"])
1570 dnl Check for fully workin AVX2 intrinsics
1571 dnl We need support for -mavx[2], we need <immintrin.h>, and we also need a
1572 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1573 AC_ARG_ENABLE([avx],
1574 AS_HELP_STRING([--disable-avx],
1575 [disable AVX (1-2) optimizations (default auto)]),, [
1576 case "${host_cpu}" in
1586 AS_IF([test "${enable_avx}" != "no"], [
1587 ARCH="${ARCH} avx avx2"
1590 CFLAGS="${CFLAGS} -mavx2"
1591 AC_CACHE_CHECK([if $CC groks AVX2 intrinsics], [ac_cv_c_avx2_intrinsics], [
1592 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1593 [#include <immintrin.h>
1595 uint64_t frobzor;]], [
1597 a = b = c = _mm256_set1_epi64x((int64_t)frobzor);
1598 a = _mm256_slli_epi16(a, 3);
1599 a = _mm256_adds_epi16(a, b);
1600 c = _mm256_srli_epi16(c, 8);
1601 c = _mm256_slli_epi16(c, 3);
1602 b = _mm256_adds_epi16(b, c);
1603 a = _mm256_unpacklo_epi8(a, b);
1604 frobzor = (uint64_t)_mm256_extract_epi64(a, 0);]])], [
1605 ac_cv_c_avx2_intrinsics=yes
1607 ac_cv_c_avx2_intrinsics=no
1611 AS_IF([test "${ac_cv_c_avx2_intrinsics}" != "no"], [
1612 AC_DEFINE(HAVE_AVX2_INTRINSICS, 1, [Define to 1 if AVX2 intrinsics are available.])
1616 CFLAGS="${CFLAGS} -mavx"
1617 AC_CACHE_CHECK([if $CC groks AVX inline assembly], [ac_cv_avx_inline], [
1618 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1620 asm volatile("xorps256 %%ymm1,%%ymm2"::"r"(p):"ymm1", "ymm2");
1623 ac_cv_avx_inline=yes
1629 AS_IF([test "${ac_cv_avx_inline}" != "no" -a "${SYS}" != "solaris"], [
1630 AC_DEFINE(CAN_COMPILE_AVX, 1, [Define to 1 if AVX inline assembly is available.])
1633 AC_CACHE_CHECK([if $CC groks AVX2 inline assembly], [ac_cv_avx2_inline], [
1634 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1636 asm volatile("punpckhqdq256 %%ymm1,%%ymm2"::"r"(p):"ymm1", "ymm2");
1639 ac_cv_avx2_inline=yes
1641 ac_cv_avx2_inline=no
1645 AS_IF([test "${ac_cv_avx2_inline}" != "no" -a "${SYS}" != "solaris"], [
1646 AC_DEFINE(CAN_COMPILE_AVX2, 1, [Define to 1 if AVX2 inline assembly is available.])
1650 AM_CONDITIONAL([HAVE_AVX2], [test "$have_avx2" = "yes"])
1653 CFLAGS="${CFLAGS} -mmmx"
1655 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly], [ac_cv_3dnow_inline], [
1656 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1658 asm volatile("pfadd %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1661 ac_cv_3dnow_inline=yes
1663 ac_cv_3dnow_inline=no
1667 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1668 AC_DEFINE([CAN_COMPILE_3DNOW], 1,
1669 [Define to 1 if 3D Now! inline assembly is available.])
1672 AM_CONDITIONAL([HAVE_3DNOW], [test "$have_3dnow" = "yes"])
1675 AC_ARG_ENABLE([neon],
1676 AS_HELP_STRING([--disable-neon],
1677 [disable ARM NEON optimizations (default auto)]),, [
1678 case "${host_cpu}" in
1690 AS_IF([test "${enable_neon}" != "no"], [
1692 AC_CACHE_CHECK([if $CCAS groks ARM NEON assembly], [ac_cv_arm_neon], [
1693 AS_IF([test "${enable_neon}" != "64"], [
1694 CFLAGS="${CFLAGS} -mfpu=neon -mhard-float"
1697 asm volatile("vqmovun.s64 d0, q1":::"d0");
1705 CFLAGS="${CFLAGS} -march=armv8-a+simd"
1708 asm volatile("uhadd v0.8b, v0.8b, v1.8b":::"v0");
1719 AM_CONDITIONAL([HAVE_NEON], [test "${ac_cv_arm_neon}" = "32"])
1720 AM_CONDITIONAL([HAVE_ARM64], [test "${ac_cv_arm_neon}" = "64"])
1722 AC_ARG_ENABLE([sve],
1723 AS_HELP_STRING([--disable-sve],
1724 [disable ARM SVE optimizations (default auto)]),, [
1725 AS_IF([test "${host_cpu}" = "aarch64"], [enable_sve="yes"] ,[enable_sve="no"])
1727 AS_IF([test "${enable_sve}" != "no"], [
1729 CFLAGS="${CFLAGS} -march=armv8-a+sve"
1730 AC_CACHE_CHECK([if $CCAS groks ARM SVE assembly], [ac_cv_arm_sve], [
1733 asm volatile("ptrue p0.s" ::: "p0");
1743 AM_CONDITIONAL([HAVE_SVE], [test "${ac_cv_arm_sve}" = "yes"])
1745 AC_ARG_ENABLE([branch-protection],
1746 AS_HELP_STRING([--disable-branch-protection],
1747 [disable AArch64 branch protection (default auto)]),, [
1748 AS_IF([test "${host_cpu}" = "aarch64"],
1749 [enable_branch_protection="yes"], [enable_branch_protection="no"])
1751 AS_IF([test "${enable_branch_protection}" != "no"], [
1752 AX_CHECK_COMPILE_FLAG([-mbranch-protection=standard], [
1753 AX_APPEND_FLAG([-mbranch-protection=standard], [CFLAGS])
1754 AX_APPEND_FLAG([-mbranch-protection=standard], [CXXFLAGS])
1759 AC_ARG_ENABLE([altivec],
1760 AS_HELP_STRING([--disable-altivec],
1761 [disable AltiVec optimizations (default auto)]),, [
1762 AS_CASE("${host_cpu}", [powerpc*],
1763 [enable_altivec=yes], [enable_altivec=no])
1767 AS_IF([test "${enable_altivec}" = "yes"], [
1768 ARCH="${ARCH} altivec";
1770 AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1771 [ac_cv_altivec_inline],
1772 [AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1773 ac_cv_altivec_inline="yes",
1774 [CFLAGS="${CFLAGS} -Wa,-maltivec"
1775 AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1776 [ac_cv_altivec_inline="-Wa,-maltivec"],
1777 ac_cv_altivec_inline=no)
1780 AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1781 AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1782 [Define to 1 if AltiVec inline assembly is available.])
1783 AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1784 ALTIVEC_CFLAGS="${ac_cv_altivec_inline}"
1785 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_altivec_inline}])
1791 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1792 [ac_cv_c_altivec], [
1793 CFLAGS="${CFLAGS} -maltivec"
1794 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1795 [#include <altivec.h>]], [
1796 [vec_ld(0, (unsigned char *)0);]])], [
1797 ac_cv_c_altivec="-maltivec"
1799 ac_cv_c_altivec="no"
1803 AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1804 CPPFLAGS="${CPPFLAGS} ${ac_cv_c_altivec}"
1805 AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, [Define to 1 if C AltiVec extensions are available.])
1806 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_c_altivec}])
1807 ALTIVEC_CFLAGS="$ALTIVEC_CFLAGS ${ac_cv_c_altivec}"
1808 VLC_ADD_CFLAGS([deinterlace],[${ac_cv_c_altivec}])
1811 AC_CHECK_HEADERS([altivec.h])
1814 LDFLAGS="${LDFLAGS} -Wl,-framework,vecLib"
1815 AC_CACHE_CHECK([if linker needs -framework vecLib],
1817 [AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)])
1819 AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1820 VLC_ADD_LIBS([libvlccore],[-Wl,-framework,vecLib])
1823 AC_SUBST([ALTIVEC_CFLAGS])
1824 AM_CONDITIONAL([HAVE_ALTIVEC], [test "$have_altivec" = "yes"])
1829 AC_ARG_ENABLE([optimize-memory],
1830 AS_HELP_STRING([--enable-optimize-memory],
1831 [optimize memory usage over performance]))
1832 if test "${enable_optimize_memory}" = "yes"; then
1833 AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1837 dnl Allow running as root (useful for people running on embedded platforms)
1839 AC_ARG_ENABLE([run-as-root],
1840 AS_HELP_STRING([--enable-run-as-root],
1841 [allow running VLC as root (default disabled)]))
1842 AS_IF([test "${enable_run_as_root}" = "yes"],[
1843 AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1844 [Define to 1 to allow running VLC as root (uid 0).])
1850 AC_ARG_ENABLE([sout],
1851 AS_HELP_STRING([--disable-sout],
1852 [disable streaming output (default enabled)]))
1853 AS_IF([test "${enable_sout}" != "no"], [
1854 AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1856 AM_CONDITIONAL([ENABLE_SOUT], [test "${enable_sout}" != "no"])
1859 AC_ARG_ENABLE([lua],
1860 AS_HELP_STRING([--disable-lua],
1861 [disable LUA scripting support (default enabled)]))
1862 if test "${enable_lua}" != "no"
1864 PKG_CHECK_MODULES(LUA, lua5.2,
1867 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua 5.1 instead])
1869 PKG_CHECK_MODULES(LUA, lua5.1,
1872 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua >= 5.1 instead])
1873 PKG_CHECK_MODULES(LUA, lua >= 5.1,
1876 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying manual detection instead])
1878 AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1881 AC_CHECK_LIB( lua5.2 , luaL_newstate,
1882 [LUA_LIBS="-llua5.2"],
1883 AC_CHECK_LIB( lua5.1 , luaL_newstate,
1884 [LUA_LIBS="-llua5.1"],
1885 AC_CHECK_LIB( lua51 , luaL_newstate,
1886 [LUA_LIBS="-llua51"],
1887 AC_CHECK_LIB( lua , luaL_newstate,
1895 if test "x${have_lua}" != "xyes" ; then
1896 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.])
1898 AC_ARG_VAR([LUAC], [LUA byte compiler])
1899 AS_IF([test -z "$LUAC"], [
1900 AC_CHECK_TOOL(LUAC, [luac], [false])
1902 AS_IF([test "${LUAC}" = "false"], [
1903 AC_MSG_ERROR([Could not find the LUA byte compiler.])
1905 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], [
1906 AC_MSG_ERROR([You need 32-bits luac when using lua from contrib.])
1909 AM_CONDITIONAL([BUILD_LUA], [test "${have_lua}" = "yes"])
1913 dnl VideoLAN manager
1915 AC_ARG_ENABLE([vlm],
1916 AS_HELP_STRING([--disable-vlm],
1917 [disable the stream manager (default enabled)]),,
1918 [enable_vlm="${enable_sout}"])
1919 AS_IF([test "${enable_vlm}" != "no"], [
1920 AS_IF([test "${enable_sout}" = "no"], [
1921 AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1923 AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1925 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1929 dnl Addons manager storage and repositories modules
1931 AC_ARG_ENABLE([addonmanagermodules],
1932 AS_HELP_STRING([--disable-addonmanagermodules],
1933 [disable the addons manager modules (default enabled)]))
1934 if test "${enable_addonmanagermodules}" != "no"
1936 AC_DEFINE(ENABLE_ADDONMANAGERMODULES, 1, [Define if you want the addons manager modules])
1938 AM_CONDITIONAL([ENABLE_ADDONMANAGERMODULES], [test "${enable_addonmanagermodules}" != "no"])
1945 EXTEND_HELP_STRING([Input plugins:])
1948 dnl libarchive access module
1950 PKG_ENABLE_MODULES_VLC([ARCHIVE], [archive], [libarchive >= 3.1.0], (libarchive support), [auto])
1955 AC_ARG_ENABLE([live555],
1956 AS_HELP_STRING([--enable-live555],
1957 [enable RTSP input through live555 (default enabled)]))
1959 AS_IF([test "${enable_live555}" != "no" -a -n "${CXX}"], [
1960 PKG_CHECK_MODULES(LIVE555, live555, [
1961 VLC_ADD_PLUGIN([live555])
1962 VLC_ADD_CXXFLAGS([live555], [$LIVE555_CFLAGS])
1963 VLC_ADD_LIBS([live555],[$LIVE555_LIBS])
1965 AC_MSG_WARN([${LIVE555_PKG_ERRORS}.])
1970 dnl detect include paths
1971 AS_IF([test -f "${CONTRIB_DIR}/include/UsageEnvironment/UsageEnvironment.hh"], [
1972 CPPFLAGS_live555="-I${CONTRIB_DIR}/include/liveMedia -I${CONTRIB_DIR}/include/groupsock -I${CONTRIB_DIR}/include/BasicUsageEnvironment -I${CONTRIB_DIR}/include/UsageEnvironment"
1974 AS_IF([test "${SYS}" != "os2"], [
1975 LIVE555_PREFIX=${LIVE555_PREFIX-"/usr"}
1976 CPPFLAGS_live555="-I${LIVE555_PREFIX}/include/liveMedia -I${LIVE555_PREFIX}/include/groupsock -I${LIVE555_PREFIX}/include/BasicUsageEnvironment -I${LIVE555_PREFIX}/include/UsageEnvironment"
1978 LIVE555_PREFIX=${LIVE555_PREFIX-"/usr/lib/live"}
1979 CPPFLAGS_live555="-I${LIVE555_PREFIX}/liveMedia/include -I${LIVE555_PREFIX}/groupsock/include -I${LIVE555_PREFIX}/BasicUsageEnvironment/include -I${LIVE555_PREFIX}/UsageEnvironment/include"
1980 LDFLAGS_live555="-L${LIVE555_PREFIX}/liveMedia -L${LIVE555_PREFIX}/groupsock -L${LIVE555_PREFIX}/BasicUsageEnvironment -L${LIVE555_PREFIX}/UsageEnvironment"
1985 AS_IF([test "${SYS}" = "solaris"], [
1986 CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1988 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1989 LDFLAGS="${LDFLAGS} ${LDFLAGS_live555}"
1992 AC_CACHE_CHECK([for live555 version 1324598400 or later], [ac_cv_live555], [
1993 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
1994 [#include <liveMedia_version.hh>
1995 #if !defined (LIVEMEDIA_LIBRARY_VERSION_INT) || (LIVEMEDIA_LIBRARY_VERSION_INT < 1324598400)
2005 AS_IF([test "$ac_cv_live555" = "no"], [
2006 AC_MSG_WARN([live555 is missing or its installed version is too old:
2007 Version 2011.12.23 or later is required to proceed.
2008 You can get an updated one from http://www.live555.com/liveMedia .])
2009 AS_IF([test -n "${enable_live555}"], [
2010 AC_MSG_ERROR([Update live555 or pass --disable-live555 to disable RTSP input support.])
2013 other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
2014 other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
2015 AS_IF([test "${SYS}" = "mingw32"], [
2016 # add ws2_32 for closesocket, select, recv
2017 other_libs="$other_libs -lws2_32"
2020 dnl We need to check for pic because live555 don't provide shared libs
2021 dnl and we want to build a plugins so we need -fPIC on some arch.
2022 VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
2023 VLC_ADD_LDFLAGS([live555], [${LDFLAGS_live555}])
2024 AC_CHECK_LIB([liveMedia_pic], [main], [
2025 VLC_ADD_PLUGIN([live555])
2026 VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
2028 AC_CHECK_LIB([liveMedia], [main], [
2029 VLC_ADD_PLUGIN([live555])
2030 VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
2031 ],[],[${other_libs}])
2032 ],[${other_libs_pic}])
2040 dnl IIDC and DV FireWire input modules
2042 PKG_ENABLE_MODULES_VLC([DC1394], [], [libdc1394-2 >= 2.1.0], [IIDC FireWire input module], [auto])
2043 PKG_ENABLE_MODULES_VLC([DV1394], [], [libraw1394 >= 2.0.1 libavc1394 >= 0.5.3], [DV FireWire input module], [auto])
2046 dnl - linsys modules: access module check for libzvbi
2048 AC_ARG_ENABLE([linsys],
2049 AS_HELP_STRING([--enable-linsys],
2050 [Linux Linear Systems Ltd. SDI and HD-SDI input cards (default enabled)]))
2051 AS_IF([test "$SYS" = "linux" -a "${enable_linsys}" != "no"], [
2052 VLC_ADD_PLUGIN([linsys_hdsdi])
2053 PKG_CHECK_MODULES(LINSYS_SDI, [zvbi-0.2 >= 0.2.28], [
2054 VLC_ADD_PLUGIN([linsys_sdi])
2056 AC_MSG_WARN([${LINSYS_SDI_PKG_ERRORS}.])
2061 dnl dvdread module: check for libdvdread
2063 PKG_ENABLE_MODULES_VLC([DVDREAD], [], [dvdread > 6.0.0], [dvdread input module], [auto])
2066 dnl libdvdnav plugin
2068 PKG_ENABLE_MODULES_VLC([DVDNAV], [], [dvdnav >= 6.0.0], [DVD with navigation input module (dvdnav)], [auto])
2071 dnl Blu-ray Disc Support with libbluray
2073 PKG_ENABLE_MODULES_VLC([BLURAY], [libbluray], [libbluray >= 0.6.2], (libbluray for Blu-ray disc support ) )
2076 dnl OpenCV wrapper and example filters
2078 PKG_ENABLE_MODULES_VLC([OPENCV], [opencv_example opencv_wrapper], [opencv > 2.0], (OpenCV (computer vision) filter), [auto])
2082 dnl libsmbclient plugin
2084 PKG_ENABLE_MODULES_VLC([SMBCLIENT], [smbc], [smbclient], (SMB/CIFS support), [auto])
2087 dnl liBDSM access module
2089 AM_CONDITIONAL([HAVE_DSM], [test "$AS_TR_SH(with_dsm)" = "yes"])
2090 PKG_WITH_MODULES([DSM], [libdsm >= 0.2.0], [
2091 VLC_ADD_PLUGIN([dsm])
2092 VLC_ADD_CFLAGS([dsm], [$DSM_CFLAGS])
2093 VLC_ADD_LIBS([dsm], [$DSM_LIBS])
2095 ],,[libdsm SMB/CIFS access/sd module], [auto])
2096 AM_CONDITIONAL([HAVE_DSM], [test "${have_dsm}" = "yes"])
2099 dnl sftp access support
2101 PKG_ENABLE_MODULES_VLC([SFTP], [sftp], [libssh2], (support SFTP file transfer via libssh2), [auto])
2104 dnl nfs access support
2106 PKG_ENABLE_MODULES_VLC([NFS], [nfs], [libnfs >= 1.10.0], (support nfs protocol via libnfs), [auto])
2109 dnl smb2 access support
2111 PKG_ENABLE_MODULES_VLC([SMB2], [smb2], [libsmb2 >= 3.0.0], (support smb2 protocol via libsmb2), [auto])
2116 AC_ARG_ENABLE([v4l2], AS_HELP_STRING([--disable-v4l2],
2117 [disable Video4Linux version 2 (default auto)]))
2119 AS_IF([test "$enable_v4l2" != "no"], [
2120 AC_CHECK_HEADERS([linux/videodev2.h], [
2124 AM_CONDITIONAL([HAVE_V4L2], [test "${have_v4l2}" != "no"])
2127 dnl NVDEC decoder/encoder
2129 AC_ARG_ENABLE([nvdec], AS_HELP_STRING([--disable-nvdec],
2130 [disable NVDEC decoder (default auto)]))
2132 AS_IF([test "$enable_nvdec" != "no"], [
2133 AC_CHECK_HEADERS([ffnvcodec/dynlink_loader.h], [
2137 AM_CONDITIONAL([HAVE_NVDEC], [test "${have_nvdec}" != "no"])
2140 dnl special access module for Blackmagic SDI cards
2142 AC_ARG_ENABLE([decklink],
2143 AS_HELP_STRING([--disable-decklink],
2144 [disable Blackmagic DeckLink SDI input (default auto)]))
2145 AC_ARG_WITH([decklink_sdk],
2146 AS_HELP_STRING([--with-decklink-sdk=DIR],
2147 [location of Blackmagic DeckLink SDI SDK]))
2149 if test "${enable_decklink}" != "no"
2151 if test "${with_decklink_sdk}" != "no" -a -n "${with_decklink_sdk}"
2153 VLC_ADD_CPPFLAGS([decklink decklinkoutput stream_out_sdi],[-I${with_decklink_sdk}/include])
2156 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_decklink}"
2158 AC_CHECK_HEADERS([DeckLinkAPIDispatch.cpp], [
2160 AS_IF([test "${SYS}" = "darwin"], [
2161 VLC_ADD_LIBS([decklink decklinkoutput],[-Wl,-framework,CoreFoundation])
2164 AS_IF([test "${enable_decklink}" = "yes"], [
2165 AC_MSG_ERROR([Blackmagic DeckLink SDI include files not found!])
2167 AC_MSG_WARN([Blackmagic DeckLink SDI include files not found, decklink disabled])
2173 AM_CONDITIONAL([HAVE_DECKLINK], [ test "${have_decklink}" != "no" ])
2177 dnl Built-in CD-DA and VCD module
2179 AC_ARG_ENABLE([vcd],
2180 AS_HELP_STRING([--disable-vcd],
2181 [disable built-in VCD and CD-DA support (default enabled)]))
2183 AC_ARG_ENABLE([libcddb],
2184 AS_HELP_STRING([--disable-libcddb],
2185 [disable CDDB for Audio CD (default enabled)]))
2187 if test "${enable_vcd}" != "no" -a "${enable_winstore_app}" != "yes"
2189 AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2190 AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2192 VLC_ADD_PLUGIN([vcd cdda])
2197 AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2198 AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2200 VLC_ADD_PLUGIN([vcd cdda])
2201 AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2206 AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2207 AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2209 VLC_ADD_PLUGIN([vcd cdda])
2210 AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2215 if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32" -o "${SYS}" = "os2" -o "${SYS}" = "darwin"
2217 VLC_ADD_PLUGIN([vcd cdda])
2220 if test "$enable_libcddb" != "no"; then
2221 PKG_CHECK_MODULES(LIBCDDB, [libcddb >= 0.9.5], [
2223 AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2224 VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2225 VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2227 [AC_MSG_WARN([${LIBCDDB_PKG_ERRORS}: CDDB access disabled.])
2235 AC_CACHE_CHECK([for Linux DVB version 5.1], [ac_cv_linux_dvb_5_1], [
2236 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
2237 [#include <linux/dvb/version.h>
2238 #if (DVB_API_VERSION < 5)
2239 # error Linux DVB API v3.2 and older are not supported.
2241 #if (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR < 1)
2242 # error Linux DVB API v5.0 is unsupported. Please update.
2245 ac_cv_linux_dvb_5_1=yes
2247 ac_cv_linux_dvb_5_1=no
2249 AM_CONDITIONAL([HAVE_LINUX_DVB], [test "$ac_cv_linux_dvb_5_1" = "yes"])
2252 dnl Screen capture module
2254 AC_ARG_ENABLE([screen],
2255 AS_HELP_STRING([--enable-screen],
2256 [disable screen capture (default enabled)]))
2257 if test "${enable_screen}" != "no"; then
2258 if test "${SYS}" = "darwin"; then
2259 AC_CHECK_HEADERS([ApplicationServices/ApplicationServices.h], [
2260 VLC_ADD_PLUGIN([screen])
2264 AM_CONDITIONAL([HAVE_MAC_SCREEN], [test "${SYS}" = "darwin" -a "x${enable_screen}" != "xno"])
2267 dnl VNC/RFB access module
2269 PKG_ENABLE_MODULES_VLC([VNC], [vnc], [libvncclient >= 0.9.9], (VNC/rfb client support), [auto])
2271 dnl RDP/Remote Desktop access module
2273 PKG_ENABLE_MODULES_VLC([FREERDP], [rdp], [freerdp >= 1.0.1], (RDP/Remote Desktop client support) )
2277 AC_SUBST([have_avfoundation], ["no"])
2278 AC_ARG_ENABLE([macosx-avfoundation],
2279 AS_HELP_STRING([--enable-macosx-avfoundation], [Mac OS X avcapture (video) module (default enabled on Mac OS X)]))
2280 if test "x${enable_macosx_avfoundation}" != "xno" &&
2281 (test "${SYS}" = "darwin" || test "${enable_macosx_avfoundation}" = "yes")
2283 SAVED_LIBS="${LIBS}"
2284 LIBS="-framework AVFoundation"
2285 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [])],[have_avfoundation=yes],[have_avfoundation=no])
2286 LIBS="${SAVED_LIBS}"
2287 if test "${have_avfoundation}" != "no"
2289 VLC_ADD_PLUGIN([avcapture])
2292 AM_CONDITIONAL([HAVE_AVFOUNDATION], [test "${have_avfoundation}" != "no"])
2295 dnl DCP plugin (using asdcplib)
2297 PKG_WITH_MODULES([ASDCP], [asdcplib], [have_asdcp="yes"])
2298 AM_CONDITIONAL([HAVE_ASDCP], [test "${have_asdcp}" = "yes"])
2304 EXTEND_HELP_STRING([Mux/Demux plugins:])
2307 dnl libdvbpsi check for ts mux/demux
2310 PKG_WITH_MODULES([DVBPSI], [libdvbpsi >= 1.2.0], [have_dvbpsi="yes"])
2311 AM_CONDITIONAL([HAVE_DVBPSI], [test "${have_dvbpsi}" = "yes"])
2315 dnl GME demux plugin
2317 AC_ARG_ENABLE([gme],
2318 AS_HELP_STRING([--enable-gme],
2319 [use Game Music Emu (default auto)]))
2320 AS_IF([test "${enable_gme}" != "no"], [
2321 AC_CHECK_HEADER([gme/gme.h], [
2322 AC_CHECK_LIB([gme], [gme_identify_header], [
2323 VLC_ADD_PLUGIN([gme])
2325 AC_CHECK_LIB([gme], [gme_identify_extension], [
2326 VLC_ADD_LIBS([gme], [-lstdc++ $LIBM])
2327 VLC_ADD_PLUGIN([gme])
2328 ],, [-lstdc++ $LIBM])
2330 VLC_ADD_LIBS([gme], [-lgme])
2332 AS_IF([test "x${enable_gme}" != "x"], [
2333 AC_MSG_ERROR([GME cannot be found. Please install the development files.])
2342 AC_ARG_ENABLE([sid],
2343 AS_HELP_STRING([--enable-sid],[C64 sid demux support (default auto)]))
2344 AS_IF([test "${enable_sid}" != "no"], [
2345 PKG_CHECK_MODULES(SID, [libsidplay2], [
2347 oldCPPFLAGS="$CPPFLAGS"
2348 CPPFLAGS="$CPPFLAGS $SID_CFLAGS"
2349 AC_CHECK_HEADER([sidplay/builders/resid.h], [
2350 VLC_ADD_PLUGIN([sid])
2351 VLC_ADD_CFLAGS([sid], [$SID_CFLAGS])
2352 VLC_ADD_LIBS([sid], [$SID_LIBS] [-lresid-builder])
2354 AS_IF([test -n "${enable_sid}"],
2355 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2356 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2359 CPPFLAGS="$oldCPPFLAGS"
2362 AS_IF([test "x${enable_sid}" = "xyes"],
2363 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2364 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2371 dnl ogg demux plugin
2373 PKG_ENABLE_MODULES_VLC([OGG], [mux_ogg], [ogg >= 1.0], [Ogg demux support], [auto])
2374 PKG_CHECK_MODULES(LIBVORBIS, [vorbis >= 1.1], [
2375 AC_DEFINE(HAVE_LIBVORBIS, 1, [Define to 1 if you have the libvorbis])
2377 PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto], [${LIBVORBIS_CFLAGS}], [${LIBVORBIS_LIBS}])
2378 if test "${enable_sout}" != "no"; then
2379 dnl Check for libshout
2380 PKG_ENABLE_MODULES_VLC([SHOUT], [access_output_shout], [shout >= 2.1], [libshout output plugin], [auto])
2384 dnl matroska demux plugin
2386 PKG_WITH_MODULES([MATROSKA], [libebml >= 1.3.6 libmatroska], [
2387 VLC_ADD_PLUGIN([mkv])
2388 VLC_ADD_CFLAGS([mkv], [$MATROSKA_CFLAGS])
2389 VLC_ADD_LIBS([mkv], [$MATROSKA_LIBS])
2391 ],,[MKV format support], [auto])
2392 AM_CONDITIONAL([HAVE_MATROSKA], [test "${have_matroska}" = "yes"])
2395 dnl modplug demux plugin
2397 AC_ARG_ENABLE([mod],
2398 AS_HELP_STRING([--disable-mod],
2399 [do not use libmodplug (default auto)]))
2400 if test "${enable_mod}" != "no" ; then
2401 PKG_CHECK_MODULES(LIBMODPLUG, [libmodplug >= 0.8.9.0], [
2402 VLC_ADD_PLUGIN([mod])
2403 VLC_ADD_CXXFLAGS([mod],[$LIBMODPLUG_CFLAGS])
2404 VLC_ADD_CFLAGS([mod],[$LIBMODPLUG_CFLAGS]) #modules/demux/mod.c needs CFLAGS_mod, not CXXFLAGS_mod
2405 VLC_ADD_LIBS([mod],[$LIBMODPLUG_LIBS])
2407 AS_IF([test -n "${enable_mod}"],
2408 [AC_MSG_ERROR([${LIBMODPLUG_PKG_ERRORS}.])],
2409 [AC_MSG_WARN([${LIBMODPLUG_PKG_ERRORS}.])])
2414 dnl mpc demux plugin
2416 AC_ARG_ENABLE([mpc],
2417 AS_HELP_STRING([--disable-mpc], [do not use libmpcdec (default auto)]))
2418 if test "${enable_mpc}" != "no"
2420 AC_CHECK_HEADERS([mpcdec/mpcdec.h], [
2421 VLC_ADD_PLUGIN([mpc])
2422 VLC_ADD_LIBS([mpc],[-lmpcdec])])
2429 EXTEND_HELP_STRING([Codec plugins:])
2432 dnl shine encoder plugin
2434 PKG_ENABLE_MODULES_VLC([SHINE], [], [shine >= 3.0.0], [MPEG Audio Layer 3 encoder], [auto], [], [], [])
2438 dnl openmax il codec plugin
2440 AC_ARG_ENABLE([omxil],
2441 AS_HELP_STRING([--enable-omxil], [openmax il codec module (default disabled)]))
2442 if test "${enable_omxil}" = "yes"
2444 VLC_ADD_PLUGIN([omxil])
2448 dnl raspberry pi openmax il configuration
2450 AC_ARG_ENABLE([rpi-omxil],
2451 AS_HELP_STRING([--enable-rpi-omxil], [openmax il configured for raspberry pi (default disabled)]))
2452 if test "${enable_rpi_omxil}" = "yes"
2454 VLC_ADD_PLUGIN([omxil])
2455 VLC_ADD_CFLAGS([omxil],[-DRPI_OMX])
2459 dnl CrystalHD codec plugin
2461 AC_ARG_ENABLE([crystalhd],
2462 AS_HELP_STRING([--enable-crystalhd], [crystalhd codec plugin (default auto)]))
2463 if test "${enable_crystalhd}" != "no"; then
2464 AC_CHECK_HEADER(libcrystalhd/libcrystalhd_if.h, [
2465 VLC_ADD_PLUGIN([crystalhd])
2466 VLC_ADD_LIBS([crystalhd], [-lcrystalhd])
2468 if test "${SYS}" = "mingw32" ; then
2469 AC_CHECK_HEADERS([libcrystalhd/bc_dts_defs.h], [
2470 VLC_ADD_PLUGIN([crystalhd])
2471 AC_CHECK_HEADERS([libcrystalhd/bc_drv_if.h], [
2472 VLC_ADD_LIBS([crystalhd], [-lbcmDIL])
2475 AS_IF([test x"${enable_crystalhd}" = "xyes"],
2476 [AC_MSG_ERROR("Could not find CrystalHD development headers")],
2477 [AC_MSG_WARN("Could not find CrystalHD development headers")])
2478 ],[#define __LINUX_USER__
2479 #include <libcrystalhd/bc_dts_types.h>
2483 #include <libcrystalhd/bc_dts_types.h>
2494 AC_ARG_WITH(mad, AS_HELP_STRING([--with-mad=PATH], [path to libmad]), [
2499 AS_IF([test "${with_mad}" != "no"], [
2500 MAD_CFLAGS="-I${with_mad}/include"
2501 MAD_LIBS="-L${with_mad}/lib"
2504 AC_ARG_ENABLE([mad],
2505 AS_HELP_STRING([--enable-mad], [libmad module (default enabled)]))
2506 AS_IF([test "${enable_mad}" != "no"], [
2508 CPPFLAGS="${CPPFLAGS} ${MAD_CFLAGS}"
2509 LDFLAGS="${LDFLAGS} ${MAD_LIBS}"
2510 AC_CHECK_HEADERS([mad.h], [
2511 AC_CHECK_LIB([mad], [mad_bit_init], [
2513 MAD_LIBS="${MAD_LIBS} -lmad"
2517 AS_IF([test -n "$enable_mad" -a "${have_mad}" = "no"], [
2518 AC_MSG_ERROR([Could not find libmad. Install it or pass --disable-mad to disable it.])
2521 AC_SUBST([MAD_CFLAGS])
2522 AC_SUBST([MAD_LIBS])
2523 AM_CONDITIONAL([HAVE_MAD], [test "${have_mad}" = "yes"])
2528 PKG_ENABLE_MODULES_VLC([MPG123], [mpg123], [libmpg123], [libmpg123 decoder support], [auto])
2533 AC_ARG_ENABLE([gst-decode],
2534 AS_HELP_STRING([--enable-gst-decode], [GStreamer based decoding support (currently supports only video decoding) (default auto)]))
2536 have_gst_decode="no"
2537 AS_IF([test "${enable_gst_decode}" != "no"], [
2538 PKG_CHECK_MODULES([GST_APP], [gstreamer-app-1.0], [
2539 PKG_CHECK_MODULES([GST_VIDEO], [gstreamer-video-1.0], [
2540 have_gst_decode="yes"
2542 AC_MSG_WARN([${GST_VIDEO_PKG_ERRORS}. GStreamer decoder module will not be built.])
2545 AC_MSG_WARN([${GST_APP_PKG_ERRORS}. GStreamer modules will not be built.])
2548 AM_CONDITIONAL([HAVE_GST_DECODE], [test "${have_gst_decode}" = "yes"])
2551 dnl avcodec decoder/encoder plugin
2553 AC_ARG_ENABLE([merge-ffmpeg],
2554 AS_HELP_STRING([--enable-merge-ffmpeg], [merge FFmpeg-based plugins (default disabled)]),, [
2555 enable_merge_ffmpeg="no"
2557 AM_CONDITIONAL([MERGE_FFMPEG], [test "$enable_merge_ffmpeg" != "no"])
2559 AC_MSG_CHECKING([for libavutil variant])
2560 PKG_CHECK_EXISTS([libavutil], [
2561 libavutil_version="$(${PKG_CONFIG} --modversion libavutil)"
2562 libavutil_micro="${libavutil_version##*.}"
2563 AS_IF([test ${libavutil_micro} -le 99], [
2571 AC_MSG_RESULT([${avfork}])
2573 AC_ARG_ENABLE([avcodec],
2574 AS_HELP_STRING([--enable-avcodec], [libavcodec codec (default enabled)]))
2575 AS_IF([test "${enable_avcodec}" != "no"], [
2576 dnl We need >=57.16.0 from libav or >=57.37.100 from ffmpeg
2578 libav) av_codec_ver="57.16.0" ;;
2579 dnl 05f66706d182eb0c36af54d72614bf4c33e957a9 includes libavutil 55.9.0
2580 ffmpeg) av_codec_ver="57.37.100" ;;
2581 dnl 7fc329e2dd6226dfecaa4a1d7adf353bf2773726 include libavutil 55.22.101
2582 *) AC_MSG_ERROR([Missing libav or FFmpeg. Pass --disable-avcodec to ignore this error.])
2584 PKG_CHECK_MODULES(AVCODEC,[libavcodec >= ${av_codec_ver} libavutil >= 55.9.0], [
2586 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2587 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2588 AC_CHECK_HEADERS([libavcodec/avcodec.h])
2589 AC_CHECK_HEADERS([libavutil/avutil.h])
2593 AC_MSG_ERROR([${AVCODEC_PKG_ERRORS}. Pass --disable-avcodec to ignore this error.])
2598 AM_CONDITIONAL([HAVE_AVCODEC], [test "${have_avcodec}" != "no"])
2601 dnl libva needs avcodec
2603 AC_ARG_ENABLE([libva],
2604 AS_HELP_STRING([--enable-libva], [VAAPI GPU decoding support (libVA) (default auto)]))
2606 AS_IF([test "${enable_libva}" = "yes" -a "${have_avcodec}" != "yes" ], [
2607 AC_MSG_ERROR([--enable-libva and --disable-avcodec options are mutually exclusive. Use --enable-avcodec.])
2614 AS_IF([test "${enable_libva}" != "no"], [
2615 PKG_CHECK_MODULES([LIBVA], [libva >= 0.38], [
2618 AS_IF([test -n "${enable_libva}"], [
2619 AC_MSG_ERROR([${LIBVA_PKG_ERRORS}.])
2621 AC_MSG_WARN([${LIBVA_PKG_ERRORS}.])
2624 PKG_CHECK_MODULES([LIBVA_DRM], [libva-drm], [
2625 have_vaapi_drm="yes"
2627 AC_MSG_WARN([${LIBVA_DRM_PKG_ERRORS}.])
2629 PKG_CHECK_MODULES(LIBVA_X11, [libva-x11], [
2630 have_vaapi_x11="yes"
2632 AC_MSG_WARN([${LIBVA_X11_PKG_ERRORS}.])
2634 PKG_CHECK_MODULES(LIBVA_WL, [libva-wayland], [
2637 AC_MSG_WARN([${LIBVA_WL_PKG_ERRORS}.])
2640 AM_CONDITIONAL([HAVE_VAAPI], [test "${have_vaapi}" = "yes"])
2641 AM_CONDITIONAL([HAVE_VAAPI_DRM], [test "${have_vaapi_drm}" = "yes"])
2642 AM_CONDITIONAL([HAVE_VAAPI_X11], [test "${have_vaapi_x11}" = "yes"])
2643 AM_CONDITIONAL([HAVE_VAAPI_WL], [test "${have_vaapi_wl}" = "yes"])
2645 have_avcodec_vaapi="no"
2646 AS_IF([test "${have_vaapi}" = "yes" -a "${have_avcodec}" = "yes"], [
2648 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2649 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2650 AC_CHECK_HEADERS([libavcodec/vaapi.h], [
2651 AC_MSG_NOTICE([VA API acceleration activated])
2652 have_avcodec_vaapi="yes"
2654 AS_IF([test -n "${enable_libva}"], [
2655 AC_MSG_ERROR([libva is present but libavcodec/vaapi.h is missing])
2657 AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing ])
2662 AM_CONDITIONAL([HAVE_AVCODEC_VAAPI], [test "${have_avcodec_vaapi}" = "yes"])
2665 dnl dxva2 needs avcodec
2667 AC_ARG_ENABLE([dxva2],
2668 AS_HELP_STRING([--enable-dxva2], [DxVA2 GPU decoding support (default auto)]))
2670 have_avcodec_dxva2="no"
2671 AS_IF([test "${enable_dxva2}" != "no"], [
2672 if test "${SYS}" = "mingw32"; then
2673 AS_IF([test "x${have_avcodec}" = "xyes"], [
2674 AC_CHECK_HEADERS([dxva2api.h],
2676 AC_CHECK_HEADERS([libavcodec/dxva2.h], [
2677 AC_MSG_NOTICE([DxVA2 acceleration activated])
2678 have_avcodec_dxva2="yes"
2680 AS_IF([test "${enable_dxva2}" = "yes"],
2681 [AC_MSG_ERROR([dxva2 is present but libavcodec/dxva2.h is missing])],
2682 [AC_MSG_WARN([dxva2 is present but libavcodec/dxva2.h is missing ])])
2683 ], [#undef _WIN32_WINNT
2684 /* DXVA2 is only available in Vista and above */
2685 #define _WIN32_WINNT 0x600])
2687 AS_IF([test "${enable_dxva2}" = "yes"],
2688 [AC_MSG_ERROR([Could not find required dxva2api.h])],
2689 [AC_MSG_WARN([dxva2api.h not found])])
2690 ],[#include <d3d9.h>])
2692 AS_IF([test "x${enable_dxva2}" != "x"], [
2693 AC_MSG_ERROR([--enable-dxva2 and --disable-avcodec options are mutually exclusive.])
2698 AM_CONDITIONAL([HAVE_AVCODEC_DXVA2], [test "${have_avcodec_dxva2}" = "yes"])
2701 dnl d3d11va needs avcodec
2703 AC_ARG_ENABLE([d3d11va],
2704 AS_HELP_STRING([--enable-d3d11va], [D3D11 GPU decoding support (default auto)]))
2706 have_avcodec_d3d11va="no"
2707 AS_IF([test "${enable_d3d11va}" != "no"], [
2708 if test "${SYS}" = "mingw32"; then
2709 AS_IF([test "x${have_avcodec}" = "xyes"], [
2710 AC_CHECK_TYPES([ID3D11VideoDecoder],
2712 AC_CHECK_HEADERS([dxva2api.h],
2714 AC_CHECK_HEADERS([libavcodec/d3d11va.h], [
2715 AC_MSG_NOTICE([D3D11 acceleration activated])
2716 AC_DEFINE([HAVE_AVCODEC_D3D11VA], [1], [Define if the d3d11va module is built])
2717 have_avcodec_d3d11va="yes"
2719 AS_IF([test "${enable_d3d11va}" = "yes"],
2720 [AC_MSG_ERROR([d3d11va is present but libavcodec/d3d11va.h is missing])],
2721 [AC_MSG_WARN([d3d11va is present but libavcodec/d3d11va.h is missing ])])
2722 ], [#undef _WIN32_WINNT
2723 /* D3D11 is only available in Vista and above */
2724 #define _WIN32_WINNT 0x600])
2726 AS_IF([test "${enable_d3d11va}" = "yes"],
2727 [AC_MSG_ERROR([Could not find required dxva2api.h])],
2728 [AC_MSG_WARN([dxva2api.h not found])])
2729 ],[#include <d3d9.h>])
2731 AS_IF([test "${enable_d3d11va}" = "yes"],
2732 [AC_MSG_ERROR([Could not find required ID3D11VideoDecoder in d3d11.h])],
2733 [AC_MSG_WARN([ID3D11VideoDecoder not found])])
2734 ], [#include <d3d11.h>])
2736 AS_IF([test "x${enable_d3d11va}" != "x"], [
2737 AC_MSG_ERROR([--enable-d3d11va and --disable-avcodec options are mutually exclusive.])
2742 AM_CONDITIONAL([HAVE_AVCODEC_D3D11VA], [test "${have_avcodec_d3d11va}" = "yes"])
2747 AC_CHECK_HEADERS([dxgidebug.h dxgi1_6.h])
2750 dnl IApplicationData2
2752 have_iapplication_data2="no"
2753 AC_CHECK_TYPES([IApplicationData2],[],[],[#include <windows.storage.h>])
2756 dnl avformat demuxer/muxer plugin
2759 AC_ARG_ENABLE([avformat],
2760 AS_HELP_STRING([--enable-avformat], [libavformat containers (default enabled)]),, [
2761 enable_avformat="${have_avcodec}"
2764 AS_IF([test "${enable_avformat}" != "no"], [
2765 PKG_CHECK_MODULES(AVFORMAT,[libavformat >= 53.21.0 libavcodec libavutil], [
2768 CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2769 CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2770 AC_CHECK_HEADERS([libavformat/avformat.h libavformat/avio.h])
2771 AC_CHECK_HEADERS([libavcodec/avcodec.h])
2772 AC_CHECK_HEADERS([libavutil/avutil.h])
2773 AS_IF([test "$enable_merge_ffmpeg" = "no"], [
2778 AC_MSG_ERROR([${AVFORMAT_PKG_ERRORS}. Pass --disable-avformat to ignore this error.])
2781 AM_CONDITIONAL([HAVE_AVFORMAT], [test "${enable_avformat}" != "no"])
2784 dnl swscale image scaling and conversion plugin
2787 AC_ARG_ENABLE([swscale],
2788 AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
2789 (default enabled)]))
2790 if test "${enable_swscale}" != "no"
2792 PKG_CHECK_MODULES(SWSCALE,[libswscale],
2795 CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
2796 CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
2797 AC_CHECK_HEADERS([libswscale/swscale.h])
2798 AC_CHECK_HEADERS([libavutil/avutil.h])
2799 VLC_ADD_PLUGIN([swscale])
2800 VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
2801 VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
2802 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2803 VLC_ADD_LIBS([swscale],[${ac_cv_ld_bsymbolic}])
2807 AC_MSG_ERROR([${SWSCALE_PKG_ERRORS}. Pass --disable-swscale to ignore this error. Proper software scaling and some video chroma conversion will be missing.])
2815 AC_ARG_ENABLE([postproc],
2816 AS_HELP_STRING([--enable-postproc], [libpostproc image post-processing (default auto)]))
2817 if test "${enable_postproc}" != "no"
2819 PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
2822 CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
2823 CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
2824 AC_CHECK_HEADERS([postproc/postprocess.h])
2825 VLC_ADD_PLUGIN([postproc])
2828 AC_MSG_WARN([${POSTPROC_PKG_ERRORS}.])
2833 dnl faad decoder plugin
2835 AC_ARG_ENABLE([faad],
2836 AS_HELP_STRING([--enable-faad], [faad codec (default auto)]))
2838 AS_IF([test "${enable_faad}" != "no"], [
2839 AC_CHECK_HEADERS([neaacdec.h], [
2840 AC_CHECK_LIB([faad], [NeAACDecOpen], [have_faad="yes"],, [$LIBM])
2842 AS_IF([test "${have_faad}" = "yes"], [
2843 VLC_ADD_PLUGIN([faad])
2844 VLC_ADD_LIBS([faad],[-lfaad])
2846 AS_IF([test "${enable_faad}" = "yes"], [
2847 AC_MSG_ERROR([cannot find FAAD library])
2849 AC_MSG_WARN([cannot find FAAD library])
2856 dnl AOM decoder plugin
2858 PKG_ENABLE_MODULES_VLC([AOM], [], [aom], [experimental AV1 codec (default auto)])
2861 dnl Dav1d decoder plugin
2863 PKG_ENABLE_MODULES_VLC([DAV1D], [], [dav1d >= 0.5.0], [AV1 decoder (default auto)])
2866 dnl libvpx decoder plugin
2868 AC_ARG_ENABLE([vpx],
2869 AS_HELP_STRING([--enable-vpx],[libvpx VP8/VP9 encoder and decoder (default auto)]))
2870 AS_IF([test "${enable_vpx}" != "no"],[
2871 PKG_CHECK_MODULES([VPX], [vpx >= 1.5.0], [
2872 VLC_ADD_PLUGIN([vpx])
2873 VLC_ADD_CPPFLAGS([vpx], [${VPX_CFLAGS}])
2874 VLC_ADD_LIBS([vpx], [${VPX_LIBS}])
2875 AC_CHECK_LIB([vpx],[vpx_codec_vp8_dx], [
2876 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP8_DECODER])
2877 ], [], [${VPX_LIBS}])
2878 AC_CHECK_LIB([vpx],[vpx_codec_vp9_dx], [
2879 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP9_DECODER])
2880 ], [], [${VPX_LIBS}])
2881 AC_CHECK_LIB([vpx],[vpx_codec_vp8_cx], [
2882 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP8_ENCODER])
2883 ], [], [${VPX_LIBS}])
2884 AC_CHECK_LIB([vpx],[vpx_codec_vp9_cx], [
2885 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP9_ENCODER])
2886 ], [], [${VPX_LIBS}])
2888 AS_IF([test "${enable_vpx}" = "yes"],[
2889 AC_MSG_ERROR([libvpx 1.5.0 or higher was not found])
2894 dnl twolame encoder plugin
2896 PKG_ENABLE_MODULES_VLC([TWOLAME], [], [twolame], [MPEG Audio Layer 2 encoder], [auto], [], [], [ -DLIBTWOLAME_STATIC])
2899 dnl fdk-aac encoder plugin
2901 PKG_ENABLE_MODULES_VLC([FDKAAC], [], [fdk-aac], [FDK-AAC encoder], [disabled])
2905 dnl A52/AC3 decoder plugin
2907 AC_ARG_ENABLE([a52],
2908 AS_HELP_STRING([--enable-a52], [A/52 support with liba52 (default enabled)]))
2909 if test "${enable_a52}" != "no"
2912 AS_HELP_STRING([--with-a52=PATH], [a52 headers and libraries]))
2913 if test -z "${with_a52}"
2918 LDFLAGS_test="-L${with_a52}/lib"
2919 CPPFLAGS_test="-I${with_a52}/include"
2922 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_test} ${CPPFLAGS_a52}"
2923 LDFLAGS="${LDFLAGS} ${LDFLAGS_test} ${LIBS_a52}"
2924 AC_CHECK_HEADERS([a52dec/a52.h], [
2925 AC_CHECK_LIB([a52], [a52_free], [
2926 VLC_ADD_PLUGIN([a52])
2927 VLC_ADD_LIBS([a52],[${LDFLAGS_test} -la52 $LIBM])
2928 VLC_ADD_CPPFLAGS([a52],[${CPPFLAGS_test}])
2930 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.])
2933 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.])
2939 dnl DTS Coherent Acoustics decoder plugin
2941 PKG_ENABLE_MODULES_VLC([DCA], [dca], [libdca >= 0.0.5], [DTS Coherent Acoustics support with libdca], [auto])
2946 PKG_ENABLE_MODULES_VLC([FLAC], [], [flac], [libflac decoder/encoder support], [auto])
2951 PKG_ENABLE_MODULES_VLC([LIBMPEG2], [], [libmpeg2 > 0.3.2], [libmpeg2 decoder support], [auto])
2956 PKG_ENABLE_MODULES_VLC([VORBIS], [], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
2961 AC_ARG_ENABLE([tremor],
2962 AS_HELP_STRING([--enable-tremor], [Tremor decoder support (default disabled)]))
2963 if test "${enable_tremor}" = "yes"
2965 AC_CHECK_HEADERS([tremor/ivorbiscodec.h], [
2966 VLC_ADD_PLUGIN([tremor])
2973 PKG_ENABLE_MODULES_VLC([SPEEX], [], [ogg speex >= 1.0.5], [Speex support], [auto])
2975 AS_IF([test "${enable_speex}" != "no"], [
2976 PKG_CHECK_MODULES([SPEEXDSP], [speexdsp], [
2979 AC_MSG_WARN([${SPEEXDSP_PKG_ERRORS}.])
2982 AM_CONDITIONAL([HAVE_SPEEXDSP], [test "$have_speexdsp" = "yes"])
2987 PKG_ENABLE_MODULES_VLC([OPUS], [], [ogg opus >= 1.0.3], [Opus support], [auto])
2990 dnl Ambisonic channel mixer and binauralizer plugin
2992 PKG_ENABLE_MODULES_VLC([SPATIALAUDIO], [], [spatialaudio], [Ambisonic channel mixer and binauralizer], [auto])
2995 dnl theora decoder plugin
2997 PKG_ENABLE_MODULES_VLC([THEORA], [], [ogg theoradec >= 1.0 theoraenc], [experimental theora codec], [auto])
3000 dnl OggSpots decoder plugin
3002 PKG_ENABLE_MODULES_VLC([OGGSPOTS], [], [ogg], [experimental OggSpots codec], [auto])
3005 dnl Daala decoder plugin
3007 PKG_ENABLE_MODULES_VLC([DAALA], [], [daaladec daalaenc], [experimental daala codec], [disabled])
3010 dnl schroedinger decoder plugin (for dirac format video)
3012 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [], [schroedinger-1.0 >= 1.0.10], [dirac decoder and encoder using schroedinger], [auto])
3015 dnl PNG decoder module
3017 AC_ARG_ENABLE([png],
3018 AS_HELP_STRING([--enable-png], [PNG support (default enabled)]))
3019 AS_IF([test "${enable_png}" != "no"], [
3020 AC_CHECK_HEADERS([png.h], [
3022 LDFLAGS="${LDFLAGS} -lz $LIBM"
3023 AC_CHECK_LIB([png], [png_set_alpha_mode], [
3024 VLC_ADD_PLUGIN([png])
3031 dnl JPEG decoder module
3033 AC_ARG_ENABLE([jpeg],
3034 AS_HELP_STRING([--enable-jpeg], [JPEG support (default enabled)]))
3035 AS_IF([test "${enable_jpeg}" != "no"], [
3036 AC_CHECK_HEADERS([jpeglib.h], [
3037 VLC_ADD_PLUGIN([jpeg])
3042 dnl BPG decoder module
3044 AC_ARG_ENABLE([bpg],
3045 AS_HELP_STRING([--enable-bpg], [BPG support (default disabled)]))
3046 AS_IF([test "${enable_bpg}" != "no"], [
3047 AC_CHECK_HEADERS([libbpg.h], [
3048 VLC_ADD_PLUGIN([bpg])
3053 dnl H262 encoder plugin (lib262)
3055 AC_ARG_ENABLE([x262],
3056 AS_HELP_STRING([--enable-x262], [H262 encoding support with static libx262 (default disabled)]))
3057 if test "${enable_x262}" != "no"; then
3058 PKG_CHECK_MODULES(X262, x262, [
3059 VLC_ADD_PLUGIN([x262])
3060 VLC_ADD_LDFLAGS([x262],[${X262_LIBS}])
3061 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
3062 VLC_ADD_LIBS([x262],[${av_cv_ld_bsymbolic}])
3064 VLC_ADD_CFLAGS([x262],[${X262_CFLAGS}])
3065 if echo ${X262_LIBS} |grep -q 'pthreadGC2'; then
3066 VLC_ADD_CFLAGS([x262], [-DPTW32_STATIC_LIB])
3069 if test "${enable_x262}" = "yes"; then
3070 AC_MSG_ERROR([x262 module doesn't work without staticly compiled libx262.a])
3076 PKG_ENABLE_MODULES_VLC([X265],, [x265], [HEVC/H.265 encoder], [auto])
3079 dnl H264 encoder plugin (using libx264)
3081 AC_ARG_ENABLE([x264],
3082 AS_HELP_STRING([--enable-x264], [H264 encoding support with libx264 (default enabled)]))
3083 if test "${enable_x264}" != "no"; then
3084 PKG_CHECK_MODULES(X264,x264 >= 0.148, [
3085 VLC_ADD_PLUGIN([x264])
3086 VLC_ADD_LIBS([x264],[${X264_LIBS}])
3088 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
3089 VLC_ADD_LDFLAGS([x264],[${ac_cv_ld_bsymbolic}])
3092 VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3093 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3094 VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3097 if test "${enable_x264}" = "yes"; then
3098 AC_MSG_ERROR([${X264_PKG_ERRORS}: you may get it from http://www.videolan.org/x264.html])
3104 dnl H264 encoder plugin (libx264 > 153)
3106 AC_ARG_ENABLE([x26410b],
3107 AS_HELP_STRING([--enable-x26410b], [H264 10-bit encoding support with libx264 (default enabled)]))
3108 if test "${enable_x26410b}" != "no"; then
3109 PKG_CHECK_MODULES(X26410b,x264 >= 0.153, [
3110 VLC_ADD_PLUGIN([x26410b])
3111 VLC_ADD_LIBS([x26410b],[${X264_LIBS}])
3113 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
3114 VLC_ADD_LDFLAGS([x26410b],[${ac_cv_ld_bsymbolic}])
3117 VLC_ADD_CFLAGS([x26410b],[${X264_CFLAGS}])
3118 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3119 VLC_ADD_CFLAGS([x26410b], [-DPTW32_STATIC_LIB])
3122 if test "${enable_x26410b}" = "yes"; then
3123 AC_MSG_ERROR([${X264_PKG_ERRORS}: you may get it from http://www.videolan.org/x264.html])
3130 dnl Intel QuickSync (aka MediaSDK) H264/H262 encoder
3132 PKG_ENABLE_MODULES_VLC([MFX], [qsv], [libmfx], [Intel QuickSync MPEG4-Part10/MPEG2 (aka H.264/H.262) encoder], [auto])
3135 dnl libfluidsynth (MIDI synthetizer) plugin
3137 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [], [fluidsynth >= 1.1.2], [MIDI synthetiser with libfluidsynth], [auto])
3138 PKG_ENABLE_MODULES_VLC([FLUIDLITE], [fluidsynth], [fluidlite], [MIDI synthetiser with libfluidsynth], [auto])
3139 AC_CHECK_HEADERS([fluidlite.h], [AC_SUBST([FLUIDSYNTH_LIBS], ${FLUIDLITE_LIBS})])
3142 dnl Teletext Modules
3143 dnl vbi decoder plugin (using libzbvi)
3147 AC_ARG_ENABLE([zvbi],
3148 AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
3149 libzvbi (default enabled)]))
3150 AC_ARG_ENABLE([telx],
3151 AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
3152 zvbi) (default enabled if zvbi is absent)]))
3154 AS_IF( [test "${enable_zvbi}" != "no"],[
3155 PKG_CHECK_MODULES(ZVBI, [zvbi-0.2 >= 0.2.28],
3157 VLC_ADD_PLUGIN([zvbi])
3158 AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
3159 AS_IF( [test "${enable_telx}" = "yes"],[
3160 AC_MSG_WARN([The zvbi and telx modules are incompatible. Using zvbi.])
3163 AC_MSG_WARN([${ZVBI_PKG_ERRORS}. Enabling the telx module instead.])
3166 AS_IF( [test "${enable_telx}" != "no" ],[
3167 VLC_ADD_PLUGIN([telx])
3171 dnl ARIB subtitles rendering module
3173 AC_ARG_ENABLE([aribsub],
3174 AS_HELP_STRING([--enable-aribsub],[ARIB Subtitles support (default enabled)]))
3175 AS_IF( [test "${enable_aribsub}" != "no" ],[
3176 PKG_CHECK_MODULES(ARIBB24, [aribb24 >= 1.0.1], [
3178 VLC_ADD_PLUGIN([aribsub])
3179 VLC_ADD_LIBS([aribsub],[-laribb24])
3180 AC_DEFINE(HAVE_ARIBB24, 1, [Define if libaribb24 is available.])
3182 AC_MSG_WARN(Library [aribb24] needed for [aribsub] was not found)
3186 AM_CONDITIONAL([HAVE_ARIBB24], [test x"${have_aribb24}" = x"yes"])
3191 PKG_ENABLE_MODULES_VLC([ARIBB25], [aribcam], [aribb25 >= 0.2.6], [ARIB STD-B25], [auto])
3194 dnl kate decoder plugin
3196 PKG_ENABLE_MODULES_VLC([KATE], [], [kate >= 0.3.0], [kate codec], [auto])
3199 dnl tiger rendering for kate decoder plugin
3201 AC_ARG_ENABLE([tiger],
3202 AS_HELP_STRING([--enable-tiger], [Tiger rendering library for Kate streams (default auto)]))
3203 AS_IF([test "${enable_tiger}" != "no"], [
3204 PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
3205 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])],[
3206 AS_IF([test -n "${enable_tiger}"], [
3207 AC_MSG_ERROR([${TIGER_PKG_ERRORS}.])
3213 dnl check if we can build the css selector engine
3215 AC_ARG_ENABLE([css],
3216 AS_HELP_STRING([--enable-css], [CSS selector engine (default auto)]))
3217 AS_IF([test "${enable_css}" != "no"], [
3219 AC_DEFINE(HAVE_CSS, 1, [Define if CSS engine is built])
3221 AM_CONDITIONAL([ENABLE_CSS], [test "${with_css}" = "yes"])
3228 EXTEND_HELP_STRING([Video plugins:])
3231 dnl libplacebo support
3233 AC_ARG_ENABLE([libplacebo],
3234 AS_HELP_STRING([--disable-libplacebo],
3235 [disable libplacebo support (default auto)]))
3237 AS_IF([test "$enable_libplacebo" != "no"], [
3238 PKG_CHECK_MODULES([LIBPLACEBO], [libplacebo >= 0.5], [
3239 AC_DEFINE([HAVE_LIBPLACEBO], [1], [Define to 1 if libplacebo is enabled.])
3240 PKG_CHECK_MODULES([LIBPLACEBO], [libplacebo >= 1.7],
3241 [have_libplacebo_vk="yes"], [have_libplacebo_vk="no"])
3243 AS_IF([test -n "${enable_libplacebo}"], [
3244 AC_MSG_ERROR([${LIBPLACEBO_PKG_ERRORS}.])
3246 enable_libplacebo="no"
3249 AM_CONDITIONAL([HAVE_LIBPLACEBO], [test "$enable_libplacebo" != "no"])
3254 PKG_CHECK_MODULES([EGL], [egl], [
3259 AM_CONDITIONAL([HAVE_EGL], [test "${have_egl}" = "yes"])
3262 PKG_CHECK_MODULES([GL], [gl], [
3265 AC_MSG_CHECKING([for OpenGL])
3266 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
3268 # include <GL/glew.h>
3272 [int t0 = GL_TEXTURE0;]])
3276 AS_IF([test "${SYS}" != "mingw32"], [
3279 GL_LIBS="-lopengl32"
3282 AC_MSG_RESULT([${have_gl}])
3284 AM_CONDITIONAL([HAVE_GL], [test "${have_gl}" = "yes"])
3285 AS_IF([test "${have_gl}" = "yes"], [
3286 AC_DEFINE([HAVE_GL], 1, [Defined if having OpenGL])
3289 dnl OpenGL ES 2: depends on EGL 1.1
3290 PKG_ENABLE_MODULES_VLC([GLES2], [], [glesv2], [OpenGL ES v2 support], [disabled])
3295 AC_ARG_ENABLE(vulkan,
3296 [AS_HELP_STRING([--disable-vulkan],
3297 [disable Vulkan support (default auto)])])
3299 AS_IF([test "$enable_vulkan" != "no"], [
3300 AS_IF([test "$have_libplacebo_vk" = "yes"], [
3301 PKG_CHECK_MODULES([VULKAN], [vulkan >= 1.0.26], [
3302 AC_DEFINE([HAVE_VULKAN], [1], [Define to 1 if vulkan is enabled.])
3304 AS_IF([test -n "${enable_vulkan}"], [
3305 AC_MSG_ERROR([${VULKAN_PKG_ERRORS}.])
3310 AS_IF([test -n "${enable_vulkan}"], [
3311 AC_MSG_ERROR([Vulkan support requires libplacebo 1.7 as well. Do not use --disable-libplacebo.])
3316 AM_CONDITIONAL(HAVE_VULKAN, [test "$enable_vulkan" != "no"])
3323 AC_CHECK_HEADERS([X11/Xlib.h])
3326 dnl X C Bindings modules
3328 AC_ARG_ENABLE([xcb],
3329 AS_HELP_STRING([--enable-xcb], [X11 support with XCB (default enabled)]),, [
3330 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "darwin"], [
3338 have_xkbcommon_x11="no"
3339 have_xcb_keysyms="no"
3340 AS_IF([test "${enable_xcb}" != "no"], [
3344 PKG_CHECK_MODULES([XCB], [xcb >= 1.6],, [
3345 xcb_err="$xcb_err ${XCB_PKG_ERRORS}."])
3346 PKG_CHECK_MODULES([XCB_COMPOSITE], [xcb-composite],, [
3347 xcb_err="$xcb_err ${XCB_COMPOSITE_PKG_ERRORS}."])
3348 PKG_CHECK_MODULES([XCB_RANDR], [xcb-randr >= 1.3],, [
3349 xcb_err="$xcb_err ${XCB_RANDR_PKG_ERRORS}."])
3350 PKG_CHECK_MODULES([XCB_RENDER], [xcb-render],, [
3351 xcb_err="$xcb_err ${XCB_RENDER_PKG_ERRORS}."])
3352 PKG_CHECK_MODULES([XCB_SHM], [xcb-shm >= 1.9.2],, [
3353 xcb_err="$xcb_err ${XCB_SHM_PKG_ERRORS}."])
3354 PKG_CHECK_MODULES([XCB_XKB], [xcb-xkb],, [
3355 xcb_err="$xcb_err ${XCB_XKB_PKG_ERRORS}."])
3358 PKG_CHECK_MODULES(XPROTO, [xproto],, [
3359 xcb_err="$xcb_err ${XPROTO_PKG_ERRORS}."])
3361 AS_IF([test -n "$xcb_err"], [
3362 AC_MSG_ERROR([$xcb_err Pass --disable-xcb to skip X11 support.])
3366 PKG_CHECK_MODULES([XKBCOMMON_X11], [xkbcommon-x11], [
3367 have_xkbcommon_x11="yes"
3369 AC_MSG_WARN([${XKBCOMMON_X11_PKG_ERRORS}. Hotkeys are disabled.])
3373 PKG_CHECK_MODULES([XCB_KEYSYMS], [xcb-keysyms >= 0.3.4], [
3374 have_xcb_keysyms="yes"
3376 AC_MSG_WARN([${XCB_KEYSYMS_PKG_ERRORS}. Global hotkeys are disabled.])
3381 AM_CONDITIONAL([HAVE_XCB], [test "${have_xcb}" = "yes"])
3382 AM_CONDITIONAL([HAVE_XKBCOMMON_X11], [test "${have_xkbcommon_x11}" = "yes"])
3383 AM_CONDITIONAL([HAVE_XCB_KEYSYMS], [test "${have_xcb_keysyms}" = "yes"])
3389 AC_ARG_ENABLE([vdpau],
3390 [AS_HELP_STRING([--enable-vdpau], [VDPAU hardware support (default auto)])])
3392 AS_IF([test "${enable_vdpau}" != "no"], [
3393 PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.6], [
3395 AS_IF([test "${no_x}" = "yes"], [
3396 AC_MSG_ERROR([VDPAU requires Xlib (X11).])
3399 AS_IF([test -n "${enable_vdpau}"], [
3400 AC_MSG_ERROR([${VDPAU_PKG_ERRORS}.])
3404 AM_CONDITIONAL([HAVE_VDPAU], [test "${have_vdpau}" = "yes"])
3406 have_avcodec_vdpau="no"
3407 AS_IF([test "${have_vdpau}" = "yes" -a "${have_avcodec}" = "yes"], [
3409 libav) av_vdpau_ver="56.10.0" ;;
3410 ffmpeg) av_vdpau_ver="56.19.100" ;;
3412 PKG_CHECK_EXISTS([libavcodec >= ${av_vdpau_ver}], [
3413 have_avcodec_vdpau="yes"
3414 AC_MSG_NOTICE([VDPAU decoding acceleration activated])
3416 AS_IF([test -n "${enable_vdpau}"], [
3417 AC_MSG_ERROR([libavcodec >= 56.10.0 is required for VDPAU decoding.])
3419 AC_MSG_WARN([libavcodec >= 56.10.0 are required for VDPAU decoding.])
3423 AM_CONDITIONAL([HAVE_AVCODEC_VDPAU], [test "${have_avcodec_vdpau}" = "yes"])
3429 AC_ARG_ENABLE([wayland],
3430 AS_HELP_STRING([--enable-wayland], [Wayland support (default auto)]))
3433 AS_IF([test "${enable_wayland}" != "no"], [
3437 PKG_CHECK_MODULES([WAYLAND_CLIENT], [wayland-client >= 1.5.91],, [
3438 wl_err="$wl_err ${WAYLAND_CLIENT_PKG_ERRORS}."
3440 PKG_CHECK_MODULES([WAYLAND_CURSOR], [wayland-cursor],, [
3441 wl_err="$wl_err ${WAYLAND_CURSOR_PKG_ERRORS}."
3443 PKG_CHECK_MODULES([WAYLAND_EGL], [wayland-egl],, [
3444 wl_err="$wl_err ${WAYLAND_EGL_PKG_ERRORS}."
3446 PKG_CHECK_MODULES([WAYLAND_SCANNER], [wayland-scanner >= 1.15], [
3447 WAYLAND_SCANNER="$(${PKG_CONFIG} wayland-scanner --variable wayland_scanner)"
3449 wl_err="$wl_err ${WAYLAND_SCANNER_PKG_ERRORS}."
3452 dnl wayland-protocols
3453 PKG_CHECK_MODULES([WAYLAND_PROTOCOLS], [wayland-protocols >= 1.15], [
3454 WAYLAND_PROTOCOLS="$(${PKG_CONFIG} wayland-protocols --variable pkgdatadir)"
3456 wl_err="$wl_err ${WAYLAND_PROTOCOLS_PKG_ERRORS}."
3459 AS_IF([test -n "$wl_err"], [
3460 AS_IF([test -n "$enable_wayland"], [
3461 AC_MSG_ERROR([$wl_err])
3463 AC_MSG_WARN([$wl_err])
3470 PKG_CHECK_MODULES([XKBCOMMON], [xkbcommon], [
3471 have_xkbcommon="yes"
3473 AC_MSG_WARN([${XKBCOMMON_PKG_ERRORS}. Hotkeys are disabled.])
3476 AM_CONDITIONAL([HAVE_WAYLAND], [test "${have_wayland}" = "yes"])
3477 AC_SUBST([WAYLAND_PROTOCOLS])
3478 AC_SUBST([WAYLAND_SCANNER])
3479 AM_CONDITIONAL([HAVE_XKBCOMMON], [test "${have_xkbcommon}" = "yes"])
3483 dnl SDL image decoder module
3485 AC_ARG_ENABLE([sdl-image],
3486 AS_HELP_STRING([--enable-sdl-image], [SDL image support (default enabled)]))
3487 AS_IF([test "${enable_sdl_image}" != "no"],[
3488 PKG_CHECK_MODULES(SDL_IMAGE, [SDL_image >= 1.2.10], [
3489 VLC_ADD_PLUGIN([sdl_image])
3491 AC_MSG_WARN([${SDL_IMAGE_PKG_ERRORS}. You should install it alongside your SDL package.])
3498 AC_ARG_ENABLE([freetype],
3499 AS_HELP_STRING([--enable-freetype], [freetype support (default auto)]))
3500 AC_ARG_ENABLE([fribidi],
3501 AS_HELP_STRING([--enable-fribidi], [fribidi support (default auto)]))
3502 AC_ARG_ENABLE([harfbuzz],
3503 AS_HELP_STRING([--enable-harfbuzz], [harfbuzz support (default auto)]))
3504 AC_ARG_ENABLE([fontconfig],
3505 AS_HELP_STRING([--enable-fontconfig], [fontconfig support (default auto)]))
3507 AC_ARG_WITH([default-font],
3508 AS_HELP_STRING([--with-default-font=PATH],
3509 [Path to the default font]),
3510 [AC_DEFINE_UNQUOTED([DEFAULT_FONT_FILE],
3511 "$withval", [Default font])])
3512 AC_ARG_WITH([default-monospace-font],
3513 AS_HELP_STRING([--with-default-monospace-font=PATH],
3514 [Path to the default font]),
3515 [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FONT_FILE],
3516 "$withval", [Default monospace font])])
3518 AC_ARG_WITH([default-font-family],
3519 AS_HELP_STRING([--with-default-font-family=NAME],
3520 [Name of the default font family]),
3521 [AC_DEFINE_UNQUOTED([DEFAULT_FAMILY],
3522 "$withval", [Default font family])])
3523 AC_ARG_WITH([default-monospace-font-family],
3524 AS_HELP_STRING([--with-default-monospace-font-family=NAME],
3525 [Name of the default font family]),
3526 [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FAMILY],
3527 "$withval", [Default monospace font family])])
3530 have_fontconfig="no"
3534 if test "${enable_freetype}" != "no"; then
3535 PKG_CHECK_MODULES(FREETYPE, freetype2, [
3537 VLC_ADD_CPPFLAGS([skins2],[${FREETYPE_CFLAGS}])
3538 VLC_ADD_LIBS([skins2],[${FREETYPE_LIBS}])
3540 dnl fontconfig support
3541 AS_IF([test "${enable_fontconfig}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "darwin"], [
3542 PKG_CHECK_MODULES(FONTCONFIG, [fontconfig >= 2.11], [
3543 have_fontconfig="yes"
3545 AC_MSG_WARN([${FONTCONFIG_PKG_ERRORS}. Styles will be disabled in FreeType.])
3550 if test "${enable_fribidi}" != "no"; then
3551 PKG_CHECK_MODULES(FRIBIDI, fribidi, [
3553 VLC_ADD_CPPFLAGS([skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
3554 VLC_ADD_LIBS([skins2], [${FRIBIDI_LIBS}])
3555 ],[AC_MSG_WARN([${FRIBIDI_PKG_ERRORS}. Bidirectional text and complex scripts (Arabic, Farsi, Thai...) will be disabled in FreeType.])])
3558 dnl harfbuzz support
3559 if test "${have_fribidi}" != "no"; then
3560 if test "${enable_harfbuzz}" != "no"; then
3561 PKG_CHECK_MODULES(HARFBUZZ, harfbuzz, [
3563 VLC_ADD_CPPFLAGS([skins2], [${HARFBUZZ_CFLAGS} -DHAVE_HARFBUZZ])
3564 VLC_ADD_LIBS([skins2], [${HARFBUZZ_LIBS}])
3565 ],[AC_MSG_WARN([${HARFBUZZ_PKG_ERRORS}. Support for complex scripts (Arabic, Farsi, Thai...) will be disabled in FreeType.])])
3569 AS_IF([test -n "${enable_freetype}"],[
3570 AC_MSG_ERROR([${FREETYPE_PKG_ERRORS}. Install FreeType2 development or configure with --disable-freetype.])
3575 AM_CONDITIONAL([HAVE_FREETYPE], [test "${have_freetype}" = "yes"])
3576 AM_CONDITIONAL([HAVE_FONTCONFIG], [test "${have_fontconfig}" = "yes"])
3577 AM_CONDITIONAL([HAVE_FRIBIDI], [test "${have_fribidi}" = "yes"])
3578 AM_CONDITIONAL([HAVE_HARFBUZZ], [test "${have_harfbuzz}" = "yes"])
3581 dnl libass subtitle rendering module
3583 AC_ARG_ENABLE([libass],
3584 AS_HELP_STRING([--enable-libass], [Subtitle support using libass (default enabled)]))
3585 AS_IF( [test "${enable_libass}" != "no"], [
3586 PKG_CHECK_MODULES(LIBASS, [libass >= 0.9.8],
3588 VLC_ADD_PLUGIN([libass])
3590 if test "${have_fontconfig}" != "no"; then
3591 VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
3592 VLC_ADD_LIBS([libass],[${FONTCONFIG_LIBS}])
3595 AC_MSG_WARN([${LIBASS_PKG_ERRORS}.])
3600 dnl SAPI (text to Speech renderer for Windows)
3603 AC_CHECK_TYPES([ISpObjectToken],[
3605 ],[AC_MSG_WARN([sapi.h not found. Text to Speech renderer for Windows disabled])],
3606 [#include <windows.h>
3608 #include <sphelper.h>])
3609 AM_CONDITIONAL([HAVE_SAPI], [test "${have_sapi}" = "yes"])
3613 dnl SVG module (text rendering and image decoding)
3615 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3616 PKG_ENABLE_MODULES_VLC([SVGDEC], [], [librsvg-2.0 >= 2.9.0 cairo >= 1.13.1], [SVG image decoder library],[auto])
3619 dnl Windows DirectX module
3622 AC_ARG_ENABLE([directx],
3623 AS_HELP_STRING([--enable-directx],
3624 [Microsoft DirectX support (default enabled on Windows)]),, [
3625 AS_IF([test "${SYS}" = "mingw32"], [
3626 enable_directx="yes"
3631 AS_IF([test "${enable_directx}" != "no"], [
3633 AC_CHECK_HEADERS([GL/glew.h], [
3634 AC_CHECK_HEADERS([GL/wglew.h], [
3635 VLC_ADD_PLUGIN([glwin32 wgl])
3637 #include <windows.h>
3638 #include <GL/glew.h>
3640 #include <windows.h>
3644 AC_CHECK_HEADERS([d3d11.h], [
3645 VLC_ADD_PLUGIN([direct3d11 direct3d11_filters])
3649 AC_CHECK_HEADERS([d3d9.h], [
3650 VLC_ADD_PLUGIN([direct3d9])
3651 AC_CHECK_HEADERS([d3dx9effect.h])
3653 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
3654 [[#define COBJMACROS
3656 #include <dxva2api.h>
3657 #ifndef IDirectXVideoProcessorService_GetVideoProcessorDeviceGuids
3658 # error dxva2 too old
3662 VLC_ADD_PLUGIN([direct3d9_filters])
3664 [AC_MSG_WARN([Could not find required IDirectXVideoDecoder in dxva2api.h])])
3670 dnl Linux framebuffer module
3672 AC_CHECK_HEADER([linux/fb.h], [
3673 VLC_ADD_PLUGIN([fb])
3677 dnl Linux kernel mode setting module
3679 PKG_ENABLE_MODULES_VLC([KMS], [], [libdrm >= 2.4.83], [Linux kernel mode setting output], [auto])
3684 PKG_ENABLE_MODULES_VLC([CACA], [], [caca >= 0.99.beta14], [libcaca output],[auto])
3689 AC_ARG_ENABLE([kva],
3690 AS_HELP_STRING([--enable-kva],
3691 [support the K Video Accelerator KVA (default enabled on OS/2)]),, [
3692 AS_IF([test "$SYS" = "os2"], [
3698 AS_IF([test "$enable_kva" != "no"], [
3699 AC_CHECK_HEADERS([kva.h], [
3701 AC_CHECK_LIB([kva], [main], [
3706 AC_SUBST([KVA_LIBS])
3707 AM_CONDITIONAL([HAVE_KVA], [test "${have_kva}" = "yes"])
3712 AC_ARG_ENABLE([mmal],
3713 AS_HELP_STRING([--enable-mmal],
3714 [Multi-Media Abstraction Layer (MMAL) hardware plugin (default enable)]))
3715 if test "${enable_mmal}" != "no"; then
3717 LDFLAGS="${LDFLAGS} -L/opt/vc/lib -lvchostif"
3718 CPPFLAGS="${CPPFLAGS} -isystem /opt/vc/include -isystem /opt/vc/include/interface/vcos/pthreads -isystem /opt/vc/include/interface/vmcs_host/linux"
3719 AC_CHECK_HEADERS([interface/mmal/mmal.h],
3720 [ AC_CHECK_LIB([bcm_host], [vc_tv_unregister_callback_full], [
3722 VLC_ADD_PLUGIN([mmal])
3723 VLC_ADD_LDFLAGS([mmal],[ -L/opt/vc/lib ])
3724 VLC_ADD_CFLAGS([mmal],[ -isystem /opt/vc/include -isystem /opt/vc/include/interface/vcos/pthreads -isystem /opt/vc/include/interface/vmcs_host/linux ])
3725 VLC_ADD_LIBS([mmal],[ -lbcm_host -lmmal -lmmal_core -lmmal_components -lmmal_util -lvchostif -lvcsm -lvchiq_arm ]) ], [
3726 AS_IF([test "${enable_mmal}" = "yes"],
3727 [ AC_MSG_ERROR([Cannot find bcm library...]) ],
3728 [ AC_MSG_WARN([Cannot find bcm library...]) ])
3731 ] , [ AS_IF([test "${enable_mmal}" = "yes"],
3732 [ AC_MSG_ERROR([Cannot find development headers for mmal...]) ],
3733 [ AC_MSG_WARN([Cannot find development headers for mmal...]) ]) ])
3736 AM_CONDITIONAL([HAVE_MMAL], [test "${have_mmal}" = "yes"])
3742 EXTEND_HELP_STRING([Audio plugins:])
3745 dnl Pulseaudio module
3747 AC_ARG_ENABLE([pulse],
3748 AS_HELP_STRING([--enable-pulse],
3749 [use the PulseAudio client library (default auto)]))
3751 AS_IF([test "${enable_pulse}" != "no"], [
3752 PKG_CHECK_MODULES([PULSE], [libpulse >= 1.0], [
3755 AS_IF([test "x${enable_pulse}" != "x"], [
3756 AC_MSG_ERROR([$PULSE_PKG_ERRORS. PulseAudio 1.0 or later required.])
3760 AM_CONDITIONAL([HAVE_PULSE], [test "${have_pulse}" = "yes"])
3765 AC_ARG_ENABLE([alsa],
3766 AS_HELP_STRING([--enable-alsa],
3767 [support the Advanced Linux Sound Architecture (default auto)]),, [
3768 AS_IF([test "$SYS" = "linux" -a "${have_pulse}" = "no"], [
3773 AS_IF([test "${enable_alsa}" != "no"], [
3774 PKG_CHECK_MODULES([ALSA], [alsa >= 1.0.24], [
3777 AS_IF([test "x${enable_alsa}" != "x"], [
3778 AC_MSG_ERROR([$ALSA_PKG_ERRORS. alsa-lib 1.0.24 or later required. Pass --disable-alsa to ignore this error.])
3782 AM_CONDITIONAL([HAVE_ALSA], [test "${have_alsa}" = "yes"])
3785 dnl Open Sound System module
3787 AC_ARG_ENABLE([oss],
3788 AS_HELP_STRING([--enable-oss],
3789 [support the Open Sound System OSS (default enabled on FreeBSD/NetBSD/DragonFlyBSD)]),, [
3790 AS_IF([test "$SYS" = "mingw32" -o "$SYS" = "linux" -o "$SYS" = "openbsd"], [
3796 AS_IF([test "$enable_oss" != "no"], [
3797 AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
3799 AC_CHECK_LIB([ossaudio], [main], [
3800 OSS_LIBS="-lossaudio"
3804 AC_SUBST([OSS_LIBS])
3805 AM_CONDITIONAL([HAVE_OSS], [test "${have_oss}" = "yes"])
3808 dnl OpenBSD sndio module
3810 AC_ARG_ENABLE([sndio],
3811 AS_HELP_STRING([--disable-sndio],
3812 [support the OpenBSD sndio (default auto)]),, [
3813 AS_IF([test "$SYS" = "openbsd"], [
3818 AS_IF([test "$enable_sndio" != "no"], [
3819 AC_CHECK_HEADER([sndio.h], [
3823 AM_CONDITIONAL([HAVE_SNDIO], [test "${have_sndio}" = "yes"])
3826 dnl Windows Audio Session plugin
3828 AC_ARG_ENABLE([wasapi],
3829 AS_HELP_STRING([--enable-wasapi],
3830 [use the Windows Audio Session API (default auto)])
3833 AS_IF([test "$enable_wasapi" != "no"], [
3834 AC_CHECK_HEADER([audioclient.h], [
3837 AS_IF([test "x${enable_wasapi}" != "x"], [
3838 AC_MSG_ERROR([Windows Audio Session API not found.])
3842 AM_CONDITIONAL([HAVE_WASAPI], [test "${have_wasapi}" = "yes"])
3847 AC_ARG_ENABLE([jack],
3848 AS_HELP_STRING([--disable-jack],
3849 [do not use jack (default auto)]))
3851 AS_IF([test "${enable_jack}" != "no"], [
3852 PKG_CHECK_MODULES(JACK, jack >= 1.9.7,
3855 AC_MSG_WARN([${JACK_PKG_ERRORS}, trying jack1 instead])
3857 PKG_CHECK_MODULES(JACK, jack >= 0.120.1 jack < 1.0,
3860 AS_IF([test -n "${enable_jack}"],
3861 [AC_MSG_ERROR([${JACK_PKG_ERRORS}.])],
3862 [AC_MSG_WARN([${JACK_PKG_ERRORS}.])])
3866 AM_CONDITIONAL([HAVE_JACK], [test "${have_jack}" != "no"])
3869 dnl OpenSLES Android
3871 AC_ARG_ENABLE([opensles],
3872 AS_HELP_STRING([--enable-opensles], [Android OpenSL ES audio module (default disabled)]))
3873 if test "${HAVE_ANDROID}" = "1"; then
3874 if test "${enable_opensles}" = "yes"; then
3875 AC_CHECK_HEADERS([SLES/OpenSLES.h],
3876 [ VLC_ADD_PLUGIN([opensles_android]) ],
3877 [ AC_MSG_ERROR([cannot find OpenSLES headers])] )
3882 dnl libsamplerate plugin
3884 PKG_ENABLE_MODULES_VLC([SAMPLERATE], [], [samplerate], [Resampler with libsamplerate], [auto])
3889 PKG_ENABLE_MODULES_VLC([SOXR], [], [soxr >= 0.1.2], [SoX Resampler library], [auto])
3894 AC_ARG_ENABLE([kai],
3895 AS_HELP_STRING([--enable-kai],
3896 [support the K Audio Interface KAI (default enabled on OS/2)]),, [
3897 AS_IF([test "$SYS" = "os2"], [
3903 AS_IF([test "$enable_kai" != "no"], [
3904 AC_CHECK_HEADERS([kai.h], [
3906 AC_CHECK_LIB([kai], [main], [
3911 AC_SUBST([KAI_LIBS])
3912 AM_CONDITIONAL([HAVE_KAI], [test "${have_kai}" = "yes"])
3915 dnl chromaprint audio track fingerprinter
3917 PKG_ENABLE_MODULES_VLC([CHROMAPRINT], [stream_out_chromaprint], [libchromaprint >= 0.6.0], [Chromaprint audio fingeprinter], [auto])
3920 dnl Chromecast streaming support
3922 m4_pushdef([protobuf_lite_version], 2.5.0)
3923 AC_ARG_VAR(PROTOC, [protobuf compiler])
3924 AC_CHECK_PROGS(PROTOC, protoc, no)
3925 PKG_WITH_MODULES([CHROMECAST],[protobuf-lite >= protobuf_lite_version], [
3926 AS_IF([test "x${PROTOC}" != "xno"], [
3927 build_chromecast="yes"
3929 AC_MSG_ERROR(protoc compiler needed for [chromecast] was not found)
3932 AS_IF([test "${enable_chromecast}" = "yes"],
3933 AC_MSG_ERROR(Library [protobuf-lite >= protobuf_lite_version] needed for [chromecast] was not found),
3934 AC_MSG_WARN(Library [protobuf-lite >= protobuf_lite_version] needed for [chromecast] was not found)
3936 enable_chromecast="no"
3937 ], [(Chromecast streaming support)], [auto])
3938 AM_CONDITIONAL([BUILD_CHROMECAST], [test "${build_chromecast}" = "yes"])
3939 m4_popdef([protobuf_lite_version])
3942 dnl Interface plugins
3945 EXTEND_HELP_STRING([Interface plugins:])
3951 AS_HELP_STRING([--disable-qt], [Qt UI support (default enabled)]),, [
3952 AS_IF([test "${enable_vlc}" != "no"], [enable_qt="yes"])
3953 AS_IF([test "${SYS}" = "darwin"], [
3958 AS_IF([test "${enable_qt}" != "no"], [
3959 PKG_CHECK_MODULES([QT], [Qt5Core >= 5.11.0 Qt5Widgets Qt5Gui Qt5Quick Qt5QuickWidgets Qt5QuickControls2 Qt5Svg], [
3960 PKG_CHECK_MODULES([QT5_X11], [Qt5X11Extras], [
3963 AC_MSG_WARN([Not building Qt Interface with X11 helpers.])
3965 QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix Qt5Core)"
3966 QT_HOST_PATH="$(eval $PKG_CONFIG --variable=host_bins Qt5Core)"
3967 QT_VERSION="$(eval $PKG_CONFIG --modversion Qt5Gui)"
3968 AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3969 AC_PATH_PROGS(RCC, [rcc-qt5 rcc], rcc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3970 AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3971 AC_PATH_PROGS(QMLCACHE, [qmlcachegen-qt5 qmlcachegen], no, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3972 AS_IF([test "x${QMLCACHE}" = "xno"], [
3973 AC_MSG_WARN([qmlcachegen not found])
3976 AS_IF([test -n "${enable_qt}"],[
3977 AC_MSG_ERROR([${QT_PKG_ERRORS}. If you want to build VLC without GUI, pass --disable-qt.])
3979 AC_MSG_WARN([${QT_PKG_ERRORS}.])
3985 AC_ARG_ENABLE([qt-qml-cache],
3986 AS_HELP_STRING([--enable-qt-qml-cache],
3987 [enable qml cache generation]))
3988 AM_CONDITIONAL([HAVE_QMLCACHE], [test "${enable_qt_qml_cache}" = "yes" && test "x$QMLCACHE" != "xno"])
3990 AC_ARG_ENABLE([qt-qml-debug],
3991 AS_HELP_STRING([--enable-qt-qml-debug], [enable qml debuger]))
3992 AM_CONDITIONAL(QT_QML_DEBUG, [test "${enable_qt_qml_debug}" = "yes"])
3994 AS_IF([test "${enable_qt}" != "no"], [
3995 ALIASES="${ALIASES} qvlc"
3997 AC_SUBST([QT_VERSION])
3998 AM_CONDITIONAL([ENABLE_QT], [test "$enable_qt" != "no"])
3999 AM_CONDITIONAL([HAVE_QT5_X11], [test "${have_qt5_x11}" = "yes"])
4002 dnl detect kde4-config patch (used for kde solids).
4004 AC_ARG_VAR([KDE4_CONFIG], [kde4-config utility])
4005 AS_IF([test "x$KDE4_CONFIG" = "x"], [
4006 KDE4_CONFIG="kde4-config"
4010 dnl Simple test for skins2 dependency
4012 AS_IF([test "$enable_qt" = "no"], [
4013 AS_IF([test "${enable_skins2}" = "yes"], [
4014 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.])
4017 AC_MSG_WARN([The skins2 module depends on the Qt interface, Qt is not built so skins2 is disabled.])
4024 AC_ARG_ENABLE([skins2],
4025 AS_HELP_STRING([--enable-skins2], [skins interface module (default auto)]))
4026 AS_IF([test "${enable_skins2}" != "no"], [
4027 have_skins_deps="yes"
4030 AS_IF([test "${SYS}" = "mingw32"], [
4031 VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -DWIN32_SKINS])
4032 VLC_ADD_LIBS([skins2],[-lgdi32 -lole32 -luuid -lmsimg32])
4034 ], [test "${SYS}" = "os2"], [
4035 VLC_ADD_CPPFLAGS([skins2],[ -DOS2_SKINS])
4038 PKG_CHECK_MODULES([XPM], [xpm],, [have_skins_deps="no"])
4039 PKG_CHECK_MODULES([XINERAMA], [xinerama],, [have_skins_deps="no"])
4040 PKG_CHECK_MODULES([XCURSOR], [xcursor],, [have_skins_deps="no"])
4041 PKG_CHECK_MODULES([XEXT], [xext],, [have_skins_deps="no"])
4042 VLC_ADD_CPPFLAGS([skins2],[${X_CFLAGS} ${XEXT_CFLAGS} ${XPM_CFLAGS} -DX11_SKINS])
4043 VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} ${XEXT_LIBS} ${XPM_LIBS} ${XINERAMA_LIBS} ${XCURSOR_LIBS} -lX11])
4046 dnl we need freetype
4047 AS_IF([test "${have_freetype}" != "yes"], [
4048 have_skins_deps="no"
4051 AS_IF([test "${have_skins_deps}" = "no"], [
4052 AS_IF([test "x${enable_skins2}" = "x"], [
4053 AC_MSG_WARN([Skins2 interface disabled due to missing dependencies.])
4055 AC_MSG_ERROR([Skins2 interface requires FreeType, libxcursor, libxpm, libxext and libxinerama])
4059 ALIASES="${ALIASES} svlc"
4063 AM_CONDITIONAL([BUILD_SKINS], [test "${enable_skins2}" = "yes"])
4065 AC_ARG_ENABLE([libtar],
4066 AS_HELP_STRING([--enable-libtar], [libtar support for skins2 (default auto)]))
4067 AS_IF([test "${enable_skins2}" = "yes" && test "${enable_libtar}" != "no"], [
4068 AC_CHECK_HEADERS([libtar.h], [
4069 VLC_ADD_LIBS([skins2],[-ltar])
4074 dnl MacOS X gui module
4076 AC_ARG_ENABLE([macosx],
4077 AS_HELP_STRING([--enable-macosx], [Mac OS X gui support (default enabled on Mac OS X)]))
4078 if test "x${enable_macosx}" != "xno" -a "${SYS}" = "darwin"
4082 dnl If possible, use xcrun to find the right ibtool
4085 AC_PATH_PROG([XCRUN], [xcrun], [no])
4086 AS_IF([test ! "x${XCRUN}" = "xno"], [
4087 AC_MSG_CHECKING([for ibtool (using xcrun)])
4088 XIB="$(eval $XCRUN -f ibtool 2>/dev/null || echo no)"
4089 AC_MSG_RESULT([${XIB}])
4091 AC_MSG_WARN([Looking for tools without using xcrun])
4094 AS_IF([test "x${XIB}" = "xno"], [
4095 AC_PATH_PROG(XIB, [ibtool], [no])
4096 AS_IF([test "x${XIB}" = "xno"], [
4097 AC_MSG_ERROR([ibtool was not found, but is required for --enable-macosx])
4101 AM_CONDITIONAL([ENABLE_MACOSX_UI], [test "$enable_macosx" != "no" -a "${SYS}" = "darwin"])
4104 dnl MacOS X sparkle update support
4106 AC_ARG_ENABLE([sparkle],
4107 AS_HELP_STRING([--enable-sparkle], [Sparkle update support for OS X (default enabled on Mac OS X)]))
4108 if test "x${enable_sparkle}" != "xno" -a "${HAVE_OSX}" = "1"
4110 if test ! -d ${CONTRIB_DIR}/Sparkle.framework -a ! -d ${CONTRIB_DIR}/Frameworks/Sparkle.framework
4112 AC_MSG_ERROR([Sparkle framework is required and was not found in ${CONTRIB_DIR}])
4115 AC_DEFINE([HAVE_SPARKLE], [1], [Define to 1 if sparkle is enabled.])
4117 AM_CONDITIONAL([HAVE_SPARKLE], [test "$enable_sparkle" != "no"])
4120 dnl MacOS X breakpad creash reporter support
4122 AC_ARG_WITH([breakpad],
4123 AS_HELP_STRING([--with-breakpad=URL], [Enable Breakpad reporter using given URL]), [], [with_breakpad=no])
4125 AS_IF([test "$with_breakpad" != "no"], [
4127 AS_IF([test "$with_breakpad" = "yes"], [
4128 AC_MSG_ERROR([You need to supply the CrashDragon Server URL as value for --with-breakpad])
4131 AS_IF([test "$HAVE_OSX" = "1"], [
4132 AC_MSG_CHECKING([for Breakpad framework])
4133 AS_IF([test ! -d ${CONTRIB_DIR}/Breakpad.framework -a \
4134 ! -d ${CONTRIB_DIR}/Frameworks/Breakpad.framework], [
4137 AC_MSG_ERROR([Breakpad framework is required and was not found in ${CONTRIB_DIR}])
4139 AC_MSG_RESULT([yes])
4142 PKG_CHECK_MODULES([BREAKPAD], [breakpad-client], [
4143 LDFLAGS="${LDFLAGS} -Wl,--build-id"
4145 AC_MSG_ERROR(["breakpad not found"])
4150 AM_CONDITIONAL([HAVE_BREAKPAD], [test "$with_breakpad" != "no"])
4151 AS_IF([test "$with_breakpad" != "no"], [
4152 AC_SUBST([BREAKPAD_URL], ["${with_breakpad}"])
4156 dnl Minimal Mac OS X module
4158 AC_ARG_ENABLE([minimal-macosx],
4159 AS_HELP_STRING([--enable-minimal-macosx], [Minimal Mac OS X support (default disabled)]))
4160 if test "${enable_minimal_macosx}" = "yes" -a "${SYS}" = "darwin"
4162 VLC_ADD_PLUGIN([minimal_macosx])
4166 dnl Mac OS X fancy dmg build tool
4168 if test "${HAVE_OSX}" = "1"
4170 AC_PATH_PROG(DMGBUILD, dmgbuild, no)
4171 AS_IF([test "x${DMGBUILD}" = "xno"], [
4172 AC_MSG_WARN([dmgbuild not found -- unable to build fancy DMGs])
4175 AM_CONDITIONAL([HAVE_DMGBUILD], [test "x$DMGBUILD" != "xno" -a "${HAVE_OSX}" = "1"])
4178 dnl VideoToolbox plugins
4179 AC_CHECK_HEADERS([VideoToolbox/VideoToolbox.h], [
4180 VLC_ADD_PLUGIN([videotoolbox])
4181 VLC_ADD_PLUGIN([cvpx])
4185 dnl AudioToolbox MIDI plugin
4186 AC_CHECK_HEADERS([AudioToolbox/AudioToolbox.h], [
4187 VLC_ADD_PLUGIN([audiotoolboxmidi])
4193 AC_ARG_ENABLE([ncurses],
4194 AS_HELP_STRING([--disable-ncurses],[ncurses text-based interface (default auto)]))
4196 AS_IF([test "${enable_ncurses}" != "no"] ,[
4197 PKG_CHECK_MODULES([NCURSES], [ncursesw], [
4199 ALIASES="${ALIASES} nvlc"
4201 AS_IF([test -n "${enable_ncurses}"], [
4202 AC_MSG_ERROR([${NCURSES_PKG_ERRORS}.])
4206 AM_CONDITIONAL([HAVE_NCURSES], [test "${have_ncurses}" = "yes"])
4211 AC_ARG_ENABLE([lirc],
4212 AS_HELP_STRING([--enable-lirc], [lirc support (default disabled)]))
4214 AS_IF([test "${enable_lirc}" = "yes"], [
4215 AC_CHECK_HEADER(lirc/lirc_client.h, [
4216 AC_CHECK_LIB([lirc_client], [lirc_init], [
4221 AM_CONDITIONAL([HAVE_LIRC], [test "${have_lirc}" = "yes"])
4226 PKG_CHECK_MODULES([BITSTREAM], [bitstream > 1.4],[have_bitstream="yes"], [have_bitstream="no"])
4227 AM_CONDITIONAL([HAVE_BITSTREAM], [test "${have_bitstream}" = "yes"])
4232 PKG_ENABLE_MODULES_VLC([SRT], [access_srt access_output_srt], [srt >= 1.3.0], [SRT input/output plugin], [auto], [], [], [-DENABLE_SRT])
4234 EXTEND_HELP_STRING([Visualisations and Video filter plugins:])
4236 dnl goom visualization plugin
4238 PKG_ENABLE_MODULES_VLC([GOOM], [], [libgoom2], [goom visualization plugin], [auto])
4241 dnl libprojectM visualization plugin
4243 AC_ARG_ENABLE([projectm],
4244 AS_HELP_STRING([--enable-projectm], [projectM visualization plugin (default enabled)]))
4245 AS_IF([test "${enable_projectm}" != "no"],
4247 PKG_CHECK_MODULES(PROJECTM, libprojectM,
4249 VLC_ADD_PLUGIN([projectm])
4250 PKG_CHECK_EXISTS([libprojectM >= 2.0.0],
4251 [ AC_DEFINE([HAVE_PROJECTM2], 1, [Define to 1 if using libprojectM 2.x]) ],
4252 [ AC_MSG_WARN( [Using libprojectM version 1] )
4255 AC_MSG_WARN([${PROJECTM_PKG_ERRORS}.])
4260 dnl Vovoid VSXu visualization plugin
4262 AC_ARG_ENABLE([vsxu],
4263 AS_HELP_STRING([--enable-vsxu], [Vovoid VSXu visualization plugin (default auto)]))
4264 AS_IF([test "${enable_vsxu}" != "no"],
4266 PKG_CHECK_MODULES(VSXU, libvsxu,
4268 VLC_ADD_PLUGIN([vsxu])
4270 AC_MSG_WARN([${VSXU_PKG_ERRORS}.])
4274 EXTEND_HELP_STRING([Service Discovery plugins:])
4276 dnl Avahi-Zeroconf services discovery
4277 PKG_ENABLE_MODULES_VLC([AVAHI], [], [avahi-client >= 0.6], [Zeroconf services discovery], [auto])
4280 dnl libudev services discovery
4281 PKG_ENABLE_MODULES_VLC([UDEV], [], [libudev >= 142], [Linux udev services discovery], [auto])
4284 dnl MTP devices services discovery
4285 PKG_ENABLE_MODULES_VLC([MTP], [mtp access_mtp], [libmtp >= 1.0.0], [MTP devices support], [auto])
4288 dnl UPnP Plugin (Intel SDK)
4290 PKG_ENABLE_MODULES_VLC([UPNP], [upnp], [libupnp], [Intel UPNP SDK],[auto])
4293 dnl mDNS using libmicrodns
4295 PKG_ENABLE_MODULES_VLC([MICRODNS], [], [microdns >= 0.1.2], [mDNS services discovery], [auto])
4298 EXTEND_HELP_STRING([Misc options:])
4303 PKG_ENABLE_MODULES_VLC([LIBXML2], [xml], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
4309 AC_ARG_ENABLE([libgcrypt],
4310 AS_HELP_STRING([--disable-libgcrypt], [gcrypt support (default enabled)]))
4311 AC_ARG_VAR([GCRYPT_CFLAGS], [C compiler flags for gcrypt])
4312 AC_ARG_VAR([GCRYPT_LIBS], [linker flags flags for gcrypt])
4314 # require libgcrypt >= 1.6.0
4315 AS_IF([test "${enable_libgcrypt}" != "no"], [
4316 AC_CACHE_CHECK([for gcrypt 1.6.0 or later], [ac_cv_lib_gcrypt], [
4318 CFLAGS="${CFLAGS} ${GCRYPT_CFLAGS}"
4319 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
4320 [#include <gcrypt.h>
4321 #if GCRYPT_VERSION_NUMBER < 0x010600
4324 ac_cv_lib_gcrypt=yes
4331 AS_IF([test "${ac_cv_lib_gcrypt}" = "yes"], [
4332 AC_DEFINE([HAVE_GCRYPT], 1, [Defined if having gcrypt])
4334 AS_IF([test "${enable_libgcrypt}" = "yes"], [
4335 AC_MSG_ERROR([libgcrypt version 1.6.0 or higher not found. Install libgcrypt or pass --disable-libgcrypt.])
4340 AS_IF([test -z "$GCRYPT_LIBS"], [
4341 GCRYPT_LIBS="-lgcrypt -lgpg-error"
4344 AC_SUBST([GCRYPT_CFLAGS])
4345 AC_SUBST([GCRYPT_LIBS])
4346 AM_CONDITIONAL([HAVE_GCRYPT], [test "${ac_cv_lib_gcrypt}" = "yes"])
4351 AC_ARG_ENABLE([gnutls],
4352 AS_HELP_STRING([--enable-gnutls], [GNU TLS TLS/SSL support (default enabled)]))
4353 AS_IF([test "${enable_gnutls}" != "no"], [
4354 PKG_CHECK_MODULES(GNUTLS, [gnutls >= 3.5.0], [
4355 VLC_ADD_PLUGIN([gnutls])
4357 AS_IF([test -n "${enable_gnutls}"], [
4358 AC_MSG_ERROR([${GNUTLS_PKG_ERRORS}.)])
4367 AC_ARG_ENABLE([taglib],
4368 AS_HELP_STRING([--disable-taglib],
4369 [do not use TagLib (default enabled)]))
4370 AS_IF([test "${enable_taglib}" != "no"], [
4371 PKG_CHECK_MODULES(TAGLIB, taglib >= 1.11, [
4372 VLC_ADD_PLUGIN([taglib])
4374 AC_MSG_WARN([${TAGLIB_PKG_ERRORS}.])])
4380 PKG_ENABLE_MODULES_VLC([SECRET], [], [libsecret-1 >= 0.18], [use libsecret for keystore], [auto])
4385 AC_ARG_ENABLE([kwallet],
4386 AS_HELP_STRING([--enable-kwallet],
4387 [use kwallet (via D-Bus) for keystore (default enabled)]))
4388 AS_IF([test "${enable_kwallet}" != "no" -a "${have_dbus}" = "yes"], [
4389 VLC_ADD_PLUGIN([kwallet])
4393 dnl update checking system
4395 AC_ARG_ENABLE([update-check],
4396 AS_HELP_STRING([--enable-update-check], [update checking system (default disabled)]))
4397 if test "${enable_update_check}" = "yes"
4399 AS_IF([test "${ac_cv_lib_gcrypt}" != "yes"],[
4400 AC_MSG_ERROR([libgcrypt is required for update checking system]) ])
4402 AM_CONDITIONAL([UPDATE_CHECK], [test "${enable_update_check}" = "yes"])
4405 dnl OS X notification plugin
4407 AC_ARG_ENABLE([osx_notifications],
4408 AS_HELP_STRING([--enable-osx-notifications],
4409 [macOS notification plugin (default disabled)]),,
4410 [enable_osx_notifications=no])
4411 AS_IF([test "${enable_osx_notifications}" != "no"], [
4412 VLC_ADD_PLUGIN([osx_notifications])
4416 dnl Libnotify notification plugin
4418 PKG_ENABLE_MODULES_VLC([NOTIFY], [], [libnotify gtk+-3.0], [libnotify notification], [auto])
4420 PKG_ENABLE_MODULES_VLC([MEDIALIBRARY], [medialibrary], [medialibrary >= 0.7.1], (medialibrary support), [auto])
4423 dnl Endianness check
4426 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
4427 DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
4431 AC_SUBST([DEFS_BIGENDIAN])
4434 dnl Where to install KDE solid .desktop
4436 AC_ARG_WITH(kde-solid,
4437 AS_HELP_STRING([--with-kde-solid=PATH],
4438 [KDE Solid actions directory (auto)]),, [
4440 if test "${SYS}" != "mingw32" -a "${SYS}" != "darwin" -a "${HAVE_ANDROID}" != "1" ; then
4441 with_kde_solid="yes"
4445 AS_IF([test "${with_kde_solid}" != "no"], [
4446 AS_IF([test "${with_kde_solid}" = "yes"], [
4447 kde4datadir="`${KDE4_CONFIG} --install data`"
4448 AS_IF([test "x$kde4datadir" = "x"], [kde4datadir='${datadir}/kde4/apps'])
4449 soliddatadir="${kde4datadir}/solid/actions"
4451 soliddatadir="${with_kde_solid}"
4454 AC_SUBST([soliddatadir])
4455 AM_CONDITIONAL([KDE_SOLID], [test "x${soliddatadir}" != "x"])
4458 dnl Find tools for win32 packaging
4460 AS_IF([test "${SYS}" = "mingw32"], [
4462 dnl Find makensis required to build the NSIS installer
4464 nsis_major_required="3"
4465 nsis_version_ok="no"
4466 AC_PATH_PROG([MAKENSIS], [makensis], [no])
4467 AS_IF([test "$MAKENSIS" != "no"], [
4469 AC_MSG_CHECKING([makensis version])
4470 nsis_version=$($MAKENSIS -VERSION)
4471 AC_MSG_RESULT([$nsis_version])
4472 nsis_version_major=$(echo "$nsis_version" | awk -F \. '{print $1}' | sed 's/v//')
4473 # Check if major version is a valid number
4474 AS_IF([test -n "$nsis_version_major" && \
4475 test "$nsis_version_major" -eq "$nsis_version_major" 2> /dev/null], [
4476 # Do the version check using major version
4477 AS_IF([test "$nsis_version_major" -lt "$nsis_major_required"], [
4478 AC_MSG_WARN([makensis too old, (needs ${nsis_major_required}.x, have ${nsis_version_major}.x)])
4480 nsis_version_ok="yes"
4483 AC_MSG_WARN([failed to check the makensis version])
4489 AC_PATH_PROG([SEVENZIP], [7z], [7z])
4491 AM_CONDITIONAL([HAVE_MAKENSIS], [test "x$MAKENSIS" != "xno" && test "$nsis_version_ok" = "yes"])
4494 dnl Check wether we have the PROCESS_MITIGATION_IMAGE_LOAD_POLICY
4495 dnl It should only be available when building for win10, but some SDKs define it unconditionnaly
4497 if test "${SYS}" = "mingw32"; then
4498 AC_CHECK_TYPES([PROCESS_MITIGATION_IMAGE_LOAD_POLICY],,,[#include <windows.h>])
4501 EXTEND_HELP_STRING([Components:])
4506 AC_ARG_ENABLE([vlc],
4507 AS_HELP_STRING([--enable-vlc], [build the VLC media player (default enabled)]))
4508 AM_CONDITIONAL([BUILD_VLC], [test "${enable_vlc}" != "no"])
4511 dnl Fuzzer (at the end not to mess dependencies FLAGS)
4513 AS_VAR_IF(with_libfuzzer, no, [], [
4514 LIBS="-lstdc++ ${LIBM}"
4515 AS_IF([test "${with_libfuzzer}" != "yes"], [
4516 LIBS="$LIBS -L${with_libfuzzer}"
4518 LIBS="$LIBS -lFuzzer"
4519 AX_CHECK_COMPILE_FLAG(-fsanitize-coverage=trace-pc-guard, [
4520 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc-guard])
4521 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc-guard], [CXXFLAGS])
4522 AX_APPEND_COMPILE_FLAGS([-fsanitize-coverage=trace-cmp])
4523 AX_APPEND_COMPILE_FLAGS([-fsanitize-coverage=trace-cmp], [CXXFLAGS])
4525 AX_CHECK_COMPILE_FLAG(-fsanitize-coverage=trace-pc, [
4526 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc])
4527 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc], [CXXFLAGS])
4529 AC_MSG_ERROR([Sanitizer coverage not supported by your compiler])
4535 dnl Stuff used by the program
4537 VERSION_MESSAGE="${VERSION} ${CODENAME}"
4538 COPYRIGHT_MESSAGE="Copyright © ${COPYRIGHT_YEARS} the VideoLAN team"
4539 AC_DEFINE_UNQUOTED([VERSION_MESSAGE], "${VERSION_MESSAGE}", [Simple version string])
4540 AC_DEFINE_UNQUOTED([COPYRIGHT_MESSAGE], "${COPYRIGHT_MESSAGE}", [Copyright string])
4541 AC_DEFINE_UNQUOTED([COPYRIGHT_YEARS], "${COPYRIGHT_YEARS}", [The copyright years])
4542 AC_DEFINE_UNQUOTED([CONFIGURE_LINE], "${CONFIGURE_LINE}", [The ./configure command line])
4543 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_MAJOR],${VERSION_MAJOR}, [version major number])
4544 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_MINOR],${VERSION_MINOR}, [version minor number])
4545 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_REVISION],${VERSION_REVISION}, [version revision number])
4546 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_EXTRA],${VERSION_EXTRA}, [version extra number])
4547 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_DEV],"${VERSION_DEV}", [version development string])
4548 AC_SUBST([COPYRIGHT_MESSAGE])
4549 AC_SUBST([VERSION_MESSAGE])
4550 AC_SUBST([VERSION_MAJOR])
4551 AC_SUBST([VERSION_MINOR])
4552 AC_SUBST([VERSION_REVISION])
4553 AC_SUBST([VERSION_EXTRA])
4554 AC_SUBST([COPYRIGHT_YEARS])
4555 AC_DEFINE_UNQUOTED([VLC_COMPILE_BY], "`whoami|sed -e 's/\\\/\\\\\\\/g'`", [user who ran configure])
4556 AC_DEFINE_UNQUOTED([VLC_COMPILE_HOST], "`hostname -f 2>/dev/null || hostname`", [host which ran configure])
4557 AC_DEFINE_UNQUOTED([VLC_COMPILER], "`$CC -v 2>&1 | tail -n 1 | sed -e 's/ *$//'`", [compiler])
4559 dnl Handle substvars that use $(top_srcdir)
4561 CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS}"
4564 dnl Configuration is finished
4574 AC_SUBST([WINE_SDK_PATH])
4576 AC_SUBST([AM_CPPFLAGS])
4577 AC_SUBST([MACOSX_DEPLOYMENT_TARGET])
4578 AC_SUBST([FILE_LIBVLCCORE_DLL])
4579 AC_SUBST([FILE_LIBVLC_DLL])
4593 modules/hw/mmal/Makefile
4594 share/vlc.appdata.xml.in
4597 AM_COND_IF([HAVE_WIN32], [
4599 extras/package/win32/NSIS/spad.nsi
4600 extras/package/win32/NSIS/vlc.win32.nsi
4601 extras/package/win32/msi/config.wxi
4605 AM_COND_IF([HAVE_DARWIN], [
4607 modules/gui/macosx/UI/InfoPlist.strings:modules/gui/macosx/Resources/InfoPlist.strings.in
4608 share/macosx/Info.plist:share/Info.plist.in
4612 dnl Generate makefiles
4615 dnl Do we have to use make or gmake ?
4616 if make --version 2>&1|grep -q GNU
4618 # GNU make, all seems good
4621 # Known GNU make alias (on BSD)
4624 dnl Shortcut to nice compile message
4625 if test -n $SHELL; then
4626 SHELL=${CONFIG_SHELL-/bin/sh}
4629 compile_top_srcdir=`sed -ne "s/^top_srcdir *= *//p" < Makefile`
4633 export PATH=\"$PATH\" LANG=C
4634 ($MAKE V=1 \$@ 2>&1 || touch .error\$\$)| $compile_top_srcdir/extras/buildsystem/make.pl
4635 test -f .error\$\$ && ERROR=1
4637 exit \$ERROR" >compile
4641 libvlc configuration
4642 --------------------
4643 version : ${VERSION}
4645 architecture : ${ARCH}
4646 optimizations : ${enable_optimizations}"
4647 if test "${enable_vlc}" != "no"; then
4648 echo "vlc aliases :${ALIASES}"
4650 echo "build vlc executable : no"
4653 To build vlc and its plugins, type \`$MAKE', or \`./compile' if you like nice colors."