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 fstatvfs fork getenv getpwuid_r isatty memalign mkostemp mmap open_memstream newlocale openat pipe2 pread posix_fadvise posix_madvise posix_memalign setlocale stricmp strnicmp strptime uselocale])
637 AC_REPLACE_FUNCS([aligned_alloc atof atoll dirfd fdopendir flockfile fsync getdelim getpid lfind lldiv memrchr nrand48 poll recvmsg rewind sendmsg setenv strcasecmp strcasestr strdup strlcpy strndup strnlen strnstr strsep strtof strtok_r strtoll swab tdestroy tfind timegm timespec_get strverscmp pathconf])
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"])
1686 AC_ARG_ENABLE([altivec],
1687 AS_HELP_STRING([--disable-altivec],
1688 [disable AltiVec optimizations (default auto)]),, [
1689 AS_CASE("${host_cpu}", [powerpc*],
1690 [enable_altivec=yes], [enable_altivec=no])
1694 AS_IF([test "${enable_altivec}" = "yes"], [
1695 ARCH="${ARCH} altivec";
1697 AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1698 [ac_cv_altivec_inline],
1699 [AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1700 ac_cv_altivec_inline="yes",
1701 [CFLAGS="${CFLAGS} -Wa,-maltivec"
1702 AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1703 [ac_cv_altivec_inline="-Wa,-maltivec"],
1704 ac_cv_altivec_inline=no)
1707 AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1708 AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1709 [Define to 1 if AltiVec inline assembly is available.])
1710 AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1711 ALTIVEC_CFLAGS="${ac_cv_altivec_inline}"
1712 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_altivec_inline}])
1718 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1719 [ac_cv_c_altivec], [
1720 CFLAGS="${CFLAGS} -maltivec"
1721 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1722 [#include <altivec.h>]], [
1723 [vec_ld(0, (unsigned char *)0);]])], [
1724 ac_cv_c_altivec="-maltivec"
1726 ac_cv_c_altivec="no"
1730 AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1731 CPPFLAGS="${CPPFLAGS} ${ac_cv_c_altivec}"
1732 AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, [Define to 1 if C AltiVec extensions are available.])
1733 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_c_altivec}])
1734 ALTIVEC_CFLAGS="$ALTIVEC_CFLAGS ${ac_cv_c_altivec}"
1735 VLC_ADD_CFLAGS([deinterlace],[${ac_cv_c_altivec}])
1738 AC_CHECK_HEADERS([altivec.h])
1741 LDFLAGS="${LDFLAGS} -Wl,-framework,vecLib"
1742 AC_CACHE_CHECK([if linker needs -framework vecLib],
1744 [AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)])
1746 AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1747 VLC_ADD_LIBS([libvlccore],[-Wl,-framework,vecLib])
1750 AC_SUBST([ALTIVEC_CFLAGS])
1751 AM_CONDITIONAL([HAVE_ALTIVEC], [test "$have_altivec" = "yes"])
1756 AC_ARG_ENABLE([optimize-memory],
1757 AS_HELP_STRING([--enable-optimize-memory],
1758 [optimize memory usage over performance]))
1759 if test "${enable_optimize_memory}" = "yes"; then
1760 AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1764 dnl Allow running as root (useful for people running on embedded platforms)
1766 AC_ARG_ENABLE([run-as-root],
1767 AS_HELP_STRING([--enable-run-as-root],
1768 [allow running VLC as root (default disabled)]))
1769 AS_IF([test "${enable_run_as_root}" = "yes"],[
1770 AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1771 [Define to 1 to allow running VLC as root (uid 0).])
1777 AC_ARG_ENABLE([sout],
1778 AS_HELP_STRING([--disable-sout],
1779 [disable streaming output (default enabled)]))
1780 AS_IF([test "${enable_sout}" != "no"], [
1781 AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1783 AM_CONDITIONAL([ENABLE_SOUT], [test "${enable_sout}" != "no"])
1786 AC_ARG_ENABLE([lua],
1787 AS_HELP_STRING([--disable-lua],
1788 [disable LUA scripting support (default enabled)]))
1789 if test "${enable_lua}" != "no"
1791 PKG_CHECK_MODULES(LUA, lua5.2,
1794 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua 5.1 instead])
1796 PKG_CHECK_MODULES(LUA, lua5.1,
1799 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua >= 5.1 instead])
1800 PKG_CHECK_MODULES(LUA, lua >= 5.1,
1803 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying manual detection instead])
1805 AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1808 AC_CHECK_LIB( lua5.2 , luaL_newstate,
1809 [LUA_LIBS="-llua5.2"],
1810 AC_CHECK_LIB( lua5.1 , luaL_newstate,
1811 [LUA_LIBS="-llua5.1"],
1812 AC_CHECK_LIB( lua51 , luaL_newstate,
1813 [LUA_LIBS="-llua51"],
1814 AC_CHECK_LIB( lua , luaL_newstate,
1822 if test "x${have_lua}" != "xyes" ; then
1823 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.])
1825 AC_ARG_VAR([LUAC], [LUA byte compiler])
1826 AS_IF([test -z "$LUAC"], [
1827 AC_CHECK_TOOL(LUAC, [luac], [false])
1829 AS_IF([test "${LUAC}" = "false"], [
1830 AC_MSG_ERROR([Could not find the LUA byte compiler.])
1832 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], [
1833 AC_MSG_ERROR([You need 32-bits luac when using lua from contrib.])
1836 AM_CONDITIONAL([BUILD_LUA], [test "${have_lua}" = "yes"])
1840 dnl VideoLAN manager
1842 AC_ARG_ENABLE([vlm],
1843 AS_HELP_STRING([--disable-vlm],
1844 [disable the stream manager (default enabled)]),,
1845 [enable_vlm="${enable_sout}"])
1846 AS_IF([test "${enable_vlm}" != "no"], [
1847 AS_IF([test "${enable_sout}" = "no"], [
1848 AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1850 AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1852 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1856 dnl Addons manager storage and repositories modules
1858 AC_ARG_ENABLE([addonmanagermodules],
1859 AS_HELP_STRING([--disable-addonmanagermodules],
1860 [disable the addons manager modules (default enabled)]))
1861 if test "${enable_addonmanagermodules}" != "no"
1863 AC_DEFINE(ENABLE_ADDONMANAGERMODULES, 1, [Define if you want the addons manager modules])
1865 AM_CONDITIONAL([ENABLE_ADDONMANAGERMODULES], [test "${enable_addonmanagermodules}" != "no"])
1872 EXTEND_HELP_STRING([Input plugins:])
1875 dnl libarchive access module
1877 PKG_ENABLE_MODULES_VLC([ARCHIVE], [archive], [libarchive >= 3.1.0], (libarchive support), [auto])
1882 AC_ARG_ENABLE([live555],
1883 AS_HELP_STRING([--enable-live555],
1884 [enable RTSP input through live555 (default enabled)]))
1886 AS_IF([test "${enable_live555}" != "no" -a -n "${CXX}"], [
1887 PKG_CHECK_MODULES(LIVE555, live555, [
1888 VLC_ADD_PLUGIN([live555])
1889 VLC_ADD_CXXFLAGS([live555], [$LIVE555_CFLAGS])
1890 VLC_ADD_LIBS([live555],[$LIVE555_LIBS])
1892 AC_MSG_WARN([${LIVE555_PKG_ERRORS}.])
1897 dnl detect include paths
1898 AS_IF([test -f "${CONTRIB_DIR}/include/UsageEnvironment/UsageEnvironment.hh"], [
1899 CPPFLAGS_live555="-I${CONTRIB_DIR}/include/liveMedia -I${CONTRIB_DIR}/include/groupsock -I${CONTRIB_DIR}/include/BasicUsageEnvironment -I${CONTRIB_DIR}/include/UsageEnvironment"
1901 AS_IF([test "${SYS}" != "os2"], [
1902 LIVE555_PREFIX=${LIVE555_PREFIX-"/usr"}
1903 CPPFLAGS_live555="-I${LIVE555_PREFIX}/include/liveMedia -I${LIVE555_PREFIX}/include/groupsock -I${LIVE555_PREFIX}/include/BasicUsageEnvironment -I${LIVE555_PREFIX}/include/UsageEnvironment"
1905 LIVE555_PREFIX=${LIVE555_PREFIX-"/usr/lib/live"}
1906 CPPFLAGS_live555="-I${LIVE555_PREFIX}/liveMedia/include -I${LIVE555_PREFIX}/groupsock/include -I${LIVE555_PREFIX}/BasicUsageEnvironment/include -I${LIVE555_PREFIX}/UsageEnvironment/include"
1907 LDFLAGS_live555="-L${LIVE555_PREFIX}/liveMedia -L${LIVE555_PREFIX}/groupsock -L${LIVE555_PREFIX}/BasicUsageEnvironment -L${LIVE555_PREFIX}/UsageEnvironment"
1912 AS_IF([test "${SYS}" = "solaris"], [
1913 CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1915 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1916 LDFLAGS="${LDFLAGS} ${LDFLAGS_live555}"
1919 AC_CACHE_CHECK([for live555 version 1324598400 or later], [ac_cv_live555], [
1920 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
1921 [#include <liveMedia_version.hh>
1922 #if !defined (LIVEMEDIA_LIBRARY_VERSION_INT) || (LIVEMEDIA_LIBRARY_VERSION_INT < 1324598400)
1932 AS_IF([test "$ac_cv_live555" = "no"], [
1933 AC_MSG_WARN([live555 is missing or its installed version is too old:
1934 Version 2011.12.23 or later is required to proceed.
1935 You can get an updated one from http://www.live555.com/liveMedia .])
1936 AS_IF([test -n "${enable_live555}"], [
1937 AC_MSG_ERROR([Update live555 or pass --disable-live555 to disable RTSP input support.])
1940 other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1941 other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
1942 AS_IF([test "${SYS}" = "mingw32"], [
1943 # add ws2_32 for closesocket, select, recv
1944 other_libs="$other_libs -lws2_32"
1947 dnl We need to check for pic because live555 don't provide shared libs
1948 dnl and we want to build a plugins so we need -fPIC on some arch.
1949 VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1950 VLC_ADD_LDFLAGS([live555], [${LDFLAGS_live555}])
1951 AC_CHECK_LIB([liveMedia_pic], [main], [
1952 VLC_ADD_PLUGIN([live555])
1953 VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
1955 AC_CHECK_LIB([liveMedia], [main], [
1956 VLC_ADD_PLUGIN([live555])
1957 VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1958 ],[],[${other_libs}])
1959 ],[${other_libs_pic}])
1967 dnl IIDC and DV FireWire input modules
1969 PKG_ENABLE_MODULES_VLC([DC1394], [], [libdc1394-2 >= 2.1.0], [IIDC FireWire input module], [auto])
1970 PKG_ENABLE_MODULES_VLC([DV1394], [], [libraw1394 >= 2.0.1 libavc1394 >= 0.5.3], [DV FireWire input module], [auto])
1973 dnl - linsys modules: access module check for libzvbi
1975 AC_ARG_ENABLE([linsys],
1976 AS_HELP_STRING([--enable-linsys],
1977 [Linux Linear Systems Ltd. SDI and HD-SDI input cards (default enabled)]))
1978 AS_IF([test "$SYS" = "linux" -a "${enable_linsys}" != "no"], [
1979 VLC_ADD_PLUGIN([linsys_hdsdi])
1980 PKG_CHECK_MODULES(LINSYS_SDI, [zvbi-0.2 >= 0.2.28], [
1981 VLC_ADD_PLUGIN([linsys_sdi])
1983 AC_MSG_WARN([${LINSYS_SDI_PKG_ERRORS}.])
1988 dnl dvdread module: check for libdvdread
1990 PKG_ENABLE_MODULES_VLC([DVDREAD], [], [dvdread > 6.0.0], [dvdread input module], [auto])
1993 dnl libdvdnav plugin
1995 PKG_ENABLE_MODULES_VLC([DVDNAV], [], [dvdnav >= 6.0.0], [DVD with navigation input module (dvdnav)], [auto])
1998 dnl Blu-ray Disc Support with libbluray
2000 PKG_ENABLE_MODULES_VLC([BLURAY], [libbluray], [libbluray >= 0.6.2], (libbluray for Blu-ray disc support ) )
2003 dnl OpenCV wrapper and example filters
2005 PKG_ENABLE_MODULES_VLC([OPENCV], [opencv_example opencv_wrapper], [opencv > 2.0], (OpenCV (computer vision) filter), [auto])
2009 dnl libsmbclient plugin
2011 PKG_ENABLE_MODULES_VLC([SMBCLIENT], [smbc], [smbclient], (SMB/CIFS support), [auto])
2014 dnl liBDSM access module
2016 AM_CONDITIONAL([HAVE_DSM], [test "$AS_TR_SH(with_dsm)" = "yes"])
2017 PKG_WITH_MODULES([DSM], [libdsm >= 0.2.0], [
2018 VLC_ADD_PLUGIN([dsm])
2019 VLC_ADD_CFLAGS([dsm], [$DSM_CFLAGS])
2020 VLC_ADD_LIBS([dsm], [$DSM_LIBS])
2022 ],,[libdsm SMB/CIFS access/sd module], [auto])
2023 AM_CONDITIONAL([HAVE_DSM], [test "${have_dsm}" = "yes"])
2026 dnl sftp access support
2028 PKG_ENABLE_MODULES_VLC([SFTP], [sftp], [libssh2], (support SFTP file transfer via libssh2), [auto])
2031 dnl nfs access support
2033 PKG_ENABLE_MODULES_VLC([NFS], [nfs], [libnfs >= 1.10.0], (support nfs protocol via libnfs), [auto])
2036 dnl smb2 access support
2038 PKG_ENABLE_MODULES_VLC([SMB2], [smb2], [libsmb2 >= 2.0.0], (support smb2 protocol via libsmb2), [auto])
2043 AC_ARG_ENABLE([v4l2], AS_HELP_STRING([--disable-v4l2],
2044 [disable Video4Linux version 2 (default auto)]))
2046 AS_IF([test "$enable_v4l2" != "no"], [
2047 AC_CHECK_HEADERS([linux/videodev2.h], [
2051 AM_CONDITIONAL([HAVE_V4L2], [test "${have_v4l2}" != "no"])
2054 dnl special access module for Blackmagic SDI cards
2056 AC_ARG_ENABLE([decklink],
2057 AS_HELP_STRING([--disable-decklink],
2058 [disable Blackmagic DeckLink SDI input (default auto)]))
2059 AC_ARG_WITH([decklink_sdk],
2060 AS_HELP_STRING([--with-decklink-sdk=DIR],
2061 [location of Blackmagic DeckLink SDI SDK]))
2063 if test "${enable_decklink}" != "no"
2065 if test "${with_decklink_sdk}" != "no" -a -n "${with_decklink_sdk}"
2067 VLC_ADD_CPPFLAGS([decklink decklinkoutput stream_out_sdi],[-I${with_decklink_sdk}/include])
2070 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_decklink}"
2072 AC_CHECK_HEADERS([DeckLinkAPIDispatch.cpp], [
2074 AS_IF([test "${SYS}" = "darwin"], [
2075 VLC_ADD_LIBS([decklink decklinkoutput],[-Wl,-framework,CoreFoundation])
2078 AS_IF([test "${enable_decklink}" = "yes"], [
2079 AC_MSG_ERROR([Blackmagic DeckLink SDI include files not found!])
2081 AC_MSG_WARN([Blackmagic DeckLink SDI include files not found, decklink disabled])
2087 AM_CONDITIONAL([HAVE_DECKLINK], [ test "${have_decklink}" != "no" ])
2091 dnl Built-in CD-DA and VCD module
2093 AC_ARG_ENABLE([vcd],
2094 AS_HELP_STRING([--disable-vcd],
2095 [disable built-in VCD and CD-DA support (default enabled)]))
2097 AC_ARG_ENABLE([libcddb],
2098 AS_HELP_STRING([--disable-libcddb],
2099 [disable CDDB for Audio CD (default enabled)]))
2101 if test "${enable_vcd}" != "no" -a "${enable_winstore_app}" != "yes"
2103 AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2104 AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2106 VLC_ADD_PLUGIN([vcd cdda])
2111 AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2112 AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2114 VLC_ADD_PLUGIN([vcd cdda])
2115 AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2120 AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2121 AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2123 VLC_ADD_PLUGIN([vcd cdda])
2124 AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2129 if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32" -o "${SYS}" = "os2" -o "${SYS}" = "darwin"
2131 VLC_ADD_PLUGIN([vcd cdda])
2134 if test "$enable_libcddb" != "no"; then
2135 PKG_CHECK_MODULES(LIBCDDB, [libcddb >= 0.9.5], [
2137 AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2138 VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2139 VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2141 [AC_MSG_WARN([${LIBCDDB_PKG_ERRORS}: CDDB access disabled.])
2149 AC_CACHE_CHECK([for Linux DVB version 5.1], [ac_cv_linux_dvb_5_1], [
2150 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
2151 [#include <linux/dvb/version.h>
2152 #if (DVB_API_VERSION < 5)
2153 # error Linux DVB API v3.2 and older are not supported.
2155 #if (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR < 1)
2156 # error Linux DVB API v5.0 is unsupported. Please update.
2159 ac_cv_linux_dvb_5_1=yes
2161 ac_cv_linux_dvb_5_1=no
2163 AM_CONDITIONAL([HAVE_LINUX_DVB], [test "$ac_cv_linux_dvb_5_1" = "yes"])
2166 dnl Screen capture module
2168 AC_ARG_ENABLE([screen],
2169 AS_HELP_STRING([--enable-screen],
2170 [disable screen capture (default enabled)]))
2171 if test "${enable_screen}" != "no"; then
2172 if test "${SYS}" = "darwin"; then
2173 AC_CHECK_HEADERS([ApplicationServices/ApplicationServices.h], [
2174 VLC_ADD_PLUGIN([screen])
2178 AM_CONDITIONAL([HAVE_MAC_SCREEN], [test "${SYS}" = "darwin" -a "x${enable_screen}" != "xno"])
2181 dnl VNC/RFB access module
2183 PKG_ENABLE_MODULES_VLC([VNC], [vnc], [libvncclient >= 0.9.9], (VNC/rfb client support), [auto])
2185 dnl RDP/Remote Desktop access module
2187 PKG_ENABLE_MODULES_VLC([FREERDP], [rdp], [freerdp >= 1.0.1], (RDP/Remote Desktop client support) )
2191 AC_SUBST([have_avfoundation], ["no"])
2192 AC_ARG_ENABLE([macosx-avfoundation],
2193 AS_HELP_STRING([--enable-macosx-avfoundation], [Mac OS X avcapture (video) module (default enabled on Mac OS X)]))
2194 if test "x${enable_macosx_avfoundation}" != "xno" &&
2195 (test "${SYS}" = "darwin" || test "${enable_macosx_avfoundation}" = "yes")
2197 SAVED_LIBS="${LIBS}"
2198 LIBS="-framework AVFoundation"
2199 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [])],[have_avfoundation=yes],[have_avfoundation=no])
2200 LIBS="${SAVED_LIBS}"
2201 if test "${have_avfoundation}" != "no"
2203 VLC_ADD_PLUGIN([avcapture])
2206 AM_CONDITIONAL([HAVE_AVFOUNDATION], [test "${have_avfoundation}" != "no"])
2209 dnl DCP plugin (using asdcplib)
2211 PKG_WITH_MODULES([ASDCP], [asdcplib], [have_asdcp="yes"])
2212 AM_CONDITIONAL([HAVE_ASDCP], [test "${have_asdcp}" = "yes"])
2218 EXTEND_HELP_STRING([Mux/Demux plugins:])
2221 dnl libdvbpsi check for ts mux/demux
2224 PKG_WITH_MODULES([DVBPSI], [libdvbpsi >= 1.2.0], [have_dvbpsi="yes"])
2225 AM_CONDITIONAL([HAVE_DVBPSI], [test "${have_dvbpsi}" = "yes"])
2229 dnl GME demux plugin
2231 AC_ARG_ENABLE([gme],
2232 AS_HELP_STRING([--enable-gme],
2233 [use Game Music Emu (default auto)]))
2234 AS_IF([test "${enable_gme}" != "no"], [
2235 AC_CHECK_HEADER([gme/gme.h], [
2236 AC_CHECK_LIB([gme], [gme_identify_header], [
2237 VLC_ADD_PLUGIN([gme])
2239 AC_CHECK_LIB([gme], [gme_identify_extension], [
2240 VLC_ADD_LIBS([gme], [-lstdc++ $LIBM])
2241 VLC_ADD_PLUGIN([gme])
2242 ],, [-lstdc++ $LIBM])
2244 VLC_ADD_LIBS([gme], [-lgme])
2246 AS_IF([test "x${enable_gme}" != "x"], [
2247 AC_MSG_ERROR([GME cannot be found. Please install the development files.])
2256 AC_ARG_ENABLE([sid],
2257 AS_HELP_STRING([--enable-sid],[C64 sid demux support (default auto)]))
2258 AS_IF([test "${enable_sid}" != "no"], [
2259 PKG_CHECK_MODULES(SID, [libsidplay2], [
2261 oldCPPFLAGS="$CPPFLAGS"
2262 CPPFLAGS="$CPPFLAGS $SID_CFLAGS"
2263 AC_CHECK_HEADER([sidplay/builders/resid.h], [
2264 VLC_ADD_PLUGIN([sid])
2265 VLC_ADD_CFLAGS([sid], [$SID_CFLAGS])
2266 VLC_ADD_LIBS([sid], [$SID_LIBS] [-lresid-builder])
2268 AS_IF([test -n "${enable_sid}"],
2269 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2270 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2273 CPPFLAGS="$oldCPPFLAGS"
2276 AS_IF([test "x${enable_sid}" = "xyes"],
2277 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2278 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2285 dnl ogg demux plugin
2287 PKG_ENABLE_MODULES_VLC([OGG], [mux_ogg], [ogg >= 1.0], [Ogg demux support], [auto])
2288 PKG_CHECK_MODULES(LIBVORBIS, [vorbis >= 1.1], [
2289 AC_DEFINE(HAVE_LIBVORBIS, 1, [Define to 1 if you have the libvorbis])
2291 PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto], [${LIBVORBIS_CFLAGS}], [${LIBVORBIS_LIBS}])
2292 if test "${enable_sout}" != "no"; then
2293 dnl Check for libshout
2294 PKG_ENABLE_MODULES_VLC([SHOUT], [access_output_shout], [shout >= 2.1], [libshout output plugin], [auto])
2298 dnl matroska demux plugin
2300 PKG_WITH_MODULES([MATROSKA], [libebml libmatroska], [
2301 VLC_ADD_PLUGIN([mkv])
2302 VLC_ADD_CFLAGS([mkv], [$MATROSKA_CFLAGS])
2303 VLC_ADD_LIBS([mkv], [$MATROSKA_LIBS])
2305 ],,[MKV format support], [auto])
2306 AM_CONDITIONAL([HAVE_MATROSKA], [test "${have_matroska}" = "yes"])
2309 dnl modplug demux plugin
2311 AC_ARG_ENABLE([mod],
2312 AS_HELP_STRING([--disable-mod],
2313 [do not use libmodplug (default auto)]))
2314 if test "${enable_mod}" != "no" ; then
2315 PKG_CHECK_MODULES(LIBMODPLUG, [libmodplug >= 0.8.4 libmodplug != 0.8.8], [
2316 VLC_ADD_PLUGIN([mod])
2317 VLC_ADD_CXXFLAGS([mod],[$LIBMODPLUG_CFLAGS])
2318 VLC_ADD_CFLAGS([mod],[$LIBMODPLUG_CFLAGS]) #modules/demux/mod.c needs CFLAGS_mod, not CXXFLAGS_mod
2319 VLC_ADD_LIBS([mod],[$LIBMODPLUG_LIBS])
2321 AS_IF([test -n "${enable_mod}"],
2322 [AC_MSG_ERROR([${LIBMODPLUG_PKG_ERRORS}.])],
2323 [AC_MSG_WARN([${LIBMODPLUG_PKG_ERRORS}.])])
2328 dnl mpc demux plugin
2330 AC_ARG_ENABLE([mpc],
2331 AS_HELP_STRING([--disable-mpc], [do not use libmpcdec (default auto)]))
2332 if test "${enable_mpc}" != "no"
2334 AC_CHECK_HEADERS([mpcdec/mpcdec.h], [
2335 VLC_ADD_PLUGIN([mpc])
2336 VLC_ADD_LIBS([mpc],[-lmpcdec])])
2343 EXTEND_HELP_STRING([Codec plugins:])
2346 dnl shine encoder plugin
2348 PKG_ENABLE_MODULES_VLC([SHINE], [], [shine >= 3.0.0], [MPEG Audio Layer 3 encoder], [auto], [], [], [])
2352 dnl openmax il codec plugin
2354 AC_ARG_ENABLE([omxil],
2355 AS_HELP_STRING([--enable-omxil], [openmax il codec module (default disabled)]))
2356 if test "${enable_omxil}" = "yes"
2358 VLC_ADD_PLUGIN([omxil])
2362 dnl raspberry pi openmax il configuration
2364 AC_ARG_ENABLE([rpi-omxil],
2365 AS_HELP_STRING([--enable-rpi-omxil], [openmax il configured for raspberry pi (default disabled)]))
2366 if test "${enable_rpi_omxil}" = "yes"
2368 VLC_ADD_PLUGIN([omxil])
2369 VLC_ADD_CFLAGS([omxil],[-DRPI_OMX])
2373 dnl CrystalHD codec plugin
2375 AC_ARG_ENABLE([crystalhd],
2376 AS_HELP_STRING([--enable-crystalhd], [crystalhd codec plugin (default auto)]))
2377 if test "${enable_crystalhd}" != "no"; then
2378 AC_CHECK_HEADER(libcrystalhd/libcrystalhd_if.h, [
2379 VLC_ADD_PLUGIN([crystalhd])
2380 VLC_ADD_LIBS([crystalhd], [-lcrystalhd])
2382 if test "${SYS}" = "mingw32" ; then
2383 AC_CHECK_HEADERS([libcrystalhd/bc_dts_defs.h], [
2384 VLC_ADD_PLUGIN([crystalhd])
2385 AC_CHECK_HEADERS([libcrystalhd/bc_drv_if.h], [
2386 VLC_ADD_LIBS([crystalhd], [-lbcmDIL])
2389 AS_IF([test x"${enable_crystalhd}" = "xyes"],
2390 [AC_MSG_ERROR("Could not find CrystalHD development headers")],
2391 [AC_MSG_WARN("Could not find CrystalHD development headers")])
2392 ],[#define __LINUX_USER__
2393 #include <libcrystalhd/bc_dts_types.h>
2397 #include <libcrystalhd/bc_dts_types.h>
2408 AC_ARG_WITH(mad, AS_HELP_STRING([--with-mad=PATH], [path to libmad]), [
2413 AS_IF([test "${with_mad}" != "no"], [
2414 MAD_CFLAGS="-I${with_mad}/include"
2415 MAD_LIBS="-L${with_mad}/lib"
2418 AC_ARG_ENABLE([mad],
2419 AS_HELP_STRING([--enable-mad], [libmad module (default enabled)]))
2420 AS_IF([test "${enable_mad}" != "no"], [
2422 CPPFLAGS="${CPPFLAGS} ${MAD_CFLAGS}"
2423 LDFLAGS="${LDFLAGS} ${MAD_LIBS}"
2424 AC_CHECK_HEADERS([mad.h], [
2425 AC_CHECK_LIB([mad], [mad_bit_init], [
2427 MAD_LIBS="${MAD_LIBS} -lmad"
2431 AS_IF([test -n "$enable_mad" -a "${have_mad}" = "no"], [
2432 AC_MSG_ERROR([Could not find libmad. Install it or pass --disable-mad to disable it.])
2435 AC_SUBST([MAD_CFLAGS])
2436 AC_SUBST([MAD_LIBS])
2437 AM_CONDITIONAL([HAVE_MAD], [test "${have_mad}" = "yes"])
2442 PKG_ENABLE_MODULES_VLC([MPG123], [mpg123], [libmpg123], [libmpg123 decoder support], [auto])
2447 AC_ARG_ENABLE([gst-decode],
2448 AS_HELP_STRING([--enable-gst-decode], [GStreamer based decoding support (currently supports only video decoding) (default auto)]))
2450 have_gst_decode="no"
2451 AS_IF([test "${enable_gst_decode}" != "no"], [
2452 PKG_CHECK_MODULES([GST_APP], [gstreamer-app-1.0], [
2453 PKG_CHECK_MODULES([GST_VIDEO], [gstreamer-video-1.0], [
2454 have_gst_decode="yes"
2456 AC_MSG_WARN([${GST_VIDEO_PKG_ERRORS}. GStreamer decoder module will not be built.])
2459 AC_MSG_WARN([${GST_APP_PKG_ERRORS}. GStreamer modules will not be built.])
2462 AM_CONDITIONAL([HAVE_GST_DECODE], [test "${have_gst_decode}" = "yes"])
2465 dnl avcodec decoder/encoder plugin
2467 AC_ARG_ENABLE([merge-ffmpeg],
2468 AS_HELP_STRING([--enable-merge-ffmpeg], [merge FFmpeg-based plugins (default disabled)]),, [
2469 enable_merge_ffmpeg="no"
2471 AM_CONDITIONAL([MERGE_FFMPEG], [test "$enable_merge_ffmpeg" != "no"])
2473 AC_MSG_CHECKING([for libavutil variant])
2474 PKG_CHECK_EXISTS([libavutil], [
2475 libavutil_version="$(${PKG_CONFIG} --modversion libavutil)"
2476 libavutil_micro="${libavutil_version##*.}"
2477 AS_IF([test ${libavutil_micro} -le 99], [
2485 AC_MSG_RESULT([${avfork}])
2487 AC_ARG_ENABLE([avcodec],
2488 AS_HELP_STRING([--enable-avcodec], [libavcodec codec (default enabled)]))
2489 AS_IF([test "${enable_avcodec}" != "no"], [
2490 dnl We need >=57.16.0 from libav or >=57.37.100 from ffmpeg
2492 libav) av_codec_ver="57.16.0" ;;
2493 dnl 05f66706d182eb0c36af54d72614bf4c33e957a9 includes libavutil 55.9.0
2494 ffmpeg) av_codec_ver="57.37.100" ;;
2495 dnl 7fc329e2dd6226dfecaa4a1d7adf353bf2773726 include libavutil 55.22.101
2496 *) AC_MSG_ERROR([Missing libav or FFmpeg. Pass --disable-avcodec to ignore this error.])
2498 PKG_CHECK_MODULES(AVCODEC,[libavcodec >= ${av_codec_ver} libavutil >= 55.9.0], [
2500 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2501 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2502 AC_CHECK_HEADERS([libavcodec/avcodec.h])
2503 AC_CHECK_HEADERS([libavutil/avutil.h])
2507 AC_MSG_ERROR([${AVCODEC_PKG_ERRORS}. Pass --disable-avcodec to ignore this error.])
2512 AM_CONDITIONAL([HAVE_AVCODEC], [test "${have_avcodec}" != "no"])
2515 dnl libva needs avcodec
2517 AC_ARG_ENABLE([libva],
2518 AS_HELP_STRING([--enable-libva], [VAAPI GPU decoding support (libVA) (default auto)]))
2520 AS_IF([test "${enable_libva}" = "yes" -a "${have_avcodec}" != "yes" ], [
2521 AC_MSG_ERROR([--enable-libva and --disable-avcodec options are mutually exclusive. Use --enable-avcodec.])
2528 AS_IF([test "${enable_libva}" != "no"], [
2529 PKG_CHECK_MODULES([LIBVA], [libva >= 0.38], [
2532 AS_IF([test -n "${enable_libva}"], [
2533 AC_MSG_ERROR([${LIBVA_PKG_ERRORS}.])
2535 AC_MSG_WARN([${LIBVA_PKG_ERRORS}.])
2538 PKG_CHECK_MODULES([LIBVA_DRM], [libva-drm], [
2539 have_vaapi_drm="yes"
2541 AC_MSG_WARN([${LIBVA_DRM_PKG_ERRORS}.])
2543 PKG_CHECK_MODULES(LIBVA_X11, [libva-x11], [
2544 have_vaapi_x11="yes"
2546 AC_MSG_WARN([${LIBVA_X11_PKG_ERRORS}.])
2548 PKG_CHECK_MODULES(LIBVA_WL, [libva-wayland], [
2551 AC_MSG_WARN([${LIBVA_WL_PKG_ERRORS}.])
2554 AM_CONDITIONAL([HAVE_VAAPI], [test "${have_vaapi}" = "yes"])
2555 AM_CONDITIONAL([HAVE_VAAPI_DRM], [test "${have_vaapi_drm}" = "yes"])
2556 AM_CONDITIONAL([HAVE_VAAPI_X11], [test "${have_vaapi_x11}" = "yes"])
2557 AM_CONDITIONAL([HAVE_VAAPI_WL], [test "${have_vaapi_wl}" = "yes"])
2559 have_avcodec_vaapi="no"
2560 AS_IF([test "${have_vaapi}" = "yes" -a "${have_avcodec}" = "yes"], [
2562 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2563 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2564 AC_CHECK_HEADERS([libavcodec/vaapi.h], [
2565 AC_MSG_NOTICE([VA API acceleration activated])
2566 have_avcodec_vaapi="yes"
2568 AS_IF([test -n "${enable_libva}"], [
2569 AC_MSG_ERROR([libva is present but libavcodec/vaapi.h is missing])
2571 AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing ])
2576 AM_CONDITIONAL([HAVE_AVCODEC_VAAPI], [test "${have_avcodec_vaapi}" = "yes"])
2579 dnl dxva2 needs avcodec
2581 AC_ARG_ENABLE([dxva2],
2582 AS_HELP_STRING([--enable-dxva2], [DxVA2 GPU decoding support (default auto)]))
2584 have_avcodec_dxva2="no"
2585 AS_IF([test "${enable_dxva2}" != "no"], [
2586 if test "${SYS}" = "mingw32"; then
2587 AS_IF([test "x${have_avcodec}" = "xyes"], [
2588 AC_CHECK_HEADERS([dxva2api.h],
2590 AC_CHECK_HEADERS([libavcodec/dxva2.h], [
2591 AC_MSG_NOTICE([DxVA2 acceleration activated])
2592 have_avcodec_dxva2="yes"
2594 AS_IF([test "${enable_dxva2}" = "yes"],
2595 [AC_MSG_ERROR([dxva2 is present but libavcodec/dxva2.h is missing])],
2596 [AC_MSG_WARN([dxva2 is present but libavcodec/dxva2.h is missing ])])
2597 ], [#undef _WIN32_WINNT
2598 /* DXVA2 is only available in Vista and above */
2599 #define _WIN32_WINNT 0x600])
2601 AS_IF([test "${enable_dxva2}" = "yes"],
2602 [AC_MSG_ERROR([Could not find required dxva2api.h])],
2603 [AC_MSG_WARN([dxva2api.h not found])])
2604 ],[#include <d3d9.h>])
2606 AS_IF([test "x${enable_dxva2}" != "x"], [
2607 AC_MSG_ERROR([--enable-dxva2 and --disable-avcodec options are mutually exclusive.])
2612 AM_CONDITIONAL([HAVE_AVCODEC_DXVA2], [test "${have_avcodec_dxva2}" = "yes"])
2615 dnl d3d11va needs avcodec
2617 AC_ARG_ENABLE([d3d11va],
2618 AS_HELP_STRING([--enable-d3d11va], [D3D11 GPU decoding support (default auto)]))
2620 have_avcodec_d3d11va="no"
2621 AS_IF([test "${enable_d3d11va}" != "no"], [
2622 if test "${SYS}" = "mingw32"; then
2623 AS_IF([test "x${have_avcodec}" = "xyes"], [
2624 AC_CHECK_TYPES([ID3D11VideoDecoder],
2626 AC_CHECK_HEADERS([dxva2api.h],
2628 AC_CHECK_HEADERS([libavcodec/d3d11va.h], [
2629 AC_MSG_NOTICE([D3D11 acceleration activated])
2630 AC_DEFINE([HAVE_AVCODEC_D3D11VA], [1], [Define if the d3d11va module is built])
2631 have_avcodec_d3d11va="yes"
2633 AS_IF([test "${enable_d3d11va}" = "yes"],
2634 [AC_MSG_ERROR([d3d11va is present but libavcodec/d3d11va.h is missing])],
2635 [AC_MSG_WARN([d3d11va is present but libavcodec/d3d11va.h is missing ])])
2636 ], [#undef _WIN32_WINNT
2637 /* D3D11 is only available in Vista and above */
2638 #define _WIN32_WINNT 0x600])
2640 AS_IF([test "${enable_d3d11va}" = "yes"],
2641 [AC_MSG_ERROR([Could not find required dxva2api.h])],
2642 [AC_MSG_WARN([dxva2api.h not found])])
2643 ],[#include <d3d9.h>])
2645 AS_IF([test "${enable_d3d11va}" = "yes"],
2646 [AC_MSG_ERROR([Could not find required ID3D11VideoDecoder in d3d11.h])],
2647 [AC_MSG_WARN([ID3D11VideoDecoder not found])])
2648 ], [#include <d3d11.h>])
2650 AS_IF([test "x${enable_d3d11va}" != "x"], [
2651 AC_MSG_ERROR([--enable-d3d11va and --disable-avcodec options are mutually exclusive.])
2656 AM_CONDITIONAL([HAVE_AVCODEC_D3D11VA], [test "${have_avcodec_d3d11va}" = "yes"])
2661 AC_CHECK_HEADERS([dxgidebug.h dxgi1_6.h])
2664 dnl avformat demuxer/muxer plugin
2667 AC_ARG_ENABLE([avformat],
2668 AS_HELP_STRING([--enable-avformat], [libavformat containers (default enabled)]),, [
2669 enable_avformat="${have_avcodec}"
2672 AS_IF([test "${enable_avformat}" != "no"], [
2673 PKG_CHECK_MODULES(AVFORMAT,[libavformat >= 53.21.0 libavcodec libavutil], [
2676 CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2677 CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2678 AC_CHECK_HEADERS([libavformat/avformat.h libavformat/avio.h])
2679 AC_CHECK_HEADERS([libavcodec/avcodec.h])
2680 AC_CHECK_HEADERS([libavutil/avutil.h])
2681 AS_IF([test "$enable_merge_ffmpeg" = "no"], [
2686 AC_MSG_ERROR([${AVFORMAT_PKG_ERRORS}. Pass --disable-avformat to ignore this error.])
2689 AM_CONDITIONAL([HAVE_AVFORMAT], [test "${enable_avformat}" != "no"])
2692 dnl swscale image scaling and conversion plugin
2695 AC_ARG_ENABLE([swscale],
2696 AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
2697 (default enabled)]))
2698 if test "${enable_swscale}" != "no"
2700 PKG_CHECK_MODULES(SWSCALE,[libswscale],
2703 CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
2704 CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
2705 AC_CHECK_HEADERS([libswscale/swscale.h])
2706 AC_CHECK_HEADERS([libavutil/avutil.h])
2707 VLC_ADD_PLUGIN([swscale])
2708 VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
2709 VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
2710 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2711 VLC_ADD_LIBS([swscale],[${ac_cv_ld_bsymbolic}])
2715 AC_MSG_ERROR([${SWSCALE_PKG_ERRORS}. Pass --disable-swscale to ignore this error. Proper software scaling and some video chroma conversion will be missing.])
2723 AC_ARG_ENABLE([postproc],
2724 AS_HELP_STRING([--enable-postproc], [libpostproc image post-processing (default auto)]))
2725 if test "${enable_postproc}" != "no"
2727 PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
2730 CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
2731 CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
2732 AC_CHECK_HEADERS([postproc/postprocess.h])
2733 VLC_ADD_PLUGIN([postproc])
2736 AC_MSG_WARN([${POSTPROC_PKG_ERRORS}.])
2741 dnl faad decoder plugin
2743 AC_ARG_ENABLE([faad],
2744 AS_HELP_STRING([--enable-faad], [faad codec (default auto)]))
2746 AS_IF([test "${enable_faad}" != "no"], [
2747 AC_CHECK_HEADERS([neaacdec.h], [
2748 AC_CHECK_LIB([faad], [NeAACDecOpen], [have_faad="yes"],, [$LIBM])
2750 AS_IF([test "${have_faad}" = "yes"], [
2751 VLC_ADD_PLUGIN([faad])
2752 VLC_ADD_LIBS([faad],[-lfaad])
2754 AS_IF([test "${enable_faad}" = "yes"], [
2755 AC_MSG_ERROR([cannot find FAAD library])
2757 AC_MSG_WARN([cannot find FAAD library])
2764 dnl AOM decoder plugin
2766 PKG_ENABLE_MODULES_VLC([AOM], [], [aom], [experimental AV1 codec (default auto)])
2769 dnl Dav1d decoder plugin
2771 PKG_ENABLE_MODULES_VLC([DAV1D], [], [dav1d], [AV1 decoder (default auto)])
2774 dnl libvpx decoder plugin
2776 AC_ARG_ENABLE([vpx],
2777 AS_HELP_STRING([--enable-vpx],[libvpx VP8/VP9 encoder and decoder (default auto)]))
2778 AS_IF([test "${enable_vpx}" != "no"],[
2779 PKG_CHECK_MODULES([VPX], [vpx >= 1.5.0], [
2780 VLC_ADD_PLUGIN([vpx])
2781 VLC_ADD_CPPFLAGS([vpx], [${VPX_CFLAGS}])
2782 VLC_ADD_LIBS([vpx], [${VPX_LIBS}])
2783 AC_CHECK_LIB([vpx],[vpx_codec_vp8_dx], [
2784 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP8_DECODER])
2785 ], [], [${VPX_LIBS}])
2786 AC_CHECK_LIB([vpx],[vpx_codec_vp9_dx], [
2787 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP9_DECODER])
2788 ], [], [${VPX_LIBS}])
2789 AC_CHECK_LIB([vpx],[vpx_codec_vp8_cx], [
2790 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP8_ENCODER])
2791 ], [], [${VPX_LIBS}])
2792 AC_CHECK_LIB([vpx],[vpx_codec_vp9_cx], [
2793 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP9_ENCODER])
2794 ], [], [${VPX_LIBS}])
2796 AS_IF([test "${enable_vpx}" = "yes"],[
2797 AC_MSG_ERROR([libvpx 1.5.0 or higher was not found])
2802 dnl twolame encoder plugin
2804 PKG_ENABLE_MODULES_VLC([TWOLAME], [], [twolame], [MPEG Audio Layer 2 encoder], [auto], [], [], [ -DLIBTWOLAME_STATIC])
2807 dnl fdk-aac encoder plugin
2809 PKG_ENABLE_MODULES_VLC([FDKAAC], [], [fdk-aac], [FDK-AAC encoder], [disabled])
2813 dnl A52/AC3 decoder plugin
2815 AC_ARG_ENABLE([a52],
2816 AS_HELP_STRING([--enable-a52], [A/52 support with liba52 (default enabled)]))
2817 if test "${enable_a52}" != "no"
2820 AS_HELP_STRING([--with-a52=PATH], [a52 headers and libraries]))
2821 if test -z "${with_a52}"
2826 LDFLAGS_test="-L${with_a52}/lib"
2827 CPPFLAGS_test="-I${with_a52}/include"
2830 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_test} ${CPPFLAGS_a52}"
2831 LDFLAGS="${LDFLAGS} ${LDFLAGS_test} ${LIBS_a52}"
2832 AC_CHECK_HEADERS([a52dec/a52.h], [
2833 AC_CHECK_LIB([a52], [a52_free], [
2834 VLC_ADD_PLUGIN([a52])
2835 VLC_ADD_LIBS([a52],[${LDFLAGS_test} -la52 $LIBM])
2836 VLC_ADD_CPPFLAGS([a52],[${CPPFLAGS_test}])
2838 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.])
2841 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.])
2847 dnl DTS Coherent Acoustics decoder plugin
2849 PKG_ENABLE_MODULES_VLC([DCA], [dca], [libdca >= 0.0.5], [DTS Coherent Acoustics support with libdca], [auto])
2854 PKG_ENABLE_MODULES_VLC([FLAC], [], [flac], [libflac decoder/encoder support], [auto])
2859 PKG_ENABLE_MODULES_VLC([LIBMPEG2], [], [libmpeg2 > 0.3.2], [libmpeg2 decoder support], [auto])
2864 PKG_ENABLE_MODULES_VLC([VORBIS], [], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
2869 AC_ARG_ENABLE([tremor],
2870 AS_HELP_STRING([--enable-tremor], [Tremor decoder support (default disabled)]))
2871 if test "${enable_tremor}" = "yes"
2873 AC_CHECK_HEADERS([tremor/ivorbiscodec.h], [
2874 VLC_ADD_PLUGIN([tremor])
2881 PKG_ENABLE_MODULES_VLC([SPEEX], [], [ogg speex >= 1.0.5], [Speex support], [auto])
2883 AS_IF([test "${enable_speex}" != "no"], [
2884 PKG_CHECK_MODULES([SPEEXDSP], [speexdsp], [
2887 AC_MSG_WARN([${SPEEXDSP_PKG_ERRORS}.])
2890 AM_CONDITIONAL([HAVE_SPEEXDSP], [test "$have_speexdsp" = "yes"])
2895 PKG_ENABLE_MODULES_VLC([OPUS], [], [ogg opus >= 1.0.3], [Opus support], [auto])
2898 dnl Ambisonic channel mixer and binauralizer plugin
2900 PKG_ENABLE_MODULES_VLC([SPATIALAUDIO], [], [spatialaudio], [Ambisonic channel mixer and binauralizer], [auto])
2903 dnl theora decoder plugin
2905 PKG_ENABLE_MODULES_VLC([THEORA], [], [ogg theoradec >= 1.0 theoraenc], [experimental theora codec], [auto])
2908 dnl OggSpots decoder plugin
2910 PKG_ENABLE_MODULES_VLC([OGGSPOTS], [], [ogg], [experimental OggSpots codec], [auto])
2913 dnl Daala decoder plugin
2915 PKG_ENABLE_MODULES_VLC([DAALA], [], [daaladec daalaenc], [experimental daala codec], [disabled])
2918 dnl schroedinger decoder plugin (for dirac format video)
2920 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [], [schroedinger-1.0 >= 1.0.10], [dirac decoder and encoder using schroedinger], [auto])
2923 dnl PNG decoder module
2925 AC_ARG_ENABLE([png],
2926 AS_HELP_STRING([--enable-png], [PNG support (default enabled)]))
2927 AS_IF([test "${enable_png}" != "no"], [
2928 AC_CHECK_HEADERS([png.h], [
2930 LDFLAGS="${LDFLAGS} -lz $LIBM"
2931 AC_CHECK_LIB([png], [png_set_alpha_mode], [
2932 VLC_ADD_PLUGIN([png])
2939 dnl JPEG decoder module
2941 AC_ARG_ENABLE([jpeg],
2942 AS_HELP_STRING([--enable-jpeg], [JPEG support (default enabled)]))
2943 AS_IF([test "${enable_jpeg}" != "no"], [
2944 AC_CHECK_HEADERS([jpeglib.h], [
2945 VLC_ADD_PLUGIN([jpeg])
2950 dnl BPG decoder module
2952 AC_ARG_ENABLE([bpg],
2953 AS_HELP_STRING([--enable-bpg], [BPG support (default disabled)]))
2954 AS_IF([test "${enable_bpg}" != "no"], [
2955 AC_CHECK_HEADERS([libbpg.h], [
2956 VLC_ADD_PLUGIN([bpg])
2961 dnl H262 encoder plugin (lib262)
2963 AC_ARG_ENABLE([x262],
2964 AS_HELP_STRING([--enable-x262], [H262 encoding support with static libx262 (default disabled)]))
2965 if test "${enable_x262}" != "no"; then
2966 PKG_CHECK_MODULES(X262, x262, [
2967 VLC_ADD_PLUGIN([x262])
2968 VLC_ADD_LDFLAGS([x262],[${X262_LIBS}])
2969 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2970 VLC_ADD_LIBS([x262],[${av_cv_ld_bsymbolic}])
2972 VLC_ADD_CFLAGS([x262],[${X262_CFLAGS}])
2973 if echo ${X262_LIBS} |grep -q 'pthreadGC2'; then
2974 VLC_ADD_CFLAGS([x262], [-DPTW32_STATIC_LIB])
2977 if test "${enable_x262}" = "yes"; then
2978 AC_MSG_ERROR([x262 module doesn't work without staticly compiled libx262.a])
2984 PKG_ENABLE_MODULES_VLC([X265],, [x265], [HEVC/H.265 encoder], [auto])
2987 dnl H264 encoder plugin (using libx264)
2989 AC_ARG_ENABLE([x264],
2990 AS_HELP_STRING([--enable-x264], [H264 encoding support with libx264 (default enabled)]))
2991 if test "${enable_x264}" != "no"; then
2992 PKG_CHECK_MODULES(X264,x264 >= 0.148, [
2993 VLC_ADD_PLUGIN([x264])
2994 VLC_ADD_LIBS([x264],[${X264_LIBS}])
2996 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2997 VLC_ADD_LDFLAGS([x264],[${ac_cv_ld_bsymbolic}])
3000 VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3001 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3002 VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3005 if test "${enable_x264}" = "yes"; then
3006 AC_MSG_ERROR([${X264_PKG_ERRORS}: you may get it from http://www.videolan.org/x264.html])
3012 dnl H264 encoder plugin (libx264 > 153)
3014 AC_ARG_ENABLE([x26410b],
3015 AS_HELP_STRING([--enable-x26410b], [H264 10-bit encoding support with libx264 (default enabled)]))
3016 if test "${enable_x26410b}" != "no"; then
3017 PKG_CHECK_MODULES(X26410b,x264 >= 0.153, [
3018 VLC_ADD_PLUGIN([x26410b])
3019 VLC_ADD_LIBS([x26410b],[${X264_LIBS}])
3021 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
3022 VLC_ADD_LDFLAGS([x26410b],[${ac_cv_ld_bsymbolic}])
3025 VLC_ADD_CFLAGS([x26410b],[${X264_CFLAGS}])
3026 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3027 VLC_ADD_CFLAGS([x26410b], [-DPTW32_STATIC_LIB])
3030 if test "${enable_x26410b}" = "yes"; then
3031 AC_MSG_ERROR([${X264_PKG_ERRORS}: you may get it from http://www.videolan.org/x264.html])
3038 dnl Intel QuickSync (aka MediaSDK) H264/H262 encoder
3040 PKG_ENABLE_MODULES_VLC([MFX], [qsv], [libmfx], [Intel QuickSync MPEG4-Part10/MPEG2 (aka H.264/H.262) encoder], [auto])
3043 dnl libfluidsynth (MIDI synthetizer) plugin
3045 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [], [fluidsynth >= 1.1.2], [MIDI synthetiser with libfluidsynth], [auto])
3046 PKG_ENABLE_MODULES_VLC([FLUIDLITE], [fluidsynth], [fluidlite], [MIDI synthetiser with libfluidsynth], [auto])
3047 AC_CHECK_HEADERS([fluidlite.h], [AC_SUBST([FLUIDSYNTH_LIBS], ${FLUIDLITE_LIBS})])
3050 dnl Teletext Modules
3051 dnl vbi decoder plugin (using libzbvi)
3055 AC_ARG_ENABLE([zvbi],
3056 AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
3057 libzvbi (default enabled)]))
3058 AC_ARG_ENABLE([telx],
3059 AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
3060 zvbi) (default enabled if zvbi is absent)]))
3062 AS_IF( [test "${enable_zvbi}" != "no"],[
3063 PKG_CHECK_MODULES(ZVBI, [zvbi-0.2 >= 0.2.28],
3065 VLC_ADD_PLUGIN([zvbi])
3066 AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
3067 AS_IF( [test "${enable_telx}" = "yes"],[
3068 AC_MSG_WARN([The zvbi and telx modules are incompatible. Using zvbi.])
3071 AC_MSG_WARN([${ZVBI_PKG_ERRORS}. Enabling the telx module instead.])
3074 AS_IF( [test "${enable_telx}" != "no" ],[
3075 VLC_ADD_PLUGIN([telx])
3079 dnl ARIB subtitles rendering module
3081 AC_ARG_ENABLE([aribsub],
3082 AS_HELP_STRING([--enable-aribsub],[ARIB Subtitles support (default enabled)]))
3083 AS_IF( [test "${enable_aribsub}" != "no" ],[
3084 PKG_CHECK_MODULES(ARIBB24, [aribb24 >= 1.0.1], [
3086 VLC_ADD_PLUGIN([aribsub])
3087 VLC_ADD_LIBS([aribsub],[-laribb24])
3088 AC_DEFINE(HAVE_ARIBB24, 1, [Define if libaribb24 is available.])
3090 AC_MSG_WARN(Library [aribb24] needed for [aribsub] was not found)
3094 AM_CONDITIONAL([HAVE_ARIBB24], [test x"${have_aribb24}" = x"yes"])
3099 PKG_ENABLE_MODULES_VLC([ARIBB25], [aribcam], [aribb25 >= 0.2.6], [ARIB STD-B25], [auto])
3102 dnl kate decoder plugin
3104 PKG_ENABLE_MODULES_VLC([KATE], [], [kate >= 0.3.0], [kate codec], [auto])
3107 dnl tiger rendering for kate decoder plugin
3109 AC_ARG_ENABLE([tiger],
3110 AS_HELP_STRING([--enable-tiger], [Tiger rendering library for Kate streams (default auto)]))
3111 AS_IF([test "${enable_tiger}" != "no"], [
3112 PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
3113 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])],[
3114 AS_IF([test -n "${enable_tiger}"], [
3115 AC_MSG_ERROR([${TIGER_PKG_ERRORS}.])
3121 dnl check if we can build the css selector engine
3123 AC_ARG_ENABLE([css],
3124 AS_HELP_STRING([--enable-css], [CSS selector engine (default auto)]))
3125 AS_IF([test "${enable_css}" != "no"], [
3127 AC_DEFINE(HAVE_CSS, 1, [Define if CSS engine is built])
3129 AM_CONDITIONAL([ENABLE_CSS], [test "${with_css}" = "yes"])
3136 EXTEND_HELP_STRING([Video plugins:])
3139 dnl libplacebo support
3141 AC_ARG_ENABLE([libplacebo],
3142 AS_HELP_STRING([--disable-libplacebo],
3143 [disable libplacebo support (default auto)]))
3145 AS_IF([test "$enable_libplacebo" != "no"], [
3146 PKG_CHECK_MODULES([LIBPLACEBO], [libplacebo >= 0.5], [
3147 AC_DEFINE([HAVE_LIBPLACEBO], [1], [Define to 1 if libplacebo is enabled.])
3148 PKG_CHECK_MODULES([LIBPLACEBO], [libplacebo >= 1.7],
3149 [have_libplacebo_vk="yes"], [have_libplacebo_vk="no"])
3151 AS_IF([test -n "${enable_libplacebo}"], [
3152 AC_MSG_ERROR([${LIBPLACEBO_PKG_ERRORS}.])
3154 enable_libplacebo="no"
3157 AM_CONDITIONAL([HAVE_LIBPLACEBO], [test "$enable_libplacebo" != "no"])
3162 PKG_CHECK_MODULES([EGL], [egl], [
3167 AM_CONDITIONAL([HAVE_EGL], [test "${have_egl}" = "yes"])
3170 PKG_CHECK_MODULES([GL], [gl], [
3173 AC_MSG_CHECKING([for OpenGL])
3174 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
3176 # include <GL/glew.h>
3180 [int t0 = GL_TEXTURE0;]])
3184 AS_IF([test "${SYS}" != "mingw32"], [
3187 GL_LIBS="-lopengl32"
3190 AC_MSG_RESULT([${have_gl}])
3192 AM_CONDITIONAL([HAVE_GL], [test "${have_gl}" = "yes"])
3193 AS_IF([test "${have_gl}" = "yes"], [
3194 AC_DEFINE([HAVE_GL], 1, [Defined if having OpenGL])
3197 dnl OpenGL ES 2: depends on EGL 1.1
3198 PKG_ENABLE_MODULES_VLC([GLES2], [], [glesv2], [OpenGL ES v2 support], [disabled])
3203 AC_ARG_ENABLE(vulkan,
3204 [AS_HELP_STRING([--disable-vulkan],
3205 [disable Vulkan support (default auto)])])
3207 AS_IF([test "$enable_vulkan" != "no"], [
3208 AS_IF([test "$have_libplacebo_vk" = "yes"], [
3209 PKG_CHECK_MODULES([VULKAN], [vulkan >= 1.0.26], [
3210 AC_DEFINE([HAVE_VULKAN], [1], [Define to 1 if vulkan is enabled.])
3212 AS_IF([test -n "${enable_vulkan}"], [
3213 AC_MSG_ERROR([${VULKAN_PKG_ERRORS}.])
3218 AS_IF([test -n "${enable_vulkan}"], [
3219 AC_MSG_ERROR([Vulkan support requires libplacebo 1.7 as well. Do not use --disable-libplacebo.])
3224 AM_CONDITIONAL(HAVE_VULKAN, [test "$enable_vulkan" != "no"])
3231 AC_CHECK_HEADERS([X11/Xlib.h])
3234 dnl X C Bindings modules
3236 AC_ARG_ENABLE([xcb],
3237 AS_HELP_STRING([--enable-xcb], [X11 support with XCB (default enabled)]),, [
3238 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "darwin"], [
3246 have_xkbcommon_x11="no"
3247 have_xcb_keysyms="no"
3248 AS_IF([test "${enable_xcb}" != "no"], [
3252 PKG_CHECK_MODULES([XCB], [xcb >= 1.6],, [
3253 xcb_err="$xcb_err ${XCB_PKG_ERRORS}."])
3254 PKG_CHECK_MODULES([XCB_COMPOSITE], [xcb-composite],, [
3255 xcb_err="$xcb_err ${XCB_COMPOSITE_PKG_ERRORS}."])
3256 PKG_CHECK_MODULES([XCB_RANDR], [xcb-randr >= 1.3],, [
3257 xcb_err="$xcb_err ${XCB_RANDR_PKG_ERRORS}."])
3258 PKG_CHECK_MODULES([XCB_RENDER], [xcb-render],, [
3259 xcb_err="$xcb_err ${XCB_RENDER_PKG_ERRORS}."])
3260 PKG_CHECK_MODULES([XCB_SHM], [xcb-shm >= 1.9.2],, [
3261 xcb_err="$xcb_err ${XCB_SHM_PKG_ERRORS}."])
3262 PKG_CHECK_MODULES([XCB_XKB], [xcb-xkb],, [
3263 xcb_err="$xcb_err ${XCB_XKB_PKG_ERRORS}."])
3266 PKG_CHECK_MODULES(XPROTO, [xproto],, [
3267 xcb_err="$xcb_err ${XPROTO_PKG_ERRORS}."])
3269 AS_IF([test -n "$xcb_err"], [
3270 AC_MSG_ERROR([$xcb_err Pass --disable-xcb to skip X11 support.])
3274 PKG_CHECK_MODULES([XKBCOMMON_X11], [xkbcommon-x11], [
3275 have_xkbcommon_x11="yes"
3277 AC_MSG_WARN([${XKBCOMMON_X11_PKG_ERRORS}. Hotkeys are disabled.])
3281 PKG_CHECK_MODULES([XCB_KEYSYMS], [xcb-keysyms >= 0.3.4], [
3282 have_xcb_keysyms="yes"
3284 AC_MSG_WARN([${XCB_KEYSYMS_PKG_ERRORS}. Global hotkeys are disabled.])
3289 AM_CONDITIONAL([HAVE_XCB], [test "${have_xcb}" = "yes"])
3290 AM_CONDITIONAL([HAVE_XKBCOMMON_X11], [test "${have_xkbcommon_x11}" = "yes"])
3291 AM_CONDITIONAL([HAVE_XCB_KEYSYMS], [test "${have_xcb_keysyms}" = "yes"])
3297 AC_ARG_ENABLE([vdpau],
3298 [AS_HELP_STRING([--enable-vdpau], [VDPAU hardware support (default auto)])])
3300 AS_IF([test "${enable_vdpau}" != "no"], [
3301 PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.6], [
3303 AS_IF([test "${no_x}" = "yes"], [
3304 AC_MSG_ERROR([VDPAU requires Xlib (X11).])
3307 AS_IF([test -n "${enable_vdpau}"], [
3308 AC_MSG_ERROR([${VDPAU_PKG_ERRORS}.])
3312 AM_CONDITIONAL([HAVE_VDPAU], [test "${have_vdpau}" = "yes"])
3314 have_avcodec_vdpau="no"
3315 AS_IF([test "${have_vdpau}" = "yes" -a "${have_avcodec}" = "yes"], [
3317 libav) av_vdpau_ver="56.10.0" ;;
3318 ffmpeg) av_vdpau_ver="56.19.100" ;;
3320 PKG_CHECK_EXISTS([libavcodec >= ${av_vdpau_ver}], [
3321 have_avcodec_vdpau="yes"
3322 AC_MSG_NOTICE([VDPAU decoding acceleration activated])
3324 AS_IF([test -n "${enable_vdpau}"], [
3325 AC_MSG_ERROR([libavcodec >= 56.10.0 is required for VDPAU decoding.])
3327 AC_MSG_WARN([libavcodec >= 56.10.0 are required for VDPAU decoding.])
3331 AM_CONDITIONAL([HAVE_AVCODEC_VDPAU], [test "${have_avcodec_vdpau}" = "yes"])
3337 AC_ARG_ENABLE([wayland],
3338 AS_HELP_STRING([--enable-wayland], [Wayland support (default auto)]))
3341 AS_IF([test "${enable_wayland}" != "no"], [
3345 PKG_CHECK_MODULES([WAYLAND_CLIENT], [wayland-client >= 1.5.91],, [
3346 wl_err="$wl_err ${WAYLAND_CLIENT_PKG_ERRORS}."
3348 PKG_CHECK_MODULES([WAYLAND_CURSOR], [wayland-cursor],, [
3349 wl_err="$wl_err ${WAYLAND_CURSOR_PKG_ERRORS}."
3351 PKG_CHECK_MODULES([WAYLAND_EGL], [wayland-egl],, [
3352 wl_err="$wl_err ${WAYLAND_EGL_PKG_ERRORS}."
3354 PKG_CHECK_MODULES([WAYLAND_SCANNER], [wayland-scanner >= 1.15], [
3355 WAYLAND_SCANNER="$(${PKG_CONFIG} wayland-scanner --variable wayland_scanner)"
3357 wl_err="$wl_err ${WAYLAND_SCANNER_PKG_ERRORS}."
3360 dnl wayland-protocols
3361 PKG_CHECK_MODULES([WAYLAND_PROTOCOLS], [wayland-protocols >= 1.15], [
3362 WAYLAND_PROTOCOLS="$(${PKG_CONFIG} wayland-protocols --variable pkgdatadir)"
3364 wl_err="$wl_err ${WAYLAND_PROTOCOLS_PKG_ERRORS}."
3367 AS_IF([test -n "$wl_err"], [
3368 AS_IF([test -n "$enable_wayland"], [
3369 AC_MSG_ERROR([$wl_err])
3371 AC_MSG_WARN([$wl_err])
3378 PKG_CHECK_MODULES([XKBCOMMON], [xkbcommon], [
3379 have_xkbcommon="yes"
3381 AC_MSG_WARN([${XKBCOMMON_PKG_ERRORS}. Hotkeys are disabled.])
3384 AM_CONDITIONAL([HAVE_WAYLAND], [test "${have_wayland}" = "yes"])
3385 AC_SUBST([WAYLAND_PROTOCOLS])
3386 AC_SUBST([WAYLAND_SCANNER])
3387 AM_CONDITIONAL([HAVE_XKBCOMMON], [test "${have_xkbcommon}" = "yes"])
3391 dnl SDL image decoder module
3393 AC_ARG_ENABLE([sdl-image],
3394 AS_HELP_STRING([--enable-sdl-image], [SDL image support (default enabled)]))
3395 AS_IF([test "${enable_sdl_image}" != "no"],[
3396 PKG_CHECK_MODULES(SDL_IMAGE, [SDL_image >= 1.2.10], [
3397 VLC_ADD_PLUGIN([sdl_image])
3399 AC_MSG_WARN([${SDL_IMAGE_PKG_ERRORS}. You should install it alongside your SDL package.])
3406 AC_ARG_ENABLE([freetype],
3407 AS_HELP_STRING([--enable-freetype], [freetype support (default auto)]))
3408 AC_ARG_ENABLE([fribidi],
3409 AS_HELP_STRING([--enable-fribidi], [fribidi support (default auto)]))
3410 AC_ARG_ENABLE([harfbuzz],
3411 AS_HELP_STRING([--enable-harfbuzz], [harfbuzz support (default auto)]))
3412 AC_ARG_ENABLE([fontconfig],
3413 AS_HELP_STRING([--enable-fontconfig], [fontconfig support (default auto)]))
3415 AC_ARG_WITH([default-font],
3416 AS_HELP_STRING([--with-default-font=PATH],
3417 [Path to the default font]),
3418 [AC_DEFINE_UNQUOTED([DEFAULT_FONT_FILE],
3419 "$withval", [Default font])])
3420 AC_ARG_WITH([default-monospace-font],
3421 AS_HELP_STRING([--with-default-monospace-font=PATH],
3422 [Path to the default font]),
3423 [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FONT_FILE],
3424 "$withval", [Default monospace font])])
3426 AC_ARG_WITH([default-font-family],
3427 AS_HELP_STRING([--with-default-font-family=NAME],
3428 [Name of the default font family]),
3429 [AC_DEFINE_UNQUOTED([DEFAULT_FAMILY],
3430 "$withval", [Default font family])])
3431 AC_ARG_WITH([default-monospace-font-family],
3432 AS_HELP_STRING([--with-default-monospace-font-family=NAME],
3433 [Name of the default font family]),
3434 [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FAMILY],
3435 "$withval", [Default monospace font family])])
3438 have_fontconfig="no"
3442 if test "${enable_freetype}" != "no"; then
3443 PKG_CHECK_MODULES(FREETYPE, freetype2, [
3445 VLC_ADD_CPPFLAGS([skins2],[${FREETYPE_CFLAGS}])
3446 VLC_ADD_LIBS([skins2],[${FREETYPE_LIBS}])
3448 dnl fontconfig support
3449 AS_IF([test "${enable_fontconfig}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "darwin"], [
3450 PKG_CHECK_MODULES(FONTCONFIG, [fontconfig >= 2.11], [
3451 have_fontconfig="yes"
3453 AC_MSG_WARN([${FONTCONFIG_PKG_ERRORS}. Styles will be disabled in FreeType.])
3458 if test "${enable_fribidi}" != "no"; then
3459 PKG_CHECK_MODULES(FRIBIDI, fribidi, [
3461 VLC_ADD_CPPFLAGS([skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
3462 VLC_ADD_LIBS([skins2], [${FRIBIDI_LIBS}])
3463 ],[AC_MSG_WARN([${FRIBIDI_PKG_ERRORS}. Bidirectional text and complex scripts (Arabic, Farsi, Thai...) will be disabled in FreeType.])])
3466 dnl harfbuzz support
3467 if test "${have_fribidi}" != "no"; then
3468 if test "${enable_harfbuzz}" != "no"; then
3469 PKG_CHECK_MODULES(HARFBUZZ, harfbuzz, [
3471 VLC_ADD_CPPFLAGS([skins2], [${HARFBUZZ_CFLAGS} -DHAVE_HARFBUZZ])
3472 VLC_ADD_LIBS([skins2], [${HARFBUZZ_LIBS}])
3473 ],[AC_MSG_WARN([${HARFBUZZ_PKG_ERRORS}. Support for complex scripts (Arabic, Farsi, Thai...) will be disabled in FreeType.])])
3477 AS_IF([test -n "${enable_freetype}"],[
3478 AC_MSG_ERROR([${FREETYPE_PKG_ERRORS}. Install FreeType2 development or configure with --disable-freetype.])
3483 AM_CONDITIONAL([HAVE_FREETYPE], [test "${have_freetype}" = "yes"])
3484 AM_CONDITIONAL([HAVE_FONTCONFIG], [test "${have_fontconfig}" = "yes"])
3485 AM_CONDITIONAL([HAVE_FRIBIDI], [test "${have_fribidi}" = "yes"])
3486 AM_CONDITIONAL([HAVE_HARFBUZZ], [test "${have_harfbuzz}" = "yes"])
3489 dnl libass subtitle rendering module
3491 AC_ARG_ENABLE([libass],
3492 AS_HELP_STRING([--enable-libass], [Subtitle support using libass (default enabled)]))
3493 AS_IF( [test "${enable_libass}" != "no"], [
3494 PKG_CHECK_MODULES(LIBASS, [libass >= 0.9.8],
3496 VLC_ADD_PLUGIN([libass])
3498 if test "${have_fontconfig}" != "no"; then
3499 VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
3500 VLC_ADD_LIBS([libass],[${FONTCONFIG_LIBS}])
3503 AC_MSG_WARN([${LIBASS_PKG_ERRORS}.])
3508 dnl SAPI (text to Speech renderer for Windows)
3511 AC_CHECK_TYPES([ISpObjectToken],[
3513 ],[AC_MSG_WARN([sapi.h not found. Text to Speech renderer for Windows disabled])],
3514 [#include <windows.h>
3516 #include <sphelper.h>])
3517 AM_CONDITIONAL([HAVE_SAPI], [test "${have_sapi}" = "yes"])
3521 dnl SVG module (text rendering and image decoding)
3523 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3524 PKG_ENABLE_MODULES_VLC([SVGDEC], [], [librsvg-2.0 >= 2.9.0 cairo >= 1.13.1], [SVG image decoder library],[auto])
3527 dnl Windows DirectX module
3530 AC_ARG_ENABLE([directx],
3531 AS_HELP_STRING([--enable-directx],
3532 [Microsoft DirectX support (default enabled on Windows)]),, [
3533 AS_IF([test "${SYS}" = "mingw32"], [
3534 enable_directx="yes"
3539 AS_IF([test "${enable_directx}" != "no"], [
3541 AC_CHECK_HEADERS([GL/glew.h], [
3542 AC_CHECK_HEADERS([GL/wglew.h], [
3543 VLC_ADD_PLUGIN([glwin32 wgl])
3545 #include <windows.h>
3546 #include <GL/glew.h>
3548 #include <windows.h>
3552 AC_CHECK_HEADERS([d3d11.h], [
3553 VLC_ADD_PLUGIN([direct3d11 direct3d11_filters])
3557 AC_CHECK_HEADERS([d3d9.h], [
3558 VLC_ADD_PLUGIN([direct3d9])
3559 AC_CHECK_HEADERS([d3dx9effect.h])
3561 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
3562 [[#define COBJMACROS
3564 #include <dxva2api.h>
3565 #ifndef IDirectXVideoProcessorService_GetVideoProcessorDeviceGuids
3566 # error dxva2 too old
3570 VLC_ADD_PLUGIN([direct3d9_filters])
3572 [AC_MSG_WARN([Could not find required IDirectXVideoDecoder in dxva2api.h])])
3578 dnl Linux framebuffer module
3580 AC_CHECK_HEADER([linux/fb.h], [
3581 VLC_ADD_PLUGIN([fb])
3585 dnl Linux kernel mode setting module
3587 PKG_ENABLE_MODULES_VLC([KMS], [], [libdrm >= 2.4.83], [Linux kernel mode setting output], [auto])
3592 PKG_ENABLE_MODULES_VLC([CACA], [], [caca >= 0.99.beta14], [libcaca output],[auto])
3597 AC_ARG_ENABLE([kva],
3598 AS_HELP_STRING([--enable-kva],
3599 [support the K Video Accelerator KVA (default enabled on OS/2)]),, [
3600 AS_IF([test "$SYS" = "os2"], [
3606 AS_IF([test "$enable_kva" != "no"], [
3607 AC_CHECK_HEADERS([kva.h], [
3609 AC_CHECK_LIB([kva], [main], [
3614 AC_SUBST([KVA_LIBS])
3615 AM_CONDITIONAL([HAVE_KVA], [test "${have_kva}" = "yes"])
3620 AC_ARG_ENABLE([mmal],
3621 AS_HELP_STRING([--enable-mmal],
3622 [Multi-Media Abstraction Layer (MMAL) hardware plugin (default enable)]))
3623 if test "${enable_mmal}" != "no"; then
3625 LDFLAGS="${LDFLAGS} -L/opt/vc/lib -lvchostif"
3626 CPPFLAGS="${CPPFLAGS} -isystem /opt/vc/include -isystem /opt/vc/include/interface/vcos/pthreads -isystem /opt/vc/include/interface/vmcs_host/linux"
3627 AC_CHECK_HEADERS([interface/mmal/mmal.h],
3628 [ AC_CHECK_LIB([bcm_host], [vc_tv_unregister_callback_full], [
3630 VLC_ADD_PLUGIN([mmal])
3631 VLC_ADD_LDFLAGS([mmal],[ -L/opt/vc/lib ])
3632 VLC_ADD_CFLAGS([mmal],[ -isystem /opt/vc/include -isystem /opt/vc/include/interface/vcos/pthreads -isystem /opt/vc/include/interface/vmcs_host/linux ])
3633 VLC_ADD_LIBS([mmal],[ -lbcm_host -lmmal -lmmal_core -lmmal_components -lmmal_util -lvchostif ]) ], [
3634 AS_IF([test "${enable_mmal}" = "yes"],
3635 [ AC_MSG_ERROR([Cannot find bcm library...]) ],
3636 [ AC_MSG_WARN([Cannot find bcm library...]) ])
3639 ] , [ AS_IF([test "${enable_mmal}" = "yes"],
3640 [ AC_MSG_ERROR([Cannot find development headers for mmal...]) ],
3641 [ AC_MSG_WARN([Cannot find development headers for mmal...]) ]) ])
3644 AM_CONDITIONAL([HAVE_MMAL], [test "${have_mmal}" = "yes"])
3650 EXTEND_HELP_STRING([Audio plugins:])
3653 dnl Pulseaudio module
3655 AC_ARG_ENABLE([pulse],
3656 AS_HELP_STRING([--enable-pulse],
3657 [use the PulseAudio client library (default auto)]))
3659 AS_IF([test "${enable_pulse}" != "no"], [
3660 PKG_CHECK_MODULES([PULSE], [libpulse >= 1.0], [
3663 AS_IF([test "x${enable_pulse}" != "x"], [
3664 AC_MSG_ERROR([$PULSE_PKG_ERRORS. PulseAudio 1.0 or later required.])
3668 AM_CONDITIONAL([HAVE_PULSE], [test "${have_pulse}" = "yes"])
3673 AC_ARG_ENABLE([alsa],
3674 AS_HELP_STRING([--enable-alsa],
3675 [support the Advanced Linux Sound Architecture (default auto)]),, [
3676 AS_IF([test "$SYS" = "linux" -a "${have_pulse}" = "no"], [
3681 AS_IF([test "${enable_alsa}" != "no"], [
3682 PKG_CHECK_MODULES([ALSA], [alsa >= 1.0.24], [
3685 AS_IF([test "x${enable_alsa}" != "x"], [
3686 AC_MSG_ERROR([$ALSA_PKG_ERRORS. alsa-lib 1.0.24 or later required. Pass --disable-alsa to ignore this error.])
3690 AM_CONDITIONAL([HAVE_ALSA], [test "${have_alsa}" = "yes"])
3693 dnl Open Sound System module
3695 AC_ARG_ENABLE([oss],
3696 AS_HELP_STRING([--enable-oss],
3697 [support the Open Sound System OSS (default enabled on FreeBSD/NetBSD/DragonFlyBSD)]),, [
3698 AS_IF([test "$SYS" = "mingw32" -o "$SYS" = "linux" -o "$SYS" = "openbsd"], [
3704 AS_IF([test "$enable_oss" != "no"], [
3705 AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
3707 AC_CHECK_LIB([ossaudio], [main], [
3708 OSS_LIBS="-lossaudio"
3712 AC_SUBST([OSS_LIBS])
3713 AM_CONDITIONAL([HAVE_OSS], [test "${have_oss}" = "yes"])
3716 dnl OpenBSD sndio module
3718 AC_ARG_ENABLE([sndio],
3719 AS_HELP_STRING([--disable-sndio],
3720 [support the OpenBSD sndio (default auto)]),, [
3721 AS_IF([test "$SYS" = "openbsd"], [
3726 AS_IF([test "$enable_sndio" != "no"], [
3727 AC_CHECK_HEADER([sndio.h], [
3731 AM_CONDITIONAL([HAVE_SNDIO], [test "${have_sndio}" = "yes"])
3734 dnl Windows Audio Session plugin
3736 AC_ARG_ENABLE([wasapi],
3737 AS_HELP_STRING([--enable-wasapi],
3738 [use the Windows Audio Session API (default auto)])
3741 AS_IF([test "$enable_wasapi" != "no"], [
3742 AC_CHECK_HEADER([audioclient.h], [
3745 AS_IF([test "x${enable_wasapi}" != "x"], [
3746 AC_MSG_ERROR([Windows Audio Session API not found.])
3750 AM_CONDITIONAL([HAVE_WASAPI], [test "${have_wasapi}" = "yes"])
3755 AC_ARG_ENABLE([jack],
3756 AS_HELP_STRING([--disable-jack],
3757 [do not use jack (default auto)]))
3759 AS_IF([test "${enable_jack}" != "no"], [
3760 PKG_CHECK_MODULES(JACK, jack >= 1.9.7,
3763 AC_MSG_WARN([${JACK_PKG_ERRORS}, trying jack1 instead])
3765 PKG_CHECK_MODULES(JACK, jack >= 0.120.1 jack < 1.0,
3768 AS_IF([test -n "${enable_jack}"],
3769 [AC_MSG_ERROR([${JACK_PKG_ERRORS}.])],
3770 [AC_MSG_WARN([${JACK_PKG_ERRORS}.])])
3774 AM_CONDITIONAL([HAVE_JACK], [test "${have_jack}" != "no"])
3777 dnl OpenSLES Android
3779 AC_ARG_ENABLE([opensles],
3780 AS_HELP_STRING([--enable-opensles], [Android OpenSL ES audio module (default disabled)]))
3781 if test "${HAVE_ANDROID}" = "1"; then
3782 if test "${enable_opensles}" = "yes"; then
3783 AC_CHECK_HEADERS([SLES/OpenSLES.h],
3784 [ VLC_ADD_PLUGIN([opensles_android]) ],
3785 [ AC_MSG_ERROR([cannot find OpenSLES headers])] )
3790 dnl libsamplerate plugin
3792 PKG_ENABLE_MODULES_VLC([SAMPLERATE], [], [samplerate], [Resampler with libsamplerate], [auto])
3797 PKG_ENABLE_MODULES_VLC([SOXR], [], [soxr >= 0.1.2], [SoX Resampler library], [auto])
3802 AC_ARG_ENABLE([kai],
3803 AS_HELP_STRING([--enable-kai],
3804 [support the K Audio Interface KAI (default enabled on OS/2)]),, [
3805 AS_IF([test "$SYS" = "os2"], [
3811 AS_IF([test "$enable_kai" != "no"], [
3812 AC_CHECK_HEADERS([kai.h], [
3814 AC_CHECK_LIB([kai], [main], [
3819 AC_SUBST([KAI_LIBS])
3820 AM_CONDITIONAL([HAVE_KAI], [test "${have_kai}" = "yes"])
3823 dnl chromaprint audio track fingerprinter
3825 m4_pushdef([libchromaprint_version], 0.6.0)
3826 PKG_WITH_MODULES([CHROMAPRINT],[libchromaprint >= libchromaprint_version],
3827 VLC_ADD_PLUGIN([stream_out_chromaprint]),
3828 AS_IF([test "${enable_chromaprint}" = "yes"],
3829 [AC_MSG_ERROR(Library [libchromaprint >= libchromaprint_version] needed for [chromaprint] was not found)],
3830 [AC_MSG_WARN(Library [libchromaprint >= libchromaprint_version] needed for [chromaprint] was not found)]
3832 [(Chromaprint based audio fingerprinter)],[auto])
3833 m4_popdef([libchromaprint_version])
3836 dnl Chromecast streaming support
3838 m4_pushdef([protobuf_lite_version], 2.5.0)
3839 AC_ARG_VAR(PROTOC, [protobuf compiler])
3840 AC_CHECK_PROGS(PROTOC, protoc, no)
3841 PKG_WITH_MODULES([CHROMECAST],[protobuf-lite >= protobuf_lite_version], [
3842 AS_IF([test "x${PROTOC}" != "xno"], [
3843 build_chromecast="yes"
3845 AC_MSG_ERROR(protoc compiler needed for [chromecast] was not found)
3848 AS_IF([test "${enable_chromecast}" = "yes"],
3849 AC_MSG_ERROR(Library [protobuf-lite >= protobuf_lite_version] needed for [chromecast] was not found),
3850 AC_MSG_WARN(Library [protobuf-lite >= protobuf_lite_version] needed for [chromecast] was not found)
3852 enable_chromecast="no"
3853 ], [(Chromecast streaming support)], [auto])
3854 AM_CONDITIONAL([BUILD_CHROMECAST], [test "${build_chromecast}" = "yes"])
3855 m4_popdef([protobuf_lite_version])
3858 dnl Interface plugins
3861 EXTEND_HELP_STRING([Interface plugins:])
3867 AS_HELP_STRING([--disable-qt], [Qt UI support (default enabled)]),, [
3868 AS_IF([test "${enable_vlc}" != "no"], [enable_qt="yes"])
3869 AS_IF([test "${SYS}" = "darwin"], [
3874 AS_IF([test "${enable_qt}" != "no"], [
3875 PKG_CHECK_MODULES([QT], [Qt5Core >= 5.11.0 Qt5Widgets Qt5Gui Qt5Quick Qt5QuickWidgets Qt5QuickControls2 Qt5Svg], [
3876 PKG_CHECK_MODULES([QT5_X11], [Qt5X11Extras], [
3879 AC_MSG_WARN([Not building Qt Interface with X11 helpers.])
3881 QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix Qt5Core)"
3882 QT_HOST_PATH="$(eval $PKG_CONFIG --variable=host_bins Qt5Core)"
3883 QT_VERSION="$(eval $PKG_CONFIG --modversion Qt5Gui)"
3884 AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3885 AC_PATH_PROGS(RCC, [rcc-qt5 rcc], rcc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3886 AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3887 AC_PATH_PROGS(QMLCACHE, [qmlcachegen-qt5 qmlcachegen], no, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3888 AS_IF([test "x${QMLCACHE}" = "xno"], [
3889 AC_MSG_WARN([qmlcachegen not found])
3892 AS_IF([test -n "${enable_qt}"],[
3893 AC_MSG_ERROR([${QT_PKG_ERRORS}. If you want to build VLC without GUI, pass --disable-qt.])
3895 AC_MSG_WARN([${QT_PKG_ERRORS}.])
3901 AC_ARG_ENABLE([qt-qml-cache],
3902 AS_HELP_STRING([--enable-qt-qml-cache],
3903 [enable qml cache generation]))
3904 AM_CONDITIONAL([HAVE_QMLCACHE], [test "${enable_qt_qml_cache}" = "yes" && "x$QMLCACHE" != "xno"])
3906 AC_ARG_ENABLE([qt-qml-debug],
3907 AS_HELP_STRING([--enable-qt-qml-debug], [enable qml debuger]))
3908 AM_CONDITIONAL(QT_QML_DEBUG, [test "${enable_qt_qml_debug}" = "yes"])
3910 AS_IF([test "${enable_qt}" != "no"], [
3911 ALIASES="${ALIASES} qvlc"
3913 AC_SUBST([QT_VERSION])
3914 AM_CONDITIONAL([ENABLE_QT], [test "$enable_qt" != "no"])
3915 AM_CONDITIONAL([HAVE_QT5_X11], [test "${have_qt5_x11}" = "yes"])
3918 dnl detect kde4-config patch (used for kde solids).
3920 AC_ARG_VAR([KDE4_CONFIG], [kde4-config utility])
3921 AS_IF([test "x$KDE4_CONFIG" = "x"], [
3922 KDE4_CONFIG="kde4-config"
3926 dnl Simple test for skins2 dependency
3928 AS_IF([test "$enable_qt" = "no"], [
3929 AS_IF([test "${enable_skins2}" = "yes"], [
3930 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.])
3933 AC_MSG_WARN([The skins2 module depends on the Qt interface, Qt is not built so skins2 is disabled.])
3940 AC_ARG_ENABLE([skins2],
3941 AS_HELP_STRING([--enable-skins2], [skins interface module (default auto)]))
3942 AS_IF([test "${enable_skins2}" != "no"], [
3943 have_skins_deps="yes"
3946 AS_IF([test "${SYS}" = "mingw32"], [
3947 VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -DWIN32_SKINS])
3948 VLC_ADD_LIBS([skins2],[-lgdi32 -lole32 -luuid -lmsimg32])
3950 ], [test "${SYS}" = "os2"], [
3951 VLC_ADD_CPPFLAGS([skins2],[ -DOS2_SKINS])
3954 PKG_CHECK_MODULES([XPM], [xpm],, [have_skins_deps="no"])
3955 PKG_CHECK_MODULES([XINERAMA], [xinerama],, [have_skins_deps="no"])
3956 PKG_CHECK_MODULES([XCURSOR], [xcursor],, [have_skins_deps="no"])
3957 PKG_CHECK_MODULES([XEXT], [xext],, [have_skins_deps="no"])
3958 VLC_ADD_CPPFLAGS([skins2],[${X_CFLAGS} ${XEXT_CFLAGS} ${XPM_CFLAGS} -DX11_SKINS])
3959 VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} ${XEXT_LIBS} ${XPM_LIBS} ${XINERAMA_LIBS} ${XCURSOR_LIBS} -lX11])
3962 dnl we need freetype
3963 AS_IF([test "${have_freetype}" != "yes"], [
3964 have_skins_deps="no"
3967 AS_IF([test "${have_skins_deps}" = "no"], [
3968 AS_IF([test "x${enable_skins2}" = "x"], [
3969 AC_MSG_WARN([Skins2 interface disabled due to missing dependencies.])
3971 AC_MSG_ERROR([Skins2 interface requires FreeType, libxcursor, libxpm, libxext and libxinerama])
3975 ALIASES="${ALIASES} svlc"
3980 AS_IF([test "${enable_skins2}" = "yes"], [
3981 AC_MSG_WARN([Skins2 interface disabled, it need to ported to the new player and playlist.])
3985 AM_CONDITIONAL([BUILD_SKINS], [test "${enable_skins2}" = "yes"])
3987 AC_ARG_ENABLE([libtar],
3988 AS_HELP_STRING([--enable-libtar], [libtar support for skins2 (default auto)]))
3989 AS_IF([test "${enable_skins2}" = "yes" && test "${enable_libtar}" != "no"], [
3990 AC_CHECK_HEADERS([libtar.h], [
3991 VLC_ADD_LIBS([skins2],[-ltar])
3996 dnl MacOS X gui module
3998 AC_ARG_ENABLE([macosx],
3999 AS_HELP_STRING([--enable-macosx], [Mac OS X gui support (default enabled on Mac OS X)]))
4000 if test "x${enable_macosx}" != "xno" -a "${SYS}" = "darwin"
4004 dnl If possible, use xcrun to find the right ibtool
4007 AC_PATH_PROG([XCRUN], [xcrun], [no])
4008 AS_IF([test ! "x${XCRUN}" = "xno"], [
4009 AC_MSG_CHECKING([for ibtool (using xcrun)])
4010 XIB="$(eval $XCRUN -f ibtool 2>/dev/null || echo no)"
4011 AC_MSG_RESULT([${XIB}])
4013 AC_MSG_WARN([Looking for tools without using xcrun])
4016 AS_IF([test "x${XIB}" = "xno"], [
4017 AC_PATH_PROG(XIB, [ibtool], [no])
4018 AS_IF([test "x${XIB}" = "xno"], [
4019 AC_MSG_ERROR([ibtool was not found, but is required for --enable-macosx])
4023 AM_CONDITIONAL([ENABLE_MACOSX_UI], [test "$enable_macosx" != "no" -a "${SYS}" = "darwin"])
4026 dnl MacOS X sparkle update support
4028 AC_ARG_ENABLE([sparkle],
4029 AS_HELP_STRING([--enable-sparkle], [Sparkle update support for OS X (default enabled on Mac OS X)]))
4030 if test "x${enable_sparkle}" != "xno" -a "${HAVE_OSX}" = "1"
4032 if test ! -d ${CONTRIB_DIR}/Sparkle.framework -a ! -d ${CONTRIB_DIR}/Frameworks/Sparkle.framework
4034 AC_MSG_ERROR([Sparkle framework is required and was not found in ${CONTRIB_DIR}])
4037 AC_DEFINE([HAVE_SPARKLE], [1], [Define to 1 if sparkle is enabled.])
4039 AM_CONDITIONAL([HAVE_SPARKLE], [test "$enable_sparkle" != "no"])
4042 dnl MacOS X breakpad creash reporter support
4044 AC_ARG_WITH([breakpad],
4045 AS_HELP_STRING([--with-breakpad=URL], [Enable Breakpad reporter using given URL]), [], [with_breakpad=no])
4047 AS_IF([test "$with_breakpad" != "no"], [
4049 AS_IF([test "$with_breakpad" = "yes"], [
4050 AC_MSG_ERROR([You need to supply the CrashDragon Server URL as value for --with-breakpad])
4053 AS_IF([test "$HAVE_OSX" = "1"], [
4054 AC_MSG_CHECKING([for Breakpad framework])
4055 AS_IF([test ! -d ${CONTRIB_DIR}/Breakpad.framework -a \
4056 ! -d ${CONTRIB_DIR}/Frameworks/Breakpad.framework], [
4059 AC_MSG_ERROR([Breakpad framework is required and was not found in ${CONTRIB_DIR}])
4061 AC_MSG_RESULT([yes])
4064 PKG_CHECK_MODULES([BREAKPAD], [breakpad-client], [
4065 LDFLAGS="${LDFLAGS} -Wl,--build-id"
4067 AC_MSG_ERROR(["breakpad not found"])
4072 AM_CONDITIONAL([HAVE_BREAKPAD], [test "$with_breakpad" != "no"])
4073 AS_IF([test "$with_breakpad" != "no"], [
4074 AC_SUBST([BREAKPAD_URL], ["${with_breakpad}"])
4078 dnl Minimal Mac OS X module
4080 AC_ARG_ENABLE([minimal-macosx],
4081 AS_HELP_STRING([--enable-minimal-macosx], [Minimal Mac OS X support (default disabled)]))
4082 if test "${enable_minimal_macosx}" = "yes" -a "${SYS}" = "darwin"
4084 VLC_ADD_PLUGIN([minimal_macosx])
4088 dnl Mac OS X fancy dmg build tool
4090 if test "${HAVE_OSX}" = "1"
4092 AC_PATH_PROG(DMGBUILD, dmgbuild, no)
4093 AS_IF([test "x${DMGBUILD}" = "xno"], [
4094 AC_MSG_WARN([dmgbuild not found -- unable to build fancy DMGs])
4097 AM_CONDITIONAL([HAVE_DMGBUILD], [test "x$DMGBUILD" != "xno" -a "${HAVE_OSX}" = "1"])
4100 dnl VideoToolbox plugins
4101 AC_CHECK_HEADERS([VideoToolbox/VideoToolbox.h], [
4102 VLC_ADD_PLUGIN([videotoolbox])
4103 VLC_ADD_PLUGIN([cvpx])
4107 dnl AudioToolbox MIDI plugin
4108 AC_CHECK_HEADERS([AudioToolbox/AudioToolbox.h], [
4109 VLC_ADD_PLUGIN([audiotoolboxmidi])
4115 AC_ARG_ENABLE([ncurses],
4116 AS_HELP_STRING([--disable-ncurses],[ncurses text-based interface (default auto)]))
4118 AS_IF([test "${enable_ncurses}" != "no"] ,[
4119 PKG_CHECK_MODULES([NCURSES], [ncursesw], [
4121 ALIASES="${ALIASES} nvlc"
4123 AS_IF([test -n "${enable_ncurses}"], [
4124 AC_MSG_ERROR([${NCURSES_PKG_ERRORS}.])
4128 AM_CONDITIONAL([HAVE_NCURSES], [test "${have_ncurses}" = "yes"])
4133 AC_ARG_ENABLE([lirc],
4134 AS_HELP_STRING([--enable-lirc], [lirc support (default disabled)]))
4136 AS_IF([test "${enable_lirc}" = "yes"], [
4137 AC_CHECK_HEADER(lirc/lirc_client.h, [
4138 AC_CHECK_LIB([lirc_client], [lirc_init], [
4143 AM_CONDITIONAL([HAVE_LIRC], [test "${have_lirc}" = "yes"])
4148 PKG_CHECK_MODULES([BITSTREAM], [bitstream > 1.4],[have_bitstream="yes"], [have_bitstream="no"])
4149 AM_CONDITIONAL([HAVE_BITSTREAM], [test "${have_bitstream}" = "yes"])
4154 PKG_ENABLE_MODULES_VLC([SRT], [access_srt access_output_srt], [srt >= 1.3.0], [SRT input/output plugin], [auto], [], [], [-DENABLE_SRT])
4156 EXTEND_HELP_STRING([Visualisations and Video filter plugins:])
4158 dnl goom visualization plugin
4160 PKG_ENABLE_MODULES_VLC([GOOM], [], [libgoom2], [goom visualization plugin], [auto])
4163 dnl libprojectM visualization plugin
4165 AC_ARG_ENABLE([projectm],
4166 AS_HELP_STRING([--enable-projectm], [projectM visualization plugin (default enabled)]))
4167 AS_IF([test "${enable_projectm}" != "no"],
4169 PKG_CHECK_MODULES(PROJECTM, libprojectM,
4171 VLC_ADD_PLUGIN([projectm])
4172 PKG_CHECK_EXISTS([libprojectM >= 2.0.0],
4173 [ AC_DEFINE([HAVE_PROJECTM2], 1, [Define to 1 if using libprojectM 2.x]) ],
4174 [ AC_MSG_WARN( [Using libprojectM version 1] )
4177 AC_MSG_WARN([${PROJECTM_PKG_ERRORS}.])
4182 dnl Vovoid VSXu visualization plugin
4184 AC_ARG_ENABLE([vsxu],
4185 AS_HELP_STRING([--enable-vsxu], [Vovoid VSXu visualization plugin (default auto)]))
4186 AS_IF([test "${enable_vsxu}" != "no"],
4188 PKG_CHECK_MODULES(VSXU, libvsxu,
4190 VLC_ADD_PLUGIN([vsxu])
4192 AC_MSG_WARN([${VSXU_PKG_ERRORS}.])
4196 EXTEND_HELP_STRING([Service Discovery plugins:])
4198 dnl Avahi-Zeroconf services discovery
4199 PKG_ENABLE_MODULES_VLC([AVAHI], [], [avahi-client >= 0.6], [Zeroconf services discovery], [auto])
4202 dnl libudev services discovery
4203 PKG_ENABLE_MODULES_VLC([UDEV], [], [libudev >= 142], [Linux udev services discovery], [auto])
4206 dnl MTP devices services discovery
4207 PKG_ENABLE_MODULES_VLC([MTP], [mtp access_mtp], [libmtp >= 1.0.0], [MTP devices support], [auto])
4210 dnl UPnP Plugin (Intel SDK)
4212 PKG_ENABLE_MODULES_VLC([UPNP], [upnp], [libupnp], [Intel UPNP SDK],[auto])
4215 dnl mDNS using libmicrodns
4217 PKG_ENABLE_MODULES_VLC([MICRODNS], [], [microdns], [mDNS services discovery], [auto])
4220 EXTEND_HELP_STRING([Misc options:])
4225 PKG_ENABLE_MODULES_VLC([LIBXML2], [xml], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
4231 AC_ARG_ENABLE([libgcrypt],
4232 AS_HELP_STRING([--disable-libgcrypt], [gcrypt support (default enabled)]))
4233 AC_ARG_VAR([GCRYPT_CFLAGS], [C compiler flags for gcrypt])
4234 AC_ARG_VAR([GCRYPT_LIBS], [linker flags flags for gcrypt])
4236 # require libgcrypt >= 1.6.0
4237 AS_IF([test "${enable_libgcrypt}" != "no"], [
4238 AC_CACHE_CHECK([for gcrypt 1.6.0 or later], [ac_cv_lib_gcrypt], [
4240 CFLAGS="${CFLAGS} ${GCRYPT_CFLAGS}"
4241 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
4242 [#include <gcrypt.h>
4243 #if GCRYPT_VERSION_NUMBER < 0x010600
4246 ac_cv_lib_gcrypt=yes
4253 AS_IF([test "${ac_cv_lib_gcrypt}" = "yes"], [
4254 AC_DEFINE([HAVE_GCRYPT], 1, [Defined if having gcrypt])
4256 AS_IF([test "${enable_libgcrypt}" = "yes"], [
4257 AC_MSG_ERROR([libgcrypt version 1.6.0 or higher not found. Install libgcrypt or pass --disable-libgcrypt.])
4262 AS_IF([test -z "$GCRYPT_LIBS"], [
4263 GCRYPT_LIBS="-lgcrypt -lgpg-error"
4266 AC_SUBST([GCRYPT_CFLAGS])
4267 AC_SUBST([GCRYPT_LIBS])
4268 AM_CONDITIONAL([HAVE_GCRYPT], [test "${ac_cv_lib_gcrypt}" = "yes"])
4273 AC_ARG_ENABLE([gnutls],
4274 AS_HELP_STRING([--enable-gnutls], [GNU TLS TLS/SSL support (default enabled)]))
4275 AS_IF([test "${enable_gnutls}" != "no"], [
4276 PKG_CHECK_MODULES(GNUTLS, [gnutls >= 3.5.0], [
4277 VLC_ADD_PLUGIN([gnutls])
4279 AS_IF([test -n "${enable_gnutls}"], [
4280 AC_MSG_ERROR([${GNUTLS_PKG_ERRORS}.)])
4289 AC_ARG_ENABLE([taglib],
4290 AS_HELP_STRING([--disable-taglib],
4291 [do not use TagLib (default enabled)]))
4292 AS_IF([test "${enable_taglib}" != "no"], [
4293 PKG_CHECK_MODULES(TAGLIB, taglib >= 1.11, [
4294 VLC_ADD_PLUGIN([taglib])
4296 AC_MSG_WARN([${TAGLIB_PKG_ERRORS}.])])
4302 PKG_ENABLE_MODULES_VLC([SECRET], [], [libsecret-1 >= 0.18], [use libsecret for keystore], [auto])
4307 AC_ARG_ENABLE([kwallet],
4308 AS_HELP_STRING([--enable-kwallet],
4309 [use kwallet (via D-Bus) for keystore (default enabled)]))
4310 AS_IF([test "${enable_kwallet}" != "no" -a "${have_dbus}" = "yes"], [
4311 VLC_ADD_PLUGIN([kwallet])
4315 dnl update checking system
4317 AC_ARG_ENABLE([update-check],
4318 AS_HELP_STRING([--enable-update-check], [update checking system (default disabled)]))
4319 if test "${enable_update_check}" = "yes"
4321 AS_IF([test "${ac_cv_lib_gcrypt}" != "yes"],[
4322 AC_MSG_ERROR([libgcrypt is required for update checking system]) ])
4324 AM_CONDITIONAL([UPDATE_CHECK], [test "${enable_update_check}" = "yes"])
4327 dnl OS X notification plugin
4329 AC_ARG_ENABLE([osx_notifications],
4330 AS_HELP_STRING([--enable-osx-notifications],
4331 [macOS notification plugin (default disabled)]),,
4332 [enable_osx_notifications=no])
4333 AS_IF([test "${enable_osx_notifications}" != "no"], [
4334 VLC_ADD_PLUGIN([osx_notifications])
4338 dnl Libnotify notification plugin
4340 PKG_ENABLE_MODULES_VLC([NOTIFY], [], [libnotify gtk+-3.0], [libnotify notification], [auto])
4342 PKG_ENABLE_MODULES_VLC([MEDIALIBRARY], [medialibrary], [medialibrary], (medialibrary support), [auto])
4345 dnl Endianness check
4348 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
4349 DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
4353 AC_SUBST([DEFS_BIGENDIAN])
4356 dnl Where to install KDE solid .desktop
4358 AC_ARG_WITH(kde-solid,
4359 AS_HELP_STRING([--with-kde-solid=PATH],
4360 [KDE Solid actions directory (auto)]),, [
4362 if test "${SYS}" != "mingw32" -a "${SYS}" != "darwin" -a "${HAVE_ANDROID}" != "1" ; then
4363 with_kde_solid="yes"
4367 AS_IF([test "${with_kde_solid}" != "no"], [
4368 AS_IF([test "${with_kde_solid}" = "yes"], [
4369 kde4datadir="`${KDE4_CONFIG} --install data`"
4370 AS_IF([test "x$kde4datadir" = "x"], [kde4datadir='${datadir}/kde4/apps'])
4371 soliddatadir="${kde4datadir}/solid/actions"
4373 soliddatadir="${with_kde_solid}"
4376 AC_SUBST([soliddatadir])
4377 AM_CONDITIONAL([KDE_SOLID], [test "x${soliddatadir}" != "x"])
4380 dnl Find tools for win32 packaging
4382 AS_IF([test "${SYS}" = "mingw32"], [
4384 dnl Find makensis required to build the NSIS installer
4386 nsis_major_required="3"
4387 nsis_version_ok="no"
4388 AC_PATH_PROG([MAKENSIS], [makensis], [no])
4389 AS_IF([test "$MAKENSIS" != "no"], [
4391 AC_MSG_CHECKING([makensis version])
4392 nsis_version=$($MAKENSIS -VERSION)
4393 AC_MSG_RESULT([$nsis_version])
4394 nsis_version_major=$(echo "$nsis_version" | awk -F \. '{print $1}' | sed 's/v//')
4395 # Check if major version is a valid number
4396 AS_IF([test -n "$nsis_version_major" && \
4397 test "$nsis_version_major" -eq "$nsis_version_major" 2> /dev/null], [
4398 # Do the version check using major version
4399 AS_IF([test "$nsis_version_major" -lt "$nsis_major_required"], [
4400 AC_MSG_WARN([makensis too old, (needs ${nsis_major_required}.x, have ${nsis_version_major}.x)])
4402 nsis_version_ok="yes"
4405 AC_MSG_WARN([failed to check the makensis version])
4411 AC_PATH_PROG([SEVENZIP], [7z], [7z])
4413 AM_CONDITIONAL([HAVE_MAKENSIS], [test "x$MAKENSIS" != "xno" && test "$nsis_version_ok" = "yes"])
4416 dnl Check wether we have the PROCESS_MITIGATION_IMAGE_LOAD_POLICY
4417 dnl It should only be available when building for win10, but some SDKs define it unconditionnaly
4419 if test "${SYS}" = "mingw32"; then
4420 AC_CHECK_TYPES([PROCESS_MITIGATION_IMAGE_LOAD_POLICY],,,[#include <windows.h>])
4423 EXTEND_HELP_STRING([Components:])
4428 AC_ARG_ENABLE([vlc],
4429 AS_HELP_STRING([--enable-vlc], [build the VLC media player (default enabled)]))
4430 AM_CONDITIONAL([BUILD_VLC], [test "${enable_vlc}" != "no"])
4433 dnl Fuzzer (at the end in order to don't mess dependencies FLAGS)
4435 AS_VAR_IF(with_libfuzzer, no, [], [
4436 LIBS="-lstdc++ ${LIBM} -L${with_libfuzzer} -lFuzzer"
4437 AX_CHECK_COMPILE_FLAG(-fsanitize-coverage=trace-pc-guard, [
4438 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc-guard])
4439 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc-guard], [CXXFLAGS])
4440 AX_APPEND_COMPILE_FLAGS([-fsanitize-coverage=trace-cmp])
4441 AX_APPEND_COMPILE_FLAGS([-fsanitize-coverage=trace-cmp], [CXXFLAGS])
4443 AX_CHECK_COMPILE_FLAG(-fsanitize-coverage=trace-pc, [
4444 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc])
4445 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc], [CXXFLAGS])
4447 AC_MSG_ERROR([Sanitizer coverage not supported by your compiler])
4453 dnl Stuff used by the program
4455 VERSION_MESSAGE="${VERSION} ${CODENAME}"
4456 COPYRIGHT_MESSAGE="Copyright © ${COPYRIGHT_YEARS} the VideoLAN team"
4457 AC_DEFINE_UNQUOTED([VERSION_MESSAGE], "${VERSION_MESSAGE}", [Simple version string])
4458 AC_DEFINE_UNQUOTED([COPYRIGHT_MESSAGE], "${COPYRIGHT_MESSAGE}", [Copyright string])
4459 AC_DEFINE_UNQUOTED([COPYRIGHT_YEARS], "${COPYRIGHT_YEARS}", [The copyright years])
4460 AC_DEFINE_UNQUOTED([CONFIGURE_LINE], "${CONFIGURE_LINE}", [The ./configure command line])
4461 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_MAJOR],${VERSION_MAJOR}, [version major number])
4462 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_MINOR],${VERSION_MINOR}, [version minor number])
4463 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_REVISION],${VERSION_REVISION}, [version revision number])
4464 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_EXTRA],${VERSION_EXTRA}, [version extra number])
4465 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_DEV],"${VERSION_DEV}", [version development string])
4466 AC_SUBST([COPYRIGHT_MESSAGE])
4467 AC_SUBST([VERSION_MESSAGE])
4468 AC_SUBST([VERSION_MAJOR])
4469 AC_SUBST([VERSION_MINOR])
4470 AC_SUBST([VERSION_REVISION])
4471 AC_SUBST([VERSION_EXTRA])
4472 AC_SUBST([COPYRIGHT_YEARS])
4473 AC_DEFINE_UNQUOTED([VLC_COMPILE_BY], "`whoami|sed -e 's/\\\/\\\\\\\/g'`", [user who ran configure])
4474 AC_DEFINE_UNQUOTED([VLC_COMPILE_HOST], "`hostname -f 2>/dev/null || hostname`", [host which ran configure])
4475 AC_DEFINE_UNQUOTED([VLC_COMPILER], "`$CC -v 2>&1 | tail -n 1 | sed -e 's/ *$//'`", [compiler])
4477 dnl Handle substvars that use $(top_srcdir)
4479 CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS}"
4482 dnl Configuration is finished
4492 AC_SUBST([WINE_SDK_PATH])
4494 AC_SUBST([AM_CPPFLAGS])
4495 AC_SUBST([MACOSX_DEPLOYMENT_TARGET])
4496 AC_SUBST([FILE_LIBVLCCORE_DLL])
4497 AC_SUBST([FILE_LIBVLC_DLL])
4511 modules/hw/mmal/Makefile
4512 share/vlc.appdata.xml.in
4515 AM_COND_IF([HAVE_WIN32], [
4517 extras/package/win32/NSIS/spad.nsi
4518 extras/package/win32/NSIS/vlc.win32.nsi
4519 extras/package/win32/msi/config.wxi
4523 AM_COND_IF([HAVE_DARWIN], [
4525 modules/gui/macosx/UI/InfoPlist.strings:modules/gui/macosx/Resources/InfoPlist.strings.in
4526 share/macosx/Info.plist:share/Info.plist.in
4530 dnl Generate makefiles
4533 dnl Do we have to use make or gmake ?
4534 if make --version 2>&1|grep -q GNU
4536 # GNU make, all seems good
4539 # Known GNU make alias (on BSD)
4542 dnl Shortcut to nice compile message
4543 if test -n $SHELL; then
4544 SHELL=${CONFIG_SHELL-/bin/sh}
4547 compile_top_srcdir=`sed -ne "s/^top_srcdir *= *//p" < Makefile`
4551 export PATH=\"$PATH\" LANG=C
4552 ($MAKE V=1 \$@ 2>&1 || touch .error\$\$)| $compile_top_srcdir/extras/buildsystem/make.pl
4553 test -f .error\$\$ && ERROR=1
4555 exit \$ERROR" >compile
4559 libvlc configuration
4560 --------------------
4561 version : ${VERSION}
4563 architecture : ${ARCH}
4564 optimizations : ${enable_optimizations}"
4565 if test "${enable_vlc}" != "no"; then
4566 echo "vlc aliases :${ALIASES}"
4568 echo "build vlc executable : no"
4571 To build vlc and its plugins, type \`$MAKE', or \`./compile' if you like nice colors."