1 dnl Autoconf settings for vlc
3 AC_COPYRIGHT([Copyright 2002-2014 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-2014"
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 # Disable with "./configure --disable-silent-rules" or "make V=1"
31 AM_SILENT_RULES([yes])
33 dnl Too many people are not aware of maintainer mode:
34 dnl If you want to use it, you definitely know what you are doing, so
35 dnl you can specify "--disable-maintainer-mode". But if you want the default
36 dnl automake behavior, you've likely never heard of maintainer mode, so we
37 dnl can't expect you to enable it manually.
38 AS_IF([test "x${enable_maintainer_mode}" != "xno"],
39 [enable_maintainer_mode="yes"])
45 dnl vlcincludedir="\${includedir}/\${PKGDIR}"
46 dnl AC_SUBST(vlcincludedir)
47 vlcdatadir="\${datadir}/\${PKGDIR}"
49 vlclibdir="\${libdir}/\${PKGDIR}"
56 AC_USE_SYSTEM_EXTENSIONS
57 AC_DEFINE([_FORTIFY_SOURCE], 2, [Define to 2 to get glibc warnings.])
58 AC_DEFINE([_FILE_OFFSET_BITS], 64, [Define to 64 for large files support.])
64 AC_DEFINE([_THREAD_SAFE],, [Same as _REENTANT for some other OSes.])
65 AC_DEFINE([__LIBVLC__],, [Define within the LibVLC source code tree.])
66 AC_DEFINE([WIN32_LEAN_AND_MEAN],, [Define to limit the scope of <windows.h>.])
72 _AM_DEPENDENCIES([OBJC])
78 AC_ARG_VAR([DESKTOP_FILE_VALIDATE], [Validator for desktop entry files])
79 AC_CHECK_PROGS(DESKTOP_FILE_VALIDATE, [${DESKTOP_FILE_VALIDATE} desktop-file-validate], :)
80 AC_PATH_PROG(YASM, yasm)
82 dnl Check for compiler properties
87 dnl Extend the --help string at the current spot.
88 AC_DEFUN([EXTEND_HELP_STRING], [m4_divert_once([HELP_ENABLE], [$1])])
90 dnl Allow binary package maintainer to pass a custom string to avoid
92 AC_ARG_WITH(binary-version,
93 AS_HELP_STRING([--with-binary-version=STRING],
94 [To avoid plugins cache problem between binary version]),[],[])
95 AS_IF([test -n "${with_binary_version}"],[
96 AC_DEFINE_UNQUOTED([DISTRO_VERSION],["${with_binary_version}"],
97 [Binary specific version])
101 dnl Check the operating system
127 CFLAGS="${CFLAGS} -pthread"
131 CFLAGS="${CFLAGS} -pthread"
132 CPPFLAGS="${CPPFLAGS} -I/usr/local/include"
133 LDFLAGS="${LDFLAGS} -L/usr/local/lib"
137 CPPFLAGS="${CPPFLAGS} -I/usr/local/include -I/usr/X11R6/include"
138 LDFLAGS="${LDFLAGS} -L/usr/local/lib -L/usr/X11R6/lib/"
148 dnl Force gcc "-arch" flag
152 ARCH_flag="-arch i386"
153 YASMFLAGS="-f macho32"
156 ARCH_flag="-arch ppc64"
159 ARCH_flag="-arch ppc"
162 ARCH_flag="-arch x86_64"
163 YASMFLAGS="-f macho64"
166 ac_cv_c_bigendian="no"
167 ac_cv_c_attribute_packed="no"
172 CFLAGS="${CFLAGS} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"
173 CXXFLAGS="${CXXFLAGS} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"
174 CPPFLAGS="${CPPFLAGS} ${ARCH_flag}"
175 OBJCFLAGS="${OBJCFLAGS} -D_INTL_REDIRECT_MACROS -std=gnu99 ${ARCH_flag}"
176 LDFLAGS="${LDFLAGS} -Wl,-headerpad_max_install_names ${ARCH_flag}"
177 VLC_ADD_LIBS([libvlc vlc],[-Wl,-undefined,dynamic_lookup,-framework,AppKit])
178 VLC_ADD_LIBS([libvlccore],[-Wl,-framework,CoreFoundation,-framework,CoreServices])
181 [#import <TargetConditionals.h>
188 dnl Allow binaries created on Lion to run on earlier releases
190 [#import <Cocoa/Cocoa.h>
191 #ifdef MAC_OS_X_VERSION_10_7
194 [AC_MSG_RESULT([yes])
195 AC_LIBOBJ([getdelim])
197 AC_LIBOBJ([strnlen])],)
200 dnl Handle Mac OS X SDK flags
202 AC_ARG_WITH(macosx-sdk,
203 [AS_HELP_STRING([--with-macosx-sdk=DIR],
204 [compile using the SDK in DIR])])
205 if test "${with_macosx_sdk}" != "" ; then
206 test ! -d "${with_macosx_sdk}" && AC_MSG_ERROR([SDK "${with_macosx_sdk}" not found])
207 CPP="${CPP} -isysroot ${with_macosx_sdk}"
208 CC="${CC} -isysroot ${with_macosx_sdk}"
209 CXX="${CXX} -isysroot ${with_macosx_sdk}"
210 OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
211 LD="${LD} -syslibroot ${with_macosx_sdk}"
213 AC_ARG_WITH(macosx-version-min,
214 [AS_HELP_STRING([--with-macosx-version-min=VERSION],
215 [compile for Mac OS X VERSION and above])])
216 if test "${with_macosx_version_min}" != "" ; then
217 CPP="${CPP} -mmacosx-version-min=${with_macosx_version_min}"
218 CC="${CC} -mmacosx-version-min=${with_macosx_version_min}"
219 CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
220 OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
221 LD="${LD} -mmacosx_version_min=${with_macosx_version_min}"
224 *mingw32* | *cygwin* | *wince* | *mingwce*)
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"
277 PROGRAMFILES="PROGRAMFILES"
281 AC_SUBST(WINDOWS_ARCH)
282 AC_SUBST(PROGRAMFILES)
300 LDFLAGS="${LDFLAGS} -Zomf -Zbin-files -Zargs-wild -Zhigh-mem"
306 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
307 AM_CONDITIONAL(HAVE_LINUX, test "${SYS}" = "linux")
308 AM_CONDITIONAL(HAVE_OS2, test "${SYS}" = "os2")
309 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
310 AM_CONDITIONAL(HAVE_WIN64, test "${HAVE_WIN64}" = "1")
311 AM_CONDITIONAL(HAVE_SYMBIAN, test "${SYS}" = "symbian")
312 AM_CONDITIONAL(HAVE_IOS, test "${HAVE_IOS}" = "1")
313 AM_CONDITIONAL(HAVE_OSX, test "${HAVE_OSX}" = "1")
318 dnl Sadly autoconf does not think about testing foo.exe when ask to test
319 dnl for program foo on win32
320 case "${build_os}" in
322 ac_executable_extensions=".exe"
328 dnl Android is linux, but a bit different
329 AS_IF([test "$SYS" = linux],[
330 AC_MSG_CHECKING([for an Android system])
331 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
332 [[#ifndef __ANDROID__
343 AM_CONDITIONAL(HAVE_ANDROID, test "${HAVE_ANDROID}" = "1")
347 dnl Check for the contrib directory
350 [AS_HELP_STRING([--with-contrib[=DIR]],
351 [search for 3rd party libraries in DIR/include and DIR/lib])
353 AC_MSG_CHECKING([for 3rd party libraries path])
354 AS_IF([test -z "${with_contrib}" || test "${with_contrib}" = "yes"], [
355 CONTRIB_DIR="${srcdir}/contrib/${host}"
356 AS_IF([test ! -d "${CONTRIB_DIR}"], [
357 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
358 CONTRIB_DIR="${srcdir}/contrib/`$CC -dumpmachine`"
359 AS_IF([test ! -d "${CONTRIB_DIR}"], [
360 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
361 CONTRIB_DIR="${srcdir}/extras/contrib/hosts/${host}"
362 AS_IF([test ! -d "${CONTRIB_DIR}"], [
363 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
364 CONTRIB_DIR="${srcdir}/extras/contrib/hosts/`$CC -dumpmachine`"
365 AS_IF([test ! -d "${CONTRIB_DIR}"], [
366 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
368 AC_MSG_RESULT([not found])
374 AS_IF([test "${with_contrib}" != "no"], [
375 CONTRIB_DIR="${with_contrib}"
378 AC_MSG_RESULT([disabled])
381 AS_IF([test -n "${CONTRIB_DIR}"], [
382 AS_IF([test -d "${CONTRIB_DIR}/lib"],[
383 CONTRIB_DIR=`cd "${CONTRIB_DIR}" && pwd`
385 echo "${CONTRIB_DIR}/lib not found" >&AS_MESSAGE_LOG_FD
387 AC_MSG_RESULT([not usable])
391 AS_IF([test -n "${CONTRIB_DIR}"], [
392 AC_MSG_RESULT([${CONTRIB_DIR}])
393 export PATH=${CONTRIB_DIR}/bin:$PATH
394 CPPFLAGS="${CPPFLAGS} -I${CONTRIB_DIR}/include"
395 CFLAGS="${CFLAGS} -I${CONTRIB_DIR}/include"
396 CXXFLAGS="${CXXFLAGS} -I${CONTRIB_DIR}/include"
397 OBJCFLAGS="${OBJCFLAGS} -I${CONTRIB_DIR}/include"
398 export PKG_CONFIG_PATH="${CONTRIB_DIR}/lib/pkgconfig:$PKG_CONFIG_PATH"
399 LDFLAGS="${LDFLAGS} -L${CONTRIB_DIR}/lib"
401 AS_IF([test "${SYS}" = "darwin"], [
402 export LD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$LD_LIBRARY_PATH"
403 export DYLD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$DYLD_LIBRARY_PATH"
406 AS_IF([test -n "${with_contrib}" && test "${with_contrib}" != "no"], [
407 AC_MSG_ERROR([Third party libraries not found!])
410 AC_SUBST(CONTRIB_DIR)
412 dnl Add extras/tools to the PATH
413 TOOLS_DIR="${srcdir}/extras/tools/build/bin"
414 AS_IF([test -d "${TOOLS_DIR}"], [
415 TOOLS_DIR=`cd "${TOOLS_DIR}" && pwd`
416 export PATH="${TOOLS_DIR}":$PATH
421 dnl It's very bad, but our former custom system was worst
425 dnl override platform specific check for dependent libraries
426 dnl otherwise libtool linking of shared libraries will
427 dnl fail on anything other than pass_all.
428 AC_CACHE_VAL(lt_cv_deplibs_check_method,
429 [lt_cv_deplibs_check_method=pass_all])
431 LT_INIT([dlopen win32-dll shared disable-static])
433 LT_LANG([Windows Resource])
437 lt_cv_deplibs_check_method=pass_all
439 AS_IF([test "${enable_shared}" = "no" -a "${enable_vlc}" != "no"], [
440 AC_MSG_ERROR([VLC is based on plugins. Shared libraries cannot be disabled.])
446 AM_GNU_GETTEXT_VERSION([0.19.2])
447 AM_GNU_GETTEXT([external], [need-ngettext])
456 AS_IF([test "${SYS}" = "mingw32"], [
458 dnl Check for broken versions of mingw-runtime compatability library
459 AC_MSG_CHECKING(for broken mingw-runtime)
460 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
462 #if defined(__MINGW64_VERSION_MAJOR)
463 # if __MINGW64_VERSION_MAJOR < 3
464 # error Attempting to use mingw-runtime with broken vsnprintf and direct2d support
466 #elif __MINGW32_MAJOR_VERSION == 3 && __MINGW32_MINOR_VERSION < 15
467 # error Attempting to use mingw-runtime with broken vsnprintf support
472 AC_MSG_RESULT([present])
473 AC_MSG_ERROR([LibVLC requires mingw-runtime version 3.15 or higher, or mingw-w64 version 3.0 or higher!])
476 dnl force use of mingw provided c99 *printf over msvcrt
477 CPPFLAGS="${CPPFLAGS} -D__USE_MINGW_ANSI_STDIO=1"
479 dnl Add WinMainCRTStartup entry point to show it's a WinMain application
480 VLC_ADD_LDFLAGS([vlc],[-mwindows])
482 dnl Check for the need to include the mingwex lib for mingw32
484 AC_CHECK_LIB(mingwex,opendir,
485 AC_CHECK_LIB(mingw32,opendir,,
486 [VLC_ADD_LIBS([libvlccore],[-lmingwex])])
490 dnl Check for fnative-struct or mms-bitfields support for mingw32
492 CFLAGS="${CFLAGS} -mms-bitfields"
493 CXXFLAGS="${CXXFLAGS} -mms-bitfields"
494 AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
495 [ac_cv_c_mms_bitfields],
496 [AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
497 if test "${ac_cv_c_mms_bitfields}" = "no"; then
499 CFLAGS="${CFLAGS} -fnative-struct"
500 CXXFLAGS="${CXXFLAGS} -fnative-struct"
501 AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
502 [ac_cv_c_fnative_struct],
503 [AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
504 "${ac_cv_c_fnative_struct}" = "no" && VLC_RESTORE_FLAGS
508 AC_ARG_ENABLE(winstore_app,
509 AS_HELP_STRING([--enable-winstore-app],
510 [Build targetted for Windows Store apps (default disabled)]))
513 AS_IF([test "${SYS}" = "mingw32"],[
514 AS_IF([test "${enable_winstore_app}" = "yes"], [
516 VLC_ADD_LIBS([libvlccore], [-lole32 -lruntimeobject])
518 VLC_ADD_LIBS([win32text],[-lgdi32])
519 VLC_ADD_LIBS([libvlccore],[-lwinmm])
522 AC_DEFINE_UNQUOTED(VLC_WINSTORE_APP, ${vlc_winstore_app}, [Define to 1 if you want to build for Windows Store apps])
523 AM_CONDITIONAL([HAVE_WINSTORE], [test "$vlc_winstore_app" = "1"])
527 dnl Buggy glibc prevention. Purposedly not cached.
528 dnl See sourceware.org bugs 5058 and 5443.
529 dnl Ubuntu alone has 20 bug numbers for this...
531 AC_MSG_CHECKING(for buggy GNU/libc versions)
532 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
534 #if defined (__GLIBC__) && (__GLIBC__ == 2) \
535 && (__GLIBC_MINOR__ >= 5) && (__GLIBC_MINOR__ <= 7)
536 # error GNU/libc with dcgettext killer bug!
539 AC_MSG_RESULT([not present])
541 AC_MSG_RESULT([found])
542 AS_IF([test "x${enable_nls}" != "xno"], [
543 AC_MSG_ERROR([Buggy GNU/libc (version 2.5 - 2.7) present. VLC would crash; there is no viable
544 work-around for this. Check with your distribution vendor on how to update the
545 glibc run-time. Alternatively, build with --disable-nls.])
549 dnl Plugin compilation stuff
553 dnl Check for system libs needed
556 dnl Check for usual libc functions
557 AC_CHECK_DECLS([nanosleep],,,[#include <time.h>])
558 AC_CHECK_FUNCS([daemon fcntl fstatvfs fork getenv getpwuid_r isatty lstat memalign mmap open_memstream openat pread posix_fadvise posix_madvise setlocale stricmp strnicmp strptime uselocale pthread_cond_timedwait_monotonic_np pthread_condattr_setclock])
559 AC_REPLACE_FUNCS([atof atoll dirfd fdopendir flockfile fsync getdelim getpid gmtime_r lldiv localtime_r nrand48 poll posix_memalign rewind setenv strcasecmp strcasestr strdup strlcpy strndup strnlen strsep strtof strtok_r strtoll swab tdestroy strverscmp])
560 AC_CHECK_FUNCS(fdatasync,,
561 [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
564 dnl mingw64 implements those as static inline, not functions with C linkage
566 AC_LANG_PROGRAM([#include <stdio.h>], [
568 if (asprintf(&c, "%s %d", "string", 1) == -1)
570 ])],[AC_DEFINE([HAVE_ASPRINTF],[1],[Define to 1 if you have asprintf function])],[AC_LIBOBJ([asprintf])])
572 AC_LANG_PROGRAM([#include <stdio.h>
573 #include <stdarg.h>], [
576 if (vasprintf(&c, "%s %d", ap) == -1)
578 ])],[AC_DEFINE([HAVE_VASPRINTF],[1],[Define to 1 if you have asprintf function])],[AC_LIBOBJ([vasprintf])])
580 dnl C11 static_assert()
581 AC_MSG_CHECKING([for static_assert in assert.h])
582 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <assert.h>], [
583 static_assert(1, "The impossible happened.");
586 AC_DEFINE([HAVE_STATIC_ASSERT], [1], [Define to 1 if <assert.h> defines static_assert.])
591 # Windows CE does not have strcoll()
594 dnl Check for non-standard system calls
597 AC_CHECK_FUNCS([accept4 pipe2 eventfd vmsplice sched_getaffinity])
600 AC_CHECK_FUNCS([_lock_file])
604 AH_BOTTOM([#include <vlc_fixups.h>])
606 dnl Check for struct pollfd
607 AC_CHECK_TYPES([struct pollfd],,,
608 [#include <sys/types.h>
611 #elif defined (_WIN32)
612 # include <winsock2.h>
616 dnl Checks for socket stuff
619 AC_SEARCH_LIBS(connect, [socket], [
620 AS_IF([test "$ac_cv_search_connect" != "none required"], [
621 SOCKET_LIBS="$ac_cv_search_connect"
624 AS_IF([test "${SYS}" = "mingw32"], [
625 SOCKET_LIBS="-lws2_32"
629 AC_SEARCH_LIBS([inet_pton], [nsl], [
630 AS_IF([test "$ac_cv_search_getaddrinfo" != "none required"], [
631 SOCKET_LIBS="$ac_cv_search_getaddrinfo $SOCKET_LIBS"
633 ],, [${SOCKET_LIBS}])
635 LIBS="${LIBS} ${SOCKET_LIBS}"
637 AC_LANG_PROGRAM([#ifdef _WIN32
638 # if _WIN32_WINNT < 0x600
641 #include <ws2tcpip.h>
643 #include <sys/socket.h>
644 #include <arpa/inet.h>
646 char dst[[sizeof(struct in_addr)]];
647 inet_pton(AF_INET, "127.0.0.1", dst);
648 ])],[AC_DEFINE([HAVE_INET_PTON],[1],[Define to 1 if you have inet_pton function])],[AC_LIBOBJ([inet_pton])])
649 AC_CHECK_FUNCS([if_nameindex if_nametoindex])
652 AS_IF([test -n "$SOCKET_LIBS"], [
653 VLC_ADD_LIBS([access_rtmp access_output_shout sap stream_out_standard stream_out_rtp stream_out_raop stream_out_chromecast oldrc netsync ts remoteosd audiobargraph_a],[${SOCKET_LIBS}])
655 AC_SUBST(SOCKET_LIBS)
657 dnl Check for socklen_t
658 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
659 AC_CACHE_CHECK([for socklen_t in sys/socket.h], dnl ` (fix VIM syntax highlight
660 ac_cv_type_socklen_t,
661 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
662 [#include <sys/types.h>
664 # include <winsock2.h>
665 # include <ws2tcpip.h>
667 # include <sys/socket.h>
668 #endif]], [[socklen_t len; len = 0;]])],
669 ac_cv_type_socklen_t=yes,
670 ac_cv_type_socklen_t=no)])
671 AS_IF([test "$ac_cv_type_socklen_t" = no],
672 [AC_DEFINE(socklen_t, int)])
674 dnl Check for struct sockaddr_storage
675 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
676 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
677 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
679 [#include <sys/types.h>
680 #if defined( _WIN32 )
681 # include <winsock2.h>
683 # include <sys/socket.h>
684 #endif], [struct sockaddr_storage addr;],
685 ac_cv_struct_sockaddr_storage=yes,
686 ac_cv_struct_sockaddr_storage=no)])
687 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
688 AC_DEFINE(sockaddr_storage, sockaddr)
689 AC_DEFINE(ss_family, sa_family)
692 dnl FreeBSD has a gnugetopt library for this:
694 AC_CHECK_FUNC(getopt_long,, [
695 AC_CHECK_LIB([gnugetopt],[getopt_long], [
696 GNUGETOPT_LIBS="-lgnugetopt"
699 AC_SUBST(GNUGETOPT_LIBS)
702 VLC_ADD_LIBS([adjust wave ripple psychedelic gradient a52tofloat32 dtstofloat32 x264 goom noise grain scene chorus_flanger freetype swscale postproc equalizer spatializer param_eq samplerate freetype mpc qt4 compressor headphone_channel_mixer normvol audiobargraph_a audiobargraph_v mono colorthres extract ball hotkeys mosaic gaussianblur x262 x26410b hqdn3d anaglyph oldrc ncurses oldmovie glspectrum smooth],[-lm])
709 AC_CHECK_LIB(m,lrintf, [
710 AC_DEFINE(HAVE_LRINTF, 1, [Define to 1 if you have the lrintf function])
711 VLC_ADD_LIBS([skins2],[-lm])
714 AC_DEFINE(HAVE_NANF, 1, [Define to 1 if you have the NANF function])
717 dnl Check for dynamic plugins
719 have_dynamic_objects="no"
721 AC_SEARCH_LIBS(dlsym, [dl svld], [
722 AS_IF([test "$ac_cv_search_dlsym" != "none required"], [
723 LIBDL="$ac_cv_search_dlsym"
725 have_dynamic_objects="yes"
730 AS_IF([test "${SYS}" = "mingw32"], [
732 have_dynamic_objects="yes" #assume we can use shared objects
735 AS_IF([test "${enable_shared}" = "no"], [
736 have_dynamic_objects=no
738 AM_CONDITIONAL(HAVE_DYNAMIC_PLUGINS, [test "${have_dynamic_objects}" != "no"])
742 dnl Check for thread library
744 AS_IF([test "${SYS}" != "mingw32"], [
747 AC_SEARCH_LIBS(pthread_rwlock_init, pthread pthreads c_r, [
748 AS_IF([test "$ac_cv_search_pthread_rwlock_init" != "none required"], [
749 LIBPTHREAD="$ac_cv_search_pthread_rwlock_init"
754 AC_CHECK_LIB(rt, clock_nanosleep, [
755 VLC_ADD_LIBS([libvlccore],[-lrt])
757 AC_CHECK_FUNC(nanosleep,,[
758 AC_CHECK_LIB(rt,nanosleep, [
759 VLC_ADD_LIBS([libvlccore],[-lrt])
761 AC_CHECK_LIB(posix4,nanosleep, [
762 VLC_ADD_LIBS([libvlccore],[-lposix4])
767 AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LIBS([libvlccore],[-lrt])])
772 dnl Check for headers
774 AC_CHECK_HEADERS([arpa/inet.h pthread.h search.h syslog.h sys/shm.h sys/socket.h])
775 AC_CHECK_HEADERS([net/if.h], [], [],
777 #include <sys/types.h>
778 #include <sys/socket.h>
781 AC_CHECK_HEADERS([netinet/udplite.h sys/param.h sys/mount.h])
783 AC_CHECK_HEADERS([getopt.h linux/dccp.h linux/magic.h mntent.h sys/eventfd.h])
785 AC_CHECK_HEADERS([xlocale.h])
787 dnl LP64 and LLP64 architectures had better define ssize_t by themselves...
788 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.]) dnl ` (fix VIM syntax highlight
789 AC_CHECK_TYPE(ssize_t,, [
790 AC_DEFINE(ssize_t, int)
793 dnl It seems that autoconf detects pkg-config only during the first
794 dnl PKG_CHECK_MODULES from configure.ac - which makes sense. But in our case,
795 dnl it is nested within a conditional block, so it was not working right.
796 dnl Make PKG_CONFIG_PATH precious so that it appears in the help and get saved
797 AC_ARG_VAR(PKG_CONFIG_PATH,
798 [Paths where to find .pc not at the default location])
799 PKG_PROG_PKG_CONFIG()
801 dnl On some OS we need static linking
802 AS_IF([test -n "${PKG_CONFIG}" ],[
803 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "darwin" -o "${SYS}" = "os2" ],[
804 PKG_CONFIG="${PKG_CONFIG} --static"
810 dnl Check for zlib.h and -lz along with system -lminizip if available
812 AC_CHECK_HEADERS(zlib.h, [ have_zlib=yes ], [ have_zlib=no ])
813 AM_CONDITIONAL(HAVE_ZLIB, [ test "${have_zlib}" = "yes" ])
814 if test "${have_zlib}" = "yes"
816 VLC_ADD_LIBS([skins2 sap unzip zip],[-lz])
817 PKG_CHECK_MODULES([MINIZIP], [minizip] , [ have_minizip=yes ], [
818 AC_CHECK_HEADERS([unzip.h], [
820 MINIZIP_LIBS="-lminizip -lz"
822 VLC_ADD_CPPFLAGS([skins2], [-I\\\$(top_srcdir)/modules/access/zip/unzip])
823 VLC_ADD_LIBS([skins2], [\\\$(top_builddir)/modules/libunzip.la])
827 VLC_ADD_CPPFLAGS([skins2],[$MINIZIP_CFLAGS])
828 VLC_ADD_LIBS([skins2],[$MINIZIP_LIBS])
830 AM_CONDITIONAL(HAVE_MINIZIP, [ test "${have_minizip}" = "yes" ])
834 dnl Domain name i18n support via GNU libidn
836 PKG_CHECK_MODULES([IDN], [libidn], [
838 AC_DEFINE([HAVE_IDN], 1, [Define to 1 if you have GNU libidn.])
846 [AS_HELP_STRING([--enable-dbus],
847 [compile D-Bus message bus support (default enabled)])])
849 AS_IF([test "${enable_dbus}" != "no"], [
850 PKG_CHECK_MODULES(DBUS, [dbus-1 >= 1.6.0], [
853 AS_IF([test -n "${enable_dbus}"], [
854 AC_MSG_ERROR([${DBUS_PKG_ERRORS}.])
856 AC_MSG_WARN([${DBUS_PKG_ERRORS}.])
860 AM_CONDITIONAL([HAVE_DBUS], [test "${have_dbus}" = "yes"])
862 dnl Check for ntohl, etc.
864 CFLAGS="${CFLAGS} -Wall -Werror"
865 AC_CACHE_CHECK([for ntohl in sys/param.h],
866 [ac_cv_c_ntohl_sys_param_h],
867 [ AC_TRY_COMPILE([#include <sys/param.h>],
868 [int meuh; ntohl(meuh);],
869 ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
870 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
871 AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
875 EXTEND_HELP_STRING([Optimization options:])
877 dnl Compiler warnings
880 RDC_PROG_CC_WFLAGS([all extra sign-compare undef pointer-arith bad-function-cast write-strings missing-prototypes volatile-register-var error-implicit-function-declaration init-self logical-op])
881 RDC_PROG_CC_FLAGS([-pipe])
883 RDC_PROG_CXX_WFLAGS([all extra sign-compare undef pointer-arith volatile-register-var])
890 [AS_HELP_STRING([--enable-debug],
891 [build with run-time assertions (default disabled)])],,
894 [Define to 1 if debug code should NOT be compiled])
895 AS_IF([test "${enable_debug}" != "no"], [
896 AC_CHECK_HEADERS([valgrind/valgrind.h])
905 [AS_HELP_STRING([--enable-gprof],[profile with gprof (default disabled)])],,
907 AS_IF([test "${enable_gprof}" != "no"], [
908 CFLAGS="${CFLAGS} -pg"
909 CXXFLAGS="${CXXFLAGS} -pg"
910 OBJCFLAGS="${OBJCFLAGS} -pg"
911 LDFLAGS="${LDFLAGS} -pg"
915 [AS_HELP_STRING([--enable-cprof],[profile with cprof (default disabled)])],,
917 AS_IF([test "${enable_gprof}" != "no"], [
918 CFLAGS="${CFLAGS} -finstrument-functions"
919 CXXFLAGS="${CXXFLAGS} -finstrument-functions"
920 OBJCFLAGS="${OBJCFLAGS} -finstrument-functions"
921 LDFLAGS="${LDFLAGS} -finstrument-functions"
927 AC_ARG_ENABLE(coverage,
928 [AS_HELP_STRING([--enable-coverage],
929 [build for test coverage (default disabled)])],,
930 [enable_coverage="no"])
931 AS_IF([test "${enable_coverage}" != "no"], [
932 CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
933 CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
934 LDFLAGS="-lgcov ${LDFLAGS}"
937 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "os2"], [
939 CFLAGS="${CFLAGS} -fvisibility=hidden"
940 CXXFLAGS="${CXXFLAGS} -fvisibility=hidden"
941 OBJCFLAGS="${OBJCFLAGS} -fvisibility=hidden"
942 AC_CACHE_CHECK([if $CC accepts -fvisibility=hidden],
943 [ac_cv_c_visibility_hidden], [
944 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
945 ac_cv_c_visibility_hidden=yes
947 ac_cv_c_visibility_hidden=no
950 AS_IF([test "${ac_cv_c_visibility_hidden}" = "no"], [VLC_RESTORE_FLAGS])
955 dnl Enable/disable optimizations
957 AC_ARG_ENABLE(optimizations,
958 [AS_HELP_STRING([--disable-optimizations],
959 [disable compiler optimizations (default enabled)])],,
960 [enable_optimizations="yes"])
962 dnl Check for various optimization flags
963 AS_IF([test "${enable_optimizations}" != "no"], [
965 dnl -O3 only in production builds
966 AS_IF([test "${enable_debug}" = "no"], [
968 CFLAGS="${CFLAGS} -O3"
969 CXXFLAGS="${CXXFLAGS} -O3"
970 OBJCFLAGS="${OBJCFLAGS} -O3"
971 AC_CACHE_CHECK([if $CC accepts -O3], [ac_cv_c_o3], [
972 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
978 AS_IF([test "${ac_cv_c_o3}" = "no"], [VLC_RESTORE_FLAGS])
981 dnl Check for -ffast-math
983 CFLAGS="${CFLAGS} -ffast-math"
984 CXXFLAGS="${CXXFLAGS} -ffast-math"
985 OBJCFLAGS="${OBJCFLAGS} -ffast-math"
986 AC_CACHE_CHECK([if $CC accepts -ffast-math], [ac_cv_c_fast_math], [
987 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
988 ac_cv_c_fast_math=yes
993 AS_IF([test "${ac_cv_c_fast_math}" = "no"], [VLC_RESTORE_FLAGS])
995 #ifndef __FAST_MATH__
997 # pragma STDC FENV_ACCESS OFF
998 # pragma STDC FP_CONTRACT ON
1000 # pragma fenv_access(off)
1001 # pragma fp_contract(on)
1006 dnl Check for -funroll-loops
1008 CFLAGS="${CFLAGS} -funroll-loops"
1009 CXXFLAGS="${CXXFLAGS} -funroll-loops"
1010 OBJCFLAGS="${OBJCFLAGS} -funroll-loops"
1011 AC_CACHE_CHECK([if $CC accepts -funroll-loops], [ac_cv_c_unroll_loops], [
1012 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1013 ac_cv_c_unroll_loops=yes
1015 ac_cv_c_unroll_loops=no
1018 AS_IF([test "${ac_cv_c_unroll_loops}" = "no"], [VLC_RESTORE_FLAGS])
1020 AS_IF([test "$enable_debug" = "no"], [
1021 dnl Check for -fomit-frame-pointer
1023 CFLAGS="${CFLAGS} -fomit-frame-pointer"
1024 CXXFLAGS="${CXXFLAGS} -fomit-frame-pointer"
1025 OBJCFLAGS="${OBJCFLAGS} -fomit-frame-pointer"
1026 AC_CACHE_CHECK([if $CC accepts -fomit-frame-pointer],
1027 [ac_cv_c_omit_frame_pointer], [
1028 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1029 ac_cv_c_omit_frame_pointer=yes
1031 ac_cv_c_omit_frame_pointer=no
1034 AS_IF([test "${ac_cv_c_omit_frame_pointer}" = "no"], [VLC_RESTORE_FLAGS])
1039 LDFLAGS="${LDFLAGS} -Wl,-Bsymbolic"
1040 AC_CACHE_CHECK([if linker supports -Bsymbolic], [ac_cv_ld_bsymbolic], [
1042 ac_cv_ld_bsymbolic="-Wl,-Bsymbolic"
1044 ac_cv_ld_bsymbolic=""
1048 SYMBOLIC_LDFLAGS="${ac_cv_ld_bsymbolic}"
1049 AC_SUBST(SYMBOLIC_LDFLAGS)
1051 dnl Checks for __attribute__(aligned()) directive
1053 CFLAGS="${CFLAGS} -Werror"
1054 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1055 [ac_cv_c_attribute_aligned],
1056 [ac_cv_c_attribute_aligned=0
1057 for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1059 [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1060 [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1063 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1064 AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1065 [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1068 dnl Check for __attribute__((packed))
1069 AC_CACHE_CHECK([for __attribute__((packed))],
1070 [ac_cv_c_attribute_packed],
1071 [ac_cv_c_attribute_packed=no
1072 AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b; (void)b;],
1073 [ac_cv_c_attribute_packed=yes])])
1074 if test "${ac_cv_c_attribute_packed}" != "no"; then
1075 AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1081 case "${host_cpu}" in
1090 dnl Check for backtrace() support
1091 AC_CHECK_HEADERS(execinfo.h)
1092 AC_CHECK_FUNCS(backtrace)
1097 ALIASES="${ALIASES} cvlc rvlc"
1100 dnl Accelerated modules
1103 dnl Check for fully working MMX intrinsics
1104 dnl We need support for -mmmx, we need <mmintrin.h>, and we also need a
1105 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1107 [AS_HELP_STRING([--disable-mmx],
1108 [disable MMX optimizations (default auto)])],,[
1109 case "${host_cpu}" in
1120 AS_IF([test "${enable_mmx}" != "no"], [
1123 CFLAGS="${CFLAGS} -mmmx"
1124 AC_CACHE_CHECK([if $CC groks MMX intrinsics], [ac_cv_c_mmx_intrinsics], [
1125 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1126 [#include <mmintrin.h>
1128 uint64_t frobzor;]], [
1130 a = b = c = (__m64)frobzor;
1131 a = _mm_slli_pi16(a, 3);
1132 a = _mm_adds_pi16(a, b);
1133 c = _mm_srli_pi16(c, 8);
1134 c = _mm_slli_pi16(c, 3);
1135 b = _mm_adds_pi16(b, c);
1136 a = _mm_unpacklo_pi8(a, b);
1137 frobzor = (uint64_t)a;]])], [
1138 ac_cv_c_mmx_intrinsics=yes
1140 ac_cv_c_mmx_intrinsics=no
1144 AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1145 AC_DEFINE(HAVE_MMX_INTRINSICS, 1, [Define to 1 if MMX intrinsics are available.])
1149 CFLAGS="${CFLAGS} -mmmx"
1150 AC_CACHE_CHECK([if $CC groks MMX inline assembly], [ac_cv_mmx_inline], [
1151 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1153 asm volatile("packuswb %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1156 ac_cv_mmx_inline=yes
1161 AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1162 AC_DEFINE(CAN_COMPILE_MMX, 1, [Define to 1 inline MMX assembly is available.])
1166 AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1167 [ac_cv_mmxext_inline], [
1168 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1170 asm volatile("maskmovq %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1173 ac_cv_mmxext_inline=yes
1175 ac_cv_mmxext_inline=no
1179 AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1180 AC_DEFINE(CAN_COMPILE_MMXEXT, 1, [Define to 1 if MMX EXT inline assembly is available.])
1184 AM_CONDITIONAL([HAVE_MMX], [test "${have_mmx}" = "yes"])
1185 AM_CONDITIONAL([HAVE_MMXEXT], [test "${have_mmxext}" = "yes"])
1187 dnl Check for fully workin SSE2 intrinsics
1188 dnl We need support for -mmmx, we need <emmintrin.h>, and we also need a
1189 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1191 [AS_HELP_STRING([--disable-sse],
1192 [disable SSE (1-4) optimizations (default auto)])],, [
1193 case "${host_cpu}" in
1203 AS_IF([test "${enable_sse}" != "no"], [
1204 ARCH="${ARCH} sse sse2"
1207 CFLAGS="${CFLAGS} -msse2"
1208 AC_CACHE_CHECK([if $CC groks SSE2 intrinsics], [ac_cv_c_sse2_intrinsics], [
1209 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1210 [#include <emmintrin.h>
1212 uint64_t frobzor;]], [
1214 a = b = c = _mm_set1_epi64((__m64)frobzor);
1215 a = _mm_slli_epi16(a, 3);
1216 a = _mm_adds_epi16(a, b);
1217 c = _mm_srli_epi16(c, 8);
1218 c = _mm_slli_epi16(c, 3);
1219 b = _mm_adds_epi16(b, c);
1220 a = _mm_unpacklo_epi8(a, b);
1221 frobzor = (uint64_t)_mm_movepi64_pi64(a);]])], [
1222 ac_cv_c_sse2_intrinsics=yes
1224 ac_cv_c_sse2_intrinsics=no
1228 AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1229 AC_DEFINE(HAVE_SSE2_INTRINSICS, 1, [Define to 1 if SSE2 intrinsics are available.])
1233 CFLAGS="${CFLAGS} -msse"
1234 AC_CACHE_CHECK([if $CC groks SSE inline assembly], [ac_cv_sse_inline], [
1235 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1237 asm volatile("xorps %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1240 ac_cv_sse_inline=yes
1246 AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1247 AC_DEFINE(CAN_COMPILE_SSE, 1, [Define to 1 if SSE inline assembly is available.])
1250 AC_CACHE_CHECK([if $CC groks SSE2 inline assembly], [ac_cv_sse2_inline], [
1251 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1253 asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1256 ac_cv_sse2_inline=yes
1258 ac_cv_sse2_inline=no
1261 AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1262 AC_DEFINE(CAN_COMPILE_SSE2, 1, [Define to 1 if SSE2 inline assembly is available.])
1267 AC_CACHE_CHECK([if $CC groks SSE3 inline assembly], [ac_cv_sse3_inline], [
1268 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1270 asm volatile("movsldup %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1273 ac_cv_sse3_inline=yes
1275 ac_cv_sse3_inline=no
1279 AS_IF([test "${ac_cv_sse3_inline}" != "no"], [
1280 AC_DEFINE(CAN_COMPILE_SSE3, 1, [Define to 1 if SSE3 inline assembly is available.]) ])
1282 AC_CACHE_CHECK([if $CC groks SSSE3 inline assembly], [ac_cv_ssse3_inline], [
1283 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1285 asm volatile("pabsw %%xmm0,%%xmm0"::"r"(p):"xmm0");
1288 ac_cv_ssse3_inline=yes
1290 ac_cv_ssse3_inline=no
1294 AS_IF([test "${ac_cv_ssse3_inline}" != "no"], [
1295 AC_DEFINE(CAN_COMPILE_SSSE3, 1, [Define to 1 if SSSE3 inline assembly is available.]) ])
1298 AC_CACHE_CHECK([if $CC groks SSE4.1 inline assembly],
1299 [ac_cv_sse4_1_inline], [
1300 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1302 asm volatile("pmaxsb %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1305 ac_cv_sse4_1_inline=yes
1307 ac_cv_sse4_1_inline=no
1311 AS_IF([test "${ac_cv_sse4_1_inline}" != "no"], [
1312 AC_DEFINE(CAN_COMPILE_SSE4_1, 1, [Define to 1 if SSE4_1 inline assembly is available.]) ])
1315 AC_CACHE_CHECK([if $CC groks SSE4.2 inline assembly],
1316 [ac_cv_sse4_2_inline], [
1317 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1319 asm volatile("pcmpgtq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1322 ac_cv_sse4_2_inline=yes
1324 ac_cv_sse4_2_inline=no
1328 AS_IF([test "${ac_cv_sse4_2_inline}" != "no"], [
1329 AC_DEFINE(CAN_COMPILE_SSE4_2, 1, [Define to 1 if SSE4_2 inline assembly is available.]) ])
1332 AC_CACHE_CHECK([if $CC groks SSE4A inline assembly], [ac_cv_sse4a_inline], [
1333 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1335 asm volatile("insertq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1338 ac_cv_sse4a_inline=yes
1340 ac_cv_sse4a_inline=no
1344 AS_IF([test "${ac_cv_sse4a_inline}" != "no"], [
1345 AC_DEFINE(CAN_COMPILE_SSE4A, 1, [Define to 1 if SSE4A inline assembly is available.]) ])
1347 AM_CONDITIONAL([HAVE_SSE2], [test "$have_sse2" = "yes"])
1350 CFLAGS="${CFLAGS} -mmmx"
1352 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly], [ac_cv_3dnow_inline], [
1353 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1355 asm volatile("pfadd %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1358 ac_cv_3dnow_inline=yes
1360 ac_cv_3dnow_inline=no
1364 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1365 AC_DEFINE(CAN_COMPILE_3DNOW, 1,
1366 [Define to 1 if 3D Now! inline assembly is available.])
1369 AM_CONDITIONAL([HAVE_3DNOW], [test "$have_3dnow" = "yes"])
1373 [AS_HELP_STRING([--disable-neon],
1374 [disable NEON optimizations (default auto)])],, [
1375 AS_IF([test "${host_cpu}" = "arm"], [enable_neon="yes"] ,[enable_neon="no"])
1377 AS_IF([test "${enable_neon}" != "no"], [
1379 CFLAGS="${CFLAGS} -mfpu=neon -mhard-float"
1380 AC_CACHE_CHECK([if $CCAS groks ARM NEON assembly], [ac_cv_arm_neon], [
1383 asm volatile("vqmovun.s64 d0, q1":::"d0");
1386 ac_cv_arm_neon="yes"
1393 AM_CONDITIONAL(HAVE_NEON, [test "${ac_cv_arm_neon}" = "yes"])
1396 AC_ARG_ENABLE(altivec,
1397 [AS_HELP_STRING([--disable-altivec],
1398 [disable AltiVec optimizations (default auto)])],, [
1399 AS_CASE("${host_cpu}", [powerpc*],
1400 [enable_altivec=yes], [enable_altivec=no])
1404 AS_IF([test "${enable_altivec}" = "yes"], [
1405 ARCH="${ARCH} altivec";
1407 AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1408 [ac_cv_altivec_inline],
1409 [AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1410 ac_cv_altivec_inline="yes",
1411 [CFLAGS="${CFLAGS} -Wa,-maltivec"
1412 AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1413 [ac_cv_altivec_inline="-Wa,-maltivec"],
1414 ac_cv_altivec_inline=no)
1417 AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1418 AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1419 [Define to 1 if AltiVec inline assembly is available.])
1420 AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1421 ALTIVEC_CFLAGS="${ac_cv_altivec_inline}"
1422 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_altivec_inline}])
1428 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1429 [ac_cv_c_altivec], [
1430 CFLAGS="${CFLAGS} -maltivec"
1431 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1432 [#include <altivec.h>]], [
1433 [vec_ld(0, (unsigned char *)0);]])], [
1434 ac_cv_c_altivec="-maltivec"
1436 ac_cv_c_altivec="no"
1440 AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1441 CPPFLAGS="${CPPFLAGS} ${ac_cv_c_altivec}"
1442 AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, [Define to 1 if C AltiVec extensions are available.])
1443 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_c_altivec}])
1444 ALTIVEC_CFLAGS="$ALTIVEC_FLAGS ${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}"
1445 VLC_ADD_CFLAGS([deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1448 AC_CHECK_HEADERS(altivec.h)
1451 LDFLAGS="${LDFLAGS} -Wl,-framework,vecLib"
1452 AC_CACHE_CHECK([if linker needs -framework vecLib],
1454 [AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)])
1456 AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1457 VLC_ADD_LIBS([libvlccore],[-Wl,-framework,vecLib])
1460 AC_SUBST(ALTIVEC_CFLAGS)
1461 AM_CONDITIONAL([HAVE_ALTIVEC], [test "$have_altivec" = "yes"])
1466 AC_ARG_ENABLE(optimize-memory,
1467 [AS_HELP_STRING([--enable-optimize-memory],
1468 [optimize memory usage over performance])])
1469 if test "${enable_optimize_memory}" = "yes"; then
1470 AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1474 dnl Allow running as root (useful for people running on embedded platforms)
1476 AC_ARG_ENABLE(run-as-root,
1477 [AS_HELP_STRING([--enable-run-as-root],
1478 [allow running VLC as root (default disabled)])])
1479 AS_IF([test "${enable_run_as_root}" = "yes"],[
1480 AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1481 [Define to 1 to allow running VLC as root (uid 0).])
1488 [AS_HELP_STRING([--disable-sout],
1489 [disable streaming output (default enabled)])])
1490 AS_IF([test "${enable_sout}" != "no"], [
1491 AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1493 AM_CONDITIONAL(ENABLE_SOUT, [test "${enable_sout}" != "no"])
1497 [AS_HELP_STRING([--disable-lua],
1498 [disable LUA scripting support (default enabled)])])
1499 if test "${enable_lua}" != "no"
1501 PKG_CHECK_MODULES(LUA, lua5.2,
1504 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua 5.1 instead])
1506 PKG_CHECK_MODULES(LUA, lua5.1,
1509 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua >= 5.1 instead])
1510 PKG_CHECK_MODULES(LUA, lua >= 5.1,
1513 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying manual detection instead])
1515 AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1518 AC_CHECK_LIB( lua5.2 , luaL_newstate,
1519 [LUA_LIBS="-llua5.2"],
1520 AC_CHECK_LIB( lua5.1 , luaL_newstate,
1521 [LUA_LIBS="-llua5.1"],
1522 AC_CHECK_LIB( lua51 , luaL_newstate,
1523 [LUA_LIBS="-llua51"],
1524 AC_CHECK_LIB( lua , luaL_newstate,
1532 if test "x${have_lua}" != "xyes" ; then
1533 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.])
1535 AC_ARG_VAR([LUAC], [LUA byte compiler])
1536 AC_PATH_PROGS(LUAC,[${LUAC} luac], [false])
1537 AS_IF([test "${LUAC}" = "false"], [
1538 AC_MSG_ERROR([Could not find the LUA byte compiler.])
1540 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], [
1541 AC_MSG_ERROR([You need 32-bits luac when using using lua from contrib.])
1544 AM_CONDITIONAL(BUILD_LUA, [test "${have_lua}" = "yes"])
1550 AC_ARG_ENABLE(httpd,
1551 [AS_HELP_STRING([--disable-httpd],
1552 [disable the built-in HTTP server (default enabled)])])
1553 if test "${enable_httpd}" != "no"
1555 AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP daemon support)
1557 AM_CONDITIONAL(BUILD_HTTPD, [test "${enable_httpd}" != "no"])
1561 dnl VideoLAN manager
1564 [AS_HELP_STRING([--disable-vlm],
1565 [disable the stream manager (default enabled)])],,
1566 [enable_vlm="${enable_sout}"])
1567 AS_IF([test "${enable_vlm}" != "no"], [
1568 AS_IF([test "${enable_sout}" = "no"], [
1569 AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1571 AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1573 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1577 dnl Addons manager storage and repositories modules
1579 AC_ARG_ENABLE(addonmanagermodules,
1580 [AS_HELP_STRING([--disable-addonmanagermodules],
1581 [disable the addons manager modules (default enabled)])])
1582 if test "${enable_addonmanagermodules}" != "no"
1584 AC_DEFINE(ENABLE_ADDONMANAGERMODULES, 1, [Define if you want the addons manager modules])
1586 AM_CONDITIONAL([ENABLE_ADDONMANAGERMODULES], [test "${enable_addonmanagermodules}" != "no"])
1593 EXTEND_HELP_STRING([Input plugins:])
1596 dnl libarchive access module
1598 PKG_ENABLE_MODULES_VLC([ARCHIVE], [access_archive], [libarchive >= 2.8.5], (libarchive support), [auto])
1603 AC_ARG_ENABLE(live555,
1604 [AS_HELP_STRING([--enable-live555],
1605 [enable RTSP input through live555 (default enabled)])])
1607 AS_IF([test "${enable_live555}" != "no" -a -n "${CXX}"], [
1608 PKG_CHECK_MODULES(LIVE555, live555, [
1609 VLC_ADD_PLUGIN([live555])
1610 VLC_ADD_CXXFLAGS([live555], [$LIVE555_CFLAGS])
1611 VLC_ADD_LIBS([live555],[$LIVE555_LIBS])
1613 AC_MSG_WARN([${LIVE555_PKG_ERRORS}.])
1618 dnl detect include paths
1619 AS_IF([test -f "${CONTRIB_DIR}/include/UsageEnvironment.hh"], [
1620 CPPFLAGS_live555="-I${CONTRIB_DIR}/include/liveMedia -I${CONTRIB_DIR}/include/groupsock -I${CONTRIB_DIR}/include/BasicUsageEnvironment -I${CONTRIB_DIR}/include/UsageEnvironment"
1622 AS_IF([test "${SYS}" != "os2"], [
1623 LIVE555_PREFIX=${LIVE555_PREFIX-"/usr"}
1624 CPPFLAGS_live555="-I${LIVE555_PREFIX}/include/liveMedia -I${LIVE555_PREFIX}/include/groupsock -I${LIVE555_PREFIX}/include/BasicUsageEnvironment -I${LIVE555_PREFIX}/include/UsageEnvironment"
1626 LIVE555_PREFIX=${LIVE555_PREFIX-"/usr/lib/live"}
1627 CPPFLAGS_live555="-I${LIVE555_PREFIX}/liveMedia/include -I${LIVE555_PREFIX}/groupsock/include -I${LIVE555_PREFIX}/BasicUsageEnvironment/include -I${LIVE555_PREFIX}/UsageEnvironment/include"
1628 LDFLAGS_live555="-L${LIVE555_PREFIX}/liveMedia -L${LIVE555_PREFIX}/groupsock -L${LIVE555_PREFIX}/BasicUsageEnvironment -L${LIVE555_PREFIX}/UsageEnvironment"
1633 AS_IF([test "${SYS}" = "solaris"], [
1634 CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1636 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1637 LDFLAGS="${LDFLAGS} ${LDFLAGS_live555}"
1640 AC_CACHE_CHECK([for live555 version 1324598400 or later], [ac_cv_live555], [
1641 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
1642 [#include <liveMedia_version.hh>
1643 #if !defined (LIVEMEDIA_LIBRARY_VERSION_INT) || (LIVEMEDIA_LIBRARY_VERSION_INT < 1324598400)
1653 AS_IF([test "$ac_cv_live555" = "no"], [
1654 AC_MSG_WARN([live555 is missing or its installed version is too old:
1655 Version 2011.12.23 or later is required to proceed.
1656 You can get an updated one from http://www.live555.com/liveMedia .])
1657 AS_IF([test -n "${enable_live555}"], [
1658 AC_MSG_ERROR([Update live555 or pass --disable-live555 to disable RTSP input support.])
1661 other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1662 other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
1663 AS_IF([test "${SYS}" = "mingw32"], [
1664 # add ws2_32 for closesocket, select, recv
1665 other_libs="$other_libs -lws2_32"
1668 dnl We need to check for pic because live555 don't provide shared libs
1669 dnl and we want to build a plugins so we need -fPIC on some arch.
1670 VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1671 VLC_ADD_LDFLAGS([live555], [${LDFLAGS_live555}])
1672 AC_CHECK_LIB(liveMedia_pic, main, [
1673 VLC_ADD_PLUGIN([live555])
1674 VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
1676 AC_CHECK_LIB(liveMedia, main, [
1677 VLC_ADD_PLUGIN([live555])
1678 VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1679 ],[],[${other_libs}])
1680 ],[${other_libs_pic}])
1688 dnl IIDC and DV FireWire input modules
1690 PKG_ENABLE_MODULES_VLC([DC1394], [], [libdc1394-2 >= 2.1.0], [IIDC FireWire input module], [auto])
1691 PKG_ENABLE_MODULES_VLC([DV1394], [], [libraw1394 >= 2.0.1 libavc1394 >= 0.5.3], [DV FireWire input module], [auto])
1694 dnl - linsys modules: access module check for libzvbi
1696 AC_ARG_ENABLE(linsys,
1697 [AS_HELP_STRING([--enable-linsys],
1698 [Linux Linear Systems Ltd. SDI and HD-SDI input cards (default enabled)])])
1699 AS_IF([test "$SYS" = "linux" -a "${enable_linsys}" != "no"], [
1700 VLC_ADD_PLUGIN([linsys_hdsdi])
1701 PKG_CHECK_MODULES(LINSYS_SDI, [zvbi-0.2 >= 0.2.28], [
1702 VLC_ADD_PLUGIN([linsys_sdi])
1704 AC_MSG_WARN([${LINSYS_SDI_PKG_ERRORS}.])
1709 dnl dvdread module: check for libdvdread
1711 PKG_ENABLE_MODULES_VLC([DVDREAD], [], [dvdread > 4.9.0], [dvdread input module], [auto])
1714 dnl libdvdnav plugin
1716 PKG_ENABLE_MODULES_VLC([DVDNAV], [], [dvdnav > 4.9.0], [DVD with navigation input module (dvdnav)], [auto])
1719 dnl Blu-ray Disc Support with libbluray
1721 PKG_ENABLE_MODULES_VLC([BLURAY], [libbluray], [libbluray >= 0.3.0], (libbluray for Blu-ray disc support ) )
1724 dnl OpenCV wrapper and example filters
1726 PKG_ENABLE_MODULES_VLC([OPENCV], [opencv_example opencv_wrapper], [opencv > 2.0], (OpenCV (computer vision) filter), [auto])
1730 dnl libsmbclient plugin
1732 PKG_ENABLE_MODULES_VLC([SMBCLIENT], [smb], [smbclient], (SMB/CIFS support), [auto])
1733 AS_IF([test "${SYS}" = "mingw32"], [ VLC_ADD_PLUGIN([access_smb]) ])
1736 dnl liBDSM access module
1738 PKG_ENABLE_MODULES_VLC([DSM], [dsm], [libdsm], [libdsm SMB/CIFS access/sd module], [auto])
1741 dnl sftp access support
1743 PKG_ENABLE_MODULES_VLC([SFTP], [sftp], [libssh2], (support SFTP file transfer via libssh2), [auto])
1748 AC_ARG_ENABLE(v4l2, [AS_HELP_STRING([--disable-v4l2],
1749 [disable Video4Linux version 2 (default auto)])])
1751 AS_IF([test "$enable_v4l2" != "no"], [
1752 AC_CHECK_HEADERS([linux/videodev2.h sys/videoio.h], [
1756 AM_CONDITIONAL(HAVE_V4L2, [test "${have_v4l2}" != "no"])
1759 dnl special access module for Blackmagic SDI cards
1761 AC_ARG_ENABLE(decklink,
1762 [AS_HELP_STRING([--disable-decklink],
1763 [disable Blackmagic DeckLink SDI input (default auto)])])
1764 AC_ARG_WITH(decklink_sdk,
1765 [AS_HELP_STRING[--with-decklink-sdk=DIR],
1766 [ location of Blackmagic DeckLink SDI SDK])])
1768 if test "${enable_decklink}" != "no"
1770 if test "${with_decklink_sdk}" != "no" -a -n "${with_decklink_sdk}"
1772 VLC_ADD_CPPFLAGS([decklink decklinkoutput],[-I${with_decklink_sdk}/include])
1775 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_decklink}"
1777 AC_CHECK_HEADERS(DeckLinkAPIDispatch.cpp, [
1780 AC_MSG_WARN(Blackmagic DeckLink SDI include files not found, decklink disabled)
1785 AM_CONDITIONAL(HAVE_DECKLINK, [ test "${have_decklink}" != "no" ])
1789 dnl gnomeVFS access module
1791 PKG_ENABLE_MODULES_VLC([GNOMEVFS], [gnomevfs], [gnome-vfs-2.0], [GnomeVFS access module], [auto])
1796 PKG_ENABLE_MODULES_VLC([VCDX], [vcdx], [libcdio >= 0.78.2 libiso9660 >= 0.72 libvcdinfo >= 0.7.22], [navigate VCD with libvcdinfo], [no])
1799 dnl Built-in CD-DA and VCD module
1802 [AS_HELP_STRING([--disable-vcd],
1803 [disable built-in VCD and CD-DA support (default enabled)])])
1805 AC_ARG_ENABLE(libcddb,
1806 [AS_HELP_STRING([--disable-libcddb],
1807 [disable CDDB for Audio CD (default enabled)])])
1809 if test "${enable_vcd}" != "no"
1811 AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
1812 AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
1814 VLC_ADD_PLUGIN([vcd cdda])
1819 AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
1820 AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
1822 VLC_ADD_PLUGIN([vcd cdda])
1823 AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
1828 AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
1829 AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
1831 VLC_ADD_PLUGIN([vcd cdda])
1832 AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
1837 if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32" -o "${SYS}" = "os2" -o "${SYS}" = "darwin"
1839 VLC_ADD_PLUGIN([vcd cdda])
1842 if test "$enable_libcddb" != "no"; then
1843 PKG_CHECK_MODULES(LIBCDDB, [libcddb >= 0.9.5], [
1845 AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
1846 VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
1847 VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
1849 [AC_MSG_WARN([${LIBCDDB_PKG_ERRORS}: CDDB access disabled.])
1857 AC_CACHE_CHECK([for Linux DVB version 5.1], [ac_cv_linux_dvb_5_1], [
1858 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
1859 [#include <linux/dvb/version.h>
1860 #if (DVB_API_VERSION < 5)
1861 # error Linux DVB API v3.2 and older are not supported.
1863 #if (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR < 1)
1864 # error Linux DVB API v5.0 is unsupported. Please update.
1867 ac_cv_linux_dvb_5_1=yes
1869 ac_cv_linux_dvb_5_1=no
1871 AM_CONDITIONAL([HAVE_LINUX_DVB], [test "$ac_cv_linux_dvb_5_1" = "yes"])
1874 dnl Screen capture module
1876 AC_ARG_ENABLE(screen,
1877 [AS_HELP_STRING([--enable-screen],
1878 [disable screen capture (default enabled)])])
1879 if test "${enable_screen}" != "no"; then
1880 if test "${SYS}" = "darwin"; then
1881 AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
1882 VLC_ADD_PLUGIN([screen])
1886 AM_CONDITIONAL(HAVE_MAC_SCREEN, [test "${SYS}" = "darwin" -a "x${enable_screen}" != "xno"])
1889 dnl VNC/RFB access module
1891 PKG_ENABLE_MODULES_VLC([VNC], [vnc], [libvncclient >= 0.9.9], (VNC/rfb client support), [auto])
1893 dnl RDP/Remote Desktop access module
1895 PKG_ENABLE_MODULES_VLC([FREERDP], [rdp], [freerdp >= 1.0.1], (RDP/Remote Desktop client support) )
1898 dnl Real RTSP plugin
1900 AC_ARG_ENABLE(realrtsp,
1901 [ --enable-realrtsp Real RTSP module (default disabled)])
1902 if test "${enable_realrtsp}" = "yes"; then
1903 VLC_ADD_PLUGIN([access_realrtsp])
1908 AC_ARG_ENABLE(macosx-eyetv,
1909 [ --enable-macosx-eyetv Mac OS X EyeTV (TNT Tuner) module (default enabled on Mac OS X)])
1910 if test "x${enable_macosx_eyetv}" != "xno" &&
1911 (test "${SYS}" = "darwin" || test "${enable_macosx_eyetv}" = "yes")
1913 VLC_ADD_PLUGIN([access_eyetv])
1918 AC_ARG_ENABLE(macosx-qtkit,
1919 [ --enable-macosx-qtkit Mac OS X qtcapture (video) and qtsound (audio) module (default enabled on Mac OS X)])
1920 if test "x${enable_macosx_qtkit}" != "xno" &&
1921 (test "${SYS}" = "darwin" || test "${enable_macosx_qtkit}" = "yes")
1923 VLC_ADD_PLUGIN([qtcapture])
1924 VLC_ADD_PLUGIN([qtsound])
1926 AM_CONDITIONAL(HAVE_QTKIT, [test "${SYS}" = "darwin" -a "x${enable_macosx_qtkit}" != "xno"])
1930 AC_SUBST(have_avfoundation, ["no"])
1931 AC_ARG_ENABLE(macosx-avfoundation,
1932 [ --enable-macosx-avfoundation Mac OS X avcapture (video) module (default enabled on Mac OS X)])
1933 if test "x${enable_macosx_avfoundation}" != "xno" &&
1934 (test "${SYS}" = "darwin" || test "${enable_macosx_avfoundation}" = "yes")
1936 SAVED_LIBS="${LIBS}"
1937 LIBS="-framework AVFoundation"
1938 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [])],[have_avfoundation=yes],[have_avfoundation=no])
1939 LIBS="${SAVED_LIBS}"
1940 if test "${have_avfoundation}" != "no"
1942 VLC_ADD_PLUGIN([avcapture])
1945 AM_CONDITIONAL(HAVE_AVFOUNDATION, [test "${have_avfoundation}" != "no"])
1948 dnl DCP plugin (using asdcplib)
1950 PKG_WITH_MODULES([ASDCP], [asdcplib], [have_asdcp="yes"])
1951 AM_CONDITIONAL(HAVE_ASDCP, [test "${have_asdcp}" = "yes"])
1957 EXTEND_HELP_STRING([Mux/Demux plugins:])
1960 dnl libdvbpsi check for ts mux/demux
1963 PKG_WITH_MODULES([DVBPSI], [libdvbpsi], [have_dvbpsi="yes"])
1964 AM_CONDITIONAL(HAVE_DVBPSI, [test "${have_dvbpsi}" = "yes"])
1968 dnl GME demux plugin
1971 [AS_HELP_STRING([--enable-gme],
1972 [use Game Music Emu (default auto)])])
1973 AS_IF([test "${enable_gme}" != "no"], [
1974 AC_CHECK_HEADER([gme/gme.h], [
1975 VLC_ADD_LIBS([gme], [-lgme])
1976 VLC_ADD_PLUGIN([gme])
1978 AS_IF([test "x${enable_gme}" != "x"], [
1979 AC_MSG_ERROR([GME cannot be found. Please install the development files.])
1989 [AS_HELP_STRING([--enable-sid],[C64 sid demux support (default auto)])])
1990 AS_IF([test "${enable_sid}" != "no"], [
1991 PKG_CHECK_MODULES(SID, [libsidplay2], [
1993 oldCPPFLAGS="$CPPFLAGS"
1994 CPPFLAGS="$CPPFLAGS $SID_CFLAGS"
1995 AC_CHECK_HEADER([sidplay/builders/resid.h], [
1996 VLC_ADD_PLUGIN([sid])
1997 VLC_ADD_CFLAGS([sid], [$SID_CFLAGS])
1998 VLC_ADD_LIBS([sid], [$SID_LIBS] [-lresid-builder])
2000 AS_IF([test -n "${enable_sid}"],
2001 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2002 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2005 CPPFLAGS="$oldCPPFLAGS"
2008 AS_IF([test "x${enable_sid}" = "xyes"],
2009 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2010 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2017 dnl ogg demux plugin
2019 PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto])
2020 PKG_CHECK_MODULES(LIBVORBIS, [vorbis >= 1.1], [
2021 AC_DEFINE(HAVE_LIBVORBIS, 1, [Define to 1 if you have the libvorbis])
2023 PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto], [${LIBVORBIS_CFLAGS}], [${LIBVORBIS_LIBS}])
2024 if test "${enable_sout}" != "no"; then
2025 PKG_ENABLE_MODULES_VLC([MUX_OGG], [], [ogg >= 1.0], [Ogg mux support], [auto])
2026 dnl Check for libshout
2027 PKG_ENABLE_MODULES_VLC([SHOUT], [access_output_shout], [shout >= 2.1], [libshout output plugin], [auto])
2031 dnl matroska demux plugin
2034 [AS_HELP_STRING([--disable-mkv],
2035 [do not use libmatroska (default auto)])])
2036 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2038 AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2039 AC_MSG_CHECKING(for libebml version >= 1.0.0)
2041 [#include <ebml/EbmlVersion.h>
2042 #ifdef LIBEBML_VERSION
2043 #if LIBEBML_VERSION >= 0x010000
2047 [AC_MSG_RESULT([yes])
2048 AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2049 AC_MSG_CHECKING(for libmatroska version >= 1.0.0)
2051 [#include <matroska/KaxVersion.h>
2052 #ifdef LIBMATROSKA_VERSION
2053 #if LIBMATROSKA_VERSION >= 0x010000
2057 [AC_MSG_RESULT([yes])
2058 AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2059 AC_CHECK_LIB(ebml_pic, main, [
2060 VLC_ADD_PLUGIN([mkv])
2061 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2063 AC_CHECK_LIB(ebml, main, [
2064 VLC_ADD_PLUGIN([mkv])
2065 VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2070 AC_MSG_ERROR([Your libmatroska is too old: you may get a more recent one from http://dl.matroska.org/downloads/libmatroska/. Alternatively you can use --disable-mkv to disable the matroska plugin.])
2074 [AC_MSG_RESULT([no])
2075 AC_MSG_ERROR([Your libebml is too old: you may get a more recent one from http://dl.matroska.org/downloads/libebml/. Alternatively you can use --disable-mkv to disable the matroska plugin.])
2082 dnl modplug demux plugin
2085 [AS_HELP_STRING([--disable-mod],
2086 [do not use libmodplug (default auto)])])
2087 if test "${enable_mod}" != "no" ; then
2088 PKG_CHECK_MODULES(LIBMODPLUG, [libmodplug >= 0.8.4 libmodplug != 0.8.8], [
2089 VLC_ADD_PLUGIN([mod])
2090 VLC_ADD_CXXFLAGS([mod],[$LIBMODPLUG_CFLAGS])
2091 VLC_ADD_CFLAGS([mod],[$LIBMODPLUG_CFLAGS]) #modules/demux/mod.c needs CFLAGS_mod, not CXXFLAGS_mod
2092 VLC_ADD_LIBS([mod],[$LIBMODPLUG_LIBS])
2094 AS_IF([test -n "${enable_mod}"],
2095 [AC_MSG_ERROR([${LIBMODPLUG_PKG_ERRORS}.])],
2096 [AC_MSG_WARN([${LIBMODPLUG_PKG_ERRORS}.])])
2101 dnl mpc demux plugin
2104 [AS_HELP_STRING([--disable-mpc], [do not use libmpcdec (default auto)])])
2105 if test "${enable_mpc}" != "no"
2107 AC_CHECK_HEADERS([mpc/mpcdec.h], [
2108 VLC_ADD_PLUGIN([mpc])
2109 VLC_ADD_LIBS([mpc],[-lmpcdec])],
2110 [AC_CHECK_HEADERS([mpcdec/mpcdec.h], [
2111 VLC_ADD_PLUGIN([mpc])
2112 VLC_ADD_LIBS([mpc],[-lmpcdec])])])
2119 EXTEND_HELP_STRING([Codec plugins:])
2124 AC_ARG_ENABLE(wma-fixed,
2125 [ --enable-wma-fixed libwma-fixed module (default disabled)])
2126 if test "${enable_wma_fixed}" = "yes"
2128 VLC_ADD_PLUGIN([wma_fixed])
2132 dnl shine encoder plugin
2134 PKG_ENABLE_MODULES_VLC([SHINE], [], [shine >= 3.0.0], [MPEG Audio Layer 3 encoder], [auto], [], [], [])
2138 dnl openmax il codec plugin
2140 AC_ARG_ENABLE(omxil,
2141 [ --enable-omxil openmax il codec module (default disabled)])
2142 if test "${enable_omxil}" = "yes"
2144 VLC_ADD_PLUGIN([omxil])
2148 dnl openmax il vout plugin
2150 AC_ARG_ENABLE(omxil-vout,
2151 [ --enable-omxil-vout openmax il video output module (default disabled)])
2152 if test "${enable_omxil_vout}" = "yes"
2154 VLC_ADD_PLUGIN([omxil_vout])
2158 dnl raspberry pi openmax il configuration
2160 AC_ARG_ENABLE(rpi-omxil,
2161 [ --enable-rpi-omxil openmax il configured for raspberry pi (default disabled)])
2162 if test "${enable_rpi_omxil}" = "yes"
2164 VLC_ADD_PLUGIN([omxil omxil_vout])
2165 VLC_ADD_CFLAGS([omxil omxil_vout],[-DRPI_OMX])
2169 dnl CrystalHD codec plugin
2171 AC_ARG_ENABLE(crystalhd,
2172 [ --enable-crystalhd crystalhd codec plugin (default auto)])
2173 if test "${enable_crystalhd}" != "no"; then
2174 AC_CHECK_HEADER(libcrystalhd/libcrystalhd_if.h, [
2175 VLC_ADD_PLUGIN([crystalhd])
2176 VLC_ADD_LIBS([crystalhd], [-lcrystalhd])
2178 if test "${SYS}" = "mingw32" ; then
2179 AC_CHECK_HEADERS(libcrystalhd/bc_dts_defs.h, [
2180 VLC_ADD_PLUGIN([crystalhd])
2181 AC_CHECK_HEADERS(libcrystalhd/bc_drv_if.h, [
2182 VLC_ADD_LIBS([crystalhd], [-lbcmDIL])
2185 AS_IF([test x"${enable_crystalhd}" = "xyes"],
2186 [AC_MSG_ERROR("Could not find CrystalHD development headers")],
2187 [AC_MSG_WARN("Could not find CrystalHD development headers")])
2188 ],[#define __LINUX_USER__
2189 #include <libcrystalhd/bc_dts_types.h>
2193 #include <libcrystalhd/bc_dts_types.h>
2201 [ --enable-mad libmad module (default enabled)])
2202 if test "${enable_mad}" != "no"
2205 [ --with-mad=PATH path to libmad],[],[])
2206 if test "${with_mad}" != "no" -a -n "${with_mad}"
2208 VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2209 VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2212 AC_ARG_WITH(mad-tree,
2213 [ --with-mad-tree=PATH mad tree for static linking],[],[])
2214 if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2216 real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2217 if test -z "${real_mad_tree}"
2219 dnl The given directory can't be found
2221 AC_MSG_ERROR([${with_mad_tree} directory does not exist])
2223 dnl Use a custom libmad
2224 AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2225 if test -f ${real_mad_tree}/mad.h
2228 VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2229 VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2231 LDFLAGS="${LDFLAGS} ${LIBS_mpgatofixed32}"
2232 AC_CHECK_LIB(mad, mad_bit_init, [
2233 VLC_ADD_PLUGIN([mpgatofixed32])
2234 VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2235 ],[ AC_MSG_ERROR([the specified tree has not been compiled ])
2240 AC_MSG_ERROR([the specified tree does not have mad.h])
2244 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_mpgatofixed32}"
2245 LDFLAGS="${LDFLAGS} ${LIBS_mpgatofixed32}"
2246 AC_CHECK_HEADERS(mad.h, ,
2247 [ AC_MSG_ERROR([Could not find libmad on your system: you may get it from http://www.underbit.com/products/mad/. Alternatively you can use --disable-mad to disable the mad plugin.]) ])
2248 AC_CHECK_LIB(mad, mad_bit_init, [
2249 VLC_ADD_PLUGIN([mpgatofixed32])
2250 VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2251 [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2257 AC_ARG_ENABLE(merge-ffmpeg,
2258 [ --enable-merge-ffmpeg merge FFmpeg-based plugins (default disabled)],, [
2259 enable_merge_ffmpeg="no"
2261 AM_CONDITIONAL([MERGE_FFMPEG], [test "$enable_merge_ffmpeg" != "no"])
2263 AC_MSG_CHECKING([for libavutil variant])
2264 PKG_CHECK_EXISTS([libavutil], [
2265 libavutil_version="$(${PKG_CONFIG} --modversion libavutil)"
2266 libavutil_micro="${libavutil_version##*.}"
2267 AS_IF([test ${libavutil_micro} -le 99], [
2275 AC_MSG_RESULT([${avfork}])
2280 AC_ARG_ENABLE(gst-decode,
2281 [ --enable-gst-decode GStreamer based decoding support (currently supports only video decoding) (default auto)])
2283 have_gst_decode="no"
2284 AS_IF([test "${enable_gst_decode}" != "no"], [
2285 PKG_CHECK_MODULES([GST_APP], [gstreamer-app-1.0], [
2286 PKG_CHECK_MODULES([GST_VIDEO], [gstreamer-video-1.0], [
2287 have_gst_decode="yes"
2289 AC_MSG_WARN([${GST_VIDEO_PKG_ERRORS}. GStreamer decoder module will not be built.])
2292 AC_MSG_WARN([${GST_APP_PKG_ERRORS}. GStreamer modules will not be built.])
2295 AM_CONDITIONAL([HAVE_GST_DECODE], [test "${have_gst_decode}" = "yes"])
2298 dnl avcodec decoder/encoder plugin
2300 AC_ARG_ENABLE(avcodec,
2301 [ --enable-avcodec libavcodec codec (default enabled)])
2302 AS_IF([test "${enable_avcodec}" != "no"], [
2303 PKG_CHECK_MODULES(AVCODEC,[libavcodec >= 54.25.0 libavutil >= 52.0.0], [
2304 dnl PKG_CHECK_EXISTS([libavcodec < 56],, [
2305 dnl AC_MSG_ERROR([libavcodec versions 56 and later are not supported yet.])
2308 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2309 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2310 AC_CHECK_HEADERS(libavcodec/avcodec.h)
2311 AC_CHECK_HEADERS(libavutil/avutil.h)
2315 AC_MSG_ERROR([${AVCODEC_PKG_ERRORS}. Pass --disable-avcodec to ignore this error.])
2320 AM_CONDITIONAL([HAVE_AVCODEC], [test "${have_avcodec}" != "no"])
2323 dnl libva needs avcodec
2325 AC_ARG_ENABLE(libva,
2326 [ --enable-libva VAAPI GPU decoding support (libVA) (default auto)])
2328 AS_IF([test "${enable_libva}" = "yes" -a "${have_avcodec}" != "yes" ], [
2329 AC_MSG_ERROR([--enable-libva and --disable-avcodec options are mutually exclusive. Use --enable-avcodec.])
2335 AS_IF([test "${enable_libva}" != "no"], [
2336 PKG_CHECK_EXISTS([libva], [
2339 AS_IF([test -n "${enable_libva}"], [
2340 AC_MSG_ERROR([${LIBVA_PKG_ERRORS}.])
2342 AC_MSG_WARN([${LIBVA_PKG_ERRORS}.])
2345 PKG_CHECK_MODULES([LIBVA_DRM], [libva-drm], [
2346 have_vaapi_drm="yes"
2348 AC_MSG_WARN([${LIBVA_DRM_PKG_ERRORS}.])
2350 PKG_CHECK_MODULES(LIBVA_X11, [libva-x11], [
2351 have_vaapi_x11="yes"
2353 AC_MSG_WARN([${LIBVA_X11_PKG_ERRORS}.])
2356 AM_CONDITIONAL([HAVE_VAAPI_DRM], [test "${have_vaapi_drm}" = "yes"])
2357 AM_CONDITIONAL([HAVE_VAAPI_X11], [test "${have_vaapi_x11}" = "yes"])
2359 have_avcodec_vaapi="no"
2360 AS_IF([test "${have_vaapi}" = "yes" -a "${have_avcodec}" = "yes"], [
2362 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2363 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2364 AC_CHECK_HEADERS([libavcodec/vaapi.h], [
2365 AC_MSG_NOTICE([VAAPI acceleration activated])
2366 have_avcodec_vaapi="yes"
2368 AS_IF([test -n "${enable_libva}"], [
2369 AC_MSG_ERROR([libva is present but libavcodec/vaapi.h is missing])
2371 AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing ])
2376 AM_CONDITIONAL([HAVE_AVCODEC_VAAPI], [test "${have_avcodec_vaapi}" = "yes"])
2379 dnl dxva2 needs avcodec
2381 AC_ARG_ENABLE(dxva2,
2382 [ --enable-dxva2 DxVA2 GPU decoding support (default auto)])
2384 have_avcodec_dxva2="no"
2385 AS_IF([test "${enable_dxva2}" != "no"], [
2386 if test "${SYS}" = "mingw32"; then
2387 AS_IF([test "x${have_avcodec}" = "xyes"], [
2388 AC_CHECK_HEADERS(dxva2api.h,
2390 AC_CHECK_HEADERS(libavcodec/dxva2.h, [
2391 AC_MSG_NOTICE([DxVA2 acceleration activated])
2392 have_avcodec_dxva2="yes"
2394 AS_IF([test "${enable_dxva2}" = "yes"],
2395 [AC_MSG_ERROR([dxva2 is present but libavcodec/dxva2.h is missing])],
2396 [AC_MSG_WARN([dxva2 is present but libavcodec/dxva2.h is missing ])])
2397 ], [#undef _WIN32_WINNT
2398 /* DXVA2 is only available in Vista and above */
2399 #define _WIN32_WINNT 0x600])
2401 AS_IF([test "${enable_dxva2}" = "yes"],
2402 [AC_MSG_ERROR([Could not find required dxva2api.h])],
2403 [AC_MSG_WARN([dxva2api.h not found])])
2406 AS_IF([test "x${enable_dxva2}" != "x"], [
2407 AC_MSG_ERROR([--enable-dxva2 and --disable-avcodec options are mutually exclusive.])
2412 AM_CONDITIONAL([HAVE_AVCODEC_DXVA2], [test "${have_avcodec_dxva2}" = "yes"])
2415 dnl vda needs avcodec
2418 [ --enable-vda VDA support (default auto)])
2420 have_avcodec_vda="no"
2421 AS_IF([test "${enable_vda}" != "no"], [
2422 if test "${SYS}" = "darwin"; then
2423 AS_IF([test "x${have_avcodec}" = "xyes"], [
2424 AC_CHECK_HEADERS(VideoDecodeAcceleration/VDADecoder.h,
2426 AC_CHECK_HEADERS(libavcodec/vda.h, [
2427 have_avcodec_vda="yes"
2429 AS_IF([test "${enable_vda}" = "yes"],
2430 [AC_MSG_ERROR([vda is present but libavcodec/vda.h is missing])],
2431 [AC_MSG_WARN([vda is present but libavcodec/vda.h is missing ])])
2434 AS_IF([test "${enable_vda}" = "yes"],
2435 [AC_MSG_ERROR([Could not find required VideoDecodeAcceleration/VDADecoder.h])],
2436 [AC_MSG_WARN([VideoDecodeAcceleration/VDADecoder.h not found])])
2439 AS_IF([test "x${enable_vda}" != "x"], [
2440 AC_MSG_ERROR([--enable-vda and --disable-avcodec options are mutually exclusive.])
2443 AS_IF([test "${have_avcodec_vda}" = "yes"], [
2445 LIBS="$LIBS $AVCODEC_LIBS"
2446 AC_CHECK_FUNCS([av_vda_alloc_context])
2451 AM_CONDITIONAL([HAVE_AVCODEC_VDA], [test "${have_avcodec_vda}" = "yes"])
2454 dnl avformat demuxer/muxer plugin
2457 AC_ARG_ENABLE(avformat,
2458 [ --enable-avformat libavformat containers (default enabled)],, [
2459 enable_avformat="${have_avcodec}"
2462 AS_IF([test "${enable_avformat}" != "no"], [
2463 PKG_CHECK_MODULES(AVFORMAT,[libavformat >= 53.21.0 libavcodec libavutil], [
2466 CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2467 CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2468 AC_CHECK_HEADERS(libavformat/avformat.h libavformat/avio.h)
2469 AC_CHECK_HEADERS(libavcodec/avcodec.h)
2470 AC_CHECK_HEADERS(libavutil/avutil.h)
2471 AS_IF([test "$enable_merge_ffmpeg" = "no"], [
2476 AC_MSG_ERROR([${AVFORMAT_PKG_ERRORS}. Pass --disable-avformat to ignore this error.])
2479 AM_CONDITIONAL([HAVE_AVFORMAT], [test "${enable_avformat}" != "no"])
2482 dnl swscale image scaling and conversion plugin
2485 AC_ARG_ENABLE(swscale,
2486 AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
2487 (default enabled)]))
2488 if test "${enable_swscale}" != "no"
2490 PKG_CHECK_MODULES(SWSCALE,[libswscale],
2493 CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
2494 CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
2495 AC_CHECK_HEADERS(libswscale/swscale.h)
2496 AC_CHECK_HEADERS(libavutil/avutil.h)
2497 VLC_ADD_PLUGIN([swscale])
2498 VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
2499 VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
2500 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2501 VLC_ADD_LIBS([swscale],[${ac_cv_ld_bsymbolic}])
2505 AC_MSG_ERROR([${SWSCALE_PKG_ERRORS}. Pass --disable-swscale to ignore this error. Proper software scaling and some video chroma conversion will be missing.])
2513 AC_ARG_ENABLE(postproc,
2514 [ --enable-postproc libpostproc image post-processing (default auto)])
2515 if test "${enable_postproc}" != "no"
2517 PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
2520 CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
2521 CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
2522 AC_CHECK_HEADERS(postproc/postprocess.h)
2523 VLC_ADD_PLUGIN([postproc])
2524 VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS $AVUTIL_LIBS])
2525 VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS $AVUTIL_CFLAGS])
2528 AC_MSG_WARN([${POSTPROC_PKG_ERRORS}.])
2533 dnl faad decoder plugin
2536 [ --enable-faad faad codec (default auto)])
2537 if test "${enable_faad}" != "no"; then
2538 AC_ARG_WITH(faad-tree, [ --with-faad-tree=PATH faad tree for static linking])
2539 if test -n "${with_faad_tree}"; then
2540 AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
2541 real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
2542 if test -z "${real_faad_tree}"; then
2543 dnl The given directory can't be found
2545 AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
2547 if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"; then
2548 dnl Use the custom faad
2549 AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
2550 VLC_ADD_PLUGIN([faad])
2551 VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
2552 VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
2554 dnl The given libfaad wasn't built
2556 AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
2560 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_faad}"
2561 LDFLAGS="${LDFLAGS} ${LIBS_faad}"
2562 AC_CHECK_HEADERS(faad.h,
2563 [ AC_CHECK_LIB(faad, faacDecOpen, [
2564 VLC_ADD_PLUGIN([faad])
2565 VLC_ADD_LIBS([faad],[-lfaad]) ], [
2566 AC_CHECK_LIB(faad, NeAACDecOpen, [
2567 VLC_ADD_PLUGIN([faad])
2568 VLC_ADD_LIBS([faad],[-lfaad]) ], [
2569 AS_IF([test "${enable_faad}" = "yes"],
2570 [ AC_MSG_ERROR([Cannot find libfaad library...]) ],
2571 [ AC_MSG_WARN([Cannot find libfaad library...]) ]) ]) ])
2572 ] , [ AS_IF([test "${enable_faad}" = "yes"],
2573 [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ],
2574 [ AC_MSG_WARN([Cannot find development headers for libfaad...]) ]) ])
2580 dnl libvpx decoder plugin
2583 AS_HELP_STRING([--enable-vpx],[libvpx VP8/VP9 decoder (default auto)]))
2584 AS_IF([test "${enable_vpx}" != "no"],[
2585 PKG_CHECK_MODULES([VPX], [vpx] , [
2586 VLC_ADD_PLUGIN([vpx])
2587 VLC_ADD_CPPFLAGS([vpx], [${VPX_CFLAGS}])
2588 VLC_ADD_LIBS([vpx], [${VPX_LIBS}])
2589 AC_CHECK_LIB([vpx],[vpx_codec_vp8_dx], [
2590 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP8_DECODER])
2591 ], [], [${VPX_LIBS}])
2592 AC_CHECK_LIB([vpx],[vpx_codec_vp9_dx], [
2593 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP9_DECODER])
2594 ], [], [${VPX_LIBS}])
2596 AS_IF([test "${enable_vpx}" = "yes"],[
2597 AC_MSG_ERROR([libvpx was not found])
2602 dnl twolame encoder plugin
2604 PKG_ENABLE_MODULES_VLC([TWOLAME], [], [twolame], [MPEG Audio Layer 2 encoder], [auto], [], [], [ -DLIBTWOLAME_STATIC])
2607 dnl fdk-aac encoder plugin
2609 PKG_ENABLE_MODULES_VLC([FDKAAC], [], [fdk-aac], [FDK-AAC encoder], [disabled])
2612 dnl QuickTime plugin
2614 AC_ARG_ENABLE(quicktime,
2615 [ --enable-quicktime QuickTime module (deprecated)])
2616 if test "${enable_quicktime}" = "yes"; then
2617 if test "${SYS}" = "mingw32"; then
2618 VLC_ADD_PLUGIN([quicktime])
2620 AC_CHECK_HEADERS(QuickTime/QuickTime.h,
2621 [ VLC_ADD_PLUGIN([quicktime])
2622 VLC_ADD_LIBS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
2623 ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
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 AC_ARG_WITH(a52-tree,
2637 [ --with-a52-tree=PATH a52dec tree for static linking ],[],[])
2638 if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
2640 real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
2641 if test -z "${real_a52_tree}"
2643 dnl The given directory can't be found
2645 AC_MSG_ERROR([${with_a52_tree} directory does not exist])
2647 dnl Use a custom a52dec
2648 AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
2649 if test -f ${real_a52_tree}/include/a52.h
2652 VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
2653 VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
2655 LDFLAGS="${LDFLAGS} ${LIBS_a52tofloat32}"
2656 AC_CHECK_LIB(a52, a52_free, [
2657 VLC_ADD_PLUGIN([a52tofloat32])
2658 VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
2659 VLC_ADD_LIBS([a52tofloat32],[-la52])
2661 if test -f ${real_a52_tree}/liba52/.libs/liba52.a
2663 AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
2665 AC_MSG_ERROR([the specified tree has not been compiled])
2670 AC_MSG_ERROR([the specified tree does not have a52.h])
2673 if test -z "${with_a52}"
2678 LDFLAGS_test="-L${with_a52}/lib"
2679 CPPFLAGS_test="-I${with_a52}/include"
2682 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
2683 LDFLAGS="${LDFLAGS} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
2684 AC_CHECK_HEADERS(a52dec/a52.h, [
2685 AC_CHECK_LIB(a52, a52_free, [
2686 VLC_ADD_PLUGIN([a52tofloat32])
2687 VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
2688 VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
2690 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.])
2693 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.])
2700 dnl DTS Coherent Acoustics decoder plugin
2702 PKG_ENABLE_MODULES_VLC([DCA], [dtstofloat32], [libdca >= 0.0.5], [DTS Coherent Acoustics support with libdca], [auto])
2707 PKG_ENABLE_MODULES_VLC([FLAC], [], [flac], [libflac decoder/encoder support], [auto])
2712 PKG_ENABLE_MODULES_VLC([LIBMPEG2], [], [libmpeg2 > 0.3.2], [libmpeg2 decoder support], [auto])
2717 PKG_ENABLE_MODULES_VLC([VORBIS], [], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
2722 AC_ARG_ENABLE(tremor,
2723 [ --enable-tremor Tremor decoder support (default disabled)])
2724 if test "${enable_tremor}" = "yes"
2726 AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
2727 VLC_ADD_PLUGIN([tremor])
2734 PKG_ENABLE_MODULES_VLC([SPEEX], [], [ogg speex >= 1.0.5], [Speex support], [auto])
2736 AS_IF([test "${enable_speex}" != "no"], [
2737 PKG_CHECK_MODULES([SPEEXDSP], [speexdsp], [
2740 AC_MSG_WARN([${SPEEXDSP_PKG_ERRORS}.])
2743 AM_CONDITIONAL([HAVE_SPEEXDSP], [test "$have_speexdsp" = "yes"])
2748 PKG_ENABLE_MODULES_VLC([OPUS], [], [ogg opus >= 1.0.3], [Opus support], [auto])
2751 dnl theora decoder plugin
2753 PKG_ENABLE_MODULES_VLC([THEORA], [], [ogg theoradec >= 1.0 theoraenc], [experimental theora codec], [auto])
2756 dnl Daala decoder plugin
2758 PKG_ENABLE_MODULES_VLC([DAALA], [], [ogg daaladec daalaenc], [experimental daala codec], [disabled])
2761 dnl schroedinger decoder plugin (for dirac format video)
2763 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [], [schroedinger-1.0 >= 1.0.10], [dirac decoder and encoder using schroedinger], [auto])
2766 dnl PNG decoder module
2769 [ --enable-png PNG support (default enabled)])
2770 AS_IF([test "${enable_png}" != "no"], [
2771 AC_CHECK_HEADERS(png.h, [
2773 LDFLAGS="${LDFLAGS} -lz $LIBM"
2774 AC_CHECK_LIB(png, png_set_rows, [
2775 VLC_ADD_PLUGIN([png])
2782 dnl JPEG decoder module
2785 [ --enable-jpeg JPEG support (default enabled)])
2786 AS_IF([test "${enable_jpeg}" != "no"], [
2787 AC_CHECK_HEADERS(jpeglib.h, [
2788 VLC_ADD_PLUGIN([jpeg])
2793 dnl H262 encoder plugin (lib262)
2796 [ --enable-x262 H262 encoding support with static libx262 (default disabled)])
2797 if test "${enable_x262}" != "no"; then
2798 AC_ARG_WITH(x262-tree,
2799 [ --with-x262-tree=PATH H262 encoding module with libx262 (static linking)],[],[])
2800 if test "${with_x262_tree}" != "no" -a -n "${with_x262_tree}"
2802 real_x262_tree="̧`cd ${with_x262_tree} 2>/dev/null && pwd`"
2803 if test -z "${real_x262_tree}"
2806 AC_MSG_ERROR([${with_x262_tree} directory does not exist])
2808 AC_MSG_CHECKING(for x262.h in ${real_x262_tree})
2809 if test -f ${with_x262_tree}/x262_config.h
2811 VLC_ADD_PLUGIN([x262])
2812 VLC_ADD_CFLAGS([x262],[-I${with_x262_tree}])
2813 VLC_ADD_LIBS([x262],[-L${with_x262_tree} -lm -lpthread -lx262])
2816 AC_MSG_ERROR([${with_x262_tree} doesnt have x262_config.h])
2819 PKG_CHECK_MODULES(X262, x262, [
2820 VLC_ADD_PLUGIN([x262])
2821 VLC_ADD_LDFLAGS([x262],[${X262_LIBS}])
2822 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2823 VLC_ADD_LIBS([x262],[${av_cv_ld_bsymbolic}])
2825 VLC_ADD_CFLAGS([x262],[${X262_CFLAGS}])
2826 if echo ${X262_LIBS} |grep -q 'pthreadGC2'; then
2827 VLC_ADD_CFLAGS([x262], [-DPTW32_STATIC_LIB])
2830 if test "${enable_x262}" = "yes"; then
2831 AC_MSG_ERROR([x262 module doesn't work without staticly compiled libx262.a])
2838 PKG_ENABLE_MODULES_VLC([X265],, [x265], [HEVC/H.265 encoder], [auto])
2841 dnl H264 encoder plugin (10-bit lib264)
2843 AC_ARG_ENABLE(x26410b,
2844 [ --enable-x26410b H264 10-bit encoding support with static libx264 (default disabled)])
2845 if test "${enable_x26410b}" != "no"; then
2846 AC_ARG_WITH(x26410b-tree,
2847 [ --with-x26410b-tree=PATH H264 10-bit encoding module with libx264 (static linking)],[],[])
2848 if test "${with_x26410b_tree}" != "no" -a -n "${with_x26410b_tree}"
2850 real_x26410b_tree="̧`cd ${with_x26410b_tree} 2>/dev/null && pwd`"
2851 if test -z "${real_x26410b_tree}"
2854 AC_MSG_ERROR([${with_x26410b_tree} directory does not exist])
2856 AC_MSG_CHECKING(for x264.h in ${real_x26410b_tree})
2857 if test -f ${with_x26410b_tree}/x264_config.h
2860 AC_MSG_CHECKING(for 10-bit build of x264)
2861 if grep -q "BIT_DEPTH.*10" ${with_x26410b_tree}/x264_config.h ;then
2863 VLC_ADD_PLUGIN([x26410b])
2864 VLC_ADD_CFLAGS([x26410b],[-I${with_x26410b_tree}])
2865 VLC_ADD_LIBS([x26410b],[-L${with_x26410b_tree} -lm -lpthread -lx264])
2868 AC_MSG_ERROR([${with_x26410b_tree} isnt build 10-bit])
2872 AC_MSG_ERROR([${with_x26410b_tree} doesnt have x264_config.h])
2875 PKG_CHECK_MODULES(X26410B, x26410b, [
2876 VLC_ADD_PLUGIN([x26410b])
2877 VLC_ADD_LIBS([x26410b],[${X26410B_LIBS}])
2878 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2879 VLC_ADD_LDFLAGS([x26410b],[${ac_cv_ld_bsymbolic}])
2881 VLC_ADD_CFLAGS([x26410b],[${X26410B_CFLAGS}])
2882 if echo ${X26410B_LIBS} |grep -q 'pthreadGC2'; then
2883 VLC_ADD_CFLAGS([x26410b], [-DPTW32_STATIC_LIB])
2886 if test "${enable_x26410b}" = "yes"; then
2887 AC_MSG_ERROR([x26410b module doesn't work without staticly compiled libx264.a])
2895 dnl H264 encoder plugin (using libx264)
2898 [ --enable-x264 H264 encoding support with libx264 (default enabled)])
2899 if test "${enable_x264}" != "no"; then
2900 AC_ARG_WITH(x264-tree,
2901 [ --with-x264-tree=PATH x264 tree for static linking ],[],[])
2902 if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
2904 real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
2905 if test -z "${real_x264_tree}"
2907 dnl The given directory can't be found
2909 AC_MSG_ERROR([${with_x264_tree} directory does not exist])
2911 dnl Use a custom libx264
2912 AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
2913 if test -f ${real_x264_tree}/x264.h
2916 VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
2917 VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
2918 PKG_CHECK_MODULES(X264,x264, [
2919 VLC_ADD_PLUGIN([x264])
2920 VLC_ADD_LIBS([x264],[${X264_LIBS}])
2921 VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
2922 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
2923 VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
2926 AC_MSG_ERROR([the specified tree has not been compiled])
2930 AC_MSG_ERROR([the specified tree does not have x264.h])
2933 PKG_CHECK_MODULES(X264,x264 >= 0.86, [
2934 VLC_ADD_PLUGIN([x264])
2935 VLC_ADD_LIBS([x264],[${X264_LIBS}])
2937 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2938 VLC_ADD_LDFLAGS([x264],[${ac_cv_ld_bsymbolic}])
2941 VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
2942 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
2943 VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
2946 if test "${enable_x264}" = "yes"; then
2947 AC_MSG_ERROR([${X264_PKG_ERRORS}: you may get it from http://www.videolan.org/x264.html])
2954 dnl Intel QuickSync (aka MediaSDK) H264/H262 encoder
2956 PKG_ENABLE_MODULES_VLC([MFX], [qsv], [libmfx], [Intel QuickSync MPEG4-Part10/MPEG2 (aka H.264/H.262) encoder], [auto])
2959 dnl libfluidsynth (MIDI synthetizer) plugin
2961 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [], [fluidsynth >= 1.1.2], [MIDI synthetiser with libfluidsynth], [auto])
2964 dnl Teletext Modules
2965 dnl vbi decoder plugin (using libzbvi)
2970 AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
2971 libzvbi (default enabled)]))
2973 AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
2974 zvbi) (default enabled if zvbi is absent)]))
2976 AS_IF( [test "${enable_zvbi}" != "no"],[
2977 PKG_CHECK_MODULES(ZVBI, [zvbi-0.2 >= 0.2.28],
2979 VLC_ADD_PLUGIN([zvbi])
2980 AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
2981 AS_IF( [test "${enable_telx}" = "yes"],[
2982 AC_MSG_WARN([The zvbi and telx modules are incompatible. Using zvbi.])
2985 AC_MSG_WARN([${ZVBI_PKG_ERRORS}. Enabling the telx module instead.])
2988 AS_IF( [test "${enable_telx}" != "no" ],[
2989 VLC_ADD_PLUGIN([telx])
2993 dnl libass subtitle rendering module
2995 AC_ARG_ENABLE(libass,
2996 [ --enable-libass Subtitle support using libass (default enabled)])
2997 AS_IF( [test "${enable_libass}" != "no"], [
2998 PKG_CHECK_MODULES(LIBASS, [libass >= 0.9.8],
3000 VLC_ADD_PLUGIN([libass])
3002 AC_CHECK_HEADERS(fontconfig/fontconfig.h,
3003 [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
3004 VLC_ADD_LIBS([libass],[-lfontconfig])
3007 AC_MSG_WARN([${LIBASS_PKG_ERRORS}.])
3012 dnl ARIB subtitles rendering module
3014 AC_ARG_ENABLE(aribsub,
3015 [ --enable-aribsub ARIB Subtitles support (default enabled)])
3016 AS_IF( [test "${enable_aribsub}" != "no" ],[
3017 PKG_CHECK_MODULES(ARIBB24, [aribb24 >= 1.0.1], [
3019 VLC_ADD_PLUGIN([aribsub])
3020 VLC_ADD_LIBS([aribsub],[-laribb24])
3021 AC_DEFINE(HAVE_ARIBB24, 1, [Define if libaribb24 is available.])
3023 AC_MSG_WARN(Library [aribb24] needed for [aribsub] was not found)
3027 AM_CONDITIONAL([HAVE_ARIBB24], [test x"${have_aribb24}" = x"yes"])
3032 PKG_ENABLE_MODULES_VLC([ARIBB25], [aribcam], [aribb25 >= 0.2.6], [ARIB STD-B25], [auto])
3035 dnl kate decoder plugin
3037 PKG_ENABLE_MODULES_VLC([KATE], [], [kate >= 0.3.0], [kate codec], [auto])
3040 dnl tiger rendering for kate decoder plugin
3042 AC_ARG_ENABLE(tiger,
3043 [ --enable-tiger Tiger rendering library for Kate streams (default auto)])
3044 AS_IF([test "${enable_tiger}" != "no"], [
3045 PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
3046 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])],[
3047 AS_IF([test -n "${enable_tiger}"], [
3048 AC_MSG_ERROR([${TIGER_PKG_ERRORS}.])
3058 EXTEND_HELP_STRING([Video plugins:])
3063 PKG_CHECK_MODULES([EGL], [egl], [
3068 AM_CONDITIONAL([HAVE_EGL], [test "${have_egl}" = "yes"])
3071 PKG_CHECK_MODULES([GL], [gl], [
3074 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
3076 # include <GL/glew.h>
3080 [int t0 = GL_TEXTURE0;]])
3084 AS_IF([test "${SYS}" != "mingw32"], [
3087 GL_LIBS="-lopengl32"
3091 AM_CONDITIONAL([HAVE_GL], [test "${have_gl}" = "yes"])
3093 dnl OpenGL ES 2: depends on EGL 1.1
3094 PKG_ENABLE_MODULES_VLC([GLES2], [], [glesv2], [OpenGL ES v2 support], [disabled])
3095 dnl OpenGL ES 1: depends on EGL 1.0
3096 PKG_ENABLE_MODULES_VLC([GLES1], [], [glesv1_cm], [OpenGL ES v1 support], [disabled])
3103 AC_CHECK_HEADERS(X11/Xlib.h)
3106 dnl X C Bindings modules
3109 [ --enable-xcb X11 support with XCB (default enabled)],, [
3110 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "darwin" -a "${SYS}" != "symbian"], [
3116 AC_ARG_ENABLE(xvideo,
3117 [ --enable-xvideo XVideo support (default enabled)],, [
3118 enable_xvideo="$enable_xcb"
3121 [ --enable-glx OpenGL support through GLX (default enabled)],, [
3122 enable_glx="$enable_xcb"
3126 have_xcb_keysyms="no"
3128 have_xcb_xvideo="no"
3129 AS_IF([test "${enable_xcb}" != "no"], [
3131 PKG_CHECK_MODULES(XCB, [xcb >= 1.6])
3133 PKG_CHECK_MODULES(XCB_SHM, [xcb-shm])
3134 PKG_CHECK_MODULES(XCB_COMPOSITE, [xcb-composite])
3135 PKG_CHECK_MODULES(XPROTO, [xproto])
3137 AS_IF([test "${enable_xvideo}" != "no"], [
3138 PKG_CHECK_MODULES(XCB_XV, [xcb-xv >= 1.1.90.1], [have_xcb_xvideo="yes"])
3141 PKG_CHECK_MODULES(XCB_RANDR, [xcb-randr >= 1.3], [have_xcb_randr="yes"])
3144 PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms >= 0.3.4], [have_xcb_keysyms="yes"], [
3145 AC_MSG_WARN([${XCB_KEYSYMS_PKG_ERRORS}. Hotkeys will not work.])
3148 AM_CONDITIONAL([HAVE_XCB], [test "${have_xcb}" = "yes"])
3149 AM_CONDITIONAL([HAVE_XCB_KEYSYMS], [test "${have_xcb_keysyms}" = "yes"])
3150 AM_CONDITIONAL([HAVE_XCB_RANDR], [test "${have_xcb_randr}" = "yes"])
3151 AM_CONDITIONAL([HAVE_XCB_XVIDEO], [test "${have_xcb_xvideo}" = "yes"])
3157 AC_ARG_ENABLE(vdpau,
3158 [AS_HELP_STRING([--enable-vdpau], [VDPAU hardware support (default auto)])])
3160 AS_IF([test "${enable_vdpau}" != "no"], [
3161 PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.6], [
3163 AS_IF([test "${no_x}" = "yes"], [
3164 AC_MSG_ERROR([VDPAU requires Xlib (X11).])
3167 AS_IF([test -n "${enable_vdpau}"], [
3168 AC_MSG_ERROR([${VDPAU_PKG_ERRORS}.])
3172 AM_CONDITIONAL([HAVE_VDPAU], [test "${have_vdpau}" = "yes"])
3174 have_avcodec_vdpau="no"
3175 AS_IF([test "${have_vdpau}" = "yes" -a "${have_avcodec}" = "yes"], [
3177 libav) av_vdpau_ver="55.26.0" ;;
3178 ffmpeg) av_vdpau_ver="55.42.100" ;;
3180 PKG_CHECK_EXISTS([libavutil >= 52.4.0 libavcodec >= ${av_vdpau_ver}], [
3181 have_avcodec_vdpau="yes"
3182 AC_MSG_NOTICE([VDPAU decoding acceleration activated])
3184 AS_IF([test -n "${enable_vdpau}"], [
3185 AC_MSG_ERROR([libavutil >= 52.4.0 and libavcodec >= 55.26.0 are required for VDPAU decoding.])
3187 AC_MSG_WARN([libavutil >= 52.4.0 and libavcodec >= 55.26.0 are required for VDPAU decoding.])
3191 AM_CONDITIONAL([HAVE_AVCODEC_VDPAU], [test "${have_avcodec_vdpau}" = "yes"])
3197 AC_ARG_ENABLE(wayland,
3198 [AS_HELP_STRING([--enable-wayland], [Wayland support (default auto)])])
3200 AC_ARG_VAR([WAYLAND_SCANNER], [Wayland scanner utility])
3202 AS_IF([test "${enable_wayland}" != "no"], [
3203 AC_MSG_CHECKING([for the Wayland scanner])
3204 AS_IF([test -z "$WAYLAND_SCANNER"], [
3205 PKG_CHECK_EXISTS([wayland-scanner], [
3206 WAYLAND_SCANNER="$(${PKG_CONFIG} wayland-scanner --variable wayland_scanner)"
3208 WAYLAND_SCANNER="wayland-scanner"
3211 AC_MSG_RESULT([$WAYLAND_SCANNER])
3213 PKG_CHECK_MODULES([WAYLAND_CLIENT], [wayland-client >= 1.5.91], [
3216 AS_IF([test -n "${enable_wayland}"], [
3217 AC_MSG_ERROR([${WAYLAND_CLIENT_PKG_ERRORS}.])
3221 AS_IF([test "${have_egl}" = "yes"], [
3222 PKG_CHECK_MODULES([WAYLAND_EGL], [wayland-egl], [
3223 have_wayland_egl="yes"
3225 AS_IF([test -n "${enable_wayland}"], [
3226 AC_MSG_ERROR([${WAYLAND_EGL_PKG_ERRORS}.])
3231 AM_CONDITIONAL([HAVE_WAYLAND], [test "${have_wayland}" = "yes"])
3232 AM_CONDITIONAL([HAVE_WAYLAND_EGL], [test "${have_wayland_egl}" = "yes"])
3239 [ --enable-sdl SDL support (default enabled)])
3240 AC_ARG_ENABLE(sdl-image,
3241 [ --enable-sdl-image SDL image support (default enabled)])
3242 if test "${enable_sdl}" != "no"
3244 PKG_CHECK_MODULES(SDL, [sdl >= 1.2.10], [
3245 # SDL on Darwin is heavily patched and can only run SDL_image
3246 if test "${SYS}" != "darwin"; then
3247 VLC_ADD_PLUGIN([vout_sdl])
3251 AS_IF([ test "${enable_sdl_image}" != "no"],[
3252 PKG_CHECK_MODULES(SDL_IMAGE, [SDL_image >= 1.2.10], [
3253 VLC_ADD_PLUGIN([sdl_image])],
3254 [ AC_MSG_WARN([${SDL_IMAGE_PKG_ERRORS}. You should install it alongside your SDL package.])
3258 AC_MSG_WARN([${SDL_PKG_ERRORS}.])
3265 AC_ARG_ENABLE(freetype,
3266 [ --enable-freetype freetype support (default auto)])
3267 AC_ARG_ENABLE(fribidi,
3268 [ --enable-fribidi fribidi support (default auto)])
3269 AC_ARG_ENABLE(fontconfig,
3270 [ --enable-fontconfig fontconfig support (default auto)])
3272 AC_ARG_WITH([default-font],
3273 AS_HELP_STRING([--with-default-font=PATH],
3274 [Path to the default font]),
3275 [AC_DEFINE_UNQUOTED([DEFAULT_FONT_FILE],
3276 "$withval", [Default font])])
3277 AC_ARG_WITH([default-monospace-font],
3278 AS_HELP_STRING([--with-default-monospace-font=PATH],
3279 [Path to the default font]),
3280 [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FONT_FILE],
3281 "$withval", [Default monospace font])])
3283 AC_ARG_WITH([default-font-family],
3284 AS_HELP_STRING([--with-default-font-family=NAME],
3285 [Path to the default font family]),
3286 [AC_DEFINE_UNQUOTED([DEFAULT_FAMILY],
3287 "$withval", [Default font family])])
3288 AC_ARG_WITH([default-monospace-font-family],
3289 AS_HELP_STRING([--with-default-monospace-font-family=NAME],
3290 [Path to the default font family]),
3291 [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FAMILY],
3292 "$withval", [Default monospace font family])])
3294 if test "${enable_freetype}" != "no"; then
3295 PKG_CHECK_MODULES(FREETYPE, freetype2, [
3297 VLC_ADD_PLUGIN([freetype])
3298 VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
3299 if test "${SYS}" = "mingw32"; then
3300 VLC_ADD_LIBS([freetype],[-liconv -lz])
3302 VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
3304 AC_CHECK_HEADERS(Carbon/Carbon.h,
3305 [VLC_ADD_LIBS([freetype],[-Wl,-framework,Carbon])])
3307 dnl fontconfig support
3308 if test "${SYS}" != "mingw32"; then
3309 if test "${enable_fontconfig}" != "no"; then
3310 AC_CHECK_HEADERS(fontconfig/fontconfig.h, [
3311 VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
3312 VLC_ADD_LIBS([freetype],[-lfontconfig])
3313 ],[AC_MSG_WARN([library fontconfig not found. Styles will be disabled in freetype])])
3316 AS_IF([test "$vlc_winstore_app" != "1"],[
3317 VLC_ADD_LIBS([freetype],[-lgdi32])
3322 if test "${enable_fribidi}" != "no"; then
3323 PKG_CHECK_MODULES(FRIBIDI, fribidi, [
3324 VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
3325 VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
3326 ],[AC_MSG_WARN([${FRIBIDI_PKG_ERRORS}. Bidirectional support will be disabled in FreeType.])])
3331 AS_IF([test -n "${enable_freetype}"],[
3332 AC_MSG_ERROR([${FREETYPE_PKG_ERRORS}. Install FreeType2 development or configure with --disable-freetype.])
3339 dnl QuartzText vout module (iOS/Mac OS)
3341 AC_ARG_ENABLE(macosx-quartztext,
3342 [ --enable-macosx-quartztext Mac OS X quartz text module (default enabled on Mac OS X)])
3343 if test "x${enable_macosx_quartztext}" != "xno" &&
3344 (test "${SYS}" = "darwin" || test "${enable_macosx_quartztext}" = "yes")
3346 VLC_ADD_PLUGIN([quartztext])
3347 VLC_ADD_LIBS([quartztext],[-Wl,-framework,ApplicationServices])
3351 dnl SVG module (text rendering and image decoding)
3353 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3354 PKG_ENABLE_MODULES_VLC([SVGDEC], [], [librsvg-2.0 >= 2.9.0 cairo >= 1.13.1], [SVG image decoder library],[auto])
3357 dnl android surface module
3359 AC_ARG_ENABLE(android-surface,
3360 [ --enable-android-surface Android Surface video output module (default disabled)])
3361 if test "${enable_android_surface}" = "yes"; then
3362 VLC_ADD_PLUGIN([android_surface])
3363 VLC_ADD_PLUGIN([android_window])
3367 dnl Windows DirectX module
3370 AC_ARG_ENABLE(directx,
3371 [AS_HELP_STRING([--enable-directx],
3372 [Microsoft DirectX support (default enabled on Windows)])],, [
3373 AS_IF([test "${SYS}" = "mingw32"], [
3374 enable_directx="yes"
3380 AS_IF([test "${enable_directx}" != "no"], [
3382 AC_CHECK_HEADERS(ddraw.h, [
3385 AC_MSG_ERROR([Cannot find DirectX headers!])
3389 AC_CHECK_HEADERS(GL/wglew.h, [
3390 VLC_ADD_PLUGIN([glwin32])
3392 #include <windows.h>
3397 AC_CHECK_HEADERS(d3d9.h, [
3398 VLC_ADD_PLUGIN([direct3d])
3402 AC_CHECK_HEADERS(d2d1.h, [
3403 VLC_ADD_PLUGIN([direct2d])
3406 AM_CONDITIONAL([HAVE_DIRECTX], [test "$have_directx" = "yes"])
3409 dnl Linux framebuffer module
3411 AC_CHECK_HEADER([linux/fb.h], [
3412 VLC_ADD_PLUGIN([fb])
3418 dnl try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
3419 dnl TODO: support for static linking
3421 AC_ARG_ENABLE(directfb,
3422 [ --enable-directfb DirectFB support (default disabled)])
3423 AC_ARG_WITH(directfb,
3424 [ --with-directfb=PATH path to DirectFB headers and libraries])
3426 if test "${enable_directfb}" = "yes"; then
3427 have_directfb="false"
3428 CPPFLAGS_mydirectfb=
3430 if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
3431 dnl Trying the given location
3434 CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
3435 LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/ -L${with_directfb}/src/.libs/"
3437 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
3438 LIBS="${LIBS} ${LIBS_new}"
3440 dnl FIXME: too obscure
3441 AC_CHECK_HEADER([directfb.h], [
3442 AC_CHECK_LIB([direct],[direct_initialize], [
3443 AC_CHECK_LIB([fusion], [fusion_enter], [
3444 AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
3445 ], have_directfb="false")
3446 ], have_directfb="false")
3447 ], have_directfb="false")
3451 if test "${have_directfb}" = "true"; then
3452 LIBS_mydirectfb="${LIBS_new} -lz $LIBDL -ldirectfb -lfusion -ldirect -lpthread"
3453 CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
3456 dnl Look for directfb-config
3457 AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
3458 if test "${DIRECTFB_CONFIG}" != "no"; then
3459 CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
3460 LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
3461 have_directfb="true"
3463 dnl Trying with pkg-config
3464 PKG_CHECK_MODULES(DIRECTFB, directfb, [
3465 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
3466 LIBS_mydirectfb="${DIRECTFB_LIBS}"
3467 have_directfb="true"
3468 ], [have_directfb="false"])
3471 if test "${have_directfb}" = "true"; then
3472 VLC_ADD_PLUGIN([directfb])
3473 VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
3474 VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
3476 AC_MSG_ERROR([${DIRECTFB_PKG_ERRORS}.])
3484 [ --enable-aa aalib output (default disabled)])
3485 if test "${enable_aa}" = "yes"
3487 AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
3488 if test "${have_aa}" = "true"
3490 VLC_ADD_PLUGIN([aa])
3497 PKG_ENABLE_MODULES_VLC([CACA], [], [caca >= 0.99.beta14], [libcaca output],[auto])
3503 [AS_HELP_STRING([--enable-kva],
3504 [support the K Video Accelerator KVA (default enabled on OS/2)])],, [
3505 AS_IF([test "$SYS" = "os2"], [
3511 AS_IF([test "$enable_kva" != "no"], [
3512 AC_CHECK_HEADERS([kva.h], [
3514 AC_CHECK_LIB(kva, main, [
3520 AM_CONDITIONAL([HAVE_KVA], [test "${have_kva}" = "yes"])
3526 AS_HELP_STRING([--enable-mmal],
3527 [Multi-Media Abstraction Layer (MMAL) hardware plugin (default enable)]))
3528 if test "${enable_mmal}" != "no"; then
3530 LDFLAGS="${LDFLAGS} -L/opt/vc/lib"
3531 CPPFLAGS="${CPPFLAGS} -I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux"
3532 AC_CHECK_HEADERS(interface/mmal/mmal.h,
3533 [ AC_CHECK_LIB(bcm_host, vc_tv_unregister_callback_full, [
3535 VLC_ADD_PLUGIN([mmal])
3536 VLC_ADD_LDFLAGS([mmal],[ -L/opt/vc/lib ])
3537 VLC_ADD_CFLAGS([mmal],[ -I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux ])
3538 VLC_ADD_LIBS([mmal],[ -lbcm_host -lmmal ]) ], [
3539 AS_IF([test "${enable_mmal}" = "yes"],
3540 [ AC_MSG_ERROR([Cannot find bcm library...]) ],
3541 [ AC_MSG_WARN([Cannot find bcm library...]) ])
3544 ] , [ AS_IF([test "${enable_mmal}" = "yes"],
3545 [ AC_MSG_ERROR([Cannot find development headers for mmal...]) ],
3546 [ AC_MSG_WARN([Cannot find development headers for mmal...]) ]) ])
3549 AM_CONDITIONAL([HAVE_MMAL], [test "${have_mmal}" = "yes"])
3555 EXTEND_HELP_STRING([Audio plugins:])
3558 dnl Pulseaudio module
3560 AC_ARG_ENABLE(pulse,
3561 [AS_HELP_STRING([--enable-pulse],
3562 [use the PulseAudio client library (default auto)])])
3564 AS_IF([test "${enable_pulse}" != "no"], [
3565 PKG_CHECK_MODULES([PULSE], [libpulse >= 1.0], [
3568 AS_IF([test "x${enable_pulse}" != "x"], [
3569 AC_MSG_ERROR([$PULSE_PKG_ERRORS. PulseAudio 1.0 or later required.])
3573 AM_CONDITIONAL([HAVE_PULSE], [test "${have_pulse}" = "yes"])
3579 [AS_HELP_STRING([--enable-alsa],
3580 [support the Advanced Linux Sound Architecture (default auto)])],, [
3581 AS_IF([test "$SYS" = "linux" -a "${have_pulse}" = "no"], [
3586 AS_IF([test "${enable_alsa}" != "no"], [
3587 PKG_CHECK_MODULES([ALSA], [alsa >= 1.0.24], [
3590 AS_IF([test "x${enable_alsa}" != "x"], [
3591 AC_MSG_ERROR([$ALSA_PKG_ERRORS. alsa-lib 1.0.24 or later required.])
3595 AM_CONDITIONAL([HAVE_ALSA], [test "${have_alsa}" = "yes"])
3598 dnl Open Sound System module
3601 [AS_HELP_STRING([--enable-oss],
3602 [support the Open Sound System OSS (default enabled on FreeBSD/NetBSD/DragonFlyBSD)])],, [
3603 AS_IF([test "$SYS" = "mingw32" -o "$SYS" = "linux" -o "$SYS" = "openbsd"], [
3609 AS_IF([test "$enable_oss" != "no"], [
3610 AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
3612 AC_CHECK_LIB(ossaudio, main, [
3613 OSS_LIBS="-lossaudio"
3618 AM_CONDITIONAL([HAVE_OSS], [test "${have_oss}" = "yes"])
3621 dnl OpenBSD sndio module
3623 AC_ARG_ENABLE([sndio],
3624 [AS_HELP_STRING([--disable-sndio],
3625 [support the OpenBSD sndio (default auto)])],, [
3626 AS_IF([test "$SYS" = "openbsd"], [
3631 AS_IF([test "$enable_sndio" != "no"], [
3632 AC_CHECK_HEADER([sndio.h], [
3636 AM_CONDITIONAL([HAVE_SNDIO], [test "${have_sndio}" = "yes"])
3639 dnl Windows Audio Session plugin
3641 AC_ARG_ENABLE([wasapi],
3642 [AS_HELP_STRING([--enable-wasapi],
3643 [use the Windows Audio Session API (default auto)])
3646 AS_IF([test "$enable_wasapi" != "no"], [
3647 AC_CHECK_HEADER([audioclient.h], [
3650 AS_IF([test "x${enable_wasapi}" != "x"], [
3651 AC_MSG_ERROR([Windows Audio Session API not found.])
3655 AM_CONDITIONAL([HAVE_WASAPI], [test "${have_wasapi}" = "yes"])
3658 dnl AudioQueue plugin
3660 AC_ARG_ENABLE(audioqueue,
3661 [ --enable-audioqueue AudioQueue audio module (default disabled)])
3662 if test "${enable_audioqueue}" = "yes"
3664 VLC_ADD_PLUGIN([audioqueue])
3671 [AS_HELP_STRING([--disable-jack],
3672 [do not use jack (default auto)])])
3674 AS_IF([test "${enable_jack}" != "no"], [
3675 PKG_CHECK_MODULES(JACK, jack >= 1.9.7,
3678 AC_MSG_WARN([${JACK_PKG_ERRORS}, trying jack1 instead])
3680 PKG_CHECK_MODULES(JACK, jack >= 0.120.1 jack < 1.0,
3683 AS_IF([test -n "${enable_jack}"],
3684 [AC_MSG_ERROR([${JACK_PKG_ERRORS}.])],
3685 [AC_MSG_WARN([${JACK_PKG_ERRORS}.])])
3689 AM_CONDITIONAL([HAVE_JACK], [test "${have_jack}" != "no"])
3692 dnl OpenSLES Android
3694 AC_ARG_ENABLE(opensles,
3695 [ --enable-opensles Android OpenSL ES audio module (default disabled)])
3696 if test "${HAVE_ANDROID}" = "1"; then
3697 if test "${enable_opensles}" = "yes"; then
3698 AC_CHECK_HEADERS(SLES/OpenSLES.h,
3699 [ VLC_ADD_PLUGIN([opensles_android]) ],
3700 [ AC_MSG_ERROR([cannot find OpenSLES headers])] )
3705 dnl libsamplerate plugin
3707 PKG_ENABLE_MODULES_VLC([SAMPLERATE], [], [samplerate], [Resampler with libsamplerate], [auto])
3713 [AS_HELP_STRING([--enable-kai],
3714 [support the K Audio Interface KAI (default enabled on OS/2)])],, [
3715 AS_IF([test "$SYS" = "os2"], [
3721 AS_IF([test "$enable_kai" != "no"], [
3722 AC_CHECK_HEADERS([kai.h], [
3724 AC_CHECK_LIB(kai, main, [
3730 AM_CONDITIONAL([HAVE_KAI], [test "${have_kai}" = "yes"])
3733 dnl chromaprint audio track fingerprinter
3735 m4_pushdef([libchromaprint_version], 0.6.0)
3736 PKG_WITH_MODULES([CHROMAPRINT],[libchromaprint >= libchromaprint_version],
3737 VLC_ADD_PLUGIN([stream_out_chromaprint])
3738 VLC_ADD_CFLAGS([stream_out_chromaprint],[${CHROMAPRINT_CFLAGS}] [-I./webservices -I../stream_out])
3739 VLC_ADD_LIBS([stream_out_chromaprint],[${CHROMAPRINT_LIBS}]),
3740 AS_IF([test "${enable_chromaprint}" = "yes"],
3741 [AC_MSG_ERROR(Library [libchromaprint >= libchromaprint_version] needed for [chromaprint] was not found)],
3742 [AC_MSG_WARN(Library [libchromaprint >= libchromaprint_version] needed for [chromaprint] was not found)]
3744 [(Chromaprint based audio fingerprinter)],[auto])
3745 m4_popdef([libchromaprint_version])
3748 dnl Chromecast streaming support
3750 m4_pushdef([protobuf_lite_version], 2.5.0)
3751 AC_ARG_VAR(PROTOC, [protobuf compiler])
3752 AC_PATH_PROGS(PROTOC, protoc, no)
3753 PKG_WITH_MODULES([CHROMECAST],[protobuf-lite >= protobuf_lite_version], [
3754 AS_IF([test "x${PROTOC}" != "xno"], [
3755 VLC_ADD_PLUGIN([stream_out_chromecast])
3756 VLC_ADD_CXXFLAGS([stream_out_chromecast],[${CHROMECAST_CFLAGS}] [-I./chromecast])
3757 VLC_ADD_LIBS([stream_out_chromecast],[${CHROMECAST_LIBS}])
3758 build_chromecast="yes"
3760 AC_MSG_ERROR(protoc compiler needed for [chromecast] was not found)
3763 AS_IF([test "${enable_chromecast}" = "yes"],
3764 AC_MSG_ERROR(Library [protobuf-lite >= protobuf_lite_version] needed for [chromecast] was not found),
3765 AC_MSG_WARN(Library [protobuf-lite >= protobuf_lite_version] needed for [chromecast] was not found)
3767 enable_chromecast="no"
3768 ], [(Chromecast streaming support)], [auto])
3769 AM_CONDITIONAL([BUILD_CHROMECAST], [test "${build_chromecast}" = "yes"])
3770 m4_popdef([protobuf_lite_version])
3773 dnl Interface plugins
3776 EXTEND_HELP_STRING([Interface plugins:])
3782 AS_HELP_STRING([--disable-qt], [Qt UI support (default enabled)])],, [
3783 AS_IF([test "${SYS}" = "darwin"], [
3787 AS_IF([test "${enable_qt}" != "no"], [
3788 PKG_CHECK_MODULES([QT], [Qt5Core >= 5.1.0 Qt5Widgets Qt5Gui], [
3789 PKG_CHECK_MODULES([QTX11], [Qt5X11Extras], [
3790 VLC_ADD_LIBS([qt4],[${QTX11_LIBS}])
3791 VLC_ADD_CXXFLAGS([qt4],[${QTX11_CFLAGS} -DQT5_HAS_X11])
3793 AC_MSG_WARN([Not building Qt Interface with X11 helpers.])
3795 QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix Qt5Core)"
3796 QT_HOST_PATH="$(eval $PKG_CONFIG --variable=host_bins Qt5Core)"
3797 AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin" "${CONTRIB_DIR}/bin"])
3798 AC_PATH_PROGS(RCC, [rcc-qt5 rcc], rcc, ["${QT_HOST_PATH}" "${QT_PATH}/bin" "${CONTRIB_DIR}/bin"])
3799 AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, ["${QT_HOST_PATH}" "${QT_PATH}/bin" "${CONTRIB_DIR}/bin"])
3801 PKG_CHECK_MODULES([QT], [QtCore QtGui >= 4.6.0],, [
3802 AS_IF([test -n "${enable_qt}"],[
3803 AC_MSG_ERROR([${QT_PKG_ERRORS}.])
3805 AC_MSG_WARN([${QT_PKG_ERRORS}.])
3809 QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix QtCore)"
3810 AC_PATH_PROGS(MOC, [moc-qt4 moc], moc, ["${QT_PATH}/bin" "${CONTRIB_DIR}/bin"])
3811 AC_PATH_PROG(RCC, rcc, rcc, [${QT_PATH}/bin ${CONTRIB_DIR}/bin])
3812 AC_PATH_PROGS(UIC, [uic-qt4 uic], uic, ["${QT_PATH}/bin" "${CONTRIB_DIR}/bin"])
3815 AS_IF([test "${enable_qt}" != "no"], [
3816 VLC_ADD_PLUGIN([qt4])
3817 ALIASES="${ALIASES} qvlc"
3819 AM_CONDITIONAL(ENABLE_QT4, [test "$enable_qt" != "no"])
3822 dnl Simple test for skins2 dependency
3824 AS_IF([test "$enable_qt" = "no"], [
3825 AS_IF([test "${enable_skins2}" = "yes"], [
3826 AC_MSG_ERROR([The skins2 module depends on the Qt4 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 Qt4 development package or alternatively you can also configure with: --disable-qt4 --disable-skins2.])
3829 AC_MSG_WARN([The skins2 module depends on the Qt4 interface, Qt4 is not built so skins2 is disabled.])
3836 AC_ARG_ENABLE(skins2,
3837 [AS_HELP_STRING([--enable-skins2], [skins interface module (default auto)])])
3838 AS_IF([test "${enable_skins2}" != "no"], [
3839 have_skins_deps="yes"
3842 AS_IF([test "${SYS}" = "mingw32"], [
3843 VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -DWIN32_SKINS])
3844 VLC_ADD_LIBS([skins2],[-lgdi32 -lole32 -luuid -lmsimg32])
3846 ], [test "${SYS}" = "darwin"], [
3847 VLC_ADD_CPPFLAGS([skins2],[ -DMACOSX_SKINS])
3848 VLC_ADD_LIBS([skins2],[-Wl,-framework,Carbon])
3850 ], [test "${SYS}" = "os2"], [
3851 VLC_ADD_CPPFLAGS([skins2],[ -DOS2_SKINS])
3854 PKG_CHECK_MODULES([XPM], [xpm],, [have_skins_deps="no"])
3855 PKG_CHECK_MODULES([XINERAMA], [xinerama],, [have_skins_deps="no"])
3856 PKG_CHECK_MODULES([XEXT], [xext],, [have_skins_deps="no"])
3857 VLC_ADD_CPPFLAGS([skins2],[${X_CFLAGS} ${XEXT_CFLAGS} ${XPM_CFLAGS} -DX11_SKINS])
3858 VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} ${XEXT_LIBS} ${XPM_LIBS} ${XINERAMA_LIBS} -lX11])
3862 VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3864 dnl we need freetype
3865 AS_IF([test "${have_freetype}" != "yes"], [
3866 have_skins_deps="no"
3869 AS_IF([test "${have_skins_deps}" = "no"], [
3870 AS_IF([test "x${enable_skins2}" = "x"], [
3871 AC_MSG_WARN([Skins2 interface disabled due to missing dependencies.])
3873 AC_MSG_ERROR([Skins2 interface requires FreeType, libxpm, libxext and libxinerama])
3877 VLC_ADD_PLUGIN([skins2])
3878 ALIASES="${ALIASES} svlc"
3882 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes"])
3884 AC_ARG_ENABLE(libtar,
3885 [ --enable-libtar libtar support for skins2 (default auto)])
3886 AS_IF([test "${enable_skins2}" = "yes" && test "${enable_libtar}" != "no"], [
3887 AC_CHECK_HEADERS(libtar.h, [
3888 VLC_ADD_LIBS([skins2],[-ltar])
3893 dnl MacOS X gui module
3895 AC_ARG_ENABLE(macosx,
3896 [ --enable-macosx Mac OS X gui support (default enabled on Mac OS X)])
3897 if test "x${enable_macosx}" != "xno" -a "${SYS}" = "darwin"
3899 VLC_ADD_LIBS([macosx], [-Wl,-framework,Cocoa -Wl,-framework,Carbon -Wl,-framework,CoreServices])
3900 VLC_ADD_OBJCFLAGS([macosx], [-fobjc-exceptions] )
3901 VLC_ADD_PLUGIN([macosx])
3903 VLC_ADD_LIBS([macosx], [-Wl,-framework,QTKit -Wl,-framework,IOKit -Wl,-framework,AddressBook -Wl,-framework,WebKit -Wl,-framework,CoreAudio -Wl,-framework,SystemConfiguration -Wl,-framework,ScriptingBridge])
3905 if test ! -d ${CONTRIB_DIR}/Sparkle.framework
3907 AC_MSG_ERROR([Sparkle framework is required and was not found in ${CONTRIB_DIR}])
3909 VLC_ADD_LIBS([macosx], [-F${CONTRIB_DIR} -Wl,-framework,Sparkle])
3910 VLC_ADD_OBJCFLAGS([macosx], [-F${CONTRIB_DIR}])
3912 if test ! -d ${CONTRIB_DIR}/BGHUDAppKit.framework
3914 AC_MSG_ERROR([BGHUDAppKit framework is required and was not found in ${CONTRIB_DIR}])
3916 VLC_ADD_LIBS([macosx], [-F${CONTRIB_DIR} -Wl,-framework,BGHUDAppKit])
3917 VLC_ADD_OBJCFLAGS([macosx], [-F${CONTRIB_DIR}])
3919 AM_CONDITIONAL(ENABLE_MACOSX_UI, [test "$enable_macosx" != "no"])
3922 dnl Minimal Mac OS X module
3924 AC_ARG_ENABLE(minimal-macosx,
3925 [ --enable-minimal-macosx Minimal Mac OS X support (default disabled)])
3926 if test "${enable_minimal_macosx}" = "yes" -a "${SYS}" = "darwin"
3928 VLC_ADD_LIBS([minimal_macosx], [-Wl,-framework,Cocoa])
3929 VLC_ADD_OBJCFLAGS([minimal_macosx], [-fobjc-exceptions] )
3930 VLC_ADD_PLUGIN([minimal_macosx])
3932 AM_CONDITIONAL(ENABLE_MINIMAL_MACOSX, [test "$enable_minimal_macosx" != "no"])
3935 dnl MacOS X dialog provider
3937 AC_ARG_ENABLE(macosx-dialog-provider,
3938 [ --enable-macosx-dialog-provider Mac OS X dialog module (default enabled on Mac OS X)])
3939 if test "x${enable_macosx_dialog_provider}" != "xno" &&
3940 (test "${SYS}" = "darwin" || test "${enable_macosx_dialog_provider}" = "yes")
3942 VLC_ADD_LIBS([macosx_dialog_provider],[-Wl,-framework,Cocoa])
3943 VLC_ADD_PLUGIN([macosx_dialog_provider])
3945 AM_CONDITIONAL(ENABLE_MACOSX_DIALOG_PROVIDER, [test "$enable_macosx_dialog_provider" != "no"])
3950 AC_ARG_ENABLE(ncurses,
3951 [AS_HELP_STRING([--disable-ncurses],[ncurses text-based interface (default auto)])])
3952 AS_IF([test "${enable_ncurses}" != "no"] ,[
3953 PKG_CHECK_MODULES([NCURSES], [ncursesw], [
3954 VLC_ADD_PLUGIN([ncurses])
3955 VLC_ADD_CFLAGS([ncurses],[${NCURSES_CFLAGS}])
3956 VLC_ADD_LIBS([ncurses],[${NCURSES_LIBS}])
3957 ALIASES="${ALIASES} nvlc"
3959 AS_IF([test -n "${enable_ncurses}"], [
3960 AC_MSG_ERROR([${NCURSES_PKG_ERRORS}.])
3969 [ --enable-lirc lirc support (default disabled)])
3970 if test "${enable_lirc}" = "yes"
3972 AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
3973 if test "${have_lirc}" = "true"
3975 VLC_ADD_PLUGIN([lirc])
3976 VLC_ADD_LIBS([lirc],[-llirc_client])
3980 EXTEND_HELP_STRING([Visualisations and Video filter plugins:])
3982 dnl goom visualization plugin
3984 PKG_ENABLE_MODULES_VLC([GOOM], [], [libgoom2], [goom visualization plugin], [auto])
3987 dnl libprojectM visualization plugin
3989 AC_ARG_ENABLE(projectm,
3990 [ --enable-projectm projectM visualization plugin (default enabled)])
3991 AS_IF([test "${enable_projectm}" != "no"],
3993 PKG_CHECK_MODULES(PROJECTM, libprojectM,
3995 VLC_ADD_PLUGIN([projectm])
3996 PKG_CHECK_EXISTS([libprojectM >= 2.0.0],
3997 [ AC_DEFINE([HAVE_PROJECTM2], 1, [Define to 1 if using libprojectM 2.x]) ],
3998 [ AC_MSG_WARN( [Using libprojectM version 1] )
4001 AC_MSG_WARN([${PROJECTM_PKG_ERRORS}.])
4006 dnl Vovoid VSXu visualization plugin
4009 [ --enable-vsxu Vovoid VSXu visualization plugin (default auto)])
4010 AS_IF([test "${enable_vsxu}" != "no"],
4012 PKG_CHECK_MODULES(VSXU, libvsxu,
4014 VLC_ADD_PLUGIN([vsxu])
4015 VLC_ADD_CXXFLAGS([vsxu],[$VSXU_CFLAGS])
4016 VLC_ADD_LIBS([vsxu],[$VSXU_LIBS])
4018 AC_MSG_WARN([${VSXU_PKG_ERRORS}.])
4023 dnl AtmoLight (homemade Philips Ambilight clone)
4026 AS_HELP_STRING([--disable-atmo],[AtmoLight (homemade Philips Ambilight clone)
4027 (default enabled)]),, [enable_atmo="yes"])
4028 AS_IF([test "${enable_atmo}" != no], [
4029 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "linux"], [
4031 VLC_ADD_PLUGIN([atmo])
4039 AC_ARG_ENABLE(glspectrum,
4040 [ --enable-glspectrum 3D OpenGL spectrum visualization (default auto)])
4041 if test "${enable_glspectrum}" != "no" && test "${have_gl}" = "yes"
4043 VLC_ADD_PLUGIN([glspectrum])
4044 VLC_ADD_LIBS([glspectrum],[$GL_LIBS])
4047 EXTEND_HELP_STRING([Service Discovery plugins:])
4049 dnl Bonjour services discovery
4050 PKG_ENABLE_MODULES_VLC([BONJOUR], [], [avahi-client >= 0.6], [Bonjour services discovery], [auto])
4053 dnl libudev services discovery
4054 PKG_ENABLE_MODULES_VLC([UDEV], [], [libudev >= 142], [Linux udev services discovery], [auto])
4057 dnl MTP devices services discovery
4058 PKG_ENABLE_MODULES_VLC([MTP], [mtp access_mtp], [libmtp >= 1.0.0], [MTP devices support], [auto])
4061 dnl UPnP Plugin (Intel SDK)
4063 PKG_ENABLE_MODULES_VLC([UPNP], [upnp], [libupnp], [Intel UPNP SDK],[auto])
4065 EXTEND_HELP_STRING([Misc options:])
4070 PKG_ENABLE_MODULES_VLC([LIBXML2], [xml], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
4076 AC_ARG_ENABLE(libgcrypt,
4077 [ --disable-libgcrypt gcrypt support (default enabled)])
4078 AS_IF([test "${enable_libgcrypt}" != "no"], [
4079 AC_CHECK_DECL([GCRYCTL_SET_THREAD_CBS], [
4080 libgcrypt-config --version >/dev/null || \
4081 AC_MSG_ERROR([gcrypt.h present but libgcrypt-config could not be found])
4082 AC_CHECK_LIB(gcrypt, gcry_control, [
4083 have_libgcrypt="yes"
4084 GCRYPT_CFLAGS="`libgcrypt-config --cflags`"
4085 GCRYPT_LIBS="`libgcrypt-config --libs`"
4087 AC_MSG_ERROR([libgcrypt not found. Install libgcrypt or pass --disable-libgcrypt.])
4088 ], [`libgcrypt-config --libs`])
4090 AC_MSG_ERROR([libgcrypt version 1.1.94 or higher not found. Install libgcrypt or pass --disable-libgcrypt.])
4091 ], [#include <gcrypt.h>]
4095 AC_SUBST(GCRYPT_CFLAGS)
4096 AC_SUBST(GCRYPT_LIBS)
4097 AM_CONDITIONAL([HAVE_GCRYPT], [test "${have_libgcrypt}" = "yes"])
4102 AC_ARG_ENABLE(gnutls,
4103 [ --enable-gnutls GNU TLS TLS/SSL support (default enabled)])
4104 AS_IF([test "${enable_gnutls}" != "no"], [
4105 PKG_CHECK_MODULES(GNUTLS, [gnutls >= 3.2.0], [
4106 VLC_ADD_PLUGIN([gnutls])
4108 AS_IF([test -n "${enable_gnutls}"], [
4109 AC_MSG_ERROR([${GNUTLS_PKG_ERRORS}.)])
4118 AC_ARG_ENABLE(taglib,
4119 [AS_HELP_STRING([--disable-taglib],
4120 [do not use TagLib (default enabled)])])
4121 AS_IF([test "${enable_taglib}" != "no"], [
4122 PKG_CHECK_MODULES(TAGLIB, taglib >= 1.9, [
4123 VLC_ADD_PLUGIN([taglib])
4125 AC_MSG_WARN([${TAGLIB_PKG_ERRORS}.])])
4130 dnl update checking system
4132 AC_ARG_ENABLE(update-check,
4133 [ --enable-update-check update checking system (default disabled)])
4134 if test "${enable_update_check}" = "yes"
4136 if test "${have_libgcrypt}" != "yes"
4138 AC_MSG_ERROR([libgcrypt is required for update checking system])
4140 VLC_ADD_LIBS([libvlccore], [${GCRYPT_LIBS}])
4141 VLC_ADD_CFLAGS([libvlccore], [${GCRYPT_CFLAGS}])
4142 AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
4146 dnl Growl notification plugin
4148 AC_ARG_ENABLE(growl,
4149 [ --enable-growl growl notification plugin (default disabled)],,
4151 AS_IF([test "${enable_growl}" != "no"], [
4152 AC_CHECK_HEADERS(${CONTRIB_DIR}/Growl.framework/Versions/A/Headers/Growl.h, [
4153 VLC_ADD_PLUGIN([growl])
4154 VLC_ADD_LIBS([growl], [-F${CONTRIB_DIR} -Wl,-framework,Growl,-framework,Foundation])
4155 VLC_ADD_OBJCFLAGS([growl], [-F${CONTRIB_DIR}])
4156 VLC_ADD_OBJCFLAGS([growl], [-fobjc-exceptions] )
4162 dnl Libnotify notification plugin
4164 PKG_ENABLE_MODULES_VLC([NOTIFY], [], [libnotify gtk+-2.0], [libnotify notification], [auto])
4167 dnl Endianness check
4170 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
4171 DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
4175 AC_SUBST(DEFS_BIGENDIAN)
4178 dnl Where to install KDE solid .desktop
4180 AC_ARG_VAR([KDE4_CONFIG], [kde4-config utility])
4181 AS_IF([test "x$KDE4_CONFIG" = "x"], [
4182 KDE4_CONFIG="kde4-config"
4185 AC_ARG_WITH(kde-solid,
4186 AS_HELP_STRING([--with-kde-solid=PATH],
4187 [KDE Solid actions directory (auto)]),, [
4189 if test "${SYS}" != "mingw32" -a "${SYS}" != "darwin" ; then
4190 with_kde_solid="yes"
4194 AS_IF([test "${with_kde_solid}" != "no"], [
4195 AS_IF([test "${with_kde_solid}" = "yes"], [
4196 kde4datadir="`${KDE4_CONFIG} --install data`"
4197 AS_IF([test "x$kde4datadir" = "x"], [kde4datadir='${datadir}/kde4/apps'])
4198 soliddatadir="${kde4datadir}/solid/actions"
4200 soliddatadir="${with_kde_solid}"
4203 AC_SUBST(soliddatadir)
4204 AM_CONDITIONAL(KDE_SOLID, [test "x${soliddatadir}" != "x"])
4206 EXTEND_HELP_STRING([Components:])
4212 [ --enable-vlc build the VLC media player (default enabled)])
4213 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
4215 AC_ARG_ENABLE(macosx-vlc-app,
4216 [ --enable-macosx-vlc-app build the VLC media player (default enabled on Mac OS X)])
4217 AM_CONDITIONAL(BUILD_MACOSX_VLC_APP, [test "${enable_macosx_vlc_app}" != "no" &&
4218 (test "${SYS}" = "darwin" || test "${enable_macosx_vlc_app}" = "yes") ])
4221 dnl Stuff used by the program
4223 VERSION_MESSAGE="${VERSION} ${CODENAME}"
4224 COPYRIGHT_MESSAGE="Copyright © ${COPYRIGHT_YEARS} the VideoLAN team"
4225 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string])
4226 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string])
4227 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
4228 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
4229 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,${VERSION_MAJOR}, [version major number])
4230 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,${VERSION_MINOR}, [version minor number])
4231 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,${VERSION_REVISION}, [version revision number])
4232 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,${VERSION_EXTRA}, [version extra number])
4233 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_DEV,"${VERSION_DEV}", [version development string])
4234 AC_SUBST(COPYRIGHT_MESSAGE)
4235 AC_SUBST(VERSION_MESSAGE)
4236 AC_SUBST(VERSION_MAJOR)
4237 AC_SUBST(VERSION_MINOR)
4238 AC_SUBST(VERSION_REVISION)
4239 AC_SUBST(VERSION_EXTRA)
4240 AC_SUBST(COPYRIGHT_YEARS)
4241 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami|sed -e 's/\\\/\\\\\\\/g'`", [user who ran configure])
4242 AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -f 2>/dev/null || hostname`", [host which ran configure])
4243 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1 | sed -e 's/ *$//'`", [compiler])
4245 dnl Handle substvars that use $(top_srcdir)
4247 CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS}"
4250 dnl Configuration is finished
4260 AC_SUBST(WINE_SDK_PATH)
4262 AC_SUBST(AM_CPPFLAGS)
4263 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
4264 AC_SUBST(FILE_LIBVLCCORE_DLL)
4265 AC_SUBST(FILE_LIBVLC_DLL)
4279 modules/access_output/Makefile
4280 modules/audio_filter/Makefile
4281 modules/control/Makefile
4282 modules/gui/Makefile
4283 modules/gui/ios_dialog_provider/Makefile
4284 modules/gui/macosx/Makefile
4285 modules/gui/minimal_macosx/Makefile
4286 modules/gui/macosx_dialog_provider/Makefile
4287 modules/gui/qt4/Makefile
4288 modules/gui/skins2/Makefile
4289 modules/mux/Makefile
4290 modules/packetizer/Makefile
4291 modules/stream_out/Makefile
4292 modules/text_renderer/Makefile
4293 modules/video_filter/Makefile
4294 modules/visualization/Makefile
4295 modules/hw/mmal/Makefile
4298 AM_COND_IF([HAVE_WIN32], [
4300 extras/package/win32/NSIS/spad.nsi
4301 extras/package/win32/NSIS/vlc.win32.nsi
4302 extras/package/win32/msi/config.wxi
4306 AM_COND_IF([HAVE_DARWIN], [
4308 extras/package/macosx/Info.plist
4309 extras/package/macosx/Resources/English.lproj/InfoPlist.strings
4313 dnl Generate makefiles
4316 dnl Do we have to use make or gmake ?
4317 if make --version 2>&1|grep -q GNU
4319 # GNU make, all seems good
4322 # Known GNU make alias (on BSD)
4325 dnl Shortcut to nice compile message
4326 if test -n $SHELL; then
4327 SHELL=${CONFIG_SHELL-/bin/sh}
4330 compile_top_srcdir=`sed -ne "s/^top_srcdir *= *//p" < Makefile`
4334 export PATH=\"$PATH\" LANG=C
4335 ($MAKE V=1 \$@ 2>&1 || touch .error\$\$)| $compile_top_srcdir/extras/buildsystem/make.pl
4336 test -f .error\$\$ && ERROR=1
4338 exit \$ERROR" >compile
4342 libvlc configuration
4343 --------------------
4344 version : ${VERSION}
4346 architecture : ${ARCH}
4347 optimizations : ${enable_optimizations}"
4348 if test "${enable_vlc}" != "no"; then
4349 echo "vlc aliases :${ALIASES}"
4351 echo "build vlc executable : no"
4354 To build vlc and its plugins, type \`$MAKE', or \`./compile' if you like nice colors."