1 dnl Autoconf settings for vlc
3 AC_COPYRIGHT([Copyright 1999-2020 VLC authors and VideoLAN])
5 AC_INIT([vlc], [4.0.0-dev])
15 CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
16 CODENAME="Otto Chriek"
17 COPYRIGHT_YEARS="1996-2020"
19 AC_CONFIG_SRCDIR([src/libvlc.c])
20 AC_CONFIG_AUX_DIR([autotools])
21 AC_CONFIG_MACRO_DIR([m4])
22 AC_CONFIG_LIBOBJ_DIR([compat])
25 AC_PRESERVE_HELP_ORDER
27 AM_INIT_AUTOMAKE([tar-ustar color-tests foreign])
28 AC_CONFIG_HEADERS([config.h])
30 AM_SILENT_RULES([yes])
31 AM_MAINTAINER_MODE([enable])
37 AC_USE_SYSTEM_EXTENSIONS
39 AH_VERBATIM([FORTIFY_SOURCE],
40 [/* Enable compile-time and run-time bounds-checking, and some warnings,
41 without upsetting glibc 2.15+ or toolchains predefining _FORTIFY_SOURCE */
42 #if !defined _FORTIFY_SOURCE && defined __OPTIMIZE__ && __OPTIMIZE__
43 # define _FORTIFY_SOURCE 2
45 AC_DEFINE([_FILE_OFFSET_BITS], 64, [Define to 64 for large files support.])
46 AC_DEFINE([__LIBVLC__],, [Define within the LibVLC source code tree.])
47 AC_DEFINE([WIN32_LEAN_AND_MEAN],, [Define to limit the scope of <windows.h>.])
59 AC_ARG_VAR([DESKTOP_FILE_VALIDATE], [Validator for desktop entry files])
60 AC_CHECK_PROGS([DESKTOP_FILE_VALIDATE], [${DESKTOP_FILE_VALIDATE} desktop-file-validate], :)
61 AC_ARG_VAR([BUILDCC], [Build system C11 or C99 compiler command])
62 AC_CHECK_PROGS([BUILDCC], [c11-gcc c11 c99-gcc c99], [false])
63 AS_IF([test "$BUILDCC" = "false"], [
64 AC_MSG_ERROR([Cannot find native C99 compiler: please define BUILDCC.])
67 dnl Check for compiler properties
71 AX_CXX_COMPILE_STDCXX_14([noext], [mandatory])
73 dnl 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/"
142 dnl Workaround possible Xcode 11 bug
143 CFLAGS="${CFLAGS} -fno-stack-check"
144 CXXFLAGS="${CXXFLAGS} -fno-stack-check"
145 OBJCFLAGS="${OBJCFLAGS} -fno-stack-check"
147 dnl Force gcc "-arch" flag
149 case "${host_cpu}" in
151 ARCH_flag="-arch i386"
152 X86ASMFLAGS="-f macho32"
153 X86ASMDEFS="${X86ASMDEFS} -DPREFIX"
156 ARCH_flag="-arch ppc64"
159 ARCH_flag="-arch ppc"
162 ARCH_flag="-arch x86_64"
163 X86ASMFLAGS="-f macho64"
164 X86ASMDEFS="${X86ASMDEFS} -DPREFIX"
167 ac_cv_c_bigendian="no"
168 ac_cv_c_attribute_packed="no"
173 CFLAGS="${CFLAGS} -D_INTL_REDIRECT_MACROS -std=gnu11 ${ARCH_flag}"
174 CXX="${CXX} -stdlib=libc++ -std=c++11"
175 CXXFLAGS="${CXXFLAGS} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"
176 CPPFLAGS="${CPPFLAGS} ${ARCH_flag}"
177 OBJCFLAGS="${OBJCFLAGS} -D_INTL_REDIRECT_MACROS -std=gnu11 ${ARCH_flag} -Werror=partial-availability"
178 LDFLAGS="${LDFLAGS} -Wl,-headerpad_max_install_names ${ARCH_flag}"
179 VLC_ADD_LIBS([libvlc vlc],[-Wl,-undefined,dynamic_lookup,-framework,AppKit])
180 VLC_ADD_LIBS([libvlccore],[-Wl,-framework,CoreFoundation,-framework,CoreServices])
183 [#import <TargetConditionals.h>
191 [#import <TargetConditionals.h>
203 dnl Handle Mac OS X SDK flags
205 AC_ARG_WITH(macosx-sdk,
206 AS_HELP_STRING([--with-macosx-sdk=DIR],
207 [compile using the SDK in DIR]))
208 if test "${with_macosx_sdk}" != "" ; then
209 test ! -d "${with_macosx_sdk}" && AC_MSG_ERROR([SDK "${with_macosx_sdk}" not found])
210 CPP="${CPP} -isysroot ${with_macosx_sdk}"
211 CC="${CC} -isysroot ${with_macosx_sdk}"
212 CXX="${CXX} -isysroot ${with_macosx_sdk}"
213 OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
214 LD="${LD} -syslibroot ${with_macosx_sdk}"
216 AC_ARG_WITH(macosx-version-min,
217 AS_HELP_STRING([--with-macosx-version-min=VERSION],
218 [compile for Mac OS X VERSION and above]))
219 if test "${with_macosx_version_min}" != "" ; then
220 CPP="${CPP} -mmacosx-version-min=${with_macosx_version_min}"
221 CC="${CC} -mmacosx-version-min=${with_macosx_version_min}"
222 CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
223 OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
224 LD="${LD} -mmacosx_version_min=${with_macosx_version_min}"
227 *mingw32* | *cygwin* | *wince* | *mingwce*)
228 dnl Force libtool to not link to (shared) libgcc_s when detecting C++ dependencies
229 dnl When doing this test with -static-libgcc it will link on (static) libgcc_eh
230 CXXFLAGS="${CXXFLAGS} -static-libgcc"
231 AC_CHECK_TOOL(WINDRES, windres, :)
232 AC_CHECK_TOOL(OBJCOPY, objcopy, :)
233 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
234 [[#ifdef _WIN32_WINNT
235 # error _WIN32_WINNT already defined
239 AC_DEFINE([_WIN32_WINNT], 0x0601, [Define to '0x0601' for Windows 7 APIs.])
241 AC_DEFINE([_WIN32_IE], 0x0600, [Define to '0x0600' for IE 6.0 (and shell) APIs.])
242 AC_DEFINE([UNICODE], [1], [Define to 1 for Unicode (Wide Chars) APIs.])
243 AC_DEFINE([_ISOC99_SOURCE], [1], [Extensions to ISO C89 from ISO C99.])
244 AC_DEFINE([_ISOC11_SOURCE], [1], [Extensions to ISO C99 from ISO C11.])
245 AC_DEFINE([_POSIX_SOURCE], [1], [IEEE Std 1003.1.])
246 AC_DEFINE([_POSIX_C_SOURCE], [200809L], [IEEE Std 1003.1.])
247 AC_DEFINE([_XOPEN_SOURCE], [700], [POSIX and XPG 7th edition])
248 AC_DEFINE([_XOPEN_SOURCE_EXTENDED], [1], [XPG things and X/Open Unix extensions.])
249 AC_DEFINE([_BSD_SOURCE], [1], [ISO C, POSIX, and 4.3BSD things.])
250 AC_DEFINE([_SVID_SOURCE], [1], [ISO C, POSIX, and SVID things.])
257 dnl Check if we are using the mno-cygwin mode in which case we are
258 dnl actually dealing with a mingw32 compiler.
263 SYS=mingw32, AC_MSG_ERROR([VLC requires -mno-cygwin]))
267 if test "${SYS}" = "mingw32"; then
269 LDFLAGS="${LDFLAGS} -Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase"
271 AC_CHECK_PROGS(U2D, [unix2dos todos], unix2dos)
272 ac_default_prefix="`pwd`/_win32"
273 DESTDIR="`pwd`/_win32/"
276 dnl NSIS/MSI Installer prefix and WIN64
278 case "${host_cpu}" in
282 PROGRAMFILES="PROGRAMFILES64"
283 LDFLAGS="${LDFLAGS} -Wl,--high-entropy-va -Wl,--image-base,0x140000000"
288 PROGRAMFILES="PROGRAMFILES64"
289 LDFLAGS="${LDFLAGS} -Wl,--high-entropy-va -Wl,--image-base,0x140000000"
290 X86ASMFLAGS="-f win64"
294 PROGRAMFILES="PROGRAMFILES"
298 PROGRAMFILES="PROGRAMFILES"
299 X86ASMFLAGS="-f win32"
300 X86ASMDEFS="${X86ASMDEFS} -DPREFIX"
303 AC_SUBST([WINDOWS_ARCH])
304 AC_SUBST([PROGRAMFILES])
319 LDFLAGS="${LDFLAGS} -Zomf -Zbin-files -Zargs-wild -Zhigh-mem"
320 AC_LIBOBJ([freeaddrinfo])
321 AC_LIBOBJ([gai_strerror])
322 AC_CHECK_FUNCS([if_nametoindex])
323 X86ASMFLAGS="-f aout"
324 X86ASMDEFS="-DARCH_X86_32=1 -DARCH_X86_64=0 -DPREFIX"
328 AC_DEFINE([_XOPEN_SOURCE], [700], [POSIX and XPG 7th edition])
339 AC_ARG_ENABLE([winstore_app],
340 AS_HELP_STRING([--enable-winstore-app],
341 [Build targetted for Windows Store apps (default disabled)]))
344 AS_IF([test "${SYS}" = "mingw32"],[
346 AS_IF([test "${enable_winstore_app}" = "yes"], [
349 AX_APPEND_FLAG([-DWINSTORECOMPAT],[CFLAGS])
350 AX_APPEND_FLAG([-DWINSTORECOMPAT],[CPPFLAGS])
351 AX_APPEND_FLAG([-DWINSTORECOMPAT],[CXXFLAGS])
352 AX_APPEND_FLAG([-lwinstorecompat], [LDFLAGS])
353 VLC_ADD_LIBS([libvlccore], [-lruntimeobject])
354 AC_LIBOBJ([gai_strerror])
358 AC_DEFINE_UNQUOTED(VLC_WINSTORE_APP, ${vlc_winstore_app}, [Define to 1 if you want to build for Windows Store apps])
362 AS_HELP_STRING([--enable-pdb],
363 [Build PDB files for windows targets (default off)]))
364 AS_IF([test "${SYS}" = "mingw32"],[
365 AS_IF([test "${enable_pdb}" = "yes"], [
367 AX_APPEND_FLAG([-g -gcodeview],[CFLAGS])
368 AX_APPEND_FLAG([-g -gcodeview],[CXXFLAGS])
369 LDFLAGS="${LDFLAGS} -Wl,-pdb="
373 AM_CONDITIONAL([HAVE_LINUX], [test "${SYS}" = "linux"])
374 AM_CONDITIONAL([HAVE_OS2], [test "${SYS}" = "os2"])
376 AM_CONDITIONAL([HAVE_DARWIN], [test "${SYS}" = "darwin"])
377 AM_CONDITIONAL([HAVE_IOS], [test "${HAVE_IOS}" = "1"])
378 AM_CONDITIONAL([HAVE_OSX], [test "${HAVE_OSX}" = "1"])
379 AM_CONDITIONAL([HAVE_TVOS], [test "${HAVE_TVOS}" = "1"])
381 AM_CONDITIONAL([HAVE_NACL], [test "${SYS}" = "nacl"])
382 AM_CONDITIONAL([HAVE_LIBANL], [test "${HAVE_LIBANL}" = "1"])
384 AM_CONDITIONAL([HAVE_WIN32], [test "${SYS}" = "mingw32"])
385 AM_CONDITIONAL([HAVE_WIN64], [test "${HAVE_WIN64}" = "1"]) dnl Only used for the packaging
386 AM_CONDITIONAL([HAVE_WINSTORE], [test "$vlc_winstore_app" = "1"])
387 AM_CONDITIONAL([HAVE_WIN32_DESKTOP], [test "${SYS}" = "mingw32" -a "$vlc_winstore_app" = "0"])
388 AM_CONDITIONAL([ENABLE_PDB], [test "$vlc_build_pdb" = "1"])
390 dnl Use nasm/yasm only on x86
391 AC_CHECK_PROGS(X86ASM, [nasm yasm])
392 AM_CONDITIONAL([HAVE_X86ASM], [test -n "${X86ASM}" && test -n "${X86ASMFLAGS}"])
393 AM_COND_IF([HAVE_X86ASM], [
394 AC_DEFINE([HAVE_X86ASM], [1], [Use external asm on x86.])
397 dnl Because DOLT is not able to handle --with-pic
398 dnl correctly, manually add -DPIC to the options for
399 dnl nasm / yasm here.
400 AS_IF([test x$with_pic = xyes], [X86ASMDEFS="${X86ASMDEFS} -DPIC"])
402 AC_SUBST([X86ASMFLAGS])
403 AC_SUBST([X86ASMDEFS])
406 dnl Sadly autoconf does not think about testing foo.exe when ask to test
407 dnl for program foo on win32
408 case "${build_os}" in
410 ac_executable_extensions=".exe"
419 AC_SUBST([BUILDEXEEXT])
421 dnl Android is linux, but a bit different
422 AS_IF([test "$SYS" = linux],[
423 AC_MSG_CHECKING([for an Android system])
424 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
425 [[#ifndef __ANDROID__
436 AM_CONDITIONAL([HAVE_ANDROID], [test "${HAVE_ANDROID}" = "1"])
439 dnl Check for the contrib directory
442 AS_HELP_STRING([--with-contrib[=DIR]],
443 [search for 3rd party libraries in DIR/include and DIR/lib])
445 AC_MSG_CHECKING([for 3rd party libraries path])
446 AS_IF([test -z "${with_contrib}" || test "${with_contrib}" = "yes"], [
447 CONTRIB_DIR="${srcdir}/contrib/${host}"
448 AS_IF([test ! -d "${CONTRIB_DIR}"], [
449 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
450 CONTRIB_DIR="${srcdir}/contrib/`$CC -dumpmachine`"
451 AS_IF([test ! -d "${CONTRIB_DIR}"], [
452 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
454 AC_MSG_RESULT([not found])
458 AS_IF([test "${with_contrib}" != "no"], [
459 CONTRIB_DIR="${with_contrib}"
462 AC_MSG_RESULT([disabled])
465 AS_IF([test -n "${CONTRIB_DIR}"], [
466 AS_IF([test -d "${CONTRIB_DIR}/lib"],[
467 CONTRIB_DIR=`cd "${CONTRIB_DIR}" && pwd`
469 echo "${CONTRIB_DIR}/lib not found" >&AS_MESSAGE_LOG_FD
471 AC_MSG_RESULT([not usable])
475 AS_IF([test -n "${CONTRIB_DIR}"], [
476 AC_MSG_RESULT([${CONTRIB_DIR}])
477 CPPFLAGS="${CPPFLAGS} -I${CONTRIB_DIR}/include"
478 CFLAGS="${CFLAGS} -I${CONTRIB_DIR}/include"
479 CXXFLAGS="${CXXFLAGS} -I${CONTRIB_DIR}/include"
480 OBJCFLAGS="${OBJCFLAGS} -I${CONTRIB_DIR}/include -F${CONTRIB_DIR} -F${CONTRIB_DIR}/Frameworks"
481 PKG_CONFIG_PATH="${CONTRIB_DIR}/lib/pkgconfig:${CONTRIB_DIR}/share/pkgconfig:${PKG_CONFIG_PATH}"
482 case "${build_os}" in
484 export PKG_CONFIG_PATH=`cygpath -mp ${PKG_CONFIG_PATH}`
487 export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}"
490 LDFLAGS="${LDFLAGS} -L${CONTRIB_DIR}/lib"
492 AS_IF([test -z "$LUAC"], [
493 dnl Old contribs mixed cross-tools and cross-compiled executables
494 AS_IF([test -x "${CONTRIB_DIR}/bin/luac${BUILDEXEEXT}"], [
495 LUAC="${CONTRIB_DIR}/bin/luac${BUILDEXEEXT}"
498 dnl Newer contribs follow usual name space rules
499 AS_IF([test -x "${CONTRIB_DIR}/../bin/${host_alias}-luac${BUILDEXEEXT}"], [
500 LUAC="${CONTRIB_DIR}/../bin/${host_alias}-luac${BUILDEXEEXT}"
504 AS_IF([test "${SYS}" = "darwin"], [
505 export LD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$LD_LIBRARY_PATH"
506 export DYLD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$DYLD_LIBRARY_PATH"
509 AS_IF([test -n "${with_contrib}" && test "${with_contrib}" != "no"], [
510 AC_MSG_ERROR([Third party libraries not found!])
513 AC_SUBST([CONTRIB_DIR])
515 dnl Add extras/tools to the PATH
516 TOOLS_DIR="${srcdir}/extras/tools/build/bin"
517 AS_IF([test -d "${TOOLS_DIR}"], [
518 TOOLS_DIR=`cd "${TOOLS_DIR}" && pwd`
519 export PATH="${TOOLS_DIR}":$PATH
524 dnl It's very bad, but our former custom system was worst
528 dnl override platform specific check for dependent libraries
529 dnl otherwise libtool linking of shared libraries will
530 dnl fail on anything other than pass_all.
531 AC_CACHE_VAL(lt_cv_deplibs_check_method,
532 [lt_cv_deplibs_check_method=pass_all])
534 LT_INIT([dlopen win32-dll shared disable-static])
536 LT_LANG([Windows Resource])
540 lt_cv_deplibs_check_method=pass_all
542 AS_IF([test "${enable_shared}" = "no" -a "${enable_vlc}" != "no"], [
543 AC_MSG_ERROR([VLC is based on plugins. Shared libraries cannot be disabled.])
549 AM_GNU_GETTEXT_VERSION([0.19.8])
550 AM_GNU_GETTEXT([external], [need-formatstring-macros])
559 AS_IF([test "${SYS}" = "mingw32"], [
561 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
562 #if !defined(__MINGW32__)
563 # error Not compiling with mingw
567 dnl Check for broken versions of mingw-runtime compatability library
568 AC_MSG_CHECKING(for broken mingw-runtime)
569 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
571 #if defined(__MINGW64_VERSION_MAJOR)
572 # if __MINGW64_VERSION_MAJOR < 5
573 # error Update your mingw-w64! This one is too old.
576 # error You cannot compile with Mingw. Use Mingw-w64!
581 AC_MSG_RESULT([present])
582 AC_MSG_ERROR([LibVLC requires Mingw-w64 version 5.0 or higher!])
585 dnl force use of mingw provided c99 *printf over msvcrt
586 CPPFLAGS="${CPPFLAGS} -D__USE_MINGW_ANSI_STDIO=1"
588 dnl Check for the need to include the mingwex lib for mingw32
590 AC_CHECK_LIB([mingwex], [opendir],
591 AC_CHECK_LIB([mingw32], [opendir],,
592 [VLC_ADD_LIBS([libvlccore],[-lmingwex])])
596 AC_MSG_RESULT([Not compiling with mingw])
599 dnl Check for fnative-struct or mms-bitfields support for mingw32
600 AX_CHECK_COMPILE_FLAG([-mms-bitfields], [
601 AX_APPEND_FLAG([-mms-bitfields], [CFLAGS])
602 AX_APPEND_FLAG([-mms-bitfields], [CXXFLAGS])
603 # Check for the warning flag without "-Wno-", GCC accepts
604 # -Wno-<anything> for unsupported warnings, which can trigger
605 # other warnings instead.
606 AX_CHECK_COMPILE_FLAG([-Wincompatible-ms-struct], [
607 AX_APPEND_FLAG([-Wno-incompatible-ms-struct], [CFLAGS])
608 AX_APPEND_FLAG([-Wno-incompatible-ms-struct], [CXXFLAGS])
611 AX_CHECK_COMPILE_FLAG([-fnative-struct], [
612 AX_APPEND_FLAG([-fnative-struct], [CFLAGS])
613 AX_APPEND_FLAG([-fnative-struct], [CXXFLAGS])
620 dnl Buggy glibc prevention. Purposedly not cached.
621 dnl See sourceware.org bugs 5058 and 5443.
622 dnl Ubuntu alone has 20 bug numbers for this...
624 AC_MSG_CHECKING(for buggy GNU/libc versions)
625 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
627 #if defined (__GLIBC__) && (__GLIBC__ == 2) \
628 && (__GLIBC_MINOR__ >= 5) && (__GLIBC_MINOR__ <= 7)
629 # error GNU/libc with dcgettext killer bug!
632 AC_MSG_RESULT([not present])
634 AC_MSG_RESULT([found])
635 AS_IF([test "x${enable_nls}" != "xno"], [
636 AC_MSG_ERROR([Buggy GNU/libc (version 2.5 - 2.7) present. VLC would crash; there is no viable
637 work-around for this. Check with your distribution vendor on how to update the
638 glibc run-time. Alternatively, build with --disable-nls.])
642 dnl Plugin compilation stuff
646 dnl Check for system libs needed
649 dnl Check for usual libc functions
650 AC_CHECK_FUNCS([accept4 daemon fcntl flock fstatat fstatvfs fork getmntent_r getenv getpwuid_r isatty memalign mkostemp mmap open_memstream newlocale pipe2 pread posix_fadvise posix_madvise setlocale stricmp strnicmp strptime uselocale])
651 AC_REPLACE_FUNCS([aligned_alloc atof atoll dirfd fdopendir flockfile fsync getdelim getpid lfind lldiv memrchr nrand48 poll posix_memalign recvmsg rewind sendmsg setenv strcasecmp strcasestr strdup strlcpy strndup strnlen strnstr strsep strtof strtok_r strtoll swab tdestroy tfind timegm timespec_get strverscmp pathconf])
652 AC_REPLACE_FUNCS([gettimeofday])
653 AC_CHECK_FUNC(fdatasync,,
654 [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
657 VLC_REPLACE_DECL([realpath], [#include <stdlib.h>])
659 dnl mingw64 implements those as static inline, not functions with C linkage
660 VLC_REPLACE_DECL([asprintf], [#include <stdio.h>])
661 VLC_REPLACE_DECL([vasprintf], [#include <stdio.h>])
662 VLC_REPLACE_DECL([gmtime_r], [#include <time.h>])
663 VLC_REPLACE_DECL([localtime_r], [#include <time.h>])
665 dnl C11 static_assert()
666 AC_MSG_CHECKING([for static_assert in assert.h])
667 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <assert.h>], [
668 static_assert(1, "The impossible happened.");
671 AC_DEFINE([HAVE_STATIC_ASSERT], [1], [Define to 1 if <assert.h> defines static_assert.])
676 # Windows CE does not have strcoll()
679 dnl Check for non-standard system calls
682 AC_CHECK_FUNCS([eventfd vmsplice sched_getaffinity recvmmsg memfd_create])
685 AC_CHECK_FUNCS([_lock_file])
689 AH_BOTTOM([#include <vlc_fixups.h>])
691 dnl Check for struct pollfd
692 AC_CHECK_TYPES([struct pollfd],,,
693 [#include <sys/types.h>
696 #elif defined (_WIN32)
697 # include <winsock2.h>
701 dnl Check for struct timespec
702 AC_CHECK_TYPES([struct timespec],,,
705 dnl Check for max_align_t
706 AC_CHECK_TYPES([max_align_t],,,
707 [#include <stddef.h>])
709 dnl Checks for socket stuff
712 AC_SEARCH_LIBS(connect, [socket], [
713 AS_IF([test "$ac_cv_search_connect" != "none required"], [
714 SOCKET_LIBS="$ac_cv_search_connect"
717 AS_IF([test "${SYS}" = "mingw32"], [
718 SOCKET_LIBS="-lws2_32 -liphlpapi"
722 AC_SEARCH_LIBS([inet_pton], [nsl], [
723 AS_IF([test "$ac_cv_search_inet_pton" != "none required"], [
724 SOCKET_LIBS="$ac_cv_search_inet_pton $SOCKET_LIBS"
726 ],, [${SOCKET_LIBS}])
728 LIBS="${LIBS} ${SOCKET_LIBS}"
730 AC_LANG_PROGRAM([#ifdef _WIN32
731 #include <ws2tcpip.h>
733 # if _WIN32_WINNT < 0x600
737 #include <sys/socket.h>
738 #include <arpa/inet.h>
740 char dst[[sizeof(struct in_addr)]];
741 inet_pton(AF_INET, "127.0.0.1", dst);
742 ])],[AC_DEFINE([HAVE_INET_PTON],[1],[Define to 1 if you have inet_pton function])],[AC_LIBOBJ([inet_pton])])
743 AC_CHECK_TYPES([struct if_nameindex],,,[#include <net/if.h>])
744 AC_CHECK_FUNCS([if_nameindex])
746 AC_SUBST([SOCKET_LIBS])
748 dnl Check for socklen_t
749 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
750 AC_CACHE_CHECK([for socklen_t in sys/socket.h], dnl ` (fix VIM syntax highlight
751 ac_cv_type_socklen_t,
752 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
753 [#include <sys/types.h>
755 # include <winsock2.h>
756 # include <ws2tcpip.h>
758 # include <sys/socket.h>
759 #endif]], [[socklen_t len; len = 0;]])],
760 ac_cv_type_socklen_t=yes,
761 ac_cv_type_socklen_t=no)])
762 AS_IF([test "$ac_cv_type_socklen_t" = no],
763 [AC_DEFINE(socklen_t, unsigned int)])
765 dnl Check for struct sockaddr_storage
766 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
767 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
768 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
770 [#include <sys/types.h>
771 #if defined( _WIN32 )
772 # include <winsock2.h>
774 # include <sys/socket.h>
775 #endif], [struct sockaddr_storage addr;],
776 ac_cv_struct_sockaddr_storage=yes,
777 ac_cv_struct_sockaddr_storage=no)])
778 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
779 AC_DEFINE(sockaddr_storage, sockaddr)
780 AC_DEFINE(ss_family, sa_family)
783 dnl FreeBSD has a gnugetopt library for this:
785 AC_CHECK_FUNC(getopt_long,, [
786 AC_CHECK_LIB([gnugetopt],[getopt_long], [
787 GNUGETOPT_LIBS="-lgnugetopt"
790 AC_SUBST([GNUGETOPT_LIBS])
792 AC_CHECK_LIB([m], [cos], [
799 AC_CHECK_LIB([m], [lrintf], [
800 AC_DEFINE(HAVE_LRINTF, 1, [Define to 1 if you have the lrintf function])
801 VLC_ADD_LIBS([skins2],[-lm])
803 AC_CHECK_LIB([m], [nanf],
804 AC_DEFINE(HAVE_NANF, 1, [Define to 1 if you have the NANF function])
806 AC_CHECK_LIB([m], [sincos], [
807 AC_DEFINE(HAVE_SINCOS, 1, [Define to 1 if you have the sincos function.])
812 AC_MSG_CHECKING([broken qsort_r prototype])
813 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <stdlib.h>
815 _Static_assert(_Generic((qsort_r),
816 void (*)(void *, size_t, size_t, void *,
817 int (*)(void *, const void *, const void *)) : 1, default: 0),
818 "Bad prototype not matched");
820 AC_MSG_RESULT([broken])
821 AC_DEFINE([HAVE_BROKEN_QSORT_R], 1, [Defined to 1 if the qsort_r() prototype contradicts the upcoming POSIX standard.])
826 AC_MSG_CHECKING([_Thread_local support])
827 AC_COMPILE_IFELSE([AC_LANG_SOURCE([_Thread_local int foo = 0;
830 AC_DEFINE(HAVE_THREAD_LOCAL, 1, [Defined to 1 if C11 _Thread_local storage qualifier is supported])
831 ],[ AC_MSG_RESULT([no])])
833 dnl __STDC_NO_THREADS__ can't be trusted on some platforms.
834 dnl check for its availability explicitely
835 AC_CHECK_HEADERS([threads.h])
837 AC_CHECK_LIB([anl],[getaddrinfo_a],[
838 AC_DEFINE(HAVE_LIBANL, 1, [Define to 1 if you have the anl library])
841 dnl Check for dynamic plugins
843 have_dynamic_objects="no"
845 AC_SEARCH_LIBS(dlsym, [dl svld], [
846 AS_IF([test "$ac_cv_search_dlsym" != "none required"], [
847 LIBDL="$ac_cv_search_dlsym"
849 have_dynamic_objects="yes"
854 AS_IF([test "${SYS}" = "mingw32"], [
856 have_dynamic_objects="yes" #assume we can use shared objects
859 AC_ARG_WITH([libfuzzer],
860 AS_HELP_STRING([--with-libfuzzer=DIR],
861 [use libFuzzer library from DIR and triggers sanitize coverage (default disabled)]),
864 AS_VAR_IF(with_libfuzzer, no, [], [
869 AM_CONDITIONAL([HAVE_LIBFUZZER], [test "${with_libfuzzer}" != "no"])
871 AS_IF([test "${enable_shared}" = "no"], [
872 have_dynamic_objects=no
874 AM_CONDITIONAL([HAVE_DYNAMIC_PLUGINS], [test "${have_dynamic_objects}" != "no"])
878 AS_IF([test "${SYS}" != "mingw32"], [
879 AC_SEARCH_LIBS([clock_nanosleep], [rt pthread], [
880 AS_IF([test "$ac_cv_search_clock_nanosleep" != "none required"], [
881 LIBRT="$ac_cv_search_clock_nanosleep"
884 AC_SEARCH_LIBS([nanosleep], [rt pthread posix4], [
885 AS_IF([test "$ac_cv_search_nanosleep" != "none required"], [
886 LIBRT="$ac_cv_search_nanosleep"
894 dnl Check for headers
898 AC_CHECK_HEADERS([arpa/inet.h pthread.h search.h sys/shm.h sys/socket.h sys/uio.h])
899 AC_CHECK_HEADERS([net/if.h], [], [],
901 #include <sys/types.h>
902 #include <sys/socket.h>
904 AC_CHECK_HEADER([syslog.h], [have_syslog="yes"], [have_syslog="no"])
905 AM_CONDITIONAL([HAVE_SYSLOG], [test "$have_syslog" = "yes"])
908 AC_CHECK_HEADERS([netinet/tcp.h netinet/udplite.h sys/param.h sys/mount.h])
911 AC_CHECK_HEADERS([features.h getopt.h linux/dccp.h linux/magic.h sys/eventfd.h])
914 AC_CHECK_HEADERS([xlocale.h])
916 dnl Check if C++ headers define locale_t
918 AC_CACHE_CHECK([if C++ headers define locale_t],
919 [ac_cv_cxx_locale_t],
920 [ac_cv_cxx_locale_t=no
921 AC_TRY_COMPILE([#include <locale>], [locale_t loc;],
922 [ac_cv_cxx_locale_t=yes])])
923 if test "${ac_cv_cxx_locale_t}" != "no"; then
924 AC_DEFINE(HAVE_CXX_LOCALE_T, 1, Define to 1 if C++ headers define locale_t)
928 dnl LP64 and LLP64 architectures had better define ssize_t by themselves...
929 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.]) dnl ` (fix VIM syntax highlight
930 AC_CHECK_TYPE(ssize_t,, [
931 AC_DEFINE(ssize_t, int)
934 dnl It seems that autoconf detects pkg-config only during the first
935 dnl PKG_CHECK_MODULES from configure.ac - which makes sense. But in our case,
936 dnl it is nested within a conditional block, so it was not working right.
937 PKG_PROG_PKG_CONFIG()
939 dnl On some OS we need static linking
940 AS_IF([test -n "${PKG_CONFIG}" ],[
941 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "darwin" -o "${SYS}" = "os2" ],[
942 PKG_CONFIG="${PKG_CONFIG} --static"
948 dnl Check for zlib.h and -lz if available
950 AC_CHECK_HEADERS([zlib.h], [ have_zlib=yes ], [ have_zlib=no ])
951 AM_CONDITIONAL([HAVE_ZLIB], [ test "${have_zlib}" = "yes" ])
952 if test "${have_zlib}" = "yes"
954 VLC_ADD_LIBS([sap],[-lz])
959 dnl Domain name i18n support via GNU libidn
961 PKG_CHECK_MODULES([IDN], [libidn], [
963 AC_DEFINE([HAVE_IDN], 1, [Define to 1 if you have GNU libidn.])
970 AC_ARG_ENABLE([dbus],
971 AS_HELP_STRING([--enable-dbus],
972 [compile D-Bus message bus support (default enabled)]))
974 AS_IF([test "${enable_dbus}" != "no"], [
975 PKG_CHECK_MODULES(DBUS, [dbus-1 >= 1.6.0], [
978 AS_IF([test -n "${enable_dbus}"], [
979 AC_MSG_ERROR([${DBUS_PKG_ERRORS}.])
981 AC_MSG_WARN([${DBUS_PKG_ERRORS}.])
985 AM_CONDITIONAL([HAVE_DBUS], [test "${have_dbus}" = "yes"])
988 dnl Check for systemd
989 PKG_CHECK_MODULES([SYSTEMD], [libsystemd], [
992 AC_MSG_WARN([${SYSTEMD_PKG_ERRORS}.])
994 AM_CONDITIONAL([HAVE_SYSTEMD], [test "${have_systemd}" = "yes"])
997 EXTEND_HELP_STRING([Optimization options:])
999 dnl Compiler warnings
1002 AX_APPEND_COMPILE_FLAGS([-Wall -Wextra -Wsign-compare -Wundef -Wpointer-arith -Wvolatile-register-var -Wformat -Wformat-security -Wduplicated-branches -Wduplicated-cond], [CFLAGS])
1003 AX_APPEND_COMPILE_FLAGS([-Wall -Wextra -Wsign-compare -Wundef -Wpointer-arith -Wvolatile-register-var -Wformat -Wformat-security -Wduplicated-branches -Wduplicated-cond], [CXXFLAGS])
1005 AX_APPEND_COMPILE_FLAGS([-Wbad-function-cast -Wwrite-strings -Wmissing-prototypes -Werror-implicit-function-declaration -Winit-self -Wlogical-op -Wshadow=local -Wmultistatement-macros], [CFLAGS])
1006 AX_APPEND_COMPILE_FLAGS([-pipe], [CFLAGS])
1011 AC_ARG_ENABLE([debug],
1012 AS_HELP_STRING([--disable-debug],
1013 [disable run-time assertions (default enabled)]),,
1014 [enable_debug="yes"])
1016 [Define to 1 if debug code should NOT be compiled])
1017 AS_IF([test "${enable_debug}" != "no"], [
1018 AC_CHECK_HEADERS([valgrind/valgrind.h])
1026 AC_ARG_ENABLE([gprof],
1027 AS_HELP_STRING([--enable-gprof],[profile with gprof (default disabled)]),,
1028 [enable_gprof="no"])
1029 AS_IF([test "${enable_gprof}" != "no"], [
1030 CFLAGS="${CFLAGS} -pg"
1031 CXXFLAGS="${CXXFLAGS} -pg"
1032 OBJCFLAGS="${OBJCFLAGS} -pg"
1033 LDFLAGS="${LDFLAGS} -pg"
1036 AC_ARG_ENABLE([cprof],
1037 AS_HELP_STRING([--enable-cprof],[profile with cprof (default disabled)]),,
1038 [enable_cprof="no"])
1039 AS_IF([test "${enable_gprof}" != "no"], [
1040 CFLAGS="${CFLAGS} -finstrument-functions"
1041 CXXFLAGS="${CXXFLAGS} -finstrument-functions"
1042 OBJCFLAGS="${OBJCFLAGS} -finstrument-functions"
1043 LDFLAGS="${LDFLAGS} -finstrument-functions"
1049 AC_ARG_ENABLE([coverage],
1050 AS_HELP_STRING([--enable-coverage],
1051 [build for test coverage (default disabled)]),,
1052 [enable_coverage="no"])
1053 AS_IF([test "${enable_coverage}" != "no"], [
1054 CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
1055 CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
1056 LDFLAGS="-lgcov ${LDFLAGS}"
1059 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "os2"], [
1061 CFLAGS="${CFLAGS} -fvisibility=hidden"
1062 CXXFLAGS="${CXXFLAGS} -fvisibility=hidden"
1063 OBJCFLAGS="${OBJCFLAGS} -fvisibility=hidden"
1064 AC_CACHE_CHECK([if $CC accepts -fvisibility=hidden],
1065 [ac_cv_c_visibility_hidden], [
1066 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1067 ac_cv_c_visibility_hidden=yes
1069 ac_cv_c_visibility_hidden=no
1072 AS_IF([test "${ac_cv_c_visibility_hidden}" = "no"], [VLC_RESTORE_FLAGS])
1078 AC_ARG_WITH([sanitizer],
1079 AS_HELP_STRING([--with-sanitizer=(address/memory/undefined/thread)],
1080 [build with sanitizer flags (default disabled)]),
1082 [with_sanitizer=no])
1084 AS_VAR_IF(with_sanitizer, no, [], [
1085 AX_CHECK_COMPILE_FLAG([-fsanitize=${with_sanitizer}], [
1086 AX_APPEND_FLAG([-fsanitize=${with_sanitizer}])
1087 AX_APPEND_FLAG([-fsanitize=${with_sanitizer}], [CXXFLAGS])
1088 AX_APPEND_FLAG([-fsanitize=${with_sanitizer}], [LDFLAGS])
1090 AC_MSG_ERROR(["-fsanitize=${with_sanitizer} not supported!"])
1092 AX_APPEND_FLAG([-g])
1093 AX_APPEND_FLAG([-g], [CXXFLAGS])
1095 AS_IF([test -z "${with_sanitizer##*address*}" ], [
1096 AX_APPEND_COMPILE_FLAGS([-fsanitize-address-use-after-scope -fno-omit-frame-pointer -fsanitize=pointer-compare -fsanitize=pointer-subtract])
1097 AX_APPEND_COMPILE_FLAGS([-fsanitize-address-use-after-scope -fno-omit-frame-pointer -fsanitize=pointer-compare -fsanitize=pointer-subtract], [CXXFLAGS])
1099 AS_IF([test -z "${with_sanitizer##*memory*}" ], [
1100 AX_APPEND_COMPILE_FLAGS([-fPIE -pie])
1101 AX_APPEND_COMPILE_FLAGS([-fPIE -pie], [CXXFLAGS])
1103 AS_IF([test -z "${with_sanitizer##*thread*}" ], [
1104 AX_APPEND_COMPILE_FLAGS([-fPIE -pie])
1105 AX_APPEND_COMPILE_FLAGS([-fPIE -pie], [CXXFLAGS])
1110 dnl Enable/disable optimizations
1112 AC_ARG_ENABLE([optimizations],
1113 AS_HELP_STRING([--disable-optimizations],
1114 [disable compiler optimizations (default enabled)]),,
1115 [enable_optimizations="yes"])
1117 dnl Check for various optimization flags
1118 AS_IF([test "${enable_optimizations}" != "no"], [
1120 dnl -O3 only in production builds
1121 AS_IF([test "${enable_debug}" = "no"], [
1123 CFLAGS="${CFLAGS} -O3"
1124 CXXFLAGS="${CXXFLAGS} -O3"
1125 OBJCFLAGS="${OBJCFLAGS} -O3"
1126 AC_CACHE_CHECK([if $CC accepts -O3], [ac_cv_c_o3], [
1127 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1133 AS_IF([test "${ac_cv_c_o3}" = "no"], [VLC_RESTORE_FLAGS])
1136 dnl Check for fast maths
1137 AX_APPEND_COMPILE_FLAGS([-fno-math-errno -funsafe-math-optimizations -fno-rounding-math -fno-signaling-nans -fcx-limited-range], [CFLAGS])
1138 AX_APPEND_COMPILE_FLAGS([-fno-math-errno -funsafe-math-optimizations -fno-rounding-math -fno-signaling-nans -fcx-limited-range], [CXXFLAGS])
1141 #if defined(_MSC_VER) && !defined(__clang__)
1142 # pragma fenv_access(off)
1143 # pragma fp_contract(on)
1144 #elif defined(__GNUC__)
1145 /* Not supported so far */
1147 # pragma STDC FENV_ACCESS OFF
1148 # pragma STDC FP_CONTRACT ON
1152 dnl Check for -funroll-loops
1154 CFLAGS="${CFLAGS} -funroll-loops"
1155 CXXFLAGS="${CXXFLAGS} -funroll-loops"
1156 OBJCFLAGS="${OBJCFLAGS} -funroll-loops"
1157 AC_CACHE_CHECK([if $CC accepts -funroll-loops], [ac_cv_c_unroll_loops], [
1158 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1159 ac_cv_c_unroll_loops=yes
1161 ac_cv_c_unroll_loops=no
1164 AS_IF([test "${ac_cv_c_unroll_loops}" = "no"], [VLC_RESTORE_FLAGS])
1166 AS_IF([test "$enable_debug" = "no"], [
1167 dnl Check for -fomit-frame-pointer
1169 CFLAGS="${CFLAGS} -fomit-frame-pointer"
1170 CXXFLAGS="${CXXFLAGS} -fomit-frame-pointer"
1171 OBJCFLAGS="${OBJCFLAGS} -fomit-frame-pointer"
1172 AC_CACHE_CHECK([if $CC accepts -fomit-frame-pointer],
1173 [ac_cv_c_omit_frame_pointer], [
1174 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1175 ac_cv_c_omit_frame_pointer=yes
1177 ac_cv_c_omit_frame_pointer=no
1180 AS_IF([test "${ac_cv_c_omit_frame_pointer}" = "no"], [VLC_RESTORE_FLAGS])
1185 AC_ARG_ENABLE([ssp],
1186 AS_HELP_STRING([--disable-ssp],
1187 [disable stack smashing protection (default enabled for optimized builds)]), [],
1190 AS_IF([test "${enable_ssp}" != "no" -a "${enable_optimizations}" != "no"], [
1192 AX_APPEND_COMPILE_FLAGS([-fstack-protector-strong])
1193 AX_APPEND_COMPILE_FLAGS([-fstack-protector-strong], [CXXFLAGS])
1194 dnl Win32 requires linking to ssp for stack-protection
1195 AS_IF([test "${SYS}" = "mingw32"], [
1196 LDFLAGS="${LDFLAGS} -lssp"
1197 AC_CACHE_CHECK([if linker supports stack protectors], [ac_cv_ld_ssp], [
1198 AC_TRY_LINK([#include <stdio.h>],[char buf[100]; fgets(buf, sizeof(buf), stdin);], [
1204 AS_IF([test "${ac_cv_ld_ssp}" = "no"], [VLC_RESTORE_FLAGS])
1208 AS_IF([test "${SYS}" = "mingw32"], [
1209 dnl library for BCrypt APIs
1210 AS_IF([test "${vlc_winstore_app}" = 1],
1211 [LDFLAGS="${LDFLAGS} -lbcrypt"])
1215 LDFLAGS="${LDFLAGS} -Wl,-Bsymbolic"
1216 AC_CACHE_CHECK([if linker supports -Bsymbolic], [ac_cv_ld_bsymbolic], [
1218 ac_cv_ld_bsymbolic="-Wl,-Bsymbolic"
1220 ac_cv_ld_bsymbolic=""
1224 SYMBOLIC_LDFLAGS="${ac_cv_ld_bsymbolic}"
1225 AC_SUBST([SYMBOLIC_LDFLAGS])
1228 LDFLAGS="${LDFLAGS} -Wl,-z,defs"
1229 AC_CACHE_CHECK([if linker supports -z,defs], [ac_cv_ld_z_defs], [
1231 ac_cv_ld_z_defs="yes"
1233 ac_cv_ld_z_defs="no"
1236 AS_IF([test "${ac_cv_ld_z_defs}" = "no"], [VLC_RESTORE_FLAGS])
1238 dnl Check for __attribute__((packed))
1239 AC_CACHE_CHECK([for __attribute__((packed))],
1240 [ac_cv_c_attribute_packed],
1241 [ac_cv_c_attribute_packed=no
1242 AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b; (void)b;],
1243 [ac_cv_c_attribute_packed=yes])])
1244 if test "${ac_cv_c_attribute_packed}" != "no"; then
1245 AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1251 case "${host_cpu}" in
1264 dnl Check for backtrace() support
1265 AC_CHECK_HEADERS([execinfo.h])
1266 AC_CHECK_FUNCS([backtrace])
1271 ALIASES="${ALIASES} cvlc rvlc"
1274 dnl Accelerated modules
1277 dnl Check for fully working MMX intrinsics
1278 dnl We need support for -mmmx, we need <mmintrin.h>, and we also need a
1279 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1280 AC_ARG_ENABLE([mmx],
1281 AS_HELP_STRING([--disable-mmx],
1282 [disable MMX optimizations (default auto)]),,[
1283 case "${host_cpu}" in
1294 AS_IF([test "${enable_mmx}" != "no"], [
1297 CFLAGS="${CFLAGS} -mmmx"
1298 AC_CACHE_CHECK([if $CC groks MMX intrinsics], [ac_cv_c_mmx_intrinsics], [
1299 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1300 [#include <mmintrin.h>
1302 uint64_t frobzor;]], [
1304 a = b = c = (__m64)frobzor;
1305 a = _mm_slli_pi16(a, 3);
1306 a = _mm_adds_pi16(a, b);
1307 c = _mm_srli_pi16(c, 8);
1308 c = _mm_slli_pi16(c, 3);
1309 b = _mm_adds_pi16(b, c);
1310 a = _mm_unpacklo_pi8(a, b);
1311 frobzor = (uint64_t)a;]])], [
1312 ac_cv_c_mmx_intrinsics=yes
1314 ac_cv_c_mmx_intrinsics=no
1318 AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1319 AC_DEFINE(HAVE_MMX_INTRINSICS, 1, [Define to 1 if MMX intrinsics are available.])
1323 CFLAGS="${CFLAGS} -mmmx"
1324 AC_CACHE_CHECK([if $CC groks MMX inline assembly], [ac_cv_mmx_inline], [
1325 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1327 asm volatile("packuswb %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1330 ac_cv_mmx_inline=yes
1335 AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1336 AC_DEFINE(CAN_COMPILE_MMX, 1, [Define to 1 inline MMX assembly is available.])
1340 AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1341 [ac_cv_mmxext_inline], [
1342 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1344 asm volatile("maskmovq %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1347 ac_cv_mmxext_inline=yes
1349 ac_cv_mmxext_inline=no
1353 AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1354 AC_DEFINE(CAN_COMPILE_MMXEXT, 1, [Define to 1 if MMX EXT inline assembly is available.])
1358 AM_CONDITIONAL([HAVE_MMX], [test "${have_mmx}" = "yes"])
1359 AM_CONDITIONAL([HAVE_MMXEXT], [test "${have_mmxext}" = "yes"])
1361 dnl Check for fully workin SSE2 intrinsics
1362 dnl We need support for -msse[2], we need <emmintrin.h>, and we also need a
1363 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1364 AC_ARG_ENABLE([sse],
1365 AS_HELP_STRING([--disable-sse],
1366 [disable SSE (1-4) optimizations (default auto)]),, [
1367 case "${host_cpu}" in
1377 AS_IF([test "${enable_sse}" != "no"], [
1378 ARCH="${ARCH} sse sse2"
1381 CFLAGS="${CFLAGS} -msse2"
1382 AC_CACHE_CHECK([if $CC groks SSE2 intrinsics], [ac_cv_c_sse2_intrinsics], [
1383 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1384 [#include <emmintrin.h>
1386 uint64_t frobzor;]], [
1388 a = b = c = _mm_set1_epi64((__m64)frobzor);
1389 a = _mm_slli_epi16(a, 3);
1390 a = _mm_adds_epi16(a, b);
1391 c = _mm_srli_epi16(c, 8);
1392 c = _mm_slli_epi16(c, 3);
1393 b = _mm_adds_epi16(b, c);
1394 a = _mm_unpacklo_epi8(a, b);
1395 frobzor = (uint64_t)_mm_movepi64_pi64(a);]])], [
1396 ac_cv_c_sse2_intrinsics=yes
1398 ac_cv_c_sse2_intrinsics=no
1402 AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1403 AC_DEFINE(HAVE_SSE2_INTRINSICS, 1, [Define to 1 if SSE2 intrinsics are available.])
1407 CFLAGS="${CFLAGS} -msse"
1408 AC_CACHE_CHECK([if $CC groks SSE inline assembly], [ac_cv_sse_inline], [
1409 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1411 asm volatile("xorps %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1414 ac_cv_sse_inline=yes
1420 AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1421 AC_DEFINE(CAN_COMPILE_SSE, 1, [Define to 1 if SSE inline assembly is available.])
1424 AC_CACHE_CHECK([if $CC groks SSE2 inline assembly], [ac_cv_sse2_inline], [
1425 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1427 asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1430 ac_cv_sse2_inline=yes
1432 ac_cv_sse2_inline=no
1435 AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1436 AC_DEFINE(CAN_COMPILE_SSE2, 1, [Define to 1 if SSE2 inline assembly is available.])
1441 AC_CACHE_CHECK([if $CC groks SSE3 inline assembly], [ac_cv_sse3_inline], [
1442 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1444 asm volatile("movsldup %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1447 ac_cv_sse3_inline=yes
1449 ac_cv_sse3_inline=no
1453 AS_IF([test "${ac_cv_sse3_inline}" != "no"], [
1454 AC_DEFINE(CAN_COMPILE_SSE3, 1, [Define to 1 if SSE3 inline assembly is available.]) ])
1457 AC_CACHE_CHECK([if $CC groks SSSE3 inline assembly], [ac_cv_ssse3_inline], [
1458 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1460 asm volatile("pabsw %%xmm0,%%xmm0"::"r"(p):"xmm0");
1463 ac_cv_ssse3_inline=yes
1465 ac_cv_ssse3_inline=no
1469 AS_IF([test "${ac_cv_ssse3_inline}" != "no"], [
1470 AC_DEFINE(CAN_COMPILE_SSSE3, 1, [Define to 1 if SSSE3 inline assembly is available.]) ])
1473 AC_CACHE_CHECK([if $CC groks SSE4.1 inline assembly],
1474 [ac_cv_sse4_1_inline], [
1475 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1477 asm volatile("pmaxsb %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1480 ac_cv_sse4_1_inline=yes
1482 ac_cv_sse4_1_inline=no
1486 AS_IF([test "${ac_cv_sse4_1_inline}" != "no"], [
1487 AC_DEFINE(CAN_COMPILE_SSE4_1, 1, [Define to 1 if SSE4_1 inline assembly is available.]) ])
1490 AC_CACHE_CHECK([if $CC groks SSE4.2 inline assembly],
1491 [ac_cv_sse4_2_inline], [
1492 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1494 asm volatile("pcmpgtq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1497 ac_cv_sse4_2_inline=yes
1499 ac_cv_sse4_2_inline=no
1503 AS_IF([test "${ac_cv_sse4_2_inline}" != "no"], [
1504 AC_DEFINE(CAN_COMPILE_SSE4_2, 1, [Define to 1 if SSE4_2 inline assembly is available.]) ])
1507 AC_CACHE_CHECK([if $CC groks SSE4A inline assembly], [ac_cv_sse4a_inline], [
1508 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1510 asm volatile("insertq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1513 ac_cv_sse4a_inline=yes
1515 ac_cv_sse4a_inline=no
1519 AS_IF([test "${ac_cv_sse4a_inline}" != "no"], [
1520 AC_DEFINE([CAN_COMPILE_SSE4A], [1], [Define to 1 if SSE4A inline assembly is available.]) ])
1522 AM_CONDITIONAL([HAVE_SSE2], [test "$have_sse2" = "yes"])
1524 dnl Check for fully workin AVX2 intrinsics
1525 dnl We need support for -mavx[2], we need <immintrin.h>, and we also need a
1526 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1527 AC_ARG_ENABLE([avx],
1528 AS_HELP_STRING([--disable-avx],
1529 [disable AVX (1-2) optimizations (default auto)]),, [
1530 case "${host_cpu}" in
1540 AS_IF([test "${enable_avx}" != "no"], [
1541 ARCH="${ARCH} avx avx2"
1544 CFLAGS="${CFLAGS} -mavx2"
1545 AC_CACHE_CHECK([if $CC groks AVX2 intrinsics], [ac_cv_c_avx2_intrinsics], [
1546 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1547 [#include <immintrin.h>
1549 uint64_t frobzor;]], [
1551 a = b = c = _mm256_set1_epi64x((int64_t)frobzor);
1552 a = _mm256_slli_epi16(a, 3);
1553 a = _mm256_adds_epi16(a, b);
1554 c = _mm256_srli_epi16(c, 8);
1555 c = _mm256_slli_epi16(c, 3);
1556 b = _mm256_adds_epi16(b, c);
1557 a = _mm256_unpacklo_epi8(a, b);
1558 frobzor = (uint64_t)_mm256_extract_epi64(a, 0);]])], [
1559 ac_cv_c_avx2_intrinsics=yes
1561 ac_cv_c_avx2_intrinsics=no
1565 AS_IF([test "${ac_cv_c_avx2_intrinsics}" != "no"], [
1566 AC_DEFINE(HAVE_AVX2_INTRINSICS, 1, [Define to 1 if AVX2 intrinsics are available.])
1570 CFLAGS="${CFLAGS} -mavx"
1571 AC_CACHE_CHECK([if $CC groks AVX inline assembly], [ac_cv_avx_inline], [
1572 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1574 asm volatile("xorps256 %%ymm1,%%ymm2"::"r"(p):"ymm1", "ymm2");
1577 ac_cv_avx_inline=yes
1583 AS_IF([test "${ac_cv_avx_inline}" != "no" -a "${SYS}" != "solaris"], [
1584 AC_DEFINE(CAN_COMPILE_AVX, 1, [Define to 1 if AVX inline assembly is available.])
1587 AC_CACHE_CHECK([if $CC groks AVX2 inline assembly], [ac_cv_avx2_inline], [
1588 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1590 asm volatile("punpckhqdq256 %%ymm1,%%ymm2"::"r"(p):"ymm1", "ymm2");
1593 ac_cv_avx2_inline=yes
1595 ac_cv_avx2_inline=no
1599 AS_IF([test "${ac_cv_avx2_inline}" != "no" -a "${SYS}" != "solaris"], [
1600 AC_DEFINE(CAN_COMPILE_AVX2, 1, [Define to 1 if AVX2 inline assembly is available.])
1604 AM_CONDITIONAL([HAVE_AVX2], [test "$have_avx2" = "yes"])
1607 CFLAGS="${CFLAGS} -mmmx"
1609 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly], [ac_cv_3dnow_inline], [
1610 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1612 asm volatile("pfadd %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1615 ac_cv_3dnow_inline=yes
1617 ac_cv_3dnow_inline=no
1621 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1622 AC_DEFINE([CAN_COMPILE_3DNOW], 1,
1623 [Define to 1 if 3D Now! inline assembly is available.])
1626 AM_CONDITIONAL([HAVE_3DNOW], [test "$have_3dnow" = "yes"])
1629 AC_ARG_ENABLE([neon],
1630 AS_HELP_STRING([--disable-neon],
1631 [disable ARM NEON optimizations (default auto)]),, [
1632 case "${host_cpu}" in
1644 AS_IF([test "${enable_neon}" != "no"], [
1646 AC_CACHE_CHECK([if $CCAS groks ARM NEON assembly], [ac_cv_arm_neon], [
1647 AS_IF([test "${enable_neon}" != "64"], [
1648 CFLAGS="${CFLAGS} -mfpu=neon -mhard-float"
1651 asm volatile("vqmovun.s64 d0, q1":::"d0");
1659 CFLAGS="${CFLAGS} -march=armv8-a+simd"
1662 asm volatile("uhadd v0.8b, v0.8b, v1.8b":::"v0");
1673 AM_CONDITIONAL([HAVE_NEON], [test "${ac_cv_arm_neon}" = "32"])
1674 AM_CONDITIONAL([HAVE_ARM64], [test "${ac_cv_arm_neon}" = "64"])
1676 AC_ARG_ENABLE([sve],
1677 AS_HELP_STRING([--disable-sve],
1678 [disable ARM SVE optimizations (default auto)]),, [
1679 AS_IF([test "${host_cpu}" = "aarch64"], [enable_sve="yes"] ,[enable_sve="no"])
1681 AS_IF([test "${enable_sve}" != "no"], [
1683 CFLAGS="${CFLAGS} -march=armv8-a+sve"
1684 AC_CACHE_CHECK([if $CCAS groks ARM SVE assembly], [ac_cv_arm_sve], [
1687 asm volatile("ptrue p0.s" ::: "p0");
1697 AM_CONDITIONAL([HAVE_SVE], [test "${ac_cv_arm_sve}" = "yes"])
1699 AC_ARG_ENABLE([branch-protection],
1700 AS_HELP_STRING([--disable-branch-protection],
1701 [disable AArch64 branch protection (default auto)]),, [
1702 AS_IF([test "${host_cpu}" = "aarch64"],
1703 [enable_branch_protection="yes"], [enable_branch_protection="no"])
1705 AS_IF([test "${enable_branch_protection}" != "no"], [
1706 AX_CHECK_COMPILE_FLAG([-mbranch-protection=standard], [
1707 AX_APPEND_FLAG([-mbranch-protection=standard], [CFLAGS])
1708 AX_APPEND_FLAG([-mbranch-protection=standard], [CXXFLAGS])
1713 AC_ARG_ENABLE([altivec],
1714 AS_HELP_STRING([--disable-altivec],
1715 [disable AltiVec optimizations (default auto)]),, [
1716 AS_CASE("${host_cpu}", [powerpc*],
1717 [enable_altivec=yes], [enable_altivec=no])
1721 AS_IF([test "${enable_altivec}" = "yes"], [
1722 ARCH="${ARCH} altivec";
1724 AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1725 [ac_cv_altivec_inline],
1726 [AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1727 ac_cv_altivec_inline="yes",
1728 [CFLAGS="${CFLAGS} -Wa,-maltivec"
1729 AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1730 [ac_cv_altivec_inline="-Wa,-maltivec"],
1731 ac_cv_altivec_inline=no)
1734 AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1735 AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1736 [Define to 1 if AltiVec inline assembly is available.])
1737 AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1738 ALTIVEC_CFLAGS="${ac_cv_altivec_inline}"
1739 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_altivec_inline}])
1745 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1746 [ac_cv_c_altivec], [
1747 CFLAGS="${CFLAGS} -maltivec"
1748 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1749 [#include <altivec.h>]], [
1750 [vec_ld(0, (unsigned char *)0);]])], [
1751 ac_cv_c_altivec="-maltivec"
1753 ac_cv_c_altivec="no"
1757 AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1758 CPPFLAGS="${CPPFLAGS} ${ac_cv_c_altivec}"
1759 AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, [Define to 1 if C AltiVec extensions are available.])
1760 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_c_altivec}])
1761 ALTIVEC_CFLAGS="$ALTIVEC_CFLAGS ${ac_cv_c_altivec}"
1762 VLC_ADD_CFLAGS([deinterlace],[${ac_cv_c_altivec}])
1765 AC_CHECK_HEADERS([altivec.h])
1768 LDFLAGS="${LDFLAGS} -Wl,-framework,vecLib"
1769 AC_CACHE_CHECK([if linker needs -framework vecLib],
1771 [AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)])
1773 AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1774 VLC_ADD_LIBS([libvlccore],[-Wl,-framework,vecLib])
1777 AC_SUBST([ALTIVEC_CFLAGS])
1778 AM_CONDITIONAL([HAVE_ALTIVEC], [test "$have_altivec" = "yes"])
1783 AC_ARG_ENABLE([optimize-memory],
1784 AS_HELP_STRING([--enable-optimize-memory],
1785 [optimize memory usage over performance]))
1786 if test "${enable_optimize_memory}" = "yes"; then
1787 AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1791 dnl Allow running as root (useful for people running on embedded platforms)
1793 AC_ARG_ENABLE([run-as-root],
1794 AS_HELP_STRING([--enable-run-as-root],
1795 [allow running VLC as root (default disabled)]))
1796 AS_IF([test "${enable_run_as_root}" = "yes"],[
1797 AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1798 [Define to 1 to allow running VLC as root (uid 0).])
1804 AC_ARG_ENABLE([sout],
1805 AS_HELP_STRING([--disable-sout],
1806 [disable streaming output (default enabled)]))
1807 AS_IF([test "${enable_sout}" != "no"], [
1808 AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1810 AM_CONDITIONAL([ENABLE_SOUT], [test "${enable_sout}" != "no"])
1813 AC_ARG_ENABLE([lua],
1814 AS_HELP_STRING([--disable-lua],
1815 [disable LUA scripting support (default enabled)]))
1816 if test "${enable_lua}" != "no"
1818 PKG_CHECK_MODULES(LUA, lua5.2,
1821 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua 5.1 instead])
1823 PKG_CHECK_MODULES(LUA, lua5.1,
1826 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua >= 5.1 instead])
1827 PKG_CHECK_MODULES(LUA, lua >= 5.1,
1830 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying manual detection instead])
1832 AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1835 AC_CHECK_LIB( lua5.2 , luaL_newstate,
1836 [LUA_LIBS="-llua5.2"],
1837 AC_CHECK_LIB( lua5.1 , luaL_newstate,
1838 [LUA_LIBS="-llua5.1"],
1839 AC_CHECK_LIB( lua51 , luaL_newstate,
1840 [LUA_LIBS="-llua51"],
1841 AC_CHECK_LIB( lua , luaL_newstate,
1849 if test "x${have_lua}" != "xyes" ; then
1850 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.])
1852 AC_ARG_VAR([LUAC], [LUA byte compiler])
1853 AS_IF([test -z "$LUAC"], [
1854 AC_CHECK_TOOL(LUAC, [luac], [false])
1856 AS_IF([test "${LUAC}" = "false"], [
1857 AC_MSG_ERROR([Could not find the LUA byte compiler.])
1859 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], [
1860 AC_MSG_ERROR([You need 32-bits luac when using lua from contrib.])
1863 AM_CONDITIONAL([BUILD_LUA], [test "${have_lua}" = "yes"])
1867 dnl VideoLAN manager
1869 AC_ARG_ENABLE([vlm],
1870 AS_HELP_STRING([--disable-vlm],
1871 [disable the stream manager (default enabled)]),,
1872 [enable_vlm="${enable_sout}"])
1873 AS_IF([test "${enable_vlm}" != "no"], [
1874 AS_IF([test "${enable_sout}" = "no"], [
1875 AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1877 AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1879 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1883 dnl Addons manager storage and repositories modules
1885 AC_ARG_ENABLE([addonmanagermodules],
1886 AS_HELP_STRING([--disable-addonmanagermodules],
1887 [disable the addons manager modules (default enabled)]))
1888 if test "${enable_addonmanagermodules}" != "no"
1890 AC_DEFINE(ENABLE_ADDONMANAGERMODULES, 1, [Define if you want the addons manager modules])
1892 AM_CONDITIONAL([ENABLE_ADDONMANAGERMODULES], [test "${enable_addonmanagermodules}" != "no"])
1899 EXTEND_HELP_STRING([Input plugins:])
1902 dnl libarchive access module
1904 PKG_ENABLE_MODULES_VLC([ARCHIVE], [archive], [libarchive >= 3.1.0], (libarchive support), [auto])
1909 AC_ARG_ENABLE([live555],
1910 AS_HELP_STRING([--enable-live555],
1911 [enable RTSP input through live555 (default enabled)]))
1913 AS_IF([test "${enable_live555}" != "no" -a -n "${CXX}"], [
1914 PKG_CHECK_MODULES(LIVE555, live555, [
1915 VLC_ADD_PLUGIN([live555])
1916 VLC_ADD_CXXFLAGS([live555], [$LIVE555_CFLAGS])
1917 VLC_ADD_LIBS([live555],[$LIVE555_LIBS])
1919 AC_MSG_WARN([${LIVE555_PKG_ERRORS}.])
1924 dnl detect include paths
1925 AS_IF([test -f "${CONTRIB_DIR}/include/UsageEnvironment/UsageEnvironment.hh"], [
1926 CPPFLAGS_live555="-I${CONTRIB_DIR}/include/liveMedia -I${CONTRIB_DIR}/include/groupsock -I${CONTRIB_DIR}/include/BasicUsageEnvironment -I${CONTRIB_DIR}/include/UsageEnvironment"
1928 AS_IF([test "${SYS}" != "os2"], [
1929 LIVE555_PREFIX=${LIVE555_PREFIX-"/usr"}
1930 CPPFLAGS_live555="-I${LIVE555_PREFIX}/include/liveMedia -I${LIVE555_PREFIX}/include/groupsock -I${LIVE555_PREFIX}/include/BasicUsageEnvironment -I${LIVE555_PREFIX}/include/UsageEnvironment"
1932 LIVE555_PREFIX=${LIVE555_PREFIX-"/usr/lib/live"}
1933 CPPFLAGS_live555="-I${LIVE555_PREFIX}/liveMedia/include -I${LIVE555_PREFIX}/groupsock/include -I${LIVE555_PREFIX}/BasicUsageEnvironment/include -I${LIVE555_PREFIX}/UsageEnvironment/include"
1934 LDFLAGS_live555="-L${LIVE555_PREFIX}/liveMedia -L${LIVE555_PREFIX}/groupsock -L${LIVE555_PREFIX}/BasicUsageEnvironment -L${LIVE555_PREFIX}/UsageEnvironment"
1939 AS_IF([test "${SYS}" = "solaris"], [
1940 CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1942 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1943 LDFLAGS="${LDFLAGS} ${LDFLAGS_live555}"
1946 AC_CACHE_CHECK([for live555 version 1324598400 or later], [ac_cv_live555], [
1947 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
1948 [#include <liveMedia_version.hh>
1949 #if !defined (LIVEMEDIA_LIBRARY_VERSION_INT) || (LIVEMEDIA_LIBRARY_VERSION_INT < 1324598400)
1959 AS_IF([test "$ac_cv_live555" = "no"], [
1960 AC_MSG_WARN([live555 is missing or its installed version is too old:
1961 Version 2011.12.23 or later is required to proceed.
1962 You can get an updated one from http://www.live555.com/liveMedia .])
1963 AS_IF([test -n "${enable_live555}"], [
1964 AC_MSG_ERROR([Update live555 or pass --disable-live555 to disable RTSP input support.])
1967 other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1968 other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
1969 AS_IF([test "${SYS}" = "mingw32"], [
1970 # add ws2_32 for closesocket, select, recv
1971 other_libs="$other_libs -lws2_32"
1974 dnl We need to check for pic because live555 don't provide shared libs
1975 dnl and we want to build a plugins so we need -fPIC on some arch.
1976 VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1977 VLC_ADD_LDFLAGS([live555], [${LDFLAGS_live555}])
1978 AC_CHECK_LIB([liveMedia_pic], [main], [
1979 VLC_ADD_PLUGIN([live555])
1980 VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
1982 AC_CHECK_LIB([liveMedia], [main], [
1983 VLC_ADD_PLUGIN([live555])
1984 VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1985 ],[],[${other_libs}])
1986 ],[${other_libs_pic}])
1994 dnl IIDC and DV FireWire input modules
1996 PKG_ENABLE_MODULES_VLC([DC1394], [], [libdc1394-2 >= 2.1.0], [IIDC FireWire input module], [auto])
1997 PKG_ENABLE_MODULES_VLC([DV1394], [], [libraw1394 >= 2.0.1 libavc1394 >= 0.5.3], [DV FireWire input module], [auto])
2000 dnl - linsys modules: access module check for libzvbi
2002 AC_ARG_ENABLE([linsys],
2003 AS_HELP_STRING([--enable-linsys],
2004 [Linux Linear Systems Ltd. SDI and HD-SDI input cards (default enabled)]))
2005 AS_IF([test "$SYS" = "linux" -a "${enable_linsys}" != "no"], [
2006 VLC_ADD_PLUGIN([linsys_hdsdi])
2007 PKG_CHECK_MODULES(LINSYS_SDI, [zvbi-0.2 >= 0.2.28], [
2008 VLC_ADD_PLUGIN([linsys_sdi])
2010 AC_MSG_WARN([${LINSYS_SDI_PKG_ERRORS}.])
2015 dnl dvdread module: check for libdvdread
2017 PKG_ENABLE_MODULES_VLC([DVDREAD], [], [dvdread > 6.0.0], [dvdread input module], [auto])
2020 dnl libdvdnav plugin
2022 PKG_ENABLE_MODULES_VLC([DVDNAV], [], [dvdnav >= 6.0.0], [DVD with navigation input module (dvdnav)], [auto])
2025 dnl Blu-ray Disc Support with libbluray
2027 PKG_ENABLE_MODULES_VLC([BLURAY], [libbluray], [libbluray >= 0.6.2], (libbluray for Blu-ray disc support ) )
2030 dnl OpenCV wrapper and example filters
2032 PKG_ENABLE_MODULES_VLC([OPENCV], [opencv_example opencv_wrapper], [opencv > 2.0], (OpenCV (computer vision) filter), [auto])
2036 dnl libsmbclient plugin
2038 PKG_ENABLE_MODULES_VLC([SMBCLIENT], [smbc], [smbclient], (SMB/CIFS support), [auto])
2041 dnl liBDSM access module
2043 AM_CONDITIONAL([HAVE_DSM], [test "$AS_TR_SH(with_dsm)" = "yes"])
2044 PKG_WITH_MODULES([DSM], [libdsm >= 0.2.0], [
2045 VLC_ADD_PLUGIN([dsm])
2046 VLC_ADD_CFLAGS([dsm], [$DSM_CFLAGS])
2047 VLC_ADD_LIBS([dsm], [$DSM_LIBS])
2049 ],,[libdsm SMB/CIFS access/sd module], [auto])
2050 AM_CONDITIONAL([HAVE_DSM], [test "${have_dsm}" = "yes"])
2053 dnl sftp access support
2055 PKG_ENABLE_MODULES_VLC([SFTP], [sftp], [libssh2], (support SFTP file transfer via libssh2), [auto])
2058 dnl nfs access support
2060 PKG_ENABLE_MODULES_VLC([NFS], [nfs], [libnfs >= 1.10.0], (support nfs protocol via libnfs), [auto])
2063 dnl smb2 access support
2065 PKG_ENABLE_MODULES_VLC([SMB2], [smb2], [libsmb2 >= 3.0.0], (support smb2 protocol via libsmb2), [auto])
2070 AC_ARG_ENABLE([v4l2], AS_HELP_STRING([--disable-v4l2],
2071 [disable Video4Linux version 2 (default auto)]))
2073 AS_IF([test "$enable_v4l2" != "no"], [
2074 AC_CHECK_HEADERS([linux/videodev2.h], [
2078 AM_CONDITIONAL([HAVE_V4L2], [test "${have_v4l2}" != "no"])
2081 dnl NVDEC decoder/encoder
2083 AC_ARG_ENABLE([nvdec], AS_HELP_STRING([--disable-nvdec],
2084 [disable NVDEC decoder (default auto)]))
2086 AS_IF([test "$enable_nvdec" != "no"], [
2087 AC_CHECK_HEADERS([ffnvcodec/dynlink_loader.h], [
2091 AM_CONDITIONAL([HAVE_NVDEC], [test "${have_nvdec}" != "no"])
2094 dnl special access module for Blackmagic SDI cards
2096 AC_ARG_ENABLE([decklink],
2097 AS_HELP_STRING([--disable-decklink],
2098 [disable Blackmagic DeckLink SDI input (default auto)]))
2099 AC_ARG_WITH([decklink_sdk],
2100 AS_HELP_STRING([--with-decklink-sdk=DIR],
2101 [location of Blackmagic DeckLink SDI SDK]))
2103 if test "${enable_decklink}" != "no"
2105 if test "${with_decklink_sdk}" != "no" -a -n "${with_decklink_sdk}"
2107 VLC_ADD_CPPFLAGS([decklink decklinkoutput stream_out_sdi],[-I${with_decklink_sdk}/include])
2110 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_decklink}"
2112 AC_CHECK_HEADERS([DeckLinkAPIDispatch.cpp], [
2114 AS_IF([test "${SYS}" = "darwin"], [
2115 VLC_ADD_LIBS([decklink decklinkoutput],[-Wl,-framework,CoreFoundation])
2118 AS_IF([test "${enable_decklink}" = "yes"], [
2119 AC_MSG_ERROR([Blackmagic DeckLink SDI include files not found!])
2121 AC_MSG_WARN([Blackmagic DeckLink SDI include files not found, decklink disabled])
2127 AM_CONDITIONAL([HAVE_DECKLINK], [ test "${have_decklink}" != "no" ])
2131 dnl Built-in CD-DA and VCD module
2133 AC_ARG_ENABLE([vcd],
2134 AS_HELP_STRING([--disable-vcd],
2135 [disable built-in VCD and CD-DA support (default enabled)]))
2137 AC_ARG_ENABLE([libcddb],
2138 AS_HELP_STRING([--disable-libcddb],
2139 [disable CDDB for Audio CD (default enabled)]))
2141 if test "${enable_vcd}" != "no" -a "${enable_winstore_app}" != "yes"
2143 AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2144 AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2146 VLC_ADD_PLUGIN([vcd cdda])
2151 AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2152 AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2154 VLC_ADD_PLUGIN([vcd cdda])
2155 AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2160 AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2161 AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2163 VLC_ADD_PLUGIN([vcd cdda])
2164 AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2169 if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32" -o "${SYS}" = "os2" -o "${SYS}" = "darwin"
2171 VLC_ADD_PLUGIN([vcd cdda])
2174 if test "$enable_libcddb" != "no"; then
2175 PKG_CHECK_MODULES(LIBCDDB, [libcddb >= 0.9.5], [
2177 AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2178 VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2179 VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2181 [AC_MSG_WARN([${LIBCDDB_PKG_ERRORS}: CDDB access disabled.])
2189 AC_CACHE_CHECK([for Linux DVB version 5.1], [ac_cv_linux_dvb_5_1], [
2190 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
2191 [#include <linux/dvb/version.h>
2192 #if (DVB_API_VERSION < 5)
2193 # error Linux DVB API v3.2 and older are not supported.
2195 #if (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR < 1)
2196 # error Linux DVB API v5.0 is unsupported. Please update.
2199 ac_cv_linux_dvb_5_1=yes
2201 ac_cv_linux_dvb_5_1=no
2203 AM_CONDITIONAL([HAVE_LINUX_DVB], [test "$ac_cv_linux_dvb_5_1" = "yes"])
2206 dnl Screen capture module
2208 AC_ARG_ENABLE([screen],
2209 AS_HELP_STRING([--enable-screen],
2210 [disable screen capture (default enabled)]))
2211 if test "${enable_screen}" != "no"; then
2212 if test "${SYS}" = "darwin"; then
2213 AC_CHECK_HEADERS([ApplicationServices/ApplicationServices.h], [
2214 VLC_ADD_PLUGIN([screen])
2218 AM_CONDITIONAL([HAVE_MAC_SCREEN], [test "${SYS}" = "darwin" -a "x${enable_screen}" != "xno"])
2221 dnl VNC/RFB access module
2223 PKG_ENABLE_MODULES_VLC([VNC], [vnc], [libvncclient >= 0.9.9], (VNC/rfb client support), [auto])
2225 dnl RDP/Remote Desktop access module
2227 PKG_ENABLE_MODULES_VLC([FREERDP], [rdp], [freerdp >= 1.0.1], (RDP/Remote Desktop client support) )
2231 AC_SUBST([have_avfoundation], ["no"])
2232 AC_ARG_ENABLE([macosx-avfoundation],
2233 AS_HELP_STRING([--enable-macosx-avfoundation], [Mac OS X avcapture (video) module (default enabled on Mac OS X)]))
2234 if test "x${enable_macosx_avfoundation}" != "xno" &&
2235 (test "${SYS}" = "darwin" || test "${enable_macosx_avfoundation}" = "yes")
2237 SAVED_LIBS="${LIBS}"
2238 LIBS="-framework AVFoundation"
2239 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [])],[have_avfoundation=yes],[have_avfoundation=no])
2240 LIBS="${SAVED_LIBS}"
2241 if test "${have_avfoundation}" != "no"
2243 VLC_ADD_PLUGIN([avcapture])
2246 AM_CONDITIONAL([HAVE_AVFOUNDATION], [test "${have_avfoundation}" != "no"])
2249 dnl DCP plugin (using asdcplib)
2251 PKG_WITH_MODULES([ASDCP], [asdcplib], [have_asdcp="yes"])
2252 AM_CONDITIONAL([HAVE_ASDCP], [test "${have_asdcp}" = "yes"])
2258 EXTEND_HELP_STRING([Mux/Demux plugins:])
2261 dnl libdvbpsi check for ts mux/demux
2264 PKG_WITH_MODULES([DVBPSI], [libdvbpsi >= 1.2.0], [have_dvbpsi="yes"])
2265 AM_CONDITIONAL([HAVE_DVBPSI], [test "${have_dvbpsi}" = "yes"])
2269 dnl GME demux plugin
2271 AC_ARG_ENABLE([gme],
2272 AS_HELP_STRING([--enable-gme],
2273 [use Game Music Emu (default auto)]))
2274 AS_IF([test "${enable_gme}" != "no"], [
2275 AC_CHECK_HEADER([gme/gme.h], [
2276 AC_CHECK_LIB([gme], [gme_identify_header], [
2277 VLC_ADD_PLUGIN([gme])
2279 AC_CHECK_LIB([gme], [gme_identify_extension], [
2280 VLC_ADD_LIBS([gme], [-lstdc++ $LIBM])
2281 VLC_ADD_PLUGIN([gme])
2282 ],, [-lstdc++ $LIBM])
2284 VLC_ADD_LIBS([gme], [-lgme])
2286 AS_IF([test "x${enable_gme}" != "x"], [
2287 AC_MSG_ERROR([GME cannot be found. Please install the development files.])
2296 AC_ARG_ENABLE([sid],
2297 AS_HELP_STRING([--enable-sid],[C64 sid demux support (default auto)]))
2298 AS_IF([test "${enable_sid}" != "no"], [
2299 PKG_CHECK_MODULES(SID, [libsidplay2], [
2301 oldCPPFLAGS="$CPPFLAGS"
2302 CPPFLAGS="$CPPFLAGS $SID_CFLAGS"
2303 AC_CHECK_HEADER([sidplay/builders/resid.h], [
2304 VLC_ADD_PLUGIN([sid])
2305 VLC_ADD_CFLAGS([sid], [$SID_CFLAGS])
2306 VLC_ADD_LIBS([sid], [$SID_LIBS] [-lresid-builder])
2308 AS_IF([test -n "${enable_sid}"],
2309 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2310 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2313 CPPFLAGS="$oldCPPFLAGS"
2316 AS_IF([test "x${enable_sid}" = "xyes"],
2317 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2318 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2325 dnl ogg demux plugin
2327 PKG_ENABLE_MODULES_VLC([OGG], [mux_ogg], [ogg >= 1.0], [Ogg demux support], [auto])
2328 PKG_CHECK_MODULES(LIBVORBIS, [vorbis >= 1.1], [
2329 AC_DEFINE(HAVE_LIBVORBIS, 1, [Define to 1 if you have the libvorbis])
2331 PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto], [${LIBVORBIS_CFLAGS}], [${LIBVORBIS_LIBS}])
2332 if test "${enable_sout}" != "no"; then
2333 dnl Check for libshout
2334 PKG_ENABLE_MODULES_VLC([SHOUT], [access_output_shout], [shout >= 2.1], [libshout output plugin], [auto])
2338 dnl matroska demux plugin
2340 PKG_WITH_MODULES([MATROSKA], [libebml >= 1.3.6 libmatroska], [
2341 VLC_ADD_PLUGIN([mkv])
2342 VLC_ADD_CFLAGS([mkv], [$MATROSKA_CFLAGS])
2343 VLC_ADD_LIBS([mkv], [$MATROSKA_LIBS])
2345 ],,[MKV format support], [auto])
2346 AM_CONDITIONAL([HAVE_MATROSKA], [test "${have_matroska}" = "yes"])
2349 dnl modplug demux plugin
2351 AC_ARG_ENABLE([mod],
2352 AS_HELP_STRING([--disable-mod],
2353 [do not use libmodplug (default auto)]))
2354 if test "${enable_mod}" != "no" ; then
2355 PKG_CHECK_MODULES(LIBMODPLUG, [libmodplug >= 0.8.9.0], [
2356 VLC_ADD_PLUGIN([mod])
2357 VLC_ADD_CXXFLAGS([mod],[$LIBMODPLUG_CFLAGS])
2358 VLC_ADD_CFLAGS([mod],[$LIBMODPLUG_CFLAGS]) #modules/demux/mod.c needs CFLAGS_mod, not CXXFLAGS_mod
2359 VLC_ADD_LIBS([mod],[$LIBMODPLUG_LIBS])
2361 AS_IF([test -n "${enable_mod}"],
2362 [AC_MSG_ERROR([${LIBMODPLUG_PKG_ERRORS}.])],
2363 [AC_MSG_WARN([${LIBMODPLUG_PKG_ERRORS}.])])
2368 dnl mpc demux plugin
2370 AC_ARG_ENABLE([mpc],
2371 AS_HELP_STRING([--disable-mpc], [do not use libmpcdec (default auto)]))
2372 if test "${enable_mpc}" != "no"
2374 AC_CHECK_HEADERS([mpcdec/mpcdec.h], [
2375 VLC_ADD_PLUGIN([mpc])
2376 VLC_ADD_LIBS([mpc],[-lmpcdec])])
2383 EXTEND_HELP_STRING([Codec plugins:])
2386 dnl shine encoder plugin
2388 PKG_ENABLE_MODULES_VLC([SHINE], [], [shine >= 3.0.0], [MPEG Audio Layer 3 encoder], [auto], [], [], [])
2392 dnl openmax il codec plugin
2394 AC_ARG_ENABLE([omxil],
2395 AS_HELP_STRING([--enable-omxil], [openmax il codec module (default disabled)]))
2396 if test "${enable_omxil}" = "yes"
2398 VLC_ADD_PLUGIN([omxil])
2402 dnl raspberry pi openmax il configuration
2404 AC_ARG_ENABLE([rpi-omxil],
2405 AS_HELP_STRING([--enable-rpi-omxil], [openmax il configured for raspberry pi (default disabled)]))
2406 if test "${enable_rpi_omxil}" = "yes"
2408 VLC_ADD_PLUGIN([omxil])
2409 VLC_ADD_CFLAGS([omxil],[-DRPI_OMX])
2413 dnl CrystalHD codec plugin
2415 AC_ARG_ENABLE([crystalhd],
2416 AS_HELP_STRING([--enable-crystalhd], [crystalhd codec plugin (default auto)]))
2417 if test "${enable_crystalhd}" != "no"; then
2418 AC_CHECK_HEADER(libcrystalhd/libcrystalhd_if.h, [
2419 VLC_ADD_PLUGIN([crystalhd])
2420 VLC_ADD_LIBS([crystalhd], [-lcrystalhd])
2422 if test "${SYS}" = "mingw32" ; then
2423 AC_CHECK_HEADERS([libcrystalhd/bc_dts_defs.h], [
2424 VLC_ADD_PLUGIN([crystalhd])
2425 AC_CHECK_HEADERS([libcrystalhd/bc_drv_if.h], [
2426 VLC_ADD_LIBS([crystalhd], [-lbcmDIL])
2429 AS_IF([test x"${enable_crystalhd}" = "xyes"],
2430 [AC_MSG_ERROR("Could not find CrystalHD development headers")],
2431 [AC_MSG_WARN("Could not find CrystalHD development headers")])
2432 ],[#define __LINUX_USER__
2433 #include <libcrystalhd/bc_dts_types.h>
2437 #include <libcrystalhd/bc_dts_types.h>
2448 AC_ARG_WITH(mad, AS_HELP_STRING([--with-mad=PATH], [path to libmad]), [
2453 AS_IF([test "${with_mad}" != "no"], [
2454 MAD_CFLAGS="-I${with_mad}/include"
2455 MAD_LIBS="-L${with_mad}/lib"
2458 AC_ARG_ENABLE([mad],
2459 AS_HELP_STRING([--enable-mad], [libmad module (default enabled)]))
2460 AS_IF([test "${enable_mad}" != "no"], [
2462 CPPFLAGS="${CPPFLAGS} ${MAD_CFLAGS}"
2463 LDFLAGS="${LDFLAGS} ${MAD_LIBS}"
2464 AC_CHECK_HEADERS([mad.h], [
2465 AC_CHECK_LIB([mad], [mad_bit_init], [
2467 MAD_LIBS="${MAD_LIBS} -lmad"
2471 AS_IF([test -n "$enable_mad" -a "${have_mad}" = "no"], [
2472 AC_MSG_ERROR([Could not find libmad. Install it or pass --disable-mad to disable it.])
2475 AC_SUBST([MAD_CFLAGS])
2476 AC_SUBST([MAD_LIBS])
2477 AM_CONDITIONAL([HAVE_MAD], [test "${have_mad}" = "yes"])
2482 PKG_ENABLE_MODULES_VLC([MPG123], [mpg123], [libmpg123], [libmpg123 decoder support], [auto])
2487 AC_ARG_ENABLE([gst-decode],
2488 AS_HELP_STRING([--enable-gst-decode], [GStreamer based decoding support (currently supports only video decoding) (default auto)]))
2490 have_gst_decode="no"
2491 AS_IF([test "${enable_gst_decode}" != "no"], [
2492 PKG_CHECK_MODULES([GST_APP], [gstreamer-app-1.0], [
2493 PKG_CHECK_MODULES([GST_VIDEO], [gstreamer-video-1.0], [
2494 have_gst_decode="yes"
2496 AC_MSG_WARN([${GST_VIDEO_PKG_ERRORS}. GStreamer decoder module will not be built.])
2499 AC_MSG_WARN([${GST_APP_PKG_ERRORS}. GStreamer modules will not be built.])
2502 AM_CONDITIONAL([HAVE_GST_DECODE], [test "${have_gst_decode}" = "yes"])
2505 dnl avcodec decoder/encoder plugin
2507 AC_ARG_ENABLE([merge-ffmpeg],
2508 AS_HELP_STRING([--enable-merge-ffmpeg], [merge FFmpeg-based plugins (default disabled)]),, [
2509 enable_merge_ffmpeg="no"
2511 AM_CONDITIONAL([MERGE_FFMPEG], [test "$enable_merge_ffmpeg" != "no"])
2513 AC_MSG_CHECKING([for libavutil variant])
2514 PKG_CHECK_EXISTS([libavutil], [
2515 libavutil_version="$(${PKG_CONFIG} --modversion libavutil)"
2516 libavutil_micro="${libavutil_version##*.}"
2517 AS_IF([test ${libavutil_micro} -le 99], [
2525 AC_MSG_RESULT([${avfork}])
2527 AC_ARG_ENABLE([avcodec],
2528 AS_HELP_STRING([--enable-avcodec], [libavcodec codec (default enabled)]))
2529 AS_IF([test "${enable_avcodec}" != "no"], [
2530 dnl We need >=57.16.0 from libav or >=57.37.100 from ffmpeg
2532 libav) av_codec_ver="57.16.0" ;;
2533 dnl 05f66706d182eb0c36af54d72614bf4c33e957a9 includes libavutil 55.9.0
2534 ffmpeg) av_codec_ver="57.37.100" ;;
2535 dnl 7fc329e2dd6226dfecaa4a1d7adf353bf2773726 include libavutil 55.22.101
2536 *) AC_MSG_ERROR([Missing libav or FFmpeg. Pass --disable-avcodec to ignore this error.])
2538 PKG_CHECK_MODULES(AVCODEC,[libavcodec >= ${av_codec_ver} libavutil >= 55.9.0], [
2540 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2541 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2542 AC_CHECK_HEADERS([libavcodec/avcodec.h])
2543 AC_CHECK_HEADERS([libavutil/avutil.h])
2547 AC_MSG_ERROR([${AVCODEC_PKG_ERRORS}. Pass --disable-avcodec to ignore this error.])
2552 AM_CONDITIONAL([HAVE_AVCODEC], [test "${have_avcodec}" != "no"])
2555 dnl libva needs avcodec
2557 AC_ARG_ENABLE([libva],
2558 AS_HELP_STRING([--enable-libva], [VAAPI GPU decoding support (libVA) (default auto)]))
2560 AS_IF([test "${enable_libva}" = "yes" -a "${have_avcodec}" != "yes" ], [
2561 AC_MSG_ERROR([--enable-libva and --disable-avcodec options are mutually exclusive. Use --enable-avcodec.])
2568 AS_IF([test "${enable_libva}" != "no"], [
2569 PKG_CHECK_MODULES([LIBVA], [libva >= 0.38], [
2572 AS_IF([test -n "${enable_libva}"], [
2573 AC_MSG_ERROR([${LIBVA_PKG_ERRORS}.])
2575 AC_MSG_WARN([${LIBVA_PKG_ERRORS}.])
2578 PKG_CHECK_MODULES([LIBVA_DRM], [libva-drm], [
2579 have_vaapi_drm="yes"
2581 AC_MSG_WARN([${LIBVA_DRM_PKG_ERRORS}.])
2583 PKG_CHECK_MODULES(LIBVA_X11, [libva-x11], [
2584 have_vaapi_x11="yes"
2586 AC_MSG_WARN([${LIBVA_X11_PKG_ERRORS}.])
2588 PKG_CHECK_MODULES(LIBVA_WL, [libva-wayland], [
2591 AC_MSG_WARN([${LIBVA_WL_PKG_ERRORS}.])
2594 AM_CONDITIONAL([HAVE_VAAPI], [test "${have_vaapi}" = "yes"])
2595 AM_CONDITIONAL([HAVE_VAAPI_DRM], [test "${have_vaapi_drm}" = "yes"])
2596 AM_CONDITIONAL([HAVE_VAAPI_X11], [test "${have_vaapi_x11}" = "yes"])
2597 AM_CONDITIONAL([HAVE_VAAPI_WL], [test "${have_vaapi_wl}" = "yes"])
2599 have_avcodec_vaapi="no"
2600 AS_IF([test "${have_vaapi}" = "yes" -a "${have_avcodec}" = "yes"], [
2602 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2603 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2604 AC_CHECK_HEADERS([libavcodec/vaapi.h], [
2605 AC_MSG_NOTICE([VA API acceleration activated])
2606 have_avcodec_vaapi="yes"
2608 AS_IF([test -n "${enable_libva}"], [
2609 AC_MSG_ERROR([libva is present but libavcodec/vaapi.h is missing])
2611 AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing ])
2616 AM_CONDITIONAL([HAVE_AVCODEC_VAAPI], [test "${have_avcodec_vaapi}" = "yes"])
2619 dnl dxva2 needs avcodec
2621 AC_ARG_ENABLE([dxva2],
2622 AS_HELP_STRING([--enable-dxva2], [DxVA2 GPU decoding support (default auto)]))
2624 have_avcodec_dxva2="no"
2625 AS_IF([test "${enable_dxva2}" != "no"], [
2626 if test "${SYS}" = "mingw32"; then
2627 AS_IF([test "x${have_avcodec}" = "xyes"], [
2628 AC_CHECK_HEADERS([dxva2api.h],
2630 AC_CHECK_HEADERS([libavcodec/dxva2.h], [
2631 AC_MSG_NOTICE([DxVA2 acceleration activated])
2632 have_avcodec_dxva2="yes"
2634 AS_IF([test "${enable_dxva2}" = "yes"],
2635 [AC_MSG_ERROR([dxva2 is present but libavcodec/dxva2.h is missing])],
2636 [AC_MSG_WARN([dxva2 is present but libavcodec/dxva2.h is missing ])])
2637 ], [#undef _WIN32_WINNT
2638 /* DXVA2 is only available in Vista and above */
2639 #define _WIN32_WINNT 0x600])
2641 AS_IF([test "${enable_dxva2}" = "yes"],
2642 [AC_MSG_ERROR([Could not find required dxva2api.h])],
2643 [AC_MSG_WARN([dxva2api.h not found])])
2644 ],[#include <d3d9.h>])
2646 AS_IF([test "x${enable_dxva2}" != "x"], [
2647 AC_MSG_ERROR([--enable-dxva2 and --disable-avcodec options are mutually exclusive.])
2652 AM_CONDITIONAL([HAVE_AVCODEC_DXVA2], [test "${have_avcodec_dxva2}" = "yes"])
2655 dnl d3d11va needs avcodec
2657 AC_ARG_ENABLE([d3d11va],
2658 AS_HELP_STRING([--enable-d3d11va], [D3D11 GPU decoding support (default auto)]))
2660 have_avcodec_d3d11va="no"
2661 AS_IF([test "${enable_d3d11va}" != "no"], [
2662 if test "${SYS}" = "mingw32"; then
2663 AS_IF([test "x${have_avcodec}" = "xyes"], [
2664 AC_CHECK_TYPES([ID3D11VideoDecoder],
2666 AC_CHECK_HEADERS([dxva2api.h],
2668 AC_CHECK_HEADERS([libavcodec/d3d11va.h], [
2669 AC_MSG_NOTICE([D3D11 acceleration activated])
2670 AC_DEFINE([HAVE_AVCODEC_D3D11VA], [1], [Define if the d3d11va module is built])
2671 have_avcodec_d3d11va="yes"
2673 AS_IF([test "${enable_d3d11va}" = "yes"],
2674 [AC_MSG_ERROR([d3d11va is present but libavcodec/d3d11va.h is missing])],
2675 [AC_MSG_WARN([d3d11va is present but libavcodec/d3d11va.h is missing ])])
2676 ], [#undef _WIN32_WINNT
2677 /* D3D11 is only available in Vista and above */
2678 #define _WIN32_WINNT 0x600])
2680 AS_IF([test "${enable_d3d11va}" = "yes"],
2681 [AC_MSG_ERROR([Could not find required dxva2api.h])],
2682 [AC_MSG_WARN([dxva2api.h not found])])
2683 ],[#include <d3d9.h>])
2685 AS_IF([test "${enable_d3d11va}" = "yes"],
2686 [AC_MSG_ERROR([Could not find required ID3D11VideoDecoder in d3d11.h])],
2687 [AC_MSG_WARN([ID3D11VideoDecoder not found])])
2688 ], [#include <d3d11.h>])
2690 AS_IF([test "x${enable_d3d11va}" != "x"], [
2691 AC_MSG_ERROR([--enable-d3d11va and --disable-avcodec options are mutually exclusive.])
2696 AM_CONDITIONAL([HAVE_AVCODEC_D3D11VA], [test "${have_avcodec_d3d11va}" = "yes"])
2701 AC_CHECK_HEADERS([dxgidebug.h dxgi1_6.h])
2704 dnl avformat demuxer/muxer plugin
2707 AC_ARG_ENABLE([avformat],
2708 AS_HELP_STRING([--enable-avformat], [libavformat containers (default enabled)]),, [
2709 enable_avformat="${have_avcodec}"
2712 AS_IF([test "${enable_avformat}" != "no"], [
2713 PKG_CHECK_MODULES(AVFORMAT,[libavformat >= 53.21.0 libavcodec libavutil], [
2716 CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2717 CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2718 AC_CHECK_HEADERS([libavformat/avformat.h libavformat/avio.h])
2719 AC_CHECK_HEADERS([libavcodec/avcodec.h])
2720 AC_CHECK_HEADERS([libavutil/avutil.h])
2721 AS_IF([test "$enable_merge_ffmpeg" = "no"], [
2726 AC_MSG_ERROR([${AVFORMAT_PKG_ERRORS}. Pass --disable-avformat to ignore this error.])
2729 AM_CONDITIONAL([HAVE_AVFORMAT], [test "${enable_avformat}" != "no"])
2732 dnl swscale image scaling and conversion plugin
2735 AC_ARG_ENABLE([swscale],
2736 AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
2737 (default enabled)]))
2738 if test "${enable_swscale}" != "no"
2740 PKG_CHECK_MODULES(SWSCALE,[libswscale],
2743 CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
2744 CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
2745 AC_CHECK_HEADERS([libswscale/swscale.h])
2746 AC_CHECK_HEADERS([libavutil/avutil.h])
2747 VLC_ADD_PLUGIN([swscale])
2748 VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
2749 VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
2750 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2751 VLC_ADD_LIBS([swscale],[${ac_cv_ld_bsymbolic}])
2755 AC_MSG_ERROR([${SWSCALE_PKG_ERRORS}. Pass --disable-swscale to ignore this error. Proper software scaling and some video chroma conversion will be missing.])
2763 AC_ARG_ENABLE([postproc],
2764 AS_HELP_STRING([--enable-postproc], [libpostproc image post-processing (default auto)]))
2765 if test "${enable_postproc}" != "no"
2767 PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
2770 CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
2771 CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
2772 AC_CHECK_HEADERS([postproc/postprocess.h])
2773 VLC_ADD_PLUGIN([postproc])
2776 AC_MSG_WARN([${POSTPROC_PKG_ERRORS}.])
2781 dnl faad decoder plugin
2783 AC_ARG_ENABLE([faad],
2784 AS_HELP_STRING([--enable-faad], [faad codec (default auto)]))
2786 AS_IF([test "${enable_faad}" != "no"], [
2787 AC_CHECK_HEADERS([neaacdec.h], [
2788 AC_CHECK_LIB([faad], [NeAACDecOpen], [have_faad="yes"],, [$LIBM])
2790 AS_IF([test "${have_faad}" = "yes"], [
2791 VLC_ADD_PLUGIN([faad])
2792 VLC_ADD_LIBS([faad],[-lfaad])
2794 AS_IF([test "${enable_faad}" = "yes"], [
2795 AC_MSG_ERROR([cannot find FAAD library])
2797 AC_MSG_WARN([cannot find FAAD library])
2804 dnl AOM decoder plugin
2806 PKG_ENABLE_MODULES_VLC([AOM], [], [aom], [experimental AV1 codec (default auto)])
2809 dnl Dav1d decoder plugin
2811 PKG_ENABLE_MODULES_VLC([DAV1D], [], [dav1d >= 0.5.0], [AV1 decoder (default auto)])
2814 dnl libvpx decoder plugin
2816 AC_ARG_ENABLE([vpx],
2817 AS_HELP_STRING([--enable-vpx],[libvpx VP8/VP9 encoder and decoder (default auto)]))
2818 AS_IF([test "${enable_vpx}" != "no"],[
2819 PKG_CHECK_MODULES([VPX], [vpx >= 1.5.0], [
2820 VLC_ADD_PLUGIN([vpx])
2821 VLC_ADD_CPPFLAGS([vpx], [${VPX_CFLAGS}])
2822 VLC_ADD_LIBS([vpx], [${VPX_LIBS}])
2823 AC_CHECK_LIB([vpx],[vpx_codec_vp8_dx], [
2824 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP8_DECODER])
2825 ], [], [${VPX_LIBS}])
2826 AC_CHECK_LIB([vpx],[vpx_codec_vp9_dx], [
2827 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP9_DECODER])
2828 ], [], [${VPX_LIBS}])
2829 AC_CHECK_LIB([vpx],[vpx_codec_vp8_cx], [
2830 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP8_ENCODER])
2831 ], [], [${VPX_LIBS}])
2832 AC_CHECK_LIB([vpx],[vpx_codec_vp9_cx], [
2833 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP9_ENCODER])
2834 ], [], [${VPX_LIBS}])
2836 AS_IF([test "${enable_vpx}" = "yes"],[
2837 AC_MSG_ERROR([libvpx 1.5.0 or higher was not found])
2842 dnl twolame encoder plugin
2844 PKG_ENABLE_MODULES_VLC([TWOLAME], [], [twolame], [MPEG Audio Layer 2 encoder], [auto], [], [], [ -DLIBTWOLAME_STATIC])
2847 dnl fdk-aac encoder plugin
2849 PKG_ENABLE_MODULES_VLC([FDKAAC], [], [fdk-aac], [FDK-AAC encoder], [disabled])
2853 dnl A52/AC3 decoder plugin
2855 AC_ARG_ENABLE([a52],
2856 AS_HELP_STRING([--enable-a52], [A/52 support with liba52 (default enabled)]))
2857 if test "${enable_a52}" != "no"
2860 AS_HELP_STRING([--with-a52=PATH], [a52 headers and libraries]))
2861 if test -z "${with_a52}"
2866 LDFLAGS_test="-L${with_a52}/lib"
2867 CPPFLAGS_test="-I${with_a52}/include"
2870 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_test} ${CPPFLAGS_a52}"
2871 LDFLAGS="${LDFLAGS} ${LDFLAGS_test} ${LIBS_a52}"
2872 AC_CHECK_HEADERS([a52dec/a52.h], [
2873 AC_CHECK_LIB([a52], [a52_free], [
2874 VLC_ADD_PLUGIN([a52])
2875 VLC_ADD_LIBS([a52],[${LDFLAGS_test} -la52 $LIBM])
2876 VLC_ADD_CPPFLAGS([a52],[${CPPFLAGS_test}])
2878 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.])
2881 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.])
2887 dnl DTS Coherent Acoustics decoder plugin
2889 PKG_ENABLE_MODULES_VLC([DCA], [dca], [libdca >= 0.0.5], [DTS Coherent Acoustics support with libdca], [auto])
2894 PKG_ENABLE_MODULES_VLC([FLAC], [], [flac], [libflac decoder/encoder support], [auto])
2899 PKG_ENABLE_MODULES_VLC([LIBMPEG2], [], [libmpeg2 > 0.3.2], [libmpeg2 decoder support], [auto])
2904 PKG_ENABLE_MODULES_VLC([VORBIS], [], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
2909 AC_ARG_ENABLE([tremor],
2910 AS_HELP_STRING([--enable-tremor], [Tremor decoder support (default disabled)]))
2911 if test "${enable_tremor}" = "yes"
2913 AC_CHECK_HEADERS([tremor/ivorbiscodec.h], [
2914 VLC_ADD_PLUGIN([tremor])
2921 PKG_ENABLE_MODULES_VLC([SPEEX], [], [ogg speex >= 1.0.5], [Speex support], [auto])
2923 AS_IF([test "${enable_speex}" != "no"], [
2924 PKG_CHECK_MODULES([SPEEXDSP], [speexdsp], [
2927 AC_MSG_WARN([${SPEEXDSP_PKG_ERRORS}.])
2930 AM_CONDITIONAL([HAVE_SPEEXDSP], [test "$have_speexdsp" = "yes"])
2935 PKG_ENABLE_MODULES_VLC([OPUS], [], [ogg opus >= 1.0.3], [Opus support], [auto])
2938 dnl Ambisonic channel mixer and binauralizer plugin
2940 PKG_ENABLE_MODULES_VLC([SPATIALAUDIO], [], [spatialaudio], [Ambisonic channel mixer and binauralizer], [auto])
2943 dnl theora decoder plugin
2945 PKG_ENABLE_MODULES_VLC([THEORA], [], [ogg theoradec >= 1.0 theoraenc], [experimental theora codec], [auto])
2948 dnl OggSpots decoder plugin
2950 PKG_ENABLE_MODULES_VLC([OGGSPOTS], [], [ogg], [experimental OggSpots codec], [auto])
2953 dnl Daala decoder plugin
2955 PKG_ENABLE_MODULES_VLC([DAALA], [], [daaladec daalaenc], [experimental daala codec], [disabled])
2958 dnl schroedinger decoder plugin (for dirac format video)
2960 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [], [schroedinger-1.0 >= 1.0.10], [dirac decoder and encoder using schroedinger], [auto])
2963 dnl PNG decoder module
2965 AC_ARG_ENABLE([png],
2966 AS_HELP_STRING([--enable-png], [PNG support (default enabled)]))
2967 AS_IF([test "${enable_png}" != "no"], [
2968 AC_CHECK_HEADERS([png.h], [
2970 LDFLAGS="${LDFLAGS} -lz $LIBM"
2971 AC_CHECK_LIB([png], [png_set_alpha_mode], [
2972 VLC_ADD_PLUGIN([png])
2979 dnl JPEG decoder module
2981 AC_ARG_ENABLE([jpeg],
2982 AS_HELP_STRING([--enable-jpeg], [JPEG support (default enabled)]))
2983 AS_IF([test "${enable_jpeg}" != "no"], [
2984 AC_CHECK_HEADERS([jpeglib.h], [
2985 VLC_ADD_PLUGIN([jpeg])
2990 dnl BPG decoder module
2992 AC_ARG_ENABLE([bpg],
2993 AS_HELP_STRING([--enable-bpg], [BPG support (default disabled)]))
2994 AS_IF([test "${enable_bpg}" != "no"], [
2995 AC_CHECK_HEADERS([libbpg.h], [
2996 VLC_ADD_PLUGIN([bpg])
3001 dnl H262 encoder plugin (lib262)
3003 AC_ARG_ENABLE([x262],
3004 AS_HELP_STRING([--enable-x262], [H262 encoding support with static libx262 (default disabled)]))
3005 if test "${enable_x262}" != "no"; then
3006 PKG_CHECK_MODULES(X262, x262, [
3007 VLC_ADD_PLUGIN([x262])
3008 VLC_ADD_LDFLAGS([x262],[${X262_LIBS}])
3009 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
3010 VLC_ADD_LIBS([x262],[${av_cv_ld_bsymbolic}])
3012 VLC_ADD_CFLAGS([x262],[${X262_CFLAGS}])
3013 if echo ${X262_LIBS} |grep -q 'pthreadGC2'; then
3014 VLC_ADD_CFLAGS([x262], [-DPTW32_STATIC_LIB])
3017 if test "${enable_x262}" = "yes"; then
3018 AC_MSG_ERROR([x262 module doesn't work without staticly compiled libx262.a])
3024 PKG_ENABLE_MODULES_VLC([X265],, [x265], [HEVC/H.265 encoder], [auto])
3027 dnl H264 encoder plugin (using libx264)
3029 AC_ARG_ENABLE([x264],
3030 AS_HELP_STRING([--enable-x264], [H264 encoding support with libx264 (default enabled)]))
3031 if test "${enable_x264}" != "no"; then
3032 PKG_CHECK_MODULES(X264,x264 >= 0.148, [
3033 VLC_ADD_PLUGIN([x264])
3034 VLC_ADD_LIBS([x264],[${X264_LIBS}])
3036 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
3037 VLC_ADD_LDFLAGS([x264],[${ac_cv_ld_bsymbolic}])
3040 VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3041 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3042 VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3045 if test "${enable_x264}" = "yes"; then
3046 AC_MSG_ERROR([${X264_PKG_ERRORS}: you may get it from http://www.videolan.org/x264.html])
3052 dnl H264 encoder plugin (libx264 > 153)
3054 AC_ARG_ENABLE([x26410b],
3055 AS_HELP_STRING([--enable-x26410b], [H264 10-bit encoding support with libx264 (default enabled)]))
3056 if test "${enable_x26410b}" != "no"; then
3057 PKG_CHECK_MODULES(X26410b,x264 >= 0.153, [
3058 VLC_ADD_PLUGIN([x26410b])
3059 VLC_ADD_LIBS([x26410b],[${X264_LIBS}])
3061 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
3062 VLC_ADD_LDFLAGS([x26410b],[${ac_cv_ld_bsymbolic}])
3065 VLC_ADD_CFLAGS([x26410b],[${X264_CFLAGS}])
3066 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3067 VLC_ADD_CFLAGS([x26410b], [-DPTW32_STATIC_LIB])
3070 if test "${enable_x26410b}" = "yes"; then
3071 AC_MSG_ERROR([${X264_PKG_ERRORS}: you may get it from http://www.videolan.org/x264.html])
3078 dnl Intel QuickSync (aka MediaSDK) H264/H262 encoder
3080 PKG_ENABLE_MODULES_VLC([MFX], [qsv], [libmfx], [Intel QuickSync MPEG4-Part10/MPEG2 (aka H.264/H.262) encoder], [auto])
3083 dnl libfluidsynth (MIDI synthetizer) plugin
3085 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [], [fluidsynth >= 1.1.2], [MIDI synthetiser with libfluidsynth], [auto])
3086 PKG_ENABLE_MODULES_VLC([FLUIDLITE], [fluidsynth], [fluidlite], [MIDI synthetiser with libfluidsynth], [auto])
3087 AC_CHECK_HEADERS([fluidlite.h], [AC_SUBST([FLUIDSYNTH_LIBS], ${FLUIDLITE_LIBS})])
3090 dnl Teletext Modules
3091 dnl vbi decoder plugin (using libzbvi)
3095 AC_ARG_ENABLE([zvbi],
3096 AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
3097 libzvbi (default enabled)]))
3098 AC_ARG_ENABLE([telx],
3099 AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
3100 zvbi) (default enabled if zvbi is absent)]))
3102 AS_IF( [test "${enable_zvbi}" != "no"],[
3103 PKG_CHECK_MODULES(ZVBI, [zvbi-0.2 >= 0.2.28],
3105 VLC_ADD_PLUGIN([zvbi])
3106 AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
3107 AS_IF( [test "${enable_telx}" = "yes"],[
3108 AC_MSG_WARN([The zvbi and telx modules are incompatible. Using zvbi.])
3111 AC_MSG_WARN([${ZVBI_PKG_ERRORS}. Enabling the telx module instead.])
3114 AS_IF( [test "${enable_telx}" != "no" ],[
3115 VLC_ADD_PLUGIN([telx])
3119 dnl ARIB subtitles rendering module
3121 AC_ARG_ENABLE([aribsub],
3122 AS_HELP_STRING([--enable-aribsub],[ARIB Subtitles support (default enabled)]))
3123 AS_IF( [test "${enable_aribsub}" != "no" ],[
3124 PKG_CHECK_MODULES(ARIBB24, [aribb24 >= 1.0.1], [
3126 VLC_ADD_PLUGIN([aribsub])
3127 VLC_ADD_LIBS([aribsub],[-laribb24])
3128 AC_DEFINE(HAVE_ARIBB24, 1, [Define if libaribb24 is available.])
3130 AC_MSG_WARN(Library [aribb24] needed for [aribsub] was not found)
3134 AM_CONDITIONAL([HAVE_ARIBB24], [test x"${have_aribb24}" = x"yes"])
3139 PKG_ENABLE_MODULES_VLC([ARIBB25], [aribcam], [aribb25 >= 0.2.6], [ARIB STD-B25], [auto])
3142 dnl kate decoder plugin
3144 PKG_ENABLE_MODULES_VLC([KATE], [], [kate >= 0.3.0], [kate codec], [auto])
3147 dnl tiger rendering for kate decoder plugin
3149 AC_ARG_ENABLE([tiger],
3150 AS_HELP_STRING([--enable-tiger], [Tiger rendering library for Kate streams (default auto)]))
3151 AS_IF([test "${enable_tiger}" != "no"], [
3152 PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
3153 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])],[
3154 AS_IF([test -n "${enable_tiger}"], [
3155 AC_MSG_ERROR([${TIGER_PKG_ERRORS}.])
3161 dnl check if we can build the css selector engine
3163 AC_ARG_ENABLE([css],
3164 AS_HELP_STRING([--enable-css], [CSS selector engine (default auto)]))
3165 AS_IF([test "${enable_css}" != "no"], [
3167 AC_DEFINE(HAVE_CSS, 1, [Define if CSS engine is built])
3169 AM_CONDITIONAL([ENABLE_CSS], [test "${with_css}" = "yes"])
3176 EXTEND_HELP_STRING([Video plugins:])
3179 dnl libplacebo support
3181 AC_ARG_ENABLE([libplacebo],
3182 AS_HELP_STRING([--disable-libplacebo],
3183 [disable libplacebo support (default auto)]))
3185 AS_IF([test "$enable_libplacebo" != "no"], [
3186 PKG_CHECK_MODULES([LIBPLACEBO], [libplacebo >= 0.5], [
3187 AC_DEFINE([HAVE_LIBPLACEBO], [1], [Define to 1 if libplacebo is enabled.])
3188 PKG_CHECK_MODULES([LIBPLACEBO], [libplacebo >= 1.7],
3189 [have_libplacebo_vk="yes"], [have_libplacebo_vk="no"])
3191 AS_IF([test -n "${enable_libplacebo}"], [
3192 AC_MSG_ERROR([${LIBPLACEBO_PKG_ERRORS}.])
3194 enable_libplacebo="no"
3197 AM_CONDITIONAL([HAVE_LIBPLACEBO], [test "$enable_libplacebo" != "no"])
3202 PKG_CHECK_MODULES([EGL], [egl], [
3207 AM_CONDITIONAL([HAVE_EGL], [test "${have_egl}" = "yes"])
3210 PKG_CHECK_MODULES([GL], [gl], [
3213 AC_MSG_CHECKING([for OpenGL])
3214 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
3216 # include <GL/glew.h>
3220 [int t0 = GL_TEXTURE0;]])
3224 AS_IF([test "${SYS}" != "mingw32"], [
3227 GL_LIBS="-lopengl32"
3230 AC_MSG_RESULT([${have_gl}])
3232 AM_CONDITIONAL([HAVE_GL], [test "${have_gl}" = "yes"])
3233 AS_IF([test "${have_gl}" = "yes"], [
3234 AC_DEFINE([HAVE_GL], 1, [Defined if having OpenGL])
3237 dnl OpenGL ES 2: depends on EGL 1.1
3238 PKG_ENABLE_MODULES_VLC([GLES2], [], [glesv2], [OpenGL ES v2 support], [disabled])
3243 AC_ARG_ENABLE(vulkan,
3244 [AS_HELP_STRING([--disable-vulkan],
3245 [disable Vulkan support (default auto)])])
3247 AS_IF([test "$enable_vulkan" != "no"], [
3248 AS_IF([test "$have_libplacebo_vk" = "yes"], [
3249 PKG_CHECK_MODULES([VULKAN], [vulkan >= 1.0.26], [
3250 AC_DEFINE([HAVE_VULKAN], [1], [Define to 1 if vulkan is enabled.])
3252 AS_IF([test -n "${enable_vulkan}"], [
3253 AC_MSG_ERROR([${VULKAN_PKG_ERRORS}.])
3258 AS_IF([test -n "${enable_vulkan}"], [
3259 AC_MSG_ERROR([Vulkan support requires libplacebo 1.7 as well. Do not use --disable-libplacebo.])
3264 AM_CONDITIONAL(HAVE_VULKAN, [test "$enable_vulkan" != "no"])
3271 AC_CHECK_HEADERS([X11/Xlib.h])
3274 dnl X C Bindings modules
3276 AC_ARG_ENABLE([xcb],
3277 AS_HELP_STRING([--enable-xcb], [X11 support with XCB (default enabled)]),, [
3278 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "darwin"], [
3286 have_xkbcommon_x11="no"
3287 have_xcb_keysyms="no"
3288 AS_IF([test "${enable_xcb}" != "no"], [
3292 PKG_CHECK_MODULES([XCB], [xcb >= 1.6],, [
3293 xcb_err="$xcb_err ${XCB_PKG_ERRORS}."])
3294 PKG_CHECK_MODULES([XCB_COMPOSITE], [xcb-composite],, [
3295 xcb_err="$xcb_err ${XCB_COMPOSITE_PKG_ERRORS}."])
3296 PKG_CHECK_MODULES([XCB_RANDR], [xcb-randr >= 1.3],, [
3297 xcb_err="$xcb_err ${XCB_RANDR_PKG_ERRORS}."])
3298 PKG_CHECK_MODULES([XCB_RENDER], [xcb-render],, [
3299 xcb_err="$xcb_err ${XCB_RENDER_PKG_ERRORS}."])
3300 PKG_CHECK_MODULES([XCB_SHM], [xcb-shm >= 1.9.2],, [
3301 xcb_err="$xcb_err ${XCB_SHM_PKG_ERRORS}."])
3302 PKG_CHECK_MODULES([XCB_XKB], [xcb-xkb],, [
3303 xcb_err="$xcb_err ${XCB_XKB_PKG_ERRORS}."])
3306 PKG_CHECK_MODULES(XPROTO, [xproto],, [
3307 xcb_err="$xcb_err ${XPROTO_PKG_ERRORS}."])
3309 AS_IF([test -n "$xcb_err"], [
3310 AC_MSG_ERROR([$xcb_err Pass --disable-xcb to skip X11 support.])
3314 PKG_CHECK_MODULES([XKBCOMMON_X11], [xkbcommon-x11], [
3315 have_xkbcommon_x11="yes"
3317 AC_MSG_WARN([${XKBCOMMON_X11_PKG_ERRORS}. Hotkeys are disabled.])
3321 PKG_CHECK_MODULES([XCB_KEYSYMS], [xcb-keysyms >= 0.3.4], [
3322 have_xcb_keysyms="yes"
3324 AC_MSG_WARN([${XCB_KEYSYMS_PKG_ERRORS}. Global hotkeys are disabled.])
3329 AM_CONDITIONAL([HAVE_XCB], [test "${have_xcb}" = "yes"])
3330 AM_CONDITIONAL([HAVE_XKBCOMMON_X11], [test "${have_xkbcommon_x11}" = "yes"])
3331 AM_CONDITIONAL([HAVE_XCB_KEYSYMS], [test "${have_xcb_keysyms}" = "yes"])
3337 AC_ARG_ENABLE([vdpau],
3338 [AS_HELP_STRING([--enable-vdpau], [VDPAU hardware support (default auto)])])
3340 AS_IF([test "${enable_vdpau}" != "no"], [
3341 PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.6], [
3343 AS_IF([test "${no_x}" = "yes"], [
3344 AC_MSG_ERROR([VDPAU requires Xlib (X11).])
3347 AS_IF([test -n "${enable_vdpau}"], [
3348 AC_MSG_ERROR([${VDPAU_PKG_ERRORS}.])
3352 AM_CONDITIONAL([HAVE_VDPAU], [test "${have_vdpau}" = "yes"])
3354 have_avcodec_vdpau="no"
3355 AS_IF([test "${have_vdpau}" = "yes" -a "${have_avcodec}" = "yes"], [
3357 libav) av_vdpau_ver="56.10.0" ;;
3358 ffmpeg) av_vdpau_ver="56.19.100" ;;
3360 PKG_CHECK_EXISTS([libavcodec >= ${av_vdpau_ver}], [
3361 have_avcodec_vdpau="yes"
3362 AC_MSG_NOTICE([VDPAU decoding acceleration activated])
3364 AS_IF([test -n "${enable_vdpau}"], [
3365 AC_MSG_ERROR([libavcodec >= 56.10.0 is required for VDPAU decoding.])
3367 AC_MSG_WARN([libavcodec >= 56.10.0 are required for VDPAU decoding.])
3371 AM_CONDITIONAL([HAVE_AVCODEC_VDPAU], [test "${have_avcodec_vdpau}" = "yes"])
3377 AC_ARG_ENABLE([wayland],
3378 AS_HELP_STRING([--enable-wayland], [Wayland support (default auto)]))
3381 AS_IF([test "${enable_wayland}" != "no"], [
3385 PKG_CHECK_MODULES([WAYLAND_CLIENT], [wayland-client >= 1.5.91],, [
3386 wl_err="$wl_err ${WAYLAND_CLIENT_PKG_ERRORS}."
3388 PKG_CHECK_MODULES([WAYLAND_CURSOR], [wayland-cursor],, [
3389 wl_err="$wl_err ${WAYLAND_CURSOR_PKG_ERRORS}."
3391 PKG_CHECK_MODULES([WAYLAND_EGL], [wayland-egl],, [
3392 wl_err="$wl_err ${WAYLAND_EGL_PKG_ERRORS}."
3394 PKG_CHECK_MODULES([WAYLAND_SCANNER], [wayland-scanner >= 1.15], [
3395 WAYLAND_SCANNER="$(${PKG_CONFIG} wayland-scanner --variable wayland_scanner)"
3397 wl_err="$wl_err ${WAYLAND_SCANNER_PKG_ERRORS}."
3400 dnl wayland-protocols
3401 PKG_CHECK_MODULES([WAYLAND_PROTOCOLS], [wayland-protocols >= 1.15], [
3402 WAYLAND_PROTOCOLS="$(${PKG_CONFIG} wayland-protocols --variable pkgdatadir)"
3404 wl_err="$wl_err ${WAYLAND_PROTOCOLS_PKG_ERRORS}."
3407 AS_IF([test -n "$wl_err"], [
3408 AS_IF([test -n "$enable_wayland"], [
3409 AC_MSG_ERROR([$wl_err])
3411 AC_MSG_WARN([$wl_err])
3418 PKG_CHECK_MODULES([XKBCOMMON], [xkbcommon], [
3419 have_xkbcommon="yes"
3421 AC_MSG_WARN([${XKBCOMMON_PKG_ERRORS}. Hotkeys are disabled.])
3424 AM_CONDITIONAL([HAVE_WAYLAND], [test "${have_wayland}" = "yes"])
3425 AC_SUBST([WAYLAND_PROTOCOLS])
3426 AC_SUBST([WAYLAND_SCANNER])
3427 AM_CONDITIONAL([HAVE_XKBCOMMON], [test "${have_xkbcommon}" = "yes"])
3431 dnl SDL image decoder module
3433 AC_ARG_ENABLE([sdl-image],
3434 AS_HELP_STRING([--enable-sdl-image], [SDL image support (default enabled)]))
3435 AS_IF([test "${enable_sdl_image}" != "no"],[
3436 PKG_CHECK_MODULES(SDL_IMAGE, [SDL_image >= 1.2.10], [
3437 VLC_ADD_PLUGIN([sdl_image])
3439 AC_MSG_WARN([${SDL_IMAGE_PKG_ERRORS}. You should install it alongside your SDL package.])
3446 AC_ARG_ENABLE([freetype],
3447 AS_HELP_STRING([--enable-freetype], [freetype support (default auto)]))
3448 AC_ARG_ENABLE([fribidi],
3449 AS_HELP_STRING([--enable-fribidi], [fribidi support (default auto)]))
3450 AC_ARG_ENABLE([harfbuzz],
3451 AS_HELP_STRING([--enable-harfbuzz], [harfbuzz support (default auto)]))
3452 AC_ARG_ENABLE([fontconfig],
3453 AS_HELP_STRING([--enable-fontconfig], [fontconfig support (default auto)]))
3455 AC_ARG_WITH([default-font],
3456 AS_HELP_STRING([--with-default-font=PATH],
3457 [Path to the default font]),
3458 [AC_DEFINE_UNQUOTED([DEFAULT_FONT_FILE],
3459 "$withval", [Default font])])
3460 AC_ARG_WITH([default-monospace-font],
3461 AS_HELP_STRING([--with-default-monospace-font=PATH],
3462 [Path to the default font]),
3463 [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FONT_FILE],
3464 "$withval", [Default monospace font])])
3466 AC_ARG_WITH([default-font-family],
3467 AS_HELP_STRING([--with-default-font-family=NAME],
3468 [Name of the default font family]),
3469 [AC_DEFINE_UNQUOTED([DEFAULT_FAMILY],
3470 "$withval", [Default font family])])
3471 AC_ARG_WITH([default-monospace-font-family],
3472 AS_HELP_STRING([--with-default-monospace-font-family=NAME],
3473 [Name of the default font family]),
3474 [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FAMILY],
3475 "$withval", [Default monospace font family])])
3478 have_fontconfig="no"
3482 if test "${enable_freetype}" != "no"; then
3483 PKG_CHECK_MODULES(FREETYPE, freetype2, [
3485 VLC_ADD_CPPFLAGS([skins2],[${FREETYPE_CFLAGS}])
3486 VLC_ADD_LIBS([skins2],[${FREETYPE_LIBS}])
3488 dnl fontconfig support
3489 AS_IF([test "${enable_fontconfig}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "darwin"], [
3490 PKG_CHECK_MODULES(FONTCONFIG, [fontconfig >= 2.11], [
3491 have_fontconfig="yes"
3493 AC_MSG_WARN([${FONTCONFIG_PKG_ERRORS}. Styles will be disabled in FreeType.])
3498 if test "${enable_fribidi}" != "no"; then
3499 PKG_CHECK_MODULES(FRIBIDI, fribidi, [
3501 VLC_ADD_CPPFLAGS([skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
3502 VLC_ADD_LIBS([skins2], [${FRIBIDI_LIBS}])
3503 ],[AC_MSG_WARN([${FRIBIDI_PKG_ERRORS}. Bidirectional text and complex scripts (Arabic, Farsi, Thai...) will be disabled in FreeType.])])
3506 dnl harfbuzz support
3507 if test "${have_fribidi}" != "no"; then
3508 if test "${enable_harfbuzz}" != "no"; then
3509 PKG_CHECK_MODULES(HARFBUZZ, harfbuzz, [
3511 VLC_ADD_CPPFLAGS([skins2], [${HARFBUZZ_CFLAGS} -DHAVE_HARFBUZZ])
3512 VLC_ADD_LIBS([skins2], [${HARFBUZZ_LIBS}])
3513 ],[AC_MSG_WARN([${HARFBUZZ_PKG_ERRORS}. Support for complex scripts (Arabic, Farsi, Thai...) will be disabled in FreeType.])])
3517 AS_IF([test -n "${enable_freetype}"],[
3518 AC_MSG_ERROR([${FREETYPE_PKG_ERRORS}. Install FreeType2 development or configure with --disable-freetype.])
3523 AM_CONDITIONAL([HAVE_FREETYPE], [test "${have_freetype}" = "yes"])
3524 AM_CONDITIONAL([HAVE_FONTCONFIG], [test "${have_fontconfig}" = "yes"])
3525 AM_CONDITIONAL([HAVE_FRIBIDI], [test "${have_fribidi}" = "yes"])
3526 AM_CONDITIONAL([HAVE_HARFBUZZ], [test "${have_harfbuzz}" = "yes"])
3529 dnl libass subtitle rendering module
3531 AC_ARG_ENABLE([libass],
3532 AS_HELP_STRING([--enable-libass], [Subtitle support using libass (default enabled)]))
3533 AS_IF( [test "${enable_libass}" != "no"], [
3534 PKG_CHECK_MODULES(LIBASS, [libass >= 0.9.8],
3536 VLC_ADD_PLUGIN([libass])
3538 if test "${have_fontconfig}" != "no"; then
3539 VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
3540 VLC_ADD_LIBS([libass],[${FONTCONFIG_LIBS}])
3543 AC_MSG_WARN([${LIBASS_PKG_ERRORS}.])
3548 dnl SAPI (text to Speech renderer for Windows)
3551 AC_CHECK_TYPES([ISpObjectToken],[
3553 ],[AC_MSG_WARN([sapi.h not found. Text to Speech renderer for Windows disabled])],
3554 [#include <windows.h>
3556 #include <sphelper.h>])
3557 AM_CONDITIONAL([HAVE_SAPI], [test "${have_sapi}" = "yes"])
3561 dnl SVG module (text rendering and image decoding)
3563 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3564 PKG_ENABLE_MODULES_VLC([SVGDEC], [], [librsvg-2.0 >= 2.9.0 cairo >= 1.13.1], [SVG image decoder library],[auto])
3567 dnl Windows DirectX module
3570 AC_ARG_ENABLE([directx],
3571 AS_HELP_STRING([--enable-directx],
3572 [Microsoft DirectX support (default enabled on Windows)]),, [
3573 AS_IF([test "${SYS}" = "mingw32"], [
3574 enable_directx="yes"
3579 AS_IF([test "${enable_directx}" != "no"], [
3581 AC_CHECK_HEADERS([GL/glew.h], [
3582 AC_CHECK_HEADERS([GL/wglew.h], [
3583 VLC_ADD_PLUGIN([glwin32 wgl])
3585 #include <windows.h>
3586 #include <GL/glew.h>
3588 #include <windows.h>
3592 AC_CHECK_HEADERS([d3d11.h], [
3593 VLC_ADD_PLUGIN([direct3d11 direct3d11_filters])
3597 AC_CHECK_HEADERS([d3d9.h], [
3598 VLC_ADD_PLUGIN([direct3d9])
3599 AC_CHECK_HEADERS([d3dx9effect.h])
3601 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
3602 [[#define COBJMACROS
3604 #include <dxva2api.h>
3605 #ifndef IDirectXVideoProcessorService_GetVideoProcessorDeviceGuids
3606 # error dxva2 too old
3610 VLC_ADD_PLUGIN([direct3d9_filters])
3612 [AC_MSG_WARN([Could not find required IDirectXVideoDecoder in dxva2api.h])])
3618 dnl Linux framebuffer module
3620 AC_CHECK_HEADER([linux/fb.h], [
3621 VLC_ADD_PLUGIN([fb])
3625 dnl Linux kernel mode setting module
3627 PKG_ENABLE_MODULES_VLC([KMS], [], [libdrm >= 2.4.83], [Linux kernel mode setting output], [auto])
3632 PKG_ENABLE_MODULES_VLC([CACA], [], [caca >= 0.99.beta14], [libcaca output],[auto])
3637 AC_ARG_ENABLE([kva],
3638 AS_HELP_STRING([--enable-kva],
3639 [support the K Video Accelerator KVA (default enabled on OS/2)]),, [
3640 AS_IF([test "$SYS" = "os2"], [
3646 AS_IF([test "$enable_kva" != "no"], [
3647 AC_CHECK_HEADERS([kva.h], [
3649 AC_CHECK_LIB([kva], [main], [
3654 AC_SUBST([KVA_LIBS])
3655 AM_CONDITIONAL([HAVE_KVA], [test "${have_kva}" = "yes"])
3660 AC_ARG_ENABLE([mmal],
3661 AS_HELP_STRING([--enable-mmal],
3662 [Multi-Media Abstraction Layer (MMAL) hardware plugin (default enable)]))
3663 if test "${enable_mmal}" != "no"; then
3665 LDFLAGS="${LDFLAGS} -L/opt/vc/lib -lvchostif"
3666 CPPFLAGS="${CPPFLAGS} -isystem /opt/vc/include -isystem /opt/vc/include/interface/vcos/pthreads -isystem /opt/vc/include/interface/vmcs_host/linux"
3667 AC_CHECK_HEADERS([interface/mmal/mmal.h],
3668 [ AC_CHECK_LIB([bcm_host], [vc_tv_unregister_callback_full], [
3670 VLC_ADD_PLUGIN([mmal])
3671 VLC_ADD_LDFLAGS([mmal],[ -L/opt/vc/lib ])
3672 VLC_ADD_CFLAGS([mmal],[ -isystem /opt/vc/include -isystem /opt/vc/include/interface/vcos/pthreads -isystem /opt/vc/include/interface/vmcs_host/linux ])
3673 VLC_ADD_LIBS([mmal],[ -lbcm_host -lmmal -lmmal_core -lmmal_components -lmmal_util -lvchostif -lvcsm -lvchiq_arm ]) ], [
3674 AS_IF([test "${enable_mmal}" = "yes"],
3675 [ AC_MSG_ERROR([Cannot find bcm library...]) ],
3676 [ AC_MSG_WARN([Cannot find bcm library...]) ])
3679 ] , [ AS_IF([test "${enable_mmal}" = "yes"],
3680 [ AC_MSG_ERROR([Cannot find development headers for mmal...]) ],
3681 [ AC_MSG_WARN([Cannot find development headers for mmal...]) ]) ])
3684 AM_CONDITIONAL([HAVE_MMAL], [test "${have_mmal}" = "yes"])
3690 EXTEND_HELP_STRING([Audio plugins:])
3693 dnl Pulseaudio module
3695 AC_ARG_ENABLE([pulse],
3696 AS_HELP_STRING([--enable-pulse],
3697 [use the PulseAudio client library (default auto)]))
3699 AS_IF([test "${enable_pulse}" != "no"], [
3700 PKG_CHECK_MODULES([PULSE], [libpulse >= 1.0], [
3703 AS_IF([test "x${enable_pulse}" != "x"], [
3704 AC_MSG_ERROR([$PULSE_PKG_ERRORS. PulseAudio 1.0 or later required.])
3708 AM_CONDITIONAL([HAVE_PULSE], [test "${have_pulse}" = "yes"])
3713 AC_ARG_ENABLE([alsa],
3714 AS_HELP_STRING([--enable-alsa],
3715 [support the Advanced Linux Sound Architecture (default auto)]),, [
3716 AS_IF([test "$SYS" = "linux" -a "${have_pulse}" = "no"], [
3721 AS_IF([test "${enable_alsa}" != "no"], [
3722 PKG_CHECK_MODULES([ALSA], [alsa >= 1.0.24], [
3725 AS_IF([test "x${enable_alsa}" != "x"], [
3726 AC_MSG_ERROR([$ALSA_PKG_ERRORS. alsa-lib 1.0.24 or later required. Pass --disable-alsa to ignore this error.])
3730 AM_CONDITIONAL([HAVE_ALSA], [test "${have_alsa}" = "yes"])
3733 dnl Open Sound System module
3735 AC_ARG_ENABLE([oss],
3736 AS_HELP_STRING([--enable-oss],
3737 [support the Open Sound System OSS (default enabled on FreeBSD/NetBSD/DragonFlyBSD)]),, [
3738 AS_IF([test "$SYS" = "mingw32" -o "$SYS" = "linux" -o "$SYS" = "openbsd"], [
3744 AS_IF([test "$enable_oss" != "no"], [
3745 AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
3747 AC_CHECK_LIB([ossaudio], [main], [
3748 OSS_LIBS="-lossaudio"
3752 AC_SUBST([OSS_LIBS])
3753 AM_CONDITIONAL([HAVE_OSS], [test "${have_oss}" = "yes"])
3756 dnl OpenBSD sndio module
3758 AC_ARG_ENABLE([sndio],
3759 AS_HELP_STRING([--disable-sndio],
3760 [support the OpenBSD sndio (default auto)]),, [
3761 AS_IF([test "$SYS" = "openbsd"], [
3766 AS_IF([test "$enable_sndio" != "no"], [
3767 AC_CHECK_HEADER([sndio.h], [
3771 AM_CONDITIONAL([HAVE_SNDIO], [test "${have_sndio}" = "yes"])
3774 dnl Windows Audio Session plugin
3776 AC_ARG_ENABLE([wasapi],
3777 AS_HELP_STRING([--enable-wasapi],
3778 [use the Windows Audio Session API (default auto)])
3781 AS_IF([test "$enable_wasapi" != "no"], [
3782 AC_CHECK_HEADER([audioclient.h], [
3785 AS_IF([test "x${enable_wasapi}" != "x"], [
3786 AC_MSG_ERROR([Windows Audio Session API not found.])
3790 AM_CONDITIONAL([HAVE_WASAPI], [test "${have_wasapi}" = "yes"])
3795 AC_ARG_ENABLE([jack],
3796 AS_HELP_STRING([--disable-jack],
3797 [do not use jack (default auto)]))
3799 AS_IF([test "${enable_jack}" != "no"], [
3800 PKG_CHECK_MODULES(JACK, jack >= 1.9.7,
3803 AC_MSG_WARN([${JACK_PKG_ERRORS}, trying jack1 instead])
3805 PKG_CHECK_MODULES(JACK, jack >= 0.120.1 jack < 1.0,
3808 AS_IF([test -n "${enable_jack}"],
3809 [AC_MSG_ERROR([${JACK_PKG_ERRORS}.])],
3810 [AC_MSG_WARN([${JACK_PKG_ERRORS}.])])
3814 AM_CONDITIONAL([HAVE_JACK], [test "${have_jack}" != "no"])
3817 dnl OpenSLES Android
3819 AC_ARG_ENABLE([opensles],
3820 AS_HELP_STRING([--enable-opensles], [Android OpenSL ES audio module (default disabled)]))
3821 if test "${HAVE_ANDROID}" = "1"; then
3822 if test "${enable_opensles}" = "yes"; then
3823 AC_CHECK_HEADERS([SLES/OpenSLES.h],
3824 [ VLC_ADD_PLUGIN([opensles_android]) ],
3825 [ AC_MSG_ERROR([cannot find OpenSLES headers])] )
3830 dnl libsamplerate plugin
3832 PKG_ENABLE_MODULES_VLC([SAMPLERATE], [], [samplerate], [Resampler with libsamplerate], [auto])
3837 PKG_ENABLE_MODULES_VLC([SOXR], [], [soxr >= 0.1.2], [SoX Resampler library], [auto])
3842 AC_ARG_ENABLE([kai],
3843 AS_HELP_STRING([--enable-kai],
3844 [support the K Audio Interface KAI (default enabled on OS/2)]),, [
3845 AS_IF([test "$SYS" = "os2"], [
3851 AS_IF([test "$enable_kai" != "no"], [
3852 AC_CHECK_HEADERS([kai.h], [
3854 AC_CHECK_LIB([kai], [main], [
3859 AC_SUBST([KAI_LIBS])
3860 AM_CONDITIONAL([HAVE_KAI], [test "${have_kai}" = "yes"])
3863 dnl chromaprint audio track fingerprinter
3865 PKG_ENABLE_MODULES_VLC([CHROMAPRINT], [stream_out_chromaprint], [libchromaprint >= 0.6.0], [Chromaprint audio fingeprinter], [auto])
3868 dnl Chromecast streaming support
3870 m4_pushdef([protobuf_lite_version], 2.5.0)
3871 AC_ARG_VAR(PROTOC, [protobuf compiler])
3872 AC_CHECK_PROGS(PROTOC, protoc, no)
3873 PKG_WITH_MODULES([CHROMECAST],[protobuf-lite >= protobuf_lite_version], [
3874 AS_IF([test "x${PROTOC}" != "xno"], [
3875 build_chromecast="yes"
3877 AC_MSG_ERROR(protoc compiler needed for [chromecast] was not found)
3880 AS_IF([test "${enable_chromecast}" = "yes"],
3881 AC_MSG_ERROR(Library [protobuf-lite >= protobuf_lite_version] needed for [chromecast] was not found),
3882 AC_MSG_WARN(Library [protobuf-lite >= protobuf_lite_version] needed for [chromecast] was not found)
3884 enable_chromecast="no"
3885 ], [(Chromecast streaming support)], [auto])
3886 AM_CONDITIONAL([BUILD_CHROMECAST], [test "${build_chromecast}" = "yes"])
3887 m4_popdef([protobuf_lite_version])
3890 dnl Interface plugins
3893 EXTEND_HELP_STRING([Interface plugins:])
3899 AS_HELP_STRING([--disable-qt], [Qt UI support (default enabled)]),, [
3900 AS_IF([test "${enable_vlc}" != "no"], [enable_qt="yes"])
3901 AS_IF([test "${SYS}" = "darwin"], [
3906 AS_IF([test "${enable_qt}" != "no"], [
3907 PKG_CHECK_MODULES([QT], [Qt5Core >= 5.11.0 Qt5Widgets Qt5Gui Qt5Quick Qt5QuickWidgets Qt5QuickControls2 Qt5Svg], [
3908 PKG_CHECK_MODULES([QT5_X11], [Qt5X11Extras], [
3911 AC_MSG_WARN([Not building Qt Interface with X11 helpers.])
3913 QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix Qt5Core)"
3914 QT_HOST_PATH="$(eval $PKG_CONFIG --variable=host_bins Qt5Core)"
3915 QT_VERSION="$(eval $PKG_CONFIG --modversion Qt5Gui)"
3916 AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3917 AC_PATH_PROGS(RCC, [rcc-qt5 rcc], rcc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3918 AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3919 AC_PATH_PROGS(QMLCACHE, [qmlcachegen-qt5 qmlcachegen], no, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3920 AS_IF([test "x${QMLCACHE}" = "xno"], [
3921 AC_MSG_WARN([qmlcachegen not found])
3924 AS_IF([test -n "${enable_qt}"],[
3925 AC_MSG_ERROR([${QT_PKG_ERRORS}. If you want to build VLC without GUI, pass --disable-qt.])
3927 AC_MSG_WARN([${QT_PKG_ERRORS}.])
3933 AC_ARG_ENABLE([qt-qml-cache],
3934 AS_HELP_STRING([--enable-qt-qml-cache],
3935 [enable qml cache generation]))
3936 AM_CONDITIONAL([HAVE_QMLCACHE], [test "${enable_qt_qml_cache}" = "yes" && test "x$QMLCACHE" != "xno"])
3938 AC_ARG_ENABLE([qt-qml-debug],
3939 AS_HELP_STRING([--enable-qt-qml-debug], [enable qml debuger]))
3940 AM_CONDITIONAL(QT_QML_DEBUG, [test "${enable_qt_qml_debug}" = "yes"])
3942 AS_IF([test "${enable_qt}" != "no"], [
3943 ALIASES="${ALIASES} qvlc"
3945 AC_SUBST([QT_VERSION])
3946 AM_CONDITIONAL([ENABLE_QT], [test "$enable_qt" != "no"])
3947 AM_CONDITIONAL([HAVE_QT5_X11], [test "${have_qt5_x11}" = "yes"])
3950 dnl detect kde4-config patch (used for kde solids).
3952 AC_ARG_VAR([KDE4_CONFIG], [kde4-config utility])
3953 AS_IF([test "x$KDE4_CONFIG" = "x"], [
3954 KDE4_CONFIG="kde4-config"
3958 dnl Simple test for skins2 dependency
3960 AS_IF([test "$enable_qt" = "no"], [
3961 AS_IF([test "${enable_skins2}" = "yes"], [
3962 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.])
3965 AC_MSG_WARN([The skins2 module depends on the Qt interface, Qt is not built so skins2 is disabled.])
3972 AC_ARG_ENABLE([skins2],
3973 AS_HELP_STRING([--enable-skins2], [skins interface module (default auto)]))
3974 AS_IF([test "${enable_skins2}" != "no"], [
3975 have_skins_deps="yes"
3978 AS_IF([test "${SYS}" = "mingw32"], [
3979 VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -DWIN32_SKINS])
3980 VLC_ADD_LIBS([skins2],[-lgdi32 -lole32 -luuid -lmsimg32])
3982 ], [test "${SYS}" = "os2"], [
3983 VLC_ADD_CPPFLAGS([skins2],[ -DOS2_SKINS])
3986 PKG_CHECK_MODULES([XPM], [xpm],, [have_skins_deps="no"])
3987 PKG_CHECK_MODULES([XINERAMA], [xinerama],, [have_skins_deps="no"])
3988 PKG_CHECK_MODULES([XCURSOR], [xcursor],, [have_skins_deps="no"])
3989 PKG_CHECK_MODULES([XEXT], [xext],, [have_skins_deps="no"])
3990 VLC_ADD_CPPFLAGS([skins2],[${X_CFLAGS} ${XEXT_CFLAGS} ${XPM_CFLAGS} -DX11_SKINS])
3991 VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} ${XEXT_LIBS} ${XPM_LIBS} ${XINERAMA_LIBS} ${XCURSOR_LIBS} -lX11])
3994 dnl we need freetype
3995 AS_IF([test "${have_freetype}" != "yes"], [
3996 have_skins_deps="no"
3999 AS_IF([test "${have_skins_deps}" = "no"], [
4000 AS_IF([test "x${enable_skins2}" = "x"], [
4001 AC_MSG_WARN([Skins2 interface disabled due to missing dependencies.])
4003 AC_MSG_ERROR([Skins2 interface requires FreeType, libxcursor, libxpm, libxext and libxinerama])
4007 ALIASES="${ALIASES} svlc"
4011 AM_CONDITIONAL([BUILD_SKINS], [test "${enable_skins2}" = "yes"])
4013 AC_ARG_ENABLE([libtar],
4014 AS_HELP_STRING([--enable-libtar], [libtar support for skins2 (default auto)]))
4015 AS_IF([test "${enable_skins2}" = "yes" && test "${enable_libtar}" != "no"], [
4016 AC_CHECK_HEADERS([libtar.h], [
4017 VLC_ADD_LIBS([skins2],[-ltar])
4022 dnl MacOS X gui module
4024 AC_ARG_ENABLE([macosx],
4025 AS_HELP_STRING([--enable-macosx], [Mac OS X gui support (default enabled on Mac OS X)]))
4026 if test "x${enable_macosx}" != "xno" -a "${SYS}" = "darwin"
4030 dnl If possible, use xcrun to find the right ibtool
4033 AC_PATH_PROG([XCRUN], [xcrun], [no])
4034 AS_IF([test ! "x${XCRUN}" = "xno"], [
4035 AC_MSG_CHECKING([for ibtool (using xcrun)])
4036 XIB="$(eval $XCRUN -f ibtool 2>/dev/null || echo no)"
4037 AC_MSG_RESULT([${XIB}])
4039 AC_MSG_WARN([Looking for tools without using xcrun])
4042 AS_IF([test "x${XIB}" = "xno"], [
4043 AC_PATH_PROG(XIB, [ibtool], [no])
4044 AS_IF([test "x${XIB}" = "xno"], [
4045 AC_MSG_ERROR([ibtool was not found, but is required for --enable-macosx])
4049 AM_CONDITIONAL([ENABLE_MACOSX_UI], [test "$enable_macosx" != "no" -a "${SYS}" = "darwin"])
4052 dnl MacOS X sparkle update support
4054 AC_ARG_ENABLE([sparkle],
4055 AS_HELP_STRING([--enable-sparkle], [Sparkle update support for OS X (default enabled on Mac OS X)]))
4056 if test "x${enable_sparkle}" != "xno" -a "${HAVE_OSX}" = "1"
4058 if test ! -d ${CONTRIB_DIR}/Sparkle.framework -a ! -d ${CONTRIB_DIR}/Frameworks/Sparkle.framework
4060 AC_MSG_ERROR([Sparkle framework is required and was not found in ${CONTRIB_DIR}])
4063 AC_DEFINE([HAVE_SPARKLE], [1], [Define to 1 if sparkle is enabled.])
4065 AM_CONDITIONAL([HAVE_SPARKLE], [test "$enable_sparkle" != "no"])
4068 dnl MacOS X breakpad creash reporter support
4070 AC_ARG_WITH([breakpad],
4071 AS_HELP_STRING([--with-breakpad=URL], [Enable Breakpad reporter using given URL]), [], [with_breakpad=no])
4073 AS_IF([test "$with_breakpad" != "no"], [
4075 AS_IF([test "$with_breakpad" = "yes"], [
4076 AC_MSG_ERROR([You need to supply the CrashDragon Server URL as value for --with-breakpad])
4079 AS_IF([test "$HAVE_OSX" = "1"], [
4080 AC_MSG_CHECKING([for Breakpad framework])
4081 AS_IF([test ! -d ${CONTRIB_DIR}/Breakpad.framework -a \
4082 ! -d ${CONTRIB_DIR}/Frameworks/Breakpad.framework], [
4085 AC_MSG_ERROR([Breakpad framework is required and was not found in ${CONTRIB_DIR}])
4087 AC_MSG_RESULT([yes])
4090 PKG_CHECK_MODULES([BREAKPAD], [breakpad-client], [
4091 LDFLAGS="${LDFLAGS} -Wl,--build-id"
4093 AC_MSG_ERROR(["breakpad not found"])
4098 AM_CONDITIONAL([HAVE_BREAKPAD], [test "$with_breakpad" != "no"])
4099 AS_IF([test "$with_breakpad" != "no"], [
4100 AC_SUBST([BREAKPAD_URL], ["${with_breakpad}"])
4104 dnl Minimal Mac OS X module
4106 AC_ARG_ENABLE([minimal-macosx],
4107 AS_HELP_STRING([--enable-minimal-macosx], [Minimal Mac OS X support (default disabled)]))
4108 if test "${enable_minimal_macosx}" = "yes" -a "${SYS}" = "darwin"
4110 VLC_ADD_PLUGIN([minimal_macosx])
4114 dnl Mac OS X fancy dmg build tool
4116 if test "${HAVE_OSX}" = "1"
4118 AC_PATH_PROG(DMGBUILD, dmgbuild, no)
4119 AS_IF([test "x${DMGBUILD}" = "xno"], [
4120 AC_MSG_WARN([dmgbuild not found -- unable to build fancy DMGs])
4123 AM_CONDITIONAL([HAVE_DMGBUILD], [test "x$DMGBUILD" != "xno" -a "${HAVE_OSX}" = "1"])
4126 dnl VideoToolbox plugins
4127 AC_CHECK_HEADERS([VideoToolbox/VideoToolbox.h], [
4128 VLC_ADD_PLUGIN([videotoolbox])
4129 VLC_ADD_PLUGIN([cvpx])
4133 dnl AudioToolbox MIDI plugin
4134 AC_CHECK_HEADERS([AudioToolbox/AudioToolbox.h], [
4135 VLC_ADD_PLUGIN([audiotoolboxmidi])
4141 AC_ARG_ENABLE([ncurses],
4142 AS_HELP_STRING([--disable-ncurses],[ncurses text-based interface (default auto)]))
4144 AS_IF([test "${enable_ncurses}" != "no"] ,[
4145 PKG_CHECK_MODULES([NCURSES], [ncursesw], [
4147 ALIASES="${ALIASES} nvlc"
4149 AS_IF([test -n "${enable_ncurses}"], [
4150 AC_MSG_ERROR([${NCURSES_PKG_ERRORS}.])
4154 AM_CONDITIONAL([HAVE_NCURSES], [test "${have_ncurses}" = "yes"])
4159 AC_ARG_ENABLE([lirc],
4160 AS_HELP_STRING([--enable-lirc], [lirc support (default disabled)]))
4162 AS_IF([test "${enable_lirc}" = "yes"], [
4163 AC_CHECK_HEADER(lirc/lirc_client.h, [
4164 AC_CHECK_LIB([lirc_client], [lirc_init], [
4169 AM_CONDITIONAL([HAVE_LIRC], [test "${have_lirc}" = "yes"])
4174 PKG_CHECK_MODULES([BITSTREAM], [bitstream > 1.4],[have_bitstream="yes"], [have_bitstream="no"])
4175 AM_CONDITIONAL([HAVE_BITSTREAM], [test "${have_bitstream}" = "yes"])
4180 PKG_ENABLE_MODULES_VLC([SRT], [access_srt access_output_srt], [srt >= 1.3.0], [SRT input/output plugin], [auto], [], [], [-DENABLE_SRT])
4182 EXTEND_HELP_STRING([Visualisations and Video filter plugins:])
4184 dnl goom visualization plugin
4186 PKG_ENABLE_MODULES_VLC([GOOM], [], [libgoom2], [goom visualization plugin], [auto])
4189 dnl libprojectM visualization plugin
4191 AC_ARG_ENABLE([projectm],
4192 AS_HELP_STRING([--enable-projectm], [projectM visualization plugin (default enabled)]))
4193 AS_IF([test "${enable_projectm}" != "no"],
4195 PKG_CHECK_MODULES(PROJECTM, libprojectM,
4197 VLC_ADD_PLUGIN([projectm])
4198 PKG_CHECK_EXISTS([libprojectM >= 2.0.0],
4199 [ AC_DEFINE([HAVE_PROJECTM2], 1, [Define to 1 if using libprojectM 2.x]) ],
4200 [ AC_MSG_WARN( [Using libprojectM version 1] )
4203 AC_MSG_WARN([${PROJECTM_PKG_ERRORS}.])
4208 dnl Vovoid VSXu visualization plugin
4210 AC_ARG_ENABLE([vsxu],
4211 AS_HELP_STRING([--enable-vsxu], [Vovoid VSXu visualization plugin (default auto)]))
4212 AS_IF([test "${enable_vsxu}" != "no"],
4214 PKG_CHECK_MODULES(VSXU, libvsxu,
4216 VLC_ADD_PLUGIN([vsxu])
4218 AC_MSG_WARN([${VSXU_PKG_ERRORS}.])
4222 EXTEND_HELP_STRING([Service Discovery plugins:])
4224 dnl Avahi-Zeroconf services discovery
4225 PKG_ENABLE_MODULES_VLC([AVAHI], [], [avahi-client >= 0.6], [Zeroconf services discovery], [auto])
4228 dnl libudev services discovery
4229 PKG_ENABLE_MODULES_VLC([UDEV], [], [libudev >= 142], [Linux udev services discovery], [auto])
4232 dnl MTP devices services discovery
4233 PKG_ENABLE_MODULES_VLC([MTP], [mtp access_mtp], [libmtp >= 1.0.0], [MTP devices support], [auto])
4236 dnl UPnP Plugin (Intel SDK)
4238 PKG_ENABLE_MODULES_VLC([UPNP], [upnp], [libupnp], [Intel UPNP SDK],[auto])
4241 dnl mDNS using libmicrodns
4243 PKG_ENABLE_MODULES_VLC([MICRODNS], [], [microdns], [mDNS services discovery], [auto])
4246 EXTEND_HELP_STRING([Misc options:])
4251 PKG_ENABLE_MODULES_VLC([LIBXML2], [xml], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
4257 AC_ARG_ENABLE([libgcrypt],
4258 AS_HELP_STRING([--disable-libgcrypt], [gcrypt support (default enabled)]))
4259 AC_ARG_VAR([GCRYPT_CFLAGS], [C compiler flags for gcrypt])
4260 AC_ARG_VAR([GCRYPT_LIBS], [linker flags flags for gcrypt])
4262 # require libgcrypt >= 1.6.0
4263 AS_IF([test "${enable_libgcrypt}" != "no"], [
4264 AC_CACHE_CHECK([for gcrypt 1.6.0 or later], [ac_cv_lib_gcrypt], [
4266 CFLAGS="${CFLAGS} ${GCRYPT_CFLAGS}"
4267 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
4268 [#include <gcrypt.h>
4269 #if GCRYPT_VERSION_NUMBER < 0x010600
4272 ac_cv_lib_gcrypt=yes
4279 AS_IF([test "${ac_cv_lib_gcrypt}" = "yes"], [
4280 AC_DEFINE([HAVE_GCRYPT], 1, [Defined if having gcrypt])
4282 AS_IF([test "${enable_libgcrypt}" = "yes"], [
4283 AC_MSG_ERROR([libgcrypt version 1.6.0 or higher not found. Install libgcrypt or pass --disable-libgcrypt.])
4288 AS_IF([test -z "$GCRYPT_LIBS"], [
4289 GCRYPT_LIBS="-lgcrypt -lgpg-error"
4292 AC_SUBST([GCRYPT_CFLAGS])
4293 AC_SUBST([GCRYPT_LIBS])
4294 AM_CONDITIONAL([HAVE_GCRYPT], [test "${ac_cv_lib_gcrypt}" = "yes"])
4299 AC_ARG_ENABLE([gnutls],
4300 AS_HELP_STRING([--enable-gnutls], [GNU TLS TLS/SSL support (default enabled)]))
4301 AS_IF([test "${enable_gnutls}" != "no"], [
4302 PKG_CHECK_MODULES(GNUTLS, [gnutls >= 3.5.0], [
4303 VLC_ADD_PLUGIN([gnutls])
4305 AS_IF([test -n "${enable_gnutls}"], [
4306 AC_MSG_ERROR([${GNUTLS_PKG_ERRORS}.)])
4315 AC_ARG_ENABLE([taglib],
4316 AS_HELP_STRING([--disable-taglib],
4317 [do not use TagLib (default enabled)]))
4318 AS_IF([test "${enable_taglib}" != "no"], [
4319 PKG_CHECK_MODULES(TAGLIB, taglib >= 1.11, [
4320 VLC_ADD_PLUGIN([taglib])
4322 AC_MSG_WARN([${TAGLIB_PKG_ERRORS}.])])
4328 PKG_ENABLE_MODULES_VLC([SECRET], [], [libsecret-1 >= 0.18], [use libsecret for keystore], [auto])
4333 AC_ARG_ENABLE([kwallet],
4334 AS_HELP_STRING([--enable-kwallet],
4335 [use kwallet (via D-Bus) for keystore (default enabled)]))
4336 AS_IF([test "${enable_kwallet}" != "no" -a "${have_dbus}" = "yes"], [
4337 VLC_ADD_PLUGIN([kwallet])
4341 dnl update checking system
4343 AC_ARG_ENABLE([update-check],
4344 AS_HELP_STRING([--enable-update-check], [update checking system (default disabled)]))
4345 if test "${enable_update_check}" = "yes"
4347 AS_IF([test "${ac_cv_lib_gcrypt}" != "yes"],[
4348 AC_MSG_ERROR([libgcrypt is required for update checking system]) ])
4350 AM_CONDITIONAL([UPDATE_CHECK], [test "${enable_update_check}" = "yes"])
4353 dnl OS X notification plugin
4355 AC_ARG_ENABLE([osx_notifications],
4356 AS_HELP_STRING([--enable-osx-notifications],
4357 [macOS notification plugin (default disabled)]),,
4358 [enable_osx_notifications=no])
4359 AS_IF([test "${enable_osx_notifications}" != "no"], [
4360 VLC_ADD_PLUGIN([osx_notifications])
4364 dnl Libnotify notification plugin
4366 PKG_ENABLE_MODULES_VLC([NOTIFY], [], [libnotify gtk+-3.0], [libnotify notification], [auto])
4368 PKG_ENABLE_MODULES_VLC([MEDIALIBRARY], [medialibrary], [medialibrary >= 0.7.1], (medialibrary support), [auto])
4371 dnl Endianness check
4374 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
4375 DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
4379 AC_SUBST([DEFS_BIGENDIAN])
4382 dnl Where to install KDE solid .desktop
4384 AC_ARG_WITH(kde-solid,
4385 AS_HELP_STRING([--with-kde-solid=PATH],
4386 [KDE Solid actions directory (auto)]),, [
4388 if test "${SYS}" != "mingw32" -a "${SYS}" != "darwin" -a "${HAVE_ANDROID}" != "1" ; then
4389 with_kde_solid="yes"
4393 AS_IF([test "${with_kde_solid}" != "no"], [
4394 AS_IF([test "${with_kde_solid}" = "yes"], [
4395 kde4datadir="`${KDE4_CONFIG} --install data`"
4396 AS_IF([test "x$kde4datadir" = "x"], [kde4datadir='${datadir}/kde4/apps'])
4397 soliddatadir="${kde4datadir}/solid/actions"
4399 soliddatadir="${with_kde_solid}"
4402 AC_SUBST([soliddatadir])
4403 AM_CONDITIONAL([KDE_SOLID], [test "x${soliddatadir}" != "x"])
4406 dnl Find tools for win32 packaging
4408 AS_IF([test "${SYS}" = "mingw32"], [
4410 dnl Find makensis required to build the NSIS installer
4412 nsis_major_required="3"
4413 nsis_version_ok="no"
4414 AC_PATH_PROG([MAKENSIS], [makensis], [no])
4415 AS_IF([test "$MAKENSIS" != "no"], [
4417 AC_MSG_CHECKING([makensis version])
4418 nsis_version=$($MAKENSIS -VERSION)
4419 AC_MSG_RESULT([$nsis_version])
4420 nsis_version_major=$(echo "$nsis_version" | awk -F \. '{print $1}' | sed 's/v//')
4421 # Check if major version is a valid number
4422 AS_IF([test -n "$nsis_version_major" && \
4423 test "$nsis_version_major" -eq "$nsis_version_major" 2> /dev/null], [
4424 # Do the version check using major version
4425 AS_IF([test "$nsis_version_major" -lt "$nsis_major_required"], [
4426 AC_MSG_WARN([makensis too old, (needs ${nsis_major_required}.x, have ${nsis_version_major}.x)])
4428 nsis_version_ok="yes"
4431 AC_MSG_WARN([failed to check the makensis version])
4437 AC_PATH_PROG([SEVENZIP], [7z], [7z])
4439 AM_CONDITIONAL([HAVE_MAKENSIS], [test "x$MAKENSIS" != "xno" && test "$nsis_version_ok" = "yes"])
4442 dnl Check wether we have the PROCESS_MITIGATION_IMAGE_LOAD_POLICY
4443 dnl It should only be available when building for win10, but some SDKs define it unconditionnaly
4445 if test "${SYS}" = "mingw32"; then
4446 AC_CHECK_TYPES([PROCESS_MITIGATION_IMAGE_LOAD_POLICY],,,[#include <windows.h>])
4449 EXTEND_HELP_STRING([Components:])
4454 AC_ARG_ENABLE([vlc],
4455 AS_HELP_STRING([--enable-vlc], [build the VLC media player (default enabled)]))
4456 AM_CONDITIONAL([BUILD_VLC], [test "${enable_vlc}" != "no"])
4459 dnl Fuzzer (at the end not to mess dependencies FLAGS)
4461 AS_VAR_IF(with_libfuzzer, no, [], [
4462 LIBS="-lstdc++ ${LIBM}"
4463 AS_IF([test "${with_libfuzzer}" != "yes"], [
4464 LIBS="$LIBS -L${with_libfuzzer}"
4466 LIBS="$LIBS -lFuzzer"
4467 AX_CHECK_COMPILE_FLAG(-fsanitize-coverage=trace-pc-guard, [
4468 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc-guard])
4469 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc-guard], [CXXFLAGS])
4470 AX_APPEND_COMPILE_FLAGS([-fsanitize-coverage=trace-cmp])
4471 AX_APPEND_COMPILE_FLAGS([-fsanitize-coverage=trace-cmp], [CXXFLAGS])
4473 AX_CHECK_COMPILE_FLAG(-fsanitize-coverage=trace-pc, [
4474 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc])
4475 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc], [CXXFLAGS])
4477 AC_MSG_ERROR([Sanitizer coverage not supported by your compiler])
4483 dnl Stuff used by the program
4485 VERSION_MESSAGE="${VERSION} ${CODENAME}"
4486 COPYRIGHT_MESSAGE="Copyright © ${COPYRIGHT_YEARS} the VideoLAN team"
4487 AC_DEFINE_UNQUOTED([VERSION_MESSAGE], "${VERSION_MESSAGE}", [Simple version string])
4488 AC_DEFINE_UNQUOTED([COPYRIGHT_MESSAGE], "${COPYRIGHT_MESSAGE}", [Copyright string])
4489 AC_DEFINE_UNQUOTED([COPYRIGHT_YEARS], "${COPYRIGHT_YEARS}", [The copyright years])
4490 AC_DEFINE_UNQUOTED([CONFIGURE_LINE], "${CONFIGURE_LINE}", [The ./configure command line])
4491 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_MAJOR],${VERSION_MAJOR}, [version major number])
4492 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_MINOR],${VERSION_MINOR}, [version minor number])
4493 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_REVISION],${VERSION_REVISION}, [version revision number])
4494 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_EXTRA],${VERSION_EXTRA}, [version extra number])
4495 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_DEV],"${VERSION_DEV}", [version development string])
4496 AC_SUBST([COPYRIGHT_MESSAGE])
4497 AC_SUBST([VERSION_MESSAGE])
4498 AC_SUBST([VERSION_MAJOR])
4499 AC_SUBST([VERSION_MINOR])
4500 AC_SUBST([VERSION_REVISION])
4501 AC_SUBST([VERSION_EXTRA])
4502 AC_SUBST([COPYRIGHT_YEARS])
4503 AC_DEFINE_UNQUOTED([VLC_COMPILE_BY], "`whoami|sed -e 's/\\\/\\\\\\\/g'`", [user who ran configure])
4504 AC_DEFINE_UNQUOTED([VLC_COMPILE_HOST], "`hostname -f 2>/dev/null || hostname`", [host which ran configure])
4505 AC_DEFINE_UNQUOTED([VLC_COMPILER], "`$CC -v 2>&1 | tail -n 1 | sed -e 's/ *$//'`", [compiler])
4507 dnl Handle substvars that use $(top_srcdir)
4509 CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS}"
4512 dnl Configuration is finished
4522 AC_SUBST([WINE_SDK_PATH])
4524 AC_SUBST([AM_CPPFLAGS])
4525 AC_SUBST([MACOSX_DEPLOYMENT_TARGET])
4526 AC_SUBST([FILE_LIBVLCCORE_DLL])
4527 AC_SUBST([FILE_LIBVLC_DLL])
4541 modules/hw/mmal/Makefile
4542 share/vlc.appdata.xml.in
4545 AM_COND_IF([HAVE_WIN32], [
4547 extras/package/win32/NSIS/spad.nsi
4548 extras/package/win32/NSIS/vlc.win32.nsi
4549 extras/package/win32/msi/config.wxi
4553 AM_COND_IF([HAVE_DARWIN], [
4555 modules/gui/macosx/UI/InfoPlist.strings:modules/gui/macosx/Resources/InfoPlist.strings.in
4556 share/macosx/Info.plist:share/Info.plist.in
4560 dnl Generate makefiles
4563 dnl Do we have to use make or gmake ?
4564 if make --version 2>&1|grep -q GNU
4566 # GNU make, all seems good
4569 # Known GNU make alias (on BSD)
4572 dnl Shortcut to nice compile message
4573 if test -n $SHELL; then
4574 SHELL=${CONFIG_SHELL-/bin/sh}
4577 compile_top_srcdir=`sed -ne "s/^top_srcdir *= *//p" < Makefile`
4581 export PATH=\"$PATH\" LANG=C
4582 ($MAKE V=1 \$@ 2>&1 || touch .error\$\$)| $compile_top_srcdir/extras/buildsystem/make.pl
4583 test -f .error\$\$ && ERROR=1
4585 exit \$ERROR" >compile
4589 libvlc configuration
4590 --------------------
4591 version : ${VERSION}
4593 architecture : ${ARCH}
4594 optimizations : ${enable_optimizations}"
4595 if test "${enable_vlc}" != "no"; then
4596 echo "vlc aliases :${ALIASES}"
4598 echo "build vlc executable : no"
4601 To build vlc and its plugins, type \`$MAKE', or \`./compile' if you like nice colors."