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.])
212 *wince* | *mingwce* | *mingw32ce*)
214 dnl Sadly CeGCC still needs non-wince macros
220 dnl Check if we are using the mno-cygwin mode in which case we are
221 dnl actually dealing with a mingw32 compiler.
226 SYS=mingw32, AC_MSG_ERROR([VLC requires -mno-cygwin]))
230 if test "${SYS}" = "mingw32"; then
231 VLC_ADD_LIBS([libvlccore],[-lnetapi32 -lwinmm])
232 VLC_ADD_LDFLAGS([vlc],[-mwindows])
233 VLC_ADD_LIBS([win32text],[-lgdi32])
234 VLC_ADD_LIBS([cdda vcdx sdl_image vout_sdl],[-lwinmm])
235 AC_CHECK_PROGS(U2D, [unix2dos todos], unix2dos)
236 ac_default_prefix="`pwd`/_win32"
237 DESTDIR="`pwd`/_win32/"
240 dnl NSIS Installer prefix and WIN64
245 PROGRAMFILES="PROGRAMFILES64"
248 PROGRAMFILES="PROGRAMFILES"
251 AC_SUBST(PROGRAMFILES)
254 if test "${SYS}" = "mingwce"; then
255 VLC_ADD_LIBS([libvlccore],[-lmmtimer])
256 AC_CHECK_PROGS(U2D, [unix2dos todos], unix2dos)
257 ac_default_prefix="`pwd`/_wince"
258 DESTDIR="`pwd`/_wince/"
275 LDFLAGS="${LDFLAGS} -Zomf -Zbin-files -Zargs-wild"
281 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
282 AM_CONDITIONAL(HAVE_LINUX, test "${SYS}" = "linux")
283 AM_CONDITIONAL(HAVE_OS2, test "${SYS}" = "os2")
284 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
285 AM_CONDITIONAL(HAVE_WIN64, test "${HAVE_WIN64}" = "1")
286 AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
287 AM_CONDITIONAL(HAVE_SYMBIAN, test "${SYS}" = "symbian")
290 dnl Check for the contrib directory
293 [AS_HELP_STRING([--with-contrib[=DIR]],
294 [search for 3rd party libraries in DIR/include and DIR/lib])
296 AC_MSG_CHECKING([for 3rd party libraries path])
297 AS_IF([test -z "${with_contrib}" || test "${with_contrib}" = "yes"], [
298 CONTRIB_DIR="${srcdir}/contrib/${host}"
299 AS_IF([test ! -d "${CONTRIB_DIR}"], [
300 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
301 CONTRIB_DIR="${srcdir}/contrib/`$CC -dumpmachine`"
302 AS_IF([test ! -d "${CONTRIB_DIR}"], [
303 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
304 CONTRIB_DIR="${srcdir}/extras/contrib/hosts/${host}"
305 AS_IF([test ! -d "${CONTRIB_DIR}"], [
306 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
307 CONTRIB_DIR="${srcdir}/extras/contrib/hosts/`$CC -dumpmachine`"
308 AS_IF([test ! -d "${CONTRIB_DIR}"], [
309 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
311 AC_MSG_RESULT([not found])
317 AS_IF([test "${with_contrib}" != "no"], [
318 CONTRIB_DIR="${with_contrib}"
321 AC_MSG_RESULT([disabled])
324 AS_IF([test -n "${CONTRIB_DIR}"], [
325 AS_IF([test -d "${CONTRIB_DIR}/lib"],[
326 CONTRIB_DIR=`cd "${CONTRIB_DIR}" && pwd`
328 echo "${CONTRIB_DIR}/lib not found" >&AS_MESSAGE_LOG_FD
330 AC_MSG_RESULT([not usable])
334 AS_IF([test -n "${CONTRIB_DIR}"], [
335 AC_MSG_RESULT([${CONTRIB_DIR}])
336 export PATH=${CONTRIB_DIR}/bin:$PATH
337 CPPFLAGS="${CPPFLAGS} -I${CONTRIB_DIR}/include"
338 CFLAGS="${CFLAGS} -I${CONTRIB_DIR}/include"
339 CXXFLAGS="${CXXFLAGS} -I${CONTRIB_DIR}/include"
340 OBJCFLAGS="${OBJCFLAGS} -I${CONTRIB_DIR}/include"
341 AS_IF([test "$build" = "$host" -o "$PKG_CONFIG_LIBDIR"], [
342 export PKG_CONFIG_PATH="${CONTRIB_DIR}/lib/pkgconfig:$PKG_CONFIG_PATH"
344 export PKG_CONFIG_LIBDIR="${CONTRIB_DIR}/lib/pkgconfig"
346 LDFLAGS="${LDFLAGS} -L${CONTRIB_DIR}/lib"
348 AS_IF([test "${SYS}" = "darwin"], [
349 export LD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$LD_LIBRARY_PATH"
350 export DYLD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$DYLD_LIBRARY_PATH"
353 AS_IF([test -n "${with_contrib}" && test "${with_contrib}" != "no"], [
354 AC_MSG_ERROR([Third party libraries not found!])
357 AC_SUBST(CONTRIB_DIR)
360 dnl Sadly autoconf does not think about testing foo.exe when ask to test
361 dnl for program foo on win32
363 case "${build_os}" in
365 ac_executable_extensions=".exe"
371 dnl Android is linux, but a bit different
372 AS_IF([test "$SYS" = linux],[
373 AC_MSG_CHECKING([for an Android system])
374 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
375 [[#ifndef __ANDROID__
386 AM_CONDITIONAL(HAVE_ANDROID, test "${HAVE_ANDROID}" = "1")
390 dnl It's very bad, but our former custom system was worst
394 dnl override platform specific check for dependent libraries
395 dnl otherwise libtool linking of shared libraries will
396 dnl fail on anything other than pass_all.
397 AC_CACHE_VAL(lt_cv_deplibs_check_method,
398 [lt_cv_deplibs_check_method=pass_all])
400 LT_INIT([dlopen win32-dll shared disable-static])
402 LT_LANG([Windows Resource])
404 m4_undefine([AC_DEPLIBS_CHECK_METHOD])
405 m4_defun([AC_DEPLIBS_CHECK_METHOD],[])
407 lt_cv_deplibs_check_method=pass_all
409 AS_IF([test "${enable_shared}" = "no" -a "${enable_vlc}" != "no"], [
410 AC_MSG_ERROR([VLC is based on plugins. Shared libraries cannot be disabled.])
416 AM_GNU_GETTEXT_VERSION([0.18.1])
417 AM_GNU_GETTEXT([external], [need-ngettext])
424 dnl Check for broken versions of mingw-runtime compatability library
425 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"], [
426 AC_MSG_CHECKING(for broken mingw-runtime)
427 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
429 #if defined(__MINGW64_VERSION_MAJOR)
430 # if __MINGW64_VERSION_MAJOR < 3
431 # error Attempting to use mingw-runtime with broken vsnprintf and direct2d support
433 #elif __MINGW32_MAJOR_VERSION == 3 && __MINGW32_MINOR_VERSION < 15
434 # error Attempting to use mingw-runtime with broken vsnprintf support
439 AC_MSG_RESULT([present])
440 AC_MSG_ERROR([LibVLC requires mingw-runtime version 3.15 or higher, or mingw-w64 version 3.0 or higher!])
442 dnl force use of mingw provided c99 *printf over msvcrt
443 CPPFLAGS="${CPPFLAGS} -D__USE_MINGW_ANSI_STDIO=1"
446 dnl Check for the need to include the mingwex lib for mingw32
447 if test "${SYS}" = "mingw32" ; then
448 AC_CHECK_LIB(mingwex,opendir,
449 AC_CHECK_LIB(mingw32,opendir,,
450 [VLC_ADD_LIBS([libvlccore],[-lmingwex])])
454 dnl Check for fnative-struct or mms-bitfields support for mingw32
455 if test "${SYS}" = "mingw32" ; then
457 CFLAGS="${CFLAGS} -mms-bitfields"
458 CXXFLAGS="${CXXFLAGS} -mms-bitfields"
459 AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
460 [ac_cv_c_mms_bitfields],
461 [AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
462 if test "${ac_cv_c_mms_bitfields}" = "no"; then
464 CFLAGS="${CFLAGS} -fnative-struct"
465 CXXFLAGS="${CXXFLAGS} -fnative-struct"
466 AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
467 [ac_cv_c_fnative_struct],
468 [AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
469 "${ac_cv_c_fnative_struct}" = "no" && VLC_RESTORE_FLAGS
474 dnl Buggy glibc prevention. Purposedly not cached.
475 dnl See sourceware.org bugs 5058 and 5443.
476 dnl Ubuntu alone has 20 bug numbers for this...
478 AC_MSG_CHECKING(for buggy GNU/libc versions)
479 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
481 #if defined (__GLIBC__) && (__GLIBC__ == 2) \
482 && (__GLIBC_MINOR__ >= 5) && (__GLIBC_MINOR__ <= 7)
483 # error GNU/libc with dcgettext killer bug!
486 AC_MSG_RESULT([not present])
488 AC_MSG_RESULT([found])
489 AS_IF([test "x${enable_nls}" != "xno"], [
490 AC_MSG_ERROR([Buggy GNU/libc (version 2.5 - 2.7) present. VLC would crash; there is no viable
491 work-around for this. Check with your distribution vendor on how to update the
492 glibc run-time. Alternatively, build with --disable-nls.])
496 dnl Plugin compilation stuff
500 dnl Check for system libs needed
503 dnl Check for usual libc functions
504 AC_CHECK_DECLS([nanosleep],,,[#include <time.h>])
505 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])
506 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])
507 AC_CHECK_FUNCS(fdatasync,,
508 [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
511 dnl mingw64 implements those as static inline, not functions with C linkage
513 AC_LANG_PROGRAM([#include <stdio.h>], [
515 if (asprintf(&c, "%s %d", "string", 1) == -1)
517 ])],[AC_DEFINE([HAVE_ASPRINTF],[1],[Define to 1 if you have asprintf function])],[AC_LIBOBJ([asprintf])])
519 AC_LANG_PROGRAM([#include <stdio.h>
520 #include <stdarg.h>], [
523 if (vasprintf(&c, "%s %d", ap) == -1)
525 ])],[AC_DEFINE([HAVE_VASPRINTF],[1],[Define to 1 if you have asprintf function])],[AC_LIBOBJ([vasprintf])])
527 dnl C11 static_assert()
528 AC_MSG_CHECKING([for static_assert in assert.h])
529 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
531 #ifndef static_assert
536 AC_DEFINE([HAVE_STATIC_ASSERT], [1], [Define to 1 if <assert.h> defines static_assert.])
541 # Windows CE does not have strcoll()
544 dnl Check for non-standard system calls
545 AC_CHECK_FUNCS([accept4 pipe2 eventfd vmsplice sched_getaffinity])
547 AH_BOTTOM([#include <vlc_fixups.h>])
549 dnl Check for struct pollfd
550 AC_CHECK_TYPES([struct pollfd],,,
551 [#include <sys/types.h>
554 #elif defined (WIN32)
555 # include <winsock2.h>
559 dnl Checks for socket stuff
562 AC_SEARCH_LIBS(connect, [socket], [
563 AS_IF([test "$ac_cv_search_connect" != "none required"], [
564 SOCKET_LIBS="$ac_cv_search_connect"
567 AS_IF([test "${SYS}" = "mingw32"], [
568 SOCKET_LIBS="-lws2_32"
570 AS_IF([test "${SYS}" = "mingwce"], [
575 AC_SEARCH_LIBS([getaddrinfo], [nsl], [
576 AS_IF([test "$ac_cv_search_getaddrinfo" != "none required"], [
577 SOCKET_LIBS="$ac_cv_search_getaddrinfo $SOCKET_LIBS"
579 ],, [${SOCKET_LIBS}])
581 AC_CHECK_FUNCS([if_nameindex if_nametoindex])
584 AS_IF([test -n "$SOCKET_LIBS"], [
585 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}])
587 AC_SUBST(SOCKET_LIBS)
589 dnl Check for socklen_t
590 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
591 AC_CACHE_CHECK([for socklen_t in sys/socket.h], dnl ` (fix VIM syntax highlight
592 ac_cv_type_socklen_t,
593 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
594 [#include <sys/types.h>
596 # include <winsock2.h>
597 # include <ws2tcpip.h>
599 # include <sys/socket.h>
600 #endif]], [[socklen_t len; len = 0;]])],
601 ac_cv_type_socklen_t=yes,
602 ac_cv_type_socklen_t=no)])
603 AS_IF([test "$ac_cv_type_socklen_t" = no],
604 [AC_DEFINE(socklen_t, int)])
606 dnl Check for struct sockaddr_storage
607 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
608 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
609 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
611 [#include <sys/types.h>
612 #if defined( UNDER_CE )
613 # include <winsock2.h>
614 #elif defined( WIN32 )
615 # include <winsock2.h>
617 # include <sys/socket.h>
618 #endif], [struct sockaddr_storage addr;],
619 ac_cv_struct_sockaddr_storage=yes,
620 ac_cv_struct_sockaddr_storage=no)])
621 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
622 AC_DEFINE(sockaddr_storage, sockaddr)
623 AC_DEFINE(ss_family, sa_family)
626 dnl FreeBSD has a gnugetopt library for this:
628 AC_CHECK_FUNC(getopt_long,, [
629 AC_CHECK_LIB([gnugetopt],[getopt_long], [
630 GNUGETOPT_LIBS="-lgnugetopt"
633 AC_SUBST(GNUGETOPT_LIBS)
636 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 mono colorthres extract ball access_imem hotkeys mosaic gaussianblur dbus x26410b hqdn3d anaglyph oldrc ncurses],[-lm])
643 AC_CHECK_LIB(m,lrintf, [
644 AC_DEFINE(HAVE_LRINTF, 1, [Define to 1 if you have the lrintf function])
645 VLC_ADD_LIBS([skins2],[-lm])
648 dnl Check for dynamic plugins
650 have_dynamic_objects="no"
652 AC_SEARCH_LIBS(dlopen, [dl svld], [
653 AS_IF([test "$ac_cv_search_dlopen" != "none required"], [
654 LIBDL="$ac_cv_search_dlopen"
656 have_dynamic_objects="yes"
661 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"], [
663 have_dynamic_objects="yes" #assume we can use shared objects
666 test "${enable_shared}" = "no" && have_dynamic_objects=no
668 AS_IF([test "${have_dynamic_objects}" != "no"], [
669 AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1,
670 [Define to 1 if dynamic plugins are supported.])
672 dnl Clear $LIBDL so as not to break linking
675 AM_CONDITIONAL(HAVE_DYNAMIC_PLUGINS, [test "${have_dynamic_objects}" != "no"])
678 VLC_ADD_LIBS([lua],[$LIBDL])
680 dnl Check for thread library
681 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
685 AC_SEARCH_LIBS(pthread_rwlock_init, pthread pthreads c_r, [
686 VLC_ADD_LIBS([libvlccore libvlc vlc plugin],[${LIBS}])
690 AC_CHECK_LIB(rt, clock_nanosleep, [
691 VLC_ADD_LIBS([libvlccore],[-lrt])
693 AC_CHECK_FUNC(nanosleep,,[
694 AC_CHECK_LIB(rt,nanosleep, [
695 VLC_ADD_LIBS([libvlccore],[-lrt])
697 AC_CHECK_LIB(posix4,nanosleep, [
698 VLC_ADD_LIBS([libvlccore],[-lposix4])
703 AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LIBS([libvlccore],[-lrt])])
705 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
707 dnl Check for headers
708 AC_CHECK_HEADERS([search.h])
709 AC_CHECK_HEADERS(getopt.h locale.h xlocale.h)
710 AC_CHECK_HEADERS([sys/time.h sys/ioctl.h])
711 AC_CHECK_HEADERS([arpa/inet.h netinet/udplite.h sys/eventfd.h])
712 AC_CHECK_HEADERS([net/if.h], [], [],
714 #include <sys/types.h>
715 #include <sys/socket.h>
717 AC_CHECK_HEADERS([sys/mount.h], [], [],
719 #include <sys/param.h>
722 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
723 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
724 AC_CHECK_HEADERS([linux/version.h linux/dccp.h scsi/scsi.h linux/magic.h])
725 AC_CHECK_HEADERS(syslog.h mntent.h)
726 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
728 dnl LP64 and LLP64 architectures had better define ssize_t by themselves...
729 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.]) dnl ` (fix VIM syntax highlight
730 AC_CHECK_TYPE(ssize_t,, [
731 AC_DEFINE(ssize_t, int)
734 dnl Check for threads library
735 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
736 AC_CHECK_HEADERS(pthread.h)
737 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
739 dnl It seems that autoconf detects pkg-config only during the first
740 dnl PKG_CHECK_MODULES from configure.ac - which makes sense. But in our case,
741 dnl it is nested within a conditional block, so it was not working right.
742 dnl Make PKG_CONFIG_PATH precious so that it appears in the help and get saved
743 AC_ARG_VAR(PKG_CONFIG_PATH,
744 [Paths where to find .pc not at the default location])
745 PKG_PROG_PKG_CONFIG()
747 dnl On some OS we need static linking
748 AS_IF([test -n "${PKG_CONFIG}" ],[
749 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "darwin" -o "${SYS}" = "os2" ],[
750 PKG_CONFIG="${PKG_CONFIG} --static"
756 dnl Check for zlib.h and -lz along with system -lminizip if available
758 AC_CHECK_HEADERS(zlib.h, [ have_zlib=yes ], [ have_zlib=no ])
759 AM_CONDITIONAL(HAVE_ZLIB, [ test "${have_zlib}" = "yes" ])
760 if test "${have_zlib}" = "yes"
762 VLC_ADD_LIBS([access_http mp4 skins2 sap mkv unzip zip],[-lz])
763 PKG_CHECK_MODULES([MINIZIP], [minizip] , [ have_minizip=yes ], [
764 AC_CHECK_HEADERS([unzip.h], [
766 MINIZIP_LIBS="-lminizip -lz"
769 MINIZIP_CFLAGS="-I\\\${top_srcdir}/modules/access/zip/unzip"
770 MINIZIP_LIBS="\\\${top_builddir}/modules/access/zip/unzip/libunzip.la"
773 VLC_ADD_CPPFLAGS([skins2],[$MINIZIP_CFLAGS])
774 VLC_ADD_LIBS([skins2],[$MINIZIP_LIBS])
776 AM_CONDITIONAL(HAVE_MINIZIP, [ test "${have_minizip}" = "yes" ])
781 [AS_HELP_STRING([--enable-dbus],
782 [compile D-Bus message bus support (default enabled)])])
785 if test "${enable_dbus}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
788 PKG_CHECK_MODULES(DBUS, [dbus-1 >= 1.0.0],
789 [ AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
790 VLC_ADD_LIBS([libvlccore],[$DBUS_LIBS])
791 VLC_ADD_CFLAGS([libvlccore],[$DBUS_CFLAGS])
792 dnl Check for dbus control interface
793 AC_ARG_ENABLE(dbus-control,
794 [AS_HELP_STRING([--disable-dbus-control],
795 [D-Bus control interface (default enabled)])])
796 if test "${enable_dbus_control}" != "no"
798 VLC_ADD_PLUGIN([dbus])
799 VLC_ADD_LIBS([dbus],[$DBUS_LIBS])
800 VLC_ADD_CFLAGS([dbus],[$DBUS_CFLAGS])
802 dnl Check for Telepathy
803 AC_ARG_ENABLE(telepathy,
804 AS_HELP_STRING([--enable-telepathy],[Telepathy Presence plugin through DBus(default enabled)]))
805 if test "${enable_telepathy}" != "no"; then
806 VLC_ADD_PLUGIN([telepathy])
807 VLC_ADD_LIBS([telepathy],[$DBUS_LIBS])
808 VLC_ADD_CFLAGS([telepathy],[$DBUS_CFLAGS])
810 dnl Power Management Inhibiter
811 VLC_ADD_PLUGIN([inhibit])
812 VLC_ADD_LIBS([inhibit],[$DBUS_LIBS])
813 VLC_ADD_CFLAGS([inhibit],[$DBUS_CFLAGS])
815 [AC_MSG_ERROR([${DBUS_PKG_ERRORS}.])]
821 dnl Check for ntohl, etc.
823 CFLAGS="${CFLAGS} -Wall -Werror"
824 AC_CACHE_CHECK([for ntohl in sys/param.h],
825 [ac_cv_c_ntohl_sys_param_h],
826 [ AC_TRY_COMPILE([#include <sys/param.h>],
827 [int meuh; ntohl(meuh);],
828 ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
829 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
830 AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
834 EXTEND_HELP_STRING([Optimization options:])
836 dnl Compiler warnings
839 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])
840 RDC_PROG_CC_FLAGS([-pipe])
842 RDC_PROG_CXX_WFLAGS([all extra sign-compare undef pointer-arith volatile-register-var])
849 [AS_HELP_STRING([--enable-debug],
850 [build with run-time assertions (default disabled)])],,
853 [Define to 1 if debug code should NOT be compiled])
854 AS_IF([test "${enable_debug}" != "no"], [
855 AC_CHECK_HEADERS([valgrind/valgrind.h])
864 [AS_HELP_STRING([--enable-gprof],[profile with gprof (default disabled)])],,
866 AS_IF([test "${enable_gprof}" != "no"], [
867 CFLAGS="${CFLAGS} -pg"
868 CXXFLAGS="${CXXFLAGS} -pg"
869 OBJCFLAGS="${OBJCFLAGS} -pg"
870 LDFLAGS="${LDFLAGS} -pg"
874 [AS_HELP_STRING([--enable-cprof],[profile with cprof (default disabled)])],,
876 AS_IF([test "${enable_gprof}" != "no"], [
877 CFLAGS="${CFLAGS} -finstrument-functions"
878 CXXFLAGS="${CXXFLAGS} -finstrument-functions"
879 OBJCFLAGS="${OBJCFLAGS} -finstrument-functions"
880 LDFLAGS="${LDFLAGS} -finstrument-functions"
886 AC_ARG_ENABLE(coverage,
887 [AS_HELP_STRING([--enable-coverage],
888 [build for test coverage (default disabled)])],,
889 [enable_coverage="no"])
890 AS_IF([test "${enable_coverage}" != "no"], [
891 CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
892 CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
893 LDFLAGS="-lgcov ${LDFLAGS}"
896 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"], [
898 CFLAGS="${CFLAGS} -fvisibility=hidden"
899 CXXFLAGS="${CXXFLAGS} -fvisibility=hidden"
900 OBJCFLAGS="${OBJCFLAGS} -fvisibility=hidden"
901 AC_CACHE_CHECK([if $CC accepts -fvisibility=hidden],
902 [ac_cv_c_visibility_hidden], [
903 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
904 ac_cv_c_visibility_hidden=yes
906 ac_cv_c_visibility_hidden=no
909 AS_IF([test "${ac_cv_c_visibility_hidden}" = "no"], [VLC_RESTORE_FLAGS])
914 dnl Enable/disable optimizations
916 AC_ARG_ENABLE(optimizations,
917 [AS_HELP_STRING([--disable-optimizations],
918 [disable compiler optimizations (default enabled)])],,
919 [enable_optimizations="yes"])
921 dnl Check for various optimization flags
922 AS_IF([test "${enable_optimizations}" != "no"], [
924 dnl -O4 and -O3 only in production builds
925 AS_IF([test "{enable_debug}" = "no"], [
927 CFLAGS="${CFLAGS} -O4"
928 CXXFLAGS="${CXXFLAGS} -O4"
929 OBJCFLAGS="${OBJCFLAGS} -O4"
930 AC_CACHE_CHECK([if $CC accepts -O4], [ac_cv_c_o4], [
931 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
937 AS_IF([test "${ac_cv_c_o4}" = "no"], [
939 CFLAGS="${CFLAGS} -O3"
940 CXXFLAGS="${CXXFLAGS} -O3"
941 OBJCFLAGS="${OBJCFLAGS} -O3"
942 AC_CACHE_CHECK([if $CC accepts -O3], [ac_cv_c_o3], [
943 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
949 AS_IF([test "${ac_cv_c_o3}" = "no"], [VLC_RESTORE_FLAGS])
953 dnl Check for -ffast-math
955 CFLAGS="${CFLAGS} -ffast-math"
956 CXXFLAGS="${CXXFLAGS} -ffast-math"
957 OBJCFLAGS="${OBJCFLAGS} -ffast-math"
958 AC_CACHE_CHECK([if $CC accepts -ffast-math], [ac_cv_c_fast_math], [
959 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
960 ac_cv_c_fast_math=yes
965 AS_IF([test "${ac_cv_c_fast_math}" = "no"], [VLC_RESTORE_FLAGS])
967 #ifndef __FAST_MATH__
968 # pragma STDC FENV_ACCESS OFF
969 # pragma STDC FP_CONTRACT ON
973 dnl Check for -funroll-loops
975 CFLAGS="${CFLAGS} -funroll-loops"
976 CXXFLAGS="${CXXFLAGS} -funroll-loops"
977 OBJCFLAGS="${OBJCFLAGS} -funroll-loops"
978 AC_CACHE_CHECK([if $CC accepts -funroll-loops], [ac_cv_c_unroll_loops], [
979 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
980 ac_cv_c_unroll_loops=yes
982 ac_cv_c_unroll_loops=no
985 AS_IF([test "${ac_cv_c_unroll_loops}" = "no"], [VLC_RESTORE_FLAGS])
987 AS_IF([test "$enable_debug" = "no"], [
988 dnl Check for -fomit-frame-pointer
990 CFLAGS="${CFLAGS} -fomit-frame-pointer"
991 CXXFLAGS="${CXXFLAGS} -fomit-frame-pointer"
992 OBJCFLAGS="${OBJCFLAGS} -fomit-frame-pointer"
993 AC_CACHE_CHECK([if $CC accepts -fomit-frame-pointer],
994 [ac_cv_c_omit_frame_pointer], [
995 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
996 ac_cv_c_omit_frame_pointer=yes
998 ac_cv_c_omit_frame_pointer=no
1001 AS_IF([test "${ac_cv_c_omit_frame_pointer}" = "no"], [VLC_RESTORE_FLAGS])
1005 dnl Check for Darwin plugin linking flags
1006 AS_IF([test "${SYS}" = "darwin"], [
1008 CFLAGS="${CFLAGS} -bundle -undefined error"
1009 AC_CACHE_CHECK([if $CC accepts -bundle -undefined error],
1010 [ac_cv_ld_darwin], [
1011 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1017 AS_IF([test "${ac_cv_ld_darwin}" != "no"], [
1018 VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
1023 dnl Checks for __attribute__(aligned()) directive
1025 CFLAGS="${CFLAGS} -Werror"
1026 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1027 [ac_cv_c_attribute_aligned],
1028 [ac_cv_c_attribute_aligned=0
1029 for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1031 [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1032 [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1035 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1036 AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1037 [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1040 dnl Check for __attribute__((packed))
1041 AC_CACHE_CHECK([for __attribute__((packed))],
1042 [ac_cv_c_attribute_packed],
1043 [ac_cv_c_attribute_packed=no
1044 AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b; (void)b;],
1045 [ac_cv_c_attribute_packed=yes])])
1046 if test "${ac_cv_c_attribute_packed}" != "no"; then
1047 AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1053 case "${host_cpu}" in
1062 dnl Check for backtrace() support
1063 AC_CHECK_HEADERS(execinfo.h)
1064 AC_CHECK_FUNCS(backtrace)
1069 ALIASES="${ALIASES} cvlc rvlc"
1072 dnl Some plugins aren't useful on some platforms
1074 if test "${SYS}" = "os2"; then
1075 VLC_ADD_PLUGIN([dynamicoverlay])
1076 elif test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1077 VLC_ADD_PLUGIN([dynamicoverlay access_shm])
1078 elif test "${SYS}" != "mingwce"; then
1079 VLC_ADD_PLUGIN([access_smb dmo globalhotkeys])
1080 VLC_ADD_LIBS([dmo],[-lole32 -luuid])
1082 if test "${SYS}" = "darwin"; then
1083 VLC_ADD_LIBS([quartztext],[-Wl,-framework,ApplicationServices])
1087 dnl Accelerated modules
1090 dnl Check for fully working MMX intrinsics
1091 dnl We need support for -mmmx, we need <mmintrin.h>, and we also need a
1092 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1094 [AS_HELP_STRING([--disable-mmx],
1095 [disable MMX optimizations (default auto)])],,[
1096 case "${host_cpu}" in
1106 AS_IF([test "${enable_mmx}" != "no"], [
1109 CFLAGS="${CFLAGS} -mmmx"
1110 AC_CACHE_CHECK([if $CC groks MMX intrinsics], [ac_cv_c_mmx_intrinsics], [
1111 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1112 [#include <mmintrin.h>
1114 uint64_t frobzor;]], [
1116 a = b = c = (__m64)frobzor;
1117 a = _mm_slli_pi16(a, 3);
1118 a = _mm_adds_pi16(a, b);
1119 c = _mm_srli_pi16(c, 8);
1120 c = _mm_slli_pi16(c, 3);
1121 b = _mm_adds_pi16(b, c);
1122 a = _mm_unpacklo_pi8(a, b);
1123 frobzor = (uint64_t)a;]])], [
1124 ac_cv_c_mmx_intrinsics=yes
1126 ac_cv_c_mmx_intrinsics=no
1130 AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1131 AC_DEFINE(HAVE_MMX_INTRINSICS, 1, [Define to 1 if MMX intrinsics are available.])
1135 CFLAGS="${CFLAGS} -mmmx"
1136 AC_CACHE_CHECK([if $CC groks MMX inline assembly], [ac_cv_mmx_inline], [
1137 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1139 asm volatile("packuswb %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1142 ac_cv_mmx_inline=yes
1147 AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1148 AC_DEFINE(CAN_COMPILE_MMX, 1, [Define to 1 inline MMX assembly is available.])
1154 AM_CONDITIONAL([HAVE_MMX], [test "${have_mmx}" = "yes"])
1156 dnl Check for fully workin SSE2 intrinsics
1157 dnl We need support for -mmmx, we need <emmintrin.h>, and we also need a
1158 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1160 [AS_HELP_STRING([--disable-sse],
1161 [disable SSE (1-4) optimizations (default auto)])],, [
1162 case "${host_cpu}" in
1172 AS_IF([test "${enable_sse}" != "no"], [
1173 ARCH="${ARCH} sse sse2"
1176 CFLAGS="${CFLAGS} -msse2"
1177 AC_CACHE_CHECK([if $CC groks SSE2 intrinsics], [ac_cv_c_sse2_intrinsics], [
1178 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1179 [#include <emmintrin.h>
1181 uint64_t frobzor;]], [
1183 a = b = c = _mm_set1_epi64((__m64)frobzor);
1184 a = _mm_slli_epi16(a, 3);
1185 a = _mm_adds_epi16(a, b);
1186 c = _mm_srli_epi16(c, 8);
1187 c = _mm_slli_epi16(c, 3);
1188 b = _mm_adds_epi16(b, c);
1189 a = _mm_unpacklo_epi8(a, b);
1190 frobzor = (uint64_t)_mm_movepi64_pi64(a);]])], [
1191 ac_cv_c_sse2_intrinsics=yes
1193 ac_cv_c_sse2_intrinsics=no
1197 AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1198 AC_DEFINE(HAVE_SSE2_INTRINSICS, 1, [Define to 1 if SSE2 intrinsics are available.])
1202 CFLAGS="${CFLAGS} -msse"
1203 AC_CACHE_CHECK([if $CC groks SSE inline assembly], [ac_cv_sse_inline], [
1204 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1206 asm volatile("xorps %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1209 ac_cv_sse_inline=yes
1215 AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1216 AC_DEFINE(CAN_COMPILE_SSE, 1, [Define to 1 if SSE inline assembly is available.])
1219 AC_CACHE_CHECK([if $CC groks SSE2 inline assembly], [ac_cv_sse2_inline], [
1220 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1222 asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1225 ac_cv_sse2_inline=yes
1227 ac_cv_sse2_inline=no
1230 AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1231 AC_DEFINE(CAN_COMPILE_SSE2, 1, [Define to 1 if SSE2 inline assembly is available.])
1236 AC_CACHE_CHECK([if $CC groks SSE3 inline assembly], [ac_cv_sse3_inline], [
1237 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1239 asm volatile("movsldup %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1242 ac_cv_sse3_inline=yes
1244 ac_cv_sse3_inline=no
1248 AS_IF([test "${ac_cv_sse3_inline}" != "no"], [
1249 AC_DEFINE(CAN_COMPILE_SSE3, 1, [Define to 1 if SSE3 inline assembly is available.]) ])
1251 AC_CACHE_CHECK([if $CC groks SSSE3 inline assembly], [ac_cv_ssse3_inline], [
1252 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1254 asm volatile("pabsw %%xmm0,%%xmm0"::"r"(p):"xmm0");
1257 ac_cv_ssse3_inline=yes
1259 ac_cv_ssse3_inline=no
1263 AS_IF([test "${ac_cv_ssse3_inline}" != "no"], [
1264 AC_DEFINE(CAN_COMPILE_SSSE3, 1, [Define to 1 if SSSE3 inline assembly is available.]) ])
1267 AC_CACHE_CHECK([if $CC groks SSE4.1 inline assembly],
1268 [ac_cv_sse4_1_inline], [
1269 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1271 asm volatile("pmaxsb %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1274 ac_cv_sse4_1_inline=yes
1276 ac_cv_sse4_1_inline=no
1280 AS_IF([test "${ac_cv_sse4_1_inline}" != "no"], [
1281 AC_DEFINE(CAN_COMPILE_SSE4_1, 1, [Define to 1 if SSE4_1 inline assembly is available.]) ])
1284 AC_CACHE_CHECK([if $CC groks SSE4.2 inline assembly],
1285 [ac_cv_sse4_2_inline], [
1286 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1288 asm volatile("pcmpgtq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1291 ac_cv_sse4_2_inline=yes
1293 ac_cv_sse4_2_inline=no
1297 AS_IF([test "${ac_cv_sse4_2_inline}" != "no"], [
1298 AC_DEFINE(CAN_COMPILE_SSE4_2, 1, [Define to 1 if SSE4_2 inline assembly is available.]) ])
1301 AC_CACHE_CHECK([if $CC groks SSE4A inline assembly], [ac_cv_sse4a_inline], [
1302 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1304 asm volatile("insertq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1307 ac_cv_sse4a_inline=yes
1309 ac_cv_sse4a_inline=no
1313 AS_IF([test "${ac_cv_sse4a_inline}" != "no"], [
1314 AC_DEFINE(CAN_COMPILE_SSE4A, 1, [Define to 1 if SSE4A inline assembly is available.]) ])
1316 AM_CONDITIONAL([HAVE_SSE2], [test "$have_sse2" = "yes"])
1319 [AS_HELP_STRING([--disable-neon],
1320 [disable NEON optimizations (default auto)])],, [
1321 AS_IF([test "${host_cpu}" = "arm"], [enable_neon="yes"] ,[enable_neon="no"])
1323 AS_IF([test "${enable_neon}" != "no"], [
1325 CFLAGS="${CFLAGS} -mfpu=neon"
1326 AC_CACHE_CHECK([if $CC groks NEON inline assembly], [ac_cv_neon_inline], [
1329 asm volatile("vqmovun.s64 d0, q1":::"d0");
1330 asm volatile("ssat r0, #1, r0":::"r0"); /* assume ARMv6 */
1333 ac_cv_neon_inline="-mfpu=neon"
1335 ac_cv_neon_inline="no"
1339 AS_IF([test "$ac_cv_neon_inline" != "no"], [
1340 NEON_CFLAGS="$ac_cv_neon_inline"
1341 AC_DEFINE([CAN_COMPILE_NEON], 1, [Define to 1 if NEON (and ARMv6) assembly is available with NEON_CFLAGS.])
1344 ac_cv_neon_inline="no"
1346 AC_SUBST(NEON_CFLAGS)
1347 AM_CONDITIONAL(HAVE_NEON, [test "${ac_cv_neon_inline}" != "no"])
1350 AC_ARG_ENABLE(altivec,
1351 [AS_HELP_STRING([--disable-altivec],
1352 [disable AltiVec optimizations (default auto)])],, [
1353 AS_IF([test "${host_cpu}" = "powerpc"],
1354 [enable_altivec=yes], [enable_altivec=no])
1357 AS_IF([test "${enable_altivec}" = "yes"], [
1358 ARCH="${ARCH} altivec";
1360 AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1361 [ac_cv_altivec_inline],
1362 [AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1363 ac_cv_altivec_inline="yes",
1364 [CFLAGS="${CFLAGS} -Wa,-m7400"
1365 AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1366 [ac_cv_altivec_inline="-Wa,-m7400"],
1367 ac_cv_altivec_inline=no)
1370 AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1371 AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1372 [Define to 1 if AltiVec inline assembly is available.])
1373 AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1374 VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1375 VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1376 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_altivec_inline}])
1381 dnl The AltiVec C extensions
1383 dnl There are several possible cases:
1384 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1385 dnl need <altivec.h>
1386 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1387 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1388 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1389 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1390 dnl - Others: test should fail
1392 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1394 [# OS X/PPC test (gcc 4.x)
1395 CFLAGS="${CFLAGS} -mpim-altivec -force_cpusubtype_ALL"
1396 AC_TRY_COMPILE([vector unsigned char foo;],
1397 [vec_ld(0, (unsigned char *)0);],
1398 [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1399 [# OS X/PPC test (gcc 3.x)
1400 CFLAGS="${CFLAGS} -faltivec"
1401 AC_TRY_COMPILE([vector unsigned char foo;],
1402 [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1403 [ac_cv_c_altivec="-faltivec"],
1404 dnl Below this are the Linux tests
1405 [# Linux/PPC test (gcc 4.x)
1406 CFLAGS="${CFLAGS} -maltivec"
1407 AC_TRY_COMPILE([#include <altivec.h>],
1408 [vec_ld(0, (unsigned char *)0);],
1409 [ac_cv_c_altivec="-maltivec"],
1410 [# Linux/PPC test (gcc 3.3)
1411 CFLAGS="${CFLAGS} -maltivec -mabi=altivec"
1412 AC_TRY_COMPILE([#include <altivec.h>],
1413 [vec_ld(0, (unsigned char *)0);],
1415 ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1416 [# Linux/PPC test (gcc 3.3)
1417 CFLAGS="${CFLAGS} -fvec"
1418 AC_TRY_COMPILE([#include <altivec.h>],
1419 [vec_ld(0, (unsigned char *)0);],
1420 [ac_cv_c_altivec="-fvec"],
1421 [ac_cv_c_altivec=no])
1429 AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1430 CPPFLAGS="${CPPFLAGS} ${ac_cv_c_altivec}"
1431 AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, [Define to 1 if C AltiVec extensions are available.])
1432 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_c_altivec}])
1433 VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1436 AC_CHECK_HEADERS(altivec.h)
1439 LDFLAGS="${LDFLAGS} -Wl,-framework,vecLib"
1440 AC_CACHE_CHECK([if linker needs -framework vecLib],
1442 [AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)])
1444 AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1445 VLC_ADD_LIBS([libvlccore memcpyaltivec],[-Wl,-framework,vecLib])
1448 AM_CONDITIONAL([HAVE_ALTIVEC], [test "$have_altivec" = "yes"])
1453 AC_ARG_ENABLE(optimize-memory,
1454 [AS_HELP_STRING([--enable-optimize-memory],
1455 [optimize memory usage over performance])])
1456 if test "${enable_optimize_memory}" = "yes"; then
1457 AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1461 dnl Allow running as root (useful for people running on embedded platforms)
1463 AC_ARG_ENABLE(run-as-root,
1464 [AS_HELP_STRING([--enable-run-as-root],
1465 [allow running VLC as root (default disabled)])])
1466 AS_IF([test "${enable_run_as_root}" = "yes"],[
1467 AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1468 [Define to 1 to allow running VLC as root (uid 0).])
1475 [AS_HELP_STRING([--disable-sout],
1476 [disable streaming output (default enabled)])])
1477 AS_IF([test "${enable_sout}" != "no"], [
1478 AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1480 AM_CONDITIONAL(ENABLE_SOUT, [test "${enable_sout}" != "no"])
1484 [AS_HELP_STRING([--disable-lua],
1485 [disable LUA scripting support (default enabled)])])
1486 if test "${enable_lua}" != "no"
1488 PKG_CHECK_MODULES(LUA, lua5.1,
1491 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua >= 5.1 instead])
1492 PKG_CHECK_MODULES(LUA, lua >= 5.1,
1495 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying manual detection instead])
1497 AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1500 AC_CHECK_LIB( lua5.1 , luaL_newstate,
1501 [LUA_LIBS="-llua5.1"],
1502 AC_CHECK_LIB( lua51 , luaL_newstate,
1503 [LUA_LIBS="-llua51"],
1504 AC_CHECK_LIB( lua , luaL_newstate,
1512 if test "x${have_lua}" = "xyes" ; then
1513 VLC_ADD_LIBS([lua],[$LUA_LIBS])
1514 VLC_ADD_CFLAGS([lua],[$LUA_CFLAGS])
1516 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.])
1518 AC_ARG_VAR([LUAC], [LUA byte compiler])
1519 AC_PATH_PROGS(LUAC,[${LUAC} luac], [false])
1520 AS_IF([test "${LUAC}" = "false"], [
1521 AC_MSG_ERROR([Could not find the LUA byte compiler.])
1524 AM_CONDITIONAL(BUILD_LUA, [test "${have_lua}" = "yes"])
1530 AC_ARG_ENABLE(httpd,
1531 [AS_HELP_STRING([--disable-httpd],
1532 [disable the built-in HTTP server (default enabled)])])
1533 if test "${enable_httpd}" != "no"
1535 AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP daemon support)
1537 AM_CONDITIONAL(BUILD_HTTPD, [test "${enable_httpd}" != "no"])
1541 dnl VideoLAN manager
1544 [AS_HELP_STRING([--disable-vlm],
1545 [disable the stream manager (default enabled)])],,
1546 [enable_vlm="${enable_sout}"])
1547 AS_IF([test "${enable_vlm}" != "no"], [
1548 AS_IF([test "${enable_sout}" = "no"], [
1549 AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1551 AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1553 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1560 EXTEND_HELP_STRING([Input plugins:])
1563 dnl libproxy support
1565 AC_ARG_ENABLE(libproxy,
1566 [AS_HELP_STRING([--enable-libproxy],[support libproxy (default auto)])])
1567 AS_IF([test "${enable_libproxy}" != "no"], [
1568 PKG_CHECK_MODULES(LIBPROXY, libproxy-1.0, [
1569 AC_DEFINE(HAVE_LIBPROXY, 1, [Define if libproxy is available])
1570 VLC_ADD_CFLAGS([access_http],[$LIBPROXY_CFLAGS])
1571 VLC_ADD_LIBS([access_http],[$LIBPROXY_LIBS])
1573 AS_IF([test -n "${enable_libproxy}"], [
1574 AC_MSG_ERROR([${LIBPROXY_PKG_ERRORS}.])
1582 AC_ARG_ENABLE(live555,
1583 [AS_HELP_STRING([--enable-live555],
1584 [enable RTSP input through live555 (default enabled)])])
1585 AS_IF([test "${enable_live555}" != "no" -a -n "${CXX}"], [
1588 AS_IF([test -z "${CONTRIB_DIR}"], [
1589 CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1591 CPPFLAGS_live555="-I${CONTRIB_DIR}/include/liveMedia -I${CONTRIB_DIR}/include/groupsock -I${CONTRIB_DIR}/include/BasicUsageEnvironment -I${CONTRIB_DIR}/include/UsageEnvironment"
1593 AS_IF([test "${SYS}" = "solaris"], [
1594 CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1596 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1598 AC_CACHE_CHECK([for live555 version 1324598400 or later], [ac_cv_live555], [
1599 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
1600 [#include <liveMedia_version.hh>
1601 #if !defined (LIVEMEDIA_LIBRARY_VERSION_INT) || (LIVEMEDIA_LIBRARY_VERSION_INT < 1324598400)
1610 AS_IF([test "$ac_cv_live555" = "no"], [
1611 AC_MSG_WARN([liveMedia is missing or its installed version is too old:
1612 Version 2011.12.23 or later is required to proceed.
1613 You can get an updated one from http://www.live555.com/liveMedia .])
1614 AS_IF([test -n "${enable_live555}"], [
1615 AC_MSG_ERROR([Update live555 or pass --disable-live555 to disable RTSP input support.])
1618 other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1619 other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
1620 AS_IF([test "${SYS}" = "mingw32"], [
1621 # add ws2_32 for closesocket, select, recv
1622 other_libs="$other_libs -lws2_32"
1623 ], [test "${SYS}" = "mingwce"], [
1624 # add ws2 for closesocket, select, recv
1625 other_libs="$other_libs -lws2"
1628 dnl We need to check for pic because live555 don't provide shared libs
1629 dnl and we want to build a plugins so we need -fPIC on some arch.
1630 VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1631 AC_CHECK_LIB(liveMedia_pic, main, [
1632 VLC_ADD_PLUGIN([live555])
1633 VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
1635 AC_CHECK_LIB(liveMedia, main, [
1636 VLC_ADD_PLUGIN([live555])
1637 VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1638 ],[],[${other_libs}])],[${other_libs_pic}])
1645 dnl - special access module for dc1394 input
1646 dnl - dv module: digital video module check for libraw1394
1647 dnl - linsys modules: access module check for libzvbi
1649 PKG_ENABLE_MODULES_VLC([DC1394], [], [libdc1394-2 >= 2.1.0], [IIDC FireWire input module], [auto])
1650 PKG_ENABLE_MODULES_VLC([DV1394], [], [libraw1394 >= 2.0.1 libavc1394 >= 0.5.3], [DV FireWire input module], [auto])
1652 AC_ARG_ENABLE(linsys,
1653 [AS_HELP_STRING([--enable-linsys],
1654 [Linux Linear Systems Ltd. SDI and HD-SDI input cards (default enabled)])])
1655 if test "$SYS" = "linux" -a "${enable_linsys}" != "no"; then
1656 VLC_ADD_PLUGIN([linsys_hdsdi])
1657 PKG_CHECK_MODULES(LINSYS_SDI, [zvbi-0.2 >= 0.2.28],
1658 [ VLC_ADD_LIBS([linsys_sdi],[$LINSYS_SDI_LIBS])
1659 VLC_ADD_CFLAGS([linsys_sdi],[$LINSYS_SDI_CFLAGS])
1660 VLC_ADD_PLUGIN([linsys_sdi]) ],
1661 [AC_MSG_WARN([${LINSYS_SDI_PKG_ERRORS}.])]
1666 dnl dvdread module: check for libdvdread
1668 PKG_ENABLE_MODULES_VLC([DVDREAD], [], [dvdread], [dvdread input module], [auto])
1671 dnl libdvdnav plugin
1673 AC_ARG_ENABLE(dvdnav,
1674 [AS_HELP_STRING([--disable-dvdnav],
1675 [disable DVD navigation with libdvdnav (default auto)])])
1676 if test "${enable_dvdnav}" != "no"
1678 PKG_CHECK_MODULES(DVDNAV, dvdnav, [
1679 VLC_ADD_PLUGIN([dvdnav])
1680 VLC_ADD_CFLAGS([dvdnav],[${DVDNAV_CFLAGS}])
1681 VLC_ADD_LIBS([dvdnav],[${DVDNAV_LIBS}])
1682 AC_CHECK_LIB(dvdnav, dvdnav_get_video_resolution,
1683 AC_DEFINE(HAVE_DVDNAV_GET_VIDEO_RESOLUTION, 1, [Define if you have dvdnav_get_video_resolution.]),
1684 [], [${LIBS_dvdnav}])
1685 AC_CHECK_LIB(dvdnav, dvdnav_describe_title_chapters,
1686 AC_DEFINE(HAVE_DVDNAV_DESCRIBE_TITLE_CHAPTERS, 1, [Define if you have dvdnav_describe_title_chapters.]),
1687 [], [${LIBS_dvdnav}])],
1688 [AC_MSG_WARN([${DVDNAV_PKG_ERRORS}.])])
1692 dnl Windows DirectShow access module
1694 AC_ARG_ENABLE(dshow,
1695 [AS_HELP_STRING([--disable-dshow],
1696 [support DirectShow (default auto)])])
1697 if test "${enable_dshow}" != "no"
1699 if test "${SYS}" = "mingw32"
1702 AC_CHECK_HEADERS(dshow.h,
1703 [ VLC_ADD_PLUGIN([dshow])
1704 VLC_ADD_CXXFLAGS([dshow],[])
1705 VLC_ADD_LIBS([dshow],[-lole32 -loleaut32 -luuid -lstrmiids -lksuser])])
1711 dnl Blu-ray Disc Support with libbluray
1713 PKG_ENABLE_MODULES_VLC([BLURAY], [libbluray], [libbluray >= 0.2.1], (libbluray for Blu-ray disc support ) )
1716 dnl OpenCV wrapper and example filters
1718 PKG_ENABLE_MODULES_VLC([OPENCV], [opencv_example opencv_wrapper], [opencv], (OpenCV (computer vision) filter), [off])
1722 dnl libsmbclient plugin
1725 [AS_HELP_STRING([--disable-smb], [disable SMB/CIFS support (default auto)])])
1726 if test "${enable_smb}" != "no"; then
1727 AC_CHECK_HEADERS(libsmbclient.h,
1728 [ VLC_ADD_PLUGIN([access_smb])
1729 VLC_ADD_LIBS([access_smb],[-lsmbclient]) ],
1730 [ if test -n "${enable_smb}"; then
1731 AC_MSG_ERROR([cannot find libsmbclient headers])
1737 dnl sftp access support
1740 [AS_HELP_STRING([--enable-sftp],
1741 [support SFTP file transfer via libssh2 (default disabled)])])
1742 if test "${enable_sftp}" = "yes"; then
1743 AC_CHECK_HEADERS(libssh2.h, [
1744 VLC_ADD_PLUGIN([access_sftp])
1745 VLC_ADD_LIBS([access_sftp], [-lssh2])
1752 AC_ARG_ENABLE(v4l2, [AS_HELP_STRING([--disable-v4l2],
1753 [disable Video4Linux version 2 (default auto)])])
1754 AC_ARG_ENABLE(pvr, [AS_HELP_STRING([--enable-pvr],
1755 [support PVR V4L2 cards (default disabled)])])
1757 AS_IF([test "$enable_v4l2" != "no"], [
1758 AC_CHECK_HEADERS([linux/videodev2.h sys/videoio.h], [
1761 AC_CHECK_DECLS([V4L2_CTRL_TYPE_BITMASK],,, [
1762 #ifdef HAVE_LINUX_VIDEODEV2_H
1763 # include <linux/videodev2.h>
1765 #ifdef HAVE_SYS_VIDEOIO_H
1766 # include <sys/videoio.h>
1770 AS_IF([test "$have_v4l2" = "yes"], [
1771 AS_IF([test "${enable_pvr}" = "yes"], [
1772 VLC_ADD_PLUGIN([pvr])
1775 AM_CONDITIONAL(HAVE_V4L2, [test "${have_v4l2}" != "no"])
1778 dnl special access module for Blackmagic SDI cards
1780 AC_ARG_ENABLE(decklink,
1781 [AS_HELP_STRING([--disable-decklink],
1782 [disable Blackmagic DeckLink SDI input (default auto)])])
1783 AC_ARG_WITH(decklink_sdk,
1784 [AS_HELP_STRING[--with-decklink-sdk=DIR],
1785 [ location of Blackmagic DeckLink SDI SDK])])
1786 if test "${enable_decklink}" != "no"
1788 if test "${with_decklink_sdk}" != "no" -a -n "${with_decklink_sdk}"
1790 VLC_ADD_CPPFLAGS([decklink],[-I${with_decklink_sdk}/include])
1793 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_decklink}"
1795 AC_CHECK_HEADERS(DeckLinkAPIDispatch.cpp, [
1796 VLC_ADD_PLUGIN([decklink])
1797 ],[AC_MSG_WARN(Blackmagic DeckLink SDI include files not found, decklink disabled)])
1804 dnl gnomeVFS access module
1806 PKG_ENABLE_MODULES_VLC([GNOMEVFS], [access_gnomevfs], [gnome-vfs-2.0], [GnomeVFS access module], [auto])
1812 [AS_HELP_STRING([--enable-vcdx],
1813 [navigate VCD with libvcdinfo (default disabled)])])
1814 if test "${enable_vcdx}" = "yes"
1816 PKG_CHECK_MODULES(LIBCDIO, [libcdio >= 0.78.2 libiso9660 >= 0.72],
1817 [VLC_ADD_LIBS([vcdx],[$LIBCDIO_LIBS])
1818 VLC_ADD_CFLAGS([vcdx],[$LIBCDIO_CFLAGS])],
1819 [AC_MSG_ERROR([${LIBCDIO_PKG_ERRORS} (required for vcdx plugin).])])
1820 PKG_CHECK_MODULES(LIBVCDINFO, libvcdinfo >= 0.7.22,
1821 [VLC_ADD_LIBS([vcdx],[$LIBVCDINFO_LIBS])
1822 VLC_ADD_CFLAGS([vcdx],[$LIBVCDINFO_CFLAGS])],
1823 [AC_MSG_ERROR([${LIBVCDINFO_PKG_ERRORS} (required for vcdx plugin).])])
1824 VLC_ADD_PLUGIN([vcdx])
1828 dnl Built-in CD-DA and VCD module
1831 [AS_HELP_STRING([--disable-vcd],
1832 [disable built-in VCD and CD-DA support (default enabled)])])
1834 AC_ARG_ENABLE(libcddb,
1835 [AS_HELP_STRING([--disable-libcddb],
1836 [disable CDDB for Audio CD (default enabled)])])
1838 if test "${enable_vcd}" != "no"
1840 AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
1841 AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
1843 VLC_ADD_PLUGIN([vcd cdda])
1848 AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
1849 AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
1851 VLC_ADD_PLUGIN([vcd cdda])
1852 AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
1857 AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
1858 AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
1860 VLC_ADD_PLUGIN([vcd cdda])
1861 AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
1866 if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32" -o "${SYS}" = "os2"
1868 VLC_ADD_PLUGIN([vcd cdda])
1871 if test "${SYS}" = "darwin"
1873 VLC_ADD_PLUGIN([vcd cdda])
1874 VLC_ADD_LIBS([vcd vcdx cdda],[-Wl,-framework,IOKit,-framework,CoreFoundation])
1875 VLC_ADD_LIBS([vcdx cdda],[-liconv])
1878 if test "$enable_libcddb" != "no"; then
1879 PKG_CHECK_MODULES(LIBCDDB, [libcddb >= 0.9.5], [
1881 AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
1882 VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
1883 VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
1885 [AC_MSG_WARN([${LIBCDDB_PKG_ERRORS}: CDDB access disabled.])
1893 AC_CACHE_CHECK([for Linux DVB version 5.1], [ac_cv_linux_dvb_5_1], [
1894 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
1895 [#include <linux/dvb/version.h>
1896 #if (DVB_API_VERSION < 5)
1897 # error Linux DVB API v3.2 and older are not supported.
1899 #if (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR < 1)
1900 # error Linux DVB API v5.0 is unsupported. Please update.
1903 ac_cv_linux_dvb_5_1=yes
1905 ac_cv_linux_dvb_5_1=no
1907 AM_CONDITIONAL([HAVE_LINUX_DVB], [test "$ac_cv_linux_dvb_5_1" = "yes"])
1910 dnl Screen capture module
1912 AC_ARG_ENABLE(screen,
1913 [AS_HELP_STRING([--enable-screen],
1914 [disable screen capture (default enabled)])])
1915 if test "${enable_screen}" != "no"; then
1916 if test "${SYS}" = "darwin"; then
1917 AC_CHECK_HEADERS(OpenGL/gl.h, [
1918 AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
1919 VLC_ADD_PLUGIN([screen])
1920 VLC_ADD_LIBS([screen],[-Wl,-framework,OpenGL,-framework,ApplicationServices])
1923 elif test "${SYS}" = "mingw32"; then
1924 VLC_ADD_PLUGIN([screen])
1925 VLC_ADD_LIBS([screen],[-lgdi32])
1930 dnl Real RTSP plugin
1932 AC_ARG_ENABLE(realrtsp,
1933 [ --enable-realrtsp Real RTSP module (default disabled)])
1934 if test "${enable_realrtsp}" = "yes"; then
1935 VLC_ADD_PLUGIN([access_realrtsp])
1940 AC_ARG_ENABLE(macosx-eyetv,
1941 [ --enable-macosx-eyetv Mac OS X EyeTV (TNT Tuner) module (default enabled on Mac OS X)])
1942 if test "x${enable_macosx_eyetv}" != "xno" &&
1943 (test "${SYS}" = "darwin" || test "${enable_macosx_eyetv}" = "yes")
1945 VLC_ADD_LIBS([access_eyetv], [-Wl,-framework,Foundation])
1946 VLC_ADD_PLUGIN([access_eyetv])
1951 AC_ARG_ENABLE(macosx-qtkit,
1952 [ --enable-macosx-qtkit Mac OS X qtcapture (video) and qtsound (audio) module (default enabled on Mac OS X)])
1953 if test "x${enable_macosx_qtkit}" != "xno" &&
1954 (test "${SYS}" = "darwin" || test "${enable_macosx_qtkit}" = "yes")
1956 VLC_ADD_PLUGIN([qtcapture])
1957 VLC_ADD_PLUGIN([qtsound])
1959 AM_CONDITIONAL(HAVE_QTKIT, [test "${SYS}" = "darwin" -a "x${enable_macosx_qtkit}" != "xno"])
1966 EXTEND_HELP_STRING([Mux/Demux plugins:])
1969 dnl libdvbpsi check for ts mux/demux
1972 PKG_WITH_MODULES([DVBPSI], [libdvbpsi], [have_dvbpsi="yes"])
1973 AM_CONDITIONAL(HAVE_DVBPSI, [test "${have_dvbpsi}" = "yes"])
1977 dnl GME demux plugin
1980 [AS_HELP_STRING([--enable-gme],
1981 [use Game Music Emu (default auto)])])
1982 AS_IF([test "${enable_gme}" != "no"], [
1983 AC_CHECK_HEADER([gme/gme.h], [
1984 VLC_ADD_LIBS([gme], [-lgme])
1985 VLC_ADD_PLUGIN([gme])
1987 AS_IF([test "x${enable_gme}" != "x"], [
1988 AC_MSG_ERROR([GME cannot be found. Please install the development files.])
1998 [AS_HELP_STRING([--enable-sid],[C64 sid demux support (default auto)])])
1999 AS_IF([test "${enable_sid}" != "no"], [
2000 PKG_CHECK_MODULES(SID, [libsidplay2], [
2002 oldCPPFLAGS="$CPPFLAGS"
2003 CPPFLAGS="$CPPFLAGS $SID_CFLAGS"
2004 AC_CHECK_HEADER([sidplay/builders/resid.h], [
2005 VLC_ADD_PLUGIN([sid])
2006 VLC_ADD_CFLAGS([sid], [$SID_CFLAGS])
2007 VLC_ADD_LIBS([sid], [$SID_LIBS] [-lresid-builder])
2009 AS_IF([test -n "${enable_sid}"],
2010 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2011 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2014 CPPFLAGS="$oldCPPFLAGS"
2017 AS_IF([test "x${enable_sid}" = "xyes"],
2018 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2019 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2026 dnl ogg demux plugin
2028 PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto])
2029 if test "${enable_sout}" != "no"; then
2030 PKG_ENABLE_MODULES_VLC([MUX_OGG], [], [ogg >= 1.0], [Ogg mux support], [auto])
2031 dnl Check for libshout
2032 PKG_ENABLE_MODULES_VLC([SHOUT], [access_output_shout], [shout >= 2.1], [libshout output plugin], [auto])
2036 dnl matroska demux plugin
2039 [AS_HELP_STRING([--disable-mkv],
2040 [do not use libmatroska (default auto)])])
2041 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2043 AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2044 AC_MSG_CHECKING(for libebml version >= 1.0.0)
2046 [#include <ebml/EbmlVersion.h>
2047 #ifdef LIBEBML_VERSION
2048 #if LIBEBML_VERSION >= 0x010000
2052 [AC_MSG_RESULT([yes])
2053 AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2054 AC_MSG_CHECKING(for libmatroska version >= 1.0.0)
2056 [#include <matroska/KaxVersion.h>
2057 #ifdef LIBMATROSKA_VERSION
2058 #if LIBMATROSKA_VERSION >= 0x010000
2062 [AC_MSG_RESULT([yes])
2063 AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2064 VLC_ADD_CXXFLAGS([mkv],[])
2065 AC_CHECK_LIB(ebml_pic, main, [
2066 VLC_ADD_PLUGIN([mkv])
2067 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2069 AC_CHECK_LIB(ebml, main, [
2070 VLC_ADD_PLUGIN([mkv])
2071 VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2076 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.])
2080 [AC_MSG_RESULT([no])
2081 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.])
2088 dnl modplug demux plugin
2091 [AS_HELP_STRING([--disable-mod],
2092 [do not use libmodplug (default auto)])])
2093 if test "${enable_mod}" != "no" ; then
2094 PKG_CHECK_MODULES(LIBMODPLUG, [libmodplug >= 0.8.4 libmodplug != 0.8.8], [
2095 VLC_ADD_PLUGIN([mod])
2096 VLC_ADD_CXXFLAGS([mod],[$LIBMODPLUG_CFLAGS])
2097 VLC_ADD_LIBS([mod],[$LIBMODPLUG_LIBS])
2099 AS_IF([test -n "${enable_mod}"],
2100 [AC_MSG_ERROR([${LIBMODPLUG_PKG_ERRORS}.])],
2101 [AC_MSG_WARN([${LIBMODPLUG_PKG_ERRORS}.])])
2106 dnl mpc demux plugin
2109 [AS_HELP_STRING([--disable-mpc], [do not use libmpcdec (default auto)])])
2110 if test "${enable_mpc}" != "no"
2112 AC_CHECK_HEADERS([mpc/mpcdec.h], [
2113 VLC_ADD_PLUGIN([mpc])
2114 VLC_ADD_LIBS([mpc],[-lmpcdec])],
2115 [AC_CHECK_HEADERS([mpcdec/mpcdec.h], [
2116 VLC_ADD_PLUGIN([mpc])
2117 VLC_ADD_LIBS([mpc],[-lmpcdec])])])
2124 EXTEND_HELP_STRING([Codec plugins:])
2129 AC_ARG_ENABLE(wma-fixed,
2130 [ --enable-wma-fixed libwma-fixed module (default disabled)])
2131 if test "${enable_wma_fixed}" = "yes"
2133 VLC_ADD_PLUGIN([wma_fixed])
2137 dnl shine fixed point mp3 encoder
2139 AC_ARG_ENABLE(shine,
2140 [ --enable-shine shine mp3 encoding module (default disabled)])
2141 if test "${enable_shine}" = "yes"
2143 VLC_ADD_PLUGIN([shine])
2147 dnl openmax il codec plugin
2149 AC_ARG_ENABLE(omxil,
2150 [ --enable-omxil openmax il codec module (default disabled)])
2151 if test "${enable_omxil}" = "yes"
2153 VLC_ADD_PLUGIN([omxil])
2154 VLC_ADD_LIBS([omxil], [$LIBDL])
2158 dnl iomx codec plugin
2161 [ --enable-iomx iomx codec module (default disabled)])
2162 if test "${enable_iomx}" = "yes"
2164 VLC_ADD_PLUGIN([iomx])
2168 dnl CrystalHD codec plugin
2170 AC_ARG_ENABLE(crystalhd,
2171 [ --enable-crystalhd crystalhd codec plugin (default auto)])
2172 if test "${enable_crystalhd}" != "no"; then
2173 AC_CHECK_HEADER(libcrystalhd/libcrystalhd_if.h, [
2174 VLC_ADD_PLUGIN([crystalhd])
2175 VLC_ADD_LIBS([crystalhd], [-lcrystalhd])
2177 if test "${SYS}" = "mingw32" ; then
2178 AC_CHECK_HEADERS(libcrystalhd/bc_dts_defs.h, [
2179 VLC_ADD_PLUGIN([crystalhd])
2180 AC_CHECK_HEADERS(libcrystalhd/bc_drv_if.h, [
2181 VLC_ADD_LIBS([crystalhd], [-lbcmDIL])
2184 AS_IF([test x"${enable_crystalhd}" = "xyes"],
2185 [AC_MSG_ERROR("Could not find CrystalHD development headers")],
2186 [AC_MSG_WARN("Could not find CrystalHD development headers")])
2187 ],[#define __LINUX_USER__
2188 #include <libcrystalhd/bc_dts_types.h>
2192 #include <libcrystalhd/bc_dts_types.h>
2200 [ --enable-mad libmad module (default enabled)])
2201 if test "${enable_mad}" != "no"
2204 [ --with-mad=PATH path to libmad],[],[])
2205 if test "${with_mad}" != "no" -a -n "${with_mad}"
2207 VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2208 VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2211 AC_ARG_WITH(mad-tree,
2212 [ --with-mad-tree=PATH mad tree for static linking],[],[])
2213 if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2215 real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2216 if test -z "${real_mad_tree}"
2218 dnl The given directory can't be found
2220 AC_MSG_ERROR([${with_mad_tree} directory does not exist])
2222 dnl Use a custom libmad
2223 AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2224 if test -f ${real_mad_tree}/mad.h
2227 VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2228 VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2230 LDFLAGS="${LDFLAGS} ${LIBS_mpgatofixed32}"
2231 AC_CHECK_LIB(mad, mad_bit_init, [
2232 VLC_ADD_PLUGIN([mpgatofixed32])
2233 VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2234 ],[ AC_MSG_ERROR([the specified tree has not been compiled ])
2239 AC_MSG_ERROR([the specified tree does not have mad.h])
2243 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_mpgatofixed32}"
2244 LDFLAGS="${LDFLAGS} ${LIBS_mpgatofixed32}"
2245 AC_CHECK_HEADERS(mad.h, ,
2246 [ 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.]) ])
2247 AC_CHECK_LIB(mad, mad_bit_init, [
2248 VLC_ADD_PLUGIN([mpgatofixed32])
2249 VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2250 [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2256 AC_ARG_ENABLE(merge-ffmpeg,
2257 [ --enable-merge-ffmpeg merge FFmpeg-based plugins (default disabled)],, [
2258 enable_merge_ffmpeg="no"
2260 AM_CONDITIONAL([MERGE_FFMPEG], [test "$enable_merge_ffmpeg" != "no"])
2263 LDFLAGS="${LDFLAGS} -Wl,-Bsymbolic"
2264 AC_CACHE_CHECK([if linker supports -Bsymbolic],
2265 [ac_cv_ld_bsymbolic],
2266 [AC_TRY_LINK([],,ac_cv_ld_bsymbolic=yes,ac_cv_ld_bsymbolic=no)])
2270 dnl avcodec decoder/encoder plugin
2272 AC_ARG_ENABLE(avcodec,
2273 [ --enable-avcodec libavcodec codec (default enabled)])
2274 AS_IF([test "${enable_avcodec}" != "no"], [
2275 PKG_CHECK_MODULES(AVCODEC,[libavcodec >= 52.25.0 libavutil],
2278 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2279 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2280 AC_CHECK_HEADERS(libavcodec/avcodec.h)
2281 AC_CHECK_HEADERS(libavutil/avutil.h)
2282 VLC_ADD_PLUGIN([avcodec])
2283 VLC_ADD_LIBS([avcodec],[$AVCODEC_LIBS])
2284 AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2285 VLC_ADD_LIBS([avcodec],[-Wl,-Bsymbolic])
2287 VLC_ADD_CFLAGS([avcodec],[$AVCODEC_CFLAGS])
2291 AC_MSG_ERROR([${AVCODEC_PKG_ERRORS}. Pass --disable-avcodec to ignore this error.])
2298 dnl libva needs avcodec
2300 AC_ARG_ENABLE(libva,
2301 [ --enable-libva VAAPI GPU decoding support (libVA) (default auto)])
2303 AS_IF([test "${enable_libva}" = "yes" -a "${have_avcodec}" != "yes" ], [
2304 AC_MSG_ERROR([--enable-libva and --disable-avcodec options are mutually exclusive. Use --enable-avcodec.])
2306 AS_IF([test "${enable_libva}" != "no"], [
2307 PKG_CHECK_MODULES(LIBVA, [libva libva-x11], [
2309 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2310 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2311 AC_CHECK_HEADERS(libavcodec/vaapi.h, [
2312 VLC_ADD_LIBS([avcodec],[$LIBVA_LIBS ${X_LIBS} ${X_PRE_LIBS} -lX11])
2313 VLC_ADD_CFLAGS([avcodec],[$LIBVA_CFLAGS ${X_CFLAGS}])
2314 AC_DEFINE(HAVE_AVCODEC_VAAPI, 1, [Define if avcodec has to be built with VAAPI support.])
2315 AC_MSG_NOTICE([VAAPI acceleration activated])
2317 AS_IF([test -n "${enable_libva}"], [
2318 AC_MSG_ERROR([libva is present but libavcodec/vaapi.h is missing])
2320 AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing ])
2325 AS_IF([test -n "${enable_libva}"], [
2326 AC_MSG_ERROR([${LIBVA_PKG_ERRORS}.])
2328 AC_MSG_WARN([${LIBVA_PKG_ERRORS}.])
2334 dnl dxva2 needs avcodec
2336 AC_ARG_ENABLE(dxva2,
2337 [ --enable-dxva2 DxVA2 GPU decoding support (default auto)])
2339 AS_IF([test "${enable_dxva2}" != "no"], [
2340 if test "${SYS}" = "mingw32"; then
2341 AS_IF([test "x${have_avcodec}" = "xyes"], [
2342 AC_CHECK_HEADERS(dxva2api.h,
2344 AC_CHECK_HEADERS(libavcodec/dxva2.h, [
2345 VLC_ADD_LIBS([avcodec],[-lole32 -lshlwapi -luuid])
2346 AC_DEFINE(HAVE_AVCODEC_DXVA2, 1, [Define if avcodec has to be built with DxVA2 support.])
2347 echo "DxVA2 acceleration activated"
2349 AS_IF([test "${enable_dxva2}" = "yes"],
2350 [AC_MSG_ERROR([dxva2 is present but libavcodec/dxva2.h is missing])],
2351 [AC_MSG_WARN([dxva2 is present but libavcodec/dxva2.h is missing ])])
2352 ], [#undef _WIN32_WINNT
2353 /* DXVA2 is only available in Vista and above */
2354 #define _WIN32_WINNT 0x600])
2356 AS_IF([test "${enable_dxva2}" = "yes"],
2357 [AC_MSG_ERROR([Could not find required dxva2api.h])],
2358 [AC_MSG_WARN([dxva2api.h not found])])
2361 AS_IF([test "x${enable_dxva2}" != "x"], [
2362 AC_MSG_ERROR([--enable-dxva2 and --disable-avcodec options are mutually exclusive.])
2370 dnl stream_out switcher needs libavcodec
2372 AC_ARG_ENABLE(switcher,
2373 [ --enable-switcher Stream-out switcher plugin (default disabled)])
2374 AS_IF([test "${enable_switcher}" = "yes"], [
2375 AS_IF([test "x${have_avcodec}" = "xyes"], [
2376 VLC_ADD_PLUGIN([stream_out_switcher])
2377 VLC_ADD_LIBS([stream_out_switcher],[$AVCODEC_LIBS $AVUTIL_LIBS $LIBM])
2378 VLC_ADD_CFLAGS([stream_out_switcher],[$AVCODEC_CFLAGS $AVUTIL_CFLAGS])
2379 ],[AC_MSG_ERROR([Stream_out switcher depends on avcodec])
2385 dnl avformat demuxer/muxer plugin
2388 AC_ARG_ENABLE(avformat,
2389 [ --enable-avformat libavformat containers (default enabled)],, [
2390 enable_avformat="${have_avcodec}"
2392 if test "${enable_avformat}" != "no"
2394 PKG_CHECK_MODULES(AVFORMAT,[libavformat > 52.30.0 libavcodec libavutil],
2397 CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2398 CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2399 AC_CHECK_HEADERS(libavformat/avformat.h libavformat/avio.h)
2400 AC_CHECK_HEADERS(libavutil/avutil.h)
2401 AS_IF([test "$enable_merge_ffmpeg" = "no"], [
2402 VLC_ADD_PLUGIN([avformat access_avio])
2403 VLC_ADD_LIBS([avformat access_avio],[$AVFORMAT_LIBS $AVUTIL_LIBS])
2404 VLC_ADD_CFLAGS([avformat access_avio],[$AVFORMAT_CFLAGS $AVUTIL_CFLAGS])
2405 AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2406 VLC_ADD_LIBS([avformat access_avio],[-Wl,-Bsymbolic])
2409 VLC_ADD_LIBS([avcodec],[$AVFORMAT_LIBS $AVUTIL_LIBS])
2410 VLC_ADD_CFLAGS([avcodec],[$AVFORMAT_CFLAGS $AVUTIL_CFLAGS])
2414 AC_MSG_ERROR([${AVFORMAT_PKG_ERRORS}. Pass --disable-avformat to ignore this error.])
2419 dnl swscale image scaling and conversion plugin
2422 AC_ARG_ENABLE(swscale,
2423 AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
2424 (default enabled)]))
2425 if test "${enable_swscale}" != "no"
2427 PKG_CHECK_MODULES(SWSCALE,[libswscale],
2430 CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
2431 CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
2432 AC_CHECK_HEADERS(libswscale/swscale.h)
2433 VLC_ADD_PLUGIN([swscale])
2434 VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
2435 VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
2436 AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2437 VLC_ADD_LIBS([swscale],[-Wl,-Bsymbolic])
2441 AC_MSG_ERROR([${SWSCALE_PKG_ERRORS}. Pass --disable-swscale to ignore this error. Proper software scaling and some video chroma conversion will be missing.])
2449 AC_ARG_ENABLE(postproc,
2450 [ --enable-postproc libpostproc image post-processing (default enabled)])
2451 if test "${enable_postproc}" != "no"
2453 PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
2456 CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
2457 CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
2458 AC_CHECK_HEADERS(postproc/postprocess.h)
2459 VLC_ADD_PLUGIN([postproc])
2460 VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS $AVUTIL_LIBS])
2461 VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS $AVUTIL_CFLAGS])
2464 AC_MSG_ERROR([${POSTPROC_PKG_ERRORS}. Pass --disable-postproc to ignore this error.])
2469 dnl faad decoder plugin
2472 [ --enable-faad faad codec (default auto)])
2473 if test "${enable_faad}" != "no"; then
2474 AC_ARG_WITH(faad-tree, [ --with-faad-tree=PATH faad tree for static linking])
2475 if test -n "${with_faad_tree}"; then
2476 AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
2477 real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
2478 if test -z "${real_faad_tree}"; then
2479 dnl The given directory can't be found
2481 AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
2483 if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"; then
2484 dnl Use the custom faad
2485 AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
2486 VLC_ADD_PLUGIN([faad])
2487 VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
2488 VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
2490 dnl The given libfaad wasn't built
2492 AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
2496 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_faad}"
2497 LDFLAGS="${LDFLAGS} ${LIBS_faad}"
2498 AC_CHECK_HEADERS(faad.h,
2499 [ AC_CHECK_LIB(faad, faacDecOpen, [
2500 VLC_ADD_PLUGIN([faad])
2501 VLC_ADD_LIBS([faad],[-lfaad]) ], [
2502 AC_CHECK_LIB(faad, NeAACDecOpen, [
2503 VLC_ADD_PLUGIN([faad])
2504 VLC_ADD_LIBS([faad],[-lfaad]) ], [
2505 AS_IF([test "${enable_faad}" = "yes"],
2506 [ AC_MSG_ERROR([Cannot find libfaad library...]) ],
2507 [ AC_MSG_WARN([Cannot find libfaad library...]) ]) ]) ])
2508 ] , [ AS_IF([test "${enable_faad}" = "yes"],
2509 [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ],
2510 [ AC_MSG_WARN([Cannot find development headers for libfaad...]) ]) ])
2516 dnl twolame encoder plugin
2518 PKG_ENABLE_MODULES_VLC([TWOLAME], [], [twolame], [MPEG Audio Layer 2 encoder], [auto], [], [], [ -DLIBTWOLAME_STATIC])
2521 dnl QuickTime plugin
2523 AC_ARG_ENABLE(quicktime,
2524 [ --enable-quicktime QuickTime module (deprecated)])
2525 if test "${enable_quicktime}" = "yes"; then
2526 if test "${SYS}" = "mingw32"; then
2527 VLC_ADD_PLUGIN([quicktime])
2529 AC_CHECK_HEADERS(QuickTime/QuickTime.h,
2530 [ VLC_ADD_PLUGIN([quicktime])
2531 VLC_ADD_LIBS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
2532 ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
2537 dnl A52/AC3 decoder plugin
2540 [ --enable-a52 A/52 support with liba52 (default enabled)])
2541 if test "${enable_a52}" != "no"
2544 [ --with-a52=PATH a52 headers and libraries])
2545 AC_ARG_WITH(a52-tree,
2546 [ --with-a52-tree=PATH a52dec tree for static linking ],[],[])
2547 if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
2549 real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
2550 if test -z "${real_a52_tree}"
2552 dnl The given directory can't be found
2554 AC_MSG_ERROR([${with_a52_tree} directory does not exist])
2556 dnl Use a custom a52dec
2557 AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
2558 if test -f ${real_a52_tree}/include/a52.h
2561 VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
2562 VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
2564 LDFLAGS="${LDFLAGS} ${LIBS_a52tofloat32}"
2565 AC_CHECK_LIB(a52, a52_free, [
2566 VLC_ADD_PLUGIN([a52tofloat32])
2567 VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
2568 VLC_ADD_LIBS([a52tofloat32],[-la52])
2570 if test -f ${real_a52_tree}/liba52/.libs/liba52.a
2572 AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
2574 AC_MSG_ERROR([the specified tree has not been compiled])
2579 AC_MSG_ERROR([the specified tree does not have a52.h])
2582 if test -z "${with_a52}"
2587 LDFLAGS_test="-L${with_a52}/lib"
2588 CPPFLAGS_test="-I${with_a52}/include"
2591 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
2592 LDFLAGS="${LDFLAGS} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
2593 AC_CHECK_HEADERS(a52dec/a52.h, [
2594 AC_CHECK_LIB(a52, a52_free, [
2595 VLC_ADD_PLUGIN([a52tofloat32])
2596 VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
2597 VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
2599 AC_MSG_ERROR([Could not find liba52 on your system: you may get it from http://liba52.sf.net/. Alternatively you can use --disable-a52 to disable the a52 plugin.])
2602 AC_MSG_ERROR([Could not find liba52 on your system: you may get it from http://liba52.sf.net/. Alternatively you can use --disable-a52 to disable the a52 plugin.])
2608 AC_ARG_WITH(a52-fixed,
2609 [ --with-a52-fixed specify if liba52 has been compiled with fixed point support],
2611 VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
2614 dnl DTS Coherent Acoustics decoder plugin
2616 PKG_ENABLE_MODULES_VLC([DCA], [dtstofloat32], [libdca >= 0.0.5], [DTS Coherent Acoustics support with libdca], [auto])
2621 PKG_ENABLE_MODULES_VLC([FLAC], [], [flac], [libflac decoder/encoder support], [auto])
2626 PKG_ENABLE_MODULES_VLC([LIBMPEG2], [], [libmpeg2 > 0.3.2], [libmpeg2 decoder support], [auto])
2631 PKG_ENABLE_MODULES_VLC([VORBIS], [], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
2636 AC_ARG_ENABLE(tremor,
2637 [ --enable-tremor Tremor decoder support (default disabled)])
2638 if test "${enable_tremor}" = "yes"
2640 AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
2641 VLC_ADD_PLUGIN([tremor])
2642 VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
2649 PKG_ENABLE_MODULES_VLC([SPEEX], [], [ogg speex >= 1.0.5], [Speex support], [auto])
2651 AS_IF([test "${enable_speex}" != "no"], [
2652 PKG_CHECK_MODULES([SPEEXDSP], [speexdsp], [
2655 AC_MSG_WARN([${SPEEXDSP_PKG_ERRORS}.])
2658 AM_CONDITIONAL([HAVE_SPEEXDSP], [test "$have_speexdsp" = "yes"])
2661 dnl theora decoder plugin
2663 PKG_ENABLE_MODULES_VLC([THEORA], [], [ogg theoradec >= 1.0 theoraenc], [experimental theora codec], [auto])
2666 dnl dirac encoder plugin
2668 PKG_ENABLE_MODULES_VLC([DIRAC], [], [dirac >= 0.10.0], [dirac encoder], [auto])
2671 dnl schroedinger decoder plugin (for dirac format video)
2673 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [], [schroedinger-1.0 >= 1.0.10], [dirac decoder and encoder using schroedinger], [auto])
2676 dnl PNG decoder module
2679 [ --enable-png PNG support (default enabled)])
2680 if test "${enable_png}" != "no"; then
2681 AC_CHECK_HEADERS(png.h, [
2683 LDFLAGS="${LDFLAGS} -lz $LIBM"
2684 AC_CHECK_LIB(png, png_set_rows, [
2685 VLC_ADD_LIBS([png],[-lpng -lz $LIBM])
2686 VLC_ADD_PLUGIN([png osdmenu osd_parser])],
2691 AM_CONDITIONAL(BUILD_OSDMENU, [test "${enable_png}" != "no"])
2694 dnl H264 encoder plugin (10-bit lib264)
2696 AC_ARG_ENABLE(x26410b,
2697 [ --enable-x26410b H264 10-bit encoding support with static libx264 (default disabled)])
2698 if test "${enable_x26410b}" != "no"; then
2699 AC_ARG_WITH(x26410b-tree,
2700 [ --with-x26410b-tree=PATH H264 10-bit encoding module with libx264 (static linking)],[],[])
2701 if test "${with_x26410b_tree}" != "no" -a -n "${with_x26410b_tree}"
2703 real_x26410b_tree="̧`cd ${with_x26410b_tree} 2>/dev/null && pwd`"
2704 if test -z "${real_x26410b_tree}"
2707 AC_MSG_ERROR([${with_x26410b_tree} directory does not exist])
2709 AC_MSG_CHECKING(for x264.h in ${real_x26410b_tree})
2710 if test -f ${with_x26410b_tree}/x264_config.h
2713 AC_MSG_CHECKING(for 10-bit build of x264)
2714 if grep -q "BIT_DEPTH.*10" ${with_x26410b_tree}/x264_config.h ;then
2716 VLC_ADD_PLUGIN([x26410b])
2717 VLC_ADD_CFLAGS([x26410b],[-I${with_x26410b_tree}])
2718 VLC_ADD_LIBS([x26410b],[-L${with_x26410b_tree} -lm -lpthread -lx264])
2721 AC_MSG_ERROR([${with_x26410b_tree} isnt build 10-bit])
2725 AC_MSG_ERROR([${with_x26410b_tree} doesnt have x264_config.h])
2728 PKG_CHECK_MODULES(X26410B, x26410b, [
2729 VLC_ADD_PLUGIN([x26410b])
2730 VLC_ADD_LDFLAGS([x26410b],[${X26410B_LIBS}])
2731 AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2732 VLC_ADD_LIBS([x26410b],[-Wl,-Bsymbolic])
2734 VLC_ADD_CFLAGS([x26410b],[${X26410B_CFLAGS}])
2735 if echo ${X26410B_LIBS} |grep -q 'pthreadGC2'; then
2736 VLC_ADD_CFLAGS([x26410b], [-DPTW32_STATIC_LIB])
2739 if test "${enable_x26410b}" = "yes"; then
2740 AC_MSG_ERROR([x26410b module doesn't work without staticly compiled libx264.a])
2748 dnl H264 encoder plugin (using libx264)
2751 [ --enable-x264 H264 encoding support with libx264 (default enabled)])
2752 if test "${enable_x264}" != "no"; then
2753 AC_ARG_WITH(x264-tree,
2754 [ --with-x264-tree=PATH x264 tree for static linking ],[],[])
2755 if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
2757 real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
2758 if test -z "${real_x264_tree}"
2760 dnl The given directory can't be found
2762 AC_MSG_ERROR([${with_x264_tree} directory does not exist])
2764 dnl Use a custom libx264
2765 AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
2766 if test -f ${real_x264_tree}/x264.h
2769 VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
2770 VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
2771 PKG_CHECK_MODULES(X264,x264, [
2772 VLC_ADD_PLUGIN([x264])
2773 VLC_ADD_LIBS([x264],[${X264_LIBS}])
2774 VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
2775 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
2776 VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
2779 AC_MSG_ERROR([the specified tree has not been compiled])
2783 AC_MSG_ERROR([the specified tree does not have x264.h])
2786 PKG_CHECK_MODULES(X264,x264 >= 0.86, [
2787 VLC_ADD_PLUGIN([x264])
2788 VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
2790 AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2791 VLC_ADD_LIBS([x264],[-Wl,-Bsymbolic])
2794 VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
2795 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
2796 VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
2799 if test "${enable_x264}" = "yes"; then
2800 AC_MSG_ERROR([${X264_PKG_ERRORS}: you may get it from http://www.videolan.org/x264.html])
2807 dnl libfluidsynth (MIDI synthetizer) plugin
2809 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [], [fluidsynth >= 1.1.2], [MIDI synthetiser with libfluidsynth], [auto])
2812 dnl Teletext Modules
2813 dnl vbi decoder plugin (using libzbvi)
2818 AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
2819 libzvbi (default enabled)]))
2821 AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
2822 zvbi) (default enabled if zvbi is absent)]))
2824 AS_IF( [test "${enable_zvbi}" != "no"],[
2825 PKG_CHECK_MODULES(ZVBI, [zvbi-0.2 >= 0.2.28],
2827 VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
2828 if test "${SYS}" = "mingw32"; then
2829 VLC_ADD_LIBS([zvbi],[ -lpthreadGC2])
2831 VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
2832 VLC_ADD_PLUGIN([zvbi])
2833 AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
2834 AS_IF( [test "${enable_telx}" = "yes"],[
2835 AC_MSG_WARN([The zvbi and telx modules are incompatible. Using zvbi.])
2838 AC_MSG_WARN([${ZVBI_PKG_ERRORS}. Enabling the telx module instead.])
2841 AS_IF( [test "${enable_telx}" != "no" ],[
2842 VLC_ADD_PLUGIN([telx])
2846 dnl libass subtitle rendering module
2848 AC_ARG_ENABLE(libass,
2849 [ --enable-libass Subtitle support using libass (default enabled)])
2850 AS_IF( [test "${enable_libass}" != "no"], [
2851 PKG_CHECK_MODULES(LIBASS, [libass >= 0.9.8],
2853 VLC_ADD_LIBS([libass],[$LIBASS_LIBS])
2854 VLC_ADD_CFLAGS([libass],[$LIBASS_CFLAGS])
2855 VLC_ADD_PLUGIN([libass])
2857 AC_CHECK_HEADERS(fontconfig/fontconfig.h,
2858 [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
2859 VLC_ADD_LIBS([libass],[-lfontconfig])
2862 AC_MSG_WARN([${LIBASS_PKG_ERRORS}.])
2867 dnl kate decoder plugin
2869 PKG_ENABLE_MODULES_VLC([KATE], [], [kate >= 0.3.0], [kate codec], [auto])
2872 dnl tiger rendering for kate decoder plugin
2874 AC_ARG_ENABLE(tiger,
2875 [ --enable-tiger Tiger rendering library for Kate streams (default auto)])
2876 AS_IF([test "${enable_tiger}" != "no"], [
2877 PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
2878 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])
2879 VLC_ADD_CFLAGS([kate],[$TIGER_CFLAGS])
2880 VLC_ADD_LIBS([kate],[$TIGER_LIBS]) ],[
2881 AS_IF([test -n "${enable_tiger}"], [
2882 AC_MSG_ERROR([${TIGER_PKG_ERRORS}.])
2892 EXTEND_HELP_STRING([Video plugins:])
2897 PKG_CHECK_MODULES([GL], [gl], [
2900 AC_CHECK_HEADER([GL/gl.h], [
2909 dnl OpenGL ES 2: depends on EGL 1.1 and is currently unfinished
2910 dnl PKG_ENABLE_MODULES_VLC([GLES2], [], [glesv2], [OpenGL ES v2 support], [auto])
2911 dnl OpenGL ES 1: depends on EGL 1.0 and is currently broken
2912 dnl PKG_ENABLE_MODULES_VLC([GLES1], [], [glesv1_cm], [OpenGL ES v1 support], [auto])
2915 [ --enable-egl OpenGL support through EGL (default disabled)],, [
2918 AS_IF([test "$enable_egl" != "no"], [
2919 PKG_CHECK_MODULES([EGL], [egl], [
2920 VLC_ADD_PLUGIN([gl])
2921 VLC_ADD_PLUGIN([egl])
2930 AC_CHECK_HEADERS(X11/Xlib.h)
2933 dnl X C Bindings modules
2936 [ --enable-xcb X11 support with XCB (default enabled)],, [
2937 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "darwin" -a "${SYS}" != "symbian"], [
2943 AC_ARG_ENABLE(xvideo,
2944 [ --enable-xvideo XVideo support (default enabled)],, [
2945 enable_xvideo="$enable_xcb"
2948 [ --enable-glx OpenGL support through GLX (default enabled)],, [
2949 enable_glx="$enable_xcb"
2953 AS_IF([test "${enable_xcb}" != "no"], [
2955 PKG_CHECK_MODULES(XCB, [xcb >= 1.6])
2957 PKG_CHECK_MODULES(XCB_SHM, [xcb-shm])
2958 PKG_CHECK_MODULES(XCB_COMPOSITE, [xcb-composite])
2960 AS_IF([test "${enable_xvideo}" != "no"], [
2961 PKG_CHECK_MODULES(XCB_XV, [xcb-xv >= 1.1.90.1], [
2962 VLC_ADD_PLUGIN([xcb_xv])
2966 PKG_CHECK_MODULES(XCB_RANDR, [xcb-randr >= 1.3], [
2967 VLC_ADD_PLUGIN([panoramix])
2968 VLC_ADD_LIBS([panoramix],[${XCB_RANDR_LIBS} ${XCB_LIBS}])
2969 VLC_ADD_CFLAGS([panoramix],[${XCB_RANDR_CFLAGS} ${XCB_CFLAGS}])
2971 AC_MSG_WARN([${XCB_RANDR_PKG_ERRORS}. Panoramix filter will not be supported.])
2975 PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms >= 0.3.4], [
2976 PKG_CHECK_MODULES(XPROTO, [xproto])
2977 VLC_ADD_PLUGIN([globalhotkeys])
2978 VLC_ADD_CFLAGS([globalhotkeys], [${XCB_KEYSYMS_CFLAGS} ${XCB_CFLAGS}])
2979 VLC_ADD_LIBS([globalhotkeys], [${XCB_KEYSYMS_LIBS} ${XCB_LIBS}])
2980 VLC_ADD_CFLAGS([xcb_window], [-DHAVE_XCB_KEYSYMS])
2982 AC_MSG_WARN([${XCB_KEYSYMS_PKG_ERRORS}. Hotkeys will not work.])
2985 AS_IF([test "${enable_glx}" != "no"], [
2986 AS_IF([test "${have_gl}" != "yes"], [
2987 AC_MSG_ERROR([${GL_PKG_ERRORS}. Pass --disable-glx if you do not need OpenGL X11 support.])
2989 VLC_ADD_PLUGIN([xcb_glx])
2992 AM_CONDITIONAL([HAVE_XCB], [test "${have_xcb}" = "yes"])
2998 [ --enable-sdl SDL support (default enabled)])
2999 AC_ARG_ENABLE(sdl-image,
3000 [ --enable-sdl-image SDL image support (default enabled)])
3001 if test "${enable_sdl}" != "no"
3003 PKG_CHECK_MODULES(SDL, [sdl >= 1.2.10], [
3004 # SDL on Darwin is heavily patched and can only run SDL_image
3005 if test "${SYS}" != "darwin"; then
3006 VLC_ADD_PLUGIN([vout_sdl])
3008 if test "${SYS}" != "mingw32" -a "${SYS}" != "os2"; then
3009 VLC_ADD_LIBS([vout_sdl],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3011 VLC_ADD_CFLAGS([vout_sdl],[${SDL_CFLAGS}])
3012 VLC_ADD_LIBS([vout_sdl],[${SDL_LIBS}])
3015 AS_IF([ test "${enable_sdl_image}" != "no"],[
3016 PKG_CHECK_MODULES(SDL_IMAGE, [SDL_image >= 1.2.10], [
3017 VLC_ADD_PLUGIN([sdl_image])
3018 VLC_ADD_LIBS([sdl_image],[${SDL_IMAGE_LIBS}])
3019 VLC_ADD_CFLAGS([sdl_image], [${SDL_IMAGE_CFLAGS}])],
3020 [ AC_MSG_WARN([${SDL_IMAGE_PKG_ERRORS}. You should install it alongside your SDL package.])
3024 AC_MSG_WARN([${SDL_PKG_ERRORS}.])
3031 AC_ARG_ENABLE(macosx-vout,
3032 [ --enable-macosx-vout Mac OS X video output module (default enabled on Mac OS X)])
3033 if test "x${enable_macosx_vout}" != "xno" &&
3034 (test "${SYS}" = "darwin" || test "${enable_macosx_vout}" = "yes")
3036 VLC_ADD_LIBS([vout_macosx],[-Wl,-framework,Cocoa])
3037 VLC_ADD_LIBS([vout_macosx],[-Wl,-framework,OpenGL])
3038 VLC_ADD_PLUGIN([vout_macosx])
3045 AC_ARG_ENABLE(freetype,
3046 [ --enable-freetype freetype support (default auto)])
3047 AC_ARG_ENABLE(fribidi,
3048 [ --enable-fribidi fribidi support (default auto)])
3049 AC_ARG_ENABLE(fontconfig,
3050 [ --enable-fontconfig fontconfig support (default auto)])
3052 if test "${enable_freetype}" != "no"; then
3053 PKG_CHECK_MODULES(FREETYPE, freetype2, [
3055 VLC_ADD_PLUGIN([freetype])
3056 VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
3057 if test "${SYS}" = "mingw32"; then
3058 VLC_ADD_LIBS([freetype],[-liconv -lz])
3060 VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
3062 AC_CHECK_HEADERS(Carbon/Carbon.h,
3063 [VLC_ADD_LIBS([freetype],[-Wl,-framework,Carbon])])
3065 dnl fontconfig support
3066 if test "${SYS}" != "mingw32"; then
3067 if test "${enable_fontconfig}" != "no"; then
3068 AC_CHECK_HEADERS(fontconfig/fontconfig.h, [
3069 VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
3070 VLC_ADD_LIBS([freetype],[-lfontconfig])
3071 ],[AC_MSG_WARN([library fontconfig not found. Styles will be disabled in freetype])])
3074 VLC_ADD_LIBS([freetype],[-lgdi32])
3078 if test "${enable_fribidi}" != "no"; then
3079 PKG_CHECK_MODULES(FRIBIDI, fribidi, [
3080 VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
3081 VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
3082 ],[AC_MSG_WARN([${FRIBIDI_PKG_ERRORS}. Bidirectional support will be disabled in FreeType.])])
3087 AS_IF([test -n "${enable_freetype}"],[
3088 AC_MSG_ERROR([${FREETYPE_PKG_ERRORS}. Install FreeType2 development or configure with --disable-freetype.])
3095 dnl QuartzText vout module (iOS/Mac OS)
3097 AC_ARG_ENABLE(macosx-quartztext,
3098 [ --enable-macosx-quartztext Mac OS X quartz text module (default enabled on Mac OS X)])
3099 if test "x${enable_macosx_quartztext}" != "xno" &&
3100 (test "${SYS}" = "darwin" || test "${enable_macosx_quartztext}" = "yes")
3102 VLC_ADD_PLUGIN([quartztext])
3103 VLC_ADD_LIBS([quartztext],[-Wl,-framework,ApplicationServices])
3109 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3112 dnl android surface module
3114 AC_ARG_ENABLE(android-surface,
3115 [ --enable-android-surface Android Surface video output module (default disabled)])
3116 if test "${enable_android_surface}" = "yes"; then
3117 if test "${HAVE_ANDROID}" = "1"; then
3118 VLC_ADD_PLUGIN([android_surface])
3119 VLC_ADD_LDFLAGS([android_surface], [-ldl])
3127 AC_ARG_ENABLE(ios-vout,
3128 [ --enable-ios-vout iOS video output module (default disabled)])
3129 if test "${enable_ios_vout}" = "yes"
3131 VLC_ADD_PLUGIN([vout_ios])
3132 VLC_ADD_CFLAGS([vout_ios], [-DUSE_OPENGL_ES=1])
3133 VLC_ADD_LIBS([vout_ios], [-Wl,-framework,OpenGLES,-framework,QuartzCore,-framework,UIKit,-framework,Foundation])
3137 dnl Windows DirectX module
3140 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"
3142 VLC_ADD_PLUGIN([panoramix])
3145 AC_ARG_ENABLE(directx,
3146 [AS_HELP_STRING([--enable-directx],
3147 [Microsoft DirectX support (default enabled on Windows)])],, [
3148 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"], [
3149 enable_directx="yes"
3155 AS_IF([test "${enable_directx}" != "no"], [
3157 AC_CHECK_HEADERS(ddraw.h, [
3160 AC_MSG_ERROR([Cannot find DirectX headers!])
3164 AC_CHECK_HEADERS(GL/wglew.h, [
3165 VLC_ADD_PLUGIN([glwin32])
3166 VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
3168 #include <windows.h>
3173 AC_CHECK_HEADERS(d3d9.h, [
3174 VLC_ADD_PLUGIN([direct3d])
3175 VLC_ADD_LIBS([direct3d],[-lgdi32])
3177 VLC_ADD_LIBS([direct3d glwin32],[-lole32 -luuid])
3179 AM_CONDITIONAL([HAVE_DIRECTX], [test "$have_directx" = "yes"])
3182 dnl Windows Direct2D plugin
3184 AC_ARG_ENABLE(direct2d,
3185 [ --enable-direct2d Win7/VistaPU Direct2D support (default auto on Win32)],, [
3186 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"], [
3187 enable_direct2d="no"
3190 AS_IF([test "${enable_direct2d}" != "no"], [
3191 AC_CHECK_HEADERS(d2d1.h, [
3192 VLC_ADD_PLUGIN([direct2d])
3193 VLC_ADD_LIBS([direct2d],[-lgdi32 -lole32 -luuid])
3195 AC_MSG_WARN([Cannot find Direct2D headers!])
3200 dnl win32 GDI plugin
3202 AC_ARG_ENABLE(wingdi,
3203 [ --enable-wingdi Win32 GDI module (default enabled on Win32)])
3204 if test "${enable_wingdi}" != "no"; then
3205 if test "${SYS}" = "mingw32"; then
3206 VLC_ADD_PLUGIN([wingdi])
3207 VLC_ADD_LIBS([wingdi],[-lgdi32 -lole32 -luuid])
3209 if test "${SYS}" = "mingwce"; then
3210 VLC_ADD_PLUGIN([wingdi wingapi])
3211 VLC_ADD_LIBS([wingdi],[-laygshell])
3212 VLC_ADD_LIBS([wingapi],[-laygshell])
3218 dnl Linux framebuffer module
3220 AC_CHECK_HEADER([linux/fb.h], [
3221 VLC_ADD_PLUGIN([fb])
3227 dnl try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
3228 dnl TODO: support for static linking
3230 AC_ARG_ENABLE(directfb,
3231 [ --enable-directfb DirectFB support (default disabled)])
3232 AC_ARG_WITH(directfb,
3233 [ --with-directfb=PATH path to DirectFB headers and libraries])
3235 if test "${enable_directfb}" = "yes"; then
3236 have_directfb="false"
3237 CPPFLAGS_mydirectfb=
3239 if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
3240 dnl Trying the given location
3243 CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
3244 LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/ -L${with_directfb}/src/.libs/"
3246 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
3247 LIBS="${LIBS} ${LIBS_new}"
3249 dnl FIXME: too obscure
3250 AC_CHECK_HEADER([directfb.h], [
3251 AC_CHECK_LIB([direct],[direct_initialize], [
3252 AC_CHECK_LIB([fusion], [fusion_enter], [
3253 AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
3254 ], have_directfb="false")
3255 ], have_directfb="false")
3256 ], have_directfb="false")
3260 if test "${have_directfb}" = "true"; then
3261 LIBS_mydirectfb="${LIBS_new} -lz $LIBDL -ldirectfb -lfusion -ldirect -lpthread"
3262 CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
3265 dnl Look for directfb-config
3266 AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
3267 if test "${DIRECTFB_CONFIG}" != "no"; then
3268 CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
3269 LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
3270 have_directfb="true"
3272 dnl Trying with pkg-config
3273 PKG_CHECK_MODULES(DIRECTFB, directfb, [
3274 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
3275 LIBS_mydirectfb="${DIRECTFB_LIBS}"
3276 have_directfb="true"
3277 ], [have_directfb="false"])
3280 if test "${have_directfb}" = "true"; then
3281 VLC_ADD_PLUGIN([directfb])
3282 VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
3283 VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
3285 AC_MSG_ERROR([${DIRECTFB_PKG_ERRORS}.])
3293 [ --enable-aa aalib output (default disabled)])
3294 if test "${enable_aa}" = "yes"
3296 AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
3297 if test "${have_aa}" = "true"
3299 VLC_ADD_PLUGIN([aa])
3300 VLC_ADD_LIBS([aa],[-laa])
3301 if test "${SYS}" != "mingw32"; then
3302 VLC_ADD_LIBS([aa],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3310 PKG_ENABLE_MODULES_VLC([CACA], [], [caca >= 0.99.beta14], [libcaca output],[auto])
3316 [AS_HELP_STRING([--enable-kva],
3317 [support the K Video Accelerator KVA (default enabled on OS/2)])],, [
3318 AS_IF([test "$SYS" = "os2"], [
3324 AS_IF([test "$enable_kva" != "no"], [
3325 AC_CHECK_HEADERS([kva.h], [
3327 AC_CHECK_LIB(kva, main, [
3333 AM_CONDITIONAL([HAVE_KVA], [test "${have_kva}" = "yes"])
3339 EXTEND_HELP_STRING([Audio plugins:])
3342 dnl Pulseaudio module
3344 AC_ARG_ENABLE(pulse,
3345 [AS_HELP_STRING([--enable-pulse],
3346 [use the PulseAudio client library (default auto)])])
3348 AS_IF([test "${enable_pulse}" != "no"], [
3349 PKG_CHECK_MODULES([PULSE], [libpulse >= 0.9.22], [
3352 PKG_CHECK_MODULES([PULSE], [libpulse >= 0.9.16], [
3353 AS_IF([test "${no_x}" != "yes"], [
3355 PULSE_LIBS="$PULSE_LIBS ${X_LIBS} ${X_PRE_LIBS} -lX11"
3357 AS_IF([test "${enable_pulse}" = "yes"], [
3358 AC_MSG_ERROR([Xlib is required with PulseAudio pre-0.9.22 versions
3359 (see http://www.pulseaudio.org/ticket/799 for further reference).])
3363 AS_IF([test "x${enable_pulse}" != "x"], [
3364 AC_MSG_ERROR([$PULSE_PKG_ERRORS. PulseAudio 0.9.22 or later required.])
3369 AM_CONDITIONAL([HAVE_PULSE], [test "${have_pulse}" = "yes"])
3375 [AS_HELP_STRING([--enable-alsa],
3376 [support the Advanced Linux Sound Architecture (default auto)])],, [
3377 AS_IF([test "$SYS" = "linux" -a "${have_pulse}" = "no"], [
3382 AS_IF([test "${enable_alsa}" != "no"], [
3383 PKG_CHECK_MODULES([ALSA], [alsa >= 1.0.16], [
3386 AS_IF([test "x${enable_alsa}" != "x"], [
3387 AC_MSG_ERROR([$ALSA_PKG_ERRORS. alsa-lib 1.0.16 or later required.])
3391 AM_CONDITIONAL([HAVE_ALSA], [test "${have_alsa}" = "yes"])
3394 dnl Open Sound System module
3397 [AS_HELP_STRING([--enable-oss],
3398 [support the Open Sound System OSS (default enabled on FreeBSD/NetBSD/DragonFlyBSD)])],, [
3399 AS_IF([test "$SYS" = "mingw32" -o "$SYS" = "mingwce" -o "$SYS" = "linux" -o "$SYS" = "openbsd"], [
3405 AS_IF([test "$enable_oss" != "no"], [
3406 AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
3408 AC_CHECK_LIB(ossaudio, main, [
3409 OSS_LIBS="-lossaudio"
3414 AM_CONDITIONAL([HAVE_OSS], [test "${have_oss}" = "yes"])
3417 dnl OpenBSD sndio module
3419 AC_ARG_ENABLE([sndio],
3420 [AS_HELP_STRING([--disable-sndio],
3421 [support the OpenBSD sndio (default auto)])],, [
3422 AS_IF([test "$SYS" = "opensd"], [
3427 AS_IF([test "$enable_sndio" != "no"], [
3428 AC_CHECK_HEADER([sndio.h], [
3432 AM_CONDITIONAL([HAVE_SNDIO], [test "${have_sndio}" = "yes"])
3435 dnl Windows Audio Session plugin
3437 AC_ARG_ENABLE([wasapi],
3438 [AS_HELP_STRING([--enable-wasapi],
3439 [use the Windows Audio Session API (default auto)])
3442 AS_IF([test "$enable_wasapi" != "no"], [
3443 AC_CHECK_HEADER([audioclient.h], [
3446 AS_IF([test "x${enable_wasapi}" != "x"], [
3447 AC_MSG_ERROR([Windows Audio Session API not found.])
3451 AM_CONDITIONAL([HAVE_WASAPI], [test "${have_wasapi}" = "yes"])
3454 dnl win32 waveOut plugin
3456 AC_ARG_ENABLE(waveout,
3457 [ --enable-waveout Win32 waveOut module (default enabled on Win32)])
3458 if test "${enable_waveout}" != "no"; then
3459 if test "${SYS}" = "mingw32"; then
3460 VLC_ADD_PLUGIN([waveout])
3461 VLC_ADD_LIBS([waveout],[-lwinmm])
3463 if test "${SYS}" = "mingwce"; then
3464 VLC_ADD_PLUGIN([waveout])
3469 dnl CoreAudio plugin
3471 AC_ARG_ENABLE(macosx-audio,
3472 [ --enable-macosx-audio Mac OS X audio module (default enabled on MacOS X)])
3473 if test "x${enable_macosx_audio}" != "xno" &&
3474 (test "${SYS}" = "darwin" || test "${enable_macosx_audio}" = "yes")
3476 AC_CHECK_HEADERS(CoreAudio/CoreAudio.h,
3477 [ VLC_ADD_PLUGIN([auhal])
3478 VLC_ADD_LIBS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
3479 ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
3483 dnl AudioQueue plugin
3485 AC_ARG_ENABLE(audioqueue,
3486 [ --enable-audioqueue AudioQueue audio module (default disabled)])
3487 if test "${enable_audioqueue}" = "yes"
3489 VLC_ADD_PLUGIN([audioqueue])
3490 VLC_ADD_LIBS([audioqueue], [-Wl,-framework,AudioToolbox,-framework,CoreFoundation])
3496 PKG_ENABLE_MODULES_VLC([JACK], [jack access_jack], [jack], [JACK audio I/O modules],[auto])
3499 dnl OpenSLES Android
3501 AC_ARG_ENABLE(opensles,
3502 [ --enable-opensles Android OpenSL ES audio module (default disabled)])
3503 if test "${HAVE_ANDROID}" = "1"; then
3504 if test "${enable_opensles}" = "yes"; then
3505 AC_CHECK_HEADERS(SLES/OpenSLES.h,
3506 [ VLC_ADD_PLUGIN([opensles_android]) ],
3507 [ AC_MSG_ERROR([cannot find OpenSLES headers])] )
3512 dnl libsamplerate plugin
3514 PKG_ENABLE_MODULES_VLC([SAMPLERATE], [], [samplerate], [Resampler with libsamplerate], [auto])
3520 [AS_HELP_STRING([--enable-kai],
3521 [support the K Audio Interface KAI (default enabled on OS/2)])],, [
3522 AS_IF([test "$SYS" = "os2"], [
3528 AS_IF([test "$enable_kai" != "no"], [
3529 AC_CHECK_HEADERS([kai.h], [
3531 AC_CHECK_LIB(kai, main, [
3537 AM_CONDITIONAL([HAVE_KAI], [test "${have_kai}" = "yes"])
3540 dnl Interface plugins
3543 EXTEND_HELP_STRING([Interface plugins:])
3548 AC_ARG_ENABLE(hildon,
3549 [ --enable-hildon Hildon touchscreen UI (default disabled)])
3550 AS_IF([test "${enable_hildon}" = "yes"], [
3551 PKG_CHECK_MODULES(HILDON, [hildon-1], [
3552 PKG_CHECK_MODULES(HILDON_FM, hildon-fm-2, [
3553 VLC_ADD_CFLAGS([hildon],[${HILDON_FM_CFLAGS} -DHAVE_HILDON_FM])
3554 VLC_ADD_LIBS([hildon],[${HILDON_FM_LIBS}])
3556 AC_MSG_WARN([${HILDON_FM_PKG_ERRORS}.])
3558 VLC_ADD_CFLAGS([hildon],[${HILDON_CFLAGS} ${X_CFLAGS}])
3559 VLC_ADD_LIBS([hildon],[${HILDON_LIBS} ${X_LIBS} ${X_PRE_LIBS} -lX11])
3560 VLC_ADD_PLUGIN([hildon])
3561 ALIASES="${ALIASES} mvlc"
3563 AS_IF([test "${enable_hildon}" = "yes"],[
3564 AC_MSG_ERROR([${HILDON_PKG_ERRORS}.])
3569 AM_CONDITIONAL(BUILD_HILDON, [test "${enable_hildon}" = "yes"])
3575 AS_HELP_STRING([--disable-qt], [Qt UI support (default enabled)])],, [
3576 AS_IF([test "${SYS}" = "darwin"], [
3580 AS_IF([test "${enable_qt}" != "no"], [
3581 PKG_CHECK_MODULES([QT], [QtCore >= 5 QtWidgets QtGui],, [
3582 PKG_CHECK_MODULES([QT], [QtCore QtGui >= 4.6.0],, [
3583 AS_IF([test -n "${enable_qt}"],[
3584 AC_MSG_ERROR([${QT_PKG_ERRORS}.])
3586 AC_MSG_WARN([${QT_PKG_ERRORS}.])
3592 AS_IF([test "${enable_qt}" != "no"], [
3593 VLC_ADD_PLUGIN([qt4])
3594 VLC_ADD_LIBS([qt4],[${QT_LIBS}])
3595 VLC_ADD_CXXFLAGS([qt4],[${QT_CFLAGS}])
3596 ALIASES="${ALIASES} qvlc"
3601 AC_MSG_CHECKING([whether Qt uses Xlib])
3602 CPPFLAGS="${CPPFLAGS} ${QT_CFLAGS}"
3603 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
3605 #if !defined (Q_WS_X11)
3609 AC_MSG_RESULT([yes])
3610 VLC_ADD_LIBS([qt4],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3611 VLC_ADD_CXXFLAGS([qt4],[${X_CFLAGS}])
3619 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"], [
3620 VLC_ADD_LIBS([qt4],[-lole32])
3622 AS_IF([test "${SYS}" = "darwin" ],[
3623 VLC_ADD_LIBS([qt4], [-Wl,-framework,Cocoa])
3626 QT_PATH="$(eval $PKG_CONFIG --variable=exec_prefix QtCore)"
3627 AC_PATH_PROGS(MOC, [moc-qt4 moc], moc, [${QT_PATH}/bin])
3628 AC_PATH_PROG(RCC, rcc, rcc, [${QT_PATH}/bin])
3629 AC_PATH_PROGS(UIC, [uic-qt4 uic], uic, [${QT_PATH}/bin])
3631 AM_CONDITIONAL(ENABLE_QT4, [test "$enable_qt" != "no"])
3634 dnl Simple test for skins2 dependency
3636 AS_IF([test "$enable_qt" = "no"], [
3637 AS_IF([test "${enable_skins2}" = "yes"], [
3638 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.])
3641 AC_MSG_WARN([The skins2 module depends on the Qt4 interface, Qt4 is not built so skins2 is disabled.])
3648 AC_ARG_ENABLE(skins2,
3649 [AS_HELP_STRING([--enable-skins2], [skins interface module (default auto)])])
3650 AS_IF([test "${enable_skins2}" != "no"], [
3651 have_skins_deps="yes"
3654 AS_IF([test "${SYS}" = "mingw32"], [
3655 VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -DWIN32_SKINS])
3656 VLC_ADD_LIBS([skins2],[-lgdi32 -lole32 -luuid -lmsimg32])
3658 ], [test "${SYS}" = "darwin"], [
3659 VLC_ADD_CPPFLAGS([skins2],[ -DMACOSX_SKINS])
3660 VLC_ADD_LIBS([skins2],[-Wl,-framework,Carbon])
3663 PKG_CHECK_MODULES([XPM], [xpm],, [have_skins_deps="no"])
3664 PKG_CHECK_MODULES([XINERAMA], [xinerama],, [have_skins_deps="no"])
3665 PKG_CHECK_MODULES([XEXT], [xext],, [have_skins_deps="no"])
3666 VLC_ADD_CPPFLAGS([skins2],[${X_CFLAGS} ${XEXT_CFLAGS} ${XPM_CFLAGS} -DX11_SKINS])
3667 VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} ${XEXT_LIBS} ${XPM_LIBS} ${XINERAMA_LIBS} -lX11])
3671 VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3673 dnl we need freetype
3674 AS_IF([test "${have_freetype}" != "yes"], [
3675 have_skins_deps="no"
3678 AS_IF([test "${have_skins_deps}" = "no"], [
3679 AS_IF([test "x${enable_skins2}" = "x"], [
3680 AC_MSG_WARN([Skins2 interface disabled due to missing dependencies.])
3682 AC_MSG_ERROR([Skins2 interface requires FreeType, libxpm, libxext and libxinerama])
3686 VLC_ADD_PLUGIN([skins2])
3687 ALIASES="${ALIASES} svlc"
3691 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes"])
3693 AC_ARG_ENABLE(libtar,
3694 [ --enable-libtar libtar support for skins2 (default auto)])
3695 AS_IF([test "${enable_skins2}" = "yes" && test "${enable_libtar}" != "no"], [
3696 AC_CHECK_HEADERS(libtar.h, [
3697 VLC_ADD_LIBS([skins2],[-ltar])
3702 dnl MacOS X gui module
3704 AC_ARG_ENABLE(macosx,
3705 [ --enable-macosx Mac OS X gui support (default enabled on Mac OS X)])
3706 if test "x${enable_macosx}" != "xno" -a "${SYS}" = "darwin"
3708 VLC_ADD_LIBS([macosx minimal_macosx], [-Wl,-framework,Cocoa -Wl,-framework,OpenGL -Wl,-framework,Carbon -Wl,-framework,CoreServices -Wl,-framework,AGL])
3709 VLC_ADD_OBJCFLAGS([macosx minimal_macosx], [-fobjc-exceptions] )
3710 VLC_ADD_PLUGIN([macosx minimal_macosx])
3712 VLC_ADD_LIBS([macosx], [-Wl,-framework,QTKit -Wl,-framework,IOKit -Wl,-framework,AddressBook -Wl,-framework,WebKit -Wl,-framework,CoreAudio -Wl,-framework,SystemConfiguration])
3714 if test ! -d ${CONTRIB_DIR}/Sparkle.framework
3716 AC_MSG_ERROR([Sparkle framework is required and was not found in ${CONTRIB_DIR}])
3718 VLC_ADD_LIBS([macosx], [-F${CONTRIB_DIR} -Wl,-framework,Sparkle])
3719 VLC_ADD_OBJCFLAGS([macosx], [-F${CONTRIB_DIR}])
3721 if test ! -d ${CONTRIB_DIR}/BGHUDAppKit.framework
3723 AC_MSG_ERROR([BGHUDAppKit framework is required and was not found in ${CONTRIB_DIR}])
3725 VLC_ADD_LIBS([macosx], [-F${CONTRIB_DIR} -Wl,-framework,BGHUDAppKit])
3726 VLC_ADD_OBJCFLAGS([macosx], [-F${CONTRIB_DIR}])
3731 dnl MacOS X dialor provider
3733 AC_ARG_ENABLE(macosx-dialog-provider,
3734 [ --enable-macosx-dialog-provider Mac OS X dialog module (default enabled on Mac OS X)])
3735 if test "x${enable_macosx_dialog_provider}" != "xno" &&
3736 (test "${SYS}" = "darwin" || test "${enable_macosx_dialog_provider}" = "yes")
3738 VLC_ADD_LIBS([macosx_dialog_provider],[-Wl,-framework,Cocoa])
3739 VLC_ADD_PLUGIN([macosx_dialog_provider])
3745 AC_ARG_ENABLE(ncurses,
3746 [AS_HELP_STRING([--disable-ncurses],[ncurses text-based interface (default auto)])])
3747 if test "${enable_ncurses}" != "no"; then
3750 AC_CHECK_HEADER(ncurses.h, [
3751 AC_CHECK_LIB(ncursesw, mvprintw, [
3752 AC_SEARCH_LIBS([tgetent], [ncursesw tinfow tinfo], [
3753 VLC_ADD_PLUGIN([ncurses])
3754 ALIASES="${ALIASES} nvlc"
3755 VLC_ADD_LIBS([ncurses],[-lncursesw ${LIBS}])
3757 AS_IF([test "${enable_ncurses}" = "yes"], [AC_MSG_ERROR([tgetent not found])])
3760 AS_IF([test "${enable_ncurses}" = "yes"], [AC_MSG_ERROR([libncursesw not found])])
3763 AS_IF([test "${enable_ncurses}" = "yes"], [AC_MSG_ERROR([ncurses.h not found])])
3772 [ --enable-lirc lirc support (default disabled)])
3773 if test "${enable_lirc}" = "yes"
3775 AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
3776 if test "${have_lirc}" = "true"
3778 VLC_ADD_PLUGIN([lirc])
3779 VLC_ADD_LIBS([lirc],[-llirc_client])
3783 EXTEND_HELP_STRING([Visualisations and Video filter plugins:])
3785 dnl Visualisation plugin
3787 AC_ARG_ENABLE(visual,
3788 [ --enable-visual visualisation plugin (default enabled)])
3789 if test "${enable_visual}" != "no"
3791 VLC_ADD_PLUGIN([visual])
3795 dnl goom visualization plugin
3797 PKG_ENABLE_MODULES_VLC([GOOM], [], [libgoom2], [goom visualization plugin], [auto])
3800 dnl libprojectM visualization plugin
3802 AC_ARG_ENABLE(projectm,
3803 [ --enable-projectm projectM visualization plugin (default enabled)])
3804 AS_IF([test "${enable_projectm}" != "no"],
3806 PKG_CHECK_MODULES(PROJECTM, libprojectM,
3808 VLC_ADD_PLUGIN([projectm])
3809 VLC_ADD_CXXFLAGS([projectm],[$PROJECTM_CFLAGS])
3810 VLC_ADD_LIBS([projectm],[$PROJECTM_LIBS])
3811 PKG_CHECK_MODULES(PROJECTM2, [libprojectM >= 2.0.0],
3812 [ AC_DEFINE([HAVE_PROJECTM2], 1, [Define to 1 if using libprojectM 2.x]) ],
3813 [ AC_MSG_WARN( [Using libprojectM version 1] )
3816 AC_MSG_WARN([${PROJECTM_PKG_ERRORS}.])
3821 dnl Vovoid VSXu visualization plugin
3824 [ --enable-vsxu Vovoid VSXu visualization plugin (default auto)])
3825 AS_IF([test "${enable_vsxu}" != "no"],
3827 PKG_CHECK_MODULES(VSXU, libvsxu,
3829 VLC_ADD_PLUGIN([vsxu])
3830 VLC_ADD_CXXFLAGS([vsxu],[$VSXU_CFLAGS])
3831 VLC_ADD_LIBS([vsxu],[$VSXU_LIBS])
3833 AC_MSG_WARN([${VSXU_PKG_ERRORS}.])
3838 dnl AtmoLight (homemade Philips Ambilight clone)
3841 AS_HELP_STRING([--disable-atmo],[AtmoLight (homemade Philips Ambilight clone)
3842 (default enabled)]),, [enable_atmo="yes"])
3843 AS_IF([test "${enable_atmo}" != no], [
3844 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "linux"], [
3846 VLC_ADD_PLUGIN([atmo])
3851 EXTEND_HELP_STRING([Service Discovery plugins:])
3853 dnl Bonjour services discovery
3854 PKG_ENABLE_MODULES_VLC([BONJOUR], [], [avahi-client >= 0.6], [Bonjour services discovery], [auto])
3857 dnl libudev services discovery
3858 PKG_ENABLE_MODULES_VLC([UDEV], [], [libudev >= 142], [Linux udev services discovery], [auto])
3861 dnl MTP devices services discovery
3862 PKG_ENABLE_MODULES_VLC([MTP], [mtp access_mtp], [libmtp >= 1.0.0], [MTP devices support], [auto])
3865 dnl UPnP Plugin (Intel SDK)
3867 PKG_ENABLE_MODULES_VLC([UPNP], [upnp], [libupnp], [Intel UPNP SDK],[auto])
3868 VLC_ADD_CXXFLAGS([upnp],[${UPNP_CFLAGS}])
3870 EXTEND_HELP_STRING([Misc options:])
3875 PKG_ENABLE_MODULES_VLC([LIBXML2], [xml], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
3881 AC_ARG_ENABLE(libgcrypt,
3882 [ --disable-libgcrypt gcrypt support (default enabled)])
3883 AS_IF([test "${enable_libgcrypt}" != "no"], [
3884 AC_CHECK_DECL([GCRYCTL_SET_THREAD_CBS], [
3885 libgcrypt-config --version >/dev/null || \
3886 AC_MSG_ERROR([gcrypt.h present but libgcrypt-config could not be found])
3887 AC_CHECK_LIB(gcrypt, gcry_control, [
3888 have_libgcrypt="yes"
3889 GCRYPT_CFLAGS="`libgcrypt-config --cflags`"
3890 GCRYPT_LIBS="`libgcrypt-config --libs`"
3892 AC_MSG_ERROR([libgcrypt not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
3893 ], [`libgcrypt-config --libs`])
3895 AC_MSG_ERROR([libgcrypt version 1.1.94 or higher not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
3896 ], [#include <gcrypt.h>]
3900 AC_SUBST(GCRYPT_CFLAGS)
3901 AC_SUBST(GCRYPT_LIBS)
3902 AM_CONDITIONAL([HAVE_GCRYPT], [test "${have_libgcrypt}" = "yes"])
3907 AC_ARG_ENABLE(gnutls,
3908 [ --enable-gnutls GNU TLS TLS/SSL support (default enabled)])
3910 AS_IF([test "${have_libgcrypt}" != "yes"], [
3911 AS_IF([test "${enable_gnutls}" = "yes"], [
3912 AC_MSG_ERROR([--enable-gnutls and --disable-libgcrypt are mutually exclusive.])
3916 AS_IF([test "${enable_gnutls}" != "no"], [
3917 PKG_CHECK_MODULES(GNUTLS, [gnutls >= 2.6.6], [
3918 VLC_ADD_PLUGIN([gnutls])
3920 AS_IF([test -n "${enable_gnutls}"], [
3921 AC_MSG_ERROR([${GNUTLS_PKG_ERRORS}.)])
3928 dnl Nokia MCE plugin (Maemo screen unblanking)
3930 PKG_CHECK_MODULES([MCE], [dbus-1 mce], [VLC_ADD_PLUGIN([mce])], [true])
3933 AS_IF([test -f "/etc/maemo_version"], [
3934 AC_DEFINE([HAVE_MAEMO], 1, [Define to 1 if building for the Maemo platform.])
3941 AC_ARG_ENABLE(taglib,
3942 [AS_HELP_STRING([--disable-taglib],
3943 [do not use TagLib (default enabled)])])
3944 AS_IF([test "${enable_taglib}" != "no"], [
3945 PKG_CHECK_MODULES(TAGLIB, taglib >= 1.5, [
3946 VLC_ADD_PLUGIN([taglib])
3947 VLC_ADD_LIBS([taglib],[$TAGLIB_LIBS -lz])
3948 VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS])
3950 AC_MSG_WARN([${TAGLIB_PKG_ERRORS}.])])
3955 dnl update checking system
3957 AC_ARG_ENABLE(update-check,
3958 [ --enable-update-check update checking system (default disabled)])
3959 if test "${enable_update_check}" = "yes"
3961 if test "${have_libgcrypt}" != "yes"
3963 AC_MSG_ERROR([libgcrypt is required for update checking system])
3965 VLC_ADD_LIBS([libvlccore], [${GCRYPT_LIBS}])
3966 VLC_ADD_CFLAGS([libvlccore], [${GCRYPT_CFLAGS}])
3967 AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
3971 dnl Growl notification plugin
3973 AC_ARG_ENABLE(growl,
3974 [ --enable-growl growl notification plugin (default disabled)],,
3976 AS_IF([test "${enable_growl}" != "no"], [
3977 AC_CHECK_HEADERS(${CONTRIB_DIR}/Growl.framework/Versions/A/Headers/Growl.h, [
3978 VLC_ADD_PLUGIN([growl])
3979 VLC_ADD_LIBS([growl], [-F${CONTRIB_DIR} -Wl,-framework,Growl,-framework,Foundation])
3980 VLC_ADD_OBJCFLAGS([growl], [-F${CONTRIB_DIR}])
3981 VLC_ADD_OBJCFLAGS([growl], [-fobjc-exceptions] )
3987 dnl Libnotify notification plugin
3989 PKG_ENABLE_MODULES_VLC([NOTIFY], [], [libnotify gtk+-2.0], [libnotify notification], [auto])
3994 AC_ARG_ENABLE(media-library,
3995 [ --enable-media-library media library (default disabled)])
3996 AS_IF([test "${enable_media_library}" = "yes"], [
3997 AC_DEFINE([MEDIA_LIBRARY], 1, [Define if you want to use the VLC media library])
3998 VLC_ADD_CPPFLAGS([qt4],"-DMEDIA_LIBRARY")
3999 VLC_ADD_PLUGIN([media_library])
4004 AS_IF([test "${SYS}" != "darwin"], [
4005 PKG_ENABLE_MODULES_VLC([SQLITE], [], [sqlite3 >= 3.6.0], [sqlite3], [auto])
4007 AS_IF([test "${enable_sqlite}" != "no"], [
4008 AC_CHECK_HEADERS(sqlite3.h, [
4009 VLC_ADD_PLUGIN([sqlite])
4010 VLC_ADD_LIBS([sqlite], [-lsqlite3])
4012 AC_MSG_ERROR([sqlite3 is required for the media library])
4020 dnl Endianness check
4023 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
4024 DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
4028 AC_SUBST(DEFS_BIGENDIAN)
4031 dnl Where to install KDE solid .desktop
4033 AC_ARG_VAR([KDE4_CONFIG], [kde4-config utility])
4034 AS_IF([test "x$KDE4_CONFIG" = "x"], [
4035 KDE4_CONFIG="kde4-config"
4038 AC_ARG_WITH(kde-solid,
4039 AS_HELP_STRING([--with-kde-solid=PATH],
4040 [KDE Solid actions directory (auto)]),, [
4042 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "darwin" ; then
4043 with_kde_solid="yes"
4047 AS_IF([test "${with_kde_solid}" != "no"], [
4048 AS_IF([test "${with_kde_solid}" = "yes"], [
4049 kde4datadir="`${KDE4_CONFIG} --install data`"
4050 AS_IF([test "x$kde4datadir" = "x"], [kde4datadir='${datadir}/kde4/apps'])
4051 soliddatadir="${kde4datadir}/solid/actions"
4053 soliddatadir="${with_kde_solid}"
4056 AC_SUBST(soliddatadir)
4057 AM_CONDITIONAL(KDE_SOLID, [test "x${soliddatadir}" != "x"])
4060 dnl DLL loader copied from MPlayer copied from somewhere else (WINE ?)
4063 AC_ARG_ENABLE(loader,
4064 AS_HELP_STRING([--enable-loader],[build DLL loader for ELF i386 platforms
4065 (default disabled)]))
4066 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
4067 AS_IF([test "${enable_loader}" = "yes"],
4068 [ VLC_ADD_PLUGIN([dmo])
4069 VLC_ADD_CPPFLAGS([dmo quicktime ],[-I\\\${top_srcdir}/modules/codec/loader])
4070 VLC_ADD_LIBS([dmo quicktime ],[\\\${top_builddir}/modules/codec/loader/libloader.la])
4071 VLC_ADD_LIBS([dmo quicktime], [-lpthread])
4074 EXTEND_HELP_STRING([Components:])
4080 [ --enable-vlc build the VLC media player (default enabled)])
4081 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
4083 AC_ARG_ENABLE(macosx-vlc-app,
4084 [ --enable-macosx-vlc-app build the VLC media player (default enabled on Mac OS X)])
4085 AM_CONDITIONAL(BUILD_MACOSX_VLC_APP, [test "${enable_macosx_vlc_app}" != "no" &&
4086 (test "${SYS}" = "darwin" || test "${enable_macosx_vlc_app}" = "yes") ])
4089 dnl Stuff used by the program
4091 VERSION_MESSAGE="${VERSION} ${CODENAME}"
4092 COPYRIGHT_MESSAGE="Copyright © ${COPYRIGHT_YEARS} the VideoLAN team"
4093 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string])
4094 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string])
4095 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
4096 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
4097 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,${VERSION_MAJOR}, [version major number])
4098 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,${VERSION_MINOR}, [version minor number])
4099 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,${VERSION_REVISION}, [version revision number])
4100 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,${VERSION_EXTRA}, [version extra number])
4101 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_DEV,"${VERSION_DEV}", [version development string])
4102 AC_SUBST(COPYRIGHT_MESSAGE)
4103 AC_SUBST(VERSION_MESSAGE)
4104 AC_SUBST(VERSION_MAJOR)
4105 AC_SUBST(VERSION_MINOR)
4106 AC_SUBST(VERSION_REVISION)
4107 AC_SUBST(VERSION_EXTRA)
4108 AC_SUBST(COPYRIGHT_YEARS)
4109 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami|sed -e 's/\\\/\\\\\\\/g'`", [user who ran configure])
4110 AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -f 2>/dev/null || hostname`", [host which ran configure])
4111 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1 | sed -e 's/ *$//'`", [compiler])
4113 dnl Handle substvars that use $(top_srcdir)
4115 CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS}"
4118 dnl Configuration is finished
4128 AC_SUBST(WINE_SDK_PATH)
4130 AC_SUBST(AM_CPPFLAGS)
4131 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
4132 AC_SUBST(FILE_LIBVLCCORE_DLL)
4133 AC_SUBST(FILE_LIBVLC_DLL)
4148 modules/access/Makefile
4149 modules/access/bd/Makefile
4150 modules/access/dshow/Makefile
4151 modules/access/mms/Makefile
4152 modules/access/rtp/Makefile
4153 modules/access/rtsp/Makefile
4154 modules/access/vcd/Makefile
4155 modules/access/vcdx/Makefile
4156 modules/access/screen/Makefile
4157 modules/access/zip/Makefile
4158 modules/access/zip/unzip/Makefile
4159 modules/access_output/Makefile
4160 modules/audio_filter/Makefile
4161 modules/audio_mixer/Makefile
4162 modules/audio_output/Makefile
4163 modules/codec/Makefile
4164 modules/codec/avcodec/Makefile
4165 modules/codec/dmo/Makefile
4166 modules/codec/loader/Makefile
4167 modules/codec/omxil/Makefile
4168 modules/codec/shine/Makefile
4169 modules/codec/spudec/Makefile
4170 modules/codec/wmafixed/Makefile
4171 modules/control/Makefile
4172 modules/control/dbus/Makefile
4173 modules/control/globalhotkeys/Makefile
4174 modules/demux/Makefile
4175 modules/demux/asf/Makefile
4176 modules/demux/avformat/Makefile
4177 modules/demux/avi/Makefile
4178 modules/demux/mkv/Makefile
4179 modules/demux/mp4/Makefile
4180 modules/demux/mpeg/Makefile
4181 modules/demux/playlist/Makefile
4182 modules/gui/Makefile
4183 modules/gui/macosx/Makefile
4184 modules/gui/hildon/Makefile
4185 modules/gui/minimal_macosx/Makefile
4186 modules/gui/macosx_dialog_provider/Makefile
4187 modules/gui/qt4/Makefile
4188 modules/gui/skins2/Makefile
4189 modules/lua/Makefile
4190 modules/meta_engine/Makefile
4191 modules/misc/Makefile
4192 modules/misc/playlist/Makefile
4193 modules/misc/osd/Makefile
4194 modules/misc/stats/Makefile
4195 modules/media_library/Makefile
4196 modules/mux/Makefile
4197 modules/mux/mpeg/Makefile
4198 modules/notify/Makefile
4199 modules/packetizer/Makefile
4200 modules/services_discovery/Makefile
4201 modules/stream_filter/Makefile
4202 modules/stream_filter/dash/Makefile
4203 modules/stream_out/Makefile
4204 modules/stream_out/transcode/Makefile
4205 modules/text_renderer/Makefile
4206 modules/video_chroma/Makefile
4207 modules/video_filter/Makefile
4208 modules/video_filter/dynamicoverlay/Makefile
4209 modules/video_output/Makefile
4210 modules/video_output/msw/Makefile
4211 modules/visualization/Makefile
4212 modules/visualization/visual/Makefile
4213 modules/mmx/Makefile
4214 modules/sse2/Makefile
4215 modules/altivec/Makefile
4216 modules/arm_neon/Makefile
4219 AM_COND_IF([HAVE_WIN32], [
4221 extras/package/win32/spad.nsi
4222 extras/package/win32/vlc.win32.nsi
4226 AM_COND_IF([HAVE_DARWIN], [
4228 extras/package/macosx/Info.plist
4229 extras/package/macosx/Resources/English.lproj/InfoPlist.strings
4233 dnl Generate makefiles
4236 dnl Do we have to use make or gmake ?
4237 if make --version 2>&1|grep -q GNU
4239 # GNU make, all seems good
4242 # Known GNU make alias (on BSD)
4245 dnl Shortcut to nice compile message
4246 if test -n $SHELL; then
4247 SHELL=${CONFIG_SHELL-/bin/sh}
4253 export PATH=\"$PATH\" LANG=C
4254 ($MAKE V=1 \$@ 2>&1 || touch .error\$\$)| `sed -ne \"s/^top_srcdir *= *//p\" < Makefile`/extras/buildsystem/make.pl
4255 test -f .error\$\$ && ERROR=1
4257 exit \$ERROR" >compile
4261 libvlc configuration
4262 --------------------
4263 version : ${VERSION}
4265 architecture : ${ARCH}
4266 optimizations : ${enable_optimizations}"
4267 if test "${enable_vlc}" != "no"; then
4268 echo "vlc aliases :${ALIASES}"
4270 echo "build vlc executable : no"
4273 To build vlc and its plugins, type \`$MAKE', or \`./compile' if you like nice colors."