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])
352 AM_CONDITIONAL([HAVE_LINUX], [test "${SYS}" = "linux"])
353 AM_CONDITIONAL([HAVE_OS2], [test "${SYS}" = "os2"])
355 AM_CONDITIONAL([HAVE_DARWIN], [test "${SYS}" = "darwin"])
356 AM_CONDITIONAL([HAVE_IOS], [test "${HAVE_IOS}" = "1"])
357 AM_CONDITIONAL([HAVE_OSX], [test "${HAVE_OSX}" = "1"])
358 AM_CONDITIONAL([HAVE_TVOS], [test "${HAVE_TVOS}" = "1"])
360 AM_CONDITIONAL([HAVE_NACL], [test "${SYS}" = "nacl"])
361 AM_CONDITIONAL([HAVE_LIBANL], [test "${HAVE_LIBANL}" = "1"])
363 AM_CONDITIONAL([HAVE_WIN32], [test "${SYS}" = "mingw32"])
364 AM_CONDITIONAL([HAVE_WIN64], [test "${HAVE_WIN64}" = "1"]) dnl Only used for the packaging
365 AM_CONDITIONAL([HAVE_WINSTORE], [test "$vlc_winstore_app" = "1"])
366 AM_CONDITIONAL([HAVE_WIN32_DESKTOP], [test "${SYS}" = "mingw32" -a "$vlc_winstore_app" = "0"])
368 dnl Use nasm/yasm only on x86
369 AC_CHECK_PROGS(X86ASM, [nasm yasm])
370 AM_CONDITIONAL([HAVE_X86ASM], [test -n "${X86ASM}" && test -n "${X86ASMFLAGS}"])
371 AM_COND_IF([HAVE_X86ASM], [
372 AC_DEFINE([HAVE_X86ASM], [1], [Use external asm on x86.])
374 AC_SUBST([X86ASMFLAGS])
375 AC_SUBST([X86ASMDEFS])
378 dnl Sadly autoconf does not think about testing foo.exe when ask to test
379 dnl for program foo on win32
380 case "${build_os}" in
382 ac_executable_extensions=".exe"
391 AC_SUBST([BUILDEXEEXT])
393 dnl Android is linux, but a bit different
394 AS_IF([test "$SYS" = linux],[
395 AC_MSG_CHECKING([for an Android system])
396 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
397 [[#ifndef __ANDROID__
408 AM_CONDITIONAL([HAVE_ANDROID], [test "${HAVE_ANDROID}" = "1"])
410 dnl Tizen (minimum SDK version: 2.3)
411 AS_IF([test "$SYS" = linux],[
412 AC_MSG_CHECKING([for Tizen])
413 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
418 AC_DEFINE([HAVE_TIZEN_SDK], [1], [Define to 1 if vlc is built against Tizen SDK])
424 AM_CONDITIONAL([HAVE_TIZEN], [test "${HAVE_TIZEN}" = "1"])
427 dnl Check for the contrib directory
430 AS_HELP_STRING([--with-contrib[=DIR]],
431 [search for 3rd party libraries in DIR/include and DIR/lib])
433 AC_MSG_CHECKING([for 3rd party libraries path])
434 AS_IF([test -z "${with_contrib}" || test "${with_contrib}" = "yes"], [
435 CONTRIB_DIR="${srcdir}/contrib/${host}"
436 AS_IF([test ! -d "${CONTRIB_DIR}"], [
437 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
438 CONTRIB_DIR="${srcdir}/contrib/`$CC -dumpmachine`"
439 AS_IF([test ! -d "${CONTRIB_DIR}"], [
440 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
442 AC_MSG_RESULT([not found])
446 AS_IF([test "${with_contrib}" != "no"], [
447 CONTRIB_DIR="${with_contrib}"
450 AC_MSG_RESULT([disabled])
453 AS_IF([test -n "${CONTRIB_DIR}"], [
454 AS_IF([test -d "${CONTRIB_DIR}/lib"],[
455 CONTRIB_DIR=`cd "${CONTRIB_DIR}" && pwd`
457 echo "${CONTRIB_DIR}/lib not found" >&AS_MESSAGE_LOG_FD
459 AC_MSG_RESULT([not usable])
463 AS_IF([test -n "${CONTRIB_DIR}"], [
464 AC_MSG_RESULT([${CONTRIB_DIR}])
465 CPPFLAGS="${CPPFLAGS} -I${CONTRIB_DIR}/include"
466 CFLAGS="${CFLAGS} -I${CONTRIB_DIR}/include"
467 CXXFLAGS="${CXXFLAGS} -I${CONTRIB_DIR}/include"
468 OBJCFLAGS="${OBJCFLAGS} -I${CONTRIB_DIR}/include -F${CONTRIB_DIR} -F${CONTRIB_DIR}/Frameworks"
469 PKG_CONFIG_PATH="${CONTRIB_DIR}/lib/pkgconfig:${CONTRIB_DIR}/share/pkgconfig:${PKG_CONFIG_PATH}"
470 case "${build_os}" in
472 export PKG_CONFIG_PATH=`cygpath -mp ${PKG_CONFIG_PATH}`
475 export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}"
478 LDFLAGS="${LDFLAGS} -L${CONTRIB_DIR}/lib"
480 AS_IF([test -z "$LUAC"], [
481 dnl Old contribs mixed cross-tools and cross-compiled executables
482 AS_IF([test -x "${CONTRIB_DIR}/bin/luac${BUILDEXEEXT}"], [
483 LUAC="${CONTRIB_DIR}/bin/luac${BUILDEXEEXT}"
486 dnl Newer contribs follow usual name space rules
487 AS_IF([test -x "${CONTRIB_DIR}/../bin/${host_alias}-luac${BUILDEXEEXT}"], [
488 LUAC="${CONTRIB_DIR}/../bin/${host_alias}-luac${BUILDEXEEXT}"
492 AS_IF([test "${SYS}" = "darwin"], [
493 export LD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$LD_LIBRARY_PATH"
494 export DYLD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$DYLD_LIBRARY_PATH"
497 AS_IF([test -n "${with_contrib}" && test "${with_contrib}" != "no"], [
498 AC_MSG_ERROR([Third party libraries not found!])
501 AC_SUBST([CONTRIB_DIR])
503 dnl Add extras/tools to the PATH
504 TOOLS_DIR="${srcdir}/extras/tools/build/bin"
505 AS_IF([test -d "${TOOLS_DIR}"], [
506 TOOLS_DIR=`cd "${TOOLS_DIR}" && pwd`
507 export PATH="${TOOLS_DIR}":$PATH
512 dnl It's very bad, but our former custom system was worst
516 dnl override platform specific check for dependent libraries
517 dnl otherwise libtool linking of shared libraries will
518 dnl fail on anything other than pass_all.
519 AC_CACHE_VAL(lt_cv_deplibs_check_method,
520 [lt_cv_deplibs_check_method=pass_all])
522 LT_INIT([dlopen win32-dll shared disable-static])
524 LT_LANG([Windows Resource])
528 lt_cv_deplibs_check_method=pass_all
530 AS_IF([test "${enable_shared}" = "no" -a "${enable_vlc}" != "no"], [
531 AC_MSG_ERROR([VLC is based on plugins. Shared libraries cannot be disabled.])
537 AM_GNU_GETTEXT_VERSION([0.19.8])
538 AM_GNU_GETTEXT([external], [need-formatstring-macros])
547 AS_IF([test "${SYS}" = "mingw32"], [
549 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
550 #if !defined(__MINGW32__)
551 # error Not compiling with mingw
555 dnl Check for broken versions of mingw-runtime compatability library
556 AC_MSG_CHECKING(for broken mingw-runtime)
557 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
559 #if defined(__MINGW64_VERSION_MAJOR)
560 # if __MINGW64_VERSION_MAJOR < 5
561 # error Update your mingw-w64! This one is too old.
564 # error You cannot compile with Mingw. Use Mingw-w64!
569 AC_MSG_RESULT([present])
570 AC_MSG_ERROR([LibVLC requires Mingw-w64 version 5.0 or higher!])
573 dnl force use of mingw provided c99 *printf over msvcrt
574 CPPFLAGS="${CPPFLAGS} -D__USE_MINGW_ANSI_STDIO=1"
576 dnl Check for the need to include the mingwex lib for mingw32
578 AC_CHECK_LIB([mingwex], [opendir],
579 AC_CHECK_LIB([mingw32], [opendir],,
580 [VLC_ADD_LIBS([libvlccore],[-lmingwex])])
584 AC_MSG_RESULT([Not compiling with mingw])
587 dnl Check for fnative-struct or mms-bitfields support for mingw32
588 AX_CHECK_COMPILE_FLAG([-mms-bitfields], [
589 AX_APPEND_FLAG([-mms-bitfields], [CFLAGS])
590 AX_APPEND_FLAG([-mms-bitfields], [CXXFLAGS])
591 # Check for the warning flag without "-Wno-", GCC accepts
592 # -Wno-<anything> for unsupported warnings, which can trigger
593 # other warnings instead.
594 AX_CHECK_COMPILE_FLAG([-Wincompatible-ms-struct], [
595 AX_APPEND_FLAG([-Wno-incompatible-ms-struct], [CFLAGS])
596 AX_APPEND_FLAG([-Wno-incompatible-ms-struct], [CXXFLAGS])
599 AX_CHECK_COMPILE_FLAG([-fnative-struct], [
600 AX_APPEND_FLAG([-fnative-struct], [CFLAGS])
601 AX_APPEND_FLAG([-fnative-struct], [CXXFLAGS])
608 dnl Buggy glibc prevention. Purposedly not cached.
609 dnl See sourceware.org bugs 5058 and 5443.
610 dnl Ubuntu alone has 20 bug numbers for this...
612 AC_MSG_CHECKING(for buggy GNU/libc versions)
613 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
615 #if defined (__GLIBC__) && (__GLIBC__ == 2) \
616 && (__GLIBC_MINOR__ >= 5) && (__GLIBC_MINOR__ <= 7)
617 # error GNU/libc with dcgettext killer bug!
620 AC_MSG_RESULT([not present])
622 AC_MSG_RESULT([found])
623 AS_IF([test "x${enable_nls}" != "xno"], [
624 AC_MSG_ERROR([Buggy GNU/libc (version 2.5 - 2.7) present. VLC would crash; there is no viable
625 work-around for this. Check with your distribution vendor on how to update the
626 glibc run-time. Alternatively, build with --disable-nls.])
630 dnl Plugin compilation stuff
634 dnl Check for system libs needed
637 dnl Check for usual libc functions
638 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])
639 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])
640 AC_REPLACE_FUNCS([gettimeofday])
641 AC_CHECK_FUNC(fdatasync,,
642 [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
645 VLC_REPLACE_DECL([realpath], [#include <stdlib.h>])
647 dnl mingw64 implements those as static inline, not functions with C linkage
648 VLC_REPLACE_DECL([asprintf], [#include <stdio.h>])
649 VLC_REPLACE_DECL([vasprintf], [#include <stdio.h>])
650 VLC_REPLACE_DECL([gmtime_r], [#include <time.h>])
651 VLC_REPLACE_DECL([localtime_r], [#include <time.h>])
653 dnl C11 static_assert()
654 AC_MSG_CHECKING([for static_assert in assert.h])
655 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <assert.h>], [
656 static_assert(1, "The impossible happened.");
659 AC_DEFINE([HAVE_STATIC_ASSERT], [1], [Define to 1 if <assert.h> defines static_assert.])
664 # Windows CE does not have strcoll()
667 dnl Check for non-standard system calls
670 AC_CHECK_FUNCS([eventfd vmsplice sched_getaffinity recvmmsg memfd_create])
673 AC_CHECK_FUNCS([_lock_file])
677 AH_BOTTOM([#include <vlc_fixups.h>])
679 dnl Check for struct pollfd
680 AC_CHECK_TYPES([struct pollfd],,,
681 [#include <sys/types.h>
684 #elif defined (_WIN32)
685 # include <winsock2.h>
689 dnl Check for struct timespec
690 AC_CHECK_TYPES([struct timespec],,,
693 dnl Check for max_align_t
694 AC_CHECK_TYPES([max_align_t],,,
695 [#include <stddef.h>])
697 dnl Checks for socket stuff
700 AC_SEARCH_LIBS(connect, [socket], [
701 AS_IF([test "$ac_cv_search_connect" != "none required"], [
702 SOCKET_LIBS="$ac_cv_search_connect"
705 AS_IF([test "${SYS}" = "mingw32"], [
706 SOCKET_LIBS="-lws2_32 -liphlpapi"
710 AC_SEARCH_LIBS([inet_pton], [nsl], [
711 AS_IF([test "$ac_cv_search_inet_pton" != "none required"], [
712 SOCKET_LIBS="$ac_cv_search_inet_pton $SOCKET_LIBS"
714 ],, [${SOCKET_LIBS}])
716 LIBS="${LIBS} ${SOCKET_LIBS}"
718 AC_LANG_PROGRAM([#ifdef _WIN32
719 #include <ws2tcpip.h>
721 # if _WIN32_WINNT < 0x600
725 #include <sys/socket.h>
726 #include <arpa/inet.h>
728 char dst[[sizeof(struct in_addr)]];
729 inet_pton(AF_INET, "127.0.0.1", dst);
730 ])],[AC_DEFINE([HAVE_INET_PTON],[1],[Define to 1 if you have inet_pton function])],[AC_LIBOBJ([inet_pton])])
731 AC_CHECK_TYPES([struct if_nameindex],,,[#include <net/if.h>])
732 AC_CHECK_FUNCS([if_nameindex])
734 AC_SUBST([SOCKET_LIBS])
736 dnl Check for socklen_t
737 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
738 AC_CACHE_CHECK([for socklen_t in sys/socket.h], dnl ` (fix VIM syntax highlight
739 ac_cv_type_socklen_t,
740 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
741 [#include <sys/types.h>
743 # include <winsock2.h>
744 # include <ws2tcpip.h>
746 # include <sys/socket.h>
747 #endif]], [[socklen_t len; len = 0;]])],
748 ac_cv_type_socklen_t=yes,
749 ac_cv_type_socklen_t=no)])
750 AS_IF([test "$ac_cv_type_socklen_t" = no],
751 [AC_DEFINE(socklen_t, unsigned int)])
753 dnl Check for struct sockaddr_storage
754 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
755 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
756 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
758 [#include <sys/types.h>
759 #if defined( _WIN32 )
760 # include <winsock2.h>
762 # include <sys/socket.h>
763 #endif], [struct sockaddr_storage addr;],
764 ac_cv_struct_sockaddr_storage=yes,
765 ac_cv_struct_sockaddr_storage=no)])
766 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
767 AC_DEFINE(sockaddr_storage, sockaddr)
768 AC_DEFINE(ss_family, sa_family)
771 dnl FreeBSD has a gnugetopt library for this:
773 AC_CHECK_FUNC(getopt_long,, [
774 AC_CHECK_LIB([gnugetopt],[getopt_long], [
775 GNUGETOPT_LIBS="-lgnugetopt"
778 AC_SUBST([GNUGETOPT_LIBS])
780 AC_CHECK_LIB([m], [cos], [
787 AC_CHECK_LIB([m], [lrintf], [
788 AC_DEFINE(HAVE_LRINTF, 1, [Define to 1 if you have the lrintf function])
789 VLC_ADD_LIBS([skins2],[-lm])
791 AC_CHECK_LIB([m], [nanf],
792 AC_DEFINE(HAVE_NANF, 1, [Define to 1 if you have the NANF function])
794 AC_CHECK_LIB([m], [sincos], [
795 AC_DEFINE(HAVE_SINCOS, 1, [Define to 1 if you have the sincos function.])
800 AC_MSG_CHECKING([broken qsort_r prototype])
801 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <stdlib.h>
803 _Static_assert(_Generic((qsort_r),
804 void (*)(void *, size_t, size_t, void *,
805 int (*)(void *, const void *, const void *)) : 1, default: 0),
806 "Bad prototype not matched");
808 AC_MSG_RESULT([broken])
809 AC_DEFINE([HAVE_BROKEN_QSORT_R], 1, [Defined to 1 if the qsort_r() prototype contradicts the upcoming POSIX standard.])
814 AC_MSG_CHECKING([_Thread_local support])
815 AC_COMPILE_IFELSE([AC_LANG_SOURCE([_Thread_local int foo = 0;
818 AC_DEFINE(HAVE_THREAD_LOCAL, 1, [Defined to 1 if C11 _Thread_local storage qualifier is supported])
819 ],[ AC_MSG_RESULT([no])])
821 dnl __STDC_NO_THREADS__ can't be trusted on some platforms.
822 dnl check for its availability explicitely
823 AC_CHECK_HEADERS([threads.h])
825 AC_CHECK_LIB([anl],[getaddrinfo_a],[
826 AC_DEFINE(HAVE_LIBANL, 1, [Define to 1 if you have the anl library])
829 dnl Check for dynamic plugins
831 have_dynamic_objects="no"
833 AC_SEARCH_LIBS(dlsym, [dl svld], [
834 AS_IF([test "$ac_cv_search_dlsym" != "none required"], [
835 LIBDL="$ac_cv_search_dlsym"
837 have_dynamic_objects="yes"
842 AS_IF([test "${SYS}" = "mingw32"], [
844 have_dynamic_objects="yes" #assume we can use shared objects
847 AC_ARG_WITH([libfuzzer],
848 AS_HELP_STRING([--with-libfuzzer=DIR],
849 [use libFuzzer library from DIR and triggers sanitize coverage (default disabled)]),
852 AS_VAR_IF(with_libfuzzer, no, [], [
857 AM_CONDITIONAL([HAVE_LIBFUZZER], [test "${with_libfuzzer}" != "no"])
859 AS_IF([test "${enable_shared}" = "no"], [
860 have_dynamic_objects=no
862 AM_CONDITIONAL([HAVE_DYNAMIC_PLUGINS], [test "${have_dynamic_objects}" != "no"])
866 AS_IF([test "${SYS}" != "mingw32"], [
867 AC_SEARCH_LIBS([clock_nanosleep], [rt pthread], [
868 AS_IF([test "$ac_cv_search_clock_nanosleep" != "none required"], [
869 LIBRT="$ac_cv_search_clock_nanosleep"
872 AC_SEARCH_LIBS([nanosleep], [rt pthread posix4], [
873 AS_IF([test "$ac_cv_search_nanosleep" != "none required"], [
874 LIBRT="$ac_cv_search_nanosleep"
882 dnl Check for headers
886 AC_CHECK_HEADERS([arpa/inet.h pthread.h search.h sys/shm.h sys/socket.h sys/uio.h])
887 AC_CHECK_HEADERS([net/if.h], [], [],
889 #include <sys/types.h>
890 #include <sys/socket.h>
892 AC_CHECK_HEADER([syslog.h], [have_syslog="yes"], [have_syslog="no"])
893 AM_CONDITIONAL([HAVE_SYSLOG], [test "$have_syslog" = "yes"])
896 AC_CHECK_HEADERS([netinet/tcp.h netinet/udplite.h sys/param.h sys/mount.h])
899 AC_CHECK_HEADERS([features.h getopt.h linux/dccp.h linux/magic.h mntent.h sys/eventfd.h])
902 AC_CHECK_HEADERS([xlocale.h])
904 dnl Check if C++ headers define locale_t
906 AC_CACHE_CHECK([if C++ headers define locale_t],
907 [ac_cv_cxx_locale_t],
908 [ac_cv_cxx_locale_t=no
909 AC_TRY_COMPILE([#include <locale>], [locale_t loc;],
910 [ac_cv_cxx_locale_t=yes])])
911 if test "${ac_cv_cxx_locale_t}" != "no"; then
912 AC_DEFINE(HAVE_CXX_LOCALE_T, 1, Define to 1 if C++ headers define locale_t)
916 dnl LP64 and LLP64 architectures had better define ssize_t by themselves...
917 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.]) dnl ` (fix VIM syntax highlight
918 AC_CHECK_TYPE(ssize_t,, [
919 AC_DEFINE(ssize_t, int)
922 dnl It seems that autoconf detects pkg-config only during the first
923 dnl PKG_CHECK_MODULES from configure.ac - which makes sense. But in our case,
924 dnl it is nested within a conditional block, so it was not working right.
925 PKG_PROG_PKG_CONFIG()
927 dnl On some OS we need static linking
928 AS_IF([test -n "${PKG_CONFIG}" ],[
929 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "darwin" -o "${SYS}" = "os2" ],[
930 PKG_CONFIG="${PKG_CONFIG} --static"
936 dnl Check for zlib.h and -lz if available
938 AC_CHECK_HEADERS([zlib.h], [ have_zlib=yes ], [ have_zlib=no ])
939 AM_CONDITIONAL([HAVE_ZLIB], [ test "${have_zlib}" = "yes" ])
940 if test "${have_zlib}" = "yes"
942 VLC_ADD_LIBS([sap],[-lz])
947 dnl Domain name i18n support via GNU libidn
949 PKG_CHECK_MODULES([IDN], [libidn], [
951 AC_DEFINE([HAVE_IDN], 1, [Define to 1 if you have GNU libidn.])
958 AC_ARG_ENABLE([dbus],
959 AS_HELP_STRING([--enable-dbus],
960 [compile D-Bus message bus support (default enabled)]))
962 AS_IF([test "${enable_dbus}" != "no"], [
963 PKG_CHECK_MODULES(DBUS, [dbus-1 >= 1.6.0], [
966 AS_IF([test -n "${enable_dbus}"], [
967 AC_MSG_ERROR([${DBUS_PKG_ERRORS}.])
969 AC_MSG_WARN([${DBUS_PKG_ERRORS}.])
973 AM_CONDITIONAL([HAVE_DBUS], [test "${have_dbus}" = "yes"])
976 dnl Check for systemd
977 PKG_CHECK_MODULES([SYSTEMD], [libsystemd], [
980 AC_MSG_WARN([${SYSTEMD_PKG_ERRORS}.])
982 AM_CONDITIONAL([HAVE_SYSTEMD], [test "${have_systemd}" = "yes"])
985 EXTEND_HELP_STRING([Optimization options:])
987 dnl Compiler warnings
990 AX_APPEND_COMPILE_FLAGS([-Wall -Wextra -Wsign-compare -Wundef -Wpointer-arith -Wvolatile-register-var -Wformat -Wformat-security -Wduplicated-branches -Wduplicated-cond], [CFLAGS])
991 AX_APPEND_COMPILE_FLAGS([-Wall -Wextra -Wsign-compare -Wundef -Wpointer-arith -Wvolatile-register-var -Wformat -Wformat-security -Wduplicated-branches -Wduplicated-cond], [CXXFLAGS])
993 AX_APPEND_COMPILE_FLAGS([-Wbad-function-cast -Wwrite-strings -Wmissing-prototypes -Werror-implicit-function-declaration -Winit-self -Wlogical-op -Wshadow=local -Wmultistatement-macros], [CFLAGS])
994 AX_APPEND_COMPILE_FLAGS([-pipe], [CFLAGS])
999 AC_ARG_ENABLE([debug],
1000 AS_HELP_STRING([--disable-debug],
1001 [disable run-time assertions (default enabled)]),,
1002 [enable_debug="yes"])
1004 [Define to 1 if debug code should NOT be compiled])
1005 AS_IF([test "${enable_debug}" != "no"], [
1006 AC_CHECK_HEADERS([valgrind/valgrind.h])
1014 AC_ARG_ENABLE([gprof],
1015 AS_HELP_STRING([--enable-gprof],[profile with gprof (default disabled)]),,
1016 [enable_gprof="no"])
1017 AS_IF([test "${enable_gprof}" != "no"], [
1018 CFLAGS="${CFLAGS} -pg"
1019 CXXFLAGS="${CXXFLAGS} -pg"
1020 OBJCFLAGS="${OBJCFLAGS} -pg"
1021 LDFLAGS="${LDFLAGS} -pg"
1024 AC_ARG_ENABLE([cprof],
1025 AS_HELP_STRING([--enable-cprof],[profile with cprof (default disabled)]),,
1026 [enable_cprof="no"])
1027 AS_IF([test "${enable_gprof}" != "no"], [
1028 CFLAGS="${CFLAGS} -finstrument-functions"
1029 CXXFLAGS="${CXXFLAGS} -finstrument-functions"
1030 OBJCFLAGS="${OBJCFLAGS} -finstrument-functions"
1031 LDFLAGS="${LDFLAGS} -finstrument-functions"
1037 AC_ARG_ENABLE([coverage],
1038 AS_HELP_STRING([--enable-coverage],
1039 [build for test coverage (default disabled)]),,
1040 [enable_coverage="no"])
1041 AS_IF([test "${enable_coverage}" != "no"], [
1042 CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
1043 CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
1044 LDFLAGS="-lgcov ${LDFLAGS}"
1047 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "os2"], [
1049 CFLAGS="${CFLAGS} -fvisibility=hidden"
1050 CXXFLAGS="${CXXFLAGS} -fvisibility=hidden"
1051 OBJCFLAGS="${OBJCFLAGS} -fvisibility=hidden"
1052 AC_CACHE_CHECK([if $CC accepts -fvisibility=hidden],
1053 [ac_cv_c_visibility_hidden], [
1054 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1055 ac_cv_c_visibility_hidden=yes
1057 ac_cv_c_visibility_hidden=no
1060 AS_IF([test "${ac_cv_c_visibility_hidden}" = "no"], [VLC_RESTORE_FLAGS])
1066 AC_ARG_WITH([sanitizer],
1067 AS_HELP_STRING([--with-sanitizer=(address/memory/undefined/thread)],
1068 [build with sanitizer flags (default disabled)]),
1070 [with_sanitizer=no])
1072 AS_VAR_IF(with_sanitizer, no, [], [
1073 AX_CHECK_COMPILE_FLAG([-fsanitize=${with_sanitizer}], [
1074 AX_APPEND_FLAG([-fsanitize=${with_sanitizer}])
1075 AX_APPEND_FLAG([-fsanitize=${with_sanitizer}], [CXXFLAGS])
1076 AX_APPEND_FLAG([-fsanitize=${with_sanitizer}], [LDFLAGS])
1078 AC_MSG_ERROR(["-fsanitize=${with_sanitizer} not supported!"])
1080 AX_APPEND_FLAG([-g])
1081 AX_APPEND_FLAG([-g], [CXXFLAGS])
1083 AS_IF([test -z "${with_sanitizer##*address*}" ], [
1084 AX_APPEND_COMPILE_FLAGS([-fsanitize-address-use-after-scope -fno-omit-frame-pointer -fsanitize=pointer-compare -fsanitize=pointer-subtract])
1085 AX_APPEND_COMPILE_FLAGS([-fsanitize-address-use-after-scope -fno-omit-frame-pointer -fsanitize=pointer-compare -fsanitize=pointer-subtract], [CXXFLAGS])
1087 AS_IF([test -z "${with_sanitizer##*memory*}" ], [
1088 AX_APPEND_COMPILE_FLAGS([-fPIE -pie])
1089 AX_APPEND_COMPILE_FLAGS([-fPIE -pie], [CXXFLAGS])
1091 AS_IF([test -z "${with_sanitizer##*thread*}" ], [
1092 AX_APPEND_COMPILE_FLAGS([-fPIE -pie])
1093 AX_APPEND_COMPILE_FLAGS([-fPIE -pie], [CXXFLAGS])
1098 dnl Enable/disable optimizations
1100 AC_ARG_ENABLE([optimizations],
1101 AS_HELP_STRING([--disable-optimizations],
1102 [disable compiler optimizations (default enabled)]),,
1103 [enable_optimizations="yes"])
1105 dnl Check for various optimization flags
1106 AS_IF([test "${enable_optimizations}" != "no"], [
1108 dnl -O3 only in production builds
1109 AS_IF([test "${enable_debug}" = "no"], [
1111 CFLAGS="${CFLAGS} -O3"
1112 CXXFLAGS="${CXXFLAGS} -O3"
1113 OBJCFLAGS="${OBJCFLAGS} -O3"
1114 AC_CACHE_CHECK([if $CC accepts -O3], [ac_cv_c_o3], [
1115 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1121 AS_IF([test "${ac_cv_c_o3}" = "no"], [VLC_RESTORE_FLAGS])
1124 dnl Check for fast maths
1125 AX_APPEND_COMPILE_FLAGS([-fno-math-errno -funsafe-math-optimizations -fno-rounding-math -fno-signaling-nans -fcx-limited-range], [CFLAGS])
1126 AX_APPEND_COMPILE_FLAGS([-fno-math-errno -funsafe-math-optimizations -fno-rounding-math -fno-signaling-nans -fcx-limited-range], [CXXFLAGS])
1129 #if defined(_MSC_VER) && !defined(__clang__)
1130 # pragma fenv_access(off)
1131 # pragma fp_contract(on)
1132 #elif defined(__GNUC__)
1133 /* Not supported so far */
1135 # pragma STDC FENV_ACCESS OFF
1136 # pragma STDC FP_CONTRACT ON
1140 dnl Check for -funroll-loops
1142 CFLAGS="${CFLAGS} -funroll-loops"
1143 CXXFLAGS="${CXXFLAGS} -funroll-loops"
1144 OBJCFLAGS="${OBJCFLAGS} -funroll-loops"
1145 AC_CACHE_CHECK([if $CC accepts -funroll-loops], [ac_cv_c_unroll_loops], [
1146 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1147 ac_cv_c_unroll_loops=yes
1149 ac_cv_c_unroll_loops=no
1152 AS_IF([test "${ac_cv_c_unroll_loops}" = "no"], [VLC_RESTORE_FLAGS])
1154 AS_IF([test "$enable_debug" = "no"], [
1155 dnl Check for -fomit-frame-pointer
1157 CFLAGS="${CFLAGS} -fomit-frame-pointer"
1158 CXXFLAGS="${CXXFLAGS} -fomit-frame-pointer"
1159 OBJCFLAGS="${OBJCFLAGS} -fomit-frame-pointer"
1160 AC_CACHE_CHECK([if $CC accepts -fomit-frame-pointer],
1161 [ac_cv_c_omit_frame_pointer], [
1162 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1163 ac_cv_c_omit_frame_pointer=yes
1165 ac_cv_c_omit_frame_pointer=no
1168 AS_IF([test "${ac_cv_c_omit_frame_pointer}" = "no"], [VLC_RESTORE_FLAGS])
1173 AC_ARG_ENABLE([ssp],
1174 AS_HELP_STRING([--disable-ssp],
1175 [disable stack smashing protection (default enabled for optimized builds)]), [],
1178 AS_IF([test "${enable_ssp}" != "no" -a "${enable_optimizations}" != "no"], [
1180 AX_APPEND_COMPILE_FLAGS([-fstack-protector-strong])
1181 AX_APPEND_COMPILE_FLAGS([-fstack-protector-strong], [CXXFLAGS])
1182 dnl Win32 requires linking to ssp for stack-protection
1183 AS_IF([test "${SYS}" = "mingw32"], [
1184 LDFLAGS="${LDFLAGS} -lssp"
1185 AC_CACHE_CHECK([if linker supports stack protectors], [ac_cv_ld_ssp], [
1186 AC_TRY_LINK([#include <stdio.h>],[char buf[100]; fgets(buf, sizeof(buf), stdin);], [
1192 AS_IF([test "${ac_cv_ld_ssp}" = "no"], [VLC_RESTORE_FLAGS])
1196 AS_IF([test "${SYS}" = "mingw32"], [
1197 dnl library for BCrypt APIs
1198 AS_IF([test "${vlc_winstore_app}" = 1],
1199 [LDFLAGS="${LDFLAGS} -lbcrypt"])
1203 LDFLAGS="${LDFLAGS} -Wl,-Bsymbolic"
1204 AC_CACHE_CHECK([if linker supports -Bsymbolic], [ac_cv_ld_bsymbolic], [
1206 ac_cv_ld_bsymbolic="-Wl,-Bsymbolic"
1208 ac_cv_ld_bsymbolic=""
1212 SYMBOLIC_LDFLAGS="${ac_cv_ld_bsymbolic}"
1213 AC_SUBST([SYMBOLIC_LDFLAGS])
1216 LDFLAGS="${LDFLAGS} -Wl,-z,defs"
1217 AC_CACHE_CHECK([if linker supports -z,defs], [ac_cv_ld_z_defs], [
1219 ac_cv_ld_z_defs="yes"
1221 ac_cv_ld_z_defs="no"
1224 AS_IF([test "${ac_cv_ld_z_defs}" = "no"], [VLC_RESTORE_FLAGS])
1226 dnl Check for __attribute__((packed))
1227 AC_CACHE_CHECK([for __attribute__((packed))],
1228 [ac_cv_c_attribute_packed],
1229 [ac_cv_c_attribute_packed=no
1230 AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b; (void)b;],
1231 [ac_cv_c_attribute_packed=yes])])
1232 if test "${ac_cv_c_attribute_packed}" != "no"; then
1233 AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1239 case "${host_cpu}" in
1252 dnl Check for backtrace() support
1253 AC_CHECK_HEADERS([execinfo.h])
1254 AC_CHECK_FUNCS([backtrace])
1259 ALIASES="${ALIASES} cvlc rvlc"
1262 dnl Accelerated modules
1265 dnl Check for fully working MMX intrinsics
1266 dnl We need support for -mmmx, we need <mmintrin.h>, and we also need a
1267 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1268 AC_ARG_ENABLE([mmx],
1269 AS_HELP_STRING([--disable-mmx],
1270 [disable MMX optimizations (default auto)]),,[
1271 case "${host_cpu}" in
1282 AS_IF([test "${enable_mmx}" != "no"], [
1285 CFLAGS="${CFLAGS} -mmmx"
1286 AC_CACHE_CHECK([if $CC groks MMX intrinsics], [ac_cv_c_mmx_intrinsics], [
1287 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1288 [#include <mmintrin.h>
1290 uint64_t frobzor;]], [
1292 a = b = c = (__m64)frobzor;
1293 a = _mm_slli_pi16(a, 3);
1294 a = _mm_adds_pi16(a, b);
1295 c = _mm_srli_pi16(c, 8);
1296 c = _mm_slli_pi16(c, 3);
1297 b = _mm_adds_pi16(b, c);
1298 a = _mm_unpacklo_pi8(a, b);
1299 frobzor = (uint64_t)a;]])], [
1300 ac_cv_c_mmx_intrinsics=yes
1302 ac_cv_c_mmx_intrinsics=no
1306 AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1307 AC_DEFINE(HAVE_MMX_INTRINSICS, 1, [Define to 1 if MMX intrinsics are available.])
1311 CFLAGS="${CFLAGS} -mmmx"
1312 AC_CACHE_CHECK([if $CC groks MMX inline assembly], [ac_cv_mmx_inline], [
1313 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1315 asm volatile("packuswb %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1318 ac_cv_mmx_inline=yes
1323 AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1324 AC_DEFINE(CAN_COMPILE_MMX, 1, [Define to 1 inline MMX assembly is available.])
1328 AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1329 [ac_cv_mmxext_inline], [
1330 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1332 asm volatile("maskmovq %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1335 ac_cv_mmxext_inline=yes
1337 ac_cv_mmxext_inline=no
1341 AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1342 AC_DEFINE(CAN_COMPILE_MMXEXT, 1, [Define to 1 if MMX EXT inline assembly is available.])
1346 AM_CONDITIONAL([HAVE_MMX], [test "${have_mmx}" = "yes"])
1347 AM_CONDITIONAL([HAVE_MMXEXT], [test "${have_mmxext}" = "yes"])
1349 dnl Check for fully workin SSE2 intrinsics
1350 dnl We need support for -msse[2], we need <emmintrin.h>, and we also need a
1351 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1352 AC_ARG_ENABLE([sse],
1353 AS_HELP_STRING([--disable-sse],
1354 [disable SSE (1-4) optimizations (default auto)]),, [
1355 case "${host_cpu}" in
1365 AS_IF([test "${enable_sse}" != "no"], [
1366 ARCH="${ARCH} sse sse2"
1369 CFLAGS="${CFLAGS} -msse2"
1370 AC_CACHE_CHECK([if $CC groks SSE2 intrinsics], [ac_cv_c_sse2_intrinsics], [
1371 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1372 [#include <emmintrin.h>
1374 uint64_t frobzor;]], [
1376 a = b = c = _mm_set1_epi64((__m64)frobzor);
1377 a = _mm_slli_epi16(a, 3);
1378 a = _mm_adds_epi16(a, b);
1379 c = _mm_srli_epi16(c, 8);
1380 c = _mm_slli_epi16(c, 3);
1381 b = _mm_adds_epi16(b, c);
1382 a = _mm_unpacklo_epi8(a, b);
1383 frobzor = (uint64_t)_mm_movepi64_pi64(a);]])], [
1384 ac_cv_c_sse2_intrinsics=yes
1386 ac_cv_c_sse2_intrinsics=no
1390 AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1391 AC_DEFINE(HAVE_SSE2_INTRINSICS, 1, [Define to 1 if SSE2 intrinsics are available.])
1395 CFLAGS="${CFLAGS} -msse"
1396 AC_CACHE_CHECK([if $CC groks SSE inline assembly], [ac_cv_sse_inline], [
1397 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1399 asm volatile("xorps %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1402 ac_cv_sse_inline=yes
1408 AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1409 AC_DEFINE(CAN_COMPILE_SSE, 1, [Define to 1 if SSE inline assembly is available.])
1412 AC_CACHE_CHECK([if $CC groks SSE2 inline assembly], [ac_cv_sse2_inline], [
1413 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1415 asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1418 ac_cv_sse2_inline=yes
1420 ac_cv_sse2_inline=no
1423 AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1424 AC_DEFINE(CAN_COMPILE_SSE2, 1, [Define to 1 if SSE2 inline assembly is available.])
1429 AC_CACHE_CHECK([if $CC groks SSE3 inline assembly], [ac_cv_sse3_inline], [
1430 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1432 asm volatile("movsldup %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1435 ac_cv_sse3_inline=yes
1437 ac_cv_sse3_inline=no
1441 AS_IF([test "${ac_cv_sse3_inline}" != "no"], [
1442 AC_DEFINE(CAN_COMPILE_SSE3, 1, [Define to 1 if SSE3 inline assembly is available.]) ])
1445 AC_CACHE_CHECK([if $CC groks SSSE3 inline assembly], [ac_cv_ssse3_inline], [
1446 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1448 asm volatile("pabsw %%xmm0,%%xmm0"::"r"(p):"xmm0");
1451 ac_cv_ssse3_inline=yes
1453 ac_cv_ssse3_inline=no
1457 AS_IF([test "${ac_cv_ssse3_inline}" != "no"], [
1458 AC_DEFINE(CAN_COMPILE_SSSE3, 1, [Define to 1 if SSSE3 inline assembly is available.]) ])
1461 AC_CACHE_CHECK([if $CC groks SSE4.1 inline assembly],
1462 [ac_cv_sse4_1_inline], [
1463 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1465 asm volatile("pmaxsb %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1468 ac_cv_sse4_1_inline=yes
1470 ac_cv_sse4_1_inline=no
1474 AS_IF([test "${ac_cv_sse4_1_inline}" != "no"], [
1475 AC_DEFINE(CAN_COMPILE_SSE4_1, 1, [Define to 1 if SSE4_1 inline assembly is available.]) ])
1478 AC_CACHE_CHECK([if $CC groks SSE4.2 inline assembly],
1479 [ac_cv_sse4_2_inline], [
1480 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1482 asm volatile("pcmpgtq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1485 ac_cv_sse4_2_inline=yes
1487 ac_cv_sse4_2_inline=no
1491 AS_IF([test "${ac_cv_sse4_2_inline}" != "no"], [
1492 AC_DEFINE(CAN_COMPILE_SSE4_2, 1, [Define to 1 if SSE4_2 inline assembly is available.]) ])
1495 AC_CACHE_CHECK([if $CC groks SSE4A inline assembly], [ac_cv_sse4a_inline], [
1496 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1498 asm volatile("insertq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1501 ac_cv_sse4a_inline=yes
1503 ac_cv_sse4a_inline=no
1507 AS_IF([test "${ac_cv_sse4a_inline}" != "no"], [
1508 AC_DEFINE([CAN_COMPILE_SSE4A], [1], [Define to 1 if SSE4A inline assembly is available.]) ])
1510 AM_CONDITIONAL([HAVE_SSE2], [test "$have_sse2" = "yes"])
1512 dnl Check for fully workin AVX2 intrinsics
1513 dnl We need support for -mavx[2], we need <immintrin.h>, and we also need a
1514 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1515 AC_ARG_ENABLE([avx],
1516 AS_HELP_STRING([--disable-avx],
1517 [disable AVX (1-2) optimizations (default auto)]),, [
1518 case "${host_cpu}" in
1528 AS_IF([test "${enable_avx}" != "no"], [
1529 ARCH="${ARCH} avx avx2"
1532 CFLAGS="${CFLAGS} -mavx2"
1533 AC_CACHE_CHECK([if $CC groks AVX2 intrinsics], [ac_cv_c_avx2_intrinsics], [
1534 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1535 [#include <immintrin.h>
1537 uint64_t frobzor;]], [
1539 a = b = c = _mm256_set1_epi64x((int64_t)frobzor);
1540 a = _mm256_slli_epi16(a, 3);
1541 a = _mm256_adds_epi16(a, b);
1542 c = _mm256_srli_epi16(c, 8);
1543 c = _mm256_slli_epi16(c, 3);
1544 b = _mm256_adds_epi16(b, c);
1545 a = _mm256_unpacklo_epi8(a, b);
1546 frobzor = (uint64_t)_mm256_extract_epi64(a, 0);]])], [
1547 ac_cv_c_avx2_intrinsics=yes
1549 ac_cv_c_avx2_intrinsics=no
1553 AS_IF([test "${ac_cv_c_avx2_intrinsics}" != "no"], [
1554 AC_DEFINE(HAVE_AVX2_INTRINSICS, 1, [Define to 1 if AVX2 intrinsics are available.])
1558 CFLAGS="${CFLAGS} -mavx"
1559 AC_CACHE_CHECK([if $CC groks AVX inline assembly], [ac_cv_avx_inline], [
1560 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1562 asm volatile("xorps256 %%ymm1,%%ymm2"::"r"(p):"ymm1", "ymm2");
1565 ac_cv_avx_inline=yes
1571 AS_IF([test "${ac_cv_avx_inline}" != "no" -a "${SYS}" != "solaris"], [
1572 AC_DEFINE(CAN_COMPILE_AVX, 1, [Define to 1 if AVX inline assembly is available.])
1575 AC_CACHE_CHECK([if $CC groks AVX2 inline assembly], [ac_cv_avx2_inline], [
1576 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1578 asm volatile("punpckhqdq256 %%ymm1,%%ymm2"::"r"(p):"ymm1", "ymm2");
1581 ac_cv_avx2_inline=yes
1583 ac_cv_avx2_inline=no
1587 AS_IF([test "${ac_cv_avx2_inline}" != "no" -a "${SYS}" != "solaris"], [
1588 AC_DEFINE(CAN_COMPILE_AVX2, 1, [Define to 1 if AVX2 inline assembly is available.])
1592 AM_CONDITIONAL([HAVE_AVX2], [test "$have_avx2" = "yes"])
1595 CFLAGS="${CFLAGS} -mmmx"
1597 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly], [ac_cv_3dnow_inline], [
1598 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1600 asm volatile("pfadd %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1603 ac_cv_3dnow_inline=yes
1605 ac_cv_3dnow_inline=no
1609 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1610 AC_DEFINE([CAN_COMPILE_3DNOW], 1,
1611 [Define to 1 if 3D Now! inline assembly is available.])
1614 AM_CONDITIONAL([HAVE_3DNOW], [test "$have_3dnow" = "yes"])
1617 AC_ARG_ENABLE([neon],
1618 AS_HELP_STRING([--disable-neon],
1619 [disable ARM NEON optimizations (default auto)]),, [
1620 case "${host_cpu}" in
1632 AS_IF([test "${enable_neon}" != "no"], [
1634 AC_CACHE_CHECK([if $CCAS groks ARM NEON assembly], [ac_cv_arm_neon], [
1635 AS_IF([test "${enable_neon}" != "64"], [
1636 CFLAGS="${CFLAGS} -mfpu=neon -mhard-float"
1639 asm volatile("vqmovun.s64 d0, q1":::"d0");
1647 CFLAGS="${CFLAGS} -march=armv8-a+simd"
1650 asm volatile("uhadd v0.8b, v0.8b, v1.8b":::"v0");
1661 AM_CONDITIONAL([HAVE_NEON], [test "${ac_cv_arm_neon}" = "32"])
1662 AM_CONDITIONAL([HAVE_ARM64], [test "${ac_cv_arm_neon}" = "64"])
1664 AC_ARG_ENABLE([sve],
1665 AS_HELP_STRING([--disable-sve],
1666 [disable ARM SVE optimizations (default auto)]),, [
1667 AS_IF([test "${host_cpu}" = "aarch64"], [enable_sve="yes"] ,[enable_sve="no"])
1669 AS_IF([test "${enable_sve}" != "no"], [
1671 CFLAGS="${CFLAGS} -march=armv8-a+sve"
1672 AC_CACHE_CHECK([if $CCAS groks ARM SVE assembly], [ac_cv_arm_sve], [
1675 asm volatile("ptrue p0.s" ::: "p0");
1685 AM_CONDITIONAL([HAVE_SVE], [test "${ac_cv_arm_sve}" = "yes"])
1688 AC_ARG_ENABLE([altivec],
1689 AS_HELP_STRING([--disable-altivec],
1690 [disable AltiVec optimizations (default auto)]),, [
1691 AS_CASE("${host_cpu}", [powerpc*],
1692 [enable_altivec=yes], [enable_altivec=no])
1696 AS_IF([test "${enable_altivec}" = "yes"], [
1697 ARCH="${ARCH} altivec";
1699 AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1700 [ac_cv_altivec_inline],
1701 [AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1702 ac_cv_altivec_inline="yes",
1703 [CFLAGS="${CFLAGS} -Wa,-maltivec"
1704 AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1705 [ac_cv_altivec_inline="-Wa,-maltivec"],
1706 ac_cv_altivec_inline=no)
1709 AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1710 AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1711 [Define to 1 if AltiVec inline assembly is available.])
1712 AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1713 ALTIVEC_CFLAGS="${ac_cv_altivec_inline}"
1714 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_altivec_inline}])
1720 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1721 [ac_cv_c_altivec], [
1722 CFLAGS="${CFLAGS} -maltivec"
1723 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1724 [#include <altivec.h>]], [
1725 [vec_ld(0, (unsigned char *)0);]])], [
1726 ac_cv_c_altivec="-maltivec"
1728 ac_cv_c_altivec="no"
1732 AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1733 CPPFLAGS="${CPPFLAGS} ${ac_cv_c_altivec}"
1734 AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, [Define to 1 if C AltiVec extensions are available.])
1735 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_c_altivec}])
1736 ALTIVEC_CFLAGS="$ALTIVEC_CFLAGS ${ac_cv_c_altivec}"
1737 VLC_ADD_CFLAGS([deinterlace],[${ac_cv_c_altivec}])
1740 AC_CHECK_HEADERS([altivec.h])
1743 LDFLAGS="${LDFLAGS} -Wl,-framework,vecLib"
1744 AC_CACHE_CHECK([if linker needs -framework vecLib],
1746 [AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)])
1748 AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1749 VLC_ADD_LIBS([libvlccore],[-Wl,-framework,vecLib])
1752 AC_SUBST([ALTIVEC_CFLAGS])
1753 AM_CONDITIONAL([HAVE_ALTIVEC], [test "$have_altivec" = "yes"])
1758 AC_ARG_ENABLE([optimize-memory],
1759 AS_HELP_STRING([--enable-optimize-memory],
1760 [optimize memory usage over performance]))
1761 if test "${enable_optimize_memory}" = "yes"; then
1762 AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1766 dnl Allow running as root (useful for people running on embedded platforms)
1768 AC_ARG_ENABLE([run-as-root],
1769 AS_HELP_STRING([--enable-run-as-root],
1770 [allow running VLC as root (default disabled)]))
1771 AS_IF([test "${enable_run_as_root}" = "yes"],[
1772 AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1773 [Define to 1 to allow running VLC as root (uid 0).])
1779 AC_ARG_ENABLE([sout],
1780 AS_HELP_STRING([--disable-sout],
1781 [disable streaming output (default enabled)]))
1782 AS_IF([test "${enable_sout}" != "no"], [
1783 AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1785 AM_CONDITIONAL([ENABLE_SOUT], [test "${enable_sout}" != "no"])
1788 AC_ARG_ENABLE([lua],
1789 AS_HELP_STRING([--disable-lua],
1790 [disable LUA scripting support (default enabled)]))
1791 if test "${enable_lua}" != "no"
1793 PKG_CHECK_MODULES(LUA, lua5.2,
1796 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua 5.1 instead])
1798 PKG_CHECK_MODULES(LUA, lua5.1,
1801 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua >= 5.1 instead])
1802 PKG_CHECK_MODULES(LUA, lua >= 5.1,
1805 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying manual detection instead])
1807 AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1810 AC_CHECK_LIB( lua5.2 , luaL_newstate,
1811 [LUA_LIBS="-llua5.2"],
1812 AC_CHECK_LIB( lua5.1 , luaL_newstate,
1813 [LUA_LIBS="-llua5.1"],
1814 AC_CHECK_LIB( lua51 , luaL_newstate,
1815 [LUA_LIBS="-llua51"],
1816 AC_CHECK_LIB( lua , luaL_newstate,
1824 if test "x${have_lua}" != "xyes" ; then
1825 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.])
1827 AC_ARG_VAR([LUAC], [LUA byte compiler])
1828 AS_IF([test -z "$LUAC"], [
1829 AC_CHECK_TOOL(LUAC, [luac], [false])
1831 AS_IF([test "${LUAC}" = "false"], [
1832 AC_MSG_ERROR([Could not find the LUA byte compiler.])
1834 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], [
1835 AC_MSG_ERROR([You need 32-bits luac when using lua from contrib.])
1838 AM_CONDITIONAL([BUILD_LUA], [test "${have_lua}" = "yes"])
1842 dnl VideoLAN manager
1844 AC_ARG_ENABLE([vlm],
1845 AS_HELP_STRING([--disable-vlm],
1846 [disable the stream manager (default enabled)]),,
1847 [enable_vlm="${enable_sout}"])
1848 AS_IF([test "${enable_vlm}" != "no"], [
1849 AS_IF([test "${enable_sout}" = "no"], [
1850 AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1852 AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1854 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1858 dnl Addons manager storage and repositories modules
1860 AC_ARG_ENABLE([addonmanagermodules],
1861 AS_HELP_STRING([--disable-addonmanagermodules],
1862 [disable the addons manager modules (default enabled)]))
1863 if test "${enable_addonmanagermodules}" != "no"
1865 AC_DEFINE(ENABLE_ADDONMANAGERMODULES, 1, [Define if you want the addons manager modules])
1867 AM_CONDITIONAL([ENABLE_ADDONMANAGERMODULES], [test "${enable_addonmanagermodules}" != "no"])
1874 EXTEND_HELP_STRING([Input plugins:])
1877 dnl libarchive access module
1879 PKG_ENABLE_MODULES_VLC([ARCHIVE], [archive], [libarchive >= 3.1.0], (libarchive support), [auto])
1884 AC_ARG_ENABLE([live555],
1885 AS_HELP_STRING([--enable-live555],
1886 [enable RTSP input through live555 (default enabled)]))
1888 AS_IF([test "${enable_live555}" != "no" -a -n "${CXX}"], [
1889 PKG_CHECK_MODULES(LIVE555, live555, [
1890 VLC_ADD_PLUGIN([live555])
1891 VLC_ADD_CXXFLAGS([live555], [$LIVE555_CFLAGS])
1892 VLC_ADD_LIBS([live555],[$LIVE555_LIBS])
1894 AC_MSG_WARN([${LIVE555_PKG_ERRORS}.])
1899 dnl detect include paths
1900 AS_IF([test -f "${CONTRIB_DIR}/include/UsageEnvironment/UsageEnvironment.hh"], [
1901 CPPFLAGS_live555="-I${CONTRIB_DIR}/include/liveMedia -I${CONTRIB_DIR}/include/groupsock -I${CONTRIB_DIR}/include/BasicUsageEnvironment -I${CONTRIB_DIR}/include/UsageEnvironment"
1903 AS_IF([test "${SYS}" != "os2"], [
1904 LIVE555_PREFIX=${LIVE555_PREFIX-"/usr"}
1905 CPPFLAGS_live555="-I${LIVE555_PREFIX}/include/liveMedia -I${LIVE555_PREFIX}/include/groupsock -I${LIVE555_PREFIX}/include/BasicUsageEnvironment -I${LIVE555_PREFIX}/include/UsageEnvironment"
1907 LIVE555_PREFIX=${LIVE555_PREFIX-"/usr/lib/live"}
1908 CPPFLAGS_live555="-I${LIVE555_PREFIX}/liveMedia/include -I${LIVE555_PREFIX}/groupsock/include -I${LIVE555_PREFIX}/BasicUsageEnvironment/include -I${LIVE555_PREFIX}/UsageEnvironment/include"
1909 LDFLAGS_live555="-L${LIVE555_PREFIX}/liveMedia -L${LIVE555_PREFIX}/groupsock -L${LIVE555_PREFIX}/BasicUsageEnvironment -L${LIVE555_PREFIX}/UsageEnvironment"
1914 AS_IF([test "${SYS}" = "solaris"], [
1915 CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1917 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1918 LDFLAGS="${LDFLAGS} ${LDFLAGS_live555}"
1921 AC_CACHE_CHECK([for live555 version 1324598400 or later], [ac_cv_live555], [
1922 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
1923 [#include <liveMedia_version.hh>
1924 #if !defined (LIVEMEDIA_LIBRARY_VERSION_INT) || (LIVEMEDIA_LIBRARY_VERSION_INT < 1324598400)
1934 AS_IF([test "$ac_cv_live555" = "no"], [
1935 AC_MSG_WARN([live555 is missing or its installed version is too old:
1936 Version 2011.12.23 or later is required to proceed.
1937 You can get an updated one from http://www.live555.com/liveMedia .])
1938 AS_IF([test -n "${enable_live555}"], [
1939 AC_MSG_ERROR([Update live555 or pass --disable-live555 to disable RTSP input support.])
1942 other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1943 other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
1944 AS_IF([test "${SYS}" = "mingw32"], [
1945 # add ws2_32 for closesocket, select, recv
1946 other_libs="$other_libs -lws2_32"
1949 dnl We need to check for pic because live555 don't provide shared libs
1950 dnl and we want to build a plugins so we need -fPIC on some arch.
1951 VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1952 VLC_ADD_LDFLAGS([live555], [${LDFLAGS_live555}])
1953 AC_CHECK_LIB([liveMedia_pic], [main], [
1954 VLC_ADD_PLUGIN([live555])
1955 VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
1957 AC_CHECK_LIB([liveMedia], [main], [
1958 VLC_ADD_PLUGIN([live555])
1959 VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1960 ],[],[${other_libs}])
1961 ],[${other_libs_pic}])
1969 dnl IIDC and DV FireWire input modules
1971 PKG_ENABLE_MODULES_VLC([DC1394], [], [libdc1394-2 >= 2.1.0], [IIDC FireWire input module], [auto])
1972 PKG_ENABLE_MODULES_VLC([DV1394], [], [libraw1394 >= 2.0.1 libavc1394 >= 0.5.3], [DV FireWire input module], [auto])
1975 dnl - linsys modules: access module check for libzvbi
1977 AC_ARG_ENABLE([linsys],
1978 AS_HELP_STRING([--enable-linsys],
1979 [Linux Linear Systems Ltd. SDI and HD-SDI input cards (default enabled)]))
1980 AS_IF([test "$SYS" = "linux" -a "${enable_linsys}" != "no"], [
1981 VLC_ADD_PLUGIN([linsys_hdsdi])
1982 PKG_CHECK_MODULES(LINSYS_SDI, [zvbi-0.2 >= 0.2.28], [
1983 VLC_ADD_PLUGIN([linsys_sdi])
1985 AC_MSG_WARN([${LINSYS_SDI_PKG_ERRORS}.])
1990 dnl dvdread module: check for libdvdread
1992 PKG_ENABLE_MODULES_VLC([DVDREAD], [], [dvdread > 6.0.0], [dvdread input module], [auto])
1995 dnl libdvdnav plugin
1997 PKG_ENABLE_MODULES_VLC([DVDNAV], [], [dvdnav >= 6.0.0], [DVD with navigation input module (dvdnav)], [auto])
2000 dnl Blu-ray Disc Support with libbluray
2002 PKG_ENABLE_MODULES_VLC([BLURAY], [libbluray], [libbluray >= 0.6.2], (libbluray for Blu-ray disc support ) )
2005 dnl OpenCV wrapper and example filters
2007 PKG_ENABLE_MODULES_VLC([OPENCV], [opencv_example opencv_wrapper], [opencv > 2.0], (OpenCV (computer vision) filter), [auto])
2011 dnl libsmbclient plugin
2013 PKG_ENABLE_MODULES_VLC([SMBCLIENT], [smbc], [smbclient], (SMB/CIFS support), [auto])
2016 dnl liBDSM access module
2018 AM_CONDITIONAL([HAVE_DSM], [test "$AS_TR_SH(with_dsm)" = "yes"])
2019 PKG_WITH_MODULES([DSM], [libdsm >= 0.2.0], [
2020 VLC_ADD_PLUGIN([dsm])
2021 VLC_ADD_CFLAGS([dsm], [$DSM_CFLAGS])
2022 VLC_ADD_LIBS([dsm], [$DSM_LIBS])
2024 ],,[libdsm SMB/CIFS access/sd module], [auto])
2025 AM_CONDITIONAL([HAVE_DSM], [test "${have_dsm}" = "yes"])
2028 dnl sftp access support
2030 PKG_ENABLE_MODULES_VLC([SFTP], [sftp], [libssh2], (support SFTP file transfer via libssh2), [auto])
2033 dnl nfs access support
2035 PKG_ENABLE_MODULES_VLC([NFS], [nfs], [libnfs >= 1.10.0], (support nfs protocol via libnfs), [auto])
2038 dnl smb2 access support
2040 PKG_ENABLE_MODULES_VLC([SMB2], [smb2], [libsmb2 >= 2.0.0], (support smb2 protocol via libsmb2), [auto])
2045 AC_ARG_ENABLE([v4l2], AS_HELP_STRING([--disable-v4l2],
2046 [disable Video4Linux version 2 (default auto)]))
2048 AS_IF([test "$enable_v4l2" != "no"], [
2049 AC_CHECK_HEADERS([linux/videodev2.h], [
2053 AM_CONDITIONAL([HAVE_V4L2], [test "${have_v4l2}" != "no"])
2056 dnl special access module for Blackmagic SDI cards
2058 AC_ARG_ENABLE([decklink],
2059 AS_HELP_STRING([--disable-decklink],
2060 [disable Blackmagic DeckLink SDI input (default auto)]))
2061 AC_ARG_WITH([decklink_sdk],
2062 AS_HELP_STRING([--with-decklink-sdk=DIR],
2063 [location of Blackmagic DeckLink SDI SDK]))
2065 if test "${enable_decklink}" != "no"
2067 if test "${with_decklink_sdk}" != "no" -a -n "${with_decklink_sdk}"
2069 VLC_ADD_CPPFLAGS([decklink decklinkoutput stream_out_sdi],[-I${with_decklink_sdk}/include])
2072 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_decklink}"
2074 AC_CHECK_HEADERS([DeckLinkAPIDispatch.cpp], [
2076 AS_IF([test "${SYS}" = "darwin"], [
2077 VLC_ADD_LIBS([decklink decklinkoutput],[-Wl,-framework,CoreFoundation])
2080 AS_IF([test "${enable_decklink}" = "yes"], [
2081 AC_MSG_ERROR([Blackmagic DeckLink SDI include files not found!])
2083 AC_MSG_WARN([Blackmagic DeckLink SDI include files not found, decklink disabled])
2089 AM_CONDITIONAL([HAVE_DECKLINK], [ test "${have_decklink}" != "no" ])
2093 dnl Built-in CD-DA and VCD module
2095 AC_ARG_ENABLE([vcd],
2096 AS_HELP_STRING([--disable-vcd],
2097 [disable built-in VCD and CD-DA support (default enabled)]))
2099 AC_ARG_ENABLE([libcddb],
2100 AS_HELP_STRING([--disable-libcddb],
2101 [disable CDDB for Audio CD (default enabled)]))
2103 if test "${enable_vcd}" != "no" -a "${enable_winstore_app}" != "yes"
2105 AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2106 AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2108 VLC_ADD_PLUGIN([vcd cdda])
2113 AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2114 AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2116 VLC_ADD_PLUGIN([vcd cdda])
2117 AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2122 AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2123 AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2125 VLC_ADD_PLUGIN([vcd cdda])
2126 AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2131 if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32" -o "${SYS}" = "os2" -o "${SYS}" = "darwin"
2133 VLC_ADD_PLUGIN([vcd cdda])
2136 if test "$enable_libcddb" != "no"; then
2137 PKG_CHECK_MODULES(LIBCDDB, [libcddb >= 0.9.5], [
2139 AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2140 VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2141 VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2143 [AC_MSG_WARN([${LIBCDDB_PKG_ERRORS}: CDDB access disabled.])
2151 AC_CACHE_CHECK([for Linux DVB version 5.1], [ac_cv_linux_dvb_5_1], [
2152 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
2153 [#include <linux/dvb/version.h>
2154 #if (DVB_API_VERSION < 5)
2155 # error Linux DVB API v3.2 and older are not supported.
2157 #if (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR < 1)
2158 # error Linux DVB API v5.0 is unsupported. Please update.
2161 ac_cv_linux_dvb_5_1=yes
2163 ac_cv_linux_dvb_5_1=no
2165 AM_CONDITIONAL([HAVE_LINUX_DVB], [test "$ac_cv_linux_dvb_5_1" = "yes"])
2168 dnl Screen capture module
2170 AC_ARG_ENABLE([screen],
2171 AS_HELP_STRING([--enable-screen],
2172 [disable screen capture (default enabled)]))
2173 if test "${enable_screen}" != "no"; then
2174 if test "${SYS}" = "darwin"; then
2175 AC_CHECK_HEADERS([ApplicationServices/ApplicationServices.h], [
2176 VLC_ADD_PLUGIN([screen])
2180 AM_CONDITIONAL([HAVE_MAC_SCREEN], [test "${SYS}" = "darwin" -a "x${enable_screen}" != "xno"])
2183 dnl VNC/RFB access module
2185 PKG_ENABLE_MODULES_VLC([VNC], [vnc], [libvncclient >= 0.9.9], (VNC/rfb client support), [auto])
2187 dnl RDP/Remote Desktop access module
2189 PKG_ENABLE_MODULES_VLC([FREERDP], [rdp], [freerdp >= 1.0.1], (RDP/Remote Desktop client support) )
2193 AC_SUBST([have_avfoundation], ["no"])
2194 AC_ARG_ENABLE([macosx-avfoundation],
2195 AS_HELP_STRING([--enable-macosx-avfoundation], [Mac OS X avcapture (video) module (default enabled on Mac OS X)]))
2196 if test "x${enable_macosx_avfoundation}" != "xno" &&
2197 (test "${SYS}" = "darwin" || test "${enable_macosx_avfoundation}" = "yes")
2199 SAVED_LIBS="${LIBS}"
2200 LIBS="-framework AVFoundation"
2201 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [])],[have_avfoundation=yes],[have_avfoundation=no])
2202 LIBS="${SAVED_LIBS}"
2203 if test "${have_avfoundation}" != "no"
2205 VLC_ADD_PLUGIN([avcapture])
2208 AM_CONDITIONAL([HAVE_AVFOUNDATION], [test "${have_avfoundation}" != "no"])
2211 dnl DCP plugin (using asdcplib)
2213 PKG_WITH_MODULES([ASDCP], [asdcplib], [have_asdcp="yes"])
2214 AM_CONDITIONAL([HAVE_ASDCP], [test "${have_asdcp}" = "yes"])
2220 EXTEND_HELP_STRING([Mux/Demux plugins:])
2223 dnl libdvbpsi check for ts mux/demux
2226 PKG_WITH_MODULES([DVBPSI], [libdvbpsi >= 1.2.0], [have_dvbpsi="yes"])
2227 AM_CONDITIONAL([HAVE_DVBPSI], [test "${have_dvbpsi}" = "yes"])
2231 dnl GME demux plugin
2233 AC_ARG_ENABLE([gme],
2234 AS_HELP_STRING([--enable-gme],
2235 [use Game Music Emu (default auto)]))
2236 AS_IF([test "${enable_gme}" != "no"], [
2237 AC_CHECK_HEADER([gme/gme.h], [
2238 AC_CHECK_LIB([gme], [gme_identify_header], [
2239 VLC_ADD_PLUGIN([gme])
2241 AC_CHECK_LIB([gme], [gme_identify_extension], [
2242 VLC_ADD_LIBS([gme], [-lstdc++ $LIBM])
2243 VLC_ADD_PLUGIN([gme])
2244 ],, [-lstdc++ $LIBM])
2246 VLC_ADD_LIBS([gme], [-lgme])
2248 AS_IF([test "x${enable_gme}" != "x"], [
2249 AC_MSG_ERROR([GME cannot be found. Please install the development files.])
2258 AC_ARG_ENABLE([sid],
2259 AS_HELP_STRING([--enable-sid],[C64 sid demux support (default auto)]))
2260 AS_IF([test "${enable_sid}" != "no"], [
2261 PKG_CHECK_MODULES(SID, [libsidplay2], [
2263 oldCPPFLAGS="$CPPFLAGS"
2264 CPPFLAGS="$CPPFLAGS $SID_CFLAGS"
2265 AC_CHECK_HEADER([sidplay/builders/resid.h], [
2266 VLC_ADD_PLUGIN([sid])
2267 VLC_ADD_CFLAGS([sid], [$SID_CFLAGS])
2268 VLC_ADD_LIBS([sid], [$SID_LIBS] [-lresid-builder])
2270 AS_IF([test -n "${enable_sid}"],
2271 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2272 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2275 CPPFLAGS="$oldCPPFLAGS"
2278 AS_IF([test "x${enable_sid}" = "xyes"],
2279 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2280 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2287 dnl ogg demux plugin
2289 PKG_ENABLE_MODULES_VLC([OGG], [mux_ogg], [ogg >= 1.0], [Ogg demux support], [auto])
2290 PKG_CHECK_MODULES(LIBVORBIS, [vorbis >= 1.1], [
2291 AC_DEFINE(HAVE_LIBVORBIS, 1, [Define to 1 if you have the libvorbis])
2293 PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto], [${LIBVORBIS_CFLAGS}], [${LIBVORBIS_LIBS}])
2294 if test "${enable_sout}" != "no"; then
2295 dnl Check for libshout
2296 PKG_ENABLE_MODULES_VLC([SHOUT], [access_output_shout], [shout >= 2.1], [libshout output plugin], [auto])
2300 dnl matroska demux plugin
2302 PKG_WITH_MODULES([MATROSKA], [libebml libmatroska], [
2303 VLC_ADD_PLUGIN([mkv])
2304 VLC_ADD_CFLAGS([mkv], [$MATROSKA_CFLAGS])
2305 VLC_ADD_LIBS([mkv], [$MATROSKA_LIBS])
2307 ],,[MKV format support], [auto])
2308 AM_CONDITIONAL([HAVE_MATROSKA], [test "${have_matroska}" = "yes"])
2311 dnl modplug demux plugin
2313 AC_ARG_ENABLE([mod],
2314 AS_HELP_STRING([--disable-mod],
2315 [do not use libmodplug (default auto)]))
2316 if test "${enable_mod}" != "no" ; then
2317 PKG_CHECK_MODULES(LIBMODPLUG, [libmodplug >= 0.8.4 libmodplug != 0.8.8], [
2318 VLC_ADD_PLUGIN([mod])
2319 VLC_ADD_CXXFLAGS([mod],[$LIBMODPLUG_CFLAGS])
2320 VLC_ADD_CFLAGS([mod],[$LIBMODPLUG_CFLAGS]) #modules/demux/mod.c needs CFLAGS_mod, not CXXFLAGS_mod
2321 VLC_ADD_LIBS([mod],[$LIBMODPLUG_LIBS])
2323 AS_IF([test -n "${enable_mod}"],
2324 [AC_MSG_ERROR([${LIBMODPLUG_PKG_ERRORS}.])],
2325 [AC_MSG_WARN([${LIBMODPLUG_PKG_ERRORS}.])])
2330 dnl mpc demux plugin
2332 AC_ARG_ENABLE([mpc],
2333 AS_HELP_STRING([--disable-mpc], [do not use libmpcdec (default auto)]))
2334 if test "${enable_mpc}" != "no"
2336 AC_CHECK_HEADERS([mpcdec/mpcdec.h], [
2337 VLC_ADD_PLUGIN([mpc])
2338 VLC_ADD_LIBS([mpc],[-lmpcdec])])
2345 EXTEND_HELP_STRING([Codec plugins:])
2348 dnl shine encoder plugin
2350 PKG_ENABLE_MODULES_VLC([SHINE], [], [shine >= 3.0.0], [MPEG Audio Layer 3 encoder], [auto], [], [], [])
2354 dnl openmax il codec plugin
2356 AC_ARG_ENABLE([omxil],
2357 AS_HELP_STRING([--enable-omxil], [openmax il codec module (default disabled)]))
2358 if test "${enable_omxil}" = "yes"
2360 VLC_ADD_PLUGIN([omxil])
2364 dnl raspberry pi openmax il configuration
2366 AC_ARG_ENABLE([rpi-omxil],
2367 AS_HELP_STRING([--enable-rpi-omxil], [openmax il configured for raspberry pi (default disabled)]))
2368 if test "${enable_rpi_omxil}" = "yes"
2370 VLC_ADD_PLUGIN([omxil])
2371 VLC_ADD_CFLAGS([omxil],[-DRPI_OMX])
2375 dnl CrystalHD codec plugin
2377 AC_ARG_ENABLE([crystalhd],
2378 AS_HELP_STRING([--enable-crystalhd], [crystalhd codec plugin (default auto)]))
2379 if test "${enable_crystalhd}" != "no"; then
2380 AC_CHECK_HEADER(libcrystalhd/libcrystalhd_if.h, [
2381 VLC_ADD_PLUGIN([crystalhd])
2382 VLC_ADD_LIBS([crystalhd], [-lcrystalhd])
2384 if test "${SYS}" = "mingw32" ; then
2385 AC_CHECK_HEADERS([libcrystalhd/bc_dts_defs.h], [
2386 VLC_ADD_PLUGIN([crystalhd])
2387 AC_CHECK_HEADERS([libcrystalhd/bc_drv_if.h], [
2388 VLC_ADD_LIBS([crystalhd], [-lbcmDIL])
2391 AS_IF([test x"${enable_crystalhd}" = "xyes"],
2392 [AC_MSG_ERROR("Could not find CrystalHD development headers")],
2393 [AC_MSG_WARN("Could not find CrystalHD development headers")])
2394 ],[#define __LINUX_USER__
2395 #include <libcrystalhd/bc_dts_types.h>
2399 #include <libcrystalhd/bc_dts_types.h>
2410 AC_ARG_WITH(mad, AS_HELP_STRING([--with-mad=PATH], [path to libmad]), [
2415 AS_IF([test "${with_mad}" != "no"], [
2416 MAD_CFLAGS="-I${with_mad}/include"
2417 MAD_LIBS="-L${with_mad}/lib"
2420 AC_ARG_ENABLE([mad],
2421 AS_HELP_STRING([--enable-mad], [libmad module (default enabled)]))
2422 AS_IF([test "${enable_mad}" != "no"], [
2424 CPPFLAGS="${CPPFLAGS} ${MAD_CFLAGS}"
2425 LDFLAGS="${LDFLAGS} ${MAD_LIBS}"
2426 AC_CHECK_HEADERS([mad.h], [
2427 AC_CHECK_LIB([mad], [mad_bit_init], [
2429 MAD_LIBS="${MAD_LIBS} -lmad"
2433 AS_IF([test -n "$enable_mad" -a "${have_mad}" = "no"], [
2434 AC_MSG_ERROR([Could not find libmad. Install it or pass --disable-mad to disable it.])
2437 AC_SUBST([MAD_CFLAGS])
2438 AC_SUBST([MAD_LIBS])
2439 AM_CONDITIONAL([HAVE_MAD], [test "${have_mad}" = "yes"])
2444 PKG_ENABLE_MODULES_VLC([MPG123], [mpg123], [libmpg123], [libmpg123 decoder support], [auto])
2449 AC_ARG_ENABLE([gst-decode],
2450 AS_HELP_STRING([--enable-gst-decode], [GStreamer based decoding support (currently supports only video decoding) (default auto)]))
2452 have_gst_decode="no"
2453 AS_IF([test "${enable_gst_decode}" != "no"], [
2454 PKG_CHECK_MODULES([GST_APP], [gstreamer-app-1.0], [
2455 PKG_CHECK_MODULES([GST_VIDEO], [gstreamer-video-1.0], [
2456 have_gst_decode="yes"
2458 AC_MSG_WARN([${GST_VIDEO_PKG_ERRORS}. GStreamer decoder module will not be built.])
2461 AC_MSG_WARN([${GST_APP_PKG_ERRORS}. GStreamer modules will not be built.])
2464 AM_CONDITIONAL([HAVE_GST_DECODE], [test "${have_gst_decode}" = "yes"])
2467 dnl avcodec decoder/encoder plugin
2469 AC_ARG_ENABLE([merge-ffmpeg],
2470 AS_HELP_STRING([--enable-merge-ffmpeg], [merge FFmpeg-based plugins (default disabled)]),, [
2471 enable_merge_ffmpeg="no"
2473 AM_CONDITIONAL([MERGE_FFMPEG], [test "$enable_merge_ffmpeg" != "no"])
2475 AC_MSG_CHECKING([for libavutil variant])
2476 PKG_CHECK_EXISTS([libavutil], [
2477 libavutil_version="$(${PKG_CONFIG} --modversion libavutil)"
2478 libavutil_micro="${libavutil_version##*.}"
2479 AS_IF([test ${libavutil_micro} -le 99], [
2487 AC_MSG_RESULT([${avfork}])
2489 AC_ARG_ENABLE([avcodec],
2490 AS_HELP_STRING([--enable-avcodec], [libavcodec codec (default enabled)]))
2491 AS_IF([test "${enable_avcodec}" != "no"], [
2492 dnl We need >=57.16.0 from libav or >=57.37.100 from ffmpeg
2494 libav) av_codec_ver="57.16.0" ;;
2495 dnl 05f66706d182eb0c36af54d72614bf4c33e957a9 includes libavutil 55.9.0
2496 ffmpeg) av_codec_ver="57.37.100" ;;
2497 dnl 7fc329e2dd6226dfecaa4a1d7adf353bf2773726 include libavutil 55.22.101
2498 *) AC_MSG_ERROR([Missing libav or FFmpeg. Pass --disable-avcodec to ignore this error.])
2500 PKG_CHECK_MODULES(AVCODEC,[libavcodec >= ${av_codec_ver} libavutil >= 55.9.0], [
2502 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2503 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2504 AC_CHECK_HEADERS([libavcodec/avcodec.h])
2505 AC_CHECK_HEADERS([libavutil/avutil.h])
2509 AC_MSG_ERROR([${AVCODEC_PKG_ERRORS}. Pass --disable-avcodec to ignore this error.])
2514 AM_CONDITIONAL([HAVE_AVCODEC], [test "${have_avcodec}" != "no"])
2517 dnl libva needs avcodec
2519 AC_ARG_ENABLE([libva],
2520 AS_HELP_STRING([--enable-libva], [VAAPI GPU decoding support (libVA) (default auto)]))
2522 AS_IF([test "${enable_libva}" = "yes" -a "${have_avcodec}" != "yes" ], [
2523 AC_MSG_ERROR([--enable-libva and --disable-avcodec options are mutually exclusive. Use --enable-avcodec.])
2530 AS_IF([test "${enable_libva}" != "no"], [
2531 PKG_CHECK_MODULES([LIBVA], [libva >= 0.38], [
2534 AS_IF([test -n "${enable_libva}"], [
2535 AC_MSG_ERROR([${LIBVA_PKG_ERRORS}.])
2537 AC_MSG_WARN([${LIBVA_PKG_ERRORS}.])
2540 PKG_CHECK_MODULES([LIBVA_DRM], [libva-drm], [
2541 have_vaapi_drm="yes"
2543 AC_MSG_WARN([${LIBVA_DRM_PKG_ERRORS}.])
2545 PKG_CHECK_MODULES(LIBVA_X11, [libva-x11], [
2546 have_vaapi_x11="yes"
2548 AC_MSG_WARN([${LIBVA_X11_PKG_ERRORS}.])
2550 PKG_CHECK_MODULES(LIBVA_WL, [libva-wayland], [
2553 AC_MSG_WARN([${LIBVA_WL_PKG_ERRORS}.])
2556 AM_CONDITIONAL([HAVE_VAAPI], [test "${have_vaapi}" = "yes"])
2557 AM_CONDITIONAL([HAVE_VAAPI_DRM], [test "${have_vaapi_drm}" = "yes"])
2558 AM_CONDITIONAL([HAVE_VAAPI_X11], [test "${have_vaapi_x11}" = "yes"])
2559 AM_CONDITIONAL([HAVE_VAAPI_WL], [test "${have_vaapi_wl}" = "yes"])
2561 have_avcodec_vaapi="no"
2562 AS_IF([test "${have_vaapi}" = "yes" -a "${have_avcodec}" = "yes"], [
2564 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2565 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2566 AC_CHECK_HEADERS([libavcodec/vaapi.h], [
2567 AC_MSG_NOTICE([VA API acceleration activated])
2568 have_avcodec_vaapi="yes"
2570 AS_IF([test -n "${enable_libva}"], [
2571 AC_MSG_ERROR([libva is present but libavcodec/vaapi.h is missing])
2573 AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing ])
2578 AM_CONDITIONAL([HAVE_AVCODEC_VAAPI], [test "${have_avcodec_vaapi}" = "yes"])
2581 dnl dxva2 needs avcodec
2583 AC_ARG_ENABLE([dxva2],
2584 AS_HELP_STRING([--enable-dxva2], [DxVA2 GPU decoding support (default auto)]))
2586 have_avcodec_dxva2="no"
2587 AS_IF([test "${enable_dxva2}" != "no"], [
2588 if test "${SYS}" = "mingw32"; then
2589 AS_IF([test "x${have_avcodec}" = "xyes"], [
2590 AC_CHECK_HEADERS([dxva2api.h],
2592 AC_CHECK_HEADERS([libavcodec/dxva2.h], [
2593 AC_MSG_NOTICE([DxVA2 acceleration activated])
2594 have_avcodec_dxva2="yes"
2596 AS_IF([test "${enable_dxva2}" = "yes"],
2597 [AC_MSG_ERROR([dxva2 is present but libavcodec/dxva2.h is missing])],
2598 [AC_MSG_WARN([dxva2 is present but libavcodec/dxva2.h is missing ])])
2599 ], [#undef _WIN32_WINNT
2600 /* DXVA2 is only available in Vista and above */
2601 #define _WIN32_WINNT 0x600])
2603 AS_IF([test "${enable_dxva2}" = "yes"],
2604 [AC_MSG_ERROR([Could not find required dxva2api.h])],
2605 [AC_MSG_WARN([dxva2api.h not found])])
2606 ],[#include <d3d9.h>])
2608 AS_IF([test "x${enable_dxva2}" != "x"], [
2609 AC_MSG_ERROR([--enable-dxva2 and --disable-avcodec options are mutually exclusive.])
2614 AM_CONDITIONAL([HAVE_AVCODEC_DXVA2], [test "${have_avcodec_dxva2}" = "yes"])
2617 dnl d3d11va needs avcodec
2619 AC_ARG_ENABLE([d3d11va],
2620 AS_HELP_STRING([--enable-d3d11va], [D3D11 GPU decoding support (default auto)]))
2622 have_avcodec_d3d11va="no"
2623 AS_IF([test "${enable_d3d11va}" != "no"], [
2624 if test "${SYS}" = "mingw32"; then
2625 AS_IF([test "x${have_avcodec}" = "xyes"], [
2626 AC_CHECK_TYPES([ID3D11VideoDecoder],
2628 AC_CHECK_HEADERS([dxva2api.h],
2630 AC_CHECK_HEADERS([libavcodec/d3d11va.h], [
2631 AC_MSG_NOTICE([D3D11 acceleration activated])
2632 AC_DEFINE([HAVE_AVCODEC_D3D11VA], [1], [Define if the d3d11va module is built])
2633 have_avcodec_d3d11va="yes"
2635 AS_IF([test "${enable_d3d11va}" = "yes"],
2636 [AC_MSG_ERROR([d3d11va is present but libavcodec/d3d11va.h is missing])],
2637 [AC_MSG_WARN([d3d11va is present but libavcodec/d3d11va.h is missing ])])
2638 ], [#undef _WIN32_WINNT
2639 /* D3D11 is only available in Vista and above */
2640 #define _WIN32_WINNT 0x600])
2642 AS_IF([test "${enable_d3d11va}" = "yes"],
2643 [AC_MSG_ERROR([Could not find required dxva2api.h])],
2644 [AC_MSG_WARN([dxva2api.h not found])])
2645 ],[#include <d3d9.h>])
2647 AS_IF([test "${enable_d3d11va}" = "yes"],
2648 [AC_MSG_ERROR([Could not find required ID3D11VideoDecoder in d3d11.h])],
2649 [AC_MSG_WARN([ID3D11VideoDecoder not found])])
2650 ], [#include <d3d11.h>])
2652 AS_IF([test "x${enable_d3d11va}" != "x"], [
2653 AC_MSG_ERROR([--enable-d3d11va and --disable-avcodec options are mutually exclusive.])
2658 AM_CONDITIONAL([HAVE_AVCODEC_D3D11VA], [test "${have_avcodec_d3d11va}" = "yes"])
2663 AC_CHECK_HEADERS([dxgidebug.h dxgi1_6.h])
2666 dnl avformat demuxer/muxer plugin
2669 AC_ARG_ENABLE([avformat],
2670 AS_HELP_STRING([--enable-avformat], [libavformat containers (default enabled)]),, [
2671 enable_avformat="${have_avcodec}"
2674 AS_IF([test "${enable_avformat}" != "no"], [
2675 PKG_CHECK_MODULES(AVFORMAT,[libavformat >= 53.21.0 libavcodec libavutil], [
2678 CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2679 CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2680 AC_CHECK_HEADERS([libavformat/avformat.h libavformat/avio.h])
2681 AC_CHECK_HEADERS([libavcodec/avcodec.h])
2682 AC_CHECK_HEADERS([libavutil/avutil.h])
2683 AS_IF([test "$enable_merge_ffmpeg" = "no"], [
2688 AC_MSG_ERROR([${AVFORMAT_PKG_ERRORS}. Pass --disable-avformat to ignore this error.])
2691 AM_CONDITIONAL([HAVE_AVFORMAT], [test "${enable_avformat}" != "no"])
2694 dnl swscale image scaling and conversion plugin
2697 AC_ARG_ENABLE([swscale],
2698 AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
2699 (default enabled)]))
2700 if test "${enable_swscale}" != "no"
2702 PKG_CHECK_MODULES(SWSCALE,[libswscale],
2705 CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
2706 CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
2707 AC_CHECK_HEADERS([libswscale/swscale.h])
2708 AC_CHECK_HEADERS([libavutil/avutil.h])
2709 VLC_ADD_PLUGIN([swscale])
2710 VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
2711 VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
2712 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2713 VLC_ADD_LIBS([swscale],[${ac_cv_ld_bsymbolic}])
2717 AC_MSG_ERROR([${SWSCALE_PKG_ERRORS}. Pass --disable-swscale to ignore this error. Proper software scaling and some video chroma conversion will be missing.])
2725 AC_ARG_ENABLE([postproc],
2726 AS_HELP_STRING([--enable-postproc], [libpostproc image post-processing (default auto)]))
2727 if test "${enable_postproc}" != "no"
2729 PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
2732 CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
2733 CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
2734 AC_CHECK_HEADERS([postproc/postprocess.h])
2735 VLC_ADD_PLUGIN([postproc])
2738 AC_MSG_WARN([${POSTPROC_PKG_ERRORS}.])
2743 dnl faad decoder plugin
2745 AC_ARG_ENABLE([faad],
2746 AS_HELP_STRING([--enable-faad], [faad codec (default auto)]))
2748 AS_IF([test "${enable_faad}" != "no"], [
2749 AC_CHECK_HEADERS([neaacdec.h], [
2750 AC_CHECK_LIB([faad], [NeAACDecOpen], [have_faad="yes"],, [$LIBM])
2752 AS_IF([test "${have_faad}" = "yes"], [
2753 VLC_ADD_PLUGIN([faad])
2754 VLC_ADD_LIBS([faad],[-lfaad])
2756 AS_IF([test "${enable_faad}" = "yes"], [
2757 AC_MSG_ERROR([cannot find FAAD library])
2759 AC_MSG_WARN([cannot find FAAD library])
2766 dnl AOM decoder plugin
2768 PKG_ENABLE_MODULES_VLC([AOM], [], [aom], [experimental AV1 codec (default auto)])
2771 dnl Dav1d decoder plugin
2773 PKG_ENABLE_MODULES_VLC([DAV1D], [], [dav1d], [AV1 decoder (default auto)])
2776 dnl libvpx decoder plugin
2778 AC_ARG_ENABLE([vpx],
2779 AS_HELP_STRING([--enable-vpx],[libvpx VP8/VP9 encoder and decoder (default auto)]))
2780 AS_IF([test "${enable_vpx}" != "no"],[
2781 PKG_CHECK_MODULES([VPX], [vpx >= 1.5.0], [
2782 VLC_ADD_PLUGIN([vpx])
2783 VLC_ADD_CPPFLAGS([vpx], [${VPX_CFLAGS}])
2784 VLC_ADD_LIBS([vpx], [${VPX_LIBS}])
2785 AC_CHECK_LIB([vpx],[vpx_codec_vp8_dx], [
2786 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP8_DECODER])
2787 ], [], [${VPX_LIBS}])
2788 AC_CHECK_LIB([vpx],[vpx_codec_vp9_dx], [
2789 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP9_DECODER])
2790 ], [], [${VPX_LIBS}])
2791 AC_CHECK_LIB([vpx],[vpx_codec_vp8_cx], [
2792 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP8_ENCODER])
2793 ], [], [${VPX_LIBS}])
2794 AC_CHECK_LIB([vpx],[vpx_codec_vp9_cx], [
2795 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP9_ENCODER])
2796 ], [], [${VPX_LIBS}])
2798 AS_IF([test "${enable_vpx}" = "yes"],[
2799 AC_MSG_ERROR([libvpx 1.5.0 or higher was not found])
2804 dnl twolame encoder plugin
2806 PKG_ENABLE_MODULES_VLC([TWOLAME], [], [twolame], [MPEG Audio Layer 2 encoder], [auto], [], [], [ -DLIBTWOLAME_STATIC])
2809 dnl fdk-aac encoder plugin
2811 PKG_ENABLE_MODULES_VLC([FDKAAC], [], [fdk-aac], [FDK-AAC encoder], [disabled])
2815 dnl A52/AC3 decoder plugin
2817 AC_ARG_ENABLE([a52],
2818 AS_HELP_STRING([--enable-a52], [A/52 support with liba52 (default enabled)]))
2819 if test "${enable_a52}" != "no"
2822 AS_HELP_STRING([--with-a52=PATH], [a52 headers and libraries]))
2823 if test -z "${with_a52}"
2828 LDFLAGS_test="-L${with_a52}/lib"
2829 CPPFLAGS_test="-I${with_a52}/include"
2832 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_test} ${CPPFLAGS_a52}"
2833 LDFLAGS="${LDFLAGS} ${LDFLAGS_test} ${LIBS_a52}"
2834 AC_CHECK_HEADERS([a52dec/a52.h], [
2835 AC_CHECK_LIB([a52], [a52_free], [
2836 VLC_ADD_PLUGIN([a52])
2837 VLC_ADD_LIBS([a52],[${LDFLAGS_test} -la52 $LIBM])
2838 VLC_ADD_CPPFLAGS([a52],[${CPPFLAGS_test}])
2840 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.])
2843 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.])
2849 dnl DTS Coherent Acoustics decoder plugin
2851 PKG_ENABLE_MODULES_VLC([DCA], [dca], [libdca >= 0.0.5], [DTS Coherent Acoustics support with libdca], [auto])
2856 PKG_ENABLE_MODULES_VLC([FLAC], [], [flac], [libflac decoder/encoder support], [auto])
2861 PKG_ENABLE_MODULES_VLC([LIBMPEG2], [], [libmpeg2 > 0.3.2], [libmpeg2 decoder support], [auto])
2866 PKG_ENABLE_MODULES_VLC([VORBIS], [], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
2871 AC_ARG_ENABLE([tremor],
2872 AS_HELP_STRING([--enable-tremor], [Tremor decoder support (default disabled)]))
2873 if test "${enable_tremor}" = "yes"
2875 AC_CHECK_HEADERS([tremor/ivorbiscodec.h], [
2876 VLC_ADD_PLUGIN([tremor])
2883 PKG_ENABLE_MODULES_VLC([SPEEX], [], [ogg speex >= 1.0.5], [Speex support], [auto])
2885 AS_IF([test "${enable_speex}" != "no"], [
2886 PKG_CHECK_MODULES([SPEEXDSP], [speexdsp], [
2889 AC_MSG_WARN([${SPEEXDSP_PKG_ERRORS}.])
2892 AM_CONDITIONAL([HAVE_SPEEXDSP], [test "$have_speexdsp" = "yes"])
2897 PKG_ENABLE_MODULES_VLC([OPUS], [], [ogg opus >= 1.0.3], [Opus support], [auto])
2900 dnl Ambisonic channel mixer and binauralizer plugin
2902 PKG_ENABLE_MODULES_VLC([SPATIALAUDIO], [], [spatialaudio], [Ambisonic channel mixer and binauralizer], [auto])
2905 dnl theora decoder plugin
2907 PKG_ENABLE_MODULES_VLC([THEORA], [], [ogg theoradec >= 1.0 theoraenc], [experimental theora codec], [auto])
2910 dnl OggSpots decoder plugin
2912 PKG_ENABLE_MODULES_VLC([OGGSPOTS], [], [ogg], [experimental OggSpots codec], [auto])
2915 dnl Daala decoder plugin
2917 PKG_ENABLE_MODULES_VLC([DAALA], [], [daaladec daalaenc], [experimental daala codec], [disabled])
2920 dnl schroedinger decoder plugin (for dirac format video)
2922 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [], [schroedinger-1.0 >= 1.0.10], [dirac decoder and encoder using schroedinger], [auto])
2925 dnl PNG decoder module
2927 AC_ARG_ENABLE([png],
2928 AS_HELP_STRING([--enable-png], [PNG support (default enabled)]))
2929 AS_IF([test "${enable_png}" != "no"], [
2930 AC_CHECK_HEADERS([png.h], [
2932 LDFLAGS="${LDFLAGS} -lz $LIBM"
2933 AC_CHECK_LIB([png], [png_set_alpha_mode], [
2934 VLC_ADD_PLUGIN([png])
2941 dnl JPEG decoder module
2943 AC_ARG_ENABLE([jpeg],
2944 AS_HELP_STRING([--enable-jpeg], [JPEG support (default enabled)]))
2945 AS_IF([test "${enable_jpeg}" != "no"], [
2946 AC_CHECK_HEADERS([jpeglib.h], [
2947 VLC_ADD_PLUGIN([jpeg])
2952 dnl BPG decoder module
2954 AC_ARG_ENABLE([bpg],
2955 AS_HELP_STRING([--enable-bpg], [BPG support (default disabled)]))
2956 AS_IF([test "${enable_bpg}" != "no"], [
2957 AC_CHECK_HEADERS([libbpg.h], [
2958 VLC_ADD_PLUGIN([bpg])
2963 dnl H262 encoder plugin (lib262)
2965 AC_ARG_ENABLE([x262],
2966 AS_HELP_STRING([--enable-x262], [H262 encoding support with static libx262 (default disabled)]))
2967 if test "${enable_x262}" != "no"; then
2968 PKG_CHECK_MODULES(X262, x262, [
2969 VLC_ADD_PLUGIN([x262])
2970 VLC_ADD_LDFLAGS([x262],[${X262_LIBS}])
2971 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2972 VLC_ADD_LIBS([x262],[${av_cv_ld_bsymbolic}])
2974 VLC_ADD_CFLAGS([x262],[${X262_CFLAGS}])
2975 if echo ${X262_LIBS} |grep -q 'pthreadGC2'; then
2976 VLC_ADD_CFLAGS([x262], [-DPTW32_STATIC_LIB])
2979 if test "${enable_x262}" = "yes"; then
2980 AC_MSG_ERROR([x262 module doesn't work without staticly compiled libx262.a])
2986 PKG_ENABLE_MODULES_VLC([X265],, [x265], [HEVC/H.265 encoder], [auto])
2989 dnl H264 encoder plugin (using libx264)
2991 AC_ARG_ENABLE([x264],
2992 AS_HELP_STRING([--enable-x264], [H264 encoding support with libx264 (default enabled)]))
2993 if test "${enable_x264}" != "no"; then
2994 PKG_CHECK_MODULES(X264,x264 >= 0.148, [
2995 VLC_ADD_PLUGIN([x264])
2996 VLC_ADD_LIBS([x264],[${X264_LIBS}])
2998 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2999 VLC_ADD_LDFLAGS([x264],[${ac_cv_ld_bsymbolic}])
3002 VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3003 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3004 VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3007 if test "${enable_x264}" = "yes"; then
3008 AC_MSG_ERROR([${X264_PKG_ERRORS}: you may get it from http://www.videolan.org/x264.html])
3014 dnl H264 encoder plugin (libx264 > 153)
3016 AC_ARG_ENABLE([x26410b],
3017 AS_HELP_STRING([--enable-x26410b], [H264 10-bit encoding support with libx264 (default enabled)]))
3018 if test "${enable_x26410b}" != "no"; then
3019 PKG_CHECK_MODULES(X26410b,x264 >= 0.153, [
3020 VLC_ADD_PLUGIN([x26410b])
3021 VLC_ADD_LIBS([x26410b],[${X264_LIBS}])
3023 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
3024 VLC_ADD_LDFLAGS([x26410b],[${ac_cv_ld_bsymbolic}])
3027 VLC_ADD_CFLAGS([x26410b],[${X264_CFLAGS}])
3028 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3029 VLC_ADD_CFLAGS([x26410b], [-DPTW32_STATIC_LIB])
3032 if test "${enable_x26410b}" = "yes"; then
3033 AC_MSG_ERROR([${X264_PKG_ERRORS}: you may get it from http://www.videolan.org/x264.html])
3040 dnl Intel QuickSync (aka MediaSDK) H264/H262 encoder
3042 PKG_ENABLE_MODULES_VLC([MFX], [qsv], [libmfx], [Intel QuickSync MPEG4-Part10/MPEG2 (aka H.264/H.262) encoder], [auto])
3045 dnl libfluidsynth (MIDI synthetizer) plugin
3047 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [], [fluidsynth >= 1.1.2], [MIDI synthetiser with libfluidsynth], [auto])
3048 PKG_ENABLE_MODULES_VLC([FLUIDLITE], [fluidsynth], [fluidlite], [MIDI synthetiser with libfluidsynth], [auto])
3049 AC_CHECK_HEADERS([fluidlite.h], [AC_SUBST([FLUIDSYNTH_LIBS], ${FLUIDLITE_LIBS})])
3052 dnl Teletext Modules
3053 dnl vbi decoder plugin (using libzbvi)
3057 AC_ARG_ENABLE([zvbi],
3058 AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
3059 libzvbi (default enabled)]))
3060 AC_ARG_ENABLE([telx],
3061 AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
3062 zvbi) (default enabled if zvbi is absent)]))
3064 AS_IF( [test "${enable_zvbi}" != "no"],[
3065 PKG_CHECK_MODULES(ZVBI, [zvbi-0.2 >= 0.2.28],
3067 VLC_ADD_PLUGIN([zvbi])
3068 AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
3069 AS_IF( [test "${enable_telx}" = "yes"],[
3070 AC_MSG_WARN([The zvbi and telx modules are incompatible. Using zvbi.])
3073 AC_MSG_WARN([${ZVBI_PKG_ERRORS}. Enabling the telx module instead.])
3076 AS_IF( [test "${enable_telx}" != "no" ],[
3077 VLC_ADD_PLUGIN([telx])
3081 dnl ARIB subtitles rendering module
3083 AC_ARG_ENABLE([aribsub],
3084 AS_HELP_STRING([--enable-aribsub],[ARIB Subtitles support (default enabled)]))
3085 AS_IF( [test "${enable_aribsub}" != "no" ],[
3086 PKG_CHECK_MODULES(ARIBB24, [aribb24 >= 1.0.1], [
3088 VLC_ADD_PLUGIN([aribsub])
3089 VLC_ADD_LIBS([aribsub],[-laribb24])
3090 AC_DEFINE(HAVE_ARIBB24, 1, [Define if libaribb24 is available.])
3092 AC_MSG_WARN(Library [aribb24] needed for [aribsub] was not found)
3096 AM_CONDITIONAL([HAVE_ARIBB24], [test x"${have_aribb24}" = x"yes"])
3101 PKG_ENABLE_MODULES_VLC([ARIBB25], [aribcam], [aribb25 >= 0.2.6], [ARIB STD-B25], [auto])
3104 dnl kate decoder plugin
3106 PKG_ENABLE_MODULES_VLC([KATE], [], [kate >= 0.3.0], [kate codec], [auto])
3109 dnl tiger rendering for kate decoder plugin
3111 AC_ARG_ENABLE([tiger],
3112 AS_HELP_STRING([--enable-tiger], [Tiger rendering library for Kate streams (default auto)]))
3113 AS_IF([test "${enable_tiger}" != "no"], [
3114 PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
3115 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])],[
3116 AS_IF([test -n "${enable_tiger}"], [
3117 AC_MSG_ERROR([${TIGER_PKG_ERRORS}.])
3123 dnl check if we can build the css selector engine
3125 AC_ARG_ENABLE([css],
3126 AS_HELP_STRING([--enable-css], [CSS selector engine (default auto)]))
3127 AS_IF([test "${enable_css}" != "no"], [
3129 AC_DEFINE(HAVE_CSS, 1, [Define if CSS engine is built])
3131 AM_CONDITIONAL([ENABLE_CSS], [test "${with_css}" = "yes"])
3138 EXTEND_HELP_STRING([Video plugins:])
3141 dnl libplacebo support
3143 AC_ARG_ENABLE([libplacebo],
3144 AS_HELP_STRING([--disable-libplacebo],
3145 [disable libplacebo support (default auto)]))
3147 AS_IF([test "$enable_libplacebo" != "no"], [
3148 PKG_CHECK_MODULES([LIBPLACEBO], [libplacebo >= 0.5], [
3149 AC_DEFINE([HAVE_LIBPLACEBO], [1], [Define to 1 if libplacebo is enabled.])
3150 PKG_CHECK_MODULES([LIBPLACEBO], [libplacebo >= 1.7],
3151 [have_libplacebo_vk="yes"], [have_libplacebo_vk="no"])
3153 AS_IF([test -n "${enable_libplacebo}"], [
3154 AC_MSG_ERROR([${LIBPLACEBO_PKG_ERRORS}.])
3156 enable_libplacebo="no"
3159 AM_CONDITIONAL([HAVE_LIBPLACEBO], [test "$enable_libplacebo" != "no"])
3164 PKG_CHECK_MODULES([EGL], [egl], [
3169 AM_CONDITIONAL([HAVE_EGL], [test "${have_egl}" = "yes"])
3172 PKG_CHECK_MODULES([GL], [gl], [
3175 AC_MSG_CHECKING([for OpenGL])
3176 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
3178 # include <GL/glew.h>
3182 [int t0 = GL_TEXTURE0;]])
3186 AS_IF([test "${SYS}" != "mingw32"], [
3189 GL_LIBS="-lopengl32"
3192 AC_MSG_RESULT([${have_gl}])
3194 AM_CONDITIONAL([HAVE_GL], [test "${have_gl}" = "yes"])
3195 AS_IF([test "${have_gl}" = "yes"], [
3196 AC_DEFINE([HAVE_GL], 1, [Defined if having OpenGL])
3199 dnl OpenGL ES 2: depends on EGL 1.1
3200 PKG_ENABLE_MODULES_VLC([GLES2], [], [glesv2], [OpenGL ES v2 support], [disabled])
3205 AC_ARG_ENABLE(vulkan,
3206 [AS_HELP_STRING([--disable-vulkan],
3207 [disable Vulkan support (default auto)])])
3209 AS_IF([test "$enable_vulkan" != "no"], [
3210 AS_IF([test "$have_libplacebo_vk" = "yes"], [
3211 PKG_CHECK_MODULES([VULKAN], [vulkan >= 1.0.26], [
3212 AC_DEFINE([HAVE_VULKAN], [1], [Define to 1 if vulkan is enabled.])
3214 AS_IF([test -n "${enable_vulkan}"], [
3215 AC_MSG_ERROR([${VULKAN_PKG_ERRORS}.])
3220 AS_IF([test -n "${enable_vulkan}"], [
3221 AC_MSG_ERROR([Vulkan support requires libplacebo 1.7 as well. Do not use --disable-libplacebo.])
3226 AM_CONDITIONAL(HAVE_VULKAN, [test "$enable_vulkan" != "no"])
3233 AC_CHECK_HEADERS([X11/Xlib.h])
3236 dnl X C Bindings modules
3238 AC_ARG_ENABLE([xcb],
3239 AS_HELP_STRING([--enable-xcb], [X11 support with XCB (default enabled)]),, [
3240 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "darwin"], [
3248 have_xkbcommon_x11="no"
3249 have_xcb_keysyms="no"
3250 AS_IF([test "${enable_xcb}" != "no"], [
3254 PKG_CHECK_MODULES([XCB], [xcb >= 1.6],, [
3255 xcb_err="$xcb_err ${XCB_PKG_ERRORS}."])
3256 PKG_CHECK_MODULES([XCB_COMPOSITE], [xcb-composite],, [
3257 xcb_err="$xcb_err ${XCB_COMPOSITE_PKG_ERRORS}."])
3258 PKG_CHECK_MODULES([XCB_RANDR], [xcb-randr >= 1.3],, [
3259 xcb_err="$xcb_err ${XCB_RANDR_PKG_ERRORS}."])
3260 PKG_CHECK_MODULES([XCB_RENDER], [xcb-render],, [
3261 xcb_err="$xcb_err ${XCB_RENDER_PKG_ERRORS}."])
3262 PKG_CHECK_MODULES([XCB_SHM], [xcb-shm >= 1.9.2],, [
3263 xcb_err="$xcb_err ${XCB_SHM_PKG_ERRORS}."])
3264 PKG_CHECK_MODULES([XCB_XKB], [xcb-xkb],, [
3265 xcb_err="$xcb_err ${XCB_XKB_PKG_ERRORS}."])
3268 PKG_CHECK_MODULES(XPROTO, [xproto],, [
3269 xcb_err="$xcb_err ${XPROTO_PKG_ERRORS}."])
3271 AS_IF([test -n "$xcb_err"], [
3272 AC_MSG_ERROR([$xcb_err Pass --disable-xcb to skip X11 support.])
3276 PKG_CHECK_MODULES([XKBCOMMON_X11], [xkbcommon-x11], [
3277 have_xkbcommon_x11="yes"
3279 AC_MSG_WARN([${XKBCOMMON_X11_PKG_ERRORS}. Hotkeys are disabled.])
3283 PKG_CHECK_MODULES([XCB_KEYSYMS], [xcb-keysyms >= 0.3.4], [
3284 have_xcb_keysyms="yes"
3286 AC_MSG_WARN([${XCB_KEYSYMS_PKG_ERRORS}. Global hotkeys are disabled.])
3291 AM_CONDITIONAL([HAVE_XCB], [test "${have_xcb}" = "yes"])
3292 AM_CONDITIONAL([HAVE_XKBCOMMON_X11], [test "${have_xkbcommon_x11}" = "yes"])
3293 AM_CONDITIONAL([HAVE_XCB_KEYSYMS], [test "${have_xcb_keysyms}" = "yes"])
3299 AC_ARG_ENABLE([vdpau],
3300 [AS_HELP_STRING([--enable-vdpau], [VDPAU hardware support (default auto)])])
3302 AS_IF([test "${enable_vdpau}" != "no"], [
3303 PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.6], [
3305 AS_IF([test "${no_x}" = "yes"], [
3306 AC_MSG_ERROR([VDPAU requires Xlib (X11).])
3309 AS_IF([test -n "${enable_vdpau}"], [
3310 AC_MSG_ERROR([${VDPAU_PKG_ERRORS}.])
3314 AM_CONDITIONAL([HAVE_VDPAU], [test "${have_vdpau}" = "yes"])
3316 have_avcodec_vdpau="no"
3317 AS_IF([test "${have_vdpau}" = "yes" -a "${have_avcodec}" = "yes"], [
3319 libav) av_vdpau_ver="56.10.0" ;;
3320 ffmpeg) av_vdpau_ver="56.19.100" ;;
3322 PKG_CHECK_EXISTS([libavcodec >= ${av_vdpau_ver}], [
3323 have_avcodec_vdpau="yes"
3324 AC_MSG_NOTICE([VDPAU decoding acceleration activated])
3326 AS_IF([test -n "${enable_vdpau}"], [
3327 AC_MSG_ERROR([libavcodec >= 56.10.0 is required for VDPAU decoding.])
3329 AC_MSG_WARN([libavcodec >= 56.10.0 are required for VDPAU decoding.])
3333 AM_CONDITIONAL([HAVE_AVCODEC_VDPAU], [test "${have_avcodec_vdpau}" = "yes"])
3339 AC_ARG_ENABLE([wayland],
3340 AS_HELP_STRING([--enable-wayland], [Wayland support (default auto)]))
3343 AS_IF([test "${enable_wayland}" != "no"], [
3347 PKG_CHECK_MODULES([WAYLAND_CLIENT], [wayland-client >= 1.5.91],, [
3348 wl_err="$wl_err ${WAYLAND_CLIENT_PKG_ERRORS}."
3350 PKG_CHECK_MODULES([WAYLAND_CURSOR], [wayland-cursor],, [
3351 wl_err="$wl_err ${WAYLAND_CURSOR_PKG_ERRORS}."
3353 PKG_CHECK_MODULES([WAYLAND_EGL], [wayland-egl],, [
3354 wl_err="$wl_err ${WAYLAND_EGL_PKG_ERRORS}."
3356 PKG_CHECK_MODULES([WAYLAND_SCANNER], [wayland-scanner >= 1.15], [
3357 WAYLAND_SCANNER="$(${PKG_CONFIG} wayland-scanner --variable wayland_scanner)"
3359 wl_err="$wl_err ${WAYLAND_SCANNER_PKG_ERRORS}."
3362 dnl wayland-protocols
3363 PKG_CHECK_MODULES([WAYLAND_PROTOCOLS], [wayland-protocols >= 1.15], [
3364 WAYLAND_PROTOCOLS="$(${PKG_CONFIG} wayland-protocols --variable pkgdatadir)"
3366 wl_err="$wl_err ${WAYLAND_PROTOCOLS_PKG_ERRORS}."
3369 AS_IF([test -n "$wl_err"], [
3370 AS_IF([test -n "$enable_wayland"], [
3371 AC_MSG_ERROR([$wl_err])
3373 AC_MSG_WARN([$wl_err])
3380 PKG_CHECK_MODULES([XKBCOMMON], [xkbcommon], [
3381 have_xkbcommon="yes"
3383 AC_MSG_WARN([${XKBCOMMON_PKG_ERRORS}. Hotkeys are disabled.])
3386 AM_CONDITIONAL([HAVE_WAYLAND], [test "${have_wayland}" = "yes"])
3387 AC_SUBST([WAYLAND_PROTOCOLS])
3388 AC_SUBST([WAYLAND_SCANNER])
3389 AM_CONDITIONAL([HAVE_XKBCOMMON], [test "${have_xkbcommon}" = "yes"])
3393 dnl SDL image decoder module
3395 AC_ARG_ENABLE([sdl-image],
3396 AS_HELP_STRING([--enable-sdl-image], [SDL image support (default enabled)]))
3397 AS_IF([test "${enable_sdl_image}" != "no"],[
3398 PKG_CHECK_MODULES(SDL_IMAGE, [SDL_image >= 1.2.10], [
3399 VLC_ADD_PLUGIN([sdl_image])
3401 AC_MSG_WARN([${SDL_IMAGE_PKG_ERRORS}. You should install it alongside your SDL package.])
3408 AC_ARG_ENABLE([freetype],
3409 AS_HELP_STRING([--enable-freetype], [freetype support (default auto)]))
3410 AC_ARG_ENABLE([fribidi],
3411 AS_HELP_STRING([--enable-fribidi], [fribidi support (default auto)]))
3412 AC_ARG_ENABLE([harfbuzz],
3413 AS_HELP_STRING([--enable-harfbuzz], [harfbuzz support (default auto)]))
3414 AC_ARG_ENABLE([fontconfig],
3415 AS_HELP_STRING([--enable-fontconfig], [fontconfig support (default auto)]))
3417 AC_ARG_WITH([default-font],
3418 AS_HELP_STRING([--with-default-font=PATH],
3419 [Path to the default font]),
3420 [AC_DEFINE_UNQUOTED([DEFAULT_FONT_FILE],
3421 "$withval", [Default font])])
3422 AC_ARG_WITH([default-monospace-font],
3423 AS_HELP_STRING([--with-default-monospace-font=PATH],
3424 [Path to the default font]),
3425 [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FONT_FILE],
3426 "$withval", [Default monospace font])])
3428 AC_ARG_WITH([default-font-family],
3429 AS_HELP_STRING([--with-default-font-family=NAME],
3430 [Name of the default font family]),
3431 [AC_DEFINE_UNQUOTED([DEFAULT_FAMILY],
3432 "$withval", [Default font family])])
3433 AC_ARG_WITH([default-monospace-font-family],
3434 AS_HELP_STRING([--with-default-monospace-font-family=NAME],
3435 [Name of the default font family]),
3436 [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FAMILY],
3437 "$withval", [Default monospace font family])])
3440 have_fontconfig="no"
3444 if test "${enable_freetype}" != "no"; then
3445 PKG_CHECK_MODULES(FREETYPE, freetype2, [
3447 VLC_ADD_CPPFLAGS([skins2],[${FREETYPE_CFLAGS}])
3448 VLC_ADD_LIBS([skins2],[${FREETYPE_LIBS}])
3450 dnl fontconfig support
3451 AS_IF([test "${enable_fontconfig}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "darwin"], [
3452 PKG_CHECK_MODULES(FONTCONFIG, [fontconfig >= 2.11], [
3453 have_fontconfig="yes"
3455 AC_MSG_WARN([${FONTCONFIG_PKG_ERRORS}. Styles will be disabled in FreeType.])
3460 if test "${enable_fribidi}" != "no"; then
3461 PKG_CHECK_MODULES(FRIBIDI, fribidi, [
3463 VLC_ADD_CPPFLAGS([skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
3464 VLC_ADD_LIBS([skins2], [${FRIBIDI_LIBS}])
3465 ],[AC_MSG_WARN([${FRIBIDI_PKG_ERRORS}. Bidirectional text and complex scripts (Arabic, Farsi, Thai...) will be disabled in FreeType.])])
3468 dnl harfbuzz support
3469 if test "${have_fribidi}" != "no"; then
3470 if test "${enable_harfbuzz}" != "no"; then
3471 PKG_CHECK_MODULES(HARFBUZZ, harfbuzz, [
3473 VLC_ADD_CPPFLAGS([skins2], [${HARFBUZZ_CFLAGS} -DHAVE_HARFBUZZ])
3474 VLC_ADD_LIBS([skins2], [${HARFBUZZ_LIBS}])
3475 ],[AC_MSG_WARN([${HARFBUZZ_PKG_ERRORS}. Support for complex scripts (Arabic, Farsi, Thai...) will be disabled in FreeType.])])
3479 AS_IF([test -n "${enable_freetype}"],[
3480 AC_MSG_ERROR([${FREETYPE_PKG_ERRORS}. Install FreeType2 development or configure with --disable-freetype.])
3485 AM_CONDITIONAL([HAVE_FREETYPE], [test "${have_freetype}" = "yes"])
3486 AM_CONDITIONAL([HAVE_FONTCONFIG], [test "${have_fontconfig}" = "yes"])
3487 AM_CONDITIONAL([HAVE_FRIBIDI], [test "${have_fribidi}" = "yes"])
3488 AM_CONDITIONAL([HAVE_HARFBUZZ], [test "${have_harfbuzz}" = "yes"])
3491 dnl libass subtitle rendering module
3493 AC_ARG_ENABLE([libass],
3494 AS_HELP_STRING([--enable-libass], [Subtitle support using libass (default enabled)]))
3495 AS_IF( [test "${enable_libass}" != "no"], [
3496 PKG_CHECK_MODULES(LIBASS, [libass >= 0.9.8],
3498 VLC_ADD_PLUGIN([libass])
3500 if test "${have_fontconfig}" != "no"; then
3501 VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
3502 VLC_ADD_LIBS([libass],[${FONTCONFIG_LIBS}])
3505 AC_MSG_WARN([${LIBASS_PKG_ERRORS}.])
3510 dnl SAPI (text to Speech renderer for Windows)
3513 AC_CHECK_TYPES([ISpObjectToken],[
3515 ],[AC_MSG_WARN([sapi.h not found. Text to Speech renderer for Windows disabled])],
3516 [#include <windows.h>
3518 #include <sphelper.h>])
3519 AM_CONDITIONAL([HAVE_SAPI], [test "${have_sapi}" = "yes"])
3523 dnl SVG module (text rendering and image decoding)
3525 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3526 PKG_ENABLE_MODULES_VLC([SVGDEC], [], [librsvg-2.0 >= 2.9.0 cairo >= 1.13.1], [SVG image decoder library],[auto])
3529 dnl Windows DirectX module
3532 AC_ARG_ENABLE([directx],
3533 AS_HELP_STRING([--enable-directx],
3534 [Microsoft DirectX support (default enabled on Windows)]),, [
3535 AS_IF([test "${SYS}" = "mingw32"], [
3536 enable_directx="yes"
3541 AS_IF([test "${enable_directx}" != "no"], [
3543 AC_CHECK_HEADERS([GL/glew.h], [
3544 AC_CHECK_HEADERS([GL/wglew.h], [
3545 VLC_ADD_PLUGIN([glwin32 wgl])
3547 #include <windows.h>
3548 #include <GL/glew.h>
3550 #include <windows.h>
3554 AC_CHECK_HEADERS([d3d11.h], [
3555 VLC_ADD_PLUGIN([direct3d11 direct3d11_filters])
3559 AC_CHECK_HEADERS([d3d9.h], [
3560 VLC_ADD_PLUGIN([direct3d9])
3561 AC_CHECK_HEADERS([d3dx9effect.h])
3563 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
3564 [[#define COBJMACROS
3566 #include <dxva2api.h>
3567 #ifndef IDirectXVideoProcessorService_GetVideoProcessorDeviceGuids
3568 # error dxva2 too old
3572 VLC_ADD_PLUGIN([direct3d9_filters])
3574 [AC_MSG_WARN([Could not find required IDirectXVideoDecoder in dxva2api.h])])
3580 dnl Linux framebuffer module
3582 AC_CHECK_HEADER([linux/fb.h], [
3583 VLC_ADD_PLUGIN([fb])
3587 dnl Linux kernel mode setting module
3589 PKG_ENABLE_MODULES_VLC([KMS], [], [libdrm >= 2.4.83], [Linux kernel mode setting output], [auto])
3594 PKG_ENABLE_MODULES_VLC([CACA], [], [caca >= 0.99.beta14], [libcaca output],[auto])
3599 AC_ARG_ENABLE([kva],
3600 AS_HELP_STRING([--enable-kva],
3601 [support the K Video Accelerator KVA (default enabled on OS/2)]),, [
3602 AS_IF([test "$SYS" = "os2"], [
3608 AS_IF([test "$enable_kva" != "no"], [
3609 AC_CHECK_HEADERS([kva.h], [
3611 AC_CHECK_LIB([kva], [main], [
3616 AC_SUBST([KVA_LIBS])
3617 AM_CONDITIONAL([HAVE_KVA], [test "${have_kva}" = "yes"])
3622 AC_ARG_ENABLE([mmal],
3623 AS_HELP_STRING([--enable-mmal],
3624 [Multi-Media Abstraction Layer (MMAL) hardware plugin (default enable)]))
3625 if test "${enable_mmal}" != "no"; then
3627 LDFLAGS="${LDFLAGS} -L/opt/vc/lib -lvchostif"
3628 CPPFLAGS="${CPPFLAGS} -isystem /opt/vc/include -isystem /opt/vc/include/interface/vcos/pthreads -isystem /opt/vc/include/interface/vmcs_host/linux"
3629 AC_CHECK_HEADERS([interface/mmal/mmal.h],
3630 [ AC_CHECK_LIB([bcm_host], [vc_tv_unregister_callback_full], [
3632 VLC_ADD_PLUGIN([mmal])
3633 VLC_ADD_LDFLAGS([mmal],[ -L/opt/vc/lib ])
3634 VLC_ADD_CFLAGS([mmal],[ -isystem /opt/vc/include -isystem /opt/vc/include/interface/vcos/pthreads -isystem /opt/vc/include/interface/vmcs_host/linux ])
3635 VLC_ADD_LIBS([mmal],[ -lbcm_host -lmmal -lmmal_core -lmmal_components -lmmal_util -lvchostif ]) ], [
3636 AS_IF([test "${enable_mmal}" = "yes"],
3637 [ AC_MSG_ERROR([Cannot find bcm library...]) ],
3638 [ AC_MSG_WARN([Cannot find bcm library...]) ])
3641 ] , [ AS_IF([test "${enable_mmal}" = "yes"],
3642 [ AC_MSG_ERROR([Cannot find development headers for mmal...]) ],
3643 [ AC_MSG_WARN([Cannot find development headers for mmal...]) ]) ])
3646 AM_CONDITIONAL([HAVE_MMAL], [test "${have_mmal}" = "yes"])
3652 EXTEND_HELP_STRING([Audio plugins:])
3655 dnl Pulseaudio module
3657 AC_ARG_ENABLE([pulse],
3658 AS_HELP_STRING([--enable-pulse],
3659 [use the PulseAudio client library (default auto)]))
3661 AS_IF([test "${enable_pulse}" != "no"], [
3662 PKG_CHECK_MODULES([PULSE], [libpulse >= 1.0], [
3665 AS_IF([test "x${enable_pulse}" != "x"], [
3666 AC_MSG_ERROR([$PULSE_PKG_ERRORS. PulseAudio 1.0 or later required.])
3670 AM_CONDITIONAL([HAVE_PULSE], [test "${have_pulse}" = "yes"])
3675 AC_ARG_ENABLE([alsa],
3676 AS_HELP_STRING([--enable-alsa],
3677 [support the Advanced Linux Sound Architecture (default auto)]),, [
3678 AS_IF([test "$SYS" = "linux" -a "${have_pulse}" = "no"], [
3683 AS_IF([test "${enable_alsa}" != "no"], [
3684 PKG_CHECK_MODULES([ALSA], [alsa >= 1.0.24], [
3687 AS_IF([test "x${enable_alsa}" != "x"], [
3688 AC_MSG_ERROR([$ALSA_PKG_ERRORS. alsa-lib 1.0.24 or later required. Pass --disable-alsa to ignore this error.])
3692 AM_CONDITIONAL([HAVE_ALSA], [test "${have_alsa}" = "yes"])
3695 dnl Open Sound System module
3697 AC_ARG_ENABLE([oss],
3698 AS_HELP_STRING([--enable-oss],
3699 [support the Open Sound System OSS (default enabled on FreeBSD/NetBSD/DragonFlyBSD)]),, [
3700 AS_IF([test "$SYS" = "mingw32" -o "$SYS" = "linux" -o "$SYS" = "openbsd"], [
3706 AS_IF([test "$enable_oss" != "no"], [
3707 AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
3709 AC_CHECK_LIB([ossaudio], [main], [
3710 OSS_LIBS="-lossaudio"
3714 AC_SUBST([OSS_LIBS])
3715 AM_CONDITIONAL([HAVE_OSS], [test "${have_oss}" = "yes"])
3718 dnl OpenBSD sndio module
3720 AC_ARG_ENABLE([sndio],
3721 AS_HELP_STRING([--disable-sndio],
3722 [support the OpenBSD sndio (default auto)]),, [
3723 AS_IF([test "$SYS" = "openbsd"], [
3728 AS_IF([test "$enable_sndio" != "no"], [
3729 AC_CHECK_HEADER([sndio.h], [
3733 AM_CONDITIONAL([HAVE_SNDIO], [test "${have_sndio}" = "yes"])
3736 dnl Windows Audio Session plugin
3738 AC_ARG_ENABLE([wasapi],
3739 AS_HELP_STRING([--enable-wasapi],
3740 [use the Windows Audio Session API (default auto)])
3743 AS_IF([test "$enable_wasapi" != "no"], [
3744 AC_CHECK_HEADER([audioclient.h], [
3747 AS_IF([test "x${enable_wasapi}" != "x"], [
3748 AC_MSG_ERROR([Windows Audio Session API not found.])
3752 AM_CONDITIONAL([HAVE_WASAPI], [test "${have_wasapi}" = "yes"])
3757 AC_ARG_ENABLE([jack],
3758 AS_HELP_STRING([--disable-jack],
3759 [do not use jack (default auto)]))
3761 AS_IF([test "${enable_jack}" != "no"], [
3762 PKG_CHECK_MODULES(JACK, jack >= 1.9.7,
3765 AC_MSG_WARN([${JACK_PKG_ERRORS}, trying jack1 instead])
3767 PKG_CHECK_MODULES(JACK, jack >= 0.120.1 jack < 1.0,
3770 AS_IF([test -n "${enable_jack}"],
3771 [AC_MSG_ERROR([${JACK_PKG_ERRORS}.])],
3772 [AC_MSG_WARN([${JACK_PKG_ERRORS}.])])
3776 AM_CONDITIONAL([HAVE_JACK], [test "${have_jack}" != "no"])
3779 dnl OpenSLES Android
3781 AC_ARG_ENABLE([opensles],
3782 AS_HELP_STRING([--enable-opensles], [Android OpenSL ES audio module (default disabled)]))
3783 if test "${HAVE_ANDROID}" = "1"; then
3784 if test "${enable_opensles}" = "yes"; then
3785 AC_CHECK_HEADERS([SLES/OpenSLES.h],
3786 [ VLC_ADD_PLUGIN([opensles_android]) ],
3787 [ AC_MSG_ERROR([cannot find OpenSLES headers])] )
3794 AC_ARG_ENABLE([tizen_audio],
3795 AS_HELP_STRING([--enable-tizen-audio],
3796 [Tizen audio module (default enabled on Tizen)]),, [
3797 AS_IF([test "$HAVE_TIZEN" = "1"], [
3798 enable_tizen_audio="yes"
3801 if test "${enable_tizen_audio}" = "yes"; then
3802 AC_CHECK_HEADERS([audio_io.h],
3803 [ VLC_ADD_PLUGIN([tizen_audio]) ],
3804 [ AC_MSG_ERROR([cannot find Tizen audio_io headers])] )
3808 dnl libsamplerate plugin
3810 PKG_ENABLE_MODULES_VLC([SAMPLERATE], [], [samplerate], [Resampler with libsamplerate], [auto])
3815 PKG_ENABLE_MODULES_VLC([SOXR], [], [soxr >= 0.1.2], [SoX Resampler library], [auto])
3820 AC_ARG_ENABLE([kai],
3821 AS_HELP_STRING([--enable-kai],
3822 [support the K Audio Interface KAI (default enabled on OS/2)]),, [
3823 AS_IF([test "$SYS" = "os2"], [
3829 AS_IF([test "$enable_kai" != "no"], [
3830 AC_CHECK_HEADERS([kai.h], [
3832 AC_CHECK_LIB([kai], [main], [
3837 AC_SUBST([KAI_LIBS])
3838 AM_CONDITIONAL([HAVE_KAI], [test "${have_kai}" = "yes"])
3841 dnl chromaprint audio track fingerprinter
3843 m4_pushdef([libchromaprint_version], 0.6.0)
3844 PKG_WITH_MODULES([CHROMAPRINT],[libchromaprint >= libchromaprint_version],
3845 VLC_ADD_PLUGIN([stream_out_chromaprint]),
3846 AS_IF([test "${enable_chromaprint}" = "yes"],
3847 [AC_MSG_ERROR(Library [libchromaprint >= libchromaprint_version] needed for [chromaprint] was not found)],
3848 [AC_MSG_WARN(Library [libchromaprint >= libchromaprint_version] needed for [chromaprint] was not found)]
3850 [(Chromaprint based audio fingerprinter)],[auto])
3851 m4_popdef([libchromaprint_version])
3854 dnl Chromecast streaming support
3856 m4_pushdef([protobuf_lite_version], 2.5.0)
3857 AC_ARG_VAR(PROTOC, [protobuf compiler])
3858 AC_CHECK_PROGS(PROTOC, protoc, no)
3859 PKG_WITH_MODULES([CHROMECAST],[protobuf-lite >= protobuf_lite_version], [
3860 AS_IF([test "x${PROTOC}" != "xno"], [
3861 build_chromecast="yes"
3863 AC_MSG_ERROR(protoc compiler needed for [chromecast] was not found)
3866 AS_IF([test "${enable_chromecast}" = "yes"],
3867 AC_MSG_ERROR(Library [protobuf-lite >= protobuf_lite_version] needed for [chromecast] was not found),
3868 AC_MSG_WARN(Library [protobuf-lite >= protobuf_lite_version] needed for [chromecast] was not found)
3870 enable_chromecast="no"
3871 ], [(Chromecast streaming support)], [auto])
3872 AM_CONDITIONAL([BUILD_CHROMECAST], [test "${build_chromecast}" = "yes"])
3873 m4_popdef([protobuf_lite_version])
3876 dnl Interface plugins
3879 EXTEND_HELP_STRING([Interface plugins:])
3885 AS_HELP_STRING([--disable-qt], [Qt UI support (default enabled)]),, [
3886 AS_IF([test "${enable_vlc}" != "no"], [enable_qt="yes"])
3887 AS_IF([test "${SYS}" = "darwin"], [
3892 AS_IF([test "${enable_qt}" != "no"], [
3893 PKG_CHECK_MODULES([QT], [Qt5Core >= 5.11.0 Qt5Widgets Qt5Gui Qt5Quick Qt5QuickWidgets Qt5QuickControls2 Qt5Svg], [
3894 PKG_CHECK_MODULES([QT5_X11], [Qt5X11Extras], [
3897 AC_MSG_WARN([Not building Qt Interface with X11 helpers.])
3899 QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix Qt5Core)"
3900 QT_HOST_PATH="$(eval $PKG_CONFIG --variable=host_bins Qt5Core)"
3901 QT_VERSION="$(eval $PKG_CONFIG --modversion Qt5Gui)"
3902 AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3903 AC_PATH_PROGS(RCC, [rcc-qt5 rcc], rcc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3904 AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3905 AC_PATH_PROGS(QMLCACHE, [qmlcachegen-qt5 qmlcachegen], no, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3906 AS_IF([test "x${QMLCACHE}" = "xno"], [
3907 AC_MSG_WARN([qmlcachegen not found])
3910 AS_IF([test -n "${enable_qt}"],[
3911 AC_MSG_ERROR([${QT_PKG_ERRORS}. If you want to build VLC without GUI, pass --disable-qt.])
3913 AC_MSG_WARN([${QT_PKG_ERRORS}.])
3919 AC_ARG_ENABLE([qt-qml-cache],
3920 AS_HELP_STRING([--enable-qt-qml-cache],
3921 [enable qml cache generation]))
3922 AM_CONDITIONAL([HAVE_QMLCACHE], [test "${enable_qt_qml_cache}" = "yes" && "x$QMLCACHE" != "xno"])
3924 AC_ARG_ENABLE([qt-qml-debug],
3925 AS_HELP_STRING([--enable-qt-qml-debug], [enable qml debuger]))
3926 AM_CONDITIONAL(QT_QML_DEBUG, [test "${enable_qt_qml_debug}" = "yes"])
3928 AS_IF([test "${enable_qt}" != "no"], [
3929 ALIASES="${ALIASES} qvlc"
3931 AC_SUBST([QT_VERSION])
3932 AM_CONDITIONAL([ENABLE_QT], [test "$enable_qt" != "no"])
3933 AM_CONDITIONAL([HAVE_QT5_X11], [test "${have_qt5_x11}" = "yes"])
3936 dnl detect kde4-config patch (used for kde solids).
3938 AC_ARG_VAR([KDE4_CONFIG], [kde4-config utility])
3939 AS_IF([test "x$KDE4_CONFIG" = "x"], [
3940 KDE4_CONFIG="kde4-config"
3944 dnl Simple test for skins2 dependency
3946 AS_IF([test "$enable_qt" = "no"], [
3947 AS_IF([test "${enable_skins2}" = "yes"], [
3948 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.])
3951 AC_MSG_WARN([The skins2 module depends on the Qt interface, Qt is not built so skins2 is disabled.])
3958 AC_ARG_ENABLE([skins2],
3959 AS_HELP_STRING([--enable-skins2], [skins interface module (default auto)]))
3960 AS_IF([test "${enable_skins2}" != "no"], [
3961 have_skins_deps="yes"
3964 AS_IF([test "${SYS}" = "mingw32"], [
3965 VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -DWIN32_SKINS])
3966 VLC_ADD_LIBS([skins2],[-lgdi32 -lole32 -luuid -lmsimg32])
3968 ], [test "${SYS}" = "os2"], [
3969 VLC_ADD_CPPFLAGS([skins2],[ -DOS2_SKINS])
3972 PKG_CHECK_MODULES([XPM], [xpm],, [have_skins_deps="no"])
3973 PKG_CHECK_MODULES([XINERAMA], [xinerama],, [have_skins_deps="no"])
3974 PKG_CHECK_MODULES([XCURSOR], [xcursor],, [have_skins_deps="no"])
3975 PKG_CHECK_MODULES([XEXT], [xext],, [have_skins_deps="no"])
3976 VLC_ADD_CPPFLAGS([skins2],[${X_CFLAGS} ${XEXT_CFLAGS} ${XPM_CFLAGS} -DX11_SKINS])
3977 VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} ${XEXT_LIBS} ${XPM_LIBS} ${XINERAMA_LIBS} ${XCURSOR_LIBS} -lX11])
3980 dnl we need freetype
3981 AS_IF([test "${have_freetype}" != "yes"], [
3982 have_skins_deps="no"
3985 AS_IF([test "${have_skins_deps}" = "no"], [
3986 AS_IF([test "x${enable_skins2}" = "x"], [
3987 AC_MSG_WARN([Skins2 interface disabled due to missing dependencies.])
3989 AC_MSG_ERROR([Skins2 interface requires FreeType, libxcursor, libxpm, libxext and libxinerama])
3993 ALIASES="${ALIASES} svlc"
3998 AS_IF([test "${enable_skins2}" = "yes"], [
3999 AC_MSG_WARN([Skins2 interface disabled, it need to ported to the new player and playlist.])
4003 AM_CONDITIONAL([BUILD_SKINS], [test "${enable_skins2}" = "yes"])
4005 AC_ARG_ENABLE([libtar],
4006 AS_HELP_STRING([--enable-libtar], [libtar support for skins2 (default auto)]))
4007 AS_IF([test "${enable_skins2}" = "yes" && test "${enable_libtar}" != "no"], [
4008 AC_CHECK_HEADERS([libtar.h], [
4009 VLC_ADD_LIBS([skins2],[-ltar])
4014 dnl MacOS X gui module
4016 AC_ARG_ENABLE([macosx],
4017 AS_HELP_STRING([--enable-macosx], [Mac OS X gui support (default enabled on Mac OS X)]))
4018 if test "x${enable_macosx}" != "xno" -a "${SYS}" = "darwin"
4022 dnl If possible, use xcrun to find the right ibtool
4025 AC_PATH_PROG([XCRUN], [xcrun], [no])
4026 AS_IF([test ! "x${XCRUN}" = "xno"], [
4027 AC_MSG_CHECKING([for ibtool (using xcrun)])
4028 XIB="$(eval $XCRUN -f ibtool 2>/dev/null || echo no)"
4029 AC_MSG_RESULT([${XIB}])
4031 AC_MSG_WARN([Looking for tools without using xcrun])
4034 AS_IF([test "x${XIB}" = "xno"], [
4035 AC_PATH_PROG(XIB, [ibtool], [no])
4036 AS_IF([test "x${XIB}" = "xno"], [
4037 AC_MSG_ERROR([ibtool was not found, but is required for --enable-macosx])
4041 AM_CONDITIONAL([ENABLE_MACOSX_UI], [test "$enable_macosx" != "no" -a "${SYS}" = "darwin"])
4044 dnl MacOS X sparkle update support
4046 AC_ARG_ENABLE([sparkle],
4047 AS_HELP_STRING([--enable-sparkle], [Sparkle update support for OS X (default enabled on Mac OS X)]))
4048 if test "x${enable_sparkle}" != "xno" -a "${HAVE_OSX}" = "1"
4050 if test ! -d ${CONTRIB_DIR}/Sparkle.framework -a ! -d ${CONTRIB_DIR}/Frameworks/Sparkle.framework
4052 AC_MSG_ERROR([Sparkle framework is required and was not found in ${CONTRIB_DIR}])
4055 AC_DEFINE([HAVE_SPARKLE], [1], [Define to 1 if sparkle is enabled.])
4057 AM_CONDITIONAL([HAVE_SPARKLE], [test "$enable_sparkle" != "no"])
4060 dnl MacOS X breakpad creash reporter support
4062 AC_ARG_WITH([breakpad],
4063 AS_HELP_STRING([--with-breakpad=URL], [Enable Breakpad reporter using given URL]), [], [with_breakpad=no])
4065 AS_IF([test "$with_breakpad" != "no"], [
4067 AS_IF([test "$with_breakpad" = "yes"], [
4068 AC_MSG_ERROR([You need to supply the CrashDragon Server URL as value for --with-breakpad])
4071 AS_IF([test "$HAVE_OSX" = "1"], [
4072 AC_MSG_CHECKING([for Breakpad framework])
4073 AS_IF([test ! -d ${CONTRIB_DIR}/Breakpad.framework -a \
4074 ! -d ${CONTRIB_DIR}/Frameworks/Breakpad.framework], [
4077 AC_MSG_ERROR([Breakpad framework is required and was not found in ${CONTRIB_DIR}])
4079 AC_MSG_RESULT([yes])
4082 PKG_CHECK_MODULES([BREAKPAD], [breakpad-client], [
4083 LDFLAGS="${LDFLAGS} -Wl,--build-id"
4085 AC_MSG_ERROR(["breakpad not found"])
4090 AM_CONDITIONAL([HAVE_BREAKPAD], [test "$with_breakpad" != "no"])
4091 AS_IF([test "$with_breakpad" != "no"], [
4092 AC_SUBST([BREAKPAD_URL], ["${with_breakpad}"])
4096 dnl Minimal Mac OS X module
4098 AC_ARG_ENABLE([minimal-macosx],
4099 AS_HELP_STRING([--enable-minimal-macosx], [Minimal Mac OS X support (default disabled)]))
4100 if test "${enable_minimal_macosx}" = "yes" -a "${SYS}" = "darwin"
4102 VLC_ADD_PLUGIN([minimal_macosx])
4106 dnl Mac OS X fancy dmg build tool
4108 if test "${HAVE_OSX}" = "1"
4110 AC_PATH_PROG(DMGBUILD, dmgbuild, no)
4111 AS_IF([test "x${DMGBUILD}" = "xno"], [
4112 AC_MSG_WARN([dmgbuild not found -- unable to build fancy DMGs])
4115 AM_CONDITIONAL([HAVE_DMGBUILD], [test "x$DMGBUILD" != "xno" -a "${HAVE_OSX}" = "1"])
4118 dnl VideoToolbox plugins
4119 AC_CHECK_HEADERS([VideoToolbox/VideoToolbox.h], [
4120 VLC_ADD_PLUGIN([videotoolbox])
4121 VLC_ADD_PLUGIN([cvpx])
4125 dnl AudioToolbox MIDI plugin
4126 AC_CHECK_HEADERS([AudioToolbox/AudioToolbox.h], [
4127 VLC_ADD_PLUGIN([audiotoolboxmidi])
4133 AC_ARG_ENABLE([ncurses],
4134 AS_HELP_STRING([--disable-ncurses],[ncurses text-based interface (default auto)]))
4136 AS_IF([test "${enable_ncurses}" != "no"] ,[
4137 PKG_CHECK_MODULES([NCURSES], [ncursesw], [
4139 ALIASES="${ALIASES} nvlc"
4141 AS_IF([test -n "${enable_ncurses}"], [
4142 AC_MSG_ERROR([${NCURSES_PKG_ERRORS}.])
4146 AM_CONDITIONAL([HAVE_NCURSES], [test "${have_ncurses}" = "yes"])
4151 AC_ARG_ENABLE([lirc],
4152 AS_HELP_STRING([--enable-lirc], [lirc support (default disabled)]))
4154 AS_IF([test "${enable_lirc}" = "yes"], [
4155 AC_CHECK_HEADER(lirc/lirc_client.h, [
4156 AC_CHECK_LIB([lirc_client], [lirc_init], [
4161 AM_CONDITIONAL([HAVE_LIRC], [test "${have_lirc}" = "yes"])
4166 PKG_CHECK_MODULES([BITSTREAM], [bitstream > 1.4],[have_bitstream="yes"], [have_bitstream="no"])
4167 AM_CONDITIONAL([HAVE_BITSTREAM], [test "${have_bitstream}" = "yes"])
4172 PKG_ENABLE_MODULES_VLC([SRT], [access_srt access_output_srt], [srt >= 1.3.0], [SRT input/output plugin], [auto], [], [], [-DENABLE_SRT])
4174 EXTEND_HELP_STRING([Visualisations and Video filter plugins:])
4176 dnl goom visualization plugin
4178 PKG_ENABLE_MODULES_VLC([GOOM], [], [libgoom2], [goom visualization plugin], [auto])
4181 dnl libprojectM visualization plugin
4183 AC_ARG_ENABLE([projectm],
4184 AS_HELP_STRING([--enable-projectm], [projectM visualization plugin (default enabled)]))
4185 AS_IF([test "${enable_projectm}" != "no"],
4187 PKG_CHECK_MODULES(PROJECTM, libprojectM,
4189 VLC_ADD_PLUGIN([projectm])
4190 PKG_CHECK_EXISTS([libprojectM >= 2.0.0],
4191 [ AC_DEFINE([HAVE_PROJECTM2], 1, [Define to 1 if using libprojectM 2.x]) ],
4192 [ AC_MSG_WARN( [Using libprojectM version 1] )
4195 AC_MSG_WARN([${PROJECTM_PKG_ERRORS}.])
4200 dnl Vovoid VSXu visualization plugin
4202 AC_ARG_ENABLE([vsxu],
4203 AS_HELP_STRING([--enable-vsxu], [Vovoid VSXu visualization plugin (default auto)]))
4204 AS_IF([test "${enable_vsxu}" != "no"],
4206 PKG_CHECK_MODULES(VSXU, libvsxu,
4208 VLC_ADD_PLUGIN([vsxu])
4210 AC_MSG_WARN([${VSXU_PKG_ERRORS}.])
4214 EXTEND_HELP_STRING([Service Discovery plugins:])
4216 dnl Avahi-Zeroconf services discovery
4217 PKG_ENABLE_MODULES_VLC([AVAHI], [], [avahi-client >= 0.6], [Zeroconf services discovery], [auto])
4220 dnl libudev services discovery
4221 PKG_ENABLE_MODULES_VLC([UDEV], [], [libudev >= 142], [Linux udev services discovery], [auto])
4224 dnl MTP devices services discovery
4225 PKG_ENABLE_MODULES_VLC([MTP], [mtp access_mtp], [libmtp >= 1.0.0], [MTP devices support], [auto])
4228 dnl UPnP Plugin (Intel SDK)
4230 PKG_ENABLE_MODULES_VLC([UPNP], [upnp], [libupnp], [Intel UPNP SDK],[auto])
4233 dnl mDNS using libmicrodns
4235 PKG_ENABLE_MODULES_VLC([MICRODNS], [], [microdns], [mDNS services discovery], [auto])
4238 EXTEND_HELP_STRING([Misc options:])
4243 PKG_ENABLE_MODULES_VLC([LIBXML2], [xml], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
4249 AC_ARG_ENABLE([libgcrypt],
4250 AS_HELP_STRING([--disable-libgcrypt], [gcrypt support (default enabled)]))
4251 AC_ARG_VAR([GCRYPT_CFLAGS], [C compiler flags for gcrypt])
4252 AC_ARG_VAR([GCRYPT_LIBS], [linker flags flags for gcrypt])
4254 # require libgcrypt >= 1.6.0
4255 AS_IF([test "${enable_libgcrypt}" != "no"], [
4256 AC_CACHE_CHECK([for gcrypt 1.6.0 or later], [ac_cv_lib_gcrypt], [
4258 CFLAGS="${CFLAGS} ${GCRYPT_CFLAGS}"
4259 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
4260 [#include <gcrypt.h>
4261 #if GCRYPT_VERSION_NUMBER < 0x010600
4264 ac_cv_lib_gcrypt=yes
4271 AS_IF([test "${ac_cv_lib_gcrypt}" = "yes"], [
4272 AC_DEFINE([HAVE_GCRYPT], 1, [Defined if having gcrypt])
4274 AS_IF([test "${enable_libgcrypt}" = "yes"], [
4275 AC_MSG_ERROR([libgcrypt version 1.6.0 or higher not found. Install libgcrypt or pass --disable-libgcrypt.])
4280 AS_IF([test -z "$GCRYPT_LIBS"], [
4281 GCRYPT_LIBS="-lgcrypt -lgpg-error"
4284 AC_SUBST([GCRYPT_CFLAGS])
4285 AC_SUBST([GCRYPT_LIBS])
4286 AM_CONDITIONAL([HAVE_GCRYPT], [test "${ac_cv_lib_gcrypt}" = "yes"])
4291 AC_ARG_ENABLE([gnutls],
4292 AS_HELP_STRING([--enable-gnutls], [GNU TLS TLS/SSL support (default enabled)]))
4293 AS_IF([test "${enable_gnutls}" != "no"], [
4294 PKG_CHECK_MODULES(GNUTLS, [gnutls >= 3.5.0], [
4295 VLC_ADD_PLUGIN([gnutls])
4297 AS_IF([test -n "${enable_gnutls}"], [
4298 AC_MSG_ERROR([${GNUTLS_PKG_ERRORS}.)])
4307 AC_ARG_ENABLE([taglib],
4308 AS_HELP_STRING([--disable-taglib],
4309 [do not use TagLib (default enabled)]))
4310 AS_IF([test "${enable_taglib}" != "no"], [
4311 PKG_CHECK_MODULES(TAGLIB, taglib >= 1.11, [
4312 VLC_ADD_PLUGIN([taglib])
4314 AC_MSG_WARN([${TAGLIB_PKG_ERRORS}.])])
4320 PKG_ENABLE_MODULES_VLC([SECRET], [], [libsecret-1 >= 0.18], [use libsecret for keystore], [auto])
4325 AC_ARG_ENABLE([kwallet],
4326 AS_HELP_STRING([--enable-kwallet],
4327 [use kwallet (via D-Bus) for keystore (default enabled)]))
4328 AS_IF([test "${enable_kwallet}" != "no" -a "${have_dbus}" = "yes"], [
4329 VLC_ADD_PLUGIN([kwallet])
4333 dnl update checking system
4335 AC_ARG_ENABLE([update-check],
4336 AS_HELP_STRING([--enable-update-check], [update checking system (default disabled)]))
4337 if test "${enable_update_check}" = "yes"
4339 AS_IF([test "${ac_cv_lib_gcrypt}" != "yes"],[
4340 AC_MSG_ERROR([libgcrypt is required for update checking system]) ])
4342 AM_CONDITIONAL([UPDATE_CHECK], [test "${enable_update_check}" = "yes"])
4345 dnl OS X notification plugin
4347 AC_ARG_ENABLE([osx_notifications],
4348 AS_HELP_STRING([--enable-osx-notifications],
4349 [macOS notification plugin (default disabled)]),,
4350 [enable_osx_notifications=no])
4351 AS_IF([test "${enable_osx_notifications}" != "no"], [
4352 VLC_ADD_PLUGIN([osx_notifications])
4356 dnl Libnotify notification plugin
4358 PKG_ENABLE_MODULES_VLC([NOTIFY], [], [libnotify gtk+-3.0], [libnotify notification], [auto])
4360 PKG_ENABLE_MODULES_VLC([MEDIALIBRARY], [medialibrary], [medialibrary], (medialibrary support), [auto])
4363 dnl Endianness check
4366 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
4367 DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
4371 AC_SUBST([DEFS_BIGENDIAN])
4374 dnl Where to install KDE solid .desktop
4376 AC_ARG_WITH(kde-solid,
4377 AS_HELP_STRING([--with-kde-solid=PATH],
4378 [KDE Solid actions directory (auto)]),, [
4380 if test "${SYS}" != "mingw32" -a "${SYS}" != "darwin" -a "${HAVE_ANDROID}" != "1" ; then
4381 with_kde_solid="yes"
4385 AS_IF([test "${with_kde_solid}" != "no"], [
4386 AS_IF([test "${with_kde_solid}" = "yes"], [
4387 kde4datadir="`${KDE4_CONFIG} --install data`"
4388 AS_IF([test "x$kde4datadir" = "x"], [kde4datadir='${datadir}/kde4/apps'])
4389 soliddatadir="${kde4datadir}/solid/actions"
4391 soliddatadir="${with_kde_solid}"
4394 AC_SUBST([soliddatadir])
4395 AM_CONDITIONAL([KDE_SOLID], [test "x${soliddatadir}" != "x"])
4398 dnl Find tools for win32 packaging
4400 AS_IF([test "${SYS}" = "mingw32"], [
4402 dnl Find makensis required to build the NSIS installer
4404 nsis_major_required="3"
4405 nsis_version_ok="no"
4406 AC_PATH_PROG([MAKENSIS], [makensis], [no])
4407 AS_IF([test "$MAKENSIS" != "no"], [
4409 AC_MSG_CHECKING([makensis version])
4410 nsis_version=$($MAKENSIS -VERSION)
4411 AC_MSG_RESULT([$nsis_version])
4412 nsis_version_major=$(echo "$nsis_version" | awk -F \. '{print $1}' | sed 's/v//')
4413 # Check if major version is a valid number
4414 AS_IF([test -n "$nsis_version_major" && \
4415 test "$nsis_version_major" -eq "$nsis_version_major" 2> /dev/null], [
4416 # Do the version check using major version
4417 AS_IF([test "$nsis_version_major" -lt "$nsis_major_required"], [
4418 AC_MSG_WARN([makensis too old, (needs ${nsis_major_required}.x, have ${nsis_version_major}.x)])
4420 nsis_version_ok="yes"
4423 AC_MSG_WARN([failed to check the makensis version])
4429 AC_PATH_PROG([SEVENZIP], [7z], [7z])
4431 AM_CONDITIONAL([HAVE_MAKENSIS], [test "x$MAKENSIS" != "xno" && test "$nsis_version_ok" = "yes"])
4434 dnl Check wether we have the PROCESS_MITIGATION_IMAGE_LOAD_POLICY
4435 dnl It should only be available when building for win10, but some SDKs define it unconditionnaly
4437 if test "${SYS}" = "mingw32"; then
4438 AC_CHECK_TYPES([PROCESS_MITIGATION_IMAGE_LOAD_POLICY],,,[#include <windows.h>])
4441 EXTEND_HELP_STRING([Components:])
4446 AC_ARG_ENABLE([vlc],
4447 AS_HELP_STRING([--enable-vlc], [build the VLC media player (default enabled)]))
4448 AM_CONDITIONAL([BUILD_VLC], [test "${enable_vlc}" != "no"])
4451 dnl Fuzzer (at the end in order to don't mess dependencies FLAGS)
4453 AS_VAR_IF(with_libfuzzer, no, [], [
4454 LIBS="-lstdc++ ${LIBM} -L${with_libfuzzer} -lFuzzer"
4455 AX_CHECK_COMPILE_FLAG(-fsanitize-coverage=trace-pc-guard, [
4456 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc-guard])
4457 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc-guard], [CXXFLAGS])
4458 AX_APPEND_COMPILE_FLAGS([-fsanitize-coverage=trace-cmp])
4459 AX_APPEND_COMPILE_FLAGS([-fsanitize-coverage=trace-cmp], [CXXFLAGS])
4461 AX_CHECK_COMPILE_FLAG(-fsanitize-coverage=trace-pc, [
4462 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc])
4463 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc], [CXXFLAGS])
4465 AC_MSG_ERROR([Sanitizer coverage not supported by your compiler])
4471 dnl Stuff used by the program
4473 VERSION_MESSAGE="${VERSION} ${CODENAME}"
4474 COPYRIGHT_MESSAGE="Copyright © ${COPYRIGHT_YEARS} the VideoLAN team"
4475 AC_DEFINE_UNQUOTED([VERSION_MESSAGE], "${VERSION_MESSAGE}", [Simple version string])
4476 AC_DEFINE_UNQUOTED([COPYRIGHT_MESSAGE], "${COPYRIGHT_MESSAGE}", [Copyright string])
4477 AC_DEFINE_UNQUOTED([COPYRIGHT_YEARS], "${COPYRIGHT_YEARS}", [The copyright years])
4478 AC_DEFINE_UNQUOTED([CONFIGURE_LINE], "${CONFIGURE_LINE}", [The ./configure command line])
4479 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_MAJOR],${VERSION_MAJOR}, [version major number])
4480 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_MINOR],${VERSION_MINOR}, [version minor number])
4481 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_REVISION],${VERSION_REVISION}, [version revision number])
4482 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_EXTRA],${VERSION_EXTRA}, [version extra number])
4483 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_DEV],"${VERSION_DEV}", [version development string])
4484 AC_SUBST([COPYRIGHT_MESSAGE])
4485 AC_SUBST([VERSION_MESSAGE])
4486 AC_SUBST([VERSION_MAJOR])
4487 AC_SUBST([VERSION_MINOR])
4488 AC_SUBST([VERSION_REVISION])
4489 AC_SUBST([VERSION_EXTRA])
4490 AC_SUBST([COPYRIGHT_YEARS])
4491 AC_DEFINE_UNQUOTED([VLC_COMPILE_BY], "`whoami|sed -e 's/\\\/\\\\\\\/g'`", [user who ran configure])
4492 AC_DEFINE_UNQUOTED([VLC_COMPILE_HOST], "`hostname -f 2>/dev/null || hostname`", [host which ran configure])
4493 AC_DEFINE_UNQUOTED([VLC_COMPILER], "`$CC -v 2>&1 | tail -n 1 | sed -e 's/ *$//'`", [compiler])
4495 dnl Handle substvars that use $(top_srcdir)
4497 CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS}"
4500 dnl Configuration is finished
4510 AC_SUBST([WINE_SDK_PATH])
4512 AC_SUBST([AM_CPPFLAGS])
4513 AC_SUBST([MACOSX_DEPLOYMENT_TARGET])
4514 AC_SUBST([FILE_LIBVLCCORE_DLL])
4515 AC_SUBST([FILE_LIBVLC_DLL])
4529 modules/hw/mmal/Makefile
4530 share/vlc.appdata.xml.in
4533 AM_COND_IF([HAVE_WIN32], [
4535 extras/package/win32/NSIS/spad.nsi
4536 extras/package/win32/NSIS/vlc.win32.nsi
4537 extras/package/win32/msi/config.wxi
4541 AM_COND_IF([HAVE_DARWIN], [
4543 modules/gui/macosx/UI/InfoPlist.strings:modules/gui/macosx/Resources/InfoPlist.strings.in
4544 share/macosx/Info.plist:share/Info.plist.in
4548 dnl Generate makefiles
4551 dnl Do we have to use make or gmake ?
4552 if make --version 2>&1|grep -q GNU
4554 # GNU make, all seems good
4557 # Known GNU make alias (on BSD)
4560 dnl Shortcut to nice compile message
4561 if test -n $SHELL; then
4562 SHELL=${CONFIG_SHELL-/bin/sh}
4565 compile_top_srcdir=`sed -ne "s/^top_srcdir *= *//p" < Makefile`
4569 export PATH=\"$PATH\" LANG=C
4570 ($MAKE V=1 \$@ 2>&1 || touch .error\$\$)| $compile_top_srcdir/extras/buildsystem/make.pl
4571 test -f .error\$\$ && ERROR=1
4573 exit \$ERROR" >compile
4577 libvlc configuration
4578 --------------------
4579 version : ${VERSION}
4581 architecture : ${ARCH}
4582 optimizations : ${enable_optimizations}"
4583 if test "${enable_vlc}" != "no"; then
4584 echo "vlc aliases :${ALIASES}"
4586 echo "build vlc executable : no"
4589 To build vlc and its plugins, type \`$MAKE', or \`./compile' if you like nice colors."