1 dnl Autoconf settings for vlc
3 AC_COPYRIGHT([Copyright 1999-2019 VLC authors and VideoLAN])
5 AC_INIT([vlc], [4.0.0-dev])
15 CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
16 CODENAME="Otto Chriek"
17 COPYRIGHT_YEARS="1996-2019"
19 AC_CONFIG_SRCDIR([src/libvlc.c])
20 AC_CONFIG_AUX_DIR([autotools])
21 AC_CONFIG_MACRO_DIR([m4])
22 AC_CONFIG_LIBOBJ_DIR([compat])
25 AC_PRESERVE_HELP_ORDER
27 AM_INIT_AUTOMAKE([tar-ustar color-tests foreign])
28 AC_CONFIG_HEADERS([config.h])
30 AM_SILENT_RULES([yes])
31 AM_MAINTAINER_MODE([enable])
37 AC_USE_SYSTEM_EXTENSIONS
39 AH_VERBATIM([FORTIFY_SOURCE],
40 [/* Enable compile-time and run-time bounds-checking, and some warnings,
41 without upsetting glibc 2.15+ or toolchains predefining _FORTIFY_SOURCE */
42 #if !defined _FORTIFY_SOURCE && defined __OPTIMIZE__ && __OPTIMIZE__
43 # define _FORTIFY_SOURCE 2
45 AC_DEFINE([_FILE_OFFSET_BITS], 64, [Define to 64 for large files support.])
46 AC_DEFINE([__LIBVLC__],, [Define within the LibVLC source code tree.])
47 AC_DEFINE([WIN32_LEAN_AND_MEAN],, [Define to limit the scope of <windows.h>.])
59 AC_ARG_VAR([DESKTOP_FILE_VALIDATE], [Validator for desktop entry files])
60 AC_CHECK_PROGS([DESKTOP_FILE_VALIDATE], [${DESKTOP_FILE_VALIDATE} desktop-file-validate], :)
61 AC_ARG_VAR([BUILDCC], [Build system C11 or C99 compiler command])
62 AC_CHECK_PROGS([BUILDCC], [c11-gcc c11 c99-gcc c99], [false])
63 AS_IF([test "$BUILDCC" = "false"], [
64 AC_MSG_ERROR([Cannot find native C99 compiler: please define BUILDCC.])
67 dnl Check for compiler properties
71 AX_CXX_COMPILE_STDCXX_11([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
104 CFLAGS="${CFLAGS} -pthread"
108 CFLAGS="${CFLAGS} -pthread"
112 CFLAGS="${CFLAGS} -pthread"
113 CPPFLAGS="${CPPFLAGS} -I/usr/local/include"
114 LDFLAGS="${LDFLAGS} -L/usr/local/lib"
119 CPPFLAGS="${CPPFLAGS} -I/usr/local/include -I/usr/X11R6/include"
120 LDFLAGS="${LDFLAGS} -L/usr/local/lib -L/usr/X11R6/lib/"
130 dnl Force gcc "-arch" flag
132 case "${host_cpu}" in
134 ARCH_flag="-arch i386"
137 ARCH_flag="-arch ppc64"
140 ARCH_flag="-arch ppc"
143 ARCH_flag="-arch x86_64"
146 ac_cv_c_bigendian="no"
147 ac_cv_c_attribute_packed="no"
152 CFLAGS="${CFLAGS} -D_INTL_REDIRECT_MACROS -std=gnu11 ${ARCH_flag}"
153 CXX="${CXX} -stdlib=libc++ -std=c++11"
154 CXXFLAGS="${CXXFLAGS} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"
155 CPPFLAGS="${CPPFLAGS} ${ARCH_flag}"
156 OBJCFLAGS="${OBJCFLAGS} -D_INTL_REDIRECT_MACROS -std=gnu11 ${ARCH_flag} -Werror=partial-availability"
157 LDFLAGS="${LDFLAGS} -Wl,-headerpad_max_install_names ${ARCH_flag}"
158 VLC_ADD_LIBS([libvlc vlc],[-Wl,-undefined,dynamic_lookup,-framework,AppKit])
159 VLC_ADD_LIBS([libvlccore],[-Wl,-framework,CoreFoundation,-framework,CoreServices])
162 [#import <TargetConditionals.h>
170 [#import <TargetConditionals.h>
180 dnl Handle Mac OS X SDK flags
182 AC_ARG_WITH(macosx-sdk,
183 AS_HELP_STRING([--with-macosx-sdk=DIR],
184 [compile using the SDK in DIR]))
185 if test "${with_macosx_sdk}" != "" ; then
186 test ! -d "${with_macosx_sdk}" && AC_MSG_ERROR([SDK "${with_macosx_sdk}" not found])
187 CPP="${CPP} -isysroot ${with_macosx_sdk}"
188 CC="${CC} -isysroot ${with_macosx_sdk}"
189 CXX="${CXX} -isysroot ${with_macosx_sdk}"
190 OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
191 LD="${LD} -syslibroot ${with_macosx_sdk}"
193 AC_ARG_WITH(macosx-version-min,
194 AS_HELP_STRING([--with-macosx-version-min=VERSION],
195 [compile for Mac OS X VERSION and above]))
196 if test "${with_macosx_version_min}" != "" ; then
197 CPP="${CPP} -mmacosx-version-min=${with_macosx_version_min}"
198 CC="${CC} -mmacosx-version-min=${with_macosx_version_min}"
199 CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
200 OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
201 LD="${LD} -mmacosx_version_min=${with_macosx_version_min}"
204 *mingw32* | *cygwin* | *wince* | *mingwce*)
205 dnl Force libtool to not link to (shared) libgcc_s when detecting C++ dependencies
206 dnl When doing this test with -static-libgcc it will link on (static) libgcc_eh
207 CXXFLAGS="${CXXFLAGS} -static-libgcc"
208 AC_CHECK_TOOL(WINDRES, windres, :)
209 AC_CHECK_TOOL(OBJCOPY, objcopy, :)
210 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
211 [[#ifdef _WIN32_WINNT
212 # error _WIN32_WINNT already defined
216 AC_DEFINE([_WIN32_WINNT], 0x0601, [Define to '0x0601' for Windows 7 APIs.])
218 AC_DEFINE([_WIN32_IE], 0x0600, [Define to '0x0600' for IE 6.0 (and shell) APIs.])
219 AC_DEFINE([_UNICODE], [1], [Define to 1 for Unicode (Wide Chars) APIs.])
220 AC_DEFINE([UNICODE], [1], [Define to 1 for Unicode (Wide Chars) APIs.])
221 AC_DEFINE([_ISOC99_SOURCE], [1], [Extensions to ISO C89 from ISO C99.])
222 AC_DEFINE([_ISOC11_SOURCE], [1], [Extensions to ISO C99 from ISO C11.])
223 AC_DEFINE([_POSIX_SOURCE], [1], [IEEE Std 1003.1.])
224 AC_DEFINE([_POSIX_C_SOURCE], [200809L], [IEEE Std 1003.1.])
225 AC_DEFINE([_XOPEN_SOURCE], [700], [POSIX and XPG 7th edition])
226 AC_DEFINE([_XOPEN_SOURCE_EXTENDED], [1], [XPG things and X/Open Unix extensions.])
227 AC_DEFINE([_BSD_SOURCE], [1], [ISO C, POSIX, and 4.3BSD things.])
228 AC_DEFINE([_SVID_SOURCE], [1], [ISO C, POSIX, and SVID things.])
235 dnl Check if we are using the mno-cygwin mode in which case we are
236 dnl actually dealing with a mingw32 compiler.
241 SYS=mingw32, AC_MSG_ERROR([VLC requires -mno-cygwin]))
245 if test "${SYS}" = "mingw32"; then
247 LDFLAGS="${LDFLAGS} -Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase"
249 AC_CHECK_PROGS(U2D, [unix2dos todos], unix2dos)
250 ac_default_prefix="`pwd`/_win32"
251 DESTDIR="`pwd`/_win32/"
254 dnl NSIS/MSI Installer prefix and WIN64
256 case "${host_cpu}" in
257 amd64|x86_64|aarch64)
260 PROGRAMFILES="PROGRAMFILES64"
261 LDFLAGS="${LDFLAGS} -Wl,--high-entropy-va -Wl,--image-base,0x140000000"
265 PROGRAMFILES="PROGRAMFILES"
268 AC_SUBST([WINDOWS_ARCH])
269 AC_SUBST([PROGRAMFILES])
284 LDFLAGS="${LDFLAGS} -Zomf -Zbin-files -Zargs-wild -Zhigh-mem"
285 AC_LIBOBJ([freeaddrinfo])
286 AC_LIBOBJ([gai_strerror])
287 AC_CHECK_FUNCS([if_nametoindex])
291 AC_DEFINE([_XOPEN_SOURCE], [700], [POSIX and XPG 7th edition])
302 AC_ARG_ENABLE([winstore_app],
303 AS_HELP_STRING([--enable-winstore-app],
304 [Build targetted for Windows Store apps (default disabled)]))
307 AS_IF([test "${SYS}" = "mingw32"],[
309 AS_IF([test "${enable_winstore_app}" = "yes"], [
312 VLC_ADD_LIBS([libvlccore], [-lruntimeobject])
313 AC_LIBOBJ([gai_strerror])
317 AC_DEFINE_UNQUOTED(VLC_WINSTORE_APP, ${vlc_winstore_app}, [Define to 1 if you want to build for Windows Store apps])
319 AM_CONDITIONAL([HAVE_LINUX], [test "${SYS}" = "linux"])
320 AM_CONDITIONAL([HAVE_OS2], [test "${SYS}" = "os2"])
322 AM_CONDITIONAL([HAVE_DARWIN], [test "${SYS}" = "darwin"])
323 AM_CONDITIONAL([HAVE_IOS], [test "${HAVE_IOS}" = "1"])
324 AM_CONDITIONAL([HAVE_OSX], [test "${HAVE_OSX}" = "1"])
325 AM_CONDITIONAL([HAVE_TVOS], [test "${HAVE_TVOS}" = "1"])
327 AM_CONDITIONAL([HAVE_NACL], [test "${SYS}" = "nacl"])
328 AM_CONDITIONAL([HAVE_LIBANL], [test "${HAVE_LIBANL}" = "1"])
330 AM_CONDITIONAL([HAVE_WIN32], [test "${SYS}" = "mingw32"])
331 AM_CONDITIONAL([HAVE_WIN64], [test "${HAVE_WIN64}" = "1"]) dnl Only used for the packaging
332 AM_CONDITIONAL([HAVE_WINSTORE], [test "$vlc_winstore_app" = "1"])
333 AM_CONDITIONAL([HAVE_WIN32_DESKTOP], [test "${SYS}" = "mingw32" -a "$vlc_winstore_app" = "0"])
336 dnl Sadly autoconf does not think about testing foo.exe when ask to test
337 dnl for program foo on win32
338 case "${build_os}" in
340 ac_executable_extensions=".exe"
349 AC_SUBST([BUILDEXEEXT])
351 dnl Android is linux, but a bit different
352 AS_IF([test "$SYS" = linux],[
353 AC_MSG_CHECKING([for an Android system])
354 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
355 [[#ifndef __ANDROID__
366 AM_CONDITIONAL([HAVE_ANDROID], [test "${HAVE_ANDROID}" = "1"])
368 dnl Tizen (minimum SDK version: 2.3)
369 AS_IF([test "$SYS" = linux],[
370 AC_MSG_CHECKING([for Tizen])
371 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
376 AC_DEFINE([HAVE_TIZEN_SDK], [1], [Define to 1 if vlc is built against Tizen SDK])
382 AM_CONDITIONAL([HAVE_TIZEN], [test "${HAVE_TIZEN}" = "1"])
385 dnl Check for the contrib directory
388 AS_HELP_STRING([--with-contrib[=DIR]],
389 [search for 3rd party libraries in DIR/include and DIR/lib])
391 AC_MSG_CHECKING([for 3rd party libraries path])
392 AS_IF([test -z "${with_contrib}" || test "${with_contrib}" = "yes"], [
393 CONTRIB_DIR="${srcdir}/contrib/${host}"
394 AS_IF([test ! -d "${CONTRIB_DIR}"], [
395 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
396 CONTRIB_DIR="${srcdir}/contrib/`$CC -dumpmachine`"
397 AS_IF([test ! -d "${CONTRIB_DIR}"], [
398 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
400 AC_MSG_RESULT([not found])
404 AS_IF([test "${with_contrib}" != "no"], [
405 CONTRIB_DIR="${with_contrib}"
408 AC_MSG_RESULT([disabled])
411 AS_IF([test -n "${CONTRIB_DIR}"], [
412 AS_IF([test -d "${CONTRIB_DIR}/lib"],[
413 CONTRIB_DIR=`cd "${CONTRIB_DIR}" && pwd`
415 echo "${CONTRIB_DIR}/lib not found" >&AS_MESSAGE_LOG_FD
417 AC_MSG_RESULT([not usable])
421 AS_IF([test -n "${CONTRIB_DIR}"], [
422 AC_MSG_RESULT([${CONTRIB_DIR}])
423 CPPFLAGS="${CPPFLAGS} -I${CONTRIB_DIR}/include"
424 CFLAGS="${CFLAGS} -I${CONTRIB_DIR}/include"
425 CXXFLAGS="${CXXFLAGS} -I${CONTRIB_DIR}/include"
426 OBJCFLAGS="${OBJCFLAGS} -I${CONTRIB_DIR}/include -F${CONTRIB_DIR} -F${CONTRIB_DIR}/Frameworks"
427 export PKG_CONFIG_PATH="${CONTRIB_DIR}/lib/pkgconfig:${CONTRIB_DIR}/share/pkgconfig:$PKG_CONFIG_PATH"
428 LDFLAGS="${LDFLAGS} -L${CONTRIB_DIR}/lib"
430 AS_IF([test -z "$LUAC"], [
431 dnl Old contribs mixed cross-tools and cross-compiled executables
432 AS_IF([test -x "${CONTRIB_DIR}/bin/luac${BUILDEXEEXT}"], [
433 LUAC="${CONTRIB_DIR}/bin/luac${BUILDEXEEXT}"
436 dnl Newer contribs follow usual name space rules
437 AS_IF([test -x "${CONTRIB_DIR}/../bin/${host_alias}-luac${BUILDEXEEXT}"], [
438 LUAC="${CONTRIB_DIR}/../bin/${host_alias}-luac${BUILDEXEEXT}"
442 AS_IF([test "${SYS}" = "darwin"], [
443 export LD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$LD_LIBRARY_PATH"
444 export DYLD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$DYLD_LIBRARY_PATH"
447 AS_IF([test -n "${with_contrib}" && test "${with_contrib}" != "no"], [
448 AC_MSG_ERROR([Third party libraries not found!])
451 AC_SUBST([CONTRIB_DIR])
453 dnl Add extras/tools to the PATH
454 TOOLS_DIR="${srcdir}/extras/tools/build/bin"
455 AS_IF([test -d "${TOOLS_DIR}"], [
456 TOOLS_DIR=`cd "${TOOLS_DIR}" && pwd`
457 export PATH="${TOOLS_DIR}":$PATH
462 dnl It's very bad, but our former custom system was worst
466 dnl override platform specific check for dependent libraries
467 dnl otherwise libtool linking of shared libraries will
468 dnl fail on anything other than pass_all.
469 AC_CACHE_VAL(lt_cv_deplibs_check_method,
470 [lt_cv_deplibs_check_method=pass_all])
472 LT_INIT([dlopen win32-dll shared disable-static])
474 LT_LANG([Windows Resource])
478 lt_cv_deplibs_check_method=pass_all
480 AS_IF([test "${enable_shared}" = "no" -a "${enable_vlc}" != "no"], [
481 AC_MSG_ERROR([VLC is based on plugins. Shared libraries cannot be disabled.])
487 AM_GNU_GETTEXT_VERSION([0.19.8])
488 AM_GNU_GETTEXT([external], [need-formatstring-macros])
497 AS_IF([test "${SYS}" = "mingw32"], [
499 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
500 #if !defined(__MINGW32__)
501 # error Not compiling with mingw
505 dnl Check for broken versions of mingw-runtime compatability library
506 AC_MSG_CHECKING(for broken mingw-runtime)
507 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
509 #if defined(__MINGW64_VERSION_MAJOR)
510 # if __MINGW64_VERSION_MAJOR < 5
511 # error Update your mingw-w64! This one is too old.
514 # error You cannot compile with Mingw. Use Mingw-w64!
519 AC_MSG_RESULT([present])
520 AC_MSG_ERROR([LibVLC requires Mingw-w64 version 5.0 or higher!])
523 dnl force use of mingw provided c99 *printf over msvcrt
524 CPPFLAGS="${CPPFLAGS} -D__USE_MINGW_ANSI_STDIO=1"
526 dnl Check for the need to include the mingwex lib for mingw32
528 AC_CHECK_LIB([mingwex], [opendir],
529 AC_CHECK_LIB([mingw32], [opendir],,
530 [VLC_ADD_LIBS([libvlccore],[-lmingwex])])
534 AC_MSG_RESULT([Not compiling with mingw])
537 dnl Check for fnative-struct or mms-bitfields support for mingw32
538 AX_CHECK_COMPILE_FLAG([-mms-bitfields], [
539 AX_APPEND_FLAG([-mms-bitfields], [CFLAGS])
540 AX_APPEND_FLAG([-mms-bitfields], [CXXFLAGS])
541 # Check for the warning flag without "-Wno-", GCC accepts
542 # -Wno-<anything> for unsupported warnings, which can trigger
543 # other warnings instead.
544 AX_CHECK_COMPILE_FLAG([-Wincompatible-ms-struct], [
545 AX_APPEND_FLAG([-Wno-incompatible-ms-struct], [CFLAGS])
546 AX_APPEND_FLAG([-Wno-incompatible-ms-struct], [CXXFLAGS])
549 AX_CHECK_COMPILE_FLAG([-fnative-struct], [
550 AX_APPEND_FLAG([-fnative-struct], [CFLAGS])
551 AX_APPEND_FLAG([-fnative-struct], [CXXFLAGS])
558 dnl Buggy glibc prevention. Purposedly not cached.
559 dnl See sourceware.org bugs 5058 and 5443.
560 dnl Ubuntu alone has 20 bug numbers for this...
562 AC_MSG_CHECKING(for buggy GNU/libc versions)
563 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
565 #if defined (__GLIBC__) && (__GLIBC__ == 2) \
566 && (__GLIBC_MINOR__ >= 5) && (__GLIBC_MINOR__ <= 7)
567 # error GNU/libc with dcgettext killer bug!
570 AC_MSG_RESULT([not present])
572 AC_MSG_RESULT([found])
573 AS_IF([test "x${enable_nls}" != "xno"], [
574 AC_MSG_ERROR([Buggy GNU/libc (version 2.5 - 2.7) present. VLC would crash; there is no viable
575 work-around for this. Check with your distribution vendor on how to update the
576 glibc run-time. Alternatively, build with --disable-nls.])
580 dnl Plugin compilation stuff
584 dnl Check for system libs needed
587 dnl Check for usual libc functions
588 AC_CHECK_FUNCS([accept4 daemon fcntl flock fstatvfs fork getenv getpwuid_r isatty memalign mkostemp mmap open_memstream newlocale openat pipe2 pread posix_fadvise posix_madvise posix_memalign setlocale stricmp strnicmp strptime uselocale])
589 AC_REPLACE_FUNCS([aligned_alloc atof atoll dirfd fdopendir flockfile fsync getdelim getpid lfind lldiv memrchr nrand48 poll recvmsg rewind sendmsg setenv strcasecmp strcasestr strdup strlcpy strndup strnlen strnstr strsep strtof strtok_r strtoll swab tdestroy tfind timegm timespec_get strverscmp pathconf])
590 AC_REPLACE_FUNCS([gettimeofday])
591 AC_CHECK_FUNC(fdatasync,,
592 [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
595 VLC_REPLACE_DECL([realpath], [#include <stdlib.h>])
597 dnl mingw64 implements those as static inline, not functions with C linkage
598 VLC_REPLACE_DECL([asprintf], [#include <stdio.h>])
599 VLC_REPLACE_DECL([vasprintf], [#include <stdio.h>])
600 VLC_REPLACE_DECL([gmtime_r], [#include <time.h>])
601 VLC_REPLACE_DECL([localtime_r], [#include <time.h>])
603 dnl C11 static_assert()
604 AC_MSG_CHECKING([for static_assert in assert.h])
605 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <assert.h>], [
606 static_assert(1, "The impossible happened.");
609 AC_DEFINE([HAVE_STATIC_ASSERT], [1], [Define to 1 if <assert.h> defines static_assert.])
614 # Windows CE does not have strcoll()
617 dnl Check for non-standard system calls
620 AC_CHECK_FUNCS([eventfd vmsplice sched_getaffinity recvmmsg memfd_create])
623 AC_CHECK_FUNCS([_lock_file])
627 AH_BOTTOM([#include <vlc_fixups.h>])
629 dnl Check for struct pollfd
630 AC_CHECK_TYPES([struct pollfd],,,
631 [#include <sys/types.h>
634 #elif defined (_WIN32)
635 # include <winsock2.h>
639 dnl Check for struct timespec
640 AC_CHECK_TYPES([struct timespec],,,
643 dnl Check for max_align_t
644 AC_CHECK_TYPES([max_align_t],,,
645 [#include <stddef.h>])
647 dnl Checks for socket stuff
650 AC_SEARCH_LIBS(connect, [socket], [
651 AS_IF([test "$ac_cv_search_connect" != "none required"], [
652 SOCKET_LIBS="$ac_cv_search_connect"
655 AS_IF([test "${SYS}" = "mingw32"], [
656 SOCKET_LIBS="-lws2_32 -liphlpapi"
660 AC_SEARCH_LIBS([inet_pton], [nsl], [
661 AS_IF([test "$ac_cv_search_inet_pton" != "none required"], [
662 SOCKET_LIBS="$ac_cv_search_inet_pton $SOCKET_LIBS"
664 ],, [${SOCKET_LIBS}])
666 LIBS="${LIBS} ${SOCKET_LIBS}"
668 AC_LANG_PROGRAM([#ifdef _WIN32
669 #include <ws2tcpip.h>
671 # if _WIN32_WINNT < 0x600
675 #include <sys/socket.h>
676 #include <arpa/inet.h>
678 char dst[[sizeof(struct in_addr)]];
679 inet_pton(AF_INET, "127.0.0.1", dst);
680 ])],[AC_DEFINE([HAVE_INET_PTON],[1],[Define to 1 if you have inet_pton function])],[AC_LIBOBJ([inet_pton])])
681 AC_CHECK_TYPES([struct if_nameindex],,,[#include <net/if.h>])
682 AC_CHECK_FUNCS([if_nameindex])
684 AC_SUBST([SOCKET_LIBS])
686 dnl Check for socklen_t
687 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
688 AC_CACHE_CHECK([for socklen_t in sys/socket.h], dnl ` (fix VIM syntax highlight
689 ac_cv_type_socklen_t,
690 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
691 [#include <sys/types.h>
693 # include <winsock2.h>
694 # include <ws2tcpip.h>
696 # include <sys/socket.h>
697 #endif]], [[socklen_t len; len = 0;]])],
698 ac_cv_type_socklen_t=yes,
699 ac_cv_type_socklen_t=no)])
700 AS_IF([test "$ac_cv_type_socklen_t" = no],
701 [AC_DEFINE(socklen_t, int)])
703 dnl Check for struct sockaddr_storage
704 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
705 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
706 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
708 [#include <sys/types.h>
709 #if defined( _WIN32 )
710 # include <winsock2.h>
712 # include <sys/socket.h>
713 #endif], [struct sockaddr_storage addr;],
714 ac_cv_struct_sockaddr_storage=yes,
715 ac_cv_struct_sockaddr_storage=no)])
716 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
717 AC_DEFINE(sockaddr_storage, sockaddr)
718 AC_DEFINE(ss_family, sa_family)
721 dnl FreeBSD has a gnugetopt library for this:
723 AC_CHECK_FUNC(getopt_long,, [
724 AC_CHECK_LIB([gnugetopt],[getopt_long], [
725 GNUGETOPT_LIBS="-lgnugetopt"
728 AC_SUBST([GNUGETOPT_LIBS])
730 AC_CHECK_LIB([m], [cos], [
737 AC_CHECK_LIB([m], [lrintf], [
738 AC_DEFINE(HAVE_LRINTF, 1, [Define to 1 if you have the lrintf function])
739 VLC_ADD_LIBS([skins2],[-lm])
741 AC_CHECK_LIB([m], [nanf],
742 AC_DEFINE(HAVE_NANF, 1, [Define to 1 if you have the NANF function])
744 AC_CHECK_LIB([m], [sincos], [
745 AC_DEFINE(HAVE_SINCOS, 1, [Define to 1 if you have the sincos function.])
750 AC_MSG_CHECKING([broken qsort_r prototype])
751 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <stdlib.h>
753 _Static_assert(_Generic((qsort_r),
754 void (*)(void *, size_t, size_t, void *,
755 int (*)(void *, const void *, const void *)) : 1, default: 0),
756 "Bad prototype not matched");
758 AC_MSG_RESULT([broken])
759 AC_DEFINE([HAVE_BROKEN_QSORT_R], 1, [Defined to 1 if the qsort_r() prototype contradicts the upcoming POSIX standard.])
764 AC_MSG_CHECKING([_Thread_local support])
765 AC_COMPILE_IFELSE([AC_LANG_SOURCE([_Thread_local int foo = 0;
768 AC_DEFINE(HAVE_THREAD_LOCAL, 1, [Defined to 1 if C11 _Thread_local storage qualifier is supported])
769 ],[ AC_MSG_RESULT([no])])
771 dnl __STDC_NO_THREADS__ can't be trusted on some platforms.
772 dnl check for its availability explicitely
773 AC_CHECK_HEADERS([threads.h])
775 AC_CHECK_LIB([anl],[getaddrinfo_a],[
776 AC_DEFINE(HAVE_LIBANL, 1, [Define to 1 if you have the anl library])
779 dnl Check for dynamic plugins
781 have_dynamic_objects="no"
783 AC_SEARCH_LIBS(dlsym, [dl svld], [
784 AS_IF([test "$ac_cv_search_dlsym" != "none required"], [
785 LIBDL="$ac_cv_search_dlsym"
787 have_dynamic_objects="yes"
792 AS_IF([test "${SYS}" = "mingw32"], [
794 have_dynamic_objects="yes" #assume we can use shared objects
797 AC_ARG_WITH([libfuzzer],
798 AS_HELP_STRING([--with-libfuzzer=DIR],
799 [use libFuzzer library from DIR and triggers sanitize coverage (default disabled)]),
802 AS_VAR_IF(with_libfuzzer, no, [], [
807 AM_CONDITIONAL([HAVE_LIBFUZZER], [test "${with_libfuzzer}" != "no"])
809 AS_IF([test "${enable_shared}" = "no"], [
810 have_dynamic_objects=no
812 AM_CONDITIONAL([HAVE_DYNAMIC_PLUGINS], [test "${have_dynamic_objects}" != "no"])
816 AS_IF([test "${SYS}" != "mingw32"], [
817 AC_SEARCH_LIBS([clock_nanosleep], [rt pthread], [
818 AS_IF([test "$ac_cv_search_clock_nanosleep" != "none required"], [
819 LIBRT="$ac_cv_search_clock_nanosleep"
822 AC_SEARCH_LIBS([nanosleep], [rt pthread posix4], [
823 AS_IF([test "$ac_cv_search_nanosleep" != "none required"], [
824 LIBRT="$ac_cv_search_nanosleep"
832 dnl Check for headers
836 AC_CHECK_HEADERS([arpa/inet.h pthread.h search.h sys/shm.h sys/socket.h sys/uio.h])
837 AC_CHECK_HEADERS([net/if.h], [], [],
839 #include <sys/types.h>
840 #include <sys/socket.h>
842 AC_CHECK_HEADER([syslog.h], [have_syslog="yes"], [have_syslog="no"])
843 AM_CONDITIONAL([HAVE_SYSLOG], [test "$have_syslog" = "yes"])
846 AC_CHECK_HEADERS([netinet/tcp.h netinet/udplite.h sys/param.h sys/mount.h])
849 AC_CHECK_HEADERS([features.h getopt.h linux/dccp.h linux/magic.h mntent.h sys/eventfd.h])
852 AC_CHECK_HEADERS([xlocale.h])
854 dnl Check if C++ headers define locale_t
856 AC_CACHE_CHECK([if C++ headers define locale_t],
857 [ac_cv_cxx_locale_t],
858 [ac_cv_cxx_locale_t=no
859 AC_TRY_COMPILE([#include <locale>], [locale_t loc;],
860 [ac_cv_cxx_locale_t=yes])])
861 if test "${ac_cv_cxx_locale_t}" != "no"; then
862 AC_DEFINE(HAVE_CXX_LOCALE_T, 1, Define to 1 if C++ headers define locale_t)
866 dnl LP64 and LLP64 architectures had better define ssize_t by themselves...
867 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.]) dnl ` (fix VIM syntax highlight
868 AC_CHECK_TYPE(ssize_t,, [
869 AC_DEFINE(ssize_t, int)
872 dnl It seems that autoconf detects pkg-config only during the first
873 dnl PKG_CHECK_MODULES from configure.ac - which makes sense. But in our case,
874 dnl it is nested within a conditional block, so it was not working right.
875 dnl Make PKG_CONFIG_PATH precious so that it appears in the help and get saved
876 AC_ARG_VAR(PKG_CONFIG_PATH,
877 [Paths where to find .pc not at the default location])
878 PKG_PROG_PKG_CONFIG()
880 dnl On some OS we need static linking
881 AS_IF([test -n "${PKG_CONFIG}" ],[
882 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "darwin" -o "${SYS}" = "os2" ],[
883 PKG_CONFIG="${PKG_CONFIG} --static"
889 dnl Check for zlib.h and -lz if available
891 AC_CHECK_HEADERS([zlib.h], [ have_zlib=yes ], [ have_zlib=no ])
892 AM_CONDITIONAL([HAVE_ZLIB], [ test "${have_zlib}" = "yes" ])
893 if test "${have_zlib}" = "yes"
895 VLC_ADD_LIBS([sap],[-lz])
900 dnl Domain name i18n support via GNU libidn
902 PKG_CHECK_MODULES([IDN], [libidn], [
904 AC_DEFINE([HAVE_IDN], 1, [Define to 1 if you have GNU libidn.])
911 AC_ARG_ENABLE([dbus],
912 AS_HELP_STRING([--enable-dbus],
913 [compile D-Bus message bus support (default enabled)]))
915 AS_IF([test "${enable_dbus}" != "no"], [
916 PKG_CHECK_MODULES(DBUS, [dbus-1 >= 1.6.0], [
919 AS_IF([test -n "${enable_dbus}"], [
920 AC_MSG_ERROR([${DBUS_PKG_ERRORS}.])
922 AC_MSG_WARN([${DBUS_PKG_ERRORS}.])
926 AM_CONDITIONAL([HAVE_DBUS], [test "${have_dbus}" = "yes"])
929 dnl Check for systemd
930 PKG_CHECK_MODULES([SYSTEMD], [libsystemd], [
933 AC_MSG_WARN([${SYSTEMD_PKG_ERRORS}.])
935 AM_CONDITIONAL([HAVE_SYSTEMD], [test "${have_systemd}" = "yes"])
938 EXTEND_HELP_STRING([Optimization options:])
940 dnl Compiler warnings
943 AX_APPEND_COMPILE_FLAGS([-Wall -Wextra -Wsign-compare -Wundef -Wpointer-arith -Wvolatile-register-var -Wformat -Wformat-security -Wduplicated-branches -Wduplicated-cond], [CFLAGS])
944 AX_APPEND_COMPILE_FLAGS([-Wall -Wextra -Wsign-compare -Wundef -Wpointer-arith -Wvolatile-register-var -Wformat -Wformat-security -Wduplicated-branches -Wduplicated-cond], [CXXFLAGS])
946 AX_APPEND_COMPILE_FLAGS([-Wbad-function-cast -Wwrite-strings -Wmissing-prototypes -Werror-implicit-function-declaration -Winit-self -Wlogical-op -Wshadow=local -Wmultistatement-macros], [CFLAGS])
947 AX_APPEND_COMPILE_FLAGS([-pipe], [CFLAGS])
952 AC_ARG_ENABLE([debug],
953 AS_HELP_STRING([--enable-debug],
954 [build with run-time assertions (default disabled)]),,
957 [Define to 1 if debug code should NOT be compiled])
958 AS_IF([test "${enable_debug}" != "no"], [
959 AC_CHECK_HEADERS([valgrind/valgrind.h])
967 AC_ARG_ENABLE([gprof],
968 AS_HELP_STRING([--enable-gprof],[profile with gprof (default disabled)]),,
970 AS_IF([test "${enable_gprof}" != "no"], [
971 CFLAGS="${CFLAGS} -pg"
972 CXXFLAGS="${CXXFLAGS} -pg"
973 OBJCFLAGS="${OBJCFLAGS} -pg"
974 LDFLAGS="${LDFLAGS} -pg"
977 AC_ARG_ENABLE([cprof],
978 AS_HELP_STRING([--enable-cprof],[profile with cprof (default disabled)]),,
980 AS_IF([test "${enable_gprof}" != "no"], [
981 CFLAGS="${CFLAGS} -finstrument-functions"
982 CXXFLAGS="${CXXFLAGS} -finstrument-functions"
983 OBJCFLAGS="${OBJCFLAGS} -finstrument-functions"
984 LDFLAGS="${LDFLAGS} -finstrument-functions"
990 AC_ARG_ENABLE([coverage],
991 AS_HELP_STRING([--enable-coverage],
992 [build for test coverage (default disabled)]),,
993 [enable_coverage="no"])
994 AS_IF([test "${enable_coverage}" != "no"], [
995 CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
996 CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
997 LDFLAGS="-lgcov ${LDFLAGS}"
1000 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "os2"], [
1002 CFLAGS="${CFLAGS} -fvisibility=hidden"
1003 CXXFLAGS="${CXXFLAGS} -fvisibility=hidden"
1004 OBJCFLAGS="${OBJCFLAGS} -fvisibility=hidden"
1005 AC_CACHE_CHECK([if $CC accepts -fvisibility=hidden],
1006 [ac_cv_c_visibility_hidden], [
1007 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1008 ac_cv_c_visibility_hidden=yes
1010 ac_cv_c_visibility_hidden=no
1013 AS_IF([test "${ac_cv_c_visibility_hidden}" = "no"], [VLC_RESTORE_FLAGS])
1019 AC_ARG_WITH([sanitizer],
1020 AS_HELP_STRING([--with-sanitizer=(address/memory/undefined/thread)],
1021 [build with sanitizer flags (default disabled)]),
1023 [with_sanitizer=no])
1025 AS_VAR_IF(with_sanitizer, no, [], [
1026 AX_CHECK_COMPILE_FLAG([-fsanitize=${with_sanitizer}], [
1027 AX_APPEND_FLAG([-fsanitize=${with_sanitizer}])
1028 AX_APPEND_FLAG([-fsanitize=${with_sanitizer}], [CXXFLAGS])
1029 AX_APPEND_FLAG([-fsanitize=${with_sanitizer}], [LDFLAGS])
1031 AC_MSG_ERROR(["-fsanitize=${with_sanitizer} not supported!"])
1033 AX_APPEND_FLAG([-g])
1034 AX_APPEND_FLAG([-g], [CXXFLAGS])
1036 AS_IF([test -z "${with_sanitizer##*address*}" ], [
1037 AX_APPEND_COMPILE_FLAGS([-fsanitize-address-use-after-scope -fno-omit-frame-pointer -fsanitize=pointer-compare -fsanitize=pointer-subtract])
1038 AX_APPEND_COMPILE_FLAGS([-fsanitize-address-use-after-scope -fno-omit-frame-pointer -fsanitize=pointer-compare -fsanitize=pointer-subtract], [CXXFLAGS])
1040 AS_IF([test -z "${with_sanitizer##*memory*}" ], [
1041 AX_APPEND_COMPILE_FLAGS([-fPIE -pie])
1042 AX_APPEND_COMPILE_FLAGS([-fPIE -pie], [CXXFLAGS])
1044 AS_IF([test -z "${with_sanitizer##*thread*}" ], [
1045 AX_APPEND_COMPILE_FLAGS([-fPIE -pie])
1046 AX_APPEND_COMPILE_FLAGS([-fPIE -pie], [CXXFLAGS])
1051 dnl Enable/disable optimizations
1053 AC_ARG_ENABLE([optimizations],
1054 AS_HELP_STRING([--disable-optimizations],
1055 [disable compiler optimizations (default enabled)]),,
1056 [enable_optimizations="yes"])
1058 dnl Check for various optimization flags
1059 AS_IF([test "${enable_optimizations}" != "no"], [
1061 dnl -O3 only in production builds
1062 AS_IF([test "${enable_debug}" = "no"], [
1064 CFLAGS="${CFLAGS} -O3"
1065 CXXFLAGS="${CXXFLAGS} -O3"
1066 OBJCFLAGS="${OBJCFLAGS} -O3"
1067 AC_CACHE_CHECK([if $CC accepts -O3], [ac_cv_c_o3], [
1068 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1074 AS_IF([test "${ac_cv_c_o3}" = "no"], [VLC_RESTORE_FLAGS])
1077 dnl Check for fast maths
1078 AX_APPEND_COMPILE_FLAGS([-fno-math-errno -funsafe-math-optimizations -fno-rounding-math -fno-signaling-nans -fcx-limited-range], [CFLAGS])
1079 AX_APPEND_COMPILE_FLAGS([-fno-math-errno -funsafe-math-optimizations -fno-rounding-math -fno-signaling-nans -fcx-limited-range], [CXXFLAGS])
1082 #if defined(_MSC_VER) && !defined(__clang__)
1083 # pragma fenv_access(off)
1084 # pragma fp_contract(on)
1085 #elif defined(__GNUC__)
1086 /* Not supported so far */
1088 # pragma STDC FENV_ACCESS OFF
1089 # pragma STDC FP_CONTRACT ON
1093 dnl Check for -funroll-loops
1095 CFLAGS="${CFLAGS} -funroll-loops"
1096 CXXFLAGS="${CXXFLAGS} -funroll-loops"
1097 OBJCFLAGS="${OBJCFLAGS} -funroll-loops"
1098 AC_CACHE_CHECK([if $CC accepts -funroll-loops], [ac_cv_c_unroll_loops], [
1099 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1100 ac_cv_c_unroll_loops=yes
1102 ac_cv_c_unroll_loops=no
1105 AS_IF([test "${ac_cv_c_unroll_loops}" = "no"], [VLC_RESTORE_FLAGS])
1107 AS_IF([test "$enable_debug" = "no"], [
1108 dnl Check for -fomit-frame-pointer
1110 CFLAGS="${CFLAGS} -fomit-frame-pointer"
1111 CXXFLAGS="${CXXFLAGS} -fomit-frame-pointer"
1112 OBJCFLAGS="${OBJCFLAGS} -fomit-frame-pointer"
1113 AC_CACHE_CHECK([if $CC accepts -fomit-frame-pointer],
1114 [ac_cv_c_omit_frame_pointer], [
1115 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1116 ac_cv_c_omit_frame_pointer=yes
1118 ac_cv_c_omit_frame_pointer=no
1121 AS_IF([test "${ac_cv_c_omit_frame_pointer}" = "no"], [VLC_RESTORE_FLAGS])
1126 AC_ARG_ENABLE([ssp],
1127 AS_HELP_STRING([--disable-ssp],
1128 [disable stack smashing protection (default enabled for optimized builds)]), [],
1131 AS_IF([test "${enable_ssp}" != "no" -a "${enable_optimizations}" != "no"], [
1133 AX_APPEND_COMPILE_FLAGS([-fstack-protector-strong])
1134 AX_APPEND_COMPILE_FLAGS([-fstack-protector-strong], [CXXFLAGS])
1135 dnl Win32 requires linking to ssp for stack-protection
1136 AS_IF([test "${SYS}" = "mingw32"], [
1137 LDFLAGS="${LDFLAGS} -lssp"
1138 AC_CACHE_CHECK([if linker supports stack protectors], [ac_cv_ld_ssp], [
1139 AC_TRY_LINK([#include <stdio.h>],[char buf[100]; fgets(buf, sizeof(buf), stdin);], [
1145 AS_IF([test "${ac_cv_ld_ssp}" = "no"], [VLC_RESTORE_FLAGS])
1149 AS_IF([test "${SYS}" = "mingw32"], [
1150 dnl library for BCrypt APIs
1151 AS_IF([test "${vlc_winstore_app}" = 1],
1152 [LDFLAGS="${LDFLAGS} -lbcrypt"])
1156 LDFLAGS="${LDFLAGS} -Wl,-Bsymbolic"
1157 AC_CACHE_CHECK([if linker supports -Bsymbolic], [ac_cv_ld_bsymbolic], [
1159 ac_cv_ld_bsymbolic="-Wl,-Bsymbolic"
1161 ac_cv_ld_bsymbolic=""
1165 SYMBOLIC_LDFLAGS="${ac_cv_ld_bsymbolic}"
1166 AC_SUBST([SYMBOLIC_LDFLAGS])
1169 LDFLAGS="${LDFLAGS} -Wl,-z,defs"
1170 AC_CACHE_CHECK([if linker supports -z,defs], [ac_cv_ld_z_defs], [
1172 ac_cv_ld_z_defs="yes"
1174 ac_cv_ld_z_defs="no"
1177 AS_IF([test "${ac_cv_ld_z_defs}" = "no"], [VLC_RESTORE_FLAGS])
1179 dnl Check for __attribute__((packed))
1180 AC_CACHE_CHECK([for __attribute__((packed))],
1181 [ac_cv_c_attribute_packed],
1182 [ac_cv_c_attribute_packed=no
1183 AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b; (void)b;],
1184 [ac_cv_c_attribute_packed=yes])])
1185 if test "${ac_cv_c_attribute_packed}" != "no"; then
1186 AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1192 case "${host_cpu}" in
1205 dnl Check for backtrace() support
1206 AC_CHECK_HEADERS([execinfo.h])
1207 AC_CHECK_FUNCS([backtrace])
1212 ALIASES="${ALIASES} cvlc rvlc"
1215 dnl Accelerated modules
1218 dnl Check for fully working MMX intrinsics
1219 dnl We need support for -mmmx, we need <mmintrin.h>, and we also need a
1220 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1221 AC_ARG_ENABLE([mmx],
1222 AS_HELP_STRING([--disable-mmx],
1223 [disable MMX optimizations (default auto)]),,[
1224 case "${host_cpu}" in
1235 AS_IF([test "${enable_mmx}" != "no"], [
1238 CFLAGS="${CFLAGS} -mmmx"
1239 AC_CACHE_CHECK([if $CC groks MMX intrinsics], [ac_cv_c_mmx_intrinsics], [
1240 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1241 [#include <mmintrin.h>
1243 uint64_t frobzor;]], [
1245 a = b = c = (__m64)frobzor;
1246 a = _mm_slli_pi16(a, 3);
1247 a = _mm_adds_pi16(a, b);
1248 c = _mm_srli_pi16(c, 8);
1249 c = _mm_slli_pi16(c, 3);
1250 b = _mm_adds_pi16(b, c);
1251 a = _mm_unpacklo_pi8(a, b);
1252 frobzor = (uint64_t)a;]])], [
1253 ac_cv_c_mmx_intrinsics=yes
1255 ac_cv_c_mmx_intrinsics=no
1259 AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1260 AC_DEFINE(HAVE_MMX_INTRINSICS, 1, [Define to 1 if MMX intrinsics are available.])
1264 CFLAGS="${CFLAGS} -mmmx"
1265 AC_CACHE_CHECK([if $CC groks MMX inline assembly], [ac_cv_mmx_inline], [
1266 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1268 asm volatile("packuswb %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1271 ac_cv_mmx_inline=yes
1276 AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1277 AC_DEFINE(CAN_COMPILE_MMX, 1, [Define to 1 inline MMX assembly is available.])
1281 AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1282 [ac_cv_mmxext_inline], [
1283 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1285 asm volatile("maskmovq %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1288 ac_cv_mmxext_inline=yes
1290 ac_cv_mmxext_inline=no
1294 AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1295 AC_DEFINE(CAN_COMPILE_MMXEXT, 1, [Define to 1 if MMX EXT inline assembly is available.])
1299 AM_CONDITIONAL([HAVE_MMX], [test "${have_mmx}" = "yes"])
1300 AM_CONDITIONAL([HAVE_MMXEXT], [test "${have_mmxext}" = "yes"])
1302 dnl Check for fully workin SSE2 intrinsics
1303 dnl We need support for -mmmx, we need <emmintrin.h>, and we also need a
1304 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1305 AC_ARG_ENABLE([sse],
1306 AS_HELP_STRING([--disable-sse],
1307 [disable SSE (1-4) optimizations (default auto)]),, [
1308 case "${host_cpu}" in
1318 AS_IF([test "${enable_sse}" != "no"], [
1319 ARCH="${ARCH} sse sse2"
1322 CFLAGS="${CFLAGS} -msse2"
1323 AC_CACHE_CHECK([if $CC groks SSE2 intrinsics], [ac_cv_c_sse2_intrinsics], [
1324 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1325 [#include <emmintrin.h>
1327 uint64_t frobzor;]], [
1329 a = b = c = _mm_set1_epi64((__m64)frobzor);
1330 a = _mm_slli_epi16(a, 3);
1331 a = _mm_adds_epi16(a, b);
1332 c = _mm_srli_epi16(c, 8);
1333 c = _mm_slli_epi16(c, 3);
1334 b = _mm_adds_epi16(b, c);
1335 a = _mm_unpacklo_epi8(a, b);
1336 frobzor = (uint64_t)_mm_movepi64_pi64(a);]])], [
1337 ac_cv_c_sse2_intrinsics=yes
1339 ac_cv_c_sse2_intrinsics=no
1343 AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1344 AC_DEFINE(HAVE_SSE2_INTRINSICS, 1, [Define to 1 if SSE2 intrinsics are available.])
1348 CFLAGS="${CFLAGS} -msse"
1349 AC_CACHE_CHECK([if $CC groks SSE inline assembly], [ac_cv_sse_inline], [
1350 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1352 asm volatile("xorps %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1355 ac_cv_sse_inline=yes
1361 AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1362 AC_DEFINE(CAN_COMPILE_SSE, 1, [Define to 1 if SSE inline assembly is available.])
1365 AC_CACHE_CHECK([if $CC groks SSE2 inline assembly], [ac_cv_sse2_inline], [
1366 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1368 asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1371 ac_cv_sse2_inline=yes
1373 ac_cv_sse2_inline=no
1376 AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1377 AC_DEFINE(CAN_COMPILE_SSE2, 1, [Define to 1 if SSE2 inline assembly is available.])
1382 AC_CACHE_CHECK([if $CC groks SSE3 inline assembly], [ac_cv_sse3_inline], [
1383 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1385 asm volatile("movsldup %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1388 ac_cv_sse3_inline=yes
1390 ac_cv_sse3_inline=no
1394 AS_IF([test "${ac_cv_sse3_inline}" != "no"], [
1395 AC_DEFINE(CAN_COMPILE_SSE3, 1, [Define to 1 if SSE3 inline assembly is available.]) ])
1397 AC_CACHE_CHECK([if $CC groks SSSE3 inline assembly], [ac_cv_ssse3_inline], [
1398 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1400 asm volatile("pabsw %%xmm0,%%xmm0"::"r"(p):"xmm0");
1403 ac_cv_ssse3_inline=yes
1405 ac_cv_ssse3_inline=no
1409 AS_IF([test "${ac_cv_ssse3_inline}" != "no"], [
1410 AC_DEFINE(CAN_COMPILE_SSSE3, 1, [Define to 1 if SSSE3 inline assembly is available.]) ])
1413 AC_CACHE_CHECK([if $CC groks SSE4.1 inline assembly],
1414 [ac_cv_sse4_1_inline], [
1415 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1417 asm volatile("pmaxsb %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1420 ac_cv_sse4_1_inline=yes
1422 ac_cv_sse4_1_inline=no
1426 AS_IF([test "${ac_cv_sse4_1_inline}" != "no"], [
1427 AC_DEFINE(CAN_COMPILE_SSE4_1, 1, [Define to 1 if SSE4_1 inline assembly is available.]) ])
1430 AC_CACHE_CHECK([if $CC groks SSE4.2 inline assembly],
1431 [ac_cv_sse4_2_inline], [
1432 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1434 asm volatile("pcmpgtq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1437 ac_cv_sse4_2_inline=yes
1439 ac_cv_sse4_2_inline=no
1443 AS_IF([test "${ac_cv_sse4_2_inline}" != "no"], [
1444 AC_DEFINE(CAN_COMPILE_SSE4_2, 1, [Define to 1 if SSE4_2 inline assembly is available.]) ])
1447 AC_CACHE_CHECK([if $CC groks SSE4A inline assembly], [ac_cv_sse4a_inline], [
1448 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1450 asm volatile("insertq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1453 ac_cv_sse4a_inline=yes
1455 ac_cv_sse4a_inline=no
1459 AS_IF([test "${ac_cv_sse4a_inline}" != "no"], [
1460 AC_DEFINE([CAN_COMPILE_SSE4A], [1], [Define to 1 if SSE4A inline assembly is available.]) ])
1462 AM_CONDITIONAL([HAVE_SSE2], [test "$have_sse2" = "yes"])
1465 CFLAGS="${CFLAGS} -mmmx"
1467 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly], [ac_cv_3dnow_inline], [
1468 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1470 asm volatile("pfadd %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1473 ac_cv_3dnow_inline=yes
1475 ac_cv_3dnow_inline=no
1479 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1480 AC_DEFINE([CAN_COMPILE_3DNOW], 1,
1481 [Define to 1 if 3D Now! inline assembly is available.])
1484 AM_CONDITIONAL([HAVE_3DNOW], [test "$have_3dnow" = "yes"])
1487 AC_ARG_ENABLE([neon],
1488 AS_HELP_STRING([--disable-neon],
1489 [disable ARM NEON optimizations (default auto)]),, [
1490 case "${host_cpu}" in
1502 AS_IF([test "${enable_neon}" != "no"], [
1504 AC_CACHE_CHECK([if $CCAS groks ARM NEON assembly], [ac_cv_arm_neon], [
1505 AS_IF([test "${enable_neon}" != "64"], [
1506 CFLAGS="${CFLAGS} -mfpu=neon -mhard-float"
1509 asm volatile("vqmovun.s64 d0, q1":::"d0");
1517 CFLAGS="${CFLAGS} -march=armv8-a+simd"
1520 asm volatile("uhadd v0.8b, v0.8b, v1.8b":::"v0");
1531 AM_CONDITIONAL([HAVE_NEON], [test "${ac_cv_arm_neon}" = "32"])
1532 AM_CONDITIONAL([HAVE_ARM64], [test "${ac_cv_arm_neon}" = "64"])
1534 AC_ARG_ENABLE([sve],
1535 AS_HELP_STRING([--disable-sve],
1536 [disable ARM SVE optimizations (default auto)]),, [
1537 AS_IF([test "${host_cpu}" = "aarch64"], [enable_sve="yes"] ,[enable_sve="no"])
1539 AS_IF([test "${enable_sve}" != "no"], [
1541 CFLAGS="${CFLAGS} -march=armv8-a+sve"
1542 AC_CACHE_CHECK([if $CCAS groks ARM SVE assembly], [ac_cv_arm_sve], [
1545 asm volatile("ptrue p0.s" ::: "p0");
1555 AM_CONDITIONAL([HAVE_SVE], [test "${ac_cv_arm_sve}" = "yes"])
1558 AC_ARG_ENABLE([altivec],
1559 AS_HELP_STRING([--disable-altivec],
1560 [disable AltiVec optimizations (default auto)]),, [
1561 AS_CASE("${host_cpu}", [powerpc*],
1562 [enable_altivec=yes], [enable_altivec=no])
1566 AS_IF([test "${enable_altivec}" = "yes"], [
1567 ARCH="${ARCH} altivec";
1569 AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1570 [ac_cv_altivec_inline],
1571 [AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1572 ac_cv_altivec_inline="yes",
1573 [CFLAGS="${CFLAGS} -Wa,-maltivec"
1574 AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1575 [ac_cv_altivec_inline="-Wa,-maltivec"],
1576 ac_cv_altivec_inline=no)
1579 AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1580 AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1581 [Define to 1 if AltiVec inline assembly is available.])
1582 AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1583 ALTIVEC_CFLAGS="${ac_cv_altivec_inline}"
1584 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_altivec_inline}])
1590 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1591 [ac_cv_c_altivec], [
1592 CFLAGS="${CFLAGS} -maltivec"
1593 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1594 [#include <altivec.h>]], [
1595 [vec_ld(0, (unsigned char *)0);]])], [
1596 ac_cv_c_altivec="-maltivec"
1598 ac_cv_c_altivec="no"
1602 AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1603 CPPFLAGS="${CPPFLAGS} ${ac_cv_c_altivec}"
1604 AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, [Define to 1 if C AltiVec extensions are available.])
1605 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_c_altivec}])
1606 ALTIVEC_CFLAGS="$ALTIVEC_CFLAGS ${ac_cv_c_altivec}"
1607 VLC_ADD_CFLAGS([deinterlace],[${ac_cv_c_altivec}])
1610 AC_CHECK_HEADERS([altivec.h])
1613 LDFLAGS="${LDFLAGS} -Wl,-framework,vecLib"
1614 AC_CACHE_CHECK([if linker needs -framework vecLib],
1616 [AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)])
1618 AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1619 VLC_ADD_LIBS([libvlccore],[-Wl,-framework,vecLib])
1622 AC_SUBST([ALTIVEC_CFLAGS])
1623 AM_CONDITIONAL([HAVE_ALTIVEC], [test "$have_altivec" = "yes"])
1628 AC_ARG_ENABLE([optimize-memory],
1629 AS_HELP_STRING([--enable-optimize-memory],
1630 [optimize memory usage over performance]))
1631 if test "${enable_optimize_memory}" = "yes"; then
1632 AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1636 dnl Allow running as root (useful for people running on embedded platforms)
1638 AC_ARG_ENABLE([run-as-root],
1639 AS_HELP_STRING([--enable-run-as-root],
1640 [allow running VLC as root (default disabled)]))
1641 AS_IF([test "${enable_run_as_root}" = "yes"],[
1642 AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1643 [Define to 1 to allow running VLC as root (uid 0).])
1649 AC_ARG_ENABLE([sout],
1650 AS_HELP_STRING([--disable-sout],
1651 [disable streaming output (default enabled)]))
1652 AS_IF([test "${enable_sout}" != "no"], [
1653 AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1655 AM_CONDITIONAL([ENABLE_SOUT], [test "${enable_sout}" != "no"])
1658 AC_ARG_ENABLE([lua],
1659 AS_HELP_STRING([--disable-lua],
1660 [disable LUA scripting support (default enabled)]))
1661 if test "${enable_lua}" != "no"
1663 PKG_CHECK_MODULES(LUA, lua5.2,
1666 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua 5.1 instead])
1668 PKG_CHECK_MODULES(LUA, lua5.1,
1671 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua >= 5.1 instead])
1672 PKG_CHECK_MODULES(LUA, lua >= 5.1,
1675 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying manual detection instead])
1677 AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1680 AC_CHECK_LIB( lua5.2 , luaL_newstate,
1681 [LUA_LIBS="-llua5.2"],
1682 AC_CHECK_LIB( lua5.1 , luaL_newstate,
1683 [LUA_LIBS="-llua5.1"],
1684 AC_CHECK_LIB( lua51 , luaL_newstate,
1685 [LUA_LIBS="-llua51"],
1686 AC_CHECK_LIB( lua , luaL_newstate,
1694 if test "x${have_lua}" != "xyes" ; then
1695 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.])
1697 AC_ARG_VAR([LUAC], [LUA byte compiler])
1698 AS_IF([test -z "$LUAC"], [
1699 AC_CHECK_TOOL(LUAC, [luac], [false])
1701 AS_IF([test "${LUAC}" = "false"], [
1702 AC_MSG_ERROR([Could not find the LUA byte compiler.])
1704 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], [
1705 AC_MSG_ERROR([You need 32-bits luac when using lua from contrib.])
1708 AM_CONDITIONAL([BUILD_LUA], [test "${have_lua}" = "yes"])
1712 dnl VideoLAN manager
1714 AC_ARG_ENABLE([vlm],
1715 AS_HELP_STRING([--disable-vlm],
1716 [disable the stream manager (default enabled)]),,
1717 [enable_vlm="${enable_sout}"])
1718 AS_IF([test "${enable_vlm}" != "no"], [
1719 AS_IF([test "${enable_sout}" = "no"], [
1720 AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1722 AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1724 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1728 dnl Addons manager storage and repositories modules
1730 AC_ARG_ENABLE([addonmanagermodules],
1731 AS_HELP_STRING([--disable-addonmanagermodules],
1732 [disable the addons manager modules (default enabled)]))
1733 if test "${enable_addonmanagermodules}" != "no"
1735 AC_DEFINE(ENABLE_ADDONMANAGERMODULES, 1, [Define if you want the addons manager modules])
1737 AM_CONDITIONAL([ENABLE_ADDONMANAGERMODULES], [test "${enable_addonmanagermodules}" != "no"])
1744 EXTEND_HELP_STRING([Input plugins:])
1747 dnl libarchive access module
1749 PKG_ENABLE_MODULES_VLC([ARCHIVE], [archive], [libarchive >= 3.1.0], (libarchive support), [auto])
1754 AC_ARG_ENABLE([live555],
1755 AS_HELP_STRING([--enable-live555],
1756 [enable RTSP input through live555 (default enabled)]))
1758 AS_IF([test "${enable_live555}" != "no" -a -n "${CXX}"], [
1759 PKG_CHECK_MODULES(LIVE555, live555, [
1760 VLC_ADD_PLUGIN([live555])
1761 VLC_ADD_CXXFLAGS([live555], [$LIVE555_CFLAGS])
1762 VLC_ADD_LIBS([live555],[$LIVE555_LIBS])
1764 AC_MSG_WARN([${LIVE555_PKG_ERRORS}.])
1769 dnl detect include paths
1770 AS_IF([test -f "${CONTRIB_DIR}/include/UsageEnvironment/UsageEnvironment.hh"], [
1771 CPPFLAGS_live555="-I${CONTRIB_DIR}/include/liveMedia -I${CONTRIB_DIR}/include/groupsock -I${CONTRIB_DIR}/include/BasicUsageEnvironment -I${CONTRIB_DIR}/include/UsageEnvironment"
1773 AS_IF([test "${SYS}" != "os2"], [
1774 LIVE555_PREFIX=${LIVE555_PREFIX-"/usr"}
1775 CPPFLAGS_live555="-I${LIVE555_PREFIX}/include/liveMedia -I${LIVE555_PREFIX}/include/groupsock -I${LIVE555_PREFIX}/include/BasicUsageEnvironment -I${LIVE555_PREFIX}/include/UsageEnvironment"
1777 LIVE555_PREFIX=${LIVE555_PREFIX-"/usr/lib/live"}
1778 CPPFLAGS_live555="-I${LIVE555_PREFIX}/liveMedia/include -I${LIVE555_PREFIX}/groupsock/include -I${LIVE555_PREFIX}/BasicUsageEnvironment/include -I${LIVE555_PREFIX}/UsageEnvironment/include"
1779 LDFLAGS_live555="-L${LIVE555_PREFIX}/liveMedia -L${LIVE555_PREFIX}/groupsock -L${LIVE555_PREFIX}/BasicUsageEnvironment -L${LIVE555_PREFIX}/UsageEnvironment"
1784 AS_IF([test "${SYS}" = "solaris"], [
1785 CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1787 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1788 LDFLAGS="${LDFLAGS} ${LDFLAGS_live555}"
1791 AC_CACHE_CHECK([for live555 version 1324598400 or later], [ac_cv_live555], [
1792 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
1793 [#include <liveMedia_version.hh>
1794 #if !defined (LIVEMEDIA_LIBRARY_VERSION_INT) || (LIVEMEDIA_LIBRARY_VERSION_INT < 1324598400)
1804 AS_IF([test "$ac_cv_live555" = "no"], [
1805 AC_MSG_WARN([live555 is missing or its installed version is too old:
1806 Version 2011.12.23 or later is required to proceed.
1807 You can get an updated one from http://www.live555.com/liveMedia .])
1808 AS_IF([test -n "${enable_live555}"], [
1809 AC_MSG_ERROR([Update live555 or pass --disable-live555 to disable RTSP input support.])
1812 other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1813 other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
1814 AS_IF([test "${SYS}" = "mingw32"], [
1815 # add ws2_32 for closesocket, select, recv
1816 other_libs="$other_libs -lws2_32"
1819 dnl We need to check for pic because live555 don't provide shared libs
1820 dnl and we want to build a plugins so we need -fPIC on some arch.
1821 VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1822 VLC_ADD_LDFLAGS([live555], [${LDFLAGS_live555}])
1823 AC_CHECK_LIB([liveMedia_pic], [main], [
1824 VLC_ADD_PLUGIN([live555])
1825 VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
1827 AC_CHECK_LIB([liveMedia], [main], [
1828 VLC_ADD_PLUGIN([live555])
1829 VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1830 ],[],[${other_libs}])
1831 ],[${other_libs_pic}])
1839 dnl IIDC and DV FireWire input modules
1841 PKG_ENABLE_MODULES_VLC([DC1394], [], [libdc1394-2 >= 2.1.0], [IIDC FireWire input module], [auto])
1842 PKG_ENABLE_MODULES_VLC([DV1394], [], [libraw1394 >= 2.0.1 libavc1394 >= 0.5.3], [DV FireWire input module], [auto])
1845 dnl - linsys modules: access module check for libzvbi
1847 AC_ARG_ENABLE([linsys],
1848 AS_HELP_STRING([--enable-linsys],
1849 [Linux Linear Systems Ltd. SDI and HD-SDI input cards (default enabled)]))
1850 AS_IF([test "$SYS" = "linux" -a "${enable_linsys}" != "no"], [
1851 VLC_ADD_PLUGIN([linsys_hdsdi])
1852 PKG_CHECK_MODULES(LINSYS_SDI, [zvbi-0.2 >= 0.2.28], [
1853 VLC_ADD_PLUGIN([linsys_sdi])
1855 AC_MSG_WARN([${LINSYS_SDI_PKG_ERRORS}.])
1860 dnl dvdread module: check for libdvdread
1862 PKG_ENABLE_MODULES_VLC([DVDREAD], [], [dvdread > 4.9.0], [dvdread input module], [auto])
1865 dnl libdvdnav plugin
1867 PKG_ENABLE_MODULES_VLC([DVDNAV], [], [dvdnav > 4.9.0], [DVD with navigation input module (dvdnav)], [auto])
1868 AS_IF([test "${enable_dvdnav}" != "no"], [
1869 AC_MSG_CHECKING(for dvdnav_stream_cb in dvdnav/dvdnav.h)
1870 AC_EGREP_HEADER(dvdnav_stream_cb,dvdnav/dvdnav.h,[
1872 AC_DEFINE(HAVE_STREAM_CB_IN_DVDNAV_H, 1, For dvdnav demux support)
1879 dnl Blu-ray Disc Support with libbluray
1881 PKG_ENABLE_MODULES_VLC([BLURAY], [libbluray], [libbluray >= 0.6.2], (libbluray for Blu-ray disc support ) )
1884 dnl OpenCV wrapper and example filters
1886 PKG_ENABLE_MODULES_VLC([OPENCV], [opencv_example opencv_wrapper], [opencv > 2.0], (OpenCV (computer vision) filter), [auto])
1890 dnl libsmbclient plugin
1892 PKG_ENABLE_MODULES_VLC([SMBCLIENT], [smbc], [smbclient], (SMB/CIFS support), [auto])
1895 dnl liBDSM access module
1897 AM_CONDITIONAL([HAVE_DSM], [test "$AS_TR_SH(with_dsm)" = "yes"])
1898 PKG_WITH_MODULES([DSM], [libdsm >= 0.2.0], [
1899 VLC_ADD_PLUGIN([dsm])
1900 VLC_ADD_CFLAGS([dsm], [$DSM_CFLAGS])
1901 VLC_ADD_LIBS([dsm], [$DSM_LIBS])
1903 ],,[libdsm SMB/CIFS access/sd module], [auto])
1904 AM_CONDITIONAL([HAVE_DSM], [test "${have_dsm}" = "yes"])
1907 dnl sftp access support
1909 PKG_ENABLE_MODULES_VLC([SFTP], [sftp], [libssh2], (support SFTP file transfer via libssh2), [auto])
1912 dnl nfs access support
1914 PKG_ENABLE_MODULES_VLC([NFS], [nfs], [libnfs >= 1.10.0], (support nfs protocol via libnfs), [auto])
1917 dnl smb2 access support
1919 PKG_ENABLE_MODULES_VLC([SMB2], [smb2], [libsmb2 >= 2.0.0], (support smb2 protocol via libsmb2), [auto])
1924 AC_ARG_ENABLE([v4l2], AS_HELP_STRING([--disable-v4l2],
1925 [disable Video4Linux version 2 (default auto)]))
1927 AS_IF([test "$enable_v4l2" != "no"], [
1928 AC_CHECK_HEADERS([linux/videodev2.h], [
1932 AM_CONDITIONAL([HAVE_V4L2], [test "${have_v4l2}" != "no"])
1935 dnl special access module for Blackmagic SDI cards
1937 AC_ARG_ENABLE([decklink],
1938 AS_HELP_STRING([--disable-decklink],
1939 [disable Blackmagic DeckLink SDI input (default auto)]))
1940 AC_ARG_WITH([decklink_sdk],
1941 AS_HELP_STRING([--with-decklink-sdk=DIR],
1942 [location of Blackmagic DeckLink SDI SDK]))
1944 if test "${enable_decklink}" != "no"
1946 if test "${with_decklink_sdk}" != "no" -a -n "${with_decklink_sdk}"
1948 VLC_ADD_CPPFLAGS([decklink decklinkoutput stream_out_sdi],[-I${with_decklink_sdk}/include])
1951 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_decklink}"
1953 AC_CHECK_HEADERS([DeckLinkAPIDispatch.cpp], [
1955 AS_IF([test "${SYS}" = "darwin"], [
1956 VLC_ADD_LIBS([decklink decklinkoutput],[-Wl,-framework,CoreFoundation])
1959 AS_IF([test "${enable_decklink}" = "yes"], [
1960 AC_MSG_ERROR([Blackmagic DeckLink SDI include files not found!])
1962 AC_MSG_WARN([Blackmagic DeckLink SDI include files not found, decklink disabled])
1968 AM_CONDITIONAL([HAVE_DECKLINK], [ test "${have_decklink}" != "no" ])
1972 dnl Built-in CD-DA and VCD module
1974 AC_ARG_ENABLE([vcd],
1975 AS_HELP_STRING([--disable-vcd],
1976 [disable built-in VCD and CD-DA support (default enabled)]))
1978 AC_ARG_ENABLE([libcddb],
1979 AS_HELP_STRING([--disable-libcddb],
1980 [disable CDDB for Audio CD (default enabled)]))
1982 if test "${enable_vcd}" != "no"
1984 AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
1985 AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
1987 VLC_ADD_PLUGIN([vcd cdda])
1992 AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
1993 AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
1995 VLC_ADD_PLUGIN([vcd cdda])
1996 AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2001 AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2002 AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2004 VLC_ADD_PLUGIN([vcd cdda])
2005 AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2010 if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32" -o "${SYS}" = "os2" -o "${SYS}" = "darwin"
2012 VLC_ADD_PLUGIN([vcd cdda])
2015 if test "$enable_libcddb" != "no"; then
2016 PKG_CHECK_MODULES(LIBCDDB, [libcddb >= 0.9.5], [
2018 AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2019 VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2020 VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2022 [AC_MSG_WARN([${LIBCDDB_PKG_ERRORS}: CDDB access disabled.])
2030 AC_CACHE_CHECK([for Linux DVB version 5.1], [ac_cv_linux_dvb_5_1], [
2031 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
2032 [#include <linux/dvb/version.h>
2033 #if (DVB_API_VERSION < 5)
2034 # error Linux DVB API v3.2 and older are not supported.
2036 #if (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR < 1)
2037 # error Linux DVB API v5.0 is unsupported. Please update.
2040 ac_cv_linux_dvb_5_1=yes
2042 ac_cv_linux_dvb_5_1=no
2044 AM_CONDITIONAL([HAVE_LINUX_DVB], [test "$ac_cv_linux_dvb_5_1" = "yes"])
2047 dnl Screen capture module
2049 AC_ARG_ENABLE([screen],
2050 AS_HELP_STRING([--enable-screen],
2051 [disable screen capture (default enabled)]))
2052 if test "${enable_screen}" != "no"; then
2053 if test "${SYS}" = "darwin"; then
2054 AC_CHECK_HEADERS([ApplicationServices/ApplicationServices.h], [
2055 VLC_ADD_PLUGIN([screen])
2059 AM_CONDITIONAL([HAVE_MAC_SCREEN], [test "${SYS}" = "darwin" -a "x${enable_screen}" != "xno"])
2062 dnl VNC/RFB access module
2064 PKG_ENABLE_MODULES_VLC([VNC], [vnc], [libvncclient >= 0.9.9], (VNC/rfb client support), [auto])
2066 dnl RDP/Remote Desktop access module
2068 PKG_ENABLE_MODULES_VLC([FREERDP], [rdp], [freerdp >= 1.0.1], (RDP/Remote Desktop client support) )
2072 AC_SUBST([have_avfoundation], ["no"])
2073 AC_ARG_ENABLE([macosx-avfoundation],
2074 AS_HELP_STRING([--enable-macosx-avfoundation], [Mac OS X avcapture (video) module (default enabled on Mac OS X)]))
2075 if test "x${enable_macosx_avfoundation}" != "xno" &&
2076 (test "${SYS}" = "darwin" || test "${enable_macosx_avfoundation}" = "yes")
2078 SAVED_LIBS="${LIBS}"
2079 LIBS="-framework AVFoundation"
2080 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [])],[have_avfoundation=yes],[have_avfoundation=no])
2081 LIBS="${SAVED_LIBS}"
2082 if test "${have_avfoundation}" != "no"
2084 VLC_ADD_PLUGIN([avcapture])
2087 AM_CONDITIONAL([HAVE_AVFOUNDATION], [test "${have_avfoundation}" != "no"])
2090 dnl DCP plugin (using asdcplib)
2092 PKG_WITH_MODULES([ASDCP], [asdcplib], [have_asdcp="yes"])
2093 AM_CONDITIONAL([HAVE_ASDCP], [test "${have_asdcp}" = "yes"])
2099 EXTEND_HELP_STRING([Mux/Demux plugins:])
2102 dnl libdvbpsi check for ts mux/demux
2105 PKG_WITH_MODULES([DVBPSI], [libdvbpsi >= 1.2.0], [have_dvbpsi="yes"])
2106 AM_CONDITIONAL([HAVE_DVBPSI], [test "${have_dvbpsi}" = "yes"])
2110 dnl GME demux plugin
2112 AC_ARG_ENABLE([gme],
2113 AS_HELP_STRING([--enable-gme],
2114 [use Game Music Emu (default auto)]))
2115 AS_IF([test "${enable_gme}" != "no"], [
2116 AC_CHECK_HEADER([gme/gme.h], [
2117 AC_CHECK_LIB([gme], [gme_identify_header], [
2118 VLC_ADD_PLUGIN([gme])
2120 AC_CHECK_LIB([gme], [gme_identify_extension], [
2121 VLC_ADD_LIBS([gme], [-lstdc++ $LIBM])
2122 VLC_ADD_PLUGIN([gme])
2123 ],, [-lstdc++ $LIBM])
2125 VLC_ADD_LIBS([gme], [-lgme])
2127 AS_IF([test "x${enable_gme}" != "x"], [
2128 AC_MSG_ERROR([GME cannot be found. Please install the development files.])
2137 AC_ARG_ENABLE([sid],
2138 AS_HELP_STRING([--enable-sid],[C64 sid demux support (default auto)]))
2139 AS_IF([test "${enable_sid}" != "no"], [
2140 PKG_CHECK_MODULES(SID, [libsidplay2], [
2142 oldCPPFLAGS="$CPPFLAGS"
2143 CPPFLAGS="$CPPFLAGS $SID_CFLAGS"
2144 AC_CHECK_HEADER([sidplay/builders/resid.h], [
2145 VLC_ADD_PLUGIN([sid])
2146 VLC_ADD_CFLAGS([sid], [$SID_CFLAGS])
2147 VLC_ADD_LIBS([sid], [$SID_LIBS] [-lresid-builder])
2149 AS_IF([test -n "${enable_sid}"],
2150 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2151 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2154 CPPFLAGS="$oldCPPFLAGS"
2157 AS_IF([test "x${enable_sid}" = "xyes"],
2158 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2159 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2166 dnl ogg demux plugin
2168 PKG_ENABLE_MODULES_VLC([OGG], [mux_ogg], [ogg >= 1.0], [Ogg demux support], [auto])
2169 PKG_CHECK_MODULES(LIBVORBIS, [vorbis >= 1.1], [
2170 AC_DEFINE(HAVE_LIBVORBIS, 1, [Define to 1 if you have the libvorbis])
2172 PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto], [${LIBVORBIS_CFLAGS}], [${LIBVORBIS_LIBS}])
2173 if test "${enable_sout}" != "no"; then
2174 dnl Check for libshout
2175 PKG_ENABLE_MODULES_VLC([SHOUT], [access_output_shout], [shout >= 2.1], [libshout output plugin], [auto])
2179 dnl matroska demux plugin
2181 PKG_WITH_MODULES([MATROSKA], [libebml libmatroska], [
2182 VLC_ADD_PLUGIN([mkv])
2183 VLC_ADD_CFLAGS([mkv], [$MATROSKA_CFLAGS])
2184 VLC_ADD_LIBS([mkv], [$MATROSKA_LIBS])
2186 ],,[MKV format support], [auto])
2187 AM_CONDITIONAL([HAVE_MATROSKA], [test "${have_matroska}" = "yes"])
2190 dnl modplug demux plugin
2192 AC_ARG_ENABLE([mod],
2193 AS_HELP_STRING([--disable-mod],
2194 [do not use libmodplug (default auto)]))
2195 if test "${enable_mod}" != "no" ; then
2196 PKG_CHECK_MODULES(LIBMODPLUG, [libmodplug >= 0.8.4 libmodplug != 0.8.8], [
2197 VLC_ADD_PLUGIN([mod])
2198 VLC_ADD_CXXFLAGS([mod],[$LIBMODPLUG_CFLAGS])
2199 VLC_ADD_CFLAGS([mod],[$LIBMODPLUG_CFLAGS]) #modules/demux/mod.c needs CFLAGS_mod, not CXXFLAGS_mod
2200 VLC_ADD_LIBS([mod],[$LIBMODPLUG_LIBS])
2202 AS_IF([test -n "${enable_mod}"],
2203 [AC_MSG_ERROR([${LIBMODPLUG_PKG_ERRORS}.])],
2204 [AC_MSG_WARN([${LIBMODPLUG_PKG_ERRORS}.])])
2209 dnl mpc demux plugin
2211 AC_ARG_ENABLE([mpc],
2212 AS_HELP_STRING([--disable-mpc], [do not use libmpcdec (default auto)]))
2213 if test "${enable_mpc}" != "no"
2215 AC_CHECK_HEADERS([mpcdec/mpcdec.h], [
2216 VLC_ADD_PLUGIN([mpc])
2217 VLC_ADD_LIBS([mpc],[-lmpcdec])])
2224 EXTEND_HELP_STRING([Codec plugins:])
2229 AC_ARG_ENABLE([wma-fixed],
2230 AS_HELP_STRING([--enable-wma-fixed], [libwma-fixed module (default disabled)]))
2231 if test "${enable_wma_fixed}" = "yes"
2233 VLC_ADD_PLUGIN([wma_fixed])
2237 dnl shine encoder plugin
2239 PKG_ENABLE_MODULES_VLC([SHINE], [], [shine >= 3.0.0], [MPEG Audio Layer 3 encoder], [auto], [], [], [])
2243 dnl openmax il codec plugin
2245 AC_ARG_ENABLE([omxil],
2246 AS_HELP_STRING([--enable-omxil], [openmax il codec module (default disabled)]))
2247 if test "${enable_omxil}" = "yes"
2249 VLC_ADD_PLUGIN([omxil])
2253 dnl raspberry pi openmax il configuration
2255 AC_ARG_ENABLE([rpi-omxil],
2256 AS_HELP_STRING([--enable-rpi-omxil], [openmax il configured for raspberry pi (default disabled)]))
2257 if test "${enable_rpi_omxil}" = "yes"
2259 VLC_ADD_PLUGIN([omxil])
2260 VLC_ADD_CFLAGS([omxil],[-DRPI_OMX])
2264 dnl CrystalHD codec plugin
2266 AC_ARG_ENABLE([crystalhd],
2267 AS_HELP_STRING([--enable-crystalhd], [crystalhd codec plugin (default auto)]))
2268 if test "${enable_crystalhd}" != "no"; then
2269 AC_CHECK_HEADER(libcrystalhd/libcrystalhd_if.h, [
2270 VLC_ADD_PLUGIN([crystalhd])
2271 VLC_ADD_LIBS([crystalhd], [-lcrystalhd])
2273 if test "${SYS}" = "mingw32" ; then
2274 AC_CHECK_HEADERS([libcrystalhd/bc_dts_defs.h], [
2275 VLC_ADD_PLUGIN([crystalhd])
2276 AC_CHECK_HEADERS([libcrystalhd/bc_drv_if.h], [
2277 VLC_ADD_LIBS([crystalhd], [-lbcmDIL])
2280 AS_IF([test x"${enable_crystalhd}" = "xyes"],
2281 [AC_MSG_ERROR("Could not find CrystalHD development headers")],
2282 [AC_MSG_WARN("Could not find CrystalHD development headers")])
2283 ],[#define __LINUX_USER__
2284 #include <libcrystalhd/bc_dts_types.h>
2288 #include <libcrystalhd/bc_dts_types.h>
2299 AC_ARG_WITH(mad, AS_HELP_STRING([--with-mad=PATH], [path to libmad]), [
2304 AS_IF([test "${with_mad}" != "no"], [
2305 MAD_CFLAGS="-I${with_mad}/include"
2306 MAD_LIBS="-L${with_mad}/lib"
2309 AC_ARG_ENABLE([mad],
2310 AS_HELP_STRING([--enable-mad], [libmad module (default enabled)]))
2311 AS_IF([test "${enable_mad}" != "no"], [
2313 CPPFLAGS="${CPPFLAGS} ${MAD_CFLAGS}"
2314 LDFLAGS="${LDFLAGS} ${MAD_LIBS}"
2315 AC_CHECK_HEADERS([mad.h], [
2316 AC_CHECK_LIB([mad], [mad_bit_init], [
2318 MAD_LIBS="${MAD_LIBS} -lmad"
2322 AS_IF([test -n "$enable_mad" -a "${have_mad}" = "no"], [
2323 AC_MSG_ERROR([Could not find libmad. Install it or pass --disable-mad to disable it.])
2326 AC_SUBST([MAD_CFLAGS])
2327 AC_SUBST([MAD_LIBS])
2328 AM_CONDITIONAL([HAVE_MAD], [test "${have_mad}" = "yes"])
2333 PKG_ENABLE_MODULES_VLC([MPG123], [mpg123], [libmpg123], [libmpg123 decoder support], [auto])
2338 AC_ARG_ENABLE([gst-decode],
2339 AS_HELP_STRING([--enable-gst-decode], [GStreamer based decoding support (currently supports only video decoding) (default auto)]))
2341 have_gst_decode="no"
2342 AS_IF([test "${enable_gst_decode}" != "no"], [
2343 PKG_CHECK_MODULES([GST_APP], [gstreamer-app-1.0], [
2344 PKG_CHECK_MODULES([GST_VIDEO], [gstreamer-video-1.0], [
2345 have_gst_decode="yes"
2347 AC_MSG_WARN([${GST_VIDEO_PKG_ERRORS}. GStreamer decoder module will not be built.])
2350 AC_MSG_WARN([${GST_APP_PKG_ERRORS}. GStreamer modules will not be built.])
2353 AM_CONDITIONAL([HAVE_GST_DECODE], [test "${have_gst_decode}" = "yes"])
2356 dnl avcodec decoder/encoder plugin
2358 AC_ARG_ENABLE([merge-ffmpeg],
2359 AS_HELP_STRING([--enable-merge-ffmpeg], [merge FFmpeg-based plugins (default disabled)]),, [
2360 enable_merge_ffmpeg="no"
2362 AM_CONDITIONAL([MERGE_FFMPEG], [test "$enable_merge_ffmpeg" != "no"])
2364 AC_MSG_CHECKING([for libavutil variant])
2365 PKG_CHECK_EXISTS([libavutil], [
2366 libavutil_version="$(${PKG_CONFIG} --modversion libavutil)"
2367 libavutil_micro="${libavutil_version##*.}"
2368 AS_IF([test ${libavutil_micro} -le 99], [
2376 AC_MSG_RESULT([${avfork}])
2378 AC_ARG_ENABLE([avcodec],
2379 AS_HELP_STRING([--enable-avcodec], [libavcodec codec (default enabled)]))
2380 AS_IF([test "${enable_avcodec}" != "no"], [
2381 dnl We need >=57.16.0 from libav or >=57.37.100 from ffmpeg
2383 libav) av_codec_ver="57.16.0" ;;
2384 dnl 05f66706d182eb0c36af54d72614bf4c33e957a9 includes libavutil 55.9.0
2385 ffmpeg) av_codec_ver="57.37.100" ;;
2386 dnl 7fc329e2dd6226dfecaa4a1d7adf353bf2773726 include libavutil 55.22.101
2387 *) AC_MSG_ERROR([Missing libav or FFmpeg. Pass --disable-avcodec to ignore this error.])
2389 PKG_CHECK_MODULES(AVCODEC,[libavcodec >= ${av_codec_ver} libavutil >= 55.9.0], [
2391 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2392 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2393 AC_CHECK_HEADERS([libavcodec/avcodec.h])
2394 AC_CHECK_HEADERS([libavutil/avutil.h])
2398 AC_MSG_ERROR([${AVCODEC_PKG_ERRORS}. Pass --disable-avcodec to ignore this error.])
2403 AM_CONDITIONAL([HAVE_AVCODEC], [test "${have_avcodec}" != "no"])
2406 dnl libva needs avcodec
2408 AC_ARG_ENABLE([libva],
2409 AS_HELP_STRING([--enable-libva], [VAAPI GPU decoding support (libVA) (default auto)]))
2411 AS_IF([test "${enable_libva}" = "yes" -a "${have_avcodec}" != "yes" ], [
2412 AC_MSG_ERROR([--enable-libva and --disable-avcodec options are mutually exclusive. Use --enable-avcodec.])
2419 AS_IF([test "${enable_libva}" != "no"], [
2420 PKG_CHECK_MODULES([LIBVA], [libva >= 0.38], [
2423 AS_IF([test -n "${enable_libva}"], [
2424 AC_MSG_ERROR([${LIBVA_PKG_ERRORS}.])
2426 AC_MSG_WARN([${LIBVA_PKG_ERRORS}.])
2429 PKG_CHECK_MODULES([LIBVA_DRM], [libva-drm], [
2430 have_vaapi_drm="yes"
2432 AC_MSG_WARN([${LIBVA_DRM_PKG_ERRORS}.])
2434 PKG_CHECK_MODULES(LIBVA_X11, [libva-x11], [
2435 have_vaapi_x11="yes"
2437 AC_MSG_WARN([${LIBVA_X11_PKG_ERRORS}.])
2439 PKG_CHECK_MODULES(LIBVA_WL, [libva-wayland], [
2442 AC_MSG_WARN([${LIBVA_WL_PKG_ERRORS}.])
2445 AM_CONDITIONAL([HAVE_VAAPI], [test "${have_vaapi}" = "yes"])
2446 AM_CONDITIONAL([HAVE_VAAPI_DRM], [test "${have_vaapi_drm}" = "yes"])
2447 AM_CONDITIONAL([HAVE_VAAPI_X11], [test "${have_vaapi_x11}" = "yes"])
2448 AM_CONDITIONAL([HAVE_VAAPI_WL], [test "${have_vaapi_wl}" = "yes"])
2450 have_avcodec_vaapi="no"
2451 AS_IF([test "${have_vaapi}" = "yes" -a "${have_avcodec}" = "yes"], [
2453 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2454 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2455 AC_CHECK_HEADERS([libavcodec/vaapi.h], [
2456 AC_MSG_NOTICE([VA API acceleration activated])
2457 have_avcodec_vaapi="yes"
2459 AS_IF([test -n "${enable_libva}"], [
2460 AC_MSG_ERROR([libva is present but libavcodec/vaapi.h is missing])
2462 AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing ])
2467 AM_CONDITIONAL([HAVE_AVCODEC_VAAPI], [test "${have_avcodec_vaapi}" = "yes"])
2470 dnl dxva2 needs avcodec
2472 AC_ARG_ENABLE([dxva2],
2473 AS_HELP_STRING([--enable-dxva2], [DxVA2 GPU decoding support (default auto)]))
2475 have_avcodec_dxva2="no"
2476 AS_IF([test "${enable_dxva2}" != "no"], [
2477 if test "${SYS}" = "mingw32"; then
2478 AS_IF([test "x${have_avcodec}" = "xyes"], [
2479 AC_CHECK_HEADERS([dxva2api.h],
2481 AC_CHECK_HEADERS([libavcodec/dxva2.h], [
2482 AC_MSG_NOTICE([DxVA2 acceleration activated])
2483 have_avcodec_dxva2="yes"
2485 AS_IF([test "${enable_dxva2}" = "yes"],
2486 [AC_MSG_ERROR([dxva2 is present but libavcodec/dxva2.h is missing])],
2487 [AC_MSG_WARN([dxva2 is present but libavcodec/dxva2.h is missing ])])
2488 ], [#undef _WIN32_WINNT
2489 /* DXVA2 is only available in Vista and above */
2490 #define _WIN32_WINNT 0x600])
2492 AS_IF([test "${enable_dxva2}" = "yes"],
2493 [AC_MSG_ERROR([Could not find required dxva2api.h])],
2494 [AC_MSG_WARN([dxva2api.h not found])])
2495 ],[#include <d3d9.h>])
2497 AS_IF([test "x${enable_dxva2}" != "x"], [
2498 AC_MSG_ERROR([--enable-dxva2 and --disable-avcodec options are mutually exclusive.])
2503 AM_CONDITIONAL([HAVE_AVCODEC_DXVA2], [test "${have_avcodec_dxva2}" = "yes"])
2506 dnl d3d11va needs avcodec
2508 AC_ARG_ENABLE([d3d11va],
2509 AS_HELP_STRING([--enable-d3d11va], [D3D11 GPU decoding support (default auto)]))
2511 have_avcodec_d3d11va="no"
2512 AS_IF([test "${enable_d3d11va}" != "no"], [
2513 if test "${SYS}" = "mingw32"; then
2514 AS_IF([test "x${have_avcodec}" = "xyes"], [
2515 AC_CHECK_TYPES([ID3D11VideoDecoder],
2517 AC_CHECK_HEADERS([dxva2api.h],
2519 AC_CHECK_HEADERS([libavcodec/d3d11va.h], [
2520 AC_MSG_NOTICE([D3D11 acceleration activated])
2521 AC_DEFINE([HAVE_AVCODEC_D3D11VA], [1], [Define if the d3d11va module is built])
2522 have_avcodec_d3d11va="yes"
2524 AS_IF([test "${enable_d3d11va}" = "yes"],
2525 [AC_MSG_ERROR([d3d11va is present but libavcodec/d3d11va.h is missing])],
2526 [AC_MSG_WARN([d3d11va is present but libavcodec/d3d11va.h is missing ])])
2527 ], [#undef _WIN32_WINNT
2528 /* D3D11 is only available in Vista and above */
2529 #define _WIN32_WINNT 0x600])
2531 AS_IF([test "${enable_d3d11va}" = "yes"],
2532 [AC_MSG_ERROR([Could not find required dxva2api.h])],
2533 [AC_MSG_WARN([dxva2api.h not found])])
2534 ],[#include <d3d9.h>])
2536 AS_IF([test "${enable_d3d11va}" = "yes"],
2537 [AC_MSG_ERROR([Could not find required ID3D11VideoDecoder in d3d11.h])],
2538 [AC_MSG_WARN([ID3D11VideoDecoder not found])])
2539 ], [#include <d3d11.h>])
2541 AS_IF([test "x${enable_d3d11va}" != "x"], [
2542 AC_MSG_ERROR([--enable-d3d11va and --disable-avcodec options are mutually exclusive.])
2547 AM_CONDITIONAL([HAVE_AVCODEC_D3D11VA], [test "${have_avcodec_d3d11va}" = "yes"])
2552 AC_CHECK_HEADERS([dxgidebug.h dxgi1_6.h])
2555 dnl avformat demuxer/muxer plugin
2558 AC_ARG_ENABLE([avformat],
2559 AS_HELP_STRING([--enable-avformat], [libavformat containers (default enabled)]),, [
2560 enable_avformat="${have_avcodec}"
2563 AS_IF([test "${enable_avformat}" != "no"], [
2564 PKG_CHECK_MODULES(AVFORMAT,[libavformat >= 53.21.0 libavcodec libavutil], [
2567 CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2568 CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2569 AC_CHECK_HEADERS([libavformat/avformat.h libavformat/avio.h])
2570 AC_CHECK_HEADERS([libavcodec/avcodec.h])
2571 AC_CHECK_HEADERS([libavutil/avutil.h])
2572 AS_IF([test "$enable_merge_ffmpeg" = "no"], [
2577 AC_MSG_ERROR([${AVFORMAT_PKG_ERRORS}. Pass --disable-avformat to ignore this error.])
2580 AM_CONDITIONAL([HAVE_AVFORMAT], [test "${enable_avformat}" != "no"])
2583 dnl swscale image scaling and conversion plugin
2586 AC_ARG_ENABLE([swscale],
2587 AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
2588 (default enabled)]))
2589 if test "${enable_swscale}" != "no"
2591 PKG_CHECK_MODULES(SWSCALE,[libswscale],
2594 CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
2595 CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
2596 AC_CHECK_HEADERS([libswscale/swscale.h])
2597 AC_CHECK_HEADERS([libavutil/avutil.h])
2598 VLC_ADD_PLUGIN([swscale])
2599 VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
2600 VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
2601 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2602 VLC_ADD_LIBS([swscale],[${ac_cv_ld_bsymbolic}])
2606 AC_MSG_ERROR([${SWSCALE_PKG_ERRORS}. Pass --disable-swscale to ignore this error. Proper software scaling and some video chroma conversion will be missing.])
2614 AC_ARG_ENABLE([postproc],
2615 AS_HELP_STRING([--enable-postproc], [libpostproc image post-processing (default auto)]))
2616 if test "${enable_postproc}" != "no"
2618 PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
2621 CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
2622 CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
2623 AC_CHECK_HEADERS([postproc/postprocess.h])
2624 VLC_ADD_PLUGIN([postproc])
2627 AC_MSG_WARN([${POSTPROC_PKG_ERRORS}.])
2632 dnl faad decoder plugin
2634 AC_ARG_ENABLE([faad],
2635 AS_HELP_STRING([--enable-faad], [faad codec (default auto)]))
2637 AS_IF([test "${enable_faad}" != "no"], [
2638 AC_CHECK_HEADERS([neaacdec.h], [
2639 AC_CHECK_LIB([faad], [NeAACDecOpen], [have_faad="yes"],, [$LIBM])
2641 AS_IF([test "${have_faad}" = "yes"], [
2642 VLC_ADD_PLUGIN([faad])
2643 VLC_ADD_LIBS([faad],[-lfaad])
2645 AS_IF([test "${enable_faad}" = "yes"], [
2646 AC_MSG_ERROR([cannot find FAAD library])
2648 AC_MSG_WARN([cannot find FAAD library])
2655 dnl AOM decoder plugin
2657 PKG_ENABLE_MODULES_VLC([AOM], [], [aom], [experimental AV1 codec (default auto)])
2660 dnl Dav1d decoder plugin
2662 PKG_ENABLE_MODULES_VLC([DAV1D], [], [dav1d], [AV1 decoder (default auto)])
2665 dnl libvpx decoder plugin
2667 AC_ARG_ENABLE([vpx],
2668 AS_HELP_STRING([--enable-vpx],[libvpx VP8/VP9 encoder and decoder (default auto)]))
2669 AS_IF([test "${enable_vpx}" != "no"],[
2670 PKG_CHECK_MODULES([VPX], [vpx >= 1.5.0], [
2671 VLC_ADD_PLUGIN([vpx])
2672 VLC_ADD_CPPFLAGS([vpx], [${VPX_CFLAGS}])
2673 VLC_ADD_LIBS([vpx], [${VPX_LIBS}])
2674 AC_CHECK_LIB([vpx],[vpx_codec_vp8_dx], [
2675 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP8_DECODER])
2676 ], [], [${VPX_LIBS}])
2677 AC_CHECK_LIB([vpx],[vpx_codec_vp9_dx], [
2678 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP9_DECODER])
2679 ], [], [${VPX_LIBS}])
2680 AC_CHECK_LIB([vpx],[vpx_codec_vp8_cx], [
2681 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP8_ENCODER])
2682 ], [], [${VPX_LIBS}])
2683 AC_CHECK_LIB([vpx],[vpx_codec_vp9_cx], [
2684 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP9_ENCODER])
2685 ], [], [${VPX_LIBS}])
2687 AS_IF([test "${enable_vpx}" = "yes"],[
2688 AC_MSG_ERROR([libvpx 1.5.0 or higher was not found])
2693 dnl twolame encoder plugin
2695 PKG_ENABLE_MODULES_VLC([TWOLAME], [], [twolame], [MPEG Audio Layer 2 encoder], [auto], [], [], [ -DLIBTWOLAME_STATIC])
2698 dnl fdk-aac encoder plugin
2700 PKG_ENABLE_MODULES_VLC([FDKAAC], [], [fdk-aac], [FDK-AAC encoder], [disabled])
2704 dnl A52/AC3 decoder plugin
2706 AC_ARG_ENABLE([a52],
2707 AS_HELP_STRING([--enable-a52], [A/52 support with liba52 (default enabled)]))
2708 if test "${enable_a52}" != "no"
2711 AS_HELP_STRING([--with-a52=PATH], [a52 headers and libraries]))
2712 if test -z "${with_a52}"
2717 LDFLAGS_test="-L${with_a52}/lib"
2718 CPPFLAGS_test="-I${with_a52}/include"
2721 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_test} ${CPPFLAGS_a52}"
2722 LDFLAGS="${LDFLAGS} ${LDFLAGS_test} ${LIBS_a52}"
2723 AC_CHECK_HEADERS([a52dec/a52.h], [
2724 AC_CHECK_LIB([a52], [a52_free], [
2725 VLC_ADD_PLUGIN([a52])
2726 VLC_ADD_LIBS([a52],[${LDFLAGS_test} -la52 $LIBM])
2727 VLC_ADD_CPPFLAGS([a52],[${CPPFLAGS_test}])
2729 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.])
2732 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.])
2738 dnl DTS Coherent Acoustics decoder plugin
2740 PKG_ENABLE_MODULES_VLC([DCA], [dca], [libdca >= 0.0.5], [DTS Coherent Acoustics support with libdca], [auto])
2745 PKG_ENABLE_MODULES_VLC([FLAC], [], [flac], [libflac decoder/encoder support], [auto])
2750 PKG_ENABLE_MODULES_VLC([LIBMPEG2], [], [libmpeg2 > 0.3.2], [libmpeg2 decoder support], [auto])
2755 PKG_ENABLE_MODULES_VLC([VORBIS], [], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
2760 AC_ARG_ENABLE([tremor],
2761 AS_HELP_STRING([--enable-tremor], [Tremor decoder support (default disabled)]))
2762 if test "${enable_tremor}" = "yes"
2764 AC_CHECK_HEADERS([tremor/ivorbiscodec.h], [
2765 VLC_ADD_PLUGIN([tremor])
2772 PKG_ENABLE_MODULES_VLC([SPEEX], [], [ogg speex >= 1.0.5], [Speex support], [auto])
2774 AS_IF([test "${enable_speex}" != "no"], [
2775 PKG_CHECK_MODULES([SPEEXDSP], [speexdsp], [
2778 AC_MSG_WARN([${SPEEXDSP_PKG_ERRORS}.])
2781 AM_CONDITIONAL([HAVE_SPEEXDSP], [test "$have_speexdsp" = "yes"])
2786 PKG_ENABLE_MODULES_VLC([OPUS], [], [ogg opus >= 1.0.3], [Opus support], [auto])
2789 dnl Ambisonic channel mixer and binauralizer plugin
2791 PKG_ENABLE_MODULES_VLC([SPATIALAUDIO], [], [spatialaudio], [Ambisonic channel mixer and binauralizer], [auto])
2794 dnl theora decoder plugin
2796 PKG_ENABLE_MODULES_VLC([THEORA], [], [ogg theoradec >= 1.0 theoraenc], [experimental theora codec], [auto])
2799 dnl OggSpots decoder plugin
2801 PKG_ENABLE_MODULES_VLC([OGGSPOTS], [], [ogg], [experimental OggSpots codec], [auto])
2804 dnl Daala decoder plugin
2806 PKG_ENABLE_MODULES_VLC([DAALA], [], [daaladec daalaenc], [experimental daala codec], [disabled])
2809 dnl schroedinger decoder plugin (for dirac format video)
2811 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [], [schroedinger-1.0 >= 1.0.10], [dirac decoder and encoder using schroedinger], [auto])
2814 dnl PNG decoder module
2816 AC_ARG_ENABLE([png],
2817 AS_HELP_STRING([--enable-png], [PNG support (default enabled)]))
2818 AS_IF([test "${enable_png}" != "no"], [
2819 AC_CHECK_HEADERS([png.h], [
2821 LDFLAGS="${LDFLAGS} -lz $LIBM"
2822 AC_CHECK_LIB([png], [png_set_alpha_mode], [
2823 VLC_ADD_PLUGIN([png])
2830 dnl JPEG decoder module
2832 AC_ARG_ENABLE([jpeg],
2833 AS_HELP_STRING([--enable-jpeg], [JPEG support (default enabled)]))
2834 AS_IF([test "${enable_jpeg}" != "no"], [
2835 AC_CHECK_HEADERS([jpeglib.h], [
2836 VLC_ADD_PLUGIN([jpeg])
2841 dnl BPG decoder module
2843 AC_ARG_ENABLE([bpg],
2844 AS_HELP_STRING([--enable-bpg], [BPG support (default disabled)]))
2845 AS_IF([test "${enable_bpg}" != "no"], [
2846 AC_CHECK_HEADERS([libbpg.h], [
2847 VLC_ADD_PLUGIN([bpg])
2852 dnl H262 encoder plugin (lib262)
2854 AC_ARG_ENABLE([x262],
2855 AS_HELP_STRING([--enable-x262], [H262 encoding support with static libx262 (default disabled)]))
2856 if test "${enable_x262}" != "no"; then
2857 PKG_CHECK_MODULES(X262, x262, [
2858 VLC_ADD_PLUGIN([x262])
2859 VLC_ADD_LDFLAGS([x262],[${X262_LIBS}])
2860 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2861 VLC_ADD_LIBS([x262],[${av_cv_ld_bsymbolic}])
2863 VLC_ADD_CFLAGS([x262],[${X262_CFLAGS}])
2864 if echo ${X262_LIBS} |grep -q 'pthreadGC2'; then
2865 VLC_ADD_CFLAGS([x262], [-DPTW32_STATIC_LIB])
2868 if test "${enable_x262}" = "yes"; then
2869 AC_MSG_ERROR([x262 module doesn't work without staticly compiled libx262.a])
2875 PKG_ENABLE_MODULES_VLC([X265],, [x265], [HEVC/H.265 encoder], [auto])
2878 dnl H264 encoder plugin (using libx264)
2880 AC_ARG_ENABLE([x264],
2881 AS_HELP_STRING([--enable-x264], [H264 encoding support with libx264 (default enabled)]))
2882 if test "${enable_x264}" != "no"; then
2883 PKG_CHECK_MODULES(X264,x264 >= 0.148, [
2884 VLC_ADD_PLUGIN([x264])
2885 VLC_ADD_LIBS([x264],[${X264_LIBS}])
2887 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2888 VLC_ADD_LDFLAGS([x264],[${ac_cv_ld_bsymbolic}])
2891 VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
2892 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
2893 VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
2896 if test "${enable_x264}" = "yes"; then
2897 AC_MSG_ERROR([${X264_PKG_ERRORS}: you may get it from http://www.videolan.org/x264.html])
2903 dnl H264 encoder plugin (libx264 > 153)
2905 AC_ARG_ENABLE([x26410b],
2906 AS_HELP_STRING([--enable-x26410b], [H264 10-bit encoding support with libx264 (default enabled)]))
2907 if test "${enable_x26410b}" != "no"; then
2908 PKG_CHECK_MODULES(X26410b,x264 >= 0.153, [
2909 VLC_ADD_PLUGIN([x26410b])
2910 VLC_ADD_LIBS([x26410b],[${X264_LIBS}])
2912 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2913 VLC_ADD_LDFLAGS([x26410b],[${ac_cv_ld_bsymbolic}])
2916 VLC_ADD_CFLAGS([x26410b],[${X264_CFLAGS}])
2917 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
2918 VLC_ADD_CFLAGS([x26410b], [-DPTW32_STATIC_LIB])
2921 if test "${enable_x26410b}" = "yes"; then
2922 AC_MSG_ERROR([${X264_PKG_ERRORS}: you may get it from http://www.videolan.org/x264.html])
2929 dnl Intel QuickSync (aka MediaSDK) H264/H262 encoder
2931 PKG_ENABLE_MODULES_VLC([MFX], [qsv], [libmfx], [Intel QuickSync MPEG4-Part10/MPEG2 (aka H.264/H.262) encoder], [auto])
2934 dnl libfluidsynth (MIDI synthetizer) plugin
2936 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [], [fluidsynth >= 1.1.2], [MIDI synthetiser with libfluidsynth], [auto])
2937 PKG_ENABLE_MODULES_VLC([FLUIDLITE], [fluidsynth], [fluidlite], [MIDI synthetiser with libfluidsynth], [auto])
2938 AC_CHECK_HEADERS([fluidlite.h], [AC_SUBST([FLUIDSYNTH_LIBS], ${FLUIDLITE_LIBS})])
2941 dnl Teletext Modules
2942 dnl vbi decoder plugin (using libzbvi)
2946 AC_ARG_ENABLE([zvbi],
2947 AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
2948 libzvbi (default enabled)]))
2949 AC_ARG_ENABLE([telx],
2950 AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
2951 zvbi) (default enabled if zvbi is absent)]))
2953 AS_IF( [test "${enable_zvbi}" != "no"],[
2954 PKG_CHECK_MODULES(ZVBI, [zvbi-0.2 >= 0.2.28],
2956 VLC_ADD_PLUGIN([zvbi])
2957 AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
2958 AS_IF( [test "${enable_telx}" = "yes"],[
2959 AC_MSG_WARN([The zvbi and telx modules are incompatible. Using zvbi.])
2962 AC_MSG_WARN([${ZVBI_PKG_ERRORS}. Enabling the telx module instead.])
2965 AS_IF( [test "${enable_telx}" != "no" ],[
2966 VLC_ADD_PLUGIN([telx])
2970 dnl ARIB subtitles rendering module
2972 AC_ARG_ENABLE([aribsub],
2973 AS_HELP_STRING([--enable-aribsub],[ARIB Subtitles support (default enabled)]))
2974 AS_IF( [test "${enable_aribsub}" != "no" ],[
2975 PKG_CHECK_MODULES(ARIBB24, [aribb24 >= 1.0.1], [
2977 VLC_ADD_PLUGIN([aribsub])
2978 VLC_ADD_LIBS([aribsub],[-laribb24])
2979 AC_DEFINE(HAVE_ARIBB24, 1, [Define if libaribb24 is available.])
2981 AC_MSG_WARN(Library [aribb24] needed for [aribsub] was not found)
2985 AM_CONDITIONAL([HAVE_ARIBB24], [test x"${have_aribb24}" = x"yes"])
2990 PKG_ENABLE_MODULES_VLC([ARIBB25], [aribcam], [aribb25 >= 0.2.6], [ARIB STD-B25], [auto])
2993 dnl kate decoder plugin
2995 PKG_ENABLE_MODULES_VLC([KATE], [], [kate >= 0.3.0], [kate codec], [auto])
2998 dnl tiger rendering for kate decoder plugin
3000 AC_ARG_ENABLE([tiger],
3001 AS_HELP_STRING([--enable-tiger], [Tiger rendering library for Kate streams (default auto)]))
3002 AS_IF([test "${enable_tiger}" != "no"], [
3003 PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
3004 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])],[
3005 AS_IF([test -n "${enable_tiger}"], [
3006 AC_MSG_ERROR([${TIGER_PKG_ERRORS}.])
3012 dnl check if we can build the css selector engine
3014 AC_ARG_ENABLE([css],
3015 AS_HELP_STRING([--enable-css], [CSS selector engine (default auto)]))
3016 AS_IF([test "${enable_css}" != "no"], [
3018 AC_DEFINE(HAVE_CSS, 1, [Define if CSS engine is built])
3020 AM_CONDITIONAL([ENABLE_CSS], [test "${with_css}" = "yes"])
3027 EXTEND_HELP_STRING([Video plugins:])
3030 dnl libplacebo support
3032 AC_ARG_ENABLE([libplacebo],
3033 AS_HELP_STRING([--disable-libplacebo],
3034 [disable libplacebo support (default auto)]))
3036 AS_IF([test "$enable_libplacebo" != "no"], [
3037 PKG_CHECK_MODULES([LIBPLACEBO], [libplacebo >= 0.5], [
3038 AC_DEFINE([HAVE_LIBPLACEBO], [1], [Define to 1 if libplacebo is enabled.])
3039 PKG_CHECK_MODULES([LIBPLACEBO], [libplacebo >= 1.7],
3040 [have_libplacebo_vk="yes"], [have_libplacebo_vk="no"])
3042 AS_IF([test -n "${enable_libplacebo}"], [
3043 AC_MSG_ERROR([${LIBPLACEBO_PKG_ERRORS}.])
3045 enable_libplacebo="no"
3048 AM_CONDITIONAL([HAVE_LIBPLACEBO], [test "$enable_libplacebo" != "no"])
3053 PKG_CHECK_MODULES([EGL], [egl], [
3058 AM_CONDITIONAL([HAVE_EGL], [test "${have_egl}" = "yes"])
3061 PKG_CHECK_MODULES([GL], [gl], [
3064 AC_MSG_CHECKING([for OpenGL])
3065 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
3067 # include <GL/glew.h>
3071 [int t0 = GL_TEXTURE0;]])
3075 AS_IF([test "${SYS}" != "mingw32"], [
3078 GL_LIBS="-lopengl32"
3081 AC_MSG_RESULT([${have_gl}])
3083 AM_CONDITIONAL([HAVE_GL], [test "${have_gl}" = "yes"])
3084 AS_IF([test "${have_gl}" = "yes"], [
3085 AC_DEFINE([HAVE_GL], 1, [Defined if having OpenGL])
3088 dnl OpenGL ES 2: depends on EGL 1.1
3089 PKG_ENABLE_MODULES_VLC([GLES2], [], [glesv2], [OpenGL ES v2 support], [disabled])
3094 AC_ARG_ENABLE(vulkan,
3095 [AS_HELP_STRING([--disable-vulkan],
3096 [disable Vulkan support (default auto)])])
3098 AS_IF([test "$enable_vulkan" != "no"], [
3099 AS_IF([test "$have_libplacebo_vk" = "yes"], [
3100 PKG_CHECK_MODULES([VULKAN], [vulkan >= 1.0.26], [
3101 AC_DEFINE([HAVE_VULKAN], [1], [Define to 1 if vulkan is enabled.])
3103 AS_IF([test -n "${enable_vulkan}"], [
3104 AC_MSG_ERROR([${VULKAN_PKG_ERRORS}.])
3109 AS_IF([test -n "${enable_vulkan}"], [
3110 AC_MSG_ERROR([Vulkan support requires libplacebo 1.7 as well. Do not use --disable-libplacebo.])
3115 AM_CONDITIONAL(HAVE_VULKAN, [test "$enable_vulkan" != "no"])
3122 AC_CHECK_HEADERS([X11/Xlib.h])
3125 dnl X C Bindings modules
3127 AC_ARG_ENABLE([xcb],
3128 AS_HELP_STRING([--enable-xcb], [X11 support with XCB (default enabled)]),, [
3129 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "darwin"], [
3137 have_xkbcommon_x11="no"
3138 have_xcb_keysyms="no"
3139 AS_IF([test "${enable_xcb}" != "no"], [
3143 PKG_CHECK_MODULES([XCB], [xcb >= 1.6],, [
3144 xcb_err="$xcb_err ${XCB_PKG_ERRORS}."])
3145 PKG_CHECK_MODULES([XCB_COMPOSITE], [xcb-composite],, [
3146 xcb_err="$xcb_err ${XCB_COMPOSITE_PKG_ERRORS}."])
3147 PKG_CHECK_MODULES([XCB_RANDR], [xcb-randr >= 1.3],, [
3148 xcb_err="$xcb_err ${XCB_RANDR_PKG_ERRORS}."])
3149 PKG_CHECK_MODULES([XCB_RENDER], [xcb-render],, [
3150 xcb_err="$xcb_err ${XCB_RENDER_PKG_ERRORS}."])
3151 PKG_CHECK_MODULES([XCB_SHM], [xcb-shm >= 1.9.2],, [
3152 xcb_err="$xcb_err ${XCB_SHM_PKG_ERRORS}."])
3153 PKG_CHECK_MODULES([XCB_XKB], [xcb-xkb],, [
3154 xcb_err="$xcb_err ${XCB_XKB_PKG_ERRORS}."])
3155 PKG_CHECK_MODULES([XCB_XV], [xcb-xv >= 1.1.90.1],, [
3156 xcb_err="$xcb_err ${XCB_XV_PKG_ERRORS}."])
3159 PKG_CHECK_MODULES(XPROTO, [xproto],, [
3160 xcb_err="$xcb_err ${XPROTO_PKG_ERRORS}."])
3162 AS_IF([test -n "$xcb_err"], [
3163 AC_MSG_ERROR([$xcb_err Pass --disable-xcb to skip X11 support.])
3167 PKG_CHECK_MODULES([XKBCOMMON_X11], [xkbcommon-x11], [
3168 have_xkbcommon_x11="yes"
3170 AC_MSG_WARN([${XKBCOMMON_X11_PKG_ERRORS}. Hotkeys are disabled.])
3174 PKG_CHECK_MODULES([XCB_KEYSYMS], [xcb-keysyms >= 0.3.4], [
3175 have_xcb_keysyms="yes"
3177 AC_MSG_WARN([${XCB_KEYSYMS_PKG_ERRORS}. Global hotkeys are disabled.])
3182 AM_CONDITIONAL([HAVE_XCB], [test "${have_xcb}" = "yes"])
3183 AM_CONDITIONAL([HAVE_XKBCOMMON_X11], [test "${have_xkbcommon_x11}" = "yes"])
3184 AM_CONDITIONAL([HAVE_XCB_KEYSYMS], [test "${have_xcb_keysyms}" = "yes"])
3190 AC_ARG_ENABLE([vdpau],
3191 [AS_HELP_STRING([--enable-vdpau], [VDPAU hardware support (default auto)])])
3193 AS_IF([test "${enable_vdpau}" != "no"], [
3194 PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.6], [
3196 AS_IF([test "${no_x}" = "yes"], [
3197 AC_MSG_ERROR([VDPAU requires Xlib (X11).])
3200 AS_IF([test -n "${enable_vdpau}"], [
3201 AC_MSG_ERROR([${VDPAU_PKG_ERRORS}.])
3205 AM_CONDITIONAL([HAVE_VDPAU], [test "${have_vdpau}" = "yes"])
3207 have_avcodec_vdpau="no"
3208 AS_IF([test "${have_vdpau}" = "yes" -a "${have_avcodec}" = "yes"], [
3210 libav) av_vdpau_ver="56.10.0" ;;
3211 ffmpeg) av_vdpau_ver="56.19.100" ;;
3213 PKG_CHECK_EXISTS([libavcodec >= ${av_vdpau_ver}], [
3214 have_avcodec_vdpau="yes"
3215 AC_MSG_NOTICE([VDPAU decoding acceleration activated])
3217 AS_IF([test -n "${enable_vdpau}"], [
3218 AC_MSG_ERROR([libavcodec >= 56.10.0 is required for VDPAU decoding.])
3220 AC_MSG_WARN([libavcodec >= 56.10.0 are required for VDPAU decoding.])
3224 AM_CONDITIONAL([HAVE_AVCODEC_VDPAU], [test "${have_avcodec_vdpau}" = "yes"])
3230 AC_ARG_ENABLE([wayland],
3231 AS_HELP_STRING([--enable-wayland], [Wayland support (default auto)]))
3234 AS_IF([test "${enable_wayland}" != "no"], [
3238 PKG_CHECK_MODULES([WAYLAND_CLIENT], [wayland-client >= 1.5.91],, [
3239 wl_err="$wl_err ${WAYLAND_CLIENT_PKG_ERRORS}."
3241 PKG_CHECK_MODULES([WAYLAND_CURSOR], [wayland-cursor],, [
3242 wl_err="$wl_err ${WAYLAND_CURSOR_PKG_ERRORS}."
3244 PKG_CHECK_MODULES([WAYLAND_EGL], [wayland-egl],, [
3245 wl_err="$wl_err ${WAYLAND_EGL_PKG_ERRORS}."
3247 PKG_CHECK_MODULES([WAYLAND_SCANNER], [wayland-scanner >= 1.15], [
3248 WAYLAND_SCANNER="$(${PKG_CONFIG} wayland-scanner --variable wayland_scanner)"
3250 wl_err="$wl_err ${WAYLAND_SCANNER_PKG_ERRORS}."
3253 dnl wayland-protocols
3254 PKG_CHECK_MODULES([WAYLAND_PROTOCOLS], [wayland-protocols >= 1.15], [
3255 WAYLAND_PROTOCOLS="$(${PKG_CONFIG} wayland-protocols --variable pkgdatadir)"
3257 wl_err="$wl_err ${WAYLAND_PROTOCOLS_PKG_ERRORS}."
3260 AS_IF([test -n "$wl_err"], [
3261 AS_IF([test -n "$enable_wayland"], [
3262 AC_MSG_ERROR([$wl_err])
3264 AC_MSG_WARN([$wl_err])
3271 PKG_CHECK_MODULES([XKBCOMMON], [xkbcommon], [
3272 have_xkbcommon="yes"
3274 AC_MSG_WARN([${XKBCOMMON_PKG_ERRORS}. Hotkeys are disabled.])
3277 AM_CONDITIONAL([HAVE_WAYLAND], [test "${have_wayland}" = "yes"])
3278 AC_SUBST([WAYLAND_PROTOCOLS])
3279 AC_SUBST([WAYLAND_SCANNER])
3280 AM_CONDITIONAL([HAVE_XKBCOMMON], [test "${have_xkbcommon}" = "yes"])
3284 dnl SDL image decoder module
3286 AC_ARG_ENABLE([sdl-image],
3287 AS_HELP_STRING([--enable-sdl-image], [SDL image support (default enabled)]))
3288 AS_IF([test "${enable_sdl_image}" != "no"],[
3289 PKG_CHECK_MODULES(SDL_IMAGE, [SDL_image >= 1.2.10], [
3290 VLC_ADD_PLUGIN([sdl_image])
3292 AC_MSG_WARN([${SDL_IMAGE_PKG_ERRORS}. You should install it alongside your SDL package.])
3299 AC_ARG_ENABLE([freetype],
3300 AS_HELP_STRING([--enable-freetype], [freetype support (default auto)]))
3301 AC_ARG_ENABLE([fribidi],
3302 AS_HELP_STRING([--enable-fribidi], [fribidi support (default auto)]))
3303 AC_ARG_ENABLE([harfbuzz],
3304 AS_HELP_STRING([--enable-harfbuzz], [harfbuzz support (default auto)]))
3305 AC_ARG_ENABLE([fontconfig],
3306 AS_HELP_STRING([--enable-fontconfig], [fontconfig support (default auto)]))
3308 AC_ARG_WITH([default-font],
3309 AS_HELP_STRING([--with-default-font=PATH],
3310 [Path to the default font]),
3311 [AC_DEFINE_UNQUOTED([DEFAULT_FONT_FILE],
3312 "$withval", [Default font])])
3313 AC_ARG_WITH([default-monospace-font],
3314 AS_HELP_STRING([--with-default-monospace-font=PATH],
3315 [Path to the default font]),
3316 [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FONT_FILE],
3317 "$withval", [Default monospace font])])
3319 AC_ARG_WITH([default-font-family],
3320 AS_HELP_STRING([--with-default-font-family=NAME],
3321 [Name of the default font family]),
3322 [AC_DEFINE_UNQUOTED([DEFAULT_FAMILY],
3323 "$withval", [Default font family])])
3324 AC_ARG_WITH([default-monospace-font-family],
3325 AS_HELP_STRING([--with-default-monospace-font-family=NAME],
3326 [Name of the default font family]),
3327 [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FAMILY],
3328 "$withval", [Default monospace font family])])
3331 have_fontconfig="no"
3335 if test "${enable_freetype}" != "no"; then
3336 PKG_CHECK_MODULES(FREETYPE, freetype2, [
3338 VLC_ADD_CPPFLAGS([skins2],[${FREETYPE_CFLAGS}])
3339 VLC_ADD_LIBS([skins2],[${FREETYPE_LIBS}])
3341 dnl fontconfig support
3342 AS_IF([test "${enable_fontconfig}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "darwin"], [
3343 PKG_CHECK_MODULES(FONTCONFIG, [fontconfig >= 2.11], [
3344 have_fontconfig="yes"
3346 AC_MSG_WARN([${FONTCONFIG_PKG_ERRORS}. Styles will be disabled in FreeType.])
3351 if test "${enable_fribidi}" != "no"; then
3352 PKG_CHECK_MODULES(FRIBIDI, fribidi, [
3354 VLC_ADD_CPPFLAGS([skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
3355 VLC_ADD_LIBS([skins2], [${FRIBIDI_LIBS}])
3356 ],[AC_MSG_WARN([${FRIBIDI_PKG_ERRORS}. Bidirectional text and complex scripts (Arabic, Farsi, Thai...) will be disabled in FreeType.])])
3359 dnl harfbuzz support
3360 if test "${have_fribidi}" != "no"; then
3361 if test "${enable_harfbuzz}" != "no"; then
3362 PKG_CHECK_MODULES(HARFBUZZ, harfbuzz, [
3364 VLC_ADD_CPPFLAGS([skins2], [${HARFBUZZ_CFLAGS} -DHAVE_HARFBUZZ])
3365 VLC_ADD_LIBS([skins2], [${HARFBUZZ_LIBS}])
3366 ],[AC_MSG_WARN([${HARFBUZZ_PKG_ERRORS}. Support for complex scripts (Arabic, Farsi, Thai...) will be disabled in FreeType.])])
3370 AS_IF([test -n "${enable_freetype}"],[
3371 AC_MSG_ERROR([${FREETYPE_PKG_ERRORS}. Install FreeType2 development or configure with --disable-freetype.])
3376 AM_CONDITIONAL([HAVE_FREETYPE], [test "${have_freetype}" = "yes"])
3377 AM_CONDITIONAL([HAVE_FONTCONFIG], [test "${have_fontconfig}" = "yes"])
3378 AM_CONDITIONAL([HAVE_FRIBIDI], [test "${have_fribidi}" = "yes"])
3379 AM_CONDITIONAL([HAVE_HARFBUZZ], [test "${have_harfbuzz}" = "yes"])
3382 dnl libass subtitle rendering module
3384 AC_ARG_ENABLE([libass],
3385 AS_HELP_STRING([--enable-libass], [Subtitle support using libass (default enabled)]))
3386 AS_IF( [test "${enable_libass}" != "no"], [
3387 PKG_CHECK_MODULES(LIBASS, [libass >= 0.9.8],
3389 VLC_ADD_PLUGIN([libass])
3391 if test "${have_fontconfig}" != "no"; then
3392 VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
3393 VLC_ADD_LIBS([libass],[${FONTCONFIG_LIBS}])
3396 AC_MSG_WARN([${LIBASS_PKG_ERRORS}.])
3401 dnl SAPI (text to Speech renderer for Windows)
3404 AC_CHECK_TYPES([ISpObjectToken],[
3406 ],[AC_MSG_WARN([sapi.h not found. Text to Speech renderer for Windows disabled])],
3407 [#include <windows.h>
3409 #include <sphelper.h>])
3410 AM_CONDITIONAL([HAVE_SAPI], [test "${have_sapi}" = "yes"])
3414 dnl SVG module (text rendering and image decoding)
3416 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3417 PKG_ENABLE_MODULES_VLC([SVGDEC], [], [librsvg-2.0 >= 2.9.0 cairo >= 1.13.1], [SVG image decoder library],[auto])
3420 dnl Windows DirectX module
3423 AC_ARG_ENABLE([directx],
3424 AS_HELP_STRING([--enable-directx],
3425 [Microsoft DirectX support (default enabled on Windows)]),, [
3426 AS_IF([test "${SYS}" = "mingw32"], [
3427 enable_directx="yes"
3432 AS_IF([test "${enable_directx}" != "no"], [
3434 AC_CHECK_HEADERS([ddraw.h], [
3435 VLC_ADD_PLUGIN([directdraw])
3439 AC_CHECK_HEADERS([GL/glew.h], [
3440 AC_CHECK_HEADERS([GL/wglew.h], [
3441 VLC_ADD_PLUGIN([glwin32 wgl])
3443 #include <windows.h>
3444 #include <GL/glew.h>
3446 #include <windows.h>
3450 AC_CHECK_HEADERS([d3d11.h], [
3451 VLC_ADD_PLUGIN([direct3d11 direct3d11_filters])
3455 AC_CHECK_HEADERS([d3d9.h], [
3456 VLC_ADD_PLUGIN([direct3d9])
3457 AC_CHECK_HEADERS([d3dx9effect.h])
3459 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
3460 [[#define COBJMACROS
3462 #include <dxva2api.h>
3463 #ifndef IDirectXVideoProcessorService_GetVideoProcessorDeviceGuids
3464 # error dxva2 too old
3468 VLC_ADD_PLUGIN([direct3d9_filters])
3470 [AC_MSG_WARN([Could not find required IDirectXVideoDecoder in dxva2api.h])])
3476 dnl Linux framebuffer module
3478 AC_CHECK_HEADER([linux/fb.h], [
3479 VLC_ADD_PLUGIN([fb])
3483 dnl Linux kernel mode setting module
3485 PKG_ENABLE_MODULES_VLC([KMS], [], [libdrm >= 2.4.83], [Linux kernel mode setting output], [auto])
3490 PKG_ENABLE_MODULES_VLC([CACA], [], [caca >= 0.99.beta14], [libcaca output],[auto])
3495 AC_ARG_ENABLE([kva],
3496 AS_HELP_STRING([--enable-kva],
3497 [support the K Video Accelerator KVA (default enabled on OS/2)]),, [
3498 AS_IF([test "$SYS" = "os2"], [
3504 AS_IF([test "$enable_kva" != "no"], [
3505 AC_CHECK_HEADERS([kva.h], [
3507 AC_CHECK_LIB([kva], [main], [
3512 AC_SUBST([KVA_LIBS])
3513 AM_CONDITIONAL([HAVE_KVA], [test "${have_kva}" = "yes"])
3518 AC_ARG_ENABLE([mmal],
3519 AS_HELP_STRING([--enable-mmal],
3520 [Multi-Media Abstraction Layer (MMAL) hardware plugin (default enable)]))
3521 if test "${enable_mmal}" != "no"; then
3523 LDFLAGS="${LDFLAGS} -L/opt/vc/lib -lvchostif"
3524 CPPFLAGS="${CPPFLAGS} -isystem /opt/vc/include -isystem /opt/vc/include/interface/vcos/pthreads -isystem /opt/vc/include/interface/vmcs_host/linux"
3525 AC_CHECK_HEADERS([interface/mmal/mmal.h],
3526 [ AC_CHECK_LIB([bcm_host], [vc_tv_unregister_callback_full], [
3528 VLC_ADD_PLUGIN([mmal])
3529 VLC_ADD_LDFLAGS([mmal],[ -L/opt/vc/lib ])
3530 VLC_ADD_CFLAGS([mmal],[ -isystem /opt/vc/include -isystem /opt/vc/include/interface/vcos/pthreads -isystem /opt/vc/include/interface/vmcs_host/linux ])
3531 VLC_ADD_LIBS([mmal],[ -lbcm_host -lmmal -lmmal_core -lmmal_components -lmmal_util -lvchostif ]) ], [
3532 AS_IF([test "${enable_mmal}" = "yes"],
3533 [ AC_MSG_ERROR([Cannot find bcm library...]) ],
3534 [ AC_MSG_WARN([Cannot find bcm library...]) ])
3537 ] , [ AS_IF([test "${enable_mmal}" = "yes"],
3538 [ AC_MSG_ERROR([Cannot find development headers for mmal...]) ],
3539 [ AC_MSG_WARN([Cannot find development headers for mmal...]) ]) ])
3542 AM_CONDITIONAL([HAVE_MMAL], [test "${have_mmal}" = "yes"])
3548 EXTEND_HELP_STRING([Audio plugins:])
3551 dnl Pulseaudio module
3553 AC_ARG_ENABLE([pulse],
3554 AS_HELP_STRING([--enable-pulse],
3555 [use the PulseAudio client library (default auto)]))
3557 AS_IF([test "${enable_pulse}" != "no"], [
3558 PKG_CHECK_MODULES([PULSE], [libpulse >= 1.0], [
3561 AS_IF([test "x${enable_pulse}" != "x"], [
3562 AC_MSG_ERROR([$PULSE_PKG_ERRORS. PulseAudio 1.0 or later required.])
3566 AM_CONDITIONAL([HAVE_PULSE], [test "${have_pulse}" = "yes"])
3571 AC_ARG_ENABLE([alsa],
3572 AS_HELP_STRING([--enable-alsa],
3573 [support the Advanced Linux Sound Architecture (default auto)]),, [
3574 AS_IF([test "$SYS" = "linux" -a "${have_pulse}" = "no"], [
3579 AS_IF([test "${enable_alsa}" != "no"], [
3580 PKG_CHECK_MODULES([ALSA], [alsa >= 1.0.24], [
3583 AS_IF([test "x${enable_alsa}" != "x"], [
3584 AC_MSG_ERROR([$ALSA_PKG_ERRORS. alsa-lib 1.0.24 or later required. Pass --disable-alsa to ignore this error.])
3588 AM_CONDITIONAL([HAVE_ALSA], [test "${have_alsa}" = "yes"])
3591 dnl Open Sound System module
3593 AC_ARG_ENABLE([oss],
3594 AS_HELP_STRING([--enable-oss],
3595 [support the Open Sound System OSS (default enabled on FreeBSD/NetBSD/DragonFlyBSD)]),, [
3596 AS_IF([test "$SYS" = "mingw32" -o "$SYS" = "linux" -o "$SYS" = "openbsd"], [
3602 AS_IF([test "$enable_oss" != "no"], [
3603 AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
3605 AC_CHECK_LIB([ossaudio], [main], [
3606 OSS_LIBS="-lossaudio"
3610 AC_SUBST([OSS_LIBS])
3611 AM_CONDITIONAL([HAVE_OSS], [test "${have_oss}" = "yes"])
3614 dnl OpenBSD sndio module
3616 AC_ARG_ENABLE([sndio],
3617 AS_HELP_STRING([--disable-sndio],
3618 [support the OpenBSD sndio (default auto)]),, [
3619 AS_IF([test "$SYS" = "openbsd"], [
3624 AS_IF([test "$enable_sndio" != "no"], [
3625 AC_CHECK_HEADER([sndio.h], [
3629 AM_CONDITIONAL([HAVE_SNDIO], [test "${have_sndio}" = "yes"])
3632 dnl Windows Audio Session plugin
3634 AC_ARG_ENABLE([wasapi],
3635 AS_HELP_STRING([--enable-wasapi],
3636 [use the Windows Audio Session API (default auto)])
3639 AS_IF([test "$enable_wasapi" != "no"], [
3640 AC_CHECK_HEADER([audioclient.h], [
3643 AS_IF([test "x${enable_wasapi}" != "x"], [
3644 AC_MSG_ERROR([Windows Audio Session API not found.])
3648 AM_CONDITIONAL([HAVE_WASAPI], [test "${have_wasapi}" = "yes"])
3653 AC_ARG_ENABLE([jack],
3654 AS_HELP_STRING([--disable-jack],
3655 [do not use jack (default auto)]))
3657 AS_IF([test "${enable_jack}" != "no"], [
3658 PKG_CHECK_MODULES(JACK, jack >= 1.9.7,
3661 AC_MSG_WARN([${JACK_PKG_ERRORS}, trying jack1 instead])
3663 PKG_CHECK_MODULES(JACK, jack >= 0.120.1 jack < 1.0,
3666 AS_IF([test -n "${enable_jack}"],
3667 [AC_MSG_ERROR([${JACK_PKG_ERRORS}.])],
3668 [AC_MSG_WARN([${JACK_PKG_ERRORS}.])])
3672 AM_CONDITIONAL([HAVE_JACK], [test "${have_jack}" != "no"])
3675 dnl OpenSLES Android
3677 AC_ARG_ENABLE([opensles],
3678 AS_HELP_STRING([--enable-opensles], [Android OpenSL ES audio module (default disabled)]))
3679 if test "${HAVE_ANDROID}" = "1"; then
3680 if test "${enable_opensles}" = "yes"; then
3681 AC_CHECK_HEADERS([SLES/OpenSLES.h],
3682 [ VLC_ADD_PLUGIN([opensles_android]) ],
3683 [ AC_MSG_ERROR([cannot find OpenSLES headers])] )
3690 AC_ARG_ENABLE([tizen_audio],
3691 AS_HELP_STRING([--enable-tizen-audio],
3692 [Tizen audio module (default enabled on Tizen)]),, [
3693 AS_IF([test "$HAVE_TIZEN" = "1"], [
3694 enable_tizen_audio="yes"
3697 if test "${enable_tizen_audio}" = "yes"; then
3698 AC_CHECK_HEADERS([audio_io.h],
3699 [ VLC_ADD_PLUGIN([tizen_audio]) ],
3700 [ AC_MSG_ERROR([cannot find Tizen audio_io headers])] )
3704 dnl libsamplerate plugin
3706 PKG_ENABLE_MODULES_VLC([SAMPLERATE], [], [samplerate], [Resampler with libsamplerate], [auto])
3711 PKG_ENABLE_MODULES_VLC([SOXR], [], [soxr >= 0.1.2], [SoX Resampler library], [auto])
3716 AC_ARG_ENABLE([kai],
3717 AS_HELP_STRING([--enable-kai],
3718 [support the K Audio Interface KAI (default enabled on OS/2)]),, [
3719 AS_IF([test "$SYS" = "os2"], [
3725 AS_IF([test "$enable_kai" != "no"], [
3726 AC_CHECK_HEADERS([kai.h], [
3728 AC_CHECK_LIB([kai], [main], [
3733 AC_SUBST([KAI_LIBS])
3734 AM_CONDITIONAL([HAVE_KAI], [test "${have_kai}" = "yes"])
3737 dnl chromaprint audio track fingerprinter
3739 m4_pushdef([libchromaprint_version], 0.6.0)
3740 PKG_WITH_MODULES([CHROMAPRINT],[libchromaprint >= libchromaprint_version],
3741 VLC_ADD_PLUGIN([stream_out_chromaprint]),
3742 AS_IF([test "${enable_chromaprint}" = "yes"],
3743 [AC_MSG_ERROR(Library [libchromaprint >= libchromaprint_version] needed for [chromaprint] was not found)],
3744 [AC_MSG_WARN(Library [libchromaprint >= libchromaprint_version] needed for [chromaprint] was not found)]
3746 [(Chromaprint based audio fingerprinter)],[auto])
3747 m4_popdef([libchromaprint_version])
3750 dnl Chromecast streaming support
3752 m4_pushdef([protobuf_lite_version], 2.5.0)
3753 AC_ARG_VAR(PROTOC, [protobuf compiler])
3754 AC_CHECK_PROGS(PROTOC, protoc, no)
3755 PKG_WITH_MODULES([CHROMECAST],[protobuf-lite >= protobuf_lite_version], [
3756 AS_IF([test "x${PROTOC}" != "xno"], [
3757 build_chromecast="yes"
3759 AC_MSG_ERROR(protoc compiler needed for [chromecast] was not found)
3762 AS_IF([test "${enable_chromecast}" = "yes"],
3763 AC_MSG_ERROR(Library [protobuf-lite >= protobuf_lite_version] needed for [chromecast] was not found),
3764 AC_MSG_WARN(Library [protobuf-lite >= protobuf_lite_version] needed for [chromecast] was not found)
3766 enable_chromecast="no"
3767 ], [(Chromecast streaming support)], [auto])
3768 AM_CONDITIONAL([BUILD_CHROMECAST], [test "${build_chromecast}" = "yes"])
3769 m4_popdef([protobuf_lite_version])
3772 dnl Interface plugins
3775 EXTEND_HELP_STRING([Interface plugins:])
3781 AS_HELP_STRING([--disable-qt], [Qt UI support (default enabled)]),, [
3782 AS_IF([test "${enable_vlc}" != "no"], [enable_qt="yes"])
3783 AS_IF([test "${SYS}" = "darwin"], [
3788 AS_IF([test "${enable_qt}" != "no"], [
3789 PKG_CHECK_MODULES([QT], [Qt5Core >= 5.9.0 Qt5Widgets Qt5Gui Qt5Svg], [
3790 PKG_CHECK_MODULES([QT5_X11], [Qt5X11Extras], [
3793 AC_MSG_WARN([Not building Qt Interface with X11 helpers.])
3795 QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix Qt5Core)"
3796 QT_HOST_PATH="$(eval $PKG_CONFIG --variable=host_bins Qt5Core)"
3797 QT_VERSION="$(eval $PKG_CONFIG --modversion Qt5Gui)"
3798 AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3799 AC_PATH_PROGS(RCC, [rcc-qt5 rcc], rcc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3800 AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3802 AS_IF([test -n "${enable_qt}"],[
3803 AC_MSG_ERROR([${QT_PKG_ERRORS}. If you want to build VLC without GUI, pass --disable-qt.])
3805 AC_MSG_WARN([${QT_PKG_ERRORS}.])
3811 AS_IF([test "${enable_qt}" != "no"], [
3812 ALIASES="${ALIASES} qvlc"
3814 AC_SUBST([QT_VERSION])
3815 AM_CONDITIONAL([ENABLE_QT], [test "$enable_qt" != "no"])
3816 AM_CONDITIONAL([HAVE_QT5_X11], [test "${have_qt5_x11}" = "yes"])
3819 dnl detect kde4-config patch (used for kde solids).
3821 AC_ARG_VAR([KDE4_CONFIG], [kde4-config utility])
3822 AS_IF([test "x$KDE4_CONFIG" = "x"], [
3823 KDE4_CONFIG="kde4-config"
3827 dnl Simple test for skins2 dependency
3829 AS_IF([test "$enable_qt" = "no"], [
3830 AS_IF([test "${enable_skins2}" = "yes"], [
3831 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.])
3834 AC_MSG_WARN([The skins2 module depends on the Qt interface, Qt is not built so skins2 is disabled.])
3841 AC_ARG_ENABLE([skins2],
3842 AS_HELP_STRING([--enable-skins2], [skins interface module (default auto)]))
3843 AS_IF([test "${enable_skins2}" != "no"], [
3844 have_skins_deps="yes"
3847 AS_IF([test "${SYS}" = "mingw32"], [
3848 VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -DWIN32_SKINS])
3849 VLC_ADD_LIBS([skins2],[-lgdi32 -lole32 -luuid -lmsimg32])
3851 ], [test "${SYS}" = "os2"], [
3852 VLC_ADD_CPPFLAGS([skins2],[ -DOS2_SKINS])
3855 PKG_CHECK_MODULES([XPM], [xpm],, [have_skins_deps="no"])
3856 PKG_CHECK_MODULES([XINERAMA], [xinerama],, [have_skins_deps="no"])
3857 PKG_CHECK_MODULES([XCURSOR], [xcursor],, [have_skins_deps="no"])
3858 PKG_CHECK_MODULES([XEXT], [xext],, [have_skins_deps="no"])
3859 VLC_ADD_CPPFLAGS([skins2],[${X_CFLAGS} ${XEXT_CFLAGS} ${XPM_CFLAGS} -DX11_SKINS])
3860 VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} ${XEXT_LIBS} ${XPM_LIBS} ${XINERAMA_LIBS} ${XCURSOR_LIBS} -lX11])
3863 dnl we need freetype
3864 AS_IF([test "${have_freetype}" != "yes"], [
3865 have_skins_deps="no"
3868 AS_IF([test "${have_skins_deps}" = "no"], [
3869 AS_IF([test "x${enable_skins2}" = "x"], [
3870 AC_MSG_WARN([Skins2 interface disabled due to missing dependencies.])
3872 AC_MSG_ERROR([Skins2 interface requires FreeType, libxcursor, libxpm, libxext and libxinerama])
3876 ALIASES="${ALIASES} svlc"
3880 AM_CONDITIONAL([BUILD_SKINS], [test "${enable_skins2}" = "yes"])
3882 AC_ARG_ENABLE([libtar],
3883 AS_HELP_STRING([--enable-libtar], [libtar support for skins2 (default auto)]))
3884 AS_IF([test "${enable_skins2}" = "yes" && test "${enable_libtar}" != "no"], [
3885 AC_CHECK_HEADERS([libtar.h], [
3886 VLC_ADD_LIBS([skins2],[-ltar])
3891 dnl MacOS X gui module
3893 AC_ARG_ENABLE([macosx],
3894 AS_HELP_STRING([--enable-macosx], [Mac OS X gui support (default enabled on Mac OS X)]))
3895 if test "x${enable_macosx}" != "xno" -a "${SYS}" = "darwin"
3899 dnl If possible, use xcrun to find the right ibtool
3902 AC_PATH_PROG([XCRUN], [xcrun], [no])
3903 AS_IF([test ! "x${XCRUN}" = "xno"], [
3904 AC_MSG_CHECKING([for ibtool (using xcrun)])
3905 XIB="$(eval $XCRUN -f ibtool 2>/dev/null || echo no)"
3906 AC_MSG_RESULT([${XIB}])
3908 AC_MSG_WARN([Looking for tools without using xcrun])
3911 AS_IF([test "x${XIB}" = "xno"], [
3912 AC_PATH_PROG(XIB, [ibtool], [no])
3913 AS_IF([test "x${XIB}" = "xno"], [
3914 AC_MSG_ERROR([ibtool was not found, but is required for --enable-macosx])
3918 AM_CONDITIONAL([ENABLE_MACOSX_UI], [test "$enable_macosx" != "no" -a "${SYS}" = "darwin"])
3921 dnl MacOS X sparkle update support
3923 AC_ARG_ENABLE([sparkle],
3924 AS_HELP_STRING([--enable-sparkle], [Sparkle update support for OS X (default enabled on Mac OS X)]))
3925 if test "x${enable_sparkle}" != "xno" -a "${HAVE_OSX}" = "1"
3927 if test ! -d ${CONTRIB_DIR}/Sparkle.framework -a ! -d ${CONTRIB_DIR}/Frameworks/Sparkle.framework
3929 AC_MSG_ERROR([Sparkle framework is required and was not found in ${CONTRIB_DIR}])
3932 AC_DEFINE([HAVE_SPARKLE], [1], [Define to 1 if sparkle is enabled.])
3934 AM_CONDITIONAL([HAVE_SPARKLE], [test "$enable_sparkle" != "no"])
3937 dnl MacOS X breakpad creash reporter support
3939 AC_ARG_WITH([breakpad],
3940 AS_HELP_STRING([--with-breakpad=URL], [Enable Breakpad reporter using given URL]), [], [with_breakpad=no])
3942 AS_IF([test "$with_breakpad" != "no"], [
3944 AS_IF([test "$with_breakpad" = "yes"], [
3945 AC_MSG_ERROR([You need to supply the CrashDragon Server URL as value for --with-breakpad])
3948 AS_IF([test "$HAVE_OSX" = "1"], [
3949 AC_MSG_CHECKING([for Breakpad framework])
3950 AS_IF([test ! -d ${CONTRIB_DIR}/Breakpad.framework -a \
3951 ! -d ${CONTRIB_DIR}/Frameworks/Breakpad.framework], [
3954 AC_MSG_ERROR([Breakpad framework is required and was not found in ${CONTRIB_DIR}])
3956 AC_MSG_RESULT([yes])
3959 PKG_CHECK_MODULES([BREAKPAD], [breakpad-client], [
3960 LDFLAGS="${LDFLAGS} -Wl,--build-id"
3962 AC_MSG_ERROR(["breakpad not found"])
3967 AM_CONDITIONAL([HAVE_BREAKPAD], [test "$with_breakpad" != "no"])
3968 AS_IF([test "$with_breakpad" != "no"], [
3969 AC_SUBST([BREAKPAD_URL], ["${with_breakpad}"])
3973 dnl Minimal Mac OS X module
3975 AC_ARG_ENABLE([minimal-macosx],
3976 AS_HELP_STRING([--enable-minimal-macosx], [Minimal Mac OS X support (default disabled)]))
3977 if test "${enable_minimal_macosx}" = "yes" -a "${SYS}" = "darwin"
3979 VLC_ADD_PLUGIN([minimal_macosx])
3983 dnl Mac OS X fancy dmg build tool
3985 if test "${HAVE_OSX}" = "1"
3987 AC_PATH_PROG(DMGBUILD, dmgbuild, no)
3988 AS_IF([test "x${DMGBUILD}" = "xno"], [
3989 AC_MSG_WARN([dmgbuild not found -- unable to build fancy DMGs])
3992 AM_CONDITIONAL([HAVE_DMGBUILD], [test "x$DMGBUILD" != "xno" -a "${HAVE_OSX}" = "1"])
3995 dnl VideoToolbox plugins
3996 AC_CHECK_HEADERS([VideoToolbox/VideoToolbox.h], [
3997 VLC_ADD_PLUGIN([videotoolbox])
3998 VLC_ADD_PLUGIN([cvpx])
4002 dnl AudioToolbox MIDI plugin
4003 AC_CHECK_HEADERS([AudioToolbox/AudioToolbox.h], [
4004 VLC_ADD_PLUGIN([audiotoolboxmidi])
4010 AC_ARG_ENABLE([ncurses],
4011 AS_HELP_STRING([--disable-ncurses],[ncurses text-based interface (default auto)]))
4013 AS_IF([test "${enable_ncurses}" != "no"] ,[
4014 PKG_CHECK_MODULES([NCURSES], [ncursesw], [
4016 ALIASES="${ALIASES} nvlc"
4018 AS_IF([test -n "${enable_ncurses}"], [
4019 AC_MSG_ERROR([${NCURSES_PKG_ERRORS}.])
4023 AM_CONDITIONAL([HAVE_NCURSES], [test "${have_ncurses}" = "yes"])
4028 AC_ARG_ENABLE([lirc],
4029 AS_HELP_STRING([--enable-lirc], [lirc support (default disabled)]))
4031 AS_IF([test "${enable_lirc}" = "yes"], [
4032 AC_CHECK_HEADER(lirc/lirc_client.h, [
4033 AC_CHECK_LIB([lirc_client], [lirc_init], [
4038 AM_CONDITIONAL([HAVE_LIRC], [test "${have_lirc}" = "yes"])
4043 PKG_CHECK_MODULES([BITSTREAM], [bitstream > 1.4],[have_bitstream="yes"], [have_bitstream="no"])
4044 AM_CONDITIONAL([HAVE_BITSTREAM], [test "${have_bitstream}" = "yes"])
4049 PKG_ENABLE_MODULES_VLC([SRT], [access_srt access_output_srt], [srt >= 1.2.2], [SRT input/output plugin], [auto], [], [], [-DENABLE_SRT])
4051 EXTEND_HELP_STRING([Visualisations and Video filter plugins:])
4053 dnl goom visualization plugin
4055 PKG_ENABLE_MODULES_VLC([GOOM], [], [libgoom2], [goom visualization plugin], [auto])
4058 dnl libprojectM visualization plugin
4060 AC_ARG_ENABLE([projectm],
4061 AS_HELP_STRING([--enable-projectm], [projectM visualization plugin (default enabled)]))
4062 AS_IF([test "${enable_projectm}" != "no"],
4064 PKG_CHECK_MODULES(PROJECTM, libprojectM,
4066 VLC_ADD_PLUGIN([projectm])
4067 PKG_CHECK_EXISTS([libprojectM >= 2.0.0],
4068 [ AC_DEFINE([HAVE_PROJECTM2], 1, [Define to 1 if using libprojectM 2.x]) ],
4069 [ AC_MSG_WARN( [Using libprojectM version 1] )
4072 AC_MSG_WARN([${PROJECTM_PKG_ERRORS}.])
4077 dnl Vovoid VSXu visualization plugin
4079 AC_ARG_ENABLE([vsxu],
4080 AS_HELP_STRING([--enable-vsxu], [Vovoid VSXu visualization plugin (default auto)]))
4081 AS_IF([test "${enable_vsxu}" != "no"],
4083 PKG_CHECK_MODULES(VSXU, libvsxu,
4085 VLC_ADD_PLUGIN([vsxu])
4087 AC_MSG_WARN([${VSXU_PKG_ERRORS}.])
4091 EXTEND_HELP_STRING([Service Discovery plugins:])
4093 dnl Avahi-Zeroconf services discovery
4094 PKG_ENABLE_MODULES_VLC([AVAHI], [], [avahi-client >= 0.6], [Zeroconf services discovery], [auto])
4097 dnl libudev services discovery
4098 PKG_ENABLE_MODULES_VLC([UDEV], [], [libudev >= 142], [Linux udev services discovery], [auto])
4101 dnl MTP devices services discovery
4102 PKG_ENABLE_MODULES_VLC([MTP], [mtp access_mtp], [libmtp >= 1.0.0], [MTP devices support], [auto])
4105 dnl UPnP Plugin (Intel SDK)
4107 PKG_ENABLE_MODULES_VLC([UPNP], [upnp], [libupnp], [Intel UPNP SDK],[auto])
4110 dnl mDNS using libmicrodns
4112 PKG_ENABLE_MODULES_VLC([MICRODNS], [], [microdns], [mDNS services discovery], [auto])
4115 EXTEND_HELP_STRING([Misc options:])
4120 PKG_ENABLE_MODULES_VLC([LIBXML2], [xml], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
4126 AC_ARG_ENABLE([libgcrypt],
4127 AS_HELP_STRING([--disable-libgcrypt], [gcrypt support (default enabled)]))
4128 AC_ARG_VAR([GCRYPT_CFLAGS], [C compiler flags for gcrypt])
4129 AC_ARG_VAR([GCRYPT_LIBS], [linker flags flags for gcrypt])
4131 # require libgcrypt >= 1.6.0
4132 AS_IF([test "${enable_libgcrypt}" != "no"], [
4133 AC_CACHE_CHECK([for gcrypt 1.6.0 or later], [ac_cv_lib_gcrypt], [
4135 CFLAGS="${CFLAGS} ${GCRYPT_CFLAGS}"
4136 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
4137 [#include <gcrypt.h>
4138 #if GCRYPT_VERSION_NUMBER < 0x010600
4141 ac_cv_lib_gcrypt=yes
4148 AS_IF([test "${ac_cv_lib_gcrypt}" = "yes"], [
4149 AC_DEFINE([HAVE_GCRYPT], 1, [Defined if having gcrypt])
4151 AS_IF([test "${enable_libgcrypt}" = "yes"], [
4152 AC_MSG_ERROR([libgcrypt version 1.6.0 or higher not found. Install libgcrypt or pass --disable-libgcrypt.])
4157 AS_IF([test -z "$GCRYPT_LIBS"], [
4158 GCRYPT_LIBS="-lgcrypt -lgpg-error"
4161 AC_SUBST([GCRYPT_CFLAGS])
4162 AC_SUBST([GCRYPT_LIBS])
4163 AM_CONDITIONAL([HAVE_GCRYPT], [test "${ac_cv_lib_gcrypt}" = "yes"])
4168 AC_ARG_ENABLE([gnutls],
4169 AS_HELP_STRING([--enable-gnutls], [GNU TLS TLS/SSL support (default enabled)]))
4170 AS_IF([test "${enable_gnutls}" != "no"], [
4171 PKG_CHECK_MODULES(GNUTLS, [gnutls >= 3.3.6], [
4172 VLC_ADD_PLUGIN([gnutls])
4174 AS_IF([test -n "${enable_gnutls}"], [
4175 AC_MSG_ERROR([${GNUTLS_PKG_ERRORS}.)])
4184 AC_ARG_ENABLE([taglib],
4185 AS_HELP_STRING([--disable-taglib],
4186 [do not use TagLib (default enabled)]))
4187 AS_IF([test "${enable_taglib}" != "no"], [
4188 PKG_CHECK_MODULES(TAGLIB, taglib >= 1.9, [
4189 VLC_ADD_PLUGIN([taglib])
4191 AC_MSG_WARN([${TAGLIB_PKG_ERRORS}.])])
4197 PKG_ENABLE_MODULES_VLC([SECRET], [], [libsecret-1 >= 0.18], [use libsecret for keystore], [auto])
4202 AC_ARG_ENABLE([kwallet],
4203 AS_HELP_STRING([--enable-kwallet],
4204 [use kwallet (via D-Bus) for keystore (default enabled)]))
4205 AS_IF([test "${enable_kwallet}" != "no" -a "${have_dbus}" = "yes"], [
4206 VLC_ADD_PLUGIN([kwallet])
4210 dnl update checking system
4212 AC_ARG_ENABLE([update-check],
4213 AS_HELP_STRING([--enable-update-check], [update checking system (default disabled)]))
4214 if test "${enable_update_check}" = "yes"
4216 AS_IF([test "${ac_cv_lib_gcrypt}" != "yes"],[
4217 AC_MSG_ERROR([libgcrypt is required for update checking system]) ])
4219 AM_CONDITIONAL([UPDATE_CHECK], [test "${enable_update_check}" = "yes"])
4222 dnl OS X notification plugin
4224 AC_ARG_ENABLE([osx_notifications],
4225 AS_HELP_STRING([--enable-osx-notifications],
4226 [macOS notification plugin (default disabled)]),,
4227 [enable_osx_notifications=no])
4228 AS_IF([test "${enable_osx_notifications}" != "no"], [
4229 VLC_ADD_PLUGIN([osx_notifications])
4233 dnl Libnotify notification plugin
4235 PKG_ENABLE_MODULES_VLC([NOTIFY], [], [libnotify gtk+-3.0], [libnotify notification], [auto])
4237 PKG_ENABLE_MODULES_VLC([MEDIALIBRARY], [medialibrary], [medialibrary], (medialibrary support), [auto])
4240 dnl Endianness check
4243 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
4244 DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
4248 AC_SUBST([DEFS_BIGENDIAN])
4251 dnl Where to install KDE solid .desktop
4253 AC_ARG_WITH(kde-solid,
4254 AS_HELP_STRING([--with-kde-solid=PATH],
4255 [KDE Solid actions directory (auto)]),, [
4257 if test "${SYS}" != "mingw32" -a "${SYS}" != "darwin" ; then
4258 with_kde_solid="yes"
4262 AS_IF([test "${with_kde_solid}" != "no"], [
4263 AS_IF([test "${with_kde_solid}" = "yes"], [
4264 kde4datadir="`${KDE4_CONFIG} --install data`"
4265 AS_IF([test "x$kde4datadir" = "x"], [kde4datadir='${datadir}/kde4/apps'])
4266 soliddatadir="${kde4datadir}/solid/actions"
4268 soliddatadir="${with_kde_solid}"
4271 AC_SUBST([soliddatadir])
4272 AM_CONDITIONAL([KDE_SOLID], [test "x${soliddatadir}" != "x"])
4275 dnl Find tools for win32 packaging
4277 AS_IF([test "${SYS}" = "mingw32"], [
4279 dnl Find makensis required to build the NSIS installer
4281 nsis_major_required="3"
4282 nsis_version_ok="no"
4283 AC_PATH_PROG([MAKENSIS], [makensis], [no])
4284 AS_IF([test "$MAKENSIS" != "no"], [
4286 AC_MSG_CHECKING([makensis version])
4287 nsis_version=$($MAKENSIS -VERSION)
4288 AC_MSG_RESULT([$nsis_version])
4289 nsis_version_major=$(echo "$nsis_version" | awk -F \. '{print $1}' | sed 's/v//')
4290 # Check if major version is a valid number
4291 AS_IF([test -n "$nsis_version_major" && \
4292 test "$nsis_version_major" -eq "$nsis_version_major" 2> /dev/null], [
4293 # Do the version check using major version
4294 AS_IF([test "$nsis_version_major" -lt "$nsis_major_required"], [
4295 AC_MSG_WARN([makensis too old, (needs ${nsis_major_required}.x, have ${nsis_version_major}.x)])
4297 nsis_version_ok="yes"
4300 AC_MSG_WARN([failed to check the makensis version])
4306 AC_PATH_PROG([SEVENZIP], [7z], [7z])
4308 AM_CONDITIONAL([HAVE_MAKENSIS], [test "x$MAKENSIS" != "xno" && test "$nsis_version_ok" = "yes"])
4311 dnl Check wether we have the PROCESS_MITIGATION_IMAGE_LOAD_POLICY
4312 dnl It should only be available when building for win10, but some SDKs define it unconditionnaly
4314 if test "${SYS}" = "mingw32"; then
4315 AC_CHECK_TYPES([PROCESS_MITIGATION_IMAGE_LOAD_POLICY],,,[#include <windows.h>])
4318 EXTEND_HELP_STRING([Components:])
4323 AC_ARG_ENABLE([vlc],
4324 AS_HELP_STRING([--enable-vlc], [build the VLC media player (default enabled)]))
4325 AM_CONDITIONAL([BUILD_VLC], [test "${enable_vlc}" != "no"])
4328 dnl Fuzzer (at the end in order to don't mess dependencies FLAGS)
4330 AS_VAR_IF(with_libfuzzer, no, [], [
4331 LIBS="-lstdc++ ${LIBM} -L${with_libfuzzer} -lFuzzer"
4332 AX_CHECK_COMPILE_FLAG(-fsanitize-coverage=trace-pc-guard, [
4333 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc-guard])
4334 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc-guard], [CXXFLAGS])
4335 AX_APPEND_COMPILE_FLAGS([-fsanitize-coverage=trace-cmp])
4336 AX_APPEND_COMPILE_FLAGS([-fsanitize-coverage=trace-cmp], [CXXFLAGS])
4338 AX_CHECK_COMPILE_FLAG(-fsanitize-coverage=trace-pc, [
4339 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc])
4340 AX_APPEND_FLAG([-fsanitize-coverage=trace-pc], [CXXFLAGS])
4342 AC_MSG_ERROR([Sanitizer coverage not supported by your compiler])
4348 dnl Stuff used by the program
4350 VERSION_MESSAGE="${VERSION} ${CODENAME}"
4351 COPYRIGHT_MESSAGE="Copyright © ${COPYRIGHT_YEARS} the VideoLAN team"
4352 AC_DEFINE_UNQUOTED([VERSION_MESSAGE], "${VERSION_MESSAGE}", [Simple version string])
4353 AC_DEFINE_UNQUOTED([COPYRIGHT_MESSAGE], "${COPYRIGHT_MESSAGE}", [Copyright string])
4354 AC_DEFINE_UNQUOTED([COPYRIGHT_YEARS], "${COPYRIGHT_YEARS}", [The copyright years])
4355 AC_DEFINE_UNQUOTED([CONFIGURE_LINE], "${CONFIGURE_LINE}", [The ./configure command line])
4356 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_MAJOR],${VERSION_MAJOR}, [version major number])
4357 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_MINOR],${VERSION_MINOR}, [version minor number])
4358 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_REVISION],${VERSION_REVISION}, [version revision number])
4359 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_EXTRA],${VERSION_EXTRA}, [version extra number])
4360 AC_DEFINE_UNQUOTED([PACKAGE_VERSION_DEV],"${VERSION_DEV}", [version development string])
4361 AC_SUBST([COPYRIGHT_MESSAGE])
4362 AC_SUBST([VERSION_MESSAGE])
4363 AC_SUBST([VERSION_MAJOR])
4364 AC_SUBST([VERSION_MINOR])
4365 AC_SUBST([VERSION_REVISION])
4366 AC_SUBST([VERSION_EXTRA])
4367 AC_SUBST([COPYRIGHT_YEARS])
4368 AC_DEFINE_UNQUOTED([VLC_COMPILE_BY], "`whoami|sed -e 's/\\\/\\\\\\\/g'`", [user who ran configure])
4369 AC_DEFINE_UNQUOTED([VLC_COMPILE_HOST], "`hostname -f 2>/dev/null || hostname`", [host which ran configure])
4370 AC_DEFINE_UNQUOTED([VLC_COMPILER], "`$CC -v 2>&1 | tail -n 1 | sed -e 's/ *$//'`", [compiler])
4372 dnl Handle substvars that use $(top_srcdir)
4374 CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS}"
4377 dnl Configuration is finished
4387 AC_SUBST([WINE_SDK_PATH])
4389 AC_SUBST([AM_CPPFLAGS])
4390 AC_SUBST([MACOSX_DEPLOYMENT_TARGET])
4391 AC_SUBST([FILE_LIBVLCCORE_DLL])
4392 AC_SUBST([FILE_LIBVLC_DLL])
4406 modules/hw/mmal/Makefile
4407 share/vlc.appdata.xml.in
4410 AM_COND_IF([HAVE_WIN32], [
4412 extras/package/win32/NSIS/spad.nsi
4413 extras/package/win32/NSIS/vlc.win32.nsi
4414 extras/package/win32/msi/config.wxi
4418 AM_COND_IF([HAVE_DARWIN], [
4420 modules/gui/macosx/UI/InfoPlist.strings:modules/gui/macosx/Resources/InfoPlist.strings.in
4421 share/macosx/Info.plist:share/Info.plist.in
4425 dnl Generate makefiles
4428 dnl Do we have to use make or gmake ?
4429 if make --version 2>&1|grep -q GNU
4431 # GNU make, all seems good
4434 # Known GNU make alias (on BSD)
4437 dnl Shortcut to nice compile message
4438 if test -n $SHELL; then
4439 SHELL=${CONFIG_SHELL-/bin/sh}
4442 compile_top_srcdir=`sed -ne "s/^top_srcdir *= *//p" < Makefile`
4446 export PATH=\"$PATH\" LANG=C
4447 ($MAKE V=1 \$@ 2>&1 || touch .error\$\$)| $compile_top_srcdir/extras/buildsystem/make.pl
4448 test -f .error\$\$ && ERROR=1
4450 exit \$ERROR" >compile
4454 libvlc configuration
4455 --------------------
4456 version : ${VERSION}
4458 architecture : ${ARCH}
4459 optimizations : ${enable_optimizations}"
4460 if test "${enable_vlc}" != "no"; then
4461 echo "vlc aliases :${ALIASES}"
4463 echo "build vlc executable : no"
4466 To build vlc and its plugins, type \`$MAKE', or \`./compile' if you like nice colors."