1 dnl Autoconf settings for vlc
3 AC_COPYRIGHT([Copyright 1999-2019 VLC authors and VideoLAN])
5 AC_INIT([vlc], [4.0.0-dev])
15 CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
16 CODENAME="Otto Chriek"
17 COPYRIGHT_YEARS="1996-2019"
19 AC_CONFIG_SRCDIR([src/libvlc.c])
20 AC_CONFIG_AUX_DIR([autotools])
21 AC_CONFIG_MACRO_DIR([m4])
22 AC_CONFIG_LIBOBJ_DIR([compat])
25 AC_PRESERVE_HELP_ORDER
27 AM_INIT_AUTOMAKE([tar-ustar color-tests foreign])
28 AC_CONFIG_HEADERS([config.h])
30 AM_SILENT_RULES([yes])
31 AM_MAINTAINER_MODE([enable])
37 AC_USE_SYSTEM_EXTENSIONS
39 AH_VERBATIM([FORTIFY_SOURCE],
40 [/* Enable compile-time and run-time bounds-checking, and some warnings,
41 without upsetting glibc 2.15+ or toolchains predefining _FORTIFY_SOURCE */
42 #if !defined _FORTIFY_SOURCE && defined __OPTIMIZE__ && __OPTIMIZE__
43 # define _FORTIFY_SOURCE 2
45 AC_DEFINE([_FILE_OFFSET_BITS], 64, [Define to 64 for large files support.])
46 AC_DEFINE([__LIBVLC__],, [Define within the LibVLC source code tree.])
47 AC_DEFINE([WIN32_LEAN_AND_MEAN],, [Define to limit the scope of <windows.h>.])
59 AC_ARG_VAR([DESKTOP_FILE_VALIDATE], [Validator for desktop entry files])
60 AC_CHECK_PROGS([DESKTOP_FILE_VALIDATE], [${DESKTOP_FILE_VALIDATE} desktop-file-validate], :)
61 AC_ARG_VAR([BUILDCC], [Build system C11 or C99 compiler command])
62 AC_CHECK_PROGS([BUILDCC], [c11-gcc c11 c99-gcc c99], [false])
63 AS_IF([test "$BUILDCC" = "false"], [
64 AC_MSG_ERROR([Cannot find native C99 compiler: please define BUILDCC.])
67 dnl Check for compiler properties
71 AX_CXX_COMPILE_STDCXX_14([noext], [mandatory])
73 dnl Extend the --help string at the current spot.
74 AC_DEFUN([EXTEND_HELP_STRING], [m4_divert_once([HELP_ENABLE], [$1])])
76 dnl Allow binary package maintainer to pass a custom string to avoid
78 AC_ARG_WITH([binary-version],
79 AS_HELP_STRING([--with-binary-version=STRING],
80 [To avoid plugins cache problem between binary version]),[],[])
81 AS_IF([test -n "${with_binary_version}"],[
82 AC_DEFINE_UNQUOTED([DISTRO_VERSION],["${with_binary_version}"],
83 [Binary specific version])
86 dnl Prevent clang from accepting unknown flags with a mere warning
87 AX_APPEND_COMPILE_FLAGS([-Werror=unknown-warning-option -Werror=invalid-command-line-argument], [CFLAGS])
88 AX_APPEND_COMPILE_FLAGS([-Werror=unknown-warning-option -Werror=invalid-command-line-argument], [CXXFLAGS])
91 dnl Check the operating system
98 dnl Set x86 asm flags and defines
100 case "${host_cpu}" in
102 X86ASMFLAGS="-f elf32"
103 X86ASMDEFS="-DARCH_X86_32=1 -DARCH_X86_64=0"
106 X86ASMFLAGS="-f elf64"
107 X86ASMDEFS="-DARCH_X86_32=0 -DARCH_X86_64=1"
117 CFLAGS="${CFLAGS} -pthread"
121 CFLAGS="${CFLAGS} -pthread"
125 CFLAGS="${CFLAGS} -pthread"
126 CPPFLAGS="${CPPFLAGS} -I/usr/local/include"
127 LDFLAGS="${LDFLAGS} -L/usr/local/lib"
132 CPPFLAGS="${CPPFLAGS} -I/usr/local/include -I/usr/X11R6/include"
133 LDFLAGS="${LDFLAGS} -L/usr/local/lib -L/usr/X11R6/lib/"
143 dnl Force gcc "-arch" flag
145 case "${host_cpu}" in
147 ARCH_flag="-arch i386"
148 X86ASMFLAGS="-f macho32"
149 X86ASMDEFS="${X86ASMDEFS} -DPREFIX"
152 ARCH_flag="-arch ppc64"
155 ARCH_flag="-arch ppc"
158 ARCH_flag="-arch x86_64"
159 X86ASMFLAGS="-f macho64"
160 X86ASMDEFS="${X86ASMDEFS} -DPREFIX"
163 ac_cv_c_bigendian="no"
164 ac_cv_c_attribute_packed="no"
169 CFLAGS="${CFLAGS} -D_INTL_REDIRECT_MACROS -std=gnu11 ${ARCH_flag}"
170 CXX="${CXX} -stdlib=libc++ -std=c++11"
171 CXXFLAGS="${CXXFLAGS} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"
172 CPPFLAGS="${CPPFLAGS} ${ARCH_flag}"
173 OBJCFLAGS="${OBJCFLAGS} -D_INTL_REDIRECT_MACROS -std=gnu11 ${ARCH_flag} -Werror=partial-availability"
174 LDFLAGS="${LDFLAGS} -Wl,-headerpad_max_install_names ${ARCH_flag}"
175 VLC_ADD_LIBS([libvlc vlc],[-Wl,-undefined,dynamic_lookup,-framework,AppKit])
176 VLC_ADD_LIBS([libvlccore],[-Wl,-framework,CoreFoundation,-framework,CoreServices])
179 [#import <TargetConditionals.h>
187 [#import <TargetConditionals.h>
197 dnl Handle Mac OS X SDK flags
199 AC_ARG_WITH(macosx-sdk,
200 AS_HELP_STRING([--with-macosx-sdk=DIR],
201 [compile using the SDK in DIR]))
202 if test "${with_macosx_sdk}" != "" ; then
203 test ! -d "${with_macosx_sdk}" && AC_MSG_ERROR([SDK "${with_macosx_sdk}" not found])
204 CPP="${CPP} -isysroot ${with_macosx_sdk}"
205 CC="${CC} -isysroot ${with_macosx_sdk}"
206 CXX="${CXX} -isysroot ${with_macosx_sdk}"
207 OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
208 LD="${LD} -syslibroot ${with_macosx_sdk}"
210 AC_ARG_WITH(macosx-version-min,
211 AS_HELP_STRING([--with-macosx-version-min=VERSION],
212 [compile for Mac OS X VERSION and above]))
213 if test "${with_macosx_version_min}" != "" ; then
214 CPP="${CPP} -mmacosx-version-min=${with_macosx_version_min}"
215 CC="${CC} -mmacosx-version-min=${with_macosx_version_min}"
216 CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
217 OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
218 LD="${LD} -mmacosx_version_min=${with_macosx_version_min}"
221 *mingw32* | *cygwin* | *wince* | *mingwce*)
222 dnl Force libtool to not link to (shared) libgcc_s when detecting C++ dependencies
223 dnl When doing this test with -static-libgcc it will link on (static) libgcc_eh
224 CXXFLAGS="${CXXFLAGS} -static-libgcc"
225 AC_CHECK_TOOL(WINDRES, windres, :)
226 AC_CHECK_TOOL(OBJCOPY, objcopy, :)
227 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
228 [[#ifdef _WIN32_WINNT
229 # error _WIN32_WINNT already defined
233 AC_DEFINE([_WIN32_WINNT], 0x0601, [Define to '0x0601' for Windows 7 APIs.])
235 AC_DEFINE([_WIN32_IE], 0x0600, [Define to '0x0600' for IE 6.0 (and shell) APIs.])
236 AC_DEFINE([UNICODE], [1], [Define to 1 for Unicode (Wide Chars) APIs.])
237 AC_DEFINE([_ISOC99_SOURCE], [1], [Extensions to ISO C89 from ISO C99.])
238 AC_DEFINE([_ISOC11_SOURCE], [1], [Extensions to ISO C99 from ISO C11.])
239 AC_DEFINE([_POSIX_SOURCE], [1], [IEEE Std 1003.1.])
240 AC_DEFINE([_POSIX_C_SOURCE], [200809L], [IEEE Std 1003.1.])
241 AC_DEFINE([_XOPEN_SOURCE], [700], [POSIX and XPG 7th edition])
242 AC_DEFINE([_XOPEN_SOURCE_EXTENDED], [1], [XPG things and X/Open Unix extensions.])
243 AC_DEFINE([_BSD_SOURCE], [1], [ISO C, POSIX, and 4.3BSD things.])
244 AC_DEFINE([_SVID_SOURCE], [1], [ISO C, POSIX, and SVID things.])
251 dnl Check if we are using the mno-cygwin mode in which case we are
252 dnl actually dealing with a mingw32 compiler.
257 SYS=mingw32, AC_MSG_ERROR([VLC requires -mno-cygwin]))
261 if test "${SYS}" = "mingw32"; then
263 LDFLAGS="${LDFLAGS} -Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase"
265 AC_CHECK_PROGS(U2D, [unix2dos todos], unix2dos)
266 ac_default_prefix="`pwd`/_win32"
267 DESTDIR="`pwd`/_win32/"
270 dnl NSIS/MSI Installer prefix and WIN64
272 case "${host_cpu}" in
276 PROGRAMFILES="PROGRAMFILES64"
277 LDFLAGS="${LDFLAGS} -Wl,--high-entropy-va -Wl,--image-base,0x140000000"
282 PROGRAMFILES="PROGRAMFILES64"
283 LDFLAGS="${LDFLAGS} -Wl,--high-entropy-va -Wl,--image-base,0x140000000"
284 X86ASMFLAGS="-f win64"
288 PROGRAMFILES="PROGRAMFILES"
292 PROGRAMFILES="PROGRAMFILES"
293 X86ASMFLAGS="-f win32"
294 X86ASMDEFS="${X86ASMDEFS} -DPREFIX"
297 AC_SUBST([WINDOWS_ARCH])
298 AC_SUBST([PROGRAMFILES])
313 LDFLAGS="${LDFLAGS} -Zomf -Zbin-files -Zargs-wild -Zhigh-mem"
314 AC_LIBOBJ([freeaddrinfo])
315 AC_LIBOBJ([gai_strerror])
316 AC_CHECK_FUNCS([if_nametoindex])
320 AC_DEFINE([_XOPEN_SOURCE], [700], [POSIX and XPG 7th edition])
331 AC_ARG_ENABLE([winstore_app],
332 AS_HELP_STRING([--enable-winstore-app],
333 [Build targetted for Windows Store apps (default disabled)]))
336 AS_IF([test "${SYS}" = "mingw32"],[
338 AS_IF([test "${enable_winstore_app}" = "yes"], [
341 AX_APPEND_FLAG([-DWINSTORECOMPAT],[CFLAGS])
342 AX_APPEND_FLAG([-DWINSTORECOMPAT],[CPPFLAGS])
343 AX_APPEND_FLAG([-DWINSTORECOMPAT],[CXXFLAGS])
344 AX_APPEND_FLAG([-lwinstorecompat], [LDFLAGS])
345 VLC_ADD_LIBS([libvlccore], [-lruntimeobject])
346 AC_LIBOBJ([gai_strerror])
350 AC_DEFINE_UNQUOTED(VLC_WINSTORE_APP, ${vlc_winstore_app}, [Define to 1 if you want to build for Windows Store apps])
354 AS_HELP_STRING([--enable-pdb],
355 [Build PDB files for windows targets (default off)]))
356 AS_IF([test "${SYS}" = "mingw32"],[
357 AS_IF([test "${enable_pdb}" = "yes"], [
359 AX_APPEND_FLAG([-g -gcodeview],[CFLAGS])
360 AX_APPEND_FLAG([-g -gcodeview],[CXXFLAGS])
361 LDFLAGS="${LDFLAGS} -Wl,-pdb="
365 AM_CONDITIONAL([HAVE_LINUX], [test "${SYS}" = "linux"])
366 AM_CONDITIONAL([HAVE_OS2], [test "${SYS}" = "os2"])
368 AM_CONDITIONAL([HAVE_DARWIN], [test "${SYS}" = "darwin"])
369 AM_CONDITIONAL([HAVE_IOS], [test "${HAVE_IOS}" = "1"])
370 AM_CONDITIONAL([HAVE_OSX], [test "${HAVE_OSX}" = "1"])
371 AM_CONDITIONAL([HAVE_TVOS], [test "${HAVE_TVOS}" = "1"])
373 AM_CONDITIONAL([HAVE_NACL], [test "${SYS}" = "nacl"])
374 AM_CONDITIONAL([HAVE_LIBANL], [test "${HAVE_LIBANL}" = "1"])
376 AM_CONDITIONAL([HAVE_WIN32], [test "${SYS}" = "mingw32"])
377 AM_CONDITIONAL([HAVE_WIN64], [test "${HAVE_WIN64}" = "1"]) dnl Only used for the packaging
378 AM_CONDITIONAL([HAVE_WINSTORE], [test "$vlc_winstore_app" = "1"])
379 AM_CONDITIONAL([HAVE_WIN32_DESKTOP], [test "${SYS}" = "mingw32" -a "$vlc_winstore_app" = "0"])
380 AM_CONDITIONAL([ENABLE_PDB], [test "$vlc_build_pdb" = "1"])
382 dnl Use nasm/yasm only on x86
383 AC_CHECK_PROGS(X86ASM, [nasm yasm])
384 AM_CONDITIONAL([HAVE_X86ASM], [test -n "${X86ASM}" && test -n "${X86ASMFLAGS}"])
385 AM_COND_IF([HAVE_X86ASM], [
386 AC_DEFINE([HAVE_X86ASM], [1], [Use external asm on x86.])
388 AC_SUBST([X86ASMFLAGS])
389 AC_SUBST([X86ASMDEFS])
392 dnl Sadly autoconf does not think about testing foo.exe when ask to test
393 dnl for program foo on win32
394 case "${build_os}" in
396 ac_executable_extensions=".exe"
405 AC_SUBST([BUILDEXEEXT])
407 dnl Android is linux, but a bit different
408 AS_IF([test "$SYS" = linux],[
409 AC_MSG_CHECKING([for an Android system])
410 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
411 [[#ifndef __ANDROID__
422 AM_CONDITIONAL([HAVE_ANDROID], [test "${HAVE_ANDROID}" = "1"])
425 dnl Check for the contrib directory
428 AS_HELP_STRING([--with-contrib[=DIR]],
429 [search for 3rd party libraries in DIR/include and DIR/lib])
431 AC_MSG_CHECKING([for 3rd party libraries path])
432 AS_IF([test -z "${with_contrib}" || test "${with_contrib}" = "yes"], [
433 CONTRIB_DIR="${srcdir}/contrib/${host}"
434 AS_IF([test ! -d "${CONTRIB_DIR}"], [
435 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
436 CONTRIB_DIR="${srcdir}/contrib/`$CC -dumpmachine`"
437 AS_IF([test ! -d "${CONTRIB_DIR}"], [
438 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
440 AC_MSG_RESULT([not found])
444 AS_IF([test "${with_contrib}" != "no"], [
445 CONTRIB_DIR="${with_contrib}"
448 AC_MSG_RESULT([disabled])
451 AS_IF([test -n "${CONTRIB_DIR}"], [
452 AS_IF([test -d "${CONTRIB_DIR}/lib"],[
453 CONTRIB_DIR=`cd "${CONTRIB_DIR}" && pwd`
455 echo "${CONTRIB_DIR}/lib not found" >&AS_MESSAGE_LOG_FD
457 AC_MSG_RESULT([not usable])
461 AS_IF([test -n "${CONTRIB_DIR}"], [
462 AC_MSG_RESULT([${CONTRIB_DIR}])
463 CPPFLAGS="${CPPFLAGS} -I${CONTRIB_DIR}/include"
464 CFLAGS="${CFLAGS} -I${CONTRIB_DIR}/include"
465 CXXFLAGS="${CXXFLAGS} -I${CONTRIB_DIR}/include"
466 OBJCFLAGS="${OBJCFLAGS} -I${CONTRIB_DIR}/include -F${CONTRIB_DIR} -F${CONTRIB_DIR}/Frameworks"
467 PKG_CONFIG_PATH="${CONTRIB_DIR}/lib/pkgconfig:${CONTRIB_DIR}/share/pkgconfig:${PKG_CONFIG_PATH}"
468 case "${build_os}" in
470 export PKG_CONFIG_PATH=`cygpath -mp ${PKG_CONFIG_PATH}`
473 export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}"
476 LDFLAGS="${LDFLAGS} -L${CONTRIB_DIR}/lib"
478 AS_IF([test -z "$LUAC"], [
479 dnl Old contribs mixed cross-tools and cross-compiled executables
480 AS_IF([test -x "${CONTRIB_DIR}/bin/luac${BUILDEXEEXT}"], [
481 LUAC="${CONTRIB_DIR}/bin/luac${BUILDEXEEXT}"
484 dnl Newer contribs follow usual name space rules
485 AS_IF([test -x "${CONTRIB_DIR}/../bin/${host_alias}-luac${BUILDEXEEXT}"], [
486 LUAC="${CONTRIB_DIR}/../bin/${host_alias}-luac${BUILDEXEEXT}"
490 AS_IF([test "${SYS}" = "darwin"], [
491 export LD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$LD_LIBRARY_PATH"
492 export DYLD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$DYLD_LIBRARY_PATH"
495 AS_IF([test -n "${with_contrib}" && test "${with_contrib}" != "no"], [
496 AC_MSG_ERROR([Third party libraries not found!])
499 AC_SUBST([CONTRIB_DIR])
501 dnl Add extras/tools to the PATH
502 TOOLS_DIR="${srcdir}/extras/tools/build/bin"
503 AS_IF([test -d "${TOOLS_DIR}"], [
504 TOOLS_DIR=`cd "${TOOLS_DIR}" && pwd`
505 export PATH="${TOOLS_DIR}":$PATH
510 dnl It's very bad, but our former custom system was worst
514 dnl override platform specific check for dependent libraries
515 dnl otherwise libtool linking of shared libraries will
516 dnl fail on anything other than pass_all.
517 AC_CACHE_VAL(lt_cv_deplibs_check_method,
518 [lt_cv_deplibs_check_method=pass_all])
520 LT_INIT([dlopen win32-dll shared disable-static])
522 LT_LANG([Windows Resource])
526 lt_cv_deplibs_check_method=pass_all
528 AS_IF([test "${enable_shared}" = "no" -a "${enable_vlc}" != "no"], [
529 AC_MSG_ERROR([VLC is based on plugins. Shared libraries cannot be disabled.])
535 AM_GNU_GETTEXT_VERSION([0.19.8])
536 AM_GNU_GETTEXT([external], [need-formatstring-macros])
545 AS_IF([test "${SYS}" = "mingw32"], [
547 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
548 #if !defined(__MINGW32__)
549 # error Not compiling with mingw
553 dnl Check for broken versions of mingw-runtime compatability library
554 AC_MSG_CHECKING(for broken mingw-runtime)
555 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
557 #if defined(__MINGW64_VERSION_MAJOR)
558 # if __MINGW64_VERSION_MAJOR < 5
559 # error Update your mingw-w64! This one is too old.
562 # error You cannot compile with Mingw. Use Mingw-w64!
567 AC_MSG_RESULT([present])
568 AC_MSG_ERROR([LibVLC requires Mingw-w64 version 5.0 or higher!])
571 dnl force use of mingw provided c99 *printf over msvcrt
572 CPPFLAGS="${CPPFLAGS} -D__USE_MINGW_ANSI_STDIO=1"
574 dnl Check for the need to include the mingwex lib for mingw32
576 AC_CHECK_LIB([mingwex], [opendir],
577 AC_CHECK_LIB([mingw32], [opendir],,
578 [VLC_ADD_LIBS([libvlccore],[-lmingwex])])
582 AC_MSG_RESULT([Not compiling with mingw])
585 dnl Check for fnative-struct or mms-bitfields support for mingw32
586 AX_CHECK_COMPILE_FLAG([-mms-bitfields], [
587 AX_APPEND_FLAG([-mms-bitfields], [CFLAGS])
588 AX_APPEND_FLAG([-mms-bitfields], [CXXFLAGS])
589 # Check for the warning flag without "-Wno-", GCC accepts
590 # -Wno-<anything> for unsupported warnings, which can trigger
591 # other warnings instead.
592 AX_CHECK_COMPILE_FLAG([-Wincompatible-ms-struct], [
593 AX_APPEND_FLAG([-Wno-incompatible-ms-struct], [CFLAGS])
594 AX_APPEND_FLAG([-Wno-incompatible-ms-struct], [CXXFLAGS])
597 AX_CHECK_COMPILE_FLAG([-fnative-struct], [
598 AX_APPEND_FLAG([-fnative-struct], [CFLAGS])
599 AX_APPEND_FLAG([-fnative-struct], [CXXFLAGS])
606 dnl Buggy glibc prevention. Purposedly not cached.
607 dnl See sourceware.org bugs 5058 and 5443.
608 dnl Ubuntu alone has 20 bug numbers for this...
610 AC_MSG_CHECKING(for buggy GNU/libc versions)
611 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
613 #if defined (__GLIBC__) && (__GLIBC__ == 2) \
614 && (__GLIBC_MINOR__ >= 5) && (__GLIBC_MINOR__ <= 7)
615 # error GNU/libc with dcgettext killer bug!
618 AC_MSG_RESULT([not present])
620 AC_MSG_RESULT([found])
621 AS_IF([test "x${enable_nls}" != "xno"], [
622 AC_MSG_ERROR([Buggy GNU/libc (version 2.5 - 2.7) present. VLC would crash; there is no viable
623 work-around for this. Check with your distribution vendor on how to update the
624 glibc run-time. Alternatively, build with --disable-nls.])
628 dnl Plugin compilation stuff
632 dnl Check for system libs needed
635 dnl Check for usual libc functions
636 AC_CHECK_FUNCS([accept4 daemon fcntl flock fstatat fstatvfs fork getenv getpwuid_r isatty memalign mkostemp mmap open_memstream newlocale pipe2 pread posix_fadvise posix_madvise setlocale stricmp strnicmp strptime uselocale])
637 AC_REPLACE_FUNCS([aligned_alloc atof atoll dirfd fdopendir flockfile fsync getdelim getpid lfind lldiv memrchr nrand48 poll posix_memalign recvmsg rewind sendmsg setenv strcasecmp strcasestr strdup strlcpy strndup strnlen strnstr strsep strtof strtok_r strtoll swab tdestroy tfind timegm timespec_get strverscmp pathconf])
638 AC_REPLACE_FUNCS([gettimeofday])
639 AC_CHECK_FUNC(fdatasync,,
640 [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
643 VLC_REPLACE_DECL([realpath], [#include <stdlib.h>])
645 dnl mingw64 implements those as static inline, not functions with C linkage
646 VLC_REPLACE_DECL([asprintf], [#include <stdio.h>])
647 VLC_REPLACE_DECL([vasprintf], [#include <stdio.h>])
648 VLC_REPLACE_DECL([gmtime_r], [#include <time.h>])
649 VLC_REPLACE_DECL([localtime_r], [#include <time.h>])
651 dnl C11 static_assert()
652 AC_MSG_CHECKING([for static_assert in assert.h])
653 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <assert.h>], [
654 static_assert(1, "The impossible happened.");
657 AC_DEFINE([HAVE_STATIC_ASSERT], [1], [Define to 1 if <assert.h> defines static_assert.])
662 # Windows CE does not have strcoll()
665 dnl Check for non-standard system calls
668 AC_CHECK_FUNCS([eventfd vmsplice sched_getaffinity recvmmsg memfd_create])
671 AC_CHECK_FUNCS([_lock_file])
675 AH_BOTTOM([#include <vlc_fixups.h>])
677 dnl Check for struct pollfd
678 AC_CHECK_TYPES([struct pollfd],,,
679 [#include <sys/types.h>
682 #elif defined (_WIN32)
683 # include <winsock2.h>
687 dnl Check for struct timespec
688 AC_CHECK_TYPES([struct timespec],,,
691 dnl Check for max_align_t
692 AC_CHECK_TYPES([max_align_t],,,
693 [#include <stddef.h>])
695 dnl Checks for socket stuff
698 AC_SEARCH_LIBS(connect, [socket], [
699 AS_IF([test "$ac_cv_search_connect" != "none required"], [
700 SOCKET_LIBS="$ac_cv_search_connect"
703 AS_IF([test "${SYS}" = "mingw32"], [
704 SOCKET_LIBS="-lws2_32 -liphlpapi"
708 AC_SEARCH_LIBS([inet_pton], [nsl], [
709 AS_IF([test "$ac_cv_search_inet_pton" != "none required"], [
710 SOCKET_LIBS="$ac_cv_search_inet_pton $SOCKET_LIBS"
712 ],, [${SOCKET_LIBS}])
714 LIBS="${LIBS} ${SOCKET_LIBS}"
716 AC_LANG_PROGRAM([#ifdef _WIN32
717 #include <ws2tcpip.h>
719 # if _WIN32_WINNT < 0x600
723 #include <sys/socket.h>
724 #include <arpa/inet.h>
726 char dst[[sizeof(struct in_addr)]];
727 inet_pton(AF_INET, "127.0.0.1", dst);
728 ])],[AC_DEFINE([HAVE_INET_PTON],[1],[Define to 1 if you have inet_pton function])],[AC_LIBOBJ([inet_pton])])
729 AC_CHECK_TYPES([struct if_nameindex],,,[#include <net/if.h>])
730 AC_CHECK_FUNCS([if_nameindex])
732 AC_SUBST([SOCKET_LIBS])
734 dnl Check for socklen_t
735 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
736 AC_CACHE_CHECK([for socklen_t in sys/socket.h], dnl ` (fix VIM syntax highlight
737 ac_cv_type_socklen_t,
738 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
739 [#include <sys/types.h>
741 # include <winsock2.h>
742 # include <ws2tcpip.h>
744 # include <sys/socket.h>
745 #endif]], [[socklen_t len; len = 0;]])],
746 ac_cv_type_socklen_t=yes,
747 ac_cv_type_socklen_t=no)])
748 AS_IF([test "$ac_cv_type_socklen_t" = no],
749 [AC_DEFINE(socklen_t, unsigned int)])
751 dnl Check for struct sockaddr_storage
752 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
753 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
754 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
756 [#include <sys/types.h>
757 #if defined( _WIN32 )
758 # include <winsock2.h>
760 # include <sys/socket.h>
761 #endif], [struct sockaddr_storage addr;],
762 ac_cv_struct_sockaddr_storage=yes,
763 ac_cv_struct_sockaddr_storage=no)])
764 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
765 AC_DEFINE(sockaddr_storage, sockaddr)
766 AC_DEFINE(ss_family, sa_family)
769 dnl FreeBSD has a gnugetopt library for this:
771 AC_CHECK_FUNC(getopt_long,, [
772 AC_CHECK_LIB([gnugetopt],[getopt_long], [
773 GNUGETOPT_LIBS="-lgnugetopt"
776 AC_SUBST([GNUGETOPT_LIBS])
778 AC_CHECK_LIB([m], [cos], [
785 AC_CHECK_LIB([m], [lrintf], [
786 AC_DEFINE(HAVE_LRINTF, 1, [Define to 1 if you have the lrintf function])
787 VLC_ADD_LIBS([skins2],[-lm])
789 AC_CHECK_LIB([m], [nanf],
790 AC_DEFINE(HAVE_NANF, 1, [Define to 1 if you have the NANF function])
792 AC_CHECK_LIB([m], [sincos], [
793 AC_DEFINE(HAVE_SINCOS, 1, [Define to 1 if you have the sincos function.])
798 AC_MSG_CHECKING([broken qsort_r prototype])
799 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <stdlib.h>
801 _Static_assert(_Generic((qsort_r),
802 void (*)(void *, size_t, size_t, void *,
803 int (*)(void *, const void *, const void *)) : 1, default: 0),
804 "Bad prototype not matched");
806 AC_MSG_RESULT([broken])
807 AC_DEFINE([HAVE_BROKEN_QSORT_R], 1, [Defined to 1 if the qsort_r() prototype contradicts the upcoming POSIX standard.])
812 AC_MSG_CHECKING([_Thread_local support])
813 AC_COMPILE_IFELSE([AC_LANG_SOURCE([_Thread_local int foo = 0;
816 AC_DEFINE(HAVE_THREAD_LOCAL, 1, [Defined to 1 if C11 _Thread_local storage qualifier is supported])
817 ],[ AC_MSG_RESULT([no])])
819 dnl __STDC_NO_THREADS__ can't be trusted on some platforms.
820 dnl check for its availability explicitely
821 AC_CHECK_HEADERS([threads.h])
823 AC_CHECK_LIB([anl],[getaddrinfo_a],[
824 AC_DEFINE(HAVE_LIBANL, 1, [Define to 1 if you have the anl library])
827 dnl Check for dynamic plugins
829 have_dynamic_objects="no"
831 AC_SEARCH_LIBS(dlsym, [dl svld], [
832 AS_IF([test "$ac_cv_search_dlsym" != "none required"], [
833 LIBDL="$ac_cv_search_dlsym"
835 have_dynamic_objects="yes"
840 AS_IF([test "${SYS}" = "mingw32"], [
842 have_dynamic_objects="yes" #assume we can use shared objects
845 AC_ARG_WITH([libfuzzer],
846 AS_HELP_STRING([--with-libfuzzer=DIR],
847 [use libFuzzer library from DIR and triggers sanitize coverage (default disabled)]),
850 AS_VAR_IF(with_libfuzzer, no, [], [
855 AM_CONDITIONAL([HAVE_LIBFUZZER], [test "${with_libfuzzer}" != "no"])
857 AS_IF([test "${enable_shared}" = "no"], [
858 have_dynamic_objects=no
860 AM_CONDITIONAL([HAVE_DYNAMIC_PLUGINS], [test "${have_dynamic_objects}" != "no"])
864 AS_IF([test "${SYS}" != "mingw32"], [
865 AC_SEARCH_LIBS([clock_nanosleep], [rt pthread], [
866 AS_IF([test "$ac_cv_search_clock_nanosleep" != "none required"], [
867 LIBRT="$ac_cv_search_clock_nanosleep"
870 AC_SEARCH_LIBS([nanosleep], [rt pthread posix4], [
871 AS_IF([test "$ac_cv_search_nanosleep" != "none required"], [
872 LIBRT="$ac_cv_search_nanosleep"
880 dnl Check for headers
884 AC_CHECK_HEADERS([arpa/inet.h pthread.h search.h sys/shm.h sys/socket.h sys/uio.h])
885 AC_CHECK_HEADERS([net/if.h], [], [],
887 #include <sys/types.h>
888 #include <sys/socket.h>
890 AC_CHECK_HEADER([syslog.h], [have_syslog="yes"], [have_syslog="no"])
891 AM_CONDITIONAL([HAVE_SYSLOG], [test "$have_syslog" = "yes"])
894 AC_CHECK_HEADERS([netinet/tcp.h netinet/udplite.h sys/param.h sys/mount.h])
897 AC_CHECK_HEADERS([features.h getopt.h linux/dccp.h linux/magic.h mntent.h sys/eventfd.h])
900 AC_CHECK_HEADERS([xlocale.h])
902 dnl Check if C++ headers define locale_t
904 AC_CACHE_CHECK([if C++ headers define locale_t],
905 [ac_cv_cxx_locale_t],
906 [ac_cv_cxx_locale_t=no
907 AC_TRY_COMPILE([#include <locale>], [locale_t loc;],
908 [ac_cv_cxx_locale_t=yes])])
909 if test "${ac_cv_cxx_locale_t}" != "no"; then
910 AC_DEFINE(HAVE_CXX_LOCALE_T, 1, Define to 1 if C++ headers define locale_t)
914 dnl LP64 and LLP64 architectures had better define ssize_t by themselves...
915 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.]) dnl ` (fix VIM syntax highlight
916 AC_CHECK_TYPE(ssize_t,, [
917 AC_DEFINE(ssize_t, int)
920 dnl It seems that autoconf detects pkg-config only during the first
921 dnl PKG_CHECK_MODULES from configure.ac - which makes sense. But in our case,
922 dnl it is nested within a conditional block, so it was not working right.
923 PKG_PROG_PKG_CONFIG()
925 dnl On some OS we need static linking
926 AS_IF([test -n "${PKG_CONFIG}" ],[
927 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "darwin" -o "${SYS}" = "os2" ],[
928 PKG_CONFIG="${PKG_CONFIG} --static"
934 dnl Check for zlib.h and -lz if available
936 AC_CHECK_HEADERS([zlib.h], [ have_zlib=yes ], [ have_zlib=no ])
937 AM_CONDITIONAL([HAVE_ZLIB], [ test "${have_zlib}" = "yes" ])
938 if test "${have_zlib}" = "yes"
940 VLC_ADD_LIBS([sap],[-lz])
945 dnl Domain name i18n support via GNU libidn
947 PKG_CHECK_MODULES([IDN], [libidn], [
949 AC_DEFINE([HAVE_IDN], 1, [Define to 1 if you have GNU libidn.])
956 AC_ARG_ENABLE([dbus],
957 AS_HELP_STRING([--enable-dbus],
958 [compile D-Bus message bus support (default enabled)]))
960 AS_IF([test "${enable_dbus}" != "no"], [
961 PKG_CHECK_MODULES(DBUS, [dbus-1 >= 1.6.0], [
964 AS_IF([test -n "${enable_dbus}"], [
965 AC_MSG_ERROR([${DBUS_PKG_ERRORS}.])
967 AC_MSG_WARN([${DBUS_PKG_ERRORS}.])
971 AM_CONDITIONAL([HAVE_DBUS], [test "${have_dbus}" = "yes"])
974 dnl Check for systemd
975 PKG_CHECK_MODULES([SYSTEMD], [libsystemd], [
978 AC_MSG_WARN([${SYSTEMD_PKG_ERRORS}.])
980 AM_CONDITIONAL([HAVE_SYSTEMD], [test "${have_systemd}" = "yes"])
983 EXTEND_HELP_STRING([Optimization options:])
985 dnl Compiler warnings
988 AX_APPEND_COMPILE_FLAGS([-Wall -Wextra -Wsign-compare -Wundef -Wpointer-arith -Wvolatile-register-var -Wformat -Wformat-security -Wduplicated-branches -Wduplicated-cond], [CFLAGS])
989 AX_APPEND_COMPILE_FLAGS([-Wall -Wextra -Wsign-compare -Wundef -Wpointer-arith -Wvolatile-register-var -Wformat -Wformat-security -Wduplicated-branches -Wduplicated-cond], [CXXFLAGS])
991 AX_APPEND_COMPILE_FLAGS([-Wbad-function-cast -Wwrite-strings -Wmissing-prototypes -Werror-implicit-function-declaration -Winit-self -Wlogical-op -Wshadow=local -Wmultistatement-macros], [CFLAGS])
992 AX_APPEND_COMPILE_FLAGS([-pipe], [CFLAGS])
997 AC_ARG_ENABLE([debug],
998 AS_HELP_STRING([--disable-debug],
999 [disable run-time assertions (default enabled)]),,
1000 [enable_debug="yes"])
1002 [Define to 1 if debug code should NOT be compiled])
1003 AS_IF([test "${enable_debug}" != "no"], [
1004 AC_CHECK_HEADERS([valgrind/valgrind.h])
1012 AC_ARG_ENABLE([gprof],
1013 AS_HELP_STRING([--enable-gprof],[profile with gprof (default disabled)]),,
1014 [enable_gprof="no"])
1015 AS_IF([test "${enable_gprof}" != "no"], [
1016 CFLAGS="${CFLAGS} -pg"
1017 CXXFLAGS="${CXXFLAGS} -pg"
1018 OBJCFLAGS="${OBJCFLAGS} -pg"
1019 LDFLAGS="${LDFLAGS} -pg"
1022 AC_ARG_ENABLE([cprof],
1023 AS_HELP_STRING([--enable-cprof],[profile with cprof (default disabled)]),,
1024 [enable_cprof="no"])
1025 AS_IF([test "${enable_gprof}" != "no"], [
1026 CFLAGS="${CFLAGS} -finstrument-functions"
1027 CXXFLAGS="${CXXFLAGS} -finstrument-functions"
1028 OBJCFLAGS="${OBJCFLAGS} -finstrument-functions"
1029 LDFLAGS="${LDFLAGS} -finstrument-functions"
1035 AC_ARG_ENABLE([coverage],
1036 AS_HELP_STRING([--enable-coverage],
1037 [build for test coverage (default disabled)]),,
1038 [enable_coverage="no"])
1039 AS_IF([test "${enable_coverage}" != "no"], [
1040 CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
1041 CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
1042 LDFLAGS="-lgcov ${LDFLAGS}"
1045 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "os2"], [
1047 CFLAGS="${CFLAGS} -fvisibility=hidden"
1048 CXXFLAGS="${CXXFLAGS} -fvisibility=hidden"
1049 OBJCFLAGS="${OBJCFLAGS} -fvisibility=hidden"
1050 AC_CACHE_CHECK([if $CC accepts -fvisibility=hidden],
1051 [ac_cv_c_visibility_hidden], [
1052 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1053 ac_cv_c_visibility_hidden=yes
1055 ac_cv_c_visibility_hidden=no
1058 AS_IF([test "${ac_cv_c_visibility_hidden}" = "no"], [VLC_RESTORE_FLAGS])
1064 AC_ARG_WITH([sanitizer],
1065 AS_HELP_STRING([--with-sanitizer=(address/memory/undefined/thread)],
1066 [build with sanitizer flags (default disabled)]),
1068 [with_sanitizer=no])
1070 AS_VAR_IF(with_sanitizer, no, [], [
1071 AX_CHECK_COMPILE_FLAG([-fsanitize=${with_sanitizer}], [
1072 AX_APPEND_FLAG([-fsanitize=${with_sanitizer}])
1073 AX_APPEND_FLAG([-fsanitize=${with_sanitizer}], [CXXFLAGS])
1074 AX_APPEND_FLAG([-fsanitize=${with_sanitizer}], [LDFLAGS])
1076 AC_MSG_ERROR(["-fsanitize=${with_sanitizer} not supported!"])
1078 AX_APPEND_FLAG([-g])
1079 AX_APPEND_FLAG([-g], [CXXFLAGS])
1081 AS_IF([test -z "${with_sanitizer##*address*}" ], [
1082 AX_APPEND_COMPILE_FLAGS([-fsanitize-address-use-after-scope -fno-omit-frame-pointer -fsanitize=pointer-compare -fsanitize=pointer-subtract])
1083 AX_APPEND_COMPILE_FLAGS([-fsanitize-address-use-after-scope -fno-omit-frame-pointer -fsanitize=pointer-compare -fsanitize=pointer-subtract], [CXXFLAGS])
1085 AS_IF([test -z "${with_sanitizer##*memory*}" ], [
1086 AX_APPEND_COMPILE_FLAGS([-fPIE -pie])
1087 AX_APPEND_COMPILE_FLAGS([-fPIE -pie], [CXXFLAGS])
1089 AS_IF([test -z "${with_sanitizer##*thread*}" ], [
1090 AX_APPEND_COMPILE_FLAGS([-fPIE -pie])
1091 AX_APPEND_COMPILE_FLAGS([-fPIE -pie], [CXXFLAGS])
1096 dnl Enable/disable optimizations
1098 AC_ARG_ENABLE([optimizations],
1099 AS_HELP_STRING([--disable-optimizations],
1100 [disable compiler optimizations (default enabled)]),,
1101 [enable_optimizations="yes"])
1103 dnl Check for various optimization flags
1104 AS_IF([test "${enable_optimizations}" != "no"], [
1106 dnl -O3 only in production builds
1107 AS_IF([test "${enable_debug}" = "no"], [
1109 CFLAGS="${CFLAGS} -O3"
1110 CXXFLAGS="${CXXFLAGS} -O3"
1111 OBJCFLAGS="${OBJCFLAGS} -O3"
1112 AC_CACHE_CHECK([if $CC accepts -O3], [ac_cv_c_o3], [
1113 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1119 AS_IF([test "${ac_cv_c_o3}" = "no"], [VLC_RESTORE_FLAGS])
1122 dnl Check for fast maths
1123 AX_APPEND_COMPILE_FLAGS([-fno-math-errno -funsafe-math-optimizations -fno-rounding-math -fno-signaling-nans -fcx-limited-range], [CFLAGS])
1124 AX_APPEND_COMPILE_FLAGS([-fno-math-errno -funsafe-math-optimizations -fno-rounding-math -fno-signaling-nans -fcx-limited-range], [CXXFLAGS])
1127 #if defined(_MSC_VER) && !defined(__clang__)
1128 # pragma fenv_access(off)
1129 # pragma fp_contract(on)
1130 #elif defined(__GNUC__)
1131 /* Not supported so far */
1133 # pragma STDC FENV_ACCESS OFF
1134 # pragma STDC FP_CONTRACT ON
1138 dnl Check for -funroll-loops
1140 CFLAGS="${CFLAGS} -funroll-loops"
1141 CXXFLAGS="${CXXFLAGS} -funroll-loops"
1142 OBJCFLAGS="${OBJCFLAGS} -funroll-loops"
1143 AC_CACHE_CHECK([if $CC accepts -funroll-loops], [ac_cv_c_unroll_loops], [
1144 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1145 ac_cv_c_unroll_loops=yes
1147 ac_cv_c_unroll_loops=no
1150 AS_IF([test "${ac_cv_c_unroll_loops}" = "no"], [VLC_RESTORE_FLAGS])
1152 AS_IF([test "$enable_debug" = "no"], [
1153 dnl Check for -fomit-frame-pointer
1155 CFLAGS="${CFLAGS} -fomit-frame-pointer"
1156 CXXFLAGS="${CXXFLAGS} -fomit-frame-pointer"
1157 OBJCFLAGS="${OBJCFLAGS} -fomit-frame-pointer"
1158 AC_CACHE_CHECK([if $CC accepts -fomit-frame-pointer],
1159 [ac_cv_c_omit_frame_pointer], [
1160 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1161 ac_cv_c_omit_frame_pointer=yes
1163 ac_cv_c_omit_frame_pointer=no
1166 AS_IF([test "${ac_cv_c_omit_frame_pointer}" = "no"], [VLC_RESTORE_FLAGS])
1171 AC_ARG_ENABLE([ssp],
1172 AS_HELP_STRING([--disable-ssp],
1173 [disable stack smashing protection (default enabled for optimized builds)]), [],
1176 AS_IF([test "${enable_ssp}" != "no" -a "${enable_optimizations}" != "no"], [
1178 AX_APPEND_COMPILE_FLAGS([-fstack-protector-strong])
1179 AX_APPEND_COMPILE_FLAGS([-fstack-protector-strong], [CXXFLAGS])
1180 dnl Win32 requires linking to ssp for stack-protection
1181 AS_IF([test "${SYS}" = "mingw32"], [
1182 LDFLAGS="${LDFLAGS} -lssp"
1183 AC_CACHE_CHECK([if linker supports stack protectors], [ac_cv_ld_ssp], [
1184 AC_TRY_LINK([#include <stdio.h>],[char buf[100]; fgets(buf, sizeof(buf), stdin);], [
1190 AS_IF([test "${ac_cv_ld_ssp}" = "no"], [VLC_RESTORE_FLAGS])
1194 AS_IF([test "${SYS}" = "mingw32"], [
1195 dnl library for BCrypt APIs
1196 AS_IF([test "${vlc_winstore_app}" = 1],
1197 [LDFLAGS="${LDFLAGS} -lbcrypt"])
1201 LDFLAGS="${LDFLAGS} -Wl,-Bsymbolic"
1202 AC_CACHE_CHECK([if linker supports -Bsymbolic], [ac_cv_ld_bsymbolic], [
1204 ac_cv_ld_bsymbolic="-Wl,-Bsymbolic"
1206 ac_cv_ld_bsymbolic=""
1210 SYMBOLIC_LDFLAGS="${ac_cv_ld_bsymbolic}"
1211 AC_SUBST([SYMBOLIC_LDFLAGS])
1214 LDFLAGS="${LDFLAGS} -Wl,-z,defs"
1215 AC_CACHE_CHECK([if linker supports -z,defs], [ac_cv_ld_z_defs], [
1217 ac_cv_ld_z_defs="yes"
1219 ac_cv_ld_z_defs="no"
1222 AS_IF([test "${ac_cv_ld_z_defs}" = "no"], [VLC_RESTORE_FLAGS])
1224 dnl Check for __attribute__((packed))
1225 AC_CACHE_CHECK([for __attribute__((packed))],
1226 [ac_cv_c_attribute_packed],
1227 [ac_cv_c_attribute_packed=no
1228 AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b; (void)b;],
1229 [ac_cv_c_attribute_packed=yes])])
1230 if test "${ac_cv_c_attribute_packed}" != "no"; then
1231 AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1237 case "${host_cpu}" in
1250 dnl Check for backtrace() support
1251 AC_CHECK_HEADERS([execinfo.h])
1252 AC_CHECK_FUNCS([backtrace])
1257 ALIASES="${ALIASES} cvlc rvlc"
1260 dnl Accelerated modules
1263 dnl Check for fully working MMX intrinsics
1264 dnl We need support for -mmmx, we need <mmintrin.h>, and we also need a
1265 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1266 AC_ARG_ENABLE([mmx],
1267 AS_HELP_STRING([--disable-mmx],
1268 [disable MMX optimizations (default auto)]),,[
1269 case "${host_cpu}" in
1280 AS_IF([test "${enable_mmx}" != "no"], [
1283 CFLAGS="${CFLAGS} -mmmx"
1284 AC_CACHE_CHECK([if $CC groks MMX intrinsics], [ac_cv_c_mmx_intrinsics], [
1285 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1286 [#include <mmintrin.h>
1288 uint64_t frobzor;]], [
1290 a = b = c = (__m64)frobzor;
1291 a = _mm_slli_pi16(a, 3);
1292 a = _mm_adds_pi16(a, b);
1293 c = _mm_srli_pi16(c, 8);
1294 c = _mm_slli_pi16(c, 3);
1295 b = _mm_adds_pi16(b, c);
1296 a = _mm_unpacklo_pi8(a, b);
1297 frobzor = (uint64_t)a;]])], [
1298 ac_cv_c_mmx_intrinsics=yes
1300 ac_cv_c_mmx_intrinsics=no
1304 AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1305 AC_DEFINE(HAVE_MMX_INTRINSICS, 1, [Define to 1 if MMX intrinsics are available.])
1309 CFLAGS="${CFLAGS} -mmmx"
1310 AC_CACHE_CHECK([if $CC groks MMX inline assembly], [ac_cv_mmx_inline], [
1311 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1313 asm volatile("packuswb %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1316 ac_cv_mmx_inline=yes
1321 AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1322 AC_DEFINE(CAN_COMPILE_MMX, 1, [Define to 1 inline MMX assembly is available.])
1326 AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1327 [ac_cv_mmxext_inline], [
1328 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1330 asm volatile("maskmovq %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1333 ac_cv_mmxext_inline=yes
1335 ac_cv_mmxext_inline=no
1339 AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1340 AC_DEFINE(CAN_COMPILE_MMXEXT, 1, [Define to 1 if MMX EXT inline assembly is available.])
1344 AM_CONDITIONAL([HAVE_MMX], [test "${have_mmx}" = "yes"])
1345 AM_CONDITIONAL([HAVE_MMXEXT], [test "${have_mmxext}" = "yes"])
1347 dnl Check for fully workin SSE2 intrinsics
1348 dnl We need support for -msse[2], we need <emmintrin.h>, and we also need a
1349 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1350 AC_ARG_ENABLE([sse],
1351 AS_HELP_STRING([--disable-sse],
1352 [disable SSE (1-4) optimizations (default auto)]),, [
1353 case "${host_cpu}" in
1363 AS_IF([test "${enable_sse}" != "no"], [
1364 ARCH="${ARCH} sse sse2"
1367 CFLAGS="${CFLAGS} -msse2"
1368 AC_CACHE_CHECK([if $CC groks SSE2 intrinsics], [ac_cv_c_sse2_intrinsics], [
1369 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1370 [#include <emmintrin.h>
1372 uint64_t frobzor;]], [
1374 a = b = c = _mm_set1_epi64((__m64)frobzor);
1375 a = _mm_slli_epi16(a, 3);
1376 a = _mm_adds_epi16(a, b);
1377 c = _mm_srli_epi16(c, 8);
1378 c = _mm_slli_epi16(c, 3);
1379 b = _mm_adds_epi16(b, c);
1380 a = _mm_unpacklo_epi8(a, b);
1381 frobzor = (uint64_t)_mm_movepi64_pi64(a);]])], [
1382 ac_cv_c_sse2_intrinsics=yes
1384 ac_cv_c_sse2_intrinsics=no
1388 AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1389 AC_DEFINE(HAVE_SSE2_INTRINSICS, 1, [Define to 1 if SSE2 intrinsics are available.])
1393 CFLAGS="${CFLAGS} -msse"
1394 AC_CACHE_CHECK([if $CC groks SSE inline assembly], [ac_cv_sse_inline], [
1395 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1397 asm volatile("xorps %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1400 ac_cv_sse_inline=yes
1406 AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1407 AC_DEFINE(CAN_COMPILE_SSE, 1, [Define to 1 if SSE inline assembly is available.])
1410 AC_CACHE_CHECK([if $CC groks SSE2 inline assembly], [ac_cv_sse2_inline], [
1411 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1413 asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1416 ac_cv_sse2_inline=yes
1418 ac_cv_sse2_inline=no
1421 AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1422 AC_DEFINE(CAN_COMPILE_SSE2, 1, [Define to 1 if SSE2 inline assembly is available.])
1427 AC_CACHE_CHECK([if $CC groks SSE3 inline assembly], [ac_cv_sse3_inline], [
1428 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1430 asm volatile("movsldup %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1433 ac_cv_sse3_inline=yes
1435 ac_cv_sse3_inline=no
1439 AS_IF([test "${ac_cv_sse3_inline}" != "no"], [
1440 AC_DEFINE(CAN_COMPILE_SSE3, 1, [Define to 1 if SSE3 inline assembly is available.]) ])
1443 AC_CACHE_CHECK([if $CC groks SSSE3 inline assembly], [ac_cv_ssse3_inline], [
1444 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1446 asm volatile("pabsw %%xmm0,%%xmm0"::"r"(p):"xmm0");
1449 ac_cv_ssse3_inline=yes
1451 ac_cv_ssse3_inline=no
1455 AS_IF([test "${ac_cv_ssse3_inline}" != "no"], [
1456 AC_DEFINE(CAN_COMPILE_SSSE3, 1, [Define to 1 if SSSE3 inline assembly is available.]) ])
1459 AC_CACHE_CHECK([if $CC groks SSE4.1 inline assembly],
1460 [ac_cv_sse4_1_inline], [
1461 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1463 asm volatile("pmaxsb %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1466 ac_cv_sse4_1_inline=yes
1468 ac_cv_sse4_1_inline=no
1472 AS_IF([test "${ac_cv_sse4_1_inline}" != "no"], [
1473 AC_DEFINE(CAN_COMPILE_SSE4_1, 1, [Define to 1 if SSE4_1 inline assembly is available.]) ])
1476 AC_CACHE_CHECK([if $CC groks SSE4.2 inline assembly],
1477 [ac_cv_sse4_2_inline], [
1478 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1480 asm volatile("pcmpgtq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1483 ac_cv_sse4_2_inline=yes
1485 ac_cv_sse4_2_inline=no
1489 AS_IF([test "${ac_cv_sse4_2_inline}" != "no"], [
1490 AC_DEFINE(CAN_COMPILE_SSE4_2, 1, [Define to 1 if SSE4_2 inline assembly is available.]) ])
1493 AC_CACHE_CHECK([if $CC groks SSE4A inline assembly], [ac_cv_sse4a_inline], [
1494 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1496 asm volatile("insertq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1499 ac_cv_sse4a_inline=yes
1501 ac_cv_sse4a_inline=no
1505 AS_IF([test "${ac_cv_sse4a_inline}" != "no"], [
1506 AC_DEFINE([CAN_COMPILE_SSE4A], [1], [Define to 1 if SSE4A inline assembly is available.]) ])
1508 AM_CONDITIONAL([HAVE_SSE2], [test "$have_sse2" = "yes"])
1510 dnl Check for fully workin AVX2 intrinsics
1511 dnl We need support for -mavx[2], we need <immintrin.h>, and we also need a
1512 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1513 AC_ARG_ENABLE([avx],
1514 AS_HELP_STRING([--disable-avx],
1515 [disable AVX (1-2) optimizations (default auto)]),, [
1516 case "${host_cpu}" in
1526 AS_IF([test "${enable_avx}" != "no"], [
1527 ARCH="${ARCH} avx avx2"
1530 CFLAGS="${CFLAGS} -mavx2"
1531 AC_CACHE_CHECK([if $CC groks AVX2 intrinsics], [ac_cv_c_avx2_intrinsics], [
1532 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1533 [#include <immintrin.h>
1535 uint64_t frobzor;]], [
1537 a = b = c = _mm256_set1_epi64x((int64_t)frobzor);
1538 a = _mm256_slli_epi16(a, 3);
1539 a = _mm256_adds_epi16(a, b);
1540 c = _mm256_srli_epi16(c, 8);
1541 c = _mm256_slli_epi16(c, 3);
1542 b = _mm256_adds_epi16(b, c);
1543 a = _mm256_unpacklo_epi8(a, b);
1544 frobzor = (uint64_t)_mm256_extract_epi64(a, 0);]])], [
1545 ac_cv_c_avx2_intrinsics=yes
1547 ac_cv_c_avx2_intrinsics=no
1551 AS_IF([test "${ac_cv_c_avx2_intrinsics}" != "no"], [
1552 AC_DEFINE(HAVE_AVX2_INTRINSICS, 1, [Define to 1 if AVX2 intrinsics are available.])
1556 CFLAGS="${CFLAGS} -mavx"
1557 AC_CACHE_CHECK([if $CC groks AVX inline assembly], [ac_cv_avx_inline], [
1558 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1560 asm volatile("xorps256 %%ymm1,%%ymm2"::"r"(p):"ymm1", "ymm2");
1563 ac_cv_avx_inline=yes
1569 AS_IF([test "${ac_cv_avx_inline}" != "no" -a "${SYS}" != "solaris"], [
1570 AC_DEFINE(CAN_COMPILE_AVX, 1, [Define to 1 if AVX inline assembly is available.])
1573 AC_CACHE_CHECK([if $CC groks AVX2 inline assembly], [ac_cv_avx2_inline], [
1574 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1576 asm volatile("punpckhqdq256 %%ymm1,%%ymm2"::"r"(p):"ymm1", "ymm2");
1579 ac_cv_avx2_inline=yes
1581 ac_cv_avx2_inline=no
1585 AS_IF([test "${ac_cv_avx2_inline}" != "no" -a "${SYS}" != "solaris"], [
1586 AC_DEFINE(CAN_COMPILE_AVX2, 1, [Define to 1 if AVX2 inline assembly is available.])
1590 AM_CONDITIONAL([HAVE_AVX2], [test "$have_avx2" = "yes"])
1593 CFLAGS="${CFLAGS} -mmmx"
1595 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly], [ac_cv_3dnow_inline], [
1596 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1598 asm volatile("pfadd %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1601 ac_cv_3dnow_inline=yes
1603 ac_cv_3dnow_inline=no
1607 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1608 AC_DEFINE([CAN_COMPILE_3DNOW], 1,
1609 [Define to 1 if 3D Now! inline assembly is available.])
1612 AM_CONDITIONAL([HAVE_3DNOW], [test "$have_3dnow" = "yes"])
1615 AC_ARG_ENABLE([neon],
1616 AS_HELP_STRING([--disable-neon],
1617 [disable ARM NEON optimizations (default auto)]),, [
1618 case "${host_cpu}" in
1630 AS_IF([test "${enable_neon}" != "no"], [
1632 AC_CACHE_CHECK([if $CCAS groks ARM NEON assembly], [ac_cv_arm_neon], [
1633 AS_IF([test "${enable_neon}" != "64"], [
1634 CFLAGS="${CFLAGS} -mfpu=neon -mhard-float"
1637 asm volatile("vqmovun.s64 d0, q1":::"d0");
1645 CFLAGS="${CFLAGS} -march=armv8-a+simd"
1648 asm volatile("uhadd v0.8b, v0.8b, v1.8b":::"v0");
1659 AM_CONDITIONAL([HAVE_NEON], [test "${ac_cv_arm_neon}" = "32"])
1660 AM_CONDITIONAL([HAVE_ARM64], [test "${ac_cv_arm_neon}" = "64"])
1662 AC_ARG_ENABLE([sve],
1663 AS_HELP_STRING([--disable-sve],
1664 [disable ARM SVE optimizations (default auto)]),, [
1665 AS_IF([test "${host_cpu}" = "aarch64"], [enable_sve="yes"] ,[enable_sve="no"])
1667 AS_IF([test "${enable_sve}" != "no"], [
1669 CFLAGS="${CFLAGS} -march=armv8-a+sve"
1670 AC_CACHE_CHECK([if $CCAS groks ARM SVE assembly], [ac_cv_arm_sve], [
1673 asm volatile("ptrue p0.s" ::: "p0");
1683 AM_CONDITIONAL([HAVE_SVE], [test "${ac_cv_arm_sve}" = "yes"])
1685 AC_ARG_ENABLE([pointer-auth],
1686 AS_HELP_STRING([--disable-pointer-auth],
1687 [disable ARMv8.3 Pointer Authentication (default auto)]),, [
1688 AS_IF([test "${host_cpu}" = "aarch64"], [enable_ptrauth="yes"] ,[enable_ptrauth="no"])
1690 AS_IF([test "${enable_ptrauth}" != "no"], [
1691 AX_CHECK_COMPILE_FLAG([-msign-return-address=non-leaf], [
1692 AX_APPEND_FLAG([-msign-return-address=non-leaf], [CFLAGS])
1693 AX_APPEND_FLAG([-msign-return-address=non-leaf], [CXXFLAGS])
1698 AC_ARG_ENABLE([altivec],
1699 AS_HELP_STRING([--disable-altivec],
1700 [disable AltiVec optimizations (default auto)]),, [
1701 AS_CASE("${host_cpu}", [powerpc*],
1702 [enable_altivec=yes], [enable_altivec=no])
1706 AS_IF([test "${enable_altivec}" = "yes"], [
1707 ARCH="${ARCH} altivec";
1709 AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1710 [ac_cv_altivec_inline],
1711 [AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1712 ac_cv_altivec_inline="yes",
1713 [CFLAGS="${CFLAGS} -Wa,-maltivec"
1714 AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1715 [ac_cv_altivec_inline="-Wa,-maltivec"],
1716 ac_cv_altivec_inline=no)
1719 AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1720 AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1721 [Define to 1 if AltiVec inline assembly is available.])
1722 AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1723 ALTIVEC_CFLAGS="${ac_cv_altivec_inline}"
1724 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_altivec_inline}])
1730 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1731 [ac_cv_c_altivec], [
1732 CFLAGS="${CFLAGS} -maltivec"
1733 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1734 [#include <altivec.h>]], [
1735 [vec_ld(0, (unsigned char *)0);]])], [
1736 ac_cv_c_altivec="-maltivec"
1738 ac_cv_c_altivec="no"
1742 AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1743 CPPFLAGS="${CPPFLAGS} ${ac_cv_c_altivec}"
1744 AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, [Define to 1 if C AltiVec extensions are available.])
1745 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_c_altivec}])
1746 ALTIVEC_CFLAGS="$ALTIVEC_CFLAGS ${ac_cv_c_altivec}"
1747 VLC_ADD_CFLAGS([deinterlace],[${ac_cv_c_altivec}])
1750 AC_CHECK_HEADERS([altivec.h])
1753 LDFLAGS="${LDFLAGS} -Wl,-framework,vecLib"
1754 AC_CACHE_CHECK([if linker needs -framework vecLib],
1756 [AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)])
1758 AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1759 VLC_ADD_LIBS([libvlccore],[-Wl,-framework,vecLib])
1762 AC_SUBST([ALTIVEC_CFLAGS])
1763 AM_CONDITIONAL([HAVE_ALTIVEC], [test "$have_altivec" = "yes"])
1768 AC_ARG_ENABLE([optimize-memory],
1769 AS_HELP_STRING([--enable-optimize-memory],
1770 [optimize memory usage over performance]))
1771 if test "${enable_optimize_memory}" = "yes"; then
1772 AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1776 dnl Allow running as root (useful for people running on embedded platforms)
1778 AC_ARG_ENABLE([run-as-root],
1779 AS_HELP_STRING([--enable-run-as-root],
1780 [allow running VLC as root (default disabled)]))
1781 AS_IF([test "${enable_run_as_root}" = "yes"],[
1782 AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1783 [Define to 1 to allow running VLC as root (uid 0).])
1789 AC_ARG_ENABLE([sout],
1790 AS_HELP_STRING([--disable-sout],
1791 [disable streaming output (default enabled)]))
1792 AS_IF([test "${enable_sout}" != "no"], [
1793 AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1795 AM_CONDITIONAL([ENABLE_SOUT], [test "${enable_sout}" != "no"])
1798 AC_ARG_ENABLE([lua],
1799 AS_HELP_STRING([--disable-lua],
1800 [disable LUA scripting support (default enabled)]))
1801 if test "${enable_lua}" != "no"
1803 PKG_CHECK_MODULES(LUA, lua5.2,
1806 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua 5.1 instead])
1808 PKG_CHECK_MODULES(LUA, lua5.1,
1811 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua >= 5.1 instead])
1812 PKG_CHECK_MODULES(LUA, lua >= 5.1,
1815 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying manual detection instead])
1817 AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1820 AC_CHECK_LIB( lua5.2 , luaL_newstate,
1821 [LUA_LIBS="-llua5.2"],
1822 AC_CHECK_LIB( lua5.1 , luaL_newstate,
1823 [LUA_LIBS="-llua5.1"],
1824 AC_CHECK_LIB( lua51 , luaL_newstate,
1825 [LUA_LIBS="-llua51"],
1826 AC_CHECK_LIB( lua , luaL_newstate,
1834 if test "x${have_lua}" != "xyes" ; then
1835 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.])
1837 AC_ARG_VAR([LUAC], [LUA byte compiler])
1838 AS_IF([test -z "$LUAC"], [
1839 AC_CHECK_TOOL(LUAC, [luac], [false])
1841 AS_IF([test "${LUAC}" = "false"], [
1842 AC_MSG_ERROR([Could not find the LUA byte compiler.])
1844 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], [
1845 AC_MSG_ERROR([You need 32-bits luac when using lua from contrib.])
1848 AM_CONDITIONAL([BUILD_LUA], [test "${have_lua}" = "yes"])
1852 dnl VideoLAN manager
1854 AC_ARG_ENABLE([vlm],
1855 AS_HELP_STRING([--disable-vlm],
1856 [disable the stream manager (default enabled)]),,
1857 [enable_vlm="${enable_sout}"])
1858 AS_IF([test "${enable_vlm}" != "no"], [
1859 AS_IF([test "${enable_sout}" = "no"], [
1860 AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1862 AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1864 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1868 dnl Addons manager storage and repositories modules
1870 AC_ARG_ENABLE([addonmanagermodules],
1871 AS_HELP_STRING([--disable-addonmanagermodules],
1872 [disable the addons manager modules (default enabled)]))
1873 if test "${enable_addonmanagermodules}" != "no"
1875 AC_DEFINE(ENABLE_ADDONMANAGERMODULES, 1, [Define if you want the addons manager modules])
1877 AM_CONDITIONAL([ENABLE_ADDONMANAGERMODULES], [test "${enable_addonmanagermodules}" != "no"])
1884 EXTEND_HELP_STRING([Input plugins:])
1887 dnl libarchive access module
1889 PKG_ENABLE_MODULES_VLC([ARCHIVE], [archive], [libarchive >= 3.1.0], (libarchive support), [auto])
1894 AC_ARG_ENABLE([live555],
1895 AS_HELP_STRING([--enable-live555],
1896 [enable RTSP input through live555 (default enabled)]))
1898 AS_IF([test "${enable_live555}" != "no" -a -n "${CXX}"], [
1899 PKG_CHECK_MODULES(LIVE555, live555, [
1900 VLC_ADD_PLUGIN([live555])
1901 VLC_ADD_CXXFLAGS([live555], [$LIVE555_CFLAGS])
1902 VLC_ADD_LIBS([live555],[$LIVE555_LIBS])
1904 AC_MSG_WARN([${LIVE555_PKG_ERRORS}.])
1909 dnl detect include paths
1910 AS_IF([test -f "${CONTRIB_DIR}/include/UsageEnvironment/UsageEnvironment.hh"], [
1911 CPPFLAGS_live555="-I${CONTRIB_DIR}/include/liveMedia -I${CONTRIB_DIR}/include/groupsock -I${CONTRIB_DIR}/include/BasicUsageEnvironment -I${CONTRIB_DIR}/include/UsageEnvironment"
1913 AS_IF([test "${SYS}" != "os2"], [
1914 LIVE555_PREFIX=${LIVE555_PREFIX-"/usr"}
1915 CPPFLAGS_live555="-I${LIVE555_PREFIX}/include/liveMedia -I${LIVE555_PREFIX}/include/groupsock -I${LIVE555_PREFIX}/include/BasicUsageEnvironment -I${LIVE555_PREFIX}/include/UsageEnvironment"
1917 LIVE555_PREFIX=${LIVE555_PREFIX-"/usr/lib/live"}
1918 CPPFLAGS_live555="-I${LIVE555_PREFIX}/liveMedia/include -I${LIVE555_PREFIX}/groupsock/include -I${LIVE555_PREFIX}/BasicUsageEnvironment/include -I${LIVE555_PREFIX}/UsageEnvironment/include"
1919 LDFLAGS_live555="-L${LIVE555_PREFIX}/liveMedia -L${LIVE555_PREFIX}/groupsock -L${LIVE555_PREFIX}/BasicUsageEnvironment -L${LIVE555_PREFIX}/UsageEnvironment"
1924 AS_IF([test "${SYS}" = "solaris"], [
1925 CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1927 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1928 LDFLAGS="${LDFLAGS} ${LDFLAGS_live555}"
1931 AC_CACHE_CHECK([for live555 version 1324598400 or later], [ac_cv_live555], [
1932 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
1933 [#include <liveMedia_version.hh>
1934 #if !defined (LIVEMEDIA_LIBRARY_VERSION_INT) || (LIVEMEDIA_LIBRARY_VERSION_INT < 1324598400)
1944 AS_IF([test "$ac_cv_live555" = "no"], [
1945 AC_MSG_WARN([live555 is missing or its installed version is too old:
1946 Version 2011.12.23 or later is required to proceed.
1947 You can get an updated one from http://www.live555.com/liveMedia .])
1948 AS_IF([test -n "${enable_live555}"], [
1949 AC_MSG_ERROR([Update live555 or pass --disable-live555 to disable RTSP input support.])
1952 other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1953 other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
1954 AS_IF([test "${SYS}" = "mingw32"], [
1955 # add ws2_32 for closesocket, select, recv
1956 other_libs="$other_libs -lws2_32"
1959 dnl We need to check for pic because live555 don't provide shared libs
1960 dnl and we want to build a plugins so we need -fPIC on some arch.
1961 VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1962 VLC_ADD_LDFLAGS([live555], [${LDFLAGS_live555}])
1963 AC_CHECK_LIB([liveMedia_pic], [main], [
1964 VLC_ADD_PLUGIN([live555])
1965 VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
1967 AC_CHECK_LIB([liveMedia], [main], [
1968 VLC_ADD_PLUGIN([live555])
1969 VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1970 ],[],[${other_libs}])
1971 ],[${other_libs_pic}])
1979 dnl IIDC and DV FireWire input modules
1981 PKG_ENABLE_MODULES_VLC([DC1394], [], [libdc1394-2 >= 2.1.0], [IIDC FireWire input module], [auto])
1982 PKG_ENABLE_MODULES_VLC([DV1394], [], [libraw1394 >= 2.0.1 libavc1394 >= 0.5.3], [DV FireWire input module], [auto])
1985 dnl - linsys modules: access module check for libzvbi
1987 AC_ARG_ENABLE([linsys],
1988 AS_HELP_STRING([--enable-linsys],
1989 [Linux Linear Systems Ltd. SDI and HD-SDI input cards (default enabled)]))
1990 AS_IF([test "$SYS" = "linux" -a "${enable_linsys}" != "no"], [
1991 VLC_ADD_PLUGIN([linsys_hdsdi])
1992 PKG_CHECK_MODULES(LINSYS_SDI, [zvbi-0.2 >= 0.2.28], [
1993 VLC_ADD_PLUGIN([linsys_sdi])
1995 AC_MSG_WARN([${LINSYS_SDI_PKG_ERRORS}.])
2000 dnl dvdread module: check for libdvdread
2002 PKG_ENABLE_MODULES_VLC([DVDREAD], [], [dvdread > 6.0.0], [dvdread input module], [auto])
2005 dnl libdvdnav plugin
2007 PKG_ENABLE_MODULES_VLC([DVDNAV], [], [dvdnav >= 6.0.0], [DVD with navigation input module (dvdnav)], [auto])
2010 dnl Blu-ray Disc Support with libbluray
2012 PKG_ENABLE_MODULES_VLC([BLURAY], [libbluray], [libbluray >= 0.6.2], (libbluray for Blu-ray disc support ) )
2015 dnl OpenCV wrapper and example filters
2017 PKG_ENABLE_MODULES_VLC([OPENCV], [opencv_example opencv_wrapper], [opencv > 2.0], (OpenCV (computer vision) filter), [auto])
2021 dnl libsmbclient plugin
2023 PKG_ENABLE_MODULES_VLC([SMBCLIENT], [smbc], [smbclient], (SMB/CIFS support), [auto])
2026 dnl liBDSM access module
2028 AM_CONDITIONAL([HAVE_DSM], [test "$AS_TR_SH(with_dsm)" = "yes"])
2029 PKG_WITH_MODULES([DSM], [libdsm >= 0.2.0], [
2030 VLC_ADD_PLUGIN([dsm])
2031 VLC_ADD_CFLAGS([dsm], [$DSM_CFLAGS])
2032 VLC_ADD_LIBS([dsm], [$DSM_LIBS])
2034 ],,[libdsm SMB/CIFS access/sd module], [auto])
2035 AM_CONDITIONAL([HAVE_DSM], [test "${have_dsm}" = "yes"])
2038 dnl sftp access support
2040 PKG_ENABLE_MODULES_VLC([SFTP], [sftp], [libssh2], (support SFTP file transfer via libssh2), [auto])
2043 dnl nfs access support
2045 PKG_ENABLE_MODULES_VLC([NFS], [nfs], [libnfs >= 1.10.0], (support nfs protocol via libnfs), [auto])
2048 dnl smb2 access support
2050 PKG_ENABLE_MODULES_VLC([SMB2], [smb2], [libsmb2 >= 3.0.0], (support smb2 protocol via libsmb2), [auto])
2055 AC_ARG_ENABLE([v4l2], AS_HELP_STRING([--disable-v4l2],
2056 [disable Video4Linux version 2 (default auto)]))
2058 AS_IF([test "$enable_v4l2" != "no"], [
2059 AC_CHECK_HEADERS([linux/videodev2.h], [
2063 AM_CONDITIONAL([HAVE_V4L2], [test "${have_v4l2}" != "no"])
2066 dnl NVDEC decoder/encoder
2068 AC_ARG_ENABLE([nvdec], AS_HELP_STRING([--disable-nvdec],
2069 [disable NVDEC decoder (default auto)]))
2071 AS_IF([test "$enable_nvdec" != "no"], [
2072 AC_CHECK_HEADERS([ffnvcodec/dynlink_loader.h], [
2076 AM_CONDITIONAL([HAVE_NVDEC], [test "${have_nvdec}" != "no"])
2079 dnl special access module for Blackmagic SDI cards
2081 AC_ARG_ENABLE([decklink],
2082 AS_HELP_STRING([--disable-decklink],
2083 [disable Blackmagic DeckLink SDI input (default auto)]))
2084 AC_ARG_WITH([decklink_sdk],
2085 AS_HELP_STRING([--with-decklink-sdk=DIR],
2086 [location of Blackmagic DeckLink SDI SDK]))
2088 if test "${enable_decklink}" != "no"
2090 if test "${with_decklink_sdk}" != "no" -a -n "${with_decklink_sdk}"
2092 VLC_ADD_CPPFLAGS([decklink decklinkoutput stream_out_sdi],[-I${with_decklink_sdk}/include])
2095 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_decklink}"
2097 AC_CHECK_HEADERS([DeckLinkAPIDispatch.cpp], [
2099 AS_IF([test "${SYS}" = "darwin"], [
2100 VLC_ADD_LIBS([decklink decklinkoutput],[-Wl,-framework,CoreFoundation])
2103 AS_IF([test "${enable_decklink}" = "yes"], [
2104 AC_MSG_ERROR([Blackmagic DeckLink SDI include files not found!])
2106 AC_MSG_WARN([Blackmagic DeckLink SDI include files not found, decklink disabled])
2112 AM_CONDITIONAL([HAVE_DECKLINK], [ test "${have_decklink}" != "no" ])
2116 dnl Built-in CD-DA and VCD module
2118 AC_ARG_ENABLE([vcd],
2119 AS_HELP_STRING([--disable-vcd],
2120 [disable built-in VCD and CD-DA support (default enabled)]))
2122 AC_ARG_ENABLE([libcddb],
2123 AS_HELP_STRING([--disable-libcddb],
2124 [disable CDDB for Audio CD (default enabled)]))
2126 if test "${enable_vcd}" != "no" -a "${enable_winstore_app}" != "yes"
2128 AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2129 AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2131 VLC_ADD_PLUGIN([vcd cdda])
2136 AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2137 AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2139 VLC_ADD_PLUGIN([vcd cdda])
2140 AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2145 AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2146 AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2148 VLC_ADD_PLUGIN([vcd cdda])
2149 AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2154 if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32" -o "${SYS}" = "os2" -o "${SYS}" = "darwin"
2156 VLC_ADD_PLUGIN([vcd cdda])
2159 if test "$enable_libcddb" != "no"; then
2160 PKG_CHECK_MODULES(LIBCDDB, [libcddb >= 0.9.5], [
2162 AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2163 VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2164 VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2166 [AC_MSG_WARN([${LIBCDDB_PKG_ERRORS}: CDDB access disabled.])
2174 AC_CACHE_CHECK([for Linux DVB version 5.1], [ac_cv_linux_dvb_5_1], [
2175 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
2176 [#include <linux/dvb/version.h>
2177 #if (DVB_API_VERSION < 5)
2178 # error Linux DVB API v3.2 and older are not supported.
2180 #if (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR < 1)
2181 # error Linux DVB API v5.0 is unsupported. Please update.
2184 ac_cv_linux_dvb_5_1=yes
2186 ac_cv_linux_dvb_5_1=no
2188 AM_CONDITIONAL([HAVE_LINUX_DVB], [test "$ac_cv_linux_dvb_5_1" = "yes"])
2191 dnl Screen capture module
2193 AC_ARG_ENABLE([screen],
2194 AS_HELP_STRING([--enable-screen],
2195 [disable screen capture (default enabled)]))
2196 if test "${enable_screen}" != "no"; then
2197 if test "${SYS}" = "darwin"; then
2198 AC_CHECK_HEADERS([ApplicationServices/ApplicationServices.h], [
2199 VLC_ADD_PLUGIN([screen])
2203 AM_CONDITIONAL([HAVE_MAC_SCREEN], [test "${SYS}" = "darwin" -a "x${enable_screen}" != "xno"])
2206 dnl VNC/RFB access module
2208 PKG_ENABLE_MODULES_VLC([VNC], [vnc], [libvncclient >= 0.9.9], (VNC/rfb client support), [auto])
2210 dnl RDP/Remote Desktop access module
2212 PKG_ENABLE_MODULES_VLC([FREERDP], [rdp], [freerdp >= 1.0.1], (RDP/Remote Desktop client support) )
2216 AC_SUBST([have_avfoundation], ["no"])
2217 AC_ARG_ENABLE([macosx-avfoundation],
2218 AS_HELP_STRING([--enable-macosx-avfoundation], [Mac OS X avcapture (video) module (default enabled on Mac OS X)]))
2219 if test "x${enable_macosx_avfoundation}" != "xno" &&
2220 (test "${SYS}" = "darwin" || test "${enable_macosx_avfoundation}" = "yes")
2222 SAVED_LIBS="${LIBS}"
2223 LIBS="-framework AVFoundation"
2224 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [])],[have_avfoundation=yes],[have_avfoundation=no])
2225 LIBS="${SAVED_LIBS}"
2226 if test "${have_avfoundation}" != "no"
2228 VLC_ADD_PLUGIN([avcapture])
2231 AM_CONDITIONAL([HAVE_AVFOUNDATION], [test "${have_avfoundation}" != "no"])
2234 dnl DCP plugin (using asdcplib)
2236 PKG_WITH_MODULES([ASDCP], [asdcplib], [have_asdcp="yes"])
2237 AM_CONDITIONAL([HAVE_ASDCP], [test "${have_asdcp}" = "yes"])
2243 EXTEND_HELP_STRING([Mux/Demux plugins:])
2246 dnl libdvbpsi check for ts mux/demux
2249 PKG_WITH_MODULES([DVBPSI], [libdvbpsi >= 1.2.0], [have_dvbpsi="yes"])
2250 AM_CONDITIONAL([HAVE_DVBPSI], [test "${have_dvbpsi}" = "yes"])
2254 dnl GME demux plugin
2256 AC_ARG_ENABLE([gme],
2257 AS_HELP_STRING([--enable-gme],
2258 [use Game Music Emu (default auto)]))
2259 AS_IF([test "${enable_gme}" != "no"], [
2260 AC_CHECK_HEADER([gme/gme.h], [
2261 AC_CHECK_LIB([gme], [gme_identify_header], [
2262 VLC_ADD_PLUGIN([gme])
2264 AC_CHECK_LIB([gme], [gme_identify_extension], [
2265 VLC_ADD_LIBS([gme], [-lstdc++ $LIBM])
2266 VLC_ADD_PLUGIN([gme])
2267 ],, [-lstdc++ $LIBM])
2269 VLC_ADD_LIBS([gme], [-lgme])
2271 AS_IF([test "x${enable_gme}" != "x"], [
2272 AC_MSG_ERROR([GME cannot be found. Please install the development files.])
2281 AC_ARG_ENABLE([sid],
2282 AS_HELP_STRING([--enable-sid],[C64 sid demux support (default auto)]))
2283 AS_IF([test "${enable_sid}" != "no"], [
2284 PKG_CHECK_MODULES(SID, [libsidplay2], [
2286 oldCPPFLAGS="$CPPFLAGS"
2287 CPPFLAGS="$CPPFLAGS $SID_CFLAGS"
2288 AC_CHECK_HEADER([sidplay/builders/resid.h], [
2289 VLC_ADD_PLUGIN([sid])
2290 VLC_ADD_CFLAGS([sid], [$SID_CFLAGS])
2291 VLC_ADD_LIBS([sid], [$SID_LIBS] [-lresid-builder])
2293 AS_IF([test -n "${enable_sid}"],
2294 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2295 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2298 CPPFLAGS="$oldCPPFLAGS"
2301 AS_IF([test "x${enable_sid}" = "xyes"],
2302 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2303 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2310 dnl ogg demux plugin
2312 PKG_ENABLE_MODULES_VLC([OGG], [mux_ogg], [ogg >= 1.0], [Ogg demux support], [auto])
2313 PKG_CHECK_MODULES(LIBVORBIS, [vorbis >= 1.1], [
2314 AC_DEFINE(HAVE_LIBVORBIS, 1, [Define to 1 if you have the libvorbis])
2316 PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto], [${LIBVORBIS_CFLAGS}], [${LIBVORBIS_LIBS}])
2317 if test "${enable_sout}" != "no"; then
2318 dnl Check for libshout
2319 PKG_ENABLE_MODULES_VLC([SHOUT], [access_output_shout], [shout >= 2.1], [libshout output plugin], [auto])
2323 dnl matroska demux plugin
2325 PKG_WITH_MODULES([MATROSKA], [libebml >= 1.3.6 libmatroska], [
2326 VLC_ADD_PLUGIN([mkv])
2327 VLC_ADD_CFLAGS([mkv], [$MATROSKA_CFLAGS])
2328 VLC_ADD_LIBS([mkv], [$MATROSKA_LIBS])
2330 ],,[MKV format support], [auto])
2331 AM_CONDITIONAL([HAVE_MATROSKA], [test "${have_matroska}" = "yes"])
2334 dnl modplug demux plugin
2336 AC_ARG_ENABLE([mod],
2337 AS_HELP_STRING([--disable-mod],
2338 [do not use libmodplug (default auto)]))
2339 if test "${enable_mod}" != "no" ; then
2340 PKG_CHECK_MODULES(LIBMODPLUG, [libmodplug >= 0.8.9.0], [
2341 VLC_ADD_PLUGIN([mod])
2342 VLC_ADD_CXXFLAGS([mod],[$LIBMODPLUG_CFLAGS])
2343 VLC_ADD_CFLAGS([mod],[$LIBMODPLUG_CFLAGS]) #modules/demux/mod.c needs CFLAGS_mod, not CXXFLAGS_mod
2344 VLC_ADD_LIBS([mod],[$LIBMODPLUG_LIBS])
2346 AS_IF([test -n "${enable_mod}"],
2347 [AC_MSG_ERROR([${LIBMODPLUG_PKG_ERRORS}.])],
2348 [AC_MSG_WARN([${LIBMODPLUG_PKG_ERRORS}.])])
2353 dnl mpc demux plugin
2355 AC_ARG_ENABLE([mpc],
2356 AS_HELP_STRING([--disable-mpc], [do not use libmpcdec (default auto)]))
2357 if test "${enable_mpc}" != "no"
2359 AC_CHECK_HEADERS([mpcdec/mpcdec.h], [
2360 VLC_ADD_PLUGIN([mpc])
2361 VLC_ADD_LIBS([mpc],[-lmpcdec])])
2368 EXTEND_HELP_STRING([Codec plugins:])
2371 dnl shine encoder plugin
2373 PKG_ENABLE_MODULES_VLC([SHINE], [], [shine >= 3.0.0], [MPEG Audio Layer 3 encoder], [auto], [], [], [])
2377 dnl openmax il codec plugin
2379 AC_ARG_ENABLE([omxil],
2380 AS_HELP_STRING([--enable-omxil], [openmax il codec module (default disabled)]))
2381 if test "${enable_omxil}" = "yes"
2383 VLC_ADD_PLUGIN([omxil])
2387 dnl raspberry pi openmax il configuration
2389 AC_ARG_ENABLE([rpi-omxil],
2390 AS_HELP_STRING([--enable-rpi-omxil], [openmax il configured for raspberry pi (default disabled)]))
2391 if test "${enable_rpi_omxil}" = "yes"
2393 VLC_ADD_PLUGIN([omxil])
2394 VLC_ADD_CFLAGS([omxil],[-DRPI_OMX])
2398 dnl CrystalHD codec plugin
2400 AC_ARG_ENABLE([crystalhd],
2401 AS_HELP_STRING([--enable-crystalhd], [crystalhd codec plugin (default auto)]))
2402 if test "${enable_crystalhd}" != "no"; then
2403 AC_CHECK_HEADER(libcrystalhd/libcrystalhd_if.h, [
2404 VLC_ADD_PLUGIN([crystalhd])
2405 VLC_ADD_LIBS([crystalhd], [-lcrystalhd])
2407 if test "${SYS}" = "mingw32" ; then
2408 AC_CHECK_HEADERS([libcrystalhd/bc_dts_defs.h], [
2409 VLC_ADD_PLUGIN([crystalhd])
2410 AC_CHECK_HEADERS([libcrystalhd/bc_drv_if.h], [
2411 VLC_ADD_LIBS([crystalhd], [-lbcmDIL])
2414 AS_IF([test x"${enable_crystalhd}" = "xyes"],
2415 [AC_MSG_ERROR("Could not find CrystalHD development headers")],
2416 [AC_MSG_WARN("Could not find CrystalHD development headers")])
2417 ],[#define __LINUX_USER__
2418 #include <libcrystalhd/bc_dts_types.h>
2422 #include <libcrystalhd/bc_dts_types.h>
2433 AC_ARG_WITH(mad, AS_HELP_STRING([--with-mad=PATH], [path to libmad]), [
2438 AS_IF([test "${with_mad}" != "no"], [
2439 MAD_CFLAGS="-I${with_mad}/include"
2440 MAD_LIBS="-L${with_mad}/lib"
2443 AC_ARG_ENABLE([mad],
2444 AS_HELP_STRING([--enable-mad], [libmad module (default enabled)]))
2445 AS_IF([test "${enable_mad}" != "no"], [
2447 CPPFLAGS="${CPPFLAGS} ${MAD_CFLAGS}"
2448 LDFLAGS="${LDFLAGS} ${MAD_LIBS}"
2449 AC_CHECK_HEADERS([mad.h], [
2450 AC_CHECK_LIB([mad], [mad_bit_init], [
2452 MAD_LIBS="${MAD_LIBS} -lmad"
2456 AS_IF([test -n "$enable_mad" -a "${have_mad}" = "no"], [
2457 AC_MSG_ERROR([Could not find libmad. Install it or pass --disable-mad to disable it.])
2460 AC_SUBST([MAD_CFLAGS])
2461 AC_SUBST([MAD_LIBS])
2462 AM_CONDITIONAL([HAVE_MAD], [test "${have_mad}" = "yes"])
2467 PKG_ENABLE_MODULES_VLC([MPG123], [mpg123], [libmpg123], [libmpg123 decoder support], [auto])
2472 AC_ARG_ENABLE([gst-decode],
2473 AS_HELP_STRING([--enable-gst-decode], [GStreamer based decoding support (currently supports only video decoding) (default auto)]))
2475 have_gst_decode="no"
2476 AS_IF([test "${enable_gst_decode}" != "no"], [
2477 PKG_CHECK_MODULES([GST_APP], [gstreamer-app-1.0], [
2478 PKG_CHECK_MODULES([GST_VIDEO], [gstreamer-video-1.0], [
2479 have_gst_decode="yes"
2481 AC_MSG_WARN([${GST_VIDEO_PKG_ERRORS}. GStreamer decoder module will not be built.])
2484 AC_MSG_WARN([${GST_APP_PKG_ERRORS}. GStreamer modules will not be built.])
2487 AM_CONDITIONAL([HAVE_GST_DECODE], [test "${have_gst_decode}" = "yes"])
2490 dnl avcodec decoder/encoder plugin
2492 AC_ARG_ENABLE([merge-ffmpeg],
2493 AS_HELP_STRING([--enable-merge-ffmpeg], [merge FFmpeg-based plugins (default disabled)]),, [
2494 enable_merge_ffmpeg="no"
2496 AM_CONDITIONAL([MERGE_FFMPEG], [test "$enable_merge_ffmpeg" != "no"])
2498 AC_MSG_CHECKING([for libavutil variant])
2499 PKG_CHECK_EXISTS([libavutil], [
2500 libavutil_version="$(${PKG_CONFIG} --modversion libavutil)"
2501 libavutil_micro="${libavutil_version##*.}"
2502 AS_IF([test ${libavutil_micro} -le 99], [
2510 AC_MSG_RESULT([${avfork}])
2512 AC_ARG_ENABLE([avcodec],
2513 AS_HELP_STRING([--enable-avcodec], [libavcodec codec (default enabled)]))
2514 AS_IF([test "${enable_avcodec}" != "no"], [
2515 dnl We need >=57.16.0 from libav or >=57.37.100 from ffmpeg
2517 libav) av_codec_ver="57.16.0" ;;
2518 dnl 05f66706d182eb0c36af54d72614bf4c33e957a9 includes libavutil 55.9.0
2519 ffmpeg) av_codec_ver="57.37.100" ;;
2520 dnl 7fc329e2dd6226dfecaa4a1d7adf353bf2773726 include libavutil 55.22.101
2521 *) AC_MSG_ERROR([Missing libav or FFmpeg. Pass --disable-avcodec to ignore this error.])
2523 PKG_CHECK_MODULES(AVCODEC,[libavcodec >= ${av_codec_ver} libavutil >= 55.9.0], [
2525 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2526 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2527 AC_CHECK_HEADERS([libavcodec/avcodec.h])
2528 AC_CHECK_HEADERS([libavutil/avutil.h])
2532 AC_MSG_ERROR([${AVCODEC_PKG_ERRORS}. Pass --disable-avcodec to ignore this error.])
2537 AM_CONDITIONAL([HAVE_AVCODEC], [test "${have_avcodec}" != "no"])
2540 dnl libva needs avcodec
2542 AC_ARG_ENABLE([libva],
2543 AS_HELP_STRING([--enable-libva], [VAAPI GPU decoding support (libVA) (default auto)]))
2545 AS_IF([test "${enable_libva}" = "yes" -a "${have_avcodec}" != "yes" ], [
2546 AC_MSG_ERROR([--enable-libva and --disable-avcodec options are mutually exclusive. Use --enable-avcodec.])
2553 AS_IF([test "${enable_libva}" != "no"], [
2554 PKG_CHECK_MODULES([LIBVA], [libva >= 0.38], [
2557 AS_IF([test -n "${enable_libva}"], [
2558 AC_MSG_ERROR([${LIBVA_PKG_ERRORS}.])
2560 AC_MSG_WARN([${LIBVA_PKG_ERRORS}.])
2563 PKG_CHECK_MODULES([LIBVA_DRM], [libva-drm], [
2564 have_vaapi_drm="yes"
2566 AC_MSG_WARN([${LIBVA_DRM_PKG_ERRORS}.])
2568 PKG_CHECK_MODULES(LIBVA_X11, [libva-x11], [
2569 have_vaapi_x11="yes"
2571 AC_MSG_WARN([${LIBVA_X11_PKG_ERRORS}.])
2573 PKG_CHECK_MODULES(LIBVA_WL, [libva-wayland], [
2576 AC_MSG_WARN([${LIBVA_WL_PKG_ERRORS}.])
2579 AM_CONDITIONAL([HAVE_VAAPI], [test "${have_vaapi}" = "yes"])
2580 AM_CONDITIONAL([HAVE_VAAPI_DRM], [test "${have_vaapi_drm}" = "yes"])
2581 AM_CONDITIONAL([HAVE_VAAPI_X11], [test "${have_vaapi_x11}" = "yes"])
2582 AM_CONDITIONAL([HAVE_VAAPI_WL], [test "${have_vaapi_wl}" = "yes"])
2584 have_avcodec_vaapi="no"
2585 AS_IF([test "${have_vaapi}" = "yes" -a "${have_avcodec}" = "yes"], [
2587 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2588 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2589 AC_CHECK_HEADERS([libavcodec/vaapi.h], [
2590 AC_MSG_NOTICE([VA API acceleration activated])
2591 have_avcodec_vaapi="yes"
2593 AS_IF([test -n "${enable_libva}"], [
2594 AC_MSG_ERROR([libva is present but libavcodec/vaapi.h is missing])
2596 AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing ])
2601 AM_CONDITIONAL([HAVE_AVCODEC_VAAPI], [test "${have_avcodec_vaapi}" = "yes"])
2604 dnl dxva2 needs avcodec
2606 AC_ARG_ENABLE([dxva2],
2607 AS_HELP_STRING([--enable-dxva2], [DxVA2 GPU decoding support (default auto)]))
2609 have_avcodec_dxva2="no"
2610 AS_IF([test "${enable_dxva2}" != "no"], [
2611 if test "${SYS}" = "mingw32"; then
2612 AS_IF([test "x${have_avcodec}" = "xyes"], [
2613 AC_CHECK_HEADERS([dxva2api.h],
2615 AC_CHECK_HEADERS([libavcodec/dxva2.h], [
2616 AC_MSG_NOTICE([DxVA2 acceleration activated])
2617 have_avcodec_dxva2="yes"
2619 AS_IF([test "${enable_dxva2}" = "yes"],
2620 [AC_MSG_ERROR([dxva2 is present but libavcodec/dxva2.h is missing])],
2621 [AC_MSG_WARN([dxva2 is present but libavcodec/dxva2.h is missing ])])
2622 ], [#undef _WIN32_WINNT
2623 /* DXVA2 is only available in Vista and above */
2624 #define _WIN32_WINNT 0x600])
2626 AS_IF([test "${enable_dxva2}" = "yes"],
2627 [AC_MSG_ERROR([Could not find required dxva2api.h])],
2628 [AC_MSG_WARN([dxva2api.h not found])])
2629 ],[#include <d3d9.h>])
2631 AS_IF([test "x${enable_dxva2}" != "x"], [
2632 AC_MSG_ERROR([--enable-dxva2 and --disable-avcodec options are mutually exclusive.])
2637 AM_CONDITIONAL([HAVE_AVCODEC_DXVA2], [test "${have_avcodec_dxva2}" = "yes"])
2640 dnl d3d11va needs avcodec
2642 AC_ARG_ENABLE([d3d11va],
2643 AS_HELP_STRING([--enable-d3d11va], [D3D11 GPU decoding support (default auto)]))
2645 have_avcodec_d3d11va="no"
2646 AS_IF([test "${enable_d3d11va}" != "no"], [
2647 if test "${SYS}" = "mingw32"; then
2648 AS_IF([test "x${have_avcodec}" = "xyes"], [
2649 AC_CHECK_TYPES([ID3D11VideoDecoder],
2651 AC_CHECK_HEADERS([dxva2api.h],
2653 AC_CHECK_HEADERS([libavcodec/d3d11va.h], [
2654 AC_MSG_NOTICE([D3D11 acceleration activated])
2655 AC_DEFINE([HAVE_AVCODEC_D3D11VA], [1], [Define if the d3d11va module is built])
2656 have_avcodec_d3d11va="yes"
2658 AS_IF([test "${enable_d3d11va}" = "yes"],
2659 [AC_MSG_ERROR([d3d11va is present but libavcodec/d3d11va.h is missing])],
2660 [AC_MSG_WARN([d3d11va is present but libavcodec/d3d11va.h is missing ])])
2661 ], [#undef _WIN32_WINNT
2662 /* D3D11 is only available in Vista and above */
2663 #define _WIN32_WINNT 0x600])
2665 AS_IF([test "${enable_d3d11va}" = "yes"],
2666 [AC_MSG_ERROR([Could not find required dxva2api.h])],
2667 [AC_MSG_WARN([dxva2api.h not found])])
2668 ],[#include <d3d9.h>])
2670 AS_IF([test "${enable_d3d11va}" = "yes"],
2671 [AC_MSG_ERROR([Could not find required ID3D11VideoDecoder in d3d11.h])],
2672 [AC_MSG_WARN([ID3D11VideoDecoder not found])])
2673 ], [#include <d3d11.h>])
2675 AS_IF([test "x${enable_d3d11va}" != "x"], [
2676 AC_MSG_ERROR([--enable-d3d11va and --disable-avcodec options are mutually exclusive.])
2681 AM_CONDITIONAL([HAVE_AVCODEC_D3D11VA], [test "${have_avcodec_d3d11va}" = "yes"])
2686 AC_CHECK_HEADERS([dxgidebug.h dxgi1_6.h])
2689 dnl avformat demuxer/muxer plugin
2692 AC_ARG_ENABLE([avformat],
2693 AS_HELP_STRING([--enable-avformat], [libavformat containers (default enabled)]),, [
2694 enable_avformat="${have_avcodec}"
2697 AS_IF([test "${enable_avformat}" != "no"], [
2698 PKG_CHECK_MODULES(AVFORMAT,[libavformat >= 53.21.0 libavcodec libavutil], [
2701 CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2702 CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2703 AC_CHECK_HEADERS([libavformat/avformat.h libavformat/avio.h])
2704 AC_CHECK_HEADERS([libavcodec/avcodec.h])
2705 AC_CHECK_HEADERS([libavutil/avutil.h])
2706 AS_IF([test "$enable_merge_ffmpeg" = "no"], [
2711 AC_MSG_ERROR([${AVFORMAT_PKG_ERRORS}. Pass --disable-avformat to ignore this error.])
2714 AM_CONDITIONAL([HAVE_AVFORMAT], [test "${enable_avformat}" != "no"])
2717 dnl swscale image scaling and conversion plugin
2720 AC_ARG_ENABLE([swscale],
2721 AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
2722 (default enabled)]))
2723 if test "${enable_swscale}" != "no"
2725 PKG_CHECK_MODULES(SWSCALE,[libswscale],
2728 CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
2729 CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
2730 AC_CHECK_HEADERS([libswscale/swscale.h])
2731 AC_CHECK_HEADERS([libavutil/avutil.h])
2732 VLC_ADD_PLUGIN([swscale])
2733 VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
2734 VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
2735 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2736 VLC_ADD_LIBS([swscale],[${ac_cv_ld_bsymbolic}])
2740 AC_MSG_ERROR([${SWSCALE_PKG_ERRORS}. Pass --disable-swscale to ignore this error. Proper software scaling and some video chroma conversion will be missing.])
2748 AC_ARG_ENABLE([postproc],
2749 AS_HELP_STRING([--enable-postproc], [libpostproc image post-processing (default auto)]))
2750 if test "${enable_postproc}" != "no"
2752 PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
2755 CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
2756 CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
2757 AC_CHECK_HEADERS([postproc/postprocess.h])
2758 VLC_ADD_PLUGIN([postproc])
2761 AC_MSG_WARN([${POSTPROC_PKG_ERRORS}.])
2766 dnl faad decoder plugin
2768 AC_ARG_ENABLE([faad],
2769 AS_HELP_STRING([--enable-faad], [faad codec (default auto)]))
2771 AS_IF([test "${enable_faad}" != "no"], [
2772 AC_CHECK_HEADERS([neaacdec.h], [
2773 AC_CHECK_LIB([faad], [NeAACDecOpen], [have_faad="yes"],, [$LIBM])
2775 AS_IF([test "${have_faad}" = "yes"], [
2776 VLC_ADD_PLUGIN([faad])
2777 VLC_ADD_LIBS([faad],[-lfaad])
2779 AS_IF([test "${enable_faad}" = "yes"], [
2780 AC_MSG_ERROR([cannot find FAAD library])
2782 AC_MSG_WARN([cannot find FAAD library])
2789 dnl AOM decoder plugin
2791 PKG_ENABLE_MODULES_VLC([AOM], [], [aom], [experimental AV1 codec (default auto)])
2794 dnl Dav1d decoder plugin
2796 PKG_ENABLE_MODULES_VLC([DAV1D], [], [dav1d], [AV1 decoder (default auto)])
2799 dnl libvpx decoder plugin
2801 AC_ARG_ENABLE([vpx],
2802 AS_HELP_STRING([--enable-vpx],[libvpx VP8/VP9 encoder and decoder (default auto)]))
2803 AS_IF([test "${enable_vpx}" != "no"],[
2804 PKG_CHECK_MODULES([VPX], [vpx >= 1.5.0], [
2805 VLC_ADD_PLUGIN([vpx])
2806 VLC_ADD_CPPFLAGS([vpx], [${VPX_CFLAGS}])
2807 VLC_ADD_LIBS([vpx], [${VPX_LIBS}])
2808 AC_CHECK_LIB([vpx],[vpx_codec_vp8_dx], [
2809 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP8_DECODER])
2810 ], [], [${VPX_LIBS}])
2811 AC_CHECK_LIB([vpx],[vpx_codec_vp9_dx], [
2812 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP9_DECODER])
2813 ], [], [${VPX_LIBS}])
2814 AC_CHECK_LIB([vpx],[vpx_codec_vp8_cx], [
2815 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP8_ENCODER])
2816 ], [], [${VPX_LIBS}])
2817 AC_CHECK_LIB([vpx],[vpx_codec_vp9_cx], [
2818 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP9_ENCODER])
2819 ], [], [${VPX_LIBS}])
2821 AS_IF([test "${enable_vpx}" = "yes"],[
2822 AC_MSG_ERROR([libvpx 1.5.0 or higher was not found])
2827 dnl twolame encoder plugin
2829 PKG_ENABLE_MODULES_VLC([TWOLAME], [], [twolame], [MPEG Audio Layer 2 encoder], [auto], [], [], [ -DLIBTWOLAME_STATIC])
2832 dnl fdk-aac encoder plugin
2834 PKG_ENABLE_MODULES_VLC([FDKAAC], [], [fdk-aac], [FDK-AAC encoder], [disabled])
2838 dnl A52/AC3 decoder plugin
2840 AC_ARG_ENABLE([a52],
2841 AS_HELP_STRING([--enable-a52], [A/52 support with liba52 (default enabled)]))
2842 if test "${enable_a52}" != "no"
2845 AS_HELP_STRING([--with-a52=PATH], [a52 headers and libraries]))
2846 if test -z "${with_a52}"
2851 LDFLAGS_test="-L${with_a52}/lib"
2852 CPPFLAGS_test="-I${with_a52}/include"
2855 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_test} ${CPPFLAGS_a52}"
2856 LDFLAGS="${LDFLAGS} ${LDFLAGS_test} ${LIBS_a52}"
2857 AC_CHECK_HEADERS([a52dec/a52.h], [
2858 AC_CHECK_LIB([a52], [a52_free], [
2859 VLC_ADD_PLUGIN([a52])
2860 VLC_ADD_LIBS([a52],[${LDFLAGS_test} -la52 $LIBM])
2861 VLC_ADD_CPPFLAGS([a52],[${CPPFLAGS_test}])
2863 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.])
2866 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.])
2872 dnl DTS Coherent Acoustics decoder plugin
2874 PKG_ENABLE_MODULES_VLC([DCA], [dca], [libdca >= 0.0.5], [DTS Coherent Acoustics support with libdca], [auto])
2879 PKG_ENABLE_MODULES_VLC([FLAC], [], [flac], [libflac decoder/encoder support], [auto])
2884 PKG_ENABLE_MODULES_VLC([LIBMPEG2], [], [libmpeg2 > 0.3.2], [libmpeg2 decoder support], [auto])
2889 PKG_ENABLE_MODULES_VLC([VORBIS], [], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
2894 AC_ARG_ENABLE([tremor],
2895 AS_HELP_STRING([--enable-tremor], [Tremor decoder support (default disabled)]))
2896 if test "${enable_tremor}" = "yes"
2898 AC_CHECK_HEADERS([tremor/ivorbiscodec.h], [
2899 VLC_ADD_PLUGIN([tremor])
2906 PKG_ENABLE_MODULES_VLC([SPEEX], [], [ogg speex >= 1.0.5], [Speex support], [auto])
2908 AS_IF([test "${enable_speex}" != "no"], [
2909 PKG_CHECK_MODULES([SPEEXDSP], [speexdsp], [
2912 AC_MSG_WARN([${SPEEXDSP_PKG_ERRORS}.])
2915 AM_CONDITIONAL([HAVE_SPEEXDSP], [test "$have_speexdsp" = "yes"])
2920 PKG_ENABLE_MODULES_VLC([OPUS], [], [ogg opus >= 1.0.3], [Opus support], [auto])
2923 dnl Ambisonic channel mixer and binauralizer plugin
2925 PKG_ENABLE_MODULES_VLC([SPATIALAUDIO], [], [spatialaudio], [Ambisonic channel mixer and binauralizer], [auto])
2928 dnl theora decoder plugin
2930 PKG_ENABLE_MODULES_VLC([THEORA], [], [ogg theoradec >= 1.0 theoraenc], [experimental theora codec], [auto])
2933 dnl OggSpots decoder plugin
2935 PKG_ENABLE_MODULES_VLC([OGGSPOTS], [], [ogg], [experimental OggSpots codec], [auto])
2938 dnl Daala decoder plugin
2940 PKG_ENABLE_MODULES_VLC([DAALA], [], [daaladec daalaenc], [experimental daala codec], [disabled])
2943 dnl schroedinger decoder plugin (for dirac format video)
2945 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [], [schroedinger-1.0 >= 1.0.10], [dirac decoder and encoder using schroedinger], [auto])
2948 dnl PNG decoder module
2950 AC_ARG_ENABLE([png],
2951 AS_HELP_STRING([--enable-png], [PNG support (default enabled)]))
2952 AS_IF([test "${enable_png}" != "no"], [
2953 AC_CHECK_HEADERS([png.h], [
2955 LDFLAGS="${LDFLAGS} -lz $LIBM"
2956 AC_CHECK_LIB([png], [png_set_alpha_mode], [
2957 VLC_ADD_PLUGIN([png])
2964 dnl JPEG decoder module
2966 AC_ARG_ENABLE([jpeg],
2967 AS_HELP_STRING([--enable-jpeg], [JPEG support (default enabled)]))
2968 AS_IF([test "${enable_jpeg}" != "no"], [
2969 AC_CHECK_HEADERS([jpeglib.h], [
2970 VLC_ADD_PLUGIN([jpeg])
2975 dnl BPG decoder module
2977 AC_ARG_ENABLE([bpg],
2978 AS_HELP_STRING([--enable-bpg], [BPG support (default disabled)]))
2979 AS_IF([test "${enable_bpg}" != "no"], [
2980 AC_CHECK_HEADERS([libbpg.h], [
2981 VLC_ADD_PLUGIN([bpg])
2986 dnl H262 encoder plugin (lib262)
2988 AC_ARG_ENABLE([x262],
2989 AS_HELP_STRING([--enable-x262], [H262 encoding support with static libx262 (default disabled)]))
2990 if test "${enable_x262}" != "no"; then
2991 PKG_CHECK_MODULES(X262, x262, [
2992 VLC_ADD_PLUGIN([x262])
2993 VLC_ADD_LDFLAGS([x262],[${X262_LIBS}])
2994 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2995 VLC_ADD_LIBS([x262],[${av_cv_ld_bsymbolic}])
2997 VLC_ADD_CFLAGS([x262],[${X262_CFLAGS}])
2998 if echo ${X262_LIBS} |grep -q 'pthreadGC2'; then
2999 VLC_ADD_CFLAGS([x262], [-DPTW32_STATIC_LIB])
3002 if test "${enable_x262}" = "yes"; then
3003 AC_MSG_ERROR([x262 module doesn't work without staticly compiled libx262.a])
3009 PKG_ENABLE_MODULES_VLC([X265],, [x265], [HEVC/H.265 encoder], [auto])
3012 dnl H264 encoder plugin (using libx264)
3014 AC_ARG_ENABLE([x264],
3015 AS_HELP_STRING([--enable-x264], [H264 encoding support with libx264 (default enabled)]))
3016 if test "${enable_x264}" != "no"; then
3017 PKG_CHECK_MODULES(X264,x264 >= 0.148, [
3018 VLC_ADD_PLUGIN([x264])
3019 VLC_ADD_LIBS([x264],[${X264_LIBS}])
3021 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
3022 VLC_ADD_LDFLAGS([x264],[${ac_cv_ld_bsymbolic}])
3025 VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3026 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3027 VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3030 if test "${enable_x264}" = "yes"; then
3031 AC_MSG_ERROR([${X264_PKG_ERRORS}: you may get it from http://www.videolan.org/x264.html])
3037 dnl H264 encoder plugin (libx264 > 153)
3039 AC_ARG_ENABLE([x26410b],
3040 AS_HELP_STRING([--enable-x26410b], [H264 10-bit encoding support with libx264 (default enabled)]))
3041 if test "${enable_x26410b}" != "no"; then
3042 PKG_CHECK_MODULES(X26410b,x264 >= 0.153, [
3043 VLC_ADD_PLUGIN([x26410b])
3044 VLC_ADD_LIBS([x26410b],[${X264_LIBS}])
3046 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
3047 VLC_ADD_LDFLAGS([x26410b],[${ac_cv_ld_bsymbolic}])
3050 VLC_ADD_CFLAGS([x26410b],[${X264_CFLAGS}])
3051 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3052 VLC_ADD_CFLAGS([x26410b], [-DPTW32_STATIC_LIB])
3055 if test "${enable_x26410b}" = "yes"; then
3056 AC_MSG_ERROR([${X264_PKG_ERRORS}: you may get it from http://www.videolan.org/x264.html])
3063 dnl Intel QuickSync (aka MediaSDK) H264/H262 encoder
3065 PKG_ENABLE_MODULES_VLC([MFX], [qsv], [libmfx], [Intel QuickSync MPEG4-Part10/MPEG2 (aka H.264/H.262) encoder], [auto])
3068 dnl libfluidsynth (MIDI synthetizer) plugin
3070 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [], [fluidsynth >= 1.1.2], [MIDI synthetiser with libfluidsynth], [auto])
3071 PKG_ENABLE_MODULES_VLC([FLUIDLITE], [fluidsynth], [fluidlite], [MIDI synthetiser with libfluidsynth], [auto])
3072 AC_CHECK_HEADERS([fluidlite.h], [AC_SUBST([FLUIDSYNTH_LIBS], ${FLUIDLITE_LIBS})])
3075 dnl Teletext Modules
3076 dnl vbi decoder plugin (using libzbvi)
3080 AC_ARG_ENABLE([zvbi],
3081 AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
3082 libzvbi (default enabled)]))
3083 AC_ARG_ENABLE([telx],
3084 AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
3085 zvbi) (default enabled if zvbi is absent)]))
3087 AS_IF( [test "${enable_zvbi}" != "no"],[
3088 PKG_CHECK_MODULES(ZVBI, [zvbi-0.2 >= 0.2.28],
3090 VLC_ADD_PLUGIN([zvbi])
3091 AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
3092 AS_IF( [test "${enable_telx}" = "yes"],[
3093 AC_MSG_WARN([The zvbi and telx modules are incompatible. Using zvbi.])
3096 AC_MSG_WARN([${ZVBI_PKG_ERRORS}. Enabling the telx module instead.])
3099 AS_IF( [test "${enable_telx}" != "no" ],[
3100 VLC_ADD_PLUGIN([telx])
3104 dnl ARIB subtitles rendering module
3106 AC_ARG_ENABLE([aribsub],
3107 AS_HELP_STRING([--enable-aribsub],[ARIB Subtitles support (default enabled)]))
3108 AS_IF( [test "${enable_aribsub}" != "no" ],[
3109 PKG_CHECK_MODULES(ARIBB24, [aribb24 >= 1.0.1], [
3111 VLC_ADD_PLUGIN([aribsub])
3112 VLC_ADD_LIBS([aribsub],[-laribb24])
3113 AC_DEFINE(HAVE_ARIBB24, 1, [Define if libaribb24 is available.])
3115 AC_MSG_WARN(Library [aribb24] needed for [aribsub] was not found)
3119 AM_CONDITIONAL([HAVE_ARIBB24], [test x"${have_aribb24}" = x"yes"])
3124 PKG_ENABLE_MODULES_VLC([ARIBB25], [aribcam], [aribb25 >= 0.2.6], [ARIB STD-B25], [auto])
3127 dnl kate decoder plugin
3129 PKG_ENABLE_MODULES_VLC([KATE], [], [kate >= 0.3.0], [kate codec], [auto])
3132 dnl tiger rendering for kate decoder plugin
3134 AC_ARG_ENABLE([tiger],
3135 AS_HELP_STRING([--enable-tiger], [Tiger rendering library for Kate streams (default auto)]))
3136 AS_IF([test "${enable_tiger}" != "no"], [
3137 PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
3138 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])],[
3139 AS_IF([test -n "${enable_tiger}"], [
3140 AC_MSG_ERROR([${TIGER_PKG_ERRORS}.])
3146 dnl check if we can build the css selector engine
3148 AC_ARG_ENABLE([css],
3149 AS_HELP_STRING([--enable-css], [CSS selector engine (default auto)]))
3150 AS_IF([test "${enable_css}" != "no"], [
3152 AC_DEFINE(HAVE_CSS, 1, [Define if CSS engine is built])
3154 AM_CONDITIONAL([ENABLE_CSS], [test "${with_css}" = "yes"])
3161 EXTEND_HELP_STRING([Video plugins:])
3164 dnl libplacebo support
3166 AC_ARG_ENABLE([libplacebo],
3167 AS_HELP_STRING([--disable-libplacebo],
3168 [disable libplacebo support (default auto)]))
3170 AS_IF([test "$enable_libplacebo" != "no"], [
3171 PKG_CHECK_MODULES([LIBPLACEBO], [libplacebo >= 0.5], [
3172 AC_DEFINE([HAVE_LIBPLACEBO], [1], [Define to 1 if libplacebo is enabled.])
3173 PKG_CHECK_MODULES([LIBPLACEBO], [libplacebo >= 1.7],
3174 [have_libplacebo_vk="yes"], [have_libplacebo_vk="no"])
3176 AS_IF([test -n "${enable_libplacebo}"], [
3177 AC_MSG_ERROR([${LIBPLACEBO_PKG_ERRORS}.])
3179 enable_libplacebo="no"
3182 AM_CONDITIONAL([HAVE_LIBPLACEBO], [test "$enable_libplacebo" != "no"])
3187 PKG_CHECK_MODULES([EGL], [egl], [
3192 AM_CONDITIONAL([HAVE_EGL], [test "${have_egl}" = "yes"])
3195 PKG_CHECK_MODULES([GL], [gl], [
3198 AC_MSG_CHECKING([for OpenGL])
3199 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
3201 # include <GL/glew.h>
3205 [int t0 = GL_TEXTURE0;]])
3209 AS_IF([test "${SYS}" != "mingw32"], [
3212 GL_LIBS="-lopengl32"
3215 AC_MSG_RESULT([${have_gl}])
3217 AM_CONDITIONAL([HAVE_GL], [test "${have_gl}" = "yes"])
3218 AS_IF([test "${have_gl}" = "yes"], [
3219 AC_DEFINE([HAVE_GL], 1, [Defined if having OpenGL])
3222 dnl OpenGL ES 2: depends on EGL 1.1
3223 PKG_ENABLE_MODULES_VLC([GLES2], [], [glesv2], [OpenGL ES v2 support], [disabled])
3228 AC_ARG_ENABLE(vulkan,
3229 [AS_HELP_STRING([--disable-vulkan],
3230 [disable Vulkan support (default auto)])])
3232 AS_IF([test "$enable_vulkan" != "no"], [
3233 AS_IF([test "$have_libplacebo_vk" = "yes"], [
3234 PKG_CHECK_MODULES([VULKAN], [vulkan >= 1.0.26], [
3235 AC_DEFINE([HAVE_VULKAN], [1], [Define to 1 if vulkan is enabled.])
3237 AS_IF([test -n "${enable_vulkan}"], [
3238 AC_MSG_ERROR([${VULKAN_PKG_ERRORS}.])
3243 AS_IF([test -n "${enable_vulkan}"], [
3244 AC_MSG_ERROR([Vulkan support requires libplacebo 1.7 as well. Do not use --disable-libplacebo.])
3249 AM_CONDITIONAL(HAVE_VULKAN, [test "$enable_vulkan" != "no"])
3256 AC_CHECK_HEADERS([X11/Xlib.h])
3259 dnl X C Bindings modules
3261 AC_ARG_ENABLE([xcb],
3262 AS_HELP_STRING([--enable-xcb], [X11 support with XCB (default enabled)]),, [
3263 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "darwin"], [
3271 have_xkbcommon_x11="no"
3272 have_xcb_keysyms="no"
3273 AS_IF([test "${enable_xcb}" != "no"], [
3277 PKG_CHECK_MODULES([XCB], [xcb >= 1.6],, [
3278 xcb_err="$xcb_err ${XCB_PKG_ERRORS}."])
3279 PKG_CHECK_MODULES([XCB_COMPOSITE], [xcb-composite],, [
3280 xcb_err="$xcb_err ${XCB_COMPOSITE_PKG_ERRORS}."])
3281 PKG_CHECK_MODULES([XCB_RANDR], [xcb-randr >= 1.3],, [
3282 xcb_err="$xcb_err ${XCB_RANDR_PKG_ERRORS}."])
3283 PKG_CHECK_MODULES([XCB_RENDER], [xcb-render],, [
3284 xcb_err="$xcb_err ${XCB_RENDER_PKG_ERRORS}."])
3285 PKG_CHECK_MODULES([XCB_SHM], [xcb-shm >= 1.9.2],, [
3286 xcb_err="$xcb_err ${XCB_SHM_PKG_ERRORS}."])
3287 PKG_CHECK_MODULES([XCB_XKB], [xcb-xkb],, [
3288 xcb_err="$xcb_err ${XCB_XKB_PKG_ERRORS}."])
3291 PKG_CHECK_MODULES(XPROTO, [xproto],, [
3292 xcb_err="$xcb_err ${XPROTO_PKG_ERRORS}."])
3294 AS_IF([test -n "$xcb_err"], [
3295 AC_MSG_ERROR([$xcb_err Pass --disable-xcb to skip X11 support.])
3299 PKG_CHECK_MODULES([XKBCOMMON_X11], [xkbcommon-x11], [
3300 have_xkbcommon_x11="yes"
3302 AC_MSG_WARN([${XKBCOMMON_X11_PKG_ERRORS}. Hotkeys are disabled.])
3306 PKG_CHECK_MODULES([XCB_KEYSYMS], [xcb-keysyms >= 0.3.4], [
3307 have_xcb_keysyms="yes"
3309 AC_MSG_WARN([${XCB_KEYSYMS_PKG_ERRORS}. Global hotkeys are disabled.])
3314 AM_CONDITIONAL([HAVE_XCB], [test "${have_xcb}" = "yes"])
3315 AM_CONDITIONAL([HAVE_XKBCOMMON_X11], [test "${have_xkbcommon_x11}" = "yes"])
3316 AM_CONDITIONAL([HAVE_XCB_KEYSYMS], [test "${have_xcb_keysyms}" = "yes"])
3322 AC_ARG_ENABLE([vdpau],
3323 [AS_HELP_STRING([--enable-vdpau], [VDPAU hardware support (default auto)])])
3325 AS_IF([test "${enable_vdpau}" != "no"], [
3326 PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.6], [
3328 AS_IF([test "${no_x}" = "yes"], [
3329 AC_MSG_ERROR([VDPAU requires Xlib (X11).])
3332 AS_IF([test -n "${enable_vdpau}"], [
3333 AC_MSG_ERROR([${VDPAU_PKG_ERRORS}.])
3337 AM_CONDITIONAL([HAVE_VDPAU], [test "${have_vdpau}" = "yes"])
3339 have_avcodec_vdpau="no"
3340 AS_IF([test "${have_vdpau}" = "yes" -a "${have_avcodec}" = "yes"], [
3342 libav) av_vdpau_ver="56.10.0" ;;
3343 ffmpeg) av_vdpau_ver="56.19.100" ;;
3345 PKG_CHECK_EXISTS([libavcodec >= ${av_vdpau_ver}], [
3346 have_avcodec_vdpau="yes"
3347 AC_MSG_NOTICE([VDPAU decoding acceleration activated])
3349 AS_IF([test -n "${enable_vdpau}"], [
3350 AC_MSG_ERROR([libavcodec >= 56.10.0 is required for VDPAU decoding.])
3352 AC_MSG_WARN([libavcodec >= 56.10.0 are required for VDPAU decoding.])
3356 AM_CONDITIONAL([HAVE_AVCODEC_VDPAU], [test "${have_avcodec_vdpau}" = "yes"])
3362 AC_ARG_ENABLE([wayland],
3363 AS_HELP_STRING([--enable-wayland], [Wayland support (default auto)]))
3366 AS_IF([test "${enable_wayland}" != "no"], [
3370 PKG_CHECK_MODULES([WAYLAND_CLIENT], [wayland-client >= 1.5.91],, [
3371 wl_err="$wl_err ${WAYLAND_CLIENT_PKG_ERRORS}."
3373 PKG_CHECK_MODULES([WAYLAND_CURSOR], [wayland-cursor],, [
3374 wl_err="$wl_err ${WAYLAND_CURSOR_PKG_ERRORS}."
3376 PKG_CHECK_MODULES([WAYLAND_EGL], [wayland-egl],, [
3377 wl_err="$wl_err ${WAYLAND_EGL_PKG_ERRORS}."
3379 PKG_CHECK_MODULES([WAYLAND_SCANNER], [wayland-scanner >= 1.15], [
3380 WAYLAND_SCANNER="$(${PKG_CONFIG} wayland-scanner --variable wayland_scanner)"
3382 wl_err="$wl_err ${WAYLAND_SCANNER_PKG_ERRORS}."
3385 dnl wayland-protocols
3386 PKG_CHECK_MODULES([WAYLAND_PROTOCOLS], [wayland-protocols >= 1.15], [
3387 WAYLAND_PROTOCOLS="$(${PKG_CONFIG} wayland-protocols --variable pkgdatadir)"
3389 wl_err="$wl_err ${WAYLAND_PROTOCOLS_PKG_ERRORS}."
3392 AS_IF([test -n "$wl_err"], [
3393 AS_IF([test -n "$enable_wayland"], [
3394 AC_MSG_ERROR([$wl_err])
3396 AC_MSG_WARN([$wl_err])
3403 PKG_CHECK_MODULES([XKBCOMMON], [xkbcommon], [
3404 have_xkbcommon="yes"
3406 AC_MSG_WARN([${XKBCOMMON_PKG_ERRORS}. Hotkeys are disabled.])
3409 AM_CONDITIONAL([HAVE_WAYLAND], [test "${have_wayland}" = "yes"])
3410 AC_SUBST([WAYLAND_PROTOCOLS])
3411 AC_SUBST([WAYLAND_SCANNER])
3412 AM_CONDITIONAL([HAVE_XKBCOMMON], [test "${have_xkbcommon}" = "yes"])
3416 dnl SDL image decoder module
3418 AC_ARG_ENABLE([sdl-image],
3419 AS_HELP_STRING([--enable-sdl-image], [SDL image support (default enabled)]))
3420 AS_IF([test "${enable_sdl_image}" != "no"],[
3421 PKG_CHECK_MODULES(SDL_IMAGE, [SDL_image >= 1.2.10], [
3422 VLC_ADD_PLUGIN([sdl_image])
3424 AC_MSG_WARN([${SDL_IMAGE_PKG_ERRORS}. You should install it alongside your SDL package.])
3431 AC_ARG_ENABLE([freetype],
3432 AS_HELP_STRING([--enable-freetype], [freetype support (default auto)]))
3433 AC_ARG_ENABLE([fribidi],
3434 AS_HELP_STRING([--enable-fribidi], [fribidi support (default auto)]))
3435 AC_ARG_ENABLE([harfbuzz],
3436 AS_HELP_STRING([--enable-harfbuzz], [harfbuzz support (default auto)]))
3437 AC_ARG_ENABLE([fontconfig],
3438 AS_HELP_STRING([--enable-fontconfig], [fontconfig support (default auto)]))
3440 AC_ARG_WITH([default-font],
3441 AS_HELP_STRING([--with-default-font=PATH],
3442 [Path to the default font]),
3443 [AC_DEFINE_UNQUOTED([DEFAULT_FONT_FILE],
3444 "$withval", [Default font])])
3445 AC_ARG_WITH([default-monospace-font],
3446 AS_HELP_STRING([--with-default-monospace-font=PATH],
3447 [Path to the default font]),
3448 [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FONT_FILE],
3449 "$withval", [Default monospace font])])
3451 AC_ARG_WITH([default-font-family],
3452 AS_HELP_STRING([--with-default-font-family=NAME],
3453 [Name of the default font family]),
3454 [AC_DEFINE_UNQUOTED([DEFAULT_FAMILY],
3455 "$withval", [Default font family])])
3456 AC_ARG_WITH([default-monospace-font-family],
3457 AS_HELP_STRING([--with-default-monospace-font-family=NAME],
3458 [Name of the default font family]),
3459 [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FAMILY],
3460 "$withval", [Default monospace font family])])
3463 have_fontconfig="no"
3467 if test "${enable_freetype}" != "no"; then
3468 PKG_CHECK_MODULES(FREETYPE, freetype2, [
3470 VLC_ADD_CPPFLAGS([skins2],[${FREETYPE_CFLAGS}])
3471 VLC_ADD_LIBS([skins2],[${FREETYPE_LIBS}])
3473 dnl fontconfig support
3474 AS_IF([test "${enable_fontconfig}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "darwin"], [
3475 PKG_CHECK_MODULES(FONTCONFIG, [fontconfig >= 2.11], [
3476 have_fontconfig="yes"
3478 AC_MSG_WARN([${FONTCONFIG_PKG_ERRORS}. Styles will be disabled in FreeType.])
3483 if test "${enable_fribidi}" != "no"; then
3484 PKG_CHECK_MODULES(FRIBIDI, fribidi, [
3486 VLC_ADD_CPPFLAGS([skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
3487 VLC_ADD_LIBS([skins2], [${FRIBIDI_LIBS}])
3488 ],[AC_MSG_WARN([${FRIBIDI_PKG_ERRORS}. Bidirectional text and complex scripts (Arabic, Farsi, Thai...) will be disabled in FreeType.])])
3491 dnl harfbuzz support
3492 if test "${have_fribidi}" != "no"; then
3493 if test "${enable_harfbuzz}" != "no"; then
3494 PKG_CHECK_MODULES(HARFBUZZ, harfbuzz, [
3496 VLC_ADD_CPPFLAGS([skins2], [${HARFBUZZ_CFLAGS} -DHAVE_HARFBUZZ])
3497 VLC_ADD_LIBS([skins2], [${HARFBUZZ_LIBS}])
3498 ],[AC_MSG_WARN([${HARFBUZZ_PKG_ERRORS}. Support for complex scripts (Arabic, Farsi, Thai...) will be disabled in FreeType.])])
3502 AS_IF([test -n "${enable_freetype}"],[
3503 AC_MSG_ERROR([${FREETYPE_PKG_ERRORS}. Install FreeType2 development or configure with --disable-freetype.])
3508 AM_CONDITIONAL([HAVE_FREETYPE], [test "${have_freetype}" = "yes"])
3509 AM_CONDITIONAL([HAVE_FONTCONFIG], [test "${have_fontconfig}" = "yes"])
3510 AM_CONDITIONAL([HAVE_FRIBIDI], [test "${have_fribidi}" = "yes"])
3511 AM_CONDITIONAL([HAVE_HARFBUZZ], [test "${have_harfbuzz}" = "yes"])
3514 dnl libass subtitle rendering module
3516 AC_ARG_ENABLE([libass],
3517 AS_HELP_STRING([--enable-libass], [Subtitle support using libass (default enabled)]))
3518 AS_IF( [test "${enable_libass}" != "no"], [
3519 PKG_CHECK_MODULES(LIBASS, [libass >= 0.9.8],
3521 VLC_ADD_PLUGIN([libass])
3523 if test "${have_fontconfig}" != "no"; then
3524 VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
3525 VLC_ADD_LIBS([libass],[${FONTCONFIG_LIBS}])
3528 AC_MSG_WARN([${LIBASS_PKG_ERRORS}.])
3533 dnl SAPI (text to Speech renderer for Windows)
3536 AC_CHECK_TYPES([ISpObjectToken],[
3538 ],[AC_MSG_WARN([sapi.h not found. Text to Speech renderer for Windows disabled])],
3539 [#include <windows.h>
3541 #include <sphelper.h>])
3542 AM_CONDITIONAL([HAVE_SAPI], [test "${have_sapi}" = "yes"])
3546 dnl SVG module (text rendering and image decoding)
3548 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3549 PKG_ENABLE_MODULES_VLC([SVGDEC], [], [librsvg-2.0 >= 2.9.0 cairo >= 1.13.1], [SVG image decoder library],[auto])
3552 dnl Windows DirectX module
3555 AC_ARG_ENABLE([directx],
3556 AS_HELP_STRING([--enable-directx],
3557 [Microsoft DirectX support (default enabled on Windows)]),, [
3558 AS_IF([test "${SYS}" = "mingw32"], [
3559 enable_directx="yes"
3564 AS_IF([test "${enable_directx}" != "no"], [
3566 AC_CHECK_HEADERS([GL/glew.h], [
3567 AC_CHECK_HEADERS([GL/wglew.h], [
3568 VLC_ADD_PLUGIN([glwin32 wgl])
3570 #include <windows.h>
3571 #include <GL/glew.h>
3573 #include <windows.h>
3577 AC_CHECK_HEADERS([d3d11.h], [
3578 VLC_ADD_PLUGIN([direct3d11 direct3d11_filters])
3582 AC_CHECK_HEADERS([d3d9.h], [
3583 VLC_ADD_PLUGIN([direct3d9])
3584 AC_CHECK_HEADERS([d3dx9effect.h])
3586 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
3587 [[#define COBJMACROS
3589 #include <dxva2api.h>
3590 #ifndef IDirectXVideoProcessorService_GetVideoProcessorDeviceGuids
3591 # error dxva2 too old
3595 VLC_ADD_PLUGIN([direct3d9_filters])
3597 [AC_MSG_WARN([Could not find required IDirectXVideoDecoder in dxva2api.h])])
3603 dnl Linux framebuffer module
3605 AC_CHECK_HEADER([linux/fb.h], [
3606 VLC_ADD_PLUGIN([fb])
3610 dnl Linux kernel mode setting module
3612 PKG_ENABLE_MODULES_VLC([KMS], [], [libdrm >= 2.4.83], [Linux kernel mode setting output], [auto])
3617 PKG_ENABLE_MODULES_VLC([CACA], [], [caca >= 0.99.beta14], [libcaca output],[auto])
3622 AC_ARG_ENABLE([kva],
3623 AS_HELP_STRING([--enable-kva],
3624 [support the K Video Accelerator KVA (default enabled on OS/2)]),, [
3625 AS_IF([test "$SYS" = "os2"], [
3631 AS_IF([test "$enable_kva" != "no"], [
3632 AC_CHECK_HEADERS([kva.h], [
3634 AC_CHECK_LIB([kva], [main], [
3639 AC_SUBST([KVA_LIBS])
3640 AM_CONDITIONAL([HAVE_KVA], [test "${have_kva}" = "yes"])
3645 AC_ARG_ENABLE([mmal],
3646 AS_HELP_STRING([--enable-mmal],
3647 [Multi-Media Abstraction Layer (MMAL) hardware plugin (default enable)]))
3648 if test "${enable_mmal}" != "no"; then
3650 LDFLAGS="${LDFLAGS} -L/opt/vc/lib -lvchostif"
3651 CPPFLAGS="${CPPFLAGS} -isystem /opt/vc/include -isystem /opt/vc/include/interface/vcos/pthreads -isystem /opt/vc/include/interface/vmcs_host/linux"
3652 AC_CHECK_HEADERS([interface/mmal/mmal.h],
3653 [ AC_CHECK_LIB([bcm_host], [vc_tv_unregister_callback_full], [
3655 VLC_ADD_PLUGIN([mmal])
3656 VLC_ADD_LDFLAGS([mmal],[ -L/opt/vc/lib ])
3657 VLC_ADD_CFLAGS([mmal],[ -isystem /opt/vc/include -isystem /opt/vc/include/interface/vcos/pthreads -isystem /opt/vc/include/interface/vmcs_host/linux ])
3658 VLC_ADD_LIBS([mmal],[ -lbcm_host -lmmal -lmmal_core -lmmal_components -lmmal_util -lvchostif ]) ], [
3659 AS_IF([test "${enable_mmal}" = "yes"],
3660 [ AC_MSG_ERROR([Cannot find bcm library...]) ],
3661 [ AC_MSG_WARN([Cannot find bcm library...]) ])
3664 ] , [ AS_IF([test "${enable_mmal}" = "yes"],
3665 [ AC_MSG_ERROR([Cannot find development headers for mmal...]) ],
3666 [ AC_MSG_WARN([Cannot find development headers for mmal...]) ]) ])
3669 AM_CONDITIONAL([HAVE_MMAL], [test "${have_mmal}" = "yes"])
3675 EXTEND_HELP_STRING([Audio plugins:])
3678 dnl Pulseaudio module
3680 AC_ARG_ENABLE([pulse],
3681 AS_HELP_STRING([--enable-pulse],
3682 [use the PulseAudio client library (default auto)]))
3684 AS_IF([test "${enable_pulse}" != "no"], [
3685 PKG_CHECK_MODULES([PULSE], [libpulse >= 1.0], [
3688 AS_IF([test "x${enable_pulse}" != "x"], [
3689 AC_MSG_ERROR([$PULSE_PKG_ERRORS. PulseAudio 1.0 or later required.])
3693 AM_CONDITIONAL([HAVE_PULSE], [test "${have_pulse}" = "yes"])
3698 AC_ARG_ENABLE([alsa],
3699 AS_HELP_STRING([--enable-alsa],
3700 [support the Advanced Linux Sound Architecture (default auto)]),, [
3701 AS_IF([test "$SYS" = "linux" -a "${have_pulse}" = "no"], [
3706 AS_IF([test "${enable_alsa}" != "no"], [
3707 PKG_CHECK_MODULES([ALSA], [alsa >= 1.0.24], [
3710 AS_IF([test "x${enable_alsa}" != "x"], [
3711 AC_MSG_ERROR([$ALSA_PKG_ERRORS. alsa-lib 1.0.24 or later required. Pass --disable-alsa to ignore this error.])
3715 AM_CONDITIONAL([HAVE_ALSA], [test "${have_alsa}" = "yes"])
3718 dnl Open Sound System module
3720 AC_ARG_ENABLE([oss],
3721 AS_HELP_STRING([--enable-oss],
3722 [support the Open Sound System OSS (default enabled on FreeBSD/NetBSD/DragonFlyBSD)]),, [
3723 AS_IF([test "$SYS" = "mingw32" -o "$SYS" = "linux" -o "$SYS" = "openbsd"], [
3729 AS_IF([test "$enable_oss" != "no"], [
3730 AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
3732 AC_CHECK_LIB([ossaudio], [main], [
3733 OSS_LIBS="-lossaudio"
3737 AC_SUBST([OSS_LIBS])
3738 AM_CONDITIONAL([HAVE_OSS], [test "${have_oss}" = "yes"])
3741 dnl OpenBSD sndio module
3743 AC_ARG_ENABLE([sndio],
3744 AS_HELP_STRING([--disable-sndio],
3745 [support the OpenBSD sndio (default auto)]),, [
3746 AS_IF([test "$SYS" = "openbsd"], [
3751 AS_IF([test "$enable_sndio" != "no"], [
3752 AC_CHECK_HEADER([sndio.h], [
3756 AM_CONDITIONAL([HAVE_SNDIO], [test "${have_sndio}" = "yes"])
3759 dnl Windows Audio Session plugin
3761 AC_ARG_ENABLE([wasapi],
3762 AS_HELP_STRING([--enable-wasapi],
3763 [use the Windows Audio Session API (default auto)])
3766 AS_IF([test "$enable_wasapi" != "no"], [
3767 AC_CHECK_HEADER([audioclient.h], [
3770 AS_IF([test "x${enable_wasapi}" != "x"], [
3771 AC_MSG_ERROR([Windows Audio Session API not found.])
3775 AM_CONDITIONAL([HAVE_WASAPI], [test "${have_wasapi}" = "yes"])
3780 AC_ARG_ENABLE([jack],
3781 AS_HELP_STRING([--disable-jack],
3782 [do not use jack (default auto)]))
3784 AS_IF([test "${enable_jack}" != "no"], [
3785 PKG_CHECK_MODULES(JACK, jack >= 1.9.7,
3788 AC_MSG_WARN([${JACK_PKG_ERRORS}, trying jack1 instead])
3790 PKG_CHECK_MODULES(JACK, jack >= 0.120.1 jack < 1.0,
3793 AS_IF([test -n "${enable_jack}"],
3794 [AC_MSG_ERROR([${JACK_PKG_ERRORS}.])],
3795 [AC_MSG_WARN([${JACK_PKG_ERRORS}.])])
3799 AM_CONDITIONAL([HAVE_JACK], [test "${have_jack}" != "no"])
3802 dnl OpenSLES Android
3804 AC_ARG_ENABLE([opensles],
3805 AS_HELP_STRING([--enable-opensles], [Android OpenSL ES audio module (default disabled)]))
3806 if test "${HAVE_ANDROID}" = "1"; then
3807 if test "${enable_opensles}" = "yes"; then
3808 AC_CHECK_HEADERS([SLES/OpenSLES.h],
3809 [ VLC_ADD_PLUGIN([opensles_android]) ],
3810 [ AC_MSG_ERROR([cannot find OpenSLES headers])] )
3815 dnl libsamplerate plugin
3817 PKG_ENABLE_MODULES_VLC([SAMPLERATE], [], [samplerate], [Resampler with libsamplerate], [auto])
3822 PKG_ENABLE_MODULES_VLC([SOXR], [], [soxr >= 0.1.2], [SoX Resampler library], [auto])
3827 AC_ARG_ENABLE([kai],
3828 AS_HELP_STRING([--enable-kai],
3829 [support the K Audio Interface KAI (default enabled on OS/2)]),, [
3830 AS_IF([test "$SYS" = "os2"], [
3836 AS_IF([test "$enable_kai" != "no"], [
3837 AC_CHECK_HEADERS([kai.h], [
3839 AC_CHECK_LIB([kai], [main], [
3844 AC_SUBST([KAI_LIBS])
3845 AM_CONDITIONAL([HAVE_KAI], [test "${have_kai}" = "yes"])
3848 dnl chromaprint audio track fingerprinter
3850 m4_pushdef([libchromaprint_version], 0.6.0)
3851 PKG_WITH_MODULES([CHROMAPRINT],[libchromaprint >= libchromaprint_version],
3852 VLC_ADD_PLUGIN([stream_out_chromaprint]),
3853 AS_IF([test "${enable_chromaprint}" = "yes"],
3854 [AC_MSG_ERROR(Library [libchromaprint >= libchromaprint_version] needed for [chromaprint] was not found)],
3855 [AC_MSG_WARN(Library [libchromaprint >= libchromaprint_version] needed for [chromaprint] was not found)]
3857 [(Chromaprint based audio fingerprinter)],[auto])
3858 m4_popdef([libchromaprint_version])
3861 dnl Chromecast streaming support
3863 m4_pushdef([protobuf_lite_version], 2.5.0)
3864 AC_ARG_VAR(PROTOC, [protobuf compiler])
3865 AC_CHECK_PROGS(PROTOC, protoc, no)
3866 PKG_WITH_MODULES([CHROMECAST],[protobuf-lite >= protobuf_lite_version], [
3867 AS_IF([test "x${PROTOC}" != "xno"], [
3868 build_chromecast="yes"
3870 AC_MSG_ERROR(protoc compiler needed for [chromecast] was not found)
3873 AS_IF([test "${enable_chromecast}" = "yes"],
3874 AC_MSG_ERROR(Library [protobuf-lite >= protobuf_lite_version] needed for [chromecast] was not found),
3875 AC_MSG_WARN(Library [protobuf-lite >= protobuf_lite_version] needed for [chromecast] was not found)
3877 enable_chromecast="no"
3878 ], [(Chromecast streaming support)], [auto])
3879 AM_CONDITIONAL([BUILD_CHROMECAST], [test "${build_chromecast}" = "yes"])
3880 m4_popdef([protobuf_lite_version])
3883 dnl Interface plugins
3886 EXTEND_HELP_STRING([Interface plugins:])
3892 AS_HELP_STRING([--disable-qt], [Qt UI support (default enabled)]),, [
3893 AS_IF([test "${enable_vlc}" != "no"], [enable_qt="yes"])
3894 AS_IF([test "${SYS}" = "darwin"], [
3899 AS_IF([test "${enable_qt}" != "no"], [
3900 PKG_CHECK_MODULES([QT], [Qt5Core >= 5.11.0 Qt5Widgets Qt5Gui Qt5Quick Qt5QuickWidgets Qt5QuickControls2 Qt5Svg], [
3901 PKG_CHECK_MODULES([QT5_X11], [Qt5X11Extras], [
3904 AC_MSG_WARN([Not building Qt Interface with X11 helpers.])
3906 QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix Qt5Core)"
3907 QT_HOST_PATH="$(eval $PKG_CONFIG --variable=host_bins Qt5Core)"
3908 QT_VERSION="$(eval $PKG_CONFIG --modversion Qt5Gui)"
3909 AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3910 AC_PATH_PROGS(RCC, [rcc-qt5 rcc], rcc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3911 AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3912 AC_PATH_PROGS(QMLCACHE, [qmlcachegen-qt5 qmlcachegen], no, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3913 AS_IF([test "x${QMLCACHE}" = "xno"], [
3914 AC_MSG_WARN([qmlcachegen not found])
3917 AS_IF([test -n "${enable_qt}"],[
3918 AC_MSG_ERROR([${QT_PKG_ERRORS}. If you want to build VLC without GUI, pass --disable-qt.])
3920 AC_MSG_WARN([${QT_PKG_ERRORS}.])
3926 AC_ARG_ENABLE([qt-qml-cache],
3927 AS_HELP_STRING([--enable-qt-qml-cache],
3928 [enable qml cache generation]))
3929 AM_CONDITIONAL([HAVE_QMLCACHE], [test "${enable_qt_qml_cache}" = "yes" && test "x$QMLCACHE" != "xno"])
3931 AC_ARG_ENABLE([qt-qml-debug],
3932 AS_HELP_STRING([--enable-qt-qml-debug], [enable qml debuger]))
3933 AM_CONDITIONAL(QT_QML_DEBUG, [test "${enable_qt_qml_debug}" = "yes"])
3935 AS_IF([test "${enable_qt}" != "no"], [
3936 ALIASES="${ALIASES} qvlc"
3938 AC_SUBST([QT_VERSION])
3939 AM_CONDITIONAL([ENABLE_QT], [test "$enable_qt" != "no"])
3940 AM_CONDITIONAL([HAVE_QT5_X11], [test "${have_qt5_x11}" = "yes"])
3943 dnl detect kde4-config patch (used for kde solids).
3945 AC_ARG_VAR([KDE4_CONFIG], [kde4-config utility])
3946 AS_IF([test "x$KDE4_CONFIG" = "x"], [
3947 KDE4_CONFIG="kde4-config"
3951 dnl Simple test for skins2 dependency
3953 AS_IF([test "$enable_qt" = "no"], [
3954 AS_IF([test "${enable_skins2}" = "yes"], [
3955 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.])
3958 AC_MSG_WARN([The skins2 module depends on the Qt interface, Qt is not built so skins2 is disabled.])
3965 AC_ARG_ENABLE([skins2],
3966 AS_HELP_STRING([--enable-skins2], [skins interface module (default auto)]))
3967 AS_IF([test "${enable_skins2}" != "no"], [
3968 have_skins_deps="yes"
3971 AS_IF([test "${SYS}" = "mingw32"], [
3972 VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -DWIN32_SKINS])
3973 VLC_ADD_LIBS([skins2],[-lgdi32 -lole32 -luuid -lmsimg32])
3975 ], [test "${SYS}" = "os2"], [
3976 VLC_ADD_CPPFLAGS([skins2],[ -DOS2_SKINS])
3979 PKG_CHECK_MODULES([XPM], [xpm],, [have_skins_deps="no"])
3980 PKG_CHECK_MODULES([XINERAMA], [xinerama],, [have_skins_deps="no"])
3981 PKG_CHECK_MODULES([XCURSOR], [xcursor],, [have_skins_deps="no"])
3982 PKG_CHECK_MODULES([XEXT], [xext],, [have_skins_deps="no"])
3983 VLC_ADD_CPPFLAGS([skins2],[${X_CFLAGS} ${XEXT_CFLAGS} ${XPM_CFLAGS} -DX11_SKINS])
3984 VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} ${XEXT_LIBS} ${XPM_LIBS} ${XINERAMA_LIBS} ${XCURSOR_LIBS} -lX11])
3987 dnl we need freetype
3988 AS_IF([test "${have_freetype}" != "yes"], [
3989 have_skins_deps="no"
3992 AS_IF([test "${have_skins_deps}" = "no"], [
3993 AS_IF([test "x${enable_skins2}" = "x"], [
3994 AC_MSG_WARN([Skins2 interface disabled due to missing dependencies.])
3996 AC_MSG_ERROR([Skins2 interface requires FreeType, libxcursor, libxpm, libxext and libxinerama])
4000 ALIASES="${ALIASES} svlc"
4004 AM_CONDITIONAL([BUILD_SKINS], [test "${enable_skins2}" = "yes"])
4006 AC_ARG_ENABLE([libtar],
4007 AS_HELP_STRING([--enable-libtar], [libtar support for skins2 (default auto)]))
4008 AS_IF([test "${enable_skins2}" = "yes" && test "${enable_libtar}" != "no"], [
4009 AC_CHECK_HEADERS([libtar.h], [
4010 VLC_ADD_LIBS([skins2],[-ltar])
4015 dnl MacOS X gui module
4017 AC_ARG_ENABLE([macosx],
4018 AS_HELP_STRING([--enable-macosx], [Mac OS X gui support (default enabled on Mac OS X)]))
4019 if test "x${enable_macosx}" != "xno" -a "${SYS}" = "darwin"
4023 dnl If possible, use xcrun to find the right ibtool
4026 AC_PATH_PROG([XCRUN], [xcrun], [no])
4027 AS_IF([test ! "x${XCRUN}" = "xno"], [
4028 AC_MSG_CHECKING([for ibtool (using xcrun)])
4029 XIB="$(eval $XCRUN -f ibtool 2>/dev/null || echo no)"
4030 AC_MSG_RESULT([${XIB}])
4032 AC_MSG_WARN([Looking for tools without using xcrun])
4035 AS_IF([test "x${XIB}" = "xno"], [
4036 AC_PATH_PROG(XIB, [ibtool], [no])
4037 AS_IF([test "x${XIB}" = "xno"], [
4038 AC_MSG_ERROR([ibtool was not found, but is required for --enable-macosx])
4042 AM_CONDITIONAL([ENABLE_MACOSX_UI], [test "$enable_macosx" != "no" -a "${SYS}" = "darwin"])
4045 dnl MacOS X sparkle update support
4047 AC_ARG_ENABLE([sparkle],
4048 AS_HELP_STRING([--enable-sparkle], [Sparkle update support for OS X (default enabled on Mac OS X)]))
4049 if test "x${enable_sparkle}" != "xno" -a "${HAVE_OSX}" = "1"
4051 if test ! -d ${CONTRIB_DIR}/Sparkle.framework -a ! -d ${CONTRIB_DIR}/Frameworks/Sparkle.framework
4053 AC_MSG_ERROR([Sparkle framework is required and was not found in ${CONTRIB_DIR}])
4056 AC_DEFINE([HAVE_SPARKLE], [1], [Define to 1 if sparkle is enabled.])
4058 AM_CONDITIONAL([HAVE_SPARKLE], [test "$enable_sparkle" != "no"])
4061 dnl MacOS X breakpad creash reporter support
4063 AC_ARG_WITH([breakpad],
4064 AS_HELP_STRING([--with-breakpad=URL], [Enable Breakpad reporter using given URL]), [], [with_breakpad=no])
4066 AS_IF([test "$with_breakpad" != "no"], [
4068 AS_IF([test "$with_breakpad" = "yes"], [
4069 AC_MSG_ERROR([You need to supply the CrashDragon Server URL as value for --with-breakpad])
4072 AS_IF([test "$HAVE_OSX" = "1"], [
4073 AC_MSG_CHECKING([for Breakpad framework])
4074 AS_IF([test ! -d ${CONTRIB_DIR}/Breakpad.framework -a \
4075 ! -d ${CONTRIB_DIR}/Frameworks/Breakpad.framework], [
4078 AC_MSG_ERROR([Breakpad framework is required and was not found in ${CONTRIB_DIR}])
4080 AC_MSG_RESULT([yes])
4083 PKG_CHECK_MODULES([BREAKPAD], [breakpad-client], [
4084 LDFLAGS="${LDFLAGS} -Wl,--build-id"
4086 AC_MSG_ERROR(["breakpad not found"])
4091 AM_CONDITIONAL([HAVE_BREAKPAD], [test "$with_breakpad" != "no"])
4092 AS_IF([test "$with_breakpad" != "no"], [
4093 AC_SUBST([BREAKPAD_URL], ["${with_breakpad}"])
4097 dnl Minimal Mac OS X module
4099 AC_ARG_ENABLE([minimal-macosx],
4100 AS_HELP_STRING([--enable-minimal-macosx], [Minimal Mac OS X support (default disabled)]))
4101 if test "${enable_minimal_macosx}" = "yes" -a "${SYS}" = "darwin"
4103 VLC_ADD_PLUGIN([minimal_macosx])
4107 dnl Mac OS X fancy dmg build tool
4109 if test "${HAVE_OSX}" = "1"
4111 AC_PATH_PROG(DMGBUILD, dmgbuild, no)
4112 AS_IF([test "x${DMGBUILD}" = "xno"], [
4113 AC_MSG_WARN([dmgbuild not found -- unable to build fancy DMGs])
4116 AM_CONDITIONAL([HAVE_DMGBUILD], [test "x$DMGBUILD" != "xno" -a "${HAVE_OSX}" = "1"])
4119 dnl VideoToolbox plugins
4120 AC_CHECK_HEADERS([VideoToolbox/VideoToolbox.h], [
4121 VLC_ADD_PLUGIN([videotoolbox])
4122 VLC_ADD_PLUGIN([cvpx])
4126 dnl AudioToolbox MIDI plugin
4127 AC_CHECK_HEADERS([AudioToolbox/AudioToolbox.h], [
4128 VLC_ADD_PLUGIN([audiotoolboxmidi])
4134 AC_ARG_ENABLE([ncurses],
4135 AS_HELP_STRING([--disable-ncurses],[ncurses text-based interface (default auto)]))
4137 AS_IF([test "${enable_ncurses}" != "no"] ,[
4138 PKG_CHECK_MODULES([NCURSES], [ncursesw], [
4140 ALIASES="${ALIASES} nvlc"
4142 AS_IF([test -n "${enable_ncurses}"], [
4143 AC_MSG_ERROR([${NCURSES_PKG_ERRORS}.])
4147 AM_CONDITIONAL([HAVE_NCURSES], [test "${have_ncurses}" = "yes"])
4152 AC_ARG_ENABLE([lirc],
4153 AS_HELP_STRING([--enable-lirc], [lirc support (default disabled)]))
4155 AS_IF([test "${enable_lirc}" = "yes"], [
4156 AC_CHECK_HEADER(lirc/lirc_client.h, [
4157 AC_CHECK_LIB([lirc_client], [lirc_init], [
4162 AM_CONDITIONAL([HAVE_LIRC], [test "${have_lirc}" = "yes"])
4167 PKG_CHECK_MODULES([BITSTREAM], [bitstream > 1.4],[have_bitstream="yes"], [have_bitstream="no"])
4168 AM_CONDITIONAL([HAVE_BITSTREAM], [test "${have_bitstream}" = "yes"])
4173 PKG_ENABLE_MODULES_VLC([SRT], [access_srt access_output_srt], [srt >= 1.3.0], [SRT input/output plugin], [auto], [], [], [-DENABLE_SRT])
4175 EXTEND_HELP_STRING([Visualisations and Video filter plugins:])
4177 dnl goom visualization plugin
4179 PKG_ENABLE_MODULES_VLC([GOOM], [], [libgoom2], [goom visualization plugin], [auto])
4182 dnl libprojectM visualization plugin
4184 AC_ARG_ENABLE([projectm],
4185 AS_HELP_STRING([--enable-projectm], [projectM visualization plugin (default enabled)]))
4186 AS_IF([test "${enable_projectm}" != "no"],
4188 PKG_CHECK_MODULES(PROJECTM, libprojectM,
4190 VLC_ADD_PLUGIN([projectm])
4191 PKG_CHECK_EXISTS([libprojectM >= 2.0.0],
4192 [ AC_DEFINE([HAVE_PROJECTM2], 1, [Define to 1 if using libprojectM 2.x]) ],
4193 [ AC_MSG_WARN( [Using libprojectM version 1] )
4196 AC_MSG_WARN([${PROJECTM_PKG_ERRORS}.])
4201 dnl Vovoid VSXu visualization plugin
4203 AC_ARG_ENABLE([vsxu],
4204 AS_HELP_STRING([--enable-vsxu], [Vovoid VSXu visualization plugin (default auto)]))
4205 AS_IF([test "${enable_vsxu}" != "no"],
4207 PKG_CHECK_MODULES(VSXU, libvsxu,
4209 VLC_ADD_PLUGIN([vsxu])
4211 AC_MSG_WARN([${VSXU_PKG_ERRORS}.])
4215 EXTEND_HELP_STRING([Service Discovery plugins:])
4217 dnl Avahi-Zeroconf services discovery
4218 PKG_ENABLE_MODULES_VLC([AVAHI], [], [avahi-client >= 0.6], [Zeroconf services discovery], [auto])
4221 dnl libudev services discovery
4222 PKG_ENABLE_MODULES_VLC([UDEV], [], [libudev >= 142], [Linux udev services discovery], [auto])
4225 dnl MTP devices services discovery
4226 PKG_ENABLE_MODULES_VLC([MTP], [mtp access_mtp], [libmtp >= 1.0.0], [MTP devices support], [auto])
4229 dnl UPnP Plugin (Intel SDK)
4231 PKG_ENABLE_MODULES_VLC([UPNP], [upnp], [libupnp], [Intel UPNP SDK],[auto])
4234 dnl mDNS using libmicrodns
4236 PKG_ENABLE_MODULES_VLC([MICRODNS], [], [microdns], [mDNS services discovery], [auto])
4239 EXTEND_HELP_STRING([Misc options:])
4244 PKG_ENABLE_MODULES_VLC([LIBXML2], [xml], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
4250 AC_ARG_ENABLE([libgcrypt],
4251 AS_HELP_STRING([--disable-libgcrypt], [gcrypt support (default enabled)]))
4252 AC_ARG_VAR([GCRYPT_CFLAGS], [C compiler flags for gcrypt])
4253 AC_ARG_VAR([GCRYPT_LIBS], [linker flags flags for gcrypt])
4255 # require libgcrypt >= 1.6.0
4256 AS_IF([test "${enable_libgcrypt}" != "no"], [
4257 AC_CACHE_CHECK([for gcrypt 1.6.0 or later], [ac_cv_lib_gcrypt], [
4259 CFLAGS="${CFLAGS} ${GCRYPT_CFLAGS}"
4260 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
4261 [#include <gcrypt.h>
4262 #if GCRYPT_VERSION_NUMBER < 0x010600
4265 ac_cv_lib_gcrypt=yes
4272 AS_IF([test "${ac_cv_lib_gcrypt}" = "yes"], [
4273 AC_DEFINE([HAVE_GCRYPT], 1, [Defined if having gcrypt])
4275 AS_IF([test "${enable_libgcrypt}" = "yes"], [
4276 AC_MSG_ERROR([libgcrypt version 1.6.0 or higher not found. Install libgcrypt or pass --disable-libgcrypt.])
4281 AS_IF([test -z "$GCRYPT_LIBS"], [
4282 GCRYPT_LIBS="-lgcrypt -lgpg-error"
4285 AC_SUBST([GCRYPT_CFLAGS])
4286 AC_SUBST([GCRYPT_LIBS])
4287 AM_CONDITIONAL([HAVE_GCRYPT], [test "${ac_cv_lib_gcrypt}" = "yes"])
4292 AC_ARG_ENABLE([gnutls],
4293 AS_HELP_STRING([--enable-gnutls], [GNU TLS TLS/SSL support (default enabled)]))
4294 AS_IF([test "${enable_gnutls}" != "no"], [
4295 PKG_CHECK_MODULES(GNUTLS, [gnutls >= 3.5.0], [
4296 VLC_ADD_PLUGIN([gnutls])
4298 AS_IF([test -n "${enable_gnutls}"], [
4299 AC_MSG_ERROR([${GNUTLS_PKG_ERRORS}.)])
4308 AC_ARG_ENABLE([taglib],
4309 AS_HELP_STRING([--disable-taglib],
4310 [do not use TagLib (default enabled)]))
4311 AS_IF([test "${enable_taglib}" != "no"], [
4312 PKG_CHECK_MODULES(TAGLIB, taglib >= 1.11, [
4313 VLC_ADD_PLUGIN([taglib])
4315 AC_MSG_WARN([${TAGLIB_PKG_ERRORS}.])])
4321 PKG_ENABLE_MODULES_VLC([SECRET], [], [libsecret-1 >= 0.18], [use libsecret for keystore], [auto])
4326 AC_ARG_ENABLE([kwallet],
4327 AS_HELP_STRING([--enable-kwallet],
4328 [use kwallet (via D-Bus) for keystore (default enabled)]))
4329 AS_IF([test "${enable_kwallet}" != "no" -a "${have_dbus}" = "yes"], [
4330 VLC_ADD_PLUGIN([kwallet])
4334 dnl update checking system
4336 AC_ARG_ENABLE([update-check],
4337 AS_HELP_STRING([--enable-update-check], [update checking system (default disabled)]))
4338 if test "${enable_update_check}" = "yes"
4340 AS_IF([test "${ac_cv_lib_gcrypt}" != "yes"],[
4341 AC_MSG_ERROR([libgcrypt is required for update checking system]) ])
4343 AM_CONDITIONAL([UPDATE_CHECK], [test "${enable_update_check}" = "yes"])
4346 dnl OS X notification plugin
4348 AC_ARG_ENABLE([osx_notifications],
4349 AS_HELP_STRING([--enable-osx-notifications],
4350 [macOS notification plugin (default disabled)]),,
4351 [enable_osx_notifications=no])
4352 AS_IF([test "${enable_osx_notifications}" != "no"], [
4353 VLC_ADD_PLUGIN([osx_notifications])
4357 dnl Libnotify notification plugin
4359 PKG_ENABLE_MODULES_VLC([NOTIFY], [], [libnotify gtk+-3.0], [libnotify notification], [auto])
4361 PKG_ENABLE_MODULES_VLC([MEDIALIBRARY], [medialibrary], [medialibrary], (medialibrary support), [auto])
4364 dnl Endianness check
4367 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
4368 DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
4372 AC_SUBST([DEFS_BIGENDIAN])
4375 dnl Where to install KDE solid .desktop
4377 AC_ARG_WITH(kde-solid,
4378 AS_HELP_STRING([--with-kde-solid=PATH],
4379 [KDE Solid actions directory (auto)]),, [
4381 if test "${SYS}" != "mingw32" -a "${SYS}" != "darwin" -a "${HAVE_ANDROID}" != "1" ; then
4382 with_kde_solid="yes"
4386 AS_IF([test "${with_kde_solid}" != "no"], [
4387 AS_IF([test "${with_kde_solid}" = "yes"], [
4388 kde4datadir="`${KDE4_CONFIG} --install data`"
4389 AS_IF([test "x$kde4datadir" = "x"], [kde4datadir='${datadir}/kde4/apps'])
4390 soliddatadir="${kde4datadir}/solid/actions"
4392 soliddatadir="${with_kde_solid}"
4395 AC_SUBST([soliddatadir])
4396 AM_CONDITIONAL([KDE_SOLID], [test "x${soliddatadir}" != "x"])
4399 dnl Find tools for win32 packaging
4401 AS_IF([test "${SYS}" = "mingw32"], [
4403 dnl Find makensis required to build the NSIS installer
4405 nsis_major_required="3"
4406 nsis_version_ok="no"
4407 AC_PATH_PROG([MAKENSIS], [makensis], [no])
4408 AS_IF([test "$MAKENSIS" != "no"], [
4410 AC_MSG_CHECKING([makensis version])
4411 nsis_version=$($MAKENSIS -VERSION)
4412 AC_MSG_RESULT([$nsis_version])
4413 nsis_version_major=$(echo "$nsis_version" | awk -F \. '{print $1}' | sed 's/v//')
4414 # Check if major version is a valid number
4415 AS_IF([test -n "$nsis_version_major" && \
4416 test "$nsis_version_major" -eq "$nsis_version_major" 2> /dev/null], [
4417 # Do the version check using major version
4418 AS_IF([test "$nsis_version_major" -lt "$nsis_major_required"], [
4419 AC_MSG_WARN([makensis too old, (needs ${nsis_major_required}.x, have ${nsis_version_major}.x)])
4421 nsis_version_ok="yes"
4424 AC_MSG_WARN([failed to check the makensis version])
4430 AC_PATH_PROG([SEVENZIP], [7z], [7z])
4432 AM_CONDITIONAL([HAVE_MAKENSIS], [test "x$MAKENSIS" != "xno" && test "$nsis_version_ok" = "yes"])
4435 dnl Check wether we have the PROCESS_MITIGATION_IMAGE_LOAD_POLICY
4436 dnl It should only be available when building for win10, but some SDKs define it unconditionnaly
4438 if test "${SYS}" = "mingw32"; then
4439 AC_CHECK_TYPES([PROCESS_MITIGATION_IMAGE_LOAD_POLICY],,,[#include <windows.h>])
4442 EXTEND_HELP_STRING([Components:])
4447 AC_ARG_ENABLE([vlc],
4448 AS_HELP_STRING([--enable-vlc], [build the VLC media player (default enabled)]))
4449 AM_CONDITIONAL([BUILD_VLC], [test "${enable_vlc}" != "no"])
4452 dnl Fuzzer (at the end not to mess dependencies FLAGS)
4454 AS_VAR_IF(with_libfuzzer, no, [], [
4455 LIBS="-lstdc++ ${LIBM}"
4456 AS_IF([test "${with_libfuzzer}" != "yes"], [
4457 LIBS="$LIBS -L${with_libfuzzer}"
4459 LIBS="$LIBS -lFuzzer"
4460 AX_CHECK_COMPILE_FLAG(-fsanitize-coverage=trace-pc-guard, [
4461 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc-guard])
4462 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc-guard], [CXXFLAGS])
4463 AX_APPEND_COMPILE_FLAGS([-fsanitize-coverage=trace-cmp])
4464 AX_APPEND_COMPILE_FLAGS([-fsanitize-coverage=trace-cmp], [CXXFLAGS])
4466 AX_CHECK_COMPILE_FLAG(-fsanitize-coverage=trace-pc, [
4467 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc])
4468 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc], [CXXFLAGS])
4470 AC_MSG_ERROR([Sanitizer coverage not supported by your compiler])
4476 dnl Stuff used by the program
4478 VERSION_MESSAGE="${VERSION} ${CODENAME}"
4479 COPYRIGHT_MESSAGE="Copyright © ${COPYRIGHT_YEARS} the VideoLAN team"
4480 AC_DEFINE_UNQUOTED([VERSION_MESSAGE], "${VERSION_MESSAGE}", [Simple version string])
4481 AC_DEFINE_UNQUOTED([COPYRIGHT_MESSAGE], "${COPYRIGHT_MESSAGE}", [Copyright string])
4482 AC_DEFINE_UNQUOTED([COPYRIGHT_YEARS], "${COPYRIGHT_YEARS}", [The copyright years])
4483 AC_DEFINE_UNQUOTED([CONFIGURE_LINE], "${CONFIGURE_LINE}", [The ./configure command line])
4484 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_MAJOR],${VERSION_MAJOR}, [version major number])
4485 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_MINOR],${VERSION_MINOR}, [version minor number])
4486 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_REVISION],${VERSION_REVISION}, [version revision number])
4487 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_EXTRA],${VERSION_EXTRA}, [version extra number])
4488 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_DEV],"${VERSION_DEV}", [version development string])
4489 AC_SUBST([COPYRIGHT_MESSAGE])
4490 AC_SUBST([VERSION_MESSAGE])
4491 AC_SUBST([VERSION_MAJOR])
4492 AC_SUBST([VERSION_MINOR])
4493 AC_SUBST([VERSION_REVISION])
4494 AC_SUBST([VERSION_EXTRA])
4495 AC_SUBST([COPYRIGHT_YEARS])
4496 AC_DEFINE_UNQUOTED([VLC_COMPILE_BY], "`whoami|sed -e 's/\\\/\\\\\\\/g'`", [user who ran configure])
4497 AC_DEFINE_UNQUOTED([VLC_COMPILE_HOST], "`hostname -f 2>/dev/null || hostname`", [host which ran configure])
4498 AC_DEFINE_UNQUOTED([VLC_COMPILER], "`$CC -v 2>&1 | tail -n 1 | sed -e 's/ *$//'`", [compiler])
4500 dnl Handle substvars that use $(top_srcdir)
4502 CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS}"
4505 dnl Configuration is finished
4515 AC_SUBST([WINE_SDK_PATH])
4517 AC_SUBST([AM_CPPFLAGS])
4518 AC_SUBST([MACOSX_DEPLOYMENT_TARGET])
4519 AC_SUBST([FILE_LIBVLCCORE_DLL])
4520 AC_SUBST([FILE_LIBVLC_DLL])
4534 modules/hw/mmal/Makefile
4535 share/vlc.appdata.xml.in
4538 AM_COND_IF([HAVE_WIN32], [
4540 extras/package/win32/NSIS/spad.nsi
4541 extras/package/win32/NSIS/vlc.win32.nsi
4542 extras/package/win32/msi/config.wxi
4546 AM_COND_IF([HAVE_DARWIN], [
4548 modules/gui/macosx/UI/InfoPlist.strings:modules/gui/macosx/Resources/InfoPlist.strings.in
4549 share/macosx/Info.plist:share/Info.plist.in
4553 dnl Generate makefiles
4556 dnl Do we have to use make or gmake ?
4557 if make --version 2>&1|grep -q GNU
4559 # GNU make, all seems good
4562 # Known GNU make alias (on BSD)
4565 dnl Shortcut to nice compile message
4566 if test -n $SHELL; then
4567 SHELL=${CONFIG_SHELL-/bin/sh}
4570 compile_top_srcdir=`sed -ne "s/^top_srcdir *= *//p" < Makefile`
4574 export PATH=\"$PATH\" LANG=C
4575 ($MAKE V=1 \$@ 2>&1 || touch .error\$\$)| $compile_top_srcdir/extras/buildsystem/make.pl
4576 test -f .error\$\$ && ERROR=1
4578 exit \$ERROR" >compile
4582 libvlc configuration
4583 --------------------
4584 version : ${VERSION}
4586 architecture : ${ARCH}
4587 optimizations : ${enable_optimizations}"
4588 if test "${enable_vlc}" != "no"; then
4589 echo "vlc aliases :${ALIASES}"
4591 echo "build vlc executable : no"
4594 To build vlc and its plugins, type \`$MAKE', or \`./compile' if you like nice colors."