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_CHECK_PROGS(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 VLC_ADD_LIBS([libvlccore],[-lwinmm])
262 VLC_ADD_LDFLAGS([vlc],[-mwindows])
263 VLC_ADD_LIBS([win32text],[-lgdi32])
264 AC_CHECK_PROGS(U2D, [unix2dos todos], unix2dos)
265 ac_default_prefix="`pwd`/_win32"
266 DESTDIR="`pwd`/_win32/"
269 dnl NSIS/MSI Installer prefix and WIN64
275 PROGRAMFILES="PROGRAMFILES64"
280 PROGRAMFILES="PROGRAMFILES"
284 AC_SUBST(WINDOWS_ARCH)
285 AC_SUBST(PROGRAMFILES)
303 LDFLAGS="${LDFLAGS} -Zomf -Zbin-files -Zargs-wild -Zhigh-mem"
309 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
310 AM_CONDITIONAL(HAVE_LINUX, test "${SYS}" = "linux")
311 AM_CONDITIONAL(HAVE_OS2, test "${SYS}" = "os2")
312 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
313 AM_CONDITIONAL(HAVE_WIN64, test "${HAVE_WIN64}" = "1")
314 AM_CONDITIONAL(HAVE_SYMBIAN, test "${SYS}" = "symbian")
315 AM_CONDITIONAL(HAVE_IOS, test "${HAVE_IOS}" = "1")
316 AM_CONDITIONAL(HAVE_OSX, test "${HAVE_OSX}" = "1")
321 dnl Sadly autoconf does not think about testing foo.exe when ask to test
322 dnl for program foo on win32
323 case "${build_os}" in
325 ac_executable_extensions=".exe"
331 dnl Android is linux, but a bit different
332 AS_IF([test "$SYS" = linux],[
333 AC_MSG_CHECKING([for an Android system])
334 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
335 [[#ifndef __ANDROID__
346 AM_CONDITIONAL(HAVE_ANDROID, test "${HAVE_ANDROID}" = "1")
350 dnl Check for the contrib directory
353 [AS_HELP_STRING([--with-contrib[=DIR]],
354 [search for 3rd party libraries in DIR/include and DIR/lib])
356 AC_MSG_CHECKING([for 3rd party libraries path])
357 AS_IF([test -z "${with_contrib}" || test "${with_contrib}" = "yes"], [
358 CONTRIB_DIR="${srcdir}/contrib/${host}"
359 AS_IF([test ! -d "${CONTRIB_DIR}"], [
360 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
361 CONTRIB_DIR="${srcdir}/contrib/`$CC -dumpmachine`"
362 AS_IF([test ! -d "${CONTRIB_DIR}"], [
363 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
364 CONTRIB_DIR="${srcdir}/extras/contrib/hosts/${host}"
365 AS_IF([test ! -d "${CONTRIB_DIR}"], [
366 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
367 CONTRIB_DIR="${srcdir}/extras/contrib/hosts/`$CC -dumpmachine`"
368 AS_IF([test ! -d "${CONTRIB_DIR}"], [
369 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
371 AC_MSG_RESULT([not found])
377 AS_IF([test "${with_contrib}" != "no"], [
378 CONTRIB_DIR="${with_contrib}"
381 AC_MSG_RESULT([disabled])
384 AS_IF([test -n "${CONTRIB_DIR}"], [
385 AS_IF([test -d "${CONTRIB_DIR}/lib"],[
386 CONTRIB_DIR=`cd "${CONTRIB_DIR}" && pwd`
388 echo "${CONTRIB_DIR}/lib not found" >&AS_MESSAGE_LOG_FD
390 AC_MSG_RESULT([not usable])
394 AS_IF([test -n "${CONTRIB_DIR}"], [
395 AC_MSG_RESULT([${CONTRIB_DIR}])
396 export PATH=${CONTRIB_DIR}/bin:$PATH
397 CPPFLAGS="${CPPFLAGS} -I${CONTRIB_DIR}/include"
398 CFLAGS="${CFLAGS} -I${CONTRIB_DIR}/include"
399 CXXFLAGS="${CXXFLAGS} -I${CONTRIB_DIR}/include"
400 OBJCFLAGS="${OBJCFLAGS} -I${CONTRIB_DIR}/include"
401 export PKG_CONFIG_PATH="${CONTRIB_DIR}/lib/pkgconfig:$PKG_CONFIG_PATH"
402 LDFLAGS="${LDFLAGS} -L${CONTRIB_DIR}/lib"
404 AS_IF([test "${SYS}" = "darwin"], [
405 export LD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$LD_LIBRARY_PATH"
406 export DYLD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$DYLD_LIBRARY_PATH"
409 AS_IF([test -n "${with_contrib}" && test "${with_contrib}" != "no"], [
410 AC_MSG_ERROR([Third party libraries not found!])
413 AC_SUBST(CONTRIB_DIR)
417 dnl It's very bad, but our former custom system was worst
421 dnl override platform specific check for dependent libraries
422 dnl otherwise libtool linking of shared libraries will
423 dnl fail on anything other than pass_all.
424 AC_CACHE_VAL(lt_cv_deplibs_check_method,
425 [lt_cv_deplibs_check_method=pass_all])
427 LT_INIT([dlopen win32-dll shared disable-static])
429 LT_LANG([Windows Resource])
433 lt_cv_deplibs_check_method=pass_all
435 AS_IF([test "${enable_shared}" = "no" -a "${enable_vlc}" != "no"], [
436 AC_MSG_ERROR([VLC is based on plugins. Shared libraries cannot be disabled.])
442 AM_GNU_GETTEXT_VERSION([0.18.3])
443 AM_GNU_GETTEXT([external], [need-ngettext])
452 AS_IF([test "${SYS}" = "mingw32"], [
453 dnl Check for broken versions of mingw-runtime compatability library
454 AC_MSG_CHECKING(for broken mingw-runtime)
455 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
457 #if defined(__MINGW64_VERSION_MAJOR)
458 # if __MINGW64_VERSION_MAJOR < 3
459 # error Attempting to use mingw-runtime with broken vsnprintf and direct2d support
461 #elif __MINGW32_MAJOR_VERSION == 3 && __MINGW32_MINOR_VERSION < 15
462 # error Attempting to use mingw-runtime with broken vsnprintf support
467 AC_MSG_RESULT([present])
468 AC_MSG_ERROR([LibVLC requires mingw-runtime version 3.15 or higher, or mingw-w64 version 3.0 or higher!])
470 dnl force use of mingw provided c99 *printf over msvcrt
471 CPPFLAGS="${CPPFLAGS} -D__USE_MINGW_ANSI_STDIO=1"
473 dnl Check for the need to include the mingwex lib for mingw32
475 AC_CHECK_LIB(mingwex,opendir,
476 AC_CHECK_LIB(mingw32,opendir,,
477 [VLC_ADD_LIBS([libvlccore],[-lmingwex])])
481 dnl Check for fnative-struct or mms-bitfields support for mingw32
483 CFLAGS="${CFLAGS} -mms-bitfields"
484 CXXFLAGS="${CXXFLAGS} -mms-bitfields"
485 AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
486 [ac_cv_c_mms_bitfields],
487 [AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
488 if test "${ac_cv_c_mms_bitfields}" = "no"; then
490 CFLAGS="${CFLAGS} -fnative-struct"
491 CXXFLAGS="${CXXFLAGS} -fnative-struct"
492 AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
493 [ac_cv_c_fnative_struct],
494 [AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
495 "${ac_cv_c_fnative_struct}" = "no" && VLC_RESTORE_FLAGS
499 AC_ARG_ENABLE(winstore_app,
500 AS_HELP_STRING([--enable-winstore-app],
501 [Build targetted for Windows Store apps (default disabled)]))
504 AS_IF([test "${SYS}" = "mingw32" -a "${enable_winstore_app}" = "yes"], [
506 VLC_ADD_LIBS([libvlccore], [-lole32 -lruntimeobject])
508 AC_DEFINE_UNQUOTED(VLC_WINSTORE_APP, ${vlc_winstore_app}, [Define to 1 if you want to build for Windows Store apps])
509 AM_CONDITIONAL([HAVE_WINSTORE], [test "$vlc_winstore_app" = "1"])
513 dnl Buggy glibc prevention. Purposedly not cached.
514 dnl See sourceware.org bugs 5058 and 5443.
515 dnl Ubuntu alone has 20 bug numbers for this...
517 AC_MSG_CHECKING(for buggy GNU/libc versions)
518 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
520 #if defined (__GLIBC__) && (__GLIBC__ == 2) \
521 && (__GLIBC_MINOR__ >= 5) && (__GLIBC_MINOR__ <= 7)
522 # error GNU/libc with dcgettext killer bug!
525 AC_MSG_RESULT([not present])
527 AC_MSG_RESULT([found])
528 AS_IF([test "x${enable_nls}" != "xno"], [
529 AC_MSG_ERROR([Buggy GNU/libc (version 2.5 - 2.7) present. VLC would crash; there is no viable
530 work-around for this. Check with your distribution vendor on how to update the
531 glibc run-time. Alternatively, build with --disable-nls.])
535 dnl Plugin compilation stuff
539 dnl Check for system libs needed
542 dnl Check for usual libc functions
543 AC_CHECK_DECLS([nanosleep],,,[#include <time.h>])
544 AC_CHECK_FUNCS([daemon fcntl fstatvfs fork getenv getpwuid_r isatty lstat memalign mmap openat pread posix_fadvise posix_madvise setlocale stricmp strnicmp strptime uselocale])
545 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])
546 AC_CHECK_FUNCS(fdatasync,,
547 [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
550 dnl mingw64 implements those as static inline, not functions with C linkage
552 AC_LANG_PROGRAM([#include <stdio.h>], [
554 if (asprintf(&c, "%s %d", "string", 1) == -1)
556 ])],[AC_DEFINE([HAVE_ASPRINTF],[1],[Define to 1 if you have asprintf function])],[AC_LIBOBJ([asprintf])])
558 AC_LANG_PROGRAM([#include <stdio.h>
559 #include <stdarg.h>], [
562 if (vasprintf(&c, "%s %d", ap) == -1)
564 ])],[AC_DEFINE([HAVE_VASPRINTF],[1],[Define to 1 if you have asprintf function])],[AC_LIBOBJ([vasprintf])])
566 dnl C11 static_assert()
567 AC_MSG_CHECKING([for static_assert in assert.h])
568 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <assert.h>], [
569 static_assert(1, "The impossible happened.");
572 AC_DEFINE([HAVE_STATIC_ASSERT], [1], [Define to 1 if <assert.h> defines static_assert.])
577 # Windows CE does not have strcoll()
580 dnl Check for non-standard system calls
583 AC_CHECK_FUNCS([accept4 pipe2 eventfd vmsplice sched_getaffinity])
586 AC_CHECK_FUNCS([_lock_file])
590 AH_BOTTOM([#include <vlc_fixups.h>])
592 dnl Check for struct pollfd
593 AC_CHECK_TYPES([struct pollfd],,,
594 [#include <sys/types.h>
597 #elif defined (_WIN32)
598 # include <winsock2.h>
602 dnl Checks for socket stuff
605 AC_SEARCH_LIBS(connect, [socket], [
606 AS_IF([test "$ac_cv_search_connect" != "none required"], [
607 SOCKET_LIBS="$ac_cv_search_connect"
610 AS_IF([test "${SYS}" = "mingw32"], [
611 SOCKET_LIBS="-lws2_32"
615 AC_SEARCH_LIBS([inet_pton], [nsl], [
616 AS_IF([test "$ac_cv_search_getaddrinfo" != "none required"], [
617 SOCKET_LIBS="$ac_cv_search_getaddrinfo $SOCKET_LIBS"
619 ],, [${SOCKET_LIBS}])
621 LIBS="${LIBS} ${SOCKET_LIBS}"
623 AC_LANG_PROGRAM([#ifdef _WIN32
624 # if _WIN32_WINNT < 0x600
627 #include <ws2tcpip.h>
629 #include <sys/socket.h>
630 #include <arpa/inet.h>
632 char dst[[sizeof(struct in_addr)]];
633 inet_pton(AF_INET, "127.0.0.1", dst);
634 ])],[AC_DEFINE([HAVE_INET_PTON],[1],[Define to 1 if you have inet_pton function])],[AC_LIBOBJ([inet_pton])])
635 AC_CHECK_FUNCS([if_nameindex if_nametoindex])
638 AS_IF([test -n "$SOCKET_LIBS"], [
639 VLC_ADD_LIBS([access_rtmp access_output_shout sap stream_out_standard stream_out_rtp stream_out_raop vod_rtsp oldrc netsync ts remoteosd audiobargraph_a],[${SOCKET_LIBS}])
641 AC_SUBST(SOCKET_LIBS)
643 dnl Check for socklen_t
644 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
645 AC_CACHE_CHECK([for socklen_t in sys/socket.h], dnl ` (fix VIM syntax highlight
646 ac_cv_type_socklen_t,
647 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
648 [#include <sys/types.h>
650 # include <winsock2.h>
651 # include <ws2tcpip.h>
653 # include <sys/socket.h>
654 #endif]], [[socklen_t len; len = 0;]])],
655 ac_cv_type_socklen_t=yes,
656 ac_cv_type_socklen_t=no)])
657 AS_IF([test "$ac_cv_type_socklen_t" = no],
658 [AC_DEFINE(socklen_t, int)])
660 dnl Check for struct sockaddr_storage
661 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
662 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
663 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
665 [#include <sys/types.h>
666 #if defined( _WIN32 )
667 # include <winsock2.h>
669 # include <sys/socket.h>
670 #endif], [struct sockaddr_storage addr;],
671 ac_cv_struct_sockaddr_storage=yes,
672 ac_cv_struct_sockaddr_storage=no)])
673 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
674 AC_DEFINE(sockaddr_storage, sockaddr)
675 AC_DEFINE(ss_family, sa_family)
678 dnl FreeBSD has a gnugetopt library for this:
680 AC_CHECK_FUNC(getopt_long,, [
681 AC_CHECK_LIB([gnugetopt],[getopt_long], [
682 GNUGETOPT_LIBS="-lgnugetopt"
685 AC_SUBST(GNUGETOPT_LIBS)
688 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],[-lm])
695 AC_CHECK_LIB(m,lrintf, [
696 AC_DEFINE(HAVE_LRINTF, 1, [Define to 1 if you have the lrintf function])
697 VLC_ADD_LIBS([skins2],[-lm])
700 dnl Check for dynamic plugins
702 have_dynamic_objects="no"
704 AC_SEARCH_LIBS(dlopen, [dl svld], [
705 AS_IF([test "$ac_cv_search_dlopen" != "none required"], [
706 LIBDL="$ac_cv_search_dlopen"
708 have_dynamic_objects="yes"
713 AS_IF([test "${SYS}" = "mingw32"], [
715 have_dynamic_objects="yes" #assume we can use shared objects
718 AS_IF([test "${enable_shared}" = "no"], [
719 have_dynamic_objects=no
721 AM_CONDITIONAL(HAVE_DYNAMIC_PLUGINS, [test "${have_dynamic_objects}" != "no"])
725 dnl Check for thread library
727 AS_IF([test "${SYS}" != "mingw32"], [
730 AC_SEARCH_LIBS(pthread_rwlock_init, pthread pthreads c_r, [
731 AS_IF([test "$ac_cv_search_pthread_rwlock_init" != "none required"], [
732 LIBPTHREAD="$ac_cv_search_pthread_rwlock_init"
737 AC_CHECK_LIB(rt, clock_nanosleep, [
738 VLC_ADD_LIBS([libvlccore],[-lrt])
740 AC_CHECK_FUNC(nanosleep,,[
741 AC_CHECK_LIB(rt,nanosleep, [
742 VLC_ADD_LIBS([libvlccore],[-lrt])
744 AC_CHECK_LIB(posix4,nanosleep, [
745 VLC_ADD_LIBS([libvlccore],[-lposix4])
750 AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LIBS([libvlccore],[-lrt])])
755 dnl Check for headers
757 AC_CHECK_HEADERS([arpa/inet.h pthread.h search.h syslog.h sys/shm.h sys/socket.h])
758 AC_CHECK_HEADERS([net/if.h], [], [],
760 #include <sys/types.h>
761 #include <sys/socket.h>
764 AC_CHECK_HEADERS([netinet/udplite.h sys/param.h sys/mount.h])
766 AC_CHECK_HEADERS([getopt.h linux/dccp.h linux/magic.h mntent.h sys/eventfd.h])
768 AC_CHECK_HEADERS([xlocale.h])
770 dnl LP64 and LLP64 architectures had better define ssize_t by themselves...
771 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.]) dnl ` (fix VIM syntax highlight
772 AC_CHECK_TYPE(ssize_t,, [
773 AC_DEFINE(ssize_t, int)
776 dnl It seems that autoconf detects pkg-config only during the first
777 dnl PKG_CHECK_MODULES from configure.ac - which makes sense. But in our case,
778 dnl it is nested within a conditional block, so it was not working right.
779 dnl Make PKG_CONFIG_PATH precious so that it appears in the help and get saved
780 AC_ARG_VAR(PKG_CONFIG_PATH,
781 [Paths where to find .pc not at the default location])
782 PKG_PROG_PKG_CONFIG()
784 dnl On some OS we need static linking
785 AS_IF([test -n "${PKG_CONFIG}" ],[
786 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "darwin" -o "${SYS}" = "os2" ],[
787 PKG_CONFIG="${PKG_CONFIG} --static"
793 dnl Check for zlib.h and -lz along with system -lminizip if available
795 AC_CHECK_HEADERS(zlib.h, [ have_zlib=yes ], [ have_zlib=no ])
796 AM_CONDITIONAL(HAVE_ZLIB, [ test "${have_zlib}" = "yes" ])
797 if test "${have_zlib}" = "yes"
799 VLC_ADD_LIBS([skins2 sap unzip zip],[-lz])
800 PKG_CHECK_MODULES([MINIZIP], [minizip] , [ have_minizip=yes ], [
801 AC_CHECK_HEADERS([unzip.h], [
803 MINIZIP_LIBS="-lminizip -lz"
805 VLC_ADD_CPPFLAGS([skins2], [-I\\\$(top_srcdir)/modules/access/zip/unzip])
806 VLC_ADD_LIBS([skins2], [\\\$(top_builddir)/modules/libunzip.la])
810 VLC_ADD_CPPFLAGS([skins2],[$MINIZIP_CFLAGS])
811 VLC_ADD_LIBS([skins2],[$MINIZIP_LIBS])
813 AM_CONDITIONAL(HAVE_MINIZIP, [ test "${have_minizip}" = "yes" ])
817 dnl Domain name i18n support via GNU libidn
819 PKG_CHECK_MODULES([IDN], [libidn], [
821 AC_DEFINE([HAVE_IDN], 1, [Define to 1 if you have GNU libidn.])
829 [AS_HELP_STRING([--enable-dbus],
830 [compile D-Bus message bus support (default enabled)])])
832 AS_IF([test "${enable_dbus}" != "no"], [
833 PKG_CHECK_MODULES(DBUS, [dbus-1 >= 1.6.0], [
836 AS_IF([test -n "${enable_dbus}"], [
837 AC_MSG_ERROR([${DBUS_PKG_ERRORS}.])
839 AC_MSG_WARN([${DBUS_PKG_ERRORS}.])
843 AM_CONDITIONAL([HAVE_DBUS], [test "${have_dbus}" = "yes"])
845 dnl Check for ntohl, etc.
847 CFLAGS="${CFLAGS} -Wall -Werror"
848 AC_CACHE_CHECK([for ntohl in sys/param.h],
849 [ac_cv_c_ntohl_sys_param_h],
850 [ AC_TRY_COMPILE([#include <sys/param.h>],
851 [int meuh; ntohl(meuh);],
852 ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
853 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
854 AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
858 EXTEND_HELP_STRING([Optimization options:])
860 dnl Compiler warnings
863 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])
864 RDC_PROG_CC_FLAGS([-pipe])
866 RDC_PROG_CXX_WFLAGS([all extra sign-compare undef pointer-arith volatile-register-var])
873 [AS_HELP_STRING([--enable-debug],
874 [build with run-time assertions (default disabled)])],,
877 [Define to 1 if debug code should NOT be compiled])
878 AS_IF([test "${enable_debug}" != "no"], [
879 AC_CHECK_HEADERS([valgrind/valgrind.h])
888 [AS_HELP_STRING([--enable-gprof],[profile with gprof (default disabled)])],,
890 AS_IF([test "${enable_gprof}" != "no"], [
891 CFLAGS="${CFLAGS} -pg"
892 CXXFLAGS="${CXXFLAGS} -pg"
893 OBJCFLAGS="${OBJCFLAGS} -pg"
894 LDFLAGS="${LDFLAGS} -pg"
898 [AS_HELP_STRING([--enable-cprof],[profile with cprof (default disabled)])],,
900 AS_IF([test "${enable_gprof}" != "no"], [
901 CFLAGS="${CFLAGS} -finstrument-functions"
902 CXXFLAGS="${CXXFLAGS} -finstrument-functions"
903 OBJCFLAGS="${OBJCFLAGS} -finstrument-functions"
904 LDFLAGS="${LDFLAGS} -finstrument-functions"
910 AC_ARG_ENABLE(coverage,
911 [AS_HELP_STRING([--enable-coverage],
912 [build for test coverage (default disabled)])],,
913 [enable_coverage="no"])
914 AS_IF([test "${enable_coverage}" != "no"], [
915 CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
916 CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
917 LDFLAGS="-lgcov ${LDFLAGS}"
920 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "os2"], [
922 CFLAGS="${CFLAGS} -fvisibility=hidden"
923 CXXFLAGS="${CXXFLAGS} -fvisibility=hidden"
924 OBJCFLAGS="${OBJCFLAGS} -fvisibility=hidden"
925 AC_CACHE_CHECK([if $CC accepts -fvisibility=hidden],
926 [ac_cv_c_visibility_hidden], [
927 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
928 ac_cv_c_visibility_hidden=yes
930 ac_cv_c_visibility_hidden=no
933 AS_IF([test "${ac_cv_c_visibility_hidden}" = "no"], [VLC_RESTORE_FLAGS])
938 dnl Enable/disable optimizations
940 AC_ARG_ENABLE(optimizations,
941 [AS_HELP_STRING([--disable-optimizations],
942 [disable compiler optimizations (default enabled)])],,
943 [enable_optimizations="yes"])
945 dnl Check for various optimization flags
946 AS_IF([test "${enable_optimizations}" != "no"], [
948 dnl -O4 and -O3 only in production builds
949 AS_IF([test "${enable_debug}" = "no"], [
951 CFLAGS="${CFLAGS} -O4"
952 CXXFLAGS="${CXXFLAGS} -O4"
953 OBJCFLAGS="${OBJCFLAGS} -O4"
954 AC_CACHE_CHECK([if $CC accepts -O4], [ac_cv_c_o4], [
955 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
961 AS_IF([test "${ac_cv_c_o4}" = "no"], [
963 CFLAGS="${CFLAGS} -O3"
964 CXXFLAGS="${CXXFLAGS} -O3"
965 OBJCFLAGS="${OBJCFLAGS} -O3"
966 AC_CACHE_CHECK([if $CC accepts -O3], [ac_cv_c_o3], [
967 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
973 AS_IF([test "${ac_cv_c_o3}" = "no"], [VLC_RESTORE_FLAGS])
977 dnl Check for -ffast-math
979 CFLAGS="${CFLAGS} -ffast-math"
980 CXXFLAGS="${CXXFLAGS} -ffast-math"
981 OBJCFLAGS="${OBJCFLAGS} -ffast-math"
982 AC_CACHE_CHECK([if $CC accepts -ffast-math], [ac_cv_c_fast_math], [
983 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
984 ac_cv_c_fast_math=yes
989 AS_IF([test "${ac_cv_c_fast_math}" = "no"], [VLC_RESTORE_FLAGS])
991 #ifndef __FAST_MATH__
992 # pragma STDC FENV_ACCESS OFF
993 # pragma STDC FP_CONTRACT ON
997 dnl Check for -funroll-loops
999 CFLAGS="${CFLAGS} -funroll-loops"
1000 CXXFLAGS="${CXXFLAGS} -funroll-loops"
1001 OBJCFLAGS="${OBJCFLAGS} -funroll-loops"
1002 AC_CACHE_CHECK([if $CC accepts -funroll-loops], [ac_cv_c_unroll_loops], [
1003 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1004 ac_cv_c_unroll_loops=yes
1006 ac_cv_c_unroll_loops=no
1009 AS_IF([test "${ac_cv_c_unroll_loops}" = "no"], [VLC_RESTORE_FLAGS])
1011 AS_IF([test "$enable_debug" = "no"], [
1012 dnl Check for -fomit-frame-pointer
1014 CFLAGS="${CFLAGS} -fomit-frame-pointer"
1015 CXXFLAGS="${CXXFLAGS} -fomit-frame-pointer"
1016 OBJCFLAGS="${OBJCFLAGS} -fomit-frame-pointer"
1017 AC_CACHE_CHECK([if $CC accepts -fomit-frame-pointer],
1018 [ac_cv_c_omit_frame_pointer], [
1019 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1020 ac_cv_c_omit_frame_pointer=yes
1022 ac_cv_c_omit_frame_pointer=no
1025 AS_IF([test "${ac_cv_c_omit_frame_pointer}" = "no"], [VLC_RESTORE_FLAGS])
1030 LDFLAGS="${LDFLAGS} -Wl,-Bsymbolic"
1031 AC_CACHE_CHECK([if linker supports -Bsymbolic], [ac_cv_ld_bsymbolic], [
1033 ac_cv_ld_bsymbolic="-Wl,-Bsymbolic"
1035 ac_cv_ld_bsymbolic=""
1039 SYMBOLIC_LDFLAGS="${ac_cv_ld_bsymbolic}"
1040 AC_SUBST(SYMBOLIC_LDFLAGS)
1042 dnl Checks for __attribute__(aligned()) directive
1044 CFLAGS="${CFLAGS} -Werror"
1045 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1046 [ac_cv_c_attribute_aligned],
1047 [ac_cv_c_attribute_aligned=0
1048 for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1050 [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1051 [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1054 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1055 AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1056 [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1059 dnl Check for __attribute__((packed))
1060 AC_CACHE_CHECK([for __attribute__((packed))],
1061 [ac_cv_c_attribute_packed],
1062 [ac_cv_c_attribute_packed=no
1063 AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b; (void)b;],
1064 [ac_cv_c_attribute_packed=yes])])
1065 if test "${ac_cv_c_attribute_packed}" != "no"; then
1066 AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1072 case "${host_cpu}" in
1081 dnl Check for backtrace() support
1082 AC_CHECK_HEADERS(execinfo.h)
1083 AC_CHECK_FUNCS(backtrace)
1088 ALIASES="${ALIASES} cvlc rvlc"
1091 dnl Accelerated modules
1094 dnl Check for fully working MMX intrinsics
1095 dnl We need support for -mmmx, we need <mmintrin.h>, and we also need a
1096 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1098 [AS_HELP_STRING([--disable-mmx],
1099 [disable MMX optimizations (default auto)])],,[
1100 case "${host_cpu}" in
1111 AS_IF([test "${enable_mmx}" != "no"], [
1114 CFLAGS="${CFLAGS} -mmmx"
1115 AC_CACHE_CHECK([if $CC groks MMX intrinsics], [ac_cv_c_mmx_intrinsics], [
1116 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1117 [#include <mmintrin.h>
1119 uint64_t frobzor;]], [
1121 a = b = c = (__m64)frobzor;
1122 a = _mm_slli_pi16(a, 3);
1123 a = _mm_adds_pi16(a, b);
1124 c = _mm_srli_pi16(c, 8);
1125 c = _mm_slli_pi16(c, 3);
1126 b = _mm_adds_pi16(b, c);
1127 a = _mm_unpacklo_pi8(a, b);
1128 frobzor = (uint64_t)a;]])], [
1129 ac_cv_c_mmx_intrinsics=yes
1131 ac_cv_c_mmx_intrinsics=no
1135 AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1136 AC_DEFINE(HAVE_MMX_INTRINSICS, 1, [Define to 1 if MMX intrinsics are available.])
1140 CFLAGS="${CFLAGS} -mmmx"
1141 AC_CACHE_CHECK([if $CC groks MMX inline assembly], [ac_cv_mmx_inline], [
1142 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1144 asm volatile("packuswb %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1147 ac_cv_mmx_inline=yes
1152 AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1153 AC_DEFINE(CAN_COMPILE_MMX, 1, [Define to 1 inline MMX assembly is available.])
1157 AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1158 [ac_cv_mmxext_inline], [
1159 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1161 asm volatile("maskmovq %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1164 ac_cv_mmxext_inline=yes
1166 ac_cv_mmxext_inline=no
1170 AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1171 AC_DEFINE(CAN_COMPILE_MMXEXT, 1, [Define to 1 if MMX EXT inline assembly is available.])
1175 AM_CONDITIONAL([HAVE_MMX], [test "${have_mmx}" = "yes"])
1176 AM_CONDITIONAL([HAVE_MMXEXT], [test "${have_mmxext}" = "yes"])
1178 dnl Check for fully workin SSE2 intrinsics
1179 dnl We need support for -mmmx, we need <emmintrin.h>, and we also need a
1180 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1182 [AS_HELP_STRING([--disable-sse],
1183 [disable SSE (1-4) optimizations (default auto)])],, [
1184 case "${host_cpu}" in
1194 AS_IF([test "${enable_sse}" != "no"], [
1195 ARCH="${ARCH} sse sse2"
1198 CFLAGS="${CFLAGS} -msse2"
1199 AC_CACHE_CHECK([if $CC groks SSE2 intrinsics], [ac_cv_c_sse2_intrinsics], [
1200 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1201 [#include <emmintrin.h>
1203 uint64_t frobzor;]], [
1205 a = b = c = _mm_set1_epi64((__m64)frobzor);
1206 a = _mm_slli_epi16(a, 3);
1207 a = _mm_adds_epi16(a, b);
1208 c = _mm_srli_epi16(c, 8);
1209 c = _mm_slli_epi16(c, 3);
1210 b = _mm_adds_epi16(b, c);
1211 a = _mm_unpacklo_epi8(a, b);
1212 frobzor = (uint64_t)_mm_movepi64_pi64(a);]])], [
1213 ac_cv_c_sse2_intrinsics=yes
1215 ac_cv_c_sse2_intrinsics=no
1219 AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1220 AC_DEFINE(HAVE_SSE2_INTRINSICS, 1, [Define to 1 if SSE2 intrinsics are available.])
1224 CFLAGS="${CFLAGS} -msse"
1225 AC_CACHE_CHECK([if $CC groks SSE inline assembly], [ac_cv_sse_inline], [
1226 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1228 asm volatile("xorps %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1231 ac_cv_sse_inline=yes
1237 AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1238 AC_DEFINE(CAN_COMPILE_SSE, 1, [Define to 1 if SSE inline assembly is available.])
1241 AC_CACHE_CHECK([if $CC groks SSE2 inline assembly], [ac_cv_sse2_inline], [
1242 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1244 asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1247 ac_cv_sse2_inline=yes
1249 ac_cv_sse2_inline=no
1252 AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1253 AC_DEFINE(CAN_COMPILE_SSE2, 1, [Define to 1 if SSE2 inline assembly is available.])
1258 AC_CACHE_CHECK([if $CC groks SSE3 inline assembly], [ac_cv_sse3_inline], [
1259 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1261 asm volatile("movsldup %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1264 ac_cv_sse3_inline=yes
1266 ac_cv_sse3_inline=no
1270 AS_IF([test "${ac_cv_sse3_inline}" != "no"], [
1271 AC_DEFINE(CAN_COMPILE_SSE3, 1, [Define to 1 if SSE3 inline assembly is available.]) ])
1273 AC_CACHE_CHECK([if $CC groks SSSE3 inline assembly], [ac_cv_ssse3_inline], [
1274 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1276 asm volatile("pabsw %%xmm0,%%xmm0"::"r"(p):"xmm0");
1279 ac_cv_ssse3_inline=yes
1281 ac_cv_ssse3_inline=no
1285 AS_IF([test "${ac_cv_ssse3_inline}" != "no"], [
1286 AC_DEFINE(CAN_COMPILE_SSSE3, 1, [Define to 1 if SSSE3 inline assembly is available.]) ])
1289 AC_CACHE_CHECK([if $CC groks SSE4.1 inline assembly],
1290 [ac_cv_sse4_1_inline], [
1291 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1293 asm volatile("pmaxsb %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1296 ac_cv_sse4_1_inline=yes
1298 ac_cv_sse4_1_inline=no
1302 AS_IF([test "${ac_cv_sse4_1_inline}" != "no"], [
1303 AC_DEFINE(CAN_COMPILE_SSE4_1, 1, [Define to 1 if SSE4_1 inline assembly is available.]) ])
1306 AC_CACHE_CHECK([if $CC groks SSE4.2 inline assembly],
1307 [ac_cv_sse4_2_inline], [
1308 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1310 asm volatile("pcmpgtq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1313 ac_cv_sse4_2_inline=yes
1315 ac_cv_sse4_2_inline=no
1319 AS_IF([test "${ac_cv_sse4_2_inline}" != "no"], [
1320 AC_DEFINE(CAN_COMPILE_SSE4_2, 1, [Define to 1 if SSE4_2 inline assembly is available.]) ])
1323 AC_CACHE_CHECK([if $CC groks SSE4A inline assembly], [ac_cv_sse4a_inline], [
1324 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1326 asm volatile("insertq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1329 ac_cv_sse4a_inline=yes
1331 ac_cv_sse4a_inline=no
1335 AS_IF([test "${ac_cv_sse4a_inline}" != "no"], [
1336 AC_DEFINE(CAN_COMPILE_SSE4A, 1, [Define to 1 if SSE4A inline assembly is available.]) ])
1338 AM_CONDITIONAL([HAVE_SSE2], [test "$have_sse2" = "yes"])
1341 CFLAGS="${CFLAGS} -mmmx"
1343 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly], [ac_cv_3dnow_inline], [
1344 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1346 asm volatile("pfadd %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1349 ac_cv_3dnow_inline=yes
1351 ac_cv_3dnow_inline=no
1355 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1356 AC_DEFINE(CAN_COMPILE_3DNOW, 1,
1357 [Define to 1 if 3D Now! inline assembly is available.])
1360 AM_CONDITIONAL([HAVE_3DNOW], [test "$have_3dnow" = "yes"])
1364 [AS_HELP_STRING([--disable-neon],
1365 [disable NEON optimizations (default auto)])],, [
1366 AS_IF([test "${host_cpu}" = "arm"], [enable_neon="yes"] ,[enable_neon="no"])
1368 AS_IF([test "${enable_neon}" != "no"], [
1370 CFLAGS="${CFLAGS} -mfpu=neon -mhard-float"
1371 AC_CACHE_CHECK([if $CCAS groks ARM NEON assembly], [ac_cv_arm_neon], [
1374 asm volatile("vqmovun.s64 d0, q1":::"d0");
1377 ac_cv_arm_neon="yes"
1384 AM_CONDITIONAL(HAVE_NEON, [test "${ac_cv_arm_neon}" = "yes"])
1387 AC_ARG_ENABLE(altivec,
1388 [AS_HELP_STRING([--disable-altivec],
1389 [disable AltiVec optimizations (default auto)])],, [
1390 AS_CASE("${host_cpu}", [powerpc*],
1391 [enable_altivec=yes], [enable_altivec=no])
1395 AS_IF([test "${enable_altivec}" = "yes"], [
1396 ARCH="${ARCH} altivec";
1398 AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1399 [ac_cv_altivec_inline],
1400 [AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1401 ac_cv_altivec_inline="yes",
1402 [CFLAGS="${CFLAGS} -Wa,-maltivec"
1403 AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1404 [ac_cv_altivec_inline="-Wa,-maltivec"],
1405 ac_cv_altivec_inline=no)
1408 AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1409 AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1410 [Define to 1 if AltiVec inline assembly is available.])
1411 AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1412 ALTIVEC_CFLAGS="${ac_cv_altivec_inline}"
1413 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_altivec_inline}])
1419 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1420 [ac_cv_c_altivec], [
1421 CFLAGS="${CFLAGS} -maltivec"
1422 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1423 [#include <altivec.h>]], [
1424 [vec_ld(0, (unsigned char *)0);]])], [
1425 ac_cv_c_altivec="-maltivec"
1427 ac_cv_c_altivec="no"
1431 AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1432 CPPFLAGS="${CPPFLAGS} ${ac_cv_c_altivec}"
1433 AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, [Define to 1 if C AltiVec extensions are available.])
1434 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_c_altivec}])
1435 ALTIVEC_CFLAGS="$ALTIVEC_FLAGS ${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}"
1436 VLC_ADD_CFLAGS([deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1439 AC_CHECK_HEADERS(altivec.h)
1442 LDFLAGS="${LDFLAGS} -Wl,-framework,vecLib"
1443 AC_CACHE_CHECK([if linker needs -framework vecLib],
1445 [AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)])
1447 AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1448 VLC_ADD_LIBS([libvlccore],[-Wl,-framework,vecLib])
1451 AC_SUBST(ALTIVEC_CFLAGS)
1452 AM_CONDITIONAL([HAVE_ALTIVEC], [test "$have_altivec" = "yes"])
1457 AC_ARG_ENABLE(optimize-memory,
1458 [AS_HELP_STRING([--enable-optimize-memory],
1459 [optimize memory usage over performance])])
1460 if test "${enable_optimize_memory}" = "yes"; then
1461 AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1465 dnl Allow running as root (useful for people running on embedded platforms)
1467 AC_ARG_ENABLE(run-as-root,
1468 [AS_HELP_STRING([--enable-run-as-root],
1469 [allow running VLC as root (default disabled)])])
1470 AS_IF([test "${enable_run_as_root}" = "yes"],[
1471 AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1472 [Define to 1 to allow running VLC as root (uid 0).])
1479 [AS_HELP_STRING([--disable-sout],
1480 [disable streaming output (default enabled)])])
1481 AS_IF([test "${enable_sout}" != "no"], [
1482 AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1484 AM_CONDITIONAL(ENABLE_SOUT, [test "${enable_sout}" != "no"])
1488 [AS_HELP_STRING([--disable-lua],
1489 [disable LUA scripting support (default enabled)])])
1490 if test "${enable_lua}" != "no"
1492 PKG_CHECK_MODULES(LUA, lua5.2,
1495 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua 5.1 instead])
1497 PKG_CHECK_MODULES(LUA, lua5.1,
1500 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua >= 5.1 instead])
1501 PKG_CHECK_MODULES(LUA, lua >= 5.1,
1504 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying manual detection instead])
1506 AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1509 AC_CHECK_LIB( lua5.2 , luaL_newstate,
1510 [LUA_LIBS="-llua5.2"],
1511 AC_CHECK_LIB( lua5.1 , luaL_newstate,
1512 [LUA_LIBS="-llua5.1"],
1513 AC_CHECK_LIB( lua51 , luaL_newstate,
1514 [LUA_LIBS="-llua51"],
1515 AC_CHECK_LIB( lua , luaL_newstate,
1523 if test "x${have_lua}" != "xyes" ; then
1524 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.])
1526 AC_ARG_VAR([LUAC], [LUA byte compiler])
1527 AC_PATH_PROGS(LUAC,[${LUAC} luac], [false])
1528 AS_IF([test "${LUAC}" = "false"], [
1529 AC_MSG_ERROR([Could not find the LUA byte compiler.])
1531 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], [
1532 AC_MSG_ERROR([You need 32-bits luac when using using lua from contrib.])
1535 AM_CONDITIONAL(BUILD_LUA, [test "${have_lua}" = "yes"])
1541 AC_ARG_ENABLE(httpd,
1542 [AS_HELP_STRING([--disable-httpd],
1543 [disable the built-in HTTP server (default enabled)])])
1544 if test "${enable_httpd}" != "no"
1546 AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP daemon support)
1548 AM_CONDITIONAL(BUILD_HTTPD, [test "${enable_httpd}" != "no"])
1552 dnl VideoLAN manager
1555 [AS_HELP_STRING([--disable-vlm],
1556 [disable the stream manager (default enabled)])],,
1557 [enable_vlm="${enable_sout}"])
1558 AS_IF([test "${enable_vlm}" != "no"], [
1559 AS_IF([test "${enable_sout}" = "no"], [
1560 AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1562 AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1564 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1568 dnl Addons manager storage and repositories modules
1570 AC_ARG_ENABLE(addonmanagermodules,
1571 [AS_HELP_STRING([--disable-addonmanagermodules],
1572 [disable the addons manager modules (default enabled)])])
1573 if test "${enable_addonmanagermodules}" != "no"
1575 AC_DEFINE(ENABLE_ADDONMANAGERMODULES, 1, [Define if you want the addons manager modules])
1577 AM_CONDITIONAL([ENABLE_ADDONMANAGERMODULES], [test "${enable_addonmanagermodules}" != "no"])
1584 EXTEND_HELP_STRING([Input plugins:])
1587 dnl libarchive access module
1589 PKG_ENABLE_MODULES_VLC([ARCHIVE], [access_archive], [libarchive >= 2.8.5], (libarchive support), [auto])
1594 AC_ARG_ENABLE(live555,
1595 [AS_HELP_STRING([--enable-live555],
1596 [enable RTSP input through live555 (default enabled)])])
1598 AS_IF([test "${enable_live555}" != "no" -a -n "${CXX}"], [
1599 PKG_CHECK_MODULES(LIVE555, live555, [
1600 VLC_ADD_PLUGIN([live555])
1601 VLC_ADD_CXXFLAGS([live555], [$LIVE555_CFLAGS])
1602 VLC_ADD_LIBS([live555],[$LIVE555_LIBS])
1604 AC_MSG_WARN([${LIVE555_PKG_ERRORS}.])
1609 dnl detect include paths
1610 AS_IF([test -f "${CONTRIB_DIR}/include/UsageEnvironment.hh"], [
1611 CPPFLAGS_live555="-I${CONTRIB_DIR}/include/liveMedia -I${CONTRIB_DIR}/include/groupsock -I${CONTRIB_DIR}/include/BasicUsageEnvironment -I${CONTRIB_DIR}/include/UsageEnvironment"
1613 AS_IF([test "${SYS}" != "os2"], [
1614 LIVE555_PREFIX=${LIVE555_PREFIX-"/usr"}
1615 CPPFLAGS_live555="-I${LIVE555_PREFIX}/include/liveMedia -I${LIVE555_PREFIX}/include/groupsock -I${LIVE555_PREFIX}/include/BasicUsageEnvironment -I${LIVE555_PREFIX}/include/UsageEnvironment"
1617 LIVE555_PREFIX=${LIVE555_PREFIX-"/usr/lib/live"}
1618 CPPFLAGS_live555="-I${LIVE555_PREFIX}/liveMedia/include -I${LIVE555_PREFIX}/groupsock/include -I${LIVE555_PREFIX}/BasicUsageEnvironment/include -I${LIVE555_PREFIX}/UsageEnvironment/include"
1619 LDFLAGS_live555="-L${LIVE555_PREFIX}/liveMedia -L${LIVE555_PREFIX}/groupsock -L${LIVE555_PREFIX}/BasicUsageEnvironment -L${LIVE555_PREFIX}/UsageEnvironment"
1624 AS_IF([test "${SYS}" = "solaris"], [
1625 CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1627 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1628 LDFLAGS="${LDFLAGS} ${LDFLAGS_live555}"
1631 AC_CACHE_CHECK([for live555 version 1324598400 or later], [ac_cv_live555], [
1632 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
1633 [#include <liveMedia_version.hh>
1634 #if !defined (LIVEMEDIA_LIBRARY_VERSION_INT) || (LIVEMEDIA_LIBRARY_VERSION_INT < 1324598400)
1644 AS_IF([test "$ac_cv_live555" = "no"], [
1645 AC_MSG_WARN([live555 is missing or its installed version is too old:
1646 Version 2011.12.23 or later is required to proceed.
1647 You can get an updated one from http://www.live555.com/liveMedia .])
1648 AS_IF([test -n "${enable_live555}"], [
1649 AC_MSG_ERROR([Update live555 or pass --disable-live555 to disable RTSP input support.])
1652 other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1653 other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
1654 AS_IF([test "${SYS}" = "mingw32"], [
1655 # add ws2_32 for closesocket, select, recv
1656 other_libs="$other_libs -lws2_32"
1659 dnl We need to check for pic because live555 don't provide shared libs
1660 dnl and we want to build a plugins so we need -fPIC on some arch.
1661 VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1662 VLC_ADD_LDFLAGS([live555], [${LDFLAGS_live555}])
1663 AC_CHECK_LIB(liveMedia_pic, main, [
1664 VLC_ADD_PLUGIN([live555])
1665 VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
1667 AC_CHECK_LIB(liveMedia, main, [
1668 VLC_ADD_PLUGIN([live555])
1669 VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1670 ],[],[${other_libs}])
1671 ],[${other_libs_pic}])
1679 dnl IIDC and DV FireWire input modules
1681 PKG_ENABLE_MODULES_VLC([DC1394], [], [libdc1394-2 >= 2.1.0], [IIDC FireWire input module], [auto])
1682 PKG_ENABLE_MODULES_VLC([DV1394], [], [libraw1394 >= 2.0.1 libavc1394 >= 0.5.3], [DV FireWire input module], [auto])
1685 dnl - linsys modules: access module check for libzvbi
1687 AC_ARG_ENABLE(linsys,
1688 [AS_HELP_STRING([--enable-linsys],
1689 [Linux Linear Systems Ltd. SDI and HD-SDI input cards (default enabled)])])
1690 AS_IF([test "$SYS" = "linux" -a "${enable_linsys}" != "no"], [
1691 VLC_ADD_PLUGIN([linsys_hdsdi])
1692 PKG_CHECK_MODULES(LINSYS_SDI, [zvbi-0.2 >= 0.2.28], [
1693 VLC_ADD_PLUGIN([linsys_sdi])
1695 AC_MSG_WARN([${LINSYS_SDI_PKG_ERRORS}.])
1700 dnl dvdread module: check for libdvdread
1702 PKG_ENABLE_MODULES_VLC([DVDREAD], [], [dvdread > 4.9.0], [dvdread input module], [auto])
1705 dnl libdvdnav plugin
1707 PKG_ENABLE_MODULES_VLC([DVDNAV], [], [dvdnav > 4.9.0], [DVD with navigation input module (dvdnav)], [auto])
1710 dnl Blu-ray Disc Support with libbluray
1712 PKG_ENABLE_MODULES_VLC([BLURAY], [libbluray], [libbluray >= 0.3.0], (libbluray for Blu-ray disc support ) )
1715 dnl OpenCV wrapper and example filters
1717 PKG_ENABLE_MODULES_VLC([OPENCV], [opencv_example opencv_wrapper], [opencv > 2.0], (OpenCV (computer vision) filter), [auto])
1721 dnl libsmbclient plugin
1723 PKG_ENABLE_MODULES_VLC([SMBCLIENT], [smb], [smbclient], (SMB/CIFS support), [auto])
1724 AS_IF([test "${SYS}" = "mingw32"], [ VLC_ADD_PLUGIN([access_smb]) ])
1727 dnl liBDSM access module
1729 PKG_ENABLE_MODULES_VLC([DSM], [dsm], [libdsm], [libdsm SMB/CIFS access/sd module], [auto])
1732 dnl sftp access support
1734 PKG_ENABLE_MODULES_VLC([SFTP], [access_sftp], [libssh2], (support SFTP file transfer via libssh2), [auto])
1739 AC_ARG_ENABLE(v4l2, [AS_HELP_STRING([--disable-v4l2],
1740 [disable Video4Linux version 2 (default auto)])])
1742 AS_IF([test "$enable_v4l2" != "no"], [
1743 AC_CHECK_HEADERS([linux/videodev2.h sys/videoio.h], [
1747 AM_CONDITIONAL(HAVE_V4L2, [test "${have_v4l2}" != "no"])
1750 dnl special access module for Blackmagic SDI cards
1752 AC_ARG_ENABLE(decklink,
1753 [AS_HELP_STRING([--disable-decklink],
1754 [disable Blackmagic DeckLink SDI input (default auto)])])
1755 AC_ARG_WITH(decklink_sdk,
1756 [AS_HELP_STRING[--with-decklink-sdk=DIR],
1757 [ location of Blackmagic DeckLink SDI SDK])])
1759 if test "${enable_decklink}" != "no"
1761 if test "${with_decklink_sdk}" != "no" -a -n "${with_decklink_sdk}"
1763 VLC_ADD_CPPFLAGS([decklink decklinkoutput],[-I${with_decklink_sdk}/include])
1766 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_decklink}"
1768 AC_CHECK_HEADERS(DeckLinkAPIDispatch.cpp, [
1771 AC_MSG_WARN(Blackmagic DeckLink SDI include files not found, decklink disabled)
1776 AM_CONDITIONAL(HAVE_DECKLINK, [ test "${have_decklink}" != "no" ])
1780 dnl gnomeVFS access module
1782 PKG_ENABLE_MODULES_VLC([GNOMEVFS], [gnomevfs], [gnome-vfs-2.0], [GnomeVFS access module], [auto])
1787 PKG_ENABLE_MODULES_VLC([VCDX], [vcdx], [libcdio >= 0.78.2 libiso9660 >= 0.72 libvcdinfo >= 0.7.22], [navigate VCD with libvcdinfo], [no])
1790 dnl Built-in CD-DA and VCD module
1793 [AS_HELP_STRING([--disable-vcd],
1794 [disable built-in VCD and CD-DA support (default enabled)])])
1796 AC_ARG_ENABLE(libcddb,
1797 [AS_HELP_STRING([--disable-libcddb],
1798 [disable CDDB for Audio CD (default enabled)])])
1800 if test "${enable_vcd}" != "no"
1802 AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
1803 AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
1805 VLC_ADD_PLUGIN([vcd cdda])
1810 AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
1811 AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
1813 VLC_ADD_PLUGIN([vcd cdda])
1814 AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
1819 AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
1820 AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
1822 VLC_ADD_PLUGIN([vcd cdda])
1823 AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
1828 if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32" -o "${SYS}" = "os2" -o "${SYS}" = "darwin"
1830 VLC_ADD_PLUGIN([vcd cdda])
1833 if test "$enable_libcddb" != "no"; then
1834 PKG_CHECK_MODULES(LIBCDDB, [libcddb >= 0.9.5], [
1836 AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
1837 VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
1838 VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
1840 [AC_MSG_WARN([${LIBCDDB_PKG_ERRORS}: CDDB access disabled.])
1848 AC_CACHE_CHECK([for Linux DVB version 5.1], [ac_cv_linux_dvb_5_1], [
1849 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
1850 [#include <linux/dvb/version.h>
1851 #if (DVB_API_VERSION < 5)
1852 # error Linux DVB API v3.2 and older are not supported.
1854 #if (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR < 1)
1855 # error Linux DVB API v5.0 is unsupported. Please update.
1858 ac_cv_linux_dvb_5_1=yes
1860 ac_cv_linux_dvb_5_1=no
1862 AM_CONDITIONAL([HAVE_LINUX_DVB], [test "$ac_cv_linux_dvb_5_1" = "yes"])
1865 dnl Screen capture module
1867 AC_ARG_ENABLE(screen,
1868 [AS_HELP_STRING([--enable-screen],
1869 [disable screen capture (default enabled)])])
1870 if test "${enable_screen}" != "no"; then
1871 if test "${SYS}" = "darwin"; then
1872 AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
1873 VLC_ADD_PLUGIN([screen])
1877 AM_CONDITIONAL(HAVE_MAC_SCREEN, [test "${SYS}" = "darwin" -a "x${enable_screen}" != "xno"])
1880 dnl VNC/RFB access module
1882 PKG_ENABLE_MODULES_VLC([VNC], [vnc], [libvncclient >= 0.9.9], (VNC/rfb client support), [auto])
1884 dnl RDP/Remote Desktop access module
1886 PKG_ENABLE_MODULES_VLC([FREERDP], [rdp], [freerdp >= 1.0.1], (RDP/Remote Desktop client support) )
1889 dnl Real RTSP plugin
1891 AC_ARG_ENABLE(realrtsp,
1892 [ --enable-realrtsp Real RTSP module (default disabled)])
1893 if test "${enable_realrtsp}" = "yes"; then
1894 VLC_ADD_PLUGIN([access_realrtsp])
1899 AC_ARG_ENABLE(macosx-eyetv,
1900 [ --enable-macosx-eyetv Mac OS X EyeTV (TNT Tuner) module (default enabled on Mac OS X)])
1901 if test "x${enable_macosx_eyetv}" != "xno" &&
1902 (test "${SYS}" = "darwin" || test "${enable_macosx_eyetv}" = "yes")
1904 VLC_ADD_PLUGIN([access_eyetv])
1909 AC_ARG_ENABLE(macosx-qtkit,
1910 [ --enable-macosx-qtkit Mac OS X qtcapture (video) and qtsound (audio) module (default enabled on Mac OS X)])
1911 if test "x${enable_macosx_qtkit}" != "xno" &&
1912 (test "${SYS}" = "darwin" || test "${enable_macosx_qtkit}" = "yes")
1914 VLC_ADD_PLUGIN([qtcapture])
1915 VLC_ADD_PLUGIN([qtsound])
1917 AM_CONDITIONAL(HAVE_QTKIT, [test "${SYS}" = "darwin" -a "x${enable_macosx_qtkit}" != "xno"])
1921 AC_SUBST(have_avfoundation, ["no"])
1922 AC_ARG_ENABLE(macosx-avfoundation,
1923 [ --enable-macosx-avfoundation Mac OS X avcapture (video) module (default enabled on Mac OS X)])
1924 if test "x${enable_macosx_avfoundation}" != "xno" &&
1925 (test "${SYS}" = "darwin" || test "${enable_macosx_avfoundation}" = "yes")
1927 SAVED_LIBS="${LIBS}"
1928 LIBS="-framework AVFoundation"
1929 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [])],[have_avfoundation=yes],[have_avfoundation=no])
1930 LIBS="${SAVED_LIBS}"
1931 if test "${have_avfoundation}" != "no"
1933 VLC_ADD_PLUGIN([avcapture])
1936 AM_CONDITIONAL(HAVE_AVFOUNDATION, [test "${have_avfoundation}" != "no"])
1939 dnl DCP plugin (using asdcplib)
1941 PKG_WITH_MODULES([ASDCP], [asdcplib], [have_asdcp="yes"])
1942 AM_CONDITIONAL(HAVE_ASDCP, [test "${have_asdcp}" = "yes"])
1948 EXTEND_HELP_STRING([Mux/Demux plugins:])
1951 dnl libdvbpsi check for ts mux/demux
1954 PKG_WITH_MODULES([DVBPSI], [libdvbpsi], [have_dvbpsi="yes"])
1955 AM_CONDITIONAL(HAVE_DVBPSI, [test "${have_dvbpsi}" = "yes"])
1959 dnl GME demux plugin
1962 [AS_HELP_STRING([--enable-gme],
1963 [use Game Music Emu (default auto)])])
1964 AS_IF([test "${enable_gme}" != "no"], [
1965 AC_CHECK_HEADER([gme/gme.h], [
1966 VLC_ADD_LIBS([gme], [-lgme])
1967 VLC_ADD_PLUGIN([gme])
1969 AS_IF([test "x${enable_gme}" != "x"], [
1970 AC_MSG_ERROR([GME cannot be found. Please install the development files.])
1980 [AS_HELP_STRING([--enable-sid],[C64 sid demux support (default auto)])])
1981 AS_IF([test "${enable_sid}" != "no"], [
1982 PKG_CHECK_MODULES(SID, [libsidplay2], [
1984 oldCPPFLAGS="$CPPFLAGS"
1985 CPPFLAGS="$CPPFLAGS $SID_CFLAGS"
1986 AC_CHECK_HEADER([sidplay/builders/resid.h], [
1987 VLC_ADD_PLUGIN([sid])
1988 VLC_ADD_CFLAGS([sid], [$SID_CFLAGS])
1989 VLC_ADD_LIBS([sid], [$SID_LIBS] [-lresid-builder])
1991 AS_IF([test -n "${enable_sid}"],
1992 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
1993 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
1996 CPPFLAGS="$oldCPPFLAGS"
1999 AS_IF([test "x${enable_sid}" = "xyes"],
2000 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2001 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2008 dnl ogg demux plugin
2010 PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto])
2011 PKG_CHECK_MODULES(LIBVORBIS, [vorbis >= 1.1], [
2012 AC_DEFINE(HAVE_LIBVORBIS, 1, [Define to 1 if you have the libvorbis])
2014 PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto], [${LIBVORBIS_CFLAGS}], [${LIBVORBIS_LIBS}])
2015 if test "${enable_sout}" != "no"; then
2016 PKG_ENABLE_MODULES_VLC([MUX_OGG], [], [ogg >= 1.0], [Ogg mux support], [auto])
2017 dnl Check for libshout
2018 PKG_ENABLE_MODULES_VLC([SHOUT], [access_output_shout], [shout >= 2.1], [libshout output plugin], [auto])
2022 dnl matroska demux plugin
2025 [AS_HELP_STRING([--disable-mkv],
2026 [do not use libmatroska (default auto)])])
2027 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2029 AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2030 AC_MSG_CHECKING(for libebml version >= 1.0.0)
2032 [#include <ebml/EbmlVersion.h>
2033 #ifdef LIBEBML_VERSION
2034 #if LIBEBML_VERSION >= 0x010000
2038 [AC_MSG_RESULT([yes])
2039 AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2040 AC_MSG_CHECKING(for libmatroska version >= 1.0.0)
2042 [#include <matroska/KaxVersion.h>
2043 #ifdef LIBMATROSKA_VERSION
2044 #if LIBMATROSKA_VERSION >= 0x010000
2048 [AC_MSG_RESULT([yes])
2049 AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2050 AC_CHECK_LIB(ebml_pic, main, [
2051 VLC_ADD_PLUGIN([mkv])
2052 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2054 AC_CHECK_LIB(ebml, main, [
2055 VLC_ADD_PLUGIN([mkv])
2056 VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2061 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.])
2065 [AC_MSG_RESULT([no])
2066 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.])
2073 dnl modplug demux plugin
2076 [AS_HELP_STRING([--disable-mod],
2077 [do not use libmodplug (default auto)])])
2078 if test "${enable_mod}" != "no" ; then
2079 PKG_CHECK_MODULES(LIBMODPLUG, [libmodplug >= 0.8.4 libmodplug != 0.8.8], [
2080 VLC_ADD_PLUGIN([mod])
2081 VLC_ADD_CXXFLAGS([mod],[$LIBMODPLUG_CFLAGS])
2082 VLC_ADD_CFLAGS([mod],[$LIBMODPLUG_CFLAGS]) #modules/demux/mod.c needs CFLAGS_mod, not CXXFLAGS_mod
2083 VLC_ADD_LIBS([mod],[$LIBMODPLUG_LIBS])
2085 AS_IF([test -n "${enable_mod}"],
2086 [AC_MSG_ERROR([${LIBMODPLUG_PKG_ERRORS}.])],
2087 [AC_MSG_WARN([${LIBMODPLUG_PKG_ERRORS}.])])
2092 dnl mpc demux plugin
2095 [AS_HELP_STRING([--disable-mpc], [do not use libmpcdec (default auto)])])
2096 if test "${enable_mpc}" != "no"
2098 AC_CHECK_HEADERS([mpc/mpcdec.h], [
2099 VLC_ADD_PLUGIN([mpc])
2100 VLC_ADD_LIBS([mpc],[-lmpcdec])],
2101 [AC_CHECK_HEADERS([mpcdec/mpcdec.h], [
2102 VLC_ADD_PLUGIN([mpc])
2103 VLC_ADD_LIBS([mpc],[-lmpcdec])])])
2110 EXTEND_HELP_STRING([Codec plugins:])
2115 AC_ARG_ENABLE(wma-fixed,
2116 [ --enable-wma-fixed libwma-fixed module (default disabled)])
2117 if test "${enable_wma_fixed}" = "yes"
2119 VLC_ADD_PLUGIN([wma_fixed])
2123 dnl shine encoder plugin
2125 PKG_ENABLE_MODULES_VLC([SHINE], [], [shine >= 3.0.0], [MPEG Audio Layer 3 encoder], [auto], [], [], [])
2129 dnl openmax il codec plugin
2131 AC_ARG_ENABLE(omxil,
2132 [ --enable-omxil openmax il codec module (default disabled)])
2133 if test "${enable_omxil}" = "yes"
2135 VLC_ADD_PLUGIN([omxil])
2139 dnl openmax il vout plugin
2141 AC_ARG_ENABLE(omxil-vout,
2142 [ --enable-omxil-vout openmax il video output module (default disabled)])
2143 if test "${enable_omxil_vout}" = "yes"
2145 VLC_ADD_PLUGIN([omxil_vout])
2149 dnl raspberry pi openmax il configuration
2151 AC_ARG_ENABLE(rpi-omxil,
2152 [ --enable-rpi-omxil openmax il configured for raspberry pi (default disabled)])
2153 if test "${enable_rpi_omxil}" = "yes"
2155 VLC_ADD_PLUGIN([omxil omxil_vout])
2156 VLC_ADD_CFLAGS([omxil omxil_vout],[-DRPI_OMX])
2160 dnl CrystalHD codec plugin
2162 AC_ARG_ENABLE(crystalhd,
2163 [ --enable-crystalhd crystalhd codec plugin (default auto)])
2164 if test "${enable_crystalhd}" != "no"; then
2165 AC_CHECK_HEADER(libcrystalhd/libcrystalhd_if.h, [
2166 VLC_ADD_PLUGIN([crystalhd])
2167 VLC_ADD_LIBS([crystalhd], [-lcrystalhd])
2169 if test "${SYS}" = "mingw32" ; then
2170 AC_CHECK_HEADERS(libcrystalhd/bc_dts_defs.h, [
2171 VLC_ADD_PLUGIN([crystalhd])
2172 AC_CHECK_HEADERS(libcrystalhd/bc_drv_if.h, [
2173 VLC_ADD_LIBS([crystalhd], [-lbcmDIL])
2176 AS_IF([test x"${enable_crystalhd}" = "xyes"],
2177 [AC_MSG_ERROR("Could not find CrystalHD development headers")],
2178 [AC_MSG_WARN("Could not find CrystalHD development headers")])
2179 ],[#define __LINUX_USER__
2180 #include <libcrystalhd/bc_dts_types.h>
2184 #include <libcrystalhd/bc_dts_types.h>
2192 [ --enable-mad libmad module (default enabled)])
2193 if test "${enable_mad}" != "no"
2196 [ --with-mad=PATH path to libmad],[],[])
2197 if test "${with_mad}" != "no" -a -n "${with_mad}"
2199 VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2200 VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2203 AC_ARG_WITH(mad-tree,
2204 [ --with-mad-tree=PATH mad tree for static linking],[],[])
2205 if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2207 real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2208 if test -z "${real_mad_tree}"
2210 dnl The given directory can't be found
2212 AC_MSG_ERROR([${with_mad_tree} directory does not exist])
2214 dnl Use a custom libmad
2215 AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2216 if test -f ${real_mad_tree}/mad.h
2219 VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2220 VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2222 LDFLAGS="${LDFLAGS} ${LIBS_mpgatofixed32}"
2223 AC_CHECK_LIB(mad, mad_bit_init, [
2224 VLC_ADD_PLUGIN([mpgatofixed32])
2225 VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2226 ],[ AC_MSG_ERROR([the specified tree has not been compiled ])
2231 AC_MSG_ERROR([the specified tree does not have mad.h])
2235 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_mpgatofixed32}"
2236 LDFLAGS="${LDFLAGS} ${LIBS_mpgatofixed32}"
2237 AC_CHECK_HEADERS(mad.h, ,
2238 [ 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.]) ])
2239 AC_CHECK_LIB(mad, mad_bit_init, [
2240 VLC_ADD_PLUGIN([mpgatofixed32])
2241 VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2242 [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2248 AC_ARG_ENABLE(merge-ffmpeg,
2249 [ --enable-merge-ffmpeg merge FFmpeg-based plugins (default disabled)],, [
2250 enable_merge_ffmpeg="no"
2252 AM_CONDITIONAL([MERGE_FFMPEG], [test "$enable_merge_ffmpeg" != "no"])
2254 AC_MSG_CHECKING([for libavutil variant])
2255 PKG_CHECK_EXISTS([libavutil], [
2256 libavutil_version="$(${PKG_CONFIG} --modversion libavutil)"
2257 libavutil_micro="${libavutil_version##*.}"
2258 AS_IF([test ${libavutil_micro} -le 99], [
2266 AC_MSG_RESULT([${avfork}])
2271 AC_ARG_ENABLE(gst-decode,
2272 [ --enable-gst-decode GStreamer based decoding support (currently supports only video decoding) (default auto)])
2274 have_gst_decode="no"
2275 AS_IF([test "${enable_gst_decode}" != "no"], [
2276 PKG_CHECK_MODULES([GST_APP], [gstreamer-app-1.0], [
2277 PKG_CHECK_MODULES([GST_VIDEO], [gstreamer-video-1.0], [
2278 have_gst_decode="yes"
2280 AC_MSG_WARN([${GST_VIDEO_PKG_ERRORS}. GStreamer decoder module will not be built.])
2283 AC_MSG_WARN([${GST_APP_PKG_ERRORS}. GStreamer modules will not be built.])
2286 AM_CONDITIONAL([HAVE_GST_DECODE], [test "${have_gst_decode}" = "yes"])
2289 dnl avcodec decoder/encoder plugin
2291 AC_ARG_ENABLE(avcodec,
2292 [ --enable-avcodec libavcodec codec (default enabled)])
2293 AS_IF([test "${enable_avcodec}" != "no"], [
2294 PKG_CHECK_MODULES(AVCODEC,[libavcodec >= 54.25.0 libavutil >= 52.0.0], [
2295 dnl PKG_CHECK_EXISTS([libavcodec < 56],, [
2296 dnl AC_MSG_ERROR([libavcodec versions 56 and later are not supported yet.])
2299 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2300 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2301 AC_CHECK_HEADERS(libavcodec/avcodec.h)
2302 AC_CHECK_HEADERS(libavutil/avutil.h)
2306 AC_MSG_ERROR([${AVCODEC_PKG_ERRORS}. Pass --disable-avcodec to ignore this error.])
2311 AM_CONDITIONAL([HAVE_AVCODEC], [test "${have_avcodec}" != "no"])
2314 dnl libva needs avcodec
2316 AC_ARG_ENABLE(libva,
2317 [ --enable-libva VAAPI GPU decoding support (libVA) (default auto)])
2319 AS_IF([test "${enable_libva}" = "yes" -a "${have_avcodec}" != "yes" ], [
2320 AC_MSG_ERROR([--enable-libva and --disable-avcodec options are mutually exclusive. Use --enable-avcodec.])
2326 AS_IF([test "${enable_libva}" != "no"], [
2327 PKG_CHECK_EXISTS([libva], [
2330 AS_IF([test -n "${enable_libva}"], [
2331 AC_MSG_ERROR([${LIBVA_PKG_ERRORS}.])
2333 AC_MSG_WARN([${LIBVA_PKG_ERRORS}.])
2336 PKG_CHECK_MODULES([LIBVA_DRM], [libva-drm], [
2337 have_vaapi_drm="yes"
2339 AC_MSG_WARN([${LIBVA_DRM_PKG_ERRORS}.])
2341 PKG_CHECK_MODULES(LIBVA_X11, [libva-x11], [
2342 have_vaapi_x11="yes"
2344 AC_MSG_WARN([${LIBVA_X11_PKG_ERRORS}.])
2347 AM_CONDITIONAL([HAVE_VAAPI_DRM], [test "${have_vaapi_drm}" = "yes"])
2348 AM_CONDITIONAL([HAVE_VAAPI_X11], [test "${have_vaapi_x11}" = "yes"])
2350 have_avcodec_vaapi="no"
2351 AS_IF([test "${have_vaapi}" = "yes" -a "${have_avcodec}" = "yes"], [
2353 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2354 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2355 AC_CHECK_HEADERS([libavcodec/vaapi.h], [
2356 AC_MSG_NOTICE([VAAPI acceleration activated])
2357 have_avcodec_vaapi="yes"
2359 AS_IF([test -n "${enable_libva}"], [
2360 AC_MSG_ERROR([libva is present but libavcodec/vaapi.h is missing])
2362 AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing ])
2367 AM_CONDITIONAL([HAVE_AVCODEC_VAAPI], [test "${have_avcodec_vaapi}" = "yes"])
2370 dnl dxva2 needs avcodec
2372 AC_ARG_ENABLE(dxva2,
2373 [ --enable-dxva2 DxVA2 GPU decoding support (default auto)])
2375 have_avcodec_dxva2="no"
2376 AS_IF([test "${enable_dxva2}" != "no"], [
2377 if test "${SYS}" = "mingw32"; then
2378 AS_IF([test "x${have_avcodec}" = "xyes"], [
2379 AC_CHECK_HEADERS(dxva2api.h,
2381 AC_CHECK_HEADERS(libavcodec/dxva2.h, [
2382 AC_MSG_NOTICE([DxVA2 acceleration activated])
2383 have_avcodec_dxva2="yes"
2385 AS_IF([test "${enable_dxva2}" = "yes"],
2386 [AC_MSG_ERROR([dxva2 is present but libavcodec/dxva2.h is missing])],
2387 [AC_MSG_WARN([dxva2 is present but libavcodec/dxva2.h is missing ])])
2388 ], [#undef _WIN32_WINNT
2389 /* DXVA2 is only available in Vista and above */
2390 #define _WIN32_WINNT 0x600])
2392 AS_IF([test "${enable_dxva2}" = "yes"],
2393 [AC_MSG_ERROR([Could not find required dxva2api.h])],
2394 [AC_MSG_WARN([dxva2api.h not found])])
2397 AS_IF([test "x${enable_dxva2}" != "x"], [
2398 AC_MSG_ERROR([--enable-dxva2 and --disable-avcodec options are mutually exclusive.])
2403 AM_CONDITIONAL([HAVE_AVCODEC_DXVA2], [test "${have_avcodec_dxva2}" = "yes"])
2406 dnl vda needs avcodec
2409 [ --enable-vda VDA support (default auto)])
2411 have_avcodec_vda="no"
2412 AS_IF([test "${enable_vda}" != "no"], [
2413 if test "${SYS}" = "darwin"; then
2414 AS_IF([test "x${have_avcodec}" = "xyes"], [
2415 AC_CHECK_HEADERS(VideoDecodeAcceleration/VDADecoder.h,
2417 AC_CHECK_HEADERS(libavcodec/vda.h, [
2418 have_avcodec_vda="yes"
2420 AS_IF([test "${enable_vda}" = "yes"],
2421 [AC_MSG_ERROR([vda is present but libavcodec/vda.h is missing])],
2422 [AC_MSG_WARN([vda is present but libavcodec/vda.h is missing ])])
2425 AS_IF([test "${enable_vda}" = "yes"],
2426 [AC_MSG_ERROR([Could not find required VideoDecodeAcceleration/VDADecoder.h])],
2427 [AC_MSG_WARN([VideoDecodeAcceleration/VDADecoder.h not found])])
2430 AS_IF([test "x${enable_vda}" != "x"], [
2431 AC_MSG_ERROR([--enable-vda and --disable-avcodec options are mutually exclusive.])
2434 AS_IF([test "${have_avcodec_vda}" = "yes"], [
2436 LIBS="$LIBS $AVCODEC_LIBS"
2437 AC_CHECK_FUNCS([av_vda_alloc_context])
2442 AM_CONDITIONAL([HAVE_AVCODEC_VDA], [test "${have_avcodec_vda}" = "yes"])
2445 dnl avformat demuxer/muxer plugin
2448 AC_ARG_ENABLE(avformat,
2449 [ --enable-avformat libavformat containers (default enabled)],, [
2450 enable_avformat="${have_avcodec}"
2453 AS_IF([test "${enable_avformat}" != "no"], [
2454 PKG_CHECK_MODULES(AVFORMAT,[libavformat >= 53.21.0 libavcodec libavutil], [
2457 CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2458 CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2459 AC_CHECK_HEADERS(libavformat/avformat.h libavformat/avio.h)
2460 AC_CHECK_HEADERS(libavcodec/avcodec.h)
2461 AC_CHECK_HEADERS(libavutil/avutil.h)
2462 AS_IF([test "$enable_merge_ffmpeg" = "no"], [
2467 AC_MSG_ERROR([${AVFORMAT_PKG_ERRORS}. Pass --disable-avformat to ignore this error.])
2470 AM_CONDITIONAL([HAVE_AVFORMAT], [test "${enable_avformat}" != "no"])
2473 dnl swscale image scaling and conversion plugin
2476 AC_ARG_ENABLE(swscale,
2477 AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
2478 (default enabled)]))
2479 if test "${enable_swscale}" != "no"
2481 PKG_CHECK_MODULES(SWSCALE,[libswscale],
2484 CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
2485 CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
2486 AC_CHECK_HEADERS(libswscale/swscale.h)
2487 VLC_ADD_PLUGIN([swscale])
2488 VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
2489 VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
2490 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2491 VLC_ADD_LIBS([swscale],[${ac_cv_ld_bsymbolic}])
2495 AC_MSG_ERROR([${SWSCALE_PKG_ERRORS}. Pass --disable-swscale to ignore this error. Proper software scaling and some video chroma conversion will be missing.])
2503 AC_ARG_ENABLE(postproc,
2504 [ --enable-postproc libpostproc image post-processing (default auto)])
2505 if test "${enable_postproc}" != "no"
2507 PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
2510 CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
2511 CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
2512 AC_CHECK_HEADERS(postproc/postprocess.h)
2513 VLC_ADD_PLUGIN([postproc])
2514 VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS $AVUTIL_LIBS])
2515 VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS $AVUTIL_CFLAGS])
2518 AC_MSG_WARN([${POSTPROC_PKG_ERRORS}.])
2523 dnl faad decoder plugin
2526 [ --enable-faad faad codec (default auto)])
2527 if test "${enable_faad}" != "no"; then
2528 AC_ARG_WITH(faad-tree, [ --with-faad-tree=PATH faad tree for static linking])
2529 if test -n "${with_faad_tree}"; then
2530 AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
2531 real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
2532 if test -z "${real_faad_tree}"; then
2533 dnl The given directory can't be found
2535 AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
2537 if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"; then
2538 dnl Use the custom faad
2539 AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
2540 VLC_ADD_PLUGIN([faad])
2541 VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
2542 VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
2544 dnl The given libfaad wasn't built
2546 AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
2550 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_faad}"
2551 LDFLAGS="${LDFLAGS} ${LIBS_faad}"
2552 AC_CHECK_HEADERS(faad.h,
2553 [ AC_CHECK_LIB(faad, faacDecOpen, [
2554 VLC_ADD_PLUGIN([faad])
2555 VLC_ADD_LIBS([faad],[-lfaad]) ], [
2556 AC_CHECK_LIB(faad, NeAACDecOpen, [
2557 VLC_ADD_PLUGIN([faad])
2558 VLC_ADD_LIBS([faad],[-lfaad]) ], [
2559 AS_IF([test "${enable_faad}" = "yes"],
2560 [ AC_MSG_ERROR([Cannot find libfaad library...]) ],
2561 [ AC_MSG_WARN([Cannot find libfaad library...]) ]) ]) ])
2562 ] , [ AS_IF([test "${enable_faad}" = "yes"],
2563 [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ],
2564 [ AC_MSG_WARN([Cannot find development headers for libfaad...]) ]) ])
2570 dnl libvpx decoder plugin
2573 AS_HELP_STRING([--enable-vpx],[libvpx VP8/VP9 decoder (default auto)]))
2574 AS_IF([test "${enable_vpx}" != "no"],[
2575 PKG_CHECK_MODULES([VPX], [vpx] , [
2576 VLC_ADD_PLUGIN([vpx])
2577 VLC_ADD_CPPFLAGS([vpx], [${VPX_CFLAGS}])
2578 VLC_ADD_LIBS([vpx], [${VPX_LIBS}])
2579 AC_CHECK_LIB([vpx],[vpx_codec_vp8_dx], [
2580 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP8_DECODER])
2581 ], [], [${VPX_LIBS}])
2582 AC_CHECK_LIB([vpx],[vpx_codec_vp9_dx], [
2583 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP9_DECODER])
2584 ], [], [${VPX_LIBS}])
2586 AS_IF([test "${enable_vpx}" = "yes"],[
2587 AC_MSG_ERROR([libvpx was not found])
2592 dnl twolame encoder plugin
2594 PKG_ENABLE_MODULES_VLC([TWOLAME], [], [twolame], [MPEG Audio Layer 2 encoder], [auto], [], [], [ -DLIBTWOLAME_STATIC])
2597 dnl fdk-aac encoder plugin
2599 PKG_ENABLE_MODULES_VLC([FDKAAC], [], [fdk-aac], [FDK-AAC encoder], [disabled])
2602 dnl QuickTime plugin
2604 AC_ARG_ENABLE(quicktime,
2605 [ --enable-quicktime QuickTime module (deprecated)])
2606 if test "${enable_quicktime}" = "yes"; then
2607 if test "${SYS}" = "mingw32"; then
2608 VLC_ADD_PLUGIN([quicktime])
2610 AC_CHECK_HEADERS(QuickTime/QuickTime.h,
2611 [ VLC_ADD_PLUGIN([quicktime])
2612 VLC_ADD_LIBS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
2613 ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
2618 dnl A52/AC3 decoder plugin
2621 [ --enable-a52 A/52 support with liba52 (default enabled)])
2622 if test "${enable_a52}" != "no"
2625 [ --with-a52=PATH a52 headers and libraries])
2626 AC_ARG_WITH(a52-tree,
2627 [ --with-a52-tree=PATH a52dec tree for static linking ],[],[])
2628 if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
2630 real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
2631 if test -z "${real_a52_tree}"
2633 dnl The given directory can't be found
2635 AC_MSG_ERROR([${with_a52_tree} directory does not exist])
2637 dnl Use a custom a52dec
2638 AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
2639 if test -f ${real_a52_tree}/include/a52.h
2642 VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
2643 VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
2645 LDFLAGS="${LDFLAGS} ${LIBS_a52tofloat32}"
2646 AC_CHECK_LIB(a52, a52_free, [
2647 VLC_ADD_PLUGIN([a52tofloat32])
2648 VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
2649 VLC_ADD_LIBS([a52tofloat32],[-la52])
2651 if test -f ${real_a52_tree}/liba52/.libs/liba52.a
2653 AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
2655 AC_MSG_ERROR([the specified tree has not been compiled])
2660 AC_MSG_ERROR([the specified tree does not have a52.h])
2663 if test -z "${with_a52}"
2668 LDFLAGS_test="-L${with_a52}/lib"
2669 CPPFLAGS_test="-I${with_a52}/include"
2672 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
2673 LDFLAGS="${LDFLAGS} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
2674 AC_CHECK_HEADERS(a52dec/a52.h, [
2675 AC_CHECK_LIB(a52, a52_free, [
2676 VLC_ADD_PLUGIN([a52tofloat32])
2677 VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
2678 VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
2680 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.])
2683 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.])
2690 dnl DTS Coherent Acoustics decoder plugin
2692 PKG_ENABLE_MODULES_VLC([DCA], [dtstofloat32], [libdca >= 0.0.5], [DTS Coherent Acoustics support with libdca], [auto])
2697 PKG_ENABLE_MODULES_VLC([FLAC], [], [flac], [libflac decoder/encoder support], [auto])
2702 PKG_ENABLE_MODULES_VLC([LIBMPEG2], [], [libmpeg2 > 0.3.2], [libmpeg2 decoder support], [auto])
2707 PKG_ENABLE_MODULES_VLC([VORBIS], [], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
2712 AC_ARG_ENABLE(tremor,
2713 [ --enable-tremor Tremor decoder support (default disabled)])
2714 if test "${enable_tremor}" = "yes"
2716 AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
2717 VLC_ADD_PLUGIN([tremor])
2724 PKG_ENABLE_MODULES_VLC([SPEEX], [], [ogg speex >= 1.0.5], [Speex support], [auto])
2726 AS_IF([test "${enable_speex}" != "no"], [
2727 PKG_CHECK_MODULES([SPEEXDSP], [speexdsp], [
2730 AC_MSG_WARN([${SPEEXDSP_PKG_ERRORS}.])
2733 AM_CONDITIONAL([HAVE_SPEEXDSP], [test "$have_speexdsp" = "yes"])
2738 PKG_ENABLE_MODULES_VLC([OPUS], [], [ogg opus >= 1.0.3], [Opus support], [auto])
2741 dnl theora decoder plugin
2743 PKG_ENABLE_MODULES_VLC([THEORA], [], [ogg theoradec >= 1.0 theoraenc], [experimental theora codec], [auto])
2746 dnl Daala decoder plugin
2748 PKG_ENABLE_MODULES_VLC([DAALA], [], [ogg daaladec], [experimental daala codec], [disabled])
2751 dnl schroedinger decoder plugin (for dirac format video)
2753 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [], [schroedinger-1.0 >= 1.0.10], [dirac decoder and encoder using schroedinger], [auto])
2756 dnl PNG decoder module
2759 [ --enable-png PNG support (default enabled)])
2760 AS_IF([test "${enable_png}" != "no"], [
2761 AC_CHECK_HEADERS(png.h, [
2763 LDFLAGS="${LDFLAGS} -lz $LIBM"
2764 AC_CHECK_LIB(png, png_set_rows, [
2765 VLC_ADD_PLUGIN([png])
2772 dnl JPEG decoder module
2775 [ --enable-jpeg JPEG support (default enabled)])
2776 AS_IF([test "${enable_jpeg}" != "no"], [
2777 AC_CHECK_HEADERS(jpeglib.h, [
2778 VLC_ADD_PLUGIN([jpeg])
2783 dnl H262 encoder plugin (lib262)
2786 [ --enable-x262 H262 encoding support with static libx262 (default disabled)])
2787 if test "${enable_x262}" != "no"; then
2788 AC_ARG_WITH(x262-tree,
2789 [ --with-x262-tree=PATH H262 encoding module with libx262 (static linking)],[],[])
2790 if test "${with_x262_tree}" != "no" -a -n "${with_x262_tree}"
2792 real_x262_tree="̧`cd ${with_x262_tree} 2>/dev/null && pwd`"
2793 if test -z "${real_x262_tree}"
2796 AC_MSG_ERROR([${with_x262_tree} directory does not exist])
2798 AC_MSG_CHECKING(for x262.h in ${real_x262_tree})
2799 if test -f ${with_x262_tree}/x262_config.h
2801 VLC_ADD_PLUGIN([x262])
2802 VLC_ADD_CFLAGS([x262],[-I${with_x262_tree}])
2803 VLC_ADD_LIBS([x262],[-L${with_x262_tree} -lm -lpthread -lx262])
2806 AC_MSG_ERROR([${with_x262_tree} doesnt have x262_config.h])
2809 PKG_CHECK_MODULES(X262, x262, [
2810 VLC_ADD_PLUGIN([x262])
2811 VLC_ADD_LDFLAGS([x262],[${X262_LIBS}])
2812 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2813 VLC_ADD_LIBS([x262],[${av_cv_ld_bsymbolic}])
2815 VLC_ADD_CFLAGS([x262],[${X262_CFLAGS}])
2816 if echo ${X262_LIBS} |grep -q 'pthreadGC2'; then
2817 VLC_ADD_CFLAGS([x262], [-DPTW32_STATIC_LIB])
2820 if test "${enable_x262}" = "yes"; then
2821 AC_MSG_ERROR([x262 module doesn't work without staticly compiled libx262.a])
2828 PKG_ENABLE_MODULES_VLC([X265],, [x265], [HEVC/H.265 encoder], [auto])
2831 dnl H264 encoder plugin (10-bit lib264)
2833 AC_ARG_ENABLE(x26410b,
2834 [ --enable-x26410b H264 10-bit encoding support with static libx264 (default disabled)])
2835 if test "${enable_x26410b}" != "no"; then
2836 AC_ARG_WITH(x26410b-tree,
2837 [ --with-x26410b-tree=PATH H264 10-bit encoding module with libx264 (static linking)],[],[])
2838 if test "${with_x26410b_tree}" != "no" -a -n "${with_x26410b_tree}"
2840 real_x26410b_tree="̧`cd ${with_x26410b_tree} 2>/dev/null && pwd`"
2841 if test -z "${real_x26410b_tree}"
2844 AC_MSG_ERROR([${with_x26410b_tree} directory does not exist])
2846 AC_MSG_CHECKING(for x264.h in ${real_x26410b_tree})
2847 if test -f ${with_x26410b_tree}/x264_config.h
2850 AC_MSG_CHECKING(for 10-bit build of x264)
2851 if grep -q "BIT_DEPTH.*10" ${with_x26410b_tree}/x264_config.h ;then
2853 VLC_ADD_PLUGIN([x26410b])
2854 VLC_ADD_CFLAGS([x26410b],[-I${with_x26410b_tree}])
2855 VLC_ADD_LIBS([x26410b],[-L${with_x26410b_tree} -lm -lpthread -lx264])
2858 AC_MSG_ERROR([${with_x26410b_tree} isnt build 10-bit])
2862 AC_MSG_ERROR([${with_x26410b_tree} doesnt have x264_config.h])
2865 PKG_CHECK_MODULES(X26410B, x26410b, [
2866 VLC_ADD_PLUGIN([x26410b])
2867 VLC_ADD_LIBS([x26410b],[${X26410B_LIBS}])
2868 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2869 VLC_ADD_LDFLAGS([x26410b],[${ac_cv_ld_bsymbolic}])
2871 VLC_ADD_CFLAGS([x26410b],[${X26410B_CFLAGS}])
2872 if echo ${X26410B_LIBS} |grep -q 'pthreadGC2'; then
2873 VLC_ADD_CFLAGS([x26410b], [-DPTW32_STATIC_LIB])
2876 if test "${enable_x26410b}" = "yes"; then
2877 AC_MSG_ERROR([x26410b module doesn't work without staticly compiled libx264.a])
2885 dnl H264 encoder plugin (using libx264)
2888 [ --enable-x264 H264 encoding support with libx264 (default enabled)])
2889 if test "${enable_x264}" != "no"; then
2890 AC_ARG_WITH(x264-tree,
2891 [ --with-x264-tree=PATH x264 tree for static linking ],[],[])
2892 if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
2894 real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
2895 if test -z "${real_x264_tree}"
2897 dnl The given directory can't be found
2899 AC_MSG_ERROR([${with_x264_tree} directory does not exist])
2901 dnl Use a custom libx264
2902 AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
2903 if test -f ${real_x264_tree}/x264.h
2906 VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
2907 VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
2908 PKG_CHECK_MODULES(X264,x264, [
2909 VLC_ADD_PLUGIN([x264])
2910 VLC_ADD_LIBS([x264],[${X264_LIBS}])
2911 VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
2912 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
2913 VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
2916 AC_MSG_ERROR([the specified tree has not been compiled])
2920 AC_MSG_ERROR([the specified tree does not have x264.h])
2923 PKG_CHECK_MODULES(X264,x264 >= 0.86, [
2924 VLC_ADD_PLUGIN([x264])
2925 VLC_ADD_LIBS([x264],[${X264_LIBS}])
2927 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2928 VLC_ADD_LDFLAGS([x264],[${ac_cv_ld_bsymbolic}])
2931 VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
2932 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
2933 VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
2936 if test "${enable_x264}" = "yes"; then
2937 AC_MSG_ERROR([${X264_PKG_ERRORS}: you may get it from http://www.videolan.org/x264.html])
2944 dnl Intel QuickSync (aka MediaSDK) H264/H262 encoder
2946 PKG_ENABLE_MODULES_VLC([MFX], [qsv], [libmfx], [Intel QuickSync MPEG4-Part10/MPEG2 (aka H.264/H.262) encoder], [auto])
2949 dnl libfluidsynth (MIDI synthetizer) plugin
2951 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [], [fluidsynth >= 1.1.2], [MIDI synthetiser with libfluidsynth], [auto])
2954 dnl Teletext Modules
2955 dnl vbi decoder plugin (using libzbvi)
2960 AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
2961 libzvbi (default enabled)]))
2963 AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
2964 zvbi) (default enabled if zvbi is absent)]))
2966 AS_IF( [test "${enable_zvbi}" != "no"],[
2967 PKG_CHECK_MODULES(ZVBI, [zvbi-0.2 >= 0.2.28],
2969 VLC_ADD_PLUGIN([zvbi])
2970 AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
2971 AS_IF( [test "${enable_telx}" = "yes"],[
2972 AC_MSG_WARN([The zvbi and telx modules are incompatible. Using zvbi.])
2975 AC_MSG_WARN([${ZVBI_PKG_ERRORS}. Enabling the telx module instead.])
2978 AS_IF( [test "${enable_telx}" != "no" ],[
2979 VLC_ADD_PLUGIN([telx])
2983 dnl libass subtitle rendering module
2985 AC_ARG_ENABLE(libass,
2986 [ --enable-libass Subtitle support using libass (default enabled)])
2987 AS_IF( [test "${enable_libass}" != "no"], [
2988 PKG_CHECK_MODULES(LIBASS, [libass >= 0.9.8],
2990 VLC_ADD_PLUGIN([libass])
2992 AC_CHECK_HEADERS(fontconfig/fontconfig.h,
2993 [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
2994 VLC_ADD_LIBS([libass],[-lfontconfig])
2997 AC_MSG_WARN([${LIBASS_PKG_ERRORS}.])
3002 dnl ARIB subtitles rendering module
3004 AC_ARG_ENABLE(aribsub,
3005 [ --enable-aribsub ARIB Subtitles support (default enabled)])
3006 AS_IF( [test "${enable_aribsub}" != "no" ],[
3007 PKG_CHECK_MODULES(ARIBB24, [aribb24 >= 1.0.1], [
3009 VLC_ADD_PLUGIN([aribsub])
3010 VLC_ADD_LIBS([aribsub],[-laribb24])
3011 AC_DEFINE(HAVE_ARIBB24, 1, [Define if libaribb24 is available.])
3013 AC_MSG_WARN(Library [aribb24] needed for [aribsub] was not found)
3016 AM_CONDITIONAL([HAVE_ARIBB24], [test "${have_aribb24}" = "yes"])
3020 dnl kate decoder plugin
3022 PKG_ENABLE_MODULES_VLC([KATE], [], [kate >= 0.3.0], [kate codec], [auto])
3025 dnl tiger rendering for kate decoder plugin
3027 AC_ARG_ENABLE(tiger,
3028 [ --enable-tiger Tiger rendering library for Kate streams (default auto)])
3029 AS_IF([test "${enable_tiger}" != "no"], [
3030 PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
3031 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])],[
3032 AS_IF([test -n "${enable_tiger}"], [
3033 AC_MSG_ERROR([${TIGER_PKG_ERRORS}.])
3043 EXTEND_HELP_STRING([Video plugins:])
3048 PKG_CHECK_MODULES([EGL], [egl], [
3053 AM_CONDITIONAL([HAVE_EGL], [test "${have_egl}" = "yes"])
3056 PKG_CHECK_MODULES([GL], [gl], [
3059 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
3061 # include <GL/glew.h>
3065 [int t0 = GL_TEXTURE0;]])
3069 AS_IF([test "${SYS}" != "mingw32"], [
3072 GL_LIBS="-lopengl32"
3076 AM_CONDITIONAL([HAVE_GL], [test "${have_gl}" = "yes"])
3078 dnl OpenGL ES 2: depends on EGL 1.1
3079 PKG_ENABLE_MODULES_VLC([GLES2], [], [glesv2], [OpenGL ES v2 support], [disabled])
3080 dnl OpenGL ES 1: depends on EGL 1.0
3081 PKG_ENABLE_MODULES_VLC([GLES1], [], [glesv1_cm], [OpenGL ES v1 support], [disabled])
3088 AC_CHECK_HEADERS(X11/Xlib.h)
3091 dnl X C Bindings modules
3094 [ --enable-xcb X11 support with XCB (default enabled)],, [
3095 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "darwin" -a "${SYS}" != "symbian"], [
3101 AC_ARG_ENABLE(xvideo,
3102 [ --enable-xvideo XVideo support (default enabled)],, [
3103 enable_xvideo="$enable_xcb"
3106 [ --enable-glx OpenGL support through GLX (default enabled)],, [
3107 enable_glx="$enable_xcb"
3111 have_xcb_keysyms="no"
3113 have_xcb_xvideo="no"
3114 AS_IF([test "${enable_xcb}" != "no"], [
3116 PKG_CHECK_MODULES(XCB, [xcb >= 1.6])
3118 PKG_CHECK_MODULES(XCB_SHM, [xcb-shm])
3119 PKG_CHECK_MODULES(XCB_COMPOSITE, [xcb-composite])
3120 PKG_CHECK_MODULES(XPROTO, [xproto])
3122 AS_IF([test "${enable_xvideo}" != "no"], [
3123 PKG_CHECK_MODULES(XCB_XV, [xcb-xv >= 1.1.90.1], [have_xcb_xvideo="yes"])
3126 PKG_CHECK_MODULES(XCB_RANDR, [xcb-randr >= 1.3], [have_xcb_randr="yes"])
3129 PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms >= 0.3.4], [have_xcb_keysyms="yes"], [
3130 AC_MSG_WARN([${XCB_KEYSYMS_PKG_ERRORS}. Hotkeys will not work.])
3133 AM_CONDITIONAL([HAVE_XCB], [test "${have_xcb}" = "yes"])
3134 AM_CONDITIONAL([HAVE_XCB_KEYSYMS], [test "${have_xcb_keysyms}" = "yes"])
3135 AM_CONDITIONAL([HAVE_XCB_RANDR], [test "${have_xcb_randr}" = "yes"])
3136 AM_CONDITIONAL([HAVE_XCB_XVIDEO], [test "${have_xcb_xvideo}" = "yes"])
3142 AC_ARG_ENABLE(vdpau,
3143 [AS_HELP_STRING([--enable-vdpau], [VDPAU hardware support (default auto)])])
3145 AS_IF([test "${enable_vdpau}" != "no"], [
3146 PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.6], [
3148 AS_IF([test "${no_x}" = "yes"], [
3149 AC_MSG_ERROR([VDPAU requires Xlib (X11).])
3152 AS_IF([test -n "${enable_vdpau}"], [
3153 AC_MSG_ERROR([${VDPAU_PKG_ERRORS}.])
3157 AM_CONDITIONAL([HAVE_VDPAU], [test "${have_vdpau}" = "yes"])
3159 have_avcodec_vdpau="no"
3160 AS_IF([test "${have_vdpau}" = "yes" -a "${have_avcodec}" = "yes"], [
3162 libav) av_vdpau_ver="55.26.0" ;;
3163 ffmpeg) av_vdpau_ver="55.42.100" ;;
3165 PKG_CHECK_EXISTS([libavutil >= 52.4.0 libavcodec >= ${av_vdpau_ver}], [
3166 have_avcodec_vdpau="yes"
3167 AC_MSG_NOTICE([VDPAU decoding acceleration activated])
3169 AS_IF([test -n "${enable_vdpau}"], [
3170 AC_MSG_ERROR([libavutil >= 52.4.0 and libavcodec >= 55.26.0 are required for VDPAU decoding.])
3172 AC_MSG_WARN([libavutil >= 52.4.0 and libavcodec >= 55.26.0 are required for VDPAU decoding.])
3176 AM_CONDITIONAL([HAVE_AVCODEC_VDPAU], [test "${have_avcodec_vdpau}" = "yes"])
3182 AC_ARG_ENABLE(wayland,
3183 [AS_HELP_STRING([--enable-wayland], [Wayland support (default auto)])])
3185 AS_IF([test "${enable_wayland}" != "no"], [
3186 PKG_CHECK_MODULES([WAYLAND_CLIENT], [wayland-client >= 1.5.91], [
3189 AS_IF([test -n "${enable_wayland}"], [
3190 AC_MSG_ERROR([${WAYLAND_CLIENT_PKG_ERRORS}.])
3194 AM_CONDITIONAL([HAVE_WAYLAND], [test "${have_wayland}" = "yes"])
3201 [ --enable-sdl SDL support (default enabled)])
3202 AC_ARG_ENABLE(sdl-image,
3203 [ --enable-sdl-image SDL image support (default enabled)])
3204 if test "${enable_sdl}" != "no"
3206 PKG_CHECK_MODULES(SDL, [sdl >= 1.2.10], [
3207 # SDL on Darwin is heavily patched and can only run SDL_image
3208 if test "${SYS}" != "darwin"; then
3209 VLC_ADD_PLUGIN([vout_sdl])
3211 if test "${SYS}" != "mingw32" -a "${SYS}" != "os2"; then
3212 VLC_ADD_LIBS([vout_sdl],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3214 VLC_ADD_CFLAGS([vout_sdl],[${SDL_CFLAGS}])
3215 VLC_ADD_LIBS([vout_sdl],[${SDL_LIBS}])
3218 AS_IF([ test "${enable_sdl_image}" != "no"],[
3219 PKG_CHECK_MODULES(SDL_IMAGE, [SDL_image >= 1.2.10], [
3220 VLC_ADD_PLUGIN([sdl_image])],
3221 [ AC_MSG_WARN([${SDL_IMAGE_PKG_ERRORS}. You should install it alongside your SDL package.])
3225 AC_MSG_WARN([${SDL_PKG_ERRORS}.])
3232 AC_ARG_ENABLE(freetype,
3233 [ --enable-freetype freetype support (default auto)])
3234 AC_ARG_ENABLE(fribidi,
3235 [ --enable-fribidi fribidi support (default auto)])
3236 AC_ARG_ENABLE(fontconfig,
3237 [ --enable-fontconfig fontconfig support (default auto)])
3239 AC_ARG_WITH([default-font],
3240 AS_HELP_STRING([--with-default-font=PATH],
3241 [Path to the default font]),
3242 [AC_DEFINE_UNQUOTED([DEFAULT_FONT_FILE],
3243 "$withval", [Default font])])
3244 AC_ARG_WITH([default-monospace-font],
3245 AS_HELP_STRING([--with-default-monospace-font=PATH],
3246 [Path to the default font]),
3247 [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FONT_FILE],
3248 "$withval", [Default monospace font])])
3250 AC_ARG_WITH([default-font-family],
3251 AS_HELP_STRING([--with-default-font-family=NAME],
3252 [Path to the default font family]),
3253 [AC_DEFINE_UNQUOTED([DEFAULT_FAMILY],
3254 "$withval", [Default font family])])
3255 AC_ARG_WITH([default-monospace-font-family],
3256 AS_HELP_STRING([--with-default-monospace-font-family=NAME],
3257 [Path to the default font family]),
3258 [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FAMILY],
3259 "$withval", [Default monospace font family])])
3261 if test "${enable_freetype}" != "no"; then
3262 PKG_CHECK_MODULES(FREETYPE, freetype2, [
3264 VLC_ADD_PLUGIN([freetype])
3265 VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
3266 if test "${SYS}" = "mingw32"; then
3267 VLC_ADD_LIBS([freetype],[-liconv -lz])
3269 VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
3271 AC_CHECK_HEADERS(Carbon/Carbon.h,
3272 [VLC_ADD_LIBS([freetype],[-Wl,-framework,Carbon])])
3274 dnl fontconfig support
3275 if test "${SYS}" != "mingw32"; then
3276 if test "${enable_fontconfig}" != "no"; then
3277 AC_CHECK_HEADERS(fontconfig/fontconfig.h, [
3278 VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
3279 VLC_ADD_LIBS([freetype],[-lfontconfig])
3280 ],[AC_MSG_WARN([library fontconfig not found. Styles will be disabled in freetype])])
3283 VLC_ADD_LIBS([freetype],[-lgdi32])
3287 if test "${enable_fribidi}" != "no"; then
3288 PKG_CHECK_MODULES(FRIBIDI, fribidi, [
3289 VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
3290 VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
3291 ],[AC_MSG_WARN([${FRIBIDI_PKG_ERRORS}. Bidirectional support will be disabled in FreeType.])])
3296 AS_IF([test -n "${enable_freetype}"],[
3297 AC_MSG_ERROR([${FREETYPE_PKG_ERRORS}. Install FreeType2 development or configure with --disable-freetype.])
3304 dnl QuartzText vout module (iOS/Mac OS)
3306 AC_ARG_ENABLE(macosx-quartztext,
3307 [ --enable-macosx-quartztext Mac OS X quartz text module (default enabled on Mac OS X)])
3308 if test "x${enable_macosx_quartztext}" != "xno" &&
3309 (test "${SYS}" = "darwin" || test "${enable_macosx_quartztext}" = "yes")
3311 VLC_ADD_PLUGIN([quartztext])
3312 VLC_ADD_LIBS([quartztext],[-Wl,-framework,ApplicationServices])
3316 dnl SVG module (text rendering and image decoding)
3318 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3319 PKG_ENABLE_MODULES_VLC([SVGDEC], [], [librsvg-2.0 >= 2.9.0 cairo >= 1.13.1], [SVG image decoder library],[auto])
3322 dnl android surface module
3324 AC_ARG_ENABLE(android-surface,
3325 [ --enable-android-surface Android Surface video output module (default disabled)])
3326 if test "${enable_android_surface}" = "yes"; then
3327 if test "${HAVE_ANDROID}" = "1"; then
3328 VLC_ADD_PLUGIN([android_surface])
3329 VLC_ADD_LIBS([android_surface], [-ldl])
3330 VLC_ADD_PLUGIN([android_opaque])
3331 VLC_ADD_LIBS([android_opaque], [-ldl])
3336 dnl Windows DirectX module
3339 AC_ARG_ENABLE(directx,
3340 [AS_HELP_STRING([--enable-directx],
3341 [Microsoft DirectX support (default enabled on Windows)])],, [
3342 AS_IF([test "${SYS}" = "mingw32"], [
3343 enable_directx="yes"
3349 AS_IF([test "${enable_directx}" != "no"], [
3351 AC_CHECK_HEADERS(ddraw.h, [
3354 AC_MSG_ERROR([Cannot find DirectX headers!])
3358 AC_CHECK_HEADERS(GL/wglew.h, [
3359 VLC_ADD_PLUGIN([glwin32])
3361 #include <windows.h>
3366 AC_CHECK_HEADERS(d3d9.h, [
3367 VLC_ADD_PLUGIN([direct3d])
3371 AC_CHECK_HEADERS(d2d1.h, [
3372 VLC_ADD_PLUGIN([direct2d])
3375 AM_CONDITIONAL([HAVE_DIRECTX], [test "$have_directx" = "yes"])
3378 dnl Linux framebuffer module
3380 AC_CHECK_HEADER([linux/fb.h], [
3381 VLC_ADD_PLUGIN([fb])
3387 dnl try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
3388 dnl TODO: support for static linking
3390 AC_ARG_ENABLE(directfb,
3391 [ --enable-directfb DirectFB support (default disabled)])
3392 AC_ARG_WITH(directfb,
3393 [ --with-directfb=PATH path to DirectFB headers and libraries])
3395 if test "${enable_directfb}" = "yes"; then
3396 have_directfb="false"
3397 CPPFLAGS_mydirectfb=
3399 if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
3400 dnl Trying the given location
3403 CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
3404 LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/ -L${with_directfb}/src/.libs/"
3406 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
3407 LIBS="${LIBS} ${LIBS_new}"
3409 dnl FIXME: too obscure
3410 AC_CHECK_HEADER([directfb.h], [
3411 AC_CHECK_LIB([direct],[direct_initialize], [
3412 AC_CHECK_LIB([fusion], [fusion_enter], [
3413 AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
3414 ], have_directfb="false")
3415 ], have_directfb="false")
3416 ], have_directfb="false")
3420 if test "${have_directfb}" = "true"; then
3421 LIBS_mydirectfb="${LIBS_new} -lz $LIBDL -ldirectfb -lfusion -ldirect -lpthread"
3422 CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
3425 dnl Look for directfb-config
3426 AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
3427 if test "${DIRECTFB_CONFIG}" != "no"; then
3428 CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
3429 LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
3430 have_directfb="true"
3432 dnl Trying with pkg-config
3433 PKG_CHECK_MODULES(DIRECTFB, directfb, [
3434 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
3435 LIBS_mydirectfb="${DIRECTFB_LIBS}"
3436 have_directfb="true"
3437 ], [have_directfb="false"])
3440 if test "${have_directfb}" = "true"; then
3441 VLC_ADD_PLUGIN([directfb])
3442 VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
3443 VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
3445 AC_MSG_ERROR([${DIRECTFB_PKG_ERRORS}.])
3453 [ --enable-aa aalib output (default disabled)])
3454 if test "${enable_aa}" = "yes"
3456 AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
3457 if test "${have_aa}" = "true"
3459 VLC_ADD_PLUGIN([aa])
3460 VLC_ADD_LIBS([aa],[-laa])
3461 if test "${SYS}" != "mingw32"; then
3462 VLC_ADD_LIBS([aa],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3470 PKG_ENABLE_MODULES_VLC([CACA], [], [caca >= 0.99.beta14], [libcaca output],[auto])
3476 [AS_HELP_STRING([--enable-kva],
3477 [support the K Video Accelerator KVA (default enabled on OS/2)])],, [
3478 AS_IF([test "$SYS" = "os2"], [
3484 AS_IF([test "$enable_kva" != "no"], [
3485 AC_CHECK_HEADERS([kva.h], [
3487 AC_CHECK_LIB(kva, main, [
3493 AM_CONDITIONAL([HAVE_KVA], [test "${have_kva}" = "yes"])
3499 AS_HELP_STRING([--enable-mmal],
3500 [Multi-Media Abstraction Layer (MMAL) hardware plugin (default enable)]))
3501 if test "${enable_mmal}" != "no"; then
3503 LDFLAGS="${LDFLAGS} -L/opt/vc/lib"
3504 CPPFLAGS="${CPPFLAGS} -I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux"
3505 AC_CHECK_HEADERS(interface/mmal/mmal.h,
3506 [ AC_CHECK_LIB(bcm_host, vc_tv_unregister_callback_full, [
3508 VLC_ADD_PLUGIN([mmal])
3509 VLC_ADD_LDFLAGS([mmal],[ -L/opt/vc/lib ])
3510 VLC_ADD_CFLAGS([mmal],[ -I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux ])
3511 VLC_ADD_LIBS([mmal],[ -lbcm_host -lmmal ]) ], [
3512 AS_IF([test "${enable_mmal}" = "yes"],
3513 [ AC_MSG_ERROR([Cannot find bcm library...]) ],
3514 [ AC_MSG_WARN([Cannot find bcm library...]) ])
3517 ] , [ AS_IF([test "${enable_mmal}" = "yes"],
3518 [ AC_MSG_ERROR([Cannot find development headers for mmal...]) ],
3519 [ AC_MSG_WARN([Cannot find development headers for mmal...]) ]) ])
3522 AM_CONDITIONAL([HAVE_MMAL], [test "${have_mmal}" = "yes"])
3528 EXTEND_HELP_STRING([Audio plugins:])
3531 dnl Pulseaudio module
3533 AC_ARG_ENABLE(pulse,
3534 [AS_HELP_STRING([--enable-pulse],
3535 [use the PulseAudio client library (default auto)])])
3537 AS_IF([test "${enable_pulse}" != "no"], [
3538 PKG_CHECK_MODULES([PULSE], [libpulse >= 1.0], [
3541 AS_IF([test "x${enable_pulse}" != "x"], [
3542 AC_MSG_ERROR([$PULSE_PKG_ERRORS. PulseAudio 1.0 or later required.])
3546 AM_CONDITIONAL([HAVE_PULSE], [test "${have_pulse}" = "yes"])
3552 [AS_HELP_STRING([--enable-alsa],
3553 [support the Advanced Linux Sound Architecture (default auto)])],, [
3554 AS_IF([test "$SYS" = "linux" -a "${have_pulse}" = "no"], [
3559 AS_IF([test "${enable_alsa}" != "no"], [
3560 PKG_CHECK_MODULES([ALSA], [alsa >= 1.0.24], [
3563 AS_IF([test "x${enable_alsa}" != "x"], [
3564 AC_MSG_ERROR([$ALSA_PKG_ERRORS. alsa-lib 1.0.24 or later required.])
3568 AM_CONDITIONAL([HAVE_ALSA], [test "${have_alsa}" = "yes"])
3571 dnl Open Sound System module
3574 [AS_HELP_STRING([--enable-oss],
3575 [support the Open Sound System OSS (default enabled on FreeBSD/NetBSD/DragonFlyBSD)])],, [
3576 AS_IF([test "$SYS" = "mingw32" -o "$SYS" = "linux" -o "$SYS" = "openbsd"], [
3582 AS_IF([test "$enable_oss" != "no"], [
3583 AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
3585 AC_CHECK_LIB(ossaudio, main, [
3586 OSS_LIBS="-lossaudio"
3591 AM_CONDITIONAL([HAVE_OSS], [test "${have_oss}" = "yes"])
3594 dnl OpenBSD sndio module
3596 AC_ARG_ENABLE([sndio],
3597 [AS_HELP_STRING([--disable-sndio],
3598 [support the OpenBSD sndio (default auto)])],, [
3599 AS_IF([test "$SYS" = "openbsd"], [
3604 AS_IF([test "$enable_sndio" != "no"], [
3605 AC_CHECK_HEADER([sndio.h], [
3609 AM_CONDITIONAL([HAVE_SNDIO], [test "${have_sndio}" = "yes"])
3612 dnl Windows Audio Session plugin
3614 AC_ARG_ENABLE([wasapi],
3615 [AS_HELP_STRING([--enable-wasapi],
3616 [use the Windows Audio Session API (default auto)])
3619 AS_IF([test "$enable_wasapi" != "no"], [
3620 AC_CHECK_HEADER([audioclient.h], [
3623 AS_IF([test "x${enable_wasapi}" != "x"], [
3624 AC_MSG_ERROR([Windows Audio Session API not found.])
3628 AM_CONDITIONAL([HAVE_WASAPI], [test "${have_wasapi}" = "yes"])
3631 dnl AudioQueue plugin
3633 AC_ARG_ENABLE(audioqueue,
3634 [ --enable-audioqueue AudioQueue audio module (default disabled)])
3635 if test "${enable_audioqueue}" = "yes"
3637 VLC_ADD_PLUGIN([audioqueue])
3644 [AS_HELP_STRING([--disable-jack],
3645 [do not use jack (default auto)])])
3647 AS_IF([test "${enable_jack}" != "no"], [
3648 PKG_CHECK_MODULES(JACK, jack >= 1.9.7,
3651 AC_MSG_WARN([${JACK_PKG_ERRORS}, trying jack1 instead])
3653 PKG_CHECK_MODULES(JACK, jack >= 0.120.1 jack < 1.0,
3656 AS_IF([test -n "${enable_jack}"],
3657 [AC_MSG_ERROR([${JACK_PKG_ERRORS}.])],
3658 [AC_MSG_WARN([${JACK_PKG_ERRORS}.])])
3662 AM_CONDITIONAL([HAVE_JACK], [test "${have_jack}" != "no"])
3665 dnl OpenSLES Android
3667 AC_ARG_ENABLE(opensles,
3668 [ --enable-opensles Android OpenSL ES audio module (default disabled)])
3669 if test "${HAVE_ANDROID}" = "1"; then
3670 if test "${enable_opensles}" = "yes"; then
3671 AC_CHECK_HEADERS(SLES/OpenSLES.h,
3672 [ VLC_ADD_PLUGIN([opensles_android]) ],
3673 [ AC_MSG_ERROR([cannot find OpenSLES headers])] )
3678 dnl libsamplerate plugin
3680 PKG_ENABLE_MODULES_VLC([SAMPLERATE], [], [samplerate], [Resampler with libsamplerate], [auto])
3686 [AS_HELP_STRING([--enable-kai],
3687 [support the K Audio Interface KAI (default enabled on OS/2)])],, [
3688 AS_IF([test "$SYS" = "os2"], [
3694 AS_IF([test "$enable_kai" != "no"], [
3695 AC_CHECK_HEADERS([kai.h], [
3697 AC_CHECK_LIB(kai, main, [
3703 AM_CONDITIONAL([HAVE_KAI], [test "${have_kai}" = "yes"])
3706 dnl chromaprint audio track fingerprinter
3708 m4_pushdef([libchromaprint_version], 0.6.0)
3709 PKG_WITH_MODULES([CHROMAPRINT],[libchromaprint >= libchromaprint_version],
3710 VLC_ADD_PLUGIN([stream_out_chromaprint])
3711 VLC_ADD_CFLAGS([stream_out_chromaprint],[${CHROMAPRINT_CFLAGS}] [-I./webservices -I../stream_out])
3712 VLC_ADD_LIBS([stream_out_chromaprint],[${CHROMAPRINT_LIBS}]),
3713 AS_IF([test "${enable_chromaprint}" = "yes"],
3714 [AC_MSG_ERROR(Library [libchromaprint >= libchromaprint_version] needed for [chromaprint] was not found)],
3715 [AC_MSG_WARN(Library [libchromaprint >= libchromaprint_version] needed for [chromaprint] was not found)]
3717 [(Chromaprint based audio fingerprinter)],[auto])
3718 m4_popdef([libchromaprint_version])
3721 dnl Interface plugins
3724 EXTEND_HELP_STRING([Interface plugins:])
3730 AS_HELP_STRING([--disable-qt], [Qt UI support (default enabled)])],, [
3731 AS_IF([test "${SYS}" = "darwin"], [
3735 AS_IF([test "${enable_qt}" != "no"], [
3736 PKG_CHECK_MODULES([QT], [Qt5Core >= 5.1.0 Qt5Widgets Qt5Gui], [
3737 PKG_CHECK_MODULES([QTX11], [Qt5X11Extras], [
3738 VLC_ADD_LIBS([qt4],[${QTX11_LIBS}])
3739 VLC_ADD_CXXFLAGS([qt4],[${QTX11_CFLAGS} -DQT5_HAS_X11])
3741 AC_MSG_WARN([Not building Qt Interface with X11 helpers.])
3743 QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix Qt5Core)"
3744 QT_HOST_PATH="$(eval $PKG_CONFIG --variable=host_bins Qt5Core)"
3745 AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, [${QT_HOST_PATH} ${QT_PATH}/bin ${CONTRIB_DIR}/bin])
3746 AC_PATH_PROG(RCC, [rcc-qt5 rcc], rcc, [${QT_HOST_PATH} ${QT_PATH}/bin ${CONTRIB_DIR}/bin])
3747 AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, [${QT_HOST_PATH} ${QT_PATH}/bin ${CONTRIB_DIR}/bin])
3749 PKG_CHECK_MODULES([QT], [QtCore QtGui >= 4.6.0],, [
3750 AS_IF([test -n "${enable_qt}"],[
3751 AC_MSG_ERROR([${QT_PKG_ERRORS}.])
3753 AC_MSG_WARN([${QT_PKG_ERRORS}.])
3757 QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix QtCore)"
3758 AC_PATH_PROGS(MOC, [moc-qt4 moc], moc, [${QT_PATH}/bin ${CONTRIB_DIR}/bin])
3759 AC_PATH_PROG(RCC, rcc, rcc, [${QT_PATH}/bin ${CONTRIB_DIR}/bin])
3760 AC_PATH_PROGS(UIC, [uic-qt4 uic], uic, [${QT_PATH}/bin ${CONTRIB_DIR}/bin])
3763 AS_IF([test "${enable_qt}" != "no"], [
3764 VLC_ADD_PLUGIN([qt4])
3765 ALIASES="${ALIASES} qvlc"
3767 AM_CONDITIONAL(ENABLE_QT4, [test "$enable_qt" != "no"])
3770 dnl Simple test for skins2 dependency
3772 AS_IF([test "$enable_qt" = "no"], [
3773 AS_IF([test "${enable_skins2}" = "yes"], [
3774 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.])
3777 AC_MSG_WARN([The skins2 module depends on the Qt4 interface, Qt4 is not built so skins2 is disabled.])
3784 AC_ARG_ENABLE(skins2,
3785 [AS_HELP_STRING([--enable-skins2], [skins interface module (default auto)])])
3786 AS_IF([test "${enable_skins2}" != "no"], [
3787 have_skins_deps="yes"
3790 AS_IF([test "${SYS}" = "mingw32"], [
3791 VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -DWIN32_SKINS])
3792 VLC_ADD_LIBS([skins2],[-lgdi32 -lole32 -luuid -lmsimg32])
3794 ], [test "${SYS}" = "darwin"], [
3795 VLC_ADD_CPPFLAGS([skins2],[ -DMACOSX_SKINS])
3796 VLC_ADD_LIBS([skins2],[-Wl,-framework,Carbon])
3798 ], [test "${SYS}" = "os2"], [
3799 VLC_ADD_CPPFLAGS([skins2],[ -DOS2_SKINS])
3802 PKG_CHECK_MODULES([XPM], [xpm],, [have_skins_deps="no"])
3803 PKG_CHECK_MODULES([XINERAMA], [xinerama],, [have_skins_deps="no"])
3804 PKG_CHECK_MODULES([XEXT], [xext],, [have_skins_deps="no"])
3805 VLC_ADD_CPPFLAGS([skins2],[${X_CFLAGS} ${XEXT_CFLAGS} ${XPM_CFLAGS} -DX11_SKINS])
3806 VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} ${XEXT_LIBS} ${XPM_LIBS} ${XINERAMA_LIBS} -lX11])
3810 VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3812 dnl we need freetype
3813 AS_IF([test "${have_freetype}" != "yes"], [
3814 have_skins_deps="no"
3817 AS_IF([test "${have_skins_deps}" = "no"], [
3818 AS_IF([test "x${enable_skins2}" = "x"], [
3819 AC_MSG_WARN([Skins2 interface disabled due to missing dependencies.])
3821 AC_MSG_ERROR([Skins2 interface requires FreeType, libxpm, libxext and libxinerama])
3825 VLC_ADD_PLUGIN([skins2])
3826 ALIASES="${ALIASES} svlc"
3830 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes"])
3832 AC_ARG_ENABLE(libtar,
3833 [ --enable-libtar libtar support for skins2 (default auto)])
3834 AS_IF([test "${enable_skins2}" = "yes" && test "${enable_libtar}" != "no"], [
3835 AC_CHECK_HEADERS(libtar.h, [
3836 VLC_ADD_LIBS([skins2],[-ltar])
3841 dnl MacOS X gui module
3843 AC_ARG_ENABLE(macosx,
3844 [ --enable-macosx Mac OS X gui support (default enabled on Mac OS X)])
3845 if test "x${enable_macosx}" != "xno" -a "${SYS}" = "darwin"
3847 VLC_ADD_LIBS([macosx], [-Wl,-framework,Cocoa -Wl,-framework,Carbon -Wl,-framework,CoreServices])
3848 VLC_ADD_OBJCFLAGS([macosx], [-fobjc-exceptions] )
3849 VLC_ADD_PLUGIN([macosx])
3851 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])
3853 if test ! -d ${CONTRIB_DIR}/Sparkle.framework
3855 AC_MSG_ERROR([Sparkle framework is required and was not found in ${CONTRIB_DIR}])
3857 VLC_ADD_LIBS([macosx], [-F${CONTRIB_DIR} -Wl,-framework,Sparkle])
3858 VLC_ADD_OBJCFLAGS([macosx], [-F${CONTRIB_DIR}])
3860 if test ! -d ${CONTRIB_DIR}/BGHUDAppKit.framework
3862 AC_MSG_ERROR([BGHUDAppKit framework is required and was not found in ${CONTRIB_DIR}])
3864 VLC_ADD_LIBS([macosx], [-F${CONTRIB_DIR} -Wl,-framework,BGHUDAppKit])
3865 VLC_ADD_OBJCFLAGS([macosx], [-F${CONTRIB_DIR}])
3867 AM_CONDITIONAL(ENABLE_MACOSX_UI, [test "$enable_macosx" != "no"])
3870 dnl Minimal Mac OS X module
3872 AC_ARG_ENABLE(minimal-macosx,
3873 [ --enable-minimal-macosx Minimal Mac OS X support (default disabled)])
3874 if test "${enable_minimal_macosx}" = "yes" -a "${SYS}" = "darwin"
3876 VLC_ADD_LIBS([minimal_macosx], [-Wl,-framework,Cocoa])
3877 VLC_ADD_OBJCFLAGS([minimal_macosx], [-fobjc-exceptions] )
3878 VLC_ADD_PLUGIN([minimal_macosx])
3880 AM_CONDITIONAL(ENABLE_MINIMAL_MACOSX, [test "$enable_minimal_macosx" != "no"])
3883 dnl MacOS X dialog provider
3885 AC_ARG_ENABLE(macosx-dialog-provider,
3886 [ --enable-macosx-dialog-provider Mac OS X dialog module (default enabled on Mac OS X)])
3887 if test "x${enable_macosx_dialog_provider}" != "xno" &&
3888 (test "${SYS}" = "darwin" || test "${enable_macosx_dialog_provider}" = "yes")
3890 VLC_ADD_LIBS([macosx_dialog_provider],[-Wl,-framework,Cocoa])
3891 VLC_ADD_PLUGIN([macosx_dialog_provider])
3893 AM_CONDITIONAL(ENABLE_MACOSX_DIALOG_PROVIDER, [test "$enable_macosx_dialog_provider" != "no"])
3898 AC_ARG_ENABLE(ncurses,
3899 [AS_HELP_STRING([--disable-ncurses],[ncurses text-based interface (default auto)])])
3900 AS_IF([test "${enable_ncurses}" != "no"] ,[
3901 PKG_CHECK_MODULES([NCURSES], [ncursesw], [
3902 VLC_ADD_PLUGIN([ncurses])
3903 VLC_ADD_CFLAGS([ncurses],[${NCURSES_CFLAGS}])
3904 VLC_ADD_LIBS([ncurses],[${NCURSES_LIBS}])
3905 ALIASES="${ALIASES} nvlc"
3907 AS_IF([test -n "${enable_ncurses}"], [
3908 AC_MSG_ERROR([${NCURSES_PKG_ERRORS}.])
3917 [ --enable-lirc lirc support (default disabled)])
3918 if test "${enable_lirc}" = "yes"
3920 AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
3921 if test "${have_lirc}" = "true"
3923 VLC_ADD_PLUGIN([lirc])
3924 VLC_ADD_LIBS([lirc],[-llirc_client])
3928 EXTEND_HELP_STRING([Visualisations and Video filter plugins:])
3930 dnl goom visualization plugin
3932 PKG_ENABLE_MODULES_VLC([GOOM], [], [libgoom2], [goom visualization plugin], [auto])
3935 dnl libprojectM visualization plugin
3937 AC_ARG_ENABLE(projectm,
3938 [ --enable-projectm projectM visualization plugin (default enabled)])
3939 AS_IF([test "${enable_projectm}" != "no"],
3941 PKG_CHECK_MODULES(PROJECTM, libprojectM,
3943 VLC_ADD_PLUGIN([projectm])
3944 PKG_CHECK_EXISTS([libprojectM >= 2.0.0],
3945 [ AC_DEFINE([HAVE_PROJECTM2], 1, [Define to 1 if using libprojectM 2.x]) ],
3946 [ AC_MSG_WARN( [Using libprojectM version 1] )
3949 AC_MSG_WARN([${PROJECTM_PKG_ERRORS}.])
3954 dnl Vovoid VSXu visualization plugin
3957 [ --enable-vsxu Vovoid VSXu visualization plugin (default auto)])
3958 AS_IF([test "${enable_vsxu}" != "no"],
3960 PKG_CHECK_MODULES(VSXU, libvsxu,
3962 VLC_ADD_PLUGIN([vsxu])
3963 VLC_ADD_CXXFLAGS([vsxu],[$VSXU_CFLAGS])
3964 VLC_ADD_LIBS([vsxu],[$VSXU_LIBS])
3966 AC_MSG_WARN([${VSXU_PKG_ERRORS}.])
3971 dnl AtmoLight (homemade Philips Ambilight clone)
3974 AS_HELP_STRING([--disable-atmo],[AtmoLight (homemade Philips Ambilight clone)
3975 (default enabled)]),, [enable_atmo="yes"])
3976 AS_IF([test "${enable_atmo}" != no], [
3977 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "linux"], [
3979 VLC_ADD_PLUGIN([atmo])
3987 AC_ARG_ENABLE(glspectrum,
3988 [ --enable-glspectrum 3D OpenGL spectrum visualization (default auto)])
3989 if test "${enable_glspectrum}" != "no" && test "${have_gl}" = "yes"
3991 VLC_ADD_PLUGIN([glspectrum])
3992 VLC_ADD_LIBS([glspectrum],[$GL_LIBS])
3995 EXTEND_HELP_STRING([Service Discovery plugins:])
3997 dnl Bonjour services discovery
3998 PKG_ENABLE_MODULES_VLC([BONJOUR], [], [avahi-client >= 0.6], [Bonjour services discovery], [auto])
4001 dnl libudev services discovery
4002 PKG_ENABLE_MODULES_VLC([UDEV], [], [libudev >= 142], [Linux udev services discovery], [auto])
4005 dnl MTP devices services discovery
4006 PKG_ENABLE_MODULES_VLC([MTP], [mtp access_mtp], [libmtp >= 1.0.0], [MTP devices support], [auto])
4009 dnl UPnP Plugin (Intel SDK)
4011 PKG_ENABLE_MODULES_VLC([UPNP], [upnp], [libupnp], [Intel UPNP SDK],[auto])
4013 EXTEND_HELP_STRING([Misc options:])
4018 PKG_ENABLE_MODULES_VLC([LIBXML2], [xml], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
4024 AC_ARG_ENABLE(libgcrypt,
4025 [ --disable-libgcrypt gcrypt support (default enabled)])
4026 AS_IF([test "${enable_libgcrypt}" != "no"], [
4027 AC_CHECK_DECL([GCRYCTL_SET_THREAD_CBS], [
4028 libgcrypt-config --version >/dev/null || \
4029 AC_MSG_ERROR([gcrypt.h present but libgcrypt-config could not be found])
4030 AC_CHECK_LIB(gcrypt, gcry_control, [
4031 have_libgcrypt="yes"
4032 GCRYPT_CFLAGS="`libgcrypt-config --cflags`"
4033 GCRYPT_LIBS="`libgcrypt-config --libs`"
4035 AC_MSG_ERROR([libgcrypt not found. Install libgcrypt or pass --disable-libgcrypt.])
4036 ], [`libgcrypt-config --libs`])
4038 AC_MSG_ERROR([libgcrypt version 1.1.94 or higher not found. Install libgcrypt or pass --disable-libgcrypt.])
4039 ], [#include <gcrypt.h>]
4043 AC_SUBST(GCRYPT_CFLAGS)
4044 AC_SUBST(GCRYPT_LIBS)
4045 AM_CONDITIONAL([HAVE_GCRYPT], [test "${have_libgcrypt}" = "yes"])
4050 AC_ARG_ENABLE(gnutls,
4051 [ --enable-gnutls GNU TLS TLS/SSL support (default enabled)])
4052 AS_IF([test "${enable_gnutls}" != "no"], [
4053 PKG_CHECK_MODULES(GNUTLS, [gnutls >= 3.2.0], [
4054 VLC_ADD_PLUGIN([gnutls])
4056 AS_IF([test -n "${enable_gnutls}"], [
4057 AC_MSG_ERROR([${GNUTLS_PKG_ERRORS}.)])
4066 AC_ARG_ENABLE(taglib,
4067 [AS_HELP_STRING([--disable-taglib],
4068 [do not use TagLib (default enabled)])])
4069 AS_IF([test "${enable_taglib}" != "no"], [
4070 PKG_CHECK_MODULES(TAGLIB, taglib >= 1.9, [
4071 VLC_ADD_PLUGIN([taglib])
4073 AC_MSG_WARN([${TAGLIB_PKG_ERRORS}.])])
4078 dnl update checking system
4080 AC_ARG_ENABLE(update-check,
4081 [ --enable-update-check update checking system (default disabled)])
4082 if test "${enable_update_check}" = "yes"
4084 if test "${have_libgcrypt}" != "yes"
4086 AC_MSG_ERROR([libgcrypt is required for update checking system])
4088 VLC_ADD_LIBS([libvlccore], [${GCRYPT_LIBS}])
4089 VLC_ADD_CFLAGS([libvlccore], [${GCRYPT_CFLAGS}])
4090 AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
4094 dnl Growl notification plugin
4096 AC_ARG_ENABLE(growl,
4097 [ --enable-growl growl notification plugin (default disabled)],,
4099 AS_IF([test "${enable_growl}" != "no"], [
4100 AC_CHECK_HEADERS(${CONTRIB_DIR}/Growl.framework/Versions/A/Headers/Growl.h, [
4101 VLC_ADD_PLUGIN([growl])
4102 VLC_ADD_LIBS([growl], [-F${CONTRIB_DIR} -Wl,-framework,Growl,-framework,Foundation])
4103 VLC_ADD_OBJCFLAGS([growl], [-F${CONTRIB_DIR}])
4104 VLC_ADD_OBJCFLAGS([growl], [-fobjc-exceptions] )
4110 dnl Libnotify notification plugin
4112 PKG_ENABLE_MODULES_VLC([NOTIFY], [], [libnotify gtk+-2.0], [libnotify notification], [auto])
4115 dnl Endianness check
4118 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
4119 DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
4123 AC_SUBST(DEFS_BIGENDIAN)
4126 dnl Where to install KDE solid .desktop
4128 AC_ARG_VAR([KDE4_CONFIG], [kde4-config utility])
4129 AS_IF([test "x$KDE4_CONFIG" = "x"], [
4130 KDE4_CONFIG="kde4-config"
4133 AC_ARG_WITH(kde-solid,
4134 AS_HELP_STRING([--with-kde-solid=PATH],
4135 [KDE Solid actions directory (auto)]),, [
4137 if test "${SYS}" != "mingw32" -a "${SYS}" != "darwin" ; then
4138 with_kde_solid="yes"
4142 AS_IF([test "${with_kde_solid}" != "no"], [
4143 AS_IF([test "${with_kde_solid}" = "yes"], [
4144 kde4datadir="`${KDE4_CONFIG} --install data`"
4145 AS_IF([test "x$kde4datadir" = "x"], [kde4datadir='${datadir}/kde4/apps'])
4146 soliddatadir="${kde4datadir}/solid/actions"
4148 soliddatadir="${with_kde_solid}"
4151 AC_SUBST(soliddatadir)
4152 AM_CONDITIONAL(KDE_SOLID, [test "x${soliddatadir}" != "x"])
4154 EXTEND_HELP_STRING([Components:])
4160 [ --enable-vlc build the VLC media player (default enabled)])
4161 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
4163 AC_ARG_ENABLE(macosx-vlc-app,
4164 [ --enable-macosx-vlc-app build the VLC media player (default enabled on Mac OS X)])
4165 AM_CONDITIONAL(BUILD_MACOSX_VLC_APP, [test "${enable_macosx_vlc_app}" != "no" &&
4166 (test "${SYS}" = "darwin" || test "${enable_macosx_vlc_app}" = "yes") ])
4169 dnl Stuff used by the program
4171 VERSION_MESSAGE="${VERSION} ${CODENAME}"
4172 COPYRIGHT_MESSAGE="Copyright © ${COPYRIGHT_YEARS} the VideoLAN team"
4173 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string])
4174 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string])
4175 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
4176 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
4177 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,${VERSION_MAJOR}, [version major number])
4178 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,${VERSION_MINOR}, [version minor number])
4179 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,${VERSION_REVISION}, [version revision number])
4180 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,${VERSION_EXTRA}, [version extra number])
4181 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_DEV,"${VERSION_DEV}", [version development string])
4182 AC_SUBST(COPYRIGHT_MESSAGE)
4183 AC_SUBST(VERSION_MESSAGE)
4184 AC_SUBST(VERSION_MAJOR)
4185 AC_SUBST(VERSION_MINOR)
4186 AC_SUBST(VERSION_REVISION)
4187 AC_SUBST(VERSION_EXTRA)
4188 AC_SUBST(COPYRIGHT_YEARS)
4189 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami|sed -e 's/\\\/\\\\\\\/g'`", [user who ran configure])
4190 AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -f 2>/dev/null || hostname`", [host which ran configure])
4191 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1 | sed -e 's/ *$//'`", [compiler])
4193 dnl Handle substvars that use $(top_srcdir)
4195 CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS}"
4198 dnl Configuration is finished
4208 AC_SUBST(WINE_SDK_PATH)
4210 AC_SUBST(AM_CPPFLAGS)
4211 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
4212 AC_SUBST(FILE_LIBVLCCORE_DLL)
4213 AC_SUBST(FILE_LIBVLC_DLL)
4227 modules/access_output/Makefile
4228 modules/audio_filter/Makefile
4229 modules/control/Makefile
4230 modules/gui/Makefile
4231 modules/gui/ios_dialog_provider/Makefile
4232 modules/gui/macosx/Makefile
4233 modules/gui/minimal_macosx/Makefile
4234 modules/gui/macosx_dialog_provider/Makefile
4235 modules/gui/qt4/Makefile
4236 modules/gui/skins2/Makefile
4237 modules/misc/Makefile
4238 modules/mux/Makefile
4239 modules/packetizer/Makefile
4240 modules/stream_out/Makefile
4241 modules/text_renderer/Makefile
4242 modules/video_filter/Makefile
4243 modules/video_output/Makefile
4244 modules/visualization/Makefile
4245 modules/hw/vdpau/Makefile
4246 modules/hw/mmal/Makefile
4249 AM_COND_IF([HAVE_WIN32], [
4251 extras/package/win32/NSIS/spad.nsi
4252 extras/package/win32/NSIS/vlc.win32.nsi
4253 extras/package/win32/msi/config.wxi
4257 AM_COND_IF([HAVE_DARWIN], [
4259 extras/package/macosx/Info.plist
4260 extras/package/macosx/Resources/English.lproj/InfoPlist.strings
4264 dnl Generate makefiles
4267 dnl Do we have to use make or gmake ?
4268 if make --version 2>&1|grep -q GNU
4270 # GNU make, all seems good
4273 # Known GNU make alias (on BSD)
4276 dnl Shortcut to nice compile message
4277 if test -n $SHELL; then
4278 SHELL=${CONFIG_SHELL-/bin/sh}
4281 compile_top_srcdir=`sed -ne "s/^top_srcdir *= *//p" < Makefile`
4285 export PATH=\"$PATH\" LANG=C
4286 ($MAKE V=1 \$@ 2>&1 || touch .error\$\$)| $compile_top_srcdir/extras/buildsystem/make.pl
4287 test -f .error\$\$ && ERROR=1
4289 exit \$ERROR" >compile
4293 libvlc configuration
4294 --------------------
4295 version : ${VERSION}
4297 architecture : ${ARCH}
4298 optimizations : ${enable_optimizations}"
4299 if test "${enable_vlc}" != "no"; then
4300 echo "vlc aliases :${ALIASES}"
4302 echo "build vlc executable : no"
4305 To build vlc and its plugins, type \`$MAKE', or \`./compile' if you like nice colors."