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>
201 dnl Handle Mac OS X SDK flags
203 AC_ARG_WITH(macosx-sdk,
204 AS_HELP_STRING([--with-macosx-sdk=DIR],
205 [compile using the SDK in DIR]))
206 if test "${with_macosx_sdk}" != "" ; then
207 test ! -d "${with_macosx_sdk}" && AC_MSG_ERROR([SDK "${with_macosx_sdk}" not found])
208 CPP="${CPP} -isysroot ${with_macosx_sdk}"
209 CC="${CC} -isysroot ${with_macosx_sdk}"
210 CXX="${CXX} -isysroot ${with_macosx_sdk}"
211 OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
212 LD="${LD} -syslibroot ${with_macosx_sdk}"
214 AC_ARG_WITH(macosx-version-min,
215 AS_HELP_STRING([--with-macosx-version-min=VERSION],
216 [compile for Mac OS X VERSION and above]))
217 if test "${with_macosx_version_min}" != "" ; then
218 CPP="${CPP} -mmacosx-version-min=${with_macosx_version_min}"
219 CC="${CC} -mmacosx-version-min=${with_macosx_version_min}"
220 CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
221 OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
222 LD="${LD} -mmacosx_version_min=${with_macosx_version_min}"
225 *mingw32* | *cygwin* | *wince* | *mingwce*)
226 dnl Force libtool to not link to (shared) libgcc_s when detecting C++ dependencies
227 dnl When doing this test with -static-libgcc it will link on (static) libgcc_eh
228 CXXFLAGS="${CXXFLAGS} -static-libgcc"
229 AC_CHECK_TOOL(WINDRES, windres, :)
230 AC_CHECK_TOOL(OBJCOPY, objcopy, :)
231 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
232 [[#ifdef _WIN32_WINNT
233 # error _WIN32_WINNT already defined
237 AC_DEFINE([_WIN32_WINNT], 0x0601, [Define to '0x0601' for Windows 7 APIs.])
239 AC_DEFINE([_WIN32_IE], 0x0600, [Define to '0x0600' for IE 6.0 (and shell) APIs.])
240 AC_DEFINE([UNICODE], [1], [Define to 1 for Unicode (Wide Chars) APIs.])
241 AC_DEFINE([_ISOC99_SOURCE], [1], [Extensions to ISO C89 from ISO C99.])
242 AC_DEFINE([_ISOC11_SOURCE], [1], [Extensions to ISO C99 from ISO C11.])
243 AC_DEFINE([_POSIX_SOURCE], [1], [IEEE Std 1003.1.])
244 AC_DEFINE([_POSIX_C_SOURCE], [200809L], [IEEE Std 1003.1.])
245 AC_DEFINE([_XOPEN_SOURCE], [700], [POSIX and XPG 7th edition])
246 AC_DEFINE([_XOPEN_SOURCE_EXTENDED], [1], [XPG things and X/Open Unix extensions.])
247 AC_DEFINE([_BSD_SOURCE], [1], [ISO C, POSIX, and 4.3BSD things.])
248 AC_DEFINE([_SVID_SOURCE], [1], [ISO C, POSIX, and SVID things.])
255 dnl Check if we are using the mno-cygwin mode in which case we are
256 dnl actually dealing with a mingw32 compiler.
261 SYS=mingw32, AC_MSG_ERROR([VLC requires -mno-cygwin]))
265 if test "${SYS}" = "mingw32"; then
267 LDFLAGS="${LDFLAGS} -Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase"
269 AC_CHECK_PROGS(U2D, [unix2dos todos], unix2dos)
270 ac_default_prefix="`pwd`/_win32"
271 DESTDIR="`pwd`/_win32/"
274 dnl NSIS/MSI Installer prefix and WIN64
276 case "${host_cpu}" in
280 PROGRAMFILES="PROGRAMFILES64"
281 LDFLAGS="${LDFLAGS} -Wl,--high-entropy-va -Wl,--image-base,0x140000000"
286 PROGRAMFILES="PROGRAMFILES64"
287 LDFLAGS="${LDFLAGS} -Wl,--high-entropy-va -Wl,--image-base,0x140000000"
288 X86ASMFLAGS="-f win64"
292 PROGRAMFILES="PROGRAMFILES"
296 PROGRAMFILES="PROGRAMFILES"
297 X86ASMFLAGS="-f win32"
298 X86ASMDEFS="${X86ASMDEFS} -DPREFIX"
301 AC_SUBST([WINDOWS_ARCH])
302 AC_SUBST([PROGRAMFILES])
317 LDFLAGS="${LDFLAGS} -Zomf -Zbin-files -Zargs-wild -Zhigh-mem"
318 AC_LIBOBJ([freeaddrinfo])
319 AC_LIBOBJ([gai_strerror])
320 AC_CHECK_FUNCS([if_nametoindex])
321 X86ASMFLAGS="-f aout"
322 X86ASMDEFS="-DARCH_X86_32=1 -DARCH_X86_64=0 -DPREFIX"
326 AC_DEFINE([_XOPEN_SOURCE], [700], [POSIX and XPG 7th edition])
337 AC_ARG_ENABLE([winstore_app],
338 AS_HELP_STRING([--enable-winstore-app],
339 [Build targetted for Windows Store apps (default disabled)]))
342 AS_IF([test "${SYS}" = "mingw32"],[
344 AS_IF([test "${enable_winstore_app}" = "yes"], [
347 AX_APPEND_FLAG([-DWINSTORECOMPAT],[CFLAGS])
348 AX_APPEND_FLAG([-DWINSTORECOMPAT],[CPPFLAGS])
349 AX_APPEND_FLAG([-DWINSTORECOMPAT],[CXXFLAGS])
350 AX_APPEND_FLAG([-lwinstorecompat], [LDFLAGS])
351 VLC_ADD_LIBS([libvlccore], [-lruntimeobject])
352 AC_LIBOBJ([gai_strerror])
356 AC_DEFINE_UNQUOTED(VLC_WINSTORE_APP, ${vlc_winstore_app}, [Define to 1 if you want to build for Windows Store apps])
360 AS_HELP_STRING([--enable-pdb],
361 [Build PDB files for windows targets (default off)]))
362 AS_IF([test "${SYS}" = "mingw32"],[
363 AS_IF([test "${enable_pdb}" = "yes"], [
365 AX_APPEND_FLAG([-g -gcodeview],[CFLAGS])
366 AX_APPEND_FLAG([-g -gcodeview],[CXXFLAGS])
367 LDFLAGS="${LDFLAGS} -Wl,-pdb="
371 AM_CONDITIONAL([HAVE_LINUX], [test "${SYS}" = "linux"])
372 AM_CONDITIONAL([HAVE_OS2], [test "${SYS}" = "os2"])
374 AM_CONDITIONAL([HAVE_DARWIN], [test "${SYS}" = "darwin"])
375 AM_CONDITIONAL([HAVE_IOS], [test "${HAVE_IOS}" = "1"])
376 AM_CONDITIONAL([HAVE_OSX], [test "${HAVE_OSX}" = "1"])
377 AM_CONDITIONAL([HAVE_TVOS], [test "${HAVE_TVOS}" = "1"])
379 AM_CONDITIONAL([HAVE_NACL], [test "${SYS}" = "nacl"])
380 AM_CONDITIONAL([HAVE_LIBANL], [test "${HAVE_LIBANL}" = "1"])
382 AM_CONDITIONAL([HAVE_WIN32], [test "${SYS}" = "mingw32"])
383 AM_CONDITIONAL([HAVE_WIN64], [test "${HAVE_WIN64}" = "1"]) dnl Only used for the packaging
384 AM_CONDITIONAL([HAVE_WINSTORE], [test "$vlc_winstore_app" = "1"])
385 AM_CONDITIONAL([HAVE_WIN32_DESKTOP], [test "${SYS}" = "mingw32" -a "$vlc_winstore_app" = "0"])
386 AM_CONDITIONAL([ENABLE_PDB], [test "$vlc_build_pdb" = "1"])
388 dnl Use nasm/yasm only on x86
389 AC_CHECK_PROGS(X86ASM, [nasm yasm])
390 AM_CONDITIONAL([HAVE_X86ASM], [test -n "${X86ASM}" && test -n "${X86ASMFLAGS}"])
391 AM_COND_IF([HAVE_X86ASM], [
392 AC_DEFINE([HAVE_X86ASM], [1], [Use external asm on x86.])
395 dnl Because DOLT is not able to handle --with-pic
396 dnl correctly, manually add -DPIC to the options for
397 dnl nasm / yasm here.
398 AS_IF([test x$with_pic = xyes], [X86ASMDEFS="${X86ASMDEFS} -DPIC"])
400 AC_SUBST([X86ASMFLAGS])
401 AC_SUBST([X86ASMDEFS])
404 dnl Sadly autoconf does not think about testing foo.exe when ask to test
405 dnl for program foo on win32
406 case "${build_os}" in
408 ac_executable_extensions=".exe"
417 AC_SUBST([BUILDEXEEXT])
419 dnl Android is linux, but a bit different
420 AS_IF([test "$SYS" = linux],[
421 AC_MSG_CHECKING([for an Android system])
422 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
423 [[#ifndef __ANDROID__
434 AM_CONDITIONAL([HAVE_ANDROID], [test "${HAVE_ANDROID}" = "1"])
437 dnl Check for the contrib directory
440 AS_HELP_STRING([--with-contrib[=DIR]],
441 [search for 3rd party libraries in DIR/include and DIR/lib])
443 AC_MSG_CHECKING([for 3rd party libraries path])
444 AS_IF([test -z "${with_contrib}" || test "${with_contrib}" = "yes"], [
445 CONTRIB_DIR="${srcdir}/contrib/${host}"
446 AS_IF([test ! -d "${CONTRIB_DIR}"], [
447 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
448 CONTRIB_DIR="${srcdir}/contrib/`$CC -dumpmachine`"
449 AS_IF([test ! -d "${CONTRIB_DIR}"], [
450 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
452 AC_MSG_RESULT([not found])
456 AS_IF([test "${with_contrib}" != "no"], [
457 CONTRIB_DIR="${with_contrib}"
460 AC_MSG_RESULT([disabled])
463 AS_IF([test -n "${CONTRIB_DIR}"], [
464 AS_IF([test -d "${CONTRIB_DIR}/lib"],[
465 CONTRIB_DIR=`cd "${CONTRIB_DIR}" && pwd`
467 echo "${CONTRIB_DIR}/lib not found" >&AS_MESSAGE_LOG_FD
469 AC_MSG_RESULT([not usable])
473 AS_IF([test -n "${CONTRIB_DIR}"], [
474 AC_MSG_RESULT([${CONTRIB_DIR}])
475 CPPFLAGS="${CPPFLAGS} -I${CONTRIB_DIR}/include"
476 CFLAGS="${CFLAGS} -I${CONTRIB_DIR}/include"
477 CXXFLAGS="${CXXFLAGS} -I${CONTRIB_DIR}/include"
478 OBJCFLAGS="${OBJCFLAGS} -I${CONTRIB_DIR}/include -F${CONTRIB_DIR} -F${CONTRIB_DIR}/Frameworks"
479 PKG_CONFIG_PATH="${CONTRIB_DIR}/lib/pkgconfig:${CONTRIB_DIR}/share/pkgconfig:${PKG_CONFIG_PATH}"
480 case "${build_os}" in
482 export PKG_CONFIG_PATH=`cygpath -mp ${PKG_CONFIG_PATH}`
485 export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}"
488 LDFLAGS="${LDFLAGS} -L${CONTRIB_DIR}/lib"
490 AS_IF([test -z "$LUAC"], [
491 dnl Old contribs mixed cross-tools and cross-compiled executables
492 AS_IF([test -x "${CONTRIB_DIR}/bin/luac${BUILDEXEEXT}"], [
493 LUAC="${CONTRIB_DIR}/bin/luac${BUILDEXEEXT}"
496 dnl Newer contribs follow usual name space rules
497 AS_IF([test -x "${CONTRIB_DIR}/../bin/${host_alias}-luac${BUILDEXEEXT}"], [
498 LUAC="${CONTRIB_DIR}/../bin/${host_alias}-luac${BUILDEXEEXT}"
502 AS_IF([test "${SYS}" = "darwin"], [
503 export LD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$LD_LIBRARY_PATH"
504 export DYLD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$DYLD_LIBRARY_PATH"
507 AS_IF([test -n "${with_contrib}" && test "${with_contrib}" != "no"], [
508 AC_MSG_ERROR([Third party libraries not found!])
511 AC_SUBST([CONTRIB_DIR])
513 dnl Add extras/tools to the PATH
514 TOOLS_DIR="${srcdir}/extras/tools/build/bin"
515 AS_IF([test -d "${TOOLS_DIR}"], [
516 TOOLS_DIR=`cd "${TOOLS_DIR}" && pwd`
517 export PATH="${TOOLS_DIR}":$PATH
522 dnl It's very bad, but our former custom system was worst
526 dnl override platform specific check for dependent libraries
527 dnl otherwise libtool linking of shared libraries will
528 dnl fail on anything other than pass_all.
529 AC_CACHE_VAL(lt_cv_deplibs_check_method,
530 [lt_cv_deplibs_check_method=pass_all])
532 LT_INIT([dlopen win32-dll shared disable-static])
534 LT_LANG([Windows Resource])
538 lt_cv_deplibs_check_method=pass_all
540 AS_IF([test "${enable_shared}" = "no" -a "${enable_vlc}" != "no"], [
541 AC_MSG_ERROR([VLC is based on plugins. Shared libraries cannot be disabled.])
547 AM_GNU_GETTEXT_VERSION([0.19.8])
548 AM_GNU_GETTEXT([external], [need-formatstring-macros])
557 AS_IF([test "${SYS}" = "mingw32"], [
559 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
560 #if !defined(__MINGW32__)
561 # error Not compiling with mingw
565 dnl Check for broken versions of mingw-runtime compatability library
566 AC_MSG_CHECKING(for broken mingw-runtime)
567 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
569 #if defined(__MINGW64_VERSION_MAJOR)
570 # if __MINGW64_VERSION_MAJOR < 5
571 # error Update your mingw-w64! This one is too old.
574 # error You cannot compile with Mingw. Use Mingw-w64!
579 AC_MSG_RESULT([present])
580 AC_MSG_ERROR([LibVLC requires Mingw-w64 version 5.0 or higher!])
583 dnl force use of mingw provided c99 *printf over msvcrt
584 CPPFLAGS="${CPPFLAGS} -D__USE_MINGW_ANSI_STDIO=1"
586 dnl Check for the need to include the mingwex lib for mingw32
588 AC_CHECK_LIB([mingwex], [opendir],
589 AC_CHECK_LIB([mingw32], [opendir],,
590 [VLC_ADD_LIBS([libvlccore],[-lmingwex])])
594 AC_MSG_RESULT([Not compiling with mingw])
597 dnl Check for fnative-struct or mms-bitfields support for mingw32
598 AX_CHECK_COMPILE_FLAG([-mms-bitfields], [
599 AX_APPEND_FLAG([-mms-bitfields], [CFLAGS])
600 AX_APPEND_FLAG([-mms-bitfields], [CXXFLAGS])
601 # Check for the warning flag without "-Wno-", GCC accepts
602 # -Wno-<anything> for unsupported warnings, which can trigger
603 # other warnings instead.
604 AX_CHECK_COMPILE_FLAG([-Wincompatible-ms-struct], [
605 AX_APPEND_FLAG([-Wno-incompatible-ms-struct], [CFLAGS])
606 AX_APPEND_FLAG([-Wno-incompatible-ms-struct], [CXXFLAGS])
609 AX_CHECK_COMPILE_FLAG([-fnative-struct], [
610 AX_APPEND_FLAG([-fnative-struct], [CFLAGS])
611 AX_APPEND_FLAG([-fnative-struct], [CXXFLAGS])
618 dnl Buggy glibc prevention. Purposedly not cached.
619 dnl See sourceware.org bugs 5058 and 5443.
620 dnl Ubuntu alone has 20 bug numbers for this...
622 AC_MSG_CHECKING(for buggy GNU/libc versions)
623 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
625 #if defined (__GLIBC__) && (__GLIBC__ == 2) \
626 && (__GLIBC_MINOR__ >= 5) && (__GLIBC_MINOR__ <= 7)
627 # error GNU/libc with dcgettext killer bug!
630 AC_MSG_RESULT([not present])
632 AC_MSG_RESULT([found])
633 AS_IF([test "x${enable_nls}" != "xno"], [
634 AC_MSG_ERROR([Buggy GNU/libc (version 2.5 - 2.7) present. VLC would crash; there is no viable
635 work-around for this. Check with your distribution vendor on how to update the
636 glibc run-time. Alternatively, build with --disable-nls.])
640 dnl Plugin compilation stuff
644 dnl Check for system libs needed
647 dnl Check for usual libc functions
648 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])
649 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])
650 AC_REPLACE_FUNCS([gettimeofday])
651 AC_CHECK_FUNC(fdatasync,,
652 [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
655 VLC_REPLACE_DECL([realpath], [#include <stdlib.h>])
657 dnl mingw64 implements those as static inline, not functions with C linkage
658 VLC_REPLACE_DECL([asprintf], [#include <stdio.h>])
659 VLC_REPLACE_DECL([vasprintf], [#include <stdio.h>])
660 VLC_REPLACE_DECL([gmtime_r], [#include <time.h>])
661 VLC_REPLACE_DECL([localtime_r], [#include <time.h>])
663 dnl C11 static_assert()
664 AC_MSG_CHECKING([for static_assert in assert.h])
665 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <assert.h>], [
666 static_assert(1, "The impossible happened.");
669 AC_DEFINE([HAVE_STATIC_ASSERT], [1], [Define to 1 if <assert.h> defines static_assert.])
674 # Windows CE does not have strcoll()
677 dnl Check for non-standard system calls
680 AC_CHECK_FUNCS([eventfd vmsplice sched_getaffinity recvmmsg memfd_create])
683 AC_CHECK_FUNCS([_lock_file])
687 AH_BOTTOM([#include <vlc_fixups.h>])
689 dnl Check for struct pollfd
690 AC_CHECK_TYPES([struct pollfd],,,
691 [#include <sys/types.h>
694 #elif defined (_WIN32)
695 # include <winsock2.h>
699 dnl Check for struct timespec
700 AC_CHECK_TYPES([struct timespec],,,
703 dnl Check for max_align_t
704 AC_CHECK_TYPES([max_align_t],,,
705 [#include <stddef.h>])
707 dnl Checks for socket stuff
710 AC_SEARCH_LIBS(connect, [socket], [
711 AS_IF([test "$ac_cv_search_connect" != "none required"], [
712 SOCKET_LIBS="$ac_cv_search_connect"
715 AS_IF([test "${SYS}" = "mingw32"], [
716 SOCKET_LIBS="-lws2_32 -liphlpapi"
720 AC_SEARCH_LIBS([inet_pton], [nsl], [
721 AS_IF([test "$ac_cv_search_inet_pton" != "none required"], [
722 SOCKET_LIBS="$ac_cv_search_inet_pton $SOCKET_LIBS"
724 ],, [${SOCKET_LIBS}])
726 LIBS="${LIBS} ${SOCKET_LIBS}"
728 AC_LANG_PROGRAM([#ifdef _WIN32
729 #include <ws2tcpip.h>
731 # if _WIN32_WINNT < 0x600
735 #include <sys/socket.h>
736 #include <arpa/inet.h>
738 char dst[[sizeof(struct in_addr)]];
739 inet_pton(AF_INET, "127.0.0.1", dst);
740 ])],[AC_DEFINE([HAVE_INET_PTON],[1],[Define to 1 if you have inet_pton function])],[AC_LIBOBJ([inet_pton])])
741 AC_CHECK_TYPES([struct if_nameindex],,,[#include <net/if.h>])
742 AC_CHECK_FUNCS([if_nameindex])
744 AC_SUBST([SOCKET_LIBS])
746 dnl Check for socklen_t
747 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
748 AC_CACHE_CHECK([for socklen_t in sys/socket.h], dnl ` (fix VIM syntax highlight
749 ac_cv_type_socklen_t,
750 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
751 [#include <sys/types.h>
753 # include <winsock2.h>
754 # include <ws2tcpip.h>
756 # include <sys/socket.h>
757 #endif]], [[socklen_t len; len = 0;]])],
758 ac_cv_type_socklen_t=yes,
759 ac_cv_type_socklen_t=no)])
760 AS_IF([test "$ac_cv_type_socklen_t" = no],
761 [AC_DEFINE(socklen_t, unsigned int)])
763 dnl Check for struct sockaddr_storage
764 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
765 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
766 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
768 [#include <sys/types.h>
769 #if defined( _WIN32 )
770 # include <winsock2.h>
772 # include <sys/socket.h>
773 #endif], [struct sockaddr_storage addr;],
774 ac_cv_struct_sockaddr_storage=yes,
775 ac_cv_struct_sockaddr_storage=no)])
776 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
777 AC_DEFINE(sockaddr_storage, sockaddr)
778 AC_DEFINE(ss_family, sa_family)
781 dnl FreeBSD has a gnugetopt library for this:
783 AC_CHECK_FUNC(getopt_long,, [
784 AC_CHECK_LIB([gnugetopt],[getopt_long], [
785 GNUGETOPT_LIBS="-lgnugetopt"
788 AC_SUBST([GNUGETOPT_LIBS])
790 AC_CHECK_LIB([m], [cos], [
797 AC_CHECK_LIB([m], [lrintf], [
798 AC_DEFINE(HAVE_LRINTF, 1, [Define to 1 if you have the lrintf function])
799 VLC_ADD_LIBS([skins2],[-lm])
801 AC_CHECK_LIB([m], [nanf],
802 AC_DEFINE(HAVE_NANF, 1, [Define to 1 if you have the NANF function])
804 AC_CHECK_LIB([m], [sincos], [
805 AC_DEFINE(HAVE_SINCOS, 1, [Define to 1 if you have the sincos function.])
810 AC_MSG_CHECKING([broken qsort_r prototype])
811 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <stdlib.h>
813 _Static_assert(_Generic((qsort_r),
814 void (*)(void *, size_t, size_t, void *,
815 int (*)(void *, const void *, const void *)) : 1, default: 0),
816 "Bad prototype not matched");
818 AC_MSG_RESULT([broken])
819 AC_DEFINE([HAVE_BROKEN_QSORT_R], 1, [Defined to 1 if the qsort_r() prototype contradicts the upcoming POSIX standard.])
824 AC_MSG_CHECKING([_Thread_local support])
825 AC_COMPILE_IFELSE([AC_LANG_SOURCE([_Thread_local int foo = 0;
828 AC_DEFINE(HAVE_THREAD_LOCAL, 1, [Defined to 1 if C11 _Thread_local storage qualifier is supported])
829 ],[ AC_MSG_RESULT([no])])
831 dnl __STDC_NO_THREADS__ can't be trusted on some platforms.
832 dnl check for its availability explicitely
833 AC_CHECK_HEADERS([threads.h])
835 AC_CHECK_LIB([anl],[getaddrinfo_a],[
836 AC_DEFINE(HAVE_LIBANL, 1, [Define to 1 if you have the anl library])
839 dnl Check for dynamic plugins
841 have_dynamic_objects="no"
843 AC_SEARCH_LIBS(dlsym, [dl svld], [
844 AS_IF([test "$ac_cv_search_dlsym" != "none required"], [
845 LIBDL="$ac_cv_search_dlsym"
847 have_dynamic_objects="yes"
852 AS_IF([test "${SYS}" = "mingw32"], [
854 have_dynamic_objects="yes" #assume we can use shared objects
857 AC_ARG_WITH([libfuzzer],
858 AS_HELP_STRING([--with-libfuzzer=DIR],
859 [use libFuzzer library from DIR and triggers sanitize coverage (default disabled)]),
862 AS_VAR_IF(with_libfuzzer, no, [], [
867 AM_CONDITIONAL([HAVE_LIBFUZZER], [test "${with_libfuzzer}" != "no"])
869 AS_IF([test "${enable_shared}" = "no"], [
870 have_dynamic_objects=no
872 AM_CONDITIONAL([HAVE_DYNAMIC_PLUGINS], [test "${have_dynamic_objects}" != "no"])
876 AS_IF([test "${SYS}" != "mingw32"], [
877 AC_SEARCH_LIBS([clock_nanosleep], [rt pthread], [
878 AS_IF([test "$ac_cv_search_clock_nanosleep" != "none required"], [
879 LIBRT="$ac_cv_search_clock_nanosleep"
882 AC_SEARCH_LIBS([nanosleep], [rt pthread posix4], [
883 AS_IF([test "$ac_cv_search_nanosleep" != "none required"], [
884 LIBRT="$ac_cv_search_nanosleep"
892 dnl Check for headers
896 AC_CHECK_HEADERS([arpa/inet.h pthread.h search.h sys/shm.h sys/socket.h sys/uio.h])
897 AC_CHECK_HEADERS([net/if.h], [], [],
899 #include <sys/types.h>
900 #include <sys/socket.h>
902 AC_CHECK_HEADER([syslog.h], [have_syslog="yes"], [have_syslog="no"])
903 AM_CONDITIONAL([HAVE_SYSLOG], [test "$have_syslog" = "yes"])
906 AC_CHECK_HEADERS([netinet/tcp.h netinet/udplite.h sys/param.h sys/mount.h])
909 AC_CHECK_HEADERS([features.h getopt.h linux/dccp.h linux/magic.h sys/eventfd.h])
912 AC_CHECK_HEADERS([xlocale.h])
914 dnl Check if C++ headers define locale_t
916 AC_CACHE_CHECK([if C++ headers define locale_t],
917 [ac_cv_cxx_locale_t],
918 [ac_cv_cxx_locale_t=no
919 AC_TRY_COMPILE([#include <locale>], [locale_t loc;],
920 [ac_cv_cxx_locale_t=yes])])
921 if test "${ac_cv_cxx_locale_t}" != "no"; then
922 AC_DEFINE(HAVE_CXX_LOCALE_T, 1, Define to 1 if C++ headers define locale_t)
926 dnl LP64 and LLP64 architectures had better define ssize_t by themselves...
927 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.]) dnl ` (fix VIM syntax highlight
928 AC_CHECK_TYPE(ssize_t,, [
929 AC_DEFINE(ssize_t, int)
932 dnl It seems that autoconf detects pkg-config only during the first
933 dnl PKG_CHECK_MODULES from configure.ac - which makes sense. But in our case,
934 dnl it is nested within a conditional block, so it was not working right.
935 PKG_PROG_PKG_CONFIG()
937 dnl On some OS we need static linking
938 AS_IF([test -n "${PKG_CONFIG}" ],[
939 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "darwin" -o "${SYS}" = "os2" ],[
940 PKG_CONFIG="${PKG_CONFIG} --static"
946 dnl Check for zlib.h and -lz if available
948 AC_CHECK_HEADERS([zlib.h], [ have_zlib=yes ], [ have_zlib=no ])
949 AM_CONDITIONAL([HAVE_ZLIB], [ test "${have_zlib}" = "yes" ])
950 if test "${have_zlib}" = "yes"
952 VLC_ADD_LIBS([sap],[-lz])
957 dnl Domain name i18n support via GNU libidn
959 PKG_CHECK_MODULES([IDN], [libidn], [
961 AC_DEFINE([HAVE_IDN], 1, [Define to 1 if you have GNU libidn.])
968 AC_ARG_ENABLE([dbus],
969 AS_HELP_STRING([--enable-dbus],
970 [compile D-Bus message bus support (default enabled)]))
972 AS_IF([test "${enable_dbus}" != "no"], [
973 PKG_CHECK_MODULES(DBUS, [dbus-1 >= 1.6.0], [
976 AS_IF([test -n "${enable_dbus}"], [
977 AC_MSG_ERROR([${DBUS_PKG_ERRORS}.])
979 AC_MSG_WARN([${DBUS_PKG_ERRORS}.])
983 AM_CONDITIONAL([HAVE_DBUS], [test "${have_dbus}" = "yes"])
986 dnl Check for systemd
987 PKG_CHECK_MODULES([SYSTEMD], [libsystemd], [
990 AC_MSG_WARN([${SYSTEMD_PKG_ERRORS}.])
992 AM_CONDITIONAL([HAVE_SYSTEMD], [test "${have_systemd}" = "yes"])
995 EXTEND_HELP_STRING([Optimization options:])
997 dnl Compiler warnings
1000 AX_APPEND_COMPILE_FLAGS([-Wall -Wextra -Wsign-compare -Wundef -Wpointer-arith -Wvolatile-register-var -Wformat -Wformat-security -Wduplicated-branches -Wduplicated-cond], [CFLAGS])
1001 AX_APPEND_COMPILE_FLAGS([-Wall -Wextra -Wsign-compare -Wundef -Wpointer-arith -Wvolatile-register-var -Wformat -Wformat-security -Wduplicated-branches -Wduplicated-cond], [CXXFLAGS])
1003 AX_APPEND_COMPILE_FLAGS([-Wbad-function-cast -Wwrite-strings -Wmissing-prototypes -Werror-implicit-function-declaration -Winit-self -Wlogical-op -Wshadow=local -Wmultistatement-macros], [CFLAGS])
1004 AX_APPEND_COMPILE_FLAGS([-pipe], [CFLAGS])
1009 AC_ARG_ENABLE([debug],
1010 AS_HELP_STRING([--disable-debug],
1011 [disable run-time assertions (default enabled)]),,
1012 [enable_debug="yes"])
1014 [Define to 1 if debug code should NOT be compiled])
1015 AS_IF([test "${enable_debug}" != "no"], [
1016 AC_CHECK_HEADERS([valgrind/valgrind.h])
1024 AC_ARG_ENABLE([gprof],
1025 AS_HELP_STRING([--enable-gprof],[profile with gprof (default disabled)]),,
1026 [enable_gprof="no"])
1027 AS_IF([test "${enable_gprof}" != "no"], [
1028 CFLAGS="${CFLAGS} -pg"
1029 CXXFLAGS="${CXXFLAGS} -pg"
1030 OBJCFLAGS="${OBJCFLAGS} -pg"
1031 LDFLAGS="${LDFLAGS} -pg"
1034 AC_ARG_ENABLE([cprof],
1035 AS_HELP_STRING([--enable-cprof],[profile with cprof (default disabled)]),,
1036 [enable_cprof="no"])
1037 AS_IF([test "${enable_gprof}" != "no"], [
1038 CFLAGS="${CFLAGS} -finstrument-functions"
1039 CXXFLAGS="${CXXFLAGS} -finstrument-functions"
1040 OBJCFLAGS="${OBJCFLAGS} -finstrument-functions"
1041 LDFLAGS="${LDFLAGS} -finstrument-functions"
1047 AC_ARG_ENABLE([coverage],
1048 AS_HELP_STRING([--enable-coverage],
1049 [build for test coverage (default disabled)]),,
1050 [enable_coverage="no"])
1051 AS_IF([test "${enable_coverage}" != "no"], [
1052 CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
1053 CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
1054 LDFLAGS="-lgcov ${LDFLAGS}"
1057 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "os2"], [
1059 CFLAGS="${CFLAGS} -fvisibility=hidden"
1060 CXXFLAGS="${CXXFLAGS} -fvisibility=hidden"
1061 OBJCFLAGS="${OBJCFLAGS} -fvisibility=hidden"
1062 AC_CACHE_CHECK([if $CC accepts -fvisibility=hidden],
1063 [ac_cv_c_visibility_hidden], [
1064 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1065 ac_cv_c_visibility_hidden=yes
1067 ac_cv_c_visibility_hidden=no
1070 AS_IF([test "${ac_cv_c_visibility_hidden}" = "no"], [VLC_RESTORE_FLAGS])
1076 AC_ARG_WITH([sanitizer],
1077 AS_HELP_STRING([--with-sanitizer=(address/memory/undefined/thread)],
1078 [build with sanitizer flags (default disabled)]),
1080 [with_sanitizer=no])
1082 AS_VAR_IF(with_sanitizer, no, [], [
1083 AX_CHECK_COMPILE_FLAG([-fsanitize=${with_sanitizer}], [
1084 AX_APPEND_FLAG([-fsanitize=${with_sanitizer}])
1085 AX_APPEND_FLAG([-fsanitize=${with_sanitizer}], [CXXFLAGS])
1086 AX_APPEND_FLAG([-fsanitize=${with_sanitizer}], [LDFLAGS])
1088 AC_MSG_ERROR(["-fsanitize=${with_sanitizer} not supported!"])
1090 AX_APPEND_FLAG([-g])
1091 AX_APPEND_FLAG([-g], [CXXFLAGS])
1093 AS_IF([test -z "${with_sanitizer##*address*}" ], [
1094 AX_APPEND_COMPILE_FLAGS([-fsanitize-address-use-after-scope -fno-omit-frame-pointer -fsanitize=pointer-compare -fsanitize=pointer-subtract])
1095 AX_APPEND_COMPILE_FLAGS([-fsanitize-address-use-after-scope -fno-omit-frame-pointer -fsanitize=pointer-compare -fsanitize=pointer-subtract], [CXXFLAGS])
1097 AS_IF([test -z "${with_sanitizer##*memory*}" ], [
1098 AX_APPEND_COMPILE_FLAGS([-fPIE -pie])
1099 AX_APPEND_COMPILE_FLAGS([-fPIE -pie], [CXXFLAGS])
1101 AS_IF([test -z "${with_sanitizer##*thread*}" ], [
1102 AX_APPEND_COMPILE_FLAGS([-fPIE -pie])
1103 AX_APPEND_COMPILE_FLAGS([-fPIE -pie], [CXXFLAGS])
1108 dnl Enable/disable optimizations
1110 AC_ARG_ENABLE([optimizations],
1111 AS_HELP_STRING([--disable-optimizations],
1112 [disable compiler optimizations (default enabled)]),,
1113 [enable_optimizations="yes"])
1115 dnl Check for various optimization flags
1116 AS_IF([test "${enable_optimizations}" != "no"], [
1118 dnl -O3 only in production builds
1119 AS_IF([test "${enable_debug}" = "no"], [
1121 CFLAGS="${CFLAGS} -O3"
1122 CXXFLAGS="${CXXFLAGS} -O3"
1123 OBJCFLAGS="${OBJCFLAGS} -O3"
1124 AC_CACHE_CHECK([if $CC accepts -O3], [ac_cv_c_o3], [
1125 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1131 AS_IF([test "${ac_cv_c_o3}" = "no"], [VLC_RESTORE_FLAGS])
1134 dnl Check for fast maths
1135 AX_APPEND_COMPILE_FLAGS([-fno-math-errno -funsafe-math-optimizations -fno-rounding-math -fno-signaling-nans -fcx-limited-range], [CFLAGS])
1136 AX_APPEND_COMPILE_FLAGS([-fno-math-errno -funsafe-math-optimizations -fno-rounding-math -fno-signaling-nans -fcx-limited-range], [CXXFLAGS])
1139 #if defined(_MSC_VER) && !defined(__clang__)
1140 # pragma fenv_access(off)
1141 # pragma fp_contract(on)
1142 #elif defined(__GNUC__)
1143 /* Not supported so far */
1145 # pragma STDC FENV_ACCESS OFF
1146 # pragma STDC FP_CONTRACT ON
1150 dnl Check for -funroll-loops
1152 CFLAGS="${CFLAGS} -funroll-loops"
1153 CXXFLAGS="${CXXFLAGS} -funroll-loops"
1154 OBJCFLAGS="${OBJCFLAGS} -funroll-loops"
1155 AC_CACHE_CHECK([if $CC accepts -funroll-loops], [ac_cv_c_unroll_loops], [
1156 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1157 ac_cv_c_unroll_loops=yes
1159 ac_cv_c_unroll_loops=no
1162 AS_IF([test "${ac_cv_c_unroll_loops}" = "no"], [VLC_RESTORE_FLAGS])
1164 AS_IF([test "$enable_debug" = "no"], [
1165 dnl Check for -fomit-frame-pointer
1167 CFLAGS="${CFLAGS} -fomit-frame-pointer"
1168 CXXFLAGS="${CXXFLAGS} -fomit-frame-pointer"
1169 OBJCFLAGS="${OBJCFLAGS} -fomit-frame-pointer"
1170 AC_CACHE_CHECK([if $CC accepts -fomit-frame-pointer],
1171 [ac_cv_c_omit_frame_pointer], [
1172 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1173 ac_cv_c_omit_frame_pointer=yes
1175 ac_cv_c_omit_frame_pointer=no
1178 AS_IF([test "${ac_cv_c_omit_frame_pointer}" = "no"], [VLC_RESTORE_FLAGS])
1183 AC_ARG_ENABLE([ssp],
1184 AS_HELP_STRING([--disable-ssp],
1185 [disable stack smashing protection (default enabled for optimized builds)]), [],
1188 AS_IF([test "${enable_ssp}" != "no" -a "${enable_optimizations}" != "no"], [
1190 AX_APPEND_COMPILE_FLAGS([-fstack-protector-strong])
1191 AX_APPEND_COMPILE_FLAGS([-fstack-protector-strong], [CXXFLAGS])
1192 dnl Win32 requires linking to ssp for stack-protection
1193 AS_IF([test "${SYS}" = "mingw32"], [
1194 LDFLAGS="${LDFLAGS} -lssp"
1195 AC_CACHE_CHECK([if linker supports stack protectors], [ac_cv_ld_ssp], [
1196 AC_TRY_LINK([#include <stdio.h>],[char buf[100]; fgets(buf, sizeof(buf), stdin);], [
1202 AS_IF([test "${ac_cv_ld_ssp}" = "no"], [VLC_RESTORE_FLAGS])
1206 AS_IF([test "${SYS}" = "mingw32"], [
1207 dnl library for BCrypt APIs
1208 AS_IF([test "${vlc_winstore_app}" = 1],
1209 [LDFLAGS="${LDFLAGS} -lbcrypt"])
1213 LDFLAGS="${LDFLAGS} -Wl,-Bsymbolic"
1214 AC_CACHE_CHECK([if linker supports -Bsymbolic], [ac_cv_ld_bsymbolic], [
1216 ac_cv_ld_bsymbolic="-Wl,-Bsymbolic"
1218 ac_cv_ld_bsymbolic=""
1222 SYMBOLIC_LDFLAGS="${ac_cv_ld_bsymbolic}"
1223 AC_SUBST([SYMBOLIC_LDFLAGS])
1226 LDFLAGS="${LDFLAGS} -Wl,-z,defs"
1227 AC_CACHE_CHECK([if linker supports -z,defs], [ac_cv_ld_z_defs], [
1229 ac_cv_ld_z_defs="yes"
1231 ac_cv_ld_z_defs="no"
1234 AS_IF([test "${ac_cv_ld_z_defs}" = "no"], [VLC_RESTORE_FLAGS])
1236 dnl Check for __attribute__((packed))
1237 AC_CACHE_CHECK([for __attribute__((packed))],
1238 [ac_cv_c_attribute_packed],
1239 [ac_cv_c_attribute_packed=no
1240 AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b; (void)b;],
1241 [ac_cv_c_attribute_packed=yes])])
1242 if test "${ac_cv_c_attribute_packed}" != "no"; then
1243 AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1249 case "${host_cpu}" in
1262 dnl Check for backtrace() support
1263 AC_CHECK_HEADERS([execinfo.h])
1264 AC_CHECK_FUNCS([backtrace])
1269 ALIASES="${ALIASES} cvlc rvlc"
1272 dnl Accelerated modules
1275 dnl Check for fully working MMX intrinsics
1276 dnl We need support for -mmmx, we need <mmintrin.h>, and we also need a
1277 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1278 AC_ARG_ENABLE([mmx],
1279 AS_HELP_STRING([--disable-mmx],
1280 [disable MMX optimizations (default auto)]),,[
1281 case "${host_cpu}" in
1292 AS_IF([test "${enable_mmx}" != "no"], [
1295 CFLAGS="${CFLAGS} -mmmx"
1296 AC_CACHE_CHECK([if $CC groks MMX intrinsics], [ac_cv_c_mmx_intrinsics], [
1297 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1298 [#include <mmintrin.h>
1300 uint64_t frobzor;]], [
1302 a = b = c = (__m64)frobzor;
1303 a = _mm_slli_pi16(a, 3);
1304 a = _mm_adds_pi16(a, b);
1305 c = _mm_srli_pi16(c, 8);
1306 c = _mm_slli_pi16(c, 3);
1307 b = _mm_adds_pi16(b, c);
1308 a = _mm_unpacklo_pi8(a, b);
1309 frobzor = (uint64_t)a;]])], [
1310 ac_cv_c_mmx_intrinsics=yes
1312 ac_cv_c_mmx_intrinsics=no
1316 AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1317 AC_DEFINE(HAVE_MMX_INTRINSICS, 1, [Define to 1 if MMX intrinsics are available.])
1321 CFLAGS="${CFLAGS} -mmmx"
1322 AC_CACHE_CHECK([if $CC groks MMX inline assembly], [ac_cv_mmx_inline], [
1323 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1325 asm volatile("packuswb %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1328 ac_cv_mmx_inline=yes
1333 AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1334 AC_DEFINE(CAN_COMPILE_MMX, 1, [Define to 1 inline MMX assembly is available.])
1338 AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1339 [ac_cv_mmxext_inline], [
1340 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1342 asm volatile("maskmovq %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1345 ac_cv_mmxext_inline=yes
1347 ac_cv_mmxext_inline=no
1351 AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1352 AC_DEFINE(CAN_COMPILE_MMXEXT, 1, [Define to 1 if MMX EXT inline assembly is available.])
1356 AM_CONDITIONAL([HAVE_MMX], [test "${have_mmx}" = "yes"])
1357 AM_CONDITIONAL([HAVE_MMXEXT], [test "${have_mmxext}" = "yes"])
1359 dnl Check for fully workin SSE2 intrinsics
1360 dnl We need support for -msse[2], we need <emmintrin.h>, and we also need a
1361 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1362 AC_ARG_ENABLE([sse],
1363 AS_HELP_STRING([--disable-sse],
1364 [disable SSE (1-4) optimizations (default auto)]),, [
1365 case "${host_cpu}" in
1375 AS_IF([test "${enable_sse}" != "no"], [
1376 ARCH="${ARCH} sse sse2"
1379 CFLAGS="${CFLAGS} -msse2"
1380 AC_CACHE_CHECK([if $CC groks SSE2 intrinsics], [ac_cv_c_sse2_intrinsics], [
1381 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1382 [#include <emmintrin.h>
1384 uint64_t frobzor;]], [
1386 a = b = c = _mm_set1_epi64((__m64)frobzor);
1387 a = _mm_slli_epi16(a, 3);
1388 a = _mm_adds_epi16(a, b);
1389 c = _mm_srli_epi16(c, 8);
1390 c = _mm_slli_epi16(c, 3);
1391 b = _mm_adds_epi16(b, c);
1392 a = _mm_unpacklo_epi8(a, b);
1393 frobzor = (uint64_t)_mm_movepi64_pi64(a);]])], [
1394 ac_cv_c_sse2_intrinsics=yes
1396 ac_cv_c_sse2_intrinsics=no
1400 AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1401 AC_DEFINE(HAVE_SSE2_INTRINSICS, 1, [Define to 1 if SSE2 intrinsics are available.])
1405 CFLAGS="${CFLAGS} -msse"
1406 AC_CACHE_CHECK([if $CC groks SSE inline assembly], [ac_cv_sse_inline], [
1407 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1409 asm volatile("xorps %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1412 ac_cv_sse_inline=yes
1418 AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1419 AC_DEFINE(CAN_COMPILE_SSE, 1, [Define to 1 if SSE inline assembly is available.])
1422 AC_CACHE_CHECK([if $CC groks SSE2 inline assembly], [ac_cv_sse2_inline], [
1423 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1425 asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1428 ac_cv_sse2_inline=yes
1430 ac_cv_sse2_inline=no
1433 AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1434 AC_DEFINE(CAN_COMPILE_SSE2, 1, [Define to 1 if SSE2 inline assembly is available.])
1439 AC_CACHE_CHECK([if $CC groks SSE3 inline assembly], [ac_cv_sse3_inline], [
1440 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1442 asm volatile("movsldup %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1445 ac_cv_sse3_inline=yes
1447 ac_cv_sse3_inline=no
1451 AS_IF([test "${ac_cv_sse3_inline}" != "no"], [
1452 AC_DEFINE(CAN_COMPILE_SSE3, 1, [Define to 1 if SSE3 inline assembly is available.]) ])
1455 AC_CACHE_CHECK([if $CC groks SSSE3 inline assembly], [ac_cv_ssse3_inline], [
1456 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1458 asm volatile("pabsw %%xmm0,%%xmm0"::"r"(p):"xmm0");
1461 ac_cv_ssse3_inline=yes
1463 ac_cv_ssse3_inline=no
1467 AS_IF([test "${ac_cv_ssse3_inline}" != "no"], [
1468 AC_DEFINE(CAN_COMPILE_SSSE3, 1, [Define to 1 if SSSE3 inline assembly is available.]) ])
1471 AC_CACHE_CHECK([if $CC groks SSE4.1 inline assembly],
1472 [ac_cv_sse4_1_inline], [
1473 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1475 asm volatile("pmaxsb %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1478 ac_cv_sse4_1_inline=yes
1480 ac_cv_sse4_1_inline=no
1484 AS_IF([test "${ac_cv_sse4_1_inline}" != "no"], [
1485 AC_DEFINE(CAN_COMPILE_SSE4_1, 1, [Define to 1 if SSE4_1 inline assembly is available.]) ])
1488 AC_CACHE_CHECK([if $CC groks SSE4.2 inline assembly],
1489 [ac_cv_sse4_2_inline], [
1490 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1492 asm volatile("pcmpgtq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1495 ac_cv_sse4_2_inline=yes
1497 ac_cv_sse4_2_inline=no
1501 AS_IF([test "${ac_cv_sse4_2_inline}" != "no"], [
1502 AC_DEFINE(CAN_COMPILE_SSE4_2, 1, [Define to 1 if SSE4_2 inline assembly is available.]) ])
1505 AC_CACHE_CHECK([if $CC groks SSE4A inline assembly], [ac_cv_sse4a_inline], [
1506 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1508 asm volatile("insertq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1511 ac_cv_sse4a_inline=yes
1513 ac_cv_sse4a_inline=no
1517 AS_IF([test "${ac_cv_sse4a_inline}" != "no"], [
1518 AC_DEFINE([CAN_COMPILE_SSE4A], [1], [Define to 1 if SSE4A inline assembly is available.]) ])
1520 AM_CONDITIONAL([HAVE_SSE2], [test "$have_sse2" = "yes"])
1522 dnl Check for fully workin AVX2 intrinsics
1523 dnl We need support for -mavx[2], we need <immintrin.h>, and we also need a
1524 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1525 AC_ARG_ENABLE([avx],
1526 AS_HELP_STRING([--disable-avx],
1527 [disable AVX (1-2) optimizations (default auto)]),, [
1528 case "${host_cpu}" in
1538 AS_IF([test "${enable_avx}" != "no"], [
1539 ARCH="${ARCH} avx avx2"
1542 CFLAGS="${CFLAGS} -mavx2"
1543 AC_CACHE_CHECK([if $CC groks AVX2 intrinsics], [ac_cv_c_avx2_intrinsics], [
1544 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1545 [#include <immintrin.h>
1547 uint64_t frobzor;]], [
1549 a = b = c = _mm256_set1_epi64x((int64_t)frobzor);
1550 a = _mm256_slli_epi16(a, 3);
1551 a = _mm256_adds_epi16(a, b);
1552 c = _mm256_srli_epi16(c, 8);
1553 c = _mm256_slli_epi16(c, 3);
1554 b = _mm256_adds_epi16(b, c);
1555 a = _mm256_unpacklo_epi8(a, b);
1556 frobzor = (uint64_t)_mm256_extract_epi64(a, 0);]])], [
1557 ac_cv_c_avx2_intrinsics=yes
1559 ac_cv_c_avx2_intrinsics=no
1563 AS_IF([test "${ac_cv_c_avx2_intrinsics}" != "no"], [
1564 AC_DEFINE(HAVE_AVX2_INTRINSICS, 1, [Define to 1 if AVX2 intrinsics are available.])
1568 CFLAGS="${CFLAGS} -mavx"
1569 AC_CACHE_CHECK([if $CC groks AVX inline assembly], [ac_cv_avx_inline], [
1570 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1572 asm volatile("xorps256 %%ymm1,%%ymm2"::"r"(p):"ymm1", "ymm2");
1575 ac_cv_avx_inline=yes
1581 AS_IF([test "${ac_cv_avx_inline}" != "no" -a "${SYS}" != "solaris"], [
1582 AC_DEFINE(CAN_COMPILE_AVX, 1, [Define to 1 if AVX inline assembly is available.])
1585 AC_CACHE_CHECK([if $CC groks AVX2 inline assembly], [ac_cv_avx2_inline], [
1586 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1588 asm volatile("punpckhqdq256 %%ymm1,%%ymm2"::"r"(p):"ymm1", "ymm2");
1591 ac_cv_avx2_inline=yes
1593 ac_cv_avx2_inline=no
1597 AS_IF([test "${ac_cv_avx2_inline}" != "no" -a "${SYS}" != "solaris"], [
1598 AC_DEFINE(CAN_COMPILE_AVX2, 1, [Define to 1 if AVX2 inline assembly is available.])
1602 AM_CONDITIONAL([HAVE_AVX2], [test "$have_avx2" = "yes"])
1605 CFLAGS="${CFLAGS} -mmmx"
1607 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly], [ac_cv_3dnow_inline], [
1608 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1610 asm volatile("pfadd %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1613 ac_cv_3dnow_inline=yes
1615 ac_cv_3dnow_inline=no
1619 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1620 AC_DEFINE([CAN_COMPILE_3DNOW], 1,
1621 [Define to 1 if 3D Now! inline assembly is available.])
1624 AM_CONDITIONAL([HAVE_3DNOW], [test "$have_3dnow" = "yes"])
1627 AC_ARG_ENABLE([neon],
1628 AS_HELP_STRING([--disable-neon],
1629 [disable ARM NEON optimizations (default auto)]),, [
1630 case "${host_cpu}" in
1642 AS_IF([test "${enable_neon}" != "no"], [
1644 AC_CACHE_CHECK([if $CCAS groks ARM NEON assembly], [ac_cv_arm_neon], [
1645 AS_IF([test "${enable_neon}" != "64"], [
1646 CFLAGS="${CFLAGS} -mfpu=neon -mhard-float"
1649 asm volatile("vqmovun.s64 d0, q1":::"d0");
1657 CFLAGS="${CFLAGS} -march=armv8-a+simd"
1660 asm volatile("uhadd v0.8b, v0.8b, v1.8b":::"v0");
1671 AM_CONDITIONAL([HAVE_NEON], [test "${ac_cv_arm_neon}" = "32"])
1672 AM_CONDITIONAL([HAVE_ARM64], [test "${ac_cv_arm_neon}" = "64"])
1674 AC_ARG_ENABLE([sve],
1675 AS_HELP_STRING([--disable-sve],
1676 [disable ARM SVE optimizations (default auto)]),, [
1677 AS_IF([test "${host_cpu}" = "aarch64"], [enable_sve="yes"] ,[enable_sve="no"])
1679 AS_IF([test "${enable_sve}" != "no"], [
1681 CFLAGS="${CFLAGS} -march=armv8-a+sve"
1682 AC_CACHE_CHECK([if $CCAS groks ARM SVE assembly], [ac_cv_arm_sve], [
1685 asm volatile("ptrue p0.s" ::: "p0");
1695 AM_CONDITIONAL([HAVE_SVE], [test "${ac_cv_arm_sve}" = "yes"])
1697 AC_ARG_ENABLE([branch-protection],
1698 AS_HELP_STRING([--disable-branch-protection],
1699 [disable AArch64 branch protection (default auto)]),, [
1700 AS_IF([test "${host_cpu}" = "aarch64"], [enable_brprot="yes"] ,[enable_brprot="no"])
1702 AS_IF([test "${enable_brprot}" != "no"], [
1703 AX_CHECK_COMPILE_FLAG([-mbranch-protection=standard], [
1704 AX_APPEND_FLAG([-mbranch-protection=standard], [CFLAGS])
1705 AX_APPEND_FLAG([-mbranch-protection=standard], [CXXFLAGS])
1710 AC_ARG_ENABLE([altivec],
1711 AS_HELP_STRING([--disable-altivec],
1712 [disable AltiVec optimizations (default auto)]),, [
1713 AS_CASE("${host_cpu}", [powerpc*],
1714 [enable_altivec=yes], [enable_altivec=no])
1718 AS_IF([test "${enable_altivec}" = "yes"], [
1719 ARCH="${ARCH} altivec";
1721 AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1722 [ac_cv_altivec_inline],
1723 [AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1724 ac_cv_altivec_inline="yes",
1725 [CFLAGS="${CFLAGS} -Wa,-maltivec"
1726 AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1727 [ac_cv_altivec_inline="-Wa,-maltivec"],
1728 ac_cv_altivec_inline=no)
1731 AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1732 AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1733 [Define to 1 if AltiVec inline assembly is available.])
1734 AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1735 ALTIVEC_CFLAGS="${ac_cv_altivec_inline}"
1736 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_altivec_inline}])
1742 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1743 [ac_cv_c_altivec], [
1744 CFLAGS="${CFLAGS} -maltivec"
1745 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1746 [#include <altivec.h>]], [
1747 [vec_ld(0, (unsigned char *)0);]])], [
1748 ac_cv_c_altivec="-maltivec"
1750 ac_cv_c_altivec="no"
1754 AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1755 CPPFLAGS="${CPPFLAGS} ${ac_cv_c_altivec}"
1756 AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, [Define to 1 if C AltiVec extensions are available.])
1757 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_c_altivec}])
1758 ALTIVEC_CFLAGS="$ALTIVEC_CFLAGS ${ac_cv_c_altivec}"
1759 VLC_ADD_CFLAGS([deinterlace],[${ac_cv_c_altivec}])
1762 AC_CHECK_HEADERS([altivec.h])
1765 LDFLAGS="${LDFLAGS} -Wl,-framework,vecLib"
1766 AC_CACHE_CHECK([if linker needs -framework vecLib],
1768 [AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)])
1770 AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1771 VLC_ADD_LIBS([libvlccore],[-Wl,-framework,vecLib])
1774 AC_SUBST([ALTIVEC_CFLAGS])
1775 AM_CONDITIONAL([HAVE_ALTIVEC], [test "$have_altivec" = "yes"])
1780 AC_ARG_ENABLE([optimize-memory],
1781 AS_HELP_STRING([--enable-optimize-memory],
1782 [optimize memory usage over performance]))
1783 if test "${enable_optimize_memory}" = "yes"; then
1784 AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1788 dnl Allow running as root (useful for people running on embedded platforms)
1790 AC_ARG_ENABLE([run-as-root],
1791 AS_HELP_STRING([--enable-run-as-root],
1792 [allow running VLC as root (default disabled)]))
1793 AS_IF([test "${enable_run_as_root}" = "yes"],[
1794 AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1795 [Define to 1 to allow running VLC as root (uid 0).])
1801 AC_ARG_ENABLE([sout],
1802 AS_HELP_STRING([--disable-sout],
1803 [disable streaming output (default enabled)]))
1804 AS_IF([test "${enable_sout}" != "no"], [
1805 AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1807 AM_CONDITIONAL([ENABLE_SOUT], [test "${enable_sout}" != "no"])
1810 AC_ARG_ENABLE([lua],
1811 AS_HELP_STRING([--disable-lua],
1812 [disable LUA scripting support (default enabled)]))
1813 if test "${enable_lua}" != "no"
1815 PKG_CHECK_MODULES(LUA, lua5.2,
1818 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua 5.1 instead])
1820 PKG_CHECK_MODULES(LUA, lua5.1,
1823 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua >= 5.1 instead])
1824 PKG_CHECK_MODULES(LUA, lua >= 5.1,
1827 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying manual detection instead])
1829 AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1832 AC_CHECK_LIB( lua5.2 , luaL_newstate,
1833 [LUA_LIBS="-llua5.2"],
1834 AC_CHECK_LIB( lua5.1 , luaL_newstate,
1835 [LUA_LIBS="-llua5.1"],
1836 AC_CHECK_LIB( lua51 , luaL_newstate,
1837 [LUA_LIBS="-llua51"],
1838 AC_CHECK_LIB( lua , luaL_newstate,
1846 if test "x${have_lua}" != "xyes" ; then
1847 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.])
1849 AC_ARG_VAR([LUAC], [LUA byte compiler])
1850 AS_IF([test -z "$LUAC"], [
1851 AC_CHECK_TOOL(LUAC, [luac], [false])
1853 AS_IF([test "${LUAC}" = "false"], [
1854 AC_MSG_ERROR([Could not find the LUA byte compiler.])
1856 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], [
1857 AC_MSG_ERROR([You need 32-bits luac when using lua from contrib.])
1860 AM_CONDITIONAL([BUILD_LUA], [test "${have_lua}" = "yes"])
1864 dnl VideoLAN manager
1866 AC_ARG_ENABLE([vlm],
1867 AS_HELP_STRING([--disable-vlm],
1868 [disable the stream manager (default enabled)]),,
1869 [enable_vlm="${enable_sout}"])
1870 AS_IF([test "${enable_vlm}" != "no"], [
1871 AS_IF([test "${enable_sout}" = "no"], [
1872 AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1874 AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1876 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1880 dnl Addons manager storage and repositories modules
1882 AC_ARG_ENABLE([addonmanagermodules],
1883 AS_HELP_STRING([--disable-addonmanagermodules],
1884 [disable the addons manager modules (default enabled)]))
1885 if test "${enable_addonmanagermodules}" != "no"
1887 AC_DEFINE(ENABLE_ADDONMANAGERMODULES, 1, [Define if you want the addons manager modules])
1889 AM_CONDITIONAL([ENABLE_ADDONMANAGERMODULES], [test "${enable_addonmanagermodules}" != "no"])
1896 EXTEND_HELP_STRING([Input plugins:])
1899 dnl libarchive access module
1901 PKG_ENABLE_MODULES_VLC([ARCHIVE], [archive], [libarchive >= 3.1.0], (libarchive support), [auto])
1906 AC_ARG_ENABLE([live555],
1907 AS_HELP_STRING([--enable-live555],
1908 [enable RTSP input through live555 (default enabled)]))
1910 AS_IF([test "${enable_live555}" != "no" -a -n "${CXX}"], [
1911 PKG_CHECK_MODULES(LIVE555, live555, [
1912 VLC_ADD_PLUGIN([live555])
1913 VLC_ADD_CXXFLAGS([live555], [$LIVE555_CFLAGS])
1914 VLC_ADD_LIBS([live555],[$LIVE555_LIBS])
1916 AC_MSG_WARN([${LIVE555_PKG_ERRORS}.])
1921 dnl detect include paths
1922 AS_IF([test -f "${CONTRIB_DIR}/include/UsageEnvironment/UsageEnvironment.hh"], [
1923 CPPFLAGS_live555="-I${CONTRIB_DIR}/include/liveMedia -I${CONTRIB_DIR}/include/groupsock -I${CONTRIB_DIR}/include/BasicUsageEnvironment -I${CONTRIB_DIR}/include/UsageEnvironment"
1925 AS_IF([test "${SYS}" != "os2"], [
1926 LIVE555_PREFIX=${LIVE555_PREFIX-"/usr"}
1927 CPPFLAGS_live555="-I${LIVE555_PREFIX}/include/liveMedia -I${LIVE555_PREFIX}/include/groupsock -I${LIVE555_PREFIX}/include/BasicUsageEnvironment -I${LIVE555_PREFIX}/include/UsageEnvironment"
1929 LIVE555_PREFIX=${LIVE555_PREFIX-"/usr/lib/live"}
1930 CPPFLAGS_live555="-I${LIVE555_PREFIX}/liveMedia/include -I${LIVE555_PREFIX}/groupsock/include -I${LIVE555_PREFIX}/BasicUsageEnvironment/include -I${LIVE555_PREFIX}/UsageEnvironment/include"
1931 LDFLAGS_live555="-L${LIVE555_PREFIX}/liveMedia -L${LIVE555_PREFIX}/groupsock -L${LIVE555_PREFIX}/BasicUsageEnvironment -L${LIVE555_PREFIX}/UsageEnvironment"
1936 AS_IF([test "${SYS}" = "solaris"], [
1937 CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1939 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1940 LDFLAGS="${LDFLAGS} ${LDFLAGS_live555}"
1943 AC_CACHE_CHECK([for live555 version 1324598400 or later], [ac_cv_live555], [
1944 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
1945 [#include <liveMedia_version.hh>
1946 #if !defined (LIVEMEDIA_LIBRARY_VERSION_INT) || (LIVEMEDIA_LIBRARY_VERSION_INT < 1324598400)
1956 AS_IF([test "$ac_cv_live555" = "no"], [
1957 AC_MSG_WARN([live555 is missing or its installed version is too old:
1958 Version 2011.12.23 or later is required to proceed.
1959 You can get an updated one from http://www.live555.com/liveMedia .])
1960 AS_IF([test -n "${enable_live555}"], [
1961 AC_MSG_ERROR([Update live555 or pass --disable-live555 to disable RTSP input support.])
1964 other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1965 other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
1966 AS_IF([test "${SYS}" = "mingw32"], [
1967 # add ws2_32 for closesocket, select, recv
1968 other_libs="$other_libs -lws2_32"
1971 dnl We need to check for pic because live555 don't provide shared libs
1972 dnl and we want to build a plugins so we need -fPIC on some arch.
1973 VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1974 VLC_ADD_LDFLAGS([live555], [${LDFLAGS_live555}])
1975 AC_CHECK_LIB([liveMedia_pic], [main], [
1976 VLC_ADD_PLUGIN([live555])
1977 VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
1979 AC_CHECK_LIB([liveMedia], [main], [
1980 VLC_ADD_PLUGIN([live555])
1981 VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1982 ],[],[${other_libs}])
1983 ],[${other_libs_pic}])
1991 dnl IIDC and DV FireWire input modules
1993 PKG_ENABLE_MODULES_VLC([DC1394], [], [libdc1394-2 >= 2.1.0], [IIDC FireWire input module], [auto])
1994 PKG_ENABLE_MODULES_VLC([DV1394], [], [libraw1394 >= 2.0.1 libavc1394 >= 0.5.3], [DV FireWire input module], [auto])
1997 dnl - linsys modules: access module check for libzvbi
1999 AC_ARG_ENABLE([linsys],
2000 AS_HELP_STRING([--enable-linsys],
2001 [Linux Linear Systems Ltd. SDI and HD-SDI input cards (default enabled)]))
2002 AS_IF([test "$SYS" = "linux" -a "${enable_linsys}" != "no"], [
2003 VLC_ADD_PLUGIN([linsys_hdsdi])
2004 PKG_CHECK_MODULES(LINSYS_SDI, [zvbi-0.2 >= 0.2.28], [
2005 VLC_ADD_PLUGIN([linsys_sdi])
2007 AC_MSG_WARN([${LINSYS_SDI_PKG_ERRORS}.])
2012 dnl dvdread module: check for libdvdread
2014 PKG_ENABLE_MODULES_VLC([DVDREAD], [], [dvdread > 6.0.0], [dvdread input module], [auto])
2017 dnl libdvdnav plugin
2019 PKG_ENABLE_MODULES_VLC([DVDNAV], [], [dvdnav >= 6.0.0], [DVD with navigation input module (dvdnav)], [auto])
2022 dnl Blu-ray Disc Support with libbluray
2024 PKG_ENABLE_MODULES_VLC([BLURAY], [libbluray], [libbluray >= 0.6.2], (libbluray for Blu-ray disc support ) )
2027 dnl OpenCV wrapper and example filters
2029 PKG_ENABLE_MODULES_VLC([OPENCV], [opencv_example opencv_wrapper], [opencv > 2.0], (OpenCV (computer vision) filter), [auto])
2033 dnl libsmbclient plugin
2035 PKG_ENABLE_MODULES_VLC([SMBCLIENT], [smbc], [smbclient], (SMB/CIFS support), [auto])
2038 dnl liBDSM access module
2040 AM_CONDITIONAL([HAVE_DSM], [test "$AS_TR_SH(with_dsm)" = "yes"])
2041 PKG_WITH_MODULES([DSM], [libdsm >= 0.2.0], [
2042 VLC_ADD_PLUGIN([dsm])
2043 VLC_ADD_CFLAGS([dsm], [$DSM_CFLAGS])
2044 VLC_ADD_LIBS([dsm], [$DSM_LIBS])
2046 ],,[libdsm SMB/CIFS access/sd module], [auto])
2047 AM_CONDITIONAL([HAVE_DSM], [test "${have_dsm}" = "yes"])
2050 dnl sftp access support
2052 PKG_ENABLE_MODULES_VLC([SFTP], [sftp], [libssh2], (support SFTP file transfer via libssh2), [auto])
2055 dnl nfs access support
2057 PKG_ENABLE_MODULES_VLC([NFS], [nfs], [libnfs >= 1.10.0], (support nfs protocol via libnfs), [auto])
2060 dnl smb2 access support
2062 PKG_ENABLE_MODULES_VLC([SMB2], [smb2], [libsmb2 >= 3.0.0], (support smb2 protocol via libsmb2), [auto])
2067 AC_ARG_ENABLE([v4l2], AS_HELP_STRING([--disable-v4l2],
2068 [disable Video4Linux version 2 (default auto)]))
2070 AS_IF([test "$enable_v4l2" != "no"], [
2071 AC_CHECK_HEADERS([linux/videodev2.h], [
2075 AM_CONDITIONAL([HAVE_V4L2], [test "${have_v4l2}" != "no"])
2078 dnl NVDEC decoder/encoder
2080 AC_ARG_ENABLE([nvdec], AS_HELP_STRING([--disable-nvdec],
2081 [disable NVDEC decoder (default auto)]))
2083 AS_IF([test "$enable_nvdec" != "no"], [
2084 AC_CHECK_HEADERS([ffnvcodec/dynlink_loader.h], [
2088 AM_CONDITIONAL([HAVE_NVDEC], [test "${have_nvdec}" != "no"])
2091 dnl special access module for Blackmagic SDI cards
2093 AC_ARG_ENABLE([decklink],
2094 AS_HELP_STRING([--disable-decklink],
2095 [disable Blackmagic DeckLink SDI input (default auto)]))
2096 AC_ARG_WITH([decklink_sdk],
2097 AS_HELP_STRING([--with-decklink-sdk=DIR],
2098 [location of Blackmagic DeckLink SDI SDK]))
2100 if test "${enable_decklink}" != "no"
2102 if test "${with_decklink_sdk}" != "no" -a -n "${with_decklink_sdk}"
2104 VLC_ADD_CPPFLAGS([decklink decklinkoutput stream_out_sdi],[-I${with_decklink_sdk}/include])
2107 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_decklink}"
2109 AC_CHECK_HEADERS([DeckLinkAPIDispatch.cpp], [
2111 AS_IF([test "${SYS}" = "darwin"], [
2112 VLC_ADD_LIBS([decklink decklinkoutput],[-Wl,-framework,CoreFoundation])
2115 AS_IF([test "${enable_decklink}" = "yes"], [
2116 AC_MSG_ERROR([Blackmagic DeckLink SDI include files not found!])
2118 AC_MSG_WARN([Blackmagic DeckLink SDI include files not found, decklink disabled])
2124 AM_CONDITIONAL([HAVE_DECKLINK], [ test "${have_decklink}" != "no" ])
2128 dnl Built-in CD-DA and VCD module
2130 AC_ARG_ENABLE([vcd],
2131 AS_HELP_STRING([--disable-vcd],
2132 [disable built-in VCD and CD-DA support (default enabled)]))
2134 AC_ARG_ENABLE([libcddb],
2135 AS_HELP_STRING([--disable-libcddb],
2136 [disable CDDB for Audio CD (default enabled)]))
2138 if test "${enable_vcd}" != "no" -a "${enable_winstore_app}" != "yes"
2140 AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2141 AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2143 VLC_ADD_PLUGIN([vcd cdda])
2148 AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2149 AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2151 VLC_ADD_PLUGIN([vcd cdda])
2152 AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2157 AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2158 AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2160 VLC_ADD_PLUGIN([vcd cdda])
2161 AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2166 if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32" -o "${SYS}" = "os2" -o "${SYS}" = "darwin"
2168 VLC_ADD_PLUGIN([vcd cdda])
2171 if test "$enable_libcddb" != "no"; then
2172 PKG_CHECK_MODULES(LIBCDDB, [libcddb >= 0.9.5], [
2174 AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2175 VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2176 VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2178 [AC_MSG_WARN([${LIBCDDB_PKG_ERRORS}: CDDB access disabled.])
2186 AC_CACHE_CHECK([for Linux DVB version 5.1], [ac_cv_linux_dvb_5_1], [
2187 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
2188 [#include <linux/dvb/version.h>
2189 #if (DVB_API_VERSION < 5)
2190 # error Linux DVB API v3.2 and older are not supported.
2192 #if (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR < 1)
2193 # error Linux DVB API v5.0 is unsupported. Please update.
2196 ac_cv_linux_dvb_5_1=yes
2198 ac_cv_linux_dvb_5_1=no
2200 AM_CONDITIONAL([HAVE_LINUX_DVB], [test "$ac_cv_linux_dvb_5_1" = "yes"])
2203 dnl Screen capture module
2205 AC_ARG_ENABLE([screen],
2206 AS_HELP_STRING([--enable-screen],
2207 [disable screen capture (default enabled)]))
2208 if test "${enable_screen}" != "no"; then
2209 if test "${SYS}" = "darwin"; then
2210 AC_CHECK_HEADERS([ApplicationServices/ApplicationServices.h], [
2211 VLC_ADD_PLUGIN([screen])
2215 AM_CONDITIONAL([HAVE_MAC_SCREEN], [test "${SYS}" = "darwin" -a "x${enable_screen}" != "xno"])
2218 dnl VNC/RFB access module
2220 PKG_ENABLE_MODULES_VLC([VNC], [vnc], [libvncclient >= 0.9.9], (VNC/rfb client support), [auto])
2222 dnl RDP/Remote Desktop access module
2224 PKG_ENABLE_MODULES_VLC([FREERDP], [rdp], [freerdp >= 1.0.1], (RDP/Remote Desktop client support) )
2228 AC_SUBST([have_avfoundation], ["no"])
2229 AC_ARG_ENABLE([macosx-avfoundation],
2230 AS_HELP_STRING([--enable-macosx-avfoundation], [Mac OS X avcapture (video) module (default enabled on Mac OS X)]))
2231 if test "x${enable_macosx_avfoundation}" != "xno" &&
2232 (test "${SYS}" = "darwin" || test "${enable_macosx_avfoundation}" = "yes")
2234 SAVED_LIBS="${LIBS}"
2235 LIBS="-framework AVFoundation"
2236 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [])],[have_avfoundation=yes],[have_avfoundation=no])
2237 LIBS="${SAVED_LIBS}"
2238 if test "${have_avfoundation}" != "no"
2240 VLC_ADD_PLUGIN([avcapture])
2243 AM_CONDITIONAL([HAVE_AVFOUNDATION], [test "${have_avfoundation}" != "no"])
2246 dnl DCP plugin (using asdcplib)
2248 PKG_WITH_MODULES([ASDCP], [asdcplib], [have_asdcp="yes"])
2249 AM_CONDITIONAL([HAVE_ASDCP], [test "${have_asdcp}" = "yes"])
2255 EXTEND_HELP_STRING([Mux/Demux plugins:])
2258 dnl libdvbpsi check for ts mux/demux
2261 PKG_WITH_MODULES([DVBPSI], [libdvbpsi >= 1.2.0], [have_dvbpsi="yes"])
2262 AM_CONDITIONAL([HAVE_DVBPSI], [test "${have_dvbpsi}" = "yes"])
2266 dnl GME demux plugin
2268 AC_ARG_ENABLE([gme],
2269 AS_HELP_STRING([--enable-gme],
2270 [use Game Music Emu (default auto)]))
2271 AS_IF([test "${enable_gme}" != "no"], [
2272 AC_CHECK_HEADER([gme/gme.h], [
2273 AC_CHECK_LIB([gme], [gme_identify_header], [
2274 VLC_ADD_PLUGIN([gme])
2276 AC_CHECK_LIB([gme], [gme_identify_extension], [
2277 VLC_ADD_LIBS([gme], [-lstdc++ $LIBM])
2278 VLC_ADD_PLUGIN([gme])
2279 ],, [-lstdc++ $LIBM])
2281 VLC_ADD_LIBS([gme], [-lgme])
2283 AS_IF([test "x${enable_gme}" != "x"], [
2284 AC_MSG_ERROR([GME cannot be found. Please install the development files.])
2293 AC_ARG_ENABLE([sid],
2294 AS_HELP_STRING([--enable-sid],[C64 sid demux support (default auto)]))
2295 AS_IF([test "${enable_sid}" != "no"], [
2296 PKG_CHECK_MODULES(SID, [libsidplay2], [
2298 oldCPPFLAGS="$CPPFLAGS"
2299 CPPFLAGS="$CPPFLAGS $SID_CFLAGS"
2300 AC_CHECK_HEADER([sidplay/builders/resid.h], [
2301 VLC_ADD_PLUGIN([sid])
2302 VLC_ADD_CFLAGS([sid], [$SID_CFLAGS])
2303 VLC_ADD_LIBS([sid], [$SID_LIBS] [-lresid-builder])
2305 AS_IF([test -n "${enable_sid}"],
2306 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2307 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2310 CPPFLAGS="$oldCPPFLAGS"
2313 AS_IF([test "x${enable_sid}" = "xyes"],
2314 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2315 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2322 dnl ogg demux plugin
2324 PKG_ENABLE_MODULES_VLC([OGG], [mux_ogg], [ogg >= 1.0], [Ogg demux support], [auto])
2325 PKG_CHECK_MODULES(LIBVORBIS, [vorbis >= 1.1], [
2326 AC_DEFINE(HAVE_LIBVORBIS, 1, [Define to 1 if you have the libvorbis])
2328 PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto], [${LIBVORBIS_CFLAGS}], [${LIBVORBIS_LIBS}])
2329 if test "${enable_sout}" != "no"; then
2330 dnl Check for libshout
2331 PKG_ENABLE_MODULES_VLC([SHOUT], [access_output_shout], [shout >= 2.1], [libshout output plugin], [auto])
2335 dnl matroska demux plugin
2337 PKG_WITH_MODULES([MATROSKA], [libebml >= 1.3.6 libmatroska], [
2338 VLC_ADD_PLUGIN([mkv])
2339 VLC_ADD_CFLAGS([mkv], [$MATROSKA_CFLAGS])
2340 VLC_ADD_LIBS([mkv], [$MATROSKA_LIBS])
2342 ],,[MKV format support], [auto])
2343 AM_CONDITIONAL([HAVE_MATROSKA], [test "${have_matroska}" = "yes"])
2346 dnl modplug demux plugin
2348 AC_ARG_ENABLE([mod],
2349 AS_HELP_STRING([--disable-mod],
2350 [do not use libmodplug (default auto)]))
2351 if test "${enable_mod}" != "no" ; then
2352 PKG_CHECK_MODULES(LIBMODPLUG, [libmodplug >= 0.8.9.0], [
2353 VLC_ADD_PLUGIN([mod])
2354 VLC_ADD_CXXFLAGS([mod],[$LIBMODPLUG_CFLAGS])
2355 VLC_ADD_CFLAGS([mod],[$LIBMODPLUG_CFLAGS]) #modules/demux/mod.c needs CFLAGS_mod, not CXXFLAGS_mod
2356 VLC_ADD_LIBS([mod],[$LIBMODPLUG_LIBS])
2358 AS_IF([test -n "${enable_mod}"],
2359 [AC_MSG_ERROR([${LIBMODPLUG_PKG_ERRORS}.])],
2360 [AC_MSG_WARN([${LIBMODPLUG_PKG_ERRORS}.])])
2365 dnl mpc demux plugin
2367 AC_ARG_ENABLE([mpc],
2368 AS_HELP_STRING([--disable-mpc], [do not use libmpcdec (default auto)]))
2369 if test "${enable_mpc}" != "no"
2371 AC_CHECK_HEADERS([mpcdec/mpcdec.h], [
2372 VLC_ADD_PLUGIN([mpc])
2373 VLC_ADD_LIBS([mpc],[-lmpcdec])])
2380 EXTEND_HELP_STRING([Codec plugins:])
2383 dnl shine encoder plugin
2385 PKG_ENABLE_MODULES_VLC([SHINE], [], [shine >= 3.0.0], [MPEG Audio Layer 3 encoder], [auto], [], [], [])
2389 dnl openmax il codec plugin
2391 AC_ARG_ENABLE([omxil],
2392 AS_HELP_STRING([--enable-omxil], [openmax il codec module (default disabled)]))
2393 if test "${enable_omxil}" = "yes"
2395 VLC_ADD_PLUGIN([omxil])
2399 dnl raspberry pi openmax il configuration
2401 AC_ARG_ENABLE([rpi-omxil],
2402 AS_HELP_STRING([--enable-rpi-omxil], [openmax il configured for raspberry pi (default disabled)]))
2403 if test "${enable_rpi_omxil}" = "yes"
2405 VLC_ADD_PLUGIN([omxil])
2406 VLC_ADD_CFLAGS([omxil],[-DRPI_OMX])
2410 dnl CrystalHD codec plugin
2412 AC_ARG_ENABLE([crystalhd],
2413 AS_HELP_STRING([--enable-crystalhd], [crystalhd codec plugin (default auto)]))
2414 if test "${enable_crystalhd}" != "no"; then
2415 AC_CHECK_HEADER(libcrystalhd/libcrystalhd_if.h, [
2416 VLC_ADD_PLUGIN([crystalhd])
2417 VLC_ADD_LIBS([crystalhd], [-lcrystalhd])
2419 if test "${SYS}" = "mingw32" ; then
2420 AC_CHECK_HEADERS([libcrystalhd/bc_dts_defs.h], [
2421 VLC_ADD_PLUGIN([crystalhd])
2422 AC_CHECK_HEADERS([libcrystalhd/bc_drv_if.h], [
2423 VLC_ADD_LIBS([crystalhd], [-lbcmDIL])
2426 AS_IF([test x"${enable_crystalhd}" = "xyes"],
2427 [AC_MSG_ERROR("Could not find CrystalHD development headers")],
2428 [AC_MSG_WARN("Could not find CrystalHD development headers")])
2429 ],[#define __LINUX_USER__
2430 #include <libcrystalhd/bc_dts_types.h>
2434 #include <libcrystalhd/bc_dts_types.h>
2445 AC_ARG_WITH(mad, AS_HELP_STRING([--with-mad=PATH], [path to libmad]), [
2450 AS_IF([test "${with_mad}" != "no"], [
2451 MAD_CFLAGS="-I${with_mad}/include"
2452 MAD_LIBS="-L${with_mad}/lib"
2455 AC_ARG_ENABLE([mad],
2456 AS_HELP_STRING([--enable-mad], [libmad module (default enabled)]))
2457 AS_IF([test "${enable_mad}" != "no"], [
2459 CPPFLAGS="${CPPFLAGS} ${MAD_CFLAGS}"
2460 LDFLAGS="${LDFLAGS} ${MAD_LIBS}"
2461 AC_CHECK_HEADERS([mad.h], [
2462 AC_CHECK_LIB([mad], [mad_bit_init], [
2464 MAD_LIBS="${MAD_LIBS} -lmad"
2468 AS_IF([test -n "$enable_mad" -a "${have_mad}" = "no"], [
2469 AC_MSG_ERROR([Could not find libmad. Install it or pass --disable-mad to disable it.])
2472 AC_SUBST([MAD_CFLAGS])
2473 AC_SUBST([MAD_LIBS])
2474 AM_CONDITIONAL([HAVE_MAD], [test "${have_mad}" = "yes"])
2479 PKG_ENABLE_MODULES_VLC([MPG123], [mpg123], [libmpg123], [libmpg123 decoder support], [auto])
2484 AC_ARG_ENABLE([gst-decode],
2485 AS_HELP_STRING([--enable-gst-decode], [GStreamer based decoding support (currently supports only video decoding) (default auto)]))
2487 have_gst_decode="no"
2488 AS_IF([test "${enable_gst_decode}" != "no"], [
2489 PKG_CHECK_MODULES([GST_APP], [gstreamer-app-1.0], [
2490 PKG_CHECK_MODULES([GST_VIDEO], [gstreamer-video-1.0], [
2491 have_gst_decode="yes"
2493 AC_MSG_WARN([${GST_VIDEO_PKG_ERRORS}. GStreamer decoder module will not be built.])
2496 AC_MSG_WARN([${GST_APP_PKG_ERRORS}. GStreamer modules will not be built.])
2499 AM_CONDITIONAL([HAVE_GST_DECODE], [test "${have_gst_decode}" = "yes"])
2502 dnl avcodec decoder/encoder plugin
2504 AC_ARG_ENABLE([merge-ffmpeg],
2505 AS_HELP_STRING([--enable-merge-ffmpeg], [merge FFmpeg-based plugins (default disabled)]),, [
2506 enable_merge_ffmpeg="no"
2508 AM_CONDITIONAL([MERGE_FFMPEG], [test "$enable_merge_ffmpeg" != "no"])
2510 AC_MSG_CHECKING([for libavutil variant])
2511 PKG_CHECK_EXISTS([libavutil], [
2512 libavutil_version="$(${PKG_CONFIG} --modversion libavutil)"
2513 libavutil_micro="${libavutil_version##*.}"
2514 AS_IF([test ${libavutil_micro} -le 99], [
2522 AC_MSG_RESULT([${avfork}])
2524 AC_ARG_ENABLE([avcodec],
2525 AS_HELP_STRING([--enable-avcodec], [libavcodec codec (default enabled)]))
2526 AS_IF([test "${enable_avcodec}" != "no"], [
2527 dnl We need >=57.16.0 from libav or >=57.37.100 from ffmpeg
2529 libav) av_codec_ver="57.16.0" ;;
2530 dnl 05f66706d182eb0c36af54d72614bf4c33e957a9 includes libavutil 55.9.0
2531 ffmpeg) av_codec_ver="57.37.100" ;;
2532 dnl 7fc329e2dd6226dfecaa4a1d7adf353bf2773726 include libavutil 55.22.101
2533 *) AC_MSG_ERROR([Missing libav or FFmpeg. Pass --disable-avcodec to ignore this error.])
2535 PKG_CHECK_MODULES(AVCODEC,[libavcodec >= ${av_codec_ver} libavutil >= 55.9.0], [
2537 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2538 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2539 AC_CHECK_HEADERS([libavcodec/avcodec.h])
2540 AC_CHECK_HEADERS([libavutil/avutil.h])
2544 AC_MSG_ERROR([${AVCODEC_PKG_ERRORS}. Pass --disable-avcodec to ignore this error.])
2549 AM_CONDITIONAL([HAVE_AVCODEC], [test "${have_avcodec}" != "no"])
2552 dnl libva needs avcodec
2554 AC_ARG_ENABLE([libva],
2555 AS_HELP_STRING([--enable-libva], [VAAPI GPU decoding support (libVA) (default auto)]))
2557 AS_IF([test "${enable_libva}" = "yes" -a "${have_avcodec}" != "yes" ], [
2558 AC_MSG_ERROR([--enable-libva and --disable-avcodec options are mutually exclusive. Use --enable-avcodec.])
2565 AS_IF([test "${enable_libva}" != "no"], [
2566 PKG_CHECK_MODULES([LIBVA], [libva >= 0.38], [
2569 AS_IF([test -n "${enable_libva}"], [
2570 AC_MSG_ERROR([${LIBVA_PKG_ERRORS}.])
2572 AC_MSG_WARN([${LIBVA_PKG_ERRORS}.])
2575 PKG_CHECK_MODULES([LIBVA_DRM], [libva-drm], [
2576 have_vaapi_drm="yes"
2578 AC_MSG_WARN([${LIBVA_DRM_PKG_ERRORS}.])
2580 PKG_CHECK_MODULES(LIBVA_X11, [libva-x11], [
2581 have_vaapi_x11="yes"
2583 AC_MSG_WARN([${LIBVA_X11_PKG_ERRORS}.])
2585 PKG_CHECK_MODULES(LIBVA_WL, [libva-wayland], [
2588 AC_MSG_WARN([${LIBVA_WL_PKG_ERRORS}.])
2591 AM_CONDITIONAL([HAVE_VAAPI], [test "${have_vaapi}" = "yes"])
2592 AM_CONDITIONAL([HAVE_VAAPI_DRM], [test "${have_vaapi_drm}" = "yes"])
2593 AM_CONDITIONAL([HAVE_VAAPI_X11], [test "${have_vaapi_x11}" = "yes"])
2594 AM_CONDITIONAL([HAVE_VAAPI_WL], [test "${have_vaapi_wl}" = "yes"])
2596 have_avcodec_vaapi="no"
2597 AS_IF([test "${have_vaapi}" = "yes" -a "${have_avcodec}" = "yes"], [
2599 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2600 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2601 AC_CHECK_HEADERS([libavcodec/vaapi.h], [
2602 AC_MSG_NOTICE([VA API acceleration activated])
2603 have_avcodec_vaapi="yes"
2605 AS_IF([test -n "${enable_libva}"], [
2606 AC_MSG_ERROR([libva is present but libavcodec/vaapi.h is missing])
2608 AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing ])
2613 AM_CONDITIONAL([HAVE_AVCODEC_VAAPI], [test "${have_avcodec_vaapi}" = "yes"])
2616 dnl dxva2 needs avcodec
2618 AC_ARG_ENABLE([dxva2],
2619 AS_HELP_STRING([--enable-dxva2], [DxVA2 GPU decoding support (default auto)]))
2621 have_avcodec_dxva2="no"
2622 AS_IF([test "${enable_dxva2}" != "no"], [
2623 if test "${SYS}" = "mingw32"; then
2624 AS_IF([test "x${have_avcodec}" = "xyes"], [
2625 AC_CHECK_HEADERS([dxva2api.h],
2627 AC_CHECK_HEADERS([libavcodec/dxva2.h], [
2628 AC_MSG_NOTICE([DxVA2 acceleration activated])
2629 have_avcodec_dxva2="yes"
2631 AS_IF([test "${enable_dxva2}" = "yes"],
2632 [AC_MSG_ERROR([dxva2 is present but libavcodec/dxva2.h is missing])],
2633 [AC_MSG_WARN([dxva2 is present but libavcodec/dxva2.h is missing ])])
2634 ], [#undef _WIN32_WINNT
2635 /* DXVA2 is only available in Vista and above */
2636 #define _WIN32_WINNT 0x600])
2638 AS_IF([test "${enable_dxva2}" = "yes"],
2639 [AC_MSG_ERROR([Could not find required dxva2api.h])],
2640 [AC_MSG_WARN([dxva2api.h not found])])
2641 ],[#include <d3d9.h>])
2643 AS_IF([test "x${enable_dxva2}" != "x"], [
2644 AC_MSG_ERROR([--enable-dxva2 and --disable-avcodec options are mutually exclusive.])
2649 AM_CONDITIONAL([HAVE_AVCODEC_DXVA2], [test "${have_avcodec_dxva2}" = "yes"])
2652 dnl d3d11va needs avcodec
2654 AC_ARG_ENABLE([d3d11va],
2655 AS_HELP_STRING([--enable-d3d11va], [D3D11 GPU decoding support (default auto)]))
2657 have_avcodec_d3d11va="no"
2658 AS_IF([test "${enable_d3d11va}" != "no"], [
2659 if test "${SYS}" = "mingw32"; then
2660 AS_IF([test "x${have_avcodec}" = "xyes"], [
2661 AC_CHECK_TYPES([ID3D11VideoDecoder],
2663 AC_CHECK_HEADERS([dxva2api.h],
2665 AC_CHECK_HEADERS([libavcodec/d3d11va.h], [
2666 AC_MSG_NOTICE([D3D11 acceleration activated])
2667 AC_DEFINE([HAVE_AVCODEC_D3D11VA], [1], [Define if the d3d11va module is built])
2668 have_avcodec_d3d11va="yes"
2670 AS_IF([test "${enable_d3d11va}" = "yes"],
2671 [AC_MSG_ERROR([d3d11va is present but libavcodec/d3d11va.h is missing])],
2672 [AC_MSG_WARN([d3d11va is present but libavcodec/d3d11va.h is missing ])])
2673 ], [#undef _WIN32_WINNT
2674 /* D3D11 is only available in Vista and above */
2675 #define _WIN32_WINNT 0x600])
2677 AS_IF([test "${enable_d3d11va}" = "yes"],
2678 [AC_MSG_ERROR([Could not find required dxva2api.h])],
2679 [AC_MSG_WARN([dxva2api.h not found])])
2680 ],[#include <d3d9.h>])
2682 AS_IF([test "${enable_d3d11va}" = "yes"],
2683 [AC_MSG_ERROR([Could not find required ID3D11VideoDecoder in d3d11.h])],
2684 [AC_MSG_WARN([ID3D11VideoDecoder not found])])
2685 ], [#include <d3d11.h>])
2687 AS_IF([test "x${enable_d3d11va}" != "x"], [
2688 AC_MSG_ERROR([--enable-d3d11va and --disable-avcodec options are mutually exclusive.])
2693 AM_CONDITIONAL([HAVE_AVCODEC_D3D11VA], [test "${have_avcodec_d3d11va}" = "yes"])
2698 AC_CHECK_HEADERS([dxgidebug.h dxgi1_6.h])
2701 dnl avformat demuxer/muxer plugin
2704 AC_ARG_ENABLE([avformat],
2705 AS_HELP_STRING([--enable-avformat], [libavformat containers (default enabled)]),, [
2706 enable_avformat="${have_avcodec}"
2709 AS_IF([test "${enable_avformat}" != "no"], [
2710 PKG_CHECK_MODULES(AVFORMAT,[libavformat >= 53.21.0 libavcodec libavutil], [
2713 CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2714 CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2715 AC_CHECK_HEADERS([libavformat/avformat.h libavformat/avio.h])
2716 AC_CHECK_HEADERS([libavcodec/avcodec.h])
2717 AC_CHECK_HEADERS([libavutil/avutil.h])
2718 AS_IF([test "$enable_merge_ffmpeg" = "no"], [
2723 AC_MSG_ERROR([${AVFORMAT_PKG_ERRORS}. Pass --disable-avformat to ignore this error.])
2726 AM_CONDITIONAL([HAVE_AVFORMAT], [test "${enable_avformat}" != "no"])
2729 dnl swscale image scaling and conversion plugin
2732 AC_ARG_ENABLE([swscale],
2733 AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
2734 (default enabled)]))
2735 if test "${enable_swscale}" != "no"
2737 PKG_CHECK_MODULES(SWSCALE,[libswscale],
2740 CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
2741 CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
2742 AC_CHECK_HEADERS([libswscale/swscale.h])
2743 AC_CHECK_HEADERS([libavutil/avutil.h])
2744 VLC_ADD_PLUGIN([swscale])
2745 VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
2746 VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
2747 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2748 VLC_ADD_LIBS([swscale],[${ac_cv_ld_bsymbolic}])
2752 AC_MSG_ERROR([${SWSCALE_PKG_ERRORS}. Pass --disable-swscale to ignore this error. Proper software scaling and some video chroma conversion will be missing.])
2760 AC_ARG_ENABLE([postproc],
2761 AS_HELP_STRING([--enable-postproc], [libpostproc image post-processing (default auto)]))
2762 if test "${enable_postproc}" != "no"
2764 PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
2767 CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
2768 CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
2769 AC_CHECK_HEADERS([postproc/postprocess.h])
2770 VLC_ADD_PLUGIN([postproc])
2773 AC_MSG_WARN([${POSTPROC_PKG_ERRORS}.])
2778 dnl faad decoder plugin
2780 AC_ARG_ENABLE([faad],
2781 AS_HELP_STRING([--enable-faad], [faad codec (default auto)]))
2783 AS_IF([test "${enable_faad}" != "no"], [
2784 AC_CHECK_HEADERS([neaacdec.h], [
2785 AC_CHECK_LIB([faad], [NeAACDecOpen], [have_faad="yes"],, [$LIBM])
2787 AS_IF([test "${have_faad}" = "yes"], [
2788 VLC_ADD_PLUGIN([faad])
2789 VLC_ADD_LIBS([faad],[-lfaad])
2791 AS_IF([test "${enable_faad}" = "yes"], [
2792 AC_MSG_ERROR([cannot find FAAD library])
2794 AC_MSG_WARN([cannot find FAAD library])
2801 dnl AOM decoder plugin
2803 PKG_ENABLE_MODULES_VLC([AOM], [], [aom], [experimental AV1 codec (default auto)])
2806 dnl Dav1d decoder plugin
2808 PKG_ENABLE_MODULES_VLC([DAV1D], [], [dav1d], [AV1 decoder (default auto)])
2811 dnl libvpx decoder plugin
2813 AC_ARG_ENABLE([vpx],
2814 AS_HELP_STRING([--enable-vpx],[libvpx VP8/VP9 encoder and decoder (default auto)]))
2815 AS_IF([test "${enable_vpx}" != "no"],[
2816 PKG_CHECK_MODULES([VPX], [vpx >= 1.5.0], [
2817 VLC_ADD_PLUGIN([vpx])
2818 VLC_ADD_CPPFLAGS([vpx], [${VPX_CFLAGS}])
2819 VLC_ADD_LIBS([vpx], [${VPX_LIBS}])
2820 AC_CHECK_LIB([vpx],[vpx_codec_vp8_dx], [
2821 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP8_DECODER])
2822 ], [], [${VPX_LIBS}])
2823 AC_CHECK_LIB([vpx],[vpx_codec_vp9_dx], [
2824 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP9_DECODER])
2825 ], [], [${VPX_LIBS}])
2826 AC_CHECK_LIB([vpx],[vpx_codec_vp8_cx], [
2827 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP8_ENCODER])
2828 ], [], [${VPX_LIBS}])
2829 AC_CHECK_LIB([vpx],[vpx_codec_vp9_cx], [
2830 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP9_ENCODER])
2831 ], [], [${VPX_LIBS}])
2833 AS_IF([test "${enable_vpx}" = "yes"],[
2834 AC_MSG_ERROR([libvpx 1.5.0 or higher was not found])
2839 dnl twolame encoder plugin
2841 PKG_ENABLE_MODULES_VLC([TWOLAME], [], [twolame], [MPEG Audio Layer 2 encoder], [auto], [], [], [ -DLIBTWOLAME_STATIC])
2844 dnl fdk-aac encoder plugin
2846 PKG_ENABLE_MODULES_VLC([FDKAAC], [], [fdk-aac], [FDK-AAC encoder], [disabled])
2850 dnl A52/AC3 decoder plugin
2852 AC_ARG_ENABLE([a52],
2853 AS_HELP_STRING([--enable-a52], [A/52 support with liba52 (default enabled)]))
2854 if test "${enable_a52}" != "no"
2857 AS_HELP_STRING([--with-a52=PATH], [a52 headers and libraries]))
2858 if test -z "${with_a52}"
2863 LDFLAGS_test="-L${with_a52}/lib"
2864 CPPFLAGS_test="-I${with_a52}/include"
2867 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_test} ${CPPFLAGS_a52}"
2868 LDFLAGS="${LDFLAGS} ${LDFLAGS_test} ${LIBS_a52}"
2869 AC_CHECK_HEADERS([a52dec/a52.h], [
2870 AC_CHECK_LIB([a52], [a52_free], [
2871 VLC_ADD_PLUGIN([a52])
2872 VLC_ADD_LIBS([a52],[${LDFLAGS_test} -la52 $LIBM])
2873 VLC_ADD_CPPFLAGS([a52],[${CPPFLAGS_test}])
2875 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.])
2878 AC_MSG_ERROR([Could not find liba52 on your system: you may get it from http://liba52.sf.net/. Alternatively you can use --disable-a52 to disable the a52 plugin.])
2884 dnl DTS Coherent Acoustics decoder plugin
2886 PKG_ENABLE_MODULES_VLC([DCA], [dca], [libdca >= 0.0.5], [DTS Coherent Acoustics support with libdca], [auto])
2891 PKG_ENABLE_MODULES_VLC([FLAC], [], [flac], [libflac decoder/encoder support], [auto])
2896 PKG_ENABLE_MODULES_VLC([LIBMPEG2], [], [libmpeg2 > 0.3.2], [libmpeg2 decoder support], [auto])
2901 PKG_ENABLE_MODULES_VLC([VORBIS], [], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
2906 AC_ARG_ENABLE([tremor],
2907 AS_HELP_STRING([--enable-tremor], [Tremor decoder support (default disabled)]))
2908 if test "${enable_tremor}" = "yes"
2910 AC_CHECK_HEADERS([tremor/ivorbiscodec.h], [
2911 VLC_ADD_PLUGIN([tremor])
2918 PKG_ENABLE_MODULES_VLC([SPEEX], [], [ogg speex >= 1.0.5], [Speex support], [auto])
2920 AS_IF([test "${enable_speex}" != "no"], [
2921 PKG_CHECK_MODULES([SPEEXDSP], [speexdsp], [
2924 AC_MSG_WARN([${SPEEXDSP_PKG_ERRORS}.])
2927 AM_CONDITIONAL([HAVE_SPEEXDSP], [test "$have_speexdsp" = "yes"])
2932 PKG_ENABLE_MODULES_VLC([OPUS], [], [ogg opus >= 1.0.3], [Opus support], [auto])
2935 dnl Ambisonic channel mixer and binauralizer plugin
2937 PKG_ENABLE_MODULES_VLC([SPATIALAUDIO], [], [spatialaudio], [Ambisonic channel mixer and binauralizer], [auto])
2940 dnl theora decoder plugin
2942 PKG_ENABLE_MODULES_VLC([THEORA], [], [ogg theoradec >= 1.0 theoraenc], [experimental theora codec], [auto])
2945 dnl OggSpots decoder plugin
2947 PKG_ENABLE_MODULES_VLC([OGGSPOTS], [], [ogg], [experimental OggSpots codec], [auto])
2950 dnl Daala decoder plugin
2952 PKG_ENABLE_MODULES_VLC([DAALA], [], [daaladec daalaenc], [experimental daala codec], [disabled])
2955 dnl schroedinger decoder plugin (for dirac format video)
2957 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [], [schroedinger-1.0 >= 1.0.10], [dirac decoder and encoder using schroedinger], [auto])
2960 dnl PNG decoder module
2962 AC_ARG_ENABLE([png],
2963 AS_HELP_STRING([--enable-png], [PNG support (default enabled)]))
2964 AS_IF([test "${enable_png}" != "no"], [
2965 AC_CHECK_HEADERS([png.h], [
2967 LDFLAGS="${LDFLAGS} -lz $LIBM"
2968 AC_CHECK_LIB([png], [png_set_alpha_mode], [
2969 VLC_ADD_PLUGIN([png])
2976 dnl JPEG decoder module
2978 AC_ARG_ENABLE([jpeg],
2979 AS_HELP_STRING([--enable-jpeg], [JPEG support (default enabled)]))
2980 AS_IF([test "${enable_jpeg}" != "no"], [
2981 AC_CHECK_HEADERS([jpeglib.h], [
2982 VLC_ADD_PLUGIN([jpeg])
2987 dnl BPG decoder module
2989 AC_ARG_ENABLE([bpg],
2990 AS_HELP_STRING([--enable-bpg], [BPG support (default disabled)]))
2991 AS_IF([test "${enable_bpg}" != "no"], [
2992 AC_CHECK_HEADERS([libbpg.h], [
2993 VLC_ADD_PLUGIN([bpg])
2998 dnl H262 encoder plugin (lib262)
3000 AC_ARG_ENABLE([x262],
3001 AS_HELP_STRING([--enable-x262], [H262 encoding support with static libx262 (default disabled)]))
3002 if test "${enable_x262}" != "no"; then
3003 PKG_CHECK_MODULES(X262, x262, [
3004 VLC_ADD_PLUGIN([x262])
3005 VLC_ADD_LDFLAGS([x262],[${X262_LIBS}])
3006 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
3007 VLC_ADD_LIBS([x262],[${av_cv_ld_bsymbolic}])
3009 VLC_ADD_CFLAGS([x262],[${X262_CFLAGS}])
3010 if echo ${X262_LIBS} |grep -q 'pthreadGC2'; then
3011 VLC_ADD_CFLAGS([x262], [-DPTW32_STATIC_LIB])
3014 if test "${enable_x262}" = "yes"; then
3015 AC_MSG_ERROR([x262 module doesn't work without staticly compiled libx262.a])
3021 PKG_ENABLE_MODULES_VLC([X265],, [x265], [HEVC/H.265 encoder], [auto])
3024 dnl H264 encoder plugin (using libx264)
3026 AC_ARG_ENABLE([x264],
3027 AS_HELP_STRING([--enable-x264], [H264 encoding support with libx264 (default enabled)]))
3028 if test "${enable_x264}" != "no"; then
3029 PKG_CHECK_MODULES(X264,x264 >= 0.148, [
3030 VLC_ADD_PLUGIN([x264])
3031 VLC_ADD_LIBS([x264],[${X264_LIBS}])
3033 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
3034 VLC_ADD_LDFLAGS([x264],[${ac_cv_ld_bsymbolic}])
3037 VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3038 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3039 VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3042 if test "${enable_x264}" = "yes"; then
3043 AC_MSG_ERROR([${X264_PKG_ERRORS}: you may get it from http://www.videolan.org/x264.html])
3049 dnl H264 encoder plugin (libx264 > 153)
3051 AC_ARG_ENABLE([x26410b],
3052 AS_HELP_STRING([--enable-x26410b], [H264 10-bit encoding support with libx264 (default enabled)]))
3053 if test "${enable_x26410b}" != "no"; then
3054 PKG_CHECK_MODULES(X26410b,x264 >= 0.153, [
3055 VLC_ADD_PLUGIN([x26410b])
3056 VLC_ADD_LIBS([x26410b],[${X264_LIBS}])
3058 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
3059 VLC_ADD_LDFLAGS([x26410b],[${ac_cv_ld_bsymbolic}])
3062 VLC_ADD_CFLAGS([x26410b],[${X264_CFLAGS}])
3063 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3064 VLC_ADD_CFLAGS([x26410b], [-DPTW32_STATIC_LIB])
3067 if test "${enable_x26410b}" = "yes"; then
3068 AC_MSG_ERROR([${X264_PKG_ERRORS}: you may get it from http://www.videolan.org/x264.html])
3075 dnl Intel QuickSync (aka MediaSDK) H264/H262 encoder
3077 PKG_ENABLE_MODULES_VLC([MFX], [qsv], [libmfx], [Intel QuickSync MPEG4-Part10/MPEG2 (aka H.264/H.262) encoder], [auto])
3080 dnl libfluidsynth (MIDI synthetizer) plugin
3082 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [], [fluidsynth >= 1.1.2], [MIDI synthetiser with libfluidsynth], [auto])
3083 PKG_ENABLE_MODULES_VLC([FLUIDLITE], [fluidsynth], [fluidlite], [MIDI synthetiser with libfluidsynth], [auto])
3084 AC_CHECK_HEADERS([fluidlite.h], [AC_SUBST([FLUIDSYNTH_LIBS], ${FLUIDLITE_LIBS})])
3087 dnl Teletext Modules
3088 dnl vbi decoder plugin (using libzbvi)
3092 AC_ARG_ENABLE([zvbi],
3093 AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
3094 libzvbi (default enabled)]))
3095 AC_ARG_ENABLE([telx],
3096 AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
3097 zvbi) (default enabled if zvbi is absent)]))
3099 AS_IF( [test "${enable_zvbi}" != "no"],[
3100 PKG_CHECK_MODULES(ZVBI, [zvbi-0.2 >= 0.2.28],
3102 VLC_ADD_PLUGIN([zvbi])
3103 AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
3104 AS_IF( [test "${enable_telx}" = "yes"],[
3105 AC_MSG_WARN([The zvbi and telx modules are incompatible. Using zvbi.])
3108 AC_MSG_WARN([${ZVBI_PKG_ERRORS}. Enabling the telx module instead.])
3111 AS_IF( [test "${enable_telx}" != "no" ],[
3112 VLC_ADD_PLUGIN([telx])
3116 dnl ARIB subtitles rendering module
3118 AC_ARG_ENABLE([aribsub],
3119 AS_HELP_STRING([--enable-aribsub],[ARIB Subtitles support (default enabled)]))
3120 AS_IF( [test "${enable_aribsub}" != "no" ],[
3121 PKG_CHECK_MODULES(ARIBB24, [aribb24 >= 1.0.1], [
3123 VLC_ADD_PLUGIN([aribsub])
3124 VLC_ADD_LIBS([aribsub],[-laribb24])
3125 AC_DEFINE(HAVE_ARIBB24, 1, [Define if libaribb24 is available.])
3127 AC_MSG_WARN(Library [aribb24] needed for [aribsub] was not found)
3131 AM_CONDITIONAL([HAVE_ARIBB24], [test x"${have_aribb24}" = x"yes"])
3136 PKG_ENABLE_MODULES_VLC([ARIBB25], [aribcam], [aribb25 >= 0.2.6], [ARIB STD-B25], [auto])
3139 dnl kate decoder plugin
3141 PKG_ENABLE_MODULES_VLC([KATE], [], [kate >= 0.3.0], [kate codec], [auto])
3144 dnl tiger rendering for kate decoder plugin
3146 AC_ARG_ENABLE([tiger],
3147 AS_HELP_STRING([--enable-tiger], [Tiger rendering library for Kate streams (default auto)]))
3148 AS_IF([test "${enable_tiger}" != "no"], [
3149 PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
3150 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])],[
3151 AS_IF([test -n "${enable_tiger}"], [
3152 AC_MSG_ERROR([${TIGER_PKG_ERRORS}.])
3158 dnl check if we can build the css selector engine
3160 AC_ARG_ENABLE([css],
3161 AS_HELP_STRING([--enable-css], [CSS selector engine (default auto)]))
3162 AS_IF([test "${enable_css}" != "no"], [
3164 AC_DEFINE(HAVE_CSS, 1, [Define if CSS engine is built])
3166 AM_CONDITIONAL([ENABLE_CSS], [test "${with_css}" = "yes"])
3173 EXTEND_HELP_STRING([Video plugins:])
3176 dnl libplacebo support
3178 AC_ARG_ENABLE([libplacebo],
3179 AS_HELP_STRING([--disable-libplacebo],
3180 [disable libplacebo support (default auto)]))
3182 AS_IF([test "$enable_libplacebo" != "no"], [
3183 PKG_CHECK_MODULES([LIBPLACEBO], [libplacebo >= 0.5], [
3184 AC_DEFINE([HAVE_LIBPLACEBO], [1], [Define to 1 if libplacebo is enabled.])
3185 PKG_CHECK_MODULES([LIBPLACEBO], [libplacebo >= 1.7],
3186 [have_libplacebo_vk="yes"], [have_libplacebo_vk="no"])
3188 AS_IF([test -n "${enable_libplacebo}"], [
3189 AC_MSG_ERROR([${LIBPLACEBO_PKG_ERRORS}.])
3191 enable_libplacebo="no"
3194 AM_CONDITIONAL([HAVE_LIBPLACEBO], [test "$enable_libplacebo" != "no"])
3199 PKG_CHECK_MODULES([EGL], [egl], [
3204 AM_CONDITIONAL([HAVE_EGL], [test "${have_egl}" = "yes"])
3207 PKG_CHECK_MODULES([GL], [gl], [
3210 AC_MSG_CHECKING([for OpenGL])
3211 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
3213 # include <GL/glew.h>
3217 [int t0 = GL_TEXTURE0;]])
3221 AS_IF([test "${SYS}" != "mingw32"], [
3224 GL_LIBS="-lopengl32"
3227 AC_MSG_RESULT([${have_gl}])
3229 AM_CONDITIONAL([HAVE_GL], [test "${have_gl}" = "yes"])
3230 AS_IF([test "${have_gl}" = "yes"], [
3231 AC_DEFINE([HAVE_GL], 1, [Defined if having OpenGL])
3234 dnl OpenGL ES 2: depends on EGL 1.1
3235 PKG_ENABLE_MODULES_VLC([GLES2], [], [glesv2], [OpenGL ES v2 support], [disabled])
3240 AC_ARG_ENABLE(vulkan,
3241 [AS_HELP_STRING([--disable-vulkan],
3242 [disable Vulkan support (default auto)])])
3244 AS_IF([test "$enable_vulkan" != "no"], [
3245 AS_IF([test "$have_libplacebo_vk" = "yes"], [
3246 PKG_CHECK_MODULES([VULKAN], [vulkan >= 1.0.26], [
3247 AC_DEFINE([HAVE_VULKAN], [1], [Define to 1 if vulkan is enabled.])
3249 AS_IF([test -n "${enable_vulkan}"], [
3250 AC_MSG_ERROR([${VULKAN_PKG_ERRORS}.])
3255 AS_IF([test -n "${enable_vulkan}"], [
3256 AC_MSG_ERROR([Vulkan support requires libplacebo 1.7 as well. Do not use --disable-libplacebo.])
3261 AM_CONDITIONAL(HAVE_VULKAN, [test "$enable_vulkan" != "no"])
3268 AC_CHECK_HEADERS([X11/Xlib.h])
3271 dnl X C Bindings modules
3273 AC_ARG_ENABLE([xcb],
3274 AS_HELP_STRING([--enable-xcb], [X11 support with XCB (default enabled)]),, [
3275 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "darwin"], [
3283 have_xkbcommon_x11="no"
3284 have_xcb_keysyms="no"
3285 AS_IF([test "${enable_xcb}" != "no"], [
3289 PKG_CHECK_MODULES([XCB], [xcb >= 1.6],, [
3290 xcb_err="$xcb_err ${XCB_PKG_ERRORS}."])
3291 PKG_CHECK_MODULES([XCB_COMPOSITE], [xcb-composite],, [
3292 xcb_err="$xcb_err ${XCB_COMPOSITE_PKG_ERRORS}."])
3293 PKG_CHECK_MODULES([XCB_RANDR], [xcb-randr >= 1.3],, [
3294 xcb_err="$xcb_err ${XCB_RANDR_PKG_ERRORS}."])
3295 PKG_CHECK_MODULES([XCB_RENDER], [xcb-render],, [
3296 xcb_err="$xcb_err ${XCB_RENDER_PKG_ERRORS}."])
3297 PKG_CHECK_MODULES([XCB_SHM], [xcb-shm >= 1.9.2],, [
3298 xcb_err="$xcb_err ${XCB_SHM_PKG_ERRORS}."])
3299 PKG_CHECK_MODULES([XCB_XKB], [xcb-xkb],, [
3300 xcb_err="$xcb_err ${XCB_XKB_PKG_ERRORS}."])
3303 PKG_CHECK_MODULES(XPROTO, [xproto],, [
3304 xcb_err="$xcb_err ${XPROTO_PKG_ERRORS}."])
3306 AS_IF([test -n "$xcb_err"], [
3307 AC_MSG_ERROR([$xcb_err Pass --disable-xcb to skip X11 support.])
3311 PKG_CHECK_MODULES([XKBCOMMON_X11], [xkbcommon-x11], [
3312 have_xkbcommon_x11="yes"
3314 AC_MSG_WARN([${XKBCOMMON_X11_PKG_ERRORS}. Hotkeys are disabled.])
3318 PKG_CHECK_MODULES([XCB_KEYSYMS], [xcb-keysyms >= 0.3.4], [
3319 have_xcb_keysyms="yes"
3321 AC_MSG_WARN([${XCB_KEYSYMS_PKG_ERRORS}. Global hotkeys are disabled.])
3326 AM_CONDITIONAL([HAVE_XCB], [test "${have_xcb}" = "yes"])
3327 AM_CONDITIONAL([HAVE_XKBCOMMON_X11], [test "${have_xkbcommon_x11}" = "yes"])
3328 AM_CONDITIONAL([HAVE_XCB_KEYSYMS], [test "${have_xcb_keysyms}" = "yes"])
3334 AC_ARG_ENABLE([vdpau],
3335 [AS_HELP_STRING([--enable-vdpau], [VDPAU hardware support (default auto)])])
3337 AS_IF([test "${enable_vdpau}" != "no"], [
3338 PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.6], [
3340 AS_IF([test "${no_x}" = "yes"], [
3341 AC_MSG_ERROR([VDPAU requires Xlib (X11).])
3344 AS_IF([test -n "${enable_vdpau}"], [
3345 AC_MSG_ERROR([${VDPAU_PKG_ERRORS}.])
3349 AM_CONDITIONAL([HAVE_VDPAU], [test "${have_vdpau}" = "yes"])
3351 have_avcodec_vdpau="no"
3352 AS_IF([test "${have_vdpau}" = "yes" -a "${have_avcodec}" = "yes"], [
3354 libav) av_vdpau_ver="56.10.0" ;;
3355 ffmpeg) av_vdpau_ver="56.19.100" ;;
3357 PKG_CHECK_EXISTS([libavcodec >= ${av_vdpau_ver}], [
3358 have_avcodec_vdpau="yes"
3359 AC_MSG_NOTICE([VDPAU decoding acceleration activated])
3361 AS_IF([test -n "${enable_vdpau}"], [
3362 AC_MSG_ERROR([libavcodec >= 56.10.0 is required for VDPAU decoding.])
3364 AC_MSG_WARN([libavcodec >= 56.10.0 are required for VDPAU decoding.])
3368 AM_CONDITIONAL([HAVE_AVCODEC_VDPAU], [test "${have_avcodec_vdpau}" = "yes"])
3374 AC_ARG_ENABLE([wayland],
3375 AS_HELP_STRING([--enable-wayland], [Wayland support (default auto)]))
3378 AS_IF([test "${enable_wayland}" != "no"], [
3382 PKG_CHECK_MODULES([WAYLAND_CLIENT], [wayland-client >= 1.5.91],, [
3383 wl_err="$wl_err ${WAYLAND_CLIENT_PKG_ERRORS}."
3385 PKG_CHECK_MODULES([WAYLAND_CURSOR], [wayland-cursor],, [
3386 wl_err="$wl_err ${WAYLAND_CURSOR_PKG_ERRORS}."
3388 PKG_CHECK_MODULES([WAYLAND_EGL], [wayland-egl],, [
3389 wl_err="$wl_err ${WAYLAND_EGL_PKG_ERRORS}."
3391 PKG_CHECK_MODULES([WAYLAND_SCANNER], [wayland-scanner >= 1.15], [
3392 WAYLAND_SCANNER="$(${PKG_CONFIG} wayland-scanner --variable wayland_scanner)"
3394 wl_err="$wl_err ${WAYLAND_SCANNER_PKG_ERRORS}."
3397 dnl wayland-protocols
3398 PKG_CHECK_MODULES([WAYLAND_PROTOCOLS], [wayland-protocols >= 1.15], [
3399 WAYLAND_PROTOCOLS="$(${PKG_CONFIG} wayland-protocols --variable pkgdatadir)"
3401 wl_err="$wl_err ${WAYLAND_PROTOCOLS_PKG_ERRORS}."
3404 AS_IF([test -n "$wl_err"], [
3405 AS_IF([test -n "$enable_wayland"], [
3406 AC_MSG_ERROR([$wl_err])
3408 AC_MSG_WARN([$wl_err])
3415 PKG_CHECK_MODULES([XKBCOMMON], [xkbcommon], [
3416 have_xkbcommon="yes"
3418 AC_MSG_WARN([${XKBCOMMON_PKG_ERRORS}. Hotkeys are disabled.])
3421 AM_CONDITIONAL([HAVE_WAYLAND], [test "${have_wayland}" = "yes"])
3422 AC_SUBST([WAYLAND_PROTOCOLS])
3423 AC_SUBST([WAYLAND_SCANNER])
3424 AM_CONDITIONAL([HAVE_XKBCOMMON], [test "${have_xkbcommon}" = "yes"])
3428 dnl SDL image decoder module
3430 AC_ARG_ENABLE([sdl-image],
3431 AS_HELP_STRING([--enable-sdl-image], [SDL image support (default enabled)]))
3432 AS_IF([test "${enable_sdl_image}" != "no"],[
3433 PKG_CHECK_MODULES(SDL_IMAGE, [SDL_image >= 1.2.10], [
3434 VLC_ADD_PLUGIN([sdl_image])
3436 AC_MSG_WARN([${SDL_IMAGE_PKG_ERRORS}. You should install it alongside your SDL package.])
3443 AC_ARG_ENABLE([freetype],
3444 AS_HELP_STRING([--enable-freetype], [freetype support (default auto)]))
3445 AC_ARG_ENABLE([fribidi],
3446 AS_HELP_STRING([--enable-fribidi], [fribidi support (default auto)]))
3447 AC_ARG_ENABLE([harfbuzz],
3448 AS_HELP_STRING([--enable-harfbuzz], [harfbuzz support (default auto)]))
3449 AC_ARG_ENABLE([fontconfig],
3450 AS_HELP_STRING([--enable-fontconfig], [fontconfig support (default auto)]))
3452 AC_ARG_WITH([default-font],
3453 AS_HELP_STRING([--with-default-font=PATH],
3454 [Path to the default font]),
3455 [AC_DEFINE_UNQUOTED([DEFAULT_FONT_FILE],
3456 "$withval", [Default font])])
3457 AC_ARG_WITH([default-monospace-font],
3458 AS_HELP_STRING([--with-default-monospace-font=PATH],
3459 [Path to the default font]),
3460 [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FONT_FILE],
3461 "$withval", [Default monospace font])])
3463 AC_ARG_WITH([default-font-family],
3464 AS_HELP_STRING([--with-default-font-family=NAME],
3465 [Name of the default font family]),
3466 [AC_DEFINE_UNQUOTED([DEFAULT_FAMILY],
3467 "$withval", [Default font family])])
3468 AC_ARG_WITH([default-monospace-font-family],
3469 AS_HELP_STRING([--with-default-monospace-font-family=NAME],
3470 [Name of the default font family]),
3471 [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FAMILY],
3472 "$withval", [Default monospace font family])])
3475 have_fontconfig="no"
3479 if test "${enable_freetype}" != "no"; then
3480 PKG_CHECK_MODULES(FREETYPE, freetype2, [
3482 VLC_ADD_CPPFLAGS([skins2],[${FREETYPE_CFLAGS}])
3483 VLC_ADD_LIBS([skins2],[${FREETYPE_LIBS}])
3485 dnl fontconfig support
3486 AS_IF([test "${enable_fontconfig}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "darwin"], [
3487 PKG_CHECK_MODULES(FONTCONFIG, [fontconfig >= 2.11], [
3488 have_fontconfig="yes"
3490 AC_MSG_WARN([${FONTCONFIG_PKG_ERRORS}. Styles will be disabled in FreeType.])
3495 if test "${enable_fribidi}" != "no"; then
3496 PKG_CHECK_MODULES(FRIBIDI, fribidi, [
3498 VLC_ADD_CPPFLAGS([skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
3499 VLC_ADD_LIBS([skins2], [${FRIBIDI_LIBS}])
3500 ],[AC_MSG_WARN([${FRIBIDI_PKG_ERRORS}. Bidirectional text and complex scripts (Arabic, Farsi, Thai...) will be disabled in FreeType.])])
3503 dnl harfbuzz support
3504 if test "${have_fribidi}" != "no"; then
3505 if test "${enable_harfbuzz}" != "no"; then
3506 PKG_CHECK_MODULES(HARFBUZZ, harfbuzz, [
3508 VLC_ADD_CPPFLAGS([skins2], [${HARFBUZZ_CFLAGS} -DHAVE_HARFBUZZ])
3509 VLC_ADD_LIBS([skins2], [${HARFBUZZ_LIBS}])
3510 ],[AC_MSG_WARN([${HARFBUZZ_PKG_ERRORS}. Support for complex scripts (Arabic, Farsi, Thai...) will be disabled in FreeType.])])
3514 AS_IF([test -n "${enable_freetype}"],[
3515 AC_MSG_ERROR([${FREETYPE_PKG_ERRORS}. Install FreeType2 development or configure with --disable-freetype.])
3520 AM_CONDITIONAL([HAVE_FREETYPE], [test "${have_freetype}" = "yes"])
3521 AM_CONDITIONAL([HAVE_FONTCONFIG], [test "${have_fontconfig}" = "yes"])
3522 AM_CONDITIONAL([HAVE_FRIBIDI], [test "${have_fribidi}" = "yes"])
3523 AM_CONDITIONAL([HAVE_HARFBUZZ], [test "${have_harfbuzz}" = "yes"])
3526 dnl libass subtitle rendering module
3528 AC_ARG_ENABLE([libass],
3529 AS_HELP_STRING([--enable-libass], [Subtitle support using libass (default enabled)]))
3530 AS_IF( [test "${enable_libass}" != "no"], [
3531 PKG_CHECK_MODULES(LIBASS, [libass >= 0.9.8],
3533 VLC_ADD_PLUGIN([libass])
3535 if test "${have_fontconfig}" != "no"; then
3536 VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
3537 VLC_ADD_LIBS([libass],[${FONTCONFIG_LIBS}])
3540 AC_MSG_WARN([${LIBASS_PKG_ERRORS}.])
3545 dnl SAPI (text to Speech renderer for Windows)
3548 AC_CHECK_TYPES([ISpObjectToken],[
3550 ],[AC_MSG_WARN([sapi.h not found. Text to Speech renderer for Windows disabled])],
3551 [#include <windows.h>
3553 #include <sphelper.h>])
3554 AM_CONDITIONAL([HAVE_SAPI], [test "${have_sapi}" = "yes"])
3558 dnl SVG module (text rendering and image decoding)
3560 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3561 PKG_ENABLE_MODULES_VLC([SVGDEC], [], [librsvg-2.0 >= 2.9.0 cairo >= 1.13.1], [SVG image decoder library],[auto])
3564 dnl Windows DirectX module
3567 AC_ARG_ENABLE([directx],
3568 AS_HELP_STRING([--enable-directx],
3569 [Microsoft DirectX support (default enabled on Windows)]),, [
3570 AS_IF([test "${SYS}" = "mingw32"], [
3571 enable_directx="yes"
3576 AS_IF([test "${enable_directx}" != "no"], [
3578 AC_CHECK_HEADERS([GL/glew.h], [
3579 AC_CHECK_HEADERS([GL/wglew.h], [
3580 VLC_ADD_PLUGIN([glwin32 wgl])
3582 #include <windows.h>
3583 #include <GL/glew.h>
3585 #include <windows.h>
3589 AC_CHECK_HEADERS([d3d11.h], [
3590 VLC_ADD_PLUGIN([direct3d11 direct3d11_filters])
3594 AC_CHECK_HEADERS([d3d9.h], [
3595 VLC_ADD_PLUGIN([direct3d9])
3596 AC_CHECK_HEADERS([d3dx9effect.h])
3598 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
3599 [[#define COBJMACROS
3601 #include <dxva2api.h>
3602 #ifndef IDirectXVideoProcessorService_GetVideoProcessorDeviceGuids
3603 # error dxva2 too old
3607 VLC_ADD_PLUGIN([direct3d9_filters])
3609 [AC_MSG_WARN([Could not find required IDirectXVideoDecoder in dxva2api.h])])
3615 dnl Linux framebuffer module
3617 AC_CHECK_HEADER([linux/fb.h], [
3618 VLC_ADD_PLUGIN([fb])
3622 dnl Linux kernel mode setting module
3624 PKG_ENABLE_MODULES_VLC([KMS], [], [libdrm >= 2.4.83], [Linux kernel mode setting output], [auto])
3629 PKG_ENABLE_MODULES_VLC([CACA], [], [caca >= 0.99.beta14], [libcaca output],[auto])
3634 AC_ARG_ENABLE([kva],
3635 AS_HELP_STRING([--enable-kva],
3636 [support the K Video Accelerator KVA (default enabled on OS/2)]),, [
3637 AS_IF([test "$SYS" = "os2"], [
3643 AS_IF([test "$enable_kva" != "no"], [
3644 AC_CHECK_HEADERS([kva.h], [
3646 AC_CHECK_LIB([kva], [main], [
3651 AC_SUBST([KVA_LIBS])
3652 AM_CONDITIONAL([HAVE_KVA], [test "${have_kva}" = "yes"])
3657 AC_ARG_ENABLE([mmal],
3658 AS_HELP_STRING([--enable-mmal],
3659 [Multi-Media Abstraction Layer (MMAL) hardware plugin (default enable)]))
3660 if test "${enable_mmal}" != "no"; then
3662 LDFLAGS="${LDFLAGS} -L/opt/vc/lib -lvchostif"
3663 CPPFLAGS="${CPPFLAGS} -isystem /opt/vc/include -isystem /opt/vc/include/interface/vcos/pthreads -isystem /opt/vc/include/interface/vmcs_host/linux"
3664 AC_CHECK_HEADERS([interface/mmal/mmal.h],
3665 [ AC_CHECK_LIB([bcm_host], [vc_tv_unregister_callback_full], [
3667 VLC_ADD_PLUGIN([mmal])
3668 VLC_ADD_LDFLAGS([mmal],[ -L/opt/vc/lib ])
3669 VLC_ADD_CFLAGS([mmal],[ -isystem /opt/vc/include -isystem /opt/vc/include/interface/vcos/pthreads -isystem /opt/vc/include/interface/vmcs_host/linux ])
3670 VLC_ADD_LIBS([mmal],[ -lbcm_host -lmmal -lmmal_core -lmmal_components -lmmal_util -lvchostif ]) ], [
3671 AS_IF([test "${enable_mmal}" = "yes"],
3672 [ AC_MSG_ERROR([Cannot find bcm library...]) ],
3673 [ AC_MSG_WARN([Cannot find bcm library...]) ])
3676 ] , [ AS_IF([test "${enable_mmal}" = "yes"],
3677 [ AC_MSG_ERROR([Cannot find development headers for mmal...]) ],
3678 [ AC_MSG_WARN([Cannot find development headers for mmal...]) ]) ])
3681 AM_CONDITIONAL([HAVE_MMAL], [test "${have_mmal}" = "yes"])
3687 EXTEND_HELP_STRING([Audio plugins:])
3690 dnl Pulseaudio module
3692 AC_ARG_ENABLE([pulse],
3693 AS_HELP_STRING([--enable-pulse],
3694 [use the PulseAudio client library (default auto)]))
3696 AS_IF([test "${enable_pulse}" != "no"], [
3697 PKG_CHECK_MODULES([PULSE], [libpulse >= 1.0], [
3700 AS_IF([test "x${enable_pulse}" != "x"], [
3701 AC_MSG_ERROR([$PULSE_PKG_ERRORS. PulseAudio 1.0 or later required.])
3705 AM_CONDITIONAL([HAVE_PULSE], [test "${have_pulse}" = "yes"])
3710 AC_ARG_ENABLE([alsa],
3711 AS_HELP_STRING([--enable-alsa],
3712 [support the Advanced Linux Sound Architecture (default auto)]),, [
3713 AS_IF([test "$SYS" = "linux" -a "${have_pulse}" = "no"], [
3718 AS_IF([test "${enable_alsa}" != "no"], [
3719 PKG_CHECK_MODULES([ALSA], [alsa >= 1.0.24], [
3722 AS_IF([test "x${enable_alsa}" != "x"], [
3723 AC_MSG_ERROR([$ALSA_PKG_ERRORS. alsa-lib 1.0.24 or later required. Pass --disable-alsa to ignore this error.])
3727 AM_CONDITIONAL([HAVE_ALSA], [test "${have_alsa}" = "yes"])
3730 dnl Open Sound System module
3732 AC_ARG_ENABLE([oss],
3733 AS_HELP_STRING([--enable-oss],
3734 [support the Open Sound System OSS (default enabled on FreeBSD/NetBSD/DragonFlyBSD)]),, [
3735 AS_IF([test "$SYS" = "mingw32" -o "$SYS" = "linux" -o "$SYS" = "openbsd"], [
3741 AS_IF([test "$enable_oss" != "no"], [
3742 AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
3744 AC_CHECK_LIB([ossaudio], [main], [
3745 OSS_LIBS="-lossaudio"
3749 AC_SUBST([OSS_LIBS])
3750 AM_CONDITIONAL([HAVE_OSS], [test "${have_oss}" = "yes"])
3753 dnl OpenBSD sndio module
3755 AC_ARG_ENABLE([sndio],
3756 AS_HELP_STRING([--disable-sndio],
3757 [support the OpenBSD sndio (default auto)]),, [
3758 AS_IF([test "$SYS" = "openbsd"], [
3763 AS_IF([test "$enable_sndio" != "no"], [
3764 AC_CHECK_HEADER([sndio.h], [
3768 AM_CONDITIONAL([HAVE_SNDIO], [test "${have_sndio}" = "yes"])
3771 dnl Windows Audio Session plugin
3773 AC_ARG_ENABLE([wasapi],
3774 AS_HELP_STRING([--enable-wasapi],
3775 [use the Windows Audio Session API (default auto)])
3778 AS_IF([test "$enable_wasapi" != "no"], [
3779 AC_CHECK_HEADER([audioclient.h], [
3782 AS_IF([test "x${enable_wasapi}" != "x"], [
3783 AC_MSG_ERROR([Windows Audio Session API not found.])
3787 AM_CONDITIONAL([HAVE_WASAPI], [test "${have_wasapi}" = "yes"])
3792 AC_ARG_ENABLE([jack],
3793 AS_HELP_STRING([--disable-jack],
3794 [do not use jack (default auto)]))
3796 AS_IF([test "${enable_jack}" != "no"], [
3797 PKG_CHECK_MODULES(JACK, jack >= 1.9.7,
3800 AC_MSG_WARN([${JACK_PKG_ERRORS}, trying jack1 instead])
3802 PKG_CHECK_MODULES(JACK, jack >= 0.120.1 jack < 1.0,
3805 AS_IF([test -n "${enable_jack}"],
3806 [AC_MSG_ERROR([${JACK_PKG_ERRORS}.])],
3807 [AC_MSG_WARN([${JACK_PKG_ERRORS}.])])
3811 AM_CONDITIONAL([HAVE_JACK], [test "${have_jack}" != "no"])
3814 dnl OpenSLES Android
3816 AC_ARG_ENABLE([opensles],
3817 AS_HELP_STRING([--enable-opensles], [Android OpenSL ES audio module (default disabled)]))
3818 if test "${HAVE_ANDROID}" = "1"; then
3819 if test "${enable_opensles}" = "yes"; then
3820 AC_CHECK_HEADERS([SLES/OpenSLES.h],
3821 [ VLC_ADD_PLUGIN([opensles_android]) ],
3822 [ AC_MSG_ERROR([cannot find OpenSLES headers])] )
3827 dnl libsamplerate plugin
3829 PKG_ENABLE_MODULES_VLC([SAMPLERATE], [], [samplerate], [Resampler with libsamplerate], [auto])
3834 PKG_ENABLE_MODULES_VLC([SOXR], [], [soxr >= 0.1.2], [SoX Resampler library], [auto])
3839 AC_ARG_ENABLE([kai],
3840 AS_HELP_STRING([--enable-kai],
3841 [support the K Audio Interface KAI (default enabled on OS/2)]),, [
3842 AS_IF([test "$SYS" = "os2"], [
3848 AS_IF([test "$enable_kai" != "no"], [
3849 AC_CHECK_HEADERS([kai.h], [
3851 AC_CHECK_LIB([kai], [main], [
3856 AC_SUBST([KAI_LIBS])
3857 AM_CONDITIONAL([HAVE_KAI], [test "${have_kai}" = "yes"])
3860 dnl chromaprint audio track fingerprinter
3862 PKG_ENABLE_MODULES_VLC([CHROMAPRINT], [stream_out_chromaprint], [libchromaprint >= 0.6.0], [Chromaprint audio fingeprinter], [auto])
3865 dnl Chromecast streaming support
3867 m4_pushdef([protobuf_lite_version], 2.5.0)
3868 AC_ARG_VAR(PROTOC, [protobuf compiler])
3869 AC_CHECK_PROGS(PROTOC, protoc, no)
3870 PKG_WITH_MODULES([CHROMECAST],[protobuf-lite >= protobuf_lite_version], [
3871 AS_IF([test "x${PROTOC}" != "xno"], [
3872 build_chromecast="yes"
3874 AC_MSG_ERROR(protoc compiler needed for [chromecast] was not found)
3877 AS_IF([test "${enable_chromecast}" = "yes"],
3878 AC_MSG_ERROR(Library [protobuf-lite >= protobuf_lite_version] needed for [chromecast] was not found),
3879 AC_MSG_WARN(Library [protobuf-lite >= protobuf_lite_version] needed for [chromecast] was not found)
3881 enable_chromecast="no"
3882 ], [(Chromecast streaming support)], [auto])
3883 AM_CONDITIONAL([BUILD_CHROMECAST], [test "${build_chromecast}" = "yes"])
3884 m4_popdef([protobuf_lite_version])
3887 dnl Interface plugins
3890 EXTEND_HELP_STRING([Interface plugins:])
3896 AS_HELP_STRING([--disable-qt], [Qt UI support (default enabled)]),, [
3897 AS_IF([test "${enable_vlc}" != "no"], [enable_qt="yes"])
3898 AS_IF([test "${SYS}" = "darwin"], [
3903 AS_IF([test "${enable_qt}" != "no"], [
3904 PKG_CHECK_MODULES([QT], [Qt5Core >= 5.11.0 Qt5Widgets Qt5Gui Qt5Quick Qt5QuickWidgets Qt5QuickControls2 Qt5Svg], [
3905 PKG_CHECK_MODULES([QT5_X11], [Qt5X11Extras], [
3908 AC_MSG_WARN([Not building Qt Interface with X11 helpers.])
3910 QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix Qt5Core)"
3911 QT_HOST_PATH="$(eval $PKG_CONFIG --variable=host_bins Qt5Core)"
3912 QT_VERSION="$(eval $PKG_CONFIG --modversion Qt5Gui)"
3913 AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3914 AC_PATH_PROGS(RCC, [rcc-qt5 rcc], rcc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3915 AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3916 AC_PATH_PROGS(QMLCACHE, [qmlcachegen-qt5 qmlcachegen], no, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3917 AS_IF([test "x${QMLCACHE}" = "xno"], [
3918 AC_MSG_WARN([qmlcachegen not found])
3921 AS_IF([test -n "${enable_qt}"],[
3922 AC_MSG_ERROR([${QT_PKG_ERRORS}. If you want to build VLC without GUI, pass --disable-qt.])
3924 AC_MSG_WARN([${QT_PKG_ERRORS}.])
3930 AC_ARG_ENABLE([qt-qml-cache],
3931 AS_HELP_STRING([--enable-qt-qml-cache],
3932 [enable qml cache generation]))
3933 AM_CONDITIONAL([HAVE_QMLCACHE], [test "${enable_qt_qml_cache}" = "yes" && test "x$QMLCACHE" != "xno"])
3935 AC_ARG_ENABLE([qt-qml-debug],
3936 AS_HELP_STRING([--enable-qt-qml-debug], [enable qml debuger]))
3937 AM_CONDITIONAL(QT_QML_DEBUG, [test "${enable_qt_qml_debug}" = "yes"])
3939 AS_IF([test "${enable_qt}" != "no"], [
3940 ALIASES="${ALIASES} qvlc"
3942 AC_SUBST([QT_VERSION])
3943 AM_CONDITIONAL([ENABLE_QT], [test "$enable_qt" != "no"])
3944 AM_CONDITIONAL([HAVE_QT5_X11], [test "${have_qt5_x11}" = "yes"])
3947 dnl detect kde4-config patch (used for kde solids).
3949 AC_ARG_VAR([KDE4_CONFIG], [kde4-config utility])
3950 AS_IF([test "x$KDE4_CONFIG" = "x"], [
3951 KDE4_CONFIG="kde4-config"
3955 dnl Simple test for skins2 dependency
3957 AS_IF([test "$enable_qt" = "no"], [
3958 AS_IF([test "${enable_skins2}" = "yes"], [
3959 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.])
3962 AC_MSG_WARN([The skins2 module depends on the Qt interface, Qt is not built so skins2 is disabled.])
3969 AC_ARG_ENABLE([skins2],
3970 AS_HELP_STRING([--enable-skins2], [skins interface module (default auto)]))
3971 AS_IF([test "${enable_skins2}" != "no"], [
3972 have_skins_deps="yes"
3975 AS_IF([test "${SYS}" = "mingw32"], [
3976 VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -DWIN32_SKINS])
3977 VLC_ADD_LIBS([skins2],[-lgdi32 -lole32 -luuid -lmsimg32])
3979 ], [test "${SYS}" = "os2"], [
3980 VLC_ADD_CPPFLAGS([skins2],[ -DOS2_SKINS])
3983 PKG_CHECK_MODULES([XPM], [xpm],, [have_skins_deps="no"])
3984 PKG_CHECK_MODULES([XINERAMA], [xinerama],, [have_skins_deps="no"])
3985 PKG_CHECK_MODULES([XCURSOR], [xcursor],, [have_skins_deps="no"])
3986 PKG_CHECK_MODULES([XEXT], [xext],, [have_skins_deps="no"])
3987 VLC_ADD_CPPFLAGS([skins2],[${X_CFLAGS} ${XEXT_CFLAGS} ${XPM_CFLAGS} -DX11_SKINS])
3988 VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} ${XEXT_LIBS} ${XPM_LIBS} ${XINERAMA_LIBS} ${XCURSOR_LIBS} -lX11])
3991 dnl we need freetype
3992 AS_IF([test "${have_freetype}" != "yes"], [
3993 have_skins_deps="no"
3996 AS_IF([test "${have_skins_deps}" = "no"], [
3997 AS_IF([test "x${enable_skins2}" = "x"], [
3998 AC_MSG_WARN([Skins2 interface disabled due to missing dependencies.])
4000 AC_MSG_ERROR([Skins2 interface requires FreeType, libxcursor, libxpm, libxext and libxinerama])
4004 ALIASES="${ALIASES} svlc"
4008 AM_CONDITIONAL([BUILD_SKINS], [test "${enable_skins2}" = "yes"])
4010 AC_ARG_ENABLE([libtar],
4011 AS_HELP_STRING([--enable-libtar], [libtar support for skins2 (default auto)]))
4012 AS_IF([test "${enable_skins2}" = "yes" && test "${enable_libtar}" != "no"], [
4013 AC_CHECK_HEADERS([libtar.h], [
4014 VLC_ADD_LIBS([skins2],[-ltar])
4019 dnl MacOS X gui module
4021 AC_ARG_ENABLE([macosx],
4022 AS_HELP_STRING([--enable-macosx], [Mac OS X gui support (default enabled on Mac OS X)]))
4023 if test "x${enable_macosx}" != "xno" -a "${SYS}" = "darwin"
4027 dnl If possible, use xcrun to find the right ibtool
4030 AC_PATH_PROG([XCRUN], [xcrun], [no])
4031 AS_IF([test ! "x${XCRUN}" = "xno"], [
4032 AC_MSG_CHECKING([for ibtool (using xcrun)])
4033 XIB="$(eval $XCRUN -f ibtool 2>/dev/null || echo no)"
4034 AC_MSG_RESULT([${XIB}])
4036 AC_MSG_WARN([Looking for tools without using xcrun])
4039 AS_IF([test "x${XIB}" = "xno"], [
4040 AC_PATH_PROG(XIB, [ibtool], [no])
4041 AS_IF([test "x${XIB}" = "xno"], [
4042 AC_MSG_ERROR([ibtool was not found, but is required for --enable-macosx])
4046 AM_CONDITIONAL([ENABLE_MACOSX_UI], [test "$enable_macosx" != "no" -a "${SYS}" = "darwin"])
4049 dnl MacOS X sparkle update support
4051 AC_ARG_ENABLE([sparkle],
4052 AS_HELP_STRING([--enable-sparkle], [Sparkle update support for OS X (default enabled on Mac OS X)]))
4053 if test "x${enable_sparkle}" != "xno" -a "${HAVE_OSX}" = "1"
4055 if test ! -d ${CONTRIB_DIR}/Sparkle.framework -a ! -d ${CONTRIB_DIR}/Frameworks/Sparkle.framework
4057 AC_MSG_ERROR([Sparkle framework is required and was not found in ${CONTRIB_DIR}])
4060 AC_DEFINE([HAVE_SPARKLE], [1], [Define to 1 if sparkle is enabled.])
4062 AM_CONDITIONAL([HAVE_SPARKLE], [test "$enable_sparkle" != "no"])
4065 dnl MacOS X breakpad creash reporter support
4067 AC_ARG_WITH([breakpad],
4068 AS_HELP_STRING([--with-breakpad=URL], [Enable Breakpad reporter using given URL]), [], [with_breakpad=no])
4070 AS_IF([test "$with_breakpad" != "no"], [
4072 AS_IF([test "$with_breakpad" = "yes"], [
4073 AC_MSG_ERROR([You need to supply the CrashDragon Server URL as value for --with-breakpad])
4076 AS_IF([test "$HAVE_OSX" = "1"], [
4077 AC_MSG_CHECKING([for Breakpad framework])
4078 AS_IF([test ! -d ${CONTRIB_DIR}/Breakpad.framework -a \
4079 ! -d ${CONTRIB_DIR}/Frameworks/Breakpad.framework], [
4082 AC_MSG_ERROR([Breakpad framework is required and was not found in ${CONTRIB_DIR}])
4084 AC_MSG_RESULT([yes])
4087 PKG_CHECK_MODULES([BREAKPAD], [breakpad-client], [
4088 LDFLAGS="${LDFLAGS} -Wl,--build-id"
4090 AC_MSG_ERROR(["breakpad not found"])
4095 AM_CONDITIONAL([HAVE_BREAKPAD], [test "$with_breakpad" != "no"])
4096 AS_IF([test "$with_breakpad" != "no"], [
4097 AC_SUBST([BREAKPAD_URL], ["${with_breakpad}"])
4101 dnl Minimal Mac OS X module
4103 AC_ARG_ENABLE([minimal-macosx],
4104 AS_HELP_STRING([--enable-minimal-macosx], [Minimal Mac OS X support (default disabled)]))
4105 if test "${enable_minimal_macosx}" = "yes" -a "${SYS}" = "darwin"
4107 VLC_ADD_PLUGIN([minimal_macosx])
4111 dnl Mac OS X fancy dmg build tool
4113 if test "${HAVE_OSX}" = "1"
4115 AC_PATH_PROG(DMGBUILD, dmgbuild, no)
4116 AS_IF([test "x${DMGBUILD}" = "xno"], [
4117 AC_MSG_WARN([dmgbuild not found -- unable to build fancy DMGs])
4120 AM_CONDITIONAL([HAVE_DMGBUILD], [test "x$DMGBUILD" != "xno" -a "${HAVE_OSX}" = "1"])
4123 dnl VideoToolbox plugins
4124 AC_CHECK_HEADERS([VideoToolbox/VideoToolbox.h], [
4125 VLC_ADD_PLUGIN([videotoolbox])
4126 VLC_ADD_PLUGIN([cvpx])
4130 dnl AudioToolbox MIDI plugin
4131 AC_CHECK_HEADERS([AudioToolbox/AudioToolbox.h], [
4132 VLC_ADD_PLUGIN([audiotoolboxmidi])
4138 AC_ARG_ENABLE([ncurses],
4139 AS_HELP_STRING([--disable-ncurses],[ncurses text-based interface (default auto)]))
4141 AS_IF([test "${enable_ncurses}" != "no"] ,[
4142 PKG_CHECK_MODULES([NCURSES], [ncursesw], [
4144 ALIASES="${ALIASES} nvlc"
4146 AS_IF([test -n "${enable_ncurses}"], [
4147 AC_MSG_ERROR([${NCURSES_PKG_ERRORS}.])
4151 AM_CONDITIONAL([HAVE_NCURSES], [test "${have_ncurses}" = "yes"])
4156 AC_ARG_ENABLE([lirc],
4157 AS_HELP_STRING([--enable-lirc], [lirc support (default disabled)]))
4159 AS_IF([test "${enable_lirc}" = "yes"], [
4160 AC_CHECK_HEADER(lirc/lirc_client.h, [
4161 AC_CHECK_LIB([lirc_client], [lirc_init], [
4166 AM_CONDITIONAL([HAVE_LIRC], [test "${have_lirc}" = "yes"])
4171 PKG_CHECK_MODULES([BITSTREAM], [bitstream > 1.4],[have_bitstream="yes"], [have_bitstream="no"])
4172 AM_CONDITIONAL([HAVE_BITSTREAM], [test "${have_bitstream}" = "yes"])
4177 PKG_ENABLE_MODULES_VLC([SRT], [access_srt access_output_srt], [srt >= 1.3.0], [SRT input/output plugin], [auto], [], [], [-DENABLE_SRT])
4179 EXTEND_HELP_STRING([Visualisations and Video filter plugins:])
4181 dnl goom visualization plugin
4183 PKG_ENABLE_MODULES_VLC([GOOM], [], [libgoom2], [goom visualization plugin], [auto])
4186 dnl libprojectM visualization plugin
4188 AC_ARG_ENABLE([projectm],
4189 AS_HELP_STRING([--enable-projectm], [projectM visualization plugin (default enabled)]))
4190 AS_IF([test "${enable_projectm}" != "no"],
4192 PKG_CHECK_MODULES(PROJECTM, libprojectM,
4194 VLC_ADD_PLUGIN([projectm])
4195 PKG_CHECK_EXISTS([libprojectM >= 2.0.0],
4196 [ AC_DEFINE([HAVE_PROJECTM2], 1, [Define to 1 if using libprojectM 2.x]) ],
4197 [ AC_MSG_WARN( [Using libprojectM version 1] )
4200 AC_MSG_WARN([${PROJECTM_PKG_ERRORS}.])
4205 dnl Vovoid VSXu visualization plugin
4207 AC_ARG_ENABLE([vsxu],
4208 AS_HELP_STRING([--enable-vsxu], [Vovoid VSXu visualization plugin (default auto)]))
4209 AS_IF([test "${enable_vsxu}" != "no"],
4211 PKG_CHECK_MODULES(VSXU, libvsxu,
4213 VLC_ADD_PLUGIN([vsxu])
4215 AC_MSG_WARN([${VSXU_PKG_ERRORS}.])
4219 EXTEND_HELP_STRING([Service Discovery plugins:])
4221 dnl Avahi-Zeroconf services discovery
4222 PKG_ENABLE_MODULES_VLC([AVAHI], [], [avahi-client >= 0.6], [Zeroconf services discovery], [auto])
4225 dnl libudev services discovery
4226 PKG_ENABLE_MODULES_VLC([UDEV], [], [libudev >= 142], [Linux udev services discovery], [auto])
4229 dnl MTP devices services discovery
4230 PKG_ENABLE_MODULES_VLC([MTP], [mtp access_mtp], [libmtp >= 1.0.0], [MTP devices support], [auto])
4233 dnl UPnP Plugin (Intel SDK)
4235 PKG_ENABLE_MODULES_VLC([UPNP], [upnp], [libupnp], [Intel UPNP SDK],[auto])
4238 dnl mDNS using libmicrodns
4240 PKG_ENABLE_MODULES_VLC([MICRODNS], [], [microdns], [mDNS services discovery], [auto])
4243 EXTEND_HELP_STRING([Misc options:])
4248 PKG_ENABLE_MODULES_VLC([LIBXML2], [xml], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
4254 AC_ARG_ENABLE([libgcrypt],
4255 AS_HELP_STRING([--disable-libgcrypt], [gcrypt support (default enabled)]))
4256 AC_ARG_VAR([GCRYPT_CFLAGS], [C compiler flags for gcrypt])
4257 AC_ARG_VAR([GCRYPT_LIBS], [linker flags flags for gcrypt])
4259 # require libgcrypt >= 1.6.0
4260 AS_IF([test "${enable_libgcrypt}" != "no"], [
4261 AC_CACHE_CHECK([for gcrypt 1.6.0 or later], [ac_cv_lib_gcrypt], [
4263 CFLAGS="${CFLAGS} ${GCRYPT_CFLAGS}"
4264 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
4265 [#include <gcrypt.h>
4266 #if GCRYPT_VERSION_NUMBER < 0x010600
4269 ac_cv_lib_gcrypt=yes
4276 AS_IF([test "${ac_cv_lib_gcrypt}" = "yes"], [
4277 AC_DEFINE([HAVE_GCRYPT], 1, [Defined if having gcrypt])
4279 AS_IF([test "${enable_libgcrypt}" = "yes"], [
4280 AC_MSG_ERROR([libgcrypt version 1.6.0 or higher not found. Install libgcrypt or pass --disable-libgcrypt.])
4285 AS_IF([test -z "$GCRYPT_LIBS"], [
4286 GCRYPT_LIBS="-lgcrypt -lgpg-error"
4289 AC_SUBST([GCRYPT_CFLAGS])
4290 AC_SUBST([GCRYPT_LIBS])
4291 AM_CONDITIONAL([HAVE_GCRYPT], [test "${ac_cv_lib_gcrypt}" = "yes"])
4296 AC_ARG_ENABLE([gnutls],
4297 AS_HELP_STRING([--enable-gnutls], [GNU TLS TLS/SSL support (default enabled)]))
4298 AS_IF([test "${enable_gnutls}" != "no"], [
4299 PKG_CHECK_MODULES(GNUTLS, [gnutls >= 3.5.0], [
4300 VLC_ADD_PLUGIN([gnutls])
4302 AS_IF([test -n "${enable_gnutls}"], [
4303 AC_MSG_ERROR([${GNUTLS_PKG_ERRORS}.)])
4312 AC_ARG_ENABLE([taglib],
4313 AS_HELP_STRING([--disable-taglib],
4314 [do not use TagLib (default enabled)]))
4315 AS_IF([test "${enable_taglib}" != "no"], [
4316 PKG_CHECK_MODULES(TAGLIB, taglib >= 1.11, [
4317 VLC_ADD_PLUGIN([taglib])
4319 AC_MSG_WARN([${TAGLIB_PKG_ERRORS}.])])
4325 PKG_ENABLE_MODULES_VLC([SECRET], [], [libsecret-1 >= 0.18], [use libsecret for keystore], [auto])
4330 AC_ARG_ENABLE([kwallet],
4331 AS_HELP_STRING([--enable-kwallet],
4332 [use kwallet (via D-Bus) for keystore (default enabled)]))
4333 AS_IF([test "${enable_kwallet}" != "no" -a "${have_dbus}" = "yes"], [
4334 VLC_ADD_PLUGIN([kwallet])
4338 dnl update checking system
4340 AC_ARG_ENABLE([update-check],
4341 AS_HELP_STRING([--enable-update-check], [update checking system (default disabled)]))
4342 if test "${enable_update_check}" = "yes"
4344 AS_IF([test "${ac_cv_lib_gcrypt}" != "yes"],[
4345 AC_MSG_ERROR([libgcrypt is required for update checking system]) ])
4347 AM_CONDITIONAL([UPDATE_CHECK], [test "${enable_update_check}" = "yes"])
4350 dnl OS X notification plugin
4352 AC_ARG_ENABLE([osx_notifications],
4353 AS_HELP_STRING([--enable-osx-notifications],
4354 [macOS notification plugin (default disabled)]),,
4355 [enable_osx_notifications=no])
4356 AS_IF([test "${enable_osx_notifications}" != "no"], [
4357 VLC_ADD_PLUGIN([osx_notifications])
4361 dnl Libnotify notification plugin
4363 PKG_ENABLE_MODULES_VLC([NOTIFY], [], [libnotify gtk+-3.0], [libnotify notification], [auto])
4365 PKG_ENABLE_MODULES_VLC([MEDIALIBRARY], [medialibrary], [medialibrary >= 0.7.1], (medialibrary support), [auto])
4368 dnl Endianness check
4371 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
4372 DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
4376 AC_SUBST([DEFS_BIGENDIAN])
4379 dnl Where to install KDE solid .desktop
4381 AC_ARG_WITH(kde-solid,
4382 AS_HELP_STRING([--with-kde-solid=PATH],
4383 [KDE Solid actions directory (auto)]),, [
4385 if test "${SYS}" != "mingw32" -a "${SYS}" != "darwin" -a "${HAVE_ANDROID}" != "1" ; then
4386 with_kde_solid="yes"
4390 AS_IF([test "${with_kde_solid}" != "no"], [
4391 AS_IF([test "${with_kde_solid}" = "yes"], [
4392 kde4datadir="`${KDE4_CONFIG} --install data`"
4393 AS_IF([test "x$kde4datadir" = "x"], [kde4datadir='${datadir}/kde4/apps'])
4394 soliddatadir="${kde4datadir}/solid/actions"
4396 soliddatadir="${with_kde_solid}"
4399 AC_SUBST([soliddatadir])
4400 AM_CONDITIONAL([KDE_SOLID], [test "x${soliddatadir}" != "x"])
4403 dnl Find tools for win32 packaging
4405 AS_IF([test "${SYS}" = "mingw32"], [
4407 dnl Find makensis required to build the NSIS installer
4409 nsis_major_required="3"
4410 nsis_version_ok="no"
4411 AC_PATH_PROG([MAKENSIS], [makensis], [no])
4412 AS_IF([test "$MAKENSIS" != "no"], [
4414 AC_MSG_CHECKING([makensis version])
4415 nsis_version=$($MAKENSIS -VERSION)
4416 AC_MSG_RESULT([$nsis_version])
4417 nsis_version_major=$(echo "$nsis_version" | awk -F \. '{print $1}' | sed 's/v//')
4418 # Check if major version is a valid number
4419 AS_IF([test -n "$nsis_version_major" && \
4420 test "$nsis_version_major" -eq "$nsis_version_major" 2> /dev/null], [
4421 # Do the version check using major version
4422 AS_IF([test "$nsis_version_major" -lt "$nsis_major_required"], [
4423 AC_MSG_WARN([makensis too old, (needs ${nsis_major_required}.x, have ${nsis_version_major}.x)])
4425 nsis_version_ok="yes"
4428 AC_MSG_WARN([failed to check the makensis version])
4434 AC_PATH_PROG([SEVENZIP], [7z], [7z])
4436 AM_CONDITIONAL([HAVE_MAKENSIS], [test "x$MAKENSIS" != "xno" && test "$nsis_version_ok" = "yes"])
4439 dnl Check wether we have the PROCESS_MITIGATION_IMAGE_LOAD_POLICY
4440 dnl It should only be available when building for win10, but some SDKs define it unconditionnaly
4442 if test "${SYS}" = "mingw32"; then
4443 AC_CHECK_TYPES([PROCESS_MITIGATION_IMAGE_LOAD_POLICY],,,[#include <windows.h>])
4446 EXTEND_HELP_STRING([Components:])
4451 AC_ARG_ENABLE([vlc],
4452 AS_HELP_STRING([--enable-vlc], [build the VLC media player (default enabled)]))
4453 AM_CONDITIONAL([BUILD_VLC], [test "${enable_vlc}" != "no"])
4456 dnl Fuzzer (at the end not to mess dependencies FLAGS)
4458 AS_VAR_IF(with_libfuzzer, no, [], [
4459 LIBS="-lstdc++ ${LIBM}"
4460 AS_IF([test "${with_libfuzzer}" != "yes"], [
4461 LIBS="$LIBS -L${with_libfuzzer}"
4463 LIBS="$LIBS -lFuzzer"
4464 AX_CHECK_COMPILE_FLAG(-fsanitize-coverage=trace-pc-guard, [
4465 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc-guard])
4466 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc-guard], [CXXFLAGS])
4467 AX_APPEND_COMPILE_FLAGS([-fsanitize-coverage=trace-cmp])
4468 AX_APPEND_COMPILE_FLAGS([-fsanitize-coverage=trace-cmp], [CXXFLAGS])
4470 AX_CHECK_COMPILE_FLAG(-fsanitize-coverage=trace-pc, [
4471 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc])
4472 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc], [CXXFLAGS])
4474 AC_MSG_ERROR([Sanitizer coverage not supported by your compiler])
4480 dnl Stuff used by the program
4482 VERSION_MESSAGE="${VERSION} ${CODENAME}"
4483 COPYRIGHT_MESSAGE="Copyright © ${COPYRIGHT_YEARS} the VideoLAN team"
4484 AC_DEFINE_UNQUOTED([VERSION_MESSAGE], "${VERSION_MESSAGE}", [Simple version string])
4485 AC_DEFINE_UNQUOTED([COPYRIGHT_MESSAGE], "${COPYRIGHT_MESSAGE}", [Copyright string])
4486 AC_DEFINE_UNQUOTED([COPYRIGHT_YEARS], "${COPYRIGHT_YEARS}", [The copyright years])
4487 AC_DEFINE_UNQUOTED([CONFIGURE_LINE], "${CONFIGURE_LINE}", [The ./configure command line])
4488 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_MAJOR],${VERSION_MAJOR}, [version major number])
4489 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_MINOR],${VERSION_MINOR}, [version minor number])
4490 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_REVISION],${VERSION_REVISION}, [version revision number])
4491 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_EXTRA],${VERSION_EXTRA}, [version extra number])
4492 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_DEV],"${VERSION_DEV}", [version development string])
4493 AC_SUBST([COPYRIGHT_MESSAGE])
4494 AC_SUBST([VERSION_MESSAGE])
4495 AC_SUBST([VERSION_MAJOR])
4496 AC_SUBST([VERSION_MINOR])
4497 AC_SUBST([VERSION_REVISION])
4498 AC_SUBST([VERSION_EXTRA])
4499 AC_SUBST([COPYRIGHT_YEARS])
4500 AC_DEFINE_UNQUOTED([VLC_COMPILE_BY], "`whoami|sed -e 's/\\\/\\\\\\\/g'`", [user who ran configure])
4501 AC_DEFINE_UNQUOTED([VLC_COMPILE_HOST], "`hostname -f 2>/dev/null || hostname`", [host which ran configure])
4502 AC_DEFINE_UNQUOTED([VLC_COMPILER], "`$CC -v 2>&1 | tail -n 1 | sed -e 's/ *$//'`", [compiler])
4504 dnl Handle substvars that use $(top_srcdir)
4506 CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS}"
4509 dnl Configuration is finished
4519 AC_SUBST([WINE_SDK_PATH])
4521 AC_SUBST([AM_CPPFLAGS])
4522 AC_SUBST([MACOSX_DEPLOYMENT_TARGET])
4523 AC_SUBST([FILE_LIBVLCCORE_DLL])
4524 AC_SUBST([FILE_LIBVLC_DLL])
4538 modules/hw/mmal/Makefile
4539 share/vlc.appdata.xml.in
4542 AM_COND_IF([HAVE_WIN32], [
4544 extras/package/win32/NSIS/spad.nsi
4545 extras/package/win32/NSIS/vlc.win32.nsi
4546 extras/package/win32/msi/config.wxi
4550 AM_COND_IF([HAVE_DARWIN], [
4552 modules/gui/macosx/UI/InfoPlist.strings:modules/gui/macosx/Resources/InfoPlist.strings.in
4553 share/macosx/Info.plist:share/Info.plist.in
4557 dnl Generate makefiles
4560 dnl Do we have to use make or gmake ?
4561 if make --version 2>&1|grep -q GNU
4563 # GNU make, all seems good
4566 # Known GNU make alias (on BSD)
4569 dnl Shortcut to nice compile message
4570 if test -n $SHELL; then
4571 SHELL=${CONFIG_SHELL-/bin/sh}
4574 compile_top_srcdir=`sed -ne "s/^top_srcdir *= *//p" < Makefile`
4578 export PATH=\"$PATH\" LANG=C
4579 ($MAKE V=1 \$@ 2>&1 || touch .error\$\$)| $compile_top_srcdir/extras/buildsystem/make.pl
4580 test -f .error\$\$ && ERROR=1
4582 exit \$ERROR" >compile
4586 libvlc configuration
4587 --------------------
4588 version : ${VERSION}
4590 architecture : ${ARCH}
4591 optimizations : ${enable_optimizations}"
4592 if test "${enable_vlc}" != "no"; then
4593 echo "vlc aliases :${ALIASES}"
4595 echo "build vlc executable : no"
4598 To build vlc and its plugins, type \`$MAKE', or \`./compile' if you like nice colors."