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"], [enable_brprot="yes"] ,[enable_brprot="no"])
1704 AS_IF([test "${enable_brprot}" != "no"], [
1705 AX_CHECK_COMPILE_FLAG([-mbranch-protection=standard], [
1706 AX_APPEND_FLAG([-mbranch-protection=standard], [CFLAGS])
1707 AX_APPEND_FLAG([-mbranch-protection=standard], [CXXFLAGS])
1712 AC_ARG_ENABLE([altivec],
1713 AS_HELP_STRING([--disable-altivec],
1714 [disable AltiVec optimizations (default auto)]),, [
1715 AS_CASE("${host_cpu}", [powerpc*],
1716 [enable_altivec=yes], [enable_altivec=no])
1720 AS_IF([test "${enable_altivec}" = "yes"], [
1721 ARCH="${ARCH} altivec";
1723 AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1724 [ac_cv_altivec_inline],
1725 [AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1726 ac_cv_altivec_inline="yes",
1727 [CFLAGS="${CFLAGS} -Wa,-maltivec"
1728 AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1729 [ac_cv_altivec_inline="-Wa,-maltivec"],
1730 ac_cv_altivec_inline=no)
1733 AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1734 AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1735 [Define to 1 if AltiVec inline assembly is available.])
1736 AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1737 ALTIVEC_CFLAGS="${ac_cv_altivec_inline}"
1738 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_altivec_inline}])
1744 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1745 [ac_cv_c_altivec], [
1746 CFLAGS="${CFLAGS} -maltivec"
1747 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1748 [#include <altivec.h>]], [
1749 [vec_ld(0, (unsigned char *)0);]])], [
1750 ac_cv_c_altivec="-maltivec"
1752 ac_cv_c_altivec="no"
1756 AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1757 CPPFLAGS="${CPPFLAGS} ${ac_cv_c_altivec}"
1758 AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, [Define to 1 if C AltiVec extensions are available.])
1759 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_c_altivec}])
1760 ALTIVEC_CFLAGS="$ALTIVEC_CFLAGS ${ac_cv_c_altivec}"
1761 VLC_ADD_CFLAGS([deinterlace],[${ac_cv_c_altivec}])
1764 AC_CHECK_HEADERS([altivec.h])
1767 LDFLAGS="${LDFLAGS} -Wl,-framework,vecLib"
1768 AC_CACHE_CHECK([if linker needs -framework vecLib],
1770 [AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)])
1772 AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1773 VLC_ADD_LIBS([libvlccore],[-Wl,-framework,vecLib])
1776 AC_SUBST([ALTIVEC_CFLAGS])
1777 AM_CONDITIONAL([HAVE_ALTIVEC], [test "$have_altivec" = "yes"])
1782 AC_ARG_ENABLE([optimize-memory],
1783 AS_HELP_STRING([--enable-optimize-memory],
1784 [optimize memory usage over performance]))
1785 if test "${enable_optimize_memory}" = "yes"; then
1786 AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1790 dnl Allow running as root (useful for people running on embedded platforms)
1792 AC_ARG_ENABLE([run-as-root],
1793 AS_HELP_STRING([--enable-run-as-root],
1794 [allow running VLC as root (default disabled)]))
1795 AS_IF([test "${enable_run_as_root}" = "yes"],[
1796 AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1797 [Define to 1 to allow running VLC as root (uid 0).])
1803 AC_ARG_ENABLE([sout],
1804 AS_HELP_STRING([--disable-sout],
1805 [disable streaming output (default enabled)]))
1806 AS_IF([test "${enable_sout}" != "no"], [
1807 AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1809 AM_CONDITIONAL([ENABLE_SOUT], [test "${enable_sout}" != "no"])
1812 AC_ARG_ENABLE([lua],
1813 AS_HELP_STRING([--disable-lua],
1814 [disable LUA scripting support (default enabled)]))
1815 if test "${enable_lua}" != "no"
1817 PKG_CHECK_MODULES(LUA, lua5.2,
1820 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua 5.1 instead])
1822 PKG_CHECK_MODULES(LUA, lua5.1,
1825 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua >= 5.1 instead])
1826 PKG_CHECK_MODULES(LUA, lua >= 5.1,
1829 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying manual detection instead])
1831 AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1834 AC_CHECK_LIB( lua5.2 , luaL_newstate,
1835 [LUA_LIBS="-llua5.2"],
1836 AC_CHECK_LIB( lua5.1 , luaL_newstate,
1837 [LUA_LIBS="-llua5.1"],
1838 AC_CHECK_LIB( lua51 , luaL_newstate,
1839 [LUA_LIBS="-llua51"],
1840 AC_CHECK_LIB( lua , luaL_newstate,
1848 if test "x${have_lua}" != "xyes" ; then
1849 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.])
1851 AC_ARG_VAR([LUAC], [LUA byte compiler])
1852 AS_IF([test -z "$LUAC"], [
1853 AC_CHECK_TOOL(LUAC, [luac], [false])
1855 AS_IF([test "${LUAC}" = "false"], [
1856 AC_MSG_ERROR([Could not find the LUA byte compiler.])
1858 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], [
1859 AC_MSG_ERROR([You need 32-bits luac when using lua from contrib.])
1862 AM_CONDITIONAL([BUILD_LUA], [test "${have_lua}" = "yes"])
1866 dnl VideoLAN manager
1868 AC_ARG_ENABLE([vlm],
1869 AS_HELP_STRING([--disable-vlm],
1870 [disable the stream manager (default enabled)]),,
1871 [enable_vlm="${enable_sout}"])
1872 AS_IF([test "${enable_vlm}" != "no"], [
1873 AS_IF([test "${enable_sout}" = "no"], [
1874 AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1876 AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1878 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1882 dnl Addons manager storage and repositories modules
1884 AC_ARG_ENABLE([addonmanagermodules],
1885 AS_HELP_STRING([--disable-addonmanagermodules],
1886 [disable the addons manager modules (default enabled)]))
1887 if test "${enable_addonmanagermodules}" != "no"
1889 AC_DEFINE(ENABLE_ADDONMANAGERMODULES, 1, [Define if you want the addons manager modules])
1891 AM_CONDITIONAL([ENABLE_ADDONMANAGERMODULES], [test "${enable_addonmanagermodules}" != "no"])
1898 EXTEND_HELP_STRING([Input plugins:])
1901 dnl libarchive access module
1903 PKG_ENABLE_MODULES_VLC([ARCHIVE], [archive], [libarchive >= 3.1.0], (libarchive support), [auto])
1908 AC_ARG_ENABLE([live555],
1909 AS_HELP_STRING([--enable-live555],
1910 [enable RTSP input through live555 (default enabled)]))
1912 AS_IF([test "${enable_live555}" != "no" -a -n "${CXX}"], [
1913 PKG_CHECK_MODULES(LIVE555, live555, [
1914 VLC_ADD_PLUGIN([live555])
1915 VLC_ADD_CXXFLAGS([live555], [$LIVE555_CFLAGS])
1916 VLC_ADD_LIBS([live555],[$LIVE555_LIBS])
1918 AC_MSG_WARN([${LIVE555_PKG_ERRORS}.])
1923 dnl detect include paths
1924 AS_IF([test -f "${CONTRIB_DIR}/include/UsageEnvironment/UsageEnvironment.hh"], [
1925 CPPFLAGS_live555="-I${CONTRIB_DIR}/include/liveMedia -I${CONTRIB_DIR}/include/groupsock -I${CONTRIB_DIR}/include/BasicUsageEnvironment -I${CONTRIB_DIR}/include/UsageEnvironment"
1927 AS_IF([test "${SYS}" != "os2"], [
1928 LIVE555_PREFIX=${LIVE555_PREFIX-"/usr"}
1929 CPPFLAGS_live555="-I${LIVE555_PREFIX}/include/liveMedia -I${LIVE555_PREFIX}/include/groupsock -I${LIVE555_PREFIX}/include/BasicUsageEnvironment -I${LIVE555_PREFIX}/include/UsageEnvironment"
1931 LIVE555_PREFIX=${LIVE555_PREFIX-"/usr/lib/live"}
1932 CPPFLAGS_live555="-I${LIVE555_PREFIX}/liveMedia/include -I${LIVE555_PREFIX}/groupsock/include -I${LIVE555_PREFIX}/BasicUsageEnvironment/include -I${LIVE555_PREFIX}/UsageEnvironment/include"
1933 LDFLAGS_live555="-L${LIVE555_PREFIX}/liveMedia -L${LIVE555_PREFIX}/groupsock -L${LIVE555_PREFIX}/BasicUsageEnvironment -L${LIVE555_PREFIX}/UsageEnvironment"
1938 AS_IF([test "${SYS}" = "solaris"], [
1939 CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1941 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1942 LDFLAGS="${LDFLAGS} ${LDFLAGS_live555}"
1945 AC_CACHE_CHECK([for live555 version 1324598400 or later], [ac_cv_live555], [
1946 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
1947 [#include <liveMedia_version.hh>
1948 #if !defined (LIVEMEDIA_LIBRARY_VERSION_INT) || (LIVEMEDIA_LIBRARY_VERSION_INT < 1324598400)
1958 AS_IF([test "$ac_cv_live555" = "no"], [
1959 AC_MSG_WARN([live555 is missing or its installed version is too old:
1960 Version 2011.12.23 or later is required to proceed.
1961 You can get an updated one from http://www.live555.com/liveMedia .])
1962 AS_IF([test -n "${enable_live555}"], [
1963 AC_MSG_ERROR([Update live555 or pass --disable-live555 to disable RTSP input support.])
1966 other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1967 other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
1968 AS_IF([test "${SYS}" = "mingw32"], [
1969 # add ws2_32 for closesocket, select, recv
1970 other_libs="$other_libs -lws2_32"
1973 dnl We need to check for pic because live555 don't provide shared libs
1974 dnl and we want to build a plugins so we need -fPIC on some arch.
1975 VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1976 VLC_ADD_LDFLAGS([live555], [${LDFLAGS_live555}])
1977 AC_CHECK_LIB([liveMedia_pic], [main], [
1978 VLC_ADD_PLUGIN([live555])
1979 VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
1981 AC_CHECK_LIB([liveMedia], [main], [
1982 VLC_ADD_PLUGIN([live555])
1983 VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1984 ],[],[${other_libs}])
1985 ],[${other_libs_pic}])
1993 dnl IIDC and DV FireWire input modules
1995 PKG_ENABLE_MODULES_VLC([DC1394], [], [libdc1394-2 >= 2.1.0], [IIDC FireWire input module], [auto])
1996 PKG_ENABLE_MODULES_VLC([DV1394], [], [libraw1394 >= 2.0.1 libavc1394 >= 0.5.3], [DV FireWire input module], [auto])
1999 dnl - linsys modules: access module check for libzvbi
2001 AC_ARG_ENABLE([linsys],
2002 AS_HELP_STRING([--enable-linsys],
2003 [Linux Linear Systems Ltd. SDI and HD-SDI input cards (default enabled)]))
2004 AS_IF([test "$SYS" = "linux" -a "${enable_linsys}" != "no"], [
2005 VLC_ADD_PLUGIN([linsys_hdsdi])
2006 PKG_CHECK_MODULES(LINSYS_SDI, [zvbi-0.2 >= 0.2.28], [
2007 VLC_ADD_PLUGIN([linsys_sdi])
2009 AC_MSG_WARN([${LINSYS_SDI_PKG_ERRORS}.])
2014 dnl dvdread module: check for libdvdread
2016 PKG_ENABLE_MODULES_VLC([DVDREAD], [], [dvdread > 6.0.0], [dvdread input module], [auto])
2019 dnl libdvdnav plugin
2021 PKG_ENABLE_MODULES_VLC([DVDNAV], [], [dvdnav >= 6.0.0], [DVD with navigation input module (dvdnav)], [auto])
2024 dnl Blu-ray Disc Support with libbluray
2026 PKG_ENABLE_MODULES_VLC([BLURAY], [libbluray], [libbluray >= 0.6.2], (libbluray for Blu-ray disc support ) )
2029 dnl OpenCV wrapper and example filters
2031 PKG_ENABLE_MODULES_VLC([OPENCV], [opencv_example opencv_wrapper], [opencv > 2.0], (OpenCV (computer vision) filter), [auto])
2035 dnl libsmbclient plugin
2037 PKG_ENABLE_MODULES_VLC([SMBCLIENT], [smbc], [smbclient], (SMB/CIFS support), [auto])
2040 dnl liBDSM access module
2042 AM_CONDITIONAL([HAVE_DSM], [test "$AS_TR_SH(with_dsm)" = "yes"])
2043 PKG_WITH_MODULES([DSM], [libdsm >= 0.2.0], [
2044 VLC_ADD_PLUGIN([dsm])
2045 VLC_ADD_CFLAGS([dsm], [$DSM_CFLAGS])
2046 VLC_ADD_LIBS([dsm], [$DSM_LIBS])
2048 ],,[libdsm SMB/CIFS access/sd module], [auto])
2049 AM_CONDITIONAL([HAVE_DSM], [test "${have_dsm}" = "yes"])
2052 dnl sftp access support
2054 PKG_ENABLE_MODULES_VLC([SFTP], [sftp], [libssh2], (support SFTP file transfer via libssh2), [auto])
2057 dnl nfs access support
2059 PKG_ENABLE_MODULES_VLC([NFS], [nfs], [libnfs >= 1.10.0], (support nfs protocol via libnfs), [auto])
2062 dnl smb2 access support
2064 PKG_ENABLE_MODULES_VLC([SMB2], [smb2], [libsmb2 >= 3.0.0], (support smb2 protocol via libsmb2), [auto])
2069 AC_ARG_ENABLE([v4l2], AS_HELP_STRING([--disable-v4l2],
2070 [disable Video4Linux version 2 (default auto)]))
2072 AS_IF([test "$enable_v4l2" != "no"], [
2073 AC_CHECK_HEADERS([linux/videodev2.h], [
2077 AM_CONDITIONAL([HAVE_V4L2], [test "${have_v4l2}" != "no"])
2080 dnl NVDEC decoder/encoder
2082 AC_ARG_ENABLE([nvdec], AS_HELP_STRING([--disable-nvdec],
2083 [disable NVDEC decoder (default auto)]))
2085 AS_IF([test "$enable_nvdec" != "no"], [
2086 AC_CHECK_HEADERS([ffnvcodec/dynlink_loader.h], [
2090 AM_CONDITIONAL([HAVE_NVDEC], [test "${have_nvdec}" != "no"])
2093 dnl special access module for Blackmagic SDI cards
2095 AC_ARG_ENABLE([decklink],
2096 AS_HELP_STRING([--disable-decklink],
2097 [disable Blackmagic DeckLink SDI input (default auto)]))
2098 AC_ARG_WITH([decklink_sdk],
2099 AS_HELP_STRING([--with-decklink-sdk=DIR],
2100 [location of Blackmagic DeckLink SDI SDK]))
2102 if test "${enable_decklink}" != "no"
2104 if test "${with_decklink_sdk}" != "no" -a -n "${with_decklink_sdk}"
2106 VLC_ADD_CPPFLAGS([decklink decklinkoutput stream_out_sdi],[-I${with_decklink_sdk}/include])
2109 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_decklink}"
2111 AC_CHECK_HEADERS([DeckLinkAPIDispatch.cpp], [
2113 AS_IF([test "${SYS}" = "darwin"], [
2114 VLC_ADD_LIBS([decklink decklinkoutput],[-Wl,-framework,CoreFoundation])
2117 AS_IF([test "${enable_decklink}" = "yes"], [
2118 AC_MSG_ERROR([Blackmagic DeckLink SDI include files not found!])
2120 AC_MSG_WARN([Blackmagic DeckLink SDI include files not found, decklink disabled])
2126 AM_CONDITIONAL([HAVE_DECKLINK], [ test "${have_decklink}" != "no" ])
2130 dnl Built-in CD-DA and VCD module
2132 AC_ARG_ENABLE([vcd],
2133 AS_HELP_STRING([--disable-vcd],
2134 [disable built-in VCD and CD-DA support (default enabled)]))
2136 AC_ARG_ENABLE([libcddb],
2137 AS_HELP_STRING([--disable-libcddb],
2138 [disable CDDB for Audio CD (default enabled)]))
2140 if test "${enable_vcd}" != "no" -a "${enable_winstore_app}" != "yes"
2142 AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2143 AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2145 VLC_ADD_PLUGIN([vcd cdda])
2150 AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2151 AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2153 VLC_ADD_PLUGIN([vcd cdda])
2154 AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2159 AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2160 AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2162 VLC_ADD_PLUGIN([vcd cdda])
2163 AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2168 if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32" -o "${SYS}" = "os2" -o "${SYS}" = "darwin"
2170 VLC_ADD_PLUGIN([vcd cdda])
2173 if test "$enable_libcddb" != "no"; then
2174 PKG_CHECK_MODULES(LIBCDDB, [libcddb >= 0.9.5], [
2176 AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2177 VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2178 VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2180 [AC_MSG_WARN([${LIBCDDB_PKG_ERRORS}: CDDB access disabled.])
2188 AC_CACHE_CHECK([for Linux DVB version 5.1], [ac_cv_linux_dvb_5_1], [
2189 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
2190 [#include <linux/dvb/version.h>
2191 #if (DVB_API_VERSION < 5)
2192 # error Linux DVB API v3.2 and older are not supported.
2194 #if (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR < 1)
2195 # error Linux DVB API v5.0 is unsupported. Please update.
2198 ac_cv_linux_dvb_5_1=yes
2200 ac_cv_linux_dvb_5_1=no
2202 AM_CONDITIONAL([HAVE_LINUX_DVB], [test "$ac_cv_linux_dvb_5_1" = "yes"])
2205 dnl Screen capture module
2207 AC_ARG_ENABLE([screen],
2208 AS_HELP_STRING([--enable-screen],
2209 [disable screen capture (default enabled)]))
2210 if test "${enable_screen}" != "no"; then
2211 if test "${SYS}" = "darwin"; then
2212 AC_CHECK_HEADERS([ApplicationServices/ApplicationServices.h], [
2213 VLC_ADD_PLUGIN([screen])
2217 AM_CONDITIONAL([HAVE_MAC_SCREEN], [test "${SYS}" = "darwin" -a "x${enable_screen}" != "xno"])
2220 dnl VNC/RFB access module
2222 PKG_ENABLE_MODULES_VLC([VNC], [vnc], [libvncclient >= 0.9.9], (VNC/rfb client support), [auto])
2224 dnl RDP/Remote Desktop access module
2226 PKG_ENABLE_MODULES_VLC([FREERDP], [rdp], [freerdp >= 1.0.1], (RDP/Remote Desktop client support) )
2230 AC_SUBST([have_avfoundation], ["no"])
2231 AC_ARG_ENABLE([macosx-avfoundation],
2232 AS_HELP_STRING([--enable-macosx-avfoundation], [Mac OS X avcapture (video) module (default enabled on Mac OS X)]))
2233 if test "x${enable_macosx_avfoundation}" != "xno" &&
2234 (test "${SYS}" = "darwin" || test "${enable_macosx_avfoundation}" = "yes")
2236 SAVED_LIBS="${LIBS}"
2237 LIBS="-framework AVFoundation"
2238 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [])],[have_avfoundation=yes],[have_avfoundation=no])
2239 LIBS="${SAVED_LIBS}"
2240 if test "${have_avfoundation}" != "no"
2242 VLC_ADD_PLUGIN([avcapture])
2245 AM_CONDITIONAL([HAVE_AVFOUNDATION], [test "${have_avfoundation}" != "no"])
2248 dnl DCP plugin (using asdcplib)
2250 PKG_WITH_MODULES([ASDCP], [asdcplib], [have_asdcp="yes"])
2251 AM_CONDITIONAL([HAVE_ASDCP], [test "${have_asdcp}" = "yes"])
2257 EXTEND_HELP_STRING([Mux/Demux plugins:])
2260 dnl libdvbpsi check for ts mux/demux
2263 PKG_WITH_MODULES([DVBPSI], [libdvbpsi >= 1.2.0], [have_dvbpsi="yes"])
2264 AM_CONDITIONAL([HAVE_DVBPSI], [test "${have_dvbpsi}" = "yes"])
2268 dnl GME demux plugin
2270 AC_ARG_ENABLE([gme],
2271 AS_HELP_STRING([--enable-gme],
2272 [use Game Music Emu (default auto)]))
2273 AS_IF([test "${enable_gme}" != "no"], [
2274 AC_CHECK_HEADER([gme/gme.h], [
2275 AC_CHECK_LIB([gme], [gme_identify_header], [
2276 VLC_ADD_PLUGIN([gme])
2278 AC_CHECK_LIB([gme], [gme_identify_extension], [
2279 VLC_ADD_LIBS([gme], [-lstdc++ $LIBM])
2280 VLC_ADD_PLUGIN([gme])
2281 ],, [-lstdc++ $LIBM])
2283 VLC_ADD_LIBS([gme], [-lgme])
2285 AS_IF([test "x${enable_gme}" != "x"], [
2286 AC_MSG_ERROR([GME cannot be found. Please install the development files.])
2295 AC_ARG_ENABLE([sid],
2296 AS_HELP_STRING([--enable-sid],[C64 sid demux support (default auto)]))
2297 AS_IF([test "${enable_sid}" != "no"], [
2298 PKG_CHECK_MODULES(SID, [libsidplay2], [
2300 oldCPPFLAGS="$CPPFLAGS"
2301 CPPFLAGS="$CPPFLAGS $SID_CFLAGS"
2302 AC_CHECK_HEADER([sidplay/builders/resid.h], [
2303 VLC_ADD_PLUGIN([sid])
2304 VLC_ADD_CFLAGS([sid], [$SID_CFLAGS])
2305 VLC_ADD_LIBS([sid], [$SID_LIBS] [-lresid-builder])
2307 AS_IF([test -n "${enable_sid}"],
2308 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2309 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2312 CPPFLAGS="$oldCPPFLAGS"
2315 AS_IF([test "x${enable_sid}" = "xyes"],
2316 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2317 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2324 dnl ogg demux plugin
2326 PKG_ENABLE_MODULES_VLC([OGG], [mux_ogg], [ogg >= 1.0], [Ogg demux support], [auto])
2327 PKG_CHECK_MODULES(LIBVORBIS, [vorbis >= 1.1], [
2328 AC_DEFINE(HAVE_LIBVORBIS, 1, [Define to 1 if you have the libvorbis])
2330 PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto], [${LIBVORBIS_CFLAGS}], [${LIBVORBIS_LIBS}])
2331 if test "${enable_sout}" != "no"; then
2332 dnl Check for libshout
2333 PKG_ENABLE_MODULES_VLC([SHOUT], [access_output_shout], [shout >= 2.1], [libshout output plugin], [auto])
2337 dnl matroska demux plugin
2339 PKG_WITH_MODULES([MATROSKA], [libebml >= 1.3.6 libmatroska], [
2340 VLC_ADD_PLUGIN([mkv])
2341 VLC_ADD_CFLAGS([mkv], [$MATROSKA_CFLAGS])
2342 VLC_ADD_LIBS([mkv], [$MATROSKA_LIBS])
2344 ],,[MKV format support], [auto])
2345 AM_CONDITIONAL([HAVE_MATROSKA], [test "${have_matroska}" = "yes"])
2348 dnl modplug demux plugin
2350 AC_ARG_ENABLE([mod],
2351 AS_HELP_STRING([--disable-mod],
2352 [do not use libmodplug (default auto)]))
2353 if test "${enable_mod}" != "no" ; then
2354 PKG_CHECK_MODULES(LIBMODPLUG, [libmodplug >= 0.8.9.0], [
2355 VLC_ADD_PLUGIN([mod])
2356 VLC_ADD_CXXFLAGS([mod],[$LIBMODPLUG_CFLAGS])
2357 VLC_ADD_CFLAGS([mod],[$LIBMODPLUG_CFLAGS]) #modules/demux/mod.c needs CFLAGS_mod, not CXXFLAGS_mod
2358 VLC_ADD_LIBS([mod],[$LIBMODPLUG_LIBS])
2360 AS_IF([test -n "${enable_mod}"],
2361 [AC_MSG_ERROR([${LIBMODPLUG_PKG_ERRORS}.])],
2362 [AC_MSG_WARN([${LIBMODPLUG_PKG_ERRORS}.])])
2367 dnl mpc demux plugin
2369 AC_ARG_ENABLE([mpc],
2370 AS_HELP_STRING([--disable-mpc], [do not use libmpcdec (default auto)]))
2371 if test "${enable_mpc}" != "no"
2373 AC_CHECK_HEADERS([mpcdec/mpcdec.h], [
2374 VLC_ADD_PLUGIN([mpc])
2375 VLC_ADD_LIBS([mpc],[-lmpcdec])])
2382 EXTEND_HELP_STRING([Codec plugins:])
2385 dnl shine encoder plugin
2387 PKG_ENABLE_MODULES_VLC([SHINE], [], [shine >= 3.0.0], [MPEG Audio Layer 3 encoder], [auto], [], [], [])
2391 dnl openmax il codec plugin
2393 AC_ARG_ENABLE([omxil],
2394 AS_HELP_STRING([--enable-omxil], [openmax il codec module (default disabled)]))
2395 if test "${enable_omxil}" = "yes"
2397 VLC_ADD_PLUGIN([omxil])
2401 dnl raspberry pi openmax il configuration
2403 AC_ARG_ENABLE([rpi-omxil],
2404 AS_HELP_STRING([--enable-rpi-omxil], [openmax il configured for raspberry pi (default disabled)]))
2405 if test "${enable_rpi_omxil}" = "yes"
2407 VLC_ADD_PLUGIN([omxil])
2408 VLC_ADD_CFLAGS([omxil],[-DRPI_OMX])
2412 dnl CrystalHD codec plugin
2414 AC_ARG_ENABLE([crystalhd],
2415 AS_HELP_STRING([--enable-crystalhd], [crystalhd codec plugin (default auto)]))
2416 if test "${enable_crystalhd}" != "no"; then
2417 AC_CHECK_HEADER(libcrystalhd/libcrystalhd_if.h, [
2418 VLC_ADD_PLUGIN([crystalhd])
2419 VLC_ADD_LIBS([crystalhd], [-lcrystalhd])
2421 if test "${SYS}" = "mingw32" ; then
2422 AC_CHECK_HEADERS([libcrystalhd/bc_dts_defs.h], [
2423 VLC_ADD_PLUGIN([crystalhd])
2424 AC_CHECK_HEADERS([libcrystalhd/bc_drv_if.h], [
2425 VLC_ADD_LIBS([crystalhd], [-lbcmDIL])
2428 AS_IF([test x"${enable_crystalhd}" = "xyes"],
2429 [AC_MSG_ERROR("Could not find CrystalHD development headers")],
2430 [AC_MSG_WARN("Could not find CrystalHD development headers")])
2431 ],[#define __LINUX_USER__
2432 #include <libcrystalhd/bc_dts_types.h>
2436 #include <libcrystalhd/bc_dts_types.h>
2447 AC_ARG_WITH(mad, AS_HELP_STRING([--with-mad=PATH], [path to libmad]), [
2452 AS_IF([test "${with_mad}" != "no"], [
2453 MAD_CFLAGS="-I${with_mad}/include"
2454 MAD_LIBS="-L${with_mad}/lib"
2457 AC_ARG_ENABLE([mad],
2458 AS_HELP_STRING([--enable-mad], [libmad module (default enabled)]))
2459 AS_IF([test "${enable_mad}" != "no"], [
2461 CPPFLAGS="${CPPFLAGS} ${MAD_CFLAGS}"
2462 LDFLAGS="${LDFLAGS} ${MAD_LIBS}"
2463 AC_CHECK_HEADERS([mad.h], [
2464 AC_CHECK_LIB([mad], [mad_bit_init], [
2466 MAD_LIBS="${MAD_LIBS} -lmad"
2470 AS_IF([test -n "$enable_mad" -a "${have_mad}" = "no"], [
2471 AC_MSG_ERROR([Could not find libmad. Install it or pass --disable-mad to disable it.])
2474 AC_SUBST([MAD_CFLAGS])
2475 AC_SUBST([MAD_LIBS])
2476 AM_CONDITIONAL([HAVE_MAD], [test "${have_mad}" = "yes"])
2481 PKG_ENABLE_MODULES_VLC([MPG123], [mpg123], [libmpg123], [libmpg123 decoder support], [auto])
2486 AC_ARG_ENABLE([gst-decode],
2487 AS_HELP_STRING([--enable-gst-decode], [GStreamer based decoding support (currently supports only video decoding) (default auto)]))
2489 have_gst_decode="no"
2490 AS_IF([test "${enable_gst_decode}" != "no"], [
2491 PKG_CHECK_MODULES([GST_APP], [gstreamer-app-1.0], [
2492 PKG_CHECK_MODULES([GST_VIDEO], [gstreamer-video-1.0], [
2493 have_gst_decode="yes"
2495 AC_MSG_WARN([${GST_VIDEO_PKG_ERRORS}. GStreamer decoder module will not be built.])
2498 AC_MSG_WARN([${GST_APP_PKG_ERRORS}. GStreamer modules will not be built.])
2501 AM_CONDITIONAL([HAVE_GST_DECODE], [test "${have_gst_decode}" = "yes"])
2504 dnl avcodec decoder/encoder plugin
2506 AC_ARG_ENABLE([merge-ffmpeg],
2507 AS_HELP_STRING([--enable-merge-ffmpeg], [merge FFmpeg-based plugins (default disabled)]),, [
2508 enable_merge_ffmpeg="no"
2510 AM_CONDITIONAL([MERGE_FFMPEG], [test "$enable_merge_ffmpeg" != "no"])
2512 AC_MSG_CHECKING([for libavutil variant])
2513 PKG_CHECK_EXISTS([libavutil], [
2514 libavutil_version="$(${PKG_CONFIG} --modversion libavutil)"
2515 libavutil_micro="${libavutil_version##*.}"
2516 AS_IF([test ${libavutil_micro} -le 99], [
2524 AC_MSG_RESULT([${avfork}])
2526 AC_ARG_ENABLE([avcodec],
2527 AS_HELP_STRING([--enable-avcodec], [libavcodec codec (default enabled)]))
2528 AS_IF([test "${enable_avcodec}" != "no"], [
2529 dnl We need >=57.16.0 from libav or >=57.37.100 from ffmpeg
2531 libav) av_codec_ver="57.16.0" ;;
2532 dnl 05f66706d182eb0c36af54d72614bf4c33e957a9 includes libavutil 55.9.0
2533 ffmpeg) av_codec_ver="57.37.100" ;;
2534 dnl 7fc329e2dd6226dfecaa4a1d7adf353bf2773726 include libavutil 55.22.101
2535 *) AC_MSG_ERROR([Missing libav or FFmpeg. Pass --disable-avcodec to ignore this error.])
2537 PKG_CHECK_MODULES(AVCODEC,[libavcodec >= ${av_codec_ver} libavutil >= 55.9.0], [
2539 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2540 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2541 AC_CHECK_HEADERS([libavcodec/avcodec.h])
2542 AC_CHECK_HEADERS([libavutil/avutil.h])
2546 AC_MSG_ERROR([${AVCODEC_PKG_ERRORS}. Pass --disable-avcodec to ignore this error.])
2551 AM_CONDITIONAL([HAVE_AVCODEC], [test "${have_avcodec}" != "no"])
2554 dnl libva needs avcodec
2556 AC_ARG_ENABLE([libva],
2557 AS_HELP_STRING([--enable-libva], [VAAPI GPU decoding support (libVA) (default auto)]))
2559 AS_IF([test "${enable_libva}" = "yes" -a "${have_avcodec}" != "yes" ], [
2560 AC_MSG_ERROR([--enable-libva and --disable-avcodec options are mutually exclusive. Use --enable-avcodec.])
2567 AS_IF([test "${enable_libva}" != "no"], [
2568 PKG_CHECK_MODULES([LIBVA], [libva >= 0.38], [
2571 AS_IF([test -n "${enable_libva}"], [
2572 AC_MSG_ERROR([${LIBVA_PKG_ERRORS}.])
2574 AC_MSG_WARN([${LIBVA_PKG_ERRORS}.])
2577 PKG_CHECK_MODULES([LIBVA_DRM], [libva-drm], [
2578 have_vaapi_drm="yes"
2580 AC_MSG_WARN([${LIBVA_DRM_PKG_ERRORS}.])
2582 PKG_CHECK_MODULES(LIBVA_X11, [libva-x11], [
2583 have_vaapi_x11="yes"
2585 AC_MSG_WARN([${LIBVA_X11_PKG_ERRORS}.])
2587 PKG_CHECK_MODULES(LIBVA_WL, [libva-wayland], [
2590 AC_MSG_WARN([${LIBVA_WL_PKG_ERRORS}.])
2593 AM_CONDITIONAL([HAVE_VAAPI], [test "${have_vaapi}" = "yes"])
2594 AM_CONDITIONAL([HAVE_VAAPI_DRM], [test "${have_vaapi_drm}" = "yes"])
2595 AM_CONDITIONAL([HAVE_VAAPI_X11], [test "${have_vaapi_x11}" = "yes"])
2596 AM_CONDITIONAL([HAVE_VAAPI_WL], [test "${have_vaapi_wl}" = "yes"])
2598 have_avcodec_vaapi="no"
2599 AS_IF([test "${have_vaapi}" = "yes" -a "${have_avcodec}" = "yes"], [
2601 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2602 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2603 AC_CHECK_HEADERS([libavcodec/vaapi.h], [
2604 AC_MSG_NOTICE([VA API acceleration activated])
2605 have_avcodec_vaapi="yes"
2607 AS_IF([test -n "${enable_libva}"], [
2608 AC_MSG_ERROR([libva is present but libavcodec/vaapi.h is missing])
2610 AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing ])
2615 AM_CONDITIONAL([HAVE_AVCODEC_VAAPI], [test "${have_avcodec_vaapi}" = "yes"])
2618 dnl dxva2 needs avcodec
2620 AC_ARG_ENABLE([dxva2],
2621 AS_HELP_STRING([--enable-dxva2], [DxVA2 GPU decoding support (default auto)]))
2623 have_avcodec_dxva2="no"
2624 AS_IF([test "${enable_dxva2}" != "no"], [
2625 if test "${SYS}" = "mingw32"; then
2626 AS_IF([test "x${have_avcodec}" = "xyes"], [
2627 AC_CHECK_HEADERS([dxva2api.h],
2629 AC_CHECK_HEADERS([libavcodec/dxva2.h], [
2630 AC_MSG_NOTICE([DxVA2 acceleration activated])
2631 have_avcodec_dxva2="yes"
2633 AS_IF([test "${enable_dxva2}" = "yes"],
2634 [AC_MSG_ERROR([dxva2 is present but libavcodec/dxva2.h is missing])],
2635 [AC_MSG_WARN([dxva2 is present but libavcodec/dxva2.h is missing ])])
2636 ], [#undef _WIN32_WINNT
2637 /* DXVA2 is only available in Vista and above */
2638 #define _WIN32_WINNT 0x600])
2640 AS_IF([test "${enable_dxva2}" = "yes"],
2641 [AC_MSG_ERROR([Could not find required dxva2api.h])],
2642 [AC_MSG_WARN([dxva2api.h not found])])
2643 ],[#include <d3d9.h>])
2645 AS_IF([test "x${enable_dxva2}" != "x"], [
2646 AC_MSG_ERROR([--enable-dxva2 and --disable-avcodec options are mutually exclusive.])
2651 AM_CONDITIONAL([HAVE_AVCODEC_DXVA2], [test "${have_avcodec_dxva2}" = "yes"])
2654 dnl d3d11va needs avcodec
2656 AC_ARG_ENABLE([d3d11va],
2657 AS_HELP_STRING([--enable-d3d11va], [D3D11 GPU decoding support (default auto)]))
2659 have_avcodec_d3d11va="no"
2660 AS_IF([test "${enable_d3d11va}" != "no"], [
2661 if test "${SYS}" = "mingw32"; then
2662 AS_IF([test "x${have_avcodec}" = "xyes"], [
2663 AC_CHECK_TYPES([ID3D11VideoDecoder],
2665 AC_CHECK_HEADERS([dxva2api.h],
2667 AC_CHECK_HEADERS([libavcodec/d3d11va.h], [
2668 AC_MSG_NOTICE([D3D11 acceleration activated])
2669 AC_DEFINE([HAVE_AVCODEC_D3D11VA], [1], [Define if the d3d11va module is built])
2670 have_avcodec_d3d11va="yes"
2672 AS_IF([test "${enable_d3d11va}" = "yes"],
2673 [AC_MSG_ERROR([d3d11va is present but libavcodec/d3d11va.h is missing])],
2674 [AC_MSG_WARN([d3d11va is present but libavcodec/d3d11va.h is missing ])])
2675 ], [#undef _WIN32_WINNT
2676 /* D3D11 is only available in Vista and above */
2677 #define _WIN32_WINNT 0x600])
2679 AS_IF([test "${enable_d3d11va}" = "yes"],
2680 [AC_MSG_ERROR([Could not find required dxva2api.h])],
2681 [AC_MSG_WARN([dxva2api.h not found])])
2682 ],[#include <d3d9.h>])
2684 AS_IF([test "${enable_d3d11va}" = "yes"],
2685 [AC_MSG_ERROR([Could not find required ID3D11VideoDecoder in d3d11.h])],
2686 [AC_MSG_WARN([ID3D11VideoDecoder not found])])
2687 ], [#include <d3d11.h>])
2689 AS_IF([test "x${enable_d3d11va}" != "x"], [
2690 AC_MSG_ERROR([--enable-d3d11va and --disable-avcodec options are mutually exclusive.])
2695 AM_CONDITIONAL([HAVE_AVCODEC_D3D11VA], [test "${have_avcodec_d3d11va}" = "yes"])
2700 AC_CHECK_HEADERS([dxgidebug.h dxgi1_6.h])
2703 dnl avformat demuxer/muxer plugin
2706 AC_ARG_ENABLE([avformat],
2707 AS_HELP_STRING([--enable-avformat], [libavformat containers (default enabled)]),, [
2708 enable_avformat="${have_avcodec}"
2711 AS_IF([test "${enable_avformat}" != "no"], [
2712 PKG_CHECK_MODULES(AVFORMAT,[libavformat >= 53.21.0 libavcodec libavutil], [
2715 CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2716 CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2717 AC_CHECK_HEADERS([libavformat/avformat.h libavformat/avio.h])
2718 AC_CHECK_HEADERS([libavcodec/avcodec.h])
2719 AC_CHECK_HEADERS([libavutil/avutil.h])
2720 AS_IF([test "$enable_merge_ffmpeg" = "no"], [
2725 AC_MSG_ERROR([${AVFORMAT_PKG_ERRORS}. Pass --disable-avformat to ignore this error.])
2728 AM_CONDITIONAL([HAVE_AVFORMAT], [test "${enable_avformat}" != "no"])
2731 dnl swscale image scaling and conversion plugin
2734 AC_ARG_ENABLE([swscale],
2735 AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
2736 (default enabled)]))
2737 if test "${enable_swscale}" != "no"
2739 PKG_CHECK_MODULES(SWSCALE,[libswscale],
2742 CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
2743 CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
2744 AC_CHECK_HEADERS([libswscale/swscale.h])
2745 AC_CHECK_HEADERS([libavutil/avutil.h])
2746 VLC_ADD_PLUGIN([swscale])
2747 VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
2748 VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
2749 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2750 VLC_ADD_LIBS([swscale],[${ac_cv_ld_bsymbolic}])
2754 AC_MSG_ERROR([${SWSCALE_PKG_ERRORS}. Pass --disable-swscale to ignore this error. Proper software scaling and some video chroma conversion will be missing.])
2762 AC_ARG_ENABLE([postproc],
2763 AS_HELP_STRING([--enable-postproc], [libpostproc image post-processing (default auto)]))
2764 if test "${enable_postproc}" != "no"
2766 PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
2769 CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
2770 CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
2771 AC_CHECK_HEADERS([postproc/postprocess.h])
2772 VLC_ADD_PLUGIN([postproc])
2775 AC_MSG_WARN([${POSTPROC_PKG_ERRORS}.])
2780 dnl faad decoder plugin
2782 AC_ARG_ENABLE([faad],
2783 AS_HELP_STRING([--enable-faad], [faad codec (default auto)]))
2785 AS_IF([test "${enable_faad}" != "no"], [
2786 AC_CHECK_HEADERS([neaacdec.h], [
2787 AC_CHECK_LIB([faad], [NeAACDecOpen], [have_faad="yes"],, [$LIBM])
2789 AS_IF([test "${have_faad}" = "yes"], [
2790 VLC_ADD_PLUGIN([faad])
2791 VLC_ADD_LIBS([faad],[-lfaad])
2793 AS_IF([test "${enable_faad}" = "yes"], [
2794 AC_MSG_ERROR([cannot find FAAD library])
2796 AC_MSG_WARN([cannot find FAAD library])
2803 dnl AOM decoder plugin
2805 PKG_ENABLE_MODULES_VLC([AOM], [], [aom], [experimental AV1 codec (default auto)])
2808 dnl Dav1d decoder plugin
2810 PKG_ENABLE_MODULES_VLC([DAV1D], [], [dav1d], [AV1 decoder (default auto)])
2813 dnl libvpx decoder plugin
2815 AC_ARG_ENABLE([vpx],
2816 AS_HELP_STRING([--enable-vpx],[libvpx VP8/VP9 encoder and decoder (default auto)]))
2817 AS_IF([test "${enable_vpx}" != "no"],[
2818 PKG_CHECK_MODULES([VPX], [vpx >= 1.5.0], [
2819 VLC_ADD_PLUGIN([vpx])
2820 VLC_ADD_CPPFLAGS([vpx], [${VPX_CFLAGS}])
2821 VLC_ADD_LIBS([vpx], [${VPX_LIBS}])
2822 AC_CHECK_LIB([vpx],[vpx_codec_vp8_dx], [
2823 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP8_DECODER])
2824 ], [], [${VPX_LIBS}])
2825 AC_CHECK_LIB([vpx],[vpx_codec_vp9_dx], [
2826 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP9_DECODER])
2827 ], [], [${VPX_LIBS}])
2828 AC_CHECK_LIB([vpx],[vpx_codec_vp8_cx], [
2829 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP8_ENCODER])
2830 ], [], [${VPX_LIBS}])
2831 AC_CHECK_LIB([vpx],[vpx_codec_vp9_cx], [
2832 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP9_ENCODER])
2833 ], [], [${VPX_LIBS}])
2835 AS_IF([test "${enable_vpx}" = "yes"],[
2836 AC_MSG_ERROR([libvpx 1.5.0 or higher was not found])
2841 dnl twolame encoder plugin
2843 PKG_ENABLE_MODULES_VLC([TWOLAME], [], [twolame], [MPEG Audio Layer 2 encoder], [auto], [], [], [ -DLIBTWOLAME_STATIC])
2846 dnl fdk-aac encoder plugin
2848 PKG_ENABLE_MODULES_VLC([FDKAAC], [], [fdk-aac], [FDK-AAC encoder], [disabled])
2852 dnl A52/AC3 decoder plugin
2854 AC_ARG_ENABLE([a52],
2855 AS_HELP_STRING([--enable-a52], [A/52 support with liba52 (default enabled)]))
2856 if test "${enable_a52}" != "no"
2859 AS_HELP_STRING([--with-a52=PATH], [a52 headers and libraries]))
2860 if test -z "${with_a52}"
2865 LDFLAGS_test="-L${with_a52}/lib"
2866 CPPFLAGS_test="-I${with_a52}/include"
2869 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_test} ${CPPFLAGS_a52}"
2870 LDFLAGS="${LDFLAGS} ${LDFLAGS_test} ${LIBS_a52}"
2871 AC_CHECK_HEADERS([a52dec/a52.h], [
2872 AC_CHECK_LIB([a52], [a52_free], [
2873 VLC_ADD_PLUGIN([a52])
2874 VLC_ADD_LIBS([a52],[${LDFLAGS_test} -la52 $LIBM])
2875 VLC_ADD_CPPFLAGS([a52],[${CPPFLAGS_test}])
2877 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.])
2880 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.])
2886 dnl DTS Coherent Acoustics decoder plugin
2888 PKG_ENABLE_MODULES_VLC([DCA], [dca], [libdca >= 0.0.5], [DTS Coherent Acoustics support with libdca], [auto])
2893 PKG_ENABLE_MODULES_VLC([FLAC], [], [flac], [libflac decoder/encoder support], [auto])
2898 PKG_ENABLE_MODULES_VLC([LIBMPEG2], [], [libmpeg2 > 0.3.2], [libmpeg2 decoder support], [auto])
2903 PKG_ENABLE_MODULES_VLC([VORBIS], [], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
2908 AC_ARG_ENABLE([tremor],
2909 AS_HELP_STRING([--enable-tremor], [Tremor decoder support (default disabled)]))
2910 if test "${enable_tremor}" = "yes"
2912 AC_CHECK_HEADERS([tremor/ivorbiscodec.h], [
2913 VLC_ADD_PLUGIN([tremor])
2920 PKG_ENABLE_MODULES_VLC([SPEEX], [], [ogg speex >= 1.0.5], [Speex support], [auto])
2922 AS_IF([test "${enable_speex}" != "no"], [
2923 PKG_CHECK_MODULES([SPEEXDSP], [speexdsp], [
2926 AC_MSG_WARN([${SPEEXDSP_PKG_ERRORS}.])
2929 AM_CONDITIONAL([HAVE_SPEEXDSP], [test "$have_speexdsp" = "yes"])
2934 PKG_ENABLE_MODULES_VLC([OPUS], [], [ogg opus >= 1.0.3], [Opus support], [auto])
2937 dnl Ambisonic channel mixer and binauralizer plugin
2939 PKG_ENABLE_MODULES_VLC([SPATIALAUDIO], [], [spatialaudio], [Ambisonic channel mixer and binauralizer], [auto])
2942 dnl theora decoder plugin
2944 PKG_ENABLE_MODULES_VLC([THEORA], [], [ogg theoradec >= 1.0 theoraenc], [experimental theora codec], [auto])
2947 dnl OggSpots decoder plugin
2949 PKG_ENABLE_MODULES_VLC([OGGSPOTS], [], [ogg], [experimental OggSpots codec], [auto])
2952 dnl Daala decoder plugin
2954 PKG_ENABLE_MODULES_VLC([DAALA], [], [daaladec daalaenc], [experimental daala codec], [disabled])
2957 dnl schroedinger decoder plugin (for dirac format video)
2959 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [], [schroedinger-1.0 >= 1.0.10], [dirac decoder and encoder using schroedinger], [auto])
2962 dnl PNG decoder module
2964 AC_ARG_ENABLE([png],
2965 AS_HELP_STRING([--enable-png], [PNG support (default enabled)]))
2966 AS_IF([test "${enable_png}" != "no"], [
2967 AC_CHECK_HEADERS([png.h], [
2969 LDFLAGS="${LDFLAGS} -lz $LIBM"
2970 AC_CHECK_LIB([png], [png_set_alpha_mode], [
2971 VLC_ADD_PLUGIN([png])
2978 dnl JPEG decoder module
2980 AC_ARG_ENABLE([jpeg],
2981 AS_HELP_STRING([--enable-jpeg], [JPEG support (default enabled)]))
2982 AS_IF([test "${enable_jpeg}" != "no"], [
2983 AC_CHECK_HEADERS([jpeglib.h], [
2984 VLC_ADD_PLUGIN([jpeg])
2989 dnl BPG decoder module
2991 AC_ARG_ENABLE([bpg],
2992 AS_HELP_STRING([--enable-bpg], [BPG support (default disabled)]))
2993 AS_IF([test "${enable_bpg}" != "no"], [
2994 AC_CHECK_HEADERS([libbpg.h], [
2995 VLC_ADD_PLUGIN([bpg])
3000 dnl H262 encoder plugin (lib262)
3002 AC_ARG_ENABLE([x262],
3003 AS_HELP_STRING([--enable-x262], [H262 encoding support with static libx262 (default disabled)]))
3004 if test "${enable_x262}" != "no"; then
3005 PKG_CHECK_MODULES(X262, x262, [
3006 VLC_ADD_PLUGIN([x262])
3007 VLC_ADD_LDFLAGS([x262],[${X262_LIBS}])
3008 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
3009 VLC_ADD_LIBS([x262],[${av_cv_ld_bsymbolic}])
3011 VLC_ADD_CFLAGS([x262],[${X262_CFLAGS}])
3012 if echo ${X262_LIBS} |grep -q 'pthreadGC2'; then
3013 VLC_ADD_CFLAGS([x262], [-DPTW32_STATIC_LIB])
3016 if test "${enable_x262}" = "yes"; then
3017 AC_MSG_ERROR([x262 module doesn't work without staticly compiled libx262.a])
3023 PKG_ENABLE_MODULES_VLC([X265],, [x265], [HEVC/H.265 encoder], [auto])
3026 dnl H264 encoder plugin (using libx264)
3028 AC_ARG_ENABLE([x264],
3029 AS_HELP_STRING([--enable-x264], [H264 encoding support with libx264 (default enabled)]))
3030 if test "${enable_x264}" != "no"; then
3031 PKG_CHECK_MODULES(X264,x264 >= 0.148, [
3032 VLC_ADD_PLUGIN([x264])
3033 VLC_ADD_LIBS([x264],[${X264_LIBS}])
3035 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
3036 VLC_ADD_LDFLAGS([x264],[${ac_cv_ld_bsymbolic}])
3039 VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3040 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3041 VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3044 if test "${enable_x264}" = "yes"; then
3045 AC_MSG_ERROR([${X264_PKG_ERRORS}: you may get it from http://www.videolan.org/x264.html])
3051 dnl H264 encoder plugin (libx264 > 153)
3053 AC_ARG_ENABLE([x26410b],
3054 AS_HELP_STRING([--enable-x26410b], [H264 10-bit encoding support with libx264 (default enabled)]))
3055 if test "${enable_x26410b}" != "no"; then
3056 PKG_CHECK_MODULES(X26410b,x264 >= 0.153, [
3057 VLC_ADD_PLUGIN([x26410b])
3058 VLC_ADD_LIBS([x26410b],[${X264_LIBS}])
3060 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
3061 VLC_ADD_LDFLAGS([x26410b],[${ac_cv_ld_bsymbolic}])
3064 VLC_ADD_CFLAGS([x26410b],[${X264_CFLAGS}])
3065 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3066 VLC_ADD_CFLAGS([x26410b], [-DPTW32_STATIC_LIB])
3069 if test "${enable_x26410b}" = "yes"; then
3070 AC_MSG_ERROR([${X264_PKG_ERRORS}: you may get it from http://www.videolan.org/x264.html])
3077 dnl Intel QuickSync (aka MediaSDK) H264/H262 encoder
3079 PKG_ENABLE_MODULES_VLC([MFX], [qsv], [libmfx], [Intel QuickSync MPEG4-Part10/MPEG2 (aka H.264/H.262) encoder], [auto])
3082 dnl libfluidsynth (MIDI synthetizer) plugin
3084 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [], [fluidsynth >= 1.1.2], [MIDI synthetiser with libfluidsynth], [auto])
3085 PKG_ENABLE_MODULES_VLC([FLUIDLITE], [fluidsynth], [fluidlite], [MIDI synthetiser with libfluidsynth], [auto])
3086 AC_CHECK_HEADERS([fluidlite.h], [AC_SUBST([FLUIDSYNTH_LIBS], ${FLUIDLITE_LIBS})])
3089 dnl Teletext Modules
3090 dnl vbi decoder plugin (using libzbvi)
3094 AC_ARG_ENABLE([zvbi],
3095 AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
3096 libzvbi (default enabled)]))
3097 AC_ARG_ENABLE([telx],
3098 AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
3099 zvbi) (default enabled if zvbi is absent)]))
3101 AS_IF( [test "${enable_zvbi}" != "no"],[
3102 PKG_CHECK_MODULES(ZVBI, [zvbi-0.2 >= 0.2.28],
3104 VLC_ADD_PLUGIN([zvbi])
3105 AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
3106 AS_IF( [test "${enable_telx}" = "yes"],[
3107 AC_MSG_WARN([The zvbi and telx modules are incompatible. Using zvbi.])
3110 AC_MSG_WARN([${ZVBI_PKG_ERRORS}. Enabling the telx module instead.])
3113 AS_IF( [test "${enable_telx}" != "no" ],[
3114 VLC_ADD_PLUGIN([telx])
3118 dnl ARIB subtitles rendering module
3120 AC_ARG_ENABLE([aribsub],
3121 AS_HELP_STRING([--enable-aribsub],[ARIB Subtitles support (default enabled)]))
3122 AS_IF( [test "${enable_aribsub}" != "no" ],[
3123 PKG_CHECK_MODULES(ARIBB24, [aribb24 >= 1.0.1], [
3125 VLC_ADD_PLUGIN([aribsub])
3126 VLC_ADD_LIBS([aribsub],[-laribb24])
3127 AC_DEFINE(HAVE_ARIBB24, 1, [Define if libaribb24 is available.])
3129 AC_MSG_WARN(Library [aribb24] needed for [aribsub] was not found)
3133 AM_CONDITIONAL([HAVE_ARIBB24], [test x"${have_aribb24}" = x"yes"])
3138 PKG_ENABLE_MODULES_VLC([ARIBB25], [aribcam], [aribb25 >= 0.2.6], [ARIB STD-B25], [auto])
3141 dnl kate decoder plugin
3143 PKG_ENABLE_MODULES_VLC([KATE], [], [kate >= 0.3.0], [kate codec], [auto])
3146 dnl tiger rendering for kate decoder plugin
3148 AC_ARG_ENABLE([tiger],
3149 AS_HELP_STRING([--enable-tiger], [Tiger rendering library for Kate streams (default auto)]))
3150 AS_IF([test "${enable_tiger}" != "no"], [
3151 PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
3152 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])],[
3153 AS_IF([test -n "${enable_tiger}"], [
3154 AC_MSG_ERROR([${TIGER_PKG_ERRORS}.])
3160 dnl check if we can build the css selector engine
3162 AC_ARG_ENABLE([css],
3163 AS_HELP_STRING([--enable-css], [CSS selector engine (default auto)]))
3164 AS_IF([test "${enable_css}" != "no"], [
3166 AC_DEFINE(HAVE_CSS, 1, [Define if CSS engine is built])
3168 AM_CONDITIONAL([ENABLE_CSS], [test "${with_css}" = "yes"])
3175 EXTEND_HELP_STRING([Video plugins:])
3178 dnl libplacebo support
3180 AC_ARG_ENABLE([libplacebo],
3181 AS_HELP_STRING([--disable-libplacebo],
3182 [disable libplacebo support (default auto)]))
3184 AS_IF([test "$enable_libplacebo" != "no"], [
3185 PKG_CHECK_MODULES([LIBPLACEBO], [libplacebo >= 0.5], [
3186 AC_DEFINE([HAVE_LIBPLACEBO], [1], [Define to 1 if libplacebo is enabled.])
3187 PKG_CHECK_MODULES([LIBPLACEBO], [libplacebo >= 1.7],
3188 [have_libplacebo_vk="yes"], [have_libplacebo_vk="no"])
3190 AS_IF([test -n "${enable_libplacebo}"], [
3191 AC_MSG_ERROR([${LIBPLACEBO_PKG_ERRORS}.])
3193 enable_libplacebo="no"
3196 AM_CONDITIONAL([HAVE_LIBPLACEBO], [test "$enable_libplacebo" != "no"])
3201 PKG_CHECK_MODULES([EGL], [egl], [
3206 AM_CONDITIONAL([HAVE_EGL], [test "${have_egl}" = "yes"])
3209 PKG_CHECK_MODULES([GL], [gl], [
3212 AC_MSG_CHECKING([for OpenGL])
3213 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
3215 # include <GL/glew.h>
3219 [int t0 = GL_TEXTURE0;]])
3223 AS_IF([test "${SYS}" != "mingw32"], [
3226 GL_LIBS="-lopengl32"
3229 AC_MSG_RESULT([${have_gl}])
3231 AM_CONDITIONAL([HAVE_GL], [test "${have_gl}" = "yes"])
3232 AS_IF([test "${have_gl}" = "yes"], [
3233 AC_DEFINE([HAVE_GL], 1, [Defined if having OpenGL])
3236 dnl OpenGL ES 2: depends on EGL 1.1
3237 PKG_ENABLE_MODULES_VLC([GLES2], [], [glesv2], [OpenGL ES v2 support], [disabled])
3242 AC_ARG_ENABLE(vulkan,
3243 [AS_HELP_STRING([--disable-vulkan],
3244 [disable Vulkan support (default auto)])])
3246 AS_IF([test "$enable_vulkan" != "no"], [
3247 AS_IF([test "$have_libplacebo_vk" = "yes"], [
3248 PKG_CHECK_MODULES([VULKAN], [vulkan >= 1.0.26], [
3249 AC_DEFINE([HAVE_VULKAN], [1], [Define to 1 if vulkan is enabled.])
3251 AS_IF([test -n "${enable_vulkan}"], [
3252 AC_MSG_ERROR([${VULKAN_PKG_ERRORS}.])
3257 AS_IF([test -n "${enable_vulkan}"], [
3258 AC_MSG_ERROR([Vulkan support requires libplacebo 1.7 as well. Do not use --disable-libplacebo.])
3263 AM_CONDITIONAL(HAVE_VULKAN, [test "$enable_vulkan" != "no"])
3270 AC_CHECK_HEADERS([X11/Xlib.h])
3273 dnl X C Bindings modules
3275 AC_ARG_ENABLE([xcb],
3276 AS_HELP_STRING([--enable-xcb], [X11 support with XCB (default enabled)]),, [
3277 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "darwin"], [
3285 have_xkbcommon_x11="no"
3286 have_xcb_keysyms="no"
3287 AS_IF([test "${enable_xcb}" != "no"], [
3291 PKG_CHECK_MODULES([XCB], [xcb >= 1.6],, [
3292 xcb_err="$xcb_err ${XCB_PKG_ERRORS}."])
3293 PKG_CHECK_MODULES([XCB_COMPOSITE], [xcb-composite],, [
3294 xcb_err="$xcb_err ${XCB_COMPOSITE_PKG_ERRORS}."])
3295 PKG_CHECK_MODULES([XCB_RANDR], [xcb-randr >= 1.3],, [
3296 xcb_err="$xcb_err ${XCB_RANDR_PKG_ERRORS}."])
3297 PKG_CHECK_MODULES([XCB_RENDER], [xcb-render],, [
3298 xcb_err="$xcb_err ${XCB_RENDER_PKG_ERRORS}."])
3299 PKG_CHECK_MODULES([XCB_SHM], [xcb-shm >= 1.9.2],, [
3300 xcb_err="$xcb_err ${XCB_SHM_PKG_ERRORS}."])
3301 PKG_CHECK_MODULES([XCB_XKB], [xcb-xkb],, [
3302 xcb_err="$xcb_err ${XCB_XKB_PKG_ERRORS}."])
3305 PKG_CHECK_MODULES(XPROTO, [xproto],, [
3306 xcb_err="$xcb_err ${XPROTO_PKG_ERRORS}."])
3308 AS_IF([test -n "$xcb_err"], [
3309 AC_MSG_ERROR([$xcb_err Pass --disable-xcb to skip X11 support.])
3313 PKG_CHECK_MODULES([XKBCOMMON_X11], [xkbcommon-x11], [
3314 have_xkbcommon_x11="yes"
3316 AC_MSG_WARN([${XKBCOMMON_X11_PKG_ERRORS}. Hotkeys are disabled.])
3320 PKG_CHECK_MODULES([XCB_KEYSYMS], [xcb-keysyms >= 0.3.4], [
3321 have_xcb_keysyms="yes"
3323 AC_MSG_WARN([${XCB_KEYSYMS_PKG_ERRORS}. Global hotkeys are disabled.])
3328 AM_CONDITIONAL([HAVE_XCB], [test "${have_xcb}" = "yes"])
3329 AM_CONDITIONAL([HAVE_XKBCOMMON_X11], [test "${have_xkbcommon_x11}" = "yes"])
3330 AM_CONDITIONAL([HAVE_XCB_KEYSYMS], [test "${have_xcb_keysyms}" = "yes"])
3336 AC_ARG_ENABLE([vdpau],
3337 [AS_HELP_STRING([--enable-vdpau], [VDPAU hardware support (default auto)])])
3339 AS_IF([test "${enable_vdpau}" != "no"], [
3340 PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.6], [
3342 AS_IF([test "${no_x}" = "yes"], [
3343 AC_MSG_ERROR([VDPAU requires Xlib (X11).])
3346 AS_IF([test -n "${enable_vdpau}"], [
3347 AC_MSG_ERROR([${VDPAU_PKG_ERRORS}.])
3351 AM_CONDITIONAL([HAVE_VDPAU], [test "${have_vdpau}" = "yes"])
3353 have_avcodec_vdpau="no"
3354 AS_IF([test "${have_vdpau}" = "yes" -a "${have_avcodec}" = "yes"], [
3356 libav) av_vdpau_ver="56.10.0" ;;
3357 ffmpeg) av_vdpau_ver="56.19.100" ;;
3359 PKG_CHECK_EXISTS([libavcodec >= ${av_vdpau_ver}], [
3360 have_avcodec_vdpau="yes"
3361 AC_MSG_NOTICE([VDPAU decoding acceleration activated])
3363 AS_IF([test -n "${enable_vdpau}"], [
3364 AC_MSG_ERROR([libavcodec >= 56.10.0 is required for VDPAU decoding.])
3366 AC_MSG_WARN([libavcodec >= 56.10.0 are required for VDPAU decoding.])
3370 AM_CONDITIONAL([HAVE_AVCODEC_VDPAU], [test "${have_avcodec_vdpau}" = "yes"])
3376 AC_ARG_ENABLE([wayland],
3377 AS_HELP_STRING([--enable-wayland], [Wayland support (default auto)]))
3380 AS_IF([test "${enable_wayland}" != "no"], [
3384 PKG_CHECK_MODULES([WAYLAND_CLIENT], [wayland-client >= 1.5.91],, [
3385 wl_err="$wl_err ${WAYLAND_CLIENT_PKG_ERRORS}."
3387 PKG_CHECK_MODULES([WAYLAND_CURSOR], [wayland-cursor],, [
3388 wl_err="$wl_err ${WAYLAND_CURSOR_PKG_ERRORS}."
3390 PKG_CHECK_MODULES([WAYLAND_EGL], [wayland-egl],, [
3391 wl_err="$wl_err ${WAYLAND_EGL_PKG_ERRORS}."
3393 PKG_CHECK_MODULES([WAYLAND_SCANNER], [wayland-scanner >= 1.15], [
3394 WAYLAND_SCANNER="$(${PKG_CONFIG} wayland-scanner --variable wayland_scanner)"
3396 wl_err="$wl_err ${WAYLAND_SCANNER_PKG_ERRORS}."
3399 dnl wayland-protocols
3400 PKG_CHECK_MODULES([WAYLAND_PROTOCOLS], [wayland-protocols >= 1.15], [
3401 WAYLAND_PROTOCOLS="$(${PKG_CONFIG} wayland-protocols --variable pkgdatadir)"
3403 wl_err="$wl_err ${WAYLAND_PROTOCOLS_PKG_ERRORS}."
3406 AS_IF([test -n "$wl_err"], [
3407 AS_IF([test -n "$enable_wayland"], [
3408 AC_MSG_ERROR([$wl_err])
3410 AC_MSG_WARN([$wl_err])
3417 PKG_CHECK_MODULES([XKBCOMMON], [xkbcommon], [
3418 have_xkbcommon="yes"
3420 AC_MSG_WARN([${XKBCOMMON_PKG_ERRORS}. Hotkeys are disabled.])
3423 AM_CONDITIONAL([HAVE_WAYLAND], [test "${have_wayland}" = "yes"])
3424 AC_SUBST([WAYLAND_PROTOCOLS])
3425 AC_SUBST([WAYLAND_SCANNER])
3426 AM_CONDITIONAL([HAVE_XKBCOMMON], [test "${have_xkbcommon}" = "yes"])
3430 dnl SDL image decoder module
3432 AC_ARG_ENABLE([sdl-image],
3433 AS_HELP_STRING([--enable-sdl-image], [SDL image support (default enabled)]))
3434 AS_IF([test "${enable_sdl_image}" != "no"],[
3435 PKG_CHECK_MODULES(SDL_IMAGE, [SDL_image >= 1.2.10], [
3436 VLC_ADD_PLUGIN([sdl_image])
3438 AC_MSG_WARN([${SDL_IMAGE_PKG_ERRORS}. You should install it alongside your SDL package.])
3445 AC_ARG_ENABLE([freetype],
3446 AS_HELP_STRING([--enable-freetype], [freetype support (default auto)]))
3447 AC_ARG_ENABLE([fribidi],
3448 AS_HELP_STRING([--enable-fribidi], [fribidi support (default auto)]))
3449 AC_ARG_ENABLE([harfbuzz],
3450 AS_HELP_STRING([--enable-harfbuzz], [harfbuzz support (default auto)]))
3451 AC_ARG_ENABLE([fontconfig],
3452 AS_HELP_STRING([--enable-fontconfig], [fontconfig support (default auto)]))
3454 AC_ARG_WITH([default-font],
3455 AS_HELP_STRING([--with-default-font=PATH],
3456 [Path to the default font]),
3457 [AC_DEFINE_UNQUOTED([DEFAULT_FONT_FILE],
3458 "$withval", [Default font])])
3459 AC_ARG_WITH([default-monospace-font],
3460 AS_HELP_STRING([--with-default-monospace-font=PATH],
3461 [Path to the default font]),
3462 [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FONT_FILE],
3463 "$withval", [Default monospace font])])
3465 AC_ARG_WITH([default-font-family],
3466 AS_HELP_STRING([--with-default-font-family=NAME],
3467 [Name of the default font family]),
3468 [AC_DEFINE_UNQUOTED([DEFAULT_FAMILY],
3469 "$withval", [Default font family])])
3470 AC_ARG_WITH([default-monospace-font-family],
3471 AS_HELP_STRING([--with-default-monospace-font-family=NAME],
3472 [Name of the default font family]),
3473 [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FAMILY],
3474 "$withval", [Default monospace font family])])
3477 have_fontconfig="no"
3481 if test "${enable_freetype}" != "no"; then
3482 PKG_CHECK_MODULES(FREETYPE, freetype2, [
3484 VLC_ADD_CPPFLAGS([skins2],[${FREETYPE_CFLAGS}])
3485 VLC_ADD_LIBS([skins2],[${FREETYPE_LIBS}])
3487 dnl fontconfig support
3488 AS_IF([test "${enable_fontconfig}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "darwin"], [
3489 PKG_CHECK_MODULES(FONTCONFIG, [fontconfig >= 2.11], [
3490 have_fontconfig="yes"
3492 AC_MSG_WARN([${FONTCONFIG_PKG_ERRORS}. Styles will be disabled in FreeType.])
3497 if test "${enable_fribidi}" != "no"; then
3498 PKG_CHECK_MODULES(FRIBIDI, fribidi, [
3500 VLC_ADD_CPPFLAGS([skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
3501 VLC_ADD_LIBS([skins2], [${FRIBIDI_LIBS}])
3502 ],[AC_MSG_WARN([${FRIBIDI_PKG_ERRORS}. Bidirectional text and complex scripts (Arabic, Farsi, Thai...) will be disabled in FreeType.])])
3505 dnl harfbuzz support
3506 if test "${have_fribidi}" != "no"; then
3507 if test "${enable_harfbuzz}" != "no"; then
3508 PKG_CHECK_MODULES(HARFBUZZ, harfbuzz, [
3510 VLC_ADD_CPPFLAGS([skins2], [${HARFBUZZ_CFLAGS} -DHAVE_HARFBUZZ])
3511 VLC_ADD_LIBS([skins2], [${HARFBUZZ_LIBS}])
3512 ],[AC_MSG_WARN([${HARFBUZZ_PKG_ERRORS}. Support for complex scripts (Arabic, Farsi, Thai...) will be disabled in FreeType.])])
3516 AS_IF([test -n "${enable_freetype}"],[
3517 AC_MSG_ERROR([${FREETYPE_PKG_ERRORS}. Install FreeType2 development or configure with --disable-freetype.])
3522 AM_CONDITIONAL([HAVE_FREETYPE], [test "${have_freetype}" = "yes"])
3523 AM_CONDITIONAL([HAVE_FONTCONFIG], [test "${have_fontconfig}" = "yes"])
3524 AM_CONDITIONAL([HAVE_FRIBIDI], [test "${have_fribidi}" = "yes"])
3525 AM_CONDITIONAL([HAVE_HARFBUZZ], [test "${have_harfbuzz}" = "yes"])
3528 dnl libass subtitle rendering module
3530 AC_ARG_ENABLE([libass],
3531 AS_HELP_STRING([--enable-libass], [Subtitle support using libass (default enabled)]))
3532 AS_IF( [test "${enable_libass}" != "no"], [
3533 PKG_CHECK_MODULES(LIBASS, [libass >= 0.9.8],
3535 VLC_ADD_PLUGIN([libass])
3537 if test "${have_fontconfig}" != "no"; then
3538 VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
3539 VLC_ADD_LIBS([libass],[${FONTCONFIG_LIBS}])
3542 AC_MSG_WARN([${LIBASS_PKG_ERRORS}.])
3547 dnl SAPI (text to Speech renderer for Windows)
3550 AC_CHECK_TYPES([ISpObjectToken],[
3552 ],[AC_MSG_WARN([sapi.h not found. Text to Speech renderer for Windows disabled])],
3553 [#include <windows.h>
3555 #include <sphelper.h>])
3556 AM_CONDITIONAL([HAVE_SAPI], [test "${have_sapi}" = "yes"])
3560 dnl SVG module (text rendering and image decoding)
3562 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3563 PKG_ENABLE_MODULES_VLC([SVGDEC], [], [librsvg-2.0 >= 2.9.0 cairo >= 1.13.1], [SVG image decoder library],[auto])
3566 dnl Windows DirectX module
3569 AC_ARG_ENABLE([directx],
3570 AS_HELP_STRING([--enable-directx],
3571 [Microsoft DirectX support (default enabled on Windows)]),, [
3572 AS_IF([test "${SYS}" = "mingw32"], [
3573 enable_directx="yes"
3578 AS_IF([test "${enable_directx}" != "no"], [
3580 AC_CHECK_HEADERS([GL/glew.h], [
3581 AC_CHECK_HEADERS([GL/wglew.h], [
3582 VLC_ADD_PLUGIN([glwin32 wgl])
3584 #include <windows.h>
3585 #include <GL/glew.h>
3587 #include <windows.h>
3591 AC_CHECK_HEADERS([d3d11.h], [
3592 VLC_ADD_PLUGIN([direct3d11 direct3d11_filters])
3596 AC_CHECK_HEADERS([d3d9.h], [
3597 VLC_ADD_PLUGIN([direct3d9])
3598 AC_CHECK_HEADERS([d3dx9effect.h])
3600 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
3601 [[#define COBJMACROS
3603 #include <dxva2api.h>
3604 #ifndef IDirectXVideoProcessorService_GetVideoProcessorDeviceGuids
3605 # error dxva2 too old
3609 VLC_ADD_PLUGIN([direct3d9_filters])
3611 [AC_MSG_WARN([Could not find required IDirectXVideoDecoder in dxva2api.h])])
3617 dnl Linux framebuffer module
3619 AC_CHECK_HEADER([linux/fb.h], [
3620 VLC_ADD_PLUGIN([fb])
3624 dnl Linux kernel mode setting module
3626 PKG_ENABLE_MODULES_VLC([KMS], [], [libdrm >= 2.4.83], [Linux kernel mode setting output], [auto])
3631 PKG_ENABLE_MODULES_VLC([CACA], [], [caca >= 0.99.beta14], [libcaca output],[auto])
3636 AC_ARG_ENABLE([kva],
3637 AS_HELP_STRING([--enable-kva],
3638 [support the K Video Accelerator KVA (default enabled on OS/2)]),, [
3639 AS_IF([test "$SYS" = "os2"], [
3645 AS_IF([test "$enable_kva" != "no"], [
3646 AC_CHECK_HEADERS([kva.h], [
3648 AC_CHECK_LIB([kva], [main], [
3653 AC_SUBST([KVA_LIBS])
3654 AM_CONDITIONAL([HAVE_KVA], [test "${have_kva}" = "yes"])
3659 AC_ARG_ENABLE([mmal],
3660 AS_HELP_STRING([--enable-mmal],
3661 [Multi-Media Abstraction Layer (MMAL) hardware plugin (default enable)]))
3662 if test "${enable_mmal}" != "no"; then
3664 LDFLAGS="${LDFLAGS} -L/opt/vc/lib -lvchostif"
3665 CPPFLAGS="${CPPFLAGS} -isystem /opt/vc/include -isystem /opt/vc/include/interface/vcos/pthreads -isystem /opt/vc/include/interface/vmcs_host/linux"
3666 AC_CHECK_HEADERS([interface/mmal/mmal.h],
3667 [ AC_CHECK_LIB([bcm_host], [vc_tv_unregister_callback_full], [
3669 VLC_ADD_PLUGIN([mmal])
3670 VLC_ADD_LDFLAGS([mmal],[ -L/opt/vc/lib ])
3671 VLC_ADD_CFLAGS([mmal],[ -isystem /opt/vc/include -isystem /opt/vc/include/interface/vcos/pthreads -isystem /opt/vc/include/interface/vmcs_host/linux ])
3672 VLC_ADD_LIBS([mmal],[ -lbcm_host -lmmal -lmmal_core -lmmal_components -lmmal_util -lvchostif -lvcsm ]) ], [
3673 AS_IF([test "${enable_mmal}" = "yes"],
3674 [ AC_MSG_ERROR([Cannot find bcm library...]) ],
3675 [ AC_MSG_WARN([Cannot find bcm library...]) ])
3678 ] , [ AS_IF([test "${enable_mmal}" = "yes"],
3679 [ AC_MSG_ERROR([Cannot find development headers for mmal...]) ],
3680 [ AC_MSG_WARN([Cannot find development headers for mmal...]) ]) ])
3683 AM_CONDITIONAL([HAVE_MMAL], [test "${have_mmal}" = "yes"])
3689 EXTEND_HELP_STRING([Audio plugins:])
3692 dnl Pulseaudio module
3694 AC_ARG_ENABLE([pulse],
3695 AS_HELP_STRING([--enable-pulse],
3696 [use the PulseAudio client library (default auto)]))
3698 AS_IF([test "${enable_pulse}" != "no"], [
3699 PKG_CHECK_MODULES([PULSE], [libpulse >= 1.0], [
3702 AS_IF([test "x${enable_pulse}" != "x"], [
3703 AC_MSG_ERROR([$PULSE_PKG_ERRORS. PulseAudio 1.0 or later required.])
3707 AM_CONDITIONAL([HAVE_PULSE], [test "${have_pulse}" = "yes"])
3712 AC_ARG_ENABLE([alsa],
3713 AS_HELP_STRING([--enable-alsa],
3714 [support the Advanced Linux Sound Architecture (default auto)]),, [
3715 AS_IF([test "$SYS" = "linux" -a "${have_pulse}" = "no"], [
3720 AS_IF([test "${enable_alsa}" != "no"], [
3721 PKG_CHECK_MODULES([ALSA], [alsa >= 1.0.24], [
3724 AS_IF([test "x${enable_alsa}" != "x"], [
3725 AC_MSG_ERROR([$ALSA_PKG_ERRORS. alsa-lib 1.0.24 or later required. Pass --disable-alsa to ignore this error.])
3729 AM_CONDITIONAL([HAVE_ALSA], [test "${have_alsa}" = "yes"])
3732 dnl Open Sound System module
3734 AC_ARG_ENABLE([oss],
3735 AS_HELP_STRING([--enable-oss],
3736 [support the Open Sound System OSS (default enabled on FreeBSD/NetBSD/DragonFlyBSD)]),, [
3737 AS_IF([test "$SYS" = "mingw32" -o "$SYS" = "linux" -o "$SYS" = "openbsd"], [
3743 AS_IF([test "$enable_oss" != "no"], [
3744 AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
3746 AC_CHECK_LIB([ossaudio], [main], [
3747 OSS_LIBS="-lossaudio"
3751 AC_SUBST([OSS_LIBS])
3752 AM_CONDITIONAL([HAVE_OSS], [test "${have_oss}" = "yes"])
3755 dnl OpenBSD sndio module
3757 AC_ARG_ENABLE([sndio],
3758 AS_HELP_STRING([--disable-sndio],
3759 [support the OpenBSD sndio (default auto)]),, [
3760 AS_IF([test "$SYS" = "openbsd"], [
3765 AS_IF([test "$enable_sndio" != "no"], [
3766 AC_CHECK_HEADER([sndio.h], [
3770 AM_CONDITIONAL([HAVE_SNDIO], [test "${have_sndio}" = "yes"])
3773 dnl Windows Audio Session plugin
3775 AC_ARG_ENABLE([wasapi],
3776 AS_HELP_STRING([--enable-wasapi],
3777 [use the Windows Audio Session API (default auto)])
3780 AS_IF([test "$enable_wasapi" != "no"], [
3781 AC_CHECK_HEADER([audioclient.h], [
3784 AS_IF([test "x${enable_wasapi}" != "x"], [
3785 AC_MSG_ERROR([Windows Audio Session API not found.])
3789 AM_CONDITIONAL([HAVE_WASAPI], [test "${have_wasapi}" = "yes"])
3794 AC_ARG_ENABLE([jack],
3795 AS_HELP_STRING([--disable-jack],
3796 [do not use jack (default auto)]))
3798 AS_IF([test "${enable_jack}" != "no"], [
3799 PKG_CHECK_MODULES(JACK, jack >= 1.9.7,
3802 AC_MSG_WARN([${JACK_PKG_ERRORS}, trying jack1 instead])
3804 PKG_CHECK_MODULES(JACK, jack >= 0.120.1 jack < 1.0,
3807 AS_IF([test -n "${enable_jack}"],
3808 [AC_MSG_ERROR([${JACK_PKG_ERRORS}.])],
3809 [AC_MSG_WARN([${JACK_PKG_ERRORS}.])])
3813 AM_CONDITIONAL([HAVE_JACK], [test "${have_jack}" != "no"])
3816 dnl OpenSLES Android
3818 AC_ARG_ENABLE([opensles],
3819 AS_HELP_STRING([--enable-opensles], [Android OpenSL ES audio module (default disabled)]))
3820 if test "${HAVE_ANDROID}" = "1"; then
3821 if test "${enable_opensles}" = "yes"; then
3822 AC_CHECK_HEADERS([SLES/OpenSLES.h],
3823 [ VLC_ADD_PLUGIN([opensles_android]) ],
3824 [ AC_MSG_ERROR([cannot find OpenSLES headers])] )
3829 dnl libsamplerate plugin
3831 PKG_ENABLE_MODULES_VLC([SAMPLERATE], [], [samplerate], [Resampler with libsamplerate], [auto])
3836 PKG_ENABLE_MODULES_VLC([SOXR], [], [soxr >= 0.1.2], [SoX Resampler library], [auto])
3841 AC_ARG_ENABLE([kai],
3842 AS_HELP_STRING([--enable-kai],
3843 [support the K Audio Interface KAI (default enabled on OS/2)]),, [
3844 AS_IF([test "$SYS" = "os2"], [
3850 AS_IF([test "$enable_kai" != "no"], [
3851 AC_CHECK_HEADERS([kai.h], [
3853 AC_CHECK_LIB([kai], [main], [
3858 AC_SUBST([KAI_LIBS])
3859 AM_CONDITIONAL([HAVE_KAI], [test "${have_kai}" = "yes"])
3862 dnl chromaprint audio track fingerprinter
3864 PKG_ENABLE_MODULES_VLC([CHROMAPRINT], [stream_out_chromaprint], [libchromaprint >= 0.6.0], [Chromaprint audio fingeprinter], [auto])
3867 dnl Chromecast streaming support
3869 m4_pushdef([protobuf_lite_version], 2.5.0)
3870 AC_ARG_VAR(PROTOC, [protobuf compiler])
3871 AC_CHECK_PROGS(PROTOC, protoc, no)
3872 PKG_WITH_MODULES([CHROMECAST],[protobuf-lite >= protobuf_lite_version], [
3873 AS_IF([test "x${PROTOC}" != "xno"], [
3874 build_chromecast="yes"
3876 AC_MSG_ERROR(protoc compiler needed for [chromecast] was not found)
3879 AS_IF([test "${enable_chromecast}" = "yes"],
3880 AC_MSG_ERROR(Library [protobuf-lite >= protobuf_lite_version] needed for [chromecast] was not found),
3881 AC_MSG_WARN(Library [protobuf-lite >= protobuf_lite_version] needed for [chromecast] was not found)
3883 enable_chromecast="no"
3884 ], [(Chromecast streaming support)], [auto])
3885 AM_CONDITIONAL([BUILD_CHROMECAST], [test "${build_chromecast}" = "yes"])
3886 m4_popdef([protobuf_lite_version])
3889 dnl Interface plugins
3892 EXTEND_HELP_STRING([Interface plugins:])
3898 AS_HELP_STRING([--disable-qt], [Qt UI support (default enabled)]),, [
3899 AS_IF([test "${enable_vlc}" != "no"], [enable_qt="yes"])
3900 AS_IF([test "${SYS}" = "darwin"], [
3905 AS_IF([test "${enable_qt}" != "no"], [
3906 PKG_CHECK_MODULES([QT], [Qt5Core >= 5.11.0 Qt5Widgets Qt5Gui Qt5Quick Qt5QuickWidgets Qt5QuickControls2 Qt5Svg], [
3907 PKG_CHECK_MODULES([QT5_X11], [Qt5X11Extras], [
3910 AC_MSG_WARN([Not building Qt Interface with X11 helpers.])
3912 QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix Qt5Core)"
3913 QT_HOST_PATH="$(eval $PKG_CONFIG --variable=host_bins Qt5Core)"
3914 QT_VERSION="$(eval $PKG_CONFIG --modversion Qt5Gui)"
3915 AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3916 AC_PATH_PROGS(RCC, [rcc-qt5 rcc], rcc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3917 AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3918 AC_PATH_PROGS(QMLCACHE, [qmlcachegen-qt5 qmlcachegen], no, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3919 AS_IF([test "x${QMLCACHE}" = "xno"], [
3920 AC_MSG_WARN([qmlcachegen not found])
3923 AS_IF([test -n "${enable_qt}"],[
3924 AC_MSG_ERROR([${QT_PKG_ERRORS}. If you want to build VLC without GUI, pass --disable-qt.])
3926 AC_MSG_WARN([${QT_PKG_ERRORS}.])
3932 AC_ARG_ENABLE([qt-qml-cache],
3933 AS_HELP_STRING([--enable-qt-qml-cache],
3934 [enable qml cache generation]))
3935 AM_CONDITIONAL([HAVE_QMLCACHE], [test "${enable_qt_qml_cache}" = "yes" && test "x$QMLCACHE" != "xno"])
3937 AC_ARG_ENABLE([qt-qml-debug],
3938 AS_HELP_STRING([--enable-qt-qml-debug], [enable qml debuger]))
3939 AM_CONDITIONAL(QT_QML_DEBUG, [test "${enable_qt_qml_debug}" = "yes"])
3941 AS_IF([test "${enable_qt}" != "no"], [
3942 ALIASES="${ALIASES} qvlc"
3944 AC_SUBST([QT_VERSION])
3945 AM_CONDITIONAL([ENABLE_QT], [test "$enable_qt" != "no"])
3946 AM_CONDITIONAL([HAVE_QT5_X11], [test "${have_qt5_x11}" = "yes"])
3949 dnl detect kde4-config patch (used for kde solids).
3951 AC_ARG_VAR([KDE4_CONFIG], [kde4-config utility])
3952 AS_IF([test "x$KDE4_CONFIG" = "x"], [
3953 KDE4_CONFIG="kde4-config"
3957 dnl Simple test for skins2 dependency
3959 AS_IF([test "$enable_qt" = "no"], [
3960 AS_IF([test "${enable_skins2}" = "yes"], [
3961 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.])
3964 AC_MSG_WARN([The skins2 module depends on the Qt interface, Qt is not built so skins2 is disabled.])
3971 AC_ARG_ENABLE([skins2],
3972 AS_HELP_STRING([--enable-skins2], [skins interface module (default auto)]))
3973 AS_IF([test "${enable_skins2}" != "no"], [
3974 have_skins_deps="yes"
3977 AS_IF([test "${SYS}" = "mingw32"], [
3978 VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -DWIN32_SKINS])
3979 VLC_ADD_LIBS([skins2],[-lgdi32 -lole32 -luuid -lmsimg32])
3981 ], [test "${SYS}" = "os2"], [
3982 VLC_ADD_CPPFLAGS([skins2],[ -DOS2_SKINS])
3985 PKG_CHECK_MODULES([XPM], [xpm],, [have_skins_deps="no"])
3986 PKG_CHECK_MODULES([XINERAMA], [xinerama],, [have_skins_deps="no"])
3987 PKG_CHECK_MODULES([XCURSOR], [xcursor],, [have_skins_deps="no"])
3988 PKG_CHECK_MODULES([XEXT], [xext],, [have_skins_deps="no"])
3989 VLC_ADD_CPPFLAGS([skins2],[${X_CFLAGS} ${XEXT_CFLAGS} ${XPM_CFLAGS} -DX11_SKINS])
3990 VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} ${XEXT_LIBS} ${XPM_LIBS} ${XINERAMA_LIBS} ${XCURSOR_LIBS} -lX11])
3993 dnl we need freetype
3994 AS_IF([test "${have_freetype}" != "yes"], [
3995 have_skins_deps="no"
3998 AS_IF([test "${have_skins_deps}" = "no"], [
3999 AS_IF([test "x${enable_skins2}" = "x"], [
4000 AC_MSG_WARN([Skins2 interface disabled due to missing dependencies.])
4002 AC_MSG_ERROR([Skins2 interface requires FreeType, libxcursor, libxpm, libxext and libxinerama])
4006 ALIASES="${ALIASES} svlc"
4010 AM_CONDITIONAL([BUILD_SKINS], [test "${enable_skins2}" = "yes"])
4012 AC_ARG_ENABLE([libtar],
4013 AS_HELP_STRING([--enable-libtar], [libtar support for skins2 (default auto)]))
4014 AS_IF([test "${enable_skins2}" = "yes" && test "${enable_libtar}" != "no"], [
4015 AC_CHECK_HEADERS([libtar.h], [
4016 VLC_ADD_LIBS([skins2],[-ltar])
4021 dnl MacOS X gui module
4023 AC_ARG_ENABLE([macosx],
4024 AS_HELP_STRING([--enable-macosx], [Mac OS X gui support (default enabled on Mac OS X)]))
4025 if test "x${enable_macosx}" != "xno" -a "${SYS}" = "darwin"
4029 dnl If possible, use xcrun to find the right ibtool
4032 AC_PATH_PROG([XCRUN], [xcrun], [no])
4033 AS_IF([test ! "x${XCRUN}" = "xno"], [
4034 AC_MSG_CHECKING([for ibtool (using xcrun)])
4035 XIB="$(eval $XCRUN -f ibtool 2>/dev/null || echo no)"
4036 AC_MSG_RESULT([${XIB}])
4038 AC_MSG_WARN([Looking for tools without using xcrun])
4041 AS_IF([test "x${XIB}" = "xno"], [
4042 AC_PATH_PROG(XIB, [ibtool], [no])
4043 AS_IF([test "x${XIB}" = "xno"], [
4044 AC_MSG_ERROR([ibtool was not found, but is required for --enable-macosx])
4048 AM_CONDITIONAL([ENABLE_MACOSX_UI], [test "$enable_macosx" != "no" -a "${SYS}" = "darwin"])
4051 dnl MacOS X sparkle update support
4053 AC_ARG_ENABLE([sparkle],
4054 AS_HELP_STRING([--enable-sparkle], [Sparkle update support for OS X (default enabled on Mac OS X)]))
4055 if test "x${enable_sparkle}" != "xno" -a "${HAVE_OSX}" = "1"
4057 if test ! -d ${CONTRIB_DIR}/Sparkle.framework -a ! -d ${CONTRIB_DIR}/Frameworks/Sparkle.framework
4059 AC_MSG_ERROR([Sparkle framework is required and was not found in ${CONTRIB_DIR}])
4062 AC_DEFINE([HAVE_SPARKLE], [1], [Define to 1 if sparkle is enabled.])
4064 AM_CONDITIONAL([HAVE_SPARKLE], [test "$enable_sparkle" != "no"])
4067 dnl MacOS X breakpad creash reporter support
4069 AC_ARG_WITH([breakpad],
4070 AS_HELP_STRING([--with-breakpad=URL], [Enable Breakpad reporter using given URL]), [], [with_breakpad=no])
4072 AS_IF([test "$with_breakpad" != "no"], [
4074 AS_IF([test "$with_breakpad" = "yes"], [
4075 AC_MSG_ERROR([You need to supply the CrashDragon Server URL as value for --with-breakpad])
4078 AS_IF([test "$HAVE_OSX" = "1"], [
4079 AC_MSG_CHECKING([for Breakpad framework])
4080 AS_IF([test ! -d ${CONTRIB_DIR}/Breakpad.framework -a \
4081 ! -d ${CONTRIB_DIR}/Frameworks/Breakpad.framework], [
4084 AC_MSG_ERROR([Breakpad framework is required and was not found in ${CONTRIB_DIR}])
4086 AC_MSG_RESULT([yes])
4089 PKG_CHECK_MODULES([BREAKPAD], [breakpad-client], [
4090 LDFLAGS="${LDFLAGS} -Wl,--build-id"
4092 AC_MSG_ERROR(["breakpad not found"])
4097 AM_CONDITIONAL([HAVE_BREAKPAD], [test "$with_breakpad" != "no"])
4098 AS_IF([test "$with_breakpad" != "no"], [
4099 AC_SUBST([BREAKPAD_URL], ["${with_breakpad}"])
4103 dnl Minimal Mac OS X module
4105 AC_ARG_ENABLE([minimal-macosx],
4106 AS_HELP_STRING([--enable-minimal-macosx], [Minimal Mac OS X support (default disabled)]))
4107 if test "${enable_minimal_macosx}" = "yes" -a "${SYS}" = "darwin"
4109 VLC_ADD_PLUGIN([minimal_macosx])
4113 dnl Mac OS X fancy dmg build tool
4115 if test "${HAVE_OSX}" = "1"
4117 AC_PATH_PROG(DMGBUILD, dmgbuild, no)
4118 AS_IF([test "x${DMGBUILD}" = "xno"], [
4119 AC_MSG_WARN([dmgbuild not found -- unable to build fancy DMGs])
4122 AM_CONDITIONAL([HAVE_DMGBUILD], [test "x$DMGBUILD" != "xno" -a "${HAVE_OSX}" = "1"])
4125 dnl VideoToolbox plugins
4126 AC_CHECK_HEADERS([VideoToolbox/VideoToolbox.h], [
4127 VLC_ADD_PLUGIN([videotoolbox])
4128 VLC_ADD_PLUGIN([cvpx])
4132 dnl AudioToolbox MIDI plugin
4133 AC_CHECK_HEADERS([AudioToolbox/AudioToolbox.h], [
4134 VLC_ADD_PLUGIN([audiotoolboxmidi])
4140 AC_ARG_ENABLE([ncurses],
4141 AS_HELP_STRING([--disable-ncurses],[ncurses text-based interface (default auto)]))
4143 AS_IF([test "${enable_ncurses}" != "no"] ,[
4144 PKG_CHECK_MODULES([NCURSES], [ncursesw], [
4146 ALIASES="${ALIASES} nvlc"
4148 AS_IF([test -n "${enable_ncurses}"], [
4149 AC_MSG_ERROR([${NCURSES_PKG_ERRORS}.])
4153 AM_CONDITIONAL([HAVE_NCURSES], [test "${have_ncurses}" = "yes"])
4158 AC_ARG_ENABLE([lirc],
4159 AS_HELP_STRING([--enable-lirc], [lirc support (default disabled)]))
4161 AS_IF([test "${enable_lirc}" = "yes"], [
4162 AC_CHECK_HEADER(lirc/lirc_client.h, [
4163 AC_CHECK_LIB([lirc_client], [lirc_init], [
4168 AM_CONDITIONAL([HAVE_LIRC], [test "${have_lirc}" = "yes"])
4173 PKG_CHECK_MODULES([BITSTREAM], [bitstream > 1.4],[have_bitstream="yes"], [have_bitstream="no"])
4174 AM_CONDITIONAL([HAVE_BITSTREAM], [test "${have_bitstream}" = "yes"])
4179 PKG_ENABLE_MODULES_VLC([SRT], [access_srt access_output_srt], [srt >= 1.3.0], [SRT input/output plugin], [auto], [], [], [-DENABLE_SRT])
4181 EXTEND_HELP_STRING([Visualisations and Video filter plugins:])
4183 dnl goom visualization plugin
4185 PKG_ENABLE_MODULES_VLC([GOOM], [], [libgoom2], [goom visualization plugin], [auto])
4188 dnl libprojectM visualization plugin
4190 AC_ARG_ENABLE([projectm],
4191 AS_HELP_STRING([--enable-projectm], [projectM visualization plugin (default enabled)]))
4192 AS_IF([test "${enable_projectm}" != "no"],
4194 PKG_CHECK_MODULES(PROJECTM, libprojectM,
4196 VLC_ADD_PLUGIN([projectm])
4197 PKG_CHECK_EXISTS([libprojectM >= 2.0.0],
4198 [ AC_DEFINE([HAVE_PROJECTM2], 1, [Define to 1 if using libprojectM 2.x]) ],
4199 [ AC_MSG_WARN( [Using libprojectM version 1] )
4202 AC_MSG_WARN([${PROJECTM_PKG_ERRORS}.])
4207 dnl Vovoid VSXu visualization plugin
4209 AC_ARG_ENABLE([vsxu],
4210 AS_HELP_STRING([--enable-vsxu], [Vovoid VSXu visualization plugin (default auto)]))
4211 AS_IF([test "${enable_vsxu}" != "no"],
4213 PKG_CHECK_MODULES(VSXU, libvsxu,
4215 VLC_ADD_PLUGIN([vsxu])
4217 AC_MSG_WARN([${VSXU_PKG_ERRORS}.])
4221 EXTEND_HELP_STRING([Service Discovery plugins:])
4223 dnl Avahi-Zeroconf services discovery
4224 PKG_ENABLE_MODULES_VLC([AVAHI], [], [avahi-client >= 0.6], [Zeroconf services discovery], [auto])
4227 dnl libudev services discovery
4228 PKG_ENABLE_MODULES_VLC([UDEV], [], [libudev >= 142], [Linux udev services discovery], [auto])
4231 dnl MTP devices services discovery
4232 PKG_ENABLE_MODULES_VLC([MTP], [mtp access_mtp], [libmtp >= 1.0.0], [MTP devices support], [auto])
4235 dnl UPnP Plugin (Intel SDK)
4237 PKG_ENABLE_MODULES_VLC([UPNP], [upnp], [libupnp], [Intel UPNP SDK],[auto])
4240 dnl mDNS using libmicrodns
4242 PKG_ENABLE_MODULES_VLC([MICRODNS], [], [microdns], [mDNS services discovery], [auto])
4245 EXTEND_HELP_STRING([Misc options:])
4250 PKG_ENABLE_MODULES_VLC([LIBXML2], [xml], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
4256 AC_ARG_ENABLE([libgcrypt],
4257 AS_HELP_STRING([--disable-libgcrypt], [gcrypt support (default enabled)]))
4258 AC_ARG_VAR([GCRYPT_CFLAGS], [C compiler flags for gcrypt])
4259 AC_ARG_VAR([GCRYPT_LIBS], [linker flags flags for gcrypt])
4261 # require libgcrypt >= 1.6.0
4262 AS_IF([test "${enable_libgcrypt}" != "no"], [
4263 AC_CACHE_CHECK([for gcrypt 1.6.0 or later], [ac_cv_lib_gcrypt], [
4265 CFLAGS="${CFLAGS} ${GCRYPT_CFLAGS}"
4266 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
4267 [#include <gcrypt.h>
4268 #if GCRYPT_VERSION_NUMBER < 0x010600
4271 ac_cv_lib_gcrypt=yes
4278 AS_IF([test "${ac_cv_lib_gcrypt}" = "yes"], [
4279 AC_DEFINE([HAVE_GCRYPT], 1, [Defined if having gcrypt])
4281 AS_IF([test "${enable_libgcrypt}" = "yes"], [
4282 AC_MSG_ERROR([libgcrypt version 1.6.0 or higher not found. Install libgcrypt or pass --disable-libgcrypt.])
4287 AS_IF([test -z "$GCRYPT_LIBS"], [
4288 GCRYPT_LIBS="-lgcrypt -lgpg-error"
4291 AC_SUBST([GCRYPT_CFLAGS])
4292 AC_SUBST([GCRYPT_LIBS])
4293 AM_CONDITIONAL([HAVE_GCRYPT], [test "${ac_cv_lib_gcrypt}" = "yes"])
4298 AC_ARG_ENABLE([gnutls],
4299 AS_HELP_STRING([--enable-gnutls], [GNU TLS TLS/SSL support (default enabled)]))
4300 AS_IF([test "${enable_gnutls}" != "no"], [
4301 PKG_CHECK_MODULES(GNUTLS, [gnutls >= 3.5.0], [
4302 VLC_ADD_PLUGIN([gnutls])
4304 AS_IF([test -n "${enable_gnutls}"], [
4305 AC_MSG_ERROR([${GNUTLS_PKG_ERRORS}.)])
4314 AC_ARG_ENABLE([taglib],
4315 AS_HELP_STRING([--disable-taglib],
4316 [do not use TagLib (default enabled)]))
4317 AS_IF([test "${enable_taglib}" != "no"], [
4318 PKG_CHECK_MODULES(TAGLIB, taglib >= 1.11, [
4319 VLC_ADD_PLUGIN([taglib])
4321 AC_MSG_WARN([${TAGLIB_PKG_ERRORS}.])])
4327 PKG_ENABLE_MODULES_VLC([SECRET], [], [libsecret-1 >= 0.18], [use libsecret for keystore], [auto])
4332 AC_ARG_ENABLE([kwallet],
4333 AS_HELP_STRING([--enable-kwallet],
4334 [use kwallet (via D-Bus) for keystore (default enabled)]))
4335 AS_IF([test "${enable_kwallet}" != "no" -a "${have_dbus}" = "yes"], [
4336 VLC_ADD_PLUGIN([kwallet])
4340 dnl update checking system
4342 AC_ARG_ENABLE([update-check],
4343 AS_HELP_STRING([--enable-update-check], [update checking system (default disabled)]))
4344 if test "${enable_update_check}" = "yes"
4346 AS_IF([test "${ac_cv_lib_gcrypt}" != "yes"],[
4347 AC_MSG_ERROR([libgcrypt is required for update checking system]) ])
4349 AM_CONDITIONAL([UPDATE_CHECK], [test "${enable_update_check}" = "yes"])
4352 dnl OS X notification plugin
4354 AC_ARG_ENABLE([osx_notifications],
4355 AS_HELP_STRING([--enable-osx-notifications],
4356 [macOS notification plugin (default disabled)]),,
4357 [enable_osx_notifications=no])
4358 AS_IF([test "${enable_osx_notifications}" != "no"], [
4359 VLC_ADD_PLUGIN([osx_notifications])
4363 dnl Libnotify notification plugin
4365 PKG_ENABLE_MODULES_VLC([NOTIFY], [], [libnotify gtk+-3.0], [libnotify notification], [auto])
4367 PKG_ENABLE_MODULES_VLC([MEDIALIBRARY], [medialibrary], [medialibrary >= 0.7.1], (medialibrary support), [auto])
4370 dnl Endianness check
4373 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
4374 DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
4378 AC_SUBST([DEFS_BIGENDIAN])
4381 dnl Where to install KDE solid .desktop
4383 AC_ARG_WITH(kde-solid,
4384 AS_HELP_STRING([--with-kde-solid=PATH],
4385 [KDE Solid actions directory (auto)]),, [
4387 if test "${SYS}" != "mingw32" -a "${SYS}" != "darwin" -a "${HAVE_ANDROID}" != "1" ; then
4388 with_kde_solid="yes"
4392 AS_IF([test "${with_kde_solid}" != "no"], [
4393 AS_IF([test "${with_kde_solid}" = "yes"], [
4394 kde4datadir="`${KDE4_CONFIG} --install data`"
4395 AS_IF([test "x$kde4datadir" = "x"], [kde4datadir='${datadir}/kde4/apps'])
4396 soliddatadir="${kde4datadir}/solid/actions"
4398 soliddatadir="${with_kde_solid}"
4401 AC_SUBST([soliddatadir])
4402 AM_CONDITIONAL([KDE_SOLID], [test "x${soliddatadir}" != "x"])
4405 dnl Find tools for win32 packaging
4407 AS_IF([test "${SYS}" = "mingw32"], [
4409 dnl Find makensis required to build the NSIS installer
4411 nsis_major_required="3"
4412 nsis_version_ok="no"
4413 AC_PATH_PROG([MAKENSIS], [makensis], [no])
4414 AS_IF([test "$MAKENSIS" != "no"], [
4416 AC_MSG_CHECKING([makensis version])
4417 nsis_version=$($MAKENSIS -VERSION)
4418 AC_MSG_RESULT([$nsis_version])
4419 nsis_version_major=$(echo "$nsis_version" | awk -F \. '{print $1}' | sed 's/v//')
4420 # Check if major version is a valid number
4421 AS_IF([test -n "$nsis_version_major" && \
4422 test "$nsis_version_major" -eq "$nsis_version_major" 2> /dev/null], [
4423 # Do the version check using major version
4424 AS_IF([test "$nsis_version_major" -lt "$nsis_major_required"], [
4425 AC_MSG_WARN([makensis too old, (needs ${nsis_major_required}.x, have ${nsis_version_major}.x)])
4427 nsis_version_ok="yes"
4430 AC_MSG_WARN([failed to check the makensis version])
4436 AC_PATH_PROG([SEVENZIP], [7z], [7z])
4438 AM_CONDITIONAL([HAVE_MAKENSIS], [test "x$MAKENSIS" != "xno" && test "$nsis_version_ok" = "yes"])
4441 dnl Check wether we have the PROCESS_MITIGATION_IMAGE_LOAD_POLICY
4442 dnl It should only be available when building for win10, but some SDKs define it unconditionnaly
4444 if test "${SYS}" = "mingw32"; then
4445 AC_CHECK_TYPES([PROCESS_MITIGATION_IMAGE_LOAD_POLICY],,,[#include <windows.h>])
4448 EXTEND_HELP_STRING([Components:])
4453 AC_ARG_ENABLE([vlc],
4454 AS_HELP_STRING([--enable-vlc], [build the VLC media player (default enabled)]))
4455 AM_CONDITIONAL([BUILD_VLC], [test "${enable_vlc}" != "no"])
4458 dnl Fuzzer (at the end not to mess dependencies FLAGS)
4460 AS_VAR_IF(with_libfuzzer, no, [], [
4461 LIBS="-lstdc++ ${LIBM}"
4462 AS_IF([test "${with_libfuzzer}" != "yes"], [
4463 LIBS="$LIBS -L${with_libfuzzer}"
4465 LIBS="$LIBS -lFuzzer"
4466 AX_CHECK_COMPILE_FLAG(-fsanitize-coverage=trace-pc-guard, [
4467 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc-guard])
4468 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc-guard], [CXXFLAGS])
4469 AX_APPEND_COMPILE_FLAGS([-fsanitize-coverage=trace-cmp])
4470 AX_APPEND_COMPILE_FLAGS([-fsanitize-coverage=trace-cmp], [CXXFLAGS])
4472 AX_CHECK_COMPILE_FLAG(-fsanitize-coverage=trace-pc, [
4473 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc])
4474 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc], [CXXFLAGS])
4476 AC_MSG_ERROR([Sanitizer coverage not supported by your compiler])
4482 dnl Stuff used by the program
4484 VERSION_MESSAGE="${VERSION} ${CODENAME}"
4485 COPYRIGHT_MESSAGE="Copyright © ${COPYRIGHT_YEARS} the VideoLAN team"
4486 AC_DEFINE_UNQUOTED([VERSION_MESSAGE], "${VERSION_MESSAGE}", [Simple version string])
4487 AC_DEFINE_UNQUOTED([COPYRIGHT_MESSAGE], "${COPYRIGHT_MESSAGE}", [Copyright string])
4488 AC_DEFINE_UNQUOTED([COPYRIGHT_YEARS], "${COPYRIGHT_YEARS}", [The copyright years])
4489 AC_DEFINE_UNQUOTED([CONFIGURE_LINE], "${CONFIGURE_LINE}", [The ./configure command line])
4490 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_MAJOR],${VERSION_MAJOR}, [version major number])
4491 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_MINOR],${VERSION_MINOR}, [version minor number])
4492 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_REVISION],${VERSION_REVISION}, [version revision number])
4493 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_EXTRA],${VERSION_EXTRA}, [version extra number])
4494 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_DEV],"${VERSION_DEV}", [version development string])
4495 AC_SUBST([COPYRIGHT_MESSAGE])
4496 AC_SUBST([VERSION_MESSAGE])
4497 AC_SUBST([VERSION_MAJOR])
4498 AC_SUBST([VERSION_MINOR])
4499 AC_SUBST([VERSION_REVISION])
4500 AC_SUBST([VERSION_EXTRA])
4501 AC_SUBST([COPYRIGHT_YEARS])
4502 AC_DEFINE_UNQUOTED([VLC_COMPILE_BY], "`whoami|sed -e 's/\\\/\\\\\\\/g'`", [user who ran configure])
4503 AC_DEFINE_UNQUOTED([VLC_COMPILE_HOST], "`hostname -f 2>/dev/null || hostname`", [host which ran configure])
4504 AC_DEFINE_UNQUOTED([VLC_COMPILER], "`$CC -v 2>&1 | tail -n 1 | sed -e 's/ *$//'`", [compiler])
4506 dnl Handle substvars that use $(top_srcdir)
4508 CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS}"
4511 dnl Configuration is finished
4521 AC_SUBST([WINE_SDK_PATH])
4523 AC_SUBST([AM_CPPFLAGS])
4524 AC_SUBST([MACOSX_DEPLOYMENT_TARGET])
4525 AC_SUBST([FILE_LIBVLCCORE_DLL])
4526 AC_SUBST([FILE_LIBVLC_DLL])
4540 modules/hw/mmal/Makefile
4541 share/vlc.appdata.xml.in
4544 AM_COND_IF([HAVE_WIN32], [
4546 extras/package/win32/NSIS/spad.nsi
4547 extras/package/win32/NSIS/vlc.win32.nsi
4548 extras/package/win32/msi/config.wxi
4552 AM_COND_IF([HAVE_DARWIN], [
4554 modules/gui/macosx/UI/InfoPlist.strings:modules/gui/macosx/Resources/InfoPlist.strings.in
4555 share/macosx/Info.plist:share/Info.plist.in
4559 dnl Generate makefiles
4562 dnl Do we have to use make or gmake ?
4563 if make --version 2>&1|grep -q GNU
4565 # GNU make, all seems good
4568 # Known GNU make alias (on BSD)
4571 dnl Shortcut to nice compile message
4572 if test -n $SHELL; then
4573 SHELL=${CONFIG_SHELL-/bin/sh}
4576 compile_top_srcdir=`sed -ne "s/^top_srcdir *= *//p" < Makefile`
4580 export PATH=\"$PATH\" LANG=C
4581 ($MAKE V=1 \$@ 2>&1 || touch .error\$\$)| $compile_top_srcdir/extras/buildsystem/make.pl
4582 test -f .error\$\$ && ERROR=1
4584 exit \$ERROR" >compile
4588 libvlc configuration
4589 --------------------
4590 version : ${VERSION}
4592 architecture : ${ARCH}
4593 optimizations : ${enable_optimizations}"
4594 if test "${enable_vlc}" != "no"; then
4595 echo "vlc aliases :${ALIASES}"
4597 echo "build vlc executable : no"
4600 To build vlc and its plugins, type \`$MAKE', or \`./compile' if you like nice colors."