1 dnl Autoconf settings for vlc
3 AC_COPYRIGHT([Copyright 2002-2012 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-2012"
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)
28 AM_CONFIG_HEADER(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 ARCH_flag="-arch armv7"
147 ac_cv_c_bigendian="no"
148 ac_cv_c_attribute_packed="no"
153 CFLAGS="${CFLAGS} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"
154 CXXFLAGS="${CXXFLAGS} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"
155 CPPFLAGS="${CPPFLAGS} ${ARCH_flag}"
156 OBJCFLAGS="${OBJCFLAGS} -D_INTL_REDIRECT_MACROS -std=gnu99 ${ARCH_flag}"
157 LDFLAGS="${LDFLAGS} -Wl,-headerpad_max_install_names ${ARCH_flag}"
158 VLC_ADD_LIBS([mkv mp4 motion], [-Wl,-framework,IOKit,-framework,CoreFoundation])
159 VLC_ADD_LIBS([libvlc vlc],[-Wl,-undefined,dynamic_lookup,-framework,Appkit])
160 VLC_ADD_LIBS([avcodec avformat access_avio swscale postproc i420_rgb_mmx x264 x26410b],[-Wl,-read_only_relocs,suppress])
161 VLC_ADD_CFLAGS([motion],[-fconstant-cfstrings])
162 VLC_ADD_LIBS([libvlccore],[-Wl,-framework,CoreFoundation])
164 dnl Allow binaries created on Lion to run on earlier releases
166 [#import <Cocoa/Cocoa.h>
167 #ifdef MAC_OS_X_VERSION_10_7
170 [AC_MSG_RESULT([yes])
171 AC_LIBOBJ([getdelim])
173 AC_LIBOBJ([strnlen])],)
176 dnl Handle Mac OS X SDK flags
178 AC_ARG_WITH(macosx-sdk,
179 [AS_HELP_STRING([--with-macosx-sdk=DIR],
180 [compile using the SDK in DIR])])
181 if test "${with_macosx_sdk}" != "" ; then
182 test ! -d "${with_macosx_sdk}" && AC_MSG_ERROR([SDK "${with_macosx_sdk}" not found])
183 CPP="${CPP} -isysroot ${with_macosx_sdk}"
184 CC="${CC} -isysroot ${with_macosx_sdk}"
185 CXX="${CXX} -isysroot ${with_macosx_sdk}"
186 OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
187 LD="${LD} -syslibroot ${with_macosx_sdk}"
189 AC_ARG_WITH(macosx-version-min,
190 [AS_HELP_STRING([--with-macosx-version-min=VERSION],
191 [compile for Mac OS X VERSION and above])])
192 if test "${with_macosx_version_min}" != "" ; then
193 MACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}
194 CPP="${CPP} -mmacosx-version-min=${with_macosx_version_min}"
195 CC="${CC} -mmacosx-version-min=${with_macosx_version_min}"
196 CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
197 OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
198 LD="${LD} -mmacosx_version_min=${with_macosx_version_min}"
199 CFLAGS="${CFLAGS} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"
200 CXXFLAGS="${CXXFLAGS} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"
201 OBJCFLAGS="${OBJCFLAGS} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"
202 export MACOSX_DEPLOYMENT_TARGET
205 *mingw32* | *cygwin* | *wince* | *mingwce*)
206 AC_CHECK_TOOL(WINDRES, windres, :)
207 AC_CHECK_TOOL(OBJCOPY, objcopy, :)
208 AC_DEFINE([_WIN32_WINNT], 0x0502, [Define to '0x0502' for Windows XP SP2 APIs.])
209 AC_DEFINE([_WIN32_IE], 0x0600, [Define to '0x0600' for IE 6.0 (and shell) APIs.])
216 dnl Check if we are using the mno-cygwin mode in which case we are
217 dnl actually dealing with a mingw32 compiler.
222 SYS=mingw32, AC_MSG_ERROR([VLC requires -mno-cygwin]))
226 if test "${SYS}" = "mingw32"; then
227 VLC_ADD_LIBS([libvlccore],[-lwinmm])
228 VLC_ADD_LDFLAGS([vlc],[-mwindows])
229 VLC_ADD_LIBS([win32text],[-lgdi32])
230 VLC_ADD_LIBS([vcdx],[-lwinmm])
231 AC_CHECK_PROGS(U2D, [unix2dos todos], unix2dos)
232 ac_default_prefix="`pwd`/_win32"
233 DESTDIR="`pwd`/_win32/"
236 dnl NSIS Installer prefix and WIN64
241 PROGRAMFILES="PROGRAMFILES64"
244 PROGRAMFILES="PROGRAMFILES"
247 AC_SUBST(PROGRAMFILES)
265 LDFLAGS="${LDFLAGS} -Zomf -Zbin-files -Zargs-wild"
271 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
272 AM_CONDITIONAL(HAVE_LINUX, test "${SYS}" = "linux")
273 AM_CONDITIONAL(HAVE_OS2, test "${SYS}" = "os2")
274 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
275 AM_CONDITIONAL(HAVE_WIN64, test "${HAVE_WIN64}" = "1")
276 AM_CONDITIONAL(HAVE_SYMBIAN, test "${SYS}" = "symbian")
279 dnl Check for the contrib directory
282 [AS_HELP_STRING([--with-contrib[=DIR]],
283 [search for 3rd party libraries in DIR/include and DIR/lib])
285 AC_MSG_CHECKING([for 3rd party libraries path])
286 AS_IF([test -z "${with_contrib}" || test "${with_contrib}" = "yes"], [
287 CONTRIB_DIR="${srcdir}/contrib/${host}"
288 AS_IF([test ! -d "${CONTRIB_DIR}"], [
289 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
290 CONTRIB_DIR="${srcdir}/contrib/`$CC -dumpmachine`"
291 AS_IF([test ! -d "${CONTRIB_DIR}"], [
292 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
293 CONTRIB_DIR="${srcdir}/extras/contrib/hosts/${host}"
294 AS_IF([test ! -d "${CONTRIB_DIR}"], [
295 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
296 CONTRIB_DIR="${srcdir}/extras/contrib/hosts/`$CC -dumpmachine`"
297 AS_IF([test ! -d "${CONTRIB_DIR}"], [
298 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
300 AC_MSG_RESULT([not found])
306 AS_IF([test "${with_contrib}" != "no"], [
307 CONTRIB_DIR="${with_contrib}"
310 AC_MSG_RESULT([disabled])
313 AS_IF([test -n "${CONTRIB_DIR}"], [
314 AS_IF([test -d "${CONTRIB_DIR}/lib"],[
315 CONTRIB_DIR=`cd "${CONTRIB_DIR}" && pwd`
317 echo "${CONTRIB_DIR}/lib not found" >&AS_MESSAGE_LOG_FD
319 AC_MSG_RESULT([not usable])
323 AS_IF([test -n "${CONTRIB_DIR}"], [
324 AC_MSG_RESULT([${CONTRIB_DIR}])
325 export PATH=${CONTRIB_DIR}/bin:$PATH
326 CPPFLAGS="${CPPFLAGS} -I${CONTRIB_DIR}/include"
327 CFLAGS="${CFLAGS} -I${CONTRIB_DIR}/include"
328 CXXFLAGS="${CXXFLAGS} -I${CONTRIB_DIR}/include"
329 OBJCFLAGS="${OBJCFLAGS} -I${CONTRIB_DIR}/include"
330 AS_IF([test "$build" = "$host" -o "$PKG_CONFIG_LIBDIR"], [
331 export PKG_CONFIG_PATH="${CONTRIB_DIR}/lib/pkgconfig:$PKG_CONFIG_PATH"
333 export PKG_CONFIG_LIBDIR="${CONTRIB_DIR}/lib/pkgconfig"
335 LDFLAGS="${LDFLAGS} -L${CONTRIB_DIR}/lib"
337 AS_IF([test "${SYS}" = "darwin"], [
338 export LD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$LD_LIBRARY_PATH"
339 export DYLD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$DYLD_LIBRARY_PATH"
342 AS_IF([test -n "${with_contrib}" && test "${with_contrib}" != "no"], [
343 AC_MSG_ERROR([Third party libraries not found!])
346 AC_SUBST(CONTRIB_DIR)
349 dnl Sadly autoconf does not think about testing foo.exe when ask to test
350 dnl for program foo on win32
352 case "${build_os}" in
354 ac_executable_extensions=".exe"
360 dnl Android is linux, but a bit different
361 AS_IF([test "$SYS" = linux],[
362 AC_MSG_CHECKING([for an Android system])
363 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
364 [[#ifndef __ANDROID__
375 AM_CONDITIONAL(HAVE_ANDROID, test "${HAVE_ANDROID}" = "1")
379 dnl It's very bad, but our former custom system was worst
383 dnl override platform specific check for dependent libraries
384 dnl otherwise libtool linking of shared libraries will
385 dnl fail on anything other than pass_all.
386 AC_CACHE_VAL(lt_cv_deplibs_check_method,
387 [lt_cv_deplibs_check_method=pass_all])
389 LT_INIT([dlopen win32-dll shared disable-static])
391 LT_LANG([Windows Resource])
395 m4_undefine([AC_DEPLIBS_CHECK_METHOD])
396 m4_defun([AC_DEPLIBS_CHECK_METHOD],[])
398 lt_cv_deplibs_check_method=pass_all
400 AS_IF([test "${enable_shared}" = "no" -a "${enable_vlc}" != "no"], [
401 AC_MSG_ERROR([VLC is based on plugins. Shared libraries cannot be disabled.])
407 AM_GNU_GETTEXT_VERSION([0.18.1])
408 AM_GNU_GETTEXT([external], [need-ngettext])
415 dnl Check for broken versions of mingw-runtime compatability library
416 AS_IF([test "${SYS}" = "mingw32"], [
417 AC_MSG_CHECKING(for broken mingw-runtime)
418 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
420 #if defined(__MINGW64_VERSION_MAJOR)
421 # if __MINGW64_VERSION_MAJOR < 3
422 # error Attempting to use mingw-runtime with broken vsnprintf and direct2d support
424 #elif __MINGW32_MAJOR_VERSION == 3 && __MINGW32_MINOR_VERSION < 15
425 # error Attempting to use mingw-runtime with broken vsnprintf support
430 AC_MSG_RESULT([present])
431 AC_MSG_ERROR([LibVLC requires mingw-runtime version 3.15 or higher, or mingw-w64 version 3.0 or higher!])
433 dnl force use of mingw provided c99 *printf over msvcrt
434 CPPFLAGS="${CPPFLAGS} -D__USE_MINGW_ANSI_STDIO=1"
437 dnl Check for the need to include the mingwex lib for mingw32
438 if test "${SYS}" = "mingw32" ; then
439 AC_CHECK_LIB(mingwex,opendir,
440 AC_CHECK_LIB(mingw32,opendir,,
441 [VLC_ADD_LIBS([libvlccore],[-lmingwex])])
445 dnl Check for fnative-struct or mms-bitfields support for mingw32
446 if test "${SYS}" = "mingw32" ; then
448 CFLAGS="${CFLAGS} -mms-bitfields"
449 CXXFLAGS="${CXXFLAGS} -mms-bitfields"
450 AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
451 [ac_cv_c_mms_bitfields],
452 [AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
453 if test "${ac_cv_c_mms_bitfields}" = "no"; then
455 CFLAGS="${CFLAGS} -fnative-struct"
456 CXXFLAGS="${CXXFLAGS} -fnative-struct"
457 AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
458 [ac_cv_c_fnative_struct],
459 [AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
460 "${ac_cv_c_fnative_struct}" = "no" && VLC_RESTORE_FLAGS
465 dnl Buggy glibc prevention. Purposedly not cached.
466 dnl See sourceware.org bugs 5058 and 5443.
467 dnl Ubuntu alone has 20 bug numbers for this...
469 AC_MSG_CHECKING(for buggy GNU/libc versions)
470 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
472 #if defined (__GLIBC__) && (__GLIBC__ == 2) \
473 && (__GLIBC_MINOR__ >= 5) && (__GLIBC_MINOR__ <= 7)
474 # error GNU/libc with dcgettext killer bug!
477 AC_MSG_RESULT([not present])
479 AC_MSG_RESULT([found])
480 AS_IF([test "x${enable_nls}" != "xno"], [
481 AC_MSG_ERROR([Buggy GNU/libc (version 2.5 - 2.7) present. VLC would crash; there is no viable
482 work-around for this. Check with your distribution vendor on how to update the
483 glibc run-time. Alternatively, build with --disable-nls.])
487 dnl Plugin compilation stuff
491 dnl Check for system libs needed
494 dnl Check for usual libc functions
495 AC_CHECK_DECLS([nanosleep],,,[#include <time.h>])
496 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])
497 AC_REPLACE_FUNCS([atof atoll dirfd fdopendir flockfile fsync getdelim getpid gmtime_r inet_pton lldiv localtime_r nrand48 poll posix_memalign rewind setenv strcasecmp strcasestr strdup strlcpy strncasecmp strndup strnlen strsep strtof strtok_r strtoll swab tdestroy strverscmp])
498 AC_CHECK_FUNCS(fdatasync,,
499 [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
502 dnl mingw64 implements those as static inline, not functions with C linkage
504 AC_LANG_PROGRAM([#include <stdio.h>], [
506 if (asprintf(&c, "%s %d", "string", 1) == -1)
508 ])],[AC_DEFINE([HAVE_ASPRINTF],[1],[Define to 1 if you have asprintf function])],[AC_LIBOBJ([asprintf])])
510 AC_LANG_PROGRAM([#include <stdio.h>
511 #include <stdarg.h>], [
514 if (vasprintf(&c, "%s %d", ap) == -1)
516 ])],[AC_DEFINE([HAVE_VASPRINTF],[1],[Define to 1 if you have asprintf function])],[AC_LIBOBJ([vasprintf])])
518 dnl C11 static_assert()
519 AC_MSG_CHECKING([for static_assert in assert.h])
520 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
522 #ifndef static_assert
527 AC_DEFINE([HAVE_STATIC_ASSERT], [1], [Define to 1 if <assert.h> defines static_assert.])
532 # Windows CE does not have strcoll()
535 dnl Check for non-standard system calls
536 AC_CHECK_FUNCS([accept4 pipe2 eventfd vmsplice sched_getaffinity])
538 AH_BOTTOM([#include <vlc_fixups.h>])
540 dnl Check for struct pollfd
541 AC_CHECK_TYPES([struct pollfd],,,
542 [#include <sys/types.h>
545 #elif defined (WIN32)
546 # include <winsock2.h>
550 dnl Checks for socket stuff
553 AC_SEARCH_LIBS(connect, [socket], [
554 AS_IF([test "$ac_cv_search_connect" != "none required"], [
555 SOCKET_LIBS="$ac_cv_search_connect"
558 AS_IF([test "${SYS}" = "mingw32"], [
559 SOCKET_LIBS="-lws2_32"
563 AC_SEARCH_LIBS([getaddrinfo], [nsl], [
564 AS_IF([test "$ac_cv_search_getaddrinfo" != "none required"], [
565 SOCKET_LIBS="$ac_cv_search_getaddrinfo $SOCKET_LIBS"
567 ],, [${SOCKET_LIBS}])
569 AC_CHECK_FUNCS([if_nameindex if_nametoindex])
572 AS_IF([test -n "$SOCKET_LIBS"], [
573 VLC_ADD_LIBS([access_http access_mms access_udp access_tcp access_ftp access_rtmp access_output_udp access_output_shout sap stream_out_select stream_out_standard stream_out_rtp stream_out_raop vod_rtsp access_realrtsp rtp oldrc netsync gnutls flac ts audioscrobbler lua remoteosd zvbi audiobargraph_a netsync stream_filter_dash],[${SOCKET_LIBS}])
575 AC_SUBST(SOCKET_LIBS)
577 dnl Check for socklen_t
578 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
579 AC_CACHE_CHECK([for socklen_t in sys/socket.h], dnl ` (fix VIM syntax highlight
580 ac_cv_type_socklen_t,
581 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
582 [#include <sys/types.h>
584 # include <winsock2.h>
585 # include <ws2tcpip.h>
587 # include <sys/socket.h>
588 #endif]], [[socklen_t len; len = 0;]])],
589 ac_cv_type_socklen_t=yes,
590 ac_cv_type_socklen_t=no)])
591 AS_IF([test "$ac_cv_type_socklen_t" = no],
592 [AC_DEFINE(socklen_t, int)])
594 dnl Check for struct sockaddr_storage
595 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
596 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
597 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
599 [#include <sys/types.h>
601 # include <winsock2.h>
603 # include <sys/socket.h>
604 #endif], [struct sockaddr_storage addr;],
605 ac_cv_struct_sockaddr_storage=yes,
606 ac_cv_struct_sockaddr_storage=no)])
607 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
608 AC_DEFINE(sockaddr_storage, sockaddr)
609 AC_DEFINE(ss_family, sa_family)
612 dnl FreeBSD has a gnugetopt library for this:
614 AC_CHECK_FUNC(getopt_long,, [
615 AC_CHECK_LIB([gnugetopt],[getopt_long], [
616 GNUGETOPT_LIBS="-lgnugetopt"
619 AC_SUBST(GNUGETOPT_LIBS)
622 VLC_ADD_LIBS([adjust wave ripple psychedelic gradient a52tofloat32 dtstofloat32 x264 goom visual panoramix rotate noise grain scene kate flac lua chorus_flanger freetype avcodec avformat access_avio swscale postproc i420_rgb faad twolame equalizer spatializer param_eq samplerate freetype mpc dmo mp4 quicktime qt4 compressor headphone_channel_mixer normvol audiobargraph_a speex opus mono colorthres extract ball access_imem hotkeys mosaic gaussianblur dbus x26410b hqdn3d anaglyph oldrc ncurses],[-lm])
629 AC_CHECK_LIB(m,lrintf, [
630 AC_DEFINE(HAVE_LRINTF, 1, [Define to 1 if you have the lrintf function])
631 VLC_ADD_LIBS([skins2],[-lm])
634 dnl Check for dynamic plugins
636 have_dynamic_objects="no"
638 AC_SEARCH_LIBS(dlopen, [dl svld], [
639 AS_IF([test "$ac_cv_search_dlopen" != "none required"], [
640 LIBDL="$ac_cv_search_dlopen"
642 have_dynamic_objects="yes"
647 AS_IF([test "${SYS}" = "mingw32"], [
649 have_dynamic_objects="yes" #assume we can use shared objects
652 AS_IF([test "${enable_shared}" = "no"], [
653 have_dynamic_objects=no
655 AM_CONDITIONAL(HAVE_DYNAMIC_PLUGINS, [test "${have_dynamic_objects}" != "no"])
658 VLC_ADD_LIBS([lua],[$LIBDL])
660 dnl Check for thread library
661 if test "${SYS}" != "mingw32"; then
665 AC_SEARCH_LIBS(pthread_rwlock_init, pthread pthreads c_r, [
666 VLC_ADD_LIBS([libvlccore libvlc vlc plugin],[${LIBS}])
670 AC_CHECK_LIB(rt, clock_nanosleep, [
671 VLC_ADD_LIBS([libvlccore],[-lrt])
673 AC_CHECK_FUNC(nanosleep,,[
674 AC_CHECK_LIB(rt,nanosleep, [
675 VLC_ADD_LIBS([libvlccore],[-lrt])
677 AC_CHECK_LIB(posix4,nanosleep, [
678 VLC_ADD_LIBS([libvlccore],[-lposix4])
683 AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LIBS([libvlccore],[-lrt])])
685 fi # end "${SYS}" != "mingw32"
687 dnl Check for headers
688 AC_CHECK_HEADERS([search.h])
689 AC_CHECK_HEADERS(getopt.h locale.h xlocale.h)
690 AC_CHECK_HEADERS([sys/time.h sys/ioctl.h])
691 AC_CHECK_HEADERS([arpa/inet.h netinet/udplite.h sys/eventfd.h])
692 AC_CHECK_HEADERS([net/if.h], [], [],
694 #include <sys/types.h>
695 #include <sys/socket.h>
697 AC_CHECK_HEADERS([sys/mount.h], [], [],
699 #include <sys/param.h>
702 if test "${SYS}" != "mingw32"; then
703 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
704 AC_CHECK_HEADERS([linux/version.h linux/dccp.h scsi/scsi.h linux/magic.h])
705 AC_CHECK_HEADERS(syslog.h mntent.h)
706 fi # end "${SYS}" != "mingw32"
708 dnl LP64 and LLP64 architectures had better define ssize_t by themselves...
709 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.]) dnl ` (fix VIM syntax highlight
710 AC_CHECK_TYPE(ssize_t,, [
711 AC_DEFINE(ssize_t, int)
714 dnl Check for threads library
715 if test "${SYS}" != "mingw32"; then
716 AC_CHECK_HEADERS(pthread.h)
717 fi # end "${SYS}" != "mingw32"
719 dnl It seems that autoconf detects pkg-config only during the first
720 dnl PKG_CHECK_MODULES from configure.ac - which makes sense. But in our case,
721 dnl it is nested within a conditional block, so it was not working right.
722 dnl Make PKG_CONFIG_PATH precious so that it appears in the help and get saved
723 AC_ARG_VAR(PKG_CONFIG_PATH,
724 [Paths where to find .pc not at the default location])
725 PKG_PROG_PKG_CONFIG()
727 dnl On some OS we need static linking
728 AS_IF([test -n "${PKG_CONFIG}" ],[
729 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "darwin" -o "${SYS}" = "os2" ],[
730 PKG_CONFIG="${PKG_CONFIG} --static"
736 dnl Check for zlib.h and -lz along with system -lminizip if available
738 AC_CHECK_HEADERS(zlib.h, [ have_zlib=yes ], [ have_zlib=no ])
739 AM_CONDITIONAL(HAVE_ZLIB, [ test "${have_zlib}" = "yes" ])
740 if test "${have_zlib}" = "yes"
742 VLC_ADD_LIBS([access_http mp4 skins2 sap mkv unzip zip],[-lz])
743 PKG_CHECK_MODULES([MINIZIP], [minizip] , [ have_minizip=yes ], [
744 AC_CHECK_HEADERS([unzip.h], [
746 MINIZIP_LIBS="-lminizip -lz"
749 MINIZIP_CFLAGS="-I\\\${top_srcdir}/modules/access/zip/unzip"
750 MINIZIP_LIBS="\\\${top_builddir}/modules/access/zip/unzip/libunzip.la"
753 VLC_ADD_CPPFLAGS([skins2],[$MINIZIP_CFLAGS])
754 VLC_ADD_LIBS([skins2],[$MINIZIP_LIBS])
756 AM_CONDITIONAL(HAVE_MINIZIP, [ test "${have_minizip}" = "yes" ])
760 dnl Domain name i18n support via GNU libidn
762 PKG_CHECK_MODULES([IDN], [libidn], [
764 AC_DEFINE([HAVE_IDN], 1, [Define to 1 if you have GNU libidn.])
772 [AS_HELP_STRING([--enable-dbus],
773 [compile D-Bus message bus support (default enabled)])])
776 if test "${enable_dbus}" != "no" -a "${SYS}" != "mingw32"
779 PKG_CHECK_MODULES(DBUS, [dbus-1 >= 1.0.0],
780 [ AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
781 VLC_ADD_LIBS([libvlccore],[$DBUS_LIBS])
782 VLC_ADD_CFLAGS([libvlccore],[$DBUS_CFLAGS])
783 dnl Check for dbus control interface
784 AC_ARG_ENABLE(dbus-control,
785 [AS_HELP_STRING([--disable-dbus-control],
786 [D-Bus control interface (default enabled)])])
787 if test "${enable_dbus_control}" != "no"
789 VLC_ADD_PLUGIN([dbus])
790 VLC_ADD_LIBS([dbus],[$DBUS_LIBS])
791 VLC_ADD_CFLAGS([dbus],[$DBUS_CFLAGS])
793 dnl Power Management Inhibiter
794 VLC_ADD_PLUGIN([inhibit])
795 VLC_ADD_LIBS([inhibit],[$DBUS_LIBS])
796 VLC_ADD_CFLAGS([inhibit],[$DBUS_CFLAGS])
798 [AC_MSG_ERROR([${DBUS_PKG_ERRORS}.])]
804 dnl Check for ntohl, etc.
806 CFLAGS="${CFLAGS} -Wall -Werror"
807 AC_CACHE_CHECK([for ntohl in sys/param.h],
808 [ac_cv_c_ntohl_sys_param_h],
809 [ AC_TRY_COMPILE([#include <sys/param.h>],
810 [int meuh; ntohl(meuh);],
811 ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
812 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
813 AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
817 EXTEND_HELP_STRING([Optimization options:])
819 dnl Compiler warnings
822 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])
823 RDC_PROG_CC_FLAGS([-pipe])
825 RDC_PROG_CXX_WFLAGS([all extra sign-compare undef pointer-arith volatile-register-var])
832 [AS_HELP_STRING([--enable-debug],
833 [build with run-time assertions (default disabled)])],,
836 [Define to 1 if debug code should NOT be compiled])
837 AS_IF([test "${enable_debug}" != "no"], [
838 AC_CHECK_HEADERS([valgrind/valgrind.h])
847 [AS_HELP_STRING([--enable-gprof],[profile with gprof (default disabled)])],,
849 AS_IF([test "${enable_gprof}" != "no"], [
850 CFLAGS="${CFLAGS} -pg"
851 CXXFLAGS="${CXXFLAGS} -pg"
852 OBJCFLAGS="${OBJCFLAGS} -pg"
853 LDFLAGS="${LDFLAGS} -pg"
857 [AS_HELP_STRING([--enable-cprof],[profile with cprof (default disabled)])],,
859 AS_IF([test "${enable_gprof}" != "no"], [
860 CFLAGS="${CFLAGS} -finstrument-functions"
861 CXXFLAGS="${CXXFLAGS} -finstrument-functions"
862 OBJCFLAGS="${OBJCFLAGS} -finstrument-functions"
863 LDFLAGS="${LDFLAGS} -finstrument-functions"
869 AC_ARG_ENABLE(coverage,
870 [AS_HELP_STRING([--enable-coverage],
871 [build for test coverage (default disabled)])],,
872 [enable_coverage="no"])
873 AS_IF([test "${enable_coverage}" != "no"], [
874 CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
875 CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
876 LDFLAGS="-lgcov ${LDFLAGS}"
879 AS_IF([test "${SYS}" != "mingw32"], [
881 CFLAGS="${CFLAGS} -fvisibility=hidden"
882 CXXFLAGS="${CXXFLAGS} -fvisibility=hidden"
883 OBJCFLAGS="${OBJCFLAGS} -fvisibility=hidden"
884 AC_CACHE_CHECK([if $CC accepts -fvisibility=hidden],
885 [ac_cv_c_visibility_hidden], [
886 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
887 ac_cv_c_visibility_hidden=yes
889 ac_cv_c_visibility_hidden=no
892 AS_IF([test "${ac_cv_c_visibility_hidden}" = "no"], [VLC_RESTORE_FLAGS])
897 dnl Enable/disable optimizations
899 AC_ARG_ENABLE(optimizations,
900 [AS_HELP_STRING([--disable-optimizations],
901 [disable compiler optimizations (default enabled)])],,
902 [enable_optimizations="yes"])
904 dnl Check for various optimization flags
905 AS_IF([test "${enable_optimizations}" != "no"], [
907 dnl -O4 and -O3 only in production builds
908 AS_IF([test "{enable_debug}" = "no"], [
910 CFLAGS="${CFLAGS} -O4"
911 CXXFLAGS="${CXXFLAGS} -O4"
912 OBJCFLAGS="${OBJCFLAGS} -O4"
913 AC_CACHE_CHECK([if $CC accepts -O4], [ac_cv_c_o4], [
914 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
920 AS_IF([test "${ac_cv_c_o4}" = "no"], [
922 CFLAGS="${CFLAGS} -O3"
923 CXXFLAGS="${CXXFLAGS} -O3"
924 OBJCFLAGS="${OBJCFLAGS} -O3"
925 AC_CACHE_CHECK([if $CC accepts -O3], [ac_cv_c_o3], [
926 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
932 AS_IF([test "${ac_cv_c_o3}" = "no"], [VLC_RESTORE_FLAGS])
936 dnl Check for -ffast-math
938 CFLAGS="${CFLAGS} -ffast-math"
939 CXXFLAGS="${CXXFLAGS} -ffast-math"
940 OBJCFLAGS="${OBJCFLAGS} -ffast-math"
941 AC_CACHE_CHECK([if $CC accepts -ffast-math], [ac_cv_c_fast_math], [
942 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
943 ac_cv_c_fast_math=yes
948 AS_IF([test "${ac_cv_c_fast_math}" = "no"], [VLC_RESTORE_FLAGS])
950 #ifndef __FAST_MATH__
951 # pragma STDC FENV_ACCESS OFF
952 # pragma STDC FP_CONTRACT ON
956 dnl Check for -funroll-loops
958 CFLAGS="${CFLAGS} -funroll-loops"
959 CXXFLAGS="${CXXFLAGS} -funroll-loops"
960 OBJCFLAGS="${OBJCFLAGS} -funroll-loops"
961 AC_CACHE_CHECK([if $CC accepts -funroll-loops], [ac_cv_c_unroll_loops], [
962 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
963 ac_cv_c_unroll_loops=yes
965 ac_cv_c_unroll_loops=no
968 AS_IF([test "${ac_cv_c_unroll_loops}" = "no"], [VLC_RESTORE_FLAGS])
970 AS_IF([test "$enable_debug" = "no"], [
971 dnl Check for -fomit-frame-pointer
973 CFLAGS="${CFLAGS} -fomit-frame-pointer"
974 CXXFLAGS="${CXXFLAGS} -fomit-frame-pointer"
975 OBJCFLAGS="${OBJCFLAGS} -fomit-frame-pointer"
976 AC_CACHE_CHECK([if $CC accepts -fomit-frame-pointer],
977 [ac_cv_c_omit_frame_pointer], [
978 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
979 ac_cv_c_omit_frame_pointer=yes
981 ac_cv_c_omit_frame_pointer=no
984 AS_IF([test "${ac_cv_c_omit_frame_pointer}" = "no"], [VLC_RESTORE_FLAGS])
988 dnl Check for Darwin plugin linking flags
989 AS_IF([test "${SYS}" = "darwin"], [
991 CFLAGS="${CFLAGS} -bundle -undefined error"
992 AC_CACHE_CHECK([if $CC accepts -bundle -undefined error],
994 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1000 AS_IF([test "${ac_cv_ld_darwin}" != "no"], [
1001 VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
1006 dnl Checks for __attribute__(aligned()) directive
1008 CFLAGS="${CFLAGS} -Werror"
1009 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1010 [ac_cv_c_attribute_aligned],
1011 [ac_cv_c_attribute_aligned=0
1012 for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1014 [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1015 [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1018 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1019 AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1020 [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1023 dnl Check for __attribute__((packed))
1024 AC_CACHE_CHECK([for __attribute__((packed))],
1025 [ac_cv_c_attribute_packed],
1026 [ac_cv_c_attribute_packed=no
1027 AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b; (void)b;],
1028 [ac_cv_c_attribute_packed=yes])])
1029 if test "${ac_cv_c_attribute_packed}" != "no"; then
1030 AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1036 case "${host_cpu}" in
1045 dnl Check for backtrace() support
1046 AC_CHECK_HEADERS(execinfo.h)
1047 AC_CHECK_FUNCS(backtrace)
1052 ALIASES="${ALIASES} cvlc rvlc"
1055 dnl Some plugins aren't useful on some platforms
1057 if test "${SYS}" = "os2"; then
1058 VLC_ADD_PLUGIN([dynamicoverlay])
1059 elif test "${SYS}" != "mingw32"; then
1060 VLC_ADD_PLUGIN([dynamicoverlay access_shm])
1061 elif test "${SYS}" = "darwin"; then
1062 VLC_ADD_LIBS([quartztext],[-Wl,-framework,ApplicationServices])
1066 dnl Accelerated modules
1069 dnl Check for fully working MMX intrinsics
1070 dnl We need support for -mmmx, we need <mmintrin.h>, and we also need a
1071 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1073 [AS_HELP_STRING([--disable-mmx],
1074 [disable MMX optimizations (default auto)])],,[
1075 case "${host_cpu}" in
1086 AS_IF([test "${enable_mmx}" != "no"], [
1089 CFLAGS="${CFLAGS} -mmmx"
1090 AC_CACHE_CHECK([if $CC groks MMX intrinsics], [ac_cv_c_mmx_intrinsics], [
1091 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1092 [#include <mmintrin.h>
1094 uint64_t frobzor;]], [
1096 a = b = c = (__m64)frobzor;
1097 a = _mm_slli_pi16(a, 3);
1098 a = _mm_adds_pi16(a, b);
1099 c = _mm_srli_pi16(c, 8);
1100 c = _mm_slli_pi16(c, 3);
1101 b = _mm_adds_pi16(b, c);
1102 a = _mm_unpacklo_pi8(a, b);
1103 frobzor = (uint64_t)a;]])], [
1104 ac_cv_c_mmx_intrinsics=yes
1106 ac_cv_c_mmx_intrinsics=no
1110 AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1111 AC_DEFINE(HAVE_MMX_INTRINSICS, 1, [Define to 1 if MMX intrinsics are available.])
1115 CFLAGS="${CFLAGS} -mmmx"
1116 AC_CACHE_CHECK([if $CC groks MMX inline assembly], [ac_cv_mmx_inline], [
1117 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1119 asm volatile("packuswb %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1122 ac_cv_mmx_inline=yes
1127 AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1128 AC_DEFINE(CAN_COMPILE_MMX, 1, [Define to 1 inline MMX assembly is available.])
1132 AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1133 [ac_cv_mmxext_inline], [
1134 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1136 asm volatile("maskmovq %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1139 ac_cv_mmxext_inline=yes
1141 ac_cv_mmxext_inline=no
1145 AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1146 AC_DEFINE(CAN_COMPILE_MMXEXT, 1, [Define to 1 if MMX EXT inline assembly is available.])
1150 AM_CONDITIONAL([HAVE_MMX], [test "${have_mmx}" = "yes"])
1151 AM_CONDITIONAL([HAVE_MMXEXT], [test "${have_mmxext}" = "yes"])
1153 dnl Check for fully workin SSE2 intrinsics
1154 dnl We need support for -mmmx, we need <emmintrin.h>, and we also need a
1155 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1157 [AS_HELP_STRING([--disable-sse],
1158 [disable SSE (1-4) optimizations (default auto)])],, [
1159 case "${host_cpu}" in
1169 AS_IF([test "${enable_sse}" != "no"], [
1170 ARCH="${ARCH} sse sse2"
1173 CFLAGS="${CFLAGS} -msse2"
1174 AC_CACHE_CHECK([if $CC groks SSE2 intrinsics], [ac_cv_c_sse2_intrinsics], [
1175 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1176 [#include <emmintrin.h>
1178 uint64_t frobzor;]], [
1180 a = b = c = _mm_set1_epi64((__m64)frobzor);
1181 a = _mm_slli_epi16(a, 3);
1182 a = _mm_adds_epi16(a, b);
1183 c = _mm_srli_epi16(c, 8);
1184 c = _mm_slli_epi16(c, 3);
1185 b = _mm_adds_epi16(b, c);
1186 a = _mm_unpacklo_epi8(a, b);
1187 frobzor = (uint64_t)_mm_movepi64_pi64(a);]])], [
1188 ac_cv_c_sse2_intrinsics=yes
1190 ac_cv_c_sse2_intrinsics=no
1194 AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1195 AC_DEFINE(HAVE_SSE2_INTRINSICS, 1, [Define to 1 if SSE2 intrinsics are available.])
1199 CFLAGS="${CFLAGS} -msse"
1200 AC_CACHE_CHECK([if $CC groks SSE inline assembly], [ac_cv_sse_inline], [
1201 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1203 asm volatile("xorps %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1206 ac_cv_sse_inline=yes
1212 AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1213 AC_DEFINE(CAN_COMPILE_SSE, 1, [Define to 1 if SSE inline assembly is available.])
1216 AC_CACHE_CHECK([if $CC groks SSE2 inline assembly], [ac_cv_sse2_inline], [
1217 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1219 asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1222 ac_cv_sse2_inline=yes
1224 ac_cv_sse2_inline=no
1227 AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1228 AC_DEFINE(CAN_COMPILE_SSE2, 1, [Define to 1 if SSE2 inline assembly is available.])
1233 AC_CACHE_CHECK([if $CC groks SSE3 inline assembly], [ac_cv_sse3_inline], [
1234 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1236 asm volatile("movsldup %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1239 ac_cv_sse3_inline=yes
1241 ac_cv_sse3_inline=no
1245 AS_IF([test "${ac_cv_sse3_inline}" != "no"], [
1246 AC_DEFINE(CAN_COMPILE_SSE3, 1, [Define to 1 if SSE3 inline assembly is available.]) ])
1248 AC_CACHE_CHECK([if $CC groks SSSE3 inline assembly], [ac_cv_ssse3_inline], [
1249 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1251 asm volatile("pabsw %%xmm0,%%xmm0"::"r"(p):"xmm0");
1254 ac_cv_ssse3_inline=yes
1256 ac_cv_ssse3_inline=no
1260 AS_IF([test "${ac_cv_ssse3_inline}" != "no"], [
1261 AC_DEFINE(CAN_COMPILE_SSSE3, 1, [Define to 1 if SSSE3 inline assembly is available.]) ])
1264 AC_CACHE_CHECK([if $CC groks SSE4.1 inline assembly],
1265 [ac_cv_sse4_1_inline], [
1266 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1268 asm volatile("pmaxsb %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1271 ac_cv_sse4_1_inline=yes
1273 ac_cv_sse4_1_inline=no
1277 AS_IF([test "${ac_cv_sse4_1_inline}" != "no"], [
1278 AC_DEFINE(CAN_COMPILE_SSE4_1, 1, [Define to 1 if SSE4_1 inline assembly is available.]) ])
1281 AC_CACHE_CHECK([if $CC groks SSE4.2 inline assembly],
1282 [ac_cv_sse4_2_inline], [
1283 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1285 asm volatile("pcmpgtq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1288 ac_cv_sse4_2_inline=yes
1290 ac_cv_sse4_2_inline=no
1294 AS_IF([test "${ac_cv_sse4_2_inline}" != "no"], [
1295 AC_DEFINE(CAN_COMPILE_SSE4_2, 1, [Define to 1 if SSE4_2 inline assembly is available.]) ])
1298 AC_CACHE_CHECK([if $CC groks SSE4A inline assembly], [ac_cv_sse4a_inline], [
1299 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1301 asm volatile("insertq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1304 ac_cv_sse4a_inline=yes
1306 ac_cv_sse4a_inline=no
1310 AS_IF([test "${ac_cv_sse4a_inline}" != "no"], [
1311 AC_DEFINE(CAN_COMPILE_SSE4A, 1, [Define to 1 if SSE4A inline assembly is available.]) ])
1313 AM_CONDITIONAL([HAVE_SSE2], [test "$have_sse2" = "yes"])
1316 CFLAGS="${CFLAGS} -mmmx"
1318 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly], [ac_cv_3dnow_inline], [
1319 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1321 asm volatile("pfadd %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1324 ac_cv_3dnow_inline=yes
1326 ac_cv_3dnow_inline=no
1330 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1331 AC_DEFINE(CAN_COMPILE_3DNOW, 1,
1332 [Define to 1 if 3D Now! inline assembly is available.])
1335 AM_CONDITIONAL([HAVE_3DNOW], [test "$have_3dnow" = "yes"])
1339 [AS_HELP_STRING([--disable-neon],
1340 [disable NEON optimizations (default auto)])],, [
1341 AS_IF([test "${host_cpu}" = "arm"], [enable_neon="yes"] ,[enable_neon="no"])
1343 AS_IF([test "${enable_neon}" != "no"], [
1345 CFLAGS="${CFLAGS} -mfpu=neon -mhard-float"
1346 AC_CACHE_CHECK([if $CCAS groks ARM NEON assembly], [ac_cv_arm_neon], [
1349 asm volatile("vqmovun.s64 d0, q1":::"d0");
1352 ac_cv_arm_neon="yes"
1359 AM_CONDITIONAL(HAVE_NEON, [test "${ac_cv_arm_neon}" = "yes"])
1362 AC_ARG_ENABLE(altivec,
1363 [AS_HELP_STRING([--disable-altivec],
1364 [disable AltiVec optimizations (default auto)])],, [
1365 AS_IF([test "${host_cpu}" = "powerpc"],
1366 [enable_altivec=yes], [enable_altivec=no])
1369 AS_IF([test "${enable_altivec}" = "yes"], [
1370 ARCH="${ARCH} altivec";
1372 AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1373 [ac_cv_altivec_inline],
1374 [AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1375 ac_cv_altivec_inline="yes",
1376 [CFLAGS="${CFLAGS} -Wa,-m7400"
1377 AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1378 [ac_cv_altivec_inline="-Wa,-m7400"],
1379 ac_cv_altivec_inline=no)
1382 AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1383 AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1384 [Define to 1 if AltiVec inline assembly is available.])
1385 AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1386 VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1387 VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1388 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_altivec_inline}])
1393 dnl The AltiVec C extensions
1395 dnl There are several possible cases:
1396 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1397 dnl need <altivec.h>
1398 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1399 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1400 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1401 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1402 dnl - Others: test should fail
1404 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1406 [# OS X/PPC test (gcc 4.x)
1407 CFLAGS="${CFLAGS} -mpim-altivec -force_cpusubtype_ALL"
1408 AC_TRY_COMPILE([vector unsigned char foo;],
1409 [vec_ld(0, (unsigned char *)0);],
1410 [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1411 [# OS X/PPC test (gcc 3.x)
1412 CFLAGS="${CFLAGS} -faltivec"
1413 AC_TRY_COMPILE([vector unsigned char foo;],
1414 [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1415 [ac_cv_c_altivec="-faltivec"],
1416 dnl Below this are the Linux tests
1417 [# Linux/PPC test (gcc 4.x)
1418 CFLAGS="${CFLAGS} -maltivec"
1419 AC_TRY_COMPILE([#include <altivec.h>],
1420 [vec_ld(0, (unsigned char *)0);],
1421 [ac_cv_c_altivec="-maltivec"],
1422 [# Linux/PPC test (gcc 3.3)
1423 CFLAGS="${CFLAGS} -maltivec -mabi=altivec"
1424 AC_TRY_COMPILE([#include <altivec.h>],
1425 [vec_ld(0, (unsigned char *)0);],
1427 ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1428 [# Linux/PPC test (gcc 3.3)
1429 CFLAGS="${CFLAGS} -fvec"
1430 AC_TRY_COMPILE([#include <altivec.h>],
1431 [vec_ld(0, (unsigned char *)0);],
1432 [ac_cv_c_altivec="-fvec"],
1433 [ac_cv_c_altivec=no])
1441 AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1442 CPPFLAGS="${CPPFLAGS} ${ac_cv_c_altivec}"
1443 AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, [Define to 1 if C AltiVec extensions are available.])
1444 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_c_altivec}])
1445 VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1448 AC_CHECK_HEADERS(altivec.h)
1451 LDFLAGS="${LDFLAGS} -Wl,-framework,vecLib"
1452 AC_CACHE_CHECK([if linker needs -framework vecLib],
1454 [AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)])
1456 AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1457 VLC_ADD_LIBS([libvlccore memcpyaltivec],[-Wl,-framework,vecLib])
1460 AM_CONDITIONAL([HAVE_ALTIVEC], [test "$have_altivec" = "yes"])
1465 AC_ARG_ENABLE(optimize-memory,
1466 [AS_HELP_STRING([--enable-optimize-memory],
1467 [optimize memory usage over performance])])
1468 if test "${enable_optimize_memory}" = "yes"; then
1469 AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1473 dnl Allow running as root (useful for people running on embedded platforms)
1475 AC_ARG_ENABLE(run-as-root,
1476 [AS_HELP_STRING([--enable-run-as-root],
1477 [allow running VLC as root (default disabled)])])
1478 AS_IF([test "${enable_run_as_root}" = "yes"],[
1479 AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1480 [Define to 1 to allow running VLC as root (uid 0).])
1487 [AS_HELP_STRING([--disable-sout],
1488 [disable streaming output (default enabled)])])
1489 AS_IF([test "${enable_sout}" != "no"], [
1490 AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1492 AM_CONDITIONAL(ENABLE_SOUT, [test "${enable_sout}" != "no"])
1496 [AS_HELP_STRING([--disable-lua],
1497 [disable LUA scripting support (default enabled)])])
1498 if test "${enable_lua}" != "no"
1500 PKG_CHECK_MODULES(LUA, lua5.1,
1503 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua >= 5.1 instead])
1504 PKG_CHECK_MODULES(LUA, lua >= 5.1,
1507 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying manual detection instead])
1509 AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1512 AC_CHECK_LIB( lua5.1 , luaL_newstate,
1513 [LUA_LIBS="-llua5.1"],
1514 AC_CHECK_LIB( lua51 , luaL_newstate,
1515 [LUA_LIBS="-llua51"],
1516 AC_CHECK_LIB( lua , luaL_newstate,
1524 if test "x${have_lua}" = "xyes" ; then
1525 VLC_ADD_LIBS([lua],[$LUA_LIBS])
1526 VLC_ADD_CFLAGS([lua],[$LUA_CFLAGS])
1528 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.])
1530 AC_ARG_VAR([LUAC], [LUA byte compiler])
1531 AC_PATH_PROGS(LUAC,[${LUAC} luac], [false])
1532 AS_IF([test "${LUAC}" = "false"], [
1533 AC_MSG_ERROR([Could not find the LUA byte compiler.])
1536 AM_CONDITIONAL(BUILD_LUA, [test "${have_lua}" = "yes"])
1542 AC_ARG_ENABLE(httpd,
1543 [AS_HELP_STRING([--disable-httpd],
1544 [disable the built-in HTTP server (default enabled)])])
1545 if test "${enable_httpd}" != "no"
1547 AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP daemon support)
1549 AM_CONDITIONAL(BUILD_HTTPD, [test "${enable_httpd}" != "no"])
1553 dnl VideoLAN manager
1556 [AS_HELP_STRING([--disable-vlm],
1557 [disable the stream manager (default enabled)])],,
1558 [enable_vlm="${enable_sout}"])
1559 AS_IF([test "${enable_vlm}" != "no"], [
1560 AS_IF([test "${enable_sout}" = "no"], [
1561 AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1563 AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1565 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1572 EXTEND_HELP_STRING([Input plugins:])
1575 dnl libproxy support
1577 AC_ARG_ENABLE(libproxy,
1578 [AS_HELP_STRING([--enable-libproxy],[support libproxy (default auto)])])
1579 AS_IF([test "${enable_libproxy}" != "no"], [
1580 PKG_CHECK_MODULES(LIBPROXY, libproxy-1.0, [
1581 AC_DEFINE(HAVE_LIBPROXY, 1, [Define if libproxy is available])
1582 VLC_ADD_CFLAGS([access_http],[$LIBPROXY_CFLAGS])
1583 VLC_ADD_LIBS([access_http],[$LIBPROXY_LIBS])
1585 AS_IF([test -n "${enable_libproxy}"], [
1586 AC_MSG_ERROR([${LIBPROXY_PKG_ERRORS}.])
1594 AC_ARG_ENABLE(live555,
1595 [AS_HELP_STRING([--enable-live555],
1596 [enable RTSP input through live555 (default enabled)])])
1597 AS_IF([test "${enable_live555}" != "no" -a -n "${CXX}"], [
1600 AS_IF([test -z "${CONTRIB_DIR}"], [
1601 AS_IF([test ${SYS} != "os2"], [
1602 LIVE555_PREFIX=${LIVE555_PREFIX-"/usr"}
1603 CPPFLAGS_live555="-I${LIVE555_PREFIX}/include/liveMedia -I${LIVE555_PREFIX}/include/groupsock -I${LIVE555_PREFIX}/include/BasicUsageEnvironment -I${LIVE555_PREFIX}/include/UsageEnvironment"
1605 LIVE555_PREFIX=${LIVE555_PREFIX-"/usr/lib/live"}
1606 CPPFLAGS_live555="-I${LIVE555_PREFIX}/liveMedia/include -I${LIVE555_PREFIX}/groupsock/include -I${LIVE555_PREFIX}/BasicUsageEnvironment/include -I${LIVE555_PREFIX}/UsageEnvironment/include"
1607 LDFLAGS_live555="-L${LIVE555_PREFIX}/liveMedia -L${LIVE555_PREFIX}/groupsock -L${LIVE555_PREFIX}/BasicUsageEnvironment -L${LIVE555_PREFIX}/UsageEnvironment"
1610 CPPFLAGS_live555="-I${CONTRIB_DIR}/include/liveMedia -I${CONTRIB_DIR}/include/groupsock -I${CONTRIB_DIR}/include/BasicUsageEnvironment -I${CONTRIB_DIR}/include/UsageEnvironment"
1612 AS_IF([test "${SYS}" = "solaris"], [
1613 CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1615 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1616 LDFLAGS="${LDFLAGS} ${LDFLAGS_live555}"
1618 AC_CACHE_CHECK([for live555 version 1324598400 or later], [ac_cv_live555], [
1619 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
1620 [#include <liveMedia_version.hh>
1621 #if !defined (LIVEMEDIA_LIBRARY_VERSION_INT) || (LIVEMEDIA_LIBRARY_VERSION_INT < 1324598400)
1630 AS_IF([test "$ac_cv_live555" = "no"], [
1631 AC_MSG_WARN([liveMedia is missing or its installed version is too old:
1632 Version 2011.12.23 or later is required to proceed.
1633 You can get an updated one from http://www.live555.com/liveMedia .])
1634 AS_IF([test -n "${enable_live555}"], [
1635 AC_MSG_ERROR([Update live555 or pass --disable-live555 to disable RTSP input support.])
1638 other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1639 other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
1640 AS_IF([test "${SYS}" = "mingw32"], [
1641 # add ws2_32 for closesocket, select, recv
1642 other_libs="$other_libs -lws2_32"
1645 dnl We need to check for pic because live555 don't provide shared libs
1646 dnl and we want to build a plugins so we need -fPIC on some arch.
1647 VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1648 VLC_ADD_LDFLAGS([live555], [${LDFLAGS_live555}])
1649 AC_CHECK_LIB(liveMedia_pic, main, [
1650 VLC_ADD_PLUGIN([live555])
1651 VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
1653 AC_CHECK_LIB(liveMedia, main, [
1654 VLC_ADD_PLUGIN([live555])
1655 VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1656 ],[],[${other_libs}])],[${other_libs_pic}])
1663 dnl - special access module for dc1394 input
1664 dnl - dv module: digital video module check for libraw1394
1665 dnl - linsys modules: access module check for libzvbi
1667 PKG_ENABLE_MODULES_VLC([DC1394], [], [libdc1394-2 >= 2.1.0], [IIDC FireWire input module], [auto])
1668 PKG_ENABLE_MODULES_VLC([DV1394], [], [libraw1394 >= 2.0.1 libavc1394 >= 0.5.3], [DV FireWire input module], [auto])
1670 AC_ARG_ENABLE(linsys,
1671 [AS_HELP_STRING([--enable-linsys],
1672 [Linux Linear Systems Ltd. SDI and HD-SDI input cards (default enabled)])])
1673 if test "$SYS" = "linux" -a "${enable_linsys}" != "no"; then
1674 VLC_ADD_PLUGIN([linsys_hdsdi])
1675 PKG_CHECK_MODULES(LINSYS_SDI, [zvbi-0.2 >= 0.2.28],
1676 [ VLC_ADD_LIBS([linsys_sdi],[$LINSYS_SDI_LIBS])
1677 VLC_ADD_CFLAGS([linsys_sdi],[$LINSYS_SDI_CFLAGS])
1678 VLC_ADD_PLUGIN([linsys_sdi]) ],
1679 [AC_MSG_WARN([${LINSYS_SDI_PKG_ERRORS}.])]
1684 dnl dvdread module: check for libdvdread
1686 PKG_ENABLE_MODULES_VLC([DVDREAD], [], [dvdread], [dvdread input module], [auto])
1689 dnl libdvdnav plugin
1691 AC_ARG_ENABLE(dvdnav,
1692 [AS_HELP_STRING([--disable-dvdnav],
1693 [disable DVD navigation with libdvdnav (default auto)])])
1694 if test "${enable_dvdnav}" != "no"
1696 PKG_CHECK_MODULES(DVDNAV, dvdnav, [
1697 VLC_ADD_PLUGIN([dvdnav])
1698 VLC_ADD_CFLAGS([dvdnav],[${DVDNAV_CFLAGS}])
1699 VLC_ADD_LIBS([dvdnav],[${DVDNAV_LIBS}])
1700 AC_CHECK_LIB(dvdnav, dvdnav_get_video_resolution,
1701 AC_DEFINE(HAVE_DVDNAV_GET_VIDEO_RESOLUTION, 1, [Define if you have dvdnav_get_video_resolution.]),
1702 [], [${LIBS_dvdnav}])
1703 AC_CHECK_LIB(dvdnav, dvdnav_describe_title_chapters,
1704 AC_DEFINE(HAVE_DVDNAV_DESCRIBE_TITLE_CHAPTERS, 1, [Define if you have dvdnav_describe_title_chapters.]),
1705 [], [${LIBS_dvdnav}])],
1706 [AC_MSG_WARN([${DVDNAV_PKG_ERRORS}.])])
1710 dnl Windows DirectShow access module
1712 AC_ARG_ENABLE(dshow,
1713 [AS_HELP_STRING([--disable-dshow],
1714 [support DirectShow (default auto)])])
1715 if test "${enable_dshow}" != "no"
1717 if test "${SYS}" = "mingw32"
1720 AC_CHECK_HEADERS(dshow.h,
1721 [ VLC_ADD_PLUGIN([dshow])
1722 VLC_ADD_CXXFLAGS([dshow],[])
1723 VLC_ADD_LIBS([dshow],[-lole32 -loleaut32 -luuid -lstrmiids -lksuser])])
1729 dnl Blu-ray Disc Support with libbluray
1731 PKG_ENABLE_MODULES_VLC([BLURAY], [libbluray], [libbluray >= 0.2.1], (libbluray for Blu-ray disc support ) )
1734 dnl OpenCV wrapper and example filters
1736 PKG_ENABLE_MODULES_VLC([OPENCV], [opencv_example opencv_wrapper], [opencv > 2.0], (OpenCV (computer vision) filter), [auto])
1740 dnl libsmbclient plugin
1743 [AS_HELP_STRING([--disable-smb], [disable SMB/CIFS support (default auto)])])
1744 if test "${enable_smb}" != "no"; then
1745 AC_CHECK_HEADERS(libsmbclient.h,
1746 [ VLC_ADD_PLUGIN([access_smb])
1747 VLC_ADD_LIBS([access_smb],[-lsmbclient]) ],
1748 [ if test -n "${enable_smb}"; then
1749 AC_MSG_ERROR([cannot find libsmbclient headers])
1755 dnl sftp access support
1758 [AS_HELP_STRING([--enable-sftp],
1759 [support SFTP file transfer via libssh2 (default disabled)])])
1760 if test "${enable_sftp}" = "yes"; then
1761 AC_CHECK_HEADERS(libssh2.h, [
1762 VLC_ADD_PLUGIN([access_sftp])
1763 VLC_ADD_LIBS([access_sftp], [-lssh2])
1770 AC_ARG_ENABLE(v4l2, [AS_HELP_STRING([--disable-v4l2],
1771 [disable Video4Linux version 2 (default auto)])])
1772 AC_ARG_ENABLE(pvr, [AS_HELP_STRING([--enable-pvr],
1773 [support PVR V4L2 cards (default disabled)])])
1775 AS_IF([test "$enable_v4l2" != "no"], [
1776 AC_CHECK_HEADERS([linux/videodev2.h sys/videoio.h], [
1780 AS_IF([test "$have_v4l2" = "yes"], [
1781 AS_IF([test "${enable_pvr}" = "yes"], [
1782 VLC_ADD_PLUGIN([pvr])
1785 AM_CONDITIONAL(HAVE_V4L2, [test "${have_v4l2}" != "no"])
1788 dnl special access module for Blackmagic SDI cards
1790 AC_ARG_ENABLE(decklink,
1791 [AS_HELP_STRING([--disable-decklink],
1792 [disable Blackmagic DeckLink SDI input (default auto)])])
1793 AC_ARG_WITH(decklink_sdk,
1794 [AS_HELP_STRING[--with-decklink-sdk=DIR],
1795 [ location of Blackmagic DeckLink SDI SDK])])
1796 if test "${enable_decklink}" != "no"
1798 if test "${with_decklink_sdk}" != "no" -a -n "${with_decklink_sdk}"
1800 VLC_ADD_CPPFLAGS([decklink],[-I${with_decklink_sdk}/include])
1803 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_decklink}"
1805 AC_CHECK_HEADERS(DeckLinkAPIDispatch.cpp, [
1806 VLC_ADD_PLUGIN([decklink])
1807 ],[AC_MSG_WARN(Blackmagic DeckLink SDI include files not found, decklink disabled)])
1814 dnl gnomeVFS access module
1816 PKG_ENABLE_MODULES_VLC([GNOMEVFS], [access_gnomevfs], [gnome-vfs-2.0], [GnomeVFS access module], [auto])
1822 [AS_HELP_STRING([--enable-vcdx],
1823 [navigate VCD with libvcdinfo (default disabled)])])
1824 if test "${enable_vcdx}" = "yes"
1826 PKG_CHECK_MODULES(LIBCDIO, [libcdio >= 0.78.2 libiso9660 >= 0.72],
1827 [VLC_ADD_LIBS([vcdx],[$LIBCDIO_LIBS])
1828 VLC_ADD_CFLAGS([vcdx],[$LIBCDIO_CFLAGS])],
1829 [AC_MSG_ERROR([${LIBCDIO_PKG_ERRORS} (required for vcdx plugin).])])
1830 PKG_CHECK_MODULES(LIBVCDINFO, libvcdinfo >= 0.7.22,
1831 [VLC_ADD_LIBS([vcdx],[$LIBVCDINFO_LIBS])
1832 VLC_ADD_CFLAGS([vcdx],[$LIBVCDINFO_CFLAGS])],
1833 [AC_MSG_ERROR([${LIBVCDINFO_PKG_ERRORS} (required for vcdx plugin).])])
1834 VLC_ADD_PLUGIN([vcdx])
1838 dnl Built-in CD-DA and VCD module
1841 [AS_HELP_STRING([--disable-vcd],
1842 [disable built-in VCD and CD-DA support (default enabled)])])
1844 AC_ARG_ENABLE(libcddb,
1845 [AS_HELP_STRING([--disable-libcddb],
1846 [disable CDDB for Audio CD (default enabled)])])
1848 if test "${enable_vcd}" != "no"
1850 AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
1851 AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
1853 VLC_ADD_PLUGIN([vcd cdda])
1858 AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
1859 AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
1861 VLC_ADD_PLUGIN([vcd cdda])
1862 AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
1867 AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
1868 AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
1870 VLC_ADD_PLUGIN([vcd cdda])
1871 AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
1876 if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32" -o "${SYS}" = "os2"
1878 VLC_ADD_PLUGIN([vcd cdda])
1881 if test "${SYS}" = "darwin"
1883 VLC_ADD_PLUGIN([vcd cdda])
1884 VLC_ADD_LIBS([vcd vcdx cdda],[-Wl,-framework,IOKit,-framework,CoreFoundation])
1885 VLC_ADD_LIBS([vcdx cdda],[-liconv])
1888 if test "$enable_libcddb" != "no"; then
1889 PKG_CHECK_MODULES(LIBCDDB, [libcddb >= 0.9.5], [
1891 AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
1892 VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
1893 VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
1895 [AC_MSG_WARN([${LIBCDDB_PKG_ERRORS}: CDDB access disabled.])
1903 AC_CACHE_CHECK([for Linux DVB version 5.1], [ac_cv_linux_dvb_5_1], [
1904 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
1905 [#include <linux/dvb/version.h>
1906 #if (DVB_API_VERSION < 5)
1907 # error Linux DVB API v3.2 and older are not supported.
1909 #if (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR < 1)
1910 # error Linux DVB API v5.0 is unsupported. Please update.
1913 ac_cv_linux_dvb_5_1=yes
1915 ac_cv_linux_dvb_5_1=no
1917 AM_CONDITIONAL([HAVE_LINUX_DVB], [test "$ac_cv_linux_dvb_5_1" = "yes"])
1920 dnl Screen capture module
1922 AC_ARG_ENABLE(screen,
1923 [AS_HELP_STRING([--enable-screen],
1924 [disable screen capture (default enabled)])])
1925 if test "${enable_screen}" != "no"; then
1926 if test "${SYS}" = "darwin"; then
1927 AC_CHECK_HEADERS(OpenGL/gl.h, [
1928 AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
1929 VLC_ADD_PLUGIN([screen])
1930 VLC_ADD_LIBS([screen],[-Wl,-framework,OpenGL,-framework,ApplicationServices])
1933 elif test "${SYS}" = "mingw32"; then
1934 VLC_ADD_PLUGIN([screen])
1935 VLC_ADD_LIBS([screen],[-lgdi32])
1940 dnl Real RTSP plugin
1942 AC_ARG_ENABLE(realrtsp,
1943 [ --enable-realrtsp Real RTSP module (default disabled)])
1944 if test "${enable_realrtsp}" = "yes"; then
1945 VLC_ADD_PLUGIN([access_realrtsp])
1950 AC_ARG_ENABLE(macosx-eyetv,
1951 [ --enable-macosx-eyetv Mac OS X EyeTV (TNT Tuner) module (default enabled on Mac OS X)])
1952 if test "x${enable_macosx_eyetv}" != "xno" &&
1953 (test "${SYS}" = "darwin" || test "${enable_macosx_eyetv}" = "yes")
1955 VLC_ADD_LIBS([access_eyetv], [-Wl,-framework,Foundation])
1956 VLC_ADD_PLUGIN([access_eyetv])
1961 AC_ARG_ENABLE(macosx-qtkit,
1962 [ --enable-macosx-qtkit Mac OS X qtcapture (video) and qtsound (audio) module (default enabled on Mac OS X)])
1963 if test "x${enable_macosx_qtkit}" != "xno" &&
1964 (test "${SYS}" = "darwin" || test "${enable_macosx_qtkit}" = "yes")
1966 VLC_ADD_PLUGIN([qtcapture])
1967 VLC_ADD_PLUGIN([qtsound])
1969 AM_CONDITIONAL(HAVE_QTKIT, [test "${SYS}" = "darwin" -a "x${enable_macosx_qtkit}" != "xno"])
1976 EXTEND_HELP_STRING([Mux/Demux plugins:])
1979 dnl libdvbpsi check for ts mux/demux
1982 PKG_WITH_MODULES([DVBPSI], [libdvbpsi], [have_dvbpsi="yes"])
1983 AM_CONDITIONAL(HAVE_DVBPSI, [test "${have_dvbpsi}" = "yes"])
1987 dnl GME demux plugin
1990 [AS_HELP_STRING([--enable-gme],
1991 [use Game Music Emu (default auto)])])
1992 AS_IF([test "${enable_gme}" != "no"], [
1993 AC_CHECK_HEADER([gme/gme.h], [
1994 VLC_ADD_LIBS([gme], [-lgme])
1995 VLC_ADD_PLUGIN([gme])
1997 AS_IF([test "x${enable_gme}" != "x"], [
1998 AC_MSG_ERROR([GME cannot be found. Please install the development files.])
2008 [AS_HELP_STRING([--enable-sid],[C64 sid demux support (default auto)])])
2009 AS_IF([test "${enable_sid}" != "no"], [
2010 PKG_CHECK_MODULES(SID, [libsidplay2], [
2012 oldCPPFLAGS="$CPPFLAGS"
2013 CPPFLAGS="$CPPFLAGS $SID_CFLAGS"
2014 AC_CHECK_HEADER([sidplay/builders/resid.h], [
2015 VLC_ADD_PLUGIN([sid])
2016 VLC_ADD_CFLAGS([sid], [$SID_CFLAGS])
2017 VLC_ADD_LIBS([sid], [$SID_LIBS] [-lresid-builder])
2019 AS_IF([test -n "${enable_sid}"],
2020 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2021 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2024 CPPFLAGS="$oldCPPFLAGS"
2027 AS_IF([test "x${enable_sid}" = "xyes"],
2028 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2029 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2036 dnl ogg demux plugin
2038 PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto])
2039 if test "${enable_sout}" != "no"; then
2040 PKG_ENABLE_MODULES_VLC([MUX_OGG], [], [ogg >= 1.0], [Ogg mux support], [auto])
2041 dnl Check for libshout
2042 PKG_ENABLE_MODULES_VLC([SHOUT], [access_output_shout], [shout >= 2.1], [libshout output plugin], [auto])
2046 dnl matroska demux plugin
2049 [AS_HELP_STRING([--disable-mkv],
2050 [do not use libmatroska (default auto)])])
2051 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2053 AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2054 AC_MSG_CHECKING(for libebml version >= 1.0.0)
2056 [#include <ebml/EbmlVersion.h>
2057 #ifdef LIBEBML_VERSION
2058 #if LIBEBML_VERSION >= 0x010000
2062 [AC_MSG_RESULT([yes])
2063 AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2064 AC_MSG_CHECKING(for libmatroska version >= 1.0.0)
2066 [#include <matroska/KaxVersion.h>
2067 #ifdef LIBMATROSKA_VERSION
2068 #if LIBMATROSKA_VERSION >= 0x010000
2072 [AC_MSG_RESULT([yes])
2073 AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2074 VLC_ADD_CXXFLAGS([mkv],[])
2075 AC_CHECK_LIB(ebml_pic, main, [
2076 VLC_ADD_PLUGIN([mkv])
2077 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2079 AC_CHECK_LIB(ebml, main, [
2080 VLC_ADD_PLUGIN([mkv])
2081 VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2086 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.])
2090 [AC_MSG_RESULT([no])
2091 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.])
2098 dnl modplug demux plugin
2101 [AS_HELP_STRING([--disable-mod],
2102 [do not use libmodplug (default auto)])])
2103 if test "${enable_mod}" != "no" ; then
2104 PKG_CHECK_MODULES(LIBMODPLUG, [libmodplug >= 0.8.4 libmodplug != 0.8.8], [
2105 VLC_ADD_PLUGIN([mod])
2106 VLC_ADD_CXXFLAGS([mod],[$LIBMODPLUG_CFLAGS])
2107 VLC_ADD_LIBS([mod],[$LIBMODPLUG_LIBS])
2109 AS_IF([test -n "${enable_mod}"],
2110 [AC_MSG_ERROR([${LIBMODPLUG_PKG_ERRORS}.])],
2111 [AC_MSG_WARN([${LIBMODPLUG_PKG_ERRORS}.])])
2116 dnl mpc demux plugin
2119 [AS_HELP_STRING([--disable-mpc], [do not use libmpcdec (default auto)])])
2120 if test "${enable_mpc}" != "no"
2122 AC_CHECK_HEADERS([mpc/mpcdec.h], [
2123 VLC_ADD_PLUGIN([mpc])
2124 VLC_ADD_LIBS([mpc],[-lmpcdec])],
2125 [AC_CHECK_HEADERS([mpcdec/mpcdec.h], [
2126 VLC_ADD_PLUGIN([mpc])
2127 VLC_ADD_LIBS([mpc],[-lmpcdec])])])
2134 EXTEND_HELP_STRING([Codec plugins:])
2139 AC_ARG_ENABLE(wma-fixed,
2140 [ --enable-wma-fixed libwma-fixed module (default disabled)])
2141 if test "${enable_wma_fixed}" = "yes"
2143 VLC_ADD_PLUGIN([wma_fixed])
2147 dnl shine fixed point mp3 encoder
2149 AC_ARG_ENABLE(shine,
2150 [ --enable-shine shine mp3 encoding module (default disabled)])
2151 if test "${enable_shine}" = "yes"
2153 VLC_ADD_PLUGIN([shine])
2157 dnl openmax il codec plugin
2159 AC_ARG_ENABLE(omxil,
2160 [ --enable-omxil openmax il codec module (default disabled)])
2161 if test "${enable_omxil}" = "yes"
2163 VLC_ADD_PLUGIN([omxil])
2164 VLC_ADD_LIBS([omxil], [$LIBDL])
2168 dnl iomx codec plugin
2171 [ --enable-iomx iomx codec module (default disabled)])
2172 if test "${enable_iomx}" = "yes"
2174 VLC_ADD_PLUGIN([iomx])
2178 dnl CrystalHD codec plugin
2180 AC_ARG_ENABLE(crystalhd,
2181 [ --enable-crystalhd crystalhd codec plugin (default auto)])
2182 if test "${enable_crystalhd}" != "no"; then
2183 AC_CHECK_HEADER(libcrystalhd/libcrystalhd_if.h, [
2184 VLC_ADD_PLUGIN([crystalhd])
2185 VLC_ADD_LIBS([crystalhd], [-lcrystalhd])
2187 if test "${SYS}" = "mingw32" ; then
2188 AC_CHECK_HEADERS(libcrystalhd/bc_dts_defs.h, [
2189 VLC_ADD_PLUGIN([crystalhd])
2190 AC_CHECK_HEADERS(libcrystalhd/bc_drv_if.h, [
2191 VLC_ADD_LIBS([crystalhd], [-lbcmDIL])
2194 AS_IF([test x"${enable_crystalhd}" = "xyes"],
2195 [AC_MSG_ERROR("Could not find CrystalHD development headers")],
2196 [AC_MSG_WARN("Could not find CrystalHD development headers")])
2197 ],[#define __LINUX_USER__
2198 #include <libcrystalhd/bc_dts_types.h>
2202 #include <libcrystalhd/bc_dts_types.h>
2210 [ --enable-mad libmad module (default enabled)])
2211 if test "${enable_mad}" != "no"
2214 [ --with-mad=PATH path to libmad],[],[])
2215 if test "${with_mad}" != "no" -a -n "${with_mad}"
2217 VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2218 VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2221 AC_ARG_WITH(mad-tree,
2222 [ --with-mad-tree=PATH mad tree for static linking],[],[])
2223 if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2225 real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2226 if test -z "${real_mad_tree}"
2228 dnl The given directory can't be found
2230 AC_MSG_ERROR([${with_mad_tree} directory does not exist])
2232 dnl Use a custom libmad
2233 AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2234 if test -f ${real_mad_tree}/mad.h
2237 VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2238 VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2240 LDFLAGS="${LDFLAGS} ${LIBS_mpgatofixed32}"
2241 AC_CHECK_LIB(mad, mad_bit_init, [
2242 VLC_ADD_PLUGIN([mpgatofixed32])
2243 VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2244 ],[ AC_MSG_ERROR([the specified tree has not been compiled ])
2249 AC_MSG_ERROR([the specified tree does not have mad.h])
2253 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_mpgatofixed32}"
2254 LDFLAGS="${LDFLAGS} ${LIBS_mpgatofixed32}"
2255 AC_CHECK_HEADERS(mad.h, ,
2256 [ 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.]) ])
2257 AC_CHECK_LIB(mad, mad_bit_init, [
2258 VLC_ADD_PLUGIN([mpgatofixed32])
2259 VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2260 [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2266 AC_ARG_ENABLE(merge-ffmpeg,
2267 [ --enable-merge-ffmpeg merge FFmpeg-based plugins (default disabled)],, [
2268 enable_merge_ffmpeg="no"
2270 AM_CONDITIONAL([MERGE_FFMPEG], [test "$enable_merge_ffmpeg" != "no"])
2273 LDFLAGS="${LDFLAGS} -Wl,-Bsymbolic"
2274 AC_CACHE_CHECK([if linker supports -Bsymbolic],
2275 [ac_cv_ld_bsymbolic],
2276 [AC_TRY_LINK([],,ac_cv_ld_bsymbolic=yes,ac_cv_ld_bsymbolic=no)])
2280 dnl avcodec decoder/encoder plugin
2282 AC_ARG_ENABLE(avcodec,
2283 [ --enable-avcodec libavcodec codec (default enabled)])
2284 AS_IF([test "${enable_avcodec}" != "no"], [
2285 PKG_CHECK_MODULES(AVCODEC,[libavcodec >= 52.25.0 libavutil >= 49.5.0],
2288 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2289 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2290 AC_CHECK_HEADERS(libavcodec/avcodec.h)
2291 AC_CHECK_HEADERS(libavutil/avutil.h)
2292 VLC_ADD_PLUGIN([avcodec])
2293 VLC_ADD_LIBS([avcodec],[$AVCODEC_LIBS])
2294 AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2295 VLC_ADD_LIBS([avcodec],[-Wl,-Bsymbolic])
2297 VLC_ADD_CFLAGS([avcodec],[$AVCODEC_CFLAGS])
2301 AC_MSG_ERROR([${AVCODEC_PKG_ERRORS}. Pass --disable-avcodec to ignore this error.])
2308 dnl libva needs avcodec
2310 AC_ARG_ENABLE(libva,
2311 [ --enable-libva VAAPI GPU decoding support (libVA) (default auto)])
2313 AS_IF([test "${enable_libva}" = "yes" -a "${have_avcodec}" != "yes" ], [
2314 AC_MSG_ERROR([--enable-libva and --disable-avcodec options are mutually exclusive. Use --enable-avcodec.])
2316 AS_IF([test "${enable_libva}" != "no"], [
2317 PKG_CHECK_MODULES(LIBVA, [libva libva-x11], [
2319 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2320 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2321 AC_CHECK_HEADERS(libavcodec/vaapi.h, [
2322 VLC_ADD_LIBS([avcodec],[$LIBVA_LIBS ${X_LIBS} ${X_PRE_LIBS} -lX11])
2323 VLC_ADD_CFLAGS([avcodec],[$LIBVA_CFLAGS ${X_CFLAGS}])
2324 AC_DEFINE(HAVE_AVCODEC_VAAPI, 1, [Define if avcodec has to be built with VAAPI support.])
2325 AC_MSG_NOTICE([VAAPI acceleration activated])
2327 AS_IF([test -n "${enable_libva}"], [
2328 AC_MSG_ERROR([libva is present but libavcodec/vaapi.h is missing])
2330 AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing ])
2335 AS_IF([test -n "${enable_libva}"], [
2336 AC_MSG_ERROR([${LIBVA_PKG_ERRORS}.])
2338 AC_MSG_WARN([${LIBVA_PKG_ERRORS}.])
2344 dnl dxva2 needs avcodec
2346 AC_ARG_ENABLE(dxva2,
2347 [ --enable-dxva2 DxVA2 GPU decoding support (default auto)])
2349 AS_IF([test "${enable_dxva2}" != "no"], [
2350 if test "${SYS}" = "mingw32"; then
2351 AS_IF([test "x${have_avcodec}" = "xyes"], [
2352 AC_CHECK_HEADERS(dxva2api.h,
2354 AC_CHECK_HEADERS(libavcodec/dxva2.h, [
2355 VLC_ADD_LIBS([avcodec],[-lole32 -lshlwapi -luuid])
2356 AC_DEFINE(HAVE_AVCODEC_DXVA2, 1, [Define if avcodec has to be built with DxVA2 support.])
2357 echo "DxVA2 acceleration activated"
2359 AS_IF([test "${enable_dxva2}" = "yes"],
2360 [AC_MSG_ERROR([dxva2 is present but libavcodec/dxva2.h is missing])],
2361 [AC_MSG_WARN([dxva2 is present but libavcodec/dxva2.h is missing ])])
2362 ], [#undef _WIN32_WINNT
2363 /* DXVA2 is only available in Vista and above */
2364 #define _WIN32_WINNT 0x600])
2366 AS_IF([test "${enable_dxva2}" = "yes"],
2367 [AC_MSG_ERROR([Could not find required dxva2api.h])],
2368 [AC_MSG_WARN([dxva2api.h not found])])
2371 AS_IF([test "x${enable_dxva2}" != "x"], [
2372 AC_MSG_ERROR([--enable-dxva2 and --disable-avcodec options are mutually exclusive.])
2379 dnl vda needs avcodec
2382 [ --enable-vda VDA support (default auto)])
2384 AS_IF([test "${enable_vda}" != "no"], [
2385 if test "${SYS}" = "darwin"; then
2386 AS_IF([test "x${have_avcodec}" = "xyes"], [
2387 AC_CHECK_HEADERS(VideoDecodeAcceleration/VDADecoder.h,
2389 AC_CHECK_HEADERS(libavcodec/vda.h, [
2390 VLC_ADD_LIBS([avcodec],[-Wl,-framework,CoreFoundation,-framework,VideoDecodeAcceleration,-framework,QuartzCore])
2391 VLC_ADD_LDFLAGS([vda],[-Wl,-framework,CoreFoundation,-framework,VideoDecodeAcceleration,-framework,QuartzCore])
2392 AC_DEFINE(HAVE_AVCODEC_VDA, 1, [Define if avcodec has to be built with VDA support.])
2394 AS_IF([test "${enable_vda}" == "yes"],
2395 [AC_MSG_ERROR([vda is present but libavcodec/vda.h is missing])],
2396 [AC_MSG_WARN([vda is present but libavcodec/vda.h is missing ])])
2399 AS_IF([test "${enable_vda}" == "yes"],
2400 [AC_MSG_ERROR([Could not find required VideoDecodeAcceleration/VDADecoder.h])],
2401 [AC_MSG_WARN([VideoDecodeAcceleration/VDADecoder.h not found])])
2404 AS_IF([test "x${enable_vda}" != "x"], [
2405 AC_MSG_ERROR([--enable-vda and --disable-avcodec options are mutually exclusive.])
2412 dnl stream_out switcher needs libavcodec
2414 AC_ARG_ENABLE(switcher,
2415 [ --enable-switcher Stream-out switcher plugin (default disabled)])
2416 AS_IF([test "${enable_switcher}" = "yes"], [
2417 AS_IF([test "x${have_avcodec}" = "xyes"], [
2418 VLC_ADD_PLUGIN([stream_out_switcher])
2419 VLC_ADD_LIBS([stream_out_switcher],[$AVCODEC_LIBS $AVUTIL_LIBS $LIBM])
2420 VLC_ADD_CFLAGS([stream_out_switcher],[$AVCODEC_CFLAGS $AVUTIL_CFLAGS])
2421 ],[AC_MSG_ERROR([Stream_out switcher depends on avcodec])
2427 dnl avformat demuxer/muxer plugin
2430 AC_ARG_ENABLE(avformat,
2431 [ --enable-avformat libavformat containers (default enabled)],, [
2432 enable_avformat="${have_avcodec}"
2434 if test "${enable_avformat}" != "no"
2436 PKG_CHECK_MODULES(AVFORMAT,[libavformat > 52.30.0 libavcodec libavutil],
2439 CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2440 CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2441 AC_CHECK_HEADERS(libavformat/avformat.h libavformat/avio.h)
2442 AC_CHECK_HEADERS(libavutil/avutil.h)
2443 AS_IF([test "$enable_merge_ffmpeg" = "no"], [
2444 VLC_ADD_PLUGIN([avformat access_avio])
2445 VLC_ADD_LIBS([avformat access_avio],[$AVFORMAT_LIBS $AVUTIL_LIBS])
2446 VLC_ADD_CFLAGS([avformat access_avio],[$AVFORMAT_CFLAGS $AVUTIL_CFLAGS])
2447 AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2448 VLC_ADD_LIBS([avformat access_avio],[-Wl,-Bsymbolic])
2451 VLC_ADD_LIBS([avcodec],[$AVFORMAT_LIBS $AVUTIL_LIBS])
2452 VLC_ADD_CFLAGS([avcodec],[$AVFORMAT_CFLAGS $AVUTIL_CFLAGS])
2456 AC_MSG_ERROR([${AVFORMAT_PKG_ERRORS}. Pass --disable-avformat to ignore this error.])
2461 dnl swscale image scaling and conversion plugin
2464 AC_ARG_ENABLE(swscale,
2465 AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
2466 (default enabled)]))
2467 if test "${enable_swscale}" != "no"
2469 PKG_CHECK_MODULES(SWSCALE,[libswscale],
2472 CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
2473 CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
2474 AC_CHECK_HEADERS(libswscale/swscale.h)
2475 VLC_ADD_PLUGIN([swscale])
2476 VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
2477 VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
2478 AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2479 VLC_ADD_LIBS([swscale],[-Wl,-Bsymbolic])
2483 AC_MSG_ERROR([${SWSCALE_PKG_ERRORS}. Pass --disable-swscale to ignore this error. Proper software scaling and some video chroma conversion will be missing.])
2491 AC_ARG_ENABLE(postproc,
2492 [ --enable-postproc libpostproc image post-processing (default enabled)])
2493 if test "${enable_postproc}" != "no"
2495 PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
2498 CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
2499 CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
2500 AC_CHECK_HEADERS(postproc/postprocess.h)
2501 VLC_ADD_PLUGIN([postproc])
2502 VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS $AVUTIL_LIBS])
2503 VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS $AVUTIL_CFLAGS])
2506 AC_MSG_ERROR([${POSTPROC_PKG_ERRORS}. Pass --disable-postproc to ignore this error.])
2511 dnl faad decoder plugin
2514 [ --enable-faad faad codec (default auto)])
2515 if test "${enable_faad}" != "no"; then
2516 AC_ARG_WITH(faad-tree, [ --with-faad-tree=PATH faad tree for static linking])
2517 if test -n "${with_faad_tree}"; then
2518 AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
2519 real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
2520 if test -z "${real_faad_tree}"; then
2521 dnl The given directory can't be found
2523 AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
2525 if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"; then
2526 dnl Use the custom faad
2527 AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
2528 VLC_ADD_PLUGIN([faad])
2529 VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
2530 VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
2532 dnl The given libfaad wasn't built
2534 AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
2538 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_faad}"
2539 LDFLAGS="${LDFLAGS} ${LIBS_faad}"
2540 AC_CHECK_HEADERS(faad.h,
2541 [ AC_CHECK_LIB(faad, faacDecOpen, [
2542 VLC_ADD_PLUGIN([faad])
2543 VLC_ADD_LIBS([faad],[-lfaad]) ], [
2544 AC_CHECK_LIB(faad, NeAACDecOpen, [
2545 VLC_ADD_PLUGIN([faad])
2546 VLC_ADD_LIBS([faad],[-lfaad]) ], [
2547 AS_IF([test "${enable_faad}" = "yes"],
2548 [ AC_MSG_ERROR([Cannot find libfaad library...]) ],
2549 [ AC_MSG_WARN([Cannot find libfaad library...]) ]) ]) ])
2550 ] , [ AS_IF([test "${enable_faad}" = "yes"],
2551 [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ],
2552 [ AC_MSG_WARN([Cannot find development headers for libfaad...]) ]) ])
2558 dnl twolame encoder plugin
2560 PKG_ENABLE_MODULES_VLC([TWOLAME], [], [twolame], [MPEG Audio Layer 2 encoder], [auto], [], [], [ -DLIBTWOLAME_STATIC])
2563 dnl QuickTime plugin
2565 AC_ARG_ENABLE(quicktime,
2566 [ --enable-quicktime QuickTime module (deprecated)])
2567 if test "${enable_quicktime}" = "yes"; then
2568 if test "${SYS}" = "mingw32"; then
2569 VLC_ADD_PLUGIN([quicktime])
2571 AC_CHECK_HEADERS(QuickTime/QuickTime.h,
2572 [ VLC_ADD_PLUGIN([quicktime])
2573 VLC_ADD_LIBS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
2574 ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
2579 dnl A52/AC3 decoder plugin
2582 [ --enable-a52 A/52 support with liba52 (default enabled)])
2583 if test "${enable_a52}" != "no"
2586 [ --with-a52=PATH a52 headers and libraries])
2587 AC_ARG_WITH(a52-tree,
2588 [ --with-a52-tree=PATH a52dec tree for static linking ],[],[])
2589 if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
2591 real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
2592 if test -z "${real_a52_tree}"
2594 dnl The given directory can't be found
2596 AC_MSG_ERROR([${with_a52_tree} directory does not exist])
2598 dnl Use a custom a52dec
2599 AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
2600 if test -f ${real_a52_tree}/include/a52.h
2603 VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
2604 VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
2606 LDFLAGS="${LDFLAGS} ${LIBS_a52tofloat32}"
2607 AC_CHECK_LIB(a52, a52_free, [
2608 VLC_ADD_PLUGIN([a52tofloat32])
2609 VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
2610 VLC_ADD_LIBS([a52tofloat32],[-la52])
2612 if test -f ${real_a52_tree}/liba52/.libs/liba52.a
2614 AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
2616 AC_MSG_ERROR([the specified tree has not been compiled])
2621 AC_MSG_ERROR([the specified tree does not have a52.h])
2624 if test -z "${with_a52}"
2629 LDFLAGS_test="-L${with_a52}/lib"
2630 CPPFLAGS_test="-I${with_a52}/include"
2633 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
2634 LDFLAGS="${LDFLAGS} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
2635 AC_CHECK_HEADERS(a52dec/a52.h, [
2636 AC_CHECK_LIB(a52, a52_free, [
2637 VLC_ADD_PLUGIN([a52tofloat32])
2638 VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
2639 VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
2641 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.])
2644 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.])
2650 AC_ARG_WITH(a52-fixed,
2651 [ --with-a52-fixed specify if liba52 has been compiled with fixed point support],
2653 VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
2656 dnl DTS Coherent Acoustics decoder plugin
2658 PKG_ENABLE_MODULES_VLC([DCA], [dtstofloat32], [libdca >= 0.0.5], [DTS Coherent Acoustics support with libdca], [auto])
2663 PKG_ENABLE_MODULES_VLC([FLAC], [], [flac], [libflac decoder/encoder support], [auto])
2668 PKG_ENABLE_MODULES_VLC([LIBMPEG2], [], [libmpeg2 > 0.3.2], [libmpeg2 decoder support], [auto])
2673 PKG_ENABLE_MODULES_VLC([VORBIS], [], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
2678 AC_ARG_ENABLE(tremor,
2679 [ --enable-tremor Tremor decoder support (default disabled)])
2680 if test "${enable_tremor}" = "yes"
2682 AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
2683 VLC_ADD_PLUGIN([tremor])
2684 VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
2691 PKG_ENABLE_MODULES_VLC([SPEEX], [], [ogg speex >= 1.0.5], [Speex support], [auto])
2693 AS_IF([test "${enable_speex}" != "no"], [
2694 PKG_CHECK_MODULES([SPEEXDSP], [speexdsp], [
2697 AC_MSG_WARN([${SPEEXDSP_PKG_ERRORS}.])
2700 AM_CONDITIONAL([HAVE_SPEEXDSP], [test "$have_speexdsp" = "yes"])
2705 PKG_ENABLE_MODULES_VLC([OPUS], [], [ogg opus], [Opus support], [auto])
2708 dnl theora decoder plugin
2710 PKG_ENABLE_MODULES_VLC([THEORA], [], [ogg theoradec >= 1.0 theoraenc], [experimental theora codec], [auto])
2713 dnl dirac encoder plugin
2715 PKG_ENABLE_MODULES_VLC([DIRAC], [], [dirac >= 0.10.0], [dirac encoder], [auto])
2718 dnl schroedinger decoder plugin (for dirac format video)
2720 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [], [schroedinger-1.0 >= 1.0.10], [dirac decoder and encoder using schroedinger], [auto])
2723 dnl PNG decoder module
2726 [ --enable-png PNG support (default enabled)])
2727 if test "${enable_png}" != "no"; then
2728 AC_CHECK_HEADERS(png.h, [
2730 LDFLAGS="${LDFLAGS} -lz $LIBM"
2731 AC_CHECK_LIB(png, png_set_rows, [
2732 VLC_ADD_LIBS([png],[-lpng -lz $LIBM])
2733 VLC_ADD_PLUGIN([png osdmenu osd_parser])],
2738 AM_CONDITIONAL(BUILD_OSDMENU, [test "${enable_png}" != "no"])
2741 dnl H264 encoder plugin (10-bit lib264)
2743 AC_ARG_ENABLE(x26410b,
2744 [ --enable-x26410b H264 10-bit encoding support with static libx264 (default disabled)])
2745 if test "${enable_x26410b}" != "no"; then
2746 AC_ARG_WITH(x26410b-tree,
2747 [ --with-x26410b-tree=PATH H264 10-bit encoding module with libx264 (static linking)],[],[])
2748 if test "${with_x26410b_tree}" != "no" -a -n "${with_x26410b_tree}"
2750 real_x26410b_tree="̧`cd ${with_x26410b_tree} 2>/dev/null && pwd`"
2751 if test -z "${real_x26410b_tree}"
2754 AC_MSG_ERROR([${with_x26410b_tree} directory does not exist])
2756 AC_MSG_CHECKING(for x264.h in ${real_x26410b_tree})
2757 if test -f ${with_x26410b_tree}/x264_config.h
2760 AC_MSG_CHECKING(for 10-bit build of x264)
2761 if grep -q "BIT_DEPTH.*10" ${with_x26410b_tree}/x264_config.h ;then
2763 VLC_ADD_PLUGIN([x26410b])
2764 VLC_ADD_CFLAGS([x26410b],[-I${with_x26410b_tree}])
2765 VLC_ADD_LIBS([x26410b],[-L${with_x26410b_tree} -lm -lpthread -lx264])
2768 AC_MSG_ERROR([${with_x26410b_tree} isnt build 10-bit])
2772 AC_MSG_ERROR([${with_x26410b_tree} doesnt have x264_config.h])
2775 PKG_CHECK_MODULES(X26410B, x26410b, [
2776 VLC_ADD_PLUGIN([x26410b])
2777 VLC_ADD_LDFLAGS([x26410b],[${X26410B_LIBS}])
2778 AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2779 VLC_ADD_LIBS([x26410b],[-Wl,-Bsymbolic])
2781 VLC_ADD_CFLAGS([x26410b],[${X26410B_CFLAGS}])
2782 if echo ${X26410B_LIBS} |grep -q 'pthreadGC2'; then
2783 VLC_ADD_CFLAGS([x26410b], [-DPTW32_STATIC_LIB])
2786 if test "${enable_x26410b}" = "yes"; then
2787 AC_MSG_ERROR([x26410b module doesn't work without staticly compiled libx264.a])
2795 dnl H264 encoder plugin (using libx264)
2798 [ --enable-x264 H264 encoding support with libx264 (default enabled)])
2799 if test "${enable_x264}" != "no"; then
2800 AC_ARG_WITH(x264-tree,
2801 [ --with-x264-tree=PATH x264 tree for static linking ],[],[])
2802 if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
2804 real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
2805 if test -z "${real_x264_tree}"
2807 dnl The given directory can't be found
2809 AC_MSG_ERROR([${with_x264_tree} directory does not exist])
2811 dnl Use a custom libx264
2812 AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
2813 if test -f ${real_x264_tree}/x264.h
2816 VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
2817 VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
2818 PKG_CHECK_MODULES(X264,x264, [
2819 VLC_ADD_PLUGIN([x264])
2820 VLC_ADD_LIBS([x264],[${X264_LIBS}])
2821 VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
2822 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
2823 VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
2826 AC_MSG_ERROR([the specified tree has not been compiled])
2830 AC_MSG_ERROR([the specified tree does not have x264.h])
2833 PKG_CHECK_MODULES(X264,x264 >= 0.86, [
2834 VLC_ADD_PLUGIN([x264])
2835 VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
2837 AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2838 VLC_ADD_LIBS([x264],[-Wl,-Bsymbolic])
2841 VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
2842 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
2843 VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
2846 if test "${enable_x264}" = "yes"; then
2847 AC_MSG_ERROR([${X264_PKG_ERRORS}: you may get it from http://www.videolan.org/x264.html])
2854 dnl libfluidsynth (MIDI synthetizer) plugin
2856 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [], [fluidsynth >= 1.1.2], [MIDI synthetiser with libfluidsynth], [auto])
2859 dnl Teletext Modules
2860 dnl vbi decoder plugin (using libzbvi)
2865 AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
2866 libzvbi (default enabled)]))
2868 AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
2869 zvbi) (default enabled if zvbi is absent)]))
2871 AS_IF( [test "${enable_zvbi}" != "no"],[
2872 PKG_CHECK_MODULES(ZVBI, [zvbi-0.2 >= 0.2.28],
2874 VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
2875 if test "${SYS}" = "mingw32"; then
2876 VLC_ADD_LIBS([zvbi],[ -lpthreadGC2])
2878 VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
2879 VLC_ADD_PLUGIN([zvbi])
2880 AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
2881 AS_IF( [test "${enable_telx}" = "yes"],[
2882 AC_MSG_WARN([The zvbi and telx modules are incompatible. Using zvbi.])
2885 AC_MSG_WARN([${ZVBI_PKG_ERRORS}. Enabling the telx module instead.])
2888 AS_IF( [test "${enable_telx}" != "no" ],[
2889 VLC_ADD_PLUGIN([telx])
2893 dnl libass subtitle rendering module
2895 AC_ARG_ENABLE(libass,
2896 [ --enable-libass Subtitle support using libass (default enabled)])
2897 AS_IF( [test "${enable_libass}" != "no"], [
2898 PKG_CHECK_MODULES(LIBASS, [libass >= 0.9.8],
2900 VLC_ADD_LIBS([libass],[$LIBASS_LIBS])
2901 VLC_ADD_CFLAGS([libass],[$LIBASS_CFLAGS])
2902 VLC_ADD_PLUGIN([libass])
2904 AC_CHECK_HEADERS(fontconfig/fontconfig.h,
2905 [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
2906 VLC_ADD_LIBS([libass],[-lfontconfig])
2909 AC_MSG_WARN([${LIBASS_PKG_ERRORS}.])
2914 dnl kate decoder plugin
2916 PKG_ENABLE_MODULES_VLC([KATE], [], [kate >= 0.3.0], [kate codec], [auto])
2919 dnl tiger rendering for kate decoder plugin
2921 AC_ARG_ENABLE(tiger,
2922 [ --enable-tiger Tiger rendering library for Kate streams (default auto)])
2923 AS_IF([test "${enable_tiger}" != "no"], [
2924 PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
2925 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])
2926 VLC_ADD_CFLAGS([kate],[$TIGER_CFLAGS])
2927 VLC_ADD_LIBS([kate],[$TIGER_LIBS]) ],[
2928 AS_IF([test -n "${enable_tiger}"], [
2929 AC_MSG_ERROR([${TIGER_PKG_ERRORS}.])
2939 EXTEND_HELP_STRING([Video plugins:])
2944 PKG_CHECK_MODULES([GL], [gl], [
2947 AC_CHECK_HEADER([GL/gl.h], [
2956 dnl OpenGL ES 2: depends on EGL 1.1 and is currently unfinished
2957 dnl PKG_ENABLE_MODULES_VLC([GLES2], [], [glesv2], [OpenGL ES v2 support], [auto])
2958 dnl OpenGL ES 1: depends on EGL 1.0 and is currently broken
2959 dnl PKG_ENABLE_MODULES_VLC([GLES1], [], [glesv1_cm], [OpenGL ES v1 support], [auto])
2962 [ --enable-egl OpenGL support through EGL (default disabled)],, [
2965 AS_IF([test "$enable_egl" != "no"], [
2966 PKG_CHECK_MODULES([EGL], [egl], [
2967 VLC_ADD_PLUGIN([gl])
2968 VLC_ADD_PLUGIN([egl])
2977 AC_CHECK_HEADERS(X11/Xlib.h)
2980 dnl X C Bindings modules
2983 [ --enable-xcb X11 support with XCB (default enabled)],, [
2984 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "darwin" -a "${SYS}" != "symbian"], [
2990 AC_ARG_ENABLE(xvideo,
2991 [ --enable-xvideo XVideo support (default enabled)],, [
2992 enable_xvideo="$enable_xcb"
2995 [ --enable-glx OpenGL support through GLX (default enabled)],, [
2996 enable_glx="$enable_xcb"
3000 AS_IF([test "${enable_xcb}" != "no"], [
3002 PKG_CHECK_MODULES(XCB, [xcb >= 1.6])
3004 PKG_CHECK_MODULES(XCB_SHM, [xcb-shm])
3005 PKG_CHECK_MODULES(XCB_COMPOSITE, [xcb-composite])
3007 AS_IF([test "${enable_xvideo}" != "no"], [
3008 PKG_CHECK_MODULES(XCB_XV, [xcb-xv >= 1.1.90.1], [
3009 VLC_ADD_PLUGIN([xcb_xv])
3013 PKG_CHECK_MODULES(XCB_RANDR, [xcb-randr >= 1.3], [
3014 VLC_ADD_PLUGIN([panoramix])
3015 VLC_ADD_LIBS([panoramix],[${XCB_RANDR_LIBS} ${XCB_LIBS}])
3016 VLC_ADD_CFLAGS([panoramix],[${XCB_RANDR_CFLAGS} ${XCB_CFLAGS}])
3018 AC_MSG_WARN([${XCB_RANDR_PKG_ERRORS}. Panoramix filter will not be supported.])
3022 PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms >= 0.3.4], [
3023 PKG_CHECK_MODULES(XPROTO, [xproto])
3024 VLC_ADD_PLUGIN([globalhotkeys])
3025 VLC_ADD_CFLAGS([globalhotkeys], [${XCB_KEYSYMS_CFLAGS} ${XCB_CFLAGS}])
3026 VLC_ADD_LIBS([globalhotkeys], [${XCB_KEYSYMS_LIBS} ${XCB_LIBS}])
3027 VLC_ADD_CFLAGS([xcb_window], [-DHAVE_XCB_KEYSYMS])
3029 AC_MSG_WARN([${XCB_KEYSYMS_PKG_ERRORS}. Hotkeys will not work.])
3032 AS_IF([test "${enable_glx}" != "no"], [
3033 AS_IF([test "${have_gl}" != "yes"], [
3034 AC_MSG_ERROR([${GL_PKG_ERRORS}. Pass --disable-glx if you do not need OpenGL X11 support.])
3036 VLC_ADD_PLUGIN([xcb_glx])
3039 AM_CONDITIONAL([HAVE_XCB], [test "${have_xcb}" = "yes"])
3045 [ --enable-sdl SDL support (default enabled)])
3046 AC_ARG_ENABLE(sdl-image,
3047 [ --enable-sdl-image SDL image support (default enabled)])
3048 if test "${enable_sdl}" != "no"
3050 PKG_CHECK_MODULES(SDL, [sdl >= 1.2.10], [
3051 # SDL on Darwin is heavily patched and can only run SDL_image
3052 if test "${SYS}" != "darwin"; then
3053 VLC_ADD_PLUGIN([vout_sdl])
3055 if test "${SYS}" != "mingw32" -a "${SYS}" != "os2"; then
3056 VLC_ADD_LIBS([vout_sdl],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3058 VLC_ADD_CFLAGS([vout_sdl],[${SDL_CFLAGS}])
3059 VLC_ADD_LIBS([vout_sdl],[${SDL_LIBS}])
3062 AS_IF([ test "${enable_sdl_image}" != "no"],[
3063 PKG_CHECK_MODULES(SDL_IMAGE, [SDL_image >= 1.2.10], [
3064 VLC_ADD_PLUGIN([sdl_image])
3065 VLC_ADD_LIBS([sdl_image],[${SDL_IMAGE_LIBS}])
3066 VLC_ADD_CFLAGS([sdl_image], [${SDL_IMAGE_CFLAGS}])],
3067 [ AC_MSG_WARN([${SDL_IMAGE_PKG_ERRORS}. You should install it alongside your SDL package.])
3071 AC_MSG_WARN([${SDL_PKG_ERRORS}.])
3078 AC_ARG_ENABLE(macosx-vout,
3079 [ --enable-macosx-vout Mac OS X video output module (default enabled on Mac OS X)])
3080 if test "x${enable_macosx_vout}" != "xno" &&
3081 (test "${SYS}" = "darwin" || test "${enable_macosx_vout}" = "yes")
3083 VLC_ADD_LIBS([vout_macosx],[-Wl,-framework,Cocoa])
3084 VLC_ADD_LIBS([vout_macosx],[-Wl,-framework,OpenGL])
3085 VLC_ADD_PLUGIN([vout_macosx])
3092 AC_ARG_ENABLE(freetype,
3093 [ --enable-freetype freetype support (default auto)])
3094 AC_ARG_ENABLE(fribidi,
3095 [ --enable-fribidi fribidi support (default auto)])
3096 AC_ARG_ENABLE(fontconfig,
3097 [ --enable-fontconfig fontconfig support (default auto)])
3099 if test "${enable_freetype}" != "no"; then
3100 PKG_CHECK_MODULES(FREETYPE, freetype2, [
3102 VLC_ADD_PLUGIN([freetype])
3103 VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
3104 if test "${SYS}" = "mingw32"; then
3105 VLC_ADD_LIBS([freetype],[-liconv -lz])
3107 VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
3109 AC_CHECK_HEADERS(Carbon/Carbon.h,
3110 [VLC_ADD_LIBS([freetype],[-Wl,-framework,Carbon])])
3112 dnl fontconfig support
3113 if test "${SYS}" != "mingw32"; then
3114 if test "${enable_fontconfig}" != "no"; then
3115 AC_CHECK_HEADERS(fontconfig/fontconfig.h, [
3116 VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
3117 VLC_ADD_LIBS([freetype],[-lfontconfig])
3118 ],[AC_MSG_WARN([library fontconfig not found. Styles will be disabled in freetype])])
3121 VLC_ADD_LIBS([freetype],[-lgdi32])
3125 if test "${enable_fribidi}" != "no"; then
3126 PKG_CHECK_MODULES(FRIBIDI, fribidi, [
3127 VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
3128 VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
3129 ],[AC_MSG_WARN([${FRIBIDI_PKG_ERRORS}. Bidirectional support will be disabled in FreeType.])])
3134 AS_IF([test -n "${enable_freetype}"],[
3135 AC_MSG_ERROR([${FREETYPE_PKG_ERRORS}. Install FreeType2 development or configure with --disable-freetype.])
3142 dnl QuartzText vout module (iOS/Mac OS)
3144 AC_ARG_ENABLE(macosx-quartztext,
3145 [ --enable-macosx-quartztext Mac OS X quartz text module (default enabled on Mac OS X)])
3146 if test "x${enable_macosx_quartztext}" != "xno" &&
3147 (test "${SYS}" = "darwin" || test "${enable_macosx_quartztext}" = "yes")
3149 VLC_ADD_PLUGIN([quartztext])
3150 VLC_ADD_LIBS([quartztext],[-Wl,-framework,ApplicationServices])
3156 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3159 dnl android surface module
3161 AC_ARG_ENABLE(android-surface,
3162 [ --enable-android-surface Android Surface video output module (default disabled)])
3163 if test "${enable_android_surface}" = "yes"; then
3164 if test "${HAVE_ANDROID}" = "1"; then
3165 VLC_ADD_PLUGIN([android_surface])
3166 VLC_ADD_LDFLAGS([android_surface], [-ldl])
3174 AC_ARG_ENABLE(ios-vout,
3175 [ --enable-ios-vout iOS video output module (default disabled)])
3176 if test "${enable_ios_vout}" = "yes"
3178 VLC_ADD_PLUGIN([vout_ios])
3179 VLC_ADD_CFLAGS([vout_ios], [-DUSE_OPENGL_ES=1])
3180 VLC_ADD_LIBS([vout_ios], [-Wl,-framework,OpenGLES,-framework,QuartzCore,-framework,UIKit,-framework,Foundation])
3184 dnl Windows DirectX module
3187 if test "${SYS}" = "mingw32"
3189 VLC_ADD_PLUGIN([panoramix])
3192 AC_ARG_ENABLE(directx,
3193 [AS_HELP_STRING([--enable-directx],
3194 [Microsoft DirectX support (default enabled on Windows)])],, [
3195 AS_IF([test "${SYS}" = "mingw32"], [
3196 enable_directx="yes"
3202 AS_IF([test "${enable_directx}" != "no"], [
3204 AC_CHECK_HEADERS(ddraw.h, [
3207 AC_MSG_ERROR([Cannot find DirectX headers!])
3211 AC_CHECK_HEADERS(GL/wglew.h, [
3212 VLC_ADD_PLUGIN([glwin32])
3213 VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
3215 #include <windows.h>
3220 AC_CHECK_HEADERS(d3d9.h, [
3221 VLC_ADD_PLUGIN([direct3d])
3222 VLC_ADD_LIBS([direct3d],[-lgdi32])
3224 VLC_ADD_LIBS([direct3d glwin32],[-lole32 -luuid])
3226 AM_CONDITIONAL([HAVE_DIRECTX], [test "$have_directx" = "yes"])
3229 dnl Windows Direct2D plugin
3231 AC_ARG_ENABLE(direct2d,
3232 [ --enable-direct2d Win7/VistaPU Direct2D support (default auto on Win32)],, [
3233 AS_IF([test "${SYS}" != "mingw32"], [
3234 enable_direct2d="no"
3237 AS_IF([test "${enable_direct2d}" != "no"], [
3238 AC_CHECK_HEADERS(d2d1.h, [
3239 VLC_ADD_PLUGIN([direct2d])
3240 VLC_ADD_LIBS([direct2d],[-lgdi32 -lole32 -luuid])
3242 AC_MSG_WARN([Cannot find Direct2D headers!])
3247 dnl win32 GDI plugin
3249 AC_ARG_ENABLE(wingdi,
3250 [ --enable-wingdi Win32 GDI module (default enabled on Win32)])
3251 if test "${enable_wingdi}" != "no"; then
3252 if test "${SYS}" = "mingw32"; then
3253 VLC_ADD_PLUGIN([wingdi])
3254 VLC_ADD_LIBS([wingdi],[-lgdi32 -lole32 -luuid])
3260 dnl Linux framebuffer module
3262 AC_CHECK_HEADER([linux/fb.h], [
3263 VLC_ADD_PLUGIN([fb])
3269 dnl try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
3270 dnl TODO: support for static linking
3272 AC_ARG_ENABLE(directfb,
3273 [ --enable-directfb DirectFB support (default disabled)])
3274 AC_ARG_WITH(directfb,
3275 [ --with-directfb=PATH path to DirectFB headers and libraries])
3277 if test "${enable_directfb}" = "yes"; then
3278 have_directfb="false"
3279 CPPFLAGS_mydirectfb=
3281 if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
3282 dnl Trying the given location
3285 CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
3286 LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/ -L${with_directfb}/src/.libs/"
3288 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
3289 LIBS="${LIBS} ${LIBS_new}"
3291 dnl FIXME: too obscure
3292 AC_CHECK_HEADER([directfb.h], [
3293 AC_CHECK_LIB([direct],[direct_initialize], [
3294 AC_CHECK_LIB([fusion], [fusion_enter], [
3295 AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
3296 ], have_directfb="false")
3297 ], have_directfb="false")
3298 ], have_directfb="false")
3302 if test "${have_directfb}" = "true"; then
3303 LIBS_mydirectfb="${LIBS_new} -lz $LIBDL -ldirectfb -lfusion -ldirect -lpthread"
3304 CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
3307 dnl Look for directfb-config
3308 AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
3309 if test "${DIRECTFB_CONFIG}" != "no"; then
3310 CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
3311 LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
3312 have_directfb="true"
3314 dnl Trying with pkg-config
3315 PKG_CHECK_MODULES(DIRECTFB, directfb, [
3316 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
3317 LIBS_mydirectfb="${DIRECTFB_LIBS}"
3318 have_directfb="true"
3319 ], [have_directfb="false"])
3322 if test "${have_directfb}" = "true"; then
3323 VLC_ADD_PLUGIN([directfb])
3324 VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
3325 VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
3327 AC_MSG_ERROR([${DIRECTFB_PKG_ERRORS}.])
3335 [ --enable-aa aalib output (default disabled)])
3336 if test "${enable_aa}" = "yes"
3338 AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
3339 if test "${have_aa}" = "true"
3341 VLC_ADD_PLUGIN([aa])
3342 VLC_ADD_LIBS([aa],[-laa])
3343 if test "${SYS}" != "mingw32"; then
3344 VLC_ADD_LIBS([aa],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3352 PKG_ENABLE_MODULES_VLC([CACA], [], [caca >= 0.99.beta14], [libcaca output],[auto])
3358 [AS_HELP_STRING([--enable-kva],
3359 [support the K Video Accelerator KVA (default enabled on OS/2)])],, [
3360 AS_IF([test "$SYS" = "os2"], [
3366 AS_IF([test "$enable_kva" != "no"], [
3367 AC_CHECK_HEADERS([kva.h], [
3369 AC_CHECK_LIB(kva, main, [
3375 AM_CONDITIONAL([HAVE_KVA], [test "${have_kva}" = "yes"])
3381 EXTEND_HELP_STRING([Audio plugins:])
3384 dnl Pulseaudio module
3386 AC_ARG_ENABLE(pulse,
3387 [AS_HELP_STRING([--enable-pulse],
3388 [use the PulseAudio client library (default auto)])])
3390 AS_IF([test "${enable_pulse}" != "no"], [
3391 PKG_CHECK_MODULES([PULSE], [libpulse >= 0.9.22], [
3394 PKG_CHECK_MODULES([PULSE], [libpulse >= 0.9.16], [
3395 AS_IF([test "${no_x}" != "yes"], [
3397 PULSE_LIBS="$PULSE_LIBS ${X_LIBS} ${X_PRE_LIBS} -lX11"
3399 AS_IF([test "${enable_pulse}" = "yes"], [
3400 AC_MSG_ERROR([Xlib is required with PulseAudio pre-0.9.22 versions
3401 (see http://www.pulseaudio.org/ticket/799 for further reference).])
3405 AS_IF([test "x${enable_pulse}" != "x"], [
3406 AC_MSG_ERROR([$PULSE_PKG_ERRORS. PulseAudio 0.9.22 or later required.])
3411 AM_CONDITIONAL([HAVE_PULSE], [test "${have_pulse}" = "yes"])
3417 [AS_HELP_STRING([--enable-alsa],
3418 [support the Advanced Linux Sound Architecture (default auto)])],, [
3419 AS_IF([test "$SYS" = "linux" -a "${have_pulse}" = "no"], [
3424 AS_IF([test "${enable_alsa}" != "no"], [
3425 PKG_CHECK_MODULES([ALSA], [alsa >= 1.0.16], [
3428 AS_IF([test "x${enable_alsa}" != "x"], [
3429 AC_MSG_ERROR([$ALSA_PKG_ERRORS. alsa-lib 1.0.16 or later required.])
3433 AM_CONDITIONAL([HAVE_ALSA], [test "${have_alsa}" = "yes"])
3436 dnl Open Sound System module
3439 [AS_HELP_STRING([--enable-oss],
3440 [support the Open Sound System OSS (default enabled on FreeBSD/NetBSD/DragonFlyBSD)])],, [
3441 AS_IF([test "$SYS" = "mingw32" -o "$SYS" = "linux" -o "$SYS" = "openbsd"], [
3447 AS_IF([test "$enable_oss" != "no"], [
3448 AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
3450 AC_CHECK_LIB(ossaudio, main, [
3451 OSS_LIBS="-lossaudio"
3456 AM_CONDITIONAL([HAVE_OSS], [test "${have_oss}" = "yes"])
3459 dnl OpenBSD sndio module
3461 AC_ARG_ENABLE([sndio],
3462 [AS_HELP_STRING([--disable-sndio],
3463 [support the OpenBSD sndio (default auto)])],, [
3464 AS_IF([test "$SYS" = "opensd"], [
3469 AS_IF([test "$enable_sndio" != "no"], [
3470 AC_CHECK_HEADER([sndio.h], [
3474 AM_CONDITIONAL([HAVE_SNDIO], [test "${have_sndio}" = "yes"])
3477 dnl Windows Audio Session plugin
3479 AC_ARG_ENABLE([wasapi],
3480 [AS_HELP_STRING([--enable-wasapi],
3481 [use the Windows Audio Session API (default auto)])
3484 AS_IF([test "$enable_wasapi" != "no"], [
3485 AC_CHECK_HEADER([audioclient.h], [
3488 AS_IF([test "x${enable_wasapi}" != "x"], [
3489 AC_MSG_ERROR([Windows Audio Session API not found.])
3493 AM_CONDITIONAL([HAVE_WASAPI], [test "${have_wasapi}" = "yes"])
3496 dnl win32 waveOut plugin
3498 AC_ARG_ENABLE(waveout,
3499 [ --enable-waveout Win32 waveOut module (default enabled on Win32)])
3500 if test "${enable_waveout}" != "no"; then
3501 if test "${SYS}" = "mingw32"; then
3502 VLC_ADD_PLUGIN([waveout])
3503 VLC_ADD_LIBS([waveout],[-lwinmm])
3508 dnl CoreAudio plugin
3510 AC_ARG_ENABLE(macosx-audio,
3511 [ --enable-macosx-audio Mac OS X audio module (default enabled on MacOS X)])
3512 if test "x${enable_macosx_audio}" != "xno" &&
3513 (test "${SYS}" = "darwin" || test "${enable_macosx_audio}" = "yes")
3515 AC_CHECK_HEADERS(CoreAudio/CoreAudio.h,
3516 [ VLC_ADD_PLUGIN([auhal])
3517 VLC_ADD_LIBS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
3518 ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
3522 dnl AudioQueue plugin
3524 AC_ARG_ENABLE(audioqueue,
3525 [ --enable-audioqueue AudioQueue audio module (default disabled)])
3526 if test "${enable_audioqueue}" = "yes"
3528 VLC_ADD_PLUGIN([audioqueue])
3529 VLC_ADD_LIBS([audioqueue], [-Wl,-framework,AudioToolbox,-framework,CoreFoundation])
3535 PKG_ENABLE_MODULES_VLC([JACK], [jack access_jack], [jack], [JACK audio I/O modules],[auto])
3538 dnl OpenSLES Android
3540 AC_ARG_ENABLE(opensles,
3541 [ --enable-opensles Android OpenSL ES audio module (default disabled)])
3542 if test "${HAVE_ANDROID}" = "1"; then
3543 if test "${enable_opensles}" = "yes"; then
3544 AC_CHECK_HEADERS(SLES/OpenSLES.h,
3545 [ VLC_ADD_PLUGIN([opensles_android]) ],
3546 [ AC_MSG_ERROR([cannot find OpenSLES headers])] )
3551 dnl libsamplerate plugin
3553 PKG_ENABLE_MODULES_VLC([SAMPLERATE], [], [samplerate], [Resampler with libsamplerate], [auto])
3559 [AS_HELP_STRING([--enable-kai],
3560 [support the K Audio Interface KAI (default enabled on OS/2)])],, [
3561 AS_IF([test "$SYS" = "os2"], [
3567 AS_IF([test "$enable_kai" != "no"], [
3568 AC_CHECK_HEADERS([kai.h], [
3570 AC_CHECK_LIB(kai, main, [
3576 AM_CONDITIONAL([HAVE_KAI], [test "${have_kai}" = "yes"])
3579 dnl Interface plugins
3582 EXTEND_HELP_STRING([Interface plugins:])
3588 AS_HELP_STRING([--disable-qt], [Qt UI support (default enabled)])],, [
3589 AS_IF([test "${SYS}" = "darwin"], [
3593 AS_IF([test "${enable_qt}" != "no"], [
3594 PKG_CHECK_MODULES([QT], [QtCore >= 5 QtWidgets QtGui],, [
3595 PKG_CHECK_MODULES([QT], [QtCore QtGui >= 4.6.0],, [
3596 AS_IF([test -n "${enable_qt}"],[
3597 AC_MSG_ERROR([${QT_PKG_ERRORS}.])
3599 AC_MSG_WARN([${QT_PKG_ERRORS}.])
3605 AS_IF([test "${enable_qt}" != "no"], [
3606 VLC_ADD_PLUGIN([qt4])
3607 VLC_ADD_LIBS([qt4],[${QT_LIBS}])
3608 VLC_ADD_CXXFLAGS([qt4],[${QT_CFLAGS}])
3609 ALIASES="${ALIASES} qvlc"
3614 AC_MSG_CHECKING([whether Qt uses Xlib])
3615 CPPFLAGS="${CPPFLAGS} ${QT_CFLAGS}"
3616 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
3618 #if !defined (Q_WS_X11)
3622 AC_MSG_RESULT([yes])
3623 VLC_ADD_LIBS([qt4],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3624 VLC_ADD_CXXFLAGS([qt4],[${X_CFLAGS}])
3632 AS_IF([test "${SYS}" = "mingw32"], [
3633 VLC_ADD_LIBS([qt4],[-lole32])
3635 AS_IF([test "${SYS}" = "darwin" ],[
3636 VLC_ADD_LIBS([qt4], [-Wl,-framework,Cocoa])
3639 QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix QtCore)"
3640 AC_PATH_PROGS(MOC, [moc-qt4 moc], moc, [${QT_PATH}/bin])
3641 AC_PATH_PROG(RCC, rcc, rcc, [${QT_PATH}/bin])
3642 AC_PATH_PROGS(UIC, [uic-qt4 uic], uic, [${QT_PATH}/bin])
3644 AM_CONDITIONAL(ENABLE_QT4, [test "$enable_qt" != "no"])
3647 dnl Simple test for skins2 dependency
3649 AS_IF([test "$enable_qt" = "no"], [
3650 AS_IF([test "${enable_skins2}" = "yes"], [
3651 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.])
3654 AC_MSG_WARN([The skins2 module depends on the Qt4 interface, Qt4 is not built so skins2 is disabled.])
3661 AC_ARG_ENABLE(skins2,
3662 [AS_HELP_STRING([--enable-skins2], [skins interface module (default auto)])])
3663 AS_IF([test "${enable_skins2}" != "no"], [
3664 have_skins_deps="yes"
3667 AS_IF([test "${SYS}" = "mingw32"], [
3668 VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -DWIN32_SKINS])
3669 VLC_ADD_LIBS([skins2],[-lgdi32 -lole32 -luuid -lmsimg32])
3671 ], [test "${SYS}" = "darwin"], [
3672 VLC_ADD_CPPFLAGS([skins2],[ -DMACOSX_SKINS])
3673 VLC_ADD_LIBS([skins2],[-Wl,-framework,Carbon])
3676 PKG_CHECK_MODULES([XPM], [xpm],, [have_skins_deps="no"])
3677 PKG_CHECK_MODULES([XINERAMA], [xinerama],, [have_skins_deps="no"])
3678 PKG_CHECK_MODULES([XEXT], [xext],, [have_skins_deps="no"])
3679 VLC_ADD_CPPFLAGS([skins2],[${X_CFLAGS} ${XEXT_CFLAGS} ${XPM_CFLAGS} -DX11_SKINS])
3680 VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} ${XEXT_LIBS} ${XPM_LIBS} ${XINERAMA_LIBS} -lX11])
3684 VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3686 dnl we need freetype
3687 AS_IF([test "${have_freetype}" != "yes"], [
3688 have_skins_deps="no"
3691 AS_IF([test "${have_skins_deps}" = "no"], [
3692 AS_IF([test "x${enable_skins2}" = "x"], [
3693 AC_MSG_WARN([Skins2 interface disabled due to missing dependencies.])
3695 AC_MSG_ERROR([Skins2 interface requires FreeType, libxpm, libxext and libxinerama])
3699 VLC_ADD_PLUGIN([skins2])
3700 ALIASES="${ALIASES} svlc"
3704 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes"])
3706 AC_ARG_ENABLE(libtar,
3707 [ --enable-libtar libtar support for skins2 (default auto)])
3708 AS_IF([test "${enable_skins2}" = "yes" && test "${enable_libtar}" != "no"], [
3709 AC_CHECK_HEADERS(libtar.h, [
3710 VLC_ADD_LIBS([skins2],[-ltar])
3715 dnl MacOS X gui module
3717 AC_ARG_ENABLE(macosx,
3718 [ --enable-macosx Mac OS X gui support (default enabled on Mac OS X)])
3719 if test "x${enable_macosx}" != "xno" -a "${SYS}" = "darwin"
3721 VLC_ADD_LIBS([macosx minimal_macosx], [-Wl,-framework,Cocoa -Wl,-framework,OpenGL -Wl,-framework,Carbon -Wl,-framework,CoreServices -Wl,-framework,AGL])
3722 VLC_ADD_OBJCFLAGS([macosx minimal_macosx], [-fobjc-exceptions] )
3723 VLC_ADD_PLUGIN([macosx minimal_macosx])
3725 VLC_ADD_LIBS([macosx], [-Wl,-framework,QTKit -Wl,-framework,IOKit -Wl,-framework,AddressBook -Wl,-framework,WebKit -Wl,-framework,CoreAudio -Wl,-framework,SystemConfiguration])
3727 if test ! -d ${CONTRIB_DIR}/Sparkle.framework
3729 AC_MSG_ERROR([Sparkle framework is required and was not found in ${CONTRIB_DIR}])
3731 VLC_ADD_LIBS([macosx], [-F${CONTRIB_DIR} -Wl,-framework,Sparkle])
3732 VLC_ADD_OBJCFLAGS([macosx], [-F${CONTRIB_DIR}])
3734 if test ! -d ${CONTRIB_DIR}/BGHUDAppKit.framework
3736 AC_MSG_ERROR([BGHUDAppKit framework is required and was not found in ${CONTRIB_DIR}])
3738 VLC_ADD_LIBS([macosx], [-F${CONTRIB_DIR} -Wl,-framework,BGHUDAppKit])
3739 VLC_ADD_OBJCFLAGS([macosx], [-F${CONTRIB_DIR}])
3744 dnl MacOS X dialor provider
3746 AC_ARG_ENABLE(macosx-dialog-provider,
3747 [ --enable-macosx-dialog-provider Mac OS X dialog module (default enabled on Mac OS X)])
3748 if test "x${enable_macosx_dialog_provider}" != "xno" &&
3749 (test "${SYS}" = "darwin" || test "${enable_macosx_dialog_provider}" = "yes")
3751 VLC_ADD_LIBS([macosx_dialog_provider],[-Wl,-framework,Cocoa])
3752 VLC_ADD_PLUGIN([macosx_dialog_provider])
3758 AC_ARG_ENABLE(ncurses,
3759 [AS_HELP_STRING([--disable-ncurses],[ncurses text-based interface (default auto)])])
3760 AS_IF([test "${enable_ncurses}" != "no"] ,[
3761 PKG_CHECK_MODULES([NCURSES], [ncursesw], [
3762 VLC_ADD_PLUGIN([ncurses])
3763 VLC_ADD_CFLAGS([ncurses],[${NCURSES_CFLAGS}])
3764 VLC_ADD_LIBS([ncurses],[${NCURSES_LIBS}])
3765 ALIASES="${ALIASES} nvlc"
3767 AS_IF([test -n "${enable_ncurses}"], [
3768 AC_MSG_ERROR([${NCURSES_PKG_ERRORS}.])
3777 [ --enable-lirc lirc support (default disabled)])
3778 if test "${enable_lirc}" = "yes"
3780 AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
3781 if test "${have_lirc}" = "true"
3783 VLC_ADD_PLUGIN([lirc])
3784 VLC_ADD_LIBS([lirc],[-llirc_client])
3788 EXTEND_HELP_STRING([Visualisations and Video filter plugins:])
3790 dnl Visualisation plugin
3792 AC_ARG_ENABLE(visual,
3793 [ --enable-visual visualisation plugin (default enabled)])
3794 if test "${enable_visual}" != "no"
3796 VLC_ADD_PLUGIN([visual])
3800 dnl goom visualization plugin
3802 PKG_ENABLE_MODULES_VLC([GOOM], [], [libgoom2], [goom visualization plugin], [auto])
3805 dnl libprojectM visualization plugin
3807 AC_ARG_ENABLE(projectm,
3808 [ --enable-projectm projectM visualization plugin (default enabled)])
3809 AS_IF([test "${enable_projectm}" != "no"],
3811 PKG_CHECK_MODULES(PROJECTM, libprojectM,
3813 VLC_ADD_PLUGIN([projectm])
3814 VLC_ADD_CXXFLAGS([projectm],[$PROJECTM_CFLAGS])
3815 VLC_ADD_LIBS([projectm],[$PROJECTM_LIBS])
3816 PKG_CHECK_MODULES(PROJECTM2, [libprojectM >= 2.0.0],
3817 [ AC_DEFINE([HAVE_PROJECTM2], 1, [Define to 1 if using libprojectM 2.x]) ],
3818 [ AC_MSG_WARN( [Using libprojectM version 1] )
3821 AC_MSG_WARN([${PROJECTM_PKG_ERRORS}.])
3826 dnl Vovoid VSXu visualization plugin
3829 [ --enable-vsxu Vovoid VSXu visualization plugin (default auto)])
3830 AS_IF([test "${enable_vsxu}" != "no"],
3832 PKG_CHECK_MODULES(VSXU, libvsxu,
3834 VLC_ADD_PLUGIN([vsxu])
3835 VLC_ADD_CXXFLAGS([vsxu],[$VSXU_CFLAGS])
3836 VLC_ADD_LIBS([vsxu],[$VSXU_LIBS])
3838 AC_MSG_WARN([${VSXU_PKG_ERRORS}.])
3843 dnl AtmoLight (homemade Philips Ambilight clone)
3846 AS_HELP_STRING([--disable-atmo],[AtmoLight (homemade Philips Ambilight clone)
3847 (default enabled)]),, [enable_atmo="yes"])
3848 AS_IF([test "${enable_atmo}" != no], [
3849 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "linux"], [
3851 VLC_ADD_PLUGIN([atmo])
3856 EXTEND_HELP_STRING([Service Discovery plugins:])
3858 dnl Bonjour services discovery
3859 PKG_ENABLE_MODULES_VLC([BONJOUR], [], [avahi-client >= 0.6], [Bonjour services discovery], [auto])
3862 dnl libudev services discovery
3863 PKG_ENABLE_MODULES_VLC([UDEV], [], [libudev >= 142], [Linux udev services discovery], [auto])
3866 dnl MTP devices services discovery
3867 PKG_ENABLE_MODULES_VLC([MTP], [mtp access_mtp], [libmtp >= 1.0.0], [MTP devices support], [auto])
3870 dnl UPnP Plugin (Intel SDK)
3872 PKG_ENABLE_MODULES_VLC([UPNP], [upnp], [libupnp], [Intel UPNP SDK],[auto])
3873 VLC_ADD_CXXFLAGS([upnp],[${UPNP_CFLAGS}])
3875 EXTEND_HELP_STRING([Misc options:])
3880 PKG_ENABLE_MODULES_VLC([LIBXML2], [xml], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
3886 AC_ARG_ENABLE(libgcrypt,
3887 [ --disable-libgcrypt gcrypt support (default enabled)])
3888 AS_IF([test "${enable_libgcrypt}" != "no"], [
3889 AC_CHECK_DECL([GCRYCTL_SET_THREAD_CBS], [
3890 libgcrypt-config --version >/dev/null || \
3891 AC_MSG_ERROR([gcrypt.h present but libgcrypt-config could not be found])
3892 AC_CHECK_LIB(gcrypt, gcry_control, [
3893 have_libgcrypt="yes"
3894 GCRYPT_CFLAGS="`libgcrypt-config --cflags`"
3895 GCRYPT_LIBS="`libgcrypt-config --libs`"
3897 AC_MSG_ERROR([libgcrypt not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
3898 ], [`libgcrypt-config --libs`])
3900 AC_MSG_ERROR([libgcrypt version 1.1.94 or higher not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
3901 ], [#include <gcrypt.h>]
3905 AC_SUBST(GCRYPT_CFLAGS)
3906 AC_SUBST(GCRYPT_LIBS)
3907 AM_CONDITIONAL([HAVE_GCRYPT], [test "${have_libgcrypt}" = "yes"])
3912 AC_ARG_ENABLE(gnutls,
3913 [ --enable-gnutls GNU TLS TLS/SSL support (default enabled)])
3915 AS_IF([test "${have_libgcrypt}" != "yes"], [
3916 AS_IF([test "${enable_gnutls}" = "yes"], [
3917 AC_MSG_ERROR([--enable-gnutls and --disable-libgcrypt are mutually exclusive.])
3921 AS_IF([test "${enable_gnutls}" != "no"], [
3922 PKG_CHECK_MODULES(GNUTLS, [gnutls >= 2.6.6], [
3923 VLC_ADD_PLUGIN([gnutls])
3925 AS_IF([test -n "${enable_gnutls}"], [
3926 AC_MSG_ERROR([${GNUTLS_PKG_ERRORS}.)])
3933 dnl Nokia MCE plugin (Maemo screen unblanking)
3935 PKG_CHECK_MODULES([MCE], [dbus-1 mce], [VLC_ADD_PLUGIN([mce])], [true])
3938 AS_IF([test -f "/etc/maemo_version"], [
3939 AC_DEFINE([HAVE_MAEMO], 1, [Define to 1 if building for the Maemo platform.])
3946 AC_ARG_ENABLE(taglib,
3947 [AS_HELP_STRING([--disable-taglib],
3948 [do not use TagLib (default enabled)])])
3949 AS_IF([test "${enable_taglib}" != "no"], [
3950 PKG_CHECK_MODULES(TAGLIB, taglib >= 1.6.1, [
3951 VLC_ADD_PLUGIN([taglib])
3952 VLC_ADD_LIBS([taglib],[$TAGLIB_LIBS -lz])
3953 VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS])
3955 AC_MSG_WARN([${TAGLIB_PKG_ERRORS}.])])
3960 dnl update checking system
3962 AC_ARG_ENABLE(update-check,
3963 [ --enable-update-check update checking system (default disabled)])
3964 if test "${enable_update_check}" = "yes"
3966 if test "${have_libgcrypt}" != "yes"
3968 AC_MSG_ERROR([libgcrypt is required for update checking system])
3970 VLC_ADD_LIBS([libvlccore], [${GCRYPT_LIBS}])
3971 VLC_ADD_CFLAGS([libvlccore], [${GCRYPT_CFLAGS}])
3972 AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
3976 dnl Growl notification plugin
3978 AC_ARG_ENABLE(growl,
3979 [ --enable-growl growl notification plugin (default disabled)],,
3981 AS_IF([test "${enable_growl}" != "no"], [
3982 AC_CHECK_HEADERS(${CONTRIB_DIR}/Growl.framework/Versions/A/Headers/Growl.h, [
3983 VLC_ADD_PLUGIN([growl])
3984 VLC_ADD_LIBS([growl], [-F${CONTRIB_DIR} -Wl,-framework,Growl,-framework,Foundation])
3985 VLC_ADD_OBJCFLAGS([growl], [-F${CONTRIB_DIR}])
3986 VLC_ADD_OBJCFLAGS([growl], [-fobjc-exceptions] )
3992 dnl Libnotify notification plugin
3994 PKG_ENABLE_MODULES_VLC([NOTIFY], [], [libnotify gtk+-2.0], [libnotify notification], [auto])
3999 AC_ARG_ENABLE(media-library,
4000 [ --enable-media-library media library (default disabled)])
4001 AS_IF([test "${enable_media_library}" = "yes"], [
4002 AC_DEFINE([MEDIA_LIBRARY], 1, [Define if you want to use the VLC media library])
4003 VLC_ADD_CPPFLAGS([qt4],"-DMEDIA_LIBRARY")
4004 VLC_ADD_PLUGIN([media_library])
4009 AS_IF([test "${SYS}" != "darwin"], [
4010 PKG_ENABLE_MODULES_VLC([SQLITE], [], [sqlite3 >= 3.6.0], [sqlite3], [auto])
4012 AS_IF([test "${enable_sqlite}" != "no"], [
4013 AC_CHECK_HEADERS(sqlite3.h, [
4014 VLC_ADD_PLUGIN([sqlite])
4015 VLC_ADD_LIBS([sqlite], [-lsqlite3])
4017 AC_MSG_ERROR([sqlite3 is required for the media library])
4025 dnl Endianness check
4028 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
4029 DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
4033 AC_SUBST(DEFS_BIGENDIAN)
4036 dnl Where to install KDE solid .desktop
4038 AC_ARG_VAR([KDE4_CONFIG], [kde4-config utility])
4039 AS_IF([test "x$KDE4_CONFIG" = "x"], [
4040 KDE4_CONFIG="kde4-config"
4043 AC_ARG_WITH(kde-solid,
4044 AS_HELP_STRING([--with-kde-solid=PATH],
4045 [KDE Solid actions directory (auto)]),, [
4047 if test "${SYS}" != "mingw32" -a "${SYS}" != "darwin" ; then
4048 with_kde_solid="yes"
4052 AS_IF([test "${with_kde_solid}" != "no"], [
4053 AS_IF([test "${with_kde_solid}" = "yes"], [
4054 kde4datadir="`${KDE4_CONFIG} --install data`"
4055 AS_IF([test "x$kde4datadir" = "x"], [kde4datadir='${datadir}/kde4/apps'])
4056 soliddatadir="${kde4datadir}/solid/actions"
4058 soliddatadir="${with_kde_solid}"
4061 AC_SUBST(soliddatadir)
4062 AM_CONDITIONAL(KDE_SOLID, [test "x${soliddatadir}" != "x"])
4065 dnl DLL loader copied from MPlayer copied from somewhere else (WINE ?)
4068 AC_ARG_ENABLE(loader,
4069 AS_HELP_STRING([--enable-loader],[build DLL loader for ELF i386 platforms
4070 (default disabled)]))
4071 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
4072 AS_IF([test "${enable_loader}" = "yes"],
4073 [ VLC_ADD_PLUGIN([dmo])
4074 VLC_ADD_CPPFLAGS([dmo quicktime ],[-I\\\${top_srcdir}/modules/codec/loader])
4075 VLC_ADD_LIBS([dmo quicktime ],[\\\${top_builddir}/modules/codec/loader/libloader.la])
4076 VLC_ADD_LIBS([dmo quicktime], [-lpthread])
4079 EXTEND_HELP_STRING([Components:])
4085 [ --enable-vlc build the VLC media player (default enabled)])
4086 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
4088 AC_ARG_ENABLE(macosx-vlc-app,
4089 [ --enable-macosx-vlc-app build the VLC media player (default enabled on Mac OS X)])
4090 AM_CONDITIONAL(BUILD_MACOSX_VLC_APP, [test "${enable_macosx_vlc_app}" != "no" &&
4091 (test "${SYS}" = "darwin" || test "${enable_macosx_vlc_app}" = "yes") ])
4094 dnl Stuff used by the program
4096 VERSION_MESSAGE="${VERSION} ${CODENAME}"
4097 COPYRIGHT_MESSAGE="Copyright © ${COPYRIGHT_YEARS} the VideoLAN team"
4098 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string])
4099 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string])
4100 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
4101 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
4102 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,${VERSION_MAJOR}, [version major number])
4103 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,${VERSION_MINOR}, [version minor number])
4104 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,${VERSION_REVISION}, [version revision number])
4105 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,${VERSION_EXTRA}, [version extra number])
4106 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_DEV,"${VERSION_DEV}", [version development string])
4107 AC_SUBST(COPYRIGHT_MESSAGE)
4108 AC_SUBST(VERSION_MESSAGE)
4109 AC_SUBST(VERSION_MAJOR)
4110 AC_SUBST(VERSION_MINOR)
4111 AC_SUBST(VERSION_REVISION)
4112 AC_SUBST(VERSION_EXTRA)
4113 AC_SUBST(COPYRIGHT_YEARS)
4114 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami|sed -e 's/\\\/\\\\\\\/g'`", [user who ran configure])
4115 AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -f 2>/dev/null || hostname`", [host which ran configure])
4116 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1 | sed -e 's/ *$//'`", [compiler])
4118 dnl Handle substvars that use $(top_srcdir)
4120 CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS}"
4123 dnl Configuration is finished
4133 AC_SUBST(WINE_SDK_PATH)
4135 AC_SUBST(AM_CPPFLAGS)
4136 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
4137 AC_SUBST(FILE_LIBVLCCORE_DLL)
4138 AC_SUBST(FILE_LIBVLC_DLL)
4152 modules/access/Makefile
4153 modules/access/bd/Makefile
4154 modules/access/dshow/Makefile
4155 modules/access/mms/Makefile
4156 modules/access/rtp/Makefile
4157 modules/access/rtsp/Makefile
4158 modules/access/vcd/Makefile
4159 modules/access/vcdx/Makefile
4160 modules/access/screen/Makefile
4161 modules/access/zip/Makefile
4162 modules/access/zip/unzip/Makefile
4163 modules/access_output/Makefile
4164 modules/audio_filter/Makefile
4165 modules/audio_mixer/Makefile
4166 modules/audio_output/Makefile
4167 modules/codec/Makefile
4168 modules/codec/avcodec/Makefile
4169 modules/codec/dmo/Makefile
4170 modules/codec/loader/Makefile
4171 modules/codec/omxil/Makefile
4172 modules/codec/shine/Makefile
4173 modules/codec/spudec/Makefile
4174 modules/codec/wmafixed/Makefile
4175 modules/control/Makefile
4176 modules/control/dbus/Makefile
4177 modules/control/globalhotkeys/Makefile
4178 modules/demux/Makefile
4179 modules/demux/asf/Makefile
4180 modules/demux/avformat/Makefile
4181 modules/demux/avi/Makefile
4182 modules/demux/mkv/Makefile
4183 modules/demux/mp4/Makefile
4184 modules/demux/mpeg/Makefile
4185 modules/demux/playlist/Makefile
4186 modules/gui/Makefile
4187 modules/gui/macosx/Makefile
4188 modules/gui/minimal_macosx/Makefile
4189 modules/gui/macosx_dialog_provider/Makefile
4190 modules/gui/qt4/Makefile
4191 modules/gui/skins2/Makefile
4192 modules/lua/Makefile
4193 modules/meta_engine/Makefile
4194 modules/misc/Makefile
4195 modules/misc/playlist/Makefile
4196 modules/misc/osd/Makefile
4197 modules/misc/stats/Makefile
4198 modules/media_library/Makefile
4199 modules/mux/Makefile
4200 modules/mux/mpeg/Makefile
4201 modules/notify/Makefile
4202 modules/packetizer/Makefile
4203 modules/services_discovery/Makefile
4204 modules/stream_filter/Makefile
4205 modules/stream_filter/dash/Makefile
4206 modules/stream_out/Makefile
4207 modules/stream_out/transcode/Makefile
4208 modules/text_renderer/Makefile
4209 modules/video_chroma/Makefile
4210 modules/video_filter/Makefile
4211 modules/video_filter/dynamicoverlay/Makefile
4212 modules/video_output/Makefile
4213 modules/video_output/msw/Makefile
4214 modules/visualization/Makefile
4215 modules/visualization/visual/Makefile
4216 modules/mmx/Makefile
4217 modules/sse2/Makefile
4218 modules/altivec/Makefile
4219 modules/arm_neon/Makefile
4222 AM_COND_IF([HAVE_WIN32], [
4224 extras/package/win32/spad.nsi
4225 extras/package/win32/vlc.win32.nsi
4229 AM_COND_IF([HAVE_DARWIN], [
4231 extras/package/macosx/Info.plist
4232 extras/package/macosx/Resources/English.lproj/InfoPlist.strings
4236 dnl Generate makefiles
4239 dnl Do we have to use make or gmake ?
4240 if make --version 2>&1|grep -q GNU
4242 # GNU make, all seems good
4245 # Known GNU make alias (on BSD)
4248 dnl Shortcut to nice compile message
4249 if test -n $SHELL; then
4250 SHELL=${CONFIG_SHELL-/bin/sh}
4256 export PATH=\"$PATH\" LANG=C
4257 ($MAKE V=1 \$@ 2>&1 || touch .error\$\$)| `sed -ne \"s/^top_srcdir *= *//p\" < Makefile`/extras/buildsystem/make.pl
4258 test -f .error\$\$ && ERROR=1
4260 exit \$ERROR" >compile
4264 libvlc configuration
4265 --------------------
4266 version : ${VERSION}
4268 architecture : ${ARCH}
4269 optimizations : ${enable_optimizations}"
4270 if test "${enable_vlc}" != "no"; then
4271 echo "vlc aliases :${ALIASES}"
4273 echo "build vlc executable : no"
4276 To build vlc and its plugins, type \`$MAKE', or \`./compile' if you like nice colors."