1 dnl Autoconf settings for vlc
3 AC_COPYRIGHT([Copyright 2002-2013 VLC authors and VideoLAN])
5 AC_INIT(vlc, 2.2.0-git)
15 CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
17 COPYRIGHT_YEARS="1996-2013"
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.])
59 AC_DEFINE([_REENTRANT],, [Define to expose reentrant functions.])
60 AC_DEFINE([_THREAD_SAFE],, [Same as _REENTANT for some other OSes.])
61 AC_DEFINE([__LIBVLC__],, [Define within the LibVLC source code tree.])
62 AC_DEFINE([WIN32_LEAN_AND_MEAN],, [Define to limit the scope of <windows.h>.])
68 _AM_DEPENDENCIES([OBJC])
74 AC_ARG_VAR([DESKTOP_FILE_VALIDATE], [Validator for desktop entry files])
75 AC_CHECK_PROGS(DESKTOP_FILE_VALIDATE, [${DESKTOP_FILE_VALIDATE} desktop-file-validate], :)
77 dnl Check for compiler properties
82 dnl Extend the --help string at the current spot.
83 AC_DEFUN([EXTEND_HELP_STRING], [m4_divert_once([HELP_ENABLE], [$1])])
85 dnl Allow binary package maintainer to pass a custom string to avoid
87 AC_ARG_WITH(binary-version,
88 AS_HELP_STRING([--with-binary-version=STRING],
89 [To avoid plugins cache problem between binary version]),[],[])
90 AS_IF([test -n "${with_binary_version}"],[
91 AC_DEFINE_UNQUOTED([DISTRO_VERSION],["${with_binary_version}"],
92 [Binary specific version])
96 dnl Check the operating system
108 CFLAGS="${CFLAGS} -pthread"
112 CFLAGS="${CFLAGS} -pthread"
113 CPPFLAGS="${CPPFLAGS} -I/usr/local/include"
114 LDFLAGS="${LDFLAGS} -L/usr/local/lib"
118 CPPFLAGS="${CPPFLAGS} -I/usr/local/include -I/usr/X11R6/include"
119 LDFLAGS="${LDFLAGS} -L/usr/local/lib -L/usr/X11R6/lib/"
129 dnl Force gcc "-arch" flag
133 ARCH_flag="-arch i386"
136 ARCH_flag="-arch ppc64"
139 ARCH_flag="-arch ppc"
142 ARCH_flag="-arch x86_64"
145 ac_cv_c_bigendian="no"
146 ac_cv_c_attribute_packed="no"
151 CFLAGS="${CFLAGS} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"
152 CXXFLAGS="${CXXFLAGS} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"
153 CPPFLAGS="${CPPFLAGS} ${ARCH_flag}"
154 OBJCFLAGS="${OBJCFLAGS} -D_INTL_REDIRECT_MACROS -std=gnu99 ${ARCH_flag}"
155 LDFLAGS="${LDFLAGS} -Wl,-headerpad_max_install_names ${ARCH_flag}"
156 VLC_ADD_LIBS([motion rotate], [-Wl,-framework,IOKit,-framework,CoreFoundation])
157 VLC_ADD_LIBS([libvlc vlc],[-Wl,-undefined,dynamic_lookup,-framework,AppKit])
158 VLC_ADD_LIBS([avcodec access_avio swscale postproc i420_rgb_mmx x262 x264 x26410b],[-Wl,-read_only_relocs,suppress])
159 VLC_ADD_CFLAGS([motion rotate],[-fconstant-cfstrings])
160 VLC_ADD_LIBS([libvlccore],[-Wl,-framework,CoreFoundation,-framework,SystemConfiguration])
162 dnl Allow binaries created on Lion to run on earlier releases
164 [#import <Cocoa/Cocoa.h>
165 #ifdef MAC_OS_X_VERSION_10_7
168 [AC_MSG_RESULT([yes])
169 AC_LIBOBJ([getdelim])
171 AC_LIBOBJ([strnlen])],)
174 dnl Handle Mac OS X SDK flags
176 AC_ARG_WITH(macosx-sdk,
177 [AS_HELP_STRING([--with-macosx-sdk=DIR],
178 [compile using the SDK in DIR])])
179 if test "${with_macosx_sdk}" != "" ; then
180 test ! -d "${with_macosx_sdk}" && AC_MSG_ERROR([SDK "${with_macosx_sdk}" not found])
181 CPP="${CPP} -isysroot ${with_macosx_sdk}"
182 CC="${CC} -isysroot ${with_macosx_sdk}"
183 CXX="${CXX} -isysroot ${with_macosx_sdk}"
184 OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
185 LD="${LD} -syslibroot ${with_macosx_sdk}"
187 AC_ARG_WITH(macosx-version-min,
188 [AS_HELP_STRING([--with-macosx-version-min=VERSION],
189 [compile for Mac OS X VERSION and above])])
190 if test "${with_macosx_version_min}" != "" ; then
191 MACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}
192 CPP="${CPP} -mmacosx-version-min=${with_macosx_version_min}"
193 CC="${CC} -mmacosx-version-min=${with_macosx_version_min}"
194 CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
195 OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
196 LD="${LD} -mmacosx_version_min=${with_macosx_version_min}"
197 CFLAGS="${CFLAGS} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"
198 CXXFLAGS="${CXXFLAGS} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"
199 OBJCFLAGS="${OBJCFLAGS} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"
200 export MACOSX_DEPLOYMENT_TARGET
203 *mingw32* | *cygwin* | *wince* | *mingwce*)
204 AC_CHECK_TOOL(WINDRES, windres, :)
205 AC_CHECK_TOOL(OBJCOPY, objcopy, :)
206 AH_TOP([#if defined(_WIN32) && !defined(_WIN32_WINNT)])
207 AH_TOP([# define _WIN32_WINNT 0x0502 /* Windows XP SP2 */])
209 AC_DEFINE([_WIN32_IE], 0x0600, [Define to '0x0600' for IE 6.0 (and shell) APIs.])
210 AC_DEFINE([_UNICODE], [1], [Define to 1 for Unicode (Wide Chars) APIs.])
211 AC_DEFINE([UNICODE], [1], [Define to 1 for Unicode (Wide Chars) APIs.])
218 dnl Check if we are using the mno-cygwin mode in which case we are
219 dnl actually dealing with a mingw32 compiler.
224 SYS=mingw32, AC_MSG_ERROR([VLC requires -mno-cygwin]))
228 if test "${SYS}" = "mingw32"; then
230 LDFLAGS="${LDFLAGS} -Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase"
232 VLC_ADD_LIBS([libvlccore],[-lwinmm])
233 VLC_ADD_LDFLAGS([vlc],[-mwindows])
234 VLC_ADD_LIBS([win32text],[-lgdi32])
235 AC_CHECK_PROGS(U2D, [unix2dos todos], unix2dos)
236 ac_default_prefix="`pwd`/_win32"
237 DESTDIR="`pwd`/_win32/"
240 dnl NSIS/MSI Installer prefix and WIN64
246 PROGRAMFILES="PROGRAMFILES64"
250 PROGRAMFILES="PROGRAMFILES"
253 AC_SUBST(WINDOWS_ARCH)
254 AC_SUBST(PROGRAMFILES)
272 LDFLAGS="${LDFLAGS} -Zomf -Zbin-files -Zargs-wild"
278 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
279 AM_CONDITIONAL(HAVE_LINUX, test "${SYS}" = "linux")
280 AM_CONDITIONAL(HAVE_OS2, test "${SYS}" = "os2")
281 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
282 AM_CONDITIONAL(HAVE_WIN64, test "${HAVE_WIN64}" = "1")
283 AM_CONDITIONAL(HAVE_SYMBIAN, test "${SYS}" = "symbian")
286 dnl Sadly autoconf does not think about testing foo.exe when ask to test
287 dnl for program foo on win32
288 case "${build_os}" in
290 ac_executable_extensions=".exe"
296 dnl Android is linux, but a bit different
297 AS_IF([test "$SYS" = linux],[
298 AC_MSG_CHECKING([for an Android system])
299 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
300 [[#ifndef __ANDROID__
311 AM_CONDITIONAL(HAVE_ANDROID, test "${HAVE_ANDROID}" = "1")
315 dnl Check for the contrib directory
318 [AS_HELP_STRING([--with-contrib[=DIR]],
319 [search for 3rd party libraries in DIR/include and DIR/lib])
321 AC_MSG_CHECKING([for 3rd party libraries path])
322 AS_IF([test -z "${with_contrib}" || test "${with_contrib}" = "yes"], [
323 CONTRIB_DIR="${srcdir}/contrib/${host}"
324 AS_IF([test ! -d "${CONTRIB_DIR}"], [
325 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
326 CONTRIB_DIR="${srcdir}/contrib/`$CC -dumpmachine`"
327 AS_IF([test ! -d "${CONTRIB_DIR}"], [
328 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
329 CONTRIB_DIR="${srcdir}/extras/contrib/hosts/${host}"
330 AS_IF([test ! -d "${CONTRIB_DIR}"], [
331 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
332 CONTRIB_DIR="${srcdir}/extras/contrib/hosts/`$CC -dumpmachine`"
333 AS_IF([test ! -d "${CONTRIB_DIR}"], [
334 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
336 AC_MSG_RESULT([not found])
342 AS_IF([test "${with_contrib}" != "no"], [
343 CONTRIB_DIR="${with_contrib}"
346 AC_MSG_RESULT([disabled])
349 AS_IF([test -n "${CONTRIB_DIR}"], [
350 AS_IF([test -d "${CONTRIB_DIR}/lib"],[
351 CONTRIB_DIR=`cd "${CONTRIB_DIR}" && pwd`
353 echo "${CONTRIB_DIR}/lib not found" >&AS_MESSAGE_LOG_FD
355 AC_MSG_RESULT([not usable])
359 AS_IF([test -n "${CONTRIB_DIR}"], [
360 AC_MSG_RESULT([${CONTRIB_DIR}])
361 export PATH=${CONTRIB_DIR}/bin:$PATH
362 CPPFLAGS="${CPPFLAGS} -I${CONTRIB_DIR}/include"
363 CFLAGS="${CFLAGS} -I${CONTRIB_DIR}/include"
364 CXXFLAGS="${CXXFLAGS} -I${CONTRIB_DIR}/include"
365 OBJCFLAGS="${OBJCFLAGS} -I${CONTRIB_DIR}/include"
366 AS_IF([test "$build" = "$host" -o "$PKG_CONFIG_LIBDIR"], [
367 export PKG_CONFIG_PATH="${CONTRIB_DIR}/lib/pkgconfig:$PKG_CONFIG_PATH"
369 export PKG_CONFIG_LIBDIR="${CONTRIB_DIR}/lib/pkgconfig"
371 LDFLAGS="${LDFLAGS} -L${CONTRIB_DIR}/lib"
373 AS_IF([test "${SYS}" = "darwin"], [
374 export LD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$LD_LIBRARY_PATH"
375 export DYLD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$DYLD_LIBRARY_PATH"
378 AS_IF([test -n "${with_contrib}" && test "${with_contrib}" != "no"], [
379 AC_MSG_ERROR([Third party libraries not found!])
382 AC_SUBST(CONTRIB_DIR)
386 dnl It's very bad, but our former custom system was worst
390 dnl override platform specific check for dependent libraries
391 dnl otherwise libtool linking of shared libraries will
392 dnl fail on anything other than pass_all.
393 AC_CACHE_VAL(lt_cv_deplibs_check_method,
394 [lt_cv_deplibs_check_method=pass_all])
396 LT_INIT([dlopen win32-dll shared disable-static])
398 LT_LANG([Windows Resource])
402 lt_cv_deplibs_check_method=pass_all
404 AS_IF([test "${enable_shared}" = "no" -a "${enable_vlc}" != "no"], [
405 AC_MSG_ERROR([VLC is based on plugins. Shared libraries cannot be disabled.])
411 AM_GNU_GETTEXT_VERSION([0.18.3])
412 AM_GNU_GETTEXT([external], [need-ngettext])
421 AS_IF([test "${SYS}" = "mingw32"], [
422 dnl Check for broken versions of mingw-runtime compatability library
423 AC_MSG_CHECKING(for broken mingw-runtime)
424 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
426 #if defined(__MINGW64_VERSION_MAJOR)
427 # if __MINGW64_VERSION_MAJOR < 3
428 # error Attempting to use mingw-runtime with broken vsnprintf and direct2d support
430 #elif __MINGW32_MAJOR_VERSION == 3 && __MINGW32_MINOR_VERSION < 15
431 # error Attempting to use mingw-runtime with broken vsnprintf support
436 AC_MSG_RESULT([present])
437 AC_MSG_ERROR([LibVLC requires mingw-runtime version 3.15 or higher, or mingw-w64 version 3.0 or higher!])
439 dnl force use of mingw provided c99 *printf over msvcrt
440 CPPFLAGS="${CPPFLAGS} -D__USE_MINGW_ANSI_STDIO=1"
442 dnl Check for the need to include the mingwex lib for mingw32
444 AC_CHECK_LIB(mingwex,opendir,
445 AC_CHECK_LIB(mingw32,opendir,,
446 [VLC_ADD_LIBS([libvlccore],[-lmingwex])])
450 dnl Check for fnative-struct or mms-bitfields support for mingw32
452 CFLAGS="${CFLAGS} -mms-bitfields"
453 CXXFLAGS="${CXXFLAGS} -mms-bitfields"
454 AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
455 [ac_cv_c_mms_bitfields],
456 [AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
457 if test "${ac_cv_c_mms_bitfields}" = "no"; then
459 CFLAGS="${CFLAGS} -fnative-struct"
460 CXXFLAGS="${CXXFLAGS} -fnative-struct"
461 AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
462 [ac_cv_c_fnative_struct],
463 [AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
464 "${ac_cv_c_fnative_struct}" = "no" && VLC_RESTORE_FLAGS
468 AC_ARG_ENABLE(winstore_app,
469 AS_HELP_STRING([--enable-winstore-app],
470 [Build targetted for Windows Store apps (default disabled)]))
473 AS_IF([test "${SYS}" = "mingw32" -a "${enable_winstore_app}" = "yes"], [
475 VLC_ADD_LIBS([libvlccore], [-lole32 -lruntimeobject])
477 AC_DEFINE_UNQUOTED(VLC_WINSTORE_APP, ${vlc_winstore_app}, [Define to 1 if you want to build for Windows Store apps])
481 dnl Buggy glibc prevention. Purposedly not cached.
482 dnl See sourceware.org bugs 5058 and 5443.
483 dnl Ubuntu alone has 20 bug numbers for this...
485 AC_MSG_CHECKING(for buggy GNU/libc versions)
486 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
488 #if defined (__GLIBC__) && (__GLIBC__ == 2) \
489 && (__GLIBC_MINOR__ >= 5) && (__GLIBC_MINOR__ <= 7)
490 # error GNU/libc with dcgettext killer bug!
493 AC_MSG_RESULT([not present])
495 AC_MSG_RESULT([found])
496 AS_IF([test "x${enable_nls}" != "xno"], [
497 AC_MSG_ERROR([Buggy GNU/libc (version 2.5 - 2.7) present. VLC would crash; there is no viable
498 work-around for this. Check with your distribution vendor on how to update the
499 glibc run-time. Alternatively, build with --disable-nls.])
503 dnl Plugin compilation stuff
507 dnl Check for system libs needed
510 dnl Check for usual libc functions
511 AC_CHECK_DECLS([nanosleep],,,[#include <time.h>])
512 AC_CHECK_FUNCS([daemon fcntl fstatvfs fork getenv getpwuid_r isatty lstat memalign mmap openat pread posix_fadvise posix_madvise setlocale stricmp strnicmp strptime uselocale])
513 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])
514 AC_CHECK_FUNCS(fdatasync,,
515 [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
518 dnl mingw64 implements those as static inline, not functions with C linkage
520 AC_LANG_PROGRAM([#include <stdio.h>], [
522 if (asprintf(&c, "%s %d", "string", 1) == -1)
524 ])],[AC_DEFINE([HAVE_ASPRINTF],[1],[Define to 1 if you have asprintf function])],[AC_LIBOBJ([asprintf])])
526 AC_LANG_PROGRAM([#include <stdio.h>
527 #include <stdarg.h>], [
530 if (vasprintf(&c, "%s %d", ap) == -1)
532 ])],[AC_DEFINE([HAVE_VASPRINTF],[1],[Define to 1 if you have asprintf function])],[AC_LIBOBJ([vasprintf])])
534 dnl C11 static_assert()
535 AC_MSG_CHECKING([for static_assert in assert.h])
536 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <assert.h>], [
537 static_assert(1, "The impossible happened.");
540 AC_DEFINE([HAVE_STATIC_ASSERT], [1], [Define to 1 if <assert.h> defines static_assert.])
545 # Windows CE does not have strcoll()
548 dnl Check for non-standard system calls
551 AC_CHECK_FUNCS([accept4 pipe2 eventfd vmsplice sched_getaffinity])
554 AC_CHECK_FUNCS([_lock_file])
558 AH_BOTTOM([#include <vlc_fixups.h>])
560 dnl Check for struct pollfd
561 AC_CHECK_TYPES([struct pollfd],,,
562 [#include <sys/types.h>
565 #elif defined (_WIN32)
566 # include <winsock2.h>
570 dnl Checks for socket stuff
573 AC_SEARCH_LIBS(connect, [socket], [
574 AS_IF([test "$ac_cv_search_connect" != "none required"], [
575 SOCKET_LIBS="$ac_cv_search_connect"
578 AS_IF([test "${SYS}" = "mingw32"], [
579 SOCKET_LIBS="-lws2_32"
583 AC_SEARCH_LIBS([getaddrinfo], [nsl], [
584 AS_IF([test "$ac_cv_search_getaddrinfo" != "none required"], [
585 SOCKET_LIBS="$ac_cv_search_getaddrinfo $SOCKET_LIBS"
587 ],, [${SOCKET_LIBS}])
589 LIBS="${LIBS} ${SOCKET_LIBS}"
591 AC_LANG_PROGRAM([#ifdef _WIN32
592 # if _WIN32_WINNT < 0x600
595 #include <ws2tcpip.h>
597 #include <sys/socket.h>
598 #include <arpa/inet.h>
600 char dst[[sizeof(struct in_addr)]];
601 inet_pton(AF_INET, "127.0.0.1", dst);
602 ])],[AC_DEFINE([HAVE_INET_PTON],[1],[Define to 1 if you have inet_pton function])],[AC_LIBOBJ([inet_pton])])
603 AC_CHECK_FUNCS([if_nameindex if_nametoindex])
606 AS_IF([test -n "$SOCKET_LIBS"], [
607 VLC_ADD_LIBS([access_rtmp access_output_udp access_output_shout sap stream_out_standard stream_out_rtp stream_out_raop vod_rtsp rtp oldrc netsync gnutls ts audioscrobbler lua remoteosd zvbi audiobargraph_a],[${SOCKET_LIBS}])
609 AC_SUBST(SOCKET_LIBS)
611 dnl Check for socklen_t
612 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
613 AC_CACHE_CHECK([for socklen_t in sys/socket.h], dnl ` (fix VIM syntax highlight
614 ac_cv_type_socklen_t,
615 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
616 [#include <sys/types.h>
618 # include <winsock2.h>
619 # include <ws2tcpip.h>
621 # include <sys/socket.h>
622 #endif]], [[socklen_t len; len = 0;]])],
623 ac_cv_type_socklen_t=yes,
624 ac_cv_type_socklen_t=no)])
625 AS_IF([test "$ac_cv_type_socklen_t" = no],
626 [AC_DEFINE(socklen_t, int)])
628 dnl Check for struct sockaddr_storage
629 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
630 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
631 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
633 [#include <sys/types.h>
634 #if defined( _WIN32 )
635 # include <winsock2.h>
637 # include <sys/socket.h>
638 #endif], [struct sockaddr_storage addr;],
639 ac_cv_struct_sockaddr_storage=yes,
640 ac_cv_struct_sockaddr_storage=no)])
641 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
642 AC_DEFINE(sockaddr_storage, sockaddr)
643 AC_DEFINE(ss_family, sa_family)
646 dnl FreeBSD has a gnugetopt library for this:
648 AC_CHECK_FUNC(getopt_long,, [
649 AC_CHECK_LIB([gnugetopt],[getopt_long], [
650 GNUGETOPT_LIBS="-lgnugetopt"
653 AC_SUBST(GNUGETOPT_LIBS)
656 VLC_ADD_LIBS([adjust wave ripple psychedelic gradient a52tofloat32 dtstofloat32 x264 goom rotate noise grain scene kate lua chorus_flanger freetype swscale postproc faad twolame equalizer spatializer param_eq samplerate freetype mpc dmo quicktime qt4 compressor headphone_channel_mixer normvol audiobargraph_a audiobargraph_v speex opus mono colorthres extract ball hotkeys mosaic gaussianblur x262 x26410b hqdn3d anaglyph oldrc ncurses oldmovie glspectrum],[-lm])
663 AC_CHECK_LIB(m,lrintf, [
664 AC_DEFINE(HAVE_LRINTF, 1, [Define to 1 if you have the lrintf function])
665 VLC_ADD_LIBS([skins2],[-lm])
668 dnl Check for dynamic plugins
670 have_dynamic_objects="no"
672 AC_SEARCH_LIBS(dlopen, [dl svld], [
673 AS_IF([test "$ac_cv_search_dlopen" != "none required"], [
674 LIBDL="$ac_cv_search_dlopen"
676 have_dynamic_objects="yes"
681 AS_IF([test "${SYS}" = "mingw32"], [
683 have_dynamic_objects="yes" #assume we can use shared objects
686 AS_IF([test "${enable_shared}" = "no"], [
687 have_dynamic_objects=no
689 AM_CONDITIONAL(HAVE_DYNAMIC_PLUGINS, [test "${have_dynamic_objects}" != "no"])
692 VLC_ADD_LIBS([lua],[$LIBDL])
694 dnl Check for thread library
696 AS_IF([test "${SYS}" != "mingw32"], [
699 AC_SEARCH_LIBS(pthread_rwlock_init, pthread pthreads c_r, [
700 AS_IF([test "$ac_cv_search_pthread_rwlock_init" != "none required"], [
701 LIBPTHREAD="$ac_cv_search_pthread_rwlock_init"
706 AC_CHECK_LIB(rt, clock_nanosleep, [
707 VLC_ADD_LIBS([libvlccore],[-lrt])
709 AC_CHECK_FUNC(nanosleep,,[
710 AC_CHECK_LIB(rt,nanosleep, [
711 VLC_ADD_LIBS([libvlccore],[-lrt])
713 AC_CHECK_LIB(posix4,nanosleep, [
714 VLC_ADD_LIBS([libvlccore],[-lposix4])
719 AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LIBS([libvlccore],[-lrt])])
724 dnl Check for headers
725 AC_CHECK_HEADERS([search.h])
726 AC_CHECK_HEADERS(getopt.h locale.h xlocale.h)
727 AC_CHECK_HEADERS([sys/time.h sys/ioctl.h])
728 AC_CHECK_HEADERS([arpa/inet.h netinet/udplite.h sys/eventfd.h])
729 AC_CHECK_HEADERS([net/if.h], [], [],
731 #include <sys/types.h>
732 #include <sys/socket.h>
734 AC_CHECK_HEADERS([sys/mount.h], [], [],
736 #include <sys/param.h>
739 if test "${SYS}" != "mingw32"; then
740 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
741 AC_CHECK_HEADERS([linux/version.h linux/dccp.h scsi/scsi.h linux/magic.h])
742 AC_CHECK_HEADERS(syslog.h mntent.h)
743 fi # end "${SYS}" != "mingw32"
745 dnl LP64 and LLP64 architectures had better define ssize_t by themselves...
746 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.]) dnl ` (fix VIM syntax highlight
747 AC_CHECK_TYPE(ssize_t,, [
748 AC_DEFINE(ssize_t, int)
751 dnl Check for threads library
752 if test "${SYS}" != "mingw32"; then
753 AC_CHECK_HEADERS(pthread.h)
754 fi # end "${SYS}" != "mingw32"
756 dnl It seems that autoconf detects pkg-config only during the first
757 dnl PKG_CHECK_MODULES from configure.ac - which makes sense. But in our case,
758 dnl it is nested within a conditional block, so it was not working right.
759 dnl Make PKG_CONFIG_PATH precious so that it appears in the help and get saved
760 AC_ARG_VAR(PKG_CONFIG_PATH,
761 [Paths where to find .pc not at the default location])
762 PKG_PROG_PKG_CONFIG()
764 dnl On some OS we need static linking
765 AS_IF([test -n "${PKG_CONFIG}" ],[
766 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "darwin" -o "${SYS}" = "os2" ],[
767 PKG_CONFIG="${PKG_CONFIG} --static"
773 dnl Check for zlib.h and -lz along with system -lminizip if available
775 AC_CHECK_HEADERS(zlib.h, [ have_zlib=yes ], [ have_zlib=no ])
776 AM_CONDITIONAL(HAVE_ZLIB, [ test "${have_zlib}" = "yes" ])
777 if test "${have_zlib}" = "yes"
779 VLC_ADD_LIBS([skins2 sap unzip zip],[-lz])
780 PKG_CHECK_MODULES([MINIZIP], [minizip] , [ have_minizip=yes ], [
781 AC_CHECK_HEADERS([unzip.h], [
783 MINIZIP_LIBS="-lminizip -lz"
785 VLC_ADD_CPPFLAGS([skins2], [-I\\\$(top_srcdir)/modules/access/zip/unzip])
786 VLC_ADD_LIBS([skins2], [\\\$(top_builddir)/modules/access/libunzip.la])
790 VLC_ADD_CPPFLAGS([skins2],[$MINIZIP_CFLAGS])
791 VLC_ADD_LIBS([skins2],[$MINIZIP_LIBS])
793 AM_CONDITIONAL(HAVE_MINIZIP, [ test "${have_minizip}" = "yes" ])
797 dnl Domain name i18n support via GNU libidn
799 PKG_CHECK_MODULES([IDN], [libidn], [
801 AC_DEFINE([HAVE_IDN], 1, [Define to 1 if you have GNU libidn.])
809 [AS_HELP_STRING([--enable-dbus],
810 [compile D-Bus message bus support (default enabled)])])
812 AS_IF([test "${enable_dbus}" != "no"], [
813 PKG_CHECK_MODULES(DBUS, [dbus-1 >= 1.6.0], [
816 AS_IF([test -n "${enable_dbus}"], [
817 AC_MSG_ERROR([${DBUS_PKG_ERRORS}.])
819 AC_MSG_WARN([${DBUS_PKG_ERRORS}.])
823 AM_CONDITIONAL([HAVE_DBUS], [test "${have_dbus}" = "yes"])
825 dnl Check for ntohl, etc.
827 CFLAGS="${CFLAGS} -Wall -Werror"
828 AC_CACHE_CHECK([for ntohl in sys/param.h],
829 [ac_cv_c_ntohl_sys_param_h],
830 [ AC_TRY_COMPILE([#include <sys/param.h>],
831 [int meuh; ntohl(meuh);],
832 ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
833 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
834 AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
838 EXTEND_HELP_STRING([Optimization options:])
840 dnl Compiler warnings
843 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])
844 RDC_PROG_CC_FLAGS([-pipe])
846 RDC_PROG_CXX_WFLAGS([all extra sign-compare undef pointer-arith volatile-register-var])
853 [AS_HELP_STRING([--enable-debug],
854 [build with run-time assertions (default disabled)])],,
857 [Define to 1 if debug code should NOT be compiled])
858 AS_IF([test "${enable_debug}" != "no"], [
859 AC_CHECK_HEADERS([valgrind/valgrind.h])
868 [AS_HELP_STRING([--enable-gprof],[profile with gprof (default disabled)])],,
870 AS_IF([test "${enable_gprof}" != "no"], [
871 CFLAGS="${CFLAGS} -pg"
872 CXXFLAGS="${CXXFLAGS} -pg"
873 OBJCFLAGS="${OBJCFLAGS} -pg"
874 LDFLAGS="${LDFLAGS} -pg"
878 [AS_HELP_STRING([--enable-cprof],[profile with cprof (default disabled)])],,
880 AS_IF([test "${enable_gprof}" != "no"], [
881 CFLAGS="${CFLAGS} -finstrument-functions"
882 CXXFLAGS="${CXXFLAGS} -finstrument-functions"
883 OBJCFLAGS="${OBJCFLAGS} -finstrument-functions"
884 LDFLAGS="${LDFLAGS} -finstrument-functions"
890 AC_ARG_ENABLE(coverage,
891 [AS_HELP_STRING([--enable-coverage],
892 [build for test coverage (default disabled)])],,
893 [enable_coverage="no"])
894 AS_IF([test "${enable_coverage}" != "no"], [
895 CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
896 CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
897 LDFLAGS="-lgcov ${LDFLAGS}"
900 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "os2"], [
902 CFLAGS="${CFLAGS} -fvisibility=hidden"
903 CXXFLAGS="${CXXFLAGS} -fvisibility=hidden"
904 OBJCFLAGS="${OBJCFLAGS} -fvisibility=hidden"
905 AC_CACHE_CHECK([if $CC accepts -fvisibility=hidden],
906 [ac_cv_c_visibility_hidden], [
907 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
908 ac_cv_c_visibility_hidden=yes
910 ac_cv_c_visibility_hidden=no
913 AS_IF([test "${ac_cv_c_visibility_hidden}" = "no"], [VLC_RESTORE_FLAGS])
918 dnl Enable/disable optimizations
920 AC_ARG_ENABLE(optimizations,
921 [AS_HELP_STRING([--disable-optimizations],
922 [disable compiler optimizations (default enabled)])],,
923 [enable_optimizations="yes"])
925 dnl Check for various optimization flags
926 AS_IF([test "${enable_optimizations}" != "no"], [
928 dnl -O4 and -O3 only in production builds
929 AS_IF([test "{enable_debug}" = "no"], [
931 CFLAGS="${CFLAGS} -O4"
932 CXXFLAGS="${CXXFLAGS} -O4"
933 OBJCFLAGS="${OBJCFLAGS} -O4"
934 AC_CACHE_CHECK([if $CC accepts -O4], [ac_cv_c_o4], [
935 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
941 AS_IF([test "${ac_cv_c_o4}" = "no"], [
943 CFLAGS="${CFLAGS} -O3"
944 CXXFLAGS="${CXXFLAGS} -O3"
945 OBJCFLAGS="${OBJCFLAGS} -O3"
946 AC_CACHE_CHECK([if $CC accepts -O3], [ac_cv_c_o3], [
947 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
953 AS_IF([test "${ac_cv_c_o3}" = "no"], [VLC_RESTORE_FLAGS])
957 dnl Check for -ffast-math
959 CFLAGS="${CFLAGS} -ffast-math"
960 CXXFLAGS="${CXXFLAGS} -ffast-math"
961 OBJCFLAGS="${OBJCFLAGS} -ffast-math"
962 AC_CACHE_CHECK([if $CC accepts -ffast-math], [ac_cv_c_fast_math], [
963 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
964 ac_cv_c_fast_math=yes
969 AS_IF([test "${ac_cv_c_fast_math}" = "no"], [VLC_RESTORE_FLAGS])
971 #ifndef __FAST_MATH__
972 # pragma STDC FENV_ACCESS OFF
973 # pragma STDC FP_CONTRACT ON
977 dnl Check for -funroll-loops
979 CFLAGS="${CFLAGS} -funroll-loops"
980 CXXFLAGS="${CXXFLAGS} -funroll-loops"
981 OBJCFLAGS="${OBJCFLAGS} -funroll-loops"
982 AC_CACHE_CHECK([if $CC accepts -funroll-loops], [ac_cv_c_unroll_loops], [
983 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
984 ac_cv_c_unroll_loops=yes
986 ac_cv_c_unroll_loops=no
989 AS_IF([test "${ac_cv_c_unroll_loops}" = "no"], [VLC_RESTORE_FLAGS])
991 AS_IF([test "$enable_debug" = "no"], [
992 dnl Check for -fomit-frame-pointer
994 CFLAGS="${CFLAGS} -fomit-frame-pointer"
995 CXXFLAGS="${CXXFLAGS} -fomit-frame-pointer"
996 OBJCFLAGS="${OBJCFLAGS} -fomit-frame-pointer"
997 AC_CACHE_CHECK([if $CC accepts -fomit-frame-pointer],
998 [ac_cv_c_omit_frame_pointer], [
999 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1000 ac_cv_c_omit_frame_pointer=yes
1002 ac_cv_c_omit_frame_pointer=no
1005 AS_IF([test "${ac_cv_c_omit_frame_pointer}" = "no"], [VLC_RESTORE_FLAGS])
1010 LDFLAGS="${LDFLAGS} -Wl,-Bsymbolic"
1011 AC_CACHE_CHECK([if linker supports -Bsymbolic], [ac_cv_ld_bsymbolic], [
1013 ac_cv_ld_bsymbolic="-Wl,-Bsymbolic"
1015 ac_cv_ld_bsymbolic=""
1019 SYMBOLIC_LDFLAGS="${ac_cv_ld_bsymbolic}"
1020 AC_SUBST(SYMBOLIC_LDFLAGS)
1022 dnl Check for Darwin plugin linking flags
1023 AS_IF([test "${SYS}" = "darwin"], [
1025 CFLAGS="${CFLAGS} -bundle -undefined error"
1026 AC_CACHE_CHECK([if $CC accepts -bundle -undefined error],
1027 [ac_cv_ld_darwin], [
1028 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1034 AS_IF([test "${ac_cv_ld_darwin}" != "no"], [
1035 VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
1040 dnl Checks for __attribute__(aligned()) directive
1042 CFLAGS="${CFLAGS} -Werror"
1043 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1044 [ac_cv_c_attribute_aligned],
1045 [ac_cv_c_attribute_aligned=0
1046 for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1048 [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1049 [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1052 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1053 AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1054 [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1057 dnl Check for __attribute__((packed))
1058 AC_CACHE_CHECK([for __attribute__((packed))],
1059 [ac_cv_c_attribute_packed],
1060 [ac_cv_c_attribute_packed=no
1061 AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b; (void)b;],
1062 [ac_cv_c_attribute_packed=yes])])
1063 if test "${ac_cv_c_attribute_packed}" != "no"; then
1064 AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1070 case "${host_cpu}" in
1079 dnl Check for backtrace() support
1080 AC_CHECK_HEADERS(execinfo.h)
1081 AC_CHECK_FUNCS(backtrace)
1086 ALIASES="${ALIASES} cvlc rvlc"
1089 dnl Accelerated modules
1092 dnl Check for fully working MMX intrinsics
1093 dnl We need support for -mmmx, we need <mmintrin.h>, and we also need a
1094 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1096 [AS_HELP_STRING([--disable-mmx],
1097 [disable MMX optimizations (default auto)])],,[
1098 case "${host_cpu}" in
1109 AS_IF([test "${enable_mmx}" != "no"], [
1112 CFLAGS="${CFLAGS} -mmmx"
1113 AC_CACHE_CHECK([if $CC groks MMX intrinsics], [ac_cv_c_mmx_intrinsics], [
1114 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1115 [#include <mmintrin.h>
1117 uint64_t frobzor;]], [
1119 a = b = c = (__m64)frobzor;
1120 a = _mm_slli_pi16(a, 3);
1121 a = _mm_adds_pi16(a, b);
1122 c = _mm_srli_pi16(c, 8);
1123 c = _mm_slli_pi16(c, 3);
1124 b = _mm_adds_pi16(b, c);
1125 a = _mm_unpacklo_pi8(a, b);
1126 frobzor = (uint64_t)a;]])], [
1127 ac_cv_c_mmx_intrinsics=yes
1129 ac_cv_c_mmx_intrinsics=no
1133 AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1134 AC_DEFINE(HAVE_MMX_INTRINSICS, 1, [Define to 1 if MMX intrinsics are available.])
1138 CFLAGS="${CFLAGS} -mmmx"
1139 AC_CACHE_CHECK([if $CC groks MMX inline assembly], [ac_cv_mmx_inline], [
1140 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1142 asm volatile("packuswb %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1145 ac_cv_mmx_inline=yes
1150 AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1151 AC_DEFINE(CAN_COMPILE_MMX, 1, [Define to 1 inline MMX assembly is available.])
1155 AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1156 [ac_cv_mmxext_inline], [
1157 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1159 asm volatile("maskmovq %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1162 ac_cv_mmxext_inline=yes
1164 ac_cv_mmxext_inline=no
1168 AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1169 AC_DEFINE(CAN_COMPILE_MMXEXT, 1, [Define to 1 if MMX EXT inline assembly is available.])
1173 AM_CONDITIONAL([HAVE_MMX], [test "${have_mmx}" = "yes"])
1174 AM_CONDITIONAL([HAVE_MMXEXT], [test "${have_mmxext}" = "yes"])
1176 dnl Check for fully workin SSE2 intrinsics
1177 dnl We need support for -mmmx, we need <emmintrin.h>, and we also need a
1178 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1180 [AS_HELP_STRING([--disable-sse],
1181 [disable SSE (1-4) optimizations (default auto)])],, [
1182 case "${host_cpu}" in
1192 AS_IF([test "${enable_sse}" != "no"], [
1193 ARCH="${ARCH} sse sse2"
1196 CFLAGS="${CFLAGS} -msse2"
1197 AC_CACHE_CHECK([if $CC groks SSE2 intrinsics], [ac_cv_c_sse2_intrinsics], [
1198 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1199 [#include <emmintrin.h>
1201 uint64_t frobzor;]], [
1203 a = b = c = _mm_set1_epi64((__m64)frobzor);
1204 a = _mm_slli_epi16(a, 3);
1205 a = _mm_adds_epi16(a, b);
1206 c = _mm_srli_epi16(c, 8);
1207 c = _mm_slli_epi16(c, 3);
1208 b = _mm_adds_epi16(b, c);
1209 a = _mm_unpacklo_epi8(a, b);
1210 frobzor = (uint64_t)_mm_movepi64_pi64(a);]])], [
1211 ac_cv_c_sse2_intrinsics=yes
1213 ac_cv_c_sse2_intrinsics=no
1217 AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1218 AC_DEFINE(HAVE_SSE2_INTRINSICS, 1, [Define to 1 if SSE2 intrinsics are available.])
1222 CFLAGS="${CFLAGS} -msse"
1223 AC_CACHE_CHECK([if $CC groks SSE inline assembly], [ac_cv_sse_inline], [
1224 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1226 asm volatile("xorps %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1229 ac_cv_sse_inline=yes
1235 AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1236 AC_DEFINE(CAN_COMPILE_SSE, 1, [Define to 1 if SSE inline assembly is available.])
1239 AC_CACHE_CHECK([if $CC groks SSE2 inline assembly], [ac_cv_sse2_inline], [
1240 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1242 asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1245 ac_cv_sse2_inline=yes
1247 ac_cv_sse2_inline=no
1250 AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1251 AC_DEFINE(CAN_COMPILE_SSE2, 1, [Define to 1 if SSE2 inline assembly is available.])
1256 AC_CACHE_CHECK([if $CC groks SSE3 inline assembly], [ac_cv_sse3_inline], [
1257 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1259 asm volatile("movsldup %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1262 ac_cv_sse3_inline=yes
1264 ac_cv_sse3_inline=no
1268 AS_IF([test "${ac_cv_sse3_inline}" != "no"], [
1269 AC_DEFINE(CAN_COMPILE_SSE3, 1, [Define to 1 if SSE3 inline assembly is available.]) ])
1271 AC_CACHE_CHECK([if $CC groks SSSE3 inline assembly], [ac_cv_ssse3_inline], [
1272 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1274 asm volatile("pabsw %%xmm0,%%xmm0"::"r"(p):"xmm0");
1277 ac_cv_ssse3_inline=yes
1279 ac_cv_ssse3_inline=no
1283 AS_IF([test "${ac_cv_ssse3_inline}" != "no"], [
1284 AC_DEFINE(CAN_COMPILE_SSSE3, 1, [Define to 1 if SSSE3 inline assembly is available.]) ])
1287 AC_CACHE_CHECK([if $CC groks SSE4.1 inline assembly],
1288 [ac_cv_sse4_1_inline], [
1289 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1291 asm volatile("pmaxsb %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1294 ac_cv_sse4_1_inline=yes
1296 ac_cv_sse4_1_inline=no
1300 AS_IF([test "${ac_cv_sse4_1_inline}" != "no"], [
1301 AC_DEFINE(CAN_COMPILE_SSE4_1, 1, [Define to 1 if SSE4_1 inline assembly is available.]) ])
1304 AC_CACHE_CHECK([if $CC groks SSE4.2 inline assembly],
1305 [ac_cv_sse4_2_inline], [
1306 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1308 asm volatile("pcmpgtq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1311 ac_cv_sse4_2_inline=yes
1313 ac_cv_sse4_2_inline=no
1317 AS_IF([test "${ac_cv_sse4_2_inline}" != "no"], [
1318 AC_DEFINE(CAN_COMPILE_SSE4_2, 1, [Define to 1 if SSE4_2 inline assembly is available.]) ])
1321 AC_CACHE_CHECK([if $CC groks SSE4A inline assembly], [ac_cv_sse4a_inline], [
1322 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1324 asm volatile("insertq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1327 ac_cv_sse4a_inline=yes
1329 ac_cv_sse4a_inline=no
1333 AS_IF([test "${ac_cv_sse4a_inline}" != "no"], [
1334 AC_DEFINE(CAN_COMPILE_SSE4A, 1, [Define to 1 if SSE4A inline assembly is available.]) ])
1336 AM_CONDITIONAL([HAVE_SSE2], [test "$have_sse2" = "yes"])
1339 CFLAGS="${CFLAGS} -mmmx"
1341 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly], [ac_cv_3dnow_inline], [
1342 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1344 asm volatile("pfadd %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1347 ac_cv_3dnow_inline=yes
1349 ac_cv_3dnow_inline=no
1353 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1354 AC_DEFINE(CAN_COMPILE_3DNOW, 1,
1355 [Define to 1 if 3D Now! inline assembly is available.])
1358 AM_CONDITIONAL([HAVE_3DNOW], [test "$have_3dnow" = "yes"])
1362 [AS_HELP_STRING([--disable-neon],
1363 [disable NEON optimizations (default auto)])],, [
1364 AS_IF([test "${host_cpu}" = "arm"], [enable_neon="yes"] ,[enable_neon="no"])
1366 AS_IF([test "${enable_neon}" != "no"], [
1368 CFLAGS="${CFLAGS} -mfpu=neon -mhard-float"
1369 AC_CACHE_CHECK([if $CCAS groks ARM NEON assembly], [ac_cv_arm_neon], [
1372 asm volatile("vqmovun.s64 d0, q1":::"d0");
1375 ac_cv_arm_neon="yes"
1382 AM_CONDITIONAL(HAVE_NEON, [test "${ac_cv_arm_neon}" = "yes"])
1385 AC_ARG_ENABLE(altivec,
1386 [AS_HELP_STRING([--disable-altivec],
1387 [disable AltiVec optimizations (default auto)])],, [
1388 AS_CASE("${host_cpu}", [powerpc*],
1389 [enable_altivec=yes], [enable_altivec=no])
1393 AS_IF([test "${enable_altivec}" = "yes"], [
1394 ARCH="${ARCH} altivec";
1396 AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1397 [ac_cv_altivec_inline],
1398 [AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1399 ac_cv_altivec_inline="yes",
1400 [CFLAGS="${CFLAGS} -Wa,-m7400"
1401 AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1402 [ac_cv_altivec_inline="-Wa,-m7400"],
1403 ac_cv_altivec_inline=no)
1406 AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1407 AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1408 [Define to 1 if AltiVec inline assembly is available.])
1409 AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1410 ALTIVEC_CFLAGS="${ac_cv_altivec_inline}"
1411 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_altivec_inline}])
1416 dnl The AltiVec C extensions
1418 dnl There are several possible cases:
1419 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1420 dnl need <altivec.h>
1421 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1422 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1423 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1424 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1425 dnl - Others: test should fail
1427 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1429 [# OS X/PPC test (gcc 4.x)
1430 CFLAGS="${CFLAGS} -mpim-altivec -force_cpusubtype_ALL"
1431 AC_TRY_COMPILE([vector unsigned char foo;],
1432 [vec_ld(0, (unsigned char *)0);],
1433 [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1434 [# OS X/PPC test (gcc 3.x)
1435 CFLAGS="${CFLAGS} -faltivec"
1436 AC_TRY_COMPILE([vector unsigned char foo;],
1437 [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1438 [ac_cv_c_altivec="-faltivec"],
1439 dnl Below this are the Linux tests
1440 [# Linux/PPC test (gcc 4.x)
1441 CFLAGS="${CFLAGS} -maltivec"
1442 AC_TRY_COMPILE([#include <altivec.h>],
1443 [vec_ld(0, (unsigned char *)0);],
1444 [ac_cv_c_altivec="-maltivec"],
1445 [# Linux/PPC test (gcc 3.3)
1446 CFLAGS="${CFLAGS} -maltivec -mabi=altivec"
1447 AC_TRY_COMPILE([#include <altivec.h>],
1448 [vec_ld(0, (unsigned char *)0);],
1450 ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1451 [# Linux/PPC test (gcc 3.3)
1452 CFLAGS="${CFLAGS} -fvec"
1453 AC_TRY_COMPILE([#include <altivec.h>],
1454 [vec_ld(0, (unsigned char *)0);],
1455 [ac_cv_c_altivec="-fvec"],
1456 [ac_cv_c_altivec=no])
1464 AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1465 CPPFLAGS="${CPPFLAGS} ${ac_cv_c_altivec}"
1466 AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, [Define to 1 if C AltiVec extensions are available.])
1467 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_c_altivec}])
1468 ALTIVEC_CFLAGS="$ALTIVEC_FLAGS ${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}"
1469 VLC_ADD_CFLAGS([deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1472 AC_CHECK_HEADERS(altivec.h)
1475 LDFLAGS="${LDFLAGS} -Wl,-framework,vecLib"
1476 AC_CACHE_CHECK([if linker needs -framework vecLib],
1478 [AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)])
1480 AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1481 VLC_ADD_LIBS([libvlccore],[-Wl,-framework,vecLib])
1484 AC_SUBST(ALTIVEC_CFLAGS)
1485 AM_CONDITIONAL([HAVE_ALTIVEC], [test "$have_altivec" = "yes"])
1490 AC_ARG_ENABLE(optimize-memory,
1491 [AS_HELP_STRING([--enable-optimize-memory],
1492 [optimize memory usage over performance])])
1493 if test "${enable_optimize_memory}" = "yes"; then
1494 AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1498 dnl Allow running as root (useful for people running on embedded platforms)
1500 AC_ARG_ENABLE(run-as-root,
1501 [AS_HELP_STRING([--enable-run-as-root],
1502 [allow running VLC as root (default disabled)])])
1503 AS_IF([test "${enable_run_as_root}" = "yes"],[
1504 AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1505 [Define to 1 to allow running VLC as root (uid 0).])
1512 [AS_HELP_STRING([--disable-sout],
1513 [disable streaming output (default enabled)])])
1514 AS_IF([test "${enable_sout}" != "no"], [
1515 AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1517 AM_CONDITIONAL(ENABLE_SOUT, [test "${enable_sout}" != "no"])
1521 [AS_HELP_STRING([--disable-lua],
1522 [disable LUA scripting support (default enabled)])])
1523 if test "${enable_lua}" != "no"
1525 PKG_CHECK_MODULES(LUA, lua5.2,
1528 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua 5.1 instead])
1530 PKG_CHECK_MODULES(LUA, lua5.1,
1533 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua >= 5.1 instead])
1534 PKG_CHECK_MODULES(LUA, lua >= 5.1,
1537 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying manual detection instead])
1539 AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1542 AC_CHECK_LIB( lua5.2 , luaL_newstate,
1543 [LUA_LIBS="-llua5.2"],
1544 AC_CHECK_LIB( lua5.1 , luaL_newstate,
1545 [LUA_LIBS="-llua5.1"],
1546 AC_CHECK_LIB( lua51 , luaL_newstate,
1547 [LUA_LIBS="-llua51"],
1548 AC_CHECK_LIB( lua , luaL_newstate,
1556 if test "x${have_lua}" = "xyes" ; then
1557 VLC_ADD_LIBS([lua],[$LUA_LIBS])
1558 VLC_ADD_CFLAGS([lua],[$LUA_CFLAGS])
1560 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.])
1562 AC_ARG_VAR([LUAC], [LUA byte compiler])
1563 AC_PATH_PROGS(LUAC,[${LUAC} luac], [false])
1564 AS_IF([test "${LUAC}" = "false"], [
1565 AC_MSG_ERROR([Could not find the LUA byte compiler.])
1567 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|cut -d' ' -f2` != 0404], [
1568 AC_MSG_ERROR([You need 32-bits luac when using using lua from contrib.])
1571 AM_CONDITIONAL(BUILD_LUA, [test "${have_lua}" = "yes"])
1577 AC_ARG_ENABLE(httpd,
1578 [AS_HELP_STRING([--disable-httpd],
1579 [disable the built-in HTTP server (default enabled)])])
1580 if test "${enable_httpd}" != "no"
1582 AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP daemon support)
1584 AM_CONDITIONAL(BUILD_HTTPD, [test "${enable_httpd}" != "no"])
1588 dnl VideoLAN manager
1591 [AS_HELP_STRING([--disable-vlm],
1592 [disable the stream manager (default enabled)])],,
1593 [enable_vlm="${enable_sout}"])
1594 AS_IF([test "${enable_vlm}" != "no"], [
1595 AS_IF([test "${enable_sout}" = "no"], [
1596 AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1598 AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1600 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1607 EXTEND_HELP_STRING([Input plugins:])
1612 AC_ARG_ENABLE(live555,
1613 [AS_HELP_STRING([--enable-live555],
1614 [enable RTSP input through live555 (default enabled)])])
1616 AS_IF([test "${enable_live555}" != "no" -a -n "${CXX}"], [
1617 PKG_CHECK_MODULES(LIVE555, live555, [
1618 VLC_ADD_PLUGIN([live555])
1619 VLC_ADD_CXXFLAGS([live555], [$LIVE555_CFLAGS])
1620 VLC_ADD_LIBS([live555],[$LIVE555_LIBS])
1622 AC_MSG_WARN([${LIVE555_PKG_ERRORS}.])
1627 dnl detect include paths
1628 AS_IF([test -f "${CONTRIB_DIR}/include/UsageEnvironment.hh"], [
1629 CPPFLAGS_live555="-I${CONTRIB_DIR}/include/liveMedia -I${CONTRIB_DIR}/include/groupsock -I${CONTRIB_DIR}/include/BasicUsageEnvironment -I${CONTRIB_DIR}/include/UsageEnvironment"
1631 AS_IF([test "${SYS}" != "os2"], [
1632 LIVE555_PREFIX=${LIVE555_PREFIX-"/usr"}
1633 CPPFLAGS_live555="-I${LIVE555_PREFIX}/include/liveMedia -I${LIVE555_PREFIX}/include/groupsock -I${LIVE555_PREFIX}/include/BasicUsageEnvironment -I${LIVE555_PREFIX}/include/UsageEnvironment"
1635 LIVE555_PREFIX=${LIVE555_PREFIX-"/usr/lib/live"}
1636 CPPFLAGS_live555="-I${LIVE555_PREFIX}/liveMedia/include -I${LIVE555_PREFIX}/groupsock/include -I${LIVE555_PREFIX}/BasicUsageEnvironment/include -I${LIVE555_PREFIX}/UsageEnvironment/include"
1637 LDFLAGS_live555="-L${LIVE555_PREFIX}/liveMedia -L${LIVE555_PREFIX}/groupsock -L${LIVE555_PREFIX}/BasicUsageEnvironment -L${LIVE555_PREFIX}/UsageEnvironment"
1642 AS_IF([test "${SYS}" = "solaris"], [
1643 CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1645 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1646 LDFLAGS="${LDFLAGS} ${LDFLAGS_live555}"
1649 AC_CACHE_CHECK([for live555 version 1324598400 or later], [ac_cv_live555], [
1650 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
1651 [#include <liveMedia_version.hh>
1652 #if !defined (LIVEMEDIA_LIBRARY_VERSION_INT) || (LIVEMEDIA_LIBRARY_VERSION_INT < 1324598400)
1662 AS_IF([test "$ac_cv_live555" = "no"], [
1663 AC_MSG_WARN([live555 is missing or its installed version is too old:
1664 Version 2011.12.23 or later is required to proceed.
1665 You can get an updated one from http://www.live555.com/liveMedia .])
1666 AS_IF([test -n "${enable_live555}"], [
1667 AC_MSG_ERROR([Update live555 or pass --disable-live555 to disable RTSP input support.])
1670 other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1671 other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
1672 AS_IF([test "${SYS}" = "mingw32"], [
1673 # add ws2_32 for closesocket, select, recv
1674 other_libs="$other_libs -lws2_32"
1677 dnl We need to check for pic because live555 don't provide shared libs
1678 dnl and we want to build a plugins so we need -fPIC on some arch.
1679 VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1680 VLC_ADD_LDFLAGS([live555], [${LDFLAGS_live555}])
1681 AC_CHECK_LIB(liveMedia_pic, main, [
1682 VLC_ADD_PLUGIN([live555])
1683 VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
1685 AC_CHECK_LIB(liveMedia, main, [
1686 VLC_ADD_PLUGIN([live555])
1687 VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1688 ],[],[${other_libs}])
1689 ],[${other_libs_pic}])
1697 dnl IIDC and DV FireWire input modules
1699 PKG_ENABLE_MODULES_VLC([DC1394], [], [libdc1394-2 >= 2.1.0], [IIDC FireWire input module], [auto])
1700 PKG_ENABLE_MODULES_VLC([DV1394], [], [libraw1394 >= 2.0.1 libavc1394 >= 0.5.3], [DV FireWire input module], [auto])
1703 dnl - linsys modules: access module check for libzvbi
1705 AC_ARG_ENABLE(linsys,
1706 [AS_HELP_STRING([--enable-linsys],
1707 [Linux Linear Systems Ltd. SDI and HD-SDI input cards (default enabled)])])
1708 AS_IF([test "$SYS" = "linux" -a "${enable_linsys}" != "no"], [
1709 VLC_ADD_PLUGIN([linsys_hdsdi])
1710 PKG_CHECK_MODULES(LINSYS_SDI, [zvbi-0.2 >= 0.2.28], [
1711 VLC_ADD_PLUGIN([linsys_sdi])
1713 AC_MSG_WARN([${LINSYS_SDI_PKG_ERRORS}.])
1718 dnl dvdread module: check for libdvdread
1720 PKG_ENABLE_MODULES_VLC([DVDREAD], [], [dvdread], [dvdread input module], [auto])
1723 dnl libdvdnav plugin
1725 AC_ARG_ENABLE(dvdnav,
1726 [AS_HELP_STRING([--disable-dvdnav],
1727 [disable DVD navigation with libdvdnav (default auto)])])
1728 AS_IF([test "${enable_dvdnav}" != "no"], [
1729 PKG_CHECK_MODULES(DVDNAV, dvdnav, [
1730 VLC_ADD_PLUGIN([dvdnav])
1731 AC_CHECK_LIB(dvdnav, dvdnav_get_video_resolution,
1732 AC_DEFINE(HAVE_DVDNAV_GET_VIDEO_RESOLUTION, 1, [Define if you have dvdnav_get_video_resolution.]),
1733 [], [${LIBS_dvdnav}])
1734 AC_CHECK_LIB(dvdnav, dvdnav_describe_title_chapters,
1735 AC_DEFINE(HAVE_DVDNAV_DESCRIBE_TITLE_CHAPTERS, 1, [Define if you have dvdnav_describe_title_chapters.]),
1736 [], [${LIBS_dvdnav}])],
1737 [AC_MSG_WARN([${DVDNAV_PKG_ERRORS}.])])
1741 dnl Blu-ray Disc Support with libbluray
1743 PKG_ENABLE_MODULES_VLC([BLURAY], [libbluray], [libbluray >= 0.2.1], (libbluray for Blu-ray disc support ) )
1746 dnl OpenCV wrapper and example filters
1748 PKG_ENABLE_MODULES_VLC([OPENCV], [opencv_example opencv_wrapper], [opencv > 2.0], (OpenCV (computer vision) filter), [auto])
1752 dnl libsmbclient plugin
1754 PKG_ENABLE_MODULES_VLC([SMBCLIENT], [smb], [smbclient], (SMB/CIFS support), [auto])
1755 AS_IF([test "${SYS}" = "mingw32"], [ VLC_ADD_PLUGIN([access_smb]) ])
1759 dnl sftp access support
1761 PKG_ENABLE_MODULES_VLC([SFTP], [access_sftp], [libssh2], (support SFTP file transfer via libssh2), [auto])
1766 AC_ARG_ENABLE(v4l2, [AS_HELP_STRING([--disable-v4l2],
1767 [disable Video4Linux version 2 (default auto)])])
1769 AS_IF([test "$enable_v4l2" != "no"], [
1770 AC_CHECK_HEADERS([linux/videodev2.h sys/videoio.h], [
1774 AM_CONDITIONAL(HAVE_V4L2, [test "${have_v4l2}" != "no"])
1777 dnl special access module for Blackmagic SDI cards
1779 AC_ARG_ENABLE(decklink,
1780 [AS_HELP_STRING([--disable-decklink],
1781 [disable Blackmagic DeckLink SDI input (default auto)])])
1782 AC_ARG_WITH(decklink_sdk,
1783 [AS_HELP_STRING[--with-decklink-sdk=DIR],
1784 [ location of Blackmagic DeckLink SDI SDK])])
1786 if test "${enable_decklink}" != "no"
1788 if test "${with_decklink_sdk}" != "no" -a -n "${with_decklink_sdk}"
1790 VLC_ADD_CPPFLAGS([decklink decklinkoutput],[-I${with_decklink_sdk}/include])
1793 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_decklink}"
1795 AC_CHECK_HEADERS(DeckLinkAPIDispatch.cpp, [
1798 AC_MSG_WARN(Blackmagic DeckLink SDI include files not found, decklink disabled)
1803 AM_CONDITIONAL(HAVE_DECKLINK, [ test "${have_decklink}" != "no" ])
1807 dnl gnomeVFS access module
1809 PKG_ENABLE_MODULES_VLC([GNOMEVFS], [gnomevfs], [gnome-vfs-2.0], [GnomeVFS access module], [auto])
1814 PKG_ENABLE_MODULES_VLC([VCDX], [vcdx], [libcdio >= 0.78.2 libiso9660 >= 0.72 libvcdinfo >= 0.7.22], [navigate VCD with libvcdinfo], [no])
1817 dnl Built-in CD-DA and VCD module
1820 [AS_HELP_STRING([--disable-vcd],
1821 [disable built-in VCD and CD-DA support (default enabled)])])
1823 AC_ARG_ENABLE(libcddb,
1824 [AS_HELP_STRING([--disable-libcddb],
1825 [disable CDDB for Audio CD (default enabled)])])
1827 if test "${enable_vcd}" != "no"
1829 AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
1830 AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
1832 VLC_ADD_PLUGIN([vcd cdda])
1837 AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
1838 AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
1840 VLC_ADD_PLUGIN([vcd cdda])
1841 AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
1846 AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
1847 AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
1849 VLC_ADD_PLUGIN([vcd cdda])
1850 AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
1855 if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32" -o "${SYS}" = "os2"
1857 VLC_ADD_PLUGIN([vcd cdda])
1860 if test "${SYS}" = "darwin"
1862 VLC_ADD_PLUGIN([vcd cdda])
1863 VLC_ADD_LIBS([vcd vcdx cdda],[-Wl,-framework,IOKit,-framework,CoreFoundation])
1866 if test "$enable_libcddb" != "no"; then
1867 PKG_CHECK_MODULES(LIBCDDB, [libcddb >= 0.9.5], [
1869 AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
1870 VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
1871 VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
1873 [AC_MSG_WARN([${LIBCDDB_PKG_ERRORS}: CDDB access disabled.])
1881 AC_CACHE_CHECK([for Linux DVB version 5.1], [ac_cv_linux_dvb_5_1], [
1882 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
1883 [#include <linux/dvb/version.h>
1884 #if (DVB_API_VERSION < 5)
1885 # error Linux DVB API v3.2 and older are not supported.
1887 #if (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR < 1)
1888 # error Linux DVB API v5.0 is unsupported. Please update.
1891 ac_cv_linux_dvb_5_1=yes
1893 ac_cv_linux_dvb_5_1=no
1895 AM_CONDITIONAL([HAVE_LINUX_DVB], [test "$ac_cv_linux_dvb_5_1" = "yes"])
1898 dnl Screen capture module
1900 AC_ARG_ENABLE(screen,
1901 [AS_HELP_STRING([--enable-screen],
1902 [disable screen capture (default enabled)])])
1903 if test "${enable_screen}" != "no"; then
1904 if test "${SYS}" = "darwin"; then
1905 AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
1906 VLC_ADD_PLUGIN([screen])
1910 AM_CONDITIONAL(HAVE_MAC_SCREEN, [test "${SYS}" = "darwin" -a "x${enable_screen}" != "xno"])
1913 dnl VNC/RFB access module
1915 PKG_ENABLE_MODULES_VLC([VNC], [vnc], [libvncclient >= 0.9.9], (VNC/rfb client support), [auto])
1917 dnl RDP/Remote Desktop access module
1919 PKG_ENABLE_MODULES_VLC([FREERDP], [rdp], [freerdp >= 1.0.1], (RDP/Remote Desktop client support) )
1922 dnl Real RTSP plugin
1924 AC_ARG_ENABLE(realrtsp,
1925 [ --enable-realrtsp Real RTSP module (default disabled)])
1926 if test "${enable_realrtsp}" = "yes"; then
1927 VLC_ADD_PLUGIN([access_realrtsp])
1932 AC_ARG_ENABLE(macosx-eyetv,
1933 [ --enable-macosx-eyetv Mac OS X EyeTV (TNT Tuner) module (default enabled on Mac OS X)])
1934 if test "x${enable_macosx_eyetv}" != "xno" &&
1935 (test "${SYS}" = "darwin" || test "${enable_macosx_eyetv}" = "yes")
1937 VLC_ADD_PLUGIN([access_eyetv])
1942 AC_ARG_ENABLE(macosx-qtkit,
1943 [ --enable-macosx-qtkit Mac OS X qtcapture (video) and qtsound (audio) module (default enabled on Mac OS X)])
1944 if test "x${enable_macosx_qtkit}" != "xno" &&
1945 (test "${SYS}" = "darwin" || test "${enable_macosx_qtkit}" = "yes")
1947 VLC_ADD_PLUGIN([qtcapture])
1948 VLC_ADD_PLUGIN([qtsound])
1950 AM_CONDITIONAL(HAVE_QTKIT, [test "${SYS}" = "darwin" -a "x${enable_macosx_qtkit}" != "xno"])
1954 AC_SUBST(have_avfoundation, ["no"])
1955 AC_ARG_ENABLE(macosx-avfoundation,
1956 [ --enable-macosx-avfoundation Mac OS X avcapture (video) module (default enabled on Mac OS X)])
1957 if test "x${enable_macosx_avfoundation}" != "xno" &&
1958 (test "${SYS}" = "darwin" || test "${enable_macosx_avfoundation}" = "yes")
1960 SAVED_LIBS="${LIBS}"
1961 LIBS="-framework AVFoundation"
1962 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [])],[have_avfoundation=yes],[have_avfoundation=no])
1963 LIBS="${SAVED_LIBS}"
1964 if test "${have_avfoundation}" != "no"
1966 VLC_ADD_PLUGIN([avcapture])
1969 AM_CONDITIONAL(HAVE_AVFOUNDATION, [test "${have_avfoundation}" != "no"])
1975 EXTEND_HELP_STRING([Mux/Demux plugins:])
1978 dnl libdvbpsi check for ts mux/demux
1981 PKG_WITH_MODULES([DVBPSI], [libdvbpsi], [have_dvbpsi="yes"])
1982 AM_CONDITIONAL(HAVE_DVBPSI, [test "${have_dvbpsi}" = "yes"])
1986 dnl GME demux plugin
1989 [AS_HELP_STRING([--enable-gme],
1990 [use Game Music Emu (default auto)])])
1991 AS_IF([test "${enable_gme}" != "no"], [
1992 AC_CHECK_HEADER([gme/gme.h], [
1993 VLC_ADD_LIBS([gme], [-lgme])
1994 VLC_ADD_PLUGIN([gme])
1996 AS_IF([test "x${enable_gme}" != "x"], [
1997 AC_MSG_ERROR([GME cannot be found. Please install the development files.])
2007 [AS_HELP_STRING([--enable-sid],[C64 sid demux support (default auto)])])
2008 AS_IF([test "${enable_sid}" != "no"], [
2009 PKG_CHECK_MODULES(SID, [libsidplay2], [
2011 oldCPPFLAGS="$CPPFLAGS"
2012 CPPFLAGS="$CPPFLAGS $SID_CFLAGS"
2013 AC_CHECK_HEADER([sidplay/builders/resid.h], [
2014 VLC_ADD_PLUGIN([sid])
2015 VLC_ADD_CFLAGS([sid], [$SID_CFLAGS])
2016 VLC_ADD_LIBS([sid], [$SID_LIBS] [-lresid-builder])
2018 AS_IF([test -n "${enable_sid}"],
2019 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2020 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2023 CPPFLAGS="$oldCPPFLAGS"
2026 AS_IF([test "x${enable_sid}" = "xyes"],
2027 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2028 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2035 dnl ogg demux plugin
2037 PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto])
2038 if test "${enable_sout}" != "no"; then
2039 PKG_ENABLE_MODULES_VLC([MUX_OGG], [], [ogg >= 1.0], [Ogg mux support], [auto])
2040 dnl Check for libshout
2041 PKG_ENABLE_MODULES_VLC([SHOUT], [access_output_shout], [shout >= 2.1], [libshout output plugin], [auto])
2045 dnl matroska demux plugin
2048 [AS_HELP_STRING([--disable-mkv],
2049 [do not use libmatroska (default auto)])])
2050 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2052 AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2053 AC_MSG_CHECKING(for libebml version >= 1.0.0)
2055 [#include <ebml/EbmlVersion.h>
2056 #ifdef LIBEBML_VERSION
2057 #if LIBEBML_VERSION >= 0x010000
2061 [AC_MSG_RESULT([yes])
2062 AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2063 AC_MSG_CHECKING(for libmatroska version >= 1.0.0)
2065 [#include <matroska/KaxVersion.h>
2066 #ifdef LIBMATROSKA_VERSION
2067 #if LIBMATROSKA_VERSION >= 0x010000
2071 [AC_MSG_RESULT([yes])
2072 AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2073 AC_CHECK_LIB(ebml_pic, main, [
2074 VLC_ADD_PLUGIN([mkv])
2075 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2077 AC_CHECK_LIB(ebml, main, [
2078 VLC_ADD_PLUGIN([mkv])
2079 VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2084 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.])
2088 [AC_MSG_RESULT([no])
2089 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.])
2096 dnl modplug demux plugin
2099 [AS_HELP_STRING([--disable-mod],
2100 [do not use libmodplug (default auto)])])
2101 if test "${enable_mod}" != "no" ; then
2102 PKG_CHECK_MODULES(LIBMODPLUG, [libmodplug >= 0.8.4 libmodplug != 0.8.8], [
2103 VLC_ADD_PLUGIN([mod])
2104 VLC_ADD_CXXFLAGS([mod],[$LIBMODPLUG_CFLAGS])
2105 VLC_ADD_LIBS([mod],[$LIBMODPLUG_LIBS])
2107 AS_IF([test -n "${enable_mod}"],
2108 [AC_MSG_ERROR([${LIBMODPLUG_PKG_ERRORS}.])],
2109 [AC_MSG_WARN([${LIBMODPLUG_PKG_ERRORS}.])])
2114 dnl mpc demux plugin
2117 [AS_HELP_STRING([--disable-mpc], [do not use libmpcdec (default auto)])])
2118 if test "${enable_mpc}" != "no"
2120 AC_CHECK_HEADERS([mpc/mpcdec.h], [
2121 VLC_ADD_PLUGIN([mpc])
2122 VLC_ADD_LIBS([mpc],[-lmpcdec])],
2123 [AC_CHECK_HEADERS([mpcdec/mpcdec.h], [
2124 VLC_ADD_PLUGIN([mpc])
2125 VLC_ADD_LIBS([mpc],[-lmpcdec])])])
2132 EXTEND_HELP_STRING([Codec plugins:])
2137 AC_ARG_ENABLE(wma-fixed,
2138 [ --enable-wma-fixed libwma-fixed module (default disabled)])
2139 if test "${enable_wma_fixed}" = "yes"
2141 VLC_ADD_PLUGIN([wma_fixed])
2145 dnl shine fixed point mp3 encoder
2147 AC_ARG_ENABLE(shine,
2148 [ --enable-shine shine mp3 encoding module (default disabled)])
2149 if test "${enable_shine}" = "yes"
2151 VLC_ADD_PLUGIN([shine])
2155 dnl openmax il codec plugin
2157 AC_ARG_ENABLE(omxil,
2158 [ --enable-omxil openmax il codec module (default disabled)])
2159 if test "${enable_omxil}" = "yes"
2161 VLC_ADD_PLUGIN([omxil])
2165 dnl openmax il vout plugin
2167 AC_ARG_ENABLE(omxil-vout,
2168 [ --enable-omxil-vout openmax il video output module (default disabled)])
2169 if test "${enable_omxil_vout}" = "yes"
2171 VLC_ADD_PLUGIN([omxil_vout])
2175 dnl raspberry pi openmax il configuration
2177 AC_ARG_ENABLE(rpi-omxil,
2178 [ --enable-rpi-omxil openmax il configured for raspberry pi (default disabled)])
2179 if test "${enable_rpi_omxil}" = "yes"
2181 VLC_ADD_PLUGIN([omxil omxil_vout])
2182 VLC_ADD_CFLAGS([omxil omxil_vout],[-DRPI_OMX])
2186 dnl CrystalHD codec plugin
2188 AC_ARG_ENABLE(crystalhd,
2189 [ --enable-crystalhd crystalhd codec plugin (default auto)])
2190 if test "${enable_crystalhd}" != "no"; then
2191 AC_CHECK_HEADER(libcrystalhd/libcrystalhd_if.h, [
2192 VLC_ADD_PLUGIN([crystalhd])
2193 VLC_ADD_LIBS([crystalhd], [-lcrystalhd])
2195 if test "${SYS}" = "mingw32" ; then
2196 AC_CHECK_HEADERS(libcrystalhd/bc_dts_defs.h, [
2197 VLC_ADD_PLUGIN([crystalhd])
2198 AC_CHECK_HEADERS(libcrystalhd/bc_drv_if.h, [
2199 VLC_ADD_LIBS([crystalhd], [-lbcmDIL])
2202 AS_IF([test x"${enable_crystalhd}" = "xyes"],
2203 [AC_MSG_ERROR("Could not find CrystalHD development headers")],
2204 [AC_MSG_WARN("Could not find CrystalHD development headers")])
2205 ],[#define __LINUX_USER__
2206 #include <libcrystalhd/bc_dts_types.h>
2210 #include <libcrystalhd/bc_dts_types.h>
2218 [ --enable-mad libmad module (default enabled)])
2219 if test "${enable_mad}" != "no"
2222 [ --with-mad=PATH path to libmad],[],[])
2223 if test "${with_mad}" != "no" -a -n "${with_mad}"
2225 VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2226 VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2229 AC_ARG_WITH(mad-tree,
2230 [ --with-mad-tree=PATH mad tree for static linking],[],[])
2231 if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2233 real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2234 if test -z "${real_mad_tree}"
2236 dnl The given directory can't be found
2238 AC_MSG_ERROR([${with_mad_tree} directory does not exist])
2240 dnl Use a custom libmad
2241 AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2242 if test -f ${real_mad_tree}/mad.h
2245 VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2246 VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2248 LDFLAGS="${LDFLAGS} ${LIBS_mpgatofixed32}"
2249 AC_CHECK_LIB(mad, mad_bit_init, [
2250 VLC_ADD_PLUGIN([mpgatofixed32])
2251 VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2252 ],[ AC_MSG_ERROR([the specified tree has not been compiled ])
2257 AC_MSG_ERROR([the specified tree does not have mad.h])
2261 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_mpgatofixed32}"
2262 LDFLAGS="${LDFLAGS} ${LIBS_mpgatofixed32}"
2263 AC_CHECK_HEADERS(mad.h, ,
2264 [ 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.]) ])
2265 AC_CHECK_LIB(mad, mad_bit_init, [
2266 VLC_ADD_PLUGIN([mpgatofixed32])
2267 VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2268 [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2274 AC_ARG_ENABLE(merge-ffmpeg,
2275 [ --enable-merge-ffmpeg merge FFmpeg-based plugins (default disabled)],, [
2276 enable_merge_ffmpeg="no"
2278 AM_CONDITIONAL([MERGE_FFMPEG], [test "$enable_merge_ffmpeg" != "no"])
2281 dnl avcodec decoder/encoder plugin
2283 AC_ARG_ENABLE(avcodec,
2284 [ --enable-avcodec libavcodec codec (default enabled)])
2285 AS_IF([test "${enable_avcodec}" != "no"], [
2286 PKG_CHECK_MODULES(AVCODEC,[libavcodec >= 53.34.0 libavutil >= 51.22.0], [
2287 dnl PKG_CHECK_EXISTS([libavcodec < 56],, [
2288 dnl AC_MSG_ERROR([libavcodec versions 56 and later are not supported yet.])
2291 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2292 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2293 AC_CHECK_HEADERS(libavcodec/avcodec.h)
2294 AC_CHECK_HEADERS(libavutil/avutil.h)
2298 AC_MSG_ERROR([${AVCODEC_PKG_ERRORS}. Pass --disable-avcodec to ignore this error.])
2303 AM_CONDITIONAL([HAVE_AVCODEC], [test "${have_avcodec}" != "no"])
2306 dnl libva needs avcodec
2308 AC_ARG_ENABLE(libva,
2309 [ --enable-libva VAAPI GPU decoding support (libVA) (default auto)])
2311 AS_IF([test "${enable_libva}" = "yes" -a "${have_avcodec}" != "yes" ], [
2312 AC_MSG_ERROR([--enable-libva and --disable-avcodec options are mutually exclusive. Use --enable-avcodec.])
2314 have_avcodec_vaapi="no"
2315 AS_IF([test "${enable_libva}" != "no" -a "${have_avcodec}" = "yes"], [
2316 PKG_CHECK_MODULES(LIBVA, [libva libva-x11], [
2318 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2319 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2320 AC_CHECK_HEADERS(libavcodec/vaapi.h, [
2321 AC_MSG_NOTICE([VAAPI acceleration activated])
2322 have_avcodec_vaapi="yes"
2324 AS_IF([test -n "${enable_libva}"], [
2325 AC_MSG_ERROR([libva is present but libavcodec/vaapi.h is missing])
2327 AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing ])
2332 AS_IF([test -n "${enable_libva}"], [
2333 AC_MSG_ERROR([${LIBVA_PKG_ERRORS}.])
2335 AC_MSG_WARN([${LIBVA_PKG_ERRORS}.])
2339 AM_CONDITIONAL([HAVE_AVCODEC_VAAPI], [test "${have_avcodec_vaapi}" = "yes"])
2342 dnl dxva2 needs avcodec
2344 AC_ARG_ENABLE(dxva2,
2345 [ --enable-dxva2 DxVA2 GPU decoding support (default auto)])
2347 have_avcodec_dxva2="no"
2348 AS_IF([test "${enable_dxva2}" != "no"], [
2349 if test "${SYS}" = "mingw32"; then
2350 AS_IF([test "x${have_avcodec}" = "xyes"], [
2351 AC_CHECK_HEADERS(dxva2api.h,
2353 AC_CHECK_HEADERS(libavcodec/dxva2.h, [
2354 AC_MSG_NOTICE([DxVA2 acceleration activated])
2355 have_avcodec_dxva2="yes"
2357 AS_IF([test "${enable_dxva2}" = "yes"],
2358 [AC_MSG_ERROR([dxva2 is present but libavcodec/dxva2.h is missing])],
2359 [AC_MSG_WARN([dxva2 is present but libavcodec/dxva2.h is missing ])])
2360 ], [#undef _WIN32_WINNT
2361 /* DXVA2 is only available in Vista and above */
2362 #define _WIN32_WINNT 0x600])
2364 AS_IF([test "${enable_dxva2}" = "yes"],
2365 [AC_MSG_ERROR([Could not find required dxva2api.h])],
2366 [AC_MSG_WARN([dxva2api.h not found])])
2369 AS_IF([test "x${enable_dxva2}" != "x"], [
2370 AC_MSG_ERROR([--enable-dxva2 and --disable-avcodec options are mutually exclusive.])
2375 AM_CONDITIONAL([HAVE_AVCODEC_DXVA2], [test "${have_avcodec_dxva2}" = "yes"])
2378 dnl vda needs avcodec
2381 [ --enable-vda VDA support (default auto)])
2383 have_avcodec_vda="no"
2384 AS_IF([test "${enable_vda}" != "no"], [
2385 if test "${SYS}" = "darwin"; then
2386 AS_IF([test "x${have_avcodec}" = "xyes"], [
2387 AC_CHECK_HEADERS(VideoDecodeAcceleration/VDADecoder.h,
2389 AC_CHECK_HEADERS(libavcodec/vda.h, [
2390 have_avcodec_vda="yes"
2392 AS_IF([test "${enable_vda}" = "yes"],
2393 [AC_MSG_ERROR([vda is present but libavcodec/vda.h is missing])],
2394 [AC_MSG_WARN([vda is present but libavcodec/vda.h is missing ])])
2397 AS_IF([test "${enable_vda}" = "yes"],
2398 [AC_MSG_ERROR([Could not find required VideoDecodeAcceleration/VDADecoder.h])],
2399 [AC_MSG_WARN([VideoDecodeAcceleration/VDADecoder.h not found])])
2402 AS_IF([test "x${enable_vda}" != "x"], [
2403 AC_MSG_ERROR([--enable-vda and --disable-avcodec options are mutually exclusive.])
2408 AM_CONDITIONAL([HAVE_AVCODEC_VDA], [test "${have_avcodec_vda}" = "yes"])
2411 dnl avformat demuxer/muxer plugin
2414 AC_ARG_ENABLE(avformat,
2415 [ --enable-avformat libavformat containers (default enabled)],, [
2416 enable_avformat="${have_avcodec}"
2419 AS_IF([test "${enable_avformat}" != "no"], [
2420 PKG_CHECK_MODULES(AVFORMAT,[libavformat >= 53.21.0 libavcodec libavutil], [
2423 CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2424 CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2425 AC_CHECK_HEADERS(libavformat/avformat.h libavformat/avio.h)
2426 AC_CHECK_HEADERS(libavutil/avutil.h)
2427 AS_IF([test "$enable_merge_ffmpeg" = "no"], [
2432 AC_MSG_ERROR([${AVFORMAT_PKG_ERRORS}. Pass --disable-avformat to ignore this error.])
2435 AM_CONDITIONAL([HAVE_AVFORMAT], [test "${enable_avformat}" != "no"])
2438 dnl swscale image scaling and conversion plugin
2441 AC_ARG_ENABLE(swscale,
2442 AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
2443 (default enabled)]))
2444 if test "${enable_swscale}" != "no"
2446 PKG_CHECK_MODULES(SWSCALE,[libswscale],
2449 CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
2450 CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
2451 AC_CHECK_HEADERS(libswscale/swscale.h)
2452 VLC_ADD_PLUGIN([swscale])
2453 VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
2454 VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
2455 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2456 VLC_ADD_LIBS([swscale],[${ac_cv_ld_bsymbolic}])
2460 AC_MSG_ERROR([${SWSCALE_PKG_ERRORS}. Pass --disable-swscale to ignore this error. Proper software scaling and some video chroma conversion will be missing.])
2468 AC_ARG_ENABLE(postproc,
2469 [ --enable-postproc libpostproc image post-processing (default auto)])
2470 if test "${enable_postproc}" != "no"
2472 PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
2475 CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
2476 CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
2477 AC_CHECK_HEADERS(postproc/postprocess.h)
2478 VLC_ADD_PLUGIN([postproc])
2479 VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS $AVUTIL_LIBS])
2480 VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS $AVUTIL_CFLAGS])
2483 AC_MSG_WARN([${POSTPROC_PKG_ERRORS}.])
2488 dnl faad decoder plugin
2491 [ --enable-faad faad codec (default auto)])
2492 if test "${enable_faad}" != "no"; then
2493 AC_ARG_WITH(faad-tree, [ --with-faad-tree=PATH faad tree for static linking])
2494 if test -n "${with_faad_tree}"; then
2495 AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
2496 real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
2497 if test -z "${real_faad_tree}"; then
2498 dnl The given directory can't be found
2500 AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
2502 if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"; then
2503 dnl Use the custom faad
2504 AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
2505 VLC_ADD_PLUGIN([faad])
2506 VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
2507 VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
2509 dnl The given libfaad wasn't built
2511 AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
2515 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_faad}"
2516 LDFLAGS="${LDFLAGS} ${LIBS_faad}"
2517 AC_CHECK_HEADERS(faad.h,
2518 [ AC_CHECK_LIB(faad, faacDecOpen, [
2519 VLC_ADD_PLUGIN([faad])
2520 VLC_ADD_LIBS([faad],[-lfaad]) ], [
2521 AC_CHECK_LIB(faad, NeAACDecOpen, [
2522 VLC_ADD_PLUGIN([faad])
2523 VLC_ADD_LIBS([faad],[-lfaad]) ], [
2524 AS_IF([test "${enable_faad}" = "yes"],
2525 [ AC_MSG_ERROR([Cannot find libfaad library...]) ],
2526 [ AC_MSG_WARN([Cannot find libfaad library...]) ]) ]) ])
2527 ] , [ AS_IF([test "${enable_faad}" = "yes"],
2528 [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ],
2529 [ AC_MSG_WARN([Cannot find development headers for libfaad...]) ]) ])
2535 dnl twolame encoder plugin
2537 PKG_ENABLE_MODULES_VLC([TWOLAME], [], [twolame], [MPEG Audio Layer 2 encoder], [auto], [], [], [ -DLIBTWOLAME_STATIC])
2540 dnl fdk-aac encoder plugin
2542 PKG_ENABLE_MODULES_VLC([FDKAAC], [], [fdk-aac], [FDK-AAC encoder], [disabled])
2545 dnl QuickTime plugin
2547 AC_ARG_ENABLE(quicktime,
2548 [ --enable-quicktime QuickTime module (deprecated)])
2549 if test "${enable_quicktime}" = "yes"; then
2550 if test "${SYS}" = "mingw32"; then
2551 VLC_ADD_PLUGIN([quicktime])
2553 AC_CHECK_HEADERS(QuickTime/QuickTime.h,
2554 [ VLC_ADD_PLUGIN([quicktime])
2555 VLC_ADD_LIBS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
2556 ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
2561 dnl A52/AC3 decoder plugin
2564 [ --enable-a52 A/52 support with liba52 (default enabled)])
2565 if test "${enable_a52}" != "no"
2568 [ --with-a52=PATH a52 headers and libraries])
2569 AC_ARG_WITH(a52-tree,
2570 [ --with-a52-tree=PATH a52dec tree for static linking ],[],[])
2571 if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
2573 real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
2574 if test -z "${real_a52_tree}"
2576 dnl The given directory can't be found
2578 AC_MSG_ERROR([${with_a52_tree} directory does not exist])
2580 dnl Use a custom a52dec
2581 AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
2582 if test -f ${real_a52_tree}/include/a52.h
2585 VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
2586 VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
2588 LDFLAGS="${LDFLAGS} ${LIBS_a52tofloat32}"
2589 AC_CHECK_LIB(a52, a52_free, [
2590 VLC_ADD_PLUGIN([a52tofloat32])
2591 VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
2592 VLC_ADD_LIBS([a52tofloat32],[-la52])
2594 if test -f ${real_a52_tree}/liba52/.libs/liba52.a
2596 AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
2598 AC_MSG_ERROR([the specified tree has not been compiled])
2603 AC_MSG_ERROR([the specified tree does not have a52.h])
2606 if test -z "${with_a52}"
2611 LDFLAGS_test="-L${with_a52}/lib"
2612 CPPFLAGS_test="-I${with_a52}/include"
2615 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
2616 LDFLAGS="${LDFLAGS} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
2617 AC_CHECK_HEADERS(a52dec/a52.h, [
2618 AC_CHECK_LIB(a52, a52_free, [
2619 VLC_ADD_PLUGIN([a52tofloat32])
2620 VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
2621 VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
2623 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.])
2626 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.])
2633 dnl DTS Coherent Acoustics decoder plugin
2635 PKG_ENABLE_MODULES_VLC([DCA], [dtstofloat32], [libdca >= 0.0.5], [DTS Coherent Acoustics support with libdca], [auto])
2640 PKG_ENABLE_MODULES_VLC([FLAC], [], [flac], [libflac decoder/encoder support], [auto])
2645 PKG_ENABLE_MODULES_VLC([LIBMPEG2], [], [libmpeg2 > 0.3.2], [libmpeg2 decoder support], [auto])
2650 PKG_ENABLE_MODULES_VLC([VORBIS], [], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
2655 AC_ARG_ENABLE(tremor,
2656 [ --enable-tremor Tremor decoder support (default disabled)])
2657 if test "${enable_tremor}" = "yes"
2659 AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
2660 VLC_ADD_PLUGIN([tremor])
2661 VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
2668 PKG_ENABLE_MODULES_VLC([SPEEX], [], [ogg speex >= 1.0.5], [Speex support], [auto])
2670 AS_IF([test "${enable_speex}" != "no"], [
2671 PKG_CHECK_MODULES([SPEEXDSP], [speexdsp], [
2674 AC_MSG_WARN([${SPEEXDSP_PKG_ERRORS}.])
2677 AM_CONDITIONAL([HAVE_SPEEXDSP], [test "$have_speexdsp" = "yes"])
2682 PKG_ENABLE_MODULES_VLC([OPUS], [], [ogg opus], [Opus support], [auto])
2685 dnl theora decoder plugin
2687 PKG_ENABLE_MODULES_VLC([THEORA], [], [ogg theoradec >= 1.0 theoraenc], [experimental theora codec], [auto])
2690 dnl dirac encoder plugin
2692 PKG_ENABLE_MODULES_VLC([DIRAC], [], [dirac >= 0.10.0], [dirac encoder], [auto])
2695 dnl schroedinger decoder plugin (for dirac format video)
2697 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [], [schroedinger-1.0 >= 1.0.10], [dirac decoder and encoder using schroedinger], [auto])
2700 dnl PNG decoder module
2703 [ --enable-png PNG support (default enabled)])
2704 AS_IF([test "${enable_png}" != "no"], [
2705 AC_CHECK_HEADERS(png.h, [
2707 LDFLAGS="${LDFLAGS} -lz $LIBM"
2708 AC_CHECK_LIB(png, png_set_rows, [
2709 VLC_ADD_LIBS([png],[-lpng -lz $LIBM])
2710 VLC_ADD_PLUGIN([png])
2717 dnl H262 encoder plugin (lib262)
2720 [ --enable-x262 H262 encoding support with static libx262 (default disabled)])
2721 if test "${enable_x262}" != "no"; then
2722 AC_ARG_WITH(x262-tree,
2723 [ --with-x262-tree=PATH H262 encoding module with libx262 (static linking)],[],[])
2724 if test "${with_x262_tree}" != "no" -a -n "${with_x262_tree}"
2726 real_x262_tree="̧`cd ${with_x262_tree} 2>/dev/null && pwd`"
2727 if test -z "${real_x262_tree}"
2730 AC_MSG_ERROR([${with_x262_tree} directory does not exist])
2732 AC_MSG_CHECKING(for x262.h in ${real_x262_tree})
2733 if test -f ${with_x262_tree}/x262_config.h
2735 VLC_ADD_PLUGIN([x262])
2736 VLC_ADD_CFLAGS([x262],[-I${with_x262_tree}])
2737 VLC_ADD_LIBS([x262],[-L${with_x262_tree} -lm -lpthread -lx262])
2740 AC_MSG_ERROR([${with_x262_tree} doesnt have x262_config.h])
2743 PKG_CHECK_MODULES(X262, x262, [
2744 VLC_ADD_PLUGIN([x262])
2745 VLC_ADD_LDFLAGS([x262],[${X262_LIBS}])
2746 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2747 VLC_ADD_LIBS([x262],[${av_cv_ld_bsymbolic}])
2749 VLC_ADD_CFLAGS([x262],[${X262_CFLAGS}])
2750 if echo ${X262_LIBS} |grep -q 'pthreadGC2'; then
2751 VLC_ADD_CFLAGS([x262], [-DPTW32_STATIC_LIB])
2754 if test "${enable_x262}" = "yes"; then
2755 AC_MSG_ERROR([x262 module doesn't work without staticly compiled libx262.a])
2763 dnl H264 encoder plugin (10-bit lib264)
2765 AC_ARG_ENABLE(x26410b,
2766 [ --enable-x26410b H264 10-bit encoding support with static libx264 (default disabled)])
2767 if test "${enable_x26410b}" != "no"; then
2768 AC_ARG_WITH(x26410b-tree,
2769 [ --with-x26410b-tree=PATH H264 10-bit encoding module with libx264 (static linking)],[],[])
2770 if test "${with_x26410b_tree}" != "no" -a -n "${with_x26410b_tree}"
2772 real_x26410b_tree="̧`cd ${with_x26410b_tree} 2>/dev/null && pwd`"
2773 if test -z "${real_x26410b_tree}"
2776 AC_MSG_ERROR([${with_x26410b_tree} directory does not exist])
2778 AC_MSG_CHECKING(for x264.h in ${real_x26410b_tree})
2779 if test -f ${with_x26410b_tree}/x264_config.h
2782 AC_MSG_CHECKING(for 10-bit build of x264)
2783 if grep -q "BIT_DEPTH.*10" ${with_x26410b_tree}/x264_config.h ;then
2785 VLC_ADD_PLUGIN([x26410b])
2786 VLC_ADD_CFLAGS([x26410b],[-I${with_x26410b_tree}])
2787 VLC_ADD_LIBS([x26410b],[-L${with_x26410b_tree} -lm -lpthread -lx264])
2790 AC_MSG_ERROR([${with_x26410b_tree} isnt build 10-bit])
2794 AC_MSG_ERROR([${with_x26410b_tree} doesnt have x264_config.h])
2797 PKG_CHECK_MODULES(X26410B, x26410b, [
2798 VLC_ADD_PLUGIN([x26410b])
2799 VLC_ADD_LIBS([x26410b],[${X26410B_LIBS}])
2800 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2801 VLC_ADD_LDFLAGS([x26410b],[${ac_cv_ld_bsymbolic}])
2803 VLC_ADD_CFLAGS([x26410b],[${X26410B_CFLAGS}])
2804 if echo ${X26410B_LIBS} |grep -q 'pthreadGC2'; then
2805 VLC_ADD_CFLAGS([x26410b], [-DPTW32_STATIC_LIB])
2808 if test "${enable_x26410b}" = "yes"; then
2809 AC_MSG_ERROR([x26410b module doesn't work without staticly compiled libx264.a])
2817 dnl H264 encoder plugin (using libx264)
2820 [ --enable-x264 H264 encoding support with libx264 (default enabled)])
2821 if test "${enable_x264}" != "no"; then
2822 AC_ARG_WITH(x264-tree,
2823 [ --with-x264-tree=PATH x264 tree for static linking ],[],[])
2824 if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
2826 real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
2827 if test -z "${real_x264_tree}"
2829 dnl The given directory can't be found
2831 AC_MSG_ERROR([${with_x264_tree} directory does not exist])
2833 dnl Use a custom libx264
2834 AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
2835 if test -f ${real_x264_tree}/x264.h
2838 VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
2839 VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
2840 PKG_CHECK_MODULES(X264,x264, [
2841 VLC_ADD_PLUGIN([x264])
2842 VLC_ADD_LIBS([x264],[${X264_LIBS}])
2843 VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
2844 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
2845 VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
2848 AC_MSG_ERROR([the specified tree has not been compiled])
2852 AC_MSG_ERROR([the specified tree does not have x264.h])
2855 PKG_CHECK_MODULES(X264,x264 >= 0.86, [
2856 VLC_ADD_PLUGIN([x264])
2857 VLC_ADD_LIBS([x264],[${X264_LIBS}])
2859 AS_IF([test -n "${ac_cv_ld_bsymbolic}"], [
2860 VLC_ADD_LDFLAGS([x264],[${ac_cv_ld_bsymbolic}])
2863 VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
2864 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
2865 VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
2868 if test "${enable_x264}" = "yes"; then
2869 AC_MSG_ERROR([${X264_PKG_ERRORS}: you may get it from http://www.videolan.org/x264.html])
2876 dnl Intel QuickSync (aka MediaSDK) H264/H262 encoder
2878 PKG_ENABLE_MODULES_VLC([QUICKSYNC], [qsv], [libmfx], [Intel QuickSync MPEG4-Part10/MPEG2 (aka H.264/H.262) encoder], [auto])
2881 dnl libfluidsynth (MIDI synthetizer) plugin
2883 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [], [fluidsynth >= 1.1.2], [MIDI synthetiser with libfluidsynth], [auto])
2886 dnl Teletext Modules
2887 dnl vbi decoder plugin (using libzbvi)
2892 AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
2893 libzvbi (default enabled)]))
2895 AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
2896 zvbi) (default enabled if zvbi is absent)]))
2898 AS_IF( [test "${enable_zvbi}" != "no"],[
2899 PKG_CHECK_MODULES(ZVBI, [zvbi-0.2 >= 0.2.28],
2901 VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
2902 if test "${SYS}" = "mingw32"; then
2903 VLC_ADD_LIBS([zvbi],[ -lpthreadGC2])
2905 VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
2906 VLC_ADD_PLUGIN([zvbi])
2907 AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
2908 AS_IF( [test "${enable_telx}" = "yes"],[
2909 AC_MSG_WARN([The zvbi and telx modules are incompatible. Using zvbi.])
2912 AC_MSG_WARN([${ZVBI_PKG_ERRORS}. Enabling the telx module instead.])
2915 AS_IF( [test "${enable_telx}" != "no" ],[
2916 VLC_ADD_PLUGIN([telx])
2920 dnl libass subtitle rendering module
2922 AC_ARG_ENABLE(libass,
2923 [ --enable-libass Subtitle support using libass (default enabled)])
2924 AS_IF( [test "${enable_libass}" != "no"], [
2925 PKG_CHECK_MODULES(LIBASS, [libass >= 0.9.8],
2927 VLC_ADD_LIBS([libass],[$LIBASS_LIBS])
2928 VLC_ADD_CFLAGS([libass],[$LIBASS_CFLAGS])
2929 VLC_ADD_PLUGIN([libass])
2931 AC_CHECK_HEADERS(fontconfig/fontconfig.h,
2932 [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
2933 VLC_ADD_LIBS([libass],[-lfontconfig])
2936 AC_MSG_WARN([${LIBASS_PKG_ERRORS}.])
2941 dnl kate decoder plugin
2943 PKG_ENABLE_MODULES_VLC([KATE], [], [kate >= 0.3.0], [kate codec], [auto])
2946 dnl tiger rendering for kate decoder plugin
2948 AC_ARG_ENABLE(tiger,
2949 [ --enable-tiger Tiger rendering library for Kate streams (default auto)])
2950 AS_IF([test "${enable_tiger}" != "no"], [
2951 PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
2952 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])
2953 VLC_ADD_CFLAGS([kate],[$TIGER_CFLAGS])
2954 VLC_ADD_LIBS([kate],[$TIGER_LIBS]) ],[
2955 AS_IF([test -n "${enable_tiger}"], [
2956 AC_MSG_ERROR([${TIGER_PKG_ERRORS}.])
2966 EXTEND_HELP_STRING([Video plugins:])
2971 PKG_CHECK_MODULES([GL], [gl], [
2974 AC_CHECK_HEADER([GL/gl.h], [
2977 AS_IF([test "${SYS}" = "mingw32"], [
2978 GL_LIBS="-lopengl32"
2987 dnl OpenGL ES 2: depends on EGL 1.1
2988 PKG_ENABLE_MODULES_VLC([GLES2], [], [glesv2], [OpenGL ES v2 support], [disabled])
2989 dnl OpenGL ES 1: depends on EGL 1.0
2990 PKG_ENABLE_MODULES_VLC([GLES1], [], [glesv1_cm], [OpenGL ES v1 support], [disabled])
2993 [ --enable-egl OpenGL support through EGL (default disabled)],, [
2996 AS_IF([test "$enable_egl" != "no"], [
2997 PKG_CHECK_MODULES([EGL], [egl], [
2998 VLC_ADD_PLUGIN([gl])
2999 VLC_ADD_PLUGIN([egl])
3008 AC_CHECK_HEADERS(X11/Xlib.h)
3011 dnl X C Bindings modules
3014 [ --enable-xcb X11 support with XCB (default enabled)],, [
3015 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "darwin" -a "${SYS}" != "symbian"], [
3021 AC_ARG_ENABLE(xvideo,
3022 [ --enable-xvideo XVideo support (default enabled)],, [
3023 enable_xvideo="$enable_xcb"
3026 [ --enable-glx OpenGL support through GLX (default enabled)],, [
3027 enable_glx="$enable_xcb"
3032 AS_IF([test "${enable_xcb}" != "no"], [
3034 PKG_CHECK_MODULES(XCB, [xcb >= 1.6])
3036 PKG_CHECK_MODULES(XCB_SHM, [xcb-shm])
3037 PKG_CHECK_MODULES(XCB_COMPOSITE, [xcb-composite])
3039 AS_IF([test "${enable_xvideo}" != "no"], [
3040 PKG_CHECK_MODULES(XCB_XV, [xcb-xv >= 1.1.90.1], [
3041 VLC_ADD_PLUGIN([xcb_xv])
3045 PKG_CHECK_MODULES(XCB_RANDR, [xcb-randr >= 1.3], [
3046 have_xcb_randr="yes"
3049 PKG_CHECK_MODULES(XPROTO, [xproto], [
3050 VLC_ADD_PLUGIN([xwd])
3053 PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms >= 0.3.4], [
3054 VLC_ADD_PLUGIN([xcb_hotkeys])
3055 VLC_ADD_CFLAGS([xcb_window], [-DHAVE_XCB_KEYSYMS])
3057 AC_MSG_WARN([${XCB_KEYSYMS_PKG_ERRORS}. Hotkeys will not work.])
3060 AC_MSG_WARN([${XPROTO_PKG_ERRORS}. Hotkeys and XWD will not work.])
3063 AS_IF([test "${enable_glx}" != "no"], [
3064 AS_IF([test "${have_gl}" != "yes"], [
3065 AC_MSG_ERROR([${GL_PKG_ERRORS}. Pass --disable-glx if you do not need OpenGL X11 support.])
3067 VLC_ADD_PLUGIN([xcb_glx])
3068 VLC_ADD_PLUGIN([glx])
3069 VLC_ADD_PLUGIN([gl])
3072 AM_CONDITIONAL([HAVE_XCB], [test "${have_xcb}" = "yes"])
3073 AM_CONDITIONAL([HAVE_XCB_RANDR], [test "${have_xcb_randr}" = "yes"])
3079 AC_ARG_ENABLE(vdpau,
3080 [AS_HELP_STRING([--enable-vdpau], [VDPAU hardware support (default auto)])])
3082 AS_IF([test "${enable_vdpau}" != "no"], [
3083 PKG_CHECK_MODULES([VDPAU], [vdpau >= 0.6], [
3085 AS_IF([test "${no_x}" = "yes"], [
3086 AC_MSG_ERROR([VDPAU requires Xlib (X11).])
3089 AS_IF([test -n "${enable_vdpau}"], [
3090 AC_MSG_ERROR([${VDPAU_PKG_ERRORS}.])
3094 AM_CONDITIONAL([HAVE_VDPAU], [test "${have_vdpau}" = "yes"])
3096 have_avcodec_vdpau="no"
3097 AS_IF([test "${have_vdpau}" = "yes" -a "${have_avcodec}" = "yes"], [
3098 PKG_CHECK_EXISTS([libavutil >= 0.52.4 libavcodec >= 54.36.0], [
3099 have_avcodec_vdpau="yes"
3100 AC_MSG_NOTICE([VDPAU decoding acceleration activated])
3102 AS_IF([test -n "${enable_vdpau}"], [
3103 AC_MSG_ERROR([libavutil >= 0.52.4 and libavcodec >= 54.36.0 are required for VDPAU decoding.])
3105 AC_MSG_WARN([libavutil >= 0.52.4 and libavcodec >= 54.36.0 are required for VDPAU decoding.])
3109 AM_CONDITIONAL([HAVE_AVCODEC_VDPAU], [test "${have_avcodec_vdpau}" = "yes"])
3116 [ --enable-sdl SDL support (default enabled)])
3117 AC_ARG_ENABLE(sdl-image,
3118 [ --enable-sdl-image SDL image support (default enabled)])
3119 if test "${enable_sdl}" != "no"
3121 PKG_CHECK_MODULES(SDL, [sdl >= 1.2.10], [
3122 # SDL on Darwin is heavily patched and can only run SDL_image
3123 if test "${SYS}" != "darwin"; then
3124 VLC_ADD_PLUGIN([vout_sdl])
3126 if test "${SYS}" != "mingw32" -a "${SYS}" != "os2"; then
3127 VLC_ADD_LIBS([vout_sdl],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3129 VLC_ADD_CFLAGS([vout_sdl],[${SDL_CFLAGS}])
3130 VLC_ADD_LIBS([vout_sdl],[${SDL_LIBS}])
3133 AS_IF([ test "${enable_sdl_image}" != "no"],[
3134 PKG_CHECK_MODULES(SDL_IMAGE, [SDL_image >= 1.2.10], [
3135 VLC_ADD_PLUGIN([sdl_image])
3136 VLC_ADD_LIBS([sdl_image],[${SDL_IMAGE_LIBS}])
3137 VLC_ADD_CFLAGS([sdl_image], [${SDL_IMAGE_CFLAGS}])],
3138 [ AC_MSG_WARN([${SDL_IMAGE_PKG_ERRORS}. You should install it alongside your SDL package.])
3142 AC_MSG_WARN([${SDL_PKG_ERRORS}.])
3149 AC_ARG_ENABLE(macosx-vout,
3150 [ --enable-macosx-vout Mac OS X video output module (default enabled on Mac OS X)])
3151 if test "x${enable_macosx_vout}" != "xno" &&
3152 (test "${SYS}" = "darwin" || test "${enable_macosx_vout}" = "yes")
3154 VLC_ADD_LIBS([vout_macosx],[-Wl,-framework,Cocoa])
3155 VLC_ADD_LIBS([vout_macosx],[-Wl,-framework,OpenGL])
3156 VLC_ADD_PLUGIN([vout_macosx])
3160 dnl Mac CoreGraphics Layer Vout
3161 AC_ARG_ENABLE(coregraphicslayer-vout,
3162 [ --enable-coregraphicslayer-vout CoreGraphics layered video output module (default disabled)])
3163 if test "${enable_coregraphicslayer_vout}" = "yes"; then
3164 VLC_ADD_LIBS([vout_coregraphicslayer],[-Wl,-framework,Cocoa])
3165 VLC_ADD_LIBS([vout_coregraphicslayer],[-Wl,-framework,QuartzCore])
3166 VLC_ADD_PLUGIN([vout_coregraphicslayer])
3172 AC_ARG_ENABLE(freetype,
3173 [ --enable-freetype freetype support (default auto)])
3174 AC_ARG_ENABLE(fribidi,
3175 [ --enable-fribidi fribidi support (default auto)])
3176 AC_ARG_ENABLE(fontconfig,
3177 [ --enable-fontconfig fontconfig support (default auto)])
3179 AC_ARG_WITH([default-font],
3180 AS_HELP_STRING([--with-default-font=PATH],
3181 [Path to the default font]),
3182 [AC_DEFINE_UNQUOTED([DEFAULT_FONT_FILE],
3183 "$withval", [Default font])])
3184 AC_ARG_WITH([default-monospace-font],
3185 AS_HELP_STRING([--with-default-monospace-font=PATH],
3186 [Path to the default font]),
3187 [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FONT_FILE],
3188 "$withval", [Default monospace font])])
3190 AC_ARG_WITH([default-font-family],
3191 AS_HELP_STRING([--with-default-font-family=NAME],
3192 [Path to the default font family]),
3193 [AC_DEFINE_UNQUOTED([DEFAULT_FAMILY],
3194 "$withval", [Default font family])])
3195 AC_ARG_WITH([default-monospace-font-family],
3196 AS_HELP_STRING([--with-default-monospace-font-family=NAME],
3197 [Path to the default font family]),
3198 [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FAMILY],
3199 "$withval", [Default monospace font family])])
3201 if test "${enable_freetype}" != "no"; then
3202 PKG_CHECK_MODULES(FREETYPE, freetype2, [
3204 VLC_ADD_PLUGIN([freetype])
3205 VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
3206 if test "${SYS}" = "mingw32"; then
3207 VLC_ADD_LIBS([freetype],[-liconv -lz])
3209 VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
3211 AC_CHECK_HEADERS(Carbon/Carbon.h,
3212 [VLC_ADD_LIBS([freetype],[-Wl,-framework,Carbon])])
3214 dnl fontconfig support
3215 if test "${SYS}" != "mingw32"; then
3216 if test "${enable_fontconfig}" != "no"; then
3217 AC_CHECK_HEADERS(fontconfig/fontconfig.h, [
3218 VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
3219 VLC_ADD_LIBS([freetype],[-lfontconfig])
3220 ],[AC_MSG_WARN([library fontconfig not found. Styles will be disabled in freetype])])
3223 VLC_ADD_LIBS([freetype],[-lgdi32])
3227 if test "${enable_fribidi}" != "no"; then
3228 PKG_CHECK_MODULES(FRIBIDI, fribidi, [
3229 VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
3230 VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
3231 ],[AC_MSG_WARN([${FRIBIDI_PKG_ERRORS}. Bidirectional support will be disabled in FreeType.])])
3236 AS_IF([test -n "${enable_freetype}"],[
3237 AC_MSG_ERROR([${FREETYPE_PKG_ERRORS}. Install FreeType2 development or configure with --disable-freetype.])
3244 dnl QuartzText vout module (iOS/Mac OS)
3246 AC_ARG_ENABLE(macosx-quartztext,
3247 [ --enable-macosx-quartztext Mac OS X quartz text module (default enabled on Mac OS X)])
3248 if test "x${enable_macosx_quartztext}" != "xno" &&
3249 (test "${SYS}" = "darwin" || test "${enable_macosx_quartztext}" = "yes")
3251 VLC_ADD_PLUGIN([quartztext])
3252 VLC_ADD_LIBS([quartztext],[-Wl,-framework,ApplicationServices])
3258 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3261 dnl android surface module
3263 AC_ARG_ENABLE(android-surface,
3264 [ --enable-android-surface Android Surface video output module (default disabled)])
3265 if test "${enable_android_surface}" = "yes"; then
3266 if test "${HAVE_ANDROID}" = "1"; then
3267 VLC_ADD_PLUGIN([android_surface])
3268 VLC_ADD_LIBS([android_surface], [-ldl])
3276 AC_ARG_ENABLE(ios-vout,
3277 [ --enable-ios-vout iOS video output module (default disabled)])
3278 if test "${enable_ios_vout}" = "yes"
3280 VLC_ADD_PLUGIN([vout_ios])
3281 VLC_ADD_LIBS([vout_ios], [-Wl,-framework,OpenGLES,-framework,QuartzCore,-framework,UIKit,-framework,Foundation])
3285 dnl iOS ES2 vout module
3287 AC_ARG_ENABLE(ios-vout2,
3288 [ --enable-ios-vout2 iOS video output module (default disabled)])
3289 if test "${enable_ios_vout2}" = "yes"
3291 VLC_ADD_PLUGIN([vout_ios2])
3292 VLC_ADD_LIBS([vout_ios2], [-Wl,-framework,OpenGLES,-framework,QuartzCore,-framework,UIKit])
3297 dnl Windows DirectX module
3300 AC_ARG_ENABLE(directx,
3301 [AS_HELP_STRING([--enable-directx],
3302 [Microsoft DirectX support (default enabled on Windows)])],, [
3303 AS_IF([test "${SYS}" = "mingw32"], [
3304 enable_directx="yes"
3310 AS_IF([test "${enable_directx}" != "no"], [
3312 AC_CHECK_HEADERS(ddraw.h, [
3315 AC_MSG_ERROR([Cannot find DirectX headers!])
3319 AC_CHECK_HEADERS(GL/wglew.h, [
3320 VLC_ADD_PLUGIN([glwin32])
3322 #include <windows.h>
3327 AC_CHECK_HEADERS(d3d9.h, [
3328 VLC_ADD_PLUGIN([direct3d])
3332 AC_CHECK_HEADERS(d2d1.h, [
3333 VLC_ADD_PLUGIN([direct2d])
3336 AM_CONDITIONAL([HAVE_DIRECTX], [test "$have_directx" = "yes"])
3339 dnl Linux framebuffer module
3341 AC_CHECK_HEADER([linux/fb.h], [
3342 VLC_ADD_PLUGIN([fb])
3348 dnl try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
3349 dnl TODO: support for static linking
3351 AC_ARG_ENABLE(directfb,
3352 [ --enable-directfb DirectFB support (default disabled)])
3353 AC_ARG_WITH(directfb,
3354 [ --with-directfb=PATH path to DirectFB headers and libraries])
3356 if test "${enable_directfb}" = "yes"; then
3357 have_directfb="false"
3358 CPPFLAGS_mydirectfb=
3360 if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
3361 dnl Trying the given location
3364 CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
3365 LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/ -L${with_directfb}/src/.libs/"
3367 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
3368 LIBS="${LIBS} ${LIBS_new}"
3370 dnl FIXME: too obscure
3371 AC_CHECK_HEADER([directfb.h], [
3372 AC_CHECK_LIB([direct],[direct_initialize], [
3373 AC_CHECK_LIB([fusion], [fusion_enter], [
3374 AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
3375 ], have_directfb="false")
3376 ], have_directfb="false")
3377 ], have_directfb="false")
3381 if test "${have_directfb}" = "true"; then
3382 LIBS_mydirectfb="${LIBS_new} -lz $LIBDL -ldirectfb -lfusion -ldirect -lpthread"
3383 CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
3386 dnl Look for directfb-config
3387 AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
3388 if test "${DIRECTFB_CONFIG}" != "no"; then
3389 CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
3390 LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
3391 have_directfb="true"
3393 dnl Trying with pkg-config
3394 PKG_CHECK_MODULES(DIRECTFB, directfb, [
3395 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
3396 LIBS_mydirectfb="${DIRECTFB_LIBS}"
3397 have_directfb="true"
3398 ], [have_directfb="false"])
3401 if test "${have_directfb}" = "true"; then
3402 VLC_ADD_PLUGIN([directfb])
3403 VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
3404 VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
3406 AC_MSG_ERROR([${DIRECTFB_PKG_ERRORS}.])
3414 [ --enable-aa aalib output (default disabled)])
3415 if test "${enable_aa}" = "yes"
3417 AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
3418 if test "${have_aa}" = "true"
3420 VLC_ADD_PLUGIN([aa])
3421 VLC_ADD_LIBS([aa],[-laa])
3422 if test "${SYS}" != "mingw32"; then
3423 VLC_ADD_LIBS([aa],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3431 PKG_ENABLE_MODULES_VLC([CACA], [], [caca >= 0.99.beta14], [libcaca output],[auto])
3437 [AS_HELP_STRING([--enable-kva],
3438 [support the K Video Accelerator KVA (default enabled on OS/2)])],, [
3439 AS_IF([test "$SYS" = "os2"], [
3445 AS_IF([test "$enable_kva" != "no"], [
3446 AC_CHECK_HEADERS([kva.h], [
3448 AC_CHECK_LIB(kva, main, [
3454 AM_CONDITIONAL([HAVE_KVA], [test "${have_kva}" = "yes"])
3460 EXTEND_HELP_STRING([Audio plugins:])
3463 dnl Pulseaudio module
3465 AC_ARG_ENABLE(pulse,
3466 [AS_HELP_STRING([--enable-pulse],
3467 [use the PulseAudio client library (default auto)])])
3469 AS_IF([test "${enable_pulse}" != "no"], [
3470 PKG_CHECK_MODULES([PULSE], [libpulse >= 0.9.22], [
3473 PKG_CHECK_MODULES([PULSE], [libpulse >= 0.9.16], [
3474 AS_IF([test "${no_x}" != "yes"], [
3476 PULSE_LIBS="$PULSE_LIBS ${X_LIBS} ${X_PRE_LIBS} -lX11"
3478 AS_IF([test "${enable_pulse}" = "yes"], [
3479 AC_MSG_ERROR([Xlib is required with PulseAudio pre-0.9.22 versions
3480 (see http://www.pulseaudio.org/ticket/799 for further reference).])
3484 AS_IF([test "x${enable_pulse}" != "x"], [
3485 AC_MSG_ERROR([$PULSE_PKG_ERRORS. PulseAudio 0.9.22 or later required.])
3490 AM_CONDITIONAL([HAVE_PULSE], [test "${have_pulse}" = "yes"])
3496 [AS_HELP_STRING([--enable-alsa],
3497 [support the Advanced Linux Sound Architecture (default auto)])],, [
3498 AS_IF([test "$SYS" = "linux" -a "${have_pulse}" = "no"], [
3503 AS_IF([test "${enable_alsa}" != "no"], [
3504 PKG_CHECK_MODULES([ALSA], [alsa >= 1.0.24], [
3507 AS_IF([test "x${enable_alsa}" != "x"], [
3508 AC_MSG_ERROR([$ALSA_PKG_ERRORS. alsa-lib 1.0.24 or later required.])
3512 AM_CONDITIONAL([HAVE_ALSA], [test "${have_alsa}" = "yes"])
3515 dnl Open Sound System module
3518 [AS_HELP_STRING([--enable-oss],
3519 [support the Open Sound System OSS (default enabled on FreeBSD/NetBSD/DragonFlyBSD)])],, [
3520 AS_IF([test "$SYS" = "mingw32" -o "$SYS" = "linux" -o "$SYS" = "openbsd"], [
3526 AS_IF([test "$enable_oss" != "no"], [
3527 AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
3529 AC_CHECK_LIB(ossaudio, main, [
3530 OSS_LIBS="-lossaudio"
3535 AM_CONDITIONAL([HAVE_OSS], [test "${have_oss}" = "yes"])
3538 dnl OpenBSD sndio module
3540 AC_ARG_ENABLE([sndio],
3541 [AS_HELP_STRING([--disable-sndio],
3542 [support the OpenBSD sndio (default auto)])],, [
3543 AS_IF([test "$SYS" = "openbsd"], [
3548 AS_IF([test "$enable_sndio" != "no"], [
3549 AC_CHECK_HEADER([sndio.h], [
3553 AM_CONDITIONAL([HAVE_SNDIO], [test "${have_sndio}" = "yes"])
3556 dnl Windows Audio Session plugin
3558 AC_ARG_ENABLE([wasapi],
3559 [AS_HELP_STRING([--enable-wasapi],
3560 [use the Windows Audio Session API (default auto)])
3563 AS_IF([test "$enable_wasapi" != "no"], [
3564 AC_CHECK_HEADER([audioclient.h], [
3567 AS_IF([test "x${enable_wasapi}" != "x"], [
3568 AC_MSG_ERROR([Windows Audio Session API not found.])
3572 AM_CONDITIONAL([HAVE_WASAPI], [test "${have_wasapi}" = "yes"])
3575 dnl win32 waveOut plugin
3577 AC_ARG_ENABLE(waveout,
3578 [ --enable-waveout Win32 waveOut module (default enabled on Win32)])
3579 if test "${enable_waveout}" != "no"; then
3580 if test "${SYS}" = "mingw32"; then
3581 VLC_ADD_PLUGIN([waveout])
3582 VLC_ADD_LIBS([waveout],[-lwinmm])
3587 dnl CoreAudio plugin
3589 AC_ARG_ENABLE(macosx-audio,
3590 [ --enable-macosx-audio Mac OS X audio module (default enabled on MacOS X)])
3591 if test "x${enable_macosx_audio}" != "xno" &&
3592 (test "${SYS}" = "darwin" || test "${enable_macosx_audio}" = "yes")
3594 AC_CHECK_HEADERS(CoreAudio/CoreAudio.h,
3595 [ VLC_ADD_PLUGIN([auhal])
3596 VLC_ADD_LIBS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,CoreServices])
3597 ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
3601 dnl iOS CoreAudio plugin
3603 AC_ARG_ENABLE(ios-audio,
3604 [ --enable-ios-audio Audio module for iOS (default disabled)])
3605 if test "${enable_ios_audio}" = "yes"
3607 AC_CHECK_HEADERS(AudioUnit/AudioUnit.h,
3608 [ VLC_ADD_PLUGIN([audiounit_ios])
3609 VLC_ADD_LIBS([audiounit_ios],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,CoreServices])
3610 ], [ AC_MSG_ERROR([cannot find AudioUnit headers]) ])
3614 dnl AudioQueue plugin
3616 AC_ARG_ENABLE(audioqueue,
3617 [ --enable-audioqueue AudioQueue audio module (default disabled)])
3618 if test "${enable_audioqueue}" = "yes"
3620 VLC_ADD_PLUGIN([audioqueue])
3621 VLC_ADD_LIBS([audioqueue], [-Wl,-framework,AudioToolbox,-framework,CoreFoundation])
3628 [AS_HELP_STRING([--disable-jack],
3629 [do not use jack (default auto)])])
3631 AS_IF([test "${enable_jack}" != "no"], [
3632 PKG_CHECK_MODULES(JACK, jack >= 1.9.7,
3635 AC_MSG_WARN([${JACK_PKG_ERRORS}, trying jack1 instead])
3637 PKG_CHECK_MODULES(JACK, jack >= 0.120.1 jack < 1.0,
3640 AS_IF([test -n "${enable_jack}"],
3641 [AC_MSG_ERROR([${JACK_PKG_ERRORS}.])],
3642 [AC_MSG_WARN([${JACK_PKG_ERRORS}.])])
3646 AM_CONDITIONAL([HAVE_JACK], [test "${have_jack}" != "no"])
3649 dnl OpenSLES Android
3651 AC_ARG_ENABLE(opensles,
3652 [ --enable-opensles Android OpenSL ES audio module (default disabled)])
3653 if test "${HAVE_ANDROID}" = "1"; then
3654 if test "${enable_opensles}" = "yes"; then
3655 AC_CHECK_HEADERS(SLES/OpenSLES.h,
3656 [ VLC_ADD_PLUGIN([opensles_android]) ],
3657 [ AC_MSG_ERROR([cannot find OpenSLES headers])] )
3662 dnl libsamplerate plugin
3664 PKG_ENABLE_MODULES_VLC([SAMPLERATE], [], [samplerate], [Resampler with libsamplerate], [auto])
3670 [AS_HELP_STRING([--enable-kai],
3671 [support the K Audio Interface KAI (default enabled on OS/2)])],, [
3672 AS_IF([test "$SYS" = "os2"], [
3678 AS_IF([test "$enable_kai" != "no"], [
3679 AC_CHECK_HEADERS([kai.h], [
3681 AC_CHECK_LIB(kai, main, [
3687 AM_CONDITIONAL([HAVE_KAI], [test "${have_kai}" = "yes"])
3690 dnl chromaprint audio track fingerprinter
3692 m4_pushdef([libchromaprint_version], 0.6.0)
3693 PKG_WITH_MODULES([CHROMAPRINT],[libchromaprint >= libchromaprint_version],
3694 VLC_ADD_PLUGIN([stream_out_chromaprint fingerprinter])
3695 VLC_ADD_CFLAGS([stream_out_chromaprint],[${CHROMAPRINT_CFLAGS}] [-I./webservices -I../stream_out])
3696 VLC_ADD_LIBS([stream_out_chromaprint],[${CHROMAPRINT_LIBS}])
3697 VLC_ADD_LIBS([fingerprinter],[-lm]),
3698 AS_IF([test "${enable_chromaprint}" = "yes"],
3699 [AC_MSG_ERROR(Library [libchromaprint >= libchromaprint_version] needed for [chromaprint] was not found)],
3700 [AC_MSG_WARN(Library [libchromaprint >= libchromaprint_version] needed for [chromaprint] was not found)]
3702 [(Chromaprint based audio fingerprinter)],[auto])
3703 m4_popdef([libchromaprint_version])
3706 dnl Interface plugins
3709 EXTEND_HELP_STRING([Interface plugins:])
3715 AS_HELP_STRING([--disable-qt], [Qt UI support (default enabled)])],, [
3716 AS_IF([test "${SYS}" = "darwin"], [
3720 AS_IF([test "${enable_qt}" != "no"], [
3721 PKG_CHECK_MODULES([QT], [Qt5Core >= 5.1.0 Qt5Widgets Qt5Gui], [
3722 QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix Qt5Core)"
3723 AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, [${QT_PATH}/bin ${CONTRIB_DIR}/bin])
3724 AC_PATH_PROG(RCC, [rcc-qt5 rcc], rcc, [${QT_PATH}/bin ${CONTRIB_DIR}/bin])
3725 AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, [${QT_PATH}/bin ${CONTRIB_DIR}/bin])
3727 PKG_CHECK_MODULES([QT], [QtCore QtGui >= 4.6.0],, [
3728 AS_IF([test -n "${enable_qt}"],[
3729 AC_MSG_ERROR([${QT_PKG_ERRORS}.])
3731 AC_MSG_WARN([${QT_PKG_ERRORS}.])
3735 QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix QtCore)"
3736 AC_PATH_PROGS(MOC, [moc-qt4 moc], moc, [${QT_PATH}/bin ${CONTRIB_DIR}/bin])
3737 AC_PATH_PROG(RCC, rcc, rcc, [${QT_PATH}/bin ${CONTRIB_DIR}/bin])
3738 AC_PATH_PROGS(UIC, [uic-qt4 uic], uic, [${QT_PATH}/bin ${CONTRIB_DIR}/bin])
3741 AS_IF([test "${enable_qt}" != "no"], [
3742 VLC_ADD_PLUGIN([qt4])
3743 ALIASES="${ALIASES} qvlc"
3748 AC_MSG_CHECKING([whether Qt uses Xlib])
3749 CPPFLAGS="${CPPFLAGS} ${QT_CFLAGS}"
3750 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
3752 #if !defined (Q_WS_X11)
3756 AC_MSG_RESULT([yes])
3765 AM_CONDITIONAL(ENABLE_QT4, [test "$enable_qt" != "no"])
3768 dnl Simple test for skins2 dependency
3770 AS_IF([test "$enable_qt" = "no"], [
3771 AS_IF([test "${enable_skins2}" = "yes"], [
3772 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.])
3775 AC_MSG_WARN([The skins2 module depends on the Qt4 interface, Qt4 is not built so skins2 is disabled.])
3782 AC_ARG_ENABLE(skins2,
3783 [AS_HELP_STRING([--enable-skins2], [skins interface module (default auto)])])
3784 AS_IF([test "${enable_skins2}" != "no"], [
3785 have_skins_deps="yes"
3788 AS_IF([test "${SYS}" = "mingw32"], [
3789 VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -DWIN32_SKINS])
3790 VLC_ADD_LIBS([skins2],[-lgdi32 -lole32 -luuid -lmsimg32])
3792 ], [test "${SYS}" = "darwin"], [
3793 VLC_ADD_CPPFLAGS([skins2],[ -DMACOSX_SKINS])
3794 VLC_ADD_LIBS([skins2],[-Wl,-framework,Carbon])
3796 ], [test "${SYS}" = "os2"], [
3797 VLC_ADD_CPPFLAGS([skins2],[ -DOS2_SKINS])
3800 PKG_CHECK_MODULES([XPM], [xpm],, [have_skins_deps="no"])
3801 PKG_CHECK_MODULES([XINERAMA], [xinerama],, [have_skins_deps="no"])
3802 PKG_CHECK_MODULES([XEXT], [xext],, [have_skins_deps="no"])
3803 VLC_ADD_CPPFLAGS([skins2],[${X_CFLAGS} ${XEXT_CFLAGS} ${XPM_CFLAGS} -DX11_SKINS])
3804 VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} ${XEXT_LIBS} ${XPM_LIBS} ${XINERAMA_LIBS} -lX11])
3808 VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3810 dnl we need freetype
3811 AS_IF([test "${have_freetype}" != "yes"], [
3812 have_skins_deps="no"
3815 AS_IF([test "${have_skins_deps}" = "no"], [
3816 AS_IF([test "x${enable_skins2}" = "x"], [
3817 AC_MSG_WARN([Skins2 interface disabled due to missing dependencies.])
3819 AC_MSG_ERROR([Skins2 interface requires FreeType, libxpm, libxext and libxinerama])
3823 VLC_ADD_PLUGIN([skins2])
3824 ALIASES="${ALIASES} svlc"
3828 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes"])
3830 AC_ARG_ENABLE(libtar,
3831 [ --enable-libtar libtar support for skins2 (default auto)])
3832 AS_IF([test "${enable_skins2}" = "yes" && test "${enable_libtar}" != "no"], [
3833 AC_CHECK_HEADERS(libtar.h, [
3834 VLC_ADD_LIBS([skins2],[-ltar])
3839 dnl MacOS X gui module
3841 AC_ARG_ENABLE(macosx,
3842 [ --enable-macosx Mac OS X gui support (default enabled on Mac OS X)])
3843 if test "x${enable_macosx}" != "xno" -a "${SYS}" = "darwin"
3845 VLC_ADD_LIBS([macosx], [-Wl,-framework,Cocoa -Wl,-framework,Carbon -Wl,-framework,CoreServices])
3846 VLC_ADD_OBJCFLAGS([macosx], [-fobjc-exceptions] )
3847 VLC_ADD_PLUGIN([macosx])
3849 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])
3851 if test ! -d ${CONTRIB_DIR}/Sparkle.framework
3853 AC_MSG_ERROR([Sparkle framework is required and was not found in ${CONTRIB_DIR}])
3855 VLC_ADD_LIBS([macosx], [-F${CONTRIB_DIR} -Wl,-framework,Sparkle])
3856 VLC_ADD_OBJCFLAGS([macosx], [-F${CONTRIB_DIR}])
3858 if test ! -d ${CONTRIB_DIR}/BGHUDAppKit.framework
3860 AC_MSG_ERROR([BGHUDAppKit framework is required and was not found in ${CONTRIB_DIR}])
3862 VLC_ADD_LIBS([macosx], [-F${CONTRIB_DIR} -Wl,-framework,BGHUDAppKit])
3863 VLC_ADD_OBJCFLAGS([macosx], [-F${CONTRIB_DIR}])
3865 AM_CONDITIONAL(ENABLE_MACOSX_UI, [test "$enable_macosx" != "no"])
3868 dnl Minimal Mac OS X module
3870 AC_ARG_ENABLE(minimal-macosx,
3871 [ --enable-minimal-macosx Minimal Mac OS X support (default disabled)])
3872 if test "${enable_minimal_macosx}" = "yes" -a "${SYS}" = "darwin"
3874 VLC_ADD_LIBS([minimal_macosx], [-Wl,-framework,Cocoa])
3875 VLC_ADD_OBJCFLAGS([minimal_macosx], [-fobjc-exceptions] )
3876 VLC_ADD_PLUGIN([minimal_macosx])
3878 AM_CONDITIONAL(ENABLE_MINIMAL_MACOSX, [test "$enable_minimal_macosx" != "no"])
3881 dnl MacOS X dialog provider
3883 AC_ARG_ENABLE(macosx-dialog-provider,
3884 [ --enable-macosx-dialog-provider Mac OS X dialog module (default enabled on Mac OS X)])
3885 if test "x${enable_macosx_dialog_provider}" != "xno" &&
3886 (test "${SYS}" = "darwin" || test "${enable_macosx_dialog_provider}" = "yes")
3888 VLC_ADD_LIBS([macosx_dialog_provider],[-Wl,-framework,Cocoa])
3889 VLC_ADD_PLUGIN([macosx_dialog_provider])
3891 AM_CONDITIONAL(ENABLE_MACOSX_DIALOG_PROVIDER, [test "$enable_macosx_dialog_provider" != "no"])
3896 AC_ARG_ENABLE(ncurses,
3897 [AS_HELP_STRING([--disable-ncurses],[ncurses text-based interface (default auto)])])
3898 AS_IF([test "${enable_ncurses}" != "no"] ,[
3899 PKG_CHECK_MODULES([NCURSES], [ncursesw], [
3900 VLC_ADD_PLUGIN([ncurses])
3901 VLC_ADD_CFLAGS([ncurses],[${NCURSES_CFLAGS}])
3902 VLC_ADD_LIBS([ncurses],[${NCURSES_LIBS}])
3903 ALIASES="${ALIASES} nvlc"
3905 AS_IF([test -n "${enable_ncurses}"], [
3906 AC_MSG_ERROR([${NCURSES_PKG_ERRORS}.])
3915 [ --enable-lirc lirc support (default disabled)])
3916 if test "${enable_lirc}" = "yes"
3918 AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
3919 if test "${have_lirc}" = "true"
3921 VLC_ADD_PLUGIN([lirc])
3922 VLC_ADD_LIBS([lirc],[-llirc_client])
3926 EXTEND_HELP_STRING([Visualisations and Video filter plugins:])
3928 dnl goom visualization plugin
3930 PKG_ENABLE_MODULES_VLC([GOOM], [], [libgoom2], [goom visualization plugin], [auto])
3933 dnl libprojectM visualization plugin
3935 AC_ARG_ENABLE(projectm,
3936 [ --enable-projectm projectM visualization plugin (default enabled)])
3937 AS_IF([test "${enable_projectm}" != "no"],
3939 PKG_CHECK_MODULES(PROJECTM, libprojectM,
3941 VLC_ADD_PLUGIN([projectm])
3942 VLC_ADD_CXXFLAGS([projectm],[$PROJECTM_CFLAGS])
3943 VLC_ADD_LIBS([projectm],[$PROJECTM_LIBS])
3944 PKG_CHECK_MODULES(PROJECTM2, [libprojectM >= 2.0.0],
3945 [ AC_DEFINE([HAVE_PROJECTM2], 1, [Define to 1 if using libprojectM 2.x]) ],
3946 [ AC_MSG_WARN( [Using libprojectM version 1] )
3949 AC_MSG_WARN([${PROJECTM_PKG_ERRORS}.])
3954 dnl Vovoid VSXu visualization plugin
3957 [ --enable-vsxu Vovoid VSXu visualization plugin (default auto)])
3958 AS_IF([test "${enable_vsxu}" != "no"],
3960 PKG_CHECK_MODULES(VSXU, libvsxu,
3962 VLC_ADD_PLUGIN([vsxu])
3963 VLC_ADD_CXXFLAGS([vsxu],[$VSXU_CFLAGS])
3964 VLC_ADD_LIBS([vsxu],[$VSXU_LIBS])
3966 AC_MSG_WARN([${VSXU_PKG_ERRORS}.])
3971 dnl AtmoLight (homemade Philips Ambilight clone)
3974 AS_HELP_STRING([--disable-atmo],[AtmoLight (homemade Philips Ambilight clone)
3975 (default enabled)]),, [enable_atmo="yes"])
3976 AS_IF([test "${enable_atmo}" != no], [
3977 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "linux"], [
3979 VLC_ADD_PLUGIN([atmo])
3987 AC_ARG_ENABLE(glspectrum,
3988 [ --enable-glspectrum 3D OpenGL spectrum visualization (default auto)])
3989 if test "${enable_glspectrum}" != "no" && test "${have_gl}" = "yes"
3991 VLC_ADD_PLUGIN([glspectrum])
3992 VLC_ADD_LIBS([glspectrum],[$GL_LIBS])
3995 EXTEND_HELP_STRING([Service Discovery plugins:])
3997 dnl Bonjour services discovery
3998 PKG_ENABLE_MODULES_VLC([BONJOUR], [], [avahi-client >= 0.6], [Bonjour services discovery], [auto])
4001 dnl libudev services discovery
4002 PKG_ENABLE_MODULES_VLC([UDEV], [], [libudev >= 142], [Linux udev services discovery], [auto])
4005 dnl MTP devices services discovery
4006 PKG_ENABLE_MODULES_VLC([MTP], [mtp access_mtp], [libmtp >= 1.0.0], [MTP devices support], [auto])
4009 dnl UPnP Plugin (Intel SDK)
4011 PKG_ENABLE_MODULES_VLC([UPNP], [upnp], [libupnp], [Intel UPNP SDK],[auto])
4012 VLC_ADD_CXXFLAGS([upnp],[${UPNP_CFLAGS}])
4014 EXTEND_HELP_STRING([Misc options:])
4019 PKG_ENABLE_MODULES_VLC([LIBXML2], [xml], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
4025 AC_ARG_ENABLE(libgcrypt,
4026 [ --disable-libgcrypt gcrypt support (default enabled)])
4027 AS_IF([test "${enable_libgcrypt}" != "no"], [
4028 AC_CHECK_DECL([GCRYCTL_SET_THREAD_CBS], [
4029 libgcrypt-config --version >/dev/null || \
4030 AC_MSG_ERROR([gcrypt.h present but libgcrypt-config could not be found])
4031 AC_CHECK_LIB(gcrypt, gcry_control, [
4032 have_libgcrypt="yes"
4033 GCRYPT_CFLAGS="`libgcrypt-config --cflags`"
4034 GCRYPT_LIBS="`libgcrypt-config --libs`"
4036 AC_MSG_ERROR([libgcrypt not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
4037 ], [`libgcrypt-config --libs`])
4039 AC_MSG_ERROR([libgcrypt version 1.1.94 or higher not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
4040 ], [#include <gcrypt.h>]
4044 AC_SUBST(GCRYPT_CFLAGS)
4045 AC_SUBST(GCRYPT_LIBS)
4046 AM_CONDITIONAL([HAVE_GCRYPT], [test "${have_libgcrypt}" = "yes"])
4051 AC_ARG_ENABLE(gnutls,
4052 [ --enable-gnutls GNU TLS TLS/SSL support (default enabled)])
4053 AS_IF([test "${enable_gnutls}" != "no"], [
4054 PKG_CHECK_MODULES(GNUTLS, [gnutls >= 3.0.20], [
4055 VLC_ADD_PLUGIN([gnutls])
4057 AS_IF([test -n "${enable_gnutls}"], [
4058 AC_MSG_ERROR([${GNUTLS_PKG_ERRORS}.)])
4067 AC_ARG_ENABLE(taglib,
4068 [AS_HELP_STRING([--disable-taglib],
4069 [do not use TagLib (default enabled)])])
4070 AS_IF([test "${enable_taglib}" != "no"], [
4071 PKG_CHECK_MODULES(TAGLIB, taglib >= 1.6.1, [
4072 VLC_ADD_PLUGIN([taglib])
4073 VLC_ADD_LIBS([taglib],[$TAGLIB_LIBS -lz])
4074 VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS])
4076 AC_MSG_WARN([${TAGLIB_PKG_ERRORS}.])])
4081 dnl update checking system
4083 AC_ARG_ENABLE(update-check,
4084 [ --enable-update-check update checking system (default disabled)])
4085 if test "${enable_update_check}" = "yes"
4087 if test "${have_libgcrypt}" != "yes"
4089 AC_MSG_ERROR([libgcrypt is required for update checking system])
4091 VLC_ADD_LIBS([libvlccore], [${GCRYPT_LIBS}])
4092 VLC_ADD_CFLAGS([libvlccore], [${GCRYPT_CFLAGS}])
4093 AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
4097 dnl Growl notification plugin
4099 AC_ARG_ENABLE(growl,
4100 [ --enable-growl growl notification plugin (default disabled)],,
4102 AS_IF([test "${enable_growl}" != "no"], [
4103 AC_CHECK_HEADERS(${CONTRIB_DIR}/Growl.framework/Versions/A/Headers/Growl.h, [
4104 VLC_ADD_PLUGIN([growl])
4105 VLC_ADD_LIBS([growl], [-F${CONTRIB_DIR} -Wl,-framework,Growl,-framework,Foundation])
4106 VLC_ADD_OBJCFLAGS([growl], [-F${CONTRIB_DIR}])
4107 VLC_ADD_OBJCFLAGS([growl], [-fobjc-exceptions] )
4113 dnl Libnotify notification plugin
4115 PKG_ENABLE_MODULES_VLC([NOTIFY], [], [libnotify gtk+-2.0], [libnotify notification], [auto])
4118 dnl Endianness check
4121 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
4122 DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
4126 AC_SUBST(DEFS_BIGENDIAN)
4129 dnl Where to install KDE solid .desktop
4131 AC_ARG_VAR([KDE4_CONFIG], [kde4-config utility])
4132 AS_IF([test "x$KDE4_CONFIG" = "x"], [
4133 KDE4_CONFIG="kde4-config"
4136 AC_ARG_WITH(kde-solid,
4137 AS_HELP_STRING([--with-kde-solid=PATH],
4138 [KDE Solid actions directory (auto)]),, [
4140 if test "${SYS}" != "mingw32" -a "${SYS}" != "darwin" ; then
4141 with_kde_solid="yes"
4145 AS_IF([test "${with_kde_solid}" != "no"], [
4146 AS_IF([test "${with_kde_solid}" = "yes"], [
4147 kde4datadir="`${KDE4_CONFIG} --install data`"
4148 AS_IF([test "x$kde4datadir" = "x"], [kde4datadir='${datadir}/kde4/apps'])
4149 soliddatadir="${kde4datadir}/solid/actions"
4151 soliddatadir="${with_kde_solid}"
4154 AC_SUBST(soliddatadir)
4155 AM_CONDITIONAL(KDE_SOLID, [test "x${soliddatadir}" != "x"])
4159 AS_IF([test "${SYS}" = "mingw32"], [VLC_ADD_PLUGIN([dmo]) VLC_ADD_LIBS([dmo],[-lole32 -luuid]) ])
4161 EXTEND_HELP_STRING([Components:])
4167 [ --enable-vlc build the VLC media player (default enabled)])
4168 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
4170 AC_ARG_ENABLE(macosx-vlc-app,
4171 [ --enable-macosx-vlc-app build the VLC media player (default enabled on Mac OS X)])
4172 AM_CONDITIONAL(BUILD_MACOSX_VLC_APP, [test "${enable_macosx_vlc_app}" != "no" &&
4173 (test "${SYS}" = "darwin" || test "${enable_macosx_vlc_app}" = "yes") ])
4176 dnl Stuff used by the program
4178 VERSION_MESSAGE="${VERSION} ${CODENAME}"
4179 COPYRIGHT_MESSAGE="Copyright © ${COPYRIGHT_YEARS} the VideoLAN team"
4180 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string])
4181 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string])
4182 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
4183 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
4184 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,${VERSION_MAJOR}, [version major number])
4185 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,${VERSION_MINOR}, [version minor number])
4186 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,${VERSION_REVISION}, [version revision number])
4187 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,${VERSION_EXTRA}, [version extra number])
4188 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_DEV,"${VERSION_DEV}", [version development string])
4189 AC_SUBST(COPYRIGHT_MESSAGE)
4190 AC_SUBST(VERSION_MESSAGE)
4191 AC_SUBST(VERSION_MAJOR)
4192 AC_SUBST(VERSION_MINOR)
4193 AC_SUBST(VERSION_REVISION)
4194 AC_SUBST(VERSION_EXTRA)
4195 AC_SUBST(COPYRIGHT_YEARS)
4196 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami|sed -e 's/\\\/\\\\\\\/g'`", [user who ran configure])
4197 AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -f 2>/dev/null || hostname`", [host which ran configure])
4198 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1 | sed -e 's/ *$//'`", [compiler])
4200 dnl Handle substvars that use $(top_srcdir)
4202 CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS}"
4205 dnl Configuration is finished
4215 AC_SUBST(WINE_SDK_PATH)
4217 AC_SUBST(AM_CPPFLAGS)
4218 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
4219 AC_SUBST(FILE_LIBVLCCORE_DLL)
4220 AC_SUBST(FILE_LIBVLC_DLL)
4234 modules/access/rtp/Makefile
4235 modules/access_output/Makefile
4236 modules/audio_filter/Makefile
4237 modules/audio_mixer/Makefile
4238 modules/audio_output/Makefile
4239 modules/codec/Makefile
4240 modules/control/Makefile
4241 modules/demux/Makefile
4242 modules/gui/Makefile
4243 modules/gui/macosx/Makefile
4244 modules/gui/minimal_macosx/Makefile
4245 modules/gui/macosx_dialog_provider/Makefile
4246 modules/gui/qt4/Makefile
4247 modules/gui/skins2/Makefile
4248 modules/lua/Makefile
4249 modules/meta_engine/Makefile
4250 modules/misc/Makefile
4251 modules/mux/Makefile
4252 modules/notify/Makefile
4253 modules/packetizer/Makefile
4254 modules/services_discovery/Makefile
4255 modules/stream_filter/Makefile
4256 modules/stream_out/Makefile
4257 modules/text_renderer/Makefile
4258 modules/video_chroma/Makefile
4259 modules/video_filter/Makefile
4260 modules/video_output/Makefile
4261 modules/video_splitter/Makefile
4262 modules/visualization/Makefile
4263 modules/arm_neon/Makefile
4264 modules/hw/vdpau/Makefile
4267 AM_COND_IF([HAVE_WIN32], [
4269 extras/package/win32/NSIS/spad.nsi
4270 extras/package/win32/NSIS/vlc.win32.nsi
4271 extras/package/win32/msi/config.wxi
4275 AM_COND_IF([HAVE_DARWIN], [
4277 extras/package/macosx/Info.plist
4278 extras/package/macosx/Resources/English.lproj/InfoPlist.strings
4282 dnl Generate makefiles
4285 dnl Do we have to use make or gmake ?
4286 if make --version 2>&1|grep -q GNU
4288 # GNU make, all seems good
4291 # Known GNU make alias (on BSD)
4294 dnl Shortcut to nice compile message
4295 if test -n $SHELL; then
4296 SHELL=${CONFIG_SHELL-/bin/sh}
4302 export PATH=\"$PATH\" LANG=C
4303 ($MAKE V=1 \$@ 2>&1 || touch .error\$\$)| `sed -ne \"s/^top_srcdir *= *//p\" < Makefile`/extras/buildsystem/make.pl
4304 test -f .error\$\$ && ERROR=1
4306 exit \$ERROR" >compile
4310 libvlc configuration
4311 --------------------
4312 version : ${VERSION}
4314 architecture : ${ARCH}
4315 optimizations : ${enable_optimizations}"
4316 if test "${enable_vlc}" != "no"; then
4317 echo "vlc aliases :${ALIASES}"
4319 echo "build vlc executable : no"
4322 To build vlc and its plugins, type \`$MAKE', or \`./compile' if you like nice colors."