1 dnl Autoconf settings for vlc
3 AC_COPYRIGHT([Copyright 2002-2014 VLC authors and VideoLAN])
5 AC_INIT(vlc, 3.0.0-git)
15 CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
17 COPYRIGHT_YEARS="1996-2014"
19 AC_CONFIG_SRCDIR(src/libvlc.c)
20 AC_CONFIG_AUX_DIR(autotools)
21 AC_CONFIG_MACRO_DIR(m4)
22 AC_CONFIG_LIBOBJ_DIR(compat)
25 AC_PRESERVE_HELP_ORDER
27 AM_INIT_AUTOMAKE(tar-ustar color-tests foreign)
28 AC_CONFIG_HEADERS([config.h])
30 # Disable with "./configure --disable-silent-rules" or "make V=1"
31 AM_SILENT_RULES([yes])
33 dnl Too many people are not aware of maintainer mode:
34 dnl If you want to use it, you definitely know what you are doing, so
35 dnl you can specify "--disable-maintainer-mode". But if you want the default
36 dnl automake behavior, you've likely never heard of maintainer mode, so we
37 dnl can't expect you to enable it manually.
38 AS_IF([test "x${enable_maintainer_mode}" != "xno"],
39 [enable_maintainer_mode="yes"])
45 dnl vlcincludedir="\${includedir}/\${PKGDIR}"
46 dnl AC_SUBST(vlcincludedir)
47 vlcdatadir="\${datadir}/\${PKGDIR}"
49 vlclibdir="\${libdir}/\${PKGDIR}"
56 AC_USE_SYSTEM_EXTENSIONS
57 AC_DEFINE([_FORTIFY_SOURCE], 2, [Define to 2 to get glibc warnings.])
58 AC_DEFINE([_FILE_OFFSET_BITS], 64, [Define to 64 for large files support.])
64 AC_DEFINE([_THREAD_SAFE],, [Same as _REENTANT for some other OSes.])
65 AC_DEFINE([__LIBVLC__],, [Define within the LibVLC source code tree.])
66 AC_DEFINE([WIN32_LEAN_AND_MEAN],, [Define to limit the scope of <windows.h>.])
72 _AM_DEPENDENCIES([OBJC])
78 AC_ARG_VAR([DESKTOP_FILE_VALIDATE], [Validator for desktop entry files])
79 AC_CHECK_PROGS(DESKTOP_FILE_VALIDATE, [${DESKTOP_FILE_VALIDATE} desktop-file-validate], :)
80 AC_PATH_PROG(YASM, yasm)
82 dnl Check for compiler properties
87 dnl Extend the --help string at the current spot.
88 AC_DEFUN([EXTEND_HELP_STRING], [m4_divert_once([HELP_ENABLE], [$1])])
90 dnl Allow binary package maintainer to pass a custom string to avoid
92 AC_ARG_WITH(binary-version,
93 AS_HELP_STRING([--with-binary-version=STRING],
94 [To avoid plugins cache problem between binary version]),[],[])
95 AS_IF([test -n "${with_binary_version}"],[
96 AC_DEFINE_UNQUOTED([DISTRO_VERSION],["${with_binary_version}"],
97 [Binary specific version])
101 dnl Check the operating system
127 CFLAGS="${CFLAGS} -pthread"
131 CFLAGS="${CFLAGS} -pthread"
132 CPPFLAGS="${CPPFLAGS} -I/usr/local/include"
133 LDFLAGS="${LDFLAGS} -L/usr/local/lib"
137 CPPFLAGS="${CPPFLAGS} -I/usr/local/include -I/usr/X11R6/include"
138 LDFLAGS="${LDFLAGS} -L/usr/local/lib -L/usr/X11R6/lib/"
148 dnl Force gcc "-arch" flag
152 ARCH_flag="-arch i386"
153 YASMFLAGS="-f macho32"
156 ARCH_flag="-arch ppc64"
159 ARCH_flag="-arch ppc"
162 ARCH_flag="-arch x86_64"
163 YASMFLAGS="-f macho64"
166 ac_cv_c_bigendian="no"
167 ac_cv_c_attribute_packed="no"
172 CFLAGS="${CFLAGS} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"
173 CXXFLAGS="${CXXFLAGS} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"
174 CPPFLAGS="${CPPFLAGS} ${ARCH_flag}"
175 OBJCFLAGS="${OBJCFLAGS} -D_INTL_REDIRECT_MACROS -std=gnu99 ${ARCH_flag}"
176 LDFLAGS="${LDFLAGS} -Wl,-headerpad_max_install_names ${ARCH_flag}"
177 VLC_ADD_LIBS([libvlc vlc],[-Wl,-undefined,dynamic_lookup,-framework,AppKit])
178 VLC_ADD_LIBS([libvlccore],[-Wl,-framework,CoreFoundation,-framework,CoreServices])
181 [#import <TargetConditionals.h>
188 dnl Allow binaries created on Lion to run on earlier releases
190 [#import <Cocoa/Cocoa.h>
191 #ifdef MAC_OS_X_VERSION_10_7
194 [AC_MSG_RESULT([yes])
195 AC_LIBOBJ([getdelim])
197 AC_LIBOBJ([strnlen])],)
200 dnl Handle Mac OS X SDK flags
202 AC_ARG_WITH(macosx-sdk,
203 [AS_HELP_STRING([--with-macosx-sdk=DIR],
204 [compile using the SDK in DIR])])
205 if test "${with_macosx_sdk}" != "" ; then
206 test ! -d "${with_macosx_sdk}" && AC_MSG_ERROR([SDK "${with_macosx_sdk}" not found])
207 CPP="${CPP} -isysroot ${with_macosx_sdk}"
208 CC="${CC} -isysroot ${with_macosx_sdk}"
209 CXX="${CXX} -isysroot ${with_macosx_sdk}"
210 OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
211 LD="${LD} -syslibroot ${with_macosx_sdk}"
213 AC_ARG_WITH(macosx-version-min,
214 [AS_HELP_STRING([--with-macosx-version-min=VERSION],
215 [compile for Mac OS X VERSION and above])])
216 if test "${with_macosx_version_min}" != "" ; then
217 CPP="${CPP} -mmacosx-version-min=${with_macosx_version_min}"
218 CC="${CC} -mmacosx-version-min=${with_macosx_version_min}"
219 CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
220 OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
221 LD="${LD} -mmacosx_version_min=${with_macosx_version_min}"
224 *mingw32* | *cygwin* | *wince* | *mingwce*)
225 AC_CHECK_TOOL(WINDRES, windres, :)
226 AC_CHECK_TOOL(OBJCOPY, objcopy, :)
227 AH_TOP([#if defined(_WIN32) && !defined(_WIN32_WINNT)])
228 AH_TOP([# define _WIN32_WINNT 0x0502 /* Windows XP SP2 */])
230 AC_DEFINE([_WIN32_IE], 0x0600, [Define to '0x0600' for IE 6.0 (and shell) APIs.])
231 AC_DEFINE([_UNICODE], [1], [Define to 1 for Unicode (Wide Chars) APIs.])
232 AC_DEFINE([UNICODE], [1], [Define to 1 for Unicode (Wide Chars) APIs.])
233 AC_DEFINE([_ISOC99_SOURCE], [1], [Extensions to ISO C89 from ISO C99.])
234 AC_DEFINE([_ISOC11_SOURCE], [1], [Extensions to ISO C99 from ISO C11.])
235 AC_DEFINE([_POSIX_SOURCE], [1], [IEEE Std 1003.1.])
236 AC_DEFINE([_POSIX_C_SOURCE], [200809L], [IEEE Std 1003.1.])
237 AC_DEFINE([_XOPEN_SOURCE], [700], [POSIX and XPG 7th edition])
238 AC_DEFINE([_XOPEN_SOURCE_EXTENDED], [1], [XPG things and X/Open Unix extensions.])
239 AC_DEFINE([_BSD_SOURCE], [1], [ISO C, POSIX, and 4.3BSD things.])
240 AC_DEFINE([_SVID_SOURCE], [1], [ISO C, POSIX, and SVID things.])
247 dnl Check if we are using the mno-cygwin mode in which case we are
248 dnl actually dealing with a mingw32 compiler.
253 SYS=mingw32, AC_MSG_ERROR([VLC requires -mno-cygwin]))
257 if test "${SYS}" = "mingw32"; then
259 LDFLAGS="${LDFLAGS} -Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase"
261 VLC_ADD_LDFLAGS([vlc],[-mwindows])
262 VLC_ADD_LIBS([win32text],[-lgdi32])
263 AC_CHECK_PROGS(U2D, [unix2dos todos], unix2dos)
264 ac_default_prefix="`pwd`/_win32"
265 DESTDIR="`pwd`/_win32/"
268 dnl NSIS/MSI Installer prefix and WIN64
274 PROGRAMFILES="PROGRAMFILES64"
279 PROGRAMFILES="PROGRAMFILES"
283 AC_SUBST(WINDOWS_ARCH)
284 AC_SUBST(PROGRAMFILES)
302 LDFLAGS="${LDFLAGS} -Zomf -Zbin-files -Zargs-wild -Zhigh-mem"
308 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
309 AM_CONDITIONAL(HAVE_LINUX, test "${SYS}" = "linux")
310 AM_CONDITIONAL(HAVE_OS2, test "${SYS}" = "os2")
311 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
312 AM_CONDITIONAL(HAVE_WIN64, test "${HAVE_WIN64}" = "1")
313 AM_CONDITIONAL(HAVE_SYMBIAN, test "${SYS}" = "symbian")
314 AM_CONDITIONAL(HAVE_IOS, test "${HAVE_IOS}" = "1")
315 AM_CONDITIONAL(HAVE_OSX, test "${HAVE_OSX}" = "1")
320 dnl Sadly autoconf does not think about testing foo.exe when ask to test
321 dnl for program foo on win32
322 case "${build_os}" in
324 ac_executable_extensions=".exe"
330 dnl Android is linux, but a bit different
331 AS_IF([test "$SYS" = linux],[
332 AC_MSG_CHECKING([for an Android system])
333 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
334 [[#ifndef __ANDROID__
345 AM_CONDITIONAL(HAVE_ANDROID, test "${HAVE_ANDROID}" = "1")
349 dnl Check for the contrib directory
352 [AS_HELP_STRING([--with-contrib[=DIR]],
353 [search for 3rd party libraries in DIR/include and DIR/lib])
355 AC_MSG_CHECKING([for 3rd party libraries path])
356 AS_IF([test -z "${with_contrib}" || test "${with_contrib}" = "yes"], [
357 CONTRIB_DIR="${srcdir}/contrib/${host}"
358 AS_IF([test ! -d "${CONTRIB_DIR}"], [
359 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
360 CONTRIB_DIR="${srcdir}/contrib/`$CC -dumpmachine`"
361 AS_IF([test ! -d "${CONTRIB_DIR}"], [
362 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
363 CONTRIB_DIR="${srcdir}/extras/contrib/hosts/${host}"
364 AS_IF([test ! -d "${CONTRIB_DIR}"], [
365 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
366 CONTRIB_DIR="${srcdir}/extras/contrib/hosts/`$CC -dumpmachine`"
367 AS_IF([test ! -d "${CONTRIB_DIR}"], [
368 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
370 AC_MSG_RESULT([not found])
376 AS_IF([test "${with_contrib}" != "no"], [
377 CONTRIB_DIR="${with_contrib}"
380 AC_MSG_RESULT([disabled])
383 AS_IF([test -n "${CONTRIB_DIR}"], [
384 AS_IF([test -d "${CONTRIB_DIR}/lib"],[
385 CONTRIB_DIR=`cd "${CONTRIB_DIR}" && pwd`
387 echo "${CONTRIB_DIR}/lib not found" >&AS_MESSAGE_LOG_FD
389 AC_MSG_RESULT([not usable])
393 AS_IF([test -n "${CONTRIB_DIR}"], [
394 AC_MSG_RESULT([${CONTRIB_DIR}])
395 export PATH=${CONTRIB_DIR}/bin:$PATH
396 CPPFLAGS="${CPPFLAGS} -I${CONTRIB_DIR}/include"
397 CFLAGS="${CFLAGS} -I${CONTRIB_DIR}/include"
398 CXXFLAGS="${CXXFLAGS} -I${CONTRIB_DIR}/include"
399 OBJCFLAGS="${OBJCFLAGS} -I${CONTRIB_DIR}/include"
400 export PKG_CONFIG_PATH="${CONTRIB_DIR}/lib/pkgconfig:$PKG_CONFIG_PATH"
401 LDFLAGS="${LDFLAGS} -L${CONTRIB_DIR}/lib"
403 AS_IF([test "${SYS}" = "darwin"], [
404 export LD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$LD_LIBRARY_PATH"
405 export DYLD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$DYLD_LIBRARY_PATH"
408 AS_IF([test -n "${with_contrib}" && test "${with_contrib}" != "no"], [
409 AC_MSG_ERROR([Third party libraries not found!])
412 AC_SUBST(CONTRIB_DIR)
414 dnl Add extras/tools to the PATH
415 TOOLS_DIR="${srcdir}/extras/tools/build/bin"
416 AS_IF([test -d "${TOOLS_DIR}"], [
417 TOOLS_DIR=`cd "${TOOLS_DIR}" && pwd`
418 export PATH="${TOOLS_DIR}":$PATH
423 dnl It's very bad, but our former custom system was worst
427 dnl override platform specific check for dependent libraries
428 dnl otherwise libtool linking of shared libraries will
429 dnl fail on anything other than pass_all.
430 AC_CACHE_VAL(lt_cv_deplibs_check_method,
431 [lt_cv_deplibs_check_method=pass_all])
433 LT_INIT([dlopen win32-dll shared disable-static])
435 LT_LANG([Windows Resource])
439 lt_cv_deplibs_check_method=pass_all
441 AS_IF([test "${enable_shared}" = "no" -a "${enable_vlc}" != "no"], [
442 AC_MSG_ERROR([VLC is based on plugins. Shared libraries cannot be disabled.])
448 AM_GNU_GETTEXT_VERSION([0.19.2])
449 AM_GNU_GETTEXT([external], [need-ngettext])
458 AS_IF([test "${SYS}" = "mingw32"], [
459 dnl Check for broken versions of mingw-runtime compatability library
460 AC_MSG_CHECKING(for broken mingw-runtime)
461 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
463 #if defined(__MINGW64_VERSION_MAJOR)
464 # if __MINGW64_VERSION_MAJOR < 3
465 # error Attempting to use mingw-runtime with broken vsnprintf and direct2d support
467 #elif __MINGW32_MAJOR_VERSION == 3 && __MINGW32_MINOR_VERSION < 15
468 # error Attempting to use mingw-runtime with broken vsnprintf support
473 AC_MSG_RESULT([present])
474 AC_MSG_ERROR([LibVLC requires mingw-runtime version 3.15 or higher, or mingw-w64 version 3.0 or higher!])
476 dnl force use of mingw provided c99 *printf over msvcrt
477 CPPFLAGS="${CPPFLAGS} -D__USE_MINGW_ANSI_STDIO=1"
479 dnl Check for the need to include the mingwex lib for mingw32
481 AC_CHECK_LIB(mingwex,opendir,
482 AC_CHECK_LIB(mingw32,opendir,,
483 [VLC_ADD_LIBS([libvlccore],[-lmingwex])])
487 dnl Check for fnative-struct or mms-bitfields support for mingw32
489 CFLAGS="${CFLAGS} -mms-bitfields"
490 CXXFLAGS="${CXXFLAGS} -mms-bitfields"
491 AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
492 [ac_cv_c_mms_bitfields],
493 [AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
494 if test "${ac_cv_c_mms_bitfields}" = "no"; then
496 CFLAGS="${CFLAGS} -fnative-struct"
497 CXXFLAGS="${CXXFLAGS} -fnative-struct"
498 AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
499 [ac_cv_c_fnative_struct],
500 [AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
501 "${ac_cv_c_fnative_struct}" = "no" && VLC_RESTORE_FLAGS
505 AC_ARG_ENABLE(winstore_app,
506 AS_HELP_STRING([--enable-winstore-app],
507 [Build targetted for Windows Store apps (default disabled)]))
510 AS_IF([test "${SYS}" = "mingw32" -a "${enable_winstore_app}" = "yes"], [
512 VLC_ADD_LIBS([libvlccore], [-lole32 -lruntimeobject])
514 VLC_ADD_LIBS([libvlccore],[-lwinmm])
516 AC_DEFINE_UNQUOTED(VLC_WINSTORE_APP, ${vlc_winstore_app}, [Define to 1 if you want to build for Windows Store apps])
517 AM_CONDITIONAL([HAVE_WINSTORE], [test "$vlc_winstore_app" = "1"])
521 dnl Buggy glibc prevention. Purposedly not cached.
522 dnl See sourceware.org bugs 5058 and 5443.
523 dnl Ubuntu alone has 20 bug numbers for this...
525 AC_MSG_CHECKING(for buggy GNU/libc versions)
526 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
528 #if defined (__GLIBC__) && (__GLIBC__ == 2) \
529 && (__GLIBC_MINOR__ >= 5) && (__GLIBC_MINOR__ <= 7)
530 # error GNU/libc with dcgettext killer bug!
533 AC_MSG_RESULT([not present])
535 AC_MSG_RESULT([found])
536 AS_IF([test "x${enable_nls}" != "xno"], [
537 AC_MSG_ERROR([Buggy GNU/libc (version 2.5 - 2.7) present. VLC would crash; there is no viable
538 work-around for this. Check with your distribution vendor on how to update the
539 glibc run-time. Alternatively, build with --disable-nls.])
543 dnl Plugin compilation stuff
547 dnl Check for system libs needed
550 dnl Check for usual libc functions
551 AC_CHECK_DECLS([nanosleep],,,[#include <time.h>])
552 AC_CHECK_FUNCS([daemon fcntl fstatvfs fork getenv getpwuid_r isatty lstat memalign mmap open_memstream openat pread posix_fadvise posix_madvise setlocale stricmp strnicmp strptime uselocale pthread_cond_timedwait_monotonic_np pthread_condattr_setclock])
553 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])
554 AC_CHECK_FUNCS(fdatasync,,
555 [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
558 dnl mingw64 implements those as static inline, not functions with C linkage
560 AC_LANG_PROGRAM([#include <stdio.h>], [
562 if (asprintf(&c, "%s %d", "string", 1) == -1)
564 ])],[AC_DEFINE([HAVE_ASPRINTF],[1],[Define to 1 if you have asprintf function])],[AC_LIBOBJ([asprintf])])
566 AC_LANG_PROGRAM([#include <stdio.h>
567 #include <stdarg.h>], [
570 if (vasprintf(&c, "%s %d", ap) == -1)
572 ])],[AC_DEFINE([HAVE_VASPRINTF],[1],[Define to 1 if you have asprintf function])],[AC_LIBOBJ([vasprintf])])
574 dnl C11 static_assert()
575 AC_MSG_CHECKING([for static_assert in assert.h])
576 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <assert.h>], [
577 static_assert(1, "The impossible happened.");
580 AC_DEFINE([HAVE_STATIC_ASSERT], [1], [Define to 1 if <assert.h> defines static_assert.])
585 # Windows CE does not have strcoll()
588 dnl Check for non-standard system calls
591 AC_CHECK_FUNCS([accept4 pipe2 eventfd vmsplice sched_getaffinity])
594 AC_CHECK_FUNCS([_lock_file])
598 AH_BOTTOM([#include <vlc_fixups.h>])
600 dnl Check for struct pollfd
601 AC_CHECK_TYPES([struct pollfd],,,
602 [#include <sys/types.h>
605 #elif defined (_WIN32)
606 # include <winsock2.h>
610 dnl Checks for socket stuff
613 AC_SEARCH_LIBS(connect, [socket], [
614 AS_IF([test "$ac_cv_search_connect" != "none required"], [
615 SOCKET_LIBS="$ac_cv_search_connect"
618 AS_IF([test "${SYS}" = "mingw32"], [
619 SOCKET_LIBS="-lws2_32"
623 AC_SEARCH_LIBS([inet_pton], [nsl], [
624 AS_IF([test "$ac_cv_search_getaddrinfo" != "none required"], [
625 SOCKET_LIBS="$ac_cv_search_getaddrinfo $SOCKET_LIBS"
627 ],, [${SOCKET_LIBS}])
629 LIBS="${LIBS} ${SOCKET_LIBS}"
631 AC_LANG_PROGRAM([#ifdef _WIN32
632 # if _WIN32_WINNT < 0x600
635 #include <ws2tcpip.h>
637 #include <sys/socket.h>
638 #include <arpa/inet.h>
640 char dst[[sizeof(struct in_addr)]];
641 inet_pton(AF_INET, "127.0.0.1", dst);
642 ])],[AC_DEFINE([HAVE_INET_PTON],[1],[Define to 1 if you have inet_pton function])],[AC_LIBOBJ([inet_pton])])
643 AC_CHECK_FUNCS([if_nameindex if_nametoindex])
646 AS_IF([test -n "$SOCKET_LIBS"], [
647 VLC_ADD_LIBS([access_rtmp access_output_shout sap stream_out_standard stream_out_rtp stream_out_raop stream_out_chromecast oldrc netsync ts remoteosd audiobargraph_a],[${SOCKET_LIBS}])
649 AC_SUBST(SOCKET_LIBS)
651 dnl Check for socklen_t
652 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
653 AC_CACHE_CHECK([for socklen_t in sys/socket.h], dnl ` (fix VIM syntax highlight
654 ac_cv_type_socklen_t,
655 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
656 [#include <sys/types.h>
658 # include <winsock2.h>
659 # include <ws2tcpip.h>
661 # include <sys/socket.h>
662 #endif]], [[socklen_t len; len = 0;]])],
663 ac_cv_type_socklen_t=yes,
664 ac_cv_type_socklen_t=no)])
665 AS_IF([test "$ac_cv_type_socklen_t" = no],
666 [AC_DEFINE(socklen_t, int)])
668 dnl Check for struct sockaddr_storage
669 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
670 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
671 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
673 [#include <sys/types.h>
674 #if defined( _WIN32 )
675 # include <winsock2.h>
677 # include <sys/socket.h>
678 #endif], [struct sockaddr_storage addr;],
679 ac_cv_struct_sockaddr_storage=yes,
680 ac_cv_struct_sockaddr_storage=no)])
681 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
682 AC_DEFINE(sockaddr_storage, sockaddr)
683 AC_DEFINE(ss_family, sa_family)
686 dnl FreeBSD has a gnugetopt library for this:
688 AC_CHECK_FUNC(getopt_long,, [
689 AC_CHECK_LIB([gnugetopt],[getopt_long], [
690 GNUGETOPT_LIBS="-lgnugetopt"
693 AC_SUBST(GNUGETOPT_LIBS)
696 VLC_ADD_LIBS([adjust wave ripple psychedelic gradient a52tofloat32 dtstofloat32 x264 goom noise grain scene chorus_flanger freetype swscale postproc equalizer spatializer param_eq samplerate freetype mpc qt4 compressor headphone_channel_mixer normvol audiobargraph_a audiobargraph_v mono colorthres extract ball hotkeys mosaic gaussianblur x262 x26410b hqdn3d anaglyph oldrc ncurses oldmovie glspectrum smooth],[-lm])
703 AC_CHECK_LIB(m,lrintf, [
704 AC_DEFINE(HAVE_LRINTF, 1, [Define to 1 if you have the lrintf function])
705 VLC_ADD_LIBS([skins2],[-lm])
708 AC_DEFINE(HAVE_NANF, 1, [Define to 1 if you have the NANF function])
711 dnl Check for dynamic plugins
713 have_dynamic_objects="no"
715 AC_SEARCH_LIBS(dlsym, [dl svld], [
716 AS_IF([test "$ac_cv_search_dlsym" != "none required"], [
717 LIBDL="$ac_cv_search_dlsym"
719 have_dynamic_objects="yes"
724 AS_IF([test "${SYS}" = "mingw32"], [
726 have_dynamic_objects="yes" #assume we can use shared objects
729 AS_IF([test "${enable_shared}" = "no"], [
730 have_dynamic_objects=no
732 AM_CONDITIONAL(HAVE_DYNAMIC_PLUGINS, [test "${have_dynamic_objects}" != "no"])
736 dnl Check for thread library
738 AS_IF([test "${SYS}" != "mingw32"], [
741 AC_SEARCH_LIBS(pthread_rwlock_init, pthread pthreads c_r, [
742 AS_IF([test "$ac_cv_search_pthread_rwlock_init" != "none required"], [
743 LIBPTHREAD="$ac_cv_search_pthread_rwlock_init"
748 AC_CHECK_LIB(rt, clock_nanosleep, [
749 VLC_ADD_LIBS([libvlccore],[-lrt])
751 AC_CHECK_FUNC(nanosleep,,[
752 AC_CHECK_LIB(rt,nanosleep, [
753 VLC_ADD_LIBS([libvlccore],[-lrt])
755 AC_CHECK_LIB(posix4,nanosleep, [
756 VLC_ADD_LIBS([libvlccore],[-lposix4])
761 AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LIBS([libvlccore],[-lrt])])
766 dnl Check for headers
768 AC_CHECK_HEADERS([arpa/inet.h pthread.h search.h syslog.h sys/shm.h sys/socket.h])
769 AC_CHECK_HEADERS([net/if.h], [], [],
771 #include <sys/types.h>
772 #include <sys/socket.h>
775 AC_CHECK_HEADERS([netinet/udplite.h sys/param.h sys/mount.h])
777 AC_CHECK_HEADERS([getopt.h linux/dccp.h linux/magic.h mntent.h sys/eventfd.h])
779 AC_CHECK_HEADERS([xlocale.h])
781 dnl LP64 and LLP64 architectures had better define ssize_t by themselves...
782 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.]) dnl ` (fix VIM syntax highlight
783 AC_CHECK_TYPE(ssize_t,, [
784 AC_DEFINE(ssize_t, int)
787 dnl It seems that autoconf detects pkg-config only during the first
788 dnl PKG_CHECK_MODULES from configure.ac - which makes sense. But in our case,
789 dnl it is nested within a conditional block, so it was not working right.
790 dnl Make PKG_CONFIG_PATH precious so that it appears in the help and get saved
791 AC_ARG_VAR(PKG_CONFIG_PATH,
792 [Paths where to find .pc not at the default location])
793 PKG_PROG_PKG_CONFIG()
795 dnl On some OS we need static linking
796 AS_IF([test -n "${PKG_CONFIG}" ],[
797 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "darwin" -o "${SYS}" = "os2" ],[
798 PKG_CONFIG="${PKG_CONFIG} --static"
804 dnl Check for zlib.h and -lz along with system -lminizip if available
806 AC_CHECK_HEADERS(zlib.h, [ have_zlib=yes ], [ have_zlib=no ])
807 AM_CONDITIONAL(HAVE_ZLIB, [ test "${have_zlib}" = "yes" ])
808 if test "${have_zlib}" = "yes"
810 VLC_ADD_LIBS([skins2 sap unzip zip],[-lz])
811 PKG_CHECK_MODULES([MINIZIP], [minizip] , [ have_minizip=yes ], [
812 AC_CHECK_HEADERS([unzip.h], [
814 MINIZIP_LIBS="-lminizip -lz"
816 VLC_ADD_CPPFLAGS([skins2], [-I\\\$(top_srcdir)/modules/access/zip/unzip])
817 VLC_ADD_LIBS([skins2], [\\\$(top_builddir)/modules/libunzip.la])
821 VLC_ADD_CPPFLAGS([skins2],[$MINIZIP_CFLAGS])
822 VLC_ADD_LIBS([skins2],[$MINIZIP_LIBS])
824 AM_CONDITIONAL(HAVE_MINIZIP, [ test "${have_minizip}" = "yes" ])
828 dnl Domain name i18n support via GNU libidn
830 PKG_CHECK_MODULES([IDN], [libidn], [
832 AC_DEFINE([HAVE_IDN], 1, [Define to 1 if you have GNU libidn.])
840 [AS_HELP_STRING([--enable-dbus],
841 [compile D-Bus message bus support (default enabled)])])
843 AS_IF([test "${enable_dbus}" != "no"], [
844 PKG_CHECK_MODULES(DBUS, [dbus-1 >= 1.6.0], [
847 AS_IF([test -n "${enable_dbus}"], [
848 AC_MSG_ERROR([${DBUS_PKG_ERRORS}.])
850 AC_MSG_WARN([${DBUS_PKG_ERRORS}.])
854 AM_CONDITIONAL([HAVE_DBUS], [test "${have_dbus}" = "yes"])
856 dnl Check for ntohl, etc.
858 CFLAGS="${CFLAGS} -Wall -Werror"
859 AC_CACHE_CHECK([for ntohl in sys/param.h],
860 [ac_cv_c_ntohl_sys_param_h],
861 [ AC_TRY_COMPILE([#include <sys/param.h>],
862 [int meuh; ntohl(meuh);],
863 ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
864 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
865 AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
869 EXTEND_HELP_STRING([Optimization options:])
871 dnl Compiler warnings
874 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])
875 RDC_PROG_CC_FLAGS([-pipe])
877 RDC_PROG_CXX_WFLAGS([all extra sign-compare undef pointer-arith volatile-register-var])
884 [AS_HELP_STRING([--enable-debug],
885 [build with run-time assertions (default disabled)])],,
888 [Define to 1 if debug code should NOT be compiled])
889 AS_IF([test "${enable_debug}" != "no"], [
890 AC_CHECK_HEADERS([valgrind/valgrind.h])
899 [AS_HELP_STRING([--enable-gprof],[profile with gprof (default disabled)])],,
901 AS_IF([test "${enable_gprof}" != "no"], [
902 CFLAGS="${CFLAGS} -pg"
903 CXXFLAGS="${CXXFLAGS} -pg"
904 OBJCFLAGS="${OBJCFLAGS} -pg"
905 LDFLAGS="${LDFLAGS} -pg"
909 [AS_HELP_STRING([--enable-cprof],[profile with cprof (default disabled)])],,
911 AS_IF([test "${enable_gprof}" != "no"], [
912 CFLAGS="${CFLAGS} -finstrument-functions"
913 CXXFLAGS="${CXXFLAGS} -finstrument-functions"
914 OBJCFLAGS="${OBJCFLAGS} -finstrument-functions"
915 LDFLAGS="${LDFLAGS} -finstrument-functions"
921 AC_ARG_ENABLE(coverage,
922 [AS_HELP_STRING([--enable-coverage],
923 [build for test coverage (default disabled)])],,
924 [enable_coverage="no"])
925 AS_IF([test "${enable_coverage}" != "no"], [
926 CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
927 CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
928 LDFLAGS="-lgcov ${LDFLAGS}"
931 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "os2"], [
933 CFLAGS="${CFLAGS} -fvisibility=hidden"
934 CXXFLAGS="${CXXFLAGS} -fvisibility=hidden"
935 OBJCFLAGS="${OBJCFLAGS} -fvisibility=hidden"
936 AC_CACHE_CHECK([if $CC accepts -fvisibility=hidden],
937 [ac_cv_c_visibility_hidden], [
938 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
939 ac_cv_c_visibility_hidden=yes
941 ac_cv_c_visibility_hidden=no
944 AS_IF([test "${ac_cv_c_visibility_hidden}" = "no"], [VLC_RESTORE_FLAGS])
949 dnl Enable/disable optimizations
951 AC_ARG_ENABLE(optimizations,
952 [AS_HELP_STRING([--disable-optimizations],
953 [disable compiler optimizations (default enabled)])],,
954 [enable_optimizations="yes"])
956 dnl Check for various optimization flags
957 AS_IF([test "${enable_optimizations}" != "no"], [
959 dnl -O3 only in production builds
960 AS_IF([test "${enable_debug}" = "no"], [
962 CFLAGS="${CFLAGS} -O3"
963 CXXFLAGS="${CXXFLAGS} -O3"
964 OBJCFLAGS="${OBJCFLAGS} -O3"
965 AC_CACHE_CHECK([if $CC accepts -O3], [ac_cv_c_o3], [
966 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
972 AS_IF([test "${ac_cv_c_o3}" = "no"], [VLC_RESTORE_FLAGS])
975 dnl Check for -ffast-math
977 CFLAGS="${CFLAGS} -ffast-math"
978 CXXFLAGS="${CXXFLAGS} -ffast-math"
979 OBJCFLAGS="${OBJCFLAGS} -ffast-math"
980 AC_CACHE_CHECK([if $CC accepts -ffast-math], [ac_cv_c_fast_math], [
981 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
982 ac_cv_c_fast_math=yes
987 AS_IF([test "${ac_cv_c_fast_math}" = "no"], [VLC_RESTORE_FLAGS])
989 #ifndef __FAST_MATH__
991 # pragma STDC FENV_ACCESS OFF
992 # pragma STDC FP_CONTRACT ON
994 # pragma fenv_access(off)
995 # pragma fp_contract(on)
1000 dnl Check for -funroll-loops
1002 CFLAGS="${CFLAGS} -funroll-loops"
1003 CXXFLAGS="${CXXFLAGS} -funroll-loops"
1004 OBJCFLAGS="${OBJCFLAGS} -funroll-loops"
1005 AC_CACHE_CHECK([if $CC accepts -funroll-loops], [ac_cv_c_unroll_loops], [
1006 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1007 ac_cv_c_unroll_loops=yes
1009 ac_cv_c_unroll_loops=no
1012 AS_IF([test "${ac_cv_c_unroll_loops}" = "no"], [VLC_RESTORE_FLAGS])
1014 AS_IF([test "$enable_debug" = "no"], [
1015 dnl Check for -fomit-frame-pointer
1017 CFLAGS="${CFLAGS} -fomit-frame-pointer"
1018 CXXFLAGS="${CXXFLAGS} -fomit-frame-pointer"
1019 OBJCFLAGS="${OBJCFLAGS} -fomit-frame-pointer"
1020 AC_CACHE_CHECK([if $CC accepts -fomit-frame-pointer],
1021 [ac_cv_c_omit_frame_pointer], [
1022 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1023 ac_cv_c_omit_frame_pointer=yes
1025 ac_cv_c_omit_frame_pointer=no
1028 AS_IF([test "${ac_cv_c_omit_frame_pointer}" = "no"], [VLC_RESTORE_FLAGS])
1033 LDFLAGS="${LDFLAGS} -Wl,-Bsymbolic"
1034 AC_CACHE_CHECK([if linker supports -Bsymbolic], [ac_cv_ld_bsymbolic], [
1036 ac_cv_ld_bsymbolic="-Wl,-Bsymbolic"
1038 ac_cv_ld_bsymbolic=""
1042 SYMBOLIC_LDFLAGS="${ac_cv_ld_bsymbolic}"
1043 AC_SUBST(SYMBOLIC_LDFLAGS)
1045 dnl Checks for __attribute__(aligned()) directive
1047 CFLAGS="${CFLAGS} -Werror"
1048 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1049 [ac_cv_c_attribute_aligned],
1050 [ac_cv_c_attribute_aligned=0
1051 for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1053 [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1054 [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1057 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1058 AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1059 [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1062 dnl Check for __attribute__((packed))
1063 AC_CACHE_CHECK([for __attribute__((packed))],
1064 [ac_cv_c_attribute_packed],
1065 [ac_cv_c_attribute_packed=no
1066 AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b; (void)b;],
1067 [ac_cv_c_attribute_packed=yes])])
1068 if test "${ac_cv_c_attribute_packed}" != "no"; then
1069 AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1075 case "${host_cpu}" in
1084 dnl Check for backtrace() support
1085 AC_CHECK_HEADERS(execinfo.h)
1086 AC_CHECK_FUNCS(backtrace)
1091 ALIASES="${ALIASES} cvlc rvlc"
1094 dnl Accelerated modules
1097 dnl Check for fully working MMX intrinsics
1098 dnl We need support for -mmmx, we need <mmintrin.h>, and we also need a
1099 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1101 [AS_HELP_STRING([--disable-mmx],
1102 [disable MMX optimizations (default auto)])],,[
1103 case "${host_cpu}" in
1114 AS_IF([test "${enable_mmx}" != "no"], [
1117 CFLAGS="${CFLAGS} -mmmx"
1118 AC_CACHE_CHECK([if $CC groks MMX intrinsics], [ac_cv_c_mmx_intrinsics], [
1119 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1120 [#include <mmintrin.h>
1122 uint64_t frobzor;]], [
1124 a = b = c = (__m64)frobzor;
1125 a = _mm_slli_pi16(a, 3);
1126 a = _mm_adds_pi16(a, b);
1127 c = _mm_srli_pi16(c, 8);
1128 c = _mm_slli_pi16(c, 3);
1129 b = _mm_adds_pi16(b, c);
1130 a = _mm_unpacklo_pi8(a, b);
1131 frobzor = (uint64_t)a;]])], [
1132 ac_cv_c_mmx_intrinsics=yes
1134 ac_cv_c_mmx_intrinsics=no
1138 AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1139 AC_DEFINE(HAVE_MMX_INTRINSICS, 1, [Define to 1 if MMX intrinsics are available.])
1143 CFLAGS="${CFLAGS} -mmmx"
1144 AC_CACHE_CHECK([if $CC groks MMX inline assembly], [ac_cv_mmx_inline], [
1145 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1147 asm volatile("packuswb %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1150 ac_cv_mmx_inline=yes
1155 AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1156 AC_DEFINE(CAN_COMPILE_MMX, 1, [Define to 1 inline MMX assembly is available.])
1160 AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1161 [ac_cv_mmxext_inline], [
1162 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1164 asm volatile("maskmovq %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1167 ac_cv_mmxext_inline=yes
1169 ac_cv_mmxext_inline=no
1173 AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1174 AC_DEFINE(CAN_COMPILE_MMXEXT, 1, [Define to 1 if MMX EXT inline assembly is available.])
1178 AM_CONDITIONAL([HAVE_MMX], [test "${have_mmx}" = "yes"])
1179 AM_CONDITIONAL([HAVE_MMXEXT], [test "${have_mmxext}" = "yes"])
1181 dnl Check for fully workin SSE2 intrinsics
1182 dnl We need support for -mmmx, we need <emmintrin.h>, and we also need a
1183 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1185 [AS_HELP_STRING([--disable-sse],
1186 [disable SSE (1-4) optimizations (default auto)])],, [
1187 case "${host_cpu}" in
1197 AS_IF([test "${enable_sse}" != "no"], [
1198 ARCH="${ARCH} sse sse2"
1201 CFLAGS="${CFLAGS} -msse2"
1202 AC_CACHE_CHECK([if $CC groks SSE2 intrinsics], [ac_cv_c_sse2_intrinsics], [
1203 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1204 [#include <emmintrin.h>
1206 uint64_t frobzor;]], [
1208 a = b = c = _mm_set1_epi64((__m64)frobzor);
1209 a = _mm_slli_epi16(a, 3);
1210 a = _mm_adds_epi16(a, b);
1211 c = _mm_srli_epi16(c, 8);
1212 c = _mm_slli_epi16(c, 3);
1213 b = _mm_adds_epi16(b, c);
1214 a = _mm_unpacklo_epi8(a, b);
1215 frobzor = (uint64_t)_mm_movepi64_pi64(a);]])], [
1216 ac_cv_c_sse2_intrinsics=yes
1218 ac_cv_c_sse2_intrinsics=no
1222 AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1223 AC_DEFINE(HAVE_SSE2_INTRINSICS, 1, [Define to 1 if SSE2 intrinsics are available.])
1227 CFLAGS="${CFLAGS} -msse"
1228 AC_CACHE_CHECK([if $CC groks SSE inline assembly], [ac_cv_sse_inline], [
1229 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1231 asm volatile("xorps %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1234 ac_cv_sse_inline=yes
1240 AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1241 AC_DEFINE(CAN_COMPILE_SSE, 1, [Define to 1 if SSE inline assembly is available.])
1244 AC_CACHE_CHECK([if $CC groks SSE2 inline assembly], [ac_cv_sse2_inline], [
1245 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1247 asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1250 ac_cv_sse2_inline=yes
1252 ac_cv_sse2_inline=no
1255 AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1256 AC_DEFINE(CAN_COMPILE_SSE2, 1, [Define to 1 if SSE2 inline assembly is available.])
1261 AC_CACHE_CHECK([if $CC groks SSE3 inline assembly], [ac_cv_sse3_inline], [
1262 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1264 asm volatile("movsldup %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1267 ac_cv_sse3_inline=yes
1269 ac_cv_sse3_inline=no
1273 AS_IF([test "${ac_cv_sse3_inline}" != "no"], [
1274 AC_DEFINE(CAN_COMPILE_SSE3, 1, [Define to 1 if SSE3 inline assembly is available.]) ])
1276 AC_CACHE_CHECK([if $CC groks SSSE3 inline assembly], [ac_cv_ssse3_inline], [
1277 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1279 asm volatile("pabsw %%xmm0,%%xmm0"::"r"(p):"xmm0");
1282 ac_cv_ssse3_inline=yes
1284 ac_cv_ssse3_inline=no
1288 AS_IF([test "${ac_cv_ssse3_inline}" != "no"], [
1289 AC_DEFINE(CAN_COMPILE_SSSE3, 1, [Define to 1 if SSSE3 inline assembly is available.]) ])
1292 AC_CACHE_CHECK([if $CC groks SSE4.1 inline assembly],
1293 [ac_cv_sse4_1_inline], [
1294 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1296 asm volatile("pmaxsb %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1299 ac_cv_sse4_1_inline=yes
1301 ac_cv_sse4_1_inline=no
1305 AS_IF([test "${ac_cv_sse4_1_inline}" != "no"], [
1306 AC_DEFINE(CAN_COMPILE_SSE4_1, 1, [Define to 1 if SSE4_1 inline assembly is available.]) ])
1309 AC_CACHE_CHECK([if $CC groks SSE4.2 inline assembly],
1310 [ac_cv_sse4_2_inline], [
1311 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1313 asm volatile("pcmpgtq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1316 ac_cv_sse4_2_inline=yes
1318 ac_cv_sse4_2_inline=no
1322 AS_IF([test "${ac_cv_sse4_2_inline}" != "no"], [
1323 AC_DEFINE(CAN_COMPILE_SSE4_2, 1, [Define to 1 if SSE4_2 inline assembly is available.]) ])
1326 AC_CACHE_CHECK([if $CC groks SSE4A inline assembly], [ac_cv_sse4a_inline], [
1327 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1329 asm volatile("insertq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1332 ac_cv_sse4a_inline=yes
1334 ac_cv_sse4a_inline=no
1338 AS_IF([test "${ac_cv_sse4a_inline}" != "no"], [
1339 AC_DEFINE(CAN_COMPILE_SSE4A, 1, [Define to 1 if SSE4A inline assembly is available.]) ])
1341 AM_CONDITIONAL([HAVE_SSE2], [test "$have_sse2" = "yes"])
1344 CFLAGS="${CFLAGS} -mmmx"
1346 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly], [ac_cv_3dnow_inline], [
1347 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1349 asm volatile("pfadd %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1352 ac_cv_3dnow_inline=yes
1354 ac_cv_3dnow_inline=no
1358 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1359 AC_DEFINE(CAN_COMPILE_3DNOW, 1,
1360 [Define to 1 if 3D Now! inline assembly is available.])
1363 AM_CONDITIONAL([HAVE_3DNOW], [test "$have_3dnow" = "yes"])
1367 [AS_HELP_STRING([--disable-neon],
1368 [disable NEON optimizations (default auto)])],, [
1369 AS_IF([test "${host_cpu}" = "arm"], [enable_neon="yes"] ,[enable_neon="no"])
1371 AS_IF([test "${enable_neon}" != "no"], [
1373 CFLAGS="${CFLAGS} -mfpu=neon -mhard-float"
1374 AC_CACHE_CHECK([if $CCAS groks ARM NEON assembly], [ac_cv_arm_neon], [
1377 asm volatile("vqmovun.s64 d0, q1":::"d0");
1380 ac_cv_arm_neon="yes"
1387 AM_CONDITIONAL(HAVE_NEON, [test "${ac_cv_arm_neon}" = "yes"])
1390 AC_ARG_ENABLE(altivec,
1391 [AS_HELP_STRING([--disable-altivec],
1392 [disable AltiVec optimizations (default auto)])],, [
1393 AS_CASE("${host_cpu}", [powerpc*],
1394 [enable_altivec=yes], [enable_altivec=no])
1398 AS_IF([test "${enable_altivec}" = "yes"], [
1399 ARCH="${ARCH} altivec";
1401 AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1402 [ac_cv_altivec_inline],
1403 [AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1404 ac_cv_altivec_inline="yes",
1405 [CFLAGS="${CFLAGS} -Wa,-maltivec"
1406 AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1407 [ac_cv_altivec_inline="-Wa,-maltivec"],
1408 ac_cv_altivec_inline=no)
1411 AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1412 AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1413 [Define to 1 if AltiVec inline assembly is available.])
1414 AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1415 ALTIVEC_CFLAGS="${ac_cv_altivec_inline}"
1416 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_altivec_inline}])
1422 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1423 [ac_cv_c_altivec], [
1424 CFLAGS="${CFLAGS} -maltivec"
1425 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1426 [#include <altivec.h>]], [
1427 [vec_ld(0, (unsigned char *)0);]])], [
1428 ac_cv_c_altivec="-maltivec"
1430 ac_cv_c_altivec="no"
1434 AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1435 CPPFLAGS="${CPPFLAGS} ${ac_cv_c_altivec}"
1436 AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, [Define to 1 if C AltiVec extensions are available.])
1437 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_c_altivec}])
1438 ALTIVEC_CFLAGS="$ALTIVEC_FLAGS ${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}"
1439 VLC_ADD_CFLAGS([deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1442 AC_CHECK_HEADERS(altivec.h)
1445 LDFLAGS="${LDFLAGS} -Wl,-framework,vecLib"
1446 AC_CACHE_CHECK([if linker needs -framework vecLib],
1448 [AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)])
1450 AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1451 VLC_ADD_LIBS([libvlccore],[-Wl,-framework,vecLib])
1454 AC_SUBST(ALTIVEC_CFLAGS)
1455 AM_CONDITIONAL([HAVE_ALTIVEC], [test "$have_altivec" = "yes"])
1460 AC_ARG_ENABLE(optimize-memory,
1461 [AS_HELP_STRING([--enable-optimize-memory],
1462 [optimize memory usage over performance])])
1463 if test "${enable_optimize_memory}" = "yes"; then
1464 AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1468 dnl Allow running as root (useful for people running on embedded platforms)
1470 AC_ARG_ENABLE(run-as-root,
1471 [AS_HELP_STRING([--enable-run-as-root],
1472 [allow running VLC as root (default disabled)])])
1473 AS_IF([test "${enable_run_as_root}" = "yes"],[
1474 AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1475 [Define to 1 to allow running VLC as root (uid 0).])
1482 [AS_HELP_STRING([--disable-sout],
1483 [disable streaming output (default enabled)])])
1484 AS_IF([test "${enable_sout}" != "no"], [
1485 AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1487 AM_CONDITIONAL(ENABLE_SOUT, [test "${enable_sout}" != "no"])
1491 [AS_HELP_STRING([--disable-lua],
1492 [disable LUA scripting support (default enabled)])])
1493 if test "${enable_lua}" != "no"
1495 PKG_CHECK_MODULES(LUA, lua5.2,
1498 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua 5.1 instead])
1500 PKG_CHECK_MODULES(LUA, lua5.1,
1503 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua >= 5.1 instead])
1504 PKG_CHECK_MODULES(LUA, lua >= 5.1,
1507 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying manual detection instead])
1509 AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1512 AC_CHECK_LIB( lua5.2 , luaL_newstate,
1513 [LUA_LIBS="-llua5.2"],
1514 AC_CHECK_LIB( lua5.1 , luaL_newstate,
1515 [LUA_LIBS="-llua5.1"],
1516 AC_CHECK_LIB( lua51 , luaL_newstate,
1517 [LUA_LIBS="-llua51"],
1518 AC_CHECK_LIB( lua , luaL_newstate,
1526 if test "x${have_lua}" != "xyes" ; then
1527 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.])
1529 AC_ARG_VAR([LUAC], [LUA byte compiler])
1530 AC_PATH_PROGS(LUAC,[${LUAC} luac], [false])
1531 AS_IF([test "${LUAC}" = "false"], [
1532 AC_MSG_ERROR([Could not find the LUA byte compiler.])
1534 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], [
1535 AC_MSG_ERROR([You need 32-bits luac when using using lua from contrib.])
1538 AM_CONDITIONAL(BUILD_LUA, [test "${have_lua}" = "yes"])
1544 AC_ARG_ENABLE(httpd,
1545 [AS_HELP_STRING([--disable-httpd],
1546 [disable the built-in HTTP server (default enabled)])])
1547 if test "${enable_httpd}" != "no"
1549 AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP daemon support)
1551 AM_CONDITIONAL(BUILD_HTTPD, [test "${enable_httpd}" != "no"])
1555 dnl VideoLAN manager
1558 [AS_HELP_STRING([--disable-vlm],
1559 [disable the stream manager (default enabled)])],,
1560 [enable_vlm="${enable_sout}"])
1561 AS_IF([test "${enable_vlm}" != "no"], [
1562 AS_IF([test "${enable_sout}" = "no"], [
1563 AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1565 AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1567 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1571 dnl Addons manager storage and repositories modules
1573 AC_ARG_ENABLE(addonmanagermodules,
1574 [AS_HELP_STRING([--disable-addonmanagermodules],
1575 [disable the addons manager modules (default enabled)])])
1576 if test "${enable_addonmanagermodules}" != "no"
1578 AC_DEFINE(ENABLE_ADDONMANAGERMODULES, 1, [Define if you want the addons manager modules])
1580 AM_CONDITIONAL([ENABLE_ADDONMANAGERMODULES], [test "${enable_addonmanagermodules}" != "no"])
1587 EXTEND_HELP_STRING([Input plugins:])
1590 dnl libarchive access module
1592 PKG_ENABLE_MODULES_VLC([ARCHIVE], [access_archive], [libarchive >= 2.8.5], (libarchive support), [auto])
1597 AC_ARG_ENABLE(live555,
1598 [AS_HELP_STRING([--enable-live555],
1599 [enable RTSP input through live555 (default enabled)])])
1601 AS_IF([test "${enable_live555}" != "no" -a -n "${CXX}"], [
1602 PKG_CHECK_MODULES(LIVE555, live555, [
1603 VLC_ADD_PLUGIN([live555])
1604 VLC_ADD_CXXFLAGS([live555], [$LIVE555_CFLAGS])
1605 VLC_ADD_LIBS([live555],[$LIVE555_LIBS])
1607 AC_MSG_WARN([${LIVE555_PKG_ERRORS}.])
1612 dnl detect include paths
1613 AS_IF([test -f "${CONTRIB_DIR}/include/UsageEnvironment.hh"], [
1614 CPPFLAGS_live555="-I${CONTRIB_DIR}/include/liveMedia -I${CONTRIB_DIR}/include/groupsock -I${CONTRIB_DIR}/include/BasicUsageEnvironment -I${CONTRIB_DIR}/include/UsageEnvironment"
1616 AS_IF([test "${SYS}" != "os2"], [
1617 LIVE555_PREFIX=${LIVE555_PREFIX-"/usr"}
1618 CPPFLAGS_live555="-I${LIVE555_PREFIX}/include/liveMedia -I${LIVE555_PREFIX}/include/groupsock -I${LIVE555_PREFIX}/include/BasicUsageEnvironment -I${LIVE555_PREFIX}/include/UsageEnvironment"
1620 LIVE555_PREFIX=${LIVE555_PREFIX-"/usr/lib/live"}
1621 CPPFLAGS_live555="-I${LIVE555_PREFIX}/liveMedia/include -I${LIVE555_PREFIX}/groupsock/include -I${LIVE555_PREFIX}/BasicUsageEnvironment/include -I${LIVE555_PREFIX}/UsageEnvironment/include"
1622 LDFLAGS_live555="-L${LIVE555_PREFIX}/liveMedia -L${LIVE555_PREFIX}/groupsock -L${LIVE555_PREFIX}/BasicUsageEnvironment -L${LIVE555_PREFIX}/UsageEnvironment"
1627 AS_IF([test "${SYS}" = "solaris"], [
1628 CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1630 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1631 LDFLAGS="${LDFLAGS} ${LDFLAGS_live555}"
1634 AC_CACHE_CHECK([for live555 version 1324598400 or later], [ac_cv_live555], [
1635 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
1636 [#include <liveMedia_version.hh>
1637 #if !defined (LIVEMEDIA_LIBRARY_VERSION_INT) || (LIVEMEDIA_LIBRARY_VERSION_INT < 1324598400)
1647 AS_IF([test "$ac_cv_live555" = "no"], [
1648 AC_MSG_WARN([live555 is missing or its installed version is too old:
1649 Version 2011.12.23 or later is required to proceed.
1650 You can get an updated one from http://www.live555.com/liveMedia .])
1651 AS_IF([test -n "${enable_live555}"], [
1652 AC_MSG_ERROR([Update live555 or pass --disable-live555 to disable RTSP input support.])
1655 other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1656 other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
1657 AS_IF([test "${SYS}" = "mingw32"], [
1658 # add ws2_32 for closesocket, select, recv
1659 other_libs="$other_libs -lws2_32"
1662 dnl We need to check for pic because live555 don't provide shared libs
1663 dnl and we want to build a plugins so we need -fPIC on some arch.
1664 VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1665 VLC_ADD_LDFLAGS([live555], [${LDFLAGS_live555}])
1666 AC_CHECK_LIB(liveMedia_pic, main, [
1667 VLC_ADD_PLUGIN([live555])
1668 VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
1670 AC_CHECK_LIB(liveMedia, main, [
1671 VLC_ADD_PLUGIN([live555])
1672 VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1673 ],[],[${other_libs}])
1674 ],[${other_libs_pic}])
1682 dnl IIDC and DV FireWire input modules
1684 PKG_ENABLE_MODULES_VLC([DC1394], [], [libdc1394-2 >= 2.1.0], [IIDC FireWire input module], [auto])
1685 PKG_ENABLE_MODULES_VLC([DV1394], [], [libraw1394 >= 2.0.1 libavc1394 >= 0.5.3], [DV FireWire input module], [auto])
1688 dnl - linsys modules: access module check for libzvbi
1690 AC_ARG_ENABLE(linsys,
1691 [AS_HELP_STRING([--enable-linsys],
1692 [Linux Linear Systems Ltd. SDI and HD-SDI input cards (default enabled)])])
1693 AS_IF([test "$SYS" = "linux" -a "${enable_linsys}" != "no"], [
1694 VLC_ADD_PLUGIN([linsys_hdsdi])
1695 PKG_CHECK_MODULES(LINSYS_SDI, [zvbi-0.2 >= 0.2.28], [
1696 VLC_ADD_PLUGIN([linsys_sdi])
1698 AC_MSG_WARN([${LINSYS_SDI_PKG_ERRORS}.])
1703 dnl dvdread module: check for libdvdread
1705 PKG_ENABLE_MODULES_VLC([DVDREAD], [], [dvdread > 4.9.0], [dvdread input module], [auto])
1708 dnl libdvdnav plugin
1710 PKG_ENABLE_MODULES_VLC([DVDNAV], [], [dvdnav > 4.9.0], [DVD with navigation input module (dvdnav)], [auto])
1713 dnl Blu-ray Disc Support with libbluray
1715 PKG_ENABLE_MODULES_VLC([BLURAY], [libbluray], [libbluray >= 0.3.0], (libbluray for Blu-ray disc support ) )
1718 dnl OpenCV wrapper and example filters
1720 PKG_ENABLE_MODULES_VLC([OPENCV], [opencv_example opencv_wrapper], [opencv > 2.0], (OpenCV (computer vision) filter), [auto])
1724 dnl libsmbclient plugin
1726 PKG_ENABLE_MODULES_VLC([SMBCLIENT], [smb], [smbclient], (SMB/CIFS support), [auto])
1727 AS_IF([test "${SYS}" = "mingw32"], [ VLC_ADD_PLUGIN([access_smb]) ])
1730 dnl liBDSM access module
1732 PKG_ENABLE_MODULES_VLC([DSM], [dsm], [libdsm], [libdsm SMB/CIFS access/sd module], [auto])
1735 dnl sftp access support
1737 PKG_ENABLE_MODULES_VLC([SFTP], [sftp], [libssh2], (support SFTP file transfer via libssh2), [auto])
1742 AC_ARG_ENABLE(v4l2, [AS_HELP_STRING([--disable-v4l2],
1743 [disable Video4Linux version 2 (default auto)])])
1745 AS_IF([test "$enable_v4l2" != "no"], [
1746 AC_CHECK_HEADERS([linux/videodev2.h sys/videoio.h], [
1750 AM_CONDITIONAL(HAVE_V4L2, [test "${have_v4l2}" != "no"])
1753 dnl special access module for Blackmagic SDI cards
1755 AC_ARG_ENABLE(decklink,
1756 [AS_HELP_STRING([--disable-decklink],
1757 [disable Blackmagic DeckLink SDI input (default auto)])])
1758 AC_ARG_WITH(decklink_sdk,
1759 [AS_HELP_STRING[--with-decklink-sdk=DIR],
1760 [ location of Blackmagic DeckLink SDI SDK])])
1762 if test "${enable_decklink}" != "no"
1764 if test "${with_decklink_sdk}" != "no" -a -n "${with_decklink_sdk}"
1766 VLC_ADD_CPPFLAGS([decklink decklinkoutput],[-I${with_decklink_sdk}/include])
1769 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_decklink}"
1771 AC_CHECK_HEADERS(DeckLinkAPIDispatch.cpp, [
1774 AC_MSG_WARN(Blackmagic DeckLink SDI include files not found, decklink disabled)
1779 AM_CONDITIONAL(HAVE_DECKLINK, [ test "${have_decklink}" != "no" ])
1783 dnl gnomeVFS access module
1785 PKG_ENABLE_MODULES_VLC([GNOMEVFS], [gnomevfs], [gnome-vfs-2.0], [GnomeVFS access module], [auto])
1790 PKG_ENABLE_MODULES_VLC([VCDX], [vcdx], [libcdio >= 0.78.2 libiso9660 >= 0.72 libvcdinfo >= 0.7.22], [navigate VCD with libvcdinfo], [no])
1793 dnl Built-in CD-DA and VCD module
1796 [AS_HELP_STRING([--disable-vcd],
1797 [disable built-in VCD and CD-DA support (default enabled)])])
1799 AC_ARG_ENABLE(libcddb,
1800 [AS_HELP_STRING([--disable-libcddb],
1801 [disable CDDB for Audio CD (default enabled)])])
1803 if test "${enable_vcd}" != "no"
1805 AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
1806 AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
1808 VLC_ADD_PLUGIN([vcd cdda])
1813 AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
1814 AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
1816 VLC_ADD_PLUGIN([vcd cdda])
1817 AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
1822 AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
1823 AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
1825 VLC_ADD_PLUGIN([vcd cdda])
1826 AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
1831 if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32" -o "${SYS}" = "os2" -o "${SYS}" = "darwin"
1833 VLC_ADD_PLUGIN([vcd cdda])
1836 if test "$enable_libcddb" != "no"; then
1837 PKG_CHECK_MODULES(LIBCDDB, [libcddb >= 0.9.5], [
1839 AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
1840 VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
1841 VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
1843 [AC_MSG_WARN([${LIBCDDB_PKG_ERRORS}: CDDB access disabled.])
1851 AC_CACHE_CHECK([for Linux DVB version 5.1], [ac_cv_linux_dvb_5_1], [
1852 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
1853 [#include <linux/dvb/version.h>
1854 #if (DVB_API_VERSION < 5)
1855 # error Linux DVB API v3.2 and older are not supported.
1857 #if (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR < 1)
1858 # error Linux DVB API v5.0 is unsupported. Please update.
1861 ac_cv_linux_dvb_5_1=yes
1863 ac_cv_linux_dvb_5_1=no
1865 AM_CONDITIONAL([HAVE_LINUX_DVB], [test "$ac_cv_linux_dvb_5_1" = "yes"])
1868 dnl Screen capture module
1870 AC_ARG_ENABLE(screen,
1871 [AS_HELP_STRING([--enable-screen],
1872 [disable screen capture (default enabled)])])
1873 if test "${enable_screen}" != "no"; then
1874 if test "${SYS}" = "darwin"; then
1875 AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
1876 VLC_ADD_PLUGIN([screen])
1880 AM_CONDITIONAL(HAVE_MAC_SCREEN, [test "${SYS}" = "darwin" -a "x${enable_screen}" != "xno"])
1883 dnl VNC/RFB access module
1885 PKG_ENABLE_MODULES_VLC([VNC], [vnc], [libvncclient >= 0.9.9], (VNC/rfb client support), [auto])
1887 dnl RDP/Remote Desktop access module
1889 PKG_ENABLE_MODULES_VLC([FREERDP], [rdp], [freerdp >= 1.0.1], (RDP/Remote Desktop client support) )
1892 dnl Real RTSP plugin
1894 AC_ARG_ENABLE(realrtsp,
1895 [ --enable-realrtsp Real RTSP module (default disabled)])
1896 if test "${enable_realrtsp}" = "yes"; then
1897 VLC_ADD_PLUGIN([access_realrtsp])
1902 AC_ARG_ENABLE(macosx-eyetv,
1903 [ --enable-macosx-eyetv Mac OS X EyeTV (TNT Tuner) module (default enabled on Mac OS X)])
1904 if test "x${enable_macosx_eyetv}" != "xno" &&
1905 (test "${SYS}" = "darwin" || test "${enable_macosx_eyetv}" = "yes")
1907 VLC_ADD_PLUGIN([access_eyetv])
1912 AC_ARG_ENABLE(macosx-qtkit,
1913 [ --enable-macosx-qtkit Mac OS X qtcapture (video) and qtsound (audio) module (default enabled on Mac OS X)])
1914 if test "x${enable_macosx_qtkit}" != "xno" &&
1915 (test "${SYS}" = "darwin" || test "${enable_macosx_qtkit}" = "yes")
1917 VLC_ADD_PLUGIN([qtcapture])
1918 VLC_ADD_PLUGIN([qtsound])
1920 AM_CONDITIONAL(HAVE_QTKIT, [test "${SYS}" = "darwin" -a "x${enable_macosx_qtkit}" != "xno"])
1924 AC_SUBST(have_avfoundation, ["no"])
1925 AC_ARG_ENABLE(macosx-avfoundation,
1926 [ --enable-macosx-avfoundation Mac OS X avcapture (video) module (default enabled on Mac OS X)])
1927 if test "x${enable_macosx_avfoundation}" != "xno" &&
1928 (test "${SYS}" = "darwin" || test "${enable_macosx_avfoundation}" = "yes")
1930 SAVED_LIBS="${LIBS}"
1931 LIBS="-framework AVFoundation"
1932 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [])],[have_avfoundation=yes],[have_avfoundation=no])
1933 LIBS="${SAVED_LIBS}"
1934 if test "${have_avfoundation}" != "no"
1936 VLC_ADD_PLUGIN([avcapture])
1939 AM_CONDITIONAL(HAVE_AVFOUNDATION, [test "${have_avfoundation}" != "no"])
1942 dnl DCP plugin (using asdcplib)
1944 PKG_WITH_MODULES([ASDCP], [asdcplib], [have_asdcp="yes"])
1945 AM_CONDITIONAL(HAVE_ASDCP, [test "${have_asdcp}" = "yes"])
1951 EXTEND_HELP_STRING([Mux/Demux plugins:])
1954 dnl libdvbpsi check for ts mux/demux
1957 PKG_WITH_MODULES([DVBPSI], [libdvbpsi], [have_dvbpsi="yes"])
1958 AM_CONDITIONAL(HAVE_DVBPSI, [test "${have_dvbpsi}" = "yes"])
1962 dnl GME demux plugin
1965 [AS_HELP_STRING([--enable-gme],
1966 [use Game Music Emu (default auto)])])
1967 AS_IF([test "${enable_gme}" != "no"], [
1968 AC_CHECK_HEADER([gme/gme.h], [
1969 VLC_ADD_LIBS([gme], [-lgme])
1970 VLC_ADD_PLUGIN([gme])
1972 AS_IF([test "x${enable_gme}" != "x"], [
1973 AC_MSG_ERROR([GME cannot be found. Please install the development files.])
1983 [AS_HELP_STRING([--enable-sid],[C64 sid demux support (default auto)])])
1984 AS_IF([test "${enable_sid}" != "no"], [
1985 PKG_CHECK_MODULES(SID, [libsidplay2], [
1987 oldCPPFLAGS="$CPPFLAGS"
1988 CPPFLAGS="$CPPFLAGS $SID_CFLAGS"
1989 AC_CHECK_HEADER([sidplay/builders/resid.h], [
1990 VLC_ADD_PLUGIN([sid])
1991 VLC_ADD_CFLAGS([sid], [$SID_CFLAGS])
1992 VLC_ADD_LIBS([sid], [$SID_LIBS] [-lresid-builder])
1994 AS_IF([test -n "${enable_sid}"],
1995 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
1996 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
1999 CPPFLAGS="$oldCPPFLAGS"
2002 AS_IF([test "x${enable_sid}" = "xyes"],
2003 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2004 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2011 dnl ogg demux plugin
2013 PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto])
2014 PKG_CHECK_MODULES(LIBVORBIS, [vorbis >= 1.1], [
2015 AC_DEFINE(HAVE_LIBVORBIS, 1, [Define to 1 if you have the libvorbis])
2017 PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto], [${LIBVORBIS_CFLAGS}], [${LIBVORBIS_LIBS}])
2018 if test "${enable_sout}" != "no"; then
2019 PKG_ENABLE_MODULES_VLC([MUX_OGG], [], [ogg >= 1.0], [Ogg mux support], [auto])
2020 dnl Check for libshout
2021 PKG_ENABLE_MODULES_VLC([SHOUT], [access_output_shout], [shout >= 2.1], [libshout output plugin], [auto])
2025 dnl matroska demux plugin
2028 [AS_HELP_STRING([--disable-mkv],
2029 [do not use libmatroska (default auto)])])
2030 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2032 AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2033 AC_MSG_CHECKING(for libebml version >= 1.0.0)
2035 [#include <ebml/EbmlVersion.h>
2036 #ifdef LIBEBML_VERSION
2037 #if LIBEBML_VERSION >= 0x010000
2041 [AC_MSG_RESULT([yes])
2042 AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2043 AC_MSG_CHECKING(for libmatroska version >= 1.0.0)
2045 [#include <matroska/KaxVersion.h>
2046 #ifdef LIBMATROSKA_VERSION
2047 #if LIBMATROSKA_VERSION >= 0x010000
2051 [AC_MSG_RESULT([yes])
2052 AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2053 AC_CHECK_LIB(ebml_pic, main, [
2054 VLC_ADD_PLUGIN([mkv])
2055 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2057 AC_CHECK_LIB(ebml, main, [
2058 VLC_ADD_PLUGIN([mkv])
2059 VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2064 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.])
2068 [AC_MSG_RESULT([no])
2069 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.])
2076 dnl modplug demux plugin
2079 [AS_HELP_STRING([--disable-mod],
2080 [do not use libmodplug (default auto)])])
2081 if test "${enable_mod}" != "no" ; then
2082 PKG_CHECK_MODULES(LIBMODPLUG, [libmodplug >= 0.8.4 libmodplug != 0.8.8], [
2083 VLC_ADD_PLUGIN([mod])
2084 VLC_ADD_CXXFLAGS([mod],[$LIBMODPLUG_CFLAGS])
2085 VLC_ADD_CFLAGS([mod],[$LIBMODPLUG_CFLAGS]) #modules/demux/mod.c needs CFLAGS_mod, not CXXFLAGS_mod
2086 VLC_ADD_LIBS([mod],[$LIBMODPLUG_LIBS])
2088 AS_IF([test -n "${enable_mod}"],
2089 [AC_MSG_ERROR([${LIBMODPLUG_PKG_ERRORS}.])],
2090 [AC_MSG_WARN([${LIBMODPLUG_PKG_ERRORS}.])])
2095 dnl mpc demux plugin
2098 [AS_HELP_STRING([--disable-mpc], [do not use libmpcdec (default auto)])])
2099 if test "${enable_mpc}" != "no"
2101 AC_CHECK_HEADERS([mpc/mpcdec.h], [
2102 VLC_ADD_PLUGIN([mpc])
2103 VLC_ADD_LIBS([mpc],[-lmpcdec])],
2104 [AC_CHECK_HEADERS([mpcdec/mpcdec.h], [
2105 VLC_ADD_PLUGIN([mpc])
2106 VLC_ADD_LIBS([mpc],[-lmpcdec])])])
2113 EXTEND_HELP_STRING([Codec plugins:])
2118 AC_ARG_ENABLE(wma-fixed,
2119 [ --enable-wma-fixed libwma-fixed module (default disabled)])
2120 if test "${enable_wma_fixed}" = "yes"
2122 VLC_ADD_PLUGIN([wma_fixed])
2126 dnl shine encoder plugin
2128 PKG_ENABLE_MODULES_VLC([SHINE], [], [shine >= 3.0.0], [MPEG Audio Layer 3 encoder], [auto], [], [], [])
2132 dnl openmax il codec plugin
2134 AC_ARG_ENABLE(omxil,
2135 [ --enable-omxil openmax il codec module (default disabled)])
2136 if test "${enable_omxil}" = "yes"
2138 VLC_ADD_PLUGIN([omxil])
2142 dnl openmax il vout plugin
2144 AC_ARG_ENABLE(omxil-vout,
2145 [ --enable-omxil-vout openmax il video output module (default disabled)])
2146 if test "${enable_omxil_vout}" = "yes"
2148 VLC_ADD_PLUGIN([omxil_vout])
2152 dnl raspberry pi openmax il configuration
2154 AC_ARG_ENABLE(rpi-omxil,
2155 [ --enable-rpi-omxil openmax il configured for raspberry pi (default disabled)])
2156 if test "${enable_rpi_omxil}" = "yes"
2158 VLC_ADD_PLUGIN([omxil omxil_vout])
2159 VLC_ADD_CFLAGS([omxil omxil_vout],[-DRPI_OMX])
2163 dnl CrystalHD codec plugin
2165 AC_ARG_ENABLE(crystalhd,
2166 [ --enable-crystalhd crystalhd codec plugin (default auto)])
2167 if test "${enable_crystalhd}" != "no"; then
2168 AC_CHECK_HEADER(libcrystalhd/libcrystalhd_if.h, [
2169 VLC_ADD_PLUGIN([crystalhd])
2170 VLC_ADD_LIBS([crystalhd], [-lcrystalhd])
2172 if test "${SYS}" = "mingw32" ; then
2173 AC_CHECK_HEADERS(libcrystalhd/bc_dts_defs.h, [
2174 VLC_ADD_PLUGIN([crystalhd])
2175 AC_CHECK_HEADERS(libcrystalhd/bc_drv_if.h, [
2176 VLC_ADD_LIBS([crystalhd], [-lbcmDIL])
2179 AS_IF([test x"${enable_crystalhd}" = "xyes"],
2180 [AC_MSG_ERROR("Could not find CrystalHD development headers")],
2181 [AC_MSG_WARN("Could not find CrystalHD development headers")])
2182 ],[#define __LINUX_USER__
2183 #include <libcrystalhd/bc_dts_types.h>
2187 #include <libcrystalhd/bc_dts_types.h>
2195 [ --enable-mad libmad module (default enabled)])
2196 if test "${enable_mad}" != "no"
2199 [ --with-mad=PATH path to libmad],[],[])
2200 if test "${with_mad}" != "no" -a -n "${with_mad}"
2202 VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2203 VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2206 AC_ARG_WITH(mad-tree,
2207 [ --with-mad-tree=PATH mad tree for static linking],[],[])
2208 if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2210 real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2211 if test -z "${real_mad_tree}"
2213 dnl The given directory can't be found
2215 AC_MSG_ERROR([${with_mad_tree} directory does not exist])
2217 dnl Use a custom libmad
2218 AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2219 if test -f ${real_mad_tree}/mad.h
2222 VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2223 VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2225 LDFLAGS="${LDFLAGS} ${LIBS_mpgatofixed32}"
2226 AC_CHECK_LIB(mad, mad_bit_init, [
2227 VLC_ADD_PLUGIN([mpgatofixed32])
2228 VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2229 ],[ AC_MSG_ERROR([the specified tree has not been compiled ])
2234 AC_MSG_ERROR([the specified tree does not have mad.h])
2238 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_mpgatofixed32}"
2239 LDFLAGS="${LDFLAGS} ${LIBS_mpgatofixed32}"
2240 AC_CHECK_HEADERS(mad.h, ,
2241 [ 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.]) ])
2242 AC_CHECK_LIB(mad, mad_bit_init, [
2243 VLC_ADD_PLUGIN([mpgatofixed32])
2244 VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2245 [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2251 AC_ARG_ENABLE(merge-ffmpeg,
2252 [ --enable-merge-ffmpeg merge FFmpeg-based plugins (default disabled)],, [
2253 enable_merge_ffmpeg="no"
2255 AM_CONDITIONAL([MERGE_FFMPEG], [test "$enable_merge_ffmpeg" != "no"])
2257 AC_MSG_CHECKING([for libavutil variant])
2258 PKG_CHECK_EXISTS([libavutil], [
2259 libavutil_version="$(${PKG_CONFIG} --modversion libavutil)"
2260 libavutil_micro="${libavutil_version##*.}"
2261 AS_IF([test ${libavutil_micro} -le 99], [
2269 AC_MSG_RESULT([${avfork}])
2274 AC_ARG_ENABLE(gst-decode,
2275 [ --enable-gst-decode GStreamer based decoding support (currently supports only video decoding) (default auto)])
2277 have_gst_decode="no"
2278 AS_IF([test "${enable_gst_decode}" != "no"], [
2279 PKG_CHECK_MODULES([GST_APP], [gstreamer-app-1.0], [
2280 PKG_CHECK_MODULES([GST_VIDEO], [gstreamer-video-1.0], [
2281 have_gst_decode="yes"
2283 AC_MSG_WARN([${GST_VIDEO_PKG_ERRORS}. GStreamer decoder module will not be built.])
2286 AC_MSG_WARN([${GST_APP_PKG_ERRORS}. GStreamer modules will not be built.])
2289 AM_CONDITIONAL([HAVE_GST_DECODE], [test "${have_gst_decode}" = "yes"])
2292 dnl avcodec decoder/encoder plugin
2294 AC_ARG_ENABLE(avcodec,
2295 [ --enable-avcodec libavcodec codec (default enabled)])
2296 AS_IF([test "${enable_avcodec}" != "no"], [
2297 PKG_CHECK_MODULES(AVCODEC,[libavcodec >= 54.25.0 libavutil >= 52.0.0], [
2298 dnl PKG_CHECK_EXISTS([libavcodec < 56],, [
2299 dnl AC_MSG_ERROR([libavcodec versions 56 and later are not supported yet.])
2302 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2303 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2304 AC_CHECK_HEADERS(libavcodec/avcodec.h)
2305 AC_CHECK_HEADERS(libavutil/avutil.h)
2309 AC_MSG_ERROR([${AVCODEC_PKG_ERRORS}. Pass --disable-avcodec to ignore this error.])
2314 AM_CONDITIONAL([HAVE_AVCODEC], [test "${have_avcodec}" != "no"])
2317 dnl libva needs avcodec
2319 AC_ARG_ENABLE(libva,
2320 [ --enable-libva VAAPI GPU decoding support (libVA) (default auto)])
2322 AS_IF([test "${enable_libva}" = "yes" -a "${have_avcodec}" != "yes" ], [
2323 AC_MSG_ERROR([--enable-libva and --disable-avcodec options are mutually exclusive. Use --enable-avcodec.])
2329 AS_IF([test "${enable_libva}" != "no"], [
2330 PKG_CHECK_EXISTS([libva], [
2333 AS_IF([test -n "${enable_libva}"], [
2334 AC_MSG_ERROR([${LIBVA_PKG_ERRORS}.])
2336 AC_MSG_WARN([${LIBVA_PKG_ERRORS}.])
2339 PKG_CHECK_MODULES([LIBVA_DRM], [libva-drm], [
2340 have_vaapi_drm="yes"
2342 AC_MSG_WARN([${LIBVA_DRM_PKG_ERRORS}.])
2344 PKG_CHECK_MODULES(LIBVA_X11, [libva-x11], [
2345 have_vaapi_x11="yes"
2347 AC_MSG_WARN([${LIBVA_X11_PKG_ERRORS}.])
2350 AM_CONDITIONAL([HAVE_VAAPI_DRM], [test "${have_vaapi_drm}" = "yes"])
2351 AM_CONDITIONAL([HAVE_VAAPI_X11], [test "${have_vaapi_x11}" = "yes"])
2353 have_avcodec_vaapi="no"
2354 AS_IF([test "${have_vaapi}" = "yes" -a "${have_avcodec}" = "yes"], [
2356 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2357 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2358 AC_CHECK_HEADERS([libavcodec/vaapi.h], [
2359 AC_MSG_NOTICE([VAAPI acceleration activated])
2360 have_avcodec_vaapi="yes"
2362 AS_IF([test -n "${enable_libva}"], [
2363 AC_MSG_ERROR([libva is present but libavcodec/vaapi.h is missing])
2365 AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing ])
2370 AM_CONDITIONAL([HAVE_AVCODEC_VAAPI], [test "${have_avcodec_vaapi}" = "yes"])
2373 dnl dxva2 needs avcodec
2375 AC_ARG_ENABLE(dxva2,
2376 [ --enable-dxva2 DxVA2 GPU decoding support (default auto)])
2378 have_avcodec_dxva2="no"
2379 AS_IF([test "${enable_dxva2}" != "no"], [
2380 if test "${SYS}" = "mingw32"; then
2381 AS_IF([test "x${have_avcodec}" = "xyes"], [
2382 AC_CHECK_HEADERS(dxva2api.h,
2384 AC_CHECK_HEADERS(libavcodec/dxva2.h, [
2385 AC_MSG_NOTICE([DxVA2 acceleration activated])
2386 have_avcodec_dxva2="yes"
2388 AS_IF([test "${enable_dxva2}" = "yes"],
2389 [AC_MSG_ERROR([dxva2 is present but libavcodec/dxva2.h is missing])],
2390 [AC_MSG_WARN([dxva2 is present but libavcodec/dxva2.h is missing ])])
2391 ], [#undef _WIN32_WINNT
2392 /* DXVA2 is only available in Vista and above */
2393 #define _WIN32_WINNT 0x600])
2395 AS_IF([test "${enable_dxva2}" = "yes"],
2396 [AC_MSG_ERROR([Could not find required dxva2api.h])],
2397 [AC_MSG_WARN([dxva2api.h not found])])
2400 AS_IF([test "x${enable_dxva2}" != "x"], [
2401 AC_MSG_ERROR([--enable-dxva2 and --disable-avcodec options are mutually exclusive.])
2406 AM_CONDITIONAL([HAVE_AVCODEC_DXVA2], [test "${have_avcodec_dxva2}" = "yes"])
2409 dnl vda needs avcodec
2412 [ --enable-vda VDA support (default auto)])
2414 have_avcodec_vda="no"
2415 AS_IF([test "${enable_vda}" != "no"], [
2416 if test "${SYS}" = "darwin"; then
2417 AS_IF([test "x${have_avcodec}" = "xyes"], [
2418 AC_CHECK_HEADERS(VideoDecodeAcceleration/VDADecoder.h,
2420 AC_CHECK_HEADERS(libavcodec/vda.h, [
2421 have_avcodec_vda="yes"
2423 AS_IF([test "${enable_vda}" = "yes"],
2424 [AC_MSG_ERROR([vda is present but libavcodec/vda.h is missing])],
2425 [AC_MSG_WARN([vda is present but libavcodec/vda.h is missing ])])
2428 AS_IF([test "${enable_vda}" = "yes"],
2429 [AC_MSG_ERROR([Could not find required VideoDecodeAcceleration/VDADecoder.h])],
2430 [AC_MSG_WARN([VideoDecodeAcceleration/VDADecoder.h not found])])
2433 AS_IF([test "x${enable_vda}" != "x"], [
2434 AC_MSG_ERROR([--enable-vda and --disable-avcodec options are mutually exclusive.])
2437 AS_IF([test "${have_avcodec_vda}" = "yes"], [
2439 LIBS="$LIBS $AVCODEC_LIBS"
2440 AC_CHECK_FUNCS([av_vda_alloc_context])
2445 AM_CONDITIONAL([HAVE_AVCODEC_VDA], [test "${have_avcodec_vda}" = "yes"])
2448 dnl avformat demuxer/muxer plugin
2451 AC_ARG_ENABLE(avformat,
2452 [ --enable-avformat libavformat containers (default enabled)],, [
2453 enable_avformat="${have_avcodec}"
2456 AS_IF([test "${enable_avformat}" != "no"], [
2457 PKG_CHECK_MODULES(AVFORMAT,[libavformat >= 53.21.0 libavcodec libavutil], [
2460 CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2461 CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2462 AC_CHECK_HEADERS(libavformat/avformat.h libavformat/avio.h)
2463 AC_CHECK_HEADERS(libavcodec/avcodec.h)
2464 AC_CHECK_HEADERS(libavutil/avutil.h)
2465 AS_IF([test "$enable_merge_ffmpeg" = "no"], [
2470 AC_MSG_ERROR([${AVFORMAT_PKG_ERRORS}. Pass --disable-avformat to ignore this error.])
2473 AM_CONDITIONAL([HAVE_AVFORMAT], [test "${enable_avformat}" != "no"])
2476 dnl swscale image scaling and conversion plugin
2479 AC_ARG_ENABLE(swscale,
2480 AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
2481 (default enabled)]))
2482 if test "${enable_swscale}" != "no"
2484 PKG_CHECK_MODULES(SWSCALE,[libswscale],
2487 CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
2488 CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
2489 AC_CHECK_HEADERS(libswscale/swscale.h)
2490 AC_CHECK_HEADERS(libavutil/avutil.h)
2491 VLC_ADD_PLUGIN([swscale])
2492 VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
2493 VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
2494 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2495 VLC_ADD_LIBS([swscale],[${ac_cv_ld_bsymbolic}])
2499 AC_MSG_ERROR([${SWSCALE_PKG_ERRORS}. Pass --disable-swscale to ignore this error. Proper software scaling and some video chroma conversion will be missing.])
2507 AC_ARG_ENABLE(postproc,
2508 [ --enable-postproc libpostproc image post-processing (default auto)])
2509 if test "${enable_postproc}" != "no"
2511 PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
2514 CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
2515 CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
2516 AC_CHECK_HEADERS(postproc/postprocess.h)
2517 VLC_ADD_PLUGIN([postproc])
2518 VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS $AVUTIL_LIBS])
2519 VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS $AVUTIL_CFLAGS])
2522 AC_MSG_WARN([${POSTPROC_PKG_ERRORS}.])
2527 dnl faad decoder plugin
2530 [ --enable-faad faad codec (default auto)])
2531 if test "${enable_faad}" != "no"; then
2532 AC_ARG_WITH(faad-tree, [ --with-faad-tree=PATH faad tree for static linking])
2533 if test -n "${with_faad_tree}"; then
2534 AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
2535 real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
2536 if test -z "${real_faad_tree}"; then
2537 dnl The given directory can't be found
2539 AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
2541 if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"; then
2542 dnl Use the custom faad
2543 AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
2544 VLC_ADD_PLUGIN([faad])
2545 VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
2546 VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
2548 dnl The given libfaad wasn't built
2550 AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
2554 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_faad}"
2555 LDFLAGS="${LDFLAGS} ${LIBS_faad}"
2556 AC_CHECK_HEADERS(faad.h,
2557 [ AC_CHECK_LIB(faad, faacDecOpen, [
2558 VLC_ADD_PLUGIN([faad])
2559 VLC_ADD_LIBS([faad],[-lfaad]) ], [
2560 AC_CHECK_LIB(faad, NeAACDecOpen, [
2561 VLC_ADD_PLUGIN([faad])
2562 VLC_ADD_LIBS([faad],[-lfaad]) ], [
2563 AS_IF([test "${enable_faad}" = "yes"],
2564 [ AC_MSG_ERROR([Cannot find libfaad library...]) ],
2565 [ AC_MSG_WARN([Cannot find libfaad library...]) ]) ]) ])
2566 ] , [ AS_IF([test "${enable_faad}" = "yes"],
2567 [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ],
2568 [ AC_MSG_WARN([Cannot find development headers for libfaad...]) ]) ])
2574 dnl libvpx decoder plugin
2577 AS_HELP_STRING([--enable-vpx],[libvpx VP8/VP9 decoder (default auto)]))
2578 AS_IF([test "${enable_vpx}" != "no"],[
2579 PKG_CHECK_MODULES([VPX], [vpx] , [
2580 VLC_ADD_PLUGIN([vpx])
2581 VLC_ADD_CPPFLAGS([vpx], [${VPX_CFLAGS}])
2582 VLC_ADD_LIBS([vpx], [${VPX_LIBS}])
2583 AC_CHECK_LIB([vpx],[vpx_codec_vp8_dx], [
2584 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP8_DECODER])
2585 ], [], [${VPX_LIBS}])
2586 AC_CHECK_LIB([vpx],[vpx_codec_vp9_dx], [
2587 VLC_ADD_CPPFLAGS([vpx], [-DENABLE_VP9_DECODER])
2588 ], [], [${VPX_LIBS}])
2590 AS_IF([test "${enable_vpx}" = "yes"],[
2591 AC_MSG_ERROR([libvpx was not found])
2596 dnl twolame encoder plugin
2598 PKG_ENABLE_MODULES_VLC([TWOLAME], [], [twolame], [MPEG Audio Layer 2 encoder], [auto], [], [], [ -DLIBTWOLAME_STATIC])
2601 dnl fdk-aac encoder plugin
2603 PKG_ENABLE_MODULES_VLC([FDKAAC], [], [fdk-aac], [FDK-AAC encoder], [disabled])
2606 dnl QuickTime plugin
2608 AC_ARG_ENABLE(quicktime,
2609 [ --enable-quicktime QuickTime module (deprecated)])
2610 if test "${enable_quicktime}" = "yes"; then
2611 if test "${SYS}" = "mingw32"; then
2612 VLC_ADD_PLUGIN([quicktime])
2614 AC_CHECK_HEADERS(QuickTime/QuickTime.h,
2615 [ VLC_ADD_PLUGIN([quicktime])
2616 VLC_ADD_LIBS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
2617 ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
2622 dnl A52/AC3 decoder plugin
2625 [ --enable-a52 A/52 support with liba52 (default enabled)])
2626 if test "${enable_a52}" != "no"
2629 [ --with-a52=PATH a52 headers and libraries])
2630 AC_ARG_WITH(a52-tree,
2631 [ --with-a52-tree=PATH a52dec tree for static linking ],[],[])
2632 if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
2634 real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
2635 if test -z "${real_a52_tree}"
2637 dnl The given directory can't be found
2639 AC_MSG_ERROR([${with_a52_tree} directory does not exist])
2641 dnl Use a custom a52dec
2642 AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
2643 if test -f ${real_a52_tree}/include/a52.h
2646 VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
2647 VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
2649 LDFLAGS="${LDFLAGS} ${LIBS_a52tofloat32}"
2650 AC_CHECK_LIB(a52, a52_free, [
2651 VLC_ADD_PLUGIN([a52tofloat32])
2652 VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
2653 VLC_ADD_LIBS([a52tofloat32],[-la52])
2655 if test -f ${real_a52_tree}/liba52/.libs/liba52.a
2657 AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
2659 AC_MSG_ERROR([the specified tree has not been compiled])
2664 AC_MSG_ERROR([the specified tree does not have a52.h])
2667 if test -z "${with_a52}"
2672 LDFLAGS_test="-L${with_a52}/lib"
2673 CPPFLAGS_test="-I${with_a52}/include"
2676 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
2677 LDFLAGS="${LDFLAGS} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
2678 AC_CHECK_HEADERS(a52dec/a52.h, [
2679 AC_CHECK_LIB(a52, a52_free, [
2680 VLC_ADD_PLUGIN([a52tofloat32])
2681 VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
2682 VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
2684 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.])
2687 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.])
2694 dnl DTS Coherent Acoustics decoder plugin
2696 PKG_ENABLE_MODULES_VLC([DCA], [dtstofloat32], [libdca >= 0.0.5], [DTS Coherent Acoustics support with libdca], [auto])
2701 PKG_ENABLE_MODULES_VLC([FLAC], [], [flac], [libflac decoder/encoder support], [auto])
2706 PKG_ENABLE_MODULES_VLC([LIBMPEG2], [], [libmpeg2 > 0.3.2], [libmpeg2 decoder support], [auto])
2711 PKG_ENABLE_MODULES_VLC([VORBIS], [], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
2716 AC_ARG_ENABLE(tremor,
2717 [ --enable-tremor Tremor decoder support (default disabled)])
2718 if test "${enable_tremor}" = "yes"
2720 AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
2721 VLC_ADD_PLUGIN([tremor])
2728 PKG_ENABLE_MODULES_VLC([SPEEX], [], [ogg speex >= 1.0.5], [Speex support], [auto])
2730 AS_IF([test "${enable_speex}" != "no"], [
2731 PKG_CHECK_MODULES([SPEEXDSP], [speexdsp], [
2734 AC_MSG_WARN([${SPEEXDSP_PKG_ERRORS}.])
2737 AM_CONDITIONAL([HAVE_SPEEXDSP], [test "$have_speexdsp" = "yes"])
2742 PKG_ENABLE_MODULES_VLC([OPUS], [], [ogg opus >= 1.0.3], [Opus support], [auto])
2745 dnl theora decoder plugin
2747 PKG_ENABLE_MODULES_VLC([THEORA], [], [ogg theoradec >= 1.0 theoraenc], [experimental theora codec], [auto])
2750 dnl Daala decoder plugin
2752 PKG_ENABLE_MODULES_VLC([DAALA], [], [ogg daaladec daalaenc], [experimental daala codec], [disabled])
2755 dnl schroedinger decoder plugin (for dirac format video)
2757 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [], [schroedinger-1.0 >= 1.0.10], [dirac decoder and encoder using schroedinger], [auto])
2760 dnl PNG decoder module
2763 [ --enable-png PNG support (default enabled)])
2764 AS_IF([test "${enable_png}" != "no"], [
2765 AC_CHECK_HEADERS(png.h, [
2767 LDFLAGS="${LDFLAGS} -lz $LIBM"
2768 AC_CHECK_LIB(png, png_set_rows, [
2769 VLC_ADD_PLUGIN([png])
2776 dnl JPEG decoder module
2779 [ --enable-jpeg JPEG support (default enabled)])
2780 AS_IF([test "${enable_jpeg}" != "no"], [
2781 AC_CHECK_HEADERS(jpeglib.h, [
2782 VLC_ADD_PLUGIN([jpeg])
2787 dnl H262 encoder plugin (lib262)
2790 [ --enable-x262 H262 encoding support with static libx262 (default disabled)])
2791 if test "${enable_x262}" != "no"; then
2792 AC_ARG_WITH(x262-tree,
2793 [ --with-x262-tree=PATH H262 encoding module with libx262 (static linking)],[],[])
2794 if test "${with_x262_tree}" != "no" -a -n "${with_x262_tree}"
2796 real_x262_tree="̧`cd ${with_x262_tree} 2>/dev/null && pwd`"
2797 if test -z "${real_x262_tree}"
2800 AC_MSG_ERROR([${with_x262_tree} directory does not exist])
2802 AC_MSG_CHECKING(for x262.h in ${real_x262_tree})
2803 if test -f ${with_x262_tree}/x262_config.h
2805 VLC_ADD_PLUGIN([x262])
2806 VLC_ADD_CFLAGS([x262],[-I${with_x262_tree}])
2807 VLC_ADD_LIBS([x262],[-L${with_x262_tree} -lm -lpthread -lx262])
2810 AC_MSG_ERROR([${with_x262_tree} doesnt have x262_config.h])
2813 PKG_CHECK_MODULES(X262, x262, [
2814 VLC_ADD_PLUGIN([x262])
2815 VLC_ADD_LDFLAGS([x262],[${X262_LIBS}])
2816 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2817 VLC_ADD_LIBS([x262],[${av_cv_ld_bsymbolic}])
2819 VLC_ADD_CFLAGS([x262],[${X262_CFLAGS}])
2820 if echo ${X262_LIBS} |grep -q 'pthreadGC2'; then
2821 VLC_ADD_CFLAGS([x262], [-DPTW32_STATIC_LIB])
2824 if test "${enable_x262}" = "yes"; then
2825 AC_MSG_ERROR([x262 module doesn't work without staticly compiled libx262.a])
2832 PKG_ENABLE_MODULES_VLC([X265],, [x265], [HEVC/H.265 encoder], [auto])
2835 dnl H264 encoder plugin (10-bit lib264)
2837 AC_ARG_ENABLE(x26410b,
2838 [ --enable-x26410b H264 10-bit encoding support with static libx264 (default disabled)])
2839 if test "${enable_x26410b}" != "no"; then
2840 AC_ARG_WITH(x26410b-tree,
2841 [ --with-x26410b-tree=PATH H264 10-bit encoding module with libx264 (static linking)],[],[])
2842 if test "${with_x26410b_tree}" != "no" -a -n "${with_x26410b_tree}"
2844 real_x26410b_tree="̧`cd ${with_x26410b_tree} 2>/dev/null && pwd`"
2845 if test -z "${real_x26410b_tree}"
2848 AC_MSG_ERROR([${with_x26410b_tree} directory does not exist])
2850 AC_MSG_CHECKING(for x264.h in ${real_x26410b_tree})
2851 if test -f ${with_x26410b_tree}/x264_config.h
2854 AC_MSG_CHECKING(for 10-bit build of x264)
2855 if grep -q "BIT_DEPTH.*10" ${with_x26410b_tree}/x264_config.h ;then
2857 VLC_ADD_PLUGIN([x26410b])
2858 VLC_ADD_CFLAGS([x26410b],[-I${with_x26410b_tree}])
2859 VLC_ADD_LIBS([x26410b],[-L${with_x26410b_tree} -lm -lpthread -lx264])
2862 AC_MSG_ERROR([${with_x26410b_tree} isnt build 10-bit])
2866 AC_MSG_ERROR([${with_x26410b_tree} doesnt have x264_config.h])
2869 PKG_CHECK_MODULES(X26410B, x26410b, [
2870 VLC_ADD_PLUGIN([x26410b])
2871 VLC_ADD_LIBS([x26410b],[${X26410B_LIBS}])
2872 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2873 VLC_ADD_LDFLAGS([x26410b],[${ac_cv_ld_bsymbolic}])
2875 VLC_ADD_CFLAGS([x26410b],[${X26410B_CFLAGS}])
2876 if echo ${X26410B_LIBS} |grep -q 'pthreadGC2'; then
2877 VLC_ADD_CFLAGS([x26410b], [-DPTW32_STATIC_LIB])
2880 if test "${enable_x26410b}" = "yes"; then
2881 AC_MSG_ERROR([x26410b module doesn't work without staticly compiled libx264.a])
2889 dnl H264 encoder plugin (using libx264)
2892 [ --enable-x264 H264 encoding support with libx264 (default enabled)])
2893 if test "${enable_x264}" != "no"; then
2894 AC_ARG_WITH(x264-tree,
2895 [ --with-x264-tree=PATH x264 tree for static linking ],[],[])
2896 if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
2898 real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
2899 if test -z "${real_x264_tree}"
2901 dnl The given directory can't be found
2903 AC_MSG_ERROR([${with_x264_tree} directory does not exist])
2905 dnl Use a custom libx264
2906 AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
2907 if test -f ${real_x264_tree}/x264.h
2910 VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
2911 VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
2912 PKG_CHECK_MODULES(X264,x264, [
2913 VLC_ADD_PLUGIN([x264])
2914 VLC_ADD_LIBS([x264],[${X264_LIBS}])
2915 VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
2916 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
2917 VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
2920 AC_MSG_ERROR([the specified tree has not been compiled])
2924 AC_MSG_ERROR([the specified tree does not have x264.h])
2927 PKG_CHECK_MODULES(X264,x264 >= 0.86, [
2928 VLC_ADD_PLUGIN([x264])
2929 VLC_ADD_LIBS([x264],[${X264_LIBS}])
2931 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2932 VLC_ADD_LDFLAGS([x264],[${ac_cv_ld_bsymbolic}])
2935 VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
2936 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
2937 VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
2940 if test "${enable_x264}" = "yes"; then
2941 AC_MSG_ERROR([${X264_PKG_ERRORS}: you may get it from http://www.videolan.org/x264.html])
2948 dnl Intel QuickSync (aka MediaSDK) H264/H262 encoder
2950 PKG_ENABLE_MODULES_VLC([MFX], [qsv], [libmfx], [Intel QuickSync MPEG4-Part10/MPEG2 (aka H.264/H.262) encoder], [auto])
2953 dnl libfluidsynth (MIDI synthetizer) plugin
2955 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [], [fluidsynth >= 1.1.2], [MIDI synthetiser with libfluidsynth], [auto])
2958 dnl Teletext Modules
2959 dnl vbi decoder plugin (using libzbvi)
2964 AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
2965 libzvbi (default enabled)]))
2967 AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
2968 zvbi) (default enabled if zvbi is absent)]))
2970 AS_IF( [test "${enable_zvbi}" != "no"],[
2971 PKG_CHECK_MODULES(ZVBI, [zvbi-0.2 >= 0.2.28],
2973 VLC_ADD_PLUGIN([zvbi])
2974 AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
2975 AS_IF( [test "${enable_telx}" = "yes"],[
2976 AC_MSG_WARN([The zvbi and telx modules are incompatible. Using zvbi.])
2979 AC_MSG_WARN([${ZVBI_PKG_ERRORS}. Enabling the telx module instead.])
2982 AS_IF( [test "${enable_telx}" != "no" ],[
2983 VLC_ADD_PLUGIN([telx])
2987 dnl libass subtitle rendering module
2989 AC_ARG_ENABLE(libass,
2990 [ --enable-libass Subtitle support using libass (default enabled)])
2991 AS_IF( [test "${enable_libass}" != "no"], [
2992 PKG_CHECK_MODULES(LIBASS, [libass >= 0.9.8],
2994 VLC_ADD_PLUGIN([libass])
2996 AC_CHECK_HEADERS(fontconfig/fontconfig.h,
2997 [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
2998 VLC_ADD_LIBS([libass],[-lfontconfig])
3001 AC_MSG_WARN([${LIBASS_PKG_ERRORS}.])
3006 dnl ARIB subtitles rendering module
3008 AC_ARG_ENABLE(aribsub,
3009 [ --enable-aribsub ARIB Subtitles support (default enabled)])
3010 AS_IF( [test "${enable_aribsub}" != "no" ],[
3011 PKG_CHECK_MODULES(ARIBB24, [aribb24 >= 1.0.1], [
3013 VLC_ADD_PLUGIN([aribsub])
3014 VLC_ADD_LIBS([aribsub],[-laribb24])
3015 AC_DEFINE(HAVE_ARIBB24, 1, [Define if libaribb24 is available.])
3017 AC_MSG_WARN(Library [aribb24] needed for [aribsub] was not found)
3021 AM_CONDITIONAL([HAVE_ARIBB24], [test x"${have_aribb24}" = x"yes"])
3026 PKG_ENABLE_MODULES_VLC([ARIBB25], [aribcam], [aribb25 >= 0.2.6], [ARIB STD-B25], [auto])
3029 dnl kate decoder plugin
3031 PKG_ENABLE_MODULES_VLC([KATE], [], [kate >= 0.3.0], [kate codec], [auto])
3034 dnl tiger rendering for kate decoder plugin
3036 AC_ARG_ENABLE(tiger,
3037 [ --enable-tiger Tiger rendering library for Kate streams (default auto)])
3038 AS_IF([test "${enable_tiger}" != "no"], [
3039 PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
3040 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])],[
3041 AS_IF([test -n "${enable_tiger}"], [
3042 AC_MSG_ERROR([${TIGER_PKG_ERRORS}.])
3052 EXTEND_HELP_STRING([Video plugins:])
3057 PKG_CHECK_MODULES([EGL], [egl], [
3062 AM_CONDITIONAL([HAVE_EGL], [test "${have_egl}" = "yes"])
3065 PKG_CHECK_MODULES([GL], [gl], [
3068 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
3070 # include <GL/glew.h>
3074 [int t0 = GL_TEXTURE0;]])
3078 AS_IF([test "${SYS}" != "mingw32"], [
3081 GL_LIBS="-lopengl32"
3085 AM_CONDITIONAL([HAVE_GL], [test "${have_gl}" = "yes"])
3087 dnl OpenGL ES 2: depends on EGL 1.1
3088 PKG_ENABLE_MODULES_VLC([GLES2], [], [glesv2], [OpenGL ES v2 support], [disabled])
3089 dnl OpenGL ES 1: depends on EGL 1.0
3090 PKG_ENABLE_MODULES_VLC([GLES1], [], [glesv1_cm], [OpenGL ES v1 support], [disabled])
3097 AC_CHECK_HEADERS(X11/Xlib.h)
3100 dnl X C Bindings modules
3103 [ --enable-xcb X11 support with XCB (default enabled)],, [
3104 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "darwin" -a "${SYS}" != "symbian"], [
3110 AC_ARG_ENABLE(xvideo,
3111 [ --enable-xvideo XVideo support (default enabled)],, [
3112 enable_xvideo="$enable_xcb"
3115 [ --enable-glx OpenGL support through GLX (default enabled)],, [
3116 enable_glx="$enable_xcb"
3120 have_xcb_keysyms="no"
3122 have_xcb_xvideo="no"
3123 AS_IF([test "${enable_xcb}" != "no"], [
3125 PKG_CHECK_MODULES(XCB, [xcb >= 1.6])
3127 PKG_CHECK_MODULES(XCB_SHM, [xcb-shm])
3128 PKG_CHECK_MODULES(XCB_COMPOSITE, [xcb-composite])
3129 PKG_CHECK_MODULES(XPROTO, [xproto])
3131 AS_IF([test "${enable_xvideo}" != "no"], [
3132 PKG_CHECK_MODULES(XCB_XV, [xcb-xv >= 1.1.90.1], [have_xcb_xvideo="yes"])
3135 PKG_CHECK_MODULES(XCB_RANDR, [xcb-randr >= 1.3], [have_xcb_randr="yes"])
3138 PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms >= 0.3.4], [have_xcb_keysyms="yes"], [
3139 AC_MSG_WARN([${XCB_KEYSYMS_PKG_ERRORS}. Hotkeys will not work.])
3142 AM_CONDITIONAL([HAVE_XCB], [test "${have_xcb}" = "yes"])
3143 AM_CONDITIONAL([HAVE_XCB_KEYSYMS], [test "${have_xcb_keysyms}" = "yes"])
3144 AM_CONDITIONAL([HAVE_XCB_RANDR], [test "${have_xcb_randr}" = "yes"])
3145 AM_CONDITIONAL([HAVE_XCB_XVIDEO], [test "${have_xcb_xvideo}" = "yes"])
3151 AC_ARG_ENABLE(vdpau,
3152 [AS_HELP_STRING([--enable-vdpau], [VDPAU hardware support (default auto)])])
3154 AS_IF([test "${enable_vdpau}" != "no"], [
3155 PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.6], [
3157 AS_IF([test "${no_x}" = "yes"], [
3158 AC_MSG_ERROR([VDPAU requires Xlib (X11).])
3161 AS_IF([test -n "${enable_vdpau}"], [
3162 AC_MSG_ERROR([${VDPAU_PKG_ERRORS}.])
3166 AM_CONDITIONAL([HAVE_VDPAU], [test "${have_vdpau}" = "yes"])
3168 have_avcodec_vdpau="no"
3169 AS_IF([test "${have_vdpau}" = "yes" -a "${have_avcodec}" = "yes"], [
3171 libav) av_vdpau_ver="55.26.0" ;;
3172 ffmpeg) av_vdpau_ver="55.42.100" ;;
3174 PKG_CHECK_EXISTS([libavutil >= 52.4.0 libavcodec >= ${av_vdpau_ver}], [
3175 have_avcodec_vdpau="yes"
3176 AC_MSG_NOTICE([VDPAU decoding acceleration activated])
3178 AS_IF([test -n "${enable_vdpau}"], [
3179 AC_MSG_ERROR([libavutil >= 52.4.0 and libavcodec >= 55.26.0 are required for VDPAU decoding.])
3181 AC_MSG_WARN([libavutil >= 52.4.0 and libavcodec >= 55.26.0 are required for VDPAU decoding.])
3185 AM_CONDITIONAL([HAVE_AVCODEC_VDPAU], [test "${have_avcodec_vdpau}" = "yes"])
3191 AC_ARG_ENABLE(wayland,
3192 [AS_HELP_STRING([--enable-wayland], [Wayland support (default auto)])])
3194 AC_ARG_VAR([WAYLAND_SCANNER], [Wayland scanner utility])
3196 AS_IF([test "${enable_wayland}" != "no"], [
3197 AC_MSG_CHECKING([for the Wayland scanner])
3198 AS_IF([test -z "$WAYLAND_SCANNER"], [
3199 PKG_CHECK_EXISTS([wayland-scanner], [
3200 WAYLAND_SCANNER="$(${PKG_CONFIG} wayland-scanner --variable wayland_scanner)"
3202 WAYLAND_SCANNER="wayland-scanner"
3205 AC_MSG_RESULT([$WAYLAND_SCANNER])
3207 PKG_CHECK_MODULES([WAYLAND_CLIENT], [wayland-client >= 1.5.91], [
3210 AS_IF([test -n "${enable_wayland}"], [
3211 AC_MSG_ERROR([${WAYLAND_CLIENT_PKG_ERRORS}.])
3215 AS_IF([test "${have_egl}" = "yes"], [
3216 PKG_CHECK_MODULES([WAYLAND_EGL], [wayland-egl], [
3217 have_wayland_egl="yes"
3219 AS_IF([test -n "${enable_wayland}"], [
3220 AC_MSG_ERROR([${WAYLAND_EGL_PKG_ERRORS}.])
3225 AM_CONDITIONAL([HAVE_WAYLAND], [test "${have_wayland}" = "yes"])
3226 AM_CONDITIONAL([HAVE_WAYLAND_EGL], [test "${have_wayland_egl}" = "yes"])
3233 [ --enable-sdl SDL support (default enabled)])
3234 AC_ARG_ENABLE(sdl-image,
3235 [ --enable-sdl-image SDL image support (default enabled)])
3236 if test "${enable_sdl}" != "no"
3238 PKG_CHECK_MODULES(SDL, [sdl >= 1.2.10], [
3239 # SDL on Darwin is heavily patched and can only run SDL_image
3240 if test "${SYS}" != "darwin"; then
3241 VLC_ADD_PLUGIN([vout_sdl])
3245 AS_IF([ test "${enable_sdl_image}" != "no"],[
3246 PKG_CHECK_MODULES(SDL_IMAGE, [SDL_image >= 1.2.10], [
3247 VLC_ADD_PLUGIN([sdl_image])],
3248 [ AC_MSG_WARN([${SDL_IMAGE_PKG_ERRORS}. You should install it alongside your SDL package.])
3252 AC_MSG_WARN([${SDL_PKG_ERRORS}.])
3259 AC_ARG_ENABLE(freetype,
3260 [ --enable-freetype freetype support (default auto)])
3261 AC_ARG_ENABLE(fribidi,
3262 [ --enable-fribidi fribidi support (default auto)])
3263 AC_ARG_ENABLE(fontconfig,
3264 [ --enable-fontconfig fontconfig support (default auto)])
3266 AC_ARG_WITH([default-font],
3267 AS_HELP_STRING([--with-default-font=PATH],
3268 [Path to the default font]),
3269 [AC_DEFINE_UNQUOTED([DEFAULT_FONT_FILE],
3270 "$withval", [Default font])])
3271 AC_ARG_WITH([default-monospace-font],
3272 AS_HELP_STRING([--with-default-monospace-font=PATH],
3273 [Path to the default font]),
3274 [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FONT_FILE],
3275 "$withval", [Default monospace font])])
3277 AC_ARG_WITH([default-font-family],
3278 AS_HELP_STRING([--with-default-font-family=NAME],
3279 [Path to the default font family]),
3280 [AC_DEFINE_UNQUOTED([DEFAULT_FAMILY],
3281 "$withval", [Default font family])])
3282 AC_ARG_WITH([default-monospace-font-family],
3283 AS_HELP_STRING([--with-default-monospace-font-family=NAME],
3284 [Path to the default font family]),
3285 [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FAMILY],
3286 "$withval", [Default monospace font family])])
3288 if test "${enable_freetype}" != "no"; then
3289 PKG_CHECK_MODULES(FREETYPE, freetype2, [
3291 VLC_ADD_PLUGIN([freetype])
3292 VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
3293 if test "${SYS}" = "mingw32"; then
3294 VLC_ADD_LIBS([freetype],[-liconv -lz])
3296 VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
3298 AC_CHECK_HEADERS(Carbon/Carbon.h,
3299 [VLC_ADD_LIBS([freetype],[-Wl,-framework,Carbon])])
3301 dnl fontconfig support
3302 if test "${SYS}" != "mingw32"; then
3303 if test "${enable_fontconfig}" != "no"; then
3304 AC_CHECK_HEADERS(fontconfig/fontconfig.h, [
3305 VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
3306 VLC_ADD_LIBS([freetype],[-lfontconfig])
3307 ],[AC_MSG_WARN([library fontconfig not found. Styles will be disabled in freetype])])
3310 VLC_ADD_LIBS([freetype],[-lgdi32])
3314 if test "${enable_fribidi}" != "no"; then
3315 PKG_CHECK_MODULES(FRIBIDI, fribidi, [
3316 VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
3317 VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
3318 ],[AC_MSG_WARN([${FRIBIDI_PKG_ERRORS}. Bidirectional support will be disabled in FreeType.])])
3323 AS_IF([test -n "${enable_freetype}"],[
3324 AC_MSG_ERROR([${FREETYPE_PKG_ERRORS}. Install FreeType2 development or configure with --disable-freetype.])
3331 dnl QuartzText vout module (iOS/Mac OS)
3333 AC_ARG_ENABLE(macosx-quartztext,
3334 [ --enable-macosx-quartztext Mac OS X quartz text module (default enabled on Mac OS X)])
3335 if test "x${enable_macosx_quartztext}" != "xno" &&
3336 (test "${SYS}" = "darwin" || test "${enable_macosx_quartztext}" = "yes")
3338 VLC_ADD_PLUGIN([quartztext])
3339 VLC_ADD_LIBS([quartztext],[-Wl,-framework,ApplicationServices])
3343 dnl SVG module (text rendering and image decoding)
3345 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3346 PKG_ENABLE_MODULES_VLC([SVGDEC], [], [librsvg-2.0 >= 2.9.0 cairo >= 1.13.1], [SVG image decoder library],[auto])
3349 dnl android surface module
3351 AC_ARG_ENABLE(android-surface,
3352 [ --enable-android-surface Android Surface video output module (default disabled)])
3353 if test "${enable_android_surface}" = "yes"; then
3354 VLC_ADD_PLUGIN([android_surface])
3355 VLC_ADD_PLUGIN([android_window])
3359 dnl Windows DirectX module
3362 AC_ARG_ENABLE(directx,
3363 [AS_HELP_STRING([--enable-directx],
3364 [Microsoft DirectX support (default enabled on Windows)])],, [
3365 AS_IF([test "${SYS}" = "mingw32"], [
3366 enable_directx="yes"
3372 AS_IF([test "${enable_directx}" != "no"], [
3374 AC_CHECK_HEADERS(ddraw.h, [
3377 AC_MSG_ERROR([Cannot find DirectX headers!])
3381 AC_CHECK_HEADERS(GL/wglew.h, [
3382 VLC_ADD_PLUGIN([glwin32])
3384 #include <windows.h>
3389 AC_CHECK_HEADERS(d3d9.h, [
3390 VLC_ADD_PLUGIN([direct3d])
3394 AC_CHECK_HEADERS(d2d1.h, [
3395 VLC_ADD_PLUGIN([direct2d])
3398 AM_CONDITIONAL([HAVE_DIRECTX], [test "$have_directx" = "yes"])
3401 dnl Linux framebuffer module
3403 AC_CHECK_HEADER([linux/fb.h], [
3404 VLC_ADD_PLUGIN([fb])
3410 dnl try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
3411 dnl TODO: support for static linking
3413 AC_ARG_ENABLE(directfb,
3414 [ --enable-directfb DirectFB support (default disabled)])
3415 AC_ARG_WITH(directfb,
3416 [ --with-directfb=PATH path to DirectFB headers and libraries])
3418 if test "${enable_directfb}" = "yes"; then
3419 have_directfb="false"
3420 CPPFLAGS_mydirectfb=
3422 if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
3423 dnl Trying the given location
3426 CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
3427 LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/ -L${with_directfb}/src/.libs/"
3429 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
3430 LIBS="${LIBS} ${LIBS_new}"
3432 dnl FIXME: too obscure
3433 AC_CHECK_HEADER([directfb.h], [
3434 AC_CHECK_LIB([direct],[direct_initialize], [
3435 AC_CHECK_LIB([fusion], [fusion_enter], [
3436 AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
3437 ], have_directfb="false")
3438 ], have_directfb="false")
3439 ], have_directfb="false")
3443 if test "${have_directfb}" = "true"; then
3444 LIBS_mydirectfb="${LIBS_new} -lz $LIBDL -ldirectfb -lfusion -ldirect -lpthread"
3445 CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
3448 dnl Look for directfb-config
3449 AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
3450 if test "${DIRECTFB_CONFIG}" != "no"; then
3451 CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
3452 LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
3453 have_directfb="true"
3455 dnl Trying with pkg-config
3456 PKG_CHECK_MODULES(DIRECTFB, directfb, [
3457 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
3458 LIBS_mydirectfb="${DIRECTFB_LIBS}"
3459 have_directfb="true"
3460 ], [have_directfb="false"])
3463 if test "${have_directfb}" = "true"; then
3464 VLC_ADD_PLUGIN([directfb])
3465 VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
3466 VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
3468 AC_MSG_ERROR([${DIRECTFB_PKG_ERRORS}.])
3476 [ --enable-aa aalib output (default disabled)])
3477 if test "${enable_aa}" = "yes"
3479 AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
3480 if test "${have_aa}" = "true"
3482 VLC_ADD_PLUGIN([aa])
3489 PKG_ENABLE_MODULES_VLC([CACA], [], [caca >= 0.99.beta14], [libcaca output],[auto])
3495 [AS_HELP_STRING([--enable-kva],
3496 [support the K Video Accelerator KVA (default enabled on OS/2)])],, [
3497 AS_IF([test "$SYS" = "os2"], [
3503 AS_IF([test "$enable_kva" != "no"], [
3504 AC_CHECK_HEADERS([kva.h], [
3506 AC_CHECK_LIB(kva, main, [
3512 AM_CONDITIONAL([HAVE_KVA], [test "${have_kva}" = "yes"])
3518 AS_HELP_STRING([--enable-mmal],
3519 [Multi-Media Abstraction Layer (MMAL) hardware plugin (default enable)]))
3520 if test "${enable_mmal}" != "no"; then
3522 LDFLAGS="${LDFLAGS} -L/opt/vc/lib"
3523 CPPFLAGS="${CPPFLAGS} -I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux"
3524 AC_CHECK_HEADERS(interface/mmal/mmal.h,
3525 [ AC_CHECK_LIB(bcm_host, vc_tv_unregister_callback_full, [
3527 VLC_ADD_PLUGIN([mmal])
3528 VLC_ADD_LDFLAGS([mmal],[ -L/opt/vc/lib ])
3529 VLC_ADD_CFLAGS([mmal],[ -I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux ])
3530 VLC_ADD_LIBS([mmal],[ -lbcm_host -lmmal ]) ], [
3531 AS_IF([test "${enable_mmal}" = "yes"],
3532 [ AC_MSG_ERROR([Cannot find bcm library...]) ],
3533 [ AC_MSG_WARN([Cannot find bcm library...]) ])
3536 ] , [ AS_IF([test "${enable_mmal}" = "yes"],
3537 [ AC_MSG_ERROR([Cannot find development headers for mmal...]) ],
3538 [ AC_MSG_WARN([Cannot find development headers for mmal...]) ]) ])
3541 AM_CONDITIONAL([HAVE_MMAL], [test "${have_mmal}" = "yes"])
3547 EXTEND_HELP_STRING([Audio plugins:])
3550 dnl Pulseaudio module
3552 AC_ARG_ENABLE(pulse,
3553 [AS_HELP_STRING([--enable-pulse],
3554 [use the PulseAudio client library (default auto)])])
3556 AS_IF([test "${enable_pulse}" != "no"], [
3557 PKG_CHECK_MODULES([PULSE], [libpulse >= 1.0], [
3560 AS_IF([test "x${enable_pulse}" != "x"], [
3561 AC_MSG_ERROR([$PULSE_PKG_ERRORS. PulseAudio 1.0 or later required.])
3565 AM_CONDITIONAL([HAVE_PULSE], [test "${have_pulse}" = "yes"])
3571 [AS_HELP_STRING([--enable-alsa],
3572 [support the Advanced Linux Sound Architecture (default auto)])],, [
3573 AS_IF([test "$SYS" = "linux" -a "${have_pulse}" = "no"], [
3578 AS_IF([test "${enable_alsa}" != "no"], [
3579 PKG_CHECK_MODULES([ALSA], [alsa >= 1.0.24], [
3582 AS_IF([test "x${enable_alsa}" != "x"], [
3583 AC_MSG_ERROR([$ALSA_PKG_ERRORS. alsa-lib 1.0.24 or later required.])
3587 AM_CONDITIONAL([HAVE_ALSA], [test "${have_alsa}" = "yes"])
3590 dnl Open Sound System module
3593 [AS_HELP_STRING([--enable-oss],
3594 [support the Open Sound System OSS (default enabled on FreeBSD/NetBSD/DragonFlyBSD)])],, [
3595 AS_IF([test "$SYS" = "mingw32" -o "$SYS" = "linux" -o "$SYS" = "openbsd"], [
3601 AS_IF([test "$enable_oss" != "no"], [
3602 AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
3604 AC_CHECK_LIB(ossaudio, main, [
3605 OSS_LIBS="-lossaudio"
3610 AM_CONDITIONAL([HAVE_OSS], [test "${have_oss}" = "yes"])
3613 dnl OpenBSD sndio module
3615 AC_ARG_ENABLE([sndio],
3616 [AS_HELP_STRING([--disable-sndio],
3617 [support the OpenBSD sndio (default auto)])],, [
3618 AS_IF([test "$SYS" = "openbsd"], [
3623 AS_IF([test "$enable_sndio" != "no"], [
3624 AC_CHECK_HEADER([sndio.h], [
3628 AM_CONDITIONAL([HAVE_SNDIO], [test "${have_sndio}" = "yes"])
3631 dnl Windows Audio Session plugin
3633 AC_ARG_ENABLE([wasapi],
3634 [AS_HELP_STRING([--enable-wasapi],
3635 [use the Windows Audio Session API (default auto)])
3638 AS_IF([test "$enable_wasapi" != "no"], [
3639 AC_CHECK_HEADER([audioclient.h], [
3642 AS_IF([test "x${enable_wasapi}" != "x"], [
3643 AC_MSG_ERROR([Windows Audio Session API not found.])
3647 AM_CONDITIONAL([HAVE_WASAPI], [test "${have_wasapi}" = "yes"])
3650 dnl AudioQueue plugin
3652 AC_ARG_ENABLE(audioqueue,
3653 [ --enable-audioqueue AudioQueue audio module (default disabled)])
3654 if test "${enable_audioqueue}" = "yes"
3656 VLC_ADD_PLUGIN([audioqueue])
3663 [AS_HELP_STRING([--disable-jack],
3664 [do not use jack (default auto)])])
3666 AS_IF([test "${enable_jack}" != "no"], [
3667 PKG_CHECK_MODULES(JACK, jack >= 1.9.7,
3670 AC_MSG_WARN([${JACK_PKG_ERRORS}, trying jack1 instead])
3672 PKG_CHECK_MODULES(JACK, jack >= 0.120.1 jack < 1.0,
3675 AS_IF([test -n "${enable_jack}"],
3676 [AC_MSG_ERROR([${JACK_PKG_ERRORS}.])],
3677 [AC_MSG_WARN([${JACK_PKG_ERRORS}.])])
3681 AM_CONDITIONAL([HAVE_JACK], [test "${have_jack}" != "no"])
3684 dnl OpenSLES Android
3686 AC_ARG_ENABLE(opensles,
3687 [ --enable-opensles Android OpenSL ES audio module (default disabled)])
3688 if test "${HAVE_ANDROID}" = "1"; then
3689 if test "${enable_opensles}" = "yes"; then
3690 AC_CHECK_HEADERS(SLES/OpenSLES.h,
3691 [ VLC_ADD_PLUGIN([opensles_android]) ],
3692 [ AC_MSG_ERROR([cannot find OpenSLES headers])] )
3697 dnl libsamplerate plugin
3699 PKG_ENABLE_MODULES_VLC([SAMPLERATE], [], [samplerate], [Resampler with libsamplerate], [auto])
3705 [AS_HELP_STRING([--enable-kai],
3706 [support the K Audio Interface KAI (default enabled on OS/2)])],, [
3707 AS_IF([test "$SYS" = "os2"], [
3713 AS_IF([test "$enable_kai" != "no"], [
3714 AC_CHECK_HEADERS([kai.h], [
3716 AC_CHECK_LIB(kai, main, [
3722 AM_CONDITIONAL([HAVE_KAI], [test "${have_kai}" = "yes"])
3725 dnl chromaprint audio track fingerprinter
3727 m4_pushdef([libchromaprint_version], 0.6.0)
3728 PKG_WITH_MODULES([CHROMAPRINT],[libchromaprint >= libchromaprint_version],
3729 VLC_ADD_PLUGIN([stream_out_chromaprint])
3730 VLC_ADD_CFLAGS([stream_out_chromaprint],[${CHROMAPRINT_CFLAGS}] [-I./webservices -I../stream_out])
3731 VLC_ADD_LIBS([stream_out_chromaprint],[${CHROMAPRINT_LIBS}]),
3732 AS_IF([test "${enable_chromaprint}" = "yes"],
3733 [AC_MSG_ERROR(Library [libchromaprint >= libchromaprint_version] needed for [chromaprint] was not found)],
3734 [AC_MSG_WARN(Library [libchromaprint >= libchromaprint_version] needed for [chromaprint] was not found)]
3736 [(Chromaprint based audio fingerprinter)],[auto])
3737 m4_popdef([libchromaprint_version])
3740 dnl Chromecast streaming support
3742 m4_pushdef([protobuf_lite_version], 2.5.0)
3743 AC_ARG_VAR(PROTOC, [protobuf compiler])
3744 AC_PATH_PROGS(PROTOC, protoc, no)
3745 PKG_WITH_MODULES([CHROMECAST],[protobuf-lite >= protobuf_lite_version], [
3746 AS_IF([test "x${PROTOC}" != "xno"], [
3747 VLC_ADD_PLUGIN([stream_out_chromecast])
3748 VLC_ADD_CXXFLAGS([stream_out_chromecast],[${CHROMECAST_CFLAGS}] [-I./chromecast])
3749 VLC_ADD_LIBS([stream_out_chromecast],[${CHROMECAST_LIBS}])
3750 build_chromecast="yes"
3752 AC_MSG_ERROR(protoc compiler needed for [chromecast] was not found)
3755 AS_IF([test "${enable_chromecast}" = "yes"],
3756 AC_MSG_ERROR(Library [protobuf-lite >= protobuf_lite_version] needed for [chromecast] was not found),
3757 AC_MSG_WARN(Library [protobuf-lite >= protobuf_lite_version] needed for [chromecast] was not found)
3759 enable_chromecast="no"
3760 ], [(Chromecast streaming support)], [auto])
3761 AM_CONDITIONAL([BUILD_CHROMECAST], [test "${build_chromecast}" = "yes"])
3762 m4_popdef([protobuf_lite_version])
3765 dnl Interface plugins
3768 EXTEND_HELP_STRING([Interface plugins:])
3774 AS_HELP_STRING([--disable-qt], [Qt UI support (default enabled)])],, [
3775 AS_IF([test "${SYS}" = "darwin"], [
3779 AS_IF([test "${enable_qt}" != "no"], [
3780 PKG_CHECK_MODULES([QT], [Qt5Core >= 5.1.0 Qt5Widgets Qt5Gui], [
3781 PKG_CHECK_MODULES([QTX11], [Qt5X11Extras], [
3782 VLC_ADD_LIBS([qt4],[${QTX11_LIBS}])
3783 VLC_ADD_CXXFLAGS([qt4],[${QTX11_CFLAGS} -DQT5_HAS_X11])
3785 AC_MSG_WARN([Not building Qt Interface with X11 helpers.])
3787 QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix Qt5Core)"
3788 QT_HOST_PATH="$(eval $PKG_CONFIG --variable=host_bins Qt5Core)"
3789 AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin" "${CONTRIB_DIR}/bin"])
3790 AC_PATH_PROGS(RCC, [rcc-qt5 rcc], rcc, ["${QT_HOST_PATH}" "${QT_PATH}/bin" "${CONTRIB_DIR}/bin"])
3791 AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, ["${QT_HOST_PATH}" "${QT_PATH}/bin" "${CONTRIB_DIR}/bin"])
3793 PKG_CHECK_MODULES([QT], [QtCore QtGui >= 4.6.0],, [
3794 AS_IF([test -n "${enable_qt}"],[
3795 AC_MSG_ERROR([${QT_PKG_ERRORS}.])
3797 AC_MSG_WARN([${QT_PKG_ERRORS}.])
3801 QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix QtCore)"
3802 AC_PATH_PROGS(MOC, [moc-qt4 moc], moc, ["${QT_PATH}/bin" "${CONTRIB_DIR}/bin"])
3803 AC_PATH_PROG(RCC, rcc, rcc, [${QT_PATH}/bin ${CONTRIB_DIR}/bin])
3804 AC_PATH_PROGS(UIC, [uic-qt4 uic], uic, ["${QT_PATH}/bin" "${CONTRIB_DIR}/bin"])
3807 AS_IF([test "${enable_qt}" != "no"], [
3808 VLC_ADD_PLUGIN([qt4])
3809 ALIASES="${ALIASES} qvlc"
3811 AM_CONDITIONAL(ENABLE_QT4, [test "$enable_qt" != "no"])
3814 dnl Simple test for skins2 dependency
3816 AS_IF([test "$enable_qt" = "no"], [
3817 AS_IF([test "${enable_skins2}" = "yes"], [
3818 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.])
3821 AC_MSG_WARN([The skins2 module depends on the Qt4 interface, Qt4 is not built so skins2 is disabled.])
3828 AC_ARG_ENABLE(skins2,
3829 [AS_HELP_STRING([--enable-skins2], [skins interface module (default auto)])])
3830 AS_IF([test "${enable_skins2}" != "no"], [
3831 have_skins_deps="yes"
3834 AS_IF([test "${SYS}" = "mingw32"], [
3835 VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -DWIN32_SKINS])
3836 VLC_ADD_LIBS([skins2],[-lgdi32 -lole32 -luuid -lmsimg32])
3838 ], [test "${SYS}" = "darwin"], [
3839 VLC_ADD_CPPFLAGS([skins2],[ -DMACOSX_SKINS])
3840 VLC_ADD_LIBS([skins2],[-Wl,-framework,Carbon])
3842 ], [test "${SYS}" = "os2"], [
3843 VLC_ADD_CPPFLAGS([skins2],[ -DOS2_SKINS])
3846 PKG_CHECK_MODULES([XPM], [xpm],, [have_skins_deps="no"])
3847 PKG_CHECK_MODULES([XINERAMA], [xinerama],, [have_skins_deps="no"])
3848 PKG_CHECK_MODULES([XEXT], [xext],, [have_skins_deps="no"])
3849 VLC_ADD_CPPFLAGS([skins2],[${X_CFLAGS} ${XEXT_CFLAGS} ${XPM_CFLAGS} -DX11_SKINS])
3850 VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} ${XEXT_LIBS} ${XPM_LIBS} ${XINERAMA_LIBS} -lX11])
3854 VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3856 dnl we need freetype
3857 AS_IF([test "${have_freetype}" != "yes"], [
3858 have_skins_deps="no"
3861 AS_IF([test "${have_skins_deps}" = "no"], [
3862 AS_IF([test "x${enable_skins2}" = "x"], [
3863 AC_MSG_WARN([Skins2 interface disabled due to missing dependencies.])
3865 AC_MSG_ERROR([Skins2 interface requires FreeType, libxpm, libxext and libxinerama])
3869 VLC_ADD_PLUGIN([skins2])
3870 ALIASES="${ALIASES} svlc"
3874 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes"])
3876 AC_ARG_ENABLE(libtar,
3877 [ --enable-libtar libtar support for skins2 (default auto)])
3878 AS_IF([test "${enable_skins2}" = "yes" && test "${enable_libtar}" != "no"], [
3879 AC_CHECK_HEADERS(libtar.h, [
3880 VLC_ADD_LIBS([skins2],[-ltar])
3885 dnl MacOS X gui module
3887 AC_ARG_ENABLE(macosx,
3888 [ --enable-macosx Mac OS X gui support (default enabled on Mac OS X)])
3889 if test "x${enable_macosx}" != "xno" -a "${SYS}" = "darwin"
3891 VLC_ADD_LIBS([macosx], [-Wl,-framework,Cocoa -Wl,-framework,Carbon -Wl,-framework,CoreServices])
3892 VLC_ADD_OBJCFLAGS([macosx], [-fobjc-exceptions] )
3893 VLC_ADD_PLUGIN([macosx])
3895 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])
3897 if test ! -d ${CONTRIB_DIR}/Sparkle.framework
3899 AC_MSG_ERROR([Sparkle framework is required and was not found in ${CONTRIB_DIR}])
3901 VLC_ADD_LIBS([macosx], [-F${CONTRIB_DIR} -Wl,-framework,Sparkle])
3902 VLC_ADD_OBJCFLAGS([macosx], [-F${CONTRIB_DIR}])
3904 if test ! -d ${CONTRIB_DIR}/BGHUDAppKit.framework
3906 AC_MSG_ERROR([BGHUDAppKit framework is required and was not found in ${CONTRIB_DIR}])
3908 VLC_ADD_LIBS([macosx], [-F${CONTRIB_DIR} -Wl,-framework,BGHUDAppKit])
3909 VLC_ADD_OBJCFLAGS([macosx], [-F${CONTRIB_DIR}])
3911 AM_CONDITIONAL(ENABLE_MACOSX_UI, [test "$enable_macosx" != "no"])
3914 dnl Minimal Mac OS X module
3916 AC_ARG_ENABLE(minimal-macosx,
3917 [ --enable-minimal-macosx Minimal Mac OS X support (default disabled)])
3918 if test "${enable_minimal_macosx}" = "yes" -a "${SYS}" = "darwin"
3920 VLC_ADD_LIBS([minimal_macosx], [-Wl,-framework,Cocoa])
3921 VLC_ADD_OBJCFLAGS([minimal_macosx], [-fobjc-exceptions] )
3922 VLC_ADD_PLUGIN([minimal_macosx])
3924 AM_CONDITIONAL(ENABLE_MINIMAL_MACOSX, [test "$enable_minimal_macosx" != "no"])
3927 dnl MacOS X dialog provider
3929 AC_ARG_ENABLE(macosx-dialog-provider,
3930 [ --enable-macosx-dialog-provider Mac OS X dialog module (default enabled on Mac OS X)])
3931 if test "x${enable_macosx_dialog_provider}" != "xno" &&
3932 (test "${SYS}" = "darwin" || test "${enable_macosx_dialog_provider}" = "yes")
3934 VLC_ADD_LIBS([macosx_dialog_provider],[-Wl,-framework,Cocoa])
3935 VLC_ADD_PLUGIN([macosx_dialog_provider])
3937 AM_CONDITIONAL(ENABLE_MACOSX_DIALOG_PROVIDER, [test "$enable_macosx_dialog_provider" != "no"])
3942 AC_ARG_ENABLE(ncurses,
3943 [AS_HELP_STRING([--disable-ncurses],[ncurses text-based interface (default auto)])])
3944 AS_IF([test "${enable_ncurses}" != "no"] ,[
3945 PKG_CHECK_MODULES([NCURSES], [ncursesw], [
3946 VLC_ADD_PLUGIN([ncurses])
3947 VLC_ADD_CFLAGS([ncurses],[${NCURSES_CFLAGS}])
3948 VLC_ADD_LIBS([ncurses],[${NCURSES_LIBS}])
3949 ALIASES="${ALIASES} nvlc"
3951 AS_IF([test -n "${enable_ncurses}"], [
3952 AC_MSG_ERROR([${NCURSES_PKG_ERRORS}.])
3961 [ --enable-lirc lirc support (default disabled)])
3962 if test "${enable_lirc}" = "yes"
3964 AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
3965 if test "${have_lirc}" = "true"
3967 VLC_ADD_PLUGIN([lirc])
3968 VLC_ADD_LIBS([lirc],[-llirc_client])
3972 EXTEND_HELP_STRING([Visualisations and Video filter plugins:])
3974 dnl goom visualization plugin
3976 PKG_ENABLE_MODULES_VLC([GOOM], [], [libgoom2], [goom visualization plugin], [auto])
3979 dnl libprojectM visualization plugin
3981 AC_ARG_ENABLE(projectm,
3982 [ --enable-projectm projectM visualization plugin (default enabled)])
3983 AS_IF([test "${enable_projectm}" != "no"],
3985 PKG_CHECK_MODULES(PROJECTM, libprojectM,
3987 VLC_ADD_PLUGIN([projectm])
3988 PKG_CHECK_EXISTS([libprojectM >= 2.0.0],
3989 [ AC_DEFINE([HAVE_PROJECTM2], 1, [Define to 1 if using libprojectM 2.x]) ],
3990 [ AC_MSG_WARN( [Using libprojectM version 1] )
3993 AC_MSG_WARN([${PROJECTM_PKG_ERRORS}.])
3998 dnl Vovoid VSXu visualization plugin
4001 [ --enable-vsxu Vovoid VSXu visualization plugin (default auto)])
4002 AS_IF([test "${enable_vsxu}" != "no"],
4004 PKG_CHECK_MODULES(VSXU, libvsxu,
4006 VLC_ADD_PLUGIN([vsxu])
4007 VLC_ADD_CXXFLAGS([vsxu],[$VSXU_CFLAGS])
4008 VLC_ADD_LIBS([vsxu],[$VSXU_LIBS])
4010 AC_MSG_WARN([${VSXU_PKG_ERRORS}.])
4015 dnl AtmoLight (homemade Philips Ambilight clone)
4018 AS_HELP_STRING([--disable-atmo],[AtmoLight (homemade Philips Ambilight clone)
4019 (default enabled)]),, [enable_atmo="yes"])
4020 AS_IF([test "${enable_atmo}" != no], [
4021 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "linux"], [
4023 VLC_ADD_PLUGIN([atmo])
4031 AC_ARG_ENABLE(glspectrum,
4032 [ --enable-glspectrum 3D OpenGL spectrum visualization (default auto)])
4033 if test "${enable_glspectrum}" != "no" && test "${have_gl}" = "yes"
4035 VLC_ADD_PLUGIN([glspectrum])
4036 VLC_ADD_LIBS([glspectrum],[$GL_LIBS])
4039 EXTEND_HELP_STRING([Service Discovery plugins:])
4041 dnl Bonjour services discovery
4042 PKG_ENABLE_MODULES_VLC([BONJOUR], [], [avahi-client >= 0.6], [Bonjour services discovery], [auto])
4045 dnl libudev services discovery
4046 PKG_ENABLE_MODULES_VLC([UDEV], [], [libudev >= 142], [Linux udev services discovery], [auto])
4049 dnl MTP devices services discovery
4050 PKG_ENABLE_MODULES_VLC([MTP], [mtp access_mtp], [libmtp >= 1.0.0], [MTP devices support], [auto])
4053 dnl UPnP Plugin (Intel SDK)
4055 PKG_ENABLE_MODULES_VLC([UPNP], [upnp], [libupnp], [Intel UPNP SDK],[auto])
4057 EXTEND_HELP_STRING([Misc options:])
4062 PKG_ENABLE_MODULES_VLC([LIBXML2], [xml], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
4068 AC_ARG_ENABLE(libgcrypt,
4069 [ --disable-libgcrypt gcrypt support (default enabled)])
4070 AS_IF([test "${enable_libgcrypt}" != "no"], [
4071 AC_CHECK_DECL([GCRYCTL_SET_THREAD_CBS], [
4072 libgcrypt-config --version >/dev/null || \
4073 AC_MSG_ERROR([gcrypt.h present but libgcrypt-config could not be found])
4074 AC_CHECK_LIB(gcrypt, gcry_control, [
4075 have_libgcrypt="yes"
4076 GCRYPT_CFLAGS="`libgcrypt-config --cflags`"
4077 GCRYPT_LIBS="`libgcrypt-config --libs`"
4079 AC_MSG_ERROR([libgcrypt not found. Install libgcrypt or pass --disable-libgcrypt.])
4080 ], [`libgcrypt-config --libs`])
4082 AC_MSG_ERROR([libgcrypt version 1.1.94 or higher not found. Install libgcrypt or pass --disable-libgcrypt.])
4083 ], [#include <gcrypt.h>]
4087 AC_SUBST(GCRYPT_CFLAGS)
4088 AC_SUBST(GCRYPT_LIBS)
4089 AM_CONDITIONAL([HAVE_GCRYPT], [test "${have_libgcrypt}" = "yes"])
4094 AC_ARG_ENABLE(gnutls,
4095 [ --enable-gnutls GNU TLS TLS/SSL support (default enabled)])
4096 AS_IF([test "${enable_gnutls}" != "no"], [
4097 PKG_CHECK_MODULES(GNUTLS, [gnutls >= 3.2.0], [
4098 VLC_ADD_PLUGIN([gnutls])
4100 AS_IF([test -n "${enable_gnutls}"], [
4101 AC_MSG_ERROR([${GNUTLS_PKG_ERRORS}.)])
4110 AC_ARG_ENABLE(taglib,
4111 [AS_HELP_STRING([--disable-taglib],
4112 [do not use TagLib (default enabled)])])
4113 AS_IF([test "${enable_taglib}" != "no"], [
4114 PKG_CHECK_MODULES(TAGLIB, taglib >= 1.9, [
4115 VLC_ADD_PLUGIN([taglib])
4117 AC_MSG_WARN([${TAGLIB_PKG_ERRORS}.])])
4122 dnl update checking system
4124 AC_ARG_ENABLE(update-check,
4125 [ --enable-update-check update checking system (default disabled)])
4126 if test "${enable_update_check}" = "yes"
4128 if test "${have_libgcrypt}" != "yes"
4130 AC_MSG_ERROR([libgcrypt is required for update checking system])
4132 VLC_ADD_LIBS([libvlccore], [${GCRYPT_LIBS}])
4133 VLC_ADD_CFLAGS([libvlccore], [${GCRYPT_CFLAGS}])
4134 AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
4138 dnl Growl notification plugin
4140 AC_ARG_ENABLE(growl,
4141 [ --enable-growl growl notification plugin (default disabled)],,
4143 AS_IF([test "${enable_growl}" != "no"], [
4144 AC_CHECK_HEADERS(${CONTRIB_DIR}/Growl.framework/Versions/A/Headers/Growl.h, [
4145 VLC_ADD_PLUGIN([growl])
4146 VLC_ADD_LIBS([growl], [-F${CONTRIB_DIR} -Wl,-framework,Growl,-framework,Foundation])
4147 VLC_ADD_OBJCFLAGS([growl], [-F${CONTRIB_DIR}])
4148 VLC_ADD_OBJCFLAGS([growl], [-fobjc-exceptions] )
4154 dnl Libnotify notification plugin
4156 PKG_ENABLE_MODULES_VLC([NOTIFY], [], [libnotify gtk+-2.0], [libnotify notification], [auto])
4159 dnl Endianness check
4162 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
4163 DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
4167 AC_SUBST(DEFS_BIGENDIAN)
4170 dnl Where to install KDE solid .desktop
4172 AC_ARG_VAR([KDE4_CONFIG], [kde4-config utility])
4173 AS_IF([test "x$KDE4_CONFIG" = "x"], [
4174 KDE4_CONFIG="kde4-config"
4177 AC_ARG_WITH(kde-solid,
4178 AS_HELP_STRING([--with-kde-solid=PATH],
4179 [KDE Solid actions directory (auto)]),, [
4181 if test "${SYS}" != "mingw32" -a "${SYS}" != "darwin" ; then
4182 with_kde_solid="yes"
4186 AS_IF([test "${with_kde_solid}" != "no"], [
4187 AS_IF([test "${with_kde_solid}" = "yes"], [
4188 kde4datadir="`${KDE4_CONFIG} --install data`"
4189 AS_IF([test "x$kde4datadir" = "x"], [kde4datadir='${datadir}/kde4/apps'])
4190 soliddatadir="${kde4datadir}/solid/actions"
4192 soliddatadir="${with_kde_solid}"
4195 AC_SUBST(soliddatadir)
4196 AM_CONDITIONAL(KDE_SOLID, [test "x${soliddatadir}" != "x"])
4198 EXTEND_HELP_STRING([Components:])
4204 [ --enable-vlc build the VLC media player (default enabled)])
4205 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
4207 AC_ARG_ENABLE(macosx-vlc-app,
4208 [ --enable-macosx-vlc-app build the VLC media player (default enabled on Mac OS X)])
4209 AM_CONDITIONAL(BUILD_MACOSX_VLC_APP, [test "${enable_macosx_vlc_app}" != "no" &&
4210 (test "${SYS}" = "darwin" || test "${enable_macosx_vlc_app}" = "yes") ])
4213 dnl Stuff used by the program
4215 VERSION_MESSAGE="${VERSION} ${CODENAME}"
4216 COPYRIGHT_MESSAGE="Copyright © ${COPYRIGHT_YEARS} the VideoLAN team"
4217 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string])
4218 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string])
4219 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
4220 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
4221 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,${VERSION_MAJOR}, [version major number])
4222 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,${VERSION_MINOR}, [version minor number])
4223 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,${VERSION_REVISION}, [version revision number])
4224 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,${VERSION_EXTRA}, [version extra number])
4225 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_DEV,"${VERSION_DEV}", [version development string])
4226 AC_SUBST(COPYRIGHT_MESSAGE)
4227 AC_SUBST(VERSION_MESSAGE)
4228 AC_SUBST(VERSION_MAJOR)
4229 AC_SUBST(VERSION_MINOR)
4230 AC_SUBST(VERSION_REVISION)
4231 AC_SUBST(VERSION_EXTRA)
4232 AC_SUBST(COPYRIGHT_YEARS)
4233 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami|sed -e 's/\\\/\\\\\\\/g'`", [user who ran configure])
4234 AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -f 2>/dev/null || hostname`", [host which ran configure])
4235 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1 | sed -e 's/ *$//'`", [compiler])
4237 dnl Handle substvars that use $(top_srcdir)
4239 CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS}"
4242 dnl Configuration is finished
4252 AC_SUBST(WINE_SDK_PATH)
4254 AC_SUBST(AM_CPPFLAGS)
4255 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
4256 AC_SUBST(FILE_LIBVLCCORE_DLL)
4257 AC_SUBST(FILE_LIBVLC_DLL)
4271 modules/access_output/Makefile
4272 modules/audio_filter/Makefile
4273 modules/control/Makefile
4274 modules/gui/Makefile
4275 modules/gui/ios_dialog_provider/Makefile
4276 modules/gui/macosx/Makefile
4277 modules/gui/minimal_macosx/Makefile
4278 modules/gui/macosx_dialog_provider/Makefile
4279 modules/gui/qt4/Makefile
4280 modules/gui/skins2/Makefile
4281 modules/mux/Makefile
4282 modules/packetizer/Makefile
4283 modules/stream_out/Makefile
4284 modules/text_renderer/Makefile
4285 modules/video_filter/Makefile
4286 modules/visualization/Makefile
4287 modules/hw/mmal/Makefile
4290 AM_COND_IF([HAVE_WIN32], [
4292 extras/package/win32/NSIS/spad.nsi
4293 extras/package/win32/NSIS/vlc.win32.nsi
4294 extras/package/win32/msi/config.wxi
4298 AM_COND_IF([HAVE_DARWIN], [
4300 extras/package/macosx/Info.plist
4301 extras/package/macosx/Resources/English.lproj/InfoPlist.strings
4305 dnl Generate makefiles
4308 dnl Do we have to use make or gmake ?
4309 if make --version 2>&1|grep -q GNU
4311 # GNU make, all seems good
4314 # Known GNU make alias (on BSD)
4317 dnl Shortcut to nice compile message
4318 if test -n $SHELL; then
4319 SHELL=${CONFIG_SHELL-/bin/sh}
4322 compile_top_srcdir=`sed -ne "s/^top_srcdir *= *//p" < Makefile`
4326 export PATH=\"$PATH\" LANG=C
4327 ($MAKE V=1 \$@ 2>&1 || touch .error\$\$)| $compile_top_srcdir/extras/buildsystem/make.pl
4328 test -f .error\$\$ && ERROR=1
4330 exit \$ERROR" >compile
4334 libvlc configuration
4335 --------------------
4336 version : ${VERSION}
4338 architecture : ${ARCH}
4339 optimizations : ${enable_optimizations}"
4340 if test "${enable_vlc}" != "no"; then
4341 echo "vlc aliases :${ALIASES}"
4343 echo "build vlc executable : no"
4346 To build vlc and its plugins, type \`$MAKE', or \`./compile' if you like nice colors."