1 dnl Autoconf settings for vlc
3 AC_COPYRIGHT([Copyright 2002-2013 VLC authors and VideoLAN])
5 AC_INIT(vlc, 2.1.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"
109 VLC_ADD_LIBS([vcd cdda vcdx],[-ldvd])
113 CFLAGS="${CFLAGS} -pthread"
114 CPPFLAGS="${CPPFLAGS} -I/usr/local/include"
115 LDFLAGS="${LDFLAGS} -L/usr/local/lib"
119 CPPFLAGS="${CPPFLAGS} -I/usr/local/include -I/usr/X11R6/include"
120 LDFLAGS="${LDFLAGS} -L/usr/local/lib -L/usr/X11R6/lib/"
130 dnl Force gcc "-arch" flag
134 ARCH_flag="-arch i386"
137 ARCH_flag="-arch ppc64"
140 ARCH_flag="-arch ppc"
143 ARCH_flag="-arch x86_64"
146 ac_cv_c_bigendian="no"
147 ac_cv_c_attribute_packed="no"
152 CFLAGS="${CFLAGS} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"
153 CXXFLAGS="${CXXFLAGS} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"
154 CPPFLAGS="${CPPFLAGS} ${ARCH_flag}"
155 OBJCFLAGS="${OBJCFLAGS} -D_INTL_REDIRECT_MACROS -std=gnu99 ${ARCH_flag}"
156 LDFLAGS="${LDFLAGS} -Wl,-headerpad_max_install_names ${ARCH_flag}"
157 VLC_ADD_LIBS([motion rotate], [-Wl,-framework,IOKit,-framework,CoreFoundation])
158 VLC_ADD_LIBS([libvlc vlc],[-Wl,-undefined,dynamic_lookup,-framework,AppKit])
159 VLC_ADD_LIBS([avcodec access_avio swscale postproc i420_rgb_mmx x264 x26410b],[-Wl,-read_only_relocs,suppress])
160 VLC_ADD_CFLAGS([motion rotate],[-fconstant-cfstrings])
161 VLC_ADD_LIBS([libvlccore],[-Wl,-framework,CoreFoundation,-framework,SystemConfiguration])
163 dnl Allow binaries created on Lion to run on earlier releases
165 [#import <Cocoa/Cocoa.h>
166 #ifdef MAC_OS_X_VERSION_10_7
169 [AC_MSG_RESULT([yes])
170 AC_LIBOBJ([getdelim])
172 AC_LIBOBJ([strnlen])],)
175 dnl Handle Mac OS X SDK flags
177 AC_ARG_WITH(macosx-sdk,
178 [AS_HELP_STRING([--with-macosx-sdk=DIR],
179 [compile using the SDK in DIR])])
180 if test "${with_macosx_sdk}" != "" ; then
181 test ! -d "${with_macosx_sdk}" && AC_MSG_ERROR([SDK "${with_macosx_sdk}" not found])
182 CPP="${CPP} -isysroot ${with_macosx_sdk}"
183 CC="${CC} -isysroot ${with_macosx_sdk}"
184 CXX="${CXX} -isysroot ${with_macosx_sdk}"
185 OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
186 LD="${LD} -syslibroot ${with_macosx_sdk}"
188 AC_ARG_WITH(macosx-version-min,
189 [AS_HELP_STRING([--with-macosx-version-min=VERSION],
190 [compile for Mac OS X VERSION and above])])
191 if test "${with_macosx_version_min}" != "" ; then
192 MACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}
193 CPP="${CPP} -mmacosx-version-min=${with_macosx_version_min}"
194 CC="${CC} -mmacosx-version-min=${with_macosx_version_min}"
195 CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
196 OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
197 LD="${LD} -mmacosx_version_min=${with_macosx_version_min}"
198 CFLAGS="${CFLAGS} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"
199 CXXFLAGS="${CXXFLAGS} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"
200 OBJCFLAGS="${OBJCFLAGS} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"
201 export MACOSX_DEPLOYMENT_TARGET
204 *mingw32* | *cygwin* | *wince* | *mingwce*)
205 AC_CHECK_TOOL(WINDRES, windres, :)
206 AC_CHECK_TOOL(OBJCOPY, objcopy, :)
207 AH_TOP([#if defined(WIN32) && !defined(_WIN32_WINNT)])
208 AH_TOP([# define _WIN32_WINNT 0x0502 /* Windows XP SP2 */])
210 AC_DEFINE([_WIN32_IE], 0x0600, [Define to '0x0600' for IE 6.0 (and shell) APIs.])
211 AC_DEFINE([_UNICODE], [1], [Define to 1 for Unicode (Wide Chars) APIs.])
212 AC_DEFINE([UNICODE], [1], [Define to 1 for Unicode (Wide Chars) APIs.])
219 dnl Check if we are using the mno-cygwin mode in which case we are
220 dnl actually dealing with a mingw32 compiler.
225 SYS=mingw32, AC_MSG_ERROR([VLC requires -mno-cygwin]))
229 if test "${SYS}" = "mingw32"; then
230 VLC_ADD_LIBS([libvlccore],[-lwinmm])
231 VLC_ADD_LDFLAGS([vlc],[-mwindows])
232 VLC_ADD_LIBS([win32text],[-lgdi32])
233 VLC_ADD_LIBS([vcdx],[-lwinmm])
234 AC_CHECK_PROGS(U2D, [unix2dos todos], unix2dos)
235 ac_default_prefix="`pwd`/_win32"
236 DESTDIR="`pwd`/_win32/"
239 dnl NSIS/MSI Installer prefix and WIN64
245 PROGRAMFILES="PROGRAMFILES64"
249 PROGRAMFILES="PROGRAMFILES"
252 AC_SUBST(WINDOWS_ARCH)
253 AC_SUBST(PROGRAMFILES)
271 LDFLAGS="${LDFLAGS} -Zomf -Zbin-files -Zargs-wild"
277 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
278 AM_CONDITIONAL(HAVE_LINUX, test "${SYS}" = "linux")
279 AM_CONDITIONAL(HAVE_OS2, test "${SYS}" = "os2")
280 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
281 AM_CONDITIONAL(HAVE_WIN64, test "${HAVE_WIN64}" = "1")
282 AM_CONDITIONAL(HAVE_SYMBIAN, test "${SYS}" = "symbian")
285 dnl Sadly autoconf does not think about testing foo.exe when ask to test
286 dnl for program foo on win32
287 case "${build_os}" in
289 ac_executable_extensions=".exe"
295 dnl Android is linux, but a bit different
296 AS_IF([test "$SYS" = linux],[
297 AC_MSG_CHECKING([for an Android system])
298 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
299 [[#ifndef __ANDROID__
310 AM_CONDITIONAL(HAVE_ANDROID, test "${HAVE_ANDROID}" = "1")
314 dnl Check for the contrib directory
317 [AS_HELP_STRING([--with-contrib[=DIR]],
318 [search for 3rd party libraries in DIR/include and DIR/lib])
320 AC_MSG_CHECKING([for 3rd party libraries path])
321 AS_IF([test -z "${with_contrib}" || test "${with_contrib}" = "yes"], [
322 CONTRIB_DIR="${srcdir}/contrib/${host}"
323 AS_IF([test ! -d "${CONTRIB_DIR}"], [
324 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
325 CONTRIB_DIR="${srcdir}/contrib/`$CC -dumpmachine`"
326 AS_IF([test ! -d "${CONTRIB_DIR}"], [
327 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
328 CONTRIB_DIR="${srcdir}/extras/contrib/hosts/${host}"
329 AS_IF([test ! -d "${CONTRIB_DIR}"], [
330 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
331 CONTRIB_DIR="${srcdir}/extras/contrib/hosts/`$CC -dumpmachine`"
332 AS_IF([test ! -d "${CONTRIB_DIR}"], [
333 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
335 AC_MSG_RESULT([not found])
341 AS_IF([test "${with_contrib}" != "no"], [
342 CONTRIB_DIR="${with_contrib}"
345 AC_MSG_RESULT([disabled])
348 AS_IF([test -n "${CONTRIB_DIR}"], [
349 AS_IF([test -d "${CONTRIB_DIR}/lib"],[
350 CONTRIB_DIR=`cd "${CONTRIB_DIR}" && pwd`
352 echo "${CONTRIB_DIR}/lib not found" >&AS_MESSAGE_LOG_FD
354 AC_MSG_RESULT([not usable])
358 AS_IF([test -n "${CONTRIB_DIR}"], [
359 AC_MSG_RESULT([${CONTRIB_DIR}])
360 export PATH=${CONTRIB_DIR}/bin:$PATH
361 CPPFLAGS="${CPPFLAGS} -I${CONTRIB_DIR}/include"
362 CFLAGS="${CFLAGS} -I${CONTRIB_DIR}/include"
363 CXXFLAGS="${CXXFLAGS} -I${CONTRIB_DIR}/include"
364 OBJCFLAGS="${OBJCFLAGS} -I${CONTRIB_DIR}/include"
365 AS_IF([test "$build" = "$host" -o "$PKG_CONFIG_LIBDIR"], [
366 export PKG_CONFIG_PATH="${CONTRIB_DIR}/lib/pkgconfig:$PKG_CONFIG_PATH"
368 export PKG_CONFIG_LIBDIR="${CONTRIB_DIR}/lib/pkgconfig"
370 LDFLAGS="${LDFLAGS} -L${CONTRIB_DIR}/lib"
372 AS_IF([test "${SYS}" = "darwin"], [
373 export LD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$LD_LIBRARY_PATH"
374 export DYLD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$DYLD_LIBRARY_PATH"
377 AS_IF([test -n "${with_contrib}" && test "${with_contrib}" != "no"], [
378 AC_MSG_ERROR([Third party libraries not found!])
381 AC_SUBST(CONTRIB_DIR)
385 dnl It's very bad, but our former custom system was worst
389 dnl override platform specific check for dependent libraries
390 dnl otherwise libtool linking of shared libraries will
391 dnl fail on anything other than pass_all.
392 AC_CACHE_VAL(lt_cv_deplibs_check_method,
393 [lt_cv_deplibs_check_method=pass_all])
395 LT_INIT([dlopen win32-dll shared disable-static])
397 LT_LANG([Windows Resource])
401 m4_undefine([AC_DEPLIBS_CHECK_METHOD])
402 m4_defun([AC_DEPLIBS_CHECK_METHOD],[])
404 lt_cv_deplibs_check_method=pass_all
406 AS_IF([test "${enable_shared}" = "no" -a "${enable_vlc}" != "no"], [
407 AC_MSG_ERROR([VLC is based on plugins. Shared libraries cannot be disabled.])
413 AM_GNU_GETTEXT_VERSION([0.18.1])
414 AM_GNU_GETTEXT([external], [need-ngettext])
423 AS_IF([test "${SYS}" = "mingw32"], [
424 dnl Check for broken versions of mingw-runtime compatability library
425 AC_MSG_CHECKING(for broken mingw-runtime)
426 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
428 #if defined(__MINGW64_VERSION_MAJOR)
429 # if __MINGW64_VERSION_MAJOR < 3
430 # error Attempting to use mingw-runtime with broken vsnprintf and direct2d support
432 #elif __MINGW32_MAJOR_VERSION == 3 && __MINGW32_MINOR_VERSION < 15
433 # error Attempting to use mingw-runtime with broken vsnprintf support
438 AC_MSG_RESULT([present])
439 AC_MSG_ERROR([LibVLC requires mingw-runtime version 3.15 or higher, or mingw-w64 version 3.0 or higher!])
441 dnl force use of mingw provided c99 *printf over msvcrt
442 CPPFLAGS="${CPPFLAGS} -D__USE_MINGW_ANSI_STDIO=1"
444 dnl Check for the need to include the mingwex lib for mingw32
446 AC_CHECK_LIB(mingwex,opendir,
447 AC_CHECK_LIB(mingw32,opendir,,
448 [VLC_ADD_LIBS([libvlccore],[-lmingwex])])
452 dnl Check for fnative-struct or mms-bitfields support for mingw32
454 CFLAGS="${CFLAGS} -mms-bitfields"
455 CXXFLAGS="${CXXFLAGS} -mms-bitfields"
456 AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
457 [ac_cv_c_mms_bitfields],
458 [AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
459 if test "${ac_cv_c_mms_bitfields}" = "no"; then
461 CFLAGS="${CFLAGS} -fnative-struct"
462 CXXFLAGS="${CXXFLAGS} -fnative-struct"
463 AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
464 [ac_cv_c_fnative_struct],
465 [AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
466 "${ac_cv_c_fnative_struct}" = "no" && VLC_RESTORE_FLAGS
470 AC_ARG_ENABLE(winstore_app,
471 AS_HELP_STRING([--enable-winstore-app],
472 [Build targetted for Windows Store apps (default disabled)]))
474 AS_IF([test "${SYS}" = "mingw32"], [
475 AS_IF([test "${enable_winstore_app}" == "yes"], [
476 AC_DEFINE(WINAPI_FAMILY_APP, 1, [Define 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_http access_udp access_tcp access_ftp 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>
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 panoramix rotate noise grain scene kate lua chorus_flanger freetype avcodec access_avio swscale postproc i420_rgb faad twolame equalizer spatializer param_eq samplerate freetype mpc dmo quicktime qt4 compressor headphone_channel_mixer normvol audiobargraph_a speex opus mono colorthres extract ball access_imem hotkeys mosaic gaussianblur x26410b hqdn3d anaglyph oldrc ncurses],[-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([access_http 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.0.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])
1009 dnl Check for Darwin plugin linking flags
1010 AS_IF([test "${SYS}" = "darwin"], [
1012 CFLAGS="${CFLAGS} -bundle -undefined error"
1013 AC_CACHE_CHECK([if $CC accepts -bundle -undefined error],
1014 [ac_cv_ld_darwin], [
1015 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1021 AS_IF([test "${ac_cv_ld_darwin}" != "no"], [
1022 VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
1027 dnl Checks for __attribute__(aligned()) directive
1029 CFLAGS="${CFLAGS} -Werror"
1030 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1031 [ac_cv_c_attribute_aligned],
1032 [ac_cv_c_attribute_aligned=0
1033 for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1035 [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1036 [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1039 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1040 AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1041 [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1044 dnl Check for __attribute__((packed))
1045 AC_CACHE_CHECK([for __attribute__((packed))],
1046 [ac_cv_c_attribute_packed],
1047 [ac_cv_c_attribute_packed=no
1048 AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b; (void)b;],
1049 [ac_cv_c_attribute_packed=yes])])
1050 if test "${ac_cv_c_attribute_packed}" != "no"; then
1051 AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1057 case "${host_cpu}" in
1066 dnl Check for backtrace() support
1067 AC_CHECK_HEADERS(execinfo.h)
1068 AC_CHECK_FUNCS(backtrace)
1073 ALIASES="${ALIASES} cvlc rvlc"
1076 dnl Accelerated modules
1079 dnl Check for fully working MMX intrinsics
1080 dnl We need support for -mmmx, we need <mmintrin.h>, and we also need a
1081 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1083 [AS_HELP_STRING([--disable-mmx],
1084 [disable MMX optimizations (default auto)])],,[
1085 case "${host_cpu}" in
1096 AS_IF([test "${enable_mmx}" != "no"], [
1099 CFLAGS="${CFLAGS} -mmmx"
1100 AC_CACHE_CHECK([if $CC groks MMX intrinsics], [ac_cv_c_mmx_intrinsics], [
1101 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1102 [#include <mmintrin.h>
1104 uint64_t frobzor;]], [
1106 a = b = c = (__m64)frobzor;
1107 a = _mm_slli_pi16(a, 3);
1108 a = _mm_adds_pi16(a, b);
1109 c = _mm_srli_pi16(c, 8);
1110 c = _mm_slli_pi16(c, 3);
1111 b = _mm_adds_pi16(b, c);
1112 a = _mm_unpacklo_pi8(a, b);
1113 frobzor = (uint64_t)a;]])], [
1114 ac_cv_c_mmx_intrinsics=yes
1116 ac_cv_c_mmx_intrinsics=no
1120 AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1121 AC_DEFINE(HAVE_MMX_INTRINSICS, 1, [Define to 1 if MMX intrinsics are available.])
1125 CFLAGS="${CFLAGS} -mmmx"
1126 AC_CACHE_CHECK([if $CC groks MMX inline assembly], [ac_cv_mmx_inline], [
1127 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1129 asm volatile("packuswb %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1132 ac_cv_mmx_inline=yes
1137 AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1138 AC_DEFINE(CAN_COMPILE_MMX, 1, [Define to 1 inline MMX assembly is available.])
1142 AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1143 [ac_cv_mmxext_inline], [
1144 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1146 asm volatile("maskmovq %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1149 ac_cv_mmxext_inline=yes
1151 ac_cv_mmxext_inline=no
1155 AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1156 AC_DEFINE(CAN_COMPILE_MMXEXT, 1, [Define to 1 if MMX EXT inline assembly is available.])
1160 AM_CONDITIONAL([HAVE_MMX], [test "${have_mmx}" = "yes"])
1161 AM_CONDITIONAL([HAVE_MMXEXT], [test "${have_mmxext}" = "yes"])
1163 dnl Check for fully workin SSE2 intrinsics
1164 dnl We need support for -mmmx, we need <emmintrin.h>, and we also need a
1165 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1167 [AS_HELP_STRING([--disable-sse],
1168 [disable SSE (1-4) optimizations (default auto)])],, [
1169 case "${host_cpu}" in
1179 AS_IF([test "${enable_sse}" != "no"], [
1180 ARCH="${ARCH} sse sse2"
1183 CFLAGS="${CFLAGS} -msse2"
1184 AC_CACHE_CHECK([if $CC groks SSE2 intrinsics], [ac_cv_c_sse2_intrinsics], [
1185 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1186 [#include <emmintrin.h>
1188 uint64_t frobzor;]], [
1190 a = b = c = _mm_set1_epi64((__m64)frobzor);
1191 a = _mm_slli_epi16(a, 3);
1192 a = _mm_adds_epi16(a, b);
1193 c = _mm_srli_epi16(c, 8);
1194 c = _mm_slli_epi16(c, 3);
1195 b = _mm_adds_epi16(b, c);
1196 a = _mm_unpacklo_epi8(a, b);
1197 frobzor = (uint64_t)_mm_movepi64_pi64(a);]])], [
1198 ac_cv_c_sse2_intrinsics=yes
1200 ac_cv_c_sse2_intrinsics=no
1204 AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1205 AC_DEFINE(HAVE_SSE2_INTRINSICS, 1, [Define to 1 if SSE2 intrinsics are available.])
1209 CFLAGS="${CFLAGS} -msse"
1210 AC_CACHE_CHECK([if $CC groks SSE inline assembly], [ac_cv_sse_inline], [
1211 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1213 asm volatile("xorps %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1216 ac_cv_sse_inline=yes
1222 AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1223 AC_DEFINE(CAN_COMPILE_SSE, 1, [Define to 1 if SSE inline assembly is available.])
1226 AC_CACHE_CHECK([if $CC groks SSE2 inline assembly], [ac_cv_sse2_inline], [
1227 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1229 asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1232 ac_cv_sse2_inline=yes
1234 ac_cv_sse2_inline=no
1237 AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1238 AC_DEFINE(CAN_COMPILE_SSE2, 1, [Define to 1 if SSE2 inline assembly is available.])
1243 AC_CACHE_CHECK([if $CC groks SSE3 inline assembly], [ac_cv_sse3_inline], [
1244 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1246 asm volatile("movsldup %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1249 ac_cv_sse3_inline=yes
1251 ac_cv_sse3_inline=no
1255 AS_IF([test "${ac_cv_sse3_inline}" != "no"], [
1256 AC_DEFINE(CAN_COMPILE_SSE3, 1, [Define to 1 if SSE3 inline assembly is available.]) ])
1258 AC_CACHE_CHECK([if $CC groks SSSE3 inline assembly], [ac_cv_ssse3_inline], [
1259 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1261 asm volatile("pabsw %%xmm0,%%xmm0"::"r"(p):"xmm0");
1264 ac_cv_ssse3_inline=yes
1266 ac_cv_ssse3_inline=no
1270 AS_IF([test "${ac_cv_ssse3_inline}" != "no"], [
1271 AC_DEFINE(CAN_COMPILE_SSSE3, 1, [Define to 1 if SSSE3 inline assembly is available.]) ])
1274 AC_CACHE_CHECK([if $CC groks SSE4.1 inline assembly],
1275 [ac_cv_sse4_1_inline], [
1276 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1278 asm volatile("pmaxsb %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1281 ac_cv_sse4_1_inline=yes
1283 ac_cv_sse4_1_inline=no
1287 AS_IF([test "${ac_cv_sse4_1_inline}" != "no"], [
1288 AC_DEFINE(CAN_COMPILE_SSE4_1, 1, [Define to 1 if SSE4_1 inline assembly is available.]) ])
1291 AC_CACHE_CHECK([if $CC groks SSE4.2 inline assembly],
1292 [ac_cv_sse4_2_inline], [
1293 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1295 asm volatile("pcmpgtq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1298 ac_cv_sse4_2_inline=yes
1300 ac_cv_sse4_2_inline=no
1304 AS_IF([test "${ac_cv_sse4_2_inline}" != "no"], [
1305 AC_DEFINE(CAN_COMPILE_SSE4_2, 1, [Define to 1 if SSE4_2 inline assembly is available.]) ])
1308 AC_CACHE_CHECK([if $CC groks SSE4A inline assembly], [ac_cv_sse4a_inline], [
1309 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1311 asm volatile("insertq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1314 ac_cv_sse4a_inline=yes
1316 ac_cv_sse4a_inline=no
1320 AS_IF([test "${ac_cv_sse4a_inline}" != "no"], [
1321 AC_DEFINE(CAN_COMPILE_SSE4A, 1, [Define to 1 if SSE4A inline assembly is available.]) ])
1323 AM_CONDITIONAL([HAVE_SSE2], [test "$have_sse2" = "yes"])
1326 CFLAGS="${CFLAGS} -mmmx"
1328 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly], [ac_cv_3dnow_inline], [
1329 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1331 asm volatile("pfadd %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1334 ac_cv_3dnow_inline=yes
1336 ac_cv_3dnow_inline=no
1340 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1341 AC_DEFINE(CAN_COMPILE_3DNOW, 1,
1342 [Define to 1 if 3D Now! inline assembly is available.])
1345 AM_CONDITIONAL([HAVE_3DNOW], [test "$have_3dnow" = "yes"])
1349 [AS_HELP_STRING([--disable-neon],
1350 [disable NEON optimizations (default auto)])],, [
1351 AS_IF([test "${host_cpu}" = "arm"], [enable_neon="yes"] ,[enable_neon="no"])
1353 AS_IF([test "${enable_neon}" != "no"], [
1355 CFLAGS="${CFLAGS} -mfpu=neon -mhard-float"
1356 AC_CACHE_CHECK([if $CCAS groks ARM NEON assembly], [ac_cv_arm_neon], [
1359 asm volatile("vqmovun.s64 d0, q1":::"d0");
1362 ac_cv_arm_neon="yes"
1369 AM_CONDITIONAL(HAVE_NEON, [test "${ac_cv_arm_neon}" = "yes"])
1372 AC_ARG_ENABLE(altivec,
1373 [AS_HELP_STRING([--disable-altivec],
1374 [disable AltiVec optimizations (default auto)])],, [
1375 AS_IF([test "${host_cpu}" = "powerpc"],
1376 [enable_altivec=yes], [enable_altivec=no])
1379 AS_IF([test "${enable_altivec}" = "yes"], [
1380 ARCH="${ARCH} altivec";
1382 AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1383 [ac_cv_altivec_inline],
1384 [AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1385 ac_cv_altivec_inline="yes",
1386 [CFLAGS="${CFLAGS} -Wa,-m7400"
1387 AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1388 [ac_cv_altivec_inline="-Wa,-m7400"],
1389 ac_cv_altivec_inline=no)
1392 AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1393 AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1394 [Define to 1 if AltiVec inline assembly is available.])
1395 AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1396 VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1397 VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1398 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_altivec_inline}])
1403 dnl The AltiVec C extensions
1405 dnl There are several possible cases:
1406 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1407 dnl need <altivec.h>
1408 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1409 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1410 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1411 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1412 dnl - Others: test should fail
1414 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1416 [# OS X/PPC test (gcc 4.x)
1417 CFLAGS="${CFLAGS} -mpim-altivec -force_cpusubtype_ALL"
1418 AC_TRY_COMPILE([vector unsigned char foo;],
1419 [vec_ld(0, (unsigned char *)0);],
1420 [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1421 [# OS X/PPC test (gcc 3.x)
1422 CFLAGS="${CFLAGS} -faltivec"
1423 AC_TRY_COMPILE([vector unsigned char foo;],
1424 [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1425 [ac_cv_c_altivec="-faltivec"],
1426 dnl Below this are the Linux tests
1427 [# Linux/PPC test (gcc 4.x)
1428 CFLAGS="${CFLAGS} -maltivec"
1429 AC_TRY_COMPILE([#include <altivec.h>],
1430 [vec_ld(0, (unsigned char *)0);],
1431 [ac_cv_c_altivec="-maltivec"],
1432 [# Linux/PPC test (gcc 3.3)
1433 CFLAGS="${CFLAGS} -maltivec -mabi=altivec"
1434 AC_TRY_COMPILE([#include <altivec.h>],
1435 [vec_ld(0, (unsigned char *)0);],
1437 ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1438 [# Linux/PPC test (gcc 3.3)
1439 CFLAGS="${CFLAGS} -fvec"
1440 AC_TRY_COMPILE([#include <altivec.h>],
1441 [vec_ld(0, (unsigned char *)0);],
1442 [ac_cv_c_altivec="-fvec"],
1443 [ac_cv_c_altivec=no])
1451 AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1452 CPPFLAGS="${CPPFLAGS} ${ac_cv_c_altivec}"
1453 AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, [Define to 1 if C AltiVec extensions are available.])
1454 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_c_altivec}])
1455 VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1458 AC_CHECK_HEADERS(altivec.h)
1461 LDFLAGS="${LDFLAGS} -Wl,-framework,vecLib"
1462 AC_CACHE_CHECK([if linker needs -framework vecLib],
1464 [AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)])
1466 AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1467 VLC_ADD_LIBS([libvlccore memcpyaltivec],[-Wl,-framework,vecLib])
1470 AM_CONDITIONAL([HAVE_ALTIVEC], [test "$have_altivec" = "yes"])
1475 AC_ARG_ENABLE(optimize-memory,
1476 [AS_HELP_STRING([--enable-optimize-memory],
1477 [optimize memory usage over performance])])
1478 if test "${enable_optimize_memory}" = "yes"; then
1479 AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1483 dnl Allow running as root (useful for people running on embedded platforms)
1485 AC_ARG_ENABLE(run-as-root,
1486 [AS_HELP_STRING([--enable-run-as-root],
1487 [allow running VLC as root (default disabled)])])
1488 AS_IF([test "${enable_run_as_root}" = "yes"],[
1489 AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1490 [Define to 1 to allow running VLC as root (uid 0).])
1497 [AS_HELP_STRING([--disable-sout],
1498 [disable streaming output (default enabled)])])
1499 AS_IF([test "${enable_sout}" != "no"], [
1500 AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1502 AM_CONDITIONAL(ENABLE_SOUT, [test "${enable_sout}" != "no"])
1506 [AS_HELP_STRING([--disable-lua],
1507 [disable LUA scripting support (default enabled)])])
1508 if test "${enable_lua}" != "no"
1510 PKG_CHECK_MODULES(LUA, lua5.1,
1513 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua >= 5.1 instead])
1514 PKG_CHECK_MODULES(LUA, lua >= 5.1,
1517 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying manual detection instead])
1519 AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1522 AC_CHECK_LIB( lua5.1 , luaL_newstate,
1523 [LUA_LIBS="-llua5.1"],
1524 AC_CHECK_LIB( lua51 , luaL_newstate,
1525 [LUA_LIBS="-llua51"],
1526 AC_CHECK_LIB( lua , luaL_newstate,
1534 if test "x${have_lua}" = "xyes" ; then
1535 VLC_ADD_LIBS([lua],[$LUA_LIBS])
1536 VLC_ADD_CFLAGS([lua],[$LUA_CFLAGS])
1538 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.])
1540 AC_ARG_VAR([LUAC], [LUA byte compiler])
1541 AC_PATH_PROGS(LUAC,[${LUAC} luac], [false])
1542 AS_IF([test "${LUAC}" = "false"], [
1543 AC_MSG_ERROR([Could not find the LUA byte compiler.])
1545 AS_IF([test -f ${CONTRIB_DIR}/lib/liblua.a -a `echo|${LUAC} -o - -|od -j 8 -N 2 -t x2|head -n 1|cut -d' ' -f2` != 0404], [
1546 AC_MSG_ERROR([You need 32-bits luac when using using lua from contrib.])
1549 AM_CONDITIONAL(BUILD_LUA, [test "${have_lua}" = "yes"])
1555 AC_ARG_ENABLE(httpd,
1556 [AS_HELP_STRING([--disable-httpd],
1557 [disable the built-in HTTP server (default enabled)])])
1558 if test "${enable_httpd}" != "no"
1560 AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP daemon support)
1562 AM_CONDITIONAL(BUILD_HTTPD, [test "${enable_httpd}" != "no"])
1566 dnl VideoLAN manager
1569 [AS_HELP_STRING([--disable-vlm],
1570 [disable the stream manager (default enabled)])],,
1571 [enable_vlm="${enable_sout}"])
1572 AS_IF([test "${enable_vlm}" != "no"], [
1573 AS_IF([test "${enable_sout}" = "no"], [
1574 AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1576 AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1578 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1585 EXTEND_HELP_STRING([Input plugins:])
1590 AC_ARG_ENABLE(live555,
1591 [AS_HELP_STRING([--enable-live555],
1592 [enable RTSP input through live555 (default enabled)])])
1594 AS_IF([test "${enable_live555}" != "no" -a -n "${CXX}"], [
1598 dnl detect include paths
1599 AS_IF([test -f "${CONTRIB_DIR}/include/UsageEnvironment.hh"], [
1600 CPPFLAGS_live555="-I${CONTRIB_DIR}/include/liveMedia -I${CONTRIB_DIR}/include/groupsock -I${CONTRIB_DIR}/include/BasicUsageEnvironment -I${CONTRIB_DIR}/include/UsageEnvironment"
1602 AS_IF([test ${SYS} != "os2"], [
1603 LIVE555_PREFIX=${LIVE555_PREFIX-"/usr"}
1604 CPPFLAGS_live555="-I${LIVE555_PREFIX}/include/liveMedia -I${LIVE555_PREFIX}/include/groupsock -I${LIVE555_PREFIX}/include/BasicUsageEnvironment -I${LIVE555_PREFIX}/include/UsageEnvironment"
1606 LIVE555_PREFIX=${LIVE555_PREFIX-"/usr/lib/live"}
1607 CPPFLAGS_live555="-I${LIVE555_PREFIX}/liveMedia/include -I${LIVE555_PREFIX}/groupsock/include -I${LIVE555_PREFIX}/BasicUsageEnvironment/include -I${LIVE555_PREFIX}/UsageEnvironment/include"
1608 LDFLAGS_live555="-L${LIVE555_PREFIX}/liveMedia -L${LIVE555_PREFIX}/groupsock -L${LIVE555_PREFIX}/BasicUsageEnvironment -L${LIVE555_PREFIX}/UsageEnvironment"
1613 AS_IF([test "${SYS}" = "solaris"], [
1614 CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1616 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1617 LDFLAGS="${LDFLAGS} ${LDFLAGS_live555}"
1620 AC_CACHE_CHECK([for live555 version 1324598400 or later], [ac_cv_live555], [
1621 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
1622 [#include <liveMedia_version.hh>
1623 #if !defined (LIVEMEDIA_LIBRARY_VERSION_INT) || (LIVEMEDIA_LIBRARY_VERSION_INT < 1324598400)
1633 AS_IF([test "$ac_cv_live555" = "no"], [
1634 AC_MSG_WARN([liveMedia is missing or its installed version is too old:
1635 Version 2011.12.23 or later is required to proceed.
1636 You can get an updated one from http://www.live555.com/liveMedia .])
1637 AS_IF([test -n "${enable_live555}"], [
1638 AC_MSG_ERROR([Update live555 or pass --disable-live555 to disable RTSP input support.])
1641 other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1642 other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
1643 AS_IF([test "${SYS}" = "mingw32"], [
1644 # add ws2_32 for closesocket, select, recv
1645 other_libs="$other_libs -lws2_32"
1648 dnl We need to check for pic because live555 don't provide shared libs
1649 dnl and we want to build a plugins so we need -fPIC on some arch.
1650 VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1651 VLC_ADD_LDFLAGS([live555], [${LDFLAGS_live555}])
1652 AC_CHECK_LIB(liveMedia_pic, main, [
1653 VLC_ADD_PLUGIN([live555])
1654 VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
1656 AC_CHECK_LIB(liveMedia, main, [
1657 VLC_ADD_PLUGIN([live555])
1658 VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1659 ],[],[${other_libs}])],[${other_libs_pic}])
1666 dnl IIDC and DV FireWire input modules
1668 PKG_ENABLE_MODULES_VLC([DC1394], [], [libdc1394-2 >= 2.1.0], [IIDC FireWire input module], [auto])
1669 PKG_ENABLE_MODULES_VLC([DV1394], [], [libraw1394 >= 2.0.1 libavc1394 >= 0.5.3], [DV FireWire input module], [auto])
1672 dnl - linsys modules: access module check for libzvbi
1674 AC_ARG_ENABLE(linsys,
1675 [AS_HELP_STRING([--enable-linsys],
1676 [Linux Linear Systems Ltd. SDI and HD-SDI input cards (default enabled)])])
1677 if test "$SYS" = "linux" -a "${enable_linsys}" != "no"; then
1678 VLC_ADD_PLUGIN([linsys_hdsdi])
1679 PKG_CHECK_MODULES(LINSYS_SDI, [zvbi-0.2 >= 0.2.28],
1680 [ VLC_ADD_LIBS([linsys_sdi],[$LINSYS_SDI_LIBS])
1681 VLC_ADD_CFLAGS([linsys_sdi],[$LINSYS_SDI_CFLAGS])
1682 VLC_ADD_PLUGIN([linsys_sdi]) ],
1683 [AC_MSG_WARN([${LINSYS_SDI_PKG_ERRORS}.])]
1688 dnl dvdread module: check for libdvdread
1690 PKG_ENABLE_MODULES_VLC([DVDREAD], [], [dvdread], [dvdread input module], [auto])
1693 dnl libdvdnav plugin
1695 AC_ARG_ENABLE(dvdnav,
1696 [AS_HELP_STRING([--disable-dvdnav],
1697 [disable DVD navigation with libdvdnav (default auto)])])
1698 if test "${enable_dvdnav}" != "no"
1700 PKG_CHECK_MODULES(DVDNAV, dvdnav, [
1701 VLC_ADD_PLUGIN([dvdnav])
1702 VLC_ADD_CFLAGS([dvdnav],[${DVDNAV_CFLAGS}])
1703 VLC_ADD_LIBS([dvdnav],[${DVDNAV_LIBS}])
1704 AC_CHECK_LIB(dvdnav, dvdnav_get_video_resolution,
1705 AC_DEFINE(HAVE_DVDNAV_GET_VIDEO_RESOLUTION, 1, [Define if you have dvdnav_get_video_resolution.]),
1706 [], [${LIBS_dvdnav}])
1707 AC_CHECK_LIB(dvdnav, dvdnav_describe_title_chapters,
1708 AC_DEFINE(HAVE_DVDNAV_DESCRIBE_TITLE_CHAPTERS, 1, [Define if you have dvdnav_describe_title_chapters.]),
1709 [], [${LIBS_dvdnav}])],
1710 [AC_MSG_WARN([${DVDNAV_PKG_ERRORS}.])])
1714 dnl Blu-ray Disc Support with libbluray
1716 PKG_ENABLE_MODULES_VLC([BLURAY], [libbluray], [libbluray >= 0.2.1], (libbluray for Blu-ray disc support ) )
1719 dnl OpenCV wrapper and example filters
1721 PKG_ENABLE_MODULES_VLC([OPENCV], [opencv_example opencv_wrapper], [opencv > 2.0], (OpenCV (computer vision) filter), [auto])
1725 dnl libsmbclient plugin
1727 PKG_ENABLE_MODULES_VLC([SMBCLIENT], [access_smb], [smbclient], (SMB/CIFS support), [auto])
1731 dnl sftp access support
1733 PKG_ENABLE_MODULES_VLC([SFTP], [access_sftp], [libssh2], (support SFTP file transfer via libssh2), [auto])
1738 AC_ARG_ENABLE(v4l2, [AS_HELP_STRING([--disable-v4l2],
1739 [disable Video4Linux version 2 (default auto)])])
1741 AS_IF([test "$enable_v4l2" != "no"], [
1742 AC_CHECK_HEADERS([linux/videodev2.h sys/videoio.h], [
1746 AM_CONDITIONAL(HAVE_V4L2, [test "${have_v4l2}" != "no"])
1749 dnl special access module for Blackmagic SDI cards
1751 AC_ARG_ENABLE(decklink,
1752 [AS_HELP_STRING([--disable-decklink],
1753 [disable Blackmagic DeckLink SDI input (default auto)])])
1754 AC_ARG_WITH(decklink_sdk,
1755 [AS_HELP_STRING[--with-decklink-sdk=DIR],
1756 [ location of Blackmagic DeckLink SDI SDK])])
1758 if test "${enable_decklink}" != "no"
1760 if test "${with_decklink_sdk}" != "no" -a -n "${with_decklink_sdk}"
1762 VLC_ADD_CPPFLAGS([decklink decklinkoutput],[-I${with_decklink_sdk}/include])
1765 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_decklink}"
1767 AC_CHECK_HEADERS(DeckLinkAPIDispatch.cpp, [
1770 AC_MSG_WARN(Blackmagic DeckLink SDI include files not found, decklink disabled)
1775 AM_CONDITIONAL(HAVE_DECKLINK, [ test "${have_decklink}" != "no" ])
1779 dnl gnomeVFS access module
1781 PKG_ENABLE_MODULES_VLC([GNOMEVFS], [access_gnomevfs], [gnome-vfs-2.0], [GnomeVFS access module], [auto])
1786 PKG_ENABLE_MODULES_VLC([VCDX], [vcdx], [libcdio >= 0.78.2 libiso9660 >= 0.72 libvcdinfo >= 0.7.22], [navigate VCD with libvcdinfo], [no])
1789 dnl Built-in CD-DA and VCD module
1792 [AS_HELP_STRING([--disable-vcd],
1793 [disable built-in VCD and CD-DA support (default enabled)])])
1795 AC_ARG_ENABLE(libcddb,
1796 [AS_HELP_STRING([--disable-libcddb],
1797 [disable CDDB for Audio CD (default enabled)])])
1799 if test "${enable_vcd}" != "no"
1801 AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
1802 AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
1804 VLC_ADD_PLUGIN([vcd cdda])
1809 AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
1810 AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
1812 VLC_ADD_PLUGIN([vcd cdda])
1813 AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
1818 AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
1819 AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
1821 VLC_ADD_PLUGIN([vcd cdda])
1822 AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
1827 if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32" -o "${SYS}" = "os2"
1829 VLC_ADD_PLUGIN([vcd cdda])
1832 if test "${SYS}" = "darwin"
1834 VLC_ADD_PLUGIN([vcd cdda])
1835 VLC_ADD_LIBS([vcd vcdx cdda],[-Wl,-framework,IOKit,-framework,CoreFoundation])
1836 VLC_ADD_LIBS([vcdx cdda],[-liconv])
1839 if test "$enable_libcddb" != "no"; then
1840 PKG_CHECK_MODULES(LIBCDDB, [libcddb >= 0.9.5], [
1842 AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
1843 VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
1844 VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
1846 [AC_MSG_WARN([${LIBCDDB_PKG_ERRORS}: CDDB access disabled.])
1854 AC_CACHE_CHECK([for Linux DVB version 5.1], [ac_cv_linux_dvb_5_1], [
1855 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
1856 [#include <linux/dvb/version.h>
1857 #if (DVB_API_VERSION < 5)
1858 # error Linux DVB API v3.2 and older are not supported.
1860 #if (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR < 1)
1861 # error Linux DVB API v5.0 is unsupported. Please update.
1864 ac_cv_linux_dvb_5_1=yes
1866 ac_cv_linux_dvb_5_1=no
1868 AM_CONDITIONAL([HAVE_LINUX_DVB], [test "$ac_cv_linux_dvb_5_1" = "yes"])
1871 dnl Screen capture module
1873 AC_ARG_ENABLE(screen,
1874 [AS_HELP_STRING([--enable-screen],
1875 [disable screen capture (default enabled)])])
1876 if test "${enable_screen}" != "no"; then
1877 if test "${SYS}" = "darwin"; then
1878 AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
1879 VLC_ADD_PLUGIN([screen])
1883 AM_CONDITIONAL(HAVE_MAC_SCREEN, [test "${SYS}" = "darwin" -a "x${enable_screen}" != "xno"])
1886 dnl VNC/RFB access module
1888 PKG_ENABLE_MODULES_VLC([LIBVNC], [libvnc], [libvncclient >= 0.9.9], (VNC/rfb client support), [auto])
1890 dnl RDP/Remote Desktop access module
1892 PKG_ENABLE_MODULES_VLC([LIBFREERDP], [rdp], [freerdp >= 1.0.1], (RDP/Remote Desktop client support) )
1895 dnl Real RTSP plugin
1897 AC_ARG_ENABLE(realrtsp,
1898 [ --enable-realrtsp Real RTSP module (default disabled)])
1899 if test "${enable_realrtsp}" = "yes"; then
1900 VLC_ADD_PLUGIN([realrtsp])
1905 AC_ARG_ENABLE(macosx-eyetv,
1906 [ --enable-macosx-eyetv Mac OS X EyeTV (TNT Tuner) module (default enabled on Mac OS X)])
1907 if test "x${enable_macosx_eyetv}" != "xno" &&
1908 (test "${SYS}" = "darwin" || test "${enable_macosx_eyetv}" = "yes")
1910 VLC_ADD_LIBS([access_eyetv], [-Wl,-framework,Foundation])
1911 VLC_ADD_PLUGIN([access_eyetv])
1916 AC_ARG_ENABLE(macosx-qtkit,
1917 [ --enable-macosx-qtkit Mac OS X qtcapture (video) and qtsound (audio) module (default enabled on Mac OS X)])
1918 if test "x${enable_macosx_qtkit}" != "xno" &&
1919 (test "${SYS}" = "darwin" || test "${enable_macosx_qtkit}" = "yes")
1921 VLC_ADD_PLUGIN([qtcapture])
1922 VLC_ADD_PLUGIN([qtsound])
1924 AM_CONDITIONAL(HAVE_QTKIT, [test "${SYS}" = "darwin" -a "x${enable_macosx_qtkit}" != "xno"])
1931 EXTEND_HELP_STRING([Mux/Demux plugins:])
1934 dnl libdvbpsi check for ts mux/demux
1937 PKG_WITH_MODULES([DVBPSI], [libdvbpsi], [have_dvbpsi="yes"])
1938 AM_CONDITIONAL(HAVE_DVBPSI, [test "${have_dvbpsi}" = "yes"])
1942 dnl GME demux plugin
1945 [AS_HELP_STRING([--enable-gme],
1946 [use Game Music Emu (default auto)])])
1947 AS_IF([test "${enable_gme}" != "no"], [
1948 AC_CHECK_HEADER([gme/gme.h], [
1949 VLC_ADD_LIBS([gme], [-lgme])
1950 VLC_ADD_PLUGIN([gme])
1952 AS_IF([test "x${enable_gme}" != "x"], [
1953 AC_MSG_ERROR([GME cannot be found. Please install the development files.])
1963 [AS_HELP_STRING([--enable-sid],[C64 sid demux support (default auto)])])
1964 AS_IF([test "${enable_sid}" != "no"], [
1965 PKG_CHECK_MODULES(SID, [libsidplay2], [
1967 oldCPPFLAGS="$CPPFLAGS"
1968 CPPFLAGS="$CPPFLAGS $SID_CFLAGS"
1969 AC_CHECK_HEADER([sidplay/builders/resid.h], [
1970 VLC_ADD_PLUGIN([sid])
1971 VLC_ADD_CFLAGS([sid], [$SID_CFLAGS])
1972 VLC_ADD_LIBS([sid], [$SID_LIBS] [-lresid-builder])
1974 AS_IF([test -n "${enable_sid}"],
1975 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
1976 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
1979 CPPFLAGS="$oldCPPFLAGS"
1982 AS_IF([test "x${enable_sid}" = "xyes"],
1983 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
1984 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
1991 dnl ogg demux plugin
1993 PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto])
1994 if test "${enable_sout}" != "no"; then
1995 PKG_ENABLE_MODULES_VLC([MUX_OGG], [], [ogg >= 1.0], [Ogg mux support], [auto])
1996 dnl Check for libshout
1997 PKG_ENABLE_MODULES_VLC([SHOUT], [access_output_shout], [shout >= 2.1], [libshout output plugin], [auto])
2001 dnl matroska demux plugin
2004 [AS_HELP_STRING([--disable-mkv],
2005 [do not use libmatroska (default auto)])])
2006 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2008 AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2009 AC_MSG_CHECKING(for libebml version >= 1.0.0)
2011 [#include <ebml/EbmlVersion.h>
2012 #ifdef LIBEBML_VERSION
2013 #if LIBEBML_VERSION >= 0x010000
2017 [AC_MSG_RESULT([yes])
2018 AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2019 AC_MSG_CHECKING(for libmatroska version >= 1.0.0)
2021 [#include <matroska/KaxVersion.h>
2022 #ifdef LIBMATROSKA_VERSION
2023 #if LIBMATROSKA_VERSION >= 0x010000
2027 [AC_MSG_RESULT([yes])
2028 AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2029 VLC_ADD_CXXFLAGS([mkv],[])
2030 AC_CHECK_LIB(ebml_pic, main, [
2031 VLC_ADD_PLUGIN([mkv])
2032 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2034 AC_CHECK_LIB(ebml, main, [
2035 VLC_ADD_PLUGIN([mkv])
2036 VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2041 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.])
2045 [AC_MSG_RESULT([no])
2046 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.])
2053 dnl modplug demux plugin
2056 [AS_HELP_STRING([--disable-mod],
2057 [do not use libmodplug (default auto)])])
2058 if test "${enable_mod}" != "no" ; then
2059 PKG_CHECK_MODULES(LIBMODPLUG, [libmodplug >= 0.8.4 libmodplug != 0.8.8], [
2060 VLC_ADD_PLUGIN([mod])
2061 VLC_ADD_CXXFLAGS([mod],[$LIBMODPLUG_CFLAGS])
2062 VLC_ADD_LIBS([mod],[$LIBMODPLUG_LIBS])
2064 AS_IF([test -n "${enable_mod}"],
2065 [AC_MSG_ERROR([${LIBMODPLUG_PKG_ERRORS}.])],
2066 [AC_MSG_WARN([${LIBMODPLUG_PKG_ERRORS}.])])
2071 dnl mpc demux plugin
2074 [AS_HELP_STRING([--disable-mpc], [do not use libmpcdec (default auto)])])
2075 if test "${enable_mpc}" != "no"
2077 AC_CHECK_HEADERS([mpc/mpcdec.h], [
2078 VLC_ADD_PLUGIN([mpc])
2079 VLC_ADD_LIBS([mpc],[-lmpcdec])],
2080 [AC_CHECK_HEADERS([mpcdec/mpcdec.h], [
2081 VLC_ADD_PLUGIN([mpc])
2082 VLC_ADD_LIBS([mpc],[-lmpcdec])])])
2089 EXTEND_HELP_STRING([Codec plugins:])
2094 AC_ARG_ENABLE(wma-fixed,
2095 [ --enable-wma-fixed libwma-fixed module (default disabled)])
2096 if test "${enable_wma_fixed}" = "yes"
2098 VLC_ADD_PLUGIN([wma_fixed])
2102 dnl shine fixed point mp3 encoder
2104 AC_ARG_ENABLE(shine,
2105 [ --enable-shine shine mp3 encoding module (default disabled)])
2106 if test "${enable_shine}" = "yes"
2108 VLC_ADD_PLUGIN([shine])
2112 dnl openmax il codec plugin
2114 AC_ARG_ENABLE(omxil,
2115 [ --enable-omxil openmax il codec module (default disabled)])
2116 if test "${enable_omxil}" = "yes"
2118 VLC_ADD_PLUGIN([omxil])
2122 dnl openmax il vout plugin
2124 AC_ARG_ENABLE(omxil-vout,
2125 [ --enable-omxil-vout openmax il video output module (default disabled)])
2126 if test "${enable_omxil_vout}" = "yes"
2128 VLC_ADD_PLUGIN([omxil_vout])
2132 dnl raspberry pi openmax il configuration
2134 AC_ARG_ENABLE(rpi-omxil,
2135 [ --enable-rpi-omxil openmax il configured for raspberry pi (default disabled)])
2136 if test "${enable_rpi_omxil}" = "yes"
2138 VLC_ADD_PLUGIN([omxil omxil_vout])
2139 VLC_ADD_CFLAGS([omxil omxil_vout],[-DRPI_OMX])
2143 dnl CrystalHD codec plugin
2145 AC_ARG_ENABLE(crystalhd,
2146 [ --enable-crystalhd crystalhd codec plugin (default auto)])
2147 if test "${enable_crystalhd}" != "no"; then
2148 AC_CHECK_HEADER(libcrystalhd/libcrystalhd_if.h, [
2149 VLC_ADD_PLUGIN([crystalhd])
2150 VLC_ADD_LIBS([crystalhd], [-lcrystalhd])
2152 if test "${SYS}" = "mingw32" ; then
2153 AC_CHECK_HEADERS(libcrystalhd/bc_dts_defs.h, [
2154 VLC_ADD_PLUGIN([crystalhd])
2155 AC_CHECK_HEADERS(libcrystalhd/bc_drv_if.h, [
2156 VLC_ADD_LIBS([crystalhd], [-lbcmDIL])
2159 AS_IF([test x"${enable_crystalhd}" = "xyes"],
2160 [AC_MSG_ERROR("Could not find CrystalHD development headers")],
2161 [AC_MSG_WARN("Could not find CrystalHD development headers")])
2162 ],[#define __LINUX_USER__
2163 #include <libcrystalhd/bc_dts_types.h>
2167 #include <libcrystalhd/bc_dts_types.h>
2175 [ --enable-mad libmad module (default enabled)])
2176 if test "${enable_mad}" != "no"
2179 [ --with-mad=PATH path to libmad],[],[])
2180 if test "${with_mad}" != "no" -a -n "${with_mad}"
2182 VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2183 VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2186 AC_ARG_WITH(mad-tree,
2187 [ --with-mad-tree=PATH mad tree for static linking],[],[])
2188 if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2190 real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2191 if test -z "${real_mad_tree}"
2193 dnl The given directory can't be found
2195 AC_MSG_ERROR([${with_mad_tree} directory does not exist])
2197 dnl Use a custom libmad
2198 AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2199 if test -f ${real_mad_tree}/mad.h
2202 VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2203 VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2205 LDFLAGS="${LDFLAGS} ${LIBS_mpgatofixed32}"
2206 AC_CHECK_LIB(mad, mad_bit_init, [
2207 VLC_ADD_PLUGIN([mpgatofixed32])
2208 VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2209 ],[ AC_MSG_ERROR([the specified tree has not been compiled ])
2214 AC_MSG_ERROR([the specified tree does not have mad.h])
2218 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_mpgatofixed32}"
2219 LDFLAGS="${LDFLAGS} ${LIBS_mpgatofixed32}"
2220 AC_CHECK_HEADERS(mad.h, ,
2221 [ 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.]) ])
2222 AC_CHECK_LIB(mad, mad_bit_init, [
2223 VLC_ADD_PLUGIN([mpgatofixed32])
2224 VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2225 [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2231 AC_ARG_ENABLE(merge-ffmpeg,
2232 [ --enable-merge-ffmpeg merge FFmpeg-based plugins (default disabled)],, [
2233 enable_merge_ffmpeg="no"
2235 AM_CONDITIONAL([MERGE_FFMPEG], [test "$enable_merge_ffmpeg" != "no"])
2238 LDFLAGS="${LDFLAGS} -Wl,-Bsymbolic"
2239 AC_CACHE_CHECK([if linker supports -Bsymbolic],
2240 [ac_cv_ld_bsymbolic],
2241 [AC_TRY_LINK([],,ac_cv_ld_bsymbolic=yes,ac_cv_ld_bsymbolic=no)])
2245 dnl avcodec decoder/encoder plugin
2247 AC_ARG_ENABLE(avcodec,
2248 [ --enable-avcodec libavcodec codec (default enabled)])
2249 AS_IF([test "${enable_avcodec}" != "no"], [
2250 PKG_CHECK_MODULES(AVCODEC,[libavcodec >= 53.34.0 libavutil >= 51.22.0], [
2251 PKG_CHECK_EXISTS([libavcodec < 56],, [
2252 AC_MSG_ERROR([libavcodec versions 56 and later are not supported yet.])
2255 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2256 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2257 AC_CHECK_HEADERS(libavcodec/avcodec.h)
2258 AC_CHECK_HEADERS(libavutil/avutil.h)
2259 VLC_ADD_PLUGIN([avcodec])
2260 VLC_ADD_LIBS([avcodec],[$AVCODEC_LIBS])
2261 AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2262 VLC_ADD_LIBS([avcodec],[-Wl,-Bsymbolic])
2264 VLC_ADD_CFLAGS([avcodec],[$AVCODEC_CFLAGS])
2268 AC_MSG_ERROR([${AVCODEC_PKG_ERRORS}. Pass --disable-avcodec to ignore this error.])
2275 dnl libva needs avcodec
2277 AC_ARG_ENABLE(libva,
2278 [ --enable-libva VAAPI GPU decoding support (libVA) (default auto)])
2280 AS_IF([test "${enable_libva}" = "yes" -a "${have_avcodec}" != "yes" ], [
2281 AC_MSG_ERROR([--enable-libva and --disable-avcodec options are mutually exclusive. Use --enable-avcodec.])
2283 have_avcodec_vaapi="no"
2284 AS_IF([test "${enable_libva}" != "no" -a "${have_avcodec}" == "yes"], [
2285 PKG_CHECK_MODULES(LIBVA, [libva libva-x11], [
2287 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2288 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2289 AC_CHECK_HEADERS(libavcodec/vaapi.h, [
2290 AC_MSG_NOTICE([VAAPI acceleration activated])
2291 have_avcodec_vaapi="yes"
2293 AS_IF([test -n "${enable_libva}"], [
2294 AC_MSG_ERROR([libva is present but libavcodec/vaapi.h is missing])
2296 AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing ])
2301 AS_IF([test -n "${enable_libva}"], [
2302 AC_MSG_ERROR([${LIBVA_PKG_ERRORS}.])
2304 AC_MSG_WARN([${LIBVA_PKG_ERRORS}.])
2308 AM_CONDITIONAL([HAVE_AVCODEC_VAAPI], [test "${have_avcodec_vaapi}" = "yes"])
2311 dnl dxva2 needs avcodec
2313 AC_ARG_ENABLE(dxva2,
2314 [ --enable-dxva2 DxVA2 GPU decoding support (default auto)])
2316 have_avcodec_dxva2="no"
2317 AS_IF([test "${enable_dxva2}" != "no"], [
2318 if test "${SYS}" = "mingw32"; then
2319 AS_IF([test "x${have_avcodec}" = "xyes"], [
2320 AC_CHECK_HEADERS(dxva2api.h,
2322 AC_CHECK_HEADERS(libavcodec/dxva2.h, [
2323 AC_MSG_NOTICE([DxVA2 acceleration activated])
2324 have_avcodec_dxva2="yes"
2326 AS_IF([test "${enable_dxva2}" = "yes"],
2327 [AC_MSG_ERROR([dxva2 is present but libavcodec/dxva2.h is missing])],
2328 [AC_MSG_WARN([dxva2 is present but libavcodec/dxva2.h is missing ])])
2329 ], [#undef _WIN32_WINNT
2330 /* DXVA2 is only available in Vista and above */
2331 #define _WIN32_WINNT 0x600])
2333 AS_IF([test "${enable_dxva2}" = "yes"],
2334 [AC_MSG_ERROR([Could not find required dxva2api.h])],
2335 [AC_MSG_WARN([dxva2api.h not found])])
2338 AS_IF([test "x${enable_dxva2}" != "x"], [
2339 AC_MSG_ERROR([--enable-dxva2 and --disable-avcodec options are mutually exclusive.])
2344 AM_CONDITIONAL([HAVE_AVCODEC_DXVA2], [test "${have_avcodec_dxva2}" = "yes"])
2347 dnl vda needs avcodec
2350 [ --enable-vda VDA support (default auto)])
2352 have_avcodec_vda="no"
2353 AS_IF([test "${enable_vda}" != "no"], [
2354 if test "${SYS}" = "darwin"; then
2355 AS_IF([test "x${have_avcodec}" = "xyes"], [
2356 AC_CHECK_HEADERS(VideoDecodeAcceleration/VDADecoder.h,
2358 AC_CHECK_HEADERS(libavcodec/vda.h, [
2359 have_avcodec_vda="yes"
2361 AS_IF([test "${enable_vda}" = "yes"],
2362 [AC_MSG_ERROR([vda is present but libavcodec/vda.h is missing])],
2363 [AC_MSG_WARN([vda is present but libavcodec/vda.h is missing ])])
2366 AS_IF([test "${enable_vda}" = "yes"],
2367 [AC_MSG_ERROR([Could not find required VideoDecodeAcceleration/VDADecoder.h])],
2368 [AC_MSG_WARN([VideoDecodeAcceleration/VDADecoder.h not found])])
2371 AS_IF([test "x${enable_vda}" != "x"], [
2372 AC_MSG_ERROR([--enable-vda and --disable-avcodec options are mutually exclusive.])
2377 AM_CONDITIONAL([HAVE_AVCODEC_VDA], [test "${have_avcodec_vda}" = "yes"])
2380 dnl avformat demuxer/muxer plugin
2383 AC_ARG_ENABLE(avformat,
2384 [ --enable-avformat libavformat containers (default enabled)],, [
2385 enable_avformat="${have_avcodec}"
2387 if test "${enable_avformat}" != "no"
2389 PKG_CHECK_MODULES(AVFORMAT,[libavformat >= 53.21.0 libavcodec libavutil],
2392 CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2393 CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2394 AC_CHECK_HEADERS(libavformat/avformat.h libavformat/avio.h)
2395 AC_CHECK_HEADERS(libavutil/avutil.h)
2396 AS_IF([test "$enable_merge_ffmpeg" = "no"], [
2397 VLC_ADD_PLUGIN([avformat access_avio])
2398 VLC_ADD_LIBS([access_avio],[$AVFORMAT_LIBS $AVUTIL_LIBS])
2399 VLC_ADD_CFLAGS([access_avio],[$AVFORMAT_CFLAGS $AVUTIL_CFLAGS])
2400 AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2401 VLC_ADD_LDFLAGS([avformat access_avio],[-Wl,-Bsymbolic])
2404 VLC_ADD_LIBS([avcodec],[$AVFORMAT_LIBS $AVUTIL_LIBS])
2405 VLC_ADD_CFLAGS([avcodec],[$AVFORMAT_CFLAGS $AVUTIL_CFLAGS])
2409 AC_MSG_ERROR([${AVFORMAT_PKG_ERRORS}. Pass --disable-avformat to ignore this error.])
2414 dnl swscale image scaling and conversion plugin
2417 AC_ARG_ENABLE(swscale,
2418 AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
2419 (default enabled)]))
2420 if test "${enable_swscale}" != "no"
2422 PKG_CHECK_MODULES(SWSCALE,[libswscale],
2425 CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
2426 CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
2427 AC_CHECK_HEADERS(libswscale/swscale.h)
2428 VLC_ADD_PLUGIN([swscale])
2429 VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
2430 VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
2431 AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2432 VLC_ADD_LIBS([swscale],[-Wl,-Bsymbolic])
2436 AC_MSG_ERROR([${SWSCALE_PKG_ERRORS}. Pass --disable-swscale to ignore this error. Proper software scaling and some video chroma conversion will be missing.])
2444 AC_ARG_ENABLE(postproc,
2445 [ --enable-postproc libpostproc image post-processing (default auto)])
2446 if test "${enable_postproc}" != "no"
2448 PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
2451 CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
2452 CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
2453 AC_CHECK_HEADERS(postproc/postprocess.h)
2454 VLC_ADD_PLUGIN([postproc])
2455 VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS $AVUTIL_LIBS])
2456 VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS $AVUTIL_CFLAGS])
2459 AC_MSG_WARN([${POSTPROC_PKG_ERRORS}.])
2464 dnl faad decoder plugin
2467 [ --enable-faad faad codec (default auto)])
2468 if test "${enable_faad}" != "no"; then
2469 AC_ARG_WITH(faad-tree, [ --with-faad-tree=PATH faad tree for static linking])
2470 if test -n "${with_faad_tree}"; then
2471 AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
2472 real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
2473 if test -z "${real_faad_tree}"; then
2474 dnl The given directory can't be found
2476 AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
2478 if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"; then
2479 dnl Use the custom faad
2480 AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
2481 VLC_ADD_PLUGIN([faad])
2482 VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
2483 VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
2485 dnl The given libfaad wasn't built
2487 AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
2491 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_faad}"
2492 LDFLAGS="${LDFLAGS} ${LIBS_faad}"
2493 AC_CHECK_HEADERS(faad.h,
2494 [ AC_CHECK_LIB(faad, faacDecOpen, [
2495 VLC_ADD_PLUGIN([faad])
2496 VLC_ADD_LIBS([faad],[-lfaad]) ], [
2497 AC_CHECK_LIB(faad, NeAACDecOpen, [
2498 VLC_ADD_PLUGIN([faad])
2499 VLC_ADD_LIBS([faad],[-lfaad]) ], [
2500 AS_IF([test "${enable_faad}" = "yes"],
2501 [ AC_MSG_ERROR([Cannot find libfaad library...]) ],
2502 [ AC_MSG_WARN([Cannot find libfaad library...]) ]) ]) ])
2503 ] , [ AS_IF([test "${enable_faad}" = "yes"],
2504 [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ],
2505 [ AC_MSG_WARN([Cannot find development headers for libfaad...]) ]) ])
2511 dnl twolame encoder plugin
2513 PKG_ENABLE_MODULES_VLC([TWOLAME], [], [twolame], [MPEG Audio Layer 2 encoder], [auto], [], [], [ -DLIBTWOLAME_STATIC])
2516 dnl fdk-aac encoder plugin
2518 PKG_ENABLE_MODULES_VLC([FDKAAC], [], [fdk-aac], [FDK-AAC encoder], [disabled])
2521 dnl QuickTime plugin
2523 AC_ARG_ENABLE(quicktime,
2524 [ --enable-quicktime QuickTime module (deprecated)])
2525 if test "${enable_quicktime}" = "yes"; then
2526 if test "${SYS}" = "mingw32"; then
2527 VLC_ADD_PLUGIN([quicktime])
2529 AC_CHECK_HEADERS(QuickTime/QuickTime.h,
2530 [ VLC_ADD_PLUGIN([quicktime])
2531 VLC_ADD_LIBS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
2532 ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
2537 dnl A52/AC3 decoder plugin
2540 [ --enable-a52 A/52 support with liba52 (default enabled)])
2541 if test "${enable_a52}" != "no"
2544 [ --with-a52=PATH a52 headers and libraries])
2545 AC_ARG_WITH(a52-tree,
2546 [ --with-a52-tree=PATH a52dec tree for static linking ],[],[])
2547 if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
2549 real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
2550 if test -z "${real_a52_tree}"
2552 dnl The given directory can't be found
2554 AC_MSG_ERROR([${with_a52_tree} directory does not exist])
2556 dnl Use a custom a52dec
2557 AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
2558 if test -f ${real_a52_tree}/include/a52.h
2561 VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
2562 VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
2564 LDFLAGS="${LDFLAGS} ${LIBS_a52tofloat32}"
2565 AC_CHECK_LIB(a52, a52_free, [
2566 VLC_ADD_PLUGIN([a52tofloat32])
2567 VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
2568 VLC_ADD_LIBS([a52tofloat32],[-la52])
2570 if test -f ${real_a52_tree}/liba52/.libs/liba52.a
2572 AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
2574 AC_MSG_ERROR([the specified tree has not been compiled])
2579 AC_MSG_ERROR([the specified tree does not have a52.h])
2582 if test -z "${with_a52}"
2587 LDFLAGS_test="-L${with_a52}/lib"
2588 CPPFLAGS_test="-I${with_a52}/include"
2591 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
2592 LDFLAGS="${LDFLAGS} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
2593 AC_CHECK_HEADERS(a52dec/a52.h, [
2594 AC_CHECK_LIB(a52, a52_free, [
2595 VLC_ADD_PLUGIN([a52tofloat32])
2596 VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
2597 VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
2599 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.])
2602 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.])
2609 dnl DTS Coherent Acoustics decoder plugin
2611 PKG_ENABLE_MODULES_VLC([DCA], [dtstofloat32], [libdca >= 0.0.5], [DTS Coherent Acoustics support with libdca], [auto])
2616 PKG_ENABLE_MODULES_VLC([FLAC], [], [flac], [libflac decoder/encoder support], [auto])
2621 PKG_ENABLE_MODULES_VLC([LIBMPEG2], [], [libmpeg2 > 0.3.2], [libmpeg2 decoder support], [auto])
2626 PKG_ENABLE_MODULES_VLC([VORBIS], [], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
2631 AC_ARG_ENABLE(tremor,
2632 [ --enable-tremor Tremor decoder support (default disabled)])
2633 if test "${enable_tremor}" = "yes"
2635 AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
2636 VLC_ADD_PLUGIN([tremor])
2637 VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
2644 PKG_ENABLE_MODULES_VLC([SPEEX], [], [ogg speex >= 1.0.5], [Speex support], [auto])
2646 AS_IF([test "${enable_speex}" != "no"], [
2647 PKG_CHECK_MODULES([SPEEXDSP], [speexdsp], [
2650 AC_MSG_WARN([${SPEEXDSP_PKG_ERRORS}.])
2653 AM_CONDITIONAL([HAVE_SPEEXDSP], [test "$have_speexdsp" = "yes"])
2658 PKG_ENABLE_MODULES_VLC([OPUS], [], [ogg opus], [Opus support], [auto])
2661 dnl theora decoder plugin
2663 PKG_ENABLE_MODULES_VLC([THEORA], [], [ogg theoradec >= 1.0 theoraenc], [experimental theora codec], [auto])
2666 dnl dirac encoder plugin
2668 PKG_ENABLE_MODULES_VLC([DIRAC], [], [dirac >= 0.10.0], [dirac encoder], [auto])
2671 dnl schroedinger decoder plugin (for dirac format video)
2673 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [], [schroedinger-1.0 >= 1.0.10], [dirac decoder and encoder using schroedinger], [auto])
2676 dnl PNG decoder module
2679 [ --enable-png PNG support (default enabled)])
2680 AS_IF([test "${enable_png}" != "no"], [
2681 AC_CHECK_HEADERS(png.h, [
2683 LDFLAGS="${LDFLAGS} -lz $LIBM"
2684 AC_CHECK_LIB(png, png_set_rows, [
2685 VLC_ADD_LIBS([png],[-lpng -lz $LIBM])
2686 VLC_ADD_PLUGIN([png])
2693 dnl H264 encoder plugin (10-bit lib264)
2695 AC_ARG_ENABLE(x26410b,
2696 [ --enable-x26410b H264 10-bit encoding support with static libx264 (default disabled)])
2697 if test "${enable_x26410b}" != "no"; then
2698 AC_ARG_WITH(x26410b-tree,
2699 [ --with-x26410b-tree=PATH H264 10-bit encoding module with libx264 (static linking)],[],[])
2700 if test "${with_x26410b_tree}" != "no" -a -n "${with_x26410b_tree}"
2702 real_x26410b_tree="̧`cd ${with_x26410b_tree} 2>/dev/null && pwd`"
2703 if test -z "${real_x26410b_tree}"
2706 AC_MSG_ERROR([${with_x26410b_tree} directory does not exist])
2708 AC_MSG_CHECKING(for x264.h in ${real_x26410b_tree})
2709 if test -f ${with_x26410b_tree}/x264_config.h
2712 AC_MSG_CHECKING(for 10-bit build of x264)
2713 if grep -q "BIT_DEPTH.*10" ${with_x26410b_tree}/x264_config.h ;then
2715 VLC_ADD_PLUGIN([x26410b])
2716 VLC_ADD_CFLAGS([x26410b],[-I${with_x26410b_tree}])
2717 VLC_ADD_LIBS([x26410b],[-L${with_x26410b_tree} -lm -lpthread -lx264])
2720 AC_MSG_ERROR([${with_x26410b_tree} isnt build 10-bit])
2724 AC_MSG_ERROR([${with_x26410b_tree} doesnt have x264_config.h])
2727 PKG_CHECK_MODULES(X26410B, x26410b, [
2728 VLC_ADD_PLUGIN([x26410b])
2729 VLC_ADD_LDFLAGS([x26410b],[${X26410B_LIBS}])
2730 AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2731 VLC_ADD_LIBS([x26410b],[-Wl,-Bsymbolic])
2733 VLC_ADD_CFLAGS([x26410b],[${X26410B_CFLAGS}])
2734 if echo ${X26410B_LIBS} |grep -q 'pthreadGC2'; then
2735 VLC_ADD_CFLAGS([x26410b], [-DPTW32_STATIC_LIB])
2738 if test "${enable_x26410b}" = "yes"; then
2739 AC_MSG_ERROR([x26410b module doesn't work without staticly compiled libx264.a])
2747 dnl H264 encoder plugin (using libx264)
2750 [ --enable-x264 H264 encoding support with libx264 (default enabled)])
2751 if test "${enable_x264}" != "no"; then
2752 AC_ARG_WITH(x264-tree,
2753 [ --with-x264-tree=PATH x264 tree for static linking ],[],[])
2754 if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
2756 real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
2757 if test -z "${real_x264_tree}"
2759 dnl The given directory can't be found
2761 AC_MSG_ERROR([${with_x264_tree} directory does not exist])
2763 dnl Use a custom libx264
2764 AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
2765 if test -f ${real_x264_tree}/x264.h
2768 VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
2769 VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
2770 PKG_CHECK_MODULES(X264,x264, [
2771 VLC_ADD_PLUGIN([x264])
2772 VLC_ADD_LIBS([x264],[${X264_LIBS}])
2773 VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
2774 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
2775 VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
2778 AC_MSG_ERROR([the specified tree has not been compiled])
2782 AC_MSG_ERROR([the specified tree does not have x264.h])
2785 PKG_CHECK_MODULES(X264,x264 >= 0.86, [
2786 VLC_ADD_PLUGIN([x264])
2787 VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
2789 AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2790 VLC_ADD_LIBS([x264],[-Wl,-Bsymbolic])
2793 VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
2794 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
2795 VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
2798 if test "${enable_x264}" = "yes"; then
2799 AC_MSG_ERROR([${X264_PKG_ERRORS}: you may get it from http://www.videolan.org/x264.html])
2806 dnl libfluidsynth (MIDI synthetizer) plugin
2808 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [], [fluidsynth >= 1.1.2], [MIDI synthetiser with libfluidsynth], [auto])
2811 dnl Teletext Modules
2812 dnl vbi decoder plugin (using libzbvi)
2817 AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
2818 libzvbi (default enabled)]))
2820 AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
2821 zvbi) (default enabled if zvbi is absent)]))
2823 AS_IF( [test "${enable_zvbi}" != "no"],[
2824 PKG_CHECK_MODULES(ZVBI, [zvbi-0.2 >= 0.2.28],
2826 VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
2827 if test "${SYS}" = "mingw32"; then
2828 VLC_ADD_LIBS([zvbi],[ -lpthreadGC2])
2830 VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
2831 VLC_ADD_PLUGIN([zvbi])
2832 AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
2833 AS_IF( [test "${enable_telx}" = "yes"],[
2834 AC_MSG_WARN([The zvbi and telx modules are incompatible. Using zvbi.])
2837 AC_MSG_WARN([${ZVBI_PKG_ERRORS}. Enabling the telx module instead.])
2840 AS_IF( [test "${enable_telx}" != "no" ],[
2841 VLC_ADD_PLUGIN([telx])
2845 dnl libass subtitle rendering module
2847 AC_ARG_ENABLE(libass,
2848 [ --enable-libass Subtitle support using libass (default enabled)])
2849 AS_IF( [test "${enable_libass}" != "no"], [
2850 PKG_CHECK_MODULES(LIBASS, [libass >= 0.9.8],
2852 VLC_ADD_LIBS([libass],[$LIBASS_LIBS])
2853 VLC_ADD_CFLAGS([libass],[$LIBASS_CFLAGS])
2854 VLC_ADD_PLUGIN([libass])
2856 AC_CHECK_HEADERS(fontconfig/fontconfig.h,
2857 [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
2858 VLC_ADD_LIBS([libass],[-lfontconfig])
2861 AC_MSG_WARN([${LIBASS_PKG_ERRORS}.])
2866 dnl kate decoder plugin
2868 PKG_ENABLE_MODULES_VLC([KATE], [], [kate >= 0.3.0], [kate codec], [auto])
2871 dnl tiger rendering for kate decoder plugin
2873 AC_ARG_ENABLE(tiger,
2874 [ --enable-tiger Tiger rendering library for Kate streams (default auto)])
2875 AS_IF([test "${enable_tiger}" != "no"], [
2876 PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
2877 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])
2878 VLC_ADD_CFLAGS([kate],[$TIGER_CFLAGS])
2879 VLC_ADD_LIBS([kate],[$TIGER_LIBS]) ],[
2880 AS_IF([test -n "${enable_tiger}"], [
2881 AC_MSG_ERROR([${TIGER_PKG_ERRORS}.])
2891 EXTEND_HELP_STRING([Video plugins:])
2896 PKG_CHECK_MODULES([GL], [gl], [
2899 AC_CHECK_HEADER([GL/gl.h], [
2908 dnl OpenGL ES 2: depends on EGL 1.1
2909 PKG_ENABLE_MODULES_VLC([GLES2], [], [glesv2], [OpenGL ES v2 support], [disabled])
2910 dnl OpenGL ES 1: depends on EGL 1.0
2911 PKG_ENABLE_MODULES_VLC([GLES1], [], [glesv1_cm], [OpenGL ES v1 support], [disabled])
2914 [ --enable-egl OpenGL support through EGL (default disabled)],, [
2917 AS_IF([test "$enable_egl" != "no"], [
2918 PKG_CHECK_MODULES([EGL], [egl], [
2919 VLC_ADD_PLUGIN([gl])
2920 VLC_ADD_PLUGIN([egl])
2929 AC_CHECK_HEADERS(X11/Xlib.h)
2932 dnl X C Bindings modules
2935 [ --enable-xcb X11 support with XCB (default enabled)],, [
2936 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "darwin" -a "${SYS}" != "symbian"], [
2942 AC_ARG_ENABLE(xvideo,
2943 [ --enable-xvideo XVideo support (default enabled)],, [
2944 enable_xvideo="$enable_xcb"
2947 [ --enable-glx OpenGL support through GLX (default enabled)],, [
2948 enable_glx="$enable_xcb"
2952 AS_IF([test "${enable_xcb}" != "no"], [
2954 PKG_CHECK_MODULES(XCB, [xcb >= 1.6])
2956 PKG_CHECK_MODULES(XCB_SHM, [xcb-shm])
2957 PKG_CHECK_MODULES(XCB_COMPOSITE, [xcb-composite])
2959 AS_IF([test "${enable_xvideo}" != "no"], [
2960 PKG_CHECK_MODULES(XCB_XV, [xcb-xv >= 1.1.90.1], [
2961 VLC_ADD_PLUGIN([xcb_xv])
2965 PKG_CHECK_MODULES(XCB_RANDR, [xcb-randr >= 1.3], [
2966 VLC_ADD_PLUGIN([panoramix])
2967 VLC_ADD_LIBS([panoramix],[${XCB_RANDR_LIBS} ${XCB_LIBS}])
2968 VLC_ADD_CFLAGS([panoramix],[${XCB_RANDR_CFLAGS} ${XCB_CFLAGS}])
2970 AC_MSG_WARN([${XCB_RANDR_PKG_ERRORS}. Panoramix filter will not be supported.])
2973 PKG_CHECK_MODULES(XPROTO, [xproto], [
2974 VLC_ADD_PLUGIN([xwd])
2977 PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms >= 0.3.4], [
2978 VLC_ADD_PLUGIN([globalhotkeys])
2979 VLC_ADD_CFLAGS([xcb_window], [-DHAVE_XCB_KEYSYMS])
2981 AC_MSG_WARN([${XCB_KEYSYMS_PKG_ERRORS}. Hotkeys will not work.])
2984 AC_MSG_WARN([${XPROTO_PKG_ERRORS}. Hotkeys and XWD will not work.])
2987 AS_IF([test "${enable_glx}" != "no"], [
2988 AS_IF([test "${have_gl}" != "yes"], [
2989 AC_MSG_ERROR([${GL_PKG_ERRORS}. Pass --disable-glx if you do not need OpenGL X11 support.])
2991 VLC_ADD_PLUGIN([xcb_glx])
2992 VLC_ADD_PLUGIN([glx])
2993 VLC_ADD_PLUGIN([gl])
2996 AM_CONDITIONAL([HAVE_XCB], [test "${have_xcb}" = "yes"])
3000 dnl VDPAU needs X11 and avcodec
3002 AC_ARG_ENABLE(vdpau,
3003 [AS_HELP_STRING([--enable-vdpau],
3004 [VDPAU hardware decoder support (default auto)])])
3006 AS_IF([test "${enable_vdpau}" != "no" -a "${have_avcodec}" == "yes"], [
3007 PKG_CHECK_MODULES([VDPAU], [vdpau], [
3009 AS_IF([test "${no_x}" = "yes"], [
3010 AC_MSG_ERROR([VDPAU requires Xlib (X11).])
3012 AC_MSG_NOTICE([VDPAU acceleration activated])
3014 AS_IF([test -n "${enable_vdpau}"], [
3015 AC_MSG_ERROR([${VDPAU_PKG_ERRORS}.])
3019 dnl AM_CONDITIONAL([HAVE_VDPAU], [test "${have_vdpau}" = "yes"])
3021 have_avcodec_vdpau="no"
3022 AS_IF([test "${have_vdpau}" = "yes"], [
3023 PKG_CHECK_EXISTS([libavutil >= 0.52.4 libavcodec >= 54.36.0], [
3024 have_avcodec_vdpau="yes"
3026 AS_IF([test -n "${enable_vdpau}"], [
3027 AC_MSG_ERROR([libavutil >= 0.52.4 and libavcodec >= 54.36.0 are required for VDPAU decoding.])
3029 AC_MSG_WARN([libavutil >= 0.52.4 and libavcodec >= 54.36.0 are required for VDPAU decoding.])
3033 AM_CONDITIONAL([HAVE_AVCODEC_VDPAU], [test "${have_avcodec_vdpau}" = "yes"])
3040 [ --enable-sdl SDL support (default enabled)])
3041 AC_ARG_ENABLE(sdl-image,
3042 [ --enable-sdl-image SDL image support (default enabled)])
3043 if test "${enable_sdl}" != "no"
3045 PKG_CHECK_MODULES(SDL, [sdl >= 1.2.10], [
3046 # SDL on Darwin is heavily patched and can only run SDL_image
3047 if test "${SYS}" != "darwin"; then
3048 VLC_ADD_PLUGIN([vout_sdl])
3050 if test "${SYS}" != "mingw32" -a "${SYS}" != "os2"; then
3051 VLC_ADD_LIBS([vout_sdl],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3053 VLC_ADD_CFLAGS([vout_sdl],[${SDL_CFLAGS}])
3054 VLC_ADD_LIBS([vout_sdl],[${SDL_LIBS}])
3057 AS_IF([ test "${enable_sdl_image}" != "no"],[
3058 PKG_CHECK_MODULES(SDL_IMAGE, [SDL_image >= 1.2.10], [
3059 VLC_ADD_PLUGIN([sdl_image])
3060 VLC_ADD_LIBS([sdl_image],[${SDL_IMAGE_LIBS}])
3061 VLC_ADD_CFLAGS([sdl_image], [${SDL_IMAGE_CFLAGS}])],
3062 [ AC_MSG_WARN([${SDL_IMAGE_PKG_ERRORS}. You should install it alongside your SDL package.])
3066 AC_MSG_WARN([${SDL_PKG_ERRORS}.])
3073 AC_ARG_ENABLE(macosx-vout,
3074 [ --enable-macosx-vout Mac OS X video output module (default enabled on Mac OS X)])
3075 if test "x${enable_macosx_vout}" != "xno" &&
3076 (test "${SYS}" = "darwin" || test "${enable_macosx_vout}" = "yes")
3078 VLC_ADD_LIBS([vout_macosx],[-Wl,-framework,Cocoa])
3079 VLC_ADD_LIBS([vout_macosx],[-Wl,-framework,OpenGL])
3080 VLC_ADD_PLUGIN([vout_macosx])
3087 AC_ARG_ENABLE(freetype,
3088 [ --enable-freetype freetype support (default auto)])
3089 AC_ARG_ENABLE(fribidi,
3090 [ --enable-fribidi fribidi support (default auto)])
3091 AC_ARG_ENABLE(fontconfig,
3092 [ --enable-fontconfig fontconfig support (default auto)])
3094 AC_ARG_WITH([default-font],
3095 AS_HELP_STRING([--with-default-font=PATH],
3096 [Path to the default font]),
3097 [AC_DEFINE_UNQUOTED([DEFAULT_FONT_FILE],
3098 "$withval", [Default font])])
3099 AC_ARG_WITH([default-monospace-font],
3100 AS_HELP_STRING([--with-default-monospace-font=PATH],
3101 [Path to the default font]),
3102 [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FONT_FILE],
3103 "$withval", [Default monospace font])])
3105 AC_ARG_WITH([default-font-family],
3106 AS_HELP_STRING([--with-default-font-family=NAME],
3107 [Path to the default font family]),
3108 [AC_DEFINE_UNQUOTED([DEFAULT_FAMILY],
3109 "$withval", [Default font family])])
3110 AC_ARG_WITH([default-monospace-font-family],
3111 AS_HELP_STRING([--with-default-monospace-font-family=NAME],
3112 [Path to the default font family]),
3113 [AC_DEFINE_UNQUOTED([DEFAULT_MONOSPACE_FAMILY],
3114 "$withval", [Default monospace font family])])
3116 if test "${enable_freetype}" != "no"; then
3117 PKG_CHECK_MODULES(FREETYPE, freetype2, [
3119 VLC_ADD_PLUGIN([freetype])
3120 VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
3121 if test "${SYS}" = "mingw32"; then
3122 VLC_ADD_LIBS([freetype],[-liconv -lz])
3124 VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
3126 AC_CHECK_HEADERS(Carbon/Carbon.h,
3127 [VLC_ADD_LIBS([freetype],[-Wl,-framework,Carbon])])
3129 dnl fontconfig support
3130 if test "${SYS}" != "mingw32"; then
3131 if test "${enable_fontconfig}" != "no"; then
3132 AC_CHECK_HEADERS(fontconfig/fontconfig.h, [
3133 VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
3134 VLC_ADD_LIBS([freetype],[-lfontconfig])
3135 ],[AC_MSG_WARN([library fontconfig not found. Styles will be disabled in freetype])])
3138 VLC_ADD_LIBS([freetype],[-lgdi32])
3142 if test "${enable_fribidi}" != "no"; then
3143 PKG_CHECK_MODULES(FRIBIDI, fribidi, [
3144 VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
3145 VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
3146 ],[AC_MSG_WARN([${FRIBIDI_PKG_ERRORS}. Bidirectional support will be disabled in FreeType.])])
3151 AS_IF([test -n "${enable_freetype}"],[
3152 AC_MSG_ERROR([${FREETYPE_PKG_ERRORS}. Install FreeType2 development or configure with --disable-freetype.])
3159 dnl QuartzText vout module (iOS/Mac OS)
3161 AC_ARG_ENABLE(macosx-quartztext,
3162 [ --enable-macosx-quartztext Mac OS X quartz text module (default enabled on Mac OS X)])
3163 if test "x${enable_macosx_quartztext}" != "xno" &&
3164 (test "${SYS}" = "darwin" || test "${enable_macosx_quartztext}" = "yes")
3166 VLC_ADD_PLUGIN([quartztext])
3167 VLC_ADD_LIBS([quartztext],[-Wl,-framework,ApplicationServices])
3173 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3176 dnl android surface module
3178 AC_ARG_ENABLE(android-surface,
3179 [ --enable-android-surface Android Surface video output module (default disabled)])
3180 if test "${enable_android_surface}" = "yes"; then
3181 if test "${HAVE_ANDROID}" = "1"; then
3182 VLC_ADD_PLUGIN([android_surface])
3183 VLC_ADD_LDFLAGS([android_surface], [-ldl])
3191 AC_ARG_ENABLE(ios-vout,
3192 [ --enable-ios-vout iOS video output module (default disabled)])
3193 if test "${enable_ios_vout}" = "yes"
3195 VLC_ADD_PLUGIN([vout_ios])
3196 VLC_ADD_LIBS([vout_ios], [-Wl,-framework,OpenGLES,-framework,QuartzCore,-framework,UIKit,-framework,Foundation])
3200 dnl iOS ES2 vout module
3202 AC_ARG_ENABLE(ios-vout2,
3203 [ --enable-ios-vout2 iOS video output module (default disabled)])
3204 if test "${enable_ios_vout2}" = "yes"
3206 VLC_ADD_PLUGIN([vout_ios2])
3207 VLC_ADD_LIBS([vout_ios2], [-Wl,-framework,OpenGLES,-framework,QuartzCore,-framework,UIKit])
3212 dnl Windows DirectX module
3215 if test "${SYS}" = "mingw32"
3217 VLC_ADD_PLUGIN([panoramix])
3220 AC_ARG_ENABLE(directx,
3221 [AS_HELP_STRING([--enable-directx],
3222 [Microsoft DirectX support (default enabled on Windows)])],, [
3223 AS_IF([test "${SYS}" = "mingw32"], [
3224 enable_directx="yes"
3230 AS_IF([test "${enable_directx}" != "no"], [
3232 AC_CHECK_HEADERS(ddraw.h, [
3235 AC_MSG_ERROR([Cannot find DirectX headers!])
3239 AC_CHECK_HEADERS(GL/wglew.h, [
3240 VLC_ADD_PLUGIN([glwin32])
3242 #include <windows.h>
3247 AC_CHECK_HEADERS(d3d9.h, [
3248 VLC_ADD_PLUGIN([direct3d])
3252 AC_CHECK_HEADERS(d2d1.h, [
3253 VLC_ADD_PLUGIN([direct2d])
3256 AM_CONDITIONAL([HAVE_DIRECTX], [test "$have_directx" = "yes"])
3259 dnl Linux framebuffer module
3261 AC_CHECK_HEADER([linux/fb.h], [
3262 VLC_ADD_PLUGIN([fb])
3268 dnl try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
3269 dnl TODO: support for static linking
3271 AC_ARG_ENABLE(directfb,
3272 [ --enable-directfb DirectFB support (default disabled)])
3273 AC_ARG_WITH(directfb,
3274 [ --with-directfb=PATH path to DirectFB headers and libraries])
3276 if test "${enable_directfb}" = "yes"; then
3277 have_directfb="false"
3278 CPPFLAGS_mydirectfb=
3280 if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
3281 dnl Trying the given location
3284 CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
3285 LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/ -L${with_directfb}/src/.libs/"
3287 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
3288 LIBS="${LIBS} ${LIBS_new}"
3290 dnl FIXME: too obscure
3291 AC_CHECK_HEADER([directfb.h], [
3292 AC_CHECK_LIB([direct],[direct_initialize], [
3293 AC_CHECK_LIB([fusion], [fusion_enter], [
3294 AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
3295 ], have_directfb="false")
3296 ], have_directfb="false")
3297 ], have_directfb="false")
3301 if test "${have_directfb}" = "true"; then
3302 LIBS_mydirectfb="${LIBS_new} -lz $LIBDL -ldirectfb -lfusion -ldirect -lpthread"
3303 CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
3306 dnl Look for directfb-config
3307 AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
3308 if test "${DIRECTFB_CONFIG}" != "no"; then
3309 CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
3310 LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
3311 have_directfb="true"
3313 dnl Trying with pkg-config
3314 PKG_CHECK_MODULES(DIRECTFB, directfb, [
3315 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
3316 LIBS_mydirectfb="${DIRECTFB_LIBS}"
3317 have_directfb="true"
3318 ], [have_directfb="false"])
3321 if test "${have_directfb}" = "true"; then
3322 VLC_ADD_PLUGIN([directfb])
3323 VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
3324 VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
3326 AC_MSG_ERROR([${DIRECTFB_PKG_ERRORS}.])
3334 [ --enable-aa aalib output (default disabled)])
3335 if test "${enable_aa}" = "yes"
3337 AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
3338 if test "${have_aa}" = "true"
3340 VLC_ADD_PLUGIN([aa])
3341 VLC_ADD_LIBS([aa],[-laa])
3342 if test "${SYS}" != "mingw32"; then
3343 VLC_ADD_LIBS([aa],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3351 PKG_ENABLE_MODULES_VLC([CACA], [], [caca >= 0.99.beta14], [libcaca output],[auto])
3357 [AS_HELP_STRING([--enable-kva],
3358 [support the K Video Accelerator KVA (default enabled on OS/2)])],, [
3359 AS_IF([test "$SYS" = "os2"], [
3365 AS_IF([test "$enable_kva" != "no"], [
3366 AC_CHECK_HEADERS([kva.h], [
3368 AC_CHECK_LIB(kva, main, [
3374 AM_CONDITIONAL([HAVE_KVA], [test "${have_kva}" = "yes"])
3380 EXTEND_HELP_STRING([Audio plugins:])
3383 dnl Pulseaudio module
3385 AC_ARG_ENABLE(pulse,
3386 [AS_HELP_STRING([--enable-pulse],
3387 [use the PulseAudio client library (default auto)])])
3389 AS_IF([test "${enable_pulse}" != "no"], [
3390 PKG_CHECK_MODULES([PULSE], [libpulse >= 0.9.22], [
3393 PKG_CHECK_MODULES([PULSE], [libpulse >= 0.9.16], [
3394 AS_IF([test "${no_x}" != "yes"], [
3396 PULSE_LIBS="$PULSE_LIBS ${X_LIBS} ${X_PRE_LIBS} -lX11"
3398 AS_IF([test "${enable_pulse}" = "yes"], [
3399 AC_MSG_ERROR([Xlib is required with PulseAudio pre-0.9.22 versions
3400 (see http://www.pulseaudio.org/ticket/799 for further reference).])
3404 AS_IF([test "x${enable_pulse}" != "x"], [
3405 AC_MSG_ERROR([$PULSE_PKG_ERRORS. PulseAudio 0.9.22 or later required.])
3410 AM_CONDITIONAL([HAVE_PULSE], [test "${have_pulse}" = "yes"])
3416 [AS_HELP_STRING([--enable-alsa],
3417 [support the Advanced Linux Sound Architecture (default auto)])],, [
3418 AS_IF([test "$SYS" = "linux" -a "${have_pulse}" = "no"], [
3423 AS_IF([test "${enable_alsa}" != "no"], [
3424 PKG_CHECK_MODULES([ALSA], [alsa >= 1.0.24], [
3427 AS_IF([test "x${enable_alsa}" != "x"], [
3428 AC_MSG_ERROR([$ALSA_PKG_ERRORS. alsa-lib 1.0.24 or later required.])
3432 AM_CONDITIONAL([HAVE_ALSA], [test "${have_alsa}" = "yes"])
3435 dnl Open Sound System module
3438 [AS_HELP_STRING([--enable-oss],
3439 [support the Open Sound System OSS (default enabled on FreeBSD/NetBSD/DragonFlyBSD)])],, [
3440 AS_IF([test "$SYS" = "mingw32" -o "$SYS" = "linux" -o "$SYS" = "openbsd"], [
3446 AS_IF([test "$enable_oss" != "no"], [
3447 AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
3449 AC_CHECK_LIB(ossaudio, main, [
3450 OSS_LIBS="-lossaudio"
3455 AM_CONDITIONAL([HAVE_OSS], [test "${have_oss}" = "yes"])
3458 dnl OpenBSD sndio module
3460 AC_ARG_ENABLE([sndio],
3461 [AS_HELP_STRING([--disable-sndio],
3462 [support the OpenBSD sndio (default auto)])],, [
3463 AS_IF([test "$SYS" = "openbsd"], [
3468 AS_IF([test "$enable_sndio" != "no"], [
3469 AC_CHECK_HEADER([sndio.h], [
3473 AM_CONDITIONAL([HAVE_SNDIO], [test "${have_sndio}" = "yes"])
3476 dnl Windows Audio Session plugin
3478 AC_ARG_ENABLE([wasapi],
3479 [AS_HELP_STRING([--enable-wasapi],
3480 [use the Windows Audio Session API (default auto)])
3483 AS_IF([test "$enable_wasapi" != "no"], [
3484 AC_CHECK_HEADER([audioclient.h], [
3487 AS_IF([test "x${enable_wasapi}" != "x"], [
3488 AC_MSG_ERROR([Windows Audio Session API not found.])
3492 AM_CONDITIONAL([HAVE_WASAPI], [test "${have_wasapi}" = "yes"])
3495 dnl win32 waveOut plugin
3497 AC_ARG_ENABLE(waveout,
3498 [ --enable-waveout Win32 waveOut module (default enabled on Win32)])
3499 if test "${enable_waveout}" != "no"; then
3500 if test "${SYS}" = "mingw32"; then
3501 VLC_ADD_PLUGIN([waveout])
3502 VLC_ADD_LIBS([waveout],[-lwinmm])
3507 dnl CoreAudio plugin
3509 AC_ARG_ENABLE(macosx-audio,
3510 [ --enable-macosx-audio Mac OS X audio module (default enabled on MacOS X)])
3511 if test "x${enable_macosx_audio}" != "xno" &&
3512 (test "${SYS}" = "darwin" || test "${enable_macosx_audio}" = "yes")
3514 AC_CHECK_HEADERS(CoreAudio/CoreAudio.h,
3515 [ VLC_ADD_PLUGIN([auhal])
3516 VLC_ADD_LIBS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,CoreServices])
3517 ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
3521 dnl iOS CoreAudio plugin
3523 AC_ARG_ENABLE(ios-audio,
3524 [ --enable-ios-audio Audio module for iOS (default disabled)])
3525 if test "${enable_ios_audio}" = "yes"
3527 AC_CHECK_HEADERS(AudioUnit/AudioUnit.h,
3528 [ VLC_ADD_PLUGIN([audiounit_ios])
3529 VLC_ADD_LIBS([audiounit_ios],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,CoreServices])
3530 ], [ AC_MSG_ERROR([cannot find AudioUnit headers]) ])
3534 dnl AudioQueue plugin
3536 AC_ARG_ENABLE(audioqueue,
3537 [ --enable-audioqueue AudioQueue audio module (default disabled)])
3538 if test "${enable_audioqueue}" = "yes"
3540 VLC_ADD_PLUGIN([audioqueue])
3541 VLC_ADD_LIBS([audioqueue], [-Wl,-framework,AudioToolbox,-framework,CoreFoundation])
3547 PKG_ENABLE_MODULES_VLC([JACK], [jack access_jack], [jack], [JACK audio I/O modules],[auto])
3550 dnl OpenSLES Android
3552 AC_ARG_ENABLE(opensles,
3553 [ --enable-opensles Android OpenSL ES audio module (default disabled)])
3554 if test "${HAVE_ANDROID}" = "1"; then
3555 if test "${enable_opensles}" = "yes"; then
3556 AC_CHECK_HEADERS(SLES/OpenSLES.h,
3557 [ VLC_ADD_PLUGIN([opensles_android]) ],
3558 [ AC_MSG_ERROR([cannot find OpenSLES headers])] )
3563 dnl libsamplerate plugin
3565 PKG_ENABLE_MODULES_VLC([SAMPLERATE], [], [samplerate], [Resampler with libsamplerate], [auto])
3571 [AS_HELP_STRING([--enable-kai],
3572 [support the K Audio Interface KAI (default enabled on OS/2)])],, [
3573 AS_IF([test "$SYS" = "os2"], [
3579 AS_IF([test "$enable_kai" != "no"], [
3580 AC_CHECK_HEADERS([kai.h], [
3582 AC_CHECK_LIB(kai, main, [
3588 AM_CONDITIONAL([HAVE_KAI], [test "${have_kai}" = "yes"])
3591 dnl chromaprint audio track fingerprinter
3593 m4_pushdef([libchromaprint_version], 0.6.0)
3594 PKG_WITH_MODULES([CHROMAPRINT],[libchromaprint >= libchromaprint_version],
3595 VLC_ADD_PLUGIN([stream_out_chromaprint fingerprinter])
3596 VLC_ADD_CFLAGS([stream_out_chromaprint],[${CHROMAPRINT_CFLAGS}] [-I./webservices -I../stream_out])
3597 VLC_ADD_LIBS([stream_out_chromaprint],[${CHROMAPRINT_LIBS}])
3598 VLC_ADD_LIBS([fingerprinter],[-lm]),
3599 AS_IF([test "${enable_chromaprint}" = "yes"],
3600 [AC_MSG_ERROR(Library [libchromaprint >= libchromaprint_version] needed for [chromaprint] was not found)],
3601 [AC_MSG_WARN(Library [libchromaprint >= libchromaprint_version] needed for [chromaprint] was not found)]
3603 [(Chromaprint based audio fingerprinter)],[auto])
3604 m4_popdef([libchromaprint_version])
3607 dnl Interface plugins
3610 EXTEND_HELP_STRING([Interface plugins:])
3616 AS_HELP_STRING([--disable-qt], [Qt UI support (default enabled)])],, [
3617 AS_IF([test "${SYS}" = "darwin"], [
3621 AS_IF([test "${enable_qt}" != "no"], [
3622 PKG_CHECK_MODULES([QT], [QtCore >= 5 QtWidgets QtGui],, [
3623 PKG_CHECK_MODULES([QT], [QtCore QtGui >= 4.6.0],, [
3624 AS_IF([test -n "${enable_qt}"],[
3625 AC_MSG_ERROR([${QT_PKG_ERRORS}.])
3627 AC_MSG_WARN([${QT_PKG_ERRORS}.])
3633 AS_IF([test "${enable_qt}" != "no"], [
3634 VLC_ADD_PLUGIN([qt4])
3635 VLC_ADD_LIBS([qt4],[${QT_LIBS}])
3636 VLC_ADD_CXXFLAGS([qt4],[${QT_CFLAGS}])
3637 ALIASES="${ALIASES} qvlc"
3642 AC_MSG_CHECKING([whether Qt uses Xlib])
3643 CPPFLAGS="${CPPFLAGS} ${QT_CFLAGS}"
3644 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
3646 #if !defined (Q_WS_X11)
3650 AC_MSG_RESULT([yes])
3651 VLC_ADD_LIBS([qt4],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3652 VLC_ADD_CXXFLAGS([qt4],[${X_CFLAGS}])
3660 AS_IF([test "${SYS}" = "mingw32"], [
3661 VLC_ADD_LIBS([qt4],[-lole32])
3663 AS_IF([test "${SYS}" = "darwin" ],[
3664 VLC_ADD_LIBS([qt4], [-Wl,-framework,Cocoa])
3667 QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix QtCore)"
3668 AC_PATH_PROGS(MOC, [moc-qt4 moc], moc, [${QT_PATH}/bin ${CONTRIB_DIR}/bin])
3669 AC_PATH_PROG(RCC, rcc, rcc, [${QT_PATH}/bin ${CONTRIB_DIR}/bin])
3670 AC_PATH_PROGS(UIC, [uic-qt4 uic], uic, [${QT_PATH}/bin ${CONTRIB_DIR}/bin])
3672 AM_CONDITIONAL(ENABLE_QT4, [test "$enable_qt" != "no"])
3675 dnl Simple test for skins2 dependency
3677 AS_IF([test "$enable_qt" = "no"], [
3678 AS_IF([test "${enable_skins2}" = "yes"], [
3679 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.])
3682 AC_MSG_WARN([The skins2 module depends on the Qt4 interface, Qt4 is not built so skins2 is disabled.])
3689 AC_ARG_ENABLE(skins2,
3690 [AS_HELP_STRING([--enable-skins2], [skins interface module (default auto)])])
3691 AS_IF([test "${enable_skins2}" != "no"], [
3692 have_skins_deps="yes"
3695 AS_IF([test "${SYS}" = "mingw32"], [
3696 VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -DWIN32_SKINS])
3697 VLC_ADD_LIBS([skins2],[-lgdi32 -lole32 -luuid -lmsimg32])
3699 ], [test "${SYS}" = "darwin"], [
3700 VLC_ADD_CPPFLAGS([skins2],[ -DMACOSX_SKINS])
3701 VLC_ADD_LIBS([skins2],[-Wl,-framework,Carbon])
3704 PKG_CHECK_MODULES([XPM], [xpm],, [have_skins_deps="no"])
3705 PKG_CHECK_MODULES([XINERAMA], [xinerama],, [have_skins_deps="no"])
3706 PKG_CHECK_MODULES([XEXT], [xext],, [have_skins_deps="no"])
3707 VLC_ADD_CPPFLAGS([skins2],[${X_CFLAGS} ${XEXT_CFLAGS} ${XPM_CFLAGS} -DX11_SKINS])
3708 VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} ${XEXT_LIBS} ${XPM_LIBS} ${XINERAMA_LIBS} -lX11])
3712 VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3714 dnl we need freetype
3715 AS_IF([test "${have_freetype}" != "yes"], [
3716 have_skins_deps="no"
3719 AS_IF([test "${have_skins_deps}" = "no"], [
3720 AS_IF([test "x${enable_skins2}" = "x"], [
3721 AC_MSG_WARN([Skins2 interface disabled due to missing dependencies.])
3723 AC_MSG_ERROR([Skins2 interface requires FreeType, libxpm, libxext and libxinerama])
3727 VLC_ADD_PLUGIN([skins2])
3728 ALIASES="${ALIASES} svlc"
3732 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes"])
3734 AC_ARG_ENABLE(libtar,
3735 [ --enable-libtar libtar support for skins2 (default auto)])
3736 AS_IF([test "${enable_skins2}" = "yes" && test "${enable_libtar}" != "no"], [
3737 AC_CHECK_HEADERS(libtar.h, [
3738 VLC_ADD_LIBS([skins2],[-ltar])
3743 dnl MacOS X gui module
3745 AC_ARG_ENABLE(macosx,
3746 [ --enable-macosx Mac OS X gui support (default enabled on Mac OS X)])
3747 if test "x${enable_macosx}" != "xno" -a "${SYS}" = "darwin"
3749 VLC_ADD_LIBS([macosx], [-Wl,-framework,Cocoa -Wl,-framework,Carbon -Wl,-framework,CoreServices])
3750 VLC_ADD_OBJCFLAGS([macosx], [-fobjc-exceptions] )
3751 VLC_ADD_PLUGIN([macosx])
3753 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])
3755 if test ! -d ${CONTRIB_DIR}/Sparkle.framework
3757 AC_MSG_ERROR([Sparkle framework is required and was not found in ${CONTRIB_DIR}])
3759 VLC_ADD_LIBS([macosx], [-F${CONTRIB_DIR} -Wl,-framework,Sparkle])
3760 VLC_ADD_OBJCFLAGS([macosx], [-F${CONTRIB_DIR}])
3762 if test ! -d ${CONTRIB_DIR}/BGHUDAppKit.framework
3764 AC_MSG_ERROR([BGHUDAppKit framework is required and was not found in ${CONTRIB_DIR}])
3766 VLC_ADD_LIBS([macosx], [-F${CONTRIB_DIR} -Wl,-framework,BGHUDAppKit])
3767 VLC_ADD_OBJCFLAGS([macosx], [-F${CONTRIB_DIR}])
3769 AM_CONDITIONAL(ENABLE_MACOSX_UI, [test "$enable_macosx" != "no"])
3772 dnl Minimal Mac OS X module
3774 AC_ARG_ENABLE(minimal-macosx,
3775 [ --enable-minimal-macosx Minimal Mac OS X support (default disabled)])
3776 if test "${enable_minimal_macosx}" = "yes" -a "${SYS}" = "darwin"
3778 VLC_ADD_LIBS([minimal_macosx], [-Wl,-framework,Cocoa])
3779 VLC_ADD_OBJCFLAGS([minimal_macosx], [-fobjc-exceptions] )
3780 VLC_ADD_PLUGIN([minimal_macosx])
3782 AM_CONDITIONAL(ENABLE_MINIMAL_MACOSX, [test "$enable_minimal_macosx" != "no"])
3785 dnl MacOS X dialog provider
3787 AC_ARG_ENABLE(macosx-dialog-provider,
3788 [ --enable-macosx-dialog-provider Mac OS X dialog module (default enabled on Mac OS X)])
3789 if test "x${enable_macosx_dialog_provider}" != "xno" &&
3790 (test "${SYS}" = "darwin" || test "${enable_macosx_dialog_provider}" = "yes")
3792 VLC_ADD_LIBS([macosx_dialog_provider],[-Wl,-framework,Cocoa])
3793 VLC_ADD_PLUGIN([macosx_dialog_provider])
3795 AM_CONDITIONAL(ENABLE_MACOSX_DIALOG_PROVIDER, [test "$enable_macosx_dialog_provider" != "no"])
3800 AC_ARG_ENABLE(ncurses,
3801 [AS_HELP_STRING([--disable-ncurses],[ncurses text-based interface (default auto)])])
3802 AS_IF([test "${enable_ncurses}" != "no"] ,[
3803 PKG_CHECK_MODULES([NCURSES], [ncursesw], [
3804 VLC_ADD_PLUGIN([ncurses])
3805 VLC_ADD_CFLAGS([ncurses],[${NCURSES_CFLAGS}])
3806 VLC_ADD_LIBS([ncurses],[${NCURSES_LIBS}])
3807 ALIASES="${ALIASES} nvlc"
3809 AS_IF([test -n "${enable_ncurses}"], [
3810 AC_MSG_ERROR([${NCURSES_PKG_ERRORS}.])
3819 [ --enable-lirc lirc support (default disabled)])
3820 if test "${enable_lirc}" = "yes"
3822 AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
3823 if test "${have_lirc}" = "true"
3825 VLC_ADD_PLUGIN([lirc])
3826 VLC_ADD_LIBS([lirc],[-llirc_client])
3830 EXTEND_HELP_STRING([Visualisations and Video filter plugins:])
3832 dnl goom visualization plugin
3834 PKG_ENABLE_MODULES_VLC([GOOM], [], [libgoom2], [goom visualization plugin], [auto])
3837 dnl libprojectM visualization plugin
3839 AC_ARG_ENABLE(projectm,
3840 [ --enable-projectm projectM visualization plugin (default enabled)])
3841 AS_IF([test "${enable_projectm}" != "no"],
3843 PKG_CHECK_MODULES(PROJECTM, libprojectM,
3845 VLC_ADD_PLUGIN([projectm])
3846 VLC_ADD_CXXFLAGS([projectm],[$PROJECTM_CFLAGS])
3847 VLC_ADD_LIBS([projectm],[$PROJECTM_LIBS])
3848 PKG_CHECK_MODULES(PROJECTM2, [libprojectM >= 2.0.0],
3849 [ AC_DEFINE([HAVE_PROJECTM2], 1, [Define to 1 if using libprojectM 2.x]) ],
3850 [ AC_MSG_WARN( [Using libprojectM version 1] )
3853 AC_MSG_WARN([${PROJECTM_PKG_ERRORS}.])
3858 dnl Vovoid VSXu visualization plugin
3861 [ --enable-vsxu Vovoid VSXu visualization plugin (default auto)])
3862 AS_IF([test "${enable_vsxu}" != "no"],
3864 PKG_CHECK_MODULES(VSXU, libvsxu,
3866 VLC_ADD_PLUGIN([vsxu])
3867 VLC_ADD_CXXFLAGS([vsxu],[$VSXU_CFLAGS])
3868 VLC_ADD_LIBS([vsxu],[$VSXU_LIBS])
3870 AC_MSG_WARN([${VSXU_PKG_ERRORS}.])
3875 dnl AtmoLight (homemade Philips Ambilight clone)
3878 AS_HELP_STRING([--disable-atmo],[AtmoLight (homemade Philips Ambilight clone)
3879 (default enabled)]),, [enable_atmo="yes"])
3880 AS_IF([test "${enable_atmo}" != no], [
3881 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "linux"], [
3883 VLC_ADD_PLUGIN([atmo])
3889 EXTEND_HELP_STRING([Service Discovery plugins:])
3891 dnl Bonjour services discovery
3892 PKG_ENABLE_MODULES_VLC([BONJOUR], [], [avahi-client >= 0.6], [Bonjour services discovery], [auto])
3895 dnl libudev services discovery
3896 PKG_ENABLE_MODULES_VLC([UDEV], [], [libudev >= 142], [Linux udev services discovery], [auto])
3899 dnl MTP devices services discovery
3900 PKG_ENABLE_MODULES_VLC([MTP], [mtp access_mtp], [libmtp >= 1.0.0], [MTP devices support], [auto])
3903 dnl UPnP Plugin (Intel SDK)
3905 PKG_ENABLE_MODULES_VLC([UPNP], [upnp], [libupnp], [Intel UPNP SDK],[auto])
3906 VLC_ADD_CXXFLAGS([upnp],[${UPNP_CFLAGS}])
3908 EXTEND_HELP_STRING([Misc options:])
3913 PKG_ENABLE_MODULES_VLC([LIBXML2], [xml], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
3919 AC_ARG_ENABLE(libgcrypt,
3920 [ --disable-libgcrypt gcrypt support (default enabled)])
3921 AS_IF([test "${enable_libgcrypt}" != "no"], [
3922 AC_CHECK_DECL([GCRYCTL_SET_THREAD_CBS], [
3923 libgcrypt-config --version >/dev/null || \
3924 AC_MSG_ERROR([gcrypt.h present but libgcrypt-config could not be found])
3925 AC_CHECK_LIB(gcrypt, gcry_control, [
3926 have_libgcrypt="yes"
3927 GCRYPT_CFLAGS="`libgcrypt-config --cflags`"
3928 GCRYPT_LIBS="`libgcrypt-config --libs`"
3930 AC_MSG_ERROR([libgcrypt not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
3931 ], [`libgcrypt-config --libs`])
3933 AC_MSG_ERROR([libgcrypt version 1.1.94 or higher not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
3934 ], [#include <gcrypt.h>]
3938 AC_SUBST(GCRYPT_CFLAGS)
3939 AC_SUBST(GCRYPT_LIBS)
3940 AM_CONDITIONAL([HAVE_GCRYPT], [test "${have_libgcrypt}" = "yes"])
3945 AC_ARG_ENABLE(gnutls,
3946 [ --enable-gnutls GNU TLS TLS/SSL support (default enabled)])
3947 AS_IF([test "${enable_gnutls}" != "no"], [
3948 PKG_CHECK_MODULES(GNUTLS, [gnutls >= 3.0.20], [
3949 VLC_ADD_PLUGIN([gnutls])
3951 AS_IF([test -n "${enable_gnutls}"], [
3952 AC_MSG_ERROR([${GNUTLS_PKG_ERRORS}.)])
3961 AC_ARG_ENABLE(taglib,
3962 [AS_HELP_STRING([--disable-taglib],
3963 [do not use TagLib (default enabled)])])
3964 AS_IF([test "${enable_taglib}" != "no"], [
3965 PKG_CHECK_MODULES(TAGLIB, taglib >= 1.6.1, [
3966 VLC_ADD_PLUGIN([taglib])
3967 VLC_ADD_LIBS([taglib],[$TAGLIB_LIBS -lz])
3968 VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS])
3970 AC_MSG_WARN([${TAGLIB_PKG_ERRORS}.])])
3975 dnl update checking system
3977 AC_ARG_ENABLE(update-check,
3978 [ --enable-update-check update checking system (default disabled)])
3979 if test "${enable_update_check}" = "yes"
3981 if test "${have_libgcrypt}" != "yes"
3983 AC_MSG_ERROR([libgcrypt is required for update checking system])
3985 VLC_ADD_LIBS([libvlccore], [${GCRYPT_LIBS}])
3986 VLC_ADD_CFLAGS([libvlccore], [${GCRYPT_CFLAGS}])
3987 AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
3991 dnl Growl notification plugin
3993 AC_ARG_ENABLE(growl,
3994 [ --enable-growl growl notification plugin (default disabled)],,
3996 AS_IF([test "${enable_growl}" != "no"], [
3997 AC_CHECK_HEADERS(${CONTRIB_DIR}/Growl.framework/Versions/A/Headers/Growl.h, [
3998 VLC_ADD_PLUGIN([growl])
3999 VLC_ADD_LIBS([growl], [-F${CONTRIB_DIR} -Wl,-framework,Growl,-framework,Foundation])
4000 VLC_ADD_OBJCFLAGS([growl], [-F${CONTRIB_DIR}])
4001 VLC_ADD_OBJCFLAGS([growl], [-fobjc-exceptions] )
4007 dnl Libnotify notification plugin
4009 PKG_ENABLE_MODULES_VLC([NOTIFY], [], [libnotify gtk+-2.0], [libnotify notification], [auto])
4012 dnl Endianness check
4015 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
4016 DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
4020 AC_SUBST(DEFS_BIGENDIAN)
4023 dnl Where to install KDE solid .desktop
4025 AC_ARG_VAR([KDE4_CONFIG], [kde4-config utility])
4026 AS_IF([test "x$KDE4_CONFIG" = "x"], [
4027 KDE4_CONFIG="kde4-config"
4030 AC_ARG_WITH(kde-solid,
4031 AS_HELP_STRING([--with-kde-solid=PATH],
4032 [KDE Solid actions directory (auto)]),, [
4034 if test "${SYS}" != "mingw32" -a "${SYS}" != "darwin" ; then
4035 with_kde_solid="yes"
4039 AS_IF([test "${with_kde_solid}" != "no"], [
4040 AS_IF([test "${with_kde_solid}" = "yes"], [
4041 kde4datadir="`${KDE4_CONFIG} --install data`"
4042 AS_IF([test "x$kde4datadir" = "x"], [kde4datadir='${datadir}/kde4/apps'])
4043 soliddatadir="${kde4datadir}/solid/actions"
4045 soliddatadir="${with_kde_solid}"
4048 AC_SUBST(soliddatadir)
4049 AM_CONDITIONAL(KDE_SOLID, [test "x${soliddatadir}" != "x"])
4053 AS_IF([test "${SYS}" = "mingw32"], [VLC_ADD_PLUGIN([dmo]) VLC_ADD_LIBS([dmo],[-lole32 -luuid]) ])
4055 EXTEND_HELP_STRING([Components:])
4061 [ --enable-vlc build the VLC media player (default enabled)])
4062 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
4064 AC_ARG_ENABLE(macosx-vlc-app,
4065 [ --enable-macosx-vlc-app build the VLC media player (default enabled on Mac OS X)])
4066 AM_CONDITIONAL(BUILD_MACOSX_VLC_APP, [test "${enable_macosx_vlc_app}" != "no" &&
4067 (test "${SYS}" = "darwin" || test "${enable_macosx_vlc_app}" = "yes") ])
4070 dnl Stuff used by the program
4072 VERSION_MESSAGE="${VERSION} ${CODENAME}"
4073 COPYRIGHT_MESSAGE="Copyright © ${COPYRIGHT_YEARS} the VideoLAN team"
4074 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string])
4075 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string])
4076 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
4077 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
4078 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,${VERSION_MAJOR}, [version major number])
4079 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,${VERSION_MINOR}, [version minor number])
4080 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,${VERSION_REVISION}, [version revision number])
4081 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,${VERSION_EXTRA}, [version extra number])
4082 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_DEV,"${VERSION_DEV}", [version development string])
4083 AC_SUBST(COPYRIGHT_MESSAGE)
4084 AC_SUBST(VERSION_MESSAGE)
4085 AC_SUBST(VERSION_MAJOR)
4086 AC_SUBST(VERSION_MINOR)
4087 AC_SUBST(VERSION_REVISION)
4088 AC_SUBST(VERSION_EXTRA)
4089 AC_SUBST(COPYRIGHT_YEARS)
4090 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami|sed -e 's/\\\/\\\\\\\/g'`", [user who ran configure])
4091 AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -f 2>/dev/null || hostname`", [host which ran configure])
4092 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1 | sed -e 's/ *$//'`", [compiler])
4094 dnl Handle substvars that use $(top_srcdir)
4096 CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS}"
4099 dnl Configuration is finished
4109 AC_SUBST(WINE_SDK_PATH)
4111 AC_SUBST(AM_CPPFLAGS)
4112 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
4113 AC_SUBST(FILE_LIBVLCCORE_DLL)
4114 AC_SUBST(FILE_LIBVLC_DLL)
4128 modules/access/Makefile
4129 modules/access/rtp/Makefile
4130 modules/access_output/Makefile
4131 modules/audio_filter/Makefile
4132 modules/audio_mixer/Makefile
4133 modules/audio_output/Makefile
4134 modules/codec/Makefile
4135 modules/control/Makefile
4136 modules/demux/Makefile
4137 modules/gui/Makefile
4138 modules/gui/macosx/Makefile
4139 modules/gui/minimal_macosx/Makefile
4140 modules/gui/macosx_dialog_provider/Makefile
4141 modules/gui/qt4/Makefile
4142 modules/gui/skins2/Makefile
4143 modules/lua/Makefile
4144 modules/meta_engine/Makefile
4145 modules/misc/Makefile
4146 modules/mux/Makefile
4147 modules/notify/Makefile
4148 modules/packetizer/Makefile
4149 modules/services_discovery/Makefile
4150 modules/stream_filter/Makefile
4151 modules/stream_out/Makefile
4152 modules/text_renderer/Makefile
4153 modules/video_chroma/Makefile
4154 modules/video_filter/Makefile
4155 modules/video_output/Makefile
4156 modules/visualization/Makefile
4157 modules/mmx/Makefile
4158 modules/sse2/Makefile
4159 modules/altivec/Makefile
4160 modules/arm_neon/Makefile
4163 AM_COND_IF([HAVE_WIN32], [
4165 extras/package/win32/NSIS/spad.nsi
4166 extras/package/win32/NSIS/vlc.win32.nsi
4167 extras/package/win32/msi/config.wxi
4171 AM_COND_IF([HAVE_DARWIN], [
4173 extras/package/macosx/Info.plist
4174 extras/package/macosx/Resources/English.lproj/InfoPlist.strings
4178 dnl Generate makefiles
4181 dnl Do we have to use make or gmake ?
4182 if make --version 2>&1|grep -q GNU
4184 # GNU make, all seems good
4187 # Known GNU make alias (on BSD)
4190 dnl Shortcut to nice compile message
4191 if test -n $SHELL; then
4192 SHELL=${CONFIG_SHELL-/bin/sh}
4198 export PATH=\"$PATH\" LANG=C
4199 ($MAKE V=1 \$@ 2>&1 || touch .error\$\$)| `sed -ne \"s/^top_srcdir *= *//p\" < Makefile`/extras/buildsystem/make.pl
4200 test -f .error\$\$ && ERROR=1
4202 exit \$ERROR" >compile
4206 libvlc configuration
4207 --------------------
4208 version : ${VERSION}
4210 architecture : ${ARCH}
4211 optimizations : ${enable_optimizations}"
4212 if test "${enable_vlc}" != "no"; then
4213 echo "vlc aliases :${ALIASES}"
4215 echo "build vlc executable : no"
4218 To build vlc and its plugins, type \`$MAKE', or \`./compile' if you like nice colors."