1 dnl Autoconf settings for vlc
3 AC_COPYRIGHT([Copyright 1999-2019 VLC authors and VideoLAN])
5 AC_INIT([vlc], [4.0.0-dev])
15 CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
16 CODENAME="Otto Chriek"
17 COPYRIGHT_YEARS="1996-2019"
19 AC_CONFIG_SRCDIR([src/libvlc.c])
20 AC_CONFIG_AUX_DIR([autotools])
21 AC_CONFIG_MACRO_DIR([m4])
22 AC_CONFIG_LIBOBJ_DIR([compat])
25 AC_PRESERVE_HELP_ORDER
27 AM_INIT_AUTOMAKE([tar-ustar color-tests foreign])
28 AC_CONFIG_HEADERS([config.h])
30 AM_SILENT_RULES([yes])
31 AM_MAINTAINER_MODE([enable])
37 AC_USE_SYSTEM_EXTENSIONS
39 AH_VERBATIM([FORTIFY_SOURCE],
40 [/* Enable compile-time and run-time bounds-checking, and some warnings,
41 without upsetting glibc 2.15+ or toolchains predefining _FORTIFY_SOURCE */
42 #if !defined _FORTIFY_SOURCE && defined __OPTIMIZE__ && __OPTIMIZE__
43 # define _FORTIFY_SOURCE 2
45 AC_DEFINE([_FILE_OFFSET_BITS], 64, [Define to 64 for large files support.])
46 AC_DEFINE([__LIBVLC__],, [Define within the LibVLC source code tree.])
47 AC_DEFINE([WIN32_LEAN_AND_MEAN],, [Define to limit the scope of <windows.h>.])
59 AC_ARG_VAR([DESKTOP_FILE_VALIDATE], [Validator for desktop entry files])
60 AC_CHECK_PROGS([DESKTOP_FILE_VALIDATE], [${DESKTOP_FILE_VALIDATE} desktop-file-validate], :)
61 AC_ARG_VAR([BUILDCC], [Build system C11 or C99 compiler command])
62 AC_CHECK_PROGS([BUILDCC], [c11-gcc c11 c99-gcc c99], [false])
63 AS_IF([test "$BUILDCC" = "false"], [
64 AC_MSG_ERROR([Cannot find native C99 compiler: please define BUILDCC.])
67 dnl Check for compiler properties
71 AX_CXX_COMPILE_STDCXX_11([noext], [mandatory])
73 dnl Extend the --help string at the current spot.
74 AC_DEFUN([EXTEND_HELP_STRING], [m4_divert_once([HELP_ENABLE], [$1])])
76 dnl Allow binary package maintainer to pass a custom string to avoid
78 AC_ARG_WITH([binary-version],
79 AS_HELP_STRING([--with-binary-version=STRING],
80 [To avoid plugins cache problem between binary version]),[],[])
81 AS_IF([test -n "${with_binary_version}"],[
82 AC_DEFINE_UNQUOTED([DISTRO_VERSION],["${with_binary_version}"],
83 [Binary specific version])
86 dnl Prevent clang from accepting unknown flags with a mere warning
87 AX_APPEND_COMPILE_FLAGS([-Werror=unknown-warning-option -Werror=invalid-command-line-argument], [CFLAGS])
88 AX_APPEND_COMPILE_FLAGS([-Werror=unknown-warning-option -Werror=invalid-command-line-argument], [CXXFLAGS])
91 dnl Check the operating system
98 dnl Set x86 asm flags and defines
100 case "${host_cpu}" in
102 X86ASMFLAGS="-f elf32"
103 X86ASMDEFS="-DARCH_X86_32=1 -DARCH_X86_64=0"
106 X86ASMFLAGS="-f elf64"
107 X86ASMDEFS="-DARCH_X86_32=0 -DARCH_X86_64=1"
117 CFLAGS="${CFLAGS} -pthread"
121 CFLAGS="${CFLAGS} -pthread"
125 CFLAGS="${CFLAGS} -pthread"
126 CPPFLAGS="${CPPFLAGS} -I/usr/local/include"
127 LDFLAGS="${LDFLAGS} -L/usr/local/lib"
132 CPPFLAGS="${CPPFLAGS} -I/usr/local/include -I/usr/X11R6/include"
133 LDFLAGS="${LDFLAGS} -L/usr/local/lib -L/usr/X11R6/lib/"
143 dnl Force gcc "-arch" flag
145 case "${host_cpu}" in
147 ARCH_flag="-arch i386"
148 X86ASMFLAGS="-f macho32"
149 X86ASMDEFS="${X86ASMDEFS} -DPREFIX"
152 ARCH_flag="-arch ppc64"
155 ARCH_flag="-arch ppc"
158 ARCH_flag="-arch x86_64"
159 X86ASMFLAGS="-f macho64"
160 X86ASMDEFS="${X86ASMDEFS} -DPREFIX"
163 ac_cv_c_bigendian="no"
164 ac_cv_c_attribute_packed="no"
169 CFLAGS="${CFLAGS} -D_INTL_REDIRECT_MACROS -std=gnu11 ${ARCH_flag}"
170 CXX="${CXX} -stdlib=libc++ -std=c++11"
171 CXXFLAGS="${CXXFLAGS} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"
172 CPPFLAGS="${CPPFLAGS} ${ARCH_flag}"
173 OBJCFLAGS="${OBJCFLAGS} -D_INTL_REDIRECT_MACROS -std=gnu11 ${ARCH_flag} -Werror=partial-availability"
174 LDFLAGS="${LDFLAGS} -Wl,-headerpad_max_install_names ${ARCH_flag}"
175 VLC_ADD_LIBS([libvlc vlc],[-Wl,-undefined,dynamic_lookup,-framework,AppKit])
176 VLC_ADD_LIBS([libvlccore],[-Wl,-framework,CoreFoundation,-framework,CoreServices])
179 [#import <TargetConditionals.h>
187 [#import <TargetConditionals.h>
197 dnl Handle Mac OS X SDK flags
199 AC_ARG_WITH(macosx-sdk,
200 AS_HELP_STRING([--with-macosx-sdk=DIR],
201 [compile using the SDK in DIR]))
202 if test "${with_macosx_sdk}" != "" ; then
203 test ! -d "${with_macosx_sdk}" && AC_MSG_ERROR([SDK "${with_macosx_sdk}" not found])
204 CPP="${CPP} -isysroot ${with_macosx_sdk}"
205 CC="${CC} -isysroot ${with_macosx_sdk}"
206 CXX="${CXX} -isysroot ${with_macosx_sdk}"
207 OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
208 LD="${LD} -syslibroot ${with_macosx_sdk}"
210 AC_ARG_WITH(macosx-version-min,
211 AS_HELP_STRING([--with-macosx-version-min=VERSION],
212 [compile for Mac OS X VERSION and above]))
213 if test "${with_macosx_version_min}" != "" ; then
214 CPP="${CPP} -mmacosx-version-min=${with_macosx_version_min}"
215 CC="${CC} -mmacosx-version-min=${with_macosx_version_min}"
216 CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
217 OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
218 LD="${LD} -mmacosx_version_min=${with_macosx_version_min}"
221 *mingw32* | *cygwin* | *wince* | *mingwce*)
222 dnl Force libtool to not link to (shared) libgcc_s when detecting C++ dependencies
223 dnl When doing this test with -static-libgcc it will link on (static) libgcc_eh
224 CXXFLAGS="${CXXFLAGS} -static-libgcc"
225 AC_CHECK_TOOL(WINDRES, windres, :)
226 AC_CHECK_TOOL(OBJCOPY, objcopy, :)
227 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
228 [[#ifdef _WIN32_WINNT
229 # error _WIN32_WINNT already defined
233 AC_DEFINE([_WIN32_WINNT], 0x0601, [Define to '0x0601' for Windows 7 APIs.])
235 AC_DEFINE([_WIN32_IE], 0x0600, [Define to '0x0600' for IE 6.0 (and shell) APIs.])
236 AC_DEFINE([_UNICODE], [1], [Define to 1 for Unicode (Wide Chars) APIs.])
237 AC_DEFINE([UNICODE], [1], [Define to 1 for Unicode (Wide Chars) APIs.])
238 AC_DEFINE([_ISOC99_SOURCE], [1], [Extensions to ISO C89 from ISO C99.])
239 AC_DEFINE([_ISOC11_SOURCE], [1], [Extensions to ISO C99 from ISO C11.])
240 AC_DEFINE([_POSIX_SOURCE], [1], [IEEE Std 1003.1.])
241 AC_DEFINE([_POSIX_C_SOURCE], [200809L], [IEEE Std 1003.1.])
242 AC_DEFINE([_XOPEN_SOURCE], [700], [POSIX and XPG 7th edition])
243 AC_DEFINE([_XOPEN_SOURCE_EXTENDED], [1], [XPG things and X/Open Unix extensions.])
244 AC_DEFINE([_BSD_SOURCE], [1], [ISO C, POSIX, and 4.3BSD things.])
245 AC_DEFINE([_SVID_SOURCE], [1], [ISO C, POSIX, and SVID things.])
252 dnl Check if we are using the mno-cygwin mode in which case we are
253 dnl actually dealing with a mingw32 compiler.
258 SYS=mingw32, AC_MSG_ERROR([VLC requires -mno-cygwin]))
262 if test "${SYS}" = "mingw32"; then
264 LDFLAGS="${LDFLAGS} -Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase"
266 AC_CHECK_PROGS(U2D, [unix2dos todos], unix2dos)
267 ac_default_prefix="`pwd`/_win32"
268 DESTDIR="`pwd`/_win32/"
271 dnl NSIS/MSI Installer prefix and WIN64
273 case "${host_cpu}" in
274 amd64|x86_64|aarch64)
277 PROGRAMFILES="PROGRAMFILES64"
278 LDFLAGS="${LDFLAGS} -Wl,--high-entropy-va -Wl,--image-base,0x140000000"
279 X86ASMFLAGS="-f win64"
283 PROGRAMFILES="PROGRAMFILES"
284 X86ASMFLAGS="-f win32"
285 X86ASMDEFS="${X86ASMDEFS} -DPREFIX"
288 AC_SUBST([WINDOWS_ARCH])
289 AC_SUBST([PROGRAMFILES])
304 LDFLAGS="${LDFLAGS} -Zomf -Zbin-files -Zargs-wild -Zhigh-mem"
305 AC_LIBOBJ([freeaddrinfo])
306 AC_LIBOBJ([gai_strerror])
307 AC_CHECK_FUNCS([if_nametoindex])
311 AC_DEFINE([_XOPEN_SOURCE], [700], [POSIX and XPG 7th edition])
322 AC_ARG_ENABLE([winstore_app],
323 AS_HELP_STRING([--enable-winstore-app],
324 [Build targetted for Windows Store apps (default disabled)]))
327 AS_IF([test "${SYS}" = "mingw32"],[
329 AS_IF([test "${enable_winstore_app}" = "yes"], [
332 VLC_ADD_LIBS([libvlccore], [-lruntimeobject])
333 AC_LIBOBJ([gai_strerror])
337 AC_DEFINE_UNQUOTED(VLC_WINSTORE_APP, ${vlc_winstore_app}, [Define to 1 if you want to build for Windows Store apps])
339 AM_CONDITIONAL([HAVE_LINUX], [test "${SYS}" = "linux"])
340 AM_CONDITIONAL([HAVE_OS2], [test "${SYS}" = "os2"])
342 AM_CONDITIONAL([HAVE_DARWIN], [test "${SYS}" = "darwin"])
343 AM_CONDITIONAL([HAVE_IOS], [test "${HAVE_IOS}" = "1"])
344 AM_CONDITIONAL([HAVE_OSX], [test "${HAVE_OSX}" = "1"])
345 AM_CONDITIONAL([HAVE_TVOS], [test "${HAVE_TVOS}" = "1"])
347 AM_CONDITIONAL([HAVE_NACL], [test "${SYS}" = "nacl"])
348 AM_CONDITIONAL([HAVE_LIBANL], [test "${HAVE_LIBANL}" = "1"])
350 AM_CONDITIONAL([HAVE_WIN32], [test "${SYS}" = "mingw32"])
351 AM_CONDITIONAL([HAVE_WIN64], [test "${HAVE_WIN64}" = "1"]) dnl Only used for the packaging
352 AM_CONDITIONAL([HAVE_WINSTORE], [test "$vlc_winstore_app" = "1"])
353 AM_CONDITIONAL([HAVE_WIN32_DESKTOP], [test "${SYS}" = "mingw32" -a "$vlc_winstore_app" = "0"])
355 dnl Use nasm/yasm only on x86
356 AC_CHECK_PROGS(X86ASM, [nasm yasm])
357 AM_CONDITIONAL([HAVE_X86ASM], [test -n "${X86ASM}" && test -n "{X86ASMFLAGS}"])
358 AM_COND_IF([HAVE_X86ASM], [
359 AC_DEFINE([HAVE_X86ASM], [1], [Use external asm on x86.])
361 AC_SUBST([X86ASMFLAGS])
362 AC_SUBST([X86ASMDEFS])
365 dnl Sadly autoconf does not think about testing foo.exe when ask to test
366 dnl for program foo on win32
367 case "${build_os}" in
369 ac_executable_extensions=".exe"
378 AC_SUBST([BUILDEXEEXT])
380 dnl Android is linux, but a bit different
381 AS_IF([test "$SYS" = linux],[
382 AC_MSG_CHECKING([for an Android system])
383 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
384 [[#ifndef __ANDROID__
395 AM_CONDITIONAL([HAVE_ANDROID], [test "${HAVE_ANDROID}" = "1"])
397 dnl Tizen (minimum SDK version: 2.3)
398 AS_IF([test "$SYS" = linux],[
399 AC_MSG_CHECKING([for Tizen])
400 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
405 AC_DEFINE([HAVE_TIZEN_SDK], [1], [Define to 1 if vlc is built against Tizen SDK])
411 AM_CONDITIONAL([HAVE_TIZEN], [test "${HAVE_TIZEN}" = "1"])
414 dnl Check for the contrib directory
417 AS_HELP_STRING([--with-contrib[=DIR]],
418 [search for 3rd party libraries in DIR/include and DIR/lib])
420 AC_MSG_CHECKING([for 3rd party libraries path])
421 AS_IF([test -z "${with_contrib}" || test "${with_contrib}" = "yes"], [
422 CONTRIB_DIR="${srcdir}/contrib/${host}"
423 AS_IF([test ! -d "${CONTRIB_DIR}"], [
424 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
425 CONTRIB_DIR="${srcdir}/contrib/`$CC -dumpmachine`"
426 AS_IF([test ! -d "${CONTRIB_DIR}"], [
427 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
429 AC_MSG_RESULT([not found])
433 AS_IF([test "${with_contrib}" != "no"], [
434 CONTRIB_DIR="${with_contrib}"
437 AC_MSG_RESULT([disabled])
440 AS_IF([test -n "${CONTRIB_DIR}"], [
441 AS_IF([test -d "${CONTRIB_DIR}/lib"],[
442 CONTRIB_DIR=`cd "${CONTRIB_DIR}" && pwd`
444 echo "${CONTRIB_DIR}/lib not found" >&AS_MESSAGE_LOG_FD
446 AC_MSG_RESULT([not usable])
450 AS_IF([test -n "${CONTRIB_DIR}"], [
451 AC_MSG_RESULT([${CONTRIB_DIR}])
452 CPPFLAGS="${CPPFLAGS} -I${CONTRIB_DIR}/include"
453 CFLAGS="${CFLAGS} -I${CONTRIB_DIR}/include"
454 CXXFLAGS="${CXXFLAGS} -I${CONTRIB_DIR}/include"
455 OBJCFLAGS="${OBJCFLAGS} -I${CONTRIB_DIR}/include -F${CONTRIB_DIR} -F${CONTRIB_DIR}/Frameworks"
456 export PKG_CONFIG_PATH="${CONTRIB_DIR}/lib/pkgconfig:${CONTRIB_DIR}/share/pkgconfig:$PKG_CONFIG_PATH"
457 LDFLAGS="${LDFLAGS} -L${CONTRIB_DIR}/lib"
459 AS_IF([test -z "$LUAC"], [
460 dnl Old contribs mixed cross-tools and cross-compiled executables
461 AS_IF([test -x "${CONTRIB_DIR}/bin/luac${BUILDEXEEXT}"], [
462 LUAC="${CONTRIB_DIR}/bin/luac${BUILDEXEEXT}"
465 dnl Newer contribs follow usual name space rules
466 AS_IF([test -x "${CONTRIB_DIR}/../bin/${host_alias}-luac${BUILDEXEEXT}"], [
467 LUAC="${CONTRIB_DIR}/../bin/${host_alias}-luac${BUILDEXEEXT}"
471 AS_IF([test "${SYS}" = "darwin"], [
472 export LD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$LD_LIBRARY_PATH"
473 export DYLD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$DYLD_LIBRARY_PATH"
476 AS_IF([test -n "${with_contrib}" && test "${with_contrib}" != "no"], [
477 AC_MSG_ERROR([Third party libraries not found!])
480 AC_SUBST([CONTRIB_DIR])
482 dnl Add extras/tools to the PATH
483 TOOLS_DIR="${srcdir}/extras/tools/build/bin"
484 AS_IF([test -d "${TOOLS_DIR}"], [
485 TOOLS_DIR=`cd "${TOOLS_DIR}" && pwd`
486 export PATH="${TOOLS_DIR}":$PATH
491 dnl It's very bad, but our former custom system was worst
495 dnl override platform specific check for dependent libraries
496 dnl otherwise libtool linking of shared libraries will
497 dnl fail on anything other than pass_all.
498 AC_CACHE_VAL(lt_cv_deplibs_check_method,
499 [lt_cv_deplibs_check_method=pass_all])
501 LT_INIT([dlopen win32-dll shared disable-static])
503 LT_LANG([Windows Resource])
507 lt_cv_deplibs_check_method=pass_all
509 AS_IF([test "${enable_shared}" = "no" -a "${enable_vlc}" != "no"], [
510 AC_MSG_ERROR([VLC is based on plugins. Shared libraries cannot be disabled.])
516 AM_GNU_GETTEXT_VERSION([0.19.8])
517 AM_GNU_GETTEXT([external], [need-formatstring-macros])
526 AS_IF([test "${SYS}" = "mingw32"], [
528 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
529 #if !defined(__MINGW32__)
530 # error Not compiling with mingw
534 dnl Check for broken versions of mingw-runtime compatability library
535 AC_MSG_CHECKING(for broken mingw-runtime)
536 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
538 #if defined(__MINGW64_VERSION_MAJOR)
539 # if __MINGW64_VERSION_MAJOR < 5
540 # error Update your mingw-w64! This one is too old.
543 # error You cannot compile with Mingw. Use Mingw-w64!
548 AC_MSG_RESULT([present])
549 AC_MSG_ERROR([LibVLC requires Mingw-w64 version 5.0 or higher!])
552 dnl force use of mingw provided c99 *printf over msvcrt
553 CPPFLAGS="${CPPFLAGS} -D__USE_MINGW_ANSI_STDIO=1"
555 dnl Check for the need to include the mingwex lib for mingw32
557 AC_CHECK_LIB([mingwex], [opendir],
558 AC_CHECK_LIB([mingw32], [opendir],,
559 [VLC_ADD_LIBS([libvlccore],[-lmingwex])])
563 AC_MSG_RESULT([Not compiling with mingw])
566 dnl Check for fnative-struct or mms-bitfields support for mingw32
567 AX_CHECK_COMPILE_FLAG([-mms-bitfields], [
568 AX_APPEND_FLAG([-mms-bitfields], [CFLAGS])
569 AX_APPEND_FLAG([-mms-bitfields], [CXXFLAGS])
570 # Check for the warning flag without "-Wno-", GCC accepts
571 # -Wno-<anything> for unsupported warnings, which can trigger
572 # other warnings instead.
573 AX_CHECK_COMPILE_FLAG([-Wincompatible-ms-struct], [
574 AX_APPEND_FLAG([-Wno-incompatible-ms-struct], [CFLAGS])
575 AX_APPEND_FLAG([-Wno-incompatible-ms-struct], [CXXFLAGS])
578 AX_CHECK_COMPILE_FLAG([-fnative-struct], [
579 AX_APPEND_FLAG([-fnative-struct], [CFLAGS])
580 AX_APPEND_FLAG([-fnative-struct], [CXXFLAGS])
587 dnl Buggy glibc prevention. Purposedly not cached.
588 dnl See sourceware.org bugs 5058 and 5443.
589 dnl Ubuntu alone has 20 bug numbers for this...
591 AC_MSG_CHECKING(for buggy GNU/libc versions)
592 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
594 #if defined (__GLIBC__) && (__GLIBC__ == 2) \
595 && (__GLIBC_MINOR__ >= 5) && (__GLIBC_MINOR__ <= 7)
596 # error GNU/libc with dcgettext killer bug!
599 AC_MSG_RESULT([not present])
601 AC_MSG_RESULT([found])
602 AS_IF([test "x${enable_nls}" != "xno"], [
603 AC_MSG_ERROR([Buggy GNU/libc (version 2.5 - 2.7) present. VLC would crash; there is no viable
604 work-around for this. Check with your distribution vendor on how to update the
605 glibc run-time. Alternatively, build with --disable-nls.])
609 dnl Plugin compilation stuff
613 dnl Check for system libs needed
616 dnl Check for usual libc functions
617 AC_CHECK_FUNCS([accept4 daemon fcntl flock fstatvfs fork getenv getpwuid_r isatty memalign mkostemp mmap open_memstream newlocale openat pipe2 pread posix_fadvise posix_madvise posix_memalign setlocale stricmp strnicmp strptime uselocale])
618 AC_REPLACE_FUNCS([aligned_alloc atof atoll dirfd fdopendir flockfile fsync getdelim getpid lfind lldiv memrchr nrand48 poll recvmsg rewind sendmsg setenv strcasecmp strcasestr strdup strlcpy strndup strnlen strnstr strsep strtof strtok_r strtoll swab tdestroy tfind timegm timespec_get strverscmp pathconf])
619 AC_REPLACE_FUNCS([gettimeofday])
620 AC_CHECK_FUNC(fdatasync,,
621 [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
624 VLC_REPLACE_DECL([realpath], [#include <stdlib.h>])
626 dnl mingw64 implements those as static inline, not functions with C linkage
627 VLC_REPLACE_DECL([asprintf], [#include <stdio.h>])
628 VLC_REPLACE_DECL([vasprintf], [#include <stdio.h>])
629 VLC_REPLACE_DECL([gmtime_r], [#include <time.h>])
630 VLC_REPLACE_DECL([localtime_r], [#include <time.h>])
632 dnl C11 static_assert()
633 AC_MSG_CHECKING([for static_assert in assert.h])
634 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <assert.h>], [
635 static_assert(1, "The impossible happened.");
638 AC_DEFINE([HAVE_STATIC_ASSERT], [1], [Define to 1 if <assert.h> defines static_assert.])
643 # Windows CE does not have strcoll()
646 dnl Check for non-standard system calls
649 AC_CHECK_FUNCS([eventfd vmsplice sched_getaffinity recvmmsg memfd_create])
652 AC_CHECK_FUNCS([_lock_file])
656 AH_BOTTOM([#include <vlc_fixups.h>])
658 dnl Check for struct pollfd
659 AC_CHECK_TYPES([struct pollfd],,,
660 [#include <sys/types.h>
663 #elif defined (_WIN32)
664 # include <winsock2.h>
668 dnl Check for struct timespec
669 AC_CHECK_TYPES([struct timespec],,,
672 dnl Check for max_align_t
673 AC_CHECK_TYPES([max_align_t],,,
674 [#include <stddef.h>])
676 dnl Checks for socket stuff
679 AC_SEARCH_LIBS(connect, [socket], [
680 AS_IF([test "$ac_cv_search_connect" != "none required"], [
681 SOCKET_LIBS="$ac_cv_search_connect"
684 AS_IF([test "${SYS}" = "mingw32"], [
685 SOCKET_LIBS="-lws2_32 -liphlpapi"
689 AC_SEARCH_LIBS([inet_pton], [nsl], [
690 AS_IF([test "$ac_cv_search_inet_pton" != "none required"], [
691 SOCKET_LIBS="$ac_cv_search_inet_pton $SOCKET_LIBS"
693 ],, [${SOCKET_LIBS}])
695 LIBS="${LIBS} ${SOCKET_LIBS}"
697 AC_LANG_PROGRAM([#ifdef _WIN32
698 #include <ws2tcpip.h>
700 # if _WIN32_WINNT < 0x600
704 #include <sys/socket.h>
705 #include <arpa/inet.h>
707 char dst[[sizeof(struct in_addr)]];
708 inet_pton(AF_INET, "127.0.0.1", dst);
709 ])],[AC_DEFINE([HAVE_INET_PTON],[1],[Define to 1 if you have inet_pton function])],[AC_LIBOBJ([inet_pton])])
710 AC_CHECK_TYPES([struct if_nameindex],,,[#include <net/if.h>])
711 AC_CHECK_FUNCS([if_nameindex])
713 AC_SUBST([SOCKET_LIBS])
715 dnl Check for socklen_t
716 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
717 AC_CACHE_CHECK([for socklen_t in sys/socket.h], dnl ` (fix VIM syntax highlight
718 ac_cv_type_socklen_t,
719 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
720 [#include <sys/types.h>
722 # include <winsock2.h>
723 # include <ws2tcpip.h>
725 # include <sys/socket.h>
726 #endif]], [[socklen_t len; len = 0;]])],
727 ac_cv_type_socklen_t=yes,
728 ac_cv_type_socklen_t=no)])
729 AS_IF([test "$ac_cv_type_socklen_t" = no],
730 [AC_DEFINE(socklen_t, int)])
732 dnl Check for struct sockaddr_storage
733 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
734 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
735 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
737 [#include <sys/types.h>
738 #if defined( _WIN32 )
739 # include <winsock2.h>
741 # include <sys/socket.h>
742 #endif], [struct sockaddr_storage addr;],
743 ac_cv_struct_sockaddr_storage=yes,
744 ac_cv_struct_sockaddr_storage=no)])
745 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
746 AC_DEFINE(sockaddr_storage, sockaddr)
747 AC_DEFINE(ss_family, sa_family)
750 dnl FreeBSD has a gnugetopt library for this:
752 AC_CHECK_FUNC(getopt_long,, [
753 AC_CHECK_LIB([gnugetopt],[getopt_long], [
754 GNUGETOPT_LIBS="-lgnugetopt"
757 AC_SUBST([GNUGETOPT_LIBS])
759 AC_CHECK_LIB([m], [cos], [
766 AC_CHECK_LIB([m], [lrintf], [
767 AC_DEFINE(HAVE_LRINTF, 1, [Define to 1 if you have the lrintf function])
768 VLC_ADD_LIBS([skins2],[-lm])
770 AC_CHECK_LIB([m], [nanf],
771 AC_DEFINE(HAVE_NANF, 1, [Define to 1 if you have the NANF function])
773 AC_CHECK_LIB([m], [sincos], [
774 AC_DEFINE(HAVE_SINCOS, 1, [Define to 1 if you have the sincos function.])
779 AC_MSG_CHECKING([broken qsort_r prototype])
780 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <stdlib.h>
782 _Static_assert(_Generic((qsort_r),
783 void (*)(void *, size_t, size_t, void *,
784 int (*)(void *, const void *, const void *)) : 1, default: 0),
785 "Bad prototype not matched");
787 AC_MSG_RESULT([broken])
788 AC_DEFINE([HAVE_BROKEN_QSORT_R], 1, [Defined to 1 if the qsort_r() prototype contradicts the upcoming POSIX standard.])
793 AC_MSG_CHECKING([_Thread_local support])
794 AC_COMPILE_IFELSE([AC_LANG_SOURCE([_Thread_local int foo = 0;
797 AC_DEFINE(HAVE_THREAD_LOCAL, 1, [Defined to 1 if C11 _Thread_local storage qualifier is supported])
798 ],[ AC_MSG_RESULT([no])])
800 dnl __STDC_NO_THREADS__ can't be trusted on some platforms.
801 dnl check for its availability explicitely
802 AC_CHECK_HEADERS([threads.h])
804 AC_CHECK_LIB([anl],[getaddrinfo_a],[
805 AC_DEFINE(HAVE_LIBANL, 1, [Define to 1 if you have the anl library])
808 dnl Check for dynamic plugins
810 have_dynamic_objects="no"
812 AC_SEARCH_LIBS(dlsym, [dl svld], [
813 AS_IF([test "$ac_cv_search_dlsym" != "none required"], [
814 LIBDL="$ac_cv_search_dlsym"
816 have_dynamic_objects="yes"
821 AS_IF([test "${SYS}" = "mingw32"], [
823 have_dynamic_objects="yes" #assume we can use shared objects
826 AC_ARG_WITH([libfuzzer],
827 AS_HELP_STRING([--with-libfuzzer=DIR],
828 [use libFuzzer library from DIR and triggers sanitize coverage (default disabled)]),
831 AS_VAR_IF(with_libfuzzer, no, [], [
836 AM_CONDITIONAL([HAVE_LIBFUZZER], [test "${with_libfuzzer}" != "no"])
838 AS_IF([test "${enable_shared}" = "no"], [
839 have_dynamic_objects=no
841 AM_CONDITIONAL([HAVE_DYNAMIC_PLUGINS], [test "${have_dynamic_objects}" != "no"])
845 AS_IF([test "${SYS}" != "mingw32"], [
846 AC_SEARCH_LIBS([clock_nanosleep], [rt pthread], [
847 AS_IF([test "$ac_cv_search_clock_nanosleep" != "none required"], [
848 LIBRT="$ac_cv_search_clock_nanosleep"
851 AC_SEARCH_LIBS([nanosleep], [rt pthread posix4], [
852 AS_IF([test "$ac_cv_search_nanosleep" != "none required"], [
853 LIBRT="$ac_cv_search_nanosleep"
861 dnl Check for headers
865 AC_CHECK_HEADERS([arpa/inet.h pthread.h search.h sys/shm.h sys/socket.h sys/uio.h])
866 AC_CHECK_HEADERS([net/if.h], [], [],
868 #include <sys/types.h>
869 #include <sys/socket.h>
871 AC_CHECK_HEADER([syslog.h], [have_syslog="yes"], [have_syslog="no"])
872 AM_CONDITIONAL([HAVE_SYSLOG], [test "$have_syslog" = "yes"])
875 AC_CHECK_HEADERS([netinet/tcp.h netinet/udplite.h sys/param.h sys/mount.h])
878 AC_CHECK_HEADERS([features.h getopt.h linux/dccp.h linux/magic.h mntent.h sys/eventfd.h])
881 AC_CHECK_HEADERS([xlocale.h])
883 dnl Check if C++ headers define locale_t
885 AC_CACHE_CHECK([if C++ headers define locale_t],
886 [ac_cv_cxx_locale_t],
887 [ac_cv_cxx_locale_t=no
888 AC_TRY_COMPILE([#include <locale>], [locale_t loc;],
889 [ac_cv_cxx_locale_t=yes])])
890 if test "${ac_cv_cxx_locale_t}" != "no"; then
891 AC_DEFINE(HAVE_CXX_LOCALE_T, 1, Define to 1 if C++ headers define locale_t)
895 dnl LP64 and LLP64 architectures had better define ssize_t by themselves...
896 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.]) dnl ` (fix VIM syntax highlight
897 AC_CHECK_TYPE(ssize_t,, [
898 AC_DEFINE(ssize_t, int)
901 dnl It seems that autoconf detects pkg-config only during the first
902 dnl PKG_CHECK_MODULES from configure.ac - which makes sense. But in our case,
903 dnl it is nested within a conditional block, so it was not working right.
904 dnl Make PKG_CONFIG_PATH precious so that it appears in the help and get saved
905 AC_ARG_VAR(PKG_CONFIG_PATH,
906 [Paths where to find .pc not at the default location])
907 PKG_PROG_PKG_CONFIG()
909 dnl On some OS we need static linking
910 AS_IF([test -n "${PKG_CONFIG}" ],[
911 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "darwin" -o "${SYS}" = "os2" ],[
912 PKG_CONFIG="${PKG_CONFIG} --static"
918 dnl Check for zlib.h and -lz if available
920 AC_CHECK_HEADERS([zlib.h], [ have_zlib=yes ], [ have_zlib=no ])
921 AM_CONDITIONAL([HAVE_ZLIB], [ test "${have_zlib}" = "yes" ])
922 if test "${have_zlib}" = "yes"
924 VLC_ADD_LIBS([sap],[-lz])
929 dnl Domain name i18n support via GNU libidn
931 PKG_CHECK_MODULES([IDN], [libidn], [
933 AC_DEFINE([HAVE_IDN], 1, [Define to 1 if you have GNU libidn.])
940 AC_ARG_ENABLE([dbus],
941 AS_HELP_STRING([--enable-dbus],
942 [compile D-Bus message bus support (default enabled)]))
944 AS_IF([test "${enable_dbus}" != "no"], [
945 PKG_CHECK_MODULES(DBUS, [dbus-1 >= 1.6.0], [
948 AS_IF([test -n "${enable_dbus}"], [
949 AC_MSG_ERROR([${DBUS_PKG_ERRORS}.])
951 AC_MSG_WARN([${DBUS_PKG_ERRORS}.])
955 AM_CONDITIONAL([HAVE_DBUS], [test "${have_dbus}" = "yes"])
958 dnl Check for systemd
959 PKG_CHECK_MODULES([SYSTEMD], [libsystemd], [
962 AC_MSG_WARN([${SYSTEMD_PKG_ERRORS}.])
964 AM_CONDITIONAL([HAVE_SYSTEMD], [test "${have_systemd}" = "yes"])
967 EXTEND_HELP_STRING([Optimization options:])
969 dnl Compiler warnings
972 AX_APPEND_COMPILE_FLAGS([-Wall -Wextra -Wsign-compare -Wundef -Wpointer-arith -Wvolatile-register-var -Wformat -Wformat-security -Wduplicated-branches -Wduplicated-cond], [CFLAGS])
973 AX_APPEND_COMPILE_FLAGS([-Wall -Wextra -Wsign-compare -Wundef -Wpointer-arith -Wvolatile-register-var -Wformat -Wformat-security -Wduplicated-branches -Wduplicated-cond], [CXXFLAGS])
975 AX_APPEND_COMPILE_FLAGS([-Wbad-function-cast -Wwrite-strings -Wmissing-prototypes -Werror-implicit-function-declaration -Winit-self -Wlogical-op -Wshadow=local -Wmultistatement-macros], [CFLAGS])
976 AX_APPEND_COMPILE_FLAGS([-pipe], [CFLAGS])
981 AC_ARG_ENABLE([debug],
982 AS_HELP_STRING([--enable-debug],
983 [build with run-time assertions (default disabled)]),,
986 [Define to 1 if debug code should NOT be compiled])
987 AS_IF([test "${enable_debug}" != "no"], [
988 AC_CHECK_HEADERS([valgrind/valgrind.h])
996 AC_ARG_ENABLE([gprof],
997 AS_HELP_STRING([--enable-gprof],[profile with gprof (default disabled)]),,
999 AS_IF([test "${enable_gprof}" != "no"], [
1000 CFLAGS="${CFLAGS} -pg"
1001 CXXFLAGS="${CXXFLAGS} -pg"
1002 OBJCFLAGS="${OBJCFLAGS} -pg"
1003 LDFLAGS="${LDFLAGS} -pg"
1006 AC_ARG_ENABLE([cprof],
1007 AS_HELP_STRING([--enable-cprof],[profile with cprof (default disabled)]),,
1008 [enable_cprof="no"])
1009 AS_IF([test "${enable_gprof}" != "no"], [
1010 CFLAGS="${CFLAGS} -finstrument-functions"
1011 CXXFLAGS="${CXXFLAGS} -finstrument-functions"
1012 OBJCFLAGS="${OBJCFLAGS} -finstrument-functions"
1013 LDFLAGS="${LDFLAGS} -finstrument-functions"
1019 AC_ARG_ENABLE([coverage],
1020 AS_HELP_STRING([--enable-coverage],
1021 [build for test coverage (default disabled)]),,
1022 [enable_coverage="no"])
1023 AS_IF([test "${enable_coverage}" != "no"], [
1024 CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
1025 CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
1026 LDFLAGS="-lgcov ${LDFLAGS}"
1029 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "os2"], [
1031 CFLAGS="${CFLAGS} -fvisibility=hidden"
1032 CXXFLAGS="${CXXFLAGS} -fvisibility=hidden"
1033 OBJCFLAGS="${OBJCFLAGS} -fvisibility=hidden"
1034 AC_CACHE_CHECK([if $CC accepts -fvisibility=hidden],
1035 [ac_cv_c_visibility_hidden], [
1036 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1037 ac_cv_c_visibility_hidden=yes
1039 ac_cv_c_visibility_hidden=no
1042 AS_IF([test "${ac_cv_c_visibility_hidden}" = "no"], [VLC_RESTORE_FLAGS])
1048 AC_ARG_WITH([sanitizer],
1049 AS_HELP_STRING([--with-sanitizer=(address/memory/undefined/thread)],
1050 [build with sanitizer flags (default disabled)]),
1052 [with_sanitizer=no])
1054 AS_VAR_IF(with_sanitizer, no, [], [
1055 AX_CHECK_COMPILE_FLAG([-fsanitize=${with_sanitizer}], [
1056 AX_APPEND_FLAG([-fsanitize=${with_sanitizer}])
1057 AX_APPEND_FLAG([-fsanitize=${with_sanitizer}], [CXXFLAGS])
1058 AX_APPEND_FLAG([-fsanitize=${with_sanitizer}], [LDFLAGS])
1060 AC_MSG_ERROR(["-fsanitize=${with_sanitizer} not supported!"])
1062 AX_APPEND_FLAG([-g])
1063 AX_APPEND_FLAG([-g], [CXXFLAGS])
1065 AS_IF([test -z "${with_sanitizer##*address*}" ], [
1066 AX_APPEND_COMPILE_FLAGS([-fsanitize-address-use-after-scope -fno-omit-frame-pointer -fsanitize=pointer-compare -fsanitize=pointer-subtract])
1067 AX_APPEND_COMPILE_FLAGS([-fsanitize-address-use-after-scope -fno-omit-frame-pointer -fsanitize=pointer-compare -fsanitize=pointer-subtract], [CXXFLAGS])
1069 AS_IF([test -z "${with_sanitizer##*memory*}" ], [
1070 AX_APPEND_COMPILE_FLAGS([-fPIE -pie])
1071 AX_APPEND_COMPILE_FLAGS([-fPIE -pie], [CXXFLAGS])
1073 AS_IF([test -z "${with_sanitizer##*thread*}" ], [
1074 AX_APPEND_COMPILE_FLAGS([-fPIE -pie])
1075 AX_APPEND_COMPILE_FLAGS([-fPIE -pie], [CXXFLAGS])
1080 dnl Enable/disable optimizations
1082 AC_ARG_ENABLE([optimizations],
1083 AS_HELP_STRING([--disable-optimizations],
1084 [disable compiler optimizations (default enabled)]),,
1085 [enable_optimizations="yes"])
1087 dnl Check for various optimization flags
1088 AS_IF([test "${enable_optimizations}" != "no"], [
1090 dnl -O3 only in production builds
1091 AS_IF([test "${enable_debug}" = "no"], [
1093 CFLAGS="${CFLAGS} -O3"
1094 CXXFLAGS="${CXXFLAGS} -O3"
1095 OBJCFLAGS="${OBJCFLAGS} -O3"
1096 AC_CACHE_CHECK([if $CC accepts -O3], [ac_cv_c_o3], [
1097 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1103 AS_IF([test "${ac_cv_c_o3}" = "no"], [VLC_RESTORE_FLAGS])
1106 dnl Check for fast maths
1107 AX_APPEND_COMPILE_FLAGS([-fno-math-errno -funsafe-math-optimizations -fno-rounding-math -fno-signaling-nans -fcx-limited-range], [CFLAGS])
1108 AX_APPEND_COMPILE_FLAGS([-fno-math-errno -funsafe-math-optimizations -fno-rounding-math -fno-signaling-nans -fcx-limited-range], [CXXFLAGS])
1111 #if defined(_MSC_VER) && !defined(__clang__)
1112 # pragma fenv_access(off)
1113 # pragma fp_contract(on)
1114 #elif defined(__GNUC__)
1115 /* Not supported so far */
1117 # pragma STDC FENV_ACCESS OFF
1118 # pragma STDC FP_CONTRACT ON
1122 dnl Check for -funroll-loops
1124 CFLAGS="${CFLAGS} -funroll-loops"
1125 CXXFLAGS="${CXXFLAGS} -funroll-loops"
1126 OBJCFLAGS="${OBJCFLAGS} -funroll-loops"
1127 AC_CACHE_CHECK([if $CC accepts -funroll-loops], [ac_cv_c_unroll_loops], [
1128 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1129 ac_cv_c_unroll_loops=yes
1131 ac_cv_c_unroll_loops=no
1134 AS_IF([test "${ac_cv_c_unroll_loops}" = "no"], [VLC_RESTORE_FLAGS])
1136 AS_IF([test "$enable_debug" = "no"], [
1137 dnl Check for -fomit-frame-pointer
1139 CFLAGS="${CFLAGS} -fomit-frame-pointer"
1140 CXXFLAGS="${CXXFLAGS} -fomit-frame-pointer"
1141 OBJCFLAGS="${OBJCFLAGS} -fomit-frame-pointer"
1142 AC_CACHE_CHECK([if $CC accepts -fomit-frame-pointer],
1143 [ac_cv_c_omit_frame_pointer], [
1144 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1145 ac_cv_c_omit_frame_pointer=yes
1147 ac_cv_c_omit_frame_pointer=no
1150 AS_IF([test "${ac_cv_c_omit_frame_pointer}" = "no"], [VLC_RESTORE_FLAGS])
1155 AC_ARG_ENABLE([ssp],
1156 AS_HELP_STRING([--disable-ssp],
1157 [disable stack smashing protection (default enabled for optimized builds)]), [],
1160 AS_IF([test "${enable_ssp}" != "no" -a "${enable_optimizations}" != "no"], [
1162 AX_APPEND_COMPILE_FLAGS([-fstack-protector-strong])
1163 AX_APPEND_COMPILE_FLAGS([-fstack-protector-strong], [CXXFLAGS])
1164 dnl Win32 requires linking to ssp for stack-protection
1165 AS_IF([test "${SYS}" = "mingw32"], [
1166 LDFLAGS="${LDFLAGS} -lssp"
1167 AC_CACHE_CHECK([if linker supports stack protectors], [ac_cv_ld_ssp], [
1168 AC_TRY_LINK([#include <stdio.h>],[char buf[100]; fgets(buf, sizeof(buf), stdin);], [
1174 AS_IF([test "${ac_cv_ld_ssp}" = "no"], [VLC_RESTORE_FLAGS])
1178 AS_IF([test "${SYS}" = "mingw32"], [
1179 dnl library for BCrypt APIs
1180 AS_IF([test "${vlc_winstore_app}" = 1],
1181 [LDFLAGS="${LDFLAGS} -lbcrypt"])
1185 LDFLAGS="${LDFLAGS} -Wl,-Bsymbolic"
1186 AC_CACHE_CHECK([if linker supports -Bsymbolic], [ac_cv_ld_bsymbolic], [
1188 ac_cv_ld_bsymbolic="-Wl,-Bsymbolic"
1190 ac_cv_ld_bsymbolic=""
1194 SYMBOLIC_LDFLAGS="${ac_cv_ld_bsymbolic}"
1195 AC_SUBST([SYMBOLIC_LDFLAGS])
1198 LDFLAGS="${LDFLAGS} -Wl,-z,defs"
1199 AC_CACHE_CHECK([if linker supports -z,defs], [ac_cv_ld_z_defs], [
1201 ac_cv_ld_z_defs="yes"
1203 ac_cv_ld_z_defs="no"
1206 AS_IF([test "${ac_cv_ld_z_defs}" = "no"], [VLC_RESTORE_FLAGS])
1208 dnl Check for __attribute__((packed))
1209 AC_CACHE_CHECK([for __attribute__((packed))],
1210 [ac_cv_c_attribute_packed],
1211 [ac_cv_c_attribute_packed=no
1212 AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b; (void)b;],
1213 [ac_cv_c_attribute_packed=yes])])
1214 if test "${ac_cv_c_attribute_packed}" != "no"; then
1215 AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1221 case "${host_cpu}" in
1234 dnl Check for backtrace() support
1235 AC_CHECK_HEADERS([execinfo.h])
1236 AC_CHECK_FUNCS([backtrace])
1241 ALIASES="${ALIASES} cvlc rvlc"
1244 dnl Accelerated modules
1247 dnl Check for fully working MMX intrinsics
1248 dnl We need support for -mmmx, we need <mmintrin.h>, and we also need a
1249 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1250 AC_ARG_ENABLE([mmx],
1251 AS_HELP_STRING([--disable-mmx],
1252 [disable MMX optimizations (default auto)]),,[
1253 case "${host_cpu}" in
1264 AS_IF([test "${enable_mmx}" != "no"], [
1267 CFLAGS="${CFLAGS} -mmmx"
1268 AC_CACHE_CHECK([if $CC groks MMX intrinsics], [ac_cv_c_mmx_intrinsics], [
1269 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1270 [#include <mmintrin.h>
1272 uint64_t frobzor;]], [
1274 a = b = c = (__m64)frobzor;
1275 a = _mm_slli_pi16(a, 3);
1276 a = _mm_adds_pi16(a, b);
1277 c = _mm_srli_pi16(c, 8);
1278 c = _mm_slli_pi16(c, 3);
1279 b = _mm_adds_pi16(b, c);
1280 a = _mm_unpacklo_pi8(a, b);
1281 frobzor = (uint64_t)a;]])], [
1282 ac_cv_c_mmx_intrinsics=yes
1284 ac_cv_c_mmx_intrinsics=no
1288 AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1289 AC_DEFINE(HAVE_MMX_INTRINSICS, 1, [Define to 1 if MMX intrinsics are available.])
1293 CFLAGS="${CFLAGS} -mmmx"
1294 AC_CACHE_CHECK([if $CC groks MMX inline assembly], [ac_cv_mmx_inline], [
1295 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1297 asm volatile("packuswb %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1300 ac_cv_mmx_inline=yes
1305 AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1306 AC_DEFINE(CAN_COMPILE_MMX, 1, [Define to 1 inline MMX assembly is available.])
1310 AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1311 [ac_cv_mmxext_inline], [
1312 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1314 asm volatile("maskmovq %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1317 ac_cv_mmxext_inline=yes
1319 ac_cv_mmxext_inline=no
1323 AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1324 AC_DEFINE(CAN_COMPILE_MMXEXT, 1, [Define to 1 if MMX EXT inline assembly is available.])
1328 AM_CONDITIONAL([HAVE_MMX], [test "${have_mmx}" = "yes"])
1329 AM_CONDITIONAL([HAVE_MMXEXT], [test "${have_mmxext}" = "yes"])
1331 dnl Check for fully workin SSE2 intrinsics
1332 dnl We need support for -mmmx, we need <emmintrin.h>, and we also need a
1333 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1334 AC_ARG_ENABLE([sse],
1335 AS_HELP_STRING([--disable-sse],
1336 [disable SSE (1-4) optimizations (default auto)]),, [
1337 case "${host_cpu}" in
1347 AS_IF([test "${enable_sse}" != "no"], [
1348 ARCH="${ARCH} sse sse2"
1351 CFLAGS="${CFLAGS} -msse2"
1352 AC_CACHE_CHECK([if $CC groks SSE2 intrinsics], [ac_cv_c_sse2_intrinsics], [
1353 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1354 [#include <emmintrin.h>
1356 uint64_t frobzor;]], [
1358 a = b = c = _mm_set1_epi64((__m64)frobzor);
1359 a = _mm_slli_epi16(a, 3);
1360 a = _mm_adds_epi16(a, b);
1361 c = _mm_srli_epi16(c, 8);
1362 c = _mm_slli_epi16(c, 3);
1363 b = _mm_adds_epi16(b, c);
1364 a = _mm_unpacklo_epi8(a, b);
1365 frobzor = (uint64_t)_mm_movepi64_pi64(a);]])], [
1366 ac_cv_c_sse2_intrinsics=yes
1368 ac_cv_c_sse2_intrinsics=no
1372 AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1373 AC_DEFINE(HAVE_SSE2_INTRINSICS, 1, [Define to 1 if SSE2 intrinsics are available.])
1377 CFLAGS="${CFLAGS} -msse"
1378 AC_CACHE_CHECK([if $CC groks SSE inline assembly], [ac_cv_sse_inline], [
1379 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1381 asm volatile("xorps %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1384 ac_cv_sse_inline=yes
1390 AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1391 AC_DEFINE(CAN_COMPILE_SSE, 1, [Define to 1 if SSE inline assembly is available.])
1394 AC_CACHE_CHECK([if $CC groks SSE2 inline assembly], [ac_cv_sse2_inline], [
1395 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1397 asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1400 ac_cv_sse2_inline=yes
1402 ac_cv_sse2_inline=no
1405 AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1406 AC_DEFINE(CAN_COMPILE_SSE2, 1, [Define to 1 if SSE2 inline assembly is available.])
1411 AC_CACHE_CHECK([if $CC groks SSE3 inline assembly], [ac_cv_sse3_inline], [
1412 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1414 asm volatile("movsldup %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1417 ac_cv_sse3_inline=yes
1419 ac_cv_sse3_inline=no
1423 AS_IF([test "${ac_cv_sse3_inline}" != "no"], [
1424 AC_DEFINE(CAN_COMPILE_SSE3, 1, [Define to 1 if SSE3 inline assembly is available.]) ])
1426 AC_CACHE_CHECK([if $CC groks SSSE3 inline assembly], [ac_cv_ssse3_inline], [
1427 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1429 asm volatile("pabsw %%xmm0,%%xmm0"::"r"(p):"xmm0");
1432 ac_cv_ssse3_inline=yes
1434 ac_cv_ssse3_inline=no
1438 AS_IF([test "${ac_cv_ssse3_inline}" != "no"], [
1439 AC_DEFINE(CAN_COMPILE_SSSE3, 1, [Define to 1 if SSSE3 inline assembly is available.]) ])
1442 AC_CACHE_CHECK([if $CC groks SSE4.1 inline assembly],
1443 [ac_cv_sse4_1_inline], [
1444 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1446 asm volatile("pmaxsb %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1449 ac_cv_sse4_1_inline=yes
1451 ac_cv_sse4_1_inline=no
1455 AS_IF([test "${ac_cv_sse4_1_inline}" != "no"], [
1456 AC_DEFINE(CAN_COMPILE_SSE4_1, 1, [Define to 1 if SSE4_1 inline assembly is available.]) ])
1459 AC_CACHE_CHECK([if $CC groks SSE4.2 inline assembly],
1460 [ac_cv_sse4_2_inline], [
1461 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1463 asm volatile("pcmpgtq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1466 ac_cv_sse4_2_inline=yes
1468 ac_cv_sse4_2_inline=no
1472 AS_IF([test "${ac_cv_sse4_2_inline}" != "no"], [
1473 AC_DEFINE(CAN_COMPILE_SSE4_2, 1, [Define to 1 if SSE4_2 inline assembly is available.]) ])
1476 AC_CACHE_CHECK([if $CC groks SSE4A inline assembly], [ac_cv_sse4a_inline], [
1477 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1479 asm volatile("insertq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1482 ac_cv_sse4a_inline=yes
1484 ac_cv_sse4a_inline=no
1488 AS_IF([test "${ac_cv_sse4a_inline}" != "no"], [
1489 AC_DEFINE([CAN_COMPILE_SSE4A], [1], [Define to 1 if SSE4A inline assembly is available.]) ])
1491 AM_CONDITIONAL([HAVE_SSE2], [test "$have_sse2" = "yes"])
1494 CFLAGS="${CFLAGS} -mmmx"
1496 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly], [ac_cv_3dnow_inline], [
1497 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1499 asm volatile("pfadd %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1502 ac_cv_3dnow_inline=yes
1504 ac_cv_3dnow_inline=no
1508 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1509 AC_DEFINE([CAN_COMPILE_3DNOW], 1,
1510 [Define to 1 if 3D Now! inline assembly is available.])
1513 AM_CONDITIONAL([HAVE_3DNOW], [test "$have_3dnow" = "yes"])
1516 AC_ARG_ENABLE([neon],
1517 AS_HELP_STRING([--disable-neon],
1518 [disable ARM NEON optimizations (default auto)]),, [
1519 case "${host_cpu}" in
1531 AS_IF([test "${enable_neon}" != "no"], [
1533 AC_CACHE_CHECK([if $CCAS groks ARM NEON assembly], [ac_cv_arm_neon], [
1534 AS_IF([test "${enable_neon}" != "64"], [
1535 CFLAGS="${CFLAGS} -mfpu=neon -mhard-float"
1538 asm volatile("vqmovun.s64 d0, q1":::"d0");
1546 CFLAGS="${CFLAGS} -march=armv8-a+simd"
1549 asm volatile("uhadd v0.8b, v0.8b, v1.8b":::"v0");
1560 AM_CONDITIONAL([HAVE_NEON], [test "${ac_cv_arm_neon}" = "32"])
1561 AM_CONDITIONAL([HAVE_ARM64], [test "${ac_cv_arm_neon}" = "64"])
1563 AC_ARG_ENABLE([sve],
1564 AS_HELP_STRING([--disable-sve],
1565 [disable ARM SVE optimizations (default auto)]),, [
1566 AS_IF([test "${host_cpu}" = "aarch64"], [enable_sve="yes"] ,[enable_sve="no"])
1568 AS_IF([test "${enable_sve}" != "no"], [
1570 CFLAGS="${CFLAGS} -march=armv8-a+sve"
1571 AC_CACHE_CHECK([if $CCAS groks ARM SVE assembly], [ac_cv_arm_sve], [
1574 asm volatile("ptrue p0.s" ::: "p0");
1584 AM_CONDITIONAL([HAVE_SVE], [test "${ac_cv_arm_sve}" = "yes"])
1587 AC_ARG_ENABLE([altivec],
1588 AS_HELP_STRING([--disable-altivec],
1589 [disable AltiVec optimizations (default auto)]),, [
1590 AS_CASE("${host_cpu}", [powerpc*],
1591 [enable_altivec=yes], [enable_altivec=no])
1595 AS_IF([test "${enable_altivec}" = "yes"], [
1596 ARCH="${ARCH} altivec";
1598 AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1599 [ac_cv_altivec_inline],
1600 [AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1601 ac_cv_altivec_inline="yes",
1602 [CFLAGS="${CFLAGS} -Wa,-maltivec"
1603 AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1604 [ac_cv_altivec_inline="-Wa,-maltivec"],
1605 ac_cv_altivec_inline=no)
1608 AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1609 AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1610 [Define to 1 if AltiVec inline assembly is available.])
1611 AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1612 ALTIVEC_CFLAGS="${ac_cv_altivec_inline}"
1613 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_altivec_inline}])
1619 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1620 [ac_cv_c_altivec], [
1621 CFLAGS="${CFLAGS} -maltivec"
1622 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1623 [#include <altivec.h>]], [
1624 [vec_ld(0, (unsigned char *)0);]])], [
1625 ac_cv_c_altivec="-maltivec"
1627 ac_cv_c_altivec="no"
1631 AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1632 CPPFLAGS="${CPPFLAGS} ${ac_cv_c_altivec}"
1633 AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, [Define to 1 if C AltiVec extensions are available.])
1634 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_c_altivec}])
1635 ALTIVEC_CFLAGS="$ALTIVEC_CFLAGS ${ac_cv_c_altivec}"
1636 VLC_ADD_CFLAGS([deinterlace],[${ac_cv_c_altivec}])
1639 AC_CHECK_HEADERS([altivec.h])
1642 LDFLAGS="${LDFLAGS} -Wl,-framework,vecLib"
1643 AC_CACHE_CHECK([if linker needs -framework vecLib],
1645 [AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)])
1647 AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1648 VLC_ADD_LIBS([libvlccore],[-Wl,-framework,vecLib])
1651 AC_SUBST([ALTIVEC_CFLAGS])
1652 AM_CONDITIONAL([HAVE_ALTIVEC], [test "$have_altivec" = "yes"])
1657 AC_ARG_ENABLE([optimize-memory],
1658 AS_HELP_STRING([--enable-optimize-memory],
1659 [optimize memory usage over performance]))
1660 if test "${enable_optimize_memory}" = "yes"; then
1661 AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1665 dnl Allow running as root (useful for people running on embedded platforms)
1667 AC_ARG_ENABLE([run-as-root],
1668 AS_HELP_STRING([--enable-run-as-root],
1669 [allow running VLC as root (default disabled)]))
1670 AS_IF([test "${enable_run_as_root}" = "yes"],[
1671 AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1672 [Define to 1 to allow running VLC as root (uid 0).])
1678 AC_ARG_ENABLE([sout],
1679 AS_HELP_STRING([--disable-sout],
1680 [disable streaming output (default enabled)]))
1681 AS_IF([test "${enable_sout}" != "no"], [
1682 AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1684 AM_CONDITIONAL([ENABLE_SOUT], [test "${enable_sout}" != "no"])
1687 AC_ARG_ENABLE([lua],
1688 AS_HELP_STRING([--disable-lua],
1689 [disable LUA scripting support (default enabled)]))
1690 if test "${enable_lua}" != "no"
1692 PKG_CHECK_MODULES(LUA, lua5.2,
1695 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua 5.1 instead])
1697 PKG_CHECK_MODULES(LUA, lua5.1,
1700 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua >= 5.1 instead])
1701 PKG_CHECK_MODULES(LUA, lua >= 5.1,
1704 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying manual detection instead])
1706 AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1709 AC_CHECK_LIB( lua5.2 , luaL_newstate,
1710 [LUA_LIBS="-llua5.2"],
1711 AC_CHECK_LIB( lua5.1 , luaL_newstate,
1712 [LUA_LIBS="-llua5.1"],
1713 AC_CHECK_LIB( lua51 , luaL_newstate,
1714 [LUA_LIBS="-llua51"],
1715 AC_CHECK_LIB( lua , luaL_newstate,
1723 if test "x${have_lua}" != "xyes" ; then
1724 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.])
1726 AC_ARG_VAR([LUAC], [LUA byte compiler])
1727 AS_IF([test -z "$LUAC"], [
1728 AC_CHECK_TOOL(LUAC, [luac], [false])
1730 AS_IF([test "${LUAC}" = "false"], [
1731 AC_MSG_ERROR([Could not find the LUA byte compiler.])
1733 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], [
1734 AC_MSG_ERROR([You need 32-bits luac when using lua from contrib.])
1737 AM_CONDITIONAL([BUILD_LUA], [test "${have_lua}" = "yes"])
1741 dnl VideoLAN manager
1743 AC_ARG_ENABLE([vlm],
1744 AS_HELP_STRING([--disable-vlm],
1745 [disable the stream manager (default enabled)]),,
1746 [enable_vlm="${enable_sout}"])
1747 AS_IF([test "${enable_vlm}" != "no"], [
1748 AS_IF([test "${enable_sout}" = "no"], [
1749 AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1751 AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1753 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1757 dnl Addons manager storage and repositories modules
1759 AC_ARG_ENABLE([addonmanagermodules],
1760 AS_HELP_STRING([--disable-addonmanagermodules],
1761 [disable the addons manager modules (default enabled)]))
1762 if test "${enable_addonmanagermodules}" != "no"
1764 AC_DEFINE(ENABLE_ADDONMANAGERMODULES, 1, [Define if you want the addons manager modules])
1766 AM_CONDITIONAL([ENABLE_ADDONMANAGERMODULES], [test "${enable_addonmanagermodules}" != "no"])
1773 EXTEND_HELP_STRING([Input plugins:])
1776 dnl libarchive access module
1778 PKG_ENABLE_MODULES_VLC([ARCHIVE], [archive], [libarchive >= 3.1.0], (libarchive support), [auto])
1783 AC_ARG_ENABLE([live555],
1784 AS_HELP_STRING([--enable-live555],
1785 [enable RTSP input through live555 (default enabled)]))
1787 AS_IF([test "${enable_live555}" != "no" -a -n "${CXX}"], [
1788 PKG_CHECK_MODULES(LIVE555, live555, [
1789 VLC_ADD_PLUGIN([live555])
1790 VLC_ADD_CXXFLAGS([live555], [$LIVE555_CFLAGS])
1791 VLC_ADD_LIBS([live555],[$LIVE555_LIBS])
1793 AC_MSG_WARN([${LIVE555_PKG_ERRORS}.])
1798 dnl detect include paths
1799 AS_IF([test -f "${CONTRIB_DIR}/include/UsageEnvironment/UsageEnvironment.hh"], [
1800 CPPFLAGS_live555="-I${CONTRIB_DIR}/include/liveMedia -I${CONTRIB_DIR}/include/groupsock -I${CONTRIB_DIR}/include/BasicUsageEnvironment -I${CONTRIB_DIR}/include/UsageEnvironment"
1802 AS_IF([test "${SYS}" != "os2"], [
1803 LIVE555_PREFIX=${LIVE555_PREFIX-"/usr"}
1804 CPPFLAGS_live555="-I${LIVE555_PREFIX}/include/liveMedia -I${LIVE555_PREFIX}/include/groupsock -I${LIVE555_PREFIX}/include/BasicUsageEnvironment -I${LIVE555_PREFIX}/include/UsageEnvironment"
1806 LIVE555_PREFIX=${LIVE555_PREFIX-"/usr/lib/live"}
1807 CPPFLAGS_live555="-I${LIVE555_PREFIX}/liveMedia/include -I${LIVE555_PREFIX}/groupsock/include -I${LIVE555_PREFIX}/BasicUsageEnvironment/include -I${LIVE555_PREFIX}/UsageEnvironment/include"
1808 LDFLAGS_live555="-L${LIVE555_PREFIX}/liveMedia -L${LIVE555_PREFIX}/groupsock -L${LIVE555_PREFIX}/BasicUsageEnvironment -L${LIVE555_PREFIX}/UsageEnvironment"
1813 AS_IF([test "${SYS}" = "solaris"], [
1814 CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1816 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1817 LDFLAGS="${LDFLAGS} ${LDFLAGS_live555}"
1820 AC_CACHE_CHECK([for live555 version 1324598400 or later], [ac_cv_live555], [
1821 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
1822 [#include <liveMedia_version.hh>
1823 #if !defined (LIVEMEDIA_LIBRARY_VERSION_INT) || (LIVEMEDIA_LIBRARY_VERSION_INT < 1324598400)
1833 AS_IF([test "$ac_cv_live555" = "no"], [
1834 AC_MSG_WARN([live555 is missing or its installed version is too old:
1835 Version 2011.12.23 or later is required to proceed.
1836 You can get an updated one from http://www.live555.com/liveMedia .])
1837 AS_IF([test -n "${enable_live555}"], [
1838 AC_MSG_ERROR([Update live555 or pass --disable-live555 to disable RTSP input support.])
1841 other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1842 other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
1843 AS_IF([test "${SYS}" = "mingw32"], [
1844 # add ws2_32 for closesocket, select, recv
1845 other_libs="$other_libs -lws2_32"
1848 dnl We need to check for pic because live555 don't provide shared libs
1849 dnl and we want to build a plugins so we need -fPIC on some arch.
1850 VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1851 VLC_ADD_LDFLAGS([live555], [${LDFLAGS_live555}])
1852 AC_CHECK_LIB([liveMedia_pic], [main], [
1853 VLC_ADD_PLUGIN([live555])
1854 VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
1856 AC_CHECK_LIB([liveMedia], [main], [
1857 VLC_ADD_PLUGIN([live555])
1858 VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1859 ],[],[${other_libs}])
1860 ],[${other_libs_pic}])
1868 dnl IIDC and DV FireWire input modules
1870 PKG_ENABLE_MODULES_VLC([DC1394], [], [libdc1394-2 >= 2.1.0], [IIDC FireWire input module], [auto])
1871 PKG_ENABLE_MODULES_VLC([DV1394], [], [libraw1394 >= 2.0.1 libavc1394 >= 0.5.3], [DV FireWire input module], [auto])
1874 dnl - linsys modules: access module check for libzvbi
1876 AC_ARG_ENABLE([linsys],
1877 AS_HELP_STRING([--enable-linsys],
1878 [Linux Linear Systems Ltd. SDI and HD-SDI input cards (default enabled)]))
1879 AS_IF([test "$SYS" = "linux" -a "${enable_linsys}" != "no"], [
1880 VLC_ADD_PLUGIN([linsys_hdsdi])
1881 PKG_CHECK_MODULES(LINSYS_SDI, [zvbi-0.2 >= 0.2.28], [
1882 VLC_ADD_PLUGIN([linsys_sdi])
1884 AC_MSG_WARN([${LINSYS_SDI_PKG_ERRORS}.])
1889 dnl dvdread module: check for libdvdread
1891 PKG_ENABLE_MODULES_VLC([DVDREAD], [], [dvdread > 4.9.0], [dvdread input module], [auto])
1894 dnl libdvdnav plugin
1896 PKG_ENABLE_MODULES_VLC([DVDNAV], [], [dvdnav > 4.9.0], [DVD with navigation input module (dvdnav)], [auto])
1897 AS_IF([test "${enable_dvdnav}" != "no"], [
1898 AC_MSG_CHECKING(for dvdnav_stream_cb in dvdnav/dvdnav.h)
1899 AC_EGREP_HEADER(dvdnav_stream_cb,dvdnav/dvdnav.h,[
1901 AC_DEFINE(HAVE_STREAM_CB_IN_DVDNAV_H, 1, For dvdnav demux support)
1908 dnl Blu-ray Disc Support with libbluray
1910 PKG_ENABLE_MODULES_VLC([BLURAY], [libbluray], [libbluray >= 0.6.2], (libbluray for Blu-ray disc support ) )
1913 dnl OpenCV wrapper and example filters
1915 PKG_ENABLE_MODULES_VLC([OPENCV], [opencv_example opencv_wrapper], [opencv > 2.0], (OpenCV (computer vision) filter), [auto])
1919 dnl libsmbclient plugin
1921 PKG_ENABLE_MODULES_VLC([SMBCLIENT], [smbc], [smbclient], (SMB/CIFS support), [auto])
1924 dnl liBDSM access module
1926 AM_CONDITIONAL([HAVE_DSM], [test "$AS_TR_SH(with_dsm)" = "yes"])
1927 PKG_WITH_MODULES([DSM], [libdsm >= 0.2.0], [
1928 VLC_ADD_PLUGIN([dsm])
1929 VLC_ADD_CFLAGS([dsm], [$DSM_CFLAGS])
1930 VLC_ADD_LIBS([dsm], [$DSM_LIBS])
1932 ],,[libdsm SMB/CIFS access/sd module], [auto])
1933 AM_CONDITIONAL([HAVE_DSM], [test "${have_dsm}" = "yes"])
1936 dnl sftp access support
1938 PKG_ENABLE_MODULES_VLC([SFTP], [sftp], [libssh2], (support SFTP file transfer via libssh2), [auto])
1941 dnl nfs access support
1943 PKG_ENABLE_MODULES_VLC([NFS], [nfs], [libnfs >= 1.10.0], (support nfs protocol via libnfs), [auto])
1946 dnl smb2 access support
1948 PKG_ENABLE_MODULES_VLC([SMB2], [smb2], [libsmb2 >= 2.0.0], (support smb2 protocol via libsmb2), [auto])
1953 AC_ARG_ENABLE([v4l2], AS_HELP_STRING([--disable-v4l2],
1954 [disable Video4Linux version 2 (default auto)]))
1956 AS_IF([test "$enable_v4l2" != "no"], [
1957 AC_CHECK_HEADERS([linux/videodev2.h], [
1961 AM_CONDITIONAL([HAVE_V4L2], [test "${have_v4l2}" != "no"])
1964 dnl special access module for Blackmagic SDI cards
1966 AC_ARG_ENABLE([decklink],
1967 AS_HELP_STRING([--disable-decklink],
1968 [disable Blackmagic DeckLink SDI input (default auto)]))
1969 AC_ARG_WITH([decklink_sdk],
1970 AS_HELP_STRING([--with-decklink-sdk=DIR],
1971 [location of Blackmagic DeckLink SDI SDK]))
1973 if test "${enable_decklink}" != "no"
1975 if test "${with_decklink_sdk}" != "no" -a -n "${with_decklink_sdk}"
1977 VLC_ADD_CPPFLAGS([decklink decklinkoutput stream_out_sdi],[-I${with_decklink_sdk}/include])
1980 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_decklink}"
1982 AC_CHECK_HEADERS([DeckLinkAPIDispatch.cpp], [
1984 AS_IF([test "${SYS}" = "darwin"], [
1985 VLC_ADD_LIBS([decklink decklinkoutput],[-Wl,-framework,CoreFoundation])
1988 AS_IF([test "${enable_decklink}" = "yes"], [
1989 AC_MSG_ERROR([Blackmagic DeckLink SDI include files not found!])
1991 AC_MSG_WARN([Blackmagic DeckLink SDI include files not found, decklink disabled])
1997 AM_CONDITIONAL([HAVE_DECKLINK], [ test "${have_decklink}" != "no" ])
2001 dnl Built-in CD-DA and VCD module
2003 AC_ARG_ENABLE([vcd],
2004 AS_HELP_STRING([--disable-vcd],
2005 [disable built-in VCD and CD-DA support (default enabled)]))
2007 AC_ARG_ENABLE([libcddb],
2008 AS_HELP_STRING([--disable-libcddb],
2009 [disable CDDB for Audio CD (default enabled)]))
2011 if test "${enable_vcd}" != "no"
2013 AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2014 AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2016 VLC_ADD_PLUGIN([vcd cdda])
2021 AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2022 AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2024 VLC_ADD_PLUGIN([vcd cdda])
2025 AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2030 AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2031 AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2033 VLC_ADD_PLUGIN([vcd cdda])
2034 AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2039 if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32" -o "${SYS}" = "os2" -o "${SYS}" = "darwin"
2041 VLC_ADD_PLUGIN([vcd cdda])
2044 if test "$enable_libcddb" != "no"; then
2045 PKG_CHECK_MODULES(LIBCDDB, [libcddb >= 0.9.5], [
2047 AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2048 VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2049 VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2051 [AC_MSG_WARN([${LIBCDDB_PKG_ERRORS}: CDDB access disabled.])
2059 AC_CACHE_CHECK([for Linux DVB version 5.1], [ac_cv_linux_dvb_5_1], [
2060 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
2061 [#include <linux/dvb/version.h>
2062 #if (DVB_API_VERSION < 5)
2063 # error Linux DVB API v3.2 and older are not supported.
2065 #if (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR < 1)
2066 # error Linux DVB API v5.0 is unsupported. Please update.
2069 ac_cv_linux_dvb_5_1=yes
2071 ac_cv_linux_dvb_5_1=no
2073 AM_CONDITIONAL([HAVE_LINUX_DVB], [test "$ac_cv_linux_dvb_5_1" = "yes"])
2076 dnl Screen capture module
2078 AC_ARG_ENABLE([screen],
2079 AS_HELP_STRING([--enable-screen],
2080 [disable screen capture (default enabled)]))
2081 if test "${enable_screen}" != "no"; then
2082 if test "${SYS}" = "darwin"; then
2083 AC_CHECK_HEADERS([ApplicationServices/ApplicationServices.h], [
2084 VLC_ADD_PLUGIN([screen])
2088 AM_CONDITIONAL([HAVE_MAC_SCREEN], [test "${SYS}" = "darwin" -a "x${enable_screen}" != "xno"])
2091 dnl VNC/RFB access module
2093 PKG_ENABLE_MODULES_VLC([VNC], [vnc], [libvncclient >= 0.9.9], (VNC/rfb client support), [auto])
2095 dnl RDP/Remote Desktop access module
2097 PKG_ENABLE_MODULES_VLC([FREERDP], [rdp], [freerdp >= 1.0.1], (RDP/Remote Desktop client support) )
2101 AC_SUBST([have_avfoundation], ["no"])
2102 AC_ARG_ENABLE([macosx-avfoundation],
2103 AS_HELP_STRING([--enable-macosx-avfoundation], [Mac OS X avcapture (video) module (default enabled on Mac OS X)]))
2104 if test "x${enable_macosx_avfoundation}" != "xno" &&
2105 (test "${SYS}" = "darwin" || test "${enable_macosx_avfoundation}" = "yes")
2107 SAVED_LIBS="${LIBS}"
2108 LIBS="-framework AVFoundation"
2109 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [])],[have_avfoundation=yes],[have_avfoundation=no])
2110 LIBS="${SAVED_LIBS}"
2111 if test "${have_avfoundation}" != "no"
2113 VLC_ADD_PLUGIN([avcapture])
2116 AM_CONDITIONAL([HAVE_AVFOUNDATION], [test "${have_avfoundation}" != "no"])
2119 dnl DCP plugin (using asdcplib)
2121 PKG_WITH_MODULES([ASDCP], [asdcplib], [have_asdcp="yes"])
2122 AM_CONDITIONAL([HAVE_ASDCP], [test "${have_asdcp}" = "yes"])
2128 EXTEND_HELP_STRING([Mux/Demux plugins:])
2131 dnl libdvbpsi check for ts mux/demux
2134 PKG_WITH_MODULES([DVBPSI], [libdvbpsi >= 1.2.0], [have_dvbpsi="yes"])
2135 AM_CONDITIONAL([HAVE_DVBPSI], [test "${have_dvbpsi}" = "yes"])
2139 dnl GME demux plugin
2141 AC_ARG_ENABLE([gme],
2142 AS_HELP_STRING([--enable-gme],
2143 [use Game Music Emu (default auto)]))
2144 AS_IF([test "${enable_gme}" != "no"], [
2145 AC_CHECK_HEADER([gme/gme.h], [
2146 AC_CHECK_LIB([gme], [gme_identify_header], [
2147 VLC_ADD_PLUGIN([gme])
2149 AC_CHECK_LIB([gme], [gme_identify_extension], [
2150 VLC_ADD_LIBS([gme], [-lstdc++ $LIBM])
2151 VLC_ADD_PLUGIN([gme])
2152 ],, [-lstdc++ $LIBM])
2154 VLC_ADD_LIBS([gme], [-lgme])
2156 AS_IF([test "x${enable_gme}" != "x"], [
2157 AC_MSG_ERROR([GME cannot be found. Please install the development files.])
2166 AC_ARG_ENABLE([sid],
2167 AS_HELP_STRING([--enable-sid],[C64 sid demux support (default auto)]))
2168 AS_IF([test "${enable_sid}" != "no"], [
2169 PKG_CHECK_MODULES(SID, [libsidplay2], [
2171 oldCPPFLAGS="$CPPFLAGS"
2172 CPPFLAGS="$CPPFLAGS $SID_CFLAGS"
2173 AC_CHECK_HEADER([sidplay/builders/resid.h], [
2174 VLC_ADD_PLUGIN([sid])
2175 VLC_ADD_CFLAGS([sid], [$SID_CFLAGS])
2176 VLC_ADD_LIBS([sid], [$SID_LIBS] [-lresid-builder])
2178 AS_IF([test -n "${enable_sid}"],
2179 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2180 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2183 CPPFLAGS="$oldCPPFLAGS"
2186 AS_IF([test "x${enable_sid}" = "xyes"],
2187 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2188 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2195 dnl ogg demux plugin
2197 PKG_ENABLE_MODULES_VLC([OGG], [mux_ogg], [ogg >= 1.0], [Ogg demux support], [auto])
2198 PKG_CHECK_MODULES(LIBVORBIS, [vorbis >= 1.1], [
2199 AC_DEFINE(HAVE_LIBVORBIS, 1, [Define to 1 if you have the libvorbis])
2201 PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto], [${LIBVORBIS_CFLAGS}], [${LIBVORBIS_LIBS}])
2202 if test "${enable_sout}" != "no"; then
2203 dnl Check for libshout
2204 PKG_ENABLE_MODULES_VLC([SHOUT], [access_output_shout], [shout >= 2.1], [libshout output plugin], [auto])
2208 dnl matroska demux plugin
2210 PKG_WITH_MODULES([MATROSKA], [libebml libmatroska], [
2211 VLC_ADD_PLUGIN([mkv])
2212 VLC_ADD_CFLAGS([mkv], [$MATROSKA_CFLAGS])
2213 VLC_ADD_LIBS([mkv], [$MATROSKA_LIBS])
2215 ],,[MKV format support], [auto])
2216 AM_CONDITIONAL([HAVE_MATROSKA], [test "${have_matroska}" = "yes"])
2219 dnl modplug demux plugin
2221 AC_ARG_ENABLE([mod],
2222 AS_HELP_STRING([--disable-mod],
2223 [do not use libmodplug (default auto)]))
2224 if test "${enable_mod}" != "no" ; then
2225 PKG_CHECK_MODULES(LIBMODPLUG, [libmodplug >= 0.8.4 libmodplug != 0.8.8], [
2226 VLC_ADD_PLUGIN([mod])
2227 VLC_ADD_CXXFLAGS([mod],[$LIBMODPLUG_CFLAGS])
2228 VLC_ADD_CFLAGS([mod],[$LIBMODPLUG_CFLAGS]) #modules/demux/mod.c needs CFLAGS_mod, not CXXFLAGS_mod
2229 VLC_ADD_LIBS([mod],[$LIBMODPLUG_LIBS])
2231 AS_IF([test -n "${enable_mod}"],
2232 [AC_MSG_ERROR([${LIBMODPLUG_PKG_ERRORS}.])],
2233 [AC_MSG_WARN([${LIBMODPLUG_PKG_ERRORS}.])])
2238 dnl mpc demux plugin
2240 AC_ARG_ENABLE([mpc],
2241 AS_HELP_STRING([--disable-mpc], [do not use libmpcdec (default auto)]))
2242 if test "${enable_mpc}" != "no"
2244 AC_CHECK_HEADERS([mpcdec/mpcdec.h], [
2245 VLC_ADD_PLUGIN([mpc])
2246 VLC_ADD_LIBS([mpc],[-lmpcdec])])
2253 EXTEND_HELP_STRING([Codec plugins:])
2258 AC_ARG_ENABLE([wma-fixed],
2259 AS_HELP_STRING([--enable-wma-fixed], [libwma-fixed module (default disabled)]))
2260 if test "${enable_wma_fixed}" = "yes"
2262 VLC_ADD_PLUGIN([wma_fixed])
2266 dnl shine encoder plugin
2268 PKG_ENABLE_MODULES_VLC([SHINE], [], [shine >= 3.0.0], [MPEG Audio Layer 3 encoder], [auto], [], [], [])
2272 dnl openmax il codec plugin
2274 AC_ARG_ENABLE([omxil],
2275 AS_HELP_STRING([--enable-omxil], [openmax il codec module (default disabled)]))
2276 if test "${enable_omxil}" = "yes"
2278 VLC_ADD_PLUGIN([omxil])
2282 dnl raspberry pi openmax il configuration
2284 AC_ARG_ENABLE([rpi-omxil],
2285 AS_HELP_STRING([--enable-rpi-omxil], [openmax il configured for raspberry pi (default disabled)]))
2286 if test "${enable_rpi_omxil}" = "yes"
2288 VLC_ADD_PLUGIN([omxil])
2289 VLC_ADD_CFLAGS([omxil],[-DRPI_OMX])
2293 dnl CrystalHD codec plugin
2295 AC_ARG_ENABLE([crystalhd],
2296 AS_HELP_STRING([--enable-crystalhd], [crystalhd codec plugin (default auto)]))
2297 if test "${enable_crystalhd}" != "no"; then
2298 AC_CHECK_HEADER(libcrystalhd/libcrystalhd_if.h, [
2299 VLC_ADD_PLUGIN([crystalhd])
2300 VLC_ADD_LIBS([crystalhd], [-lcrystalhd])
2302 if test "${SYS}" = "mingw32" ; then
2303 AC_CHECK_HEADERS([libcrystalhd/bc_dts_defs.h], [
2304 VLC_ADD_PLUGIN([crystalhd])
2305 AC_CHECK_HEADERS([libcrystalhd/bc_drv_if.h], [
2306 VLC_ADD_LIBS([crystalhd], [-lbcmDIL])
2309 AS_IF([test x"${enable_crystalhd}" = "xyes"],
2310 [AC_MSG_ERROR("Could not find CrystalHD development headers")],
2311 [AC_MSG_WARN("Could not find CrystalHD development headers")])
2312 ],[#define __LINUX_USER__
2313 #include <libcrystalhd/bc_dts_types.h>
2317 #include <libcrystalhd/bc_dts_types.h>
2328 AC_ARG_WITH(mad, AS_HELP_STRING([--with-mad=PATH], [path to libmad]), [
2333 AS_IF([test "${with_mad}" != "no"], [
2334 MAD_CFLAGS="-I${with_mad}/include"
2335 MAD_LIBS="-L${with_mad}/lib"
2338 AC_ARG_ENABLE([mad],
2339 AS_HELP_STRING([--enable-mad], [libmad module (default enabled)]))
2340 AS_IF([test "${enable_mad}" != "no"], [
2342 CPPFLAGS="${CPPFLAGS} ${MAD_CFLAGS}"
2343 LDFLAGS="${LDFLAGS} ${MAD_LIBS}"
2344 AC_CHECK_HEADERS([mad.h], [
2345 AC_CHECK_LIB([mad], [mad_bit_init], [
2347 MAD_LIBS="${MAD_LIBS} -lmad"
2351 AS_IF([test -n "$enable_mad" -a "${have_mad}" = "no"], [
2352 AC_MSG_ERROR([Could not find libmad. Install it or pass --disable-mad to disable it.])
2355 AC_SUBST([MAD_CFLAGS])
2356 AC_SUBST([MAD_LIBS])
2357 AM_CONDITIONAL([HAVE_MAD], [test "${have_mad}" = "yes"])
2362 PKG_ENABLE_MODULES_VLC([MPG123], [mpg123], [libmpg123], [libmpg123 decoder support], [auto])
2367 AC_ARG_ENABLE([gst-decode],
2368 AS_HELP_STRING([--enable-gst-decode], [GStreamer based decoding support (currently supports only video decoding) (default auto)]))
2370 have_gst_decode="no"
2371 AS_IF([test "${enable_gst_decode}" != "no"], [
2372 PKG_CHECK_MODULES([GST_APP], [gstreamer-app-1.0], [
2373 PKG_CHECK_MODULES([GST_VIDEO], [gstreamer-video-1.0], [
2374 have_gst_decode="yes"
2376 AC_MSG_WARN([${GST_VIDEO_PKG_ERRORS}. GStreamer decoder module will not be built.])
2379 AC_MSG_WARN([${GST_APP_PKG_ERRORS}. GStreamer modules will not be built.])
2382 AM_CONDITIONAL([HAVE_GST_DECODE], [test "${have_gst_decode}" = "yes"])
2385 dnl avcodec decoder/encoder plugin
2387 AC_ARG_ENABLE([merge-ffmpeg],
2388 AS_HELP_STRING([--enable-merge-ffmpeg], [merge FFmpeg-based plugins (default disabled)]),, [
2389 enable_merge_ffmpeg="no"
2391 AM_CONDITIONAL([MERGE_FFMPEG], [test "$enable_merge_ffmpeg" != "no"])
2393 AC_MSG_CHECKING([for libavutil variant])
2394 PKG_CHECK_EXISTS([libavutil], [
2395 libavutil_version="$(${PKG_CONFIG} --modversion libavutil)"
2396 libavutil_micro="${libavutil_version##*.}"
2397 AS_IF([test ${libavutil_micro} -le 99], [
2405 AC_MSG_RESULT([${avfork}])
2407 AC_ARG_ENABLE([avcodec],
2408 AS_HELP_STRING([--enable-avcodec], [libavcodec codec (default enabled)]))
2409 AS_IF([test "${enable_avcodec}" != "no"], [
2410 dnl We need >=57.16.0 from libav or >=57.37.100 from ffmpeg
2412 libav) av_codec_ver="57.16.0" ;;
2413 dnl 05f66706d182eb0c36af54d72614bf4c33e957a9 includes libavutil 55.9.0
2414 ffmpeg) av_codec_ver="57.37.100" ;;
2415 dnl 7fc329e2dd6226dfecaa4a1d7adf353bf2773726 include libavutil 55.22.101
2416 *) AC_MSG_ERROR([Missing libav or FFmpeg. Pass --disable-avcodec to ignore this error.])
2418 PKG_CHECK_MODULES(AVCODEC,[libavcodec >= ${av_codec_ver} libavutil >= 55.9.0], [
2420 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2421 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2422 AC_CHECK_HEADERS([libavcodec/avcodec.h])
2423 AC_CHECK_HEADERS([libavutil/avutil.h])
2427 AC_MSG_ERROR([${AVCODEC_PKG_ERRORS}. Pass --disable-avcodec to ignore this error.])
2432 AM_CONDITIONAL([HAVE_AVCODEC], [test "${have_avcodec}" != "no"])
2435 dnl libva needs avcodec
2437 AC_ARG_ENABLE([libva],
2438 AS_HELP_STRING([--enable-libva], [VAAPI GPU decoding support (libVA) (default auto)]))
2440 AS_IF([test "${enable_libva}" = "yes" -a "${have_avcodec}" != "yes" ], [
2441 AC_MSG_ERROR([--enable-libva and --disable-avcodec options are mutually exclusive. Use --enable-avcodec.])
2448 AS_IF([test "${enable_libva}" != "no"], [
2449 PKG_CHECK_MODULES([LIBVA], [libva >= 0.38], [
2452 AS_IF([test -n "${enable_libva}"], [
2453 AC_MSG_ERROR([${LIBVA_PKG_ERRORS}.])
2455 AC_MSG_WARN([${LIBVA_PKG_ERRORS}.])
2458 PKG_CHECK_MODULES([LIBVA_DRM], [libva-drm], [
2459 have_vaapi_drm="yes"
2461 AC_MSG_WARN([${LIBVA_DRM_PKG_ERRORS}.])
2463 PKG_CHECK_MODULES(LIBVA_X11, [libva-x11], [
2464 have_vaapi_x11="yes"
2466 AC_MSG_WARN([${LIBVA_X11_PKG_ERRORS}.])
2468 PKG_CHECK_MODULES(LIBVA_WL, [libva-wayland], [
2471 AC_MSG_WARN([${LIBVA_WL_PKG_ERRORS}.])
2474 AM_CONDITIONAL([HAVE_VAAPI], [test "${have_vaapi}" = "yes"])
2475 AM_CONDITIONAL([HAVE_VAAPI_DRM], [test "${have_vaapi_drm}" = "yes"])
2476 AM_CONDITIONAL([HAVE_VAAPI_X11], [test "${have_vaapi_x11}" = "yes"])
2477 AM_CONDITIONAL([HAVE_VAAPI_WL], [test "${have_vaapi_wl}" = "yes"])
2479 have_avcodec_vaapi="no"
2480 AS_IF([test "${have_vaapi}" = "yes" -a "${have_avcodec}" = "yes"], [
2482 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2483 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2484 AC_CHECK_HEADERS([libavcodec/vaapi.h], [
2485 AC_MSG_NOTICE([VA API acceleration activated])
2486 have_avcodec_vaapi="yes"
2488 AS_IF([test -n "${enable_libva}"], [
2489 AC_MSG_ERROR([libva is present but libavcodec/vaapi.h is missing])
2491 AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing ])
2496 AM_CONDITIONAL([HAVE_AVCODEC_VAAPI], [test "${have_avcodec_vaapi}" = "yes"])
2499 dnl dxva2 needs avcodec
2501 AC_ARG_ENABLE([dxva2],
2502 AS_HELP_STRING([--enable-dxva2], [DxVA2 GPU decoding support (default auto)]))
2504 have_avcodec_dxva2="no"
2505 AS_IF([test "${enable_dxva2}" != "no"], [
2506 if test "${SYS}" = "mingw32"; then
2507 AS_IF([test "x${have_avcodec}" = "xyes"], [
2508 AC_CHECK_HEADERS([dxva2api.h],
2510 AC_CHECK_HEADERS([libavcodec/dxva2.h], [
2511 AC_MSG_NOTICE([DxVA2 acceleration activated])
2512 have_avcodec_dxva2="yes"
2514 AS_IF([test "${enable_dxva2}" = "yes"],
2515 [AC_MSG_ERROR([dxva2 is present but libavcodec/dxva2.h is missing])],
2516 [AC_MSG_WARN([dxva2 is present but libavcodec/dxva2.h is missing ])])
2517 ], [#undef _WIN32_WINNT
2518 /* DXVA2 is only available in Vista and above */
2519 #define _WIN32_WINNT 0x600])
2521 AS_IF([test "${enable_dxva2}" = "yes"],
2522 [AC_MSG_ERROR([Could not find required dxva2api.h])],
2523 [AC_MSG_WARN([dxva2api.h not found])])
2524 ],[#include <d3d9.h>])
2526 AS_IF([test "x${enable_dxva2}" != "x"], [
2527 AC_MSG_ERROR([--enable-dxva2 and --disable-avcodec options are mutually exclusive.])
2532 AM_CONDITIONAL([HAVE_AVCODEC_DXVA2], [test "${have_avcodec_dxva2}" = "yes"])
2535 dnl d3d11va needs avcodec
2537 AC_ARG_ENABLE([d3d11va],
2538 AS_HELP_STRING([--enable-d3d11va], [D3D11 GPU decoding support (default auto)]))
2540 have_avcodec_d3d11va="no"
2541 AS_IF([test "${enable_d3d11va}" != "no"], [
2542 if test "${SYS}" = "mingw32"; then
2543 AS_IF([test "x${have_avcodec}" = "xyes"], [
2544 AC_CHECK_TYPES([ID3D11VideoDecoder],
2546 AC_CHECK_HEADERS([dxva2api.h],
2548 AC_CHECK_HEADERS([libavcodec/d3d11va.h], [
2549 AC_MSG_NOTICE([D3D11 acceleration activated])
2550 AC_DEFINE([HAVE_AVCODEC_D3D11VA], [1], [Define if the d3d11va module is built])
2551 have_avcodec_d3d11va="yes"
2553 AS_IF([test "${enable_d3d11va}" = "yes"],
2554 [AC_MSG_ERROR([d3d11va is present but libavcodec/d3d11va.h is missing])],
2555 [AC_MSG_WARN([d3d11va is present but libavcodec/d3d11va.h is missing ])])
2556 ], [#undef _WIN32_WINNT
2557 /* D3D11 is only available in Vista and above */
2558 #define _WIN32_WINNT 0x600])
2560 AS_IF([test "${enable_d3d11va}" = "yes"],
2561 [AC_MSG_ERROR([Could not find required dxva2api.h])],
2562 [AC_MSG_WARN([dxva2api.h not found])])
2563 ],[#include <d3d9.h>])
2565 AS_IF([test "${enable_d3d11va}" = "yes"],
2566 [AC_MSG_ERROR([Could not find required ID3D11VideoDecoder in d3d11.h])],
2567 [AC_MSG_WARN([ID3D11VideoDecoder not found])])
2568 ], [#include <d3d11.h>])
2570 AS_IF([test "x${enable_d3d11va}" != "x"], [
2571 AC_MSG_ERROR([--enable-d3d11va and --disable-avcodec options are mutually exclusive.])
2576 AM_CONDITIONAL([HAVE_AVCODEC_D3D11VA], [test "${have_avcodec_d3d11va}" = "yes"])
2581 AC_CHECK_HEADERS([dxgidebug.h dxgi1_6.h])
2584 dnl avformat demuxer/muxer plugin
2587 AC_ARG_ENABLE([avformat],
2588 AS_HELP_STRING([--enable-avformat], [libavformat containers (default enabled)]),, [
2589 enable_avformat="${have_avcodec}"
2592 AS_IF([test "${enable_avformat}" != "no"], [
2593 PKG_CHECK_MODULES(AVFORMAT,[libavformat >= 53.21.0 libavcodec libavutil], [
2596 CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2597 CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2598 AC_CHECK_HEADERS([libavformat/avformat.h libavformat/avio.h])
2599 AC_CHECK_HEADERS([libavcodec/avcodec.h])
2600 AC_CHECK_HEADERS([libavutil/avutil.h])
2601 AS_IF([test "$enable_merge_ffmpeg" = "no"], [
2606 AC_MSG_ERROR([${AVFORMAT_PKG_ERRORS}. Pass --disable-avformat to ignore this error.])
2609 AM_CONDITIONAL([HAVE_AVFORMAT], [test "${enable_avformat}" != "no"])
2612 dnl swscale image scaling and conversion plugin
2615 AC_ARG_ENABLE([swscale],
2616 AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
2617 (default enabled)]))
2618 if test "${enable_swscale}" != "no"
2620 PKG_CHECK_MODULES(SWSCALE,[libswscale],
2623 CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
2624 CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
2625 AC_CHECK_HEADERS([libswscale/swscale.h])
2626 AC_CHECK_HEADERS([libavutil/avutil.h])
2627 VLC_ADD_PLUGIN([swscale])
2628 VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
2629 VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
2630 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2631 VLC_ADD_LIBS([swscale],[${ac_cv_ld_bsymbolic}])
2635 AC_MSG_ERROR([${SWSCALE_PKG_ERRORS}. Pass --disable-swscale to ignore this error. Proper software scaling and some video chroma conversion will be missing.])
2643 AC_ARG_ENABLE([postproc],
2644 AS_HELP_STRING([--enable-postproc], [libpostproc image post-processing (default auto)]))
2645 if test "${enable_postproc}" != "no"
2647 PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
2650 CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
2651 CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
2652 AC_CHECK_HEADERS([postproc/postprocess.h])
2653 VLC_ADD_PLUGIN([postproc])
2656 AC_MSG_WARN([${POSTPROC_PKG_ERRORS}.])
2661 dnl faad decoder plugin
2663 AC_ARG_ENABLE([faad],
2664 AS_HELP_STRING([--enable-faad], [faad codec (default auto)]))
2666 AS_IF([test "${enable_faad}" != "no"], [
2667 AC_CHECK_HEADERS([neaacdec.h], [
2668 AC_CHECK_LIB([faad], [NeAACDecOpen], [have_faad="yes"],, [$LIBM])
2670 AS_IF([test "${have_faad}" = "yes"], [
2671 VLC_ADD_PLUGIN([faad])
2672 VLC_ADD_LIBS([faad],[-lfaad])
2674 AS_IF([test "${enable_faad}" = "yes"], [
2675 AC_MSG_ERROR([cannot find FAAD library])
2677 AC_MSG_WARN([cannot find FAAD library])
2684 dnl AOM decoder plugin
2686 PKG_ENABLE_MODULES_VLC([AOM], [], [aom], [experimental AV1 codec (default auto)])
2689 dnl Dav1d decoder plugin
2691 PKG_ENABLE_MODULES_VLC([DAV1D], [], [dav1d], [AV1 decoder (default auto)])
2694 dnl libvpx decoder plugin
2696 AC_ARG_ENABLE([vpx],
2697 AS_HELP_STRING([--enable-vpx],[libvpx VP8/VP9 encoder and decoder (default auto)]))
2698 AS_IF([test "${enable_vpx}" != "no"],[
2699 PKG_CHECK_MODULES([VPX], [vpx >= 1.5.0], [
2700 VLC_ADD_PLUGIN([vpx])
2701 VLC_ADD_CPPFLAGS([vpx], [${VPX_CFLAGS}])
2702 VLC_ADD_LIBS([vpx], [${VPX_LIBS}])
2703 AC_CHECK_LIB([vpx],[vpx_codec_vp8_dx], [
2704 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP8_DECODER])
2705 ], [], [${VPX_LIBS}])
2706 AC_CHECK_LIB([vpx],[vpx_codec_vp9_dx], [
2707 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP9_DECODER])
2708 ], [], [${VPX_LIBS}])
2709 AC_CHECK_LIB([vpx],[vpx_codec_vp8_cx], [
2710 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP8_ENCODER])
2711 ], [], [${VPX_LIBS}])
2712 AC_CHECK_LIB([vpx],[vpx_codec_vp9_cx], [
2713 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP9_ENCODER])
2714 ], [], [${VPX_LIBS}])
2716 AS_IF([test "${enable_vpx}" = "yes"],[
2717 AC_MSG_ERROR([libvpx 1.5.0 or higher was not found])
2722 dnl twolame encoder plugin
2724 PKG_ENABLE_MODULES_VLC([TWOLAME], [], [twolame], [MPEG Audio Layer 2 encoder], [auto], [], [], [ -DLIBTWOLAME_STATIC])
2727 dnl fdk-aac encoder plugin
2729 PKG_ENABLE_MODULES_VLC([FDKAAC], [], [fdk-aac], [FDK-AAC encoder], [disabled])
2733 dnl A52/AC3 decoder plugin
2735 AC_ARG_ENABLE([a52],
2736 AS_HELP_STRING([--enable-a52], [A/52 support with liba52 (default enabled)]))
2737 if test "${enable_a52}" != "no"
2740 AS_HELP_STRING([--with-a52=PATH], [a52 headers and libraries]))
2741 if test -z "${with_a52}"
2746 LDFLAGS_test="-L${with_a52}/lib"
2747 CPPFLAGS_test="-I${with_a52}/include"
2750 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_test} ${CPPFLAGS_a52}"
2751 LDFLAGS="${LDFLAGS} ${LDFLAGS_test} ${LIBS_a52}"
2752 AC_CHECK_HEADERS([a52dec/a52.h], [
2753 AC_CHECK_LIB([a52], [a52_free], [
2754 VLC_ADD_PLUGIN([a52])
2755 VLC_ADD_LIBS([a52],[${LDFLAGS_test} -la52 $LIBM])
2756 VLC_ADD_CPPFLAGS([a52],[${CPPFLAGS_test}])
2758 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.])
2761 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.])
2767 dnl DTS Coherent Acoustics decoder plugin
2769 PKG_ENABLE_MODULES_VLC([DCA], [dca], [libdca >= 0.0.5], [DTS Coherent Acoustics support with libdca], [auto])
2774 PKG_ENABLE_MODULES_VLC([FLAC], [], [flac], [libflac decoder/encoder support], [auto])
2779 PKG_ENABLE_MODULES_VLC([LIBMPEG2], [], [libmpeg2 > 0.3.2], [libmpeg2 decoder support], [auto])
2784 PKG_ENABLE_MODULES_VLC([VORBIS], [], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
2789 AC_ARG_ENABLE([tremor],
2790 AS_HELP_STRING([--enable-tremor], [Tremor decoder support (default disabled)]))
2791 if test "${enable_tremor}" = "yes"
2793 AC_CHECK_HEADERS([tremor/ivorbiscodec.h], [
2794 VLC_ADD_PLUGIN([tremor])
2801 PKG_ENABLE_MODULES_VLC([SPEEX], [], [ogg speex >= 1.0.5], [Speex support], [auto])
2803 AS_IF([test "${enable_speex}" != "no"], [
2804 PKG_CHECK_MODULES([SPEEXDSP], [speexdsp], [
2807 AC_MSG_WARN([${SPEEXDSP_PKG_ERRORS}.])
2810 AM_CONDITIONAL([HAVE_SPEEXDSP], [test "$have_speexdsp" = "yes"])
2815 PKG_ENABLE_MODULES_VLC([OPUS], [], [ogg opus >= 1.0.3], [Opus support], [auto])
2818 dnl Ambisonic channel mixer and binauralizer plugin
2820 PKG_ENABLE_MODULES_VLC([SPATIALAUDIO], [], [spatialaudio], [Ambisonic channel mixer and binauralizer], [auto])
2823 dnl theora decoder plugin
2825 PKG_ENABLE_MODULES_VLC([THEORA], [], [ogg theoradec >= 1.0 theoraenc], [experimental theora codec], [auto])
2828 dnl OggSpots decoder plugin
2830 PKG_ENABLE_MODULES_VLC([OGGSPOTS], [], [ogg], [experimental OggSpots codec], [auto])
2833 dnl Daala decoder plugin
2835 PKG_ENABLE_MODULES_VLC([DAALA], [], [daaladec daalaenc], [experimental daala codec], [disabled])
2838 dnl schroedinger decoder plugin (for dirac format video)
2840 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [], [schroedinger-1.0 >= 1.0.10], [dirac decoder and encoder using schroedinger], [auto])
2843 dnl PNG decoder module
2845 AC_ARG_ENABLE([png],
2846 AS_HELP_STRING([--enable-png], [PNG support (default enabled)]))
2847 AS_IF([test "${enable_png}" != "no"], [
2848 AC_CHECK_HEADERS([png.h], [
2850 LDFLAGS="${LDFLAGS} -lz $LIBM"
2851 AC_CHECK_LIB([png], [png_set_alpha_mode], [
2852 VLC_ADD_PLUGIN([png])
2859 dnl JPEG decoder module
2861 AC_ARG_ENABLE([jpeg],
2862 AS_HELP_STRING([--enable-jpeg], [JPEG support (default enabled)]))
2863 AS_IF([test "${enable_jpeg}" != "no"], [
2864 AC_CHECK_HEADERS([jpeglib.h], [
2865 VLC_ADD_PLUGIN([jpeg])
2870 dnl BPG decoder module
2872 AC_ARG_ENABLE([bpg],
2873 AS_HELP_STRING([--enable-bpg], [BPG support (default disabled)]))
2874 AS_IF([test "${enable_bpg}" != "no"], [
2875 AC_CHECK_HEADERS([libbpg.h], [
2876 VLC_ADD_PLUGIN([bpg])
2881 dnl H262 encoder plugin (lib262)
2883 AC_ARG_ENABLE([x262],
2884 AS_HELP_STRING([--enable-x262], [H262 encoding support with static libx262 (default disabled)]))
2885 if test "${enable_x262}" != "no"; then
2886 PKG_CHECK_MODULES(X262, x262, [
2887 VLC_ADD_PLUGIN([x262])
2888 VLC_ADD_LDFLAGS([x262],[${X262_LIBS}])
2889 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2890 VLC_ADD_LIBS([x262],[${av_cv_ld_bsymbolic}])
2892 VLC_ADD_CFLAGS([x262],[${X262_CFLAGS}])
2893 if echo ${X262_LIBS} |grep -q 'pthreadGC2'; then
2894 VLC_ADD_CFLAGS([x262], [-DPTW32_STATIC_LIB])
2897 if test "${enable_x262}" = "yes"; then
2898 AC_MSG_ERROR([x262 module doesn't work without staticly compiled libx262.a])
2904 PKG_ENABLE_MODULES_VLC([X265],, [x265], [HEVC/H.265 encoder], [auto])
2907 dnl H264 encoder plugin (using libx264)
2909 AC_ARG_ENABLE([x264],
2910 AS_HELP_STRING([--enable-x264], [H264 encoding support with libx264 (default enabled)]))
2911 if test "${enable_x264}" != "no"; then
2912 PKG_CHECK_MODULES(X264,x264 >= 0.148, [
2913 VLC_ADD_PLUGIN([x264])
2914 VLC_ADD_LIBS([x264],[${X264_LIBS}])
2916 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2917 VLC_ADD_LDFLAGS([x264],[${ac_cv_ld_bsymbolic}])
2920 VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
2921 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
2922 VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
2925 if test "${enable_x264}" = "yes"; then
2926 AC_MSG_ERROR([${X264_PKG_ERRORS}: you may get it from http://www.videolan.org/x264.html])
2932 dnl H264 encoder plugin (libx264 > 153)
2934 AC_ARG_ENABLE([x26410b],
2935 AS_HELP_STRING([--enable-x26410b], [H264 10-bit encoding support with libx264 (default enabled)]))
2936 if test "${enable_x26410b}" != "no"; then
2937 PKG_CHECK_MODULES(X26410b,x264 >= 0.153, [
2938 VLC_ADD_PLUGIN([x26410b])
2939 VLC_ADD_LIBS([x26410b],[${X264_LIBS}])
2941 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2942 VLC_ADD_LDFLAGS([x26410b],[${ac_cv_ld_bsymbolic}])
2945 VLC_ADD_CFLAGS([x26410b],[${X264_CFLAGS}])
2946 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
2947 VLC_ADD_CFLAGS([x26410b], [-DPTW32_STATIC_LIB])
2950 if test "${enable_x26410b}" = "yes"; then
2951 AC_MSG_ERROR([${X264_PKG_ERRORS}: you may get it from http://www.videolan.org/x264.html])
2958 dnl Intel QuickSync (aka MediaSDK) H264/H262 encoder
2960 PKG_ENABLE_MODULES_VLC([MFX], [qsv], [libmfx], [Intel QuickSync MPEG4-Part10/MPEG2 (aka H.264/H.262) encoder], [auto])
2963 dnl libfluidsynth (MIDI synthetizer) plugin
2965 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [], [fluidsynth >= 1.1.2], [MIDI synthetiser with libfluidsynth], [auto])
2966 PKG_ENABLE_MODULES_VLC([FLUIDLITE], [fluidsynth], [fluidlite], [MIDI synthetiser with libfluidsynth], [auto])
2967 AC_CHECK_HEADERS([fluidlite.h], [AC_SUBST([FLUIDSYNTH_LIBS], ${FLUIDLITE_LIBS})])
2970 dnl Teletext Modules
2971 dnl vbi decoder plugin (using libzbvi)
2975 AC_ARG_ENABLE([zvbi],
2976 AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
2977 libzvbi (default enabled)]))
2978 AC_ARG_ENABLE([telx],
2979 AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
2980 zvbi) (default enabled if zvbi is absent)]))
2982 AS_IF( [test "${enable_zvbi}" != "no"],[
2983 PKG_CHECK_MODULES(ZVBI, [zvbi-0.2 >= 0.2.28],
2985 VLC_ADD_PLUGIN([zvbi])
2986 AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
2987 AS_IF( [test "${enable_telx}" = "yes"],[
2988 AC_MSG_WARN([The zvbi and telx modules are incompatible. Using zvbi.])
2991 AC_MSG_WARN([${ZVBI_PKG_ERRORS}. Enabling the telx module instead.])
2994 AS_IF( [test "${enable_telx}" != "no" ],[
2995 VLC_ADD_PLUGIN([telx])
2999 dnl ARIB subtitles rendering module
3001 AC_ARG_ENABLE([aribsub],
3002 AS_HELP_STRING([--enable-aribsub],[ARIB Subtitles support (default enabled)]))
3003 AS_IF( [test "${enable_aribsub}" != "no" ],[
3004 PKG_CHECK_MODULES(ARIBB24, [aribb24 >= 1.0.1], [
3006 VLC_ADD_PLUGIN([aribsub])
3007 VLC_ADD_LIBS([aribsub],[-laribb24])
3008 AC_DEFINE(HAVE_ARIBB24, 1, [Define if libaribb24 is available.])
3010 AC_MSG_WARN(Library [aribb24] needed for [aribsub] was not found)
3014 AM_CONDITIONAL([HAVE_ARIBB24], [test x"${have_aribb24}" = x"yes"])
3019 PKG_ENABLE_MODULES_VLC([ARIBB25], [aribcam], [aribb25 >= 0.2.6], [ARIB STD-B25], [auto])
3022 dnl kate decoder plugin
3024 PKG_ENABLE_MODULES_VLC([KATE], [], [kate >= 0.3.0], [kate codec], [auto])
3027 dnl tiger rendering for kate decoder plugin
3029 AC_ARG_ENABLE([tiger],
3030 AS_HELP_STRING([--enable-tiger], [Tiger rendering library for Kate streams (default auto)]))
3031 AS_IF([test "${enable_tiger}" != "no"], [
3032 PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
3033 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])],[
3034 AS_IF([test -n "${enable_tiger}"], [
3035 AC_MSG_ERROR([${TIGER_PKG_ERRORS}.])
3041 dnl check if we can build the css selector engine
3043 AC_ARG_ENABLE([css],
3044 AS_HELP_STRING([--enable-css], [CSS selector engine (default auto)]))
3045 AS_IF([test "${enable_css}" != "no"], [
3047 AC_DEFINE(HAVE_CSS, 1, [Define if CSS engine is built])
3049 AM_CONDITIONAL([ENABLE_CSS], [test "${with_css}" = "yes"])
3056 EXTEND_HELP_STRING([Video plugins:])
3059 dnl libplacebo support
3061 AC_ARG_ENABLE([libplacebo],
3062 AS_HELP_STRING([--disable-libplacebo],
3063 [disable libplacebo support (default auto)]))
3065 AS_IF([test "$enable_libplacebo" != "no"], [
3066 PKG_CHECK_MODULES([LIBPLACEBO], [libplacebo >= 0.5], [
3067 AC_DEFINE([HAVE_LIBPLACEBO], [1], [Define to 1 if libplacebo is enabled.])
3068 PKG_CHECK_MODULES([LIBPLACEBO], [libplacebo >= 1.7],
3069 [have_libplacebo_vk="yes"], [have_libplacebo_vk="no"])
3071 AS_IF([test -n "${enable_libplacebo}"], [
3072 AC_MSG_ERROR([${LIBPLACEBO_PKG_ERRORS}.])
3074 enable_libplacebo="no"
3077 AM_CONDITIONAL([HAVE_LIBPLACEBO], [test "$enable_libplacebo" != "no"])
3082 PKG_CHECK_MODULES([EGL], [egl], [
3087 AM_CONDITIONAL([HAVE_EGL], [test "${have_egl}" = "yes"])
3090 PKG_CHECK_MODULES([GL], [gl], [
3093 AC_MSG_CHECKING([for OpenGL])
3094 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
3096 # include <GL/glew.h>
3100 [int t0 = GL_TEXTURE0;]])
3104 AS_IF([test "${SYS}" != "mingw32"], [
3107 GL_LIBS="-lopengl32"
3110 AC_MSG_RESULT([${have_gl}])
3112 AM_CONDITIONAL([HAVE_GL], [test "${have_gl}" = "yes"])
3113 AS_IF([test "${have_gl}" = "yes"], [
3114 AC_DEFINE([HAVE_GL], 1, [Defined if having OpenGL])
3117 dnl OpenGL ES 2: depends on EGL 1.1
3118 PKG_ENABLE_MODULES_VLC([GLES2], [], [glesv2], [OpenGL ES v2 support], [disabled])
3123 AC_ARG_ENABLE(vulkan,
3124 [AS_HELP_STRING([--disable-vulkan],
3125 [disable Vulkan support (default auto)])])
3127 AS_IF([test "$enable_vulkan" != "no"], [
3128 AS_IF([test "$have_libplacebo_vk" = "yes"], [
3129 PKG_CHECK_MODULES([VULKAN], [vulkan >= 1.0.26], [
3130 AC_DEFINE([HAVE_VULKAN], [1], [Define to 1 if vulkan is enabled.])
3132 AS_IF([test -n "${enable_vulkan}"], [
3133 AC_MSG_ERROR([${VULKAN_PKG_ERRORS}.])
3138 AS_IF([test -n "${enable_vulkan}"], [
3139 AC_MSG_ERROR([Vulkan support requires libplacebo 1.7 as well. Do not use --disable-libplacebo.])
3144 AM_CONDITIONAL(HAVE_VULKAN, [test "$enable_vulkan" != "no"])
3151 AC_CHECK_HEADERS([X11/Xlib.h])
3154 dnl X C Bindings modules
3156 AC_ARG_ENABLE([xcb],
3157 AS_HELP_STRING([--enable-xcb], [X11 support with XCB (default enabled)]),, [
3158 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "darwin"], [
3166 have_xkbcommon_x11="no"
3167 have_xcb_keysyms="no"
3168 AS_IF([test "${enable_xcb}" != "no"], [
3172 PKG_CHECK_MODULES([XCB], [xcb >= 1.6],, [
3173 xcb_err="$xcb_err ${XCB_PKG_ERRORS}."])
3174 PKG_CHECK_MODULES([XCB_COMPOSITE], [xcb-composite],, [
3175 xcb_err="$xcb_err ${XCB_COMPOSITE_PKG_ERRORS}."])
3176 PKG_CHECK_MODULES([XCB_RANDR], [xcb-randr >= 1.3],, [
3177 xcb_err="$xcb_err ${XCB_RANDR_PKG_ERRORS}."])
3178 PKG_CHECK_MODULES([XCB_RENDER], [xcb-render],, [
3179 xcb_err="$xcb_err ${XCB_RENDER_PKG_ERRORS}."])
3180 PKG_CHECK_MODULES([XCB_SHM], [xcb-shm >= 1.9.2],, [
3181 xcb_err="$xcb_err ${XCB_SHM_PKG_ERRORS}."])
3182 PKG_CHECK_MODULES([XCB_XKB], [xcb-xkb],, [
3183 xcb_err="$xcb_err ${XCB_XKB_PKG_ERRORS}."])
3184 PKG_CHECK_MODULES([XCB_XV], [xcb-xv >= 1.1.90.1],, [
3185 xcb_err="$xcb_err ${XCB_XV_PKG_ERRORS}."])
3188 PKG_CHECK_MODULES(XPROTO, [xproto],, [
3189 xcb_err="$xcb_err ${XPROTO_PKG_ERRORS}."])
3191 AS_IF([test -n "$xcb_err"], [
3192 AC_MSG_ERROR([$xcb_err Pass --disable-xcb to skip X11 support.])
3196 PKG_CHECK_MODULES([XKBCOMMON_X11], [xkbcommon-x11], [
3197 have_xkbcommon_x11="yes"
3199 AC_MSG_WARN([${XKBCOMMON_X11_PKG_ERRORS}. Hotkeys are disabled.])
3203 PKG_CHECK_MODULES([XCB_KEYSYMS], [xcb-keysyms >= 0.3.4], [
3204 have_xcb_keysyms="yes"
3206 AC_MSG_WARN([${XCB_KEYSYMS_PKG_ERRORS}. Global hotkeys are disabled.])
3211 AM_CONDITIONAL([HAVE_XCB], [test "${have_xcb}" = "yes"])
3212 AM_CONDITIONAL([HAVE_XKBCOMMON_X11], [test "${have_xkbcommon_x11}" = "yes"])
3213 AM_CONDITIONAL([HAVE_XCB_KEYSYMS], [test "${have_xcb_keysyms}" = "yes"])
3219 AC_ARG_ENABLE([vdpau],
3220 [AS_HELP_STRING([--enable-vdpau], [VDPAU hardware support (default auto)])])
3222 AS_IF([test "${enable_vdpau}" != "no"], [
3223 PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.6], [
3225 AS_IF([test "${no_x}" = "yes"], [
3226 AC_MSG_ERROR([VDPAU requires Xlib (X11).])
3229 AS_IF([test -n "${enable_vdpau}"], [
3230 AC_MSG_ERROR([${VDPAU_PKG_ERRORS}.])
3234 AM_CONDITIONAL([HAVE_VDPAU], [test "${have_vdpau}" = "yes"])
3236 have_avcodec_vdpau="no"
3237 AS_IF([test "${have_vdpau}" = "yes" -a "${have_avcodec}" = "yes"], [
3239 libav) av_vdpau_ver="56.10.0" ;;
3240 ffmpeg) av_vdpau_ver="56.19.100" ;;
3242 PKG_CHECK_EXISTS([libavcodec >= ${av_vdpau_ver}], [
3243 have_avcodec_vdpau="yes"
3244 AC_MSG_NOTICE([VDPAU decoding acceleration activated])
3246 AS_IF([test -n "${enable_vdpau}"], [
3247 AC_MSG_ERROR([libavcodec >= 56.10.0 is required for VDPAU decoding.])
3249 AC_MSG_WARN([libavcodec >= 56.10.0 are required for VDPAU decoding.])
3253 AM_CONDITIONAL([HAVE_AVCODEC_VDPAU], [test "${have_avcodec_vdpau}" = "yes"])
3259 AC_ARG_ENABLE([wayland],
3260 AS_HELP_STRING([--enable-wayland], [Wayland support (default auto)]))
3263 AS_IF([test "${enable_wayland}" != "no"], [
3267 PKG_CHECK_MODULES([WAYLAND_CLIENT], [wayland-client >= 1.5.91],, [
3268 wl_err="$wl_err ${WAYLAND_CLIENT_PKG_ERRORS}."
3270 PKG_CHECK_MODULES([WAYLAND_CURSOR], [wayland-cursor],, [
3271 wl_err="$wl_err ${WAYLAND_CURSOR_PKG_ERRORS}."
3273 PKG_CHECK_MODULES([WAYLAND_EGL], [wayland-egl],, [
3274 wl_err="$wl_err ${WAYLAND_EGL_PKG_ERRORS}."
3276 PKG_CHECK_MODULES([WAYLAND_SCANNER], [wayland-scanner >= 1.15], [
3277 WAYLAND_SCANNER="$(${PKG_CONFIG} wayland-scanner --variable wayland_scanner)"
3279 wl_err="$wl_err ${WAYLAND_SCANNER_PKG_ERRORS}."
3282 dnl wayland-protocols
3283 PKG_CHECK_MODULES([WAYLAND_PROTOCOLS], [wayland-protocols >= 1.15], [
3284 WAYLAND_PROTOCOLS="$(${PKG_CONFIG} wayland-protocols --variable pkgdatadir)"
3286 wl_err="$wl_err ${WAYLAND_PROTOCOLS_PKG_ERRORS}."
3289 AS_IF([test -n "$wl_err"], [
3290 AS_IF([test -n "$enable_wayland"], [
3291 AC_MSG_ERROR([$wl_err])
3293 AC_MSG_WARN([$wl_err])
3300 PKG_CHECK_MODULES([XKBCOMMON], [xkbcommon], [
3301 have_xkbcommon="yes"
3303 AC_MSG_WARN([${XKBCOMMON_PKG_ERRORS}. Hotkeys are disabled.])
3306 AM_CONDITIONAL([HAVE_WAYLAND], [test "${have_wayland}" = "yes"])
3307 AC_SUBST([WAYLAND_PROTOCOLS])
3308 AC_SUBST([WAYLAND_SCANNER])
3309 AM_CONDITIONAL([HAVE_XKBCOMMON], [test "${have_xkbcommon}" = "yes"])
3313 dnl SDL image decoder module
3315 AC_ARG_ENABLE([sdl-image],
3316 AS_HELP_STRING([--enable-sdl-image], [SDL image support (default enabled)]))
3317 AS_IF([test "${enable_sdl_image}" != "no"],[
3318 PKG_CHECK_MODULES(SDL_IMAGE, [SDL_image >= 1.2.10], [
3319 VLC_ADD_PLUGIN([sdl_image])
3321 AC_MSG_WARN([${SDL_IMAGE_PKG_ERRORS}. You should install it alongside your SDL package.])
3328 AC_ARG_ENABLE([freetype],
3329 AS_HELP_STRING([--enable-freetype], [freetype support (default auto)]))
3330 AC_ARG_ENABLE([fribidi],
3331 AS_HELP_STRING([--enable-fribidi], [fribidi support (default auto)]))
3332 AC_ARG_ENABLE([harfbuzz],
3333 AS_HELP_STRING([--enable-harfbuzz], [harfbuzz support (default auto)]))
3334 AC_ARG_ENABLE([fontconfig],
3335 AS_HELP_STRING([--enable-fontconfig], [fontconfig support (default auto)]))
3337 AC_ARG_WITH([default-font],
3338 AS_HELP_STRING([--with-default-font=PATH],
3339 [Path to the default font]),
3340 [AC_DEFINE_UNQUOTED([DEFAULT_FONT_FILE],
3341 "$withval", [Default font])])
3342 AC_ARG_WITH([default-monospace-font],
3343 AS_HELP_STRING([--with-default-monospace-font=PATH],
3344 [Path to the default font]),
3345 [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FONT_FILE],
3346 "$withval", [Default monospace font])])
3348 AC_ARG_WITH([default-font-family],
3349 AS_HELP_STRING([--with-default-font-family=NAME],
3350 [Name of the default font family]),
3351 [AC_DEFINE_UNQUOTED([DEFAULT_FAMILY],
3352 "$withval", [Default font family])])
3353 AC_ARG_WITH([default-monospace-font-family],
3354 AS_HELP_STRING([--with-default-monospace-font-family=NAME],
3355 [Name of the default font family]),
3356 [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FAMILY],
3357 "$withval", [Default monospace font family])])
3360 have_fontconfig="no"
3364 if test "${enable_freetype}" != "no"; then
3365 PKG_CHECK_MODULES(FREETYPE, freetype2, [
3367 VLC_ADD_CPPFLAGS([skins2],[${FREETYPE_CFLAGS}])
3368 VLC_ADD_LIBS([skins2],[${FREETYPE_LIBS}])
3370 dnl fontconfig support
3371 AS_IF([test "${enable_fontconfig}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "darwin"], [
3372 PKG_CHECK_MODULES(FONTCONFIG, [fontconfig >= 2.11], [
3373 have_fontconfig="yes"
3375 AC_MSG_WARN([${FONTCONFIG_PKG_ERRORS}. Styles will be disabled in FreeType.])
3380 if test "${enable_fribidi}" != "no"; then
3381 PKG_CHECK_MODULES(FRIBIDI, fribidi, [
3383 VLC_ADD_CPPFLAGS([skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
3384 VLC_ADD_LIBS([skins2], [${FRIBIDI_LIBS}])
3385 ],[AC_MSG_WARN([${FRIBIDI_PKG_ERRORS}. Bidirectional text and complex scripts (Arabic, Farsi, Thai...) will be disabled in FreeType.])])
3388 dnl harfbuzz support
3389 if test "${have_fribidi}" != "no"; then
3390 if test "${enable_harfbuzz}" != "no"; then
3391 PKG_CHECK_MODULES(HARFBUZZ, harfbuzz, [
3393 VLC_ADD_CPPFLAGS([skins2], [${HARFBUZZ_CFLAGS} -DHAVE_HARFBUZZ])
3394 VLC_ADD_LIBS([skins2], [${HARFBUZZ_LIBS}])
3395 ],[AC_MSG_WARN([${HARFBUZZ_PKG_ERRORS}. Support for complex scripts (Arabic, Farsi, Thai...) will be disabled in FreeType.])])
3399 AS_IF([test -n "${enable_freetype}"],[
3400 AC_MSG_ERROR([${FREETYPE_PKG_ERRORS}. Install FreeType2 development or configure with --disable-freetype.])
3405 AM_CONDITIONAL([HAVE_FREETYPE], [test "${have_freetype}" = "yes"])
3406 AM_CONDITIONAL([HAVE_FONTCONFIG], [test "${have_fontconfig}" = "yes"])
3407 AM_CONDITIONAL([HAVE_FRIBIDI], [test "${have_fribidi}" = "yes"])
3408 AM_CONDITIONAL([HAVE_HARFBUZZ], [test "${have_harfbuzz}" = "yes"])
3411 dnl libass subtitle rendering module
3413 AC_ARG_ENABLE([libass],
3414 AS_HELP_STRING([--enable-libass], [Subtitle support using libass (default enabled)]))
3415 AS_IF( [test "${enable_libass}" != "no"], [
3416 PKG_CHECK_MODULES(LIBASS, [libass >= 0.9.8],
3418 VLC_ADD_PLUGIN([libass])
3420 if test "${have_fontconfig}" != "no"; then
3421 VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
3422 VLC_ADD_LIBS([libass],[${FONTCONFIG_LIBS}])
3425 AC_MSG_WARN([${LIBASS_PKG_ERRORS}.])
3430 dnl SAPI (text to Speech renderer for Windows)
3433 AC_CHECK_TYPES([ISpObjectToken],[
3435 ],[AC_MSG_WARN([sapi.h not found. Text to Speech renderer for Windows disabled])],
3436 [#include <windows.h>
3438 #include <sphelper.h>])
3439 AM_CONDITIONAL([HAVE_SAPI], [test "${have_sapi}" = "yes"])
3443 dnl SVG module (text rendering and image decoding)
3445 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3446 PKG_ENABLE_MODULES_VLC([SVGDEC], [], [librsvg-2.0 >= 2.9.0 cairo >= 1.13.1], [SVG image decoder library],[auto])
3449 dnl Windows DirectX module
3452 AC_ARG_ENABLE([directx],
3453 AS_HELP_STRING([--enable-directx],
3454 [Microsoft DirectX support (default enabled on Windows)]),, [
3455 AS_IF([test "${SYS}" = "mingw32"], [
3456 enable_directx="yes"
3461 AS_IF([test "${enable_directx}" != "no"], [
3463 AC_CHECK_HEADERS([ddraw.h], [
3464 VLC_ADD_PLUGIN([directdraw])
3468 AC_CHECK_HEADERS([GL/glew.h], [
3469 AC_CHECK_HEADERS([GL/wglew.h], [
3470 VLC_ADD_PLUGIN([glwin32 wgl])
3472 #include <windows.h>
3473 #include <GL/glew.h>
3475 #include <windows.h>
3479 AC_CHECK_HEADERS([d3d11.h], [
3480 VLC_ADD_PLUGIN([direct3d11 direct3d11_filters])
3484 AC_CHECK_HEADERS([d3d9.h], [
3485 VLC_ADD_PLUGIN([direct3d9])
3486 AC_CHECK_HEADERS([d3dx9effect.h])
3488 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
3489 [[#define COBJMACROS
3491 #include <dxva2api.h>
3492 #ifndef IDirectXVideoProcessorService_GetVideoProcessorDeviceGuids
3493 # error dxva2 too old
3497 VLC_ADD_PLUGIN([direct3d9_filters])
3499 [AC_MSG_WARN([Could not find required IDirectXVideoDecoder in dxva2api.h])])
3505 dnl Linux framebuffer module
3507 AC_CHECK_HEADER([linux/fb.h], [
3508 VLC_ADD_PLUGIN([fb])
3512 dnl Linux kernel mode setting module
3514 PKG_ENABLE_MODULES_VLC([KMS], [], [libdrm >= 2.4.83], [Linux kernel mode setting output], [auto])
3519 PKG_ENABLE_MODULES_VLC([CACA], [], [caca >= 0.99.beta14], [libcaca output],[auto])
3524 AC_ARG_ENABLE([kva],
3525 AS_HELP_STRING([--enable-kva],
3526 [support the K Video Accelerator KVA (default enabled on OS/2)]),, [
3527 AS_IF([test "$SYS" = "os2"], [
3533 AS_IF([test "$enable_kva" != "no"], [
3534 AC_CHECK_HEADERS([kva.h], [
3536 AC_CHECK_LIB([kva], [main], [
3541 AC_SUBST([KVA_LIBS])
3542 AM_CONDITIONAL([HAVE_KVA], [test "${have_kva}" = "yes"])
3547 AC_ARG_ENABLE([mmal],
3548 AS_HELP_STRING([--enable-mmal],
3549 [Multi-Media Abstraction Layer (MMAL) hardware plugin (default enable)]))
3550 if test "${enable_mmal}" != "no"; then
3552 LDFLAGS="${LDFLAGS} -L/opt/vc/lib -lvchostif"
3553 CPPFLAGS="${CPPFLAGS} -isystem /opt/vc/include -isystem /opt/vc/include/interface/vcos/pthreads -isystem /opt/vc/include/interface/vmcs_host/linux"
3554 AC_CHECK_HEADERS([interface/mmal/mmal.h],
3555 [ AC_CHECK_LIB([bcm_host], [vc_tv_unregister_callback_full], [
3557 VLC_ADD_PLUGIN([mmal])
3558 VLC_ADD_LDFLAGS([mmal],[ -L/opt/vc/lib ])
3559 VLC_ADD_CFLAGS([mmal],[ -isystem /opt/vc/include -isystem /opt/vc/include/interface/vcos/pthreads -isystem /opt/vc/include/interface/vmcs_host/linux ])
3560 VLC_ADD_LIBS([mmal],[ -lbcm_host -lmmal -lmmal_core -lmmal_components -lmmal_util -lvchostif ]) ], [
3561 AS_IF([test "${enable_mmal}" = "yes"],
3562 [ AC_MSG_ERROR([Cannot find bcm library...]) ],
3563 [ AC_MSG_WARN([Cannot find bcm library...]) ])
3566 ] , [ AS_IF([test "${enable_mmal}" = "yes"],
3567 [ AC_MSG_ERROR([Cannot find development headers for mmal...]) ],
3568 [ AC_MSG_WARN([Cannot find development headers for mmal...]) ]) ])
3571 AM_CONDITIONAL([HAVE_MMAL], [test "${have_mmal}" = "yes"])
3577 EXTEND_HELP_STRING([Audio plugins:])
3580 dnl Pulseaudio module
3582 AC_ARG_ENABLE([pulse],
3583 AS_HELP_STRING([--enable-pulse],
3584 [use the PulseAudio client library (default auto)]))
3586 AS_IF([test "${enable_pulse}" != "no"], [
3587 PKG_CHECK_MODULES([PULSE], [libpulse >= 1.0], [
3590 AS_IF([test "x${enable_pulse}" != "x"], [
3591 AC_MSG_ERROR([$PULSE_PKG_ERRORS. PulseAudio 1.0 or later required.])
3595 AM_CONDITIONAL([HAVE_PULSE], [test "${have_pulse}" = "yes"])
3600 AC_ARG_ENABLE([alsa],
3601 AS_HELP_STRING([--enable-alsa],
3602 [support the Advanced Linux Sound Architecture (default auto)]),, [
3603 AS_IF([test "$SYS" = "linux" -a "${have_pulse}" = "no"], [
3608 AS_IF([test "${enable_alsa}" != "no"], [
3609 PKG_CHECK_MODULES([ALSA], [alsa >= 1.0.24], [
3612 AS_IF([test "x${enable_alsa}" != "x"], [
3613 AC_MSG_ERROR([$ALSA_PKG_ERRORS. alsa-lib 1.0.24 or later required. Pass --disable-alsa to ignore this error.])
3617 AM_CONDITIONAL([HAVE_ALSA], [test "${have_alsa}" = "yes"])
3620 dnl Open Sound System module
3622 AC_ARG_ENABLE([oss],
3623 AS_HELP_STRING([--enable-oss],
3624 [support the Open Sound System OSS (default enabled on FreeBSD/NetBSD/DragonFlyBSD)]),, [
3625 AS_IF([test "$SYS" = "mingw32" -o "$SYS" = "linux" -o "$SYS" = "openbsd"], [
3631 AS_IF([test "$enable_oss" != "no"], [
3632 AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
3634 AC_CHECK_LIB([ossaudio], [main], [
3635 OSS_LIBS="-lossaudio"
3639 AC_SUBST([OSS_LIBS])
3640 AM_CONDITIONAL([HAVE_OSS], [test "${have_oss}" = "yes"])
3643 dnl OpenBSD sndio module
3645 AC_ARG_ENABLE([sndio],
3646 AS_HELP_STRING([--disable-sndio],
3647 [support the OpenBSD sndio (default auto)]),, [
3648 AS_IF([test "$SYS" = "openbsd"], [
3653 AS_IF([test "$enable_sndio" != "no"], [
3654 AC_CHECK_HEADER([sndio.h], [
3658 AM_CONDITIONAL([HAVE_SNDIO], [test "${have_sndio}" = "yes"])
3661 dnl Windows Audio Session plugin
3663 AC_ARG_ENABLE([wasapi],
3664 AS_HELP_STRING([--enable-wasapi],
3665 [use the Windows Audio Session API (default auto)])
3668 AS_IF([test "$enable_wasapi" != "no"], [
3669 AC_CHECK_HEADER([audioclient.h], [
3672 AS_IF([test "x${enable_wasapi}" != "x"], [
3673 AC_MSG_ERROR([Windows Audio Session API not found.])
3677 AM_CONDITIONAL([HAVE_WASAPI], [test "${have_wasapi}" = "yes"])
3682 AC_ARG_ENABLE([jack],
3683 AS_HELP_STRING([--disable-jack],
3684 [do not use jack (default auto)]))
3686 AS_IF([test "${enable_jack}" != "no"], [
3687 PKG_CHECK_MODULES(JACK, jack >= 1.9.7,
3690 AC_MSG_WARN([${JACK_PKG_ERRORS}, trying jack1 instead])
3692 PKG_CHECK_MODULES(JACK, jack >= 0.120.1 jack < 1.0,
3695 AS_IF([test -n "${enable_jack}"],
3696 [AC_MSG_ERROR([${JACK_PKG_ERRORS}.])],
3697 [AC_MSG_WARN([${JACK_PKG_ERRORS}.])])
3701 AM_CONDITIONAL([HAVE_JACK], [test "${have_jack}" != "no"])
3704 dnl OpenSLES Android
3706 AC_ARG_ENABLE([opensles],
3707 AS_HELP_STRING([--enable-opensles], [Android OpenSL ES audio module (default disabled)]))
3708 if test "${HAVE_ANDROID}" = "1"; then
3709 if test "${enable_opensles}" = "yes"; then
3710 AC_CHECK_HEADERS([SLES/OpenSLES.h],
3711 [ VLC_ADD_PLUGIN([opensles_android]) ],
3712 [ AC_MSG_ERROR([cannot find OpenSLES headers])] )
3719 AC_ARG_ENABLE([tizen_audio],
3720 AS_HELP_STRING([--enable-tizen-audio],
3721 [Tizen audio module (default enabled on Tizen)]),, [
3722 AS_IF([test "$HAVE_TIZEN" = "1"], [
3723 enable_tizen_audio="yes"
3726 if test "${enable_tizen_audio}" = "yes"; then
3727 AC_CHECK_HEADERS([audio_io.h],
3728 [ VLC_ADD_PLUGIN([tizen_audio]) ],
3729 [ AC_MSG_ERROR([cannot find Tizen audio_io headers])] )
3733 dnl libsamplerate plugin
3735 PKG_ENABLE_MODULES_VLC([SAMPLERATE], [], [samplerate], [Resampler with libsamplerate], [auto])
3740 PKG_ENABLE_MODULES_VLC([SOXR], [], [soxr >= 0.1.2], [SoX Resampler library], [auto])
3745 AC_ARG_ENABLE([kai],
3746 AS_HELP_STRING([--enable-kai],
3747 [support the K Audio Interface KAI (default enabled on OS/2)]),, [
3748 AS_IF([test "$SYS" = "os2"], [
3754 AS_IF([test "$enable_kai" != "no"], [
3755 AC_CHECK_HEADERS([kai.h], [
3757 AC_CHECK_LIB([kai], [main], [
3762 AC_SUBST([KAI_LIBS])
3763 AM_CONDITIONAL([HAVE_KAI], [test "${have_kai}" = "yes"])
3766 dnl chromaprint audio track fingerprinter
3768 m4_pushdef([libchromaprint_version], 0.6.0)
3769 PKG_WITH_MODULES([CHROMAPRINT],[libchromaprint >= libchromaprint_version],
3770 VLC_ADD_PLUGIN([stream_out_chromaprint]),
3771 AS_IF([test "${enable_chromaprint}" = "yes"],
3772 [AC_MSG_ERROR(Library [libchromaprint >= libchromaprint_version] needed for [chromaprint] was not found)],
3773 [AC_MSG_WARN(Library [libchromaprint >= libchromaprint_version] needed for [chromaprint] was not found)]
3775 [(Chromaprint based audio fingerprinter)],[auto])
3776 m4_popdef([libchromaprint_version])
3779 dnl Chromecast streaming support
3781 m4_pushdef([protobuf_lite_version], 2.5.0)
3782 AC_ARG_VAR(PROTOC, [protobuf compiler])
3783 AC_CHECK_PROGS(PROTOC, protoc, no)
3784 PKG_WITH_MODULES([CHROMECAST],[protobuf-lite >= protobuf_lite_version], [
3785 AS_IF([test "x${PROTOC}" != "xno"], [
3786 build_chromecast="yes"
3788 AC_MSG_ERROR(protoc compiler needed for [chromecast] was not found)
3791 AS_IF([test "${enable_chromecast}" = "yes"],
3792 AC_MSG_ERROR(Library [protobuf-lite >= protobuf_lite_version] needed for [chromecast] was not found),
3793 AC_MSG_WARN(Library [protobuf-lite >= protobuf_lite_version] needed for [chromecast] was not found)
3795 enable_chromecast="no"
3796 ], [(Chromecast streaming support)], [auto])
3797 AM_CONDITIONAL([BUILD_CHROMECAST], [test "${build_chromecast}" = "yes"])
3798 m4_popdef([protobuf_lite_version])
3801 dnl Interface plugins
3804 EXTEND_HELP_STRING([Interface plugins:])
3810 AS_HELP_STRING([--disable-qt], [Qt UI support (default enabled)]),, [
3811 AS_IF([test "${enable_vlc}" != "no"], [enable_qt="yes"])
3812 AS_IF([test "${SYS}" = "darwin"], [
3817 AS_IF([test "${enable_qt}" != "no"], [
3818 PKG_CHECK_MODULES([QT], [Qt5Core >= 5.9.0 Qt5Widgets Qt5Gui Qt5Svg], [
3819 PKG_CHECK_MODULES([QT5_X11], [Qt5X11Extras], [
3822 AC_MSG_WARN([Not building Qt Interface with X11 helpers.])
3824 QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix Qt5Core)"
3825 QT_HOST_PATH="$(eval $PKG_CONFIG --variable=host_bins Qt5Core)"
3826 QT_VERSION="$(eval $PKG_CONFIG --modversion Qt5Gui)"
3827 AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3828 AC_PATH_PROGS(RCC, [rcc-qt5 rcc], rcc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3829 AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3831 AS_IF([test -n "${enable_qt}"],[
3832 AC_MSG_ERROR([${QT_PKG_ERRORS}. If you want to build VLC without GUI, pass --disable-qt.])
3834 AC_MSG_WARN([${QT_PKG_ERRORS}.])
3840 AS_IF([test "${enable_qt}" != "no"], [
3841 ALIASES="${ALIASES} qvlc"
3843 AC_SUBST([QT_VERSION])
3844 AM_CONDITIONAL([ENABLE_QT], [test "$enable_qt" != "no"])
3845 AM_CONDITIONAL([HAVE_QT5_X11], [test "${have_qt5_x11}" = "yes"])
3848 dnl detect kde4-config patch (used for kde solids).
3850 AC_ARG_VAR([KDE4_CONFIG], [kde4-config utility])
3851 AS_IF([test "x$KDE4_CONFIG" = "x"], [
3852 KDE4_CONFIG="kde4-config"
3856 dnl Simple test for skins2 dependency
3858 AS_IF([test "$enable_qt" = "no"], [
3859 AS_IF([test "${enable_skins2}" = "yes"], [
3860 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.])
3863 AC_MSG_WARN([The skins2 module depends on the Qt interface, Qt is not built so skins2 is disabled.])
3870 AC_ARG_ENABLE([skins2],
3871 AS_HELP_STRING([--enable-skins2], [skins interface module (default auto)]))
3872 AS_IF([test "${enable_skins2}" != "no"], [
3873 have_skins_deps="yes"
3876 AS_IF([test "${SYS}" = "mingw32"], [
3877 VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -DWIN32_SKINS])
3878 VLC_ADD_LIBS([skins2],[-lgdi32 -lole32 -luuid -lmsimg32])
3880 ], [test "${SYS}" = "os2"], [
3881 VLC_ADD_CPPFLAGS([skins2],[ -DOS2_SKINS])
3884 PKG_CHECK_MODULES([XPM], [xpm],, [have_skins_deps="no"])
3885 PKG_CHECK_MODULES([XINERAMA], [xinerama],, [have_skins_deps="no"])
3886 PKG_CHECK_MODULES([XCURSOR], [xcursor],, [have_skins_deps="no"])
3887 PKG_CHECK_MODULES([XEXT], [xext],, [have_skins_deps="no"])
3888 VLC_ADD_CPPFLAGS([skins2],[${X_CFLAGS} ${XEXT_CFLAGS} ${XPM_CFLAGS} -DX11_SKINS])
3889 VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} ${XEXT_LIBS} ${XPM_LIBS} ${XINERAMA_LIBS} ${XCURSOR_LIBS} -lX11])
3892 dnl we need freetype
3893 AS_IF([test "${have_freetype}" != "yes"], [
3894 have_skins_deps="no"
3897 AS_IF([test "${have_skins_deps}" = "no"], [
3898 AS_IF([test "x${enable_skins2}" = "x"], [
3899 AC_MSG_WARN([Skins2 interface disabled due to missing dependencies.])
3901 AC_MSG_ERROR([Skins2 interface requires FreeType, libxcursor, libxpm, libxext and libxinerama])
3905 ALIASES="${ALIASES} svlc"
3909 AM_CONDITIONAL([BUILD_SKINS], [test "${enable_skins2}" = "yes"])
3911 AC_ARG_ENABLE([libtar],
3912 AS_HELP_STRING([--enable-libtar], [libtar support for skins2 (default auto)]))
3913 AS_IF([test "${enable_skins2}" = "yes" && test "${enable_libtar}" != "no"], [
3914 AC_CHECK_HEADERS([libtar.h], [
3915 VLC_ADD_LIBS([skins2],[-ltar])
3920 dnl MacOS X gui module
3922 AC_ARG_ENABLE([macosx],
3923 AS_HELP_STRING([--enable-macosx], [Mac OS X gui support (default enabled on Mac OS X)]))
3924 if test "x${enable_macosx}" != "xno" -a "${SYS}" = "darwin"
3928 dnl If possible, use xcrun to find the right ibtool
3931 AC_PATH_PROG([XCRUN], [xcrun], [no])
3932 AS_IF([test ! "x${XCRUN}" = "xno"], [
3933 AC_MSG_CHECKING([for ibtool (using xcrun)])
3934 XIB="$(eval $XCRUN -f ibtool 2>/dev/null || echo no)"
3935 AC_MSG_RESULT([${XIB}])
3937 AC_MSG_WARN([Looking for tools without using xcrun])
3940 AS_IF([test "x${XIB}" = "xno"], [
3941 AC_PATH_PROG(XIB, [ibtool], [no])
3942 AS_IF([test "x${XIB}" = "xno"], [
3943 AC_MSG_ERROR([ibtool was not found, but is required for --enable-macosx])
3947 AM_CONDITIONAL([ENABLE_MACOSX_UI], [test "$enable_macosx" != "no" -a "${SYS}" = "darwin"])
3950 dnl MacOS X sparkle update support
3952 AC_ARG_ENABLE([sparkle],
3953 AS_HELP_STRING([--enable-sparkle], [Sparkle update support for OS X (default enabled on Mac OS X)]))
3954 if test "x${enable_sparkle}" != "xno" -a "${HAVE_OSX}" = "1"
3956 if test ! -d ${CONTRIB_DIR}/Sparkle.framework -a ! -d ${CONTRIB_DIR}/Frameworks/Sparkle.framework
3958 AC_MSG_ERROR([Sparkle framework is required and was not found in ${CONTRIB_DIR}])
3961 AC_DEFINE([HAVE_SPARKLE], [1], [Define to 1 if sparkle is enabled.])
3963 AM_CONDITIONAL([HAVE_SPARKLE], [test "$enable_sparkle" != "no"])
3966 dnl MacOS X breakpad creash reporter support
3968 AC_ARG_WITH([breakpad],
3969 AS_HELP_STRING([--with-breakpad=URL], [Enable Breakpad reporter using given URL]), [], [with_breakpad=no])
3971 AS_IF([test "$with_breakpad" != "no"], [
3973 AS_IF([test "$with_breakpad" = "yes"], [
3974 AC_MSG_ERROR([You need to supply the CrashDragon Server URL as value for --with-breakpad])
3977 AS_IF([test "$HAVE_OSX" = "1"], [
3978 AC_MSG_CHECKING([for Breakpad framework])
3979 AS_IF([test ! -d ${CONTRIB_DIR}/Breakpad.framework -a \
3980 ! -d ${CONTRIB_DIR}/Frameworks/Breakpad.framework], [
3983 AC_MSG_ERROR([Breakpad framework is required and was not found in ${CONTRIB_DIR}])
3985 AC_MSG_RESULT([yes])
3988 PKG_CHECK_MODULES([BREAKPAD], [breakpad-client], [
3989 LDFLAGS="${LDFLAGS} -Wl,--build-id"
3991 AC_MSG_ERROR(["breakpad not found"])
3996 AM_CONDITIONAL([HAVE_BREAKPAD], [test "$with_breakpad" != "no"])
3997 AS_IF([test "$with_breakpad" != "no"], [
3998 AC_SUBST([BREAKPAD_URL], ["${with_breakpad}"])
4002 dnl Minimal Mac OS X module
4004 AC_ARG_ENABLE([minimal-macosx],
4005 AS_HELP_STRING([--enable-minimal-macosx], [Minimal Mac OS X support (default disabled)]))
4006 if test "${enable_minimal_macosx}" = "yes" -a "${SYS}" = "darwin"
4008 VLC_ADD_PLUGIN([minimal_macosx])
4012 dnl Mac OS X fancy dmg build tool
4014 if test "${HAVE_OSX}" = "1"
4016 AC_PATH_PROG(DMGBUILD, dmgbuild, no)
4017 AS_IF([test "x${DMGBUILD}" = "xno"], [
4018 AC_MSG_WARN([dmgbuild not found -- unable to build fancy DMGs])
4021 AM_CONDITIONAL([HAVE_DMGBUILD], [test "x$DMGBUILD" != "xno" -a "${HAVE_OSX}" = "1"])
4024 dnl VideoToolbox plugins
4025 AC_CHECK_HEADERS([VideoToolbox/VideoToolbox.h], [
4026 VLC_ADD_PLUGIN([videotoolbox])
4027 VLC_ADD_PLUGIN([cvpx])
4031 dnl AudioToolbox MIDI plugin
4032 AC_CHECK_HEADERS([AudioToolbox/AudioToolbox.h], [
4033 VLC_ADD_PLUGIN([audiotoolboxmidi])
4039 AC_ARG_ENABLE([ncurses],
4040 AS_HELP_STRING([--disable-ncurses],[ncurses text-based interface (default auto)]))
4042 AS_IF([test "${enable_ncurses}" != "no"] ,[
4043 PKG_CHECK_MODULES([NCURSES], [ncursesw], [
4045 ALIASES="${ALIASES} nvlc"
4047 AS_IF([test -n "${enable_ncurses}"], [
4048 AC_MSG_ERROR([${NCURSES_PKG_ERRORS}.])
4052 AM_CONDITIONAL([HAVE_NCURSES], [test "${have_ncurses}" = "yes"])
4057 AC_ARG_ENABLE([lirc],
4058 AS_HELP_STRING([--enable-lirc], [lirc support (default disabled)]))
4060 AS_IF([test "${enable_lirc}" = "yes"], [
4061 AC_CHECK_HEADER(lirc/lirc_client.h, [
4062 AC_CHECK_LIB([lirc_client], [lirc_init], [
4067 AM_CONDITIONAL([HAVE_LIRC], [test "${have_lirc}" = "yes"])
4072 PKG_CHECK_MODULES([BITSTREAM], [bitstream > 1.4],[have_bitstream="yes"], [have_bitstream="no"])
4073 AM_CONDITIONAL([HAVE_BITSTREAM], [test "${have_bitstream}" = "yes"])
4078 PKG_ENABLE_MODULES_VLC([SRT], [access_srt access_output_srt], [srt >= 1.2.2], [SRT input/output plugin], [auto], [], [], [-DENABLE_SRT])
4080 EXTEND_HELP_STRING([Visualisations and Video filter plugins:])
4082 dnl goom visualization plugin
4084 PKG_ENABLE_MODULES_VLC([GOOM], [], [libgoom2], [goom visualization plugin], [auto])
4087 dnl libprojectM visualization plugin
4089 AC_ARG_ENABLE([projectm],
4090 AS_HELP_STRING([--enable-projectm], [projectM visualization plugin (default enabled)]))
4091 AS_IF([test "${enable_projectm}" != "no"],
4093 PKG_CHECK_MODULES(PROJECTM, libprojectM,
4095 VLC_ADD_PLUGIN([projectm])
4096 PKG_CHECK_EXISTS([libprojectM >= 2.0.0],
4097 [ AC_DEFINE([HAVE_PROJECTM2], 1, [Define to 1 if using libprojectM 2.x]) ],
4098 [ AC_MSG_WARN( [Using libprojectM version 1] )
4101 AC_MSG_WARN([${PROJECTM_PKG_ERRORS}.])
4106 dnl Vovoid VSXu visualization plugin
4108 AC_ARG_ENABLE([vsxu],
4109 AS_HELP_STRING([--enable-vsxu], [Vovoid VSXu visualization plugin (default auto)]))
4110 AS_IF([test "${enable_vsxu}" != "no"],
4112 PKG_CHECK_MODULES(VSXU, libvsxu,
4114 VLC_ADD_PLUGIN([vsxu])
4116 AC_MSG_WARN([${VSXU_PKG_ERRORS}.])
4120 EXTEND_HELP_STRING([Service Discovery plugins:])
4122 dnl Avahi-Zeroconf services discovery
4123 PKG_ENABLE_MODULES_VLC([AVAHI], [], [avahi-client >= 0.6], [Zeroconf services discovery], [auto])
4126 dnl libudev services discovery
4127 PKG_ENABLE_MODULES_VLC([UDEV], [], [libudev >= 142], [Linux udev services discovery], [auto])
4130 dnl MTP devices services discovery
4131 PKG_ENABLE_MODULES_VLC([MTP], [mtp access_mtp], [libmtp >= 1.0.0], [MTP devices support], [auto])
4134 dnl UPnP Plugin (Intel SDK)
4136 PKG_ENABLE_MODULES_VLC([UPNP], [upnp], [libupnp], [Intel UPNP SDK],[auto])
4139 dnl mDNS using libmicrodns
4141 PKG_ENABLE_MODULES_VLC([MICRODNS], [], [microdns], [mDNS services discovery], [auto])
4144 EXTEND_HELP_STRING([Misc options:])
4149 PKG_ENABLE_MODULES_VLC([LIBXML2], [xml], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
4155 AC_ARG_ENABLE([libgcrypt],
4156 AS_HELP_STRING([--disable-libgcrypt], [gcrypt support (default enabled)]))
4157 AC_ARG_VAR([GCRYPT_CFLAGS], [C compiler flags for gcrypt])
4158 AC_ARG_VAR([GCRYPT_LIBS], [linker flags flags for gcrypt])
4160 # require libgcrypt >= 1.6.0
4161 AS_IF([test "${enable_libgcrypt}" != "no"], [
4162 AC_CACHE_CHECK([for gcrypt 1.6.0 or later], [ac_cv_lib_gcrypt], [
4164 CFLAGS="${CFLAGS} ${GCRYPT_CFLAGS}"
4165 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
4166 [#include <gcrypt.h>
4167 #if GCRYPT_VERSION_NUMBER < 0x010600
4170 ac_cv_lib_gcrypt=yes
4177 AS_IF([test "${ac_cv_lib_gcrypt}" = "yes"], [
4178 AC_DEFINE([HAVE_GCRYPT], 1, [Defined if having gcrypt])
4180 AS_IF([test "${enable_libgcrypt}" = "yes"], [
4181 AC_MSG_ERROR([libgcrypt version 1.6.0 or higher not found. Install libgcrypt or pass --disable-libgcrypt.])
4186 AS_IF([test -z "$GCRYPT_LIBS"], [
4187 GCRYPT_LIBS="-lgcrypt -lgpg-error"
4190 AC_SUBST([GCRYPT_CFLAGS])
4191 AC_SUBST([GCRYPT_LIBS])
4192 AM_CONDITIONAL([HAVE_GCRYPT], [test "${ac_cv_lib_gcrypt}" = "yes"])
4197 AC_ARG_ENABLE([gnutls],
4198 AS_HELP_STRING([--enable-gnutls], [GNU TLS TLS/SSL support (default enabled)]))
4199 AS_IF([test "${enable_gnutls}" != "no"], [
4200 PKG_CHECK_MODULES(GNUTLS, [gnutls >= 3.3.6], [
4201 VLC_ADD_PLUGIN([gnutls])
4203 AS_IF([test -n "${enable_gnutls}"], [
4204 AC_MSG_ERROR([${GNUTLS_PKG_ERRORS}.)])
4213 AC_ARG_ENABLE([taglib],
4214 AS_HELP_STRING([--disable-taglib],
4215 [do not use TagLib (default enabled)]))
4216 AS_IF([test "${enable_taglib}" != "no"], [
4217 PKG_CHECK_MODULES(TAGLIB, taglib >= 1.9, [
4218 VLC_ADD_PLUGIN([taglib])
4220 AC_MSG_WARN([${TAGLIB_PKG_ERRORS}.])])
4226 PKG_ENABLE_MODULES_VLC([SECRET], [], [libsecret-1 >= 0.18], [use libsecret for keystore], [auto])
4231 AC_ARG_ENABLE([kwallet],
4232 AS_HELP_STRING([--enable-kwallet],
4233 [use kwallet (via D-Bus) for keystore (default enabled)]))
4234 AS_IF([test "${enable_kwallet}" != "no" -a "${have_dbus}" = "yes"], [
4235 VLC_ADD_PLUGIN([kwallet])
4239 dnl update checking system
4241 AC_ARG_ENABLE([update-check],
4242 AS_HELP_STRING([--enable-update-check], [update checking system (default disabled)]))
4243 if test "${enable_update_check}" = "yes"
4245 AS_IF([test "${ac_cv_lib_gcrypt}" != "yes"],[
4246 AC_MSG_ERROR([libgcrypt is required for update checking system]) ])
4248 AM_CONDITIONAL([UPDATE_CHECK], [test "${enable_update_check}" = "yes"])
4251 dnl OS X notification plugin
4253 AC_ARG_ENABLE([osx_notifications],
4254 AS_HELP_STRING([--enable-osx-notifications],
4255 [macOS notification plugin (default disabled)]),,
4256 [enable_osx_notifications=no])
4257 AS_IF([test "${enable_osx_notifications}" != "no"], [
4258 VLC_ADD_PLUGIN([osx_notifications])
4262 dnl Libnotify notification plugin
4264 PKG_ENABLE_MODULES_VLC([NOTIFY], [], [libnotify gtk+-3.0], [libnotify notification], [auto])
4266 PKG_ENABLE_MODULES_VLC([MEDIALIBRARY], [medialibrary], [medialibrary], (medialibrary support), [auto])
4269 dnl Endianness check
4272 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
4273 DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
4277 AC_SUBST([DEFS_BIGENDIAN])
4280 dnl Where to install KDE solid .desktop
4282 AC_ARG_WITH(kde-solid,
4283 AS_HELP_STRING([--with-kde-solid=PATH],
4284 [KDE Solid actions directory (auto)]),, [
4286 if test "${SYS}" != "mingw32" -a "${SYS}" != "darwin" ; then
4287 with_kde_solid="yes"
4291 AS_IF([test "${with_kde_solid}" != "no"], [
4292 AS_IF([test "${with_kde_solid}" = "yes"], [
4293 kde4datadir="`${KDE4_CONFIG} --install data`"
4294 AS_IF([test "x$kde4datadir" = "x"], [kde4datadir='${datadir}/kde4/apps'])
4295 soliddatadir="${kde4datadir}/solid/actions"
4297 soliddatadir="${with_kde_solid}"
4300 AC_SUBST([soliddatadir])
4301 AM_CONDITIONAL([KDE_SOLID], [test "x${soliddatadir}" != "x"])
4304 dnl Find tools for win32 packaging
4306 AS_IF([test "${SYS}" = "mingw32"], [
4308 dnl Find makensis required to build the NSIS installer
4310 nsis_major_required="3"
4311 nsis_version_ok="no"
4312 AC_PATH_PROG([MAKENSIS], [makensis], [no])
4313 AS_IF([test "$MAKENSIS" != "no"], [
4315 AC_MSG_CHECKING([makensis version])
4316 nsis_version=$($MAKENSIS -VERSION)
4317 AC_MSG_RESULT([$nsis_version])
4318 nsis_version_major=$(echo "$nsis_version" | awk -F \. '{print $1}' | sed 's/v//')
4319 # Check if major version is a valid number
4320 AS_IF([test -n "$nsis_version_major" && \
4321 test "$nsis_version_major" -eq "$nsis_version_major" 2> /dev/null], [
4322 # Do the version check using major version
4323 AS_IF([test "$nsis_version_major" -lt "$nsis_major_required"], [
4324 AC_MSG_WARN([makensis too old, (needs ${nsis_major_required}.x, have ${nsis_version_major}.x)])
4326 nsis_version_ok="yes"
4329 AC_MSG_WARN([failed to check the makensis version])
4335 AC_PATH_PROG([SEVENZIP], [7z], [7z])
4337 AM_CONDITIONAL([HAVE_MAKENSIS], [test "x$MAKENSIS" != "xno" && test "$nsis_version_ok" = "yes"])
4340 dnl Check wether we have the PROCESS_MITIGATION_IMAGE_LOAD_POLICY
4341 dnl It should only be available when building for win10, but some SDKs define it unconditionnaly
4343 if test "${SYS}" = "mingw32"; then
4344 AC_CHECK_TYPES([PROCESS_MITIGATION_IMAGE_LOAD_POLICY],,,[#include <windows.h>])
4347 EXTEND_HELP_STRING([Components:])
4352 AC_ARG_ENABLE([vlc],
4353 AS_HELP_STRING([--enable-vlc], [build the VLC media player (default enabled)]))
4354 AM_CONDITIONAL([BUILD_VLC], [test "${enable_vlc}" != "no"])
4357 dnl Fuzzer (at the end in order to don't mess dependencies FLAGS)
4359 AS_VAR_IF(with_libfuzzer, no, [], [
4360 LIBS="-lstdc++ ${LIBM} -L${with_libfuzzer} -lFuzzer"
4361 AX_CHECK_COMPILE_FLAG(-fsanitize-coverage=trace-pc-guard, [
4362 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc-guard])
4363 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc-guard], [CXXFLAGS])
4364 AX_APPEND_COMPILE_FLAGS([-fsanitize-coverage=trace-cmp])
4365 AX_APPEND_COMPILE_FLAGS([-fsanitize-coverage=trace-cmp], [CXXFLAGS])
4367 AX_CHECK_COMPILE_FLAG(-fsanitize-coverage=trace-pc, [
4368 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc])
4369 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc], [CXXFLAGS])
4371 AC_MSG_ERROR([Sanitizer coverage not supported by your compiler])
4377 dnl Stuff used by the program
4379 VERSION_MESSAGE="${VERSION} ${CODENAME}"
4380 COPYRIGHT_MESSAGE="Copyright © ${COPYRIGHT_YEARS} the VideoLAN team"
4381 AC_DEFINE_UNQUOTED([VERSION_MESSAGE], "${VERSION_MESSAGE}", [Simple version string])
4382 AC_DEFINE_UNQUOTED([COPYRIGHT_MESSAGE], "${COPYRIGHT_MESSAGE}", [Copyright string])
4383 AC_DEFINE_UNQUOTED([COPYRIGHT_YEARS], "${COPYRIGHT_YEARS}", [The copyright years])
4384 AC_DEFINE_UNQUOTED([CONFIGURE_LINE], "${CONFIGURE_LINE}", [The ./configure command line])
4385 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_MAJOR],${VERSION_MAJOR}, [version major number])
4386 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_MINOR],${VERSION_MINOR}, [version minor number])
4387 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_REVISION],${VERSION_REVISION}, [version revision number])
4388 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_EXTRA],${VERSION_EXTRA}, [version extra number])
4389 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_DEV],"${VERSION_DEV}", [version development string])
4390 AC_SUBST([COPYRIGHT_MESSAGE])
4391 AC_SUBST([VERSION_MESSAGE])
4392 AC_SUBST([VERSION_MAJOR])
4393 AC_SUBST([VERSION_MINOR])
4394 AC_SUBST([VERSION_REVISION])
4395 AC_SUBST([VERSION_EXTRA])
4396 AC_SUBST([COPYRIGHT_YEARS])
4397 AC_DEFINE_UNQUOTED([VLC_COMPILE_BY], "`whoami|sed -e 's/\\\/\\\\\\\/g'`", [user who ran configure])
4398 AC_DEFINE_UNQUOTED([VLC_COMPILE_HOST], "`hostname -f 2>/dev/null || hostname`", [host which ran configure])
4399 AC_DEFINE_UNQUOTED([VLC_COMPILER], "`$CC -v 2>&1 | tail -n 1 | sed -e 's/ *$//'`", [compiler])
4401 dnl Handle substvars that use $(top_srcdir)
4403 CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS}"
4406 dnl Configuration is finished
4416 AC_SUBST([WINE_SDK_PATH])
4418 AC_SUBST([AM_CPPFLAGS])
4419 AC_SUBST([MACOSX_DEPLOYMENT_TARGET])
4420 AC_SUBST([FILE_LIBVLCCORE_DLL])
4421 AC_SUBST([FILE_LIBVLC_DLL])
4435 modules/hw/mmal/Makefile
4436 share/vlc.appdata.xml.in
4439 AM_COND_IF([HAVE_WIN32], [
4441 extras/package/win32/NSIS/spad.nsi
4442 extras/package/win32/NSIS/vlc.win32.nsi
4443 extras/package/win32/msi/config.wxi
4447 AM_COND_IF([HAVE_DARWIN], [
4449 modules/gui/macosx/UI/InfoPlist.strings:modules/gui/macosx/Resources/InfoPlist.strings.in
4450 share/macosx/Info.plist:share/Info.plist.in
4454 dnl Generate makefiles
4457 dnl Do we have to use make or gmake ?
4458 if make --version 2>&1|grep -q GNU
4460 # GNU make, all seems good
4463 # Known GNU make alias (on BSD)
4466 dnl Shortcut to nice compile message
4467 if test -n $SHELL; then
4468 SHELL=${CONFIG_SHELL-/bin/sh}
4471 compile_top_srcdir=`sed -ne "s/^top_srcdir *= *//p" < Makefile`
4475 export PATH=\"$PATH\" LANG=C
4476 ($MAKE V=1 \$@ 2>&1 || touch .error\$\$)| $compile_top_srcdir/extras/buildsystem/make.pl
4477 test -f .error\$\$ && ERROR=1
4479 exit \$ERROR" >compile
4483 libvlc configuration
4484 --------------------
4485 version : ${VERSION}
4487 architecture : ${ARCH}
4488 optimizations : ${enable_optimizations}"
4489 if test "${enable_vlc}" != "no"; then
4490 echo "vlc aliases :${ALIASES}"
4492 echo "build vlc executable : no"
4495 To build vlc and its plugins, type \`$MAKE', or \`./compile' if you like nice colors."