1 dnl Autoconf settings for vlc
3 AC_COPYRIGHT([Copyright 1999-2017 VLC authors and VideoLAN])
5 AC_INIT(vlc, 3.0.0-git)
15 CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
17 COPYRIGHT_YEARS="1996-2017"
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])
36 dnl vlcincludedir="\${includedir}/\${PKGDIR}"
37 dnl AC_SUBST(vlcincludedir)
38 vlcdatadir="\${datadir}/\${PKGDIR}"
40 vlclibdir="\${libdir}/\${PKGDIR}"
47 AC_USE_SYSTEM_EXTENSIONS
49 AC_DEFINE([_FORTIFY_SOURCE], 2, [Define to 2 to get glibc warnings.])
50 AC_DEFINE([_FILE_OFFSET_BITS], 64, [Define to 64 for large files support.])
56 AC_DEFINE([_THREAD_SAFE],, [Same as _REENTANT for some other OSes.])
57 AC_DEFINE([__LIBVLC__],, [Define within the LibVLC source code tree.])
58 AC_DEFINE([WIN32_LEAN_AND_MEAN],, [Define to limit the scope of <windows.h>.])
64 _AM_DEPENDENCIES([OBJC])
70 AC_ARG_VAR([DESKTOP_FILE_VALIDATE], [Validator for desktop entry files])
71 AC_CHECK_PROGS(DESKTOP_FILE_VALIDATE, [${DESKTOP_FILE_VALIDATE} desktop-file-validate], :)
72 AC_ARG_VAR([BUILDCC], [Build system C11 or C99 compiler command])
73 AC_CHECK_PROGS(BUILDCC, [c11-gcc c11 c99-gcc c99], [false])
74 AS_IF([test "$BUILDCC" = "false"], [
75 AC_MSG_ERROR([Cannot find native C99 compiler: please define BUILDCC.])
78 dnl Check for compiler properties
82 AX_CXX_COMPILE_STDCXX_11(noext, mandatory)
84 dnl Extend the --help string at the current spot.
85 AC_DEFUN([EXTEND_HELP_STRING], [m4_divert_once([HELP_ENABLE], [$1])])
87 dnl Allow binary package maintainer to pass a custom string to avoid
89 AC_ARG_WITH(binary-version,
90 AS_HELP_STRING([--with-binary-version=STRING],
91 [To avoid plugins cache problem between binary version]),[],[])
92 AS_IF([test -n "${with_binary_version}"],[
93 AC_DEFINE_UNQUOTED([DISTRO_VERSION],["${with_binary_version}"],
94 [Binary specific version])
98 dnl Check the operating system
114 CFLAGS="${CFLAGS} -pthread"
118 CFLAGS="${CFLAGS} -pthread"
119 CPPFLAGS="${CPPFLAGS} -I/usr/local/include"
120 LDFLAGS="${LDFLAGS} -L/usr/local/lib"
125 CPPFLAGS="${CPPFLAGS} -I/usr/local/include -I/usr/X11R6/include"
126 LDFLAGS="${LDFLAGS} -L/usr/local/lib -L/usr/X11R6/lib/"
136 dnl Force gcc "-arch" flag
140 ARCH_flag="-arch i386"
143 ARCH_flag="-arch ppc64"
146 ARCH_flag="-arch ppc"
149 ARCH_flag="-arch x86_64"
152 ac_cv_c_bigendian="no"
153 ac_cv_c_attribute_packed="no"
158 CFLAGS="${CFLAGS} -D_INTL_REDIRECT_MACROS -std=gnu11 ${ARCH_flag}"
159 CXX="${CXX} -stdlib=libc++ -std=c++11"
160 CXXFLAGS="${CXXFLAGS} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"
161 CPPFLAGS="${CPPFLAGS} ${ARCH_flag}"
162 OBJCFLAGS="${OBJCFLAGS} -D_INTL_REDIRECT_MACROS -std=gnu11 ${ARCH_flag} -Werror=partial-availability"
163 LDFLAGS="${LDFLAGS} -Wl,-headerpad_max_install_names ${ARCH_flag}"
164 VLC_ADD_LIBS([libvlc vlc],[-Wl,-undefined,dynamic_lookup,-framework,AppKit])
165 VLC_ADD_LIBS([libvlccore],[-Wl,-framework,CoreFoundation,-framework,CoreServices])
168 [#import <TargetConditionals.h>
176 [#import <TargetConditionals.h>
185 dnl Allow binaries created on Lion to run on earlier releases
187 [#import <Cocoa/Cocoa.h>
188 #ifdef MAC_OS_X_VERSION_10_7
191 [AC_MSG_RESULT([yes])
192 AC_LIBOBJ([getdelim])
194 AC_LIBOBJ([strnlen])],)
197 dnl Handle Mac OS X SDK flags
199 AC_ARG_WITH(macosx-sdk,
200 [AS_HELP_STRING([--with-macosx-sdk=DIR],
201 [compile using the SDK in DIR])])
202 if test "${with_macosx_sdk}" != "" ; then
203 test ! -d "${with_macosx_sdk}" && AC_MSG_ERROR([SDK "${with_macosx_sdk}" not found])
204 CPP="${CPP} -isysroot ${with_macosx_sdk}"
205 CC="${CC} -isysroot ${with_macosx_sdk}"
206 CXX="${CXX} -isysroot ${with_macosx_sdk}"
207 OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
208 LD="${LD} -syslibroot ${with_macosx_sdk}"
210 AC_ARG_WITH(macosx-version-min,
211 [AS_HELP_STRING([--with-macosx-version-min=VERSION],
212 [compile for Mac OS X VERSION and above])])
213 if test "${with_macosx_version_min}" != "" ; then
214 CPP="${CPP} -mmacosx-version-min=${with_macosx_version_min}"
215 CC="${CC} -mmacosx-version-min=${with_macosx_version_min}"
216 CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
217 OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
218 LD="${LD} -mmacosx_version_min=${with_macosx_version_min}"
221 *mingw32* | *cygwin* | *wince* | *mingwce*)
222 dnl Force libtool to not link to (shared) libgcc_s when detecting C++ dependencies
223 dnl When doing this test with -static-libgcc it will link on (static) libgcc_eh
224 CXXFLAGS="${CXXFLAGS} -static-libgcc"
225 AC_CHECK_TOOL(WINDRES, windres, :)
226 AC_CHECK_TOOL(OBJCOPY, objcopy, :)
227 AH_TOP([#if defined(_WIN32) && !defined(_WIN32_WINNT)])
228 AH_TOP([# define _WIN32_WINNT 0x0502 /* Windows XP SP2 */])
230 AC_DEFINE([_WIN32_IE], 0x0600, [Define to '0x0600' for IE 6.0 (and shell) APIs.])
231 AC_DEFINE([_UNICODE], [1], [Define to 1 for Unicode (Wide Chars) APIs.])
232 AC_DEFINE([UNICODE], [1], [Define to 1 for Unicode (Wide Chars) APIs.])
233 AC_DEFINE([_ISOC99_SOURCE], [1], [Extensions to ISO C89 from ISO C99.])
234 AC_DEFINE([_ISOC11_SOURCE], [1], [Extensions to ISO C99 from ISO C11.])
235 AC_DEFINE([_POSIX_SOURCE], [1], [IEEE Std 1003.1.])
236 AC_DEFINE([_POSIX_C_SOURCE], [200809L], [IEEE Std 1003.1.])
237 AC_DEFINE([_XOPEN_SOURCE], [700], [POSIX and XPG 7th edition])
238 AC_DEFINE([_XOPEN_SOURCE_EXTENDED], [1], [XPG things and X/Open Unix extensions.])
239 AC_DEFINE([_BSD_SOURCE], [1], [ISO C, POSIX, and 4.3BSD things.])
240 AC_DEFINE([_SVID_SOURCE], [1], [ISO C, POSIX, and SVID things.])
247 dnl Check if we are using the mno-cygwin mode in which case we are
248 dnl actually dealing with a mingw32 compiler.
253 SYS=mingw32, AC_MSG_ERROR([VLC requires -mno-cygwin]))
257 if test "${SYS}" = "mingw32"; then
259 LDFLAGS="${LDFLAGS} -Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase"
261 AC_CHECK_PROGS(U2D, [unix2dos todos], unix2dos)
262 ac_default_prefix="`pwd`/_win32"
263 DESTDIR="`pwd`/_win32/"
266 dnl NSIS/MSI Installer prefix and WIN64
272 PROGRAMFILES="PROGRAMFILES64"
273 LDFLAGS="${LDFLAGS} -Wl,--high-entropy-va -Wl,--image-base,0x140000000"
277 PROGRAMFILES="PROGRAMFILES"
280 AC_SUBST(WINDOWS_ARCH)
281 AC_SUBST(PROGRAMFILES)
296 LDFLAGS="${LDFLAGS} -Zomf -Zbin-files -Zargs-wild -Zhigh-mem"
297 AC_LIBOBJ([freeaddrinfo])
298 AC_LIBOBJ([gai_strerror])
302 AC_DEFINE([_XOPEN_SOURCE], [700], [POSIX and XPG 7th edition])
313 AC_ARG_ENABLE(winstore_app,
314 AS_HELP_STRING([--enable-winstore-app],
315 [Build targetted for Windows Store apps (default disabled)]))
318 AS_IF([test "${SYS}" = "mingw32"],[
320 AS_IF([test "${enable_winstore_app}" = "yes"], [
323 VLC_ADD_LIBS([libvlccore], [-lruntimeobject])
324 AC_LIBOBJ([gai_strerror])
328 AC_DEFINE_UNQUOTED(VLC_WINSTORE_APP, ${vlc_winstore_app}, [Define to 1 if you want to build for Windows Store apps])
330 AM_CONDITIONAL(HAVE_LINUX, test "${SYS}" = "linux")
331 AM_CONDITIONAL(HAVE_OS2, test "${SYS}" = "os2")
333 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
334 AM_CONDITIONAL(HAVE_IOS, test "${HAVE_IOS}" = "1")
335 AM_CONDITIONAL(HAVE_OSX, test "${HAVE_OSX}" = "1")
336 AM_CONDITIONAL(HAVE_TVOS, test "${HAVE_TVOS}" = "1")
338 AM_CONDITIONAL(HAVE_NACL, test "${SYS}" = "nacl")
340 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
341 AM_CONDITIONAL(HAVE_WIN64, test "${HAVE_WIN64}" = "1") dnl Only used for the packaging
342 AM_CONDITIONAL([HAVE_WINSTORE], [test "$vlc_winstore_app" = "1"])
343 AM_CONDITIONAL([HAVE_WIN32_DESKTOP], [test "${SYS}" = "mingw32" -a "$vlc_winstore_app" = "0"])
346 dnl Sadly autoconf does not think about testing foo.exe when ask to test
347 dnl for program foo on win32
348 case "${build_os}" in
350 ac_executable_extensions=".exe"
359 AC_SUBST(BUILDEXEEXT)
361 dnl Android is linux, but a bit different
362 AS_IF([test "$SYS" = linux],[
363 AC_MSG_CHECKING([for an Android system])
364 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
365 [[#ifndef __ANDROID__
376 AM_CONDITIONAL(HAVE_ANDROID, test "${HAVE_ANDROID}" = "1")
378 dnl Tizen (minimum SDK version: 2.3)
379 AS_IF([test "$SYS" = linux],[
380 AC_MSG_CHECKING([for Tizen])
381 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
386 AC_DEFINE([HAVE_TIZEN_SDK], [1], [Define to 1 if vlc is built against Tizen SDK])
392 AM_CONDITIONAL(HAVE_TIZEN, test "${HAVE_TIZEN}" = "1")
395 dnl Check for the contrib directory
398 [AS_HELP_STRING([--with-contrib[=DIR]],
399 [search for 3rd party libraries in DIR/include and DIR/lib])
401 AC_MSG_CHECKING([for 3rd party libraries path])
402 AS_IF([test -z "${with_contrib}" || test "${with_contrib}" = "yes"], [
403 CONTRIB_DIR="${srcdir}/contrib/${host}"
404 AS_IF([test ! -d "${CONTRIB_DIR}"], [
405 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
406 CONTRIB_DIR="${srcdir}/contrib/`$CC -dumpmachine`"
407 AS_IF([test ! -d "${CONTRIB_DIR}"], [
408 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
410 AC_MSG_RESULT([not found])
414 AS_IF([test "${with_contrib}" != "no"], [
415 CONTRIB_DIR="${with_contrib}"
418 AC_MSG_RESULT([disabled])
421 AS_IF([test -n "${CONTRIB_DIR}"], [
422 AS_IF([test -d "${CONTRIB_DIR}/lib"],[
423 CONTRIB_DIR=`cd "${CONTRIB_DIR}" && pwd`
425 echo "${CONTRIB_DIR}/lib not found" >&AS_MESSAGE_LOG_FD
427 AC_MSG_RESULT([not usable])
431 AS_IF([test -n "${CONTRIB_DIR}"], [
432 AC_MSG_RESULT([${CONTRIB_DIR}])
433 CPPFLAGS="${CPPFLAGS} -I${CONTRIB_DIR}/include"
434 CFLAGS="${CFLAGS} -I${CONTRIB_DIR}/include"
435 CXXFLAGS="${CXXFLAGS} -I${CONTRIB_DIR}/include"
436 OBJCFLAGS="${OBJCFLAGS} -I${CONTRIB_DIR}/include -F${CONTRIB_DIR} -F${CONTRIB_DIR}/Frameworks"
437 export PKG_CONFIG_PATH="${CONTRIB_DIR}/lib/pkgconfig:$PKG_CONFIG_PATH"
438 LDFLAGS="${LDFLAGS} -L${CONTRIB_DIR}/lib"
440 AS_IF([test -z "$LUAC"], [
441 dnl Old contribs mixed cross-tools and cross-compiled executables
442 AS_IF([test -x "${CONTRIB_DIR}/bin/luac${BUILDEXEEXT}"], [
443 LUAC="${CONTRIB_DIR}/bin/luac${BUILDEXEEXT}"
446 dnl Newer contribs follow usual name space rules
447 AS_IF([test -x "${CONTRIB_DIR}/../bin/${host_alias}-luac${BUILDEXEEXT}"], [
448 LUAC="${CONTRIB_DIR}/../bin/${host_alias}-luac${BUILDEXEEXT}"
452 AS_IF([test "${SYS}" = "darwin"], [
453 export LD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$LD_LIBRARY_PATH"
454 export DYLD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$DYLD_LIBRARY_PATH"
457 AS_IF([test -n "${with_contrib}" && test "${with_contrib}" != "no"], [
458 AC_MSG_ERROR([Third party libraries not found!])
461 AC_SUBST(CONTRIB_DIR)
463 dnl Add extras/tools to the PATH
464 TOOLS_DIR="${srcdir}/extras/tools/build/bin"
465 AS_IF([test -d "${TOOLS_DIR}"], [
466 TOOLS_DIR=`cd "${TOOLS_DIR}" && pwd`
467 export PATH="${TOOLS_DIR}":$PATH
472 dnl It's very bad, but our former custom system was worst
476 dnl override platform specific check for dependent libraries
477 dnl otherwise libtool linking of shared libraries will
478 dnl fail on anything other than pass_all.
479 AC_CACHE_VAL(lt_cv_deplibs_check_method,
480 [lt_cv_deplibs_check_method=pass_all])
482 LT_INIT([dlopen win32-dll shared disable-static])
484 LT_LANG([Windows Resource])
488 lt_cv_deplibs_check_method=pass_all
490 AS_IF([test "${enable_shared}" = "no" -a "${enable_vlc}" != "no"], [
491 AC_MSG_ERROR([VLC is based on plugins. Shared libraries cannot be disabled.])
497 AM_GNU_GETTEXT_VERSION([0.19.8])
498 AM_GNU_GETTEXT([external], [need-formatstring-macros])
507 AS_IF([test "${SYS}" = "mingw32"], [
509 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
510 #if !defined(__MINGW32__)
511 # error Not compiling with mingw
515 dnl Check for broken versions of mingw-runtime compatability library
516 AC_MSG_CHECKING(for broken mingw-runtime)
517 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
519 #if defined(__MINGW64_VERSION_MAJOR)
520 # if __MINGW64_VERSION_MAJOR < 3
521 # error Attempting to use mingw-runtime with broken vsnprintf support
523 #elif __MINGW32_MAJOR_VERSION == 3 && __MINGW32_MINOR_VERSION < 15
524 # error Attempting to use mingw-runtime with broken vsnprintf support
529 AC_MSG_RESULT([present])
530 AC_MSG_ERROR([LibVLC requires mingw-runtime version 3.15 or higher, or mingw-w64 version 3.0 or higher!])
533 dnl force use of mingw provided c99 *printf over msvcrt
534 CPPFLAGS="${CPPFLAGS} -D__USE_MINGW_ANSI_STDIO=1"
536 dnl Add WinMainCRTStartup entry point to show it's a WinMain application
537 VLC_ADD_LDFLAGS([vlc],[-mwindows])
539 dnl Check for the need to include the mingwex lib for mingw32
541 AC_CHECK_LIB(mingwex,opendir,
542 AC_CHECK_LIB(mingw32,opendir,,
543 [VLC_ADD_LIBS([libvlccore],[-lmingwex])])
547 AC_MSG_RESULT([Not compiling with mingw])
550 dnl Check for fnative-struct or mms-bitfields support for mingw32
552 CFLAGS="${CFLAGS} -mms-bitfields"
553 CXXFLAGS="${CXXFLAGS} -mms-bitfields"
554 AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
555 [ac_cv_c_mms_bitfields],
556 [AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
557 if test "${ac_cv_c_mms_bitfields}" = "no"; then
559 CFLAGS="${CFLAGS} -fnative-struct"
560 CXXFLAGS="${CXXFLAGS} -fnative-struct"
561 AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
562 [ac_cv_c_fnative_struct],
563 [AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
564 "${ac_cv_c_fnative_struct}" = "no" && VLC_RESTORE_FLAGS
570 dnl Buggy glibc prevention. Purposedly not cached.
571 dnl See sourceware.org bugs 5058 and 5443.
572 dnl Ubuntu alone has 20 bug numbers for this...
574 AC_MSG_CHECKING(for buggy GNU/libc versions)
575 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
577 #if defined (__GLIBC__) && (__GLIBC__ == 2) \
578 && (__GLIBC_MINOR__ >= 5) && (__GLIBC_MINOR__ <= 7)
579 # error GNU/libc with dcgettext killer bug!
582 AC_MSG_RESULT([not present])
584 AC_MSG_RESULT([found])
585 AS_IF([test "x${enable_nls}" != "xno"], [
586 AC_MSG_ERROR([Buggy GNU/libc (version 2.5 - 2.7) present. VLC would crash; there is no viable
587 work-around for this. Check with your distribution vendor on how to update the
588 glibc run-time. Alternatively, build with --disable-nls.])
592 dnl Plugin compilation stuff
596 dnl Check for system libs needed
599 dnl Check for usual libc functions
600 AC_CHECK_FUNCS([daemon fcntl flock fstatvfs fork getenv getpwuid_r isatty lstat memalign mkostemp mmap open_memstream openat pread posix_fadvise posix_madvise posix_memalign setlocale stricmp strnicmp strptime tdestroy uselocale])
601 AC_REPLACE_FUNCS([aligned_alloc atof atoll dirfd fdopendir ffsll flockfile fsync getdelim getpid lldiv memrchr nrand48 poll recvmsg rewind sendmsg setenv strcasecmp strcasestr strdup strlcpy strndup strnlen strnstr strsep strtof strtok_r strtoll swab tfind timegm timespec_get strverscmp pathconf])
602 AC_REPLACE_FUNCS([gettimeofday])
603 AC_CHECK_FUNC(fdatasync,,
604 [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
607 VLC_REPLACE_DECL([realpath], [#include <stdlib.h>])
609 dnl mingw64 implements those as static inline, not functions with C linkage
610 VLC_REPLACE_DECL([asprintf], [#include <stdio.h>])
611 VLC_REPLACE_DECL([vasprintf], [#include <stdio.h>])
612 VLC_REPLACE_DECL([gmtime_r], [#include <time.h>])
613 VLC_REPLACE_DECL([localtime_r], [#include <time.h>])
615 dnl C11 static_assert()
616 AC_MSG_CHECKING([for static_assert in assert.h])
617 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <assert.h>], [
618 static_assert(1, "The impossible happened.");
621 AC_DEFINE([HAVE_STATIC_ASSERT], [1], [Define to 1 if <assert.h> defines static_assert.])
626 # Windows CE does not have strcoll()
629 dnl Check for non-standard system calls
632 AC_CHECK_FUNCS([accept4 pipe2 eventfd vmsplice sched_getaffinity recvmmsg])
635 AC_CHECK_FUNCS([_lock_file])
639 AH_BOTTOM([#include <vlc_fixups.h>])
641 dnl Check for struct pollfd
642 AC_CHECK_TYPES([struct pollfd],,,
643 [#include <sys/types.h>
646 #elif defined (_WIN32)
647 # include <winsock2.h>
651 dnl Check for struct timespec
652 AC_CHECK_TYPES([struct timespec],,,
655 dnl Check for max_align_t
656 AC_CHECK_TYPES([max_align_t],,,
657 [#include <stddef.h>])
659 dnl Checks for socket stuff
662 AC_SEARCH_LIBS(connect, [socket], [
663 AS_IF([test "$ac_cv_search_connect" != "none required"], [
664 SOCKET_LIBS="$ac_cv_search_connect"
667 AS_IF([test "${SYS}" = "mingw32"], [
668 SOCKET_LIBS="-lws2_32"
672 AC_SEARCH_LIBS([inet_pton], [nsl], [
673 AS_IF([test "$ac_cv_search_inet_pton" != "none required"], [
674 SOCKET_LIBS="$ac_cv_search_inet_pton $SOCKET_LIBS"
676 ],, [${SOCKET_LIBS}])
678 LIBS="${LIBS} ${SOCKET_LIBS}"
680 AC_LANG_PROGRAM([#ifdef _WIN32
681 # if _WIN32_WINNT < 0x600
684 #include <ws2tcpip.h>
686 #include <sys/socket.h>
687 #include <arpa/inet.h>
689 char dst[[sizeof(struct in_addr)]];
690 inet_pton(AF_INET, "127.0.0.1", dst);
691 ])],[AC_DEFINE([HAVE_INET_PTON],[1],[Define to 1 if you have inet_pton function])],[AC_LIBOBJ([inet_pton])])
692 AC_CHECK_FUNCS([if_nameindex if_nametoindex])
694 AC_SUBST(SOCKET_LIBS)
696 dnl Check for socklen_t
697 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
698 AC_CACHE_CHECK([for socklen_t in sys/socket.h], dnl ` (fix VIM syntax highlight
699 ac_cv_type_socklen_t,
700 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
701 [#include <sys/types.h>
703 # include <winsock2.h>
704 # include <ws2tcpip.h>
706 # include <sys/socket.h>
707 #endif]], [[socklen_t len; len = 0;]])],
708 ac_cv_type_socklen_t=yes,
709 ac_cv_type_socklen_t=no)])
710 AS_IF([test "$ac_cv_type_socklen_t" = no],
711 [AC_DEFINE(socklen_t, int)])
713 dnl Check for struct sockaddr_storage
714 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
715 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
716 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
718 [#include <sys/types.h>
719 #if defined( _WIN32 )
720 # include <winsock2.h>
722 # include <sys/socket.h>
723 #endif], [struct sockaddr_storage addr;],
724 ac_cv_struct_sockaddr_storage=yes,
725 ac_cv_struct_sockaddr_storage=no)])
726 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
727 AC_DEFINE(sockaddr_storage, sockaddr)
728 AC_DEFINE(ss_family, sa_family)
731 dnl FreeBSD has a gnugetopt library for this:
733 AC_CHECK_FUNC(getopt_long,, [
734 AC_CHECK_LIB([gnugetopt],[getopt_long], [
735 GNUGETOPT_LIBS="-lgnugetopt"
738 AC_SUBST(GNUGETOPT_LIBS)
747 AC_CHECK_LIB(m,lrintf, [
748 AC_DEFINE(HAVE_LRINTF, 1, [Define to 1 if you have the lrintf function])
749 VLC_ADD_LIBS([skins2],[-lm])
752 AC_DEFINE(HAVE_NANF, 1, [Define to 1 if you have the NANF function])
754 AC_CHECK_LIB(m,sincos, [
755 AC_DEFINE(HAVE_SINCOS, 1, [Define to 1 if you have the sincos function.])
760 AC_MSG_CHECKING([_Thread_local support])
761 AC_COMPILE_IFELSE([AC_LANG_SOURCE([_Thread_local int foo = 0;
764 AC_DEFINE(HAVE_THREAD_LOCAL, 1, [Defined to 1 if C11 _Thread_local storage qualifier is supported])
765 ],[ AC_MSG_RESULT([no])])
767 dnl __STDC_NO_THREADS__ can't be trusted on some platforms.
768 dnl check for its availability explicitely
769 AC_CHECK_HEADERS([threads.h])
771 dnl Check for dynamic plugins
773 have_dynamic_objects="no"
775 AC_SEARCH_LIBS(dlsym, [dl svld], [
776 AS_IF([test "$ac_cv_search_dlsym" != "none required"], [
777 LIBDL="$ac_cv_search_dlsym"
779 have_dynamic_objects="yes"
784 AS_IF([test "${SYS}" = "mingw32"], [
786 have_dynamic_objects="yes" #assume we can use shared objects
789 AS_IF([test "${enable_shared}" = "no"], [
790 have_dynamic_objects=no
792 AM_CONDITIONAL(HAVE_DYNAMIC_PLUGINS, [test "${have_dynamic_objects}" != "no"])
796 dnl Check for thread library
798 AS_IF([test "${SYS}" != "mingw32"], [
801 AC_SEARCH_LIBS(pthread_rwlock_init, pthread pthreads c_r, [
802 AS_IF([test "$ac_cv_search_pthread_rwlock_init" != "none required"], [
803 LIBPTHREAD="$ac_cv_search_pthread_rwlock_init"
810 AC_SEARCH_LIBS([clock_nanosleep], [rt pthread], [
811 AS_IF([test "$ac_cv_search_clock_nanosleep" != "none required"], [
812 LIBRT="$ac_cv_search_clock_nanosleep"
815 AC_SEARCH_LIBS([nanosleep], [rt pthread posix4], [
816 AS_IF([test "$ac_cv_search_nanosleep" != "none required"], [
817 LIBRT="$ac_cv_search_nanosleep"
824 dnl Check for headers
828 AC_CHECK_HEADERS([arpa/inet.h pthread.h search.h sys/shm.h sys/socket.h sys/uio.h])
829 AC_CHECK_HEADERS([net/if.h], [], [],
831 #include <sys/types.h>
832 #include <sys/socket.h>
834 AC_CHECK_HEADER([syslog.h], [have_syslog="yes"], [have_syslog="no"])
835 AM_CONDITIONAL([HAVE_SYSLOG], [test "$have_syslog" = "yes"])
838 AC_CHECK_HEADERS([netinet/tcp.h netinet/udplite.h sys/param.h sys/mount.h])
841 AC_CHECK_HEADERS([features.h getopt.h linux/dccp.h linux/magic.h mntent.h sys/eventfd.h])
844 AC_CHECK_HEADERS([xlocale.h])
846 dnl LP64 and LLP64 architectures had better define ssize_t by themselves...
847 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.]) dnl ` (fix VIM syntax highlight
848 AC_CHECK_TYPE(ssize_t,, [
849 AC_DEFINE(ssize_t, int)
852 dnl It seems that autoconf detects pkg-config only during the first
853 dnl PKG_CHECK_MODULES from configure.ac - which makes sense. But in our case,
854 dnl it is nested within a conditional block, so it was not working right.
855 dnl Make PKG_CONFIG_PATH precious so that it appears in the help and get saved
856 AC_ARG_VAR(PKG_CONFIG_PATH,
857 [Paths where to find .pc not at the default location])
858 PKG_PROG_PKG_CONFIG()
860 dnl On some OS we need static linking
861 AS_IF([test -n "${PKG_CONFIG}" ],[
862 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "darwin" -o "${SYS}" = "os2" ],[
863 PKG_CONFIG="${PKG_CONFIG} --static"
869 dnl Check for zlib.h and -lz along with system -lminizip if available
871 AC_CHECK_HEADERS(zlib.h, [ have_zlib=yes ], [ have_zlib=no ])
872 AM_CONDITIONAL(HAVE_ZLIB, [ test "${have_zlib}" = "yes" ])
873 if test "${have_zlib}" = "yes"
875 VLC_ADD_LIBS([sap],[-lz])
876 PKG_CHECK_MODULES([MINIZIP], [minizip] , [ have_minizip=yes ], [
877 AC_CHECK_HEADERS([unzip.h], [
879 MINIZIP_LIBS="-lminizip -lz"
885 AM_CONDITIONAL(HAVE_MINIZIP, [ test "${have_minizip}" = "yes" ])
889 dnl Domain name i18n support via GNU libidn
891 PKG_CHECK_MODULES([IDN], [libidn], [
893 AC_DEFINE([HAVE_IDN], 1, [Define to 1 if you have GNU libidn.])
901 [AS_HELP_STRING([--enable-dbus],
902 [compile D-Bus message bus support (default enabled)])])
904 AS_IF([test "${enable_dbus}" != "no"], [
905 PKG_CHECK_MODULES(DBUS, [dbus-1 >= 1.6.0], [
908 AS_IF([test -n "${enable_dbus}"], [
909 AC_MSG_ERROR([${DBUS_PKG_ERRORS}.])
911 AC_MSG_WARN([${DBUS_PKG_ERRORS}.])
915 AM_CONDITIONAL([HAVE_DBUS], [test "${have_dbus}" = "yes"])
918 dnl Check for systemd
919 PKG_CHECK_MODULES([SYSTEMD], [libsystemd], [
922 AC_MSG_WARN([${SYSTEMD_PKG_ERRORS}.])
924 AM_CONDITIONAL([HAVE_SYSTEMD], [test "${have_systemd}" = "yes"])
927 EXTEND_HELP_STRING([Optimization options:])
929 dnl Compiler warnings
932 AX_APPEND_COMPILE_FLAGS([-Wall -Wextra -Wsign-compare -Wundef -Wpointer-arith -Wvolatile-register-var -Wformat -Wformat-security], [CFLAGS])
933 AX_APPEND_COMPILE_FLAGS([-Wall -Wextra -Wsign-compare -Wundef -Wpointer-arith -Wvolatile-register-var -Wformat -Wformat-security], [CXXFLAGS])
935 AX_APPEND_COMPILE_FLAGS([-Wbad-function-cast -Wwrite-strings -Wmissing-prototypes -Werror-implicit-function-declaration -Winit-self -Wlogical-op -Wshadow=local], [CFLAGS])
936 AX_APPEND_COMPILE_FLAGS([-pipe], [CFLAGS])
942 [AS_HELP_STRING([--enable-debug],
943 [build with run-time assertions (default disabled)])],,
946 [Define to 1 if debug code should NOT be compiled])
947 AS_IF([test "${enable_debug}" != "no"], [
948 AC_CHECK_HEADERS([valgrind/valgrind.h])
957 [AS_HELP_STRING([--enable-gprof],[profile with gprof (default disabled)])],,
959 AS_IF([test "${enable_gprof}" != "no"], [
960 CFLAGS="${CFLAGS} -pg"
961 CXXFLAGS="${CXXFLAGS} -pg"
962 OBJCFLAGS="${OBJCFLAGS} -pg"
963 LDFLAGS="${LDFLAGS} -pg"
967 [AS_HELP_STRING([--enable-cprof],[profile with cprof (default disabled)])],,
969 AS_IF([test "${enable_gprof}" != "no"], [
970 CFLAGS="${CFLAGS} -finstrument-functions"
971 CXXFLAGS="${CXXFLAGS} -finstrument-functions"
972 OBJCFLAGS="${OBJCFLAGS} -finstrument-functions"
973 LDFLAGS="${LDFLAGS} -finstrument-functions"
979 AC_ARG_ENABLE(coverage,
980 [AS_HELP_STRING([--enable-coverage],
981 [build for test coverage (default disabled)])],,
982 [enable_coverage="no"])
983 AS_IF([test "${enable_coverage}" != "no"], [
984 CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
985 CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
986 LDFLAGS="-lgcov ${LDFLAGS}"
989 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "os2"], [
991 CFLAGS="${CFLAGS} -fvisibility=hidden"
992 CXXFLAGS="${CXXFLAGS} -fvisibility=hidden"
993 OBJCFLAGS="${OBJCFLAGS} -fvisibility=hidden"
994 AC_CACHE_CHECK([if $CC accepts -fvisibility=hidden],
995 [ac_cv_c_visibility_hidden], [
996 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
997 ac_cv_c_visibility_hidden=yes
999 ac_cv_c_visibility_hidden=no
1002 AS_IF([test "${ac_cv_c_visibility_hidden}" = "no"], [VLC_RESTORE_FLAGS])
1008 AC_ARG_WITH([sanitizer],
1009 [AS_HELP_STRING([--with-sanitizer=(address/memory/undefined/thread)],
1010 [build with sanitizer flags (default disabled)])],
1012 [with_sanitizer=no])
1014 AS_VAR_IF(with_sanitizer, no, [], [
1015 AX_CHECK_COMPILE_FLAG([-fsanitize=${with_sanitizer}], [
1016 AX_APPEND_FLAG([-fsanitize=${with_sanitizer}])
1017 AX_APPEND_FLAG([-fsanitize=${with_sanitizer}], [CXXFLAGS])
1018 AX_APPEND_FLAG([-fsanitize=${with_sanitizer}], [LDFLAGS])
1020 AC_MSG_ERROR(["-fsanitize=${with_sanitizer} not supported!"])
1022 AX_APPEND_FLAG([-g])
1023 AX_APPEND_FLAG([-g], [CXXFLAGS])
1025 AS_IF([test -z "${with_sanitizer##*address*}" ], [
1026 AX_APPEND_COMPILE_FLAGS([-fsanitize-address-use-after-scope -fno-omit-frame-pointer])
1027 AX_APPEND_COMPILE_FLAGS([-fsanitize-address-use-after-scope -fno-omit-frame-pointer], [CXXFLAGS])
1029 AS_IF([test -z "${with_sanitizer##*memory*}" ], [
1030 AX_APPEND_COMPILE_FLAGS([-fPIE -pie])
1031 AX_APPEND_COMPILE_FLAGS([-fPIE -pie], [CXXFLAGS])
1033 AS_IF([test -z "${with_sanitizer##*thread*}" ], [
1034 AX_APPEND_COMPILE_FLAGS([-fPIE -pie])
1035 AX_APPEND_COMPILE_FLAGS([-fPIE -pie], [CXXFLAGS])
1040 dnl Enable/disable optimizations
1042 AC_ARG_ENABLE(optimizations,
1043 [AS_HELP_STRING([--disable-optimizations],
1044 [disable compiler optimizations (default enabled)])],,
1045 [enable_optimizations="yes"])
1047 dnl Check for various optimization flags
1048 AS_IF([test "${enable_optimizations}" != "no"], [
1050 dnl -O3 only in production builds
1051 AS_IF([test "${enable_debug}" = "no"], [
1053 CFLAGS="${CFLAGS} -O3"
1054 CXXFLAGS="${CXXFLAGS} -O3"
1055 OBJCFLAGS="${OBJCFLAGS} -O3"
1056 AC_CACHE_CHECK([if $CC accepts -O3], [ac_cv_c_o3], [
1057 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1063 AS_IF([test "${ac_cv_c_o3}" = "no"], [VLC_RESTORE_FLAGS])
1066 dnl Check for fast maths
1067 AX_APPEND_COMPILE_FLAGS([-fno-math-errno -funsafe-math-optimizations -fno-rounding-math -fno-signaling-nans -fcx-limited-range], [CFLAGS])
1068 AX_APPEND_COMPILE_FLAGS([-fno-math-errno -funsafe-math-optimizations -fno-rounding-math -fno-signaling-nans -fcx-limited-range], [CXXFLAGS])
1071 #if defined(_MSC_VER) && !defined(__clang__)
1072 # pragma fenv_access(off)
1073 # pragma fp_contract(on)
1074 #elif defined(__GNUC__)
1075 /* Not supported so far */
1077 # pragma STDC FENV_ACCESS OFF
1078 # pragma STDC FP_CONTRACT ON
1082 dnl Check for -funroll-loops
1084 CFLAGS="${CFLAGS} -funroll-loops"
1085 CXXFLAGS="${CXXFLAGS} -funroll-loops"
1086 OBJCFLAGS="${OBJCFLAGS} -funroll-loops"
1087 AC_CACHE_CHECK([if $CC accepts -funroll-loops], [ac_cv_c_unroll_loops], [
1088 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1089 ac_cv_c_unroll_loops=yes
1091 ac_cv_c_unroll_loops=no
1094 AS_IF([test "${ac_cv_c_unroll_loops}" = "no"], [VLC_RESTORE_FLAGS])
1096 AS_IF([test "$enable_debug" = "no"], [
1097 dnl Check for -fomit-frame-pointer
1099 CFLAGS="${CFLAGS} -fomit-frame-pointer"
1100 CXXFLAGS="${CXXFLAGS} -fomit-frame-pointer"
1101 OBJCFLAGS="${OBJCFLAGS} -fomit-frame-pointer"
1102 AC_CACHE_CHECK([if $CC accepts -fomit-frame-pointer],
1103 [ac_cv_c_omit_frame_pointer], [
1104 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1105 ac_cv_c_omit_frame_pointer=yes
1107 ac_cv_c_omit_frame_pointer=no
1110 AS_IF([test "${ac_cv_c_omit_frame_pointer}" = "no"], [VLC_RESTORE_FLAGS])
1115 LDFLAGS="${LDFLAGS} -Wl,-Bsymbolic"
1116 AC_CACHE_CHECK([if linker supports -Bsymbolic], [ac_cv_ld_bsymbolic], [
1118 ac_cv_ld_bsymbolic="-Wl,-Bsymbolic"
1120 ac_cv_ld_bsymbolic=""
1124 SYMBOLIC_LDFLAGS="${ac_cv_ld_bsymbolic}"
1125 AC_SUBST(SYMBOLIC_LDFLAGS)
1128 LDFLAGS="${LDFLAGS} -Wl,-z,defs"
1129 AC_CACHE_CHECK([if linker supports -z,defs], [ac_cv_ld_z_defs], [
1131 ac_cv_ld_z_defs="yes"
1133 ac_cv_ld_z_defs="no"
1136 AS_IF([test "${ac_cv_ld_z_defs}" = "no" -o "x$with_sanitizer" != xno], [VLC_RESTORE_FLAGS])
1138 dnl Check for __attribute__((packed))
1139 AC_CACHE_CHECK([for __attribute__((packed))],
1140 [ac_cv_c_attribute_packed],
1141 [ac_cv_c_attribute_packed=no
1142 AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b; (void)b;],
1143 [ac_cv_c_attribute_packed=yes])])
1144 if test "${ac_cv_c_attribute_packed}" != "no"; then
1145 AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1151 case "${host_cpu}" in
1160 dnl Check for backtrace() support
1161 AC_CHECK_HEADERS(execinfo.h)
1162 AC_CHECK_FUNCS(backtrace)
1167 ALIASES="${ALIASES} cvlc rvlc"
1170 dnl Accelerated modules
1173 dnl Check for fully working MMX intrinsics
1174 dnl We need support for -mmmx, we need <mmintrin.h>, and we also need a
1175 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1177 [AS_HELP_STRING([--disable-mmx],
1178 [disable MMX optimizations (default auto)])],,[
1179 case "${host_cpu}" in
1190 AS_IF([test "${enable_mmx}" != "no"], [
1193 CFLAGS="${CFLAGS} -mmmx"
1194 AC_CACHE_CHECK([if $CC groks MMX intrinsics], [ac_cv_c_mmx_intrinsics], [
1195 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1196 [#include <mmintrin.h>
1198 uint64_t frobzor;]], [
1200 a = b = c = (__m64)frobzor;
1201 a = _mm_slli_pi16(a, 3);
1202 a = _mm_adds_pi16(a, b);
1203 c = _mm_srli_pi16(c, 8);
1204 c = _mm_slli_pi16(c, 3);
1205 b = _mm_adds_pi16(b, c);
1206 a = _mm_unpacklo_pi8(a, b);
1207 frobzor = (uint64_t)a;]])], [
1208 ac_cv_c_mmx_intrinsics=yes
1210 ac_cv_c_mmx_intrinsics=no
1214 AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1215 AC_DEFINE(HAVE_MMX_INTRINSICS, 1, [Define to 1 if MMX intrinsics are available.])
1219 CFLAGS="${CFLAGS} -mmmx"
1220 AC_CACHE_CHECK([if $CC groks MMX inline assembly], [ac_cv_mmx_inline], [
1221 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1223 asm volatile("packuswb %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1226 ac_cv_mmx_inline=yes
1231 AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1232 AC_DEFINE(CAN_COMPILE_MMX, 1, [Define to 1 inline MMX assembly is available.])
1236 AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1237 [ac_cv_mmxext_inline], [
1238 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1240 asm volatile("maskmovq %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1243 ac_cv_mmxext_inline=yes
1245 ac_cv_mmxext_inline=no
1249 AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1250 AC_DEFINE(CAN_COMPILE_MMXEXT, 1, [Define to 1 if MMX EXT inline assembly is available.])
1254 AM_CONDITIONAL([HAVE_MMX], [test "${have_mmx}" = "yes"])
1255 AM_CONDITIONAL([HAVE_MMXEXT], [test "${have_mmxext}" = "yes"])
1257 dnl Check for fully workin SSE2 intrinsics
1258 dnl We need support for -mmmx, we need <emmintrin.h>, and we also need a
1259 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1261 [AS_HELP_STRING([--disable-sse],
1262 [disable SSE (1-4) optimizations (default auto)])],, [
1263 case "${host_cpu}" in
1273 AS_IF([test "${enable_sse}" != "no"], [
1274 ARCH="${ARCH} sse sse2"
1277 CFLAGS="${CFLAGS} -msse2"
1278 AC_CACHE_CHECK([if $CC groks SSE2 intrinsics], [ac_cv_c_sse2_intrinsics], [
1279 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1280 [#include <emmintrin.h>
1282 uint64_t frobzor;]], [
1284 a = b = c = _mm_set1_epi64((__m64)frobzor);
1285 a = _mm_slli_epi16(a, 3);
1286 a = _mm_adds_epi16(a, b);
1287 c = _mm_srli_epi16(c, 8);
1288 c = _mm_slli_epi16(c, 3);
1289 b = _mm_adds_epi16(b, c);
1290 a = _mm_unpacklo_epi8(a, b);
1291 frobzor = (uint64_t)_mm_movepi64_pi64(a);]])], [
1292 ac_cv_c_sse2_intrinsics=yes
1294 ac_cv_c_sse2_intrinsics=no
1298 AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1299 AC_DEFINE(HAVE_SSE2_INTRINSICS, 1, [Define to 1 if SSE2 intrinsics are available.])
1303 CFLAGS="${CFLAGS} -msse"
1304 AC_CACHE_CHECK([if $CC groks SSE inline assembly], [ac_cv_sse_inline], [
1305 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1307 asm volatile("xorps %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1310 ac_cv_sse_inline=yes
1316 AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1317 AC_DEFINE(CAN_COMPILE_SSE, 1, [Define to 1 if SSE inline assembly is available.])
1320 AC_CACHE_CHECK([if $CC groks SSE2 inline assembly], [ac_cv_sse2_inline], [
1321 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1323 asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1326 ac_cv_sse2_inline=yes
1328 ac_cv_sse2_inline=no
1331 AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1332 AC_DEFINE(CAN_COMPILE_SSE2, 1, [Define to 1 if SSE2 inline assembly is available.])
1337 AC_CACHE_CHECK([if $CC groks SSE3 inline assembly], [ac_cv_sse3_inline], [
1338 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1340 asm volatile("movsldup %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1343 ac_cv_sse3_inline=yes
1345 ac_cv_sse3_inline=no
1349 AS_IF([test "${ac_cv_sse3_inline}" != "no"], [
1350 AC_DEFINE(CAN_COMPILE_SSE3, 1, [Define to 1 if SSE3 inline assembly is available.]) ])
1352 AC_CACHE_CHECK([if $CC groks SSSE3 inline assembly], [ac_cv_ssse3_inline], [
1353 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1355 asm volatile("pabsw %%xmm0,%%xmm0"::"r"(p):"xmm0");
1358 ac_cv_ssse3_inline=yes
1360 ac_cv_ssse3_inline=no
1364 AS_IF([test "${ac_cv_ssse3_inline}" != "no"], [
1365 AC_DEFINE(CAN_COMPILE_SSSE3, 1, [Define to 1 if SSSE3 inline assembly is available.]) ])
1368 AC_CACHE_CHECK([if $CC groks SSE4.1 inline assembly],
1369 [ac_cv_sse4_1_inline], [
1370 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1372 asm volatile("pmaxsb %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1375 ac_cv_sse4_1_inline=yes
1377 ac_cv_sse4_1_inline=no
1381 AS_IF([test "${ac_cv_sse4_1_inline}" != "no"], [
1382 AC_DEFINE(CAN_COMPILE_SSE4_1, 1, [Define to 1 if SSE4_1 inline assembly is available.]) ])
1385 AC_CACHE_CHECK([if $CC groks SSE4.2 inline assembly],
1386 [ac_cv_sse4_2_inline], [
1387 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1389 asm volatile("pcmpgtq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1392 ac_cv_sse4_2_inline=yes
1394 ac_cv_sse4_2_inline=no
1398 AS_IF([test "${ac_cv_sse4_2_inline}" != "no"], [
1399 AC_DEFINE(CAN_COMPILE_SSE4_2, 1, [Define to 1 if SSE4_2 inline assembly is available.]) ])
1402 AC_CACHE_CHECK([if $CC groks SSE4A inline assembly], [ac_cv_sse4a_inline], [
1403 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1405 asm volatile("insertq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1408 ac_cv_sse4a_inline=yes
1410 ac_cv_sse4a_inline=no
1414 AS_IF([test "${ac_cv_sse4a_inline}" != "no"], [
1415 AC_DEFINE(CAN_COMPILE_SSE4A, 1, [Define to 1 if SSE4A inline assembly is available.]) ])
1417 AM_CONDITIONAL([HAVE_SSE2], [test "$have_sse2" = "yes"])
1420 CFLAGS="${CFLAGS} -mmmx"
1422 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly], [ac_cv_3dnow_inline], [
1423 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1425 asm volatile("pfadd %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1428 ac_cv_3dnow_inline=yes
1430 ac_cv_3dnow_inline=no
1434 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1435 AC_DEFINE(CAN_COMPILE_3DNOW, 1,
1436 [Define to 1 if 3D Now! inline assembly is available.])
1439 AM_CONDITIONAL([HAVE_3DNOW], [test "$have_3dnow" = "yes"])
1443 [AS_HELP_STRING([--disable-neon],
1444 [disable NEON optimizations (default auto)])],, [
1445 AS_IF([test "${host_cpu}" = "arm"], [enable_neon="yes"] ,[enable_neon="no"])
1447 AS_IF([test "${enable_neon}" != "no"], [
1449 CFLAGS="${CFLAGS} -mfpu=neon -mhard-float"
1450 AC_CACHE_CHECK([if $CCAS groks ARM NEON assembly], [ac_cv_arm_neon], [
1453 asm volatile("vqmovun.s64 d0, q1":::"d0");
1456 ac_cv_arm_neon="yes"
1463 AM_CONDITIONAL(HAVE_NEON, [test "${ac_cv_arm_neon}" = "yes"])
1465 AC_ARG_ENABLE(arm64,
1466 [AS_HELP_STRING([--disable-arm64],
1467 [disable arm 64-bit optimizations (default auto)])],, [
1468 AS_IF([test "${host_cpu}" = "aarch64"], [enable_arm64="yes"] ,[enable_arm64="no"])
1470 AS_IF([test "${enable_arm64}" != "no"], [
1471 AC_CACHE_CHECK([if $CCAS groks ARM 64 SIMD assembly], [ac_cv_arm64], [
1474 asm volatile("uhadd v0.8b, v0.8b, v1.8b":::"v0");
1483 AM_CONDITIONAL(HAVE_ARM64, [test "${ac_cv_arm64}" = "yes"])
1486 AC_ARG_ENABLE(altivec,
1487 [AS_HELP_STRING([--disable-altivec],
1488 [disable AltiVec optimizations (default auto)])],, [
1489 AS_CASE("${host_cpu}", [powerpc*],
1490 [enable_altivec=yes], [enable_altivec=no])
1494 AS_IF([test "${enable_altivec}" = "yes"], [
1495 ARCH="${ARCH} altivec";
1497 AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1498 [ac_cv_altivec_inline],
1499 [AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1500 ac_cv_altivec_inline="yes",
1501 [CFLAGS="${CFLAGS} -Wa,-maltivec"
1502 AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1503 [ac_cv_altivec_inline="-Wa,-maltivec"],
1504 ac_cv_altivec_inline=no)
1507 AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1508 AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1509 [Define to 1 if AltiVec inline assembly is available.])
1510 AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1511 ALTIVEC_CFLAGS="${ac_cv_altivec_inline}"
1512 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_altivec_inline}])
1518 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1519 [ac_cv_c_altivec], [
1520 CFLAGS="${CFLAGS} -maltivec"
1521 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1522 [#include <altivec.h>]], [
1523 [vec_ld(0, (unsigned char *)0);]])], [
1524 ac_cv_c_altivec="-maltivec"
1526 ac_cv_c_altivec="no"
1530 AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1531 CPPFLAGS="${CPPFLAGS} ${ac_cv_c_altivec}"
1532 AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, [Define to 1 if C AltiVec extensions are available.])
1533 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_c_altivec}])
1534 ALTIVEC_CFLAGS="$ALTIVEC_CFLAGS ${ac_cv_c_altivec}"
1535 VLC_ADD_CFLAGS([deinterlace],[${ac_cv_c_altivec}])
1538 AC_CHECK_HEADERS(altivec.h)
1541 LDFLAGS="${LDFLAGS} -Wl,-framework,vecLib"
1542 AC_CACHE_CHECK([if linker needs -framework vecLib],
1544 [AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)])
1546 AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1547 VLC_ADD_LIBS([libvlccore],[-Wl,-framework,vecLib])
1550 AC_SUBST(ALTIVEC_CFLAGS)
1551 AM_CONDITIONAL([HAVE_ALTIVEC], [test "$have_altivec" = "yes"])
1556 AC_ARG_ENABLE(optimize-memory,
1557 [AS_HELP_STRING([--enable-optimize-memory],
1558 [optimize memory usage over performance])])
1559 if test "${enable_optimize_memory}" = "yes"; then
1560 AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1564 dnl Allow running as root (useful for people running on embedded platforms)
1566 AC_ARG_ENABLE(run-as-root,
1567 [AS_HELP_STRING([--enable-run-as-root],
1568 [allow running VLC as root (default disabled)])])
1569 AS_IF([test "${enable_run_as_root}" = "yes"],[
1570 AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1571 [Define to 1 to allow running VLC as root (uid 0).])
1578 [AS_HELP_STRING([--disable-sout],
1579 [disable streaming output (default enabled)])])
1580 AS_IF([test "${enable_sout}" != "no"], [
1581 AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1583 AM_CONDITIONAL(ENABLE_SOUT, [test "${enable_sout}" != "no"])
1587 [AS_HELP_STRING([--disable-lua],
1588 [disable LUA scripting support (default enabled)])])
1589 if test "${enable_lua}" != "no"
1591 PKG_CHECK_MODULES(LUA, lua5.2,
1594 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua 5.1 instead])
1596 PKG_CHECK_MODULES(LUA, lua5.1,
1599 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua >= 5.1 instead])
1600 PKG_CHECK_MODULES(LUA, lua >= 5.1,
1603 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying manual detection instead])
1605 AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1608 AC_CHECK_LIB( lua5.2 , luaL_newstate,
1609 [LUA_LIBS="-llua5.2"],
1610 AC_CHECK_LIB( lua5.1 , luaL_newstate,
1611 [LUA_LIBS="-llua5.1"],
1612 AC_CHECK_LIB( lua51 , luaL_newstate,
1613 [LUA_LIBS="-llua51"],
1614 AC_CHECK_LIB( lua , luaL_newstate,
1622 if test "x${have_lua}" != "xyes" ; then
1623 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.])
1625 AC_ARG_VAR([LUAC], [LUA byte compiler])
1626 AS_IF([test -z "$LUAC"], [
1627 AC_CHECK_TOOL(LUAC, [luac], [false])
1629 AS_IF([test "${LUAC}" = "false"], [
1630 AC_MSG_ERROR([Could not find the LUA byte compiler.])
1632 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], [
1633 AC_MSG_ERROR([You need 32-bits luac when using lua from contrib.])
1636 AM_CONDITIONAL(BUILD_LUA, [test "${have_lua}" = "yes"])
1640 dnl VideoLAN manager
1643 [AS_HELP_STRING([--disable-vlm],
1644 [disable the stream manager (default enabled)])],,
1645 [enable_vlm="${enable_sout}"])
1646 AS_IF([test "${enable_vlm}" != "no"], [
1647 AS_IF([test "${enable_sout}" = "no"], [
1648 AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1650 AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1652 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1656 dnl Addons manager storage and repositories modules
1658 AC_ARG_ENABLE(addonmanagermodules,
1659 [AS_HELP_STRING([--disable-addonmanagermodules],
1660 [disable the addons manager modules (default enabled)])])
1661 if test "${enable_addonmanagermodules}" != "no"
1663 AC_DEFINE(ENABLE_ADDONMANAGERMODULES, 1, [Define if you want the addons manager modules])
1665 AM_CONDITIONAL([ENABLE_ADDONMANAGERMODULES], [test "${enable_addonmanagermodules}" != "no"])
1672 EXTEND_HELP_STRING([Input plugins:])
1675 dnl libarchive access module
1677 PKG_ENABLE_MODULES_VLC([ARCHIVE], [archive], [libarchive >= 3.1.0], (libarchive support), [auto])
1682 AC_ARG_ENABLE(live555,
1683 [AS_HELP_STRING([--enable-live555],
1684 [enable RTSP input through live555 (default enabled)])])
1686 AS_IF([test "${enable_live555}" != "no" -a -n "${CXX}"], [
1687 PKG_CHECK_MODULES(LIVE555, live555, [
1688 VLC_ADD_PLUGIN([live555])
1689 VLC_ADD_CXXFLAGS([live555], [$LIVE555_CFLAGS])
1690 VLC_ADD_LIBS([live555],[$LIVE555_LIBS])
1692 AC_MSG_WARN([${LIVE555_PKG_ERRORS}.])
1697 dnl detect include paths
1698 AS_IF([test -f "${CONTRIB_DIR}/include/UsageEnvironment/UsageEnvironment.hh"], [
1699 CPPFLAGS_live555="-I${CONTRIB_DIR}/include/liveMedia -I${CONTRIB_DIR}/include/groupsock -I${CONTRIB_DIR}/include/BasicUsageEnvironment -I${CONTRIB_DIR}/include/UsageEnvironment"
1701 AS_IF([test "${SYS}" != "os2"], [
1702 LIVE555_PREFIX=${LIVE555_PREFIX-"/usr"}
1703 CPPFLAGS_live555="-I${LIVE555_PREFIX}/include/liveMedia -I${LIVE555_PREFIX}/include/groupsock -I${LIVE555_PREFIX}/include/BasicUsageEnvironment -I${LIVE555_PREFIX}/include/UsageEnvironment"
1705 LIVE555_PREFIX=${LIVE555_PREFIX-"/usr/lib/live"}
1706 CPPFLAGS_live555="-I${LIVE555_PREFIX}/liveMedia/include -I${LIVE555_PREFIX}/groupsock/include -I${LIVE555_PREFIX}/BasicUsageEnvironment/include -I${LIVE555_PREFIX}/UsageEnvironment/include"
1707 LDFLAGS_live555="-L${LIVE555_PREFIX}/liveMedia -L${LIVE555_PREFIX}/groupsock -L${LIVE555_PREFIX}/BasicUsageEnvironment -L${LIVE555_PREFIX}/UsageEnvironment"
1712 AS_IF([test "${SYS}" = "solaris"], [
1713 CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1715 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1716 LDFLAGS="${LDFLAGS} ${LDFLAGS_live555}"
1719 AC_CACHE_CHECK([for live555 version 1324598400 or later], [ac_cv_live555], [
1720 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
1721 [#include <liveMedia_version.hh>
1722 #if !defined (LIVEMEDIA_LIBRARY_VERSION_INT) || (LIVEMEDIA_LIBRARY_VERSION_INT < 1324598400)
1732 AS_IF([test "$ac_cv_live555" = "no"], [
1733 AC_MSG_WARN([live555 is missing or its installed version is too old:
1734 Version 2011.12.23 or later is required to proceed.
1735 You can get an updated one from http://www.live555.com/liveMedia .])
1736 AS_IF([test -n "${enable_live555}"], [
1737 AC_MSG_ERROR([Update live555 or pass --disable-live555 to disable RTSP input support.])
1740 other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1741 other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
1742 AS_IF([test "${SYS}" = "mingw32"], [
1743 # add ws2_32 for closesocket, select, recv
1744 other_libs="$other_libs -lws2_32"
1747 dnl We need to check for pic because live555 don't provide shared libs
1748 dnl and we want to build a plugins so we need -fPIC on some arch.
1749 VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1750 VLC_ADD_LDFLAGS([live555], [${LDFLAGS_live555}])
1751 AC_CHECK_LIB(liveMedia_pic, main, [
1752 VLC_ADD_PLUGIN([live555])
1753 VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
1755 AC_CHECK_LIB(liveMedia, main, [
1756 VLC_ADD_PLUGIN([live555])
1757 VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1758 ],[],[${other_libs}])
1759 ],[${other_libs_pic}])
1767 dnl IIDC and DV FireWire input modules
1769 PKG_ENABLE_MODULES_VLC([DC1394], [], [libdc1394-2 >= 2.1.0], [IIDC FireWire input module], [auto])
1770 PKG_ENABLE_MODULES_VLC([DV1394], [], [libraw1394 >= 2.0.1 libavc1394 >= 0.5.3], [DV FireWire input module], [auto])
1773 dnl - linsys modules: access module check for libzvbi
1775 AC_ARG_ENABLE(linsys,
1776 [AS_HELP_STRING([--enable-linsys],
1777 [Linux Linear Systems Ltd. SDI and HD-SDI input cards (default enabled)])])
1778 AS_IF([test "$SYS" = "linux" -a "${enable_linsys}" != "no"], [
1779 VLC_ADD_PLUGIN([linsys_hdsdi])
1780 PKG_CHECK_MODULES(LINSYS_SDI, [zvbi-0.2 >= 0.2.28], [
1781 VLC_ADD_PLUGIN([linsys_sdi])
1783 AC_MSG_WARN([${LINSYS_SDI_PKG_ERRORS}.])
1788 dnl dvdread module: check for libdvdread
1790 PKG_ENABLE_MODULES_VLC([DVDREAD], [], [dvdread > 4.9.0], [dvdread input module], [auto])
1793 dnl libdvdnav plugin
1795 PKG_ENABLE_MODULES_VLC([DVDNAV], [], [dvdnav > 4.9.0], [DVD with navigation input module (dvdnav)], [auto])
1796 AS_IF([test "${enable_dvdnav}" != "no"], [
1797 AC_MSG_CHECKING(for dvdnav_stream_cb in dvdnav/dvdnav.h)
1798 AC_EGREP_HEADER(dvdnav_stream_cb,dvdnav/dvdnav.h,[
1800 AC_DEFINE(HAVE_STREAM_CB_IN_DVDNAV_H, 1, For dvdnav demux support)
1807 dnl Blu-ray Disc Support with libbluray
1809 PKG_ENABLE_MODULES_VLC([BLURAY], [libbluray], [libbluray >= 0.6.2], (libbluray for Blu-ray disc support ) )
1812 dnl OpenCV wrapper and example filters
1814 PKG_ENABLE_MODULES_VLC([OPENCV], [opencv_example opencv_wrapper], [opencv > 2.0], (OpenCV (computer vision) filter), [auto])
1818 dnl libsmbclient plugin
1820 PKG_ENABLE_MODULES_VLC([SMBCLIENT], [smb], [smbclient], (SMB/CIFS support), [auto])
1821 AS_IF([test "${SYS}" = "mingw32" -a "${enable_winstore_app}" != "yes"], [ VLC_ADD_PLUGIN([smb]) ])
1824 dnl liBDSM access module
1826 PKG_ENABLE_MODULES_VLC([DSM], [dsm], [libdsm >= 0.2.0], [libdsm SMB/CIFS access/sd module], [auto])
1829 dnl sftp access support
1831 PKG_ENABLE_MODULES_VLC([SFTP], [sftp], [libssh2], (support SFTP file transfer via libssh2), [auto])
1834 dnl nfs access support
1836 PKG_ENABLE_MODULES_VLC([NFS], [nfs], [libnfs >= 1.10.0], (support nfs protocol via libnfs), [auto])
1841 AC_ARG_ENABLE(v4l2, [AS_HELP_STRING([--disable-v4l2],
1842 [disable Video4Linux version 2 (default auto)])])
1844 AS_IF([test "$enable_v4l2" != "no"], [
1845 AC_CHECK_HEADERS([linux/videodev2.h sys/videoio.h], [
1849 AM_CONDITIONAL(HAVE_V4L2, [test "${have_v4l2}" != "no"])
1852 dnl special access module for Blackmagic SDI cards
1854 AC_ARG_ENABLE(decklink,
1855 [AS_HELP_STRING([--disable-decklink],
1856 [disable Blackmagic DeckLink SDI input (default auto)])])
1857 AC_ARG_WITH(decklink_sdk,
1858 [AS_HELP_STRING[--with-decklink-sdk=DIR],
1859 [ location of Blackmagic DeckLink SDI SDK])])
1861 if test "${enable_decklink}" != "no"
1863 if test "${with_decklink_sdk}" != "no" -a -n "${with_decklink_sdk}"
1865 VLC_ADD_CPPFLAGS([decklink decklinkoutput],[-I${with_decklink_sdk}/include])
1868 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_decklink}"
1870 AC_CHECK_HEADERS(DeckLinkAPIDispatch.cpp, [
1873 AC_MSG_WARN(Blackmagic DeckLink SDI include files not found, decklink disabled)
1878 AM_CONDITIONAL(HAVE_DECKLINK, [ test "${have_decklink}" != "no" ])
1882 dnl Built-in CD-DA and VCD module
1885 [AS_HELP_STRING([--disable-vcd],
1886 [disable built-in VCD and CD-DA support (default enabled)])])
1888 AC_ARG_ENABLE(libcddb,
1889 [AS_HELP_STRING([--disable-libcddb],
1890 [disable CDDB for Audio CD (default enabled)])])
1892 if test "${enable_vcd}" != "no"
1894 AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
1895 AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
1897 VLC_ADD_PLUGIN([vcd cdda])
1902 AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
1903 AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
1905 VLC_ADD_PLUGIN([vcd cdda])
1906 AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
1911 AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
1912 AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
1914 VLC_ADD_PLUGIN([vcd cdda])
1915 AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
1920 if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32" -o "${SYS}" = "os2" -o "${SYS}" = "darwin"
1922 VLC_ADD_PLUGIN([vcd cdda])
1925 if test "$enable_libcddb" != "no"; then
1926 PKG_CHECK_MODULES(LIBCDDB, [libcddb >= 0.9.5], [
1928 AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
1929 VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
1930 VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
1932 [AC_MSG_WARN([${LIBCDDB_PKG_ERRORS}: CDDB access disabled.])
1940 AC_CACHE_CHECK([for Linux DVB version 5.1], [ac_cv_linux_dvb_5_1], [
1941 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
1942 [#include <linux/dvb/version.h>
1943 #if (DVB_API_VERSION < 5)
1944 # error Linux DVB API v3.2 and older are not supported.
1946 #if (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR < 1)
1947 # error Linux DVB API v5.0 is unsupported. Please update.
1950 ac_cv_linux_dvb_5_1=yes
1952 ac_cv_linux_dvb_5_1=no
1954 AM_CONDITIONAL([HAVE_LINUX_DVB], [test "$ac_cv_linux_dvb_5_1" = "yes"])
1957 dnl Screen capture module
1959 AC_ARG_ENABLE(screen,
1960 [AS_HELP_STRING([--enable-screen],
1961 [disable screen capture (default enabled)])])
1962 if test "${enable_screen}" != "no"; then
1963 if test "${SYS}" = "darwin"; then
1964 AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
1965 VLC_ADD_PLUGIN([screen])
1969 AM_CONDITIONAL(HAVE_MAC_SCREEN, [test "${SYS}" = "darwin" -a "x${enable_screen}" != "xno"])
1972 dnl VNC/RFB access module
1974 PKG_ENABLE_MODULES_VLC([VNC], [vnc], [libvncclient >= 0.9.9], (VNC/rfb client support), [auto])
1976 dnl RDP/Remote Desktop access module
1978 PKG_ENABLE_MODULES_VLC([FREERDP], [rdp], [freerdp >= 1.0.1], (RDP/Remote Desktop client support) )
1981 dnl Real RTSP plugin
1983 AC_ARG_ENABLE(realrtsp,
1984 [ --enable-realrtsp Real RTSP module (default disabled)])
1985 if test "${enable_realrtsp}" = "yes"; then
1986 VLC_ADD_PLUGIN([access_realrtsp])
1991 AC_ARG_ENABLE(macosx-qtkit,
1992 [ --enable-macosx-qtkit Mac OS X qtsound (audio) module (default enabled on Mac OS X <= v10.11)])
1993 if test "x${enable_macosx_qtkit}" != "xno" &&
1994 (test "${SYS}" = "darwin" || test "${enable_macosx_qtkit}" = "yes")
1996 AC_CHECK_HEADERS(QTKit/QTKit.h, [
1997 VLC_ADD_PLUGIN([qtsound])
2003 AC_SUBST(have_avfoundation, ["no"])
2004 AC_ARG_ENABLE(macosx-avfoundation,
2005 [ --enable-macosx-avfoundation Mac OS X avcapture (video) module (default enabled on Mac OS X)])
2006 if test "x${enable_macosx_avfoundation}" != "xno" &&
2007 (test "${SYS}" = "darwin" || test "${enable_macosx_avfoundation}" = "yes")
2009 SAVED_LIBS="${LIBS}"
2010 LIBS="-framework AVFoundation"
2011 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [])],[have_avfoundation=yes],[have_avfoundation=no])
2012 LIBS="${SAVED_LIBS}"
2013 if test "${have_avfoundation}" != "no"
2015 VLC_ADD_PLUGIN([avcapture])
2018 AM_CONDITIONAL(HAVE_AVFOUNDATION, [test "${have_avfoundation}" != "no"])
2021 dnl DCP plugin (using asdcplib)
2023 PKG_WITH_MODULES([ASDCP], [asdcplib], [have_asdcp="yes"])
2024 AM_CONDITIONAL(HAVE_ASDCP, [test "${have_asdcp}" = "yes"])
2030 EXTEND_HELP_STRING([Mux/Demux plugins:])
2033 dnl libdvbpsi check for ts mux/demux
2036 PKG_WITH_MODULES([DVBPSI], [libdvbpsi >= 1.2.0], [have_dvbpsi="yes"])
2037 AM_CONDITIONAL(HAVE_DVBPSI, [test "${have_dvbpsi}" = "yes"])
2041 dnl GME demux plugin
2044 [AS_HELP_STRING([--enable-gme],
2045 [use Game Music Emu (default auto)])])
2046 AS_IF([test "${enable_gme}" != "no"], [
2047 AC_CHECK_HEADER([gme/gme.h], [
2048 VLC_ADD_LIBS([gme], [-lgme])
2049 VLC_ADD_PLUGIN([gme])
2051 AS_IF([test "x${enable_gme}" != "x"], [
2052 AC_MSG_ERROR([GME cannot be found. Please install the development files.])
2062 [AS_HELP_STRING([--enable-sid],[C64 sid demux support (default auto)])])
2063 AS_IF([test "${enable_sid}" != "no"], [
2064 PKG_CHECK_MODULES(SID, [libsidplay2], [
2066 oldCPPFLAGS="$CPPFLAGS"
2067 CPPFLAGS="$CPPFLAGS $SID_CFLAGS"
2068 AC_CHECK_HEADER([sidplay/builders/resid.h], [
2069 VLC_ADD_PLUGIN([sid])
2070 VLC_ADD_CFLAGS([sid], [$SID_CFLAGS])
2071 VLC_ADD_LIBS([sid], [$SID_LIBS] [-lresid-builder])
2073 AS_IF([test -n "${enable_sid}"],
2074 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2075 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2078 CPPFLAGS="$oldCPPFLAGS"
2081 AS_IF([test "x${enable_sid}" = "xyes"],
2082 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2083 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2090 dnl ogg demux plugin
2092 PKG_ENABLE_MODULES_VLC([OGG], [mux_ogg], [ogg >= 1.0], [Ogg demux support], [auto])
2093 PKG_CHECK_MODULES(LIBVORBIS, [vorbis >= 1.1], [
2094 AC_DEFINE(HAVE_LIBVORBIS, 1, [Define to 1 if you have the libvorbis])
2096 PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto], [${LIBVORBIS_CFLAGS}], [${LIBVORBIS_LIBS}])
2097 if test "${enable_sout}" != "no"; then
2098 dnl Check for libshout
2099 PKG_ENABLE_MODULES_VLC([SHOUT], [access_output_shout], [shout >= 2.1], [libshout output plugin], [auto])
2103 dnl matroska demux plugin
2105 PKG_ENABLE_MODULES_VLC([MATROSKA], [mkv], [libebml libmatroska], [MKV format support], [auto])
2108 dnl modplug demux plugin
2111 [AS_HELP_STRING([--disable-mod],
2112 [do not use libmodplug (default auto)])])
2113 if test "${enable_mod}" != "no" ; then
2114 PKG_CHECK_MODULES(LIBMODPLUG, [libmodplug >= 0.8.4 libmodplug != 0.8.8], [
2115 VLC_ADD_PLUGIN([mod])
2116 VLC_ADD_CXXFLAGS([mod],[$LIBMODPLUG_CFLAGS])
2117 VLC_ADD_CFLAGS([mod],[$LIBMODPLUG_CFLAGS]) #modules/demux/mod.c needs CFLAGS_mod, not CXXFLAGS_mod
2118 VLC_ADD_LIBS([mod],[$LIBMODPLUG_LIBS])
2120 AS_IF([test -n "${enable_mod}"],
2121 [AC_MSG_ERROR([${LIBMODPLUG_PKG_ERRORS}.])],
2122 [AC_MSG_WARN([${LIBMODPLUG_PKG_ERRORS}.])])
2127 dnl mpc demux plugin
2130 [AS_HELP_STRING([--disable-mpc], [do not use libmpcdec (default auto)])])
2131 if test "${enable_mpc}" != "no"
2133 AC_CHECK_HEADERS([mpc/mpcdec.h], [
2134 VLC_ADD_PLUGIN([mpc])
2135 VLC_ADD_LIBS([mpc],[-lmpcdec])],
2136 [AC_CHECK_HEADERS([mpcdec/mpcdec.h], [
2137 VLC_ADD_PLUGIN([mpc])
2138 VLC_ADD_LIBS([mpc],[-lmpcdec])])])
2145 EXTEND_HELP_STRING([Codec plugins:])
2150 AC_ARG_ENABLE(wma-fixed,
2151 [ --enable-wma-fixed libwma-fixed module (default disabled)])
2152 if test "${enable_wma_fixed}" = "yes"
2154 VLC_ADD_PLUGIN([wma_fixed])
2158 dnl shine encoder plugin
2160 PKG_ENABLE_MODULES_VLC([SHINE], [], [shine >= 3.0.0], [MPEG Audio Layer 3 encoder], [auto], [], [], [])
2164 dnl openmax il codec plugin
2166 AC_ARG_ENABLE(omxil,
2167 [ --enable-omxil openmax il codec module (default disabled)])
2168 if test "${enable_omxil}" = "yes"
2170 VLC_ADD_PLUGIN([omxil])
2174 dnl openmax il vout plugin
2176 AC_ARG_ENABLE(omxil-vout,
2177 [ --enable-omxil-vout openmax il video output module (default disabled)])
2178 if test "${enable_omxil_vout}" = "yes"
2180 VLC_ADD_PLUGIN([omxil_vout])
2184 dnl raspberry pi openmax il configuration
2186 AC_ARG_ENABLE(rpi-omxil,
2187 [ --enable-rpi-omxil openmax il configured for raspberry pi (default disabled)])
2188 if test "${enable_rpi_omxil}" = "yes"
2190 VLC_ADD_PLUGIN([omxil omxil_vout])
2191 VLC_ADD_CFLAGS([omxil omxil_vout],[-DRPI_OMX])
2195 dnl CrystalHD codec plugin
2197 AC_ARG_ENABLE(crystalhd,
2198 [ --enable-crystalhd crystalhd codec plugin (default auto)])
2199 if test "${enable_crystalhd}" != "no"; then
2200 AC_CHECK_HEADER(libcrystalhd/libcrystalhd_if.h, [
2201 VLC_ADD_PLUGIN([crystalhd])
2202 VLC_ADD_LIBS([crystalhd], [-lcrystalhd])
2204 if test "${SYS}" = "mingw32" ; then
2205 AC_CHECK_HEADERS(libcrystalhd/bc_dts_defs.h, [
2206 VLC_ADD_PLUGIN([crystalhd])
2207 AC_CHECK_HEADERS(libcrystalhd/bc_drv_if.h, [
2208 VLC_ADD_LIBS([crystalhd], [-lbcmDIL])
2211 AS_IF([test x"${enable_crystalhd}" = "xyes"],
2212 [AC_MSG_ERROR("Could not find CrystalHD development headers")],
2213 [AC_MSG_WARN("Could not find CrystalHD development headers")])
2214 ],[#define __LINUX_USER__
2215 #include <libcrystalhd/bc_dts_types.h>
2219 #include <libcrystalhd/bc_dts_types.h>
2230 AC_ARG_WITH(mad, [ --with-mad=PATH path to libmad], [
2235 AS_IF([test "${with_mad}" != "no"], [
2236 MAD_CFLAGS="-I${with_mad}/include"
2237 MAD_LIBS="-L${with_mad}/lib"
2241 [ --enable-mad libmad module (default enabled)])
2242 AS_IF([test "${enable_mad}" != "no"], [
2244 CPPFLAGS="${CPPFLAGS} ${MAD_CFLAGS}"
2245 LDFLAGS="${LDFLAGS} ${MAD_LIBS}"
2246 AC_CHECK_HEADERS(mad.h, [
2247 AC_CHECK_LIB(mad, mad_bit_init, [
2249 MAD_LIBS="${MAD_LIBS} -lmad"
2253 AS_IF([test -n "$enable_mad" -a "${have_mad}" = "no"], [
2254 AC_MSG_ERROR([Could not find libmad. Install it or pass --disable-mad to disable it.])
2257 AC_SUBST(MAD_CFLAGS)
2259 AM_CONDITIONAL([HAVE_MAD], [test "${have_mad}" = "yes"])
2264 PKG_ENABLE_MODULES_VLC([MPG123], [mpg123], [libmpg123], [libmpg123 decoder support], [auto])
2269 AC_ARG_ENABLE(gst-decode,
2270 [ --enable-gst-decode GStreamer based decoding support (currently supports only video decoding) (default auto)])
2272 have_gst_decode="no"
2273 AS_IF([test "${enable_gst_decode}" != "no"], [
2274 PKG_CHECK_MODULES([GST_APP], [gstreamer-app-1.0], [
2275 PKG_CHECK_MODULES([GST_VIDEO], [gstreamer-video-1.0], [
2276 have_gst_decode="yes"
2278 AC_MSG_WARN([${GST_VIDEO_PKG_ERRORS}. GStreamer decoder module will not be built.])
2281 AC_MSG_WARN([${GST_APP_PKG_ERRORS}. GStreamer modules will not be built.])
2284 AM_CONDITIONAL([HAVE_GST_DECODE], [test "${have_gst_decode}" = "yes"])
2287 dnl avcodec decoder/encoder plugin
2289 AC_ARG_ENABLE(merge-ffmpeg,
2290 [ --enable-merge-ffmpeg merge FFmpeg-based plugins (default disabled)],, [
2291 enable_merge_ffmpeg="no"
2293 AM_CONDITIONAL([MERGE_FFMPEG], [test "$enable_merge_ffmpeg" != "no"])
2295 AC_MSG_CHECKING([for libavutil variant])
2296 PKG_CHECK_EXISTS([libavutil], [
2297 libavutil_version="$(${PKG_CONFIG} --modversion libavutil)"
2298 libavutil_micro="${libavutil_version##*.}"
2299 AS_IF([test ${libavutil_micro} -le 99], [
2307 AC_MSG_RESULT([${avfork}])
2309 AC_ARG_ENABLE(avcodec,
2310 [ --enable-avcodec libavcodec codec (default enabled)])
2311 AS_IF([test "${enable_avcodec}" != "no"], [
2312 dnl We need >=57.16.0 from libav or >=57.37.100 from ffmpeg
2314 libav) av_codec_ver="57.16.0" ;;
2315 ffmpeg) av_codec_ver="57.37.100" ;;
2316 *) AC_MSG_ERROR([Missing libav or FFmpeg. Pass --disable-avcodec to ignore this error.])
2318 PKG_CHECK_MODULES(AVCODEC,[libavcodec >= ${av_codec_ver} libavutil >= 52.0.0], [
2320 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2321 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2322 AC_CHECK_HEADERS(libavcodec/avcodec.h)
2323 AC_CHECK_HEADERS(libavutil/avutil.h)
2327 AC_MSG_ERROR([${AVCODEC_PKG_ERRORS}. Pass --disable-avcodec to ignore this error.])
2332 AM_CONDITIONAL([HAVE_AVCODEC], [test "${have_avcodec}" != "no"])
2335 dnl libva needs avcodec
2337 AC_ARG_ENABLE(libva,
2338 [ --enable-libva VAAPI GPU decoding support (libVA) (default auto)])
2340 AS_IF([test "${enable_libva}" = "yes" -a "${have_avcodec}" != "yes" ], [
2341 AC_MSG_ERROR([--enable-libva and --disable-avcodec options are mutually exclusive. Use --enable-avcodec.])
2348 AS_IF([test "${enable_libva}" != "no"], [
2349 PKG_CHECK_MODULES([LIBVA], [libva >= 0.38], [
2352 AS_IF([test -n "${enable_libva}"], [
2353 AC_MSG_ERROR([${LIBVA_PKG_ERRORS}.])
2355 AC_MSG_WARN([${LIBVA_PKG_ERRORS}.])
2358 PKG_CHECK_MODULES([LIBVA_DRM], [libva-drm], [
2359 have_vaapi_drm="yes"
2361 AC_MSG_WARN([${LIBVA_DRM_PKG_ERRORS}.])
2363 PKG_CHECK_MODULES(LIBVA_X11, [libva-x11], [
2364 have_vaapi_x11="yes"
2366 AC_MSG_WARN([${LIBVA_X11_PKG_ERRORS}.])
2368 PKG_CHECK_MODULES(LIBVA_WL, [libva-wayland], [
2371 AC_MSG_WARN([${LIBVA_WL_PKG_ERRORS}.])
2374 AM_CONDITIONAL([HAVE_VAAPI], [test "${have_vaapi}" = "yes"])
2375 AM_CONDITIONAL([HAVE_VAAPI_DRM], [test "${have_vaapi_drm}" = "yes"])
2376 AM_CONDITIONAL([HAVE_VAAPI_X11], [test "${have_vaapi_x11}" = "yes"])
2377 AM_CONDITIONAL([HAVE_VAAPI_WL], [test "${have_vaapi_wl}" = "yes"])
2379 have_avcodec_vaapi="no"
2380 AS_IF([test "${have_vaapi}" = "yes" -a "${have_avcodec}" = "yes"], [
2382 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2383 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2384 AC_CHECK_HEADERS([libavcodec/vaapi.h], [
2385 AC_MSG_NOTICE([VA API acceleration activated])
2386 have_avcodec_vaapi="yes"
2388 AS_IF([test -n "${enable_libva}"], [
2389 AC_MSG_ERROR([libva is present but libavcodec/vaapi.h is missing])
2391 AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing ])
2396 AM_CONDITIONAL([HAVE_AVCODEC_VAAPI], [test "${have_avcodec_vaapi}" = "yes"])
2399 dnl dxva2 needs avcodec
2401 AC_ARG_ENABLE(dxva2,
2402 [ --enable-dxva2 DxVA2 GPU decoding support (default auto)])
2404 have_avcodec_dxva2="no"
2405 AS_IF([test "${enable_dxva2}" != "no"], [
2406 if test "${SYS}" = "mingw32"; then
2407 AS_IF([test "x${have_avcodec}" = "xyes"], [
2408 AC_CHECK_HEADERS(dxva2api.h,
2410 AC_CHECK_HEADERS(libavcodec/dxva2.h, [
2411 AC_MSG_NOTICE([DxVA2 acceleration activated])
2412 have_avcodec_dxva2="yes"
2414 AS_IF([test "${enable_dxva2}" = "yes"],
2415 [AC_MSG_ERROR([dxva2 is present but libavcodec/dxva2.h is missing])],
2416 [AC_MSG_WARN([dxva2 is present but libavcodec/dxva2.h is missing ])])
2417 ], [#undef _WIN32_WINNT
2418 /* DXVA2 is only available in Vista and above */
2419 #define _WIN32_WINNT 0x600])
2421 AS_IF([test "${enable_dxva2}" = "yes"],
2422 [AC_MSG_ERROR([Could not find required dxva2api.h])],
2423 [AC_MSG_WARN([dxva2api.h not found])])
2424 ],[#include <d3d9.h>])
2426 AS_IF([test "x${enable_dxva2}" != "x"], [
2427 AC_MSG_ERROR([--enable-dxva2 and --disable-avcodec options are mutually exclusive.])
2432 AM_CONDITIONAL([HAVE_AVCODEC_DXVA2], [test "${have_avcodec_dxva2}" = "yes"])
2435 dnl d3d11va needs avcodec
2437 AC_ARG_ENABLE(d3d11va,
2438 [ --enable-d3d11va D3D11 GPU decoding support (default auto)])
2440 have_avcodec_d3d11va="no"
2441 AS_IF([test "${enable_d3d11va}" != "no"], [
2442 if test "${SYS}" = "mingw32"; then
2443 AS_IF([test "x${have_avcodec}" = "xyes"], [
2444 AC_CHECK_TYPES([ID3D11VideoDecoder],
2446 AC_CHECK_HEADERS(dxva2api.h,
2448 AC_CHECK_HEADERS(libavcodec/d3d11va.h, [
2449 AC_MSG_NOTICE([D3D11 acceleration activated])
2450 AC_DEFINE(HAVE_AVCODEC_D3D11VA, 1, [Define if the d3d11va module is built])
2451 have_avcodec_d3d11va="yes"
2453 AS_IF([test "${enable_d3d11va}" = "yes"],
2454 [AC_MSG_ERROR([d3d11va is present but libavcodec/d3d11va.h is missing])],
2455 [AC_MSG_WARN([d3d11va is present but libavcodec/d3d11va.h is missing ])])
2456 ], [#undef _WIN32_WINNT
2457 /* D3D11 is only available in Vista and above */
2458 #define _WIN32_WINNT 0x600])
2460 AS_IF([test "${enable_d3d11va}" = "yes"],
2461 [AC_MSG_ERROR([Could not find required dxva2api.h])],
2462 [AC_MSG_WARN([dxva2api.h not found])])
2463 ],[#include <d3d9.h>])
2465 AS_IF([test "${enable_d3d11va}" = "yes"],
2466 [AC_MSG_ERROR([Could not find required ID3D11VideoDecoder in d3d11.h])],
2467 [AC_MSG_WARN([ID3D11VideoDecoder not found])])
2468 ], [#include <d3d11.h>])
2470 AS_IF([test "x${enable_d3d11va}" != "x"], [
2471 AC_MSG_ERROR([--enable-d3d11va and --disable-avcodec options are mutually exclusive.])
2476 AM_CONDITIONAL([HAVE_AVCODEC_D3D11VA], [test "${have_avcodec_d3d11va}" = "yes"])
2481 AC_CHECK_HEADERS(dxgidebug.h)
2484 dnl avformat demuxer/muxer plugin
2487 AC_ARG_ENABLE(avformat,
2488 [ --enable-avformat libavformat containers (default enabled)],, [
2489 enable_avformat="${have_avcodec}"
2492 AS_IF([test "${enable_avformat}" != "no"], [
2493 PKG_CHECK_MODULES(AVFORMAT,[libavformat >= 53.21.0 libavcodec libavutil], [
2496 CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2497 CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2498 AC_CHECK_HEADERS(libavformat/avformat.h libavformat/avio.h)
2499 AC_CHECK_HEADERS(libavcodec/avcodec.h)
2500 AC_CHECK_HEADERS(libavutil/avutil.h)
2501 AS_IF([test "$enable_merge_ffmpeg" = "no"], [
2506 AC_MSG_ERROR([${AVFORMAT_PKG_ERRORS}. Pass --disable-avformat to ignore this error.])
2509 AM_CONDITIONAL([HAVE_AVFORMAT], [test "${enable_avformat}" != "no"])
2512 dnl swscale image scaling and conversion plugin
2515 AC_ARG_ENABLE(swscale,
2516 AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
2517 (default enabled)]))
2518 if test "${enable_swscale}" != "no"
2520 PKG_CHECK_MODULES(SWSCALE,[libswscale],
2523 CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
2524 CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
2525 AC_CHECK_HEADERS(libswscale/swscale.h)
2526 AC_CHECK_HEADERS(libavutil/avutil.h)
2527 VLC_ADD_PLUGIN([swscale])
2528 VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
2529 VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
2530 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2531 VLC_ADD_LIBS([swscale],[${ac_cv_ld_bsymbolic}])
2535 AC_MSG_ERROR([${SWSCALE_PKG_ERRORS}. Pass --disable-swscale to ignore this error. Proper software scaling and some video chroma conversion will be missing.])
2543 AC_ARG_ENABLE(postproc,
2544 [ --enable-postproc libpostproc image post-processing (default auto)])
2545 if test "${enable_postproc}" != "no"
2547 PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
2550 CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
2551 CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
2552 AC_CHECK_HEADERS(postproc/postprocess.h)
2553 VLC_ADD_PLUGIN([postproc])
2556 AC_MSG_WARN([${POSTPROC_PKG_ERRORS}.])
2561 dnl faad decoder plugin
2564 [ --enable-faad faad codec (default auto)])
2566 AS_IF([test "${enable_faad}" != "no"], [
2567 AC_CHECK_HEADERS([neaacdec.h], [
2568 AC_CHECK_LIB(faad, NeAACDecOpen, [have_faad="yes"],, [$LIBM])
2570 AS_IF([test "${have_faad}" = "yes"], [
2571 VLC_ADD_PLUGIN([faad])
2572 VLC_ADD_LIBS([faad],[-lfaad])
2574 AS_IF([test "${enable_faad}" = "yes"], [
2575 AC_MSG_ERROR([cannot find FAAD library])
2577 AC_MSG_WARN([cannot find FAAD library])
2584 dnl AOM decoder plugin
2586 PKG_ENABLE_MODULES_VLC([AOM], [], [aom], [experimental AV1 codec], [disabled])
2589 dnl libvpx decoder plugin
2592 AS_HELP_STRING([--enable-vpx],[libvpx VP8/VP9 encoder and decoder (default auto)]))
2593 AS_IF([test "${enable_vpx}" != "no"],[
2594 PKG_CHECK_MODULES([VPX], [vpx >= 1.5.0], [
2595 VLC_ADD_PLUGIN([vpx])
2596 VLC_ADD_CPPFLAGS([vpx], [${VPX_CFLAGS}])
2597 VLC_ADD_LIBS([vpx], [${VPX_LIBS}])
2598 AC_CHECK_LIB([vpx],[vpx_codec_vp8_dx], [
2599 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP8_DECODER])
2600 ], [], [${VPX_LIBS}])
2601 AC_CHECK_LIB([vpx],[vpx_codec_vp9_dx], [
2602 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP9_DECODER])
2603 ], [], [${VPX_LIBS}])
2604 AC_CHECK_LIB([vpx],[vpx_codec_vp8_cx], [
2605 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP8_ENCODER])
2606 ], [], [${VPX_LIBS}])
2607 AC_CHECK_LIB([vpx],[vpx_codec_vp9_cx], [
2608 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP9_ENCODER])
2609 ], [], [${VPX_LIBS}])
2611 AS_IF([test "${enable_vpx}" = "yes"],[
2612 AC_MSG_ERROR([libvpx 1.5.0 or higher was not found])
2617 dnl twolame encoder plugin
2619 PKG_ENABLE_MODULES_VLC([TWOLAME], [], [twolame], [MPEG Audio Layer 2 encoder], [auto], [], [], [ -DLIBTWOLAME_STATIC])
2622 dnl fdk-aac encoder plugin
2624 PKG_ENABLE_MODULES_VLC([FDKAAC], [], [fdk-aac], [FDK-AAC encoder], [disabled])
2628 dnl A52/AC3 decoder plugin
2631 [ --enable-a52 A/52 support with liba52 (default enabled)])
2632 if test "${enable_a52}" != "no"
2635 [ --with-a52=PATH a52 headers and libraries])
2636 if test -z "${with_a52}"
2641 LDFLAGS_test="-L${with_a52}/lib"
2642 CPPFLAGS_test="-I${with_a52}/include"
2645 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_test} ${CPPFLAGS_a52}"
2646 LDFLAGS="${LDFLAGS} ${LDFLAGS_test} ${LIBS_a52}"
2647 AC_CHECK_HEADERS(a52dec/a52.h, [
2648 AC_CHECK_LIB(a52, a52_free, [
2649 VLC_ADD_PLUGIN([a52])
2650 VLC_ADD_LIBS([a52],[${LDFLAGS_test} -la52 $LIBM])
2651 VLC_ADD_CPPFLAGS([a52],[${CPPFLAGS_test}])
2653 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.])
2656 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.])
2662 dnl DTS Coherent Acoustics decoder plugin
2664 PKG_ENABLE_MODULES_VLC([DCA], [dca], [libdca >= 0.0.5], [DTS Coherent Acoustics support with libdca], [auto])
2669 PKG_ENABLE_MODULES_VLC([FLAC], [], [flac], [libflac decoder/encoder support], [auto])
2674 PKG_ENABLE_MODULES_VLC([LIBMPEG2], [], [libmpeg2 > 0.3.2], [libmpeg2 decoder support], [auto])
2679 PKG_ENABLE_MODULES_VLC([VORBIS], [], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
2684 AC_ARG_ENABLE(tremor,
2685 [ --enable-tremor Tremor decoder support (default disabled)])
2686 if test "${enable_tremor}" = "yes"
2688 AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
2689 VLC_ADD_PLUGIN([tremor])
2696 PKG_ENABLE_MODULES_VLC([SPEEX], [], [ogg speex >= 1.0.5], [Speex support], [auto])
2698 AS_IF([test "${enable_speex}" != "no"], [
2699 PKG_CHECK_MODULES([SPEEXDSP], [speexdsp], [
2702 AC_MSG_WARN([${SPEEXDSP_PKG_ERRORS}.])
2705 AM_CONDITIONAL([HAVE_SPEEXDSP], [test "$have_speexdsp" = "yes"])
2710 PKG_ENABLE_MODULES_VLC([OPUS], [], [ogg opus >= 1.0.3], [Opus support], [auto])
2713 dnl Ambisonic channel mixer and binauralizer plugin
2715 PKG_ENABLE_MODULES_VLC([SPATIALAUDIO], [], [spatialaudio], [Ambisonic channel mixer and binauralizer], [auto])
2718 dnl theora decoder plugin
2720 PKG_ENABLE_MODULES_VLC([THEORA], [], [ogg theoradec >= 1.0 theoraenc], [experimental theora codec], [auto])
2723 dnl OggSpots decoder plugin
2725 PKG_ENABLE_MODULES_VLC([OGGSPOTS], [], [ogg], [experimental OggSpots codec], [auto])
2728 dnl Daala decoder plugin
2730 PKG_ENABLE_MODULES_VLC([DAALA], [], [daaladec daalaenc], [experimental daala codec], [disabled])
2733 dnl schroedinger decoder plugin (for dirac format video)
2735 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [], [schroedinger-1.0 >= 1.0.10], [dirac decoder and encoder using schroedinger], [auto])
2738 dnl PNG decoder module
2741 [ --enable-png PNG support (default enabled)])
2742 AS_IF([test "${enable_png}" != "no"], [
2743 AC_CHECK_HEADERS(png.h, [
2745 LDFLAGS="${LDFLAGS} -lz $LIBM"
2746 AC_CHECK_LIB(png, png_set_alpha_mode, [
2747 VLC_ADD_PLUGIN([png])
2754 dnl JPEG decoder module
2757 [ --enable-jpeg JPEG support (default enabled)])
2758 AS_IF([test "${enable_jpeg}" != "no"], [
2759 AC_CHECK_HEADERS(jpeglib.h, [
2760 VLC_ADD_PLUGIN([jpeg])
2765 dnl BPG decoder module
2768 [ --enable-bpg BPG support (default disabled)])
2769 AS_IF([test "${enable_bpg}" != "no"], [
2770 AC_CHECK_HEADERS(libbpg.h, [
2771 VLC_ADD_PLUGIN([bpg])
2776 dnl H262 encoder plugin (lib262)
2779 [ --enable-x262 H262 encoding support with static libx262 (default disabled)])
2780 if test "${enable_x262}" != "no"; then
2781 PKG_CHECK_MODULES(X262, x262, [
2782 VLC_ADD_PLUGIN([x262])
2783 VLC_ADD_LDFLAGS([x262],[${X262_LIBS}])
2784 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2785 VLC_ADD_LIBS([x262],[${av_cv_ld_bsymbolic}])
2787 VLC_ADD_CFLAGS([x262],[${X262_CFLAGS}])
2788 if echo ${X262_LIBS} |grep -q 'pthreadGC2'; then
2789 VLC_ADD_CFLAGS([x262], [-DPTW32_STATIC_LIB])
2792 if test "${enable_x262}" = "yes"; then
2793 AC_MSG_ERROR([x262 module doesn't work without staticly compiled libx262.a])
2799 PKG_ENABLE_MODULES_VLC([X265],, [x265], [HEVC/H.265 encoder], [auto])
2802 dnl H264 encoder plugin (10-bit lib264)
2804 AC_ARG_ENABLE(x26410b,
2805 [ --enable-x26410b H264 10-bit encoding support with static libx264 (default disabled)])
2806 if test "${enable_x26410b}" != "no"; then
2807 PKG_CHECK_MODULES(X26410B, x26410b, [
2808 VLC_ADD_PLUGIN([x26410b])
2809 VLC_ADD_LIBS([x26410b],[${X26410B_LIBS}])
2810 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2811 VLC_ADD_LDFLAGS([x26410b],[${ac_cv_ld_bsymbolic}])
2813 VLC_ADD_CFLAGS([x26410b],[${X26410B_CFLAGS}])
2814 if echo ${X26410B_LIBS} |grep -q 'pthreadGC2'; then
2815 VLC_ADD_CFLAGS([x26410b], [-DPTW32_STATIC_LIB])
2818 if test "${enable_x26410b}" = "yes"; then
2819 AC_MSG_ERROR([x26410b module doesn't work without staticly compiled libx264.a])
2826 dnl H264 encoder plugin (using libx264)
2829 [ --enable-x264 H264 encoding support with libx264 (default enabled)])
2830 if test "${enable_x264}" != "no"; then
2831 PKG_CHECK_MODULES(X264,x264 >= 0.86, [
2832 VLC_ADD_PLUGIN([x264])
2833 VLC_ADD_LIBS([x264],[${X264_LIBS}])
2835 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2836 VLC_ADD_LDFLAGS([x264],[${ac_cv_ld_bsymbolic}])
2839 VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
2840 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
2841 VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
2844 if test "${enable_x264}" = "yes"; then
2845 AC_MSG_ERROR([${X264_PKG_ERRORS}: you may get it from http://www.videolan.org/x264.html])
2851 dnl Intel QuickSync (aka MediaSDK) H264/H262 encoder
2853 PKG_ENABLE_MODULES_VLC([MFX], [qsv], [libmfx], [Intel QuickSync MPEG4-Part10/MPEG2 (aka H.264/H.262) encoder], [auto])
2856 dnl libfluidsynth (MIDI synthetizer) plugin
2858 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [], [fluidsynth >= 1.1.2], [MIDI synthetiser with libfluidsynth], [auto])
2859 PKG_ENABLE_MODULES_VLC([FLUIDLITE], [fluidsynth], [fluidlite], [MIDI synthetiser with libfluidsynth], [auto])
2860 AC_CHECK_HEADERS(fluidlite.h, [AC_SUBST([FLUIDSYNTH_LIBS], ${FLUIDLITE_LIBS})])
2863 dnl Teletext Modules
2864 dnl vbi decoder plugin (using libzbvi)
2869 AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
2870 libzvbi (default enabled)]))
2872 AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
2873 zvbi) (default enabled if zvbi is absent)]))
2875 AS_IF( [test "${enable_zvbi}" != "no"],[
2876 PKG_CHECK_MODULES(ZVBI, [zvbi-0.2 >= 0.2.28],
2878 VLC_ADD_PLUGIN([zvbi])
2879 AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
2880 AS_IF( [test "${enable_telx}" = "yes"],[
2881 AC_MSG_WARN([The zvbi and telx modules are incompatible. Using zvbi.])
2884 AC_MSG_WARN([${ZVBI_PKG_ERRORS}. Enabling the telx module instead.])
2887 AS_IF( [test "${enable_telx}" != "no" ],[
2888 VLC_ADD_PLUGIN([telx])
2892 dnl libass subtitle rendering module
2894 AC_ARG_ENABLE(libass,
2895 [ --enable-libass Subtitle support using libass (default enabled)])
2896 AS_IF( [test "${enable_libass}" != "no"], [
2897 PKG_CHECK_MODULES(LIBASS, [libass >= 0.9.8],
2899 VLC_ADD_PLUGIN([libass])
2901 AC_CHECK_HEADERS(fontconfig/fontconfig.h,
2902 [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
2903 VLC_ADD_LIBS([libass],[-lfontconfig])
2906 AC_MSG_WARN([${LIBASS_PKG_ERRORS}.])
2911 dnl ARIB subtitles rendering module
2913 AC_ARG_ENABLE(aribsub,
2914 [ --enable-aribsub ARIB Subtitles support (default enabled)])
2915 AS_IF( [test "${enable_aribsub}" != "no" ],[
2916 PKG_CHECK_MODULES(ARIBB24, [aribb24 >= 1.0.1], [
2918 VLC_ADD_PLUGIN([aribsub])
2919 VLC_ADD_LIBS([aribsub],[-laribb24])
2920 AC_DEFINE(HAVE_ARIBB24, 1, [Define if libaribb24 is available.])
2922 AC_MSG_WARN(Library [aribb24] needed for [aribsub] was not found)
2926 AM_CONDITIONAL([HAVE_ARIBB24], [test x"${have_aribb24}" = x"yes"])
2931 PKG_ENABLE_MODULES_VLC([ARIBB25], [aribcam], [aribb25 >= 0.2.6], [ARIB STD-B25], [auto])
2934 dnl kate decoder plugin
2936 PKG_ENABLE_MODULES_VLC([KATE], [], [kate >= 0.3.0], [kate codec], [auto])
2939 dnl tiger rendering for kate decoder plugin
2941 AC_ARG_ENABLE(tiger,
2942 [ --enable-tiger Tiger rendering library for Kate streams (default auto)])
2943 AS_IF([test "${enable_tiger}" != "no"], [
2944 PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
2945 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])],[
2946 AS_IF([test -n "${enable_tiger}"], [
2947 AC_MSG_ERROR([${TIGER_PKG_ERRORS}.])
2957 EXTEND_HELP_STRING([Video plugins:])
2962 PKG_CHECK_MODULES([EGL], [egl], [
2967 AM_CONDITIONAL([HAVE_EGL], [test "${have_egl}" = "yes"])
2970 PKG_CHECK_MODULES([GL], [gl], [
2973 AC_MSG_CHECKING([for OpenGL])
2974 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
2976 # include <GL/glew.h>
2980 [int t0 = GL_TEXTURE0;]])
2984 AS_IF([test "${SYS}" != "mingw32"], [
2987 GL_LIBS="-lopengl32"
2990 AC_MSG_RESULT([${have_gl}])
2992 AM_CONDITIONAL([HAVE_GL], [test "${have_gl}" = "yes"])
2994 dnl OpenGL ES 2: depends on EGL 1.1
2995 PKG_ENABLE_MODULES_VLC([GLES2], [], [glesv2], [OpenGL ES v2 support], [disabled])
3002 AC_CHECK_HEADERS(X11/Xlib.h)
3005 dnl X C Bindings modules
3008 [ --enable-xcb X11 support with XCB (default enabled)],, [
3009 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "darwin"], [
3015 AC_ARG_ENABLE(xvideo,
3016 [ --enable-xvideo XVideo support (default enabled)],, [
3017 enable_xvideo="$enable_xcb"
3021 have_xcb_keysyms="no"
3023 have_xcb_xvideo="no"
3024 AS_IF([test "${enable_xcb}" != "no"], [
3026 PKG_CHECK_MODULES(XCB, [xcb >= 1.6])
3028 PKG_CHECK_MODULES(XCB_SHM, [xcb-shm])
3029 PKG_CHECK_MODULES(XCB_COMPOSITE, [xcb-composite])
3030 PKG_CHECK_MODULES(XPROTO, [xproto])
3032 AS_IF([test "${enable_xvideo}" != "no"], [
3033 PKG_CHECK_MODULES(XCB_XV, [xcb-xv >= 1.1.90.1], [have_xcb_xvideo="yes"])
3036 PKG_CHECK_MODULES(XCB_RANDR, [xcb-randr >= 1.3], [have_xcb_randr="yes"])
3039 PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms >= 0.3.4], [have_xcb_keysyms="yes"], [
3040 AC_MSG_WARN([${XCB_KEYSYMS_PKG_ERRORS}. Hotkeys will not work.])
3043 AM_CONDITIONAL([HAVE_XCB], [test "${have_xcb}" = "yes"])
3044 AM_CONDITIONAL([HAVE_XCB_KEYSYMS], [test "${have_xcb_keysyms}" = "yes"])
3045 AM_CONDITIONAL([HAVE_XCB_RANDR], [test "${have_xcb_randr}" = "yes"])
3046 AM_CONDITIONAL([HAVE_XCB_XVIDEO], [test "${have_xcb_xvideo}" = "yes"])
3052 AC_ARG_ENABLE(vdpau,
3053 [AS_HELP_STRING([--enable-vdpau], [VDPAU hardware support (default auto)])])
3055 AS_IF([test "${enable_vdpau}" != "no"], [
3056 PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.6], [
3058 AS_IF([test "${no_x}" = "yes"], [
3059 AC_MSG_ERROR([VDPAU requires Xlib (X11).])
3062 AS_IF([test -n "${enable_vdpau}"], [
3063 AC_MSG_ERROR([${VDPAU_PKG_ERRORS}.])
3067 AM_CONDITIONAL([HAVE_VDPAU], [test "${have_vdpau}" = "yes"])
3069 have_avcodec_vdpau="no"
3070 AS_IF([test "${have_vdpau}" = "yes" -a "${have_avcodec}" = "yes"], [
3072 libav) av_vdpau_ver="56.10.0" ;;
3073 ffmpeg) av_vdpau_ver="56.19.100" ;;
3075 PKG_CHECK_EXISTS([libavcodec >= ${av_vdpau_ver}], [
3076 have_avcodec_vdpau="yes"
3077 AC_MSG_NOTICE([VDPAU decoding acceleration activated])
3079 AS_IF([test -n "${enable_vdpau}"], [
3080 AC_MSG_ERROR([libavcodec >= 56.10.0 is required for VDPAU decoding.])
3082 AC_MSG_WARN([libavcodec >= 56.10.0 are required for VDPAU decoding.])
3086 AM_CONDITIONAL([HAVE_AVCODEC_VDPAU], [test "${have_avcodec_vdpau}" = "yes"])
3092 AC_ARG_ENABLE(wayland,
3093 [AS_HELP_STRING([--enable-wayland], [Wayland support (default auto)])])
3095 have_wayland_egl="no"
3097 AS_IF([test "${enable_wayland}" != "no"], [
3098 PKG_CHECK_MODULES([WAYLAND_CLIENT], [wayland-client >= 1.5.91], [
3099 AC_MSG_CHECKING([for the Wayland protocols])
3100 PKG_CHECK_EXISTS([wayland-protocols >= 1.4], [
3101 WAYLAND_PROTOCOLS="$(${PKG_CONFIG} wayland-protocols --variable pkgdatadir)"
3102 AC_MSG_RESULT([${WAYLAND_PROTOCOLS}])
3104 AC_MSG_RESULT([not found])
3105 AC_MSG_ERROR([$(${PKG_CONFIG} --print-errors 'wayland-protocols >= 1.4')])
3108 AC_MSG_CHECKING([for the Wayland scanner])
3109 PKG_CHECK_EXISTS([wayland-scanner], [
3110 WAYLAND_SCANNER="$(${PKG_CONFIG} wayland-scanner --variable wayland_scanner)"
3111 AC_MSG_RESULT([${WAYLAND_SCANNER}])
3113 AC_MSG_RESULT([not found])
3114 AC_MSG_ERROR([$(${PKG_CONFIG} --print-errors wayland-scanner)])
3119 AS_IF([test "${have_egl}" = "yes"], [
3120 PKG_CHECK_MODULES([WAYLAND_EGL], [wayland-egl], [
3121 have_wayland_egl="yes"
3123 AC_MSG_ERROR([${WAYLAND_EGL_PKG_ERRORS}.])
3127 AS_IF([test -n "${enable_wayland}"], [
3128 AC_MSG_ERROR([${WAYLAND_CLIENT_PKG_ERRORS}.])
3132 AC_SUBST([WAYLAND_PROTOCOLS])
3133 AC_SUBST([WAYLAND_SCANNER])
3134 AM_CONDITIONAL([HAVE_WAYLAND], [test "${have_wayland}" = "yes"])
3135 AM_CONDITIONAL([HAVE_WAYLAND_EGL], [test "${have_wayland_egl}" = "yes"])
3139 dnl SDL image decoder module
3141 AC_ARG_ENABLE(sdl-image,
3142 [ --enable-sdl-image SDL image support (default enabled)])
3143 AS_IF([test "${enable_sdl_image}" != "no"],[
3144 PKG_CHECK_MODULES(SDL_IMAGE, [SDL_image >= 1.2.10], [
3145 VLC_ADD_PLUGIN([sdl_image])
3147 AC_MSG_WARN([${SDL_IMAGE_PKG_ERRORS}. You should install it alongside your SDL package.])
3154 AC_ARG_ENABLE(freetype,
3155 [ --enable-freetype freetype support (default auto)])
3156 AC_ARG_ENABLE(fribidi,
3157 [ --enable-fribidi fribidi support (default auto)])
3158 AC_ARG_ENABLE(harfbuzz,
3159 [ --enable-harfbuzz harfbuzz support (default auto)])
3160 AC_ARG_ENABLE(fontconfig,
3161 [ --enable-fontconfig fontconfig support (default auto)])
3163 AC_ARG_WITH([default-font],
3164 AS_HELP_STRING([--with-default-font=PATH],
3165 [Path to the default font]),
3166 [AC_DEFINE_UNQUOTED([DEFAULT_FONT_FILE],
3167 "$withval", [Default font])])
3168 AC_ARG_WITH([default-monospace-font],
3169 AS_HELP_STRING([--with-default-monospace-font=PATH],
3170 [Path to the default font]),
3171 [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FONT_FILE],
3172 "$withval", [Default monospace font])])
3174 AC_ARG_WITH([default-font-family],
3175 AS_HELP_STRING([--with-default-font-family=NAME],
3176 [Path to the default font family]),
3177 [AC_DEFINE_UNQUOTED([DEFAULT_FAMILY],
3178 "$withval", [Default font family])])
3179 AC_ARG_WITH([default-monospace-font-family],
3180 AS_HELP_STRING([--with-default-monospace-font-family=NAME],
3181 [Path to the default font family]),
3182 [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FAMILY],
3183 "$withval", [Default monospace font family])])
3186 have_fontconfig="no"
3190 if test "${enable_freetype}" != "no"; then
3191 PKG_CHECK_MODULES(FREETYPE, freetype2, [
3193 VLC_ADD_CPPFLAGS([skins2],[${FREETYPE_CFLAGS}])
3194 VLC_ADD_LIBS([skins2],[${FREETYPE_LIBS}])
3196 dnl fontconfig support
3197 AS_IF([test "${enable_fontconfig}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "darwin"], [
3198 PKG_CHECK_MODULES(FONTCONFIG, [fontconfig >= 2.11], [
3199 have_fontconfig="yes"
3201 AC_MSG_WARN([${FONTCONFIG_PKG_ERRORS}. Styles will be disabled in FreeType.])
3206 if test "${enable_fribidi}" != "no"; then
3207 PKG_CHECK_MODULES(FRIBIDI, fribidi, [
3209 VLC_ADD_CPPFLAGS([skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
3210 VLC_ADD_LIBS([skins2], [${FRIBIDI_LIBS}])
3211 ],[AC_MSG_WARN([${FRIBIDI_PKG_ERRORS}. Bidirectional text and complex scripts (Arabic, Farsi, Thai...) will be disabled in FreeType.])])
3214 dnl harfbuzz support
3215 if test "${have_fribidi}" != "no"; then
3216 if test "${enable_harfbuzz}" != "no"; then
3217 PKG_CHECK_MODULES(HARFBUZZ, harfbuzz, [
3219 VLC_ADD_CPPFLAGS([skins2], [${HARFBUZZ_CFLAGS} -DHAVE_HARFBUZZ])
3220 VLC_ADD_LIBS([skins2], [${HARFBUZZ_LIBS}])
3221 ],[AC_MSG_WARN([${HARFBUZZ_PKG_ERRORS}. Support for complex scripts (Arabic, Farsi, Thai...) will be disabled in FreeType.])])
3225 AS_IF([test -n "${enable_freetype}"],[
3226 AC_MSG_ERROR([${FREETYPE_PKG_ERRORS}. Install FreeType2 development or configure with --disable-freetype.])
3231 AM_CONDITIONAL([HAVE_FREETYPE], [test "${have_freetype}" = "yes"])
3232 AM_CONDITIONAL([HAVE_FONTCONFIG], [test "${have_fontconfig}" = "yes"])
3233 AM_CONDITIONAL([HAVE_FRIBIDI], [test "${have_fribidi}" = "yes"])
3234 AM_CONDITIONAL([HAVE_HARFBUZZ], [test "${have_harfbuzz}" = "yes"])
3237 dnl SAPI (text to Speech renderer for Windows)
3240 AC_CHECK_TYPES([ISpObjectToken],[
3242 ],[AC_MSG_WARN([sapi.h not found. Text to Speech renderer for Windows disabled])],
3243 [#include <windows.h>
3245 #include <sphelper.h>])
3246 AM_CONDITIONAL([HAVE_SAPI], [test "${have_sapi}" = "yes"])
3250 dnl SVG module (text rendering and image decoding)
3252 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3253 PKG_ENABLE_MODULES_VLC([SVGDEC], [], [librsvg-2.0 >= 2.9.0 cairo >= 1.13.1], [SVG image decoder library],[auto])
3256 dnl Windows DirectX module
3259 AC_ARG_ENABLE(directx,
3260 [AS_HELP_STRING([--enable-directx],
3261 [Microsoft DirectX support (default enabled on Windows)])],, [
3262 AS_IF([test "${SYS}" = "mingw32"], [
3263 enable_directx="yes"
3268 AS_IF([test "${enable_directx}" != "no"], [
3270 AC_CHECK_HEADERS(ddraw.h, [
3271 VLC_ADD_PLUGIN([directdraw])
3275 AC_CHECK_HEADERS(GL/wglew.h, [
3276 VLC_ADD_PLUGIN([glwin32 wgl])
3278 #include <windows.h>
3283 AC_CHECK_HEADERS(d3d11.h, [
3284 VLC_ADD_PLUGIN([direct3d11 direct3d11_deinterlace direct3d11_adjust])
3288 AC_CHECK_HEADERS(d3d9.h, [
3289 VLC_ADD_PLUGIN([direct3d9])
3290 AC_CHECK_HEADERS(d3dx9effect.h)
3292 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
3293 [[#define COBJMACROS
3295 #include <dxva2api.h>
3296 #ifndef IDirectXVideoProcessorService_GetVideoProcessorDeviceGuids
3297 # error dxva2 too old
3301 VLC_ADD_PLUGIN([direct3d9_deinterlace direct3d9_adjust])
3303 [AC_MSG_WARN([Could not find required IDirectXVideoDecoder in dxva2api.h])])
3309 dnl Linux framebuffer module
3311 AC_CHECK_HEADER([linux/fb.h], [
3312 VLC_ADD_PLUGIN([fb])
3320 [ --enable-aa aalib output (default disabled)])
3321 if test "${enable_aa}" = "yes"
3323 AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
3324 if test "${have_aa}" = "true"
3326 VLC_ADD_PLUGIN([aa])
3333 PKG_ENABLE_MODULES_VLC([CACA], [], [caca >= 0.99.beta14], [libcaca output],[auto])
3339 [AS_HELP_STRING([--enable-kva],
3340 [support the K Video Accelerator KVA (default enabled on OS/2)])],, [
3341 AS_IF([test "$SYS" = "os2"], [
3347 AS_IF([test "$enable_kva" != "no"], [
3348 AC_CHECK_HEADERS([kva.h], [
3350 AC_CHECK_LIB(kva, main, [
3356 AM_CONDITIONAL([HAVE_KVA], [test "${have_kva}" = "yes"])
3362 AS_HELP_STRING([--enable-mmal],
3363 [Multi-Media Abstraction Layer (MMAL) hardware plugin (default enable)]))
3364 if test "${enable_mmal}" != "no"; then
3366 LDFLAGS="${LDFLAGS} -L/opt/vc/lib -lvchostif"
3367 CPPFLAGS="${CPPFLAGS} -I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux"
3368 AC_CHECK_HEADERS(interface/mmal/mmal.h,
3369 [ AC_CHECK_LIB(bcm_host, vc_tv_unregister_callback_full, [
3371 VLC_ADD_PLUGIN([mmal])
3372 VLC_ADD_LDFLAGS([mmal],[ -L/opt/vc/lib ])
3373 VLC_ADD_CFLAGS([mmal],[ -I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux ])
3374 VLC_ADD_LIBS([mmal],[ -lbcm_host -lmmal -lvchostif ]) ], [
3375 AS_IF([test "${enable_mmal}" = "yes"],
3376 [ AC_MSG_ERROR([Cannot find bcm library...]) ],
3377 [ AC_MSG_WARN([Cannot find bcm library...]) ])
3380 ] , [ AS_IF([test "${enable_mmal}" = "yes"],
3381 [ AC_MSG_ERROR([Cannot find development headers for mmal...]) ],
3382 [ AC_MSG_WARN([Cannot find development headers for mmal...]) ]) ])
3385 AM_CONDITIONAL([HAVE_MMAL], [test "${have_mmal}" = "yes"])
3391 [AS_HELP_STRING([--enable-evas],
3392 [use evas output module (default disabled)])])
3394 AS_IF([test "${enable_evas}" = "yes"], [
3395 PKG_CHECK_MODULES(EVAS, [evas >= 1.15.99 ecore >= 1.15.99], [
3397 AC_DEFINE([HAVE_EVAS], [1], [Define to 1 if evas is enabled.])
3399 AS_IF([test "x${enable_evas}" != "x"], [
3400 AC_MSG_ERROR([$EVAS_PKG_ERRORS. libevas and libecore 1.15.99 or later required.])
3404 AM_CONDITIONAL([HAVE_EVAS], [test "${have_evas}" = "yes"])
3410 EXTEND_HELP_STRING([Audio plugins:])
3413 dnl Pulseaudio module
3415 AC_ARG_ENABLE(pulse,
3416 [AS_HELP_STRING([--enable-pulse],
3417 [use the PulseAudio client library (default auto)])])
3419 AS_IF([test "${enable_pulse}" != "no"], [
3420 PKG_CHECK_MODULES([PULSE], [libpulse >= 1.0], [
3423 AS_IF([test "x${enable_pulse}" != "x"], [
3424 AC_MSG_ERROR([$PULSE_PKG_ERRORS. PulseAudio 1.0 or later required.])
3428 AM_CONDITIONAL([HAVE_PULSE], [test "${have_pulse}" = "yes"])
3434 [AS_HELP_STRING([--enable-alsa],
3435 [support the Advanced Linux Sound Architecture (default auto)])],, [
3436 AS_IF([test "$SYS" = "linux" -a "${have_pulse}" = "no"], [
3441 AS_IF([test "${enable_alsa}" != "no"], [
3442 PKG_CHECK_MODULES([ALSA], [alsa >= 1.0.24], [
3445 AS_IF([test "x${enable_alsa}" != "x"], [
3446 AC_MSG_ERROR([$ALSA_PKG_ERRORS. alsa-lib 1.0.24 or later required. Pass --disable-alsa to ignore this error.])
3450 AM_CONDITIONAL([HAVE_ALSA], [test "${have_alsa}" = "yes"])
3453 dnl Open Sound System module
3456 [AS_HELP_STRING([--enable-oss],
3457 [support the Open Sound System OSS (default enabled on FreeBSD/NetBSD/DragonFlyBSD)])],, [
3458 AS_IF([test "$SYS" = "mingw32" -o "$SYS" = "linux" -o "$SYS" = "openbsd"], [
3464 AS_IF([test "$enable_oss" != "no"], [
3465 AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
3467 AC_CHECK_LIB(ossaudio, main, [
3468 OSS_LIBS="-lossaudio"
3473 AM_CONDITIONAL([HAVE_OSS], [test "${have_oss}" = "yes"])
3476 dnl OpenBSD sndio module
3478 AC_ARG_ENABLE([sndio],
3479 [AS_HELP_STRING([--disable-sndio],
3480 [support the OpenBSD sndio (default auto)])],, [
3481 AS_IF([test "$SYS" = "openbsd"], [
3486 AS_IF([test "$enable_sndio" != "no"], [
3487 AC_CHECK_HEADER([sndio.h], [
3491 AM_CONDITIONAL([HAVE_SNDIO], [test "${have_sndio}" = "yes"])
3494 dnl Windows Audio Session plugin
3496 AC_ARG_ENABLE([wasapi],
3497 [AS_HELP_STRING([--enable-wasapi],
3498 [use the Windows Audio Session API (default auto)])
3501 AS_IF([test "$enable_wasapi" != "no"], [
3502 AC_CHECK_HEADER([audioclient.h], [
3505 AS_IF([test "x${enable_wasapi}" != "x"], [
3506 AC_MSG_ERROR([Windows Audio Session API not found.])
3510 AM_CONDITIONAL([HAVE_WASAPI], [test "${have_wasapi}" = "yes"])
3516 [AS_HELP_STRING([--disable-jack],
3517 [do not use jack (default auto)])])
3519 AS_IF([test "${enable_jack}" != "no"], [
3520 PKG_CHECK_MODULES(JACK, jack >= 1.9.7,
3523 AC_MSG_WARN([${JACK_PKG_ERRORS}, trying jack1 instead])
3525 PKG_CHECK_MODULES(JACK, jack >= 0.120.1 jack < 1.0,
3528 AS_IF([test -n "${enable_jack}"],
3529 [AC_MSG_ERROR([${JACK_PKG_ERRORS}.])],
3530 [AC_MSG_WARN([${JACK_PKG_ERRORS}.])])
3534 AM_CONDITIONAL([HAVE_JACK], [test "${have_jack}" != "no"])
3537 dnl OpenSLES Android
3539 AC_ARG_ENABLE(opensles,
3540 [ --enable-opensles Android OpenSL ES audio module (default disabled)])
3541 if test "${HAVE_ANDROID}" = "1"; then
3542 if test "${enable_opensles}" = "yes"; then
3543 AC_CHECK_HEADERS(SLES/OpenSLES.h,
3544 [ VLC_ADD_PLUGIN([opensles_android]) ],
3545 [ AC_MSG_ERROR([cannot find OpenSLES headers])] )
3552 AC_ARG_ENABLE(tizen_audio,
3553 [AS_HELP_STRING([--enable-tizen-audio],
3554 [Tizen audio module (default enabled on Tizen)])],, [
3555 AS_IF([test "$HAVE_TIZEN" = "1"], [
3556 enable_tizen_audio="yes"
3559 if test "${enable_tizen_audio}" = "yes"; then
3560 AC_CHECK_HEADERS(audio_io.h,
3561 [ VLC_ADD_PLUGIN([tizen_audio]) ],
3562 [ AC_MSG_ERROR([cannot find Tizen audio_io headers])] )
3566 dnl libsamplerate plugin
3568 PKG_ENABLE_MODULES_VLC([SAMPLERATE], [], [samplerate], [Resampler with libsamplerate], [auto])
3573 PKG_ENABLE_MODULES_VLC([SOXR], [], [soxr >= 0.1.2], [SoX Resampler library], [auto])
3579 [AS_HELP_STRING([--enable-kai],
3580 [support the K Audio Interface KAI (default enabled on OS/2)])],, [
3581 AS_IF([test "$SYS" = "os2"], [
3587 AS_IF([test "$enable_kai" != "no"], [
3588 AC_CHECK_HEADERS([kai.h], [
3590 AC_CHECK_LIB(kai, main, [
3596 AM_CONDITIONAL([HAVE_KAI], [test "${have_kai}" = "yes"])
3599 dnl chromaprint audio track fingerprinter
3601 m4_pushdef([libchromaprint_version], 0.6.0)
3602 PKG_WITH_MODULES([CHROMAPRINT],[libchromaprint >= libchromaprint_version],
3603 VLC_ADD_PLUGIN([stream_out_chromaprint]),
3604 AS_IF([test "${enable_chromaprint}" = "yes"],
3605 [AC_MSG_ERROR(Library [libchromaprint >= libchromaprint_version] needed for [chromaprint] was not found)],
3606 [AC_MSG_WARN(Library [libchromaprint >= libchromaprint_version] needed for [chromaprint] was not found)]
3608 [(Chromaprint based audio fingerprinter)],[auto])
3609 m4_popdef([libchromaprint_version])
3612 dnl Chromecast streaming support
3614 m4_pushdef([protobuf_lite_version], 2.5.0)
3615 AC_ARG_VAR(PROTOC, [protobuf compiler])
3616 AC_CHECK_PROGS(PROTOC, protoc, no)
3617 PKG_WITH_MODULES([CHROMECAST],[protobuf-lite >= protobuf_lite_version], [
3618 AS_IF([test "x${PROTOC}" != "xno"], [
3619 build_chromecast="yes"
3621 AC_MSG_ERROR(protoc compiler needed for [chromecast] was not found)
3624 AS_IF([test "${enable_chromecast}" = "yes"],
3625 AC_MSG_ERROR(Library [protobuf-lite >= protobuf_lite_version] needed for [chromecast] was not found),
3626 AC_MSG_WARN(Library [protobuf-lite >= protobuf_lite_version] needed for [chromecast] was not found)
3628 enable_chromecast="no"
3629 ], [(Chromecast streaming support)], [auto])
3630 AM_CONDITIONAL([BUILD_CHROMECAST], [test "${build_chromecast}" = "yes"])
3631 m4_popdef([protobuf_lite_version])
3634 dnl Interface plugins
3637 EXTEND_HELP_STRING([Interface plugins:])
3643 AS_HELP_STRING([--disable-qt], [Qt UI support (default enabled)])],, [
3644 AS_IF([test "${SYS}" = "darwin"], [
3649 AS_IF([test "${enable_qt}" != "no"], [
3650 PKG_CHECK_MODULES([QT], [Qt5Core >= 5.2.0 Qt5Widgets Qt5Gui], [
3651 PKG_CHECK_MODULES([QT5_X11], [Qt5X11Extras], [
3654 AC_MSG_WARN([Not building Qt Interface with X11 helpers.])
3656 QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix Qt5Core)"
3657 QT_HOST_PATH="$(eval $PKG_CONFIG --variable=host_bins Qt5Core)"
3658 QT_VERSION="$(eval $PKG_CONFIG --modversion Qt5Gui)"
3659 AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3660 AC_PATH_PROGS(RCC, [rcc-qt5 rcc], rcc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3661 AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
3663 PKG_CHECK_MODULES([QT], [QtCore QtGui >= 4.8.0],, [
3664 AS_IF([test -n "${enable_qt}"],[
3665 AC_MSG_ERROR([${QT_PKG_ERRORS}.])
3667 AC_MSG_WARN([${QT_PKG_ERRORS}.])
3671 QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix QtCore)"
3672 AC_PATH_PROGS(MOC, [moc-qt4 moc], moc, ["${QT_PATH}/bin"])
3673 AC_PATH_PROG(RCC, rcc, rcc, ["${QT_PATH}/bin"])
3674 AC_PATH_PROGS(UIC, [uic-qt4 uic], uic, ["${QT_PATH}/bin"])
3677 AS_IF([test "${enable_qt}" != "no"], [
3678 ALIASES="${ALIASES} qvlc"
3680 AC_SUBST(QT_VERSION)
3681 AM_CONDITIONAL(ENABLE_QT, [test "$enable_qt" != "no"])
3682 AM_CONDITIONAL([HAVE_QT5_X11], [test "${have_qt5_x11}" = "yes"])
3685 dnl detect kde4-config patch (used for kde solids).
3687 AC_ARG_VAR([KDE4_CONFIG], [kde4-config utility])
3688 AS_IF([test "x$KDE4_CONFIG" = "x"], [
3689 KDE4_CONFIG="kde4-config"
3693 dnl Simple test for skins2 dependency
3695 AS_IF([test "$enable_qt" = "no"], [
3696 AS_IF([test "${enable_skins2}" = "yes"], [
3697 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.])
3700 AC_MSG_WARN([The skins2 module depends on the Qt interface, Qt is not built so skins2 is disabled.])
3707 AC_ARG_ENABLE(skins2,
3708 [AS_HELP_STRING([--enable-skins2], [skins interface module (default auto)])])
3709 AS_IF([test "${enable_skins2}" != "no"], [
3710 have_skins_deps="yes"
3713 AS_IF([test "${SYS}" = "mingw32"], [
3714 VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -DWIN32_SKINS])
3715 VLC_ADD_LIBS([skins2],[-lgdi32 -lole32 -luuid -lmsimg32])
3717 ], [test "${SYS}" = "os2"], [
3718 VLC_ADD_CPPFLAGS([skins2],[ -DOS2_SKINS])
3721 PKG_CHECK_MODULES([XPM], [xpm],, [have_skins_deps="no"])
3722 PKG_CHECK_MODULES([XINERAMA], [xinerama],, [have_skins_deps="no"])
3723 PKG_CHECK_MODULES([XEXT], [xext],, [have_skins_deps="no"])
3724 VLC_ADD_CPPFLAGS([skins2],[${X_CFLAGS} ${XEXT_CFLAGS} ${XPM_CFLAGS} -DX11_SKINS])
3725 VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} ${XEXT_LIBS} ${XPM_LIBS} ${XINERAMA_LIBS} -lX11])
3728 dnl we need freetype
3729 AS_IF([test "${have_freetype}" != "yes"], [
3730 have_skins_deps="no"
3733 AS_IF([test "${have_skins_deps}" = "no"], [
3734 AS_IF([test "x${enable_skins2}" = "x"], [
3735 AC_MSG_WARN([Skins2 interface disabled due to missing dependencies.])
3737 AC_MSG_ERROR([Skins2 interface requires FreeType, libxpm, libxext and libxinerama])
3741 ALIASES="${ALIASES} svlc"
3745 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes"])
3747 AC_ARG_ENABLE(libtar,
3748 [ --enable-libtar libtar support for skins2 (default auto)])
3749 AS_IF([test "${enable_skins2}" = "yes" && test "${enable_libtar}" != "no"], [
3750 AC_CHECK_HEADERS(libtar.h, [
3751 VLC_ADD_LIBS([skins2],[-ltar])
3756 dnl MacOS X gui module
3758 AC_ARG_ENABLE(macosx,
3759 [ --enable-macosx Mac OS X gui support (default enabled on Mac OS X)])
3760 if test "x${enable_macosx}" != "xno" -a "${SYS}" = "darwin"
3764 dnl If possible, use xcrun to find the right ibtool
3767 AC_PATH_PROG([XCRUN], [xcrun], [no])
3768 AS_IF([test ! "x${XCRUN}" = "xno"], [
3769 AC_MSG_CHECKING([for ibtool (using xcrun)])
3770 XIB="$(eval $XCRUN -f ibtool 2>/dev/null || echo no)"
3771 AC_MSG_RESULT([${XIB}])
3773 AC_MSG_WARN([Looking for tools without using xcrun])
3776 AS_IF([test "x${XIB}" = "xno"], [
3777 AC_PATH_PROG(XIB, [ibtool], [no])
3778 AS_IF([test "x${XIB}" = "xno"], [
3779 AC_MSG_ERROR([ibtool was not found, but is required for --enable-macosx])
3783 AM_CONDITIONAL(ENABLE_MACOSX_UI, [test "$enable_macosx" != "no" -a "${SYS}" = "darwin"])
3786 dnl MacOS X sparkle update support
3788 AC_ARG_ENABLE(sparkle,
3789 [ --enable-sparkle Sparkle update support for OS X (default enabled on Mac OS X)])
3790 if test "x${enable_sparkle}" != "xno" -a "${HAVE_OSX}" = "1"
3792 if test ! -d ${CONTRIB_DIR}/Sparkle.framework -a ! -d ${CONTRIB_DIR}/Frameworks/Sparkle.framework
3794 AC_MSG_ERROR([Sparkle framework is required and was not found in ${CONTRIB_DIR}])
3797 AC_DEFINE([HAVE_SPARKLE], [1], [Define to 1 if sparkle is enabled.])
3799 AM_CONDITIONAL(HAVE_SPARKLE, [test "$enable_sparkle" != "no"])
3802 dnl MacOS X breakpad creash reporter support
3804 AC_ARG_ENABLE(breakpad,
3805 [ --enable-breakpad Breakpad crash reporter support for OS X (default enabled on Mac OS X)])
3806 if test "x${enable_breakpad}" != "xno" -a "${HAVE_OSX}" = "1"
3808 if test ! -d ${CONTRIB_DIR}/Breakpad.framework -a ! -d ${CONTRIB_DIR}/Frameworks/Breakpad.framework
3810 AC_MSG_ERROR([Breakpad framework is required and was not found in ${CONTRIB_DIR}])
3813 AC_DEFINE([HAVE_BREAKPAD], [1], [Define to 1 if breakpad is enabled.])
3815 AM_CONDITIONAL(HAVE_BREAKPAD, [test "$enable_breakpad" != "no"])
3819 dnl Minimal Mac OS X module
3821 AC_ARG_ENABLE(minimal-macosx,
3822 [ --enable-minimal-macosx Minimal Mac OS X support (default disabled)])
3823 if test "${enable_minimal_macosx}" = "yes" -a "${SYS}" = "darwin"
3825 VLC_ADD_PLUGIN([minimal_macosx])
3829 dnl Mac OS X fancy dmg build tool
3831 if test "${HAVE_OSX}" = "1"
3833 AC_PATH_PROG(DMGBUILD, dmgbuild, no)
3834 AS_IF([test "x${DMGBUILD}" = "xno"], [
3835 AC_MSG_WARN([dmgbuild not found -- unable to build fancy DMGs])
3838 AM_CONDITIONAL(HAVE_DMGBUILD, [test "x$DMGBUILD" != "xno" -a "${HAVE_OSX}" = "1"])
3841 dnl VideoToolbox plugins
3842 AC_CHECK_HEADERS(VideoToolbox/VideoToolbox.h, [
3843 VLC_ADD_PLUGIN([videotoolbox])
3844 VLC_ADD_PLUGIN([cvpx])
3850 AC_ARG_ENABLE(ncurses,
3851 [AS_HELP_STRING([--disable-ncurses],[ncurses text-based interface (default auto)])])
3853 AS_IF([test "${enable_ncurses}" != "no"] ,[
3854 PKG_CHECK_MODULES([NCURSES], [ncursesw], [
3856 ALIASES="${ALIASES} nvlc"
3858 AS_IF([test -n "${enable_ncurses}"], [
3859 AC_MSG_ERROR([${NCURSES_PKG_ERRORS}.])
3863 AM_CONDITIONAL([HAVE_NCURSES], [test "${have_ncurses}" = "yes"])
3869 [ --enable-lirc lirc support (default disabled)])
3871 AS_IF([test "${enable_lirc}" = "yes"], [
3872 AC_CHECK_HEADER(lirc/lirc_client.h, [
3873 AC_CHECK_LIB(lirc_client, lirc_init, [
3878 AM_CONDITIONAL([HAVE_LIRC], [test "${have_lirc}" = "yes"])
3880 EXTEND_HELP_STRING([Visualisations and Video filter plugins:])
3882 dnl goom visualization plugin
3884 PKG_ENABLE_MODULES_VLC([GOOM], [], [libgoom2], [goom visualization plugin], [auto])
3887 dnl libprojectM visualization plugin
3889 AC_ARG_ENABLE(projectm,
3890 [ --enable-projectm projectM visualization plugin (default enabled)])
3891 AS_IF([test "${enable_projectm}" != "no"],
3893 PKG_CHECK_MODULES(PROJECTM, libprojectM,
3895 VLC_ADD_PLUGIN([projectm])
3896 PKG_CHECK_EXISTS([libprojectM >= 2.0.0],
3897 [ AC_DEFINE([HAVE_PROJECTM2], 1, [Define to 1 if using libprojectM 2.x]) ],
3898 [ AC_MSG_WARN( [Using libprojectM version 1] )
3901 AC_MSG_WARN([${PROJECTM_PKG_ERRORS}.])
3906 dnl Vovoid VSXu visualization plugin
3909 [ --enable-vsxu Vovoid VSXu visualization plugin (default auto)])
3910 AS_IF([test "${enable_vsxu}" != "no"],
3912 PKG_CHECK_MODULES(VSXU, libvsxu,
3914 VLC_ADD_PLUGIN([vsxu])
3916 AC_MSG_WARN([${VSXU_PKG_ERRORS}.])
3920 EXTEND_HELP_STRING([Service Discovery plugins:])
3922 dnl Avahi-Zeroconf services discovery
3923 PKG_ENABLE_MODULES_VLC([AVAHI], [], [avahi-client >= 0.6], [Zeroconf services discovery], [auto])
3926 dnl libudev services discovery
3927 PKG_ENABLE_MODULES_VLC([UDEV], [], [libudev >= 142], [Linux udev services discovery], [auto])
3930 dnl MTP devices services discovery
3931 PKG_ENABLE_MODULES_VLC([MTP], [mtp access_mtp], [libmtp >= 1.0.0], [MTP devices support], [auto])
3934 dnl UPnP Plugin (Intel SDK)
3936 PKG_ENABLE_MODULES_VLC([UPNP], [upnp], [libupnp], [Intel UPNP SDK],[auto])
3939 dnl mDNS using libmicrodns
3941 PKG_ENABLE_MODULES_VLC([MICRODNS], [], [microdns], [mDNS services discovery], [auto])
3944 EXTEND_HELP_STRING([Misc options:])
3949 PKG_ENABLE_MODULES_VLC([LIBXML2], [xml], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
3955 AC_ARG_ENABLE(libgcrypt,
3956 [ --disable-libgcrypt gcrypt support (default enabled)])
3957 AC_ARG_VAR([GCRYPT_CFLAGS], [C compiler flags for gcrypt])
3958 AC_ARG_VAR([GCRYPT_LIBS], [linker flags flags for gcrypt])
3960 # require libgcrypt >= 1.6.0
3961 AS_IF([test "${enable_libgcrypt}" != "no"], [
3962 AC_CACHE_CHECK([for gcrypt 1.6.0 or later], [ac_cv_lib_gcrypt], [
3964 CFLAGS="${CFLAGS} ${GCRYPT_CFLAGS}"
3965 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
3966 [#include <gcrypt.h>
3967 #if GCRYPT_VERSION_NUMBER < 0x010600
3970 ac_cv_lib_gcrypt=yes
3977 AS_IF([test "${ac_cv_lib_gcrypt}" = "yes"], [
3978 AC_DEFINE([HAVE_GCRYPT], 1, [Defined if having gcrypt])
3980 AS_IF([test "${enable_libgcrypt}" = "yes"], [
3981 AC_MSG_ERROR([libgcrypt version 1.6.0 or higher not found. Install libgcrypt or pass --disable-libgcrypt.])
3986 AS_IF([test -z "$GCRYPT_LIBS"], [
3987 GCRYPT_LIBS="-lgcrypt -lgpg-error"
3990 AC_SUBST(GCRYPT_CFLAGS)
3991 AC_SUBST(GCRYPT_LIBS)
3992 AM_CONDITIONAL([HAVE_GCRYPT], [test "${ac_cv_lib_gcrypt}" = "yes"])
3997 AC_ARG_ENABLE(gnutls,
3998 [ --enable-gnutls GNU TLS TLS/SSL support (default enabled)])
3999 AS_IF([test "${enable_gnutls}" != "no"], [
4000 PKG_CHECK_MODULES(GNUTLS, [gnutls >= 3.3.6], [
4001 VLC_ADD_PLUGIN([gnutls])
4003 AS_IF([test -n "${enable_gnutls}"], [
4004 AC_MSG_ERROR([${GNUTLS_PKG_ERRORS}.)])
4013 AC_ARG_ENABLE(taglib,
4014 [AS_HELP_STRING([--disable-taglib],
4015 [do not use TagLib (default enabled)])])
4016 AS_IF([test "${enable_taglib}" != "no"], [
4017 PKG_CHECK_MODULES(TAGLIB, taglib >= 1.9, [
4018 VLC_ADD_PLUGIN([taglib])
4020 AC_MSG_WARN([${TAGLIB_PKG_ERRORS}.])])
4026 PKG_ENABLE_MODULES_VLC([SECRET], [], [libsecret-1 >= 0.18], [use libsecret for keystore], [auto])
4031 AC_ARG_ENABLE(kwallet,
4032 [AS_HELP_STRING([--enable-kwallet],
4033 [use kwallet (via D-Bus) for keystore (default enabled)])])
4034 AS_IF([test "${enable_kwallet}" != "no" -a "${have_dbus}" = "yes"], [
4035 VLC_ADD_PLUGIN([kwallet])
4039 dnl Developers helper modules (should be hidden from configure help)
4041 AC_ARG_ENABLE(devtools, [], [], [enable_devtools="no"])
4042 AS_IF([test "${enable_devtools}" != "no"], [
4043 VLC_ADD_PLUGIN([accesstweaks])
4047 dnl update checking system
4049 AC_ARG_ENABLE(update-check,
4050 [ --enable-update-check update checking system (default disabled)])
4051 if test "${enable_update_check}" = "yes"
4053 AS_IF([test "${ac_cv_lib_gcrypt}" != "yes"],[
4054 AC_MSG_ERROR([libgcrypt is required for update checking system]) ])
4056 AM_CONDITIONAL(UPDATE_CHECK, [test "${enable_update_check}" = "yes"])
4059 dnl OS X notification plugin
4061 AC_ARG_ENABLE(osx_notifications,
4062 [ --enable-osx-notifications osx notification plugin (default disabled)],,
4063 [enable_osx_notifications=no])
4064 AS_IF([test "${enable_osx_notifications}" != "no"], [
4065 if test -d ${CONTRIB_DIR}/Growl.framework -o -d ${CONTRIB_DIR}/Frameworks/Growl.framework
4067 VLC_ADD_PLUGIN([osx_notifications])
4068 VLC_ADD_LIBS([osx_notifications], [-Wl,-framework,Growl,-framework,Foundation])
4069 VLC_ADD_OBJCFLAGS([osx_notifications], [-fobjc-exceptions] )
4074 dnl Libnotify notification plugin
4076 PKG_ENABLE_MODULES_VLC([NOTIFY], [], [libnotify gtk+-2.0], [libnotify notification], [auto])
4079 dnl Endianness check
4082 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
4083 DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
4087 AC_SUBST(DEFS_BIGENDIAN)
4090 dnl Where to install KDE solid .desktop
4092 AC_ARG_WITH(kde-solid,
4093 AS_HELP_STRING([--with-kde-solid=PATH],
4094 [KDE Solid actions directory (auto)]),, [
4096 if test "${SYS}" != "mingw32" -a "${SYS}" != "darwin" ; then
4097 with_kde_solid="yes"
4101 AS_IF([test "${with_kde_solid}" != "no"], [
4102 AS_IF([test "${with_kde_solid}" = "yes"], [
4103 kde4datadir="`${KDE4_CONFIG} --install data`"
4104 AS_IF([test "x$kde4datadir" = "x"], [kde4datadir='${datadir}/kde4/apps'])
4105 soliddatadir="${kde4datadir}/solid/actions"
4107 soliddatadir="${with_kde_solid}"
4110 AC_SUBST(soliddatadir)
4111 AM_CONDITIONAL(KDE_SOLID, [test "x${soliddatadir}" != "x"])
4114 dnl Check wether we have the PROCESS_MITIGATION_IMAGE_LOAD_POLICY
4115 dnl It should only be available when building for win10, but some SDKs define it unconditionnaly
4117 if test "${SYS}" = "mingw32"; then
4118 AC_CHECK_TYPES([PROCESS_MITIGATION_IMAGE_LOAD_POLICY],,,[#include <windows.h>])
4121 EXTEND_HELP_STRING([Components:])
4127 [ --enable-vlc build the VLC media player (default enabled)])
4128 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
4131 dnl Stuff used by the program
4133 VERSION_MESSAGE="${VERSION} ${CODENAME}"
4134 COPYRIGHT_MESSAGE="Copyright © ${COPYRIGHT_YEARS} the VideoLAN team"
4135 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string])
4136 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string])
4137 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
4138 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
4139 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,${VERSION_MAJOR}, [version major number])
4140 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,${VERSION_MINOR}, [version minor number])
4141 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,${VERSION_REVISION}, [version revision number])
4142 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,${VERSION_EXTRA}, [version extra number])
4143 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_DEV,"${VERSION_DEV}", [version development string])
4144 AC_SUBST(COPYRIGHT_MESSAGE)
4145 AC_SUBST(VERSION_MESSAGE)
4146 AC_SUBST(VERSION_MAJOR)
4147 AC_SUBST(VERSION_MINOR)
4148 AC_SUBST(VERSION_REVISION)
4149 AC_SUBST(VERSION_EXTRA)
4150 AC_SUBST(COPYRIGHT_YEARS)
4151 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami|sed -e 's/\\\/\\\\\\\/g'`", [user who ran configure])
4152 AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -f 2>/dev/null || hostname`", [host which ran configure])
4153 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1 | sed -e 's/ *$//'`", [compiler])
4155 dnl Handle substvars that use $(top_srcdir)
4157 CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS}"
4160 dnl Configuration is finished
4170 AC_SUBST(WINE_SDK_PATH)
4172 AC_SUBST(AM_CPPFLAGS)
4173 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
4174 AC_SUBST(FILE_LIBVLCCORE_DLL)
4175 AC_SUBST(FILE_LIBVLC_DLL)
4189 modules/hw/mmal/Makefile
4190 share/vlc.appdata.xml.in
4193 AM_COND_IF([HAVE_WIN32], [
4195 extras/package/win32/NSIS/spad.nsi
4196 extras/package/win32/NSIS/vlc.win32.nsi
4197 extras/package/win32/msi/config.wxi
4201 AM_COND_IF([HAVE_DARWIN], [
4203 modules/gui/macosx/UI/InfoPlist.strings:modules/gui/macosx/Resources/InfoPlist.strings.in
4204 share/macosx/Info.plist:share/Info.plist.in
4208 dnl Generate makefiles
4211 dnl Do we have to use make or gmake ?
4212 if make --version 2>&1|grep -q GNU
4214 # GNU make, all seems good
4217 # Known GNU make alias (on BSD)
4220 dnl Shortcut to nice compile message
4221 if test -n $SHELL; then
4222 SHELL=${CONFIG_SHELL-/bin/sh}
4225 compile_top_srcdir=`sed -ne "s/^top_srcdir *= *//p" < Makefile`
4229 export PATH=\"$PATH\" LANG=C
4230 ($MAKE V=1 \$@ 2>&1 || touch .error\$\$)| $compile_top_srcdir/extras/buildsystem/make.pl
4231 test -f .error\$\$ && ERROR=1
4233 exit \$ERROR" >compile
4237 libvlc configuration
4238 --------------------
4239 version : ${VERSION}
4241 architecture : ${ARCH}
4242 optimizations : ${enable_optimizations}"
4243 if test "${enable_vlc}" != "no"; then
4244 echo "vlc aliases :${ALIASES}"
4246 echo "build vlc executable : no"
4249 To build vlc and its plugins, type \`$MAKE', or \`./compile' if you like nice colors."