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.])
67 _AM_DEPENDENCIES([OBJC])
73 AC_ARG_VAR([DESKTOP_FILE_VALIDATE], [Validator for desktop entry files])
74 AC_CHECK_PROGS(DESKTOP_FILE_VALIDATE, [${DESKTOP_FILE_VALIDATE} desktop-file-validate], :)
76 dnl Check for compiler properties
81 dnl Extend the --help string at the current spot.
82 AC_DEFUN([EXTEND_HELP_STRING], [m4_divert_once([HELP_ENABLE], [$1])])
84 dnl Allow binary package maintainer to pass a custom string to avoid
86 AC_ARG_WITH(binary-version,
87 AS_HELP_STRING([--with-binary-version=STRING],
88 [To avoid plugins cache problem between binary version]),[],[])
89 AS_IF([test -n "${with_binary_version}"],[
90 AC_DEFINE_UNQUOTED([DISTRO_VERSION],["${with_binary_version}"],
91 [Binary specific version])
95 dnl Check the operating system
107 CFLAGS="${CFLAGS} -pthread"
108 VLC_ADD_LIBS([vcd cdda vcdx],[-ldvd])
112 CFLAGS="${CFLAGS} -pthread"
115 CPPFLAGS="${CPPFLAGS} -I/usr/local/include"
116 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/"
126 dnl Force gcc "-arch" flag
130 ARCH_flag="-arch i386"
133 ARCH_flag="-arch ppc64"
136 ARCH_flag="-arch ppc"
139 ARCH_flag="-arch x86_64"
144 CFLAGS="${CFLAGS} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"
145 CXXFLAGS="${CXXFLAGS} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"
146 CPPFLAGS="${CPPFLAGS} ${ARCH_flag}"
147 OBJCFLAGS="${OBJCFLAGS} -D_INTL_REDIRECT_MACROS -std=gnu99 ${ARCH_flag}"
148 LDFLAGS="${LDFLAGS} -Wl,-headerpad_max_install_names ${ARCH_flag}"
149 VLC_ADD_LIBS([mkv mp4 motion], [-Wl,-framework,IOKit,-framework,CoreFoundation])
150 VLC_ADD_LIBS([libvlc vlc],[-Wl,-undefined,dynamic_lookup])
151 VLC_ADD_LIBS([avcodec avformat access_avio swscale postproc i420_rgb_mmx x264],[-Wl,-read_only_relocs,suppress])
152 VLC_ADD_CFLAGS([motion],[-fconstant-cfstrings])
153 VLC_ADD_LIBS([libvlccore],[-Wl,-framework,CoreFoundation])
155 dnl Allow binaries created on Lion to run on earlier releases
156 AC_LIBOBJ([getdelim])
159 dnl Check for Mac OS X SDK settings
161 AC_ARG_WITH(macosx-sdk,
162 [AS_HELP_STRING([--with-macosx-sdk=DIR],
163 [compile using the SDK in DIR])])
164 test "${with_macosx_sdk}" = "" && with_macosx_sdk=/Developer/SDKs/MacOSX10.6.sdk
165 ! test -d "${with_macosx_sdk}" && AC_MSG_ERROR([SDK "${with_macosx_sdk}" not found])
166 AC_ARG_WITH(macosx-version-min,
167 [AS_HELP_STRING([--with-macosx-version-min=VERSION],
168 [compile for MacOS X VERSION and above])])
169 if test "${with_macosx_version_min}" = "" ; then
170 with_macosx_version_min=10.5
172 MACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}
173 CPP="${CPP} -isysroot ${with_macosx_sdk} -mmacosx-version-min=${with_macosx_version_min}"
174 CC="${CC} -isysroot ${with_macosx_sdk} -mmacosx-version-min=${with_macosx_version_min}"
175 CXX="${CXX} -isysroot ${with_macosx_sdk} -mmacosx-version-min=${with_macosx_version_min}"
176 OBJC="${OBJC} -isysroot ${with_macosx_sdk} -mmacosx-version-min=${with_macosx_version_min}"
177 LD="${LD} -syslibroot ${with_macosx_sdk} -mmacosx_version_min=${with_macosx_version_min}"
178 CFLAGS="${CFLAGS} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"
179 CXXFLAGS="${CXXFLAGS} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"
180 OBJCFLAGS="${OBJCFLAGS} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"
181 export MACOSX_DEPLOYMENT_TARGET
183 *mingw32* | *cygwin* | *wince* | *mingwce*)
184 AC_CHECK_TOOL(WINDRES, windres, :)
185 AC_CHECK_TOOL(OBJCOPY, objcopy, :)
186 AC_DEFINE([_WIN32_WINNT], 0x0502, [Define to '0x0502' for Windows XP SP2 APIs.])
187 AC_DEFINE([_WIN32_IE], 0x0600, [Define to '0x0600' for IE 6.0 (and shell) APIs.])
190 *wince* | *mingwce* | *mingw32ce*)
192 dnl Sadly CeGCC still needs non-wince macros
198 dnl Check if we are using the mno-cygwin mode in which case we are
199 dnl actually dealing with a mingw32 compiler.
204 SYS=mingw32, AC_MSG_ERROR([VLC requires -mno-cygwin]))
208 if test "${SYS}" = "mingw32"; then
209 VLC_ADD_LIBS([libvlccore],[-lnetapi32 -lwinmm])
210 VLC_ADD_LDFLAGS([vlc],[-mwindows])
211 VLC_ADD_LIBS([win32text],[-lgdi32])
212 VLC_ADD_LIBS([cdda vcdx sdl_image vout_sdl],[-lwinmm])
213 AC_CHECK_PROGS(U2D, [unix2dos todos], unix2dos)
214 ac_default_prefix="`pwd`/_win32"
215 DESTDIR="`pwd`/_win32/"
218 dnl NSIS Installer prefix and WIN64
223 PROGRAMFILES="PROGRAMFILES64"
226 PROGRAMFILES="PROGRAMFILES"
229 AC_SUBST(PROGRAMFILES)
232 if test "${SYS}" = "mingwce"; then
233 VLC_ADD_LIBS([libvlccore],[-lmmtimer])
234 AC_CHECK_PROGS(U2D, [unix2dos todos], unix2dos)
235 ac_default_prefix="`pwd`/_wince"
236 DESTDIR="`pwd`/_wince/"
253 LDFLAGS="${LDFLAGS} -Zomf -Zbin-files -Zargs-wild"
259 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
260 AM_CONDITIONAL(HAVE_LINUX, test "${SYS}" = "linux")
261 AM_CONDITIONAL(HAVE_OS2, test "${SYS}" = "os2")
262 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
263 AM_CONDITIONAL(HAVE_WIN64, test "${HAVE_WIN64}" = "1")
264 AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
265 AM_CONDITIONAL(HAVE_SYMBIAN, test "${SYS}" = "symbian")
268 dnl Check for the contrib directory
271 [AS_HELP_STRING([--with-contrib[=DIR]],
272 [search for 3rd party libraries in DIR/include and DIR/lib])
274 AC_MSG_CHECKING([for 3rd party libraries path])
275 AS_IF([test -z "${with_contrib}" || test "${with_contrib}" = "yes"], [
276 CONTRIB_DIR="${srcdir}/contrib/${host}"
277 AS_IF([test ! -d "${CONTRIB_DIR}"], [
278 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
279 CONTRIB_DIR="${srcdir}/contrib/`$CC -dumpmachine`"
280 AS_IF([test ! -d "${CONTRIB_DIR}"], [
281 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
282 CONTRIB_DIR="${srcdir}/extras/contrib/hosts/${host}"
283 AS_IF([test ! -d "${CONTRIB_DIR}"], [
284 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
285 CONTRIB_DIR="${srcdir}/extras/contrib/hosts/`$CC -dumpmachine`"
286 AS_IF([test ! -d "${CONTRIB_DIR}"], [
287 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
289 AC_MSG_RESULT([not found])
295 AS_IF([test "${with_contrib}" != "no"], [
296 CONTRIB_DIR="${with_contrib}"
299 AC_MSG_RESULT([disabled])
302 AS_IF([test -n "${CONTRIB_DIR}"], [
303 AS_IF([test -d "${CONTRIB_DIR}/lib"],[
304 CONTRIB_DIR=`cd "${CONTRIB_DIR}" && pwd`
306 echo "${CONTRIB_DIR}/lib not found" >&AS_MESSAGE_LOG_FD
308 AC_MSG_RESULT([not usable])
312 AS_IF([test -n "${CONTRIB_DIR}"], [
313 AC_MSG_RESULT([${CONTRIB_DIR}])
314 export PATH=${CONTRIB_DIR}/bin:$PATH
315 CPPFLAGS="${CPPFLAGS} -I${CONTRIB_DIR}/include"
316 CFLAGS="${CFLAGS} -I${CONTRIB_DIR}/include"
317 CXXFLAGS="${CXXFLAGS} -I${CONTRIB_DIR}/include"
318 OBJCFLAGS="${OBJCFLAGS} -I${CONTRIB_DIR}/include"
319 AS_IF([test "$build" = "$host" -o "$PKG_CONFIG_LIBDIR"], [
320 export PKG_CONFIG_PATH="${CONTRIB_DIR}/lib/pkgconfig:$PKG_CONFIG_PATH"
322 export PKG_CONFIG_LIBDIR="${CONTRIB_DIR}/lib/pkgconfig"
324 LDFLAGS="${LDFLAGS} -L${CONTRIB_DIR}/lib"
326 AS_IF([test "${SYS}" = "darwin"], [
327 export LD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$LD_LIBRARY_PATH"
328 export DYLD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$DYLD_LIBRARY_PATH"
331 AS_IF([test -n "${with_contrib}" && test "${with_contrib}" != "no"], [
332 AC_MSG_ERROR([Third party libraries not found!])
335 AC_SUBST(CONTRIB_DIR)
338 dnl Sadly autoconf does not think about testing foo.exe when ask to test
339 dnl for program foo on win32
341 case "${build_os}" in
343 ac_executable_extensions=".exe"
349 dnl Android is linux, but a bit different
350 AS_IF([test "$SYS" = linux],[
351 AC_MSG_CHECKING([for an Android system])
352 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
353 [[#ifndef __ANDROID__
364 AM_CONDITIONAL(HAVE_ANDROID, test "${HAVE_ANDROID}" = "1")
368 dnl It's very bad, but our former custom system was worst
372 dnl override platform specific check for dependent libraries
373 dnl otherwise libtool linking of shared libraries will
374 dnl fail on anything other than pass_all.
375 AC_CACHE_VAL(lt_cv_deplibs_check_method,
376 [lt_cv_deplibs_check_method=pass_all])
378 LT_INIT([dlopen win32-dll shared disable-static])
380 LT_LANG([Windows Resource])
382 m4_undefine([AC_DEPLIBS_CHECK_METHOD])
383 m4_defun([AC_DEPLIBS_CHECK_METHOD],[])
385 lt_cv_deplibs_check_method=pass_all
387 AS_IF([test "${enable_shared}" = "no" -a "${enable_vlc}" != "no"], [
388 AC_MSG_ERROR([VLC is based on plugins. Shared libraries cannot be disabled.])
394 AM_GNU_GETTEXT_VERSION([0.18.1])
395 AM_GNU_GETTEXT([external])
402 dnl Check for broken versions of mingw-runtime compatability library
403 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"], [
404 AC_MSG_CHECKING(for broken mingw-runtime)
405 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
407 #if (__MINGW32_MAJOR_VERSION == 3) && (__MINGW32_MINOR_VERSION < 15)
408 #ifndef __MINGW64_VERSION_MAJOR
409 # error Attempting to use mingw-runtime with broken vsnprintf support
415 AC_MSG_RESULT([present])
416 AC_MSG_ERROR([LibVLC requires mingw-runtime version 3.15 or higher!])
418 dnl force use of mingw provided c99 *printf over msvcrt
419 CPPFLAGS="${CPPFLAGS} -D__USE_MINGW_ANSI_STDIO=1"
422 dnl Check for the need to include the mingwex lib for mingw32
423 if test "${SYS}" = "mingw32" ; then
424 AC_CHECK_LIB(mingwex,opendir,
425 AC_CHECK_LIB(mingw32,opendir,,
426 [VLC_ADD_LIBS([libvlccore],[-lmingwex])])
430 dnl Check for fnative-struct or mms-bitfields support for mingw32
431 if test "${SYS}" = "mingw32" ; then
433 CFLAGS="${CFLAGS} -mms-bitfields"
434 CXXFLAGS="${CXXFLAGS} -mms-bitfields"
435 AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
436 [ac_cv_c_mms_bitfields],
437 [AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
438 if test "${ac_cv_c_mms_bitfields}" = "no"; then
440 CFLAGS="${CFLAGS} -fnative-struct"
441 CXXFLAGS="${CXXFLAGS} -fnative-struct"
442 AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
443 [ac_cv_c_fnative_struct],
444 [AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
445 "${ac_cv_c_fnative_struct}" = "no" && VLC_RESTORE_FLAGS
450 dnl Buggy glibc prevention. Purposedly not cached.
451 dnl See sourceware.org bugs 5058 and 5443.
452 dnl Ubuntu alone has 20 bug numbers for this...
454 AC_MSG_CHECKING(for buggy GNU/libc versions)
455 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
457 #if defined (__GLIBC__) && (__GLIBC__ == 2) \
458 && (__GLIBC_MINOR__ >= 5) && (__GLIBC_MINOR__ <= 7)
459 # error GNU/libc with dcgettext killer bug!
462 AC_MSG_RESULT([not present])
464 AC_MSG_RESULT([found])
465 AS_IF([test "x${enable_nls}" != "xno"], [
466 AC_MSG_ERROR([Buggy GNU/libc (version 2.5 - 2.7) present. VLC would crash; there is no viable
467 work-around for this. Check with your distribution vendor on how to update the
468 glibc run-time. Alternatively, build with --disable-nls.])
472 dnl Plugin compilation stuff
476 dnl Check for system libs needed
479 dnl Check for usual libc functions
480 AC_CHECK_DECLS([nanosleep],,,[#include <time.h>])
481 AC_CHECK_FUNCS([daemon fcntl fstatvfs fork getenv getpwuid_r if_nameindex if_nametoindex isatty lstat memalign mmap openat pread posix_fadvise posix_madvise setlocale stricmp strnicmp strptime uselocale])
482 AC_REPLACE_FUNCS([atof atoll dirfd fdopendir flockfile fsync getdelim getpid gmtime_r inet_pton lldiv localtime_r nrand48 rewind setenv strcasecmp strcasestr strdup strlcpy strncasecmp strndup strnlen strsep strtof strtok_r strtoll swab tdestroy])
483 AC_CHECK_FUNCS(fdatasync,,
484 [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
487 dnl mingw64 implements those as static inline, not functions with C linkage
489 AC_LANG_PROGRAM([#include <stdio.h>], [
491 if (asprintf(&c, "%s %d", "string", 1) == -1)
493 ])],[AC_DEFINE([HAVE_ASPRINTF],[1],[Define to 1 if you have asprintf function])],[AC_LIBOBJ([asprintf])])
495 AC_LANG_PROGRAM([#include <stdio.h>], [
498 if (vasprintf(&c, "%s %d", ap) == -1)
500 ])],[AC_DEFINE([HAVE_VASPRINTF],[1],[Define to 1 if you have asprintf function])],[AC_LIBOBJ([vasprintf])])
502 # Windows CE does not have strcoll()
505 dnl Check for non-standard system calls
506 AC_CHECK_FUNCS([accept4 pipe2 eventfd vmsplice sched_getaffinity])
508 AH_BOTTOM([#include <vlc_fixups.h>])
511 AC_SEARCH_LIBS(poll, [poll], [
512 AC_DEFINE(HAVE_POLL, 1, [Define to 1 if the OS has poll().])
514 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "os2"], [
515 AC_MSG_ERROR([poll() is required.])
519 dnl Check for struct pollfd
520 AC_CHECK_TYPES([struct pollfd],,,
521 [#include <sys/types.h>
524 #elif defined (WIN32)
525 # include <winsock2.h>
529 dnl Check for connect
532 AC_SEARCH_LIBS(connect, [socket], [
533 AS_IF([test "$ac_cv_search_connect" != "none required"], [
534 SOCKET_LIBS="$ac_cv_search_connect"
537 AS_IF([test "${SYS}" = "mingw32"], [
538 SOCKET_LIBS="-lws2_32"
540 AS_IF([test "${SYS}" = "mingwce"], [
545 AS_IF([test -n "$SOCKET_LIBS"], [
546 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],[${SOCKET_LIBS}])
548 AC_SUBST(SOCKET_LIBS)
550 dnl Check for socklen_t
551 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
552 AC_CACHE_CHECK([for socklen_t in sys/socket.h], dnl ` (fix VIM syntax highlight
553 ac_cv_type_socklen_t,
554 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
555 [#include <sys/types.h>
557 # include <winsock2.h>
558 # include <ws2tcpip.h>
560 # include <sys/socket.h>
561 #endif]], [[socklen_t len; len = 0;]])],
562 ac_cv_type_socklen_t=yes,
563 ac_cv_type_socklen_t=no)])
564 AS_IF([test "$ac_cv_type_socklen_t" = no],
565 [AC_DEFINE(socklen_t, int)])
567 dnl Check for struct sockaddr_storage
568 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
569 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
570 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
572 [#include <sys/types.h>
573 #if defined( UNDER_CE )
574 # include <winsock2.h>
575 #elif defined( WIN32 )
576 # include <winsock2.h>
578 # include <sys/socket.h>
579 #endif], [struct sockaddr_storage addr;],
580 ac_cv_struct_sockaddr_storage=yes,
581 ac_cv_struct_sockaddr_storage=no)])
582 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
583 AC_DEFINE(sockaddr_storage, sockaddr)
584 AC_DEFINE(ss_family, sa_family)
587 dnl getaddrinfo, getnameinfo and gai_strerror check
588 dnl -lnsl and -lsocket are needed on Solaris;
589 dnl we purposedly make the test fail on Windows
591 AC_SEARCH_LIBS([getaddrinfo], [nsl],,, [${SOCKET_LIBS}])
594 dnl FreeBSD has a gnugetopt library for this:
596 AC_CHECK_FUNC(getopt_long,, [
597 AC_CHECK_LIB([gnugetopt],[getopt_long], [
598 GNUGETOPT_LIBS="-lgnugetopt"
601 AC_SUBST(GNUGETOPT_LIBS)
604 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 mod mpc dmo mp4 quicktime realvideo qt4 compressor headphone_channel_mixer normvol audiobargraph_a speex mono colorthres extract ball access_imem hotkeys mosaic gaussianblur dbus x264 hqdn3d],[-lm])
611 AC_CHECK_LIB(m,lrintf, [
612 AC_DEFINE(HAVE_LRINTF, 1, [Define to 1 if you have the lrintf function])
613 VLC_ADD_LIBS([skins2],[-lm])
616 dnl Check for dynamic plugins
618 have_dynamic_objects="no"
620 AC_SEARCH_LIBS(dlopen, [dl svld], [
621 AS_IF([test "$ac_cv_search_dlopen" != "none required"], [
622 LIBDL="$ac_cv_search_dlopen"
624 have_dynamic_objects="yes"
629 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"], [
631 have_dynamic_objects="yes" #assume we can use shared objects
634 test "${enable_shared}" = "no" && have_dynamic_objects=no
636 AS_IF([test "${have_dynamic_objects}" != "no"], [
637 AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1,
638 [Define to 1 if dynamic plugins are supported.])
640 dnl Clear $LIBDL so as not to break linking
643 AM_CONDITIONAL(HAVE_DYNAMIC_PLUGINS, [test "${have_dynamic_objects}" != "no"])
646 VLC_ADD_LIBS([realvideo lua],[$LIBDL])
648 dnl Check for thread library
649 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
653 AC_SEARCH_LIBS(pthread_rwlock_init, pthread pthreads c_r, [
654 VLC_ADD_LIBS([libvlccore libvlc vlc plugin],[${LIBS}])
658 AC_CHECK_LIB(rt, clock_nanosleep, [
659 VLC_ADD_LIBS([libvlccore],[-lrt])
661 AC_CHECK_FUNC(nanosleep,,[
662 AC_CHECK_LIB(rt,nanosleep, [
663 VLC_ADD_LIBS([libvlccore],[-lrt])
665 AC_CHECK_LIB(posix4,nanosleep, [
666 VLC_ADD_LIBS([libvlccore],[-lposix4])
671 AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LIBS([libvlccore],[-lrt])])
673 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
675 dnl Check for misc headers
676 AC_MSG_CHECKING(for strncasecmp in strings.h)
677 AC_EGREP_HEADER(strncasecmp,strings.h,[
679 AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
680 Define if <strings.h> defines strncasecmp.)],[
683 dnl Check for headers
684 AC_CHECK_HEADERS([search.h])
685 AC_CHECK_HEADERS(getopt.h strings.h locale.h xlocale.h)
686 AC_CHECK_HEADERS(fcntl.h sys/time.h sys/ioctl.h sys/stat.h)
687 AC_CHECK_HEADERS([arpa/inet.h netinet/udplite.h sys/eventfd.h])
688 AC_CHECK_HEADERS([net/if.h], [], [],
690 #include <sys/types.h>
691 #include <sys/socket.h>
693 AC_CHECK_HEADERS([sys/mount.h], [], [],
695 #include <sys/param.h>
698 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
699 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
700 AC_CHECK_HEADERS([linux/version.h linux/dccp.h scsi/scsi.h linux/magic.h])
701 AC_CHECK_HEADERS(syslog.h)
702 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
704 dnl LP64 and LLP64 architectures had better define ssize_t by themselves...
705 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.]) dnl ` (fix VIM syntax highlight
706 AC_CHECK_TYPE(ssize_t,, [
707 AC_DEFINE(ssize_t, int)
710 dnl Check for threads library
711 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
712 AC_CHECK_HEADERS(pthread.h)
713 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
715 dnl It seems that autoconf detects pkg-config only during the first
716 dnl PKG_CHECK_MODULES from configure.ac - which makes sense. But in our case,
717 dnl it is nested within a conditional block, so it was not working right.
718 dnl Make PKG_CONFIG_PATH precious so that it appears in the help and get saved
719 AC_ARG_VAR(PKG_CONFIG_PATH,
720 [Paths where to find .pc not at the default location])
721 PKG_PROG_PKG_CONFIG()
723 dnl On some OS we need static linking
724 AS_IF([test -n "${PKG_CONFIG}" ],[
725 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "darwin" -o "${SYS}" = "os2" ],[
726 PKG_CONFIG="${PKG_CONFIG} --static"
732 dnl Check for zlib.h and -lz along with system -lminizip if available
734 AC_CHECK_HEADERS(zlib.h, [ have_zlib=yes ], [ have_zlib=no ])
735 AM_CONDITIONAL(HAVE_ZLIB, [ test "${have_zlib}" = "yes" ])
736 if test "${have_zlib}" = "yes"
738 VLC_ADD_LIBS([access_http mp4 skins2 sap mkv unzip zip],[-lz])
739 PKG_CHECK_MODULES([MINIZIP], [minizip] , [ have_minizip=yes ], [
740 AC_CHECK_HEADERS([unzip.h], [
742 MINIZIP_LIBS="-lminizip -lz"
745 MINIZIP_CFLAGS="-I\\\${top_srcdir}/modules/access/zip/unzip"
746 MINIZIP_LIBS="\\\${top_builddir}/modules/access/zip/unzip/libunzip.la"
749 VLC_ADD_CPPFLAGS([skins2],[$MINIZIP_CFLAGS])
750 VLC_ADD_LIBS([skins2],[$MINIZIP_LIBS])
752 AM_CONDITIONAL(HAVE_MINIZIP, [ test "${have_minizip}" = "yes" ])
755 dnl Manual switch for UTF-8
756 AC_ARG_ENABLE(non-utf8,
757 [AS_HELP_STRING([--enable-non-utf8],
758 [support legacy non-UTF-8 systems (default disabled)])],, [
759 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "os2"], [
763 AS_IF([test "${enable_non_utf8}" != "no"], [
764 AC_DEFINE([ASSUME_UTF8], [1],
765 [Define to 1 if the operating system uses UTF-8 internally])
771 [AS_HELP_STRING([--enable-dbus],
772 [compile D-Bus message bus support (default enabled)])])
775 if test "${enable_dbus}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
778 PKG_CHECK_MODULES(DBUS, [dbus-1 >= 1.0.0],
779 [ AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
780 VLC_ADD_LIBS([libvlccore],[$DBUS_LIBS])
781 VLC_ADD_CFLAGS([libvlccore],[$DBUS_CFLAGS])
782 dnl Check for dbus control interface
783 AC_ARG_ENABLE(dbus-control,
784 [AS_HELP_STRING([--disable-dbus-control],
785 [D-Bus control interface (default enabled)])])
786 if test "${enable_dbus_control}" != "no"
788 VLC_ADD_PLUGIN([dbus])
789 VLC_ADD_LIBS([dbus],[$DBUS_LIBS])
790 VLC_ADD_CFLAGS([dbus],[$DBUS_CFLAGS])
792 dnl Check for Telepathy
793 AC_ARG_ENABLE(telepathy,
794 AS_HELP_STRING([--enable-telepathy],[Telepathy Presence plugin through DBus(default enabled)]))
795 if test "${enable_telepathy}" != "no"; then
796 VLC_ADD_PLUGIN([telepathy])
797 VLC_ADD_LIBS([telepathy],[$DBUS_LIBS])
798 VLC_ADD_CFLAGS([telepathy],[$DBUS_CFLAGS])
800 dnl Power Management Inhibiter
801 VLC_ADD_PLUGIN([inhibit])
802 VLC_ADD_LIBS([inhibit],[$DBUS_LIBS])
803 VLC_ADD_CFLAGS([inhibit],[$DBUS_CFLAGS])
805 [AC_MSG_ERROR([${DBUS_PKG_ERRORS}.])]
811 dnl Check for ntohl, etc.
813 CFLAGS="${CFLAGS} -Wall -Werror"
814 AC_CACHE_CHECK([for ntohl in sys/param.h],
815 [ac_cv_c_ntohl_sys_param_h],
816 [ AC_TRY_COMPILE([#include <sys/param.h>],
817 [int meuh; ntohl(meuh);],
818 ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
819 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
820 AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
824 EXTEND_HELP_STRING([Optimization options:])
826 dnl Compiler warnings
829 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])
830 RDC_PROG_CC_FLAGS([-pipe])
832 RDC_PROG_CXX_WFLAGS([all extra sign-compare undef pointer-arith volatile-register-var])
839 [AS_HELP_STRING([--enable-debug],
840 [build with run-time assertions (default disabled)])],,
843 [Define to 1 if debug code should NOT be compiled])
844 AS_IF([test "${enable_debug}" != "no"], [
845 AC_CHECK_HEADERS([valgrind/valgrind.h])
854 [AS_HELP_STRING([--enable-gprof],[profile with gprof (default disabled)])],,
856 AS_IF([test "${enable_gprof}" != "no"], [
857 CFLAGS="${CFLAGS} -pg"
858 CXXFLAGS="${CXXFLAGS} -pg"
859 OBJCFLAGS="${OBJCFLAGS} -pg"
860 LDFLAGS="${LDFLAGS} -pg"
864 [AS_HELP_STRING([--enable-cprof],[profile with cprof (default disabled)])],,
866 AS_IF([test "${enable_gprof}" != "no"], [
867 CFLAGS="${CFLAGS} -finstrument-functions"
868 CXXFLAGS="${CXXFLAGS} -finstrument-functions"
869 OBJCFLAGS="${OBJCFLAGS} -finstrument-functions"
870 LDFLAGS="${LDFLAGS} -finstrument-functions"
876 AC_ARG_ENABLE(coverage,
877 [AS_HELP_STRING([--enable-coverage],
878 [build for test coverage (default disabled)])],,
879 [enable_coverage="no"])
880 AS_IF([test "${enable_coverage}" != "no"], [
881 CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
882 CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
883 LDFLAGS="-lgcov ${LDFLAGS}"
886 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"], [
888 CFLAGS="${CFLAGS} -fvisibility=hidden"
889 CXXFLAGS="${CXXFLAGS} -fvisibility=hidden"
890 OBJCFLAGS="${OBJCFLAGS} -fvisibility=hidden"
891 AC_CACHE_CHECK([if $CC accepts -fvisibility=hidden],
892 [ac_cv_c_visibility_hidden], [
893 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
894 ac_cv_c_visibility_hidden=yes
896 ac_cv_c_visibility_hidden=no
899 AS_IF([test "${ac_cv_c_visibility_hidden}" = "no"], [VLC_RESTORE_FLAGS])
904 dnl Enable/disable optimizations
906 AC_ARG_ENABLE(optimizations,
907 [AS_HELP_STRING([--disable-optimizations],
908 [disable compiler optimizations (default enabled)])],,
909 [enable_optimizations="yes"])
911 dnl Check for various optimization flags
912 AS_IF([test "${enable_optimizations}" != "no"], [
914 dnl -O4 and -O3 only in production builds
915 AS_IF([test "{enable_debug}" = "no"], [
917 CFLAGS="${CFLAGS} -O4"
918 CXXFLAGS="${CXXFLAGS} -O4"
919 OBJCFLAGS="${OBJCFLAGS} -O4"
920 AC_CACHE_CHECK([if $CC accepts -O4], [ac_cv_c_o4], [
921 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
927 AS_IF([test "${ac_cv_c_o4}" = "no"], [
929 CFLAGS="${CFLAGS} -O3"
930 CXXFLAGS="${CXXFLAGS} -O3"
931 OBJCFLAGS="${OBJCFLAGS} -O3"
932 AC_CACHE_CHECK([if $CC accepts -O3], [ac_cv_c_o3], [
933 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
939 AS_IF([test "${ac_cv_c_o3}" = "no"], [VLC_RESTORE_FLAGS])
943 dnl Check for -ffast-math
945 CFLAGS="${CFLAGS} -ffast-math"
946 CXXFLAGS="${CXXFLAGS} -ffast-math"
947 OBJCFLAGS="${OBJCFLAGS} -ffast-math"
948 AC_CACHE_CHECK([if $CC accepts -ffast-math], [ac_cv_c_fast_math], [
949 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
950 ac_cv_c_fast_math=yes
955 AS_IF([test "${ac_cv_c_fast_math}" = "no"], [VLC_RESTORE_FLAGS])
957 dnl Check for -funroll-loops
959 CFLAGS="${CFLAGS} -funroll-loops"
960 CXXFLAGS="${CXXFLAGS} -funroll-loops"
961 OBJCFLAGS="${OBJCFLAGS} -funroll-loops"
962 AC_CACHE_CHECK([if $CC accepts -funroll-loops], [ac_cv_c_unroll_loops], [
963 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
964 ac_cv_c_unroll_loops=yes
966 ac_cv_c_unroll_loops=no
969 AS_IF([test "${ac_cv_c_unroll_loops}" = "no"], [VLC_RESTORE_FLAGS])
971 AS_IF([test "$enable_debug" = "no"], [
972 dnl Check for -fomit-frame-pointer
974 CFLAGS="${CFLAGS} -fomit-frame-pointer"
975 CXXFLAGS="${CXXFLAGS} -fomit-frame-pointer"
976 OBJCFLAGS="${OBJCFLAGS} -fomit-frame-pointer"
977 AC_CACHE_CHECK([if $CC accepts -fomit-frame-pointer],
978 [ac_cv_c_omit_frame_pointer], [
979 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
980 ac_cv_c_omit_frame_pointer=yes
982 ac_cv_c_omit_frame_pointer=no
985 AS_IF([test "${ac_cv_c_omit_frame_pointer}" = "no"], [VLC_RESTORE_FLAGS])
989 dnl Check for Darwin plugin linking flags
990 AS_IF([test "${SYS}" = "darwin"], [
992 CFLAGS="${CFLAGS} -bundle -undefined error"
993 AC_CACHE_CHECK([if $CC accepts -bundle -undefined error],
995 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
1001 AS_IF([test "${ac_cv_ld_darwin}" != "no"], [
1002 VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
1007 dnl Checks for __attribute__(aligned()) directive
1009 CFLAGS="${CFLAGS} -Werror"
1010 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1011 [ac_cv_c_attribute_aligned],
1012 [ac_cv_c_attribute_aligned=0
1013 for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1015 [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1016 [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1019 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1020 AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1021 [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1024 dnl Check for __attribute__((packed))
1025 AC_CACHE_CHECK([for __attribute__((packed))],
1026 [ac_cv_c_attribute_packed],
1027 [ac_cv_c_attribute_packed=no
1028 AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b; (void)b;],
1029 [ac_cv_c_attribute_packed=yes])])
1030 if test "${ac_cv_c_attribute_packed}" != "no"; then
1031 AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1037 case "${host_cpu}" in
1046 dnl Check for backtrace() support
1047 AC_CHECK_HEADERS(execinfo.h)
1048 AC_CHECK_FUNCS(backtrace)
1053 ALIASES="${ALIASES} cvlc rvlc"
1056 dnl Some plugins aren't useful on some platforms
1058 if test "${SYS}" = "os2"; then
1059 VLC_ADD_PLUGIN([dynamicoverlay])
1060 elif test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1061 VLC_ADD_PLUGIN([dynamicoverlay access_shm])
1062 elif test "${SYS}" != "mingwce"; then
1063 VLC_ADD_PLUGIN([access_smb dmo globalhotkeys])
1064 VLC_ADD_LIBS([dmo],[-lole32 -luuid])
1066 if test "${SYS}" = "darwin"; then
1067 VLC_ADD_LIBS([quartztext],[-Wl,-framework,ApplicationServices])
1071 dnl Accelerated modules
1074 dnl Check for fully working MMX intrinsics
1075 dnl We need support for -mmmx, we need <mmintrin.h>, and we also need a
1076 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1078 [AS_HELP_STRING([--disable-mmx],
1079 [disable MMX optimizations (default auto)])],,[
1080 case "${host_cpu}" in
1091 AS_IF([test "${enable_mmx}" != "no"], [
1094 CFLAGS="${CFLAGS} -O -mmmx"
1095 AC_CACHE_CHECK([if $CC groks MMX intrinsics], [ac_cv_c_mmx_intrinsics], [
1096 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1097 [#include <mmintrin.h>
1099 uint64_t frobzor;]], [
1101 a = b = c = (__m64)frobzor;
1102 a = _mm_slli_pi16(a, 3);
1103 a = _mm_adds_pi16(a, b);
1104 c = _mm_srli_pi16(c, 8);
1105 c = _mm_slli_pi16(c, 3);
1106 b = _mm_adds_pi16(b, c);
1107 a = _mm_unpacklo_pi8(a, b);
1108 frobzor = (uint64_t)a;]])], [
1109 ac_cv_c_mmx_intrinsics=yes
1111 ac_cv_c_mmx_intrinsics=no
1115 AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1116 AC_DEFINE(HAVE_MMX_INTRINSICS, 1, [Define to 1 if MMX intrinsics are available.])
1120 CFLAGS="${CFLAGS} -mmmx"
1121 AC_CACHE_CHECK([if $CC groks MMX inline assembly], [ac_cv_mmx_inline], [
1122 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1124 asm volatile("packuswb %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1127 ac_cv_mmx_inline=yes
1132 AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1133 AC_DEFINE(CAN_COMPILE_MMX, 1, [Define to 1 inline MMX assembly is available.])
1137 AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1138 [ac_cv_mmxext_inline], [
1139 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1141 asm volatile("maskmovq %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1144 ac_cv_mmxext_inline=yes
1146 ac_cv_mmxext_inline=no
1150 AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1151 AC_DEFINE(CAN_COMPILE_MMXEXT, 1, [Define to 1 if MMX EXT inline assembly is available.])
1155 AM_CONDITIONAL([HAVE_MMX], [test "${have_mmx}" = "yes"])
1156 AM_CONDITIONAL([HAVE_MMXEXT], [test "${have_mmxext}" = "yes"])
1158 dnl Check for fully workin SSE2 intrinsics
1159 dnl We need support for -mmmx, we need <emmintrin.h>, and we also need a
1160 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1162 [AS_HELP_STRING([--disable-sse],
1163 [disable SSE (1-4) optimizations (default auto)])],, [
1164 case "${host_cpu}" in
1174 AS_IF([test "${enable_sse}" != "no"], [
1175 ARCH="${ARCH} sse sse2"
1178 CFLAGS="${CFLAGS} -O -msse2"
1179 AC_CACHE_CHECK([if $CC groks SSE2 intrinsics], [ac_cv_c_sse2_intrinsics], [
1180 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1181 [#include <emmintrin.h>
1183 uint64_t frobzor;]], [
1185 a = b = c = _mm_set1_epi64((__m64)frobzor);
1186 a = _mm_slli_epi16(a, 3);
1187 a = _mm_adds_epi16(a, b);
1188 c = _mm_srli_epi16(c, 8);
1189 c = _mm_slli_epi16(c, 3);
1190 b = _mm_adds_epi16(b, c);
1191 a = _mm_unpacklo_epi8(a, b);
1192 frobzor = (uint64_t)_mm_movepi64_pi64(a);]])], [
1193 ac_cv_c_sse2_intrinsics=yes
1195 ac_cv_c_sse2_intrinsics=no
1199 AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1200 AC_DEFINE(HAVE_SSE2_INTRINSICS, 1, [Define to 1 if SSE2 intrinsics are available.])
1204 CFLAGS="${CFLAGS} -msse"
1205 AC_CACHE_CHECK([if $CC groks SSE inline assembly], [ac_cv_sse_inline], [
1206 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1208 asm volatile("xorps %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1211 ac_cv_sse_inline=yes
1217 AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1218 AC_DEFINE(CAN_COMPILE_SSE, 1, [Define to 1 if SSE inline assembly is available.])
1221 AC_CACHE_CHECK([if $CC groks SSE2 inline assembly], [ac_cv_sse2_inline], [
1222 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1224 asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1227 ac_cv_sse2_inline=yes
1229 ac_cv_sse2_inline=no
1232 AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1233 AC_DEFINE(CAN_COMPILE_SSE2, 1, [Define to 1 if SSE2 inline assembly is available.])
1238 AC_CACHE_CHECK([if $CC groks SSE3 inline assembly], [ac_cv_sse3_inline], [
1239 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1241 asm volatile("movsldup %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1244 ac_cv_sse3_inline=yes
1246 ac_cv_sse3_inline=no
1250 AS_IF([test "${ac_cv_sse3_inline}" != "no"], [
1251 AC_DEFINE(CAN_COMPILE_SSE3, 1, [Define to 1 if SSE3 inline assembly is available.]) ])
1253 AC_CACHE_CHECK([if $CC groks SSSE3 inline assembly], [ac_cv_ssse3_inline], [
1254 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1256 asm volatile("pabsw %%xmm0,%%xmm0"::"r"(p):"xmm0");
1259 ac_cv_ssse3_inline=yes
1261 ac_cv_ssse3_inline=no
1265 AS_IF([test "${ac_cv_ssse3_inline}" != "no"], [
1266 AC_DEFINE(CAN_COMPILE_SSSE3, 1, [Define to 1 if SSSE3 inline assembly is available.]) ])
1269 AC_CACHE_CHECK([if $CC groks SSE4.1 inline assembly],
1270 [ac_cv_sse4_1_inline], [
1271 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1273 asm volatile("pmaxsb %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1276 ac_cv_sse4_1_inline=yes
1278 ac_cv_sse4_1_inline=no
1282 AS_IF([test "${ac_cv_sse4_1_inline}" != "no"], [
1283 AC_DEFINE(CAN_COMPILE_SSE4_1, 1, [Define to 1 if SSE4_1 inline assembly is available.]) ])
1286 AC_CACHE_CHECK([if $CC groks SSE4.2 inline assembly],
1287 [ac_cv_sse4_2_inline], [
1288 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1290 asm volatile("pcmpgtq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1293 ac_cv_sse4_2_inline=yes
1295 ac_cv_sse4_2_inline=no
1299 AS_IF([test "${ac_cv_sse4_2_inline}" != "no"], [
1300 AC_DEFINE(CAN_COMPILE_SSE4_2, 1, [Define to 1 if SSE4_2 inline assembly is available.]) ])
1303 AC_CACHE_CHECK([if $CC groks SSE4A inline assembly], [ac_cv_sse4a_inline], [
1304 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1306 asm volatile("insertq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1309 ac_cv_sse4a_inline=yes
1311 ac_cv_sse4a_inline=no
1315 AS_IF([test "${ac_cv_sse4a_inline}" != "no"], [
1316 AC_DEFINE(CAN_COMPILE_SSE4A, 1, [Define to 1 if SSE4A inline assembly is available.]) ])
1318 AM_CONDITIONAL([HAVE_SSE2], [test "$have_sse2" = "yes"])
1321 CFLAGS="${CFLAGS} -mmmx"
1323 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly], [ac_cv_3dnow_inline], [
1324 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1326 asm volatile("pfadd %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1329 ac_cv_3dnow_inline=yes
1331 ac_cv_3dnow_inline=no
1335 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1336 AC_DEFINE(CAN_COMPILE_3DNOW, 1,
1337 [Define to 1 if 3D Now! inline assembly is available.])
1340 AM_CONDITIONAL([HAVE_3DNOW], [test "$have_3dnow" = "yes"])
1344 [AS_HELP_STRING([--disable-neon],
1345 [disable NEON optimizations (default auto)])],, [
1346 AS_IF([test "${host_cpu}" = "arm"], [enable_neon="yes"] ,[enable_neon="no"])
1348 AS_IF([test "${enable_neon}" != "no"], [
1350 CFLAGS="${CFLAGS} -mfpu=neon"
1351 AC_CACHE_CHECK([if $CC groks NEON inline assembly], [ac_cv_neon_inline], [
1354 asm volatile("vqmovun.s64 d0, q1":::"d0");
1355 asm volatile("ssat r0, #1, r0":::"r0"); /* assume ARMv6 */
1358 ac_cv_neon_inline="-mfpu=neon"
1360 ac_cv_neon_inline="no"
1364 AS_IF([test "$ac_cv_neon_inline" != "no"], [
1365 NEON_CFLAGS="$ac_cv_neon_inline"
1366 AC_DEFINE([CAN_COMPILE_NEON], 1, [Define to 1 if NEON (and ARMv6) assembly is available with NEON_CFLAGS.])
1369 ac_cv_neon_inline="no"
1371 AC_SUBST(NEON_CFLAGS)
1372 AM_CONDITIONAL(HAVE_NEON, [test "${ac_cv_neon_inline}" != "no"])
1375 AC_ARG_ENABLE(altivec,
1376 [AS_HELP_STRING([--disable-altivec],
1377 [disable AltiVec optimizations (default auto)])],, [
1378 AS_IF([test "${host_cpu}" = "powerpc"],
1379 [enable_altivec=yes], [enable_altivec=no])
1382 AS_IF([test "${enable_altivec}" = "yes"], [
1383 ARCH="${ARCH} altivec";
1385 AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1386 [ac_cv_altivec_inline],
1387 [AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1388 ac_cv_altivec_inline="yes",
1389 [CFLAGS="${CFLAGS} -Wa,-m7400"
1390 AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1391 [ac_cv_altivec_inline="-Wa,-m7400"],
1392 ac_cv_altivec_inline=no)
1395 AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1396 AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1397 [Define to 1 if AltiVec inline assembly is available.])
1398 AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1399 VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1400 VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1401 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_altivec_inline}])
1406 dnl The AltiVec C extensions
1408 dnl There are several possible cases:
1409 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1410 dnl need <altivec.h>
1411 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1412 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1413 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1414 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1415 dnl - Others: test should fail
1417 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1419 [# OS X/PPC test (gcc 4.x)
1420 CFLAGS="${CFLAGS} -mpim-altivec -force_cpusubtype_ALL"
1421 AC_TRY_COMPILE([vector unsigned char foo;],
1422 [vec_ld(0, (unsigned char *)0);],
1423 [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1424 [# OS X/PPC test (gcc 3.x)
1425 CFLAGS="${CFLAGS} -faltivec"
1426 AC_TRY_COMPILE([vector unsigned char foo;],
1427 [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1428 [ac_cv_c_altivec="-faltivec"],
1429 dnl Below this are the Linux tests
1430 [# Linux/PPC test (gcc 4.x)
1431 CFLAGS="${CFLAGS} -maltivec"
1432 AC_TRY_COMPILE([#include <altivec.h>],
1433 [vec_ld(0, (unsigned char *)0);],
1434 [ac_cv_c_altivec="-maltivec"],
1435 [# Linux/PPC test (gcc 3.3)
1436 CFLAGS="${CFLAGS} -maltivec -mabi=altivec"
1437 AC_TRY_COMPILE([#include <altivec.h>],
1438 [vec_ld(0, (unsigned char *)0);],
1440 ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1441 [# Linux/PPC test (gcc 3.3)
1442 CFLAGS="${CFLAGS} -fvec"
1443 AC_TRY_COMPILE([#include <altivec.h>],
1444 [vec_ld(0, (unsigned char *)0);],
1445 [ac_cv_c_altivec="-fvec"],
1446 [ac_cv_c_altivec=no])
1454 AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1455 CPPFLAGS="${CPPFLAGS} ${ac_cv_c_altivec}"
1456 AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, [Define to 1 if C AltiVec extensions are available.])
1457 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_c_altivec}])
1458 VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1461 AC_CHECK_HEADERS(altivec.h)
1464 LDFLAGS="${LDFLAGS} -Wl,-framework,vecLib"
1465 AC_CACHE_CHECK([if linker needs -framework vecLib],
1467 [AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)])
1469 AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1470 VLC_ADD_LIBS([libvlccore memcpyaltivec],[-Wl,-framework,vecLib])
1473 AM_CONDITIONAL([HAVE_ALTIVEC], [test "$have_altivec" = "yes"])
1476 dnl Special arch tuning
1479 [AS_HELP_STRING([--with-tuning=ARCH],
1480 [tune compilation for an architecture (default varies)])])
1481 if test -n "${with_tuning}"; then
1482 if test "${with_tuning}" != "no"; then
1483 CFLAGS_TUNING="-mtune=${with_tuning}"
1486 if test "${SYS}" = "darwin" -a "${host_cpu}" = "i686"; then
1487 CFLAGS_TUNING="-march=prescott -mtune=generic"
1488 elif test "${SYS}" = "darwin" -a "${host_cpu}" = "x86_64"; then
1489 CFLAGS_TUNING="-march=core2 -mtune=core2"
1490 elif test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "i386"; then
1491 CFLAGS_TUNING="-mtune=pentium2"
1492 elif test "${host_cpu}" = "x86_64"; then
1493 CFLAGS_TUNING="-mtune=athlon64"
1494 elif test "${host_cpu}" = "powerpc"; then
1495 CFLAGS_TUNING="-mtune=G4";
1499 dnl NOTE: this can't be cached cleanly
1500 AS_IF([test -n "${CFLAGS_TUNING}"], [
1502 CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1503 AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1504 AC_COMPILE_IFELSE([AC_LANG_SOURCE([])], [
1505 AC_MSG_RESULT([yes])
1509 AS_IF([test "${with_tuning}"], [AC_MSG_ERROR([requested tuning not supported])])
1516 AC_ARG_ENABLE(optimize-memory,
1517 [AS_HELP_STRING([--enable-optimize-memory],
1518 [optimize memory usage over performance])])
1519 if test "${enable_optimize_memory}" = "yes"; then
1520 AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1524 dnl Allow running as root (useful for people running on embedded platforms)
1526 AC_ARG_ENABLE(run-as-root,
1527 [AS_HELP_STRING([--enable-run-as-root],
1528 [allow running VLC as root (default disabled)])])
1529 AS_IF([test "${enable_run_as_root}" = "yes"],[
1530 AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1531 [Define to 1 to allow running VLC as root (uid 0).])
1538 [AS_HELP_STRING([--disable-sout],
1539 [disable streaming output (default enabled)])])
1540 AS_IF([test "${enable_sout}" != "no"], [
1541 AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1543 AM_CONDITIONAL(ENABLE_SOUT, [test "${enable_sout}" != "no"])
1547 [AS_HELP_STRING([--disable-lua],
1548 [disable LUA scripting support (default enabled)])])
1549 if test "${enable_lua}" != "no"
1551 PKG_CHECK_MODULES(LUA, lua5.1,
1554 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua >= 5.1 instead])
1555 PKG_CHECK_MODULES(LUA, lua >= 5.1,
1558 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying manual detection instead])
1560 AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1563 AC_CHECK_LIB( lua5.1 , luaL_newstate,
1564 [LUA_LIBS="-llua5.1"],
1565 AC_CHECK_LIB( lua51 , luaL_newstate,
1566 [LUA_LIBS="-llua51"],
1567 AC_CHECK_LIB( lua , luaL_newstate,
1575 if test "x${have_lua}" = "xyes" ; then
1576 VLC_ADD_LIBS([lua],[$LUA_LIBS])
1577 VLC_ADD_CFLAGS([lua],[$LUA_CFLAGS])
1579 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.])
1581 AC_ARG_VAR([LUAC], [LUA byte compiler])
1582 AC_PATH_PROGS(LUAC,[${LUAC} luac], [false])
1583 AS_IF([test "${LUAC}" = "false"], [
1584 AC_MSG_ERROR([Could not find the LUA byte compiler.])
1587 AM_CONDITIONAL(BUILD_LUA, [test "${have_lua}" = "yes"])
1593 AC_ARG_ENABLE(httpd,
1594 [AS_HELP_STRING([--disable-httpd],
1595 [disable the built-in HTTP server (default enabled)])])
1596 if test "${enable_httpd}" != "no"
1598 AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP daemon support)
1600 AM_CONDITIONAL(BUILD_HTTPD, [test "${enable_httpd}" != "no"])
1604 dnl VideoLAN manager
1607 [AS_HELP_STRING([--disable-vlm],
1608 [disable the stream manager (default enabled)])],,
1609 [enable_vlm="${enable_sout}"])
1610 AS_IF([test "${enable_vlm}" != "no"], [
1611 AS_IF([test "${enable_sout}" = "no"], [
1612 AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1614 AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1616 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1623 EXTEND_HELP_STRING([Input plugins:])
1626 dnl libproxy support
1628 AC_ARG_ENABLE(libproxy,
1629 [AS_HELP_STRING([--enable-libproxy],[support libproxy (default auto)])])
1630 AS_IF([test "${enable_libproxy}" != "no"], [
1631 PKG_CHECK_MODULES(LIBPROXY, libproxy-1.0, [
1632 AC_DEFINE(HAVE_LIBPROXY, 1, [Define if libproxy is available])
1633 VLC_ADD_CFLAGS([access_http],[$LIBPROXY_CFLAGS])
1634 VLC_ADD_LIBS([access_http],[$LIBPROXY_LIBS])
1636 AS_IF([test -n "${enable_libproxy}"], [
1637 AC_MSG_ERROR([${LIBPROXY_PKG_ERRORS}.])
1645 AC_ARG_ENABLE(live555,
1646 [AS_HELP_STRING([--enable-live555],
1647 [enable RTSP input through live555 (default enabled)])])
1648 AS_IF([test "${enable_live555}" != "no" -a -n "${CXX}"], [
1651 AS_IF([test -z "${CONTRIB_DIR}"], [
1652 CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1654 CPPFLAGS_live555="-I${CONTRIB_DIR}/include/liveMedia -I${CONTRIB_DIR}/include/groupsock -I${CONTRIB_DIR}/include/BasicUsageEnvironment -I${CONTRIB_DIR}/include/UsageEnvironment"
1656 AS_IF([test "${SYS}" = "solaris"], [
1657 CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1659 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1661 AC_CACHE_CHECK([for live555 version 1324598400 or later], [ac_cv_live555], [
1662 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
1663 [#include <liveMedia_version.hh>
1664 #if !defined (LIVEMEDIA_LIBRARY_VERSION_INT) || (LIVEMEDIA_LIBRARY_VERSION_INT < 1324598400)
1673 AS_IF([test "$ac_cv_live555" = "no"], [
1674 AC_MSG_WARN([liveMedia is missing or its installed version is too old:
1675 Version 2010.05.29 or later is required to proceed.
1676 You can get an updated one from http://www.live555.com/liveMedia .])
1677 AS_IF([test -n "${enable_live555}"], [
1678 AC_MSG_ERROR([Update live555 or pass --disable-live555 to disable RTSP input support.])
1681 other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1682 other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
1683 AS_IF([test "${SYS}" = "mingw32"], [
1684 # add ws2_32 for closesocket, select, recv
1685 other_libs="$other_libs -lws2_32"
1686 ], [test "${SYS}" = "mingwce"], [
1687 # add ws2 for closesocket, select, recv
1688 other_libs="$other_libs -lws2"
1691 dnl We need to check for pic because live555 don't provide shared libs
1692 dnl and we want to build a plugins so we need -fPIC on some arch.
1693 VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1694 AC_CHECK_LIB(liveMedia_pic, main, [
1695 VLC_ADD_PLUGIN([live555])
1696 VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
1698 AC_CHECK_LIB(liveMedia, main, [
1699 VLC_ADD_PLUGIN([live555])
1700 VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1701 ],[],[${other_libs}])],[${other_libs_pic}])
1708 dnl - special access module for dc1394 input
1709 dnl - dv module: digital video module check for libraw1394
1710 dnl - linsys modules: access module check for libzvbi
1712 PKG_ENABLE_MODULES_VLC([DC1394], [], [libraw1394 >= 2.0.1 libdc1394-2 >= 2.1.0], [dc1394 access module], [auto])
1713 PKG_ENABLE_MODULES_VLC([DV], [access_dv], [libraw1394 >= 2.0.1 libavc1394 >= 0.5.3], [DV input module], [auto])
1715 AC_ARG_ENABLE(linsys,
1716 [AS_HELP_STRING([--enable-linsys],
1717 [Linux Linear Systems Ltd. SDI and HD-SDI input cards (default enabled)])])
1718 if test "$SYS" = "linux" -a "${enable_linsys}" != "no"; then
1719 VLC_ADD_PLUGIN([linsys_hdsdi])
1720 PKG_CHECK_MODULES(LINSYS_SDI, [zvbi-0.2 >= 0.2.28],
1721 [ VLC_ADD_LIBS([linsys_sdi],[$LINSYS_SDI_LIBS])
1722 VLC_ADD_CFLAGS([linsys_sdi],[$LINSYS_SDI_CFLAGS])
1723 VLC_ADD_PLUGIN([linsys_sdi]) ],
1724 [AC_MSG_WARN([${LINSYS_SDI_PKG_ERRORS}.])]
1729 dnl dvdread module: check for libdvdread
1731 PKG_ENABLE_MODULES_VLC([DVDREAD], [], [dvdread], [dvdread input module], [auto])
1734 dnl libdvdnav plugin
1736 AC_ARG_ENABLE(dvdnav,
1737 [AS_HELP_STRING([--disable-dvdnav],
1738 [disable DVD navigation with libdvdnav (default auto)])])
1739 if test "${enable_dvdnav}" != "no"
1741 PKG_CHECK_MODULES(DVDNAV, dvdnav, [
1742 VLC_ADD_PLUGIN([dvdnav])
1743 VLC_ADD_CFLAGS([dvdnav],[${DVDNAV_CFLAGS}])
1744 VLC_ADD_LIBS([dvdnav],[${DVDNAV_LIBS}])
1745 AC_CHECK_LIB(dvdnav, dvdnav_get_video_resolution,
1746 AC_DEFINE(HAVE_DVDNAV_GET_VIDEO_RESOLUTION, 1, [Define if you have dvdnav_get_video_resolution.]),
1747 [], [${LIBS_dvdnav}])
1748 AC_CHECK_LIB(dvdnav, dvdnav_describe_title_chapters,
1749 AC_DEFINE(HAVE_DVDNAV_DESCRIBE_TITLE_CHAPTERS, 1, [Define if you have dvdnav_describe_title_chapters.]),
1750 [], [${LIBS_dvdnav}])],
1751 [AC_MSG_WARN([${DVDNAV_PKG_ERRORS}.])])
1755 dnl Windows DirectShow access module
1757 AC_ARG_ENABLE(dshow,
1758 [AS_HELP_STRING([--disable-dshow],
1759 [support DirectShow (default auto)])])
1760 if test "${enable_dshow}" != "no"
1762 if test "${SYS}" = "mingw32"
1765 AC_CHECK_HEADERS(dshow.h,
1766 [ VLC_ADD_PLUGIN([dshow])
1767 VLC_ADD_CXXFLAGS([dshow],[])
1768 VLC_ADD_LIBS([dshow],[-lole32 -loleaut32 -luuid]) ])
1774 dnl Blu-ray Disc Support with libbluray
1776 PKG_ENABLE_MODULES_VLC([BLURAY], [libbluray], [libbluray >= 0.2.1], (libbluray for Blu-ray disc support ) )
1779 dnl OpenCV wrapper and example filters
1781 PKG_ENABLE_MODULES_VLC([OPENCV], [opencv_example opencv_wrapper], [opencv], (OpenCV (computer vision) filter), [off])
1785 dnl libsmbclient plugin
1788 [AS_HELP_STRING([--disable-smb], [disable SMB/CIFS support (default auto)])])
1789 if test "${enable_smb}" != "no"; then
1790 AC_CHECK_HEADERS(libsmbclient.h,
1791 [ VLC_ADD_PLUGIN([access_smb])
1792 VLC_ADD_LIBS([access_smb],[-lsmbclient]) ],
1793 [ if test -n "${enable_smb}"; then
1794 AC_MSG_ERROR([cannot find libsmbclient headers])
1800 dnl sftp access support
1803 [AS_HELP_STRING([--enable-sftp],
1804 [support SFTP file transfer via libssh2 (default disabled)])])
1805 if test "${enable_sftp}" = "yes"; then
1806 AC_CHECK_HEADERS(libssh2.h, [
1807 VLC_ADD_PLUGIN([access_sftp])
1808 VLC_ADD_LIBS([access_sftp], [-lssh2])
1815 AC_ARG_ENABLE(libv4l2, [AS_HELP_STRING([--disable-libv4l2],
1816 [disable userspace V4L2 library (default auto)])])
1817 AC_ARG_ENABLE(pvr, [AS_HELP_STRING([--enable-pvr],
1818 [support PVR V4L2 cards (default disabled)])])
1820 AC_CHECK_HEADERS([linux/videodev2.h sys/videoio.h], [
1823 AS_IF([test "$have_v4l2" = "yes"], [
1824 AS_IF([test "${enable_libv4l2}" != "no"], [
1825 PKG_CHECK_MODULES(LIBV4L2, libv4l2, [
1826 AC_DEFINE(HAVE_LIBV4L2, 1, [Define to 1 if libv4l2 is available])
1828 AC_MSG_WARN([${LIBV4L2_PKG_ERRORS}.])
1831 AS_IF([test "${enable_pvr}" = "yes"], [
1832 VLC_ADD_PLUGIN([pvr])
1835 AM_CONDITIONAL(HAVE_V4L2, [test "${have_v4l2}" != "no"])
1838 dnl special access module for Blackmagic SDI cards
1840 AC_ARG_ENABLE(decklink,
1841 [AS_HELP_STRING([--disable-decklink],
1842 [disable Blackmagic DeckLink SDI input (default auto)])])
1843 AC_ARG_WITH(decklink_sdk,
1844 [AS_HELP_STRING[--with-decklink-sdk=DIR],
1845 [ location of Blackmagic DeckLink SDI SDK])])
1846 if test "${enable_decklink}" != "no"
1848 if test "${with_decklink_sdk}" != "no" -a -n "${with_decklink_sdk}"
1850 VLC_ADD_CPPFLAGS([decklink],[-I${with_decklink_sdk}/include])
1853 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_decklink}"
1855 AC_CHECK_HEADERS(DeckLinkAPIDispatch.cpp, [
1856 VLC_ADD_PLUGIN([decklink])
1857 ],[AC_MSG_WARN(Blackmagic DeckLink SDI include files not found, decklink disabled)])
1864 dnl gnomeVFS access module
1866 PKG_ENABLE_MODULES_VLC([GNOMEVFS], [access_gnomevfs], [gnome-vfs-2.0], [GnomeVFS access module], [auto])
1872 [AS_HELP_STRING([--enable-vcdx],
1873 [navigate VCD with libvcdinfo (default disabled)])])
1874 if test "${enable_vcdx}" = "yes"
1876 PKG_CHECK_MODULES(LIBCDIO, [libcdio >= 0.78.2 libiso9660 >= 0.72],
1877 [VLC_ADD_LIBS([vcdx],[$LIBCDIO_LIBS])
1878 VLC_ADD_CFLAGS([vcdx],[$LIBCDIO_CFLAGS])],
1879 [AC_MSG_ERROR([${LIBCDIO_PKG_ERRORS} (required for vcdx plugin).])])
1880 PKG_CHECK_MODULES(LIBVCDINFO, libvcdinfo >= 0.7.22,
1881 [VLC_ADD_LIBS([vcdx],[$LIBVCDINFO_LIBS])
1882 VLC_ADD_CFLAGS([vcdx],[$LIBVCDINFO_CFLAGS])],
1883 [AC_MSG_ERROR([${LIBVCDINFO_PKG_ERRORS} (required for vcdx plugin).])])
1884 VLC_ADD_PLUGIN([vcdx])
1888 dnl Built-in CD-DA and VCD module
1891 [AS_HELP_STRING([--disable-vcd],
1892 [disable built-in VCD and CD-DA support (default enabled)])])
1894 AC_ARG_ENABLE(libcddb,
1895 [AS_HELP_STRING([--disable-libcddb],
1896 [disable CDDB for Audio CD (default enabled)])])
1898 if test "${enable_vcd}" != "no"
1900 AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
1901 AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
1903 VLC_ADD_PLUGIN([vcd cdda])
1908 AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
1909 AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
1911 VLC_ADD_PLUGIN([vcd cdda])
1912 AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
1917 AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
1918 AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
1920 VLC_ADD_PLUGIN([vcd cdda])
1921 AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
1926 if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32" -o "${SYS}" = "os2"
1928 VLC_ADD_PLUGIN([vcd cdda])
1931 if test "${SYS}" = "darwin"
1933 VLC_ADD_PLUGIN([vcd cdda])
1934 VLC_ADD_LIBS([vcd vcdx cdda],[-Wl,-framework,IOKit,-framework,CoreFoundation])
1935 VLC_ADD_LIBS([vcdx cdda],[-liconv])
1938 if test "$enable_libcddb" != "no"; then
1939 PKG_CHECK_MODULES(LIBCDDB, [libcddb >= 0.9.5], [
1941 AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
1942 VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
1943 VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
1945 [AC_MSG_WARN([${LIBCDDB_PKG_ERRORS}: CDDB access disabled.])
1953 AC_CACHE_CHECK([for Linux DVB version 5], [ac_cv_linux_s2api], [
1954 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
1955 [#include <linux/dvb/version.h>
1956 #if (DVB_API_VERSION < 5)
1959 ac_cv_linux_s2api=yes
1961 ac_cv_linux_s2api=no
1963 AM_CONDITIONAL([HAVE_LINUX_DVB], [test "$ac_cv_linux_s2api" = "yes"])
1966 dnl Screen capture module
1968 AC_ARG_ENABLE(screen,
1969 [AS_HELP_STRING([--enable-screen],
1970 [disable screen capture (default enabled)])])
1971 if test "${enable_screen}" != "no"; then
1972 if test "${SYS}" = "darwin"; then
1973 AC_CHECK_HEADERS(OpenGL/gl.h, [
1974 AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
1975 VLC_ADD_PLUGIN([screen])
1976 VLC_ADD_LIBS([screen],[-Wl,-framework,OpenGL,-framework,ApplicationServices])
1979 elif test "${SYS}" = "mingw32"; then
1980 VLC_ADD_PLUGIN([screen])
1981 VLC_ADD_LIBS([screen],[-lgdi32])
1986 dnl Real RTSP plugin
1988 AC_ARG_ENABLE(realrtsp,
1989 [ --enable-realrtsp Real RTSP module (default disabled)])
1990 if test "${enable_realrtsp}" = "yes"; then
1991 VLC_ADD_PLUGIN([access_realrtsp])
1996 AC_ARG_ENABLE(macosx-eyetv,
1997 [ --enable-macosx-eyetv Mac OS X EyeTV (TNT Tuner) module (default enabled on Mac OS X)])
1998 if test "x${enable_macosx_eyetv}" != "xno" &&
1999 (test "${SYS}" = "darwin" || test "${enable_macosx_eyetv}" = "yes")
2001 VLC_ADD_LIBS([access_eyetv], [-Wl,-framework,Foundation])
2002 VLC_ADD_PLUGIN([access_eyetv])
2007 AC_ARG_ENABLE(macosx-qtkit,
2008 [ --enable-macosx-qtkit Mac OS X qtcapture (video) and qtsound (audio) module (default enabled on Mac OS X)])
2009 if test "x${enable_macosx_qtkit}" != "xno" &&
2010 (test "${SYS}" = "darwin" || test "${enable_macosx_qtkit}" = "yes")
2012 VLC_ADD_PLUGIN([qtcapture])
2013 VLC_ADD_PLUGIN([qtsound])
2015 AM_CONDITIONAL(HAVE_QTKIT, [test "${SYS}" = "darwin" -a "x${enable_macosx_qtkit}" != "xno"])
2022 EXTEND_HELP_STRING([Mux/Demux plugins:])
2025 dnl libdvbpsi check for ts mux/demux
2028 PKG_WITH_MODULES([DVBPSI], [libdvbpsi], [have_dvbpsi="yes"])
2029 AM_CONDITIONAL(HAVE_DVBPSI, [test "${have_dvbpsi}" = "yes"])
2033 dnl GME demux plugin
2036 [AS_HELP_STRING([--enable-gme],
2037 [use Game Music Emu (default auto)])])
2038 AS_IF([test "${enable_gme}" != "no"], [
2039 AC_CHECK_HEADER([gme/gme.h], [
2040 VLC_ADD_LIBS([gme], [-lgme])
2041 VLC_ADD_PLUGIN([gme])
2043 AS_IF([test "x${enable_gme}" != "x"], [
2044 AC_MSG_ERROR([GME cannot be found. Please install the development files.])
2054 [AS_HELP_STRING([--enable-sid],[C64 sid demux support (default auto)])])
2055 AS_IF([test "${enable_sid}" != "no"], [
2056 PKG_CHECK_MODULES(SID, [libsidplay2], [
2058 oldCPPFLAGS="$CPPFLAGS"
2059 CPPFLAGS="$CPPFLAGS $SID_CFLAGS"
2060 AC_CHECK_HEADER([sidplay/builders/resid.h], [
2061 VLC_ADD_PLUGIN([sid])
2062 VLC_ADD_CFLAGS([sid], [$SID_CFLAGS])
2063 VLC_ADD_LIBS([sid], [$SID_LIBS] [-lresid-builder])
2065 AS_IF([test -n "${enable_sid}"],
2066 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2067 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2070 CPPFLAGS="$oldCPPFLAGS"
2073 AS_IF([test "x${enable_sid}" = "xyes"],
2074 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2075 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2082 dnl ogg demux plugin
2084 PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto])
2085 if test "${enable_sout}" != "no"; then
2086 PKG_ENABLE_MODULES_VLC([MUX_OGG], [], [ogg >= 1.0], [Ogg mux support], [auto])
2087 dnl Check for libshout
2088 PKG_ENABLE_MODULES_VLC([SHOUT], [access_output_shout], [shout >= 2.1], [libshout output plugin], [auto])
2092 dnl matroska demux plugin
2095 [AS_HELP_STRING([--disable-mkv],
2096 [do not use libmatroska (default auto)])])
2097 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2099 AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2100 AC_MSG_CHECKING(for libebml version >= 1.0.0)
2102 [#include <ebml/EbmlVersion.h>
2103 #ifdef LIBEBML_VERSION
2104 #if LIBEBML_VERSION >= 0x010000
2108 [AC_MSG_RESULT([yes])
2109 AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2110 AC_MSG_CHECKING(for libmatroska version >= 1.0.0)
2112 [#include <matroska/KaxVersion.h>
2113 #ifdef LIBMATROSKA_VERSION
2114 #if LIBMATROSKA_VERSION >= 0x010000
2118 [AC_MSG_RESULT([yes])
2119 AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2120 VLC_ADD_CXXFLAGS([mkv],[])
2121 if test "${SYS}" = "darwin"; then
2122 VLC_ADD_CXXFLAGS([mkv],[-O1])
2124 AC_CHECK_LIB(ebml_pic, main, [
2125 VLC_ADD_PLUGIN([mkv])
2126 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2128 AC_CHECK_LIB(ebml, main, [
2129 VLC_ADD_PLUGIN([mkv])
2130 VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2135 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.])
2139 [AC_MSG_RESULT([no])
2140 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.])
2147 dnl modplug demux plugin
2150 [AS_HELP_STRING([--disable-mod],
2151 [do not use libmodplug (default auto)])])
2152 if test "${enable_mod}" != "no" ; then
2153 PKG_CHECK_MODULES(LIBMODPLUG, [libmodplug >= 0.8.4 libmodplug != 0.8.8], [
2154 VLC_ADD_PLUGIN([mod])
2155 VLC_ADD_CXXFLAGS([mod],[$LIBMODPLUG_CFLAGS])
2156 VLC_ADD_LIBS([mod],[$LIBMODPLUG_LIBS])
2158 AS_IF([test -n "${enable_mod}"],
2159 [AC_MSG_ERROR([${LIBMODPLUG_PKG_ERRORS}.])],
2160 [AC_MSG_WARN([${LIBMODPLUG_PKG_ERRORS}.])])
2165 dnl mpc demux plugin
2168 [AS_HELP_STRING([--disable-mpc], [do not use libmpcdec (default auto)])])
2169 if test "${enable_mpc}" != "no"
2171 AC_CHECK_HEADERS([mpc/mpcdec.h], [
2172 VLC_ADD_PLUGIN([mpc])
2173 VLC_ADD_LIBS([mpc],[-lmpcdec])],
2174 [AC_CHECK_HEADERS([mpcdec/mpcdec.h], [
2175 VLC_ADD_PLUGIN([mpc])
2176 VLC_ADD_LIBS([mpc],[-lmpcdec])])])
2183 EXTEND_HELP_STRING([Codec plugins:])
2188 AC_ARG_ENABLE(wma-fixed,
2189 [ --enable-wma-fixed libwma-fixed module (default disabled)])
2190 if test "${enable_wma_fixed}" = "yes"
2192 VLC_ADD_PLUGIN([wma_fixed])
2196 dnl shine fixed point mp3 encoder
2198 AC_ARG_ENABLE(shine,
2199 [ --enable-shine shine mp3 encoding module (default disabled)])
2200 if test "${enable_shine}" = "yes"
2202 VLC_ADD_PLUGIN([shine])
2206 dnl openmax il codec plugin
2208 AC_ARG_ENABLE(omxil,
2209 [ --enable-omxil openmax il codec module (default disabled)])
2210 if test "${enable_omxil}" = "yes"
2212 VLC_ADD_PLUGIN([omxil])
2213 VLC_ADD_LIBS([omxil], [$LIBDL])
2217 dnl iomx codec plugin
2220 [ --enable-iomx iomx codec module (default disabled)])
2221 if test "${enable_iomx}" = "yes"
2223 VLC_ADD_PLUGIN([iomx])
2227 dnl CrystalHD codec plugin
2229 AC_ARG_ENABLE(crystalhd,
2230 [ --enable-crystalhd crystalhd codec plugin (default auto)])
2231 if test "${enable_crystalhd}" != "no"; then
2232 AC_CHECK_HEADER(libcrystalhd/libcrystalhd_if.h, [
2233 VLC_ADD_PLUGIN([crystalhd])
2234 VLC_ADD_LIBS([crystalhd], [-lcrystalhd])
2236 if test "${SYS}" = "mingw32" ; then
2237 AC_CHECK_HEADERS(libcrystalhd/bc_dts_defs.h, [
2238 VLC_ADD_PLUGIN([crystalhd])
2239 AC_CHECK_HEADERS(libcrystalhd/bc_drv_if.h, [
2240 VLC_ADD_LIBS([crystalhd], [-lbcmDIL])
2243 AS_IF([test x"${enable_crystalhd}" = "xyes"],
2244 [AC_MSG_ERROR("Could not find CrystalHD development headers")],
2245 [AC_MSG_WARN("Could not find CrystalHD development headers")])
2246 ],[#define __LINUX_USER__
2247 #include <libcrystalhd/bc_dts_types.h>
2251 #include <libcrystalhd/bc_dts_types.h>
2259 [ --enable-mad libmad module (default enabled)])
2260 if test "${enable_mad}" != "no"
2263 [ --with-mad=PATH path to libmad],[],[])
2264 if test "${with_mad}" != "no" -a -n "${with_mad}"
2266 VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2267 VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2270 AC_ARG_WITH(mad-tree,
2271 [ --with-mad-tree=PATH mad tree for static linking],[],[])
2272 if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2274 real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2275 if test -z "${real_mad_tree}"
2277 dnl The given directory can't be found
2279 AC_MSG_ERROR([${with_mad_tree} directory does not exist])
2281 dnl Use a custom libmad
2282 AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2283 if test -f ${real_mad_tree}/mad.h
2286 VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2287 VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2289 LDFLAGS="${LDFLAGS} ${LIBS_mpgatofixed32}"
2290 AC_CHECK_LIB(mad, mad_bit_init, [
2291 VLC_ADD_PLUGIN([mpgatofixed32])
2292 VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2293 ],[ AC_MSG_ERROR([the specified tree has not been compiled ])
2298 AC_MSG_ERROR([the specified tree does not have mad.h])
2302 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_mpgatofixed32}"
2303 LDFLAGS="${LDFLAGS} ${LIBS_mpgatofixed32}"
2304 AC_CHECK_HEADERS(mad.h, ,
2305 [ 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.]) ])
2306 AC_CHECK_LIB(mad, mad_bit_init, [
2307 VLC_ADD_PLUGIN([mpgatofixed32])
2308 VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2309 [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2315 AC_ARG_ENABLE(merge-ffmpeg,
2316 [ --enable-merge-ffmpeg merge FFmpeg-based plugins (default disabled)],, [
2317 enable_merge_ffmpeg="no"
2319 AM_CONDITIONAL([MERGE_FFMPEG], [test "$enable_merge_ffmpeg" != "no"])
2322 LDFLAGS="${LDFLAGS} -Wl,-Bsymbolic"
2323 AC_CACHE_CHECK([if linker supports -Bsymbolic],
2324 [ac_cv_ld_bsymbolic],
2325 [AC_TRY_LINK([],,ac_cv_ld_bsymbolic=yes,ac_cv_ld_bsymbolic=no)])
2329 dnl avcodec decoder/encoder plugin
2331 AC_ARG_ENABLE(avcodec,
2332 [ --enable-avcodec libavcodec codec (default enabled)])
2333 AS_IF([test "${enable_avcodec}" != "no"], [
2334 PKG_CHECK_MODULES(AVCODEC,[libavcodec >= 52.25.0 libavutil],
2337 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2338 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2339 AC_CHECK_HEADERS(libavcodec/avcodec.h)
2340 AC_CHECK_HEADERS(libavutil/avutil.h)
2341 VLC_ADD_PLUGIN([avcodec])
2342 VLC_ADD_LIBS([avcodec],[$AVCODEC_LIBS])
2343 AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2344 VLC_ADD_LIBS([avcodec],[-Wl,-Bsymbolic])
2346 VLC_ADD_CFLAGS([avcodec],[$AVCODEC_CFLAGS])
2350 AC_MSG_ERROR([${AVCODEC_PKG_ERRORS}. Pass --disable-avcodec to ignore this error.])
2357 dnl libva needs avcodec
2359 AC_ARG_ENABLE(libva,
2360 [ --enable-libva VAAPI GPU decoding support (libVA) (default auto)])
2362 AS_IF([test "${enable_libva}" = "yes" -a "${have_avcodec}" != "yes" ], [
2363 AC_MSG_ERROR([--enable-libva and --disable-avcodec options are mutually exclusive. Use --enable-avcodec.])
2365 AS_IF([test "${enable_libva}" != "no"], [
2366 PKG_CHECK_MODULES(LIBVA, [libva libva-x11], [
2368 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2369 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2370 AC_CHECK_HEADERS(libavcodec/vaapi.h, [
2371 VLC_ADD_LIBS([avcodec],[$LIBVA_LIBS ${X_LIBS} ${X_PRE_LIBS} -lX11])
2372 VLC_ADD_CFLAGS([avcodec],[$LIBVA_CFLAGS ${X_CFLAGS}])
2373 AC_DEFINE(HAVE_AVCODEC_VAAPI, 1, [Define if avcodec has to be built with VAAPI support.])
2374 AC_MSG_NOTICE([VAAPI acceleration activated])
2376 AS_IF([test -n "${enable_libva}"], [
2377 AC_MSG_ERROR([libva is present but libavcodec/vaapi.h is missing])
2379 AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing ])
2384 AS_IF([test -n "${enable_libva}"], [
2385 AC_MSG_ERROR([${LIBVA_PKG_ERRORS}.])
2387 AC_MSG_WARN([${LIBVA_PKG_ERRORS}.])
2393 dnl dxva2 needs avcodec
2395 AC_ARG_ENABLE(dxva2,
2396 [ --enable-dxva2 DxVA2 GPU decoding support (default auto)])
2398 AS_IF([test "${enable_dxva2}" != "no"], [
2399 if test "${SYS}" = "mingw32"; then
2400 AS_IF([test "x${have_avcodec}" = "xyes"], [
2401 AC_CHECK_HEADERS(dxva2api.h,
2403 AC_CHECK_HEADERS(libavcodec/dxva2.h, [
2404 VLC_ADD_LIBS([avcodec],[-lole32 -lshlwapi -luuid])
2405 AC_DEFINE(HAVE_AVCODEC_DXVA2, 1, [Define if avcodec has to be built with DxVA2 support.])
2406 echo "DxVA2 acceleration activated"
2408 AS_IF([test "${enable_dxva2}" = "yes"],
2409 [AC_MSG_ERROR([dxva2 is present but libavcodec/dxva2.h is missing])],
2410 [AC_MSG_WARN([dxva2 is present but libavcodec/dxva2.h is missing ])])
2411 ], [#undef _WIN32_WINNT
2412 /* DXVA2 is only available in Vista and above */
2413 #define _WIN32_WINNT 0x600])
2415 AS_IF([test "${enable_dxva2}" = "yes"],
2416 [AC_MSG_ERROR([Could not find required dxva2api.h])],
2417 [AC_MSG_WARN([dxva2api.h not found])])
2420 AS_IF([test "x${enable_dxva2}" != "x"], [
2421 AC_MSG_ERROR([--enable-dxva2 and --disable-avcodec options are mutually exclusive.])
2429 dnl stream_out switcher needs libavcodec
2431 AC_ARG_ENABLE(switcher,
2432 [ --enable-switcher Stream-out switcher plugin (default disabled)])
2433 AS_IF([test "${enable_switcher}" = "yes"], [
2434 AS_IF([test "x${have_avcodec}" = "xyes"], [
2435 VLC_ADD_PLUGIN([stream_out_switcher])
2436 VLC_ADD_LIBS([stream_out_switcher],[$AVCODEC_LIBS $AVUTIL_LIBS])
2437 VLC_ADD_CFLAGS([stream_out_switcher],[$AVCODEC_CFLAGS $AVUTIL_CFLAGS])
2438 ],[AC_MSG_ERROR([Stream_out switcher depends on avcodec])
2444 dnl avformat demuxer/muxer plugin
2447 AC_ARG_ENABLE(avformat,
2448 [ --enable-avformat libavformat containers (default enabled)],, [
2449 enable_avformat="${have_avcodec}"
2451 if test "${enable_avformat}" != "no"
2453 PKG_CHECK_MODULES(AVFORMAT,[libavformat > 52.30.0 libavcodec libavutil],
2456 CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2457 CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2458 AC_CHECK_HEADERS(libavformat/avformat.h libavformat/avio.h)
2459 AC_CHECK_HEADERS(libavutil/avutil.h)
2460 AS_IF([test "$enable_merge_ffmpeg" = "no"], [
2461 VLC_ADD_PLUGIN([avformat access_avio])
2462 VLC_ADD_LIBS([avformat access_avio],[$AVFORMAT_LIBS $AVUTIL_LIBS])
2463 VLC_ADD_CFLAGS([avformat access_avio],[$AVFORMAT_CFLAGS $AVUTIL_CFLAGS])
2464 AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2465 VLC_ADD_LIBS([avformat access_avio],[-Wl,-Bsymbolic])
2468 VLC_ADD_LIBS([avcodec],[$AVFORMAT_LIBS $AVUTIL_LIBS])
2469 VLC_ADD_CFLAGS([avcodec],[$AVFORMAT_CFLAGS $AVUTIL_CFLAGS])
2473 AC_MSG_ERROR([${AVFORMAT_PKG_ERRORS}. Pass --disable-avformat to ignore this error.])
2478 dnl swscale image scaling and conversion plugin
2481 AC_ARG_ENABLE(swscale,
2482 AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
2483 (default enabled)]))
2484 if test "${enable_swscale}" != "no"
2486 PKG_CHECK_MODULES(SWSCALE,[libswscale],
2489 CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
2490 CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
2491 AC_CHECK_HEADERS(libswscale/swscale.h)
2492 VLC_ADD_PLUGIN([swscale])
2493 VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
2494 VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
2495 AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2496 VLC_ADD_LIBS([swscale],[-Wl,-Bsymbolic])
2500 AC_MSG_ERROR([${SWSCALE_PKG_ERRORS}. Pass --disable-swscale to ignore this error. Proper software scaling and some video chroma conversion will be missing.])
2508 AC_ARG_ENABLE(postproc,
2509 [ --enable-postproc libpostproc image post-processing (default enabled)])
2510 if test "${enable_postproc}" != "no"
2512 PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
2515 CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
2516 CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
2517 AC_CHECK_HEADERS(postproc/postprocess.h)
2518 VLC_ADD_PLUGIN([postproc])
2519 VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS $AVUTIL_LIBS])
2520 VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS $AVUTIL_CFLAGS])
2523 AC_MSG_ERROR([${POSTPROC_PKG_ERRORS}. Pass --disable-postproc to ignore this error.])
2528 dnl faad decoder plugin
2531 [ --enable-faad faad codec (default disabled)])
2532 if test "${enable_faad}" = "yes"
2534 AC_ARG_WITH(faad-tree,
2535 [ --with-faad-tree=PATH faad tree for static linking])
2536 if test -n "${with_faad_tree}"
2538 AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
2539 real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
2540 if test -z "${real_faad_tree}"
2542 dnl The given directory can't be found
2544 AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
2546 if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
2548 dnl Use a custom faad
2549 AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
2550 VLC_ADD_PLUGIN([faad])
2551 VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
2552 VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
2554 dnl The given libfaad wasn't built
2556 AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
2560 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_faad}"
2561 LDFLAGS="${LDFLAGS} ${LIBS_faad}"
2562 AC_CHECK_HEADERS(faad.h, ,
2563 [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
2564 AC_CHECK_LIB(faad, faacDecOpen, [
2565 VLC_ADD_PLUGIN([faad])
2566 VLC_ADD_LIBS([faad],[-lfaad]) ],
2567 AC_CHECK_LIB(faad, NeAACDecOpen, [
2568 VLC_ADD_PLUGIN([faad])
2569 VLC_ADD_LIBS([faad],[-lfaad]) ],
2570 [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
2576 dnl twolame encoder plugin
2578 PKG_ENABLE_MODULES_VLC([TWOLAME], [], [twolame], [MPEG Audio Layer 2 encoder], [auto], [], [], [ -DLIBTWOLAME_STATIC])
2581 dnl QuickTime plugin
2583 AC_ARG_ENABLE(quicktime,
2584 [ --enable-quicktime QuickTime module (deprecated)])
2585 if test "${enable_quicktime}" = "yes"; then
2586 if test "${SYS}" = "mingw32"; then
2587 VLC_ADD_PLUGIN([quicktime])
2589 AC_CHECK_HEADERS(QuickTime/QuickTime.h,
2590 [ VLC_ADD_PLUGIN([quicktime])
2591 VLC_ADD_LIBS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
2592 ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
2600 [ --enable-real Real video decoder module (default disabled)])
2601 if test "${enable_real}" = "yes"; then
2602 VLC_ADD_PLUGIN([realvideo])
2606 dnl A52/AC3 decoder plugin
2609 [ --enable-a52 A/52 support with liba52 (default enabled)])
2610 if test "${enable_a52}" != "no"
2613 [ --with-a52=PATH a52 headers and libraries])
2614 AC_ARG_WITH(a52-tree,
2615 [ --with-a52-tree=PATH a52dec tree for static linking ],[],[])
2616 if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
2618 real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
2619 if test -z "${real_a52_tree}"
2621 dnl The given directory can't be found
2623 AC_MSG_ERROR([${with_a52_tree} directory does not exist])
2625 dnl Use a custom a52dec
2626 AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
2627 if test -f ${real_a52_tree}/include/a52.h
2630 VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
2631 VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
2633 LDFLAGS="${LDFLAGS} ${LIBS_a52tofloat32}"
2634 AC_CHECK_LIB(a52, a52_free, [
2635 VLC_ADD_PLUGIN([a52tofloat32])
2636 VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
2637 VLC_ADD_LIBS([a52tofloat32],[-la52])
2639 if test -f ${real_a52_tree}/liba52/.libs/liba52.a
2641 AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
2643 AC_MSG_ERROR([the specified tree has not been compiled])
2648 AC_MSG_ERROR([the specified tree does not have a52.h])
2651 if test -z "${with_a52}"
2656 LDFLAGS_test="-L${with_a52}/lib"
2657 CPPFLAGS_test="-I${with_a52}/include"
2660 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
2661 LDFLAGS="${LDFLAGS} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
2662 AC_CHECK_HEADERS(a52dec/a52.h, [
2663 AC_CHECK_LIB(a52, a52_free, [
2664 VLC_ADD_PLUGIN([a52tofloat32])
2665 VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
2666 VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
2668 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.])
2671 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.])
2677 AC_ARG_WITH(a52-fixed,
2678 [ --with-a52-fixed specify if liba52 has been compiled with fixed point support],
2680 VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
2683 dnl DTS Coherent Acoustics decoder plugin
2685 PKG_ENABLE_MODULES_VLC([DCA], [dtstofloat32], [libdca >= 0.0.5], [DTS Coherent Acoustics support with libdca], [auto])
2690 PKG_ENABLE_MODULES_VLC([FLAC], [], [flac], [libflac decoder/encoder support], [auto])
2695 PKG_ENABLE_MODULES_VLC([LIBMPEG2], [], [libmpeg2 > 0.3.2], [libmpeg2 decoder support], [auto])
2700 PKG_ENABLE_MODULES_VLC([VORBIS], [], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
2705 AC_ARG_ENABLE(tremor,
2706 [ --enable-tremor Tremor decoder support (default disabled)])
2707 if test "${enable_tremor}" = "yes"
2709 AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
2710 VLC_ADD_PLUGIN([tremor])
2711 VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
2718 PKG_ENABLE_MODULES_VLC([SPEEX], [], [ogg speex >= 1.0.5], [Speex support], [auto])
2720 AS_IF([test "${enable_speex}" != "no"], [
2721 PKG_CHECK_MODULES([SPEEXDSP], [speexdsp], [
2724 AC_MSG_WARN([${SPEEXDSP_PKG_ERRORS}.])
2727 AM_CONDITIONAL([HAVE_SPEEXDSP], [test "$have_speexdsp" = "yes"])
2730 dnl theora decoder plugin
2732 PKG_ENABLE_MODULES_VLC([THEORA], [], [ogg theora >= 1.0], [experimental theora codec], [auto])
2735 dnl dirac encoder plugin
2737 PKG_ENABLE_MODULES_VLC([DIRAC], [], [dirac >= 0.10.0], [dirac encoder], [auto])
2740 dnl schroedinger decoder plugin (for dirac format video)
2742 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [], [schroedinger-1.0 >= 1.0.10], [dirac decoder and encoder using schroedinger], [auto])
2745 dnl PNG decoder module
2748 [ --enable-png PNG support (default enabled)])
2749 if test "${enable_png}" != "no"; then
2750 AC_CHECK_HEADERS(png.h, [
2752 LDFLAGS="${LDFLAGS} -lz"
2753 AC_CHECK_LIB(png, png_set_rows, [
2754 VLC_ADD_LIBS([png],[-lpng -lz -lm])
2755 VLC_ADD_PLUGIN([png osdmenu osd_parser])],
2760 AM_CONDITIONAL(BUILD_OSDMENU, [test "${enable_png}" != "no"])
2763 dnl H264 encoder plugin (using libx264)
2766 [ --enable-x264 H264 encoding support with libx264 (default enabled)])
2767 if test "${enable_x264}" != "no"; then
2768 AC_ARG_WITH(x264-tree,
2769 [ --with-x264-tree=PATH x264 tree for static linking ],[],[])
2770 if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
2772 real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
2773 if test -z "${real_x264_tree}"
2775 dnl The given directory can't be found
2777 AC_MSG_ERROR([${with_x264_tree} directory does not exist])
2779 dnl Use a custom libx264
2780 AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
2781 if test -f ${real_x264_tree}/x264.h
2784 VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
2785 VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
2786 PKG_CHECK_MODULES(X264,x264, [
2787 VLC_ADD_PLUGIN([x264])
2788 VLC_ADD_LIBS([x264],[${X264_LIBS}])
2789 VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
2790 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
2791 VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
2794 AC_MSG_ERROR([the specified tree has not been compiled])
2798 AC_MSG_ERROR([the specified tree does not have x264.h])
2801 PKG_CHECK_MODULES(X264,x264 >= 0.86, [
2802 VLC_ADD_PLUGIN([x264])
2803 VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
2805 AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2806 VLC_ADD_LIBS([x264],[-Wl,-Bsymbolic])
2809 VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
2810 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
2811 VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
2814 if test "${enable_x264}" = "yes"; then
2815 AC_MSG_ERROR([${X264_PKG_ERRORS}: you may get it from http://www.videolan.org/x264.html])
2822 dnl libfluidsynth (MIDI synthetizer) plugin
2824 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [], [fluidsynth], [MIDI synthetiser with libfluidsynth], [auto])
2827 dnl Teletext Modules
2828 dnl vbi decoder plugin (using libzbvi)
2833 AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
2834 libzvbi (default enabled)]))
2836 AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
2837 zvbi) (default enabled if zvbi is absent)]))
2839 AS_IF( [test "${enable_zvbi}" != "no"],[
2840 PKG_CHECK_MODULES(ZVBI, [zvbi-0.2 >= 0.2.28],
2842 VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
2843 if test "${SYS}" = "mingw32"; then
2844 VLC_ADD_LIBS([zvbi],[ -lpthreadGC2])
2846 VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
2847 VLC_ADD_PLUGIN([zvbi])
2848 AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
2849 AS_IF( [test "${enable_telx}" = "yes"],[
2850 AC_MSG_WARN([The zvbi and telx modules are incompatible. Using zvbi.])
2853 AC_MSG_WARN([${ZVBI_PKG_ERRORS}. Enabling the telx module instead.])
2856 AS_IF( [test "${enable_telx}" != "no" ],[
2857 VLC_ADD_PLUGIN([telx])
2861 dnl libass subtitle rendering module
2863 AC_ARG_ENABLE(libass,
2864 [ --enable-libass Subtitle support using libass (default enabled)])
2865 AS_IF( [test "${enable_libass}" != "no"], [
2866 PKG_CHECK_MODULES(LIBASS, [libass >= 0.9.8],
2868 VLC_ADD_LIBS([libass],[$LIBASS_LIBS])
2869 VLC_ADD_CFLAGS([libass],[$LIBASS_CFLAGS])
2870 VLC_ADD_PLUGIN([libass])
2872 AC_CHECK_HEADERS(fontconfig/fontconfig.h,
2873 [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
2874 VLC_ADD_LIBS([libass],[-lfontconfig])
2877 AC_MSG_WARN([${LIBASS_PKG_ERRORS}.])
2882 dnl kate decoder plugin
2884 PKG_ENABLE_MODULES_VLC([KATE], [], [kate >= 0.3.0], [kate codec], [auto])
2887 dnl tiger rendering for kate decoder plugin
2889 AC_ARG_ENABLE(tiger,
2890 [ --enable-tiger Tiger rendering library for Kate streams (default auto)])
2891 AS_IF([test "${enable_tiger}" != "no"], [
2892 PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
2893 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])
2894 VLC_ADD_CFLAGS([kate],[$TIGER_CFLAGS])
2895 VLC_ADD_LIBS([kate],[$TIGER_LIBS]) ],[
2896 AS_IF([test -n "${enable_tiger}"], [
2897 AC_MSG_ERROR([${TIGER_PKG_ERRORS}.])
2907 EXTEND_HELP_STRING([Video plugins:])
2912 PKG_CHECK_MODULES([GL], [gl], [
2915 AC_CHECK_HEADER([GL/gl.h], [
2924 dnl OpenGL ES 2: depends on EGL 1.1 and is currently unfinished
2925 dnl PKG_ENABLE_MODULES_VLC([GLES2], [], [glesv2], [OpenGL ES v2 support], [auto])
2926 dnl OpenGL ES 1: depends on EGL 1.0 and is currently broken
2927 dnl PKG_ENABLE_MODULES_VLC([GLES1], [], [glesv1_cm], [OpenGL ES v1 support], [auto])
2930 [ --enable-egl OpenGL support through EGL (default disabled)],, [
2933 AS_IF([test "$enable_egl" != "no"], [
2934 PKG_CHECK_MODULES([EGL], [egl], [
2935 VLC_ADD_PLUGIN([gl])
2936 VLC_ADD_PLUGIN([egl])
2945 AC_CHECK_HEADERS(X11/Xlib.h)
2948 dnl X C Bindings modules
2951 [ --enable-xcb X11 support with XCB (default enabled)],, [
2952 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "darwin" -a "${SYS}" != "symbian"], [
2958 AC_ARG_ENABLE(xvideo,
2959 [ --enable-xvideo XVideo support (default enabled)],, [
2960 enable_xvideo="$enable_xcb"
2963 [ --enable-glx OpenGL support through GLX (default enabled)],, [
2964 enable_glx="$enable_xcb"
2968 AS_IF([test "${enable_xcb}" != "no"], [
2970 PKG_CHECK_MODULES(XCB, [xcb >= 1.6])
2972 PKG_CHECK_MODULES(XCB_SHM, [xcb-shm])
2973 PKG_CHECK_MODULES(XCB_COMPOSITE, [xcb-composite])
2975 AS_IF([test "${enable_xvideo}" != "no"], [
2976 PKG_CHECK_MODULES(XCB_XV, [xcb-xv >= 1.1.90.1], [
2977 VLC_ADD_PLUGIN([xcb_xv])
2981 PKG_CHECK_MODULES(XCB_RANDR, [xcb-randr >= 1.3], [
2982 VLC_ADD_PLUGIN([panoramix])
2983 VLC_ADD_LIBS([panoramix],[${XCB_RANDR_LIBS} ${XCB_LIBS}])
2984 VLC_ADD_CFLAGS([panoramix],[${XCB_RANDR_CFLAGS} ${XCB_CFLAGS}])
2986 AC_MSG_WARN([${XCB_RANDR_PKG_ERRORS}. Panoramix filter will not be supported.])
2990 PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms >= 0.3.4], [
2991 PKG_CHECK_MODULES(XPROTO, [xproto])
2992 VLC_ADD_PLUGIN([globalhotkeys])
2993 VLC_ADD_CFLAGS([globalhotkeys], [${XCB_KEYSYMS_CFLAGS} ${XCB_CFLAGS}])
2994 VLC_ADD_LIBS([globalhotkeys], [${XCB_KEYSYMS_LIBS} ${XCB_LIBS}])
2995 VLC_ADD_CFLAGS([xcb_window], [-DHAVE_XCB_KEYSYMS])
2997 AC_MSG_WARN([${XCB_KEYSYMS_PKG_ERRORS}. Hotkeys will not work.])
3000 AS_IF([test "${enable_glx}" != "no"], [
3001 AS_IF([test "${have_gl}" != "yes"], [
3002 AC_MSG_ERROR([${GL_PKG_ERRORS}. Pass --disable-glx if you do not need OpenGL X11 support.])
3004 PKG_CHECK_MODULES(XLIB_XCB, [x11-xcb], [
3005 VLC_ADD_PLUGIN([xcb_glx])
3007 AC_MSG_ERROR([${XLIB_XCB_PKG_ERRORS}. Pass --disable-glx if you do not need OpenGL X11 support.])
3011 AM_CONDITIONAL([HAVE_XCB], [test "${have_xcb}" = "yes"])
3017 [ --enable-sdl SDL support (default enabled)])
3018 AC_ARG_ENABLE(sdl-image,
3019 [ --enable-sdl-image SDL image support (default enabled)])
3020 if test "${enable_sdl}" != "no"
3022 PKG_CHECK_MODULES(SDL, [sdl >= 1.2.10], [
3023 # SDL on Darwin is heavily patched and can only run SDL_image
3024 if test "${SYS}" != "darwin"; then
3025 VLC_ADD_PLUGIN([vout_sdl])
3027 if test "${SYS}" != "mingw32" -a "${SYS}" != "os2"; then
3028 VLC_ADD_LIBS([vout_sdl],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3030 VLC_ADD_CFLAGS([vout_sdl],[${SDL_CFLAGS}])
3031 VLC_ADD_LIBS([vout_sdl],[${SDL_LIBS}])
3034 AS_IF([ test "${enable_sdl_image}" != "no"],[
3035 PKG_CHECK_MODULES(SDL_IMAGE, [SDL_image >= 1.2.10], [
3036 VLC_ADD_PLUGIN([sdl_image])
3037 VLC_ADD_LIBS([sdl_image],[${SDL_IMAGE_LIBS}])
3038 VLC_ADD_CFLAGS([sdl_image], [${SDL_IMAGE_CFLAGS}])],
3039 [ AC_MSG_WARN([${SDL_IMAGE_PKG_ERRORS}. You should install it alongside your SDL package.])
3043 AC_MSG_WARN([${SDL_PKG_ERRORS}.])
3050 AC_ARG_ENABLE(macosx-vout,
3051 [ --enable-macosx-vout Mac OS X video output module (default enabled on Mac OS X)])
3052 if test "x${enable_macosx_vout}" != "xno" &&
3053 (test "${SYS}" = "darwin" || test "${enable_macosx_vout}" = "yes")
3055 VLC_ADD_LIBS([vout_macosx],[-Wl,-framework,Cocoa])
3056 VLC_ADD_LIBS([vout_macosx],[-Wl,-framework,OpenGL])
3057 VLC_ADD_PLUGIN([vout_macosx])
3064 AC_ARG_ENABLE(freetype,
3065 [ --enable-freetype freetype support (default auto)])
3066 AC_ARG_ENABLE(fribidi,
3067 [ --enable-fribidi fribidi support (default auto)])
3068 AC_ARG_ENABLE(fontconfig,
3069 [ --enable-fontconfig fontconfig support (default auto)])
3071 if test "${enable_freetype}" != "no"; then
3072 PKG_CHECK_MODULES(FREETYPE, freetype2, [
3074 VLC_ADD_PLUGIN([freetype])
3075 VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
3076 if test "${SYS}" = "mingw32"; then
3077 VLC_ADD_LIBS([freetype],[-liconv -lz])
3079 VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
3081 AC_CHECK_HEADERS(Carbon/Carbon.h,
3082 [VLC_ADD_LIBS([freetype],[-Wl,-framework,Carbon])])
3084 dnl fontconfig support
3085 if test "${SYS}" != "mingw32"; then
3086 if test "${enable_fontconfig}" != "no"; then
3087 AC_CHECK_HEADERS(fontconfig/fontconfig.h, [
3088 VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
3089 VLC_ADD_LIBS([freetype],[-lfontconfig])
3090 ],[AC_MSG_WARN([library fontconfig not found. Styles will be disabled in freetype])])
3093 VLC_ADD_LIBS([freetype],[-lgdi32])
3097 if test "${enable_fribidi}" != "no"; then
3098 PKG_CHECK_MODULES(FRIBIDI, fribidi, [
3099 VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
3100 VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
3101 ],[AC_MSG_WARN([${FRIBIDI_PKG_ERRORS}. Bidirectional support will be disabled in FreeType.])])
3106 AS_IF([test -n "${enable_freetype}"],[
3107 AC_MSG_ERROR([${FREETYPE_PKG_ERRORS}. Install FreeType2 development or configure with --disable-freetype.])
3114 dnl QuartzText vout module (iOS/Mac OS)
3116 AC_ARG_ENABLE(macosx-quartztext,
3117 [ --enable-macosx-quartztext Mac OS X quartz text module (default enabled on Mac OS X)])
3118 if test "x${enable_macosx_quartztext}" != "xno" &&
3119 (test "${SYS}" = "darwin" || test "${enable_macosx_quartztext}" = "yes")
3121 VLC_ADD_PLUGIN([quartztext])
3122 VLC_ADD_LIBS([quartztext],[-Wl,-framework,ApplicationServices])
3128 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3131 dnl android surface module
3133 AC_ARG_ENABLE(android-surface,
3134 [ --enable-android-surface Android Surface video output module (default disabled)])
3135 if test "${enable_android_surface}" = "yes"; then
3136 if test "${HAVE_ANDROID}" = "1"; then
3137 VLC_ADD_PLUGIN([android_surface])
3138 VLC_ADD_LDFLAGS([android_surface], [-ldl])
3146 AC_ARG_ENABLE(ios-vout,
3147 [ --enable-ios-vout iOS video output module (default disabled)])
3148 if test "${enable_ios_vout}" = "yes"
3150 VLC_ADD_PLUGIN([vout_ios])
3151 VLC_ADD_CFLAGS([vout_ios], [-DUSE_OPENGL_ES=1])
3152 VLC_ADD_LIBS([vout_ios], [-Wl,-framework,OpenGLES,-framework,QuartzCore,-framework,UIKit,-framework,Foundation])
3156 dnl Windows DirectX module
3159 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"
3161 VLC_ADD_PLUGIN([panoramix])
3164 AC_ARG_ENABLE(directx,
3165 [ --enable-directx Win32 DirectX support (default enabled on Win32)])
3166 if test "${enable_directx}" != "no"; then
3167 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
3169 AC_CHECK_HEADERS(ddraw.h,
3170 [ VLC_ADD_PLUGIN([directx aout_directx])
3171 VLC_ADD_LIBS([directx],[-luser32 -lgdi32])
3172 ],[AC_MSG_ERROR([Cannot find DirectX headers!])]
3176 AC_CHECK_HEADERS(GL/wglew.h,
3177 [ VLC_ADD_PLUGIN([glwin32])
3178 VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
3180 #include <windows.h>
3185 AC_CHECK_HEADERS(d3d9.h,
3186 [ VLC_ADD_PLUGIN([direct3d])
3187 VLC_ADD_LIBS([direct3d],[-lgdi32])
3189 VLC_ADD_LIBS([direct3d directx glwin32],[-lole32])
3194 dnl Windows Direct2D plugin
3196 AC_ARG_ENABLE(direct2d,
3197 [ --enable-direct2d Win7/VistaPU Direct2D support (default auto on Win32)],, [
3198 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"], [
3199 enable_direct2d="no"
3202 AS_IF([test "${enable_direct2d}" != "no"], [
3203 AC_CHECK_HEADERS(d2d1.h, [
3204 VLC_ADD_PLUGIN([direct2d])
3205 VLC_ADD_LIBS([direct2d],[-lgdi32 -lole32])
3207 AC_MSG_WARN([Cannot find Direct2D headers!])
3212 dnl win32 GDI plugin
3214 AC_ARG_ENABLE(wingdi,
3215 [ --enable-wingdi Win32 GDI module (default enabled on Win32)])
3216 if test "${enable_wingdi}" != "no"; then
3217 if test "${SYS}" = "mingw32"; then
3218 VLC_ADD_PLUGIN([wingdi])
3219 VLC_ADD_LIBS([wingdi],[-lgdi32 -lole32])
3221 if test "${SYS}" = "mingwce"; then
3222 VLC_ADD_PLUGIN([wingdi wingapi])
3223 VLC_ADD_LIBS([wingdi],[-laygshell])
3224 VLC_ADD_LIBS([wingapi],[-laygshell])
3230 dnl Linux framebuffer module
3232 AC_CHECK_HEADER([linux/fb.h], [
3233 VLC_ADD_PLUGIN([fb])
3239 dnl try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
3240 dnl TODO: support for static linking
3242 AC_ARG_ENABLE(directfb,
3243 [ --enable-directfb DirectFB support (default disabled)])
3244 AC_ARG_WITH(directfb,
3245 [ --with-directfb=PATH path to DirectFB headers and libraries])
3247 if test "${enable_directfb}" = "yes"; then
3248 have_directfb="false"
3249 CPPFLAGS_mydirectfb=
3251 if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
3252 dnl Trying the given location
3255 CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
3256 LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/ -L${with_directfb}/src/.libs/"
3258 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
3259 LIBS="${LIBS} ${LIBS_new}"
3261 dnl FIXME: too obscure
3262 AC_CHECK_HEADER([directfb.h], [
3263 AC_CHECK_LIB([direct],[direct_initialize], [
3264 AC_CHECK_LIB([fusion], [fusion_enter], [
3265 AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
3266 ], have_directfb="false")
3267 ], have_directfb="false")
3268 ], have_directfb="false")
3272 if test "${have_directfb}" = "true"; then
3273 LIBS_mydirectfb="${LIBS_new} -lz $LIBDL -ldirectfb -lfusion -ldirect -lpthread"
3274 CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
3277 dnl Look for directfb-config
3278 AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
3279 if test "${DIRECTFB_CONFIG}" != "no"; then
3280 CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
3281 LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
3282 have_directfb="true"
3284 dnl Trying with pkg-config
3285 PKG_CHECK_MODULES(DIRECTFB, directfb, [
3286 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
3287 LIBS_mydirectfb="${DIRECTFB_LIBS}"
3288 have_directfb="true"
3289 ], [have_directfb="false"])
3292 if test "${have_directfb}" = "true"; then
3293 VLC_ADD_PLUGIN([directfb])
3294 VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
3295 VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
3297 AC_MSG_ERROR([${DIRECTFB_PKG_ERRORS}.])
3305 [ --enable-aa aalib output (default disabled)])
3306 if test "${enable_aa}" = "yes"
3308 AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
3309 if test "${have_aa}" = "true"
3311 VLC_ADD_PLUGIN([aa])
3312 VLC_ADD_LIBS([aa],[-laa])
3313 if test "${SYS}" != "mingw32"; then
3314 VLC_ADD_LIBS([aa],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3322 PKG_ENABLE_MODULES_VLC([CACA], [], [caca >= 0.99.beta14], [libcaca output],[auto])
3328 [AS_HELP_STRING([--enable-kva],
3329 [support the K Video Accelerator KVA (default enabled on OS/2)])],, [
3330 AS_IF([test "$SYS" = "os2"], [
3336 AS_IF([test "$enable_kva" != "no"], [
3337 AC_CHECK_HEADERS([kva.h], [
3339 AC_CHECK_LIB(kva, main, [
3345 AM_CONDITIONAL([HAVE_KVA], [test "${have_kva}" = "yes"])
3351 EXTEND_HELP_STRING([Audio plugins:])
3354 dnl Pulseaudio module
3356 AC_ARG_ENABLE(pulse,
3357 [AS_HELP_STRING([--enable-pulse],
3358 [use the PulseAudio client library (default auto)])])
3360 AS_IF([test "${enable_pulse}" != "no"], [
3361 PKG_CHECK_MODULES([PULSE], [libpulse >= 0.9.22], [
3364 PKG_CHECK_MODULES([PULSE], [libpulse >= 0.9.16], [
3365 AS_IF([test "${no_x}" != "yes"], [
3367 PULSE_LIBS="$PULSE_LIBS ${X_LIBS} ${X_PRE_LIBS} -lX11"
3369 AS_IF([test "${enable_pulse}" = "yes"], [
3370 AC_MSG_ERROR([Xlib is required with PulseAudio pre-0.9.22 versions
3371 (see http://www.pulseaudio.org/ticket/799 for further reference).])
3375 AS_IF([test "x${enable_pulse}" != "x"], [
3376 AC_MSG_ERROR([$PULSE_PKG_ERRORS. PulseAudio 0.9.22 or later required.])
3381 AM_CONDITIONAL([HAVE_PULSE], [test "${have_pulse}" = "yes"])
3387 [AS_HELP_STRING([--enable-alsa],
3388 [support the Advanced Linux Sound Architecture (default auto)])],, [
3389 AS_IF([test "$SYS" = "linux" -a "${have_pulse}" = "no"], [
3394 AS_IF([test "${enable_alsa}" != "no"], [
3395 PKG_CHECK_MODULES([ALSA], [alsa >= 1.0.16], [
3398 AS_IF([test "x${enable_alsa}" != "x"], [
3399 AC_MSG_ERROR([$ALSA_PKG_ERRORS. alsa-lib 1.0.16 or later required.])
3403 AM_CONDITIONAL([HAVE_ALSA], [test "${have_alsa}" = "yes"])
3406 dnl Open Sound System module
3409 [AS_HELP_STRING([--enable-oss],
3410 [support the Open Sound System OSS (default enabled on BSD)])],, [
3411 AS_IF([test "$SYS" = "mingw32" -o "$SYS" = "mingwce" -o "$SYS" = "linux"], [
3417 AS_IF([test "$enable_oss" != "no"], [
3418 AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
3420 AC_CHECK_LIB(ossaudio, main, [
3421 OSS_LIBS="-lossaudio"
3426 AM_CONDITIONAL([HAVE_OSS], [test "${have_oss}" = "yes"])
3429 dnl Portaudio module
3431 PKG_ENABLE_MODULES_VLC([PORTAUDIO], [], [portaudio-2.0], [Portaudio library support], [auto])
3434 dnl win32 waveOut plugin
3436 AC_ARG_ENABLE(waveout,
3437 [ --enable-waveout Win32 waveOut module (default enabled on Win32)])
3438 if test "${enable_waveout}" != "no"; then
3439 if test "${SYS}" = "mingw32"; then
3440 VLC_ADD_PLUGIN([waveout])
3441 VLC_ADD_LIBS([waveout],[-lwinmm])
3443 if test "${SYS}" = "mingwce"; then
3444 VLC_ADD_PLUGIN([waveout])
3449 dnl CoreAudio plugin
3451 AC_ARG_ENABLE(macosx-audio,
3452 [ --enable-macosx-audio Mac OS X audio module (default enabled on MacOS X)])
3453 if test "x${enable_macosx_audio}" != "xno" &&
3454 (test "${SYS}" = "darwin" || test "${enable_macosx_audio}" = "yes")
3456 AC_CHECK_HEADERS(CoreAudio/CoreAudio.h,
3457 [ VLC_ADD_PLUGIN([auhal])
3458 VLC_ADD_LIBS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
3459 ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
3463 dnl AudioQueue plugin
3465 AC_ARG_ENABLE(audioqueue,
3466 [ --enable-audioqueue AudioQueue audio module (default disabled)])
3467 if test "${enable_audioqueue}" = "yes"
3469 VLC_ADD_PLUGIN([audioqueue])
3470 VLC_ADD_LIBS([audioqueue], [-Wl,-framework,AudioToolbox,-framework,CoreFoundation])
3476 PKG_ENABLE_MODULES_VLC([JACK], [jack access_jack], [jack], [JACK audio I/O modules],[auto])
3479 dnl OpenSLES Android
3481 AC_ARG_ENABLE(opensles,
3482 [ --enable-opensles Android OpenSL ES audio module (default disabled)])
3483 if test "${HAVE_ANDROID}" = "1"; then
3484 if test "${enable_opensles}" = "yes"; then
3485 AC_CHECK_HEADERS(SLES/OpenSLES.h,
3486 [ VLC_ADD_PLUGIN([opensles_android]) ],
3487 [ AC_MSG_ERROR([cannot find OpenSLES headers])] )
3492 dnl libsamplerate plugin
3494 PKG_ENABLE_MODULES_VLC([SAMPLERATE], [], [samplerate], [Resampler with libsamplerate], [auto])
3500 [AS_HELP_STRING([--enable-kai],
3501 [support the K Audio Interface KAI (default enabled on OS/2)])],, [
3502 AS_IF([test "$SYS" = "os2"], [
3508 AS_IF([test "$enable_kai" != "no"], [
3509 AC_CHECK_HEADERS([kai.h], [
3511 AC_CHECK_LIB(kai, main, [
3517 AM_CONDITIONAL([HAVE_KAI], [test "${have_kai}" = "yes"])
3520 dnl Interface plugins
3523 EXTEND_HELP_STRING([Interface plugins:])
3528 AC_ARG_ENABLE(hildon,
3529 [ --enable-hildon Hildon touchscreen UI (default disabled)])
3530 AS_IF([test "${enable_hildon}" = "yes"], [
3531 PKG_CHECK_MODULES(HILDON, [hildon-1], [
3532 PKG_CHECK_MODULES(HILDON_FM, hildon-fm-2, [
3533 VLC_ADD_CFLAGS([hildon],[${HILDON_FM_CFLAGS} -DHAVE_HILDON_FM])
3534 VLC_ADD_LIBS([hildon],[${HILDON_FM_LIBS}])
3536 AC_MSG_WARN([${HILDON_FM_PKG_ERRORS}.])
3538 VLC_ADD_CFLAGS([hildon],[${HILDON_CFLAGS} ${X_CFLAGS}])
3539 VLC_ADD_LIBS([hildon],[${HILDON_LIBS} ${X_LIBS} ${X_PRE_LIBS} -lX11])
3540 VLC_ADD_PLUGIN([hildon])
3541 ALIASES="${ALIASES} mvlc"
3543 AS_IF([test "${enable_hildon}" = "yes"],[
3544 AC_MSG_ERROR([${HILDON_PKG_ERRORS}.])
3549 AM_CONDITIONAL(BUILD_HILDON, [test "${enable_hildon}" = "yes"])
3555 [ --enable-qt4 Qt 4 support (default enabled) ],, [
3556 AS_IF([test "${SYS}" = "darwin"], [enable_qt4=no])
3558 AS_IF([test "${enable_qt4}" != "no"], [
3559 PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.6.0], [
3560 VLC_ADD_PLUGIN([qt4])
3561 VLC_ADD_LIBS([qt4],[${QT4_LIBS}])
3562 VLC_ADD_CXXFLAGS([qt4],[${QT4_CFLAGS}])
3563 ALIASES="${ALIASES} qvlc"
3568 AC_MSG_CHECKING([whether Qt uses X11])
3569 CPPFLAGS="${CPPFLAGS} ${QT4_CFLAGS}"
3570 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
3572 #if !defined (Q_WS_X11)
3576 AC_MSG_RESULT([yes])
3577 VLC_ADD_LIBS([qt4],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3578 VLC_ADD_CXXFLAGS([qt4],[${X_CFLAGS}])
3586 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"], [
3587 VLC_ADD_LIBS([qt4],[-lole32])
3589 AS_IF([test "${SYS}" = "darwin" ],[
3590 VLC_ADD_LIBS([qt4], [-Wl,-framework,Cocoa])
3592 AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`eval $PKG_CONFIG --variable=exec_prefix QtCore`/bin)
3593 AC_PATH_PROG(RCC, rcc, rcc,`eval $PKG_CONFIG --variable=exec_prefix QtCore`/bin)
3594 AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`eval $PKG_CONFIG --variable=exec_prefix QtCore`/bin)
3596 AS_IF([test -n "${enable_qt4}"],[
3597 AC_MSG_ERROR([${QT4_PKG_ERRORS}.])
3599 AC_MSG_WARN([${QT4_PKG_ERRORS}.])
3604 AM_CONDITIONAL(ENABLE_QT4, [test "x$enable_qt4" != "xno"])
3607 dnl Simple test for skins2 dependency
3609 AS_IF([test "x$enable_qt4" = "xno"], [
3610 AS_IF([test "${enable_skins2}" = "yes"], [
3611 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.])
3614 AC_MSG_WARN([The skins2 module depends on the Qt4 interface, Qt4 is not built so skins2 is disabled.])
3621 AC_ARG_ENABLE(skins2,
3622 [AS_HELP_STRING([--enable-skins2], [skins interface module (default auto)])])
3623 AS_IF([test "${enable_skins2}" != "no"], [
3624 have_skins_deps="yes"
3627 AS_IF([test "${SYS}" = "mingw32"], [
3628 VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
3629 VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3630 VLC_ADD_LIBS([skins2],[-lgdi32 -lole32 -luuid -lmsimg32])
3632 ], [test "${SYS}" = "darwin"], [
3633 VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
3634 VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3635 VLC_ADD_LIBS([skins2],[-Wl,-framework,Carbon])
3638 PKG_CHECK_MODULES([XPM], [xpm],, [have_skins_deps="no"])
3639 PKG_CHECK_MODULES([XINERAMA], [xinerama],, [have_skins_deps="no"])
3640 PKG_CHECK_MODULES([XEXT], [xext],, [have_skins_deps="no"])
3641 VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} ${XEXT_CFLAGS} ${XPM_CFLAGS} -DX11_SKINS])
3642 VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3643 VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} ${XEXT_LIBS} ${XPM_LIBS} ${XINERAMA_LIBS} -lX11])
3646 dnl we need freetype
3647 AS_IF([test "${have_freetype}" != "yes"], [
3648 have_skins_deps="no"
3651 AS_IF([test "${have_skins_deps}" = "no"], [
3652 AS_IF([test "x${enable_skins2}" = "x"], [
3653 AC_MSG_WARN([Skins2 interface disabled due to missing dependencies.])
3655 AC_MSG_ERROR([Skins2 interface requires FreeType, libxpm, libxext and libxinerama])
3659 VLC_ADD_PLUGIN([skins2])
3660 ALIASES="${ALIASES} svlc"
3664 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes"])
3666 AC_ARG_ENABLE(libtar,
3667 [ --enable-libtar libtar support for skins2 (default auto)])
3668 AS_IF([test "${enable_skins2}" = "yes" && test "${enable_libtar}" != "no"], [
3669 AC_CHECK_HEADERS(libtar.h, [
3670 VLC_ADD_LIBS([skins2],[-ltar])
3675 dnl MacOS X gui module
3677 AC_ARG_ENABLE(macosx,
3678 [ --enable-macosx Mac OS X gui support (default enabled on Mac OS X)])
3679 if test "x${enable_macosx}" != "xno" -a "${SYS}" = "darwin"
3681 VLC_ADD_LIBS([macosx minimal_macosx], [-Wl,-framework,Cocoa -Wl,-framework,OpenGL -Wl,-framework,Carbon -Wl,-framework,CoreServices -Wl,-framework,AGL])
3682 VLC_ADD_OBJCFLAGS([macosx minimal_macosx], [-fobjc-exceptions] )
3683 VLC_ADD_PLUGIN([macosx minimal_macosx])
3685 VLC_ADD_LIBS([macosx], [-Wl,-framework,QTKit -Wl,-framework,IOKit -Wl,-framework,AddressBook -Wl,-framework,WebKit])
3687 if ! test -d ${CONTRIB_DIR}/Sparkle.framework
3689 AC_MSG_ERROR([Sparkle framework is required and was not found in ${CONTRIB_DIR}])
3691 VLC_ADD_LIBS([macosx], [-F${CONTRIB_DIR} -Wl,-framework,Sparkle])
3692 VLC_ADD_OBJCFLAGS([macosx], [-F${CONTRIB_DIR}])
3694 if ! test -d ${CONTRIB_DIR}/BGHUDAppKit.framework
3696 AC_MSG_ERROR([BGHUDAppKit framework is required and was not found in ${CONTRIB_DIR}])
3698 VLC_ADD_LIBS([macosx], [-F${CONTRIB_DIR} -Wl,-framework,BGHUDAppKit])
3699 VLC_ADD_OBJCFLAGS([macosx], [-F${CONTRIB_DIR}])
3704 dnl MacOS X dialor provider
3706 AC_ARG_ENABLE(macosx-dialog-provider,
3707 [ --enable-macosx-dialog-provider Mac OS X dialog module (default enabled on Mac OS X)])
3708 if test "x${enable_macosx_dialog_provider}" != "xno" &&
3709 (test "${SYS}" = "darwin" || test "${enable_macosx_dialog_provider}" = "yes")
3711 VLC_ADD_LIBS([macosx_dialog_provider],[-Wl,-framework,Cocoa])
3712 VLC_ADD_PLUGIN([macosx_dialog_provider])
3718 AC_ARG_ENABLE(ncurses,
3719 [AS_HELP_STRING([--disable-ncurses],[ncurses text-based interface (default auto)])])
3720 if test "${enable_ncurses}" != "no"; then
3723 AC_CHECK_HEADER(ncurses.h, [
3724 AC_CHECK_LIB(ncursesw, mvprintw, [
3725 AC_SEARCH_LIBS([tgetent], [ncursesw tinfow tinfo], [
3726 VLC_ADD_PLUGIN([ncurses])
3727 ALIASES="${ALIASES} nvlc"
3728 VLC_ADD_LIBS([ncurses],[-lncursesw ${LIBS}])
3730 AS_IF([test "${enable_ncurses}" = "yes"], [AC_MSG_ERROR([tgetent not found])])
3733 AS_IF([test "${enable_ncurses}" = "yes"], [AC_MSG_ERROR([libncursesw not found])])
3736 AS_IF([test "${enable_ncurses}" = "yes"], [AC_MSG_ERROR([ncurses.h not found])])
3745 [ --enable-xosd xosd interface support (default disabled)])
3746 if test "${enable_xosd}" = "yes"
3748 AC_CHECK_HEADERS(xosd.h,
3749 AC_CHECK_LIB(xosd, xosd_set_horizontal_offset, [
3750 AS_IF([test "${no_x}" != "yes"], [
3751 VLC_ADD_PLUGIN([xosd])
3752 VLC_ADD_LIBS([xosd],[-lxosd ${X_LIBS} ${X_PRE_LIBS} -lX11])
3753 VLC_ADD_CFLAGS([xosd],[${X_CFLAGS}])
3755 AC_MSG_ERROR([Xlib is required with xosd.])
3762 dnl Framebuffer (overlay) plugin
3764 AC_ARG_ENABLE(fbosd,
3765 [ --enable-fbosd fbosd interface support (default disabled)])
3766 if test "${enable_fbosd}" = "yes"
3768 AC_CHECK_HEADERS(linux/fb.h, [
3769 VLC_ADD_PLUGIN([fbosd])
3777 [ --enable-lirc lirc support (default disabled)])
3778 if test "${enable_lirc}" = "yes"
3780 AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
3781 if test "${have_lirc}" = "true"
3783 VLC_ADD_PLUGIN([lirc])
3784 VLC_ADD_LIBS([lirc],[-llirc_client])
3788 EXTEND_HELP_STRING([Visualisations and Video filter plugins:])
3790 dnl Visualisation plugin
3792 AC_ARG_ENABLE(visual,
3793 [ --enable-visual visualisation plugin (default enabled)])
3794 if test "${enable_visual}" != "no"
3796 VLC_ADD_PLUGIN([visual])
3800 dnl goom visualization plugin
3802 PKG_ENABLE_MODULES_VLC([GOOM], [], [libgoom2], [goom visualization plugin], [auto])
3805 dnl libprojectM visualization plugin
3807 AC_ARG_ENABLE(projectm,
3808 [ --enable-projectm projectM visualization plugin (default enabled)])
3809 AS_IF([test "${enable_projectm}" != "no"],
3811 PKG_CHECK_MODULES(PROJECTM, libprojectM,
3813 VLC_ADD_PLUGIN([projectm])
3814 VLC_ADD_CXXFLAGS([projectm],[$PROJECTM_CFLAGS])
3815 VLC_ADD_LIBS([projectm],[$PROJECTM_LIBS])
3816 PKG_CHECK_MODULES(PROJECTM2, [libprojectM >= 2.0.0],
3817 [ AC_DEFINE([HAVE_PROJECTM2], 1, [Define to 1 if using libprojectM 2.x]) ],
3818 [ AC_MSG_WARN( [Using libprojectM version 1] )
3821 AC_MSG_WARN([${PROJECTM_PKG_ERRORS}.])
3826 dnl AtmoLight (homemade Philips Ambilight clone)
3829 AS_HELP_STRING([--disable-atmo],[AtmoLight (homemade Philips Ambilight clone)
3830 (default enabled)]),, [enable_atmo="yes"])
3831 AS_IF([test "${enable_atmo}" != no], [
3832 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "linux"], [
3834 VLC_ADD_PLUGIN([atmo])
3839 EXTEND_HELP_STRING([Service Discovery plugins:])
3841 dnl Bonjour services discovery
3842 PKG_ENABLE_MODULES_VLC([BONJOUR], [], [avahi-client >= 0.6], [Bonjour services discovery], [auto])
3845 dnl libudev services discovery
3846 PKG_ENABLE_MODULES_VLC([UDEV], [], [libudev >= 142], [Linux udev services discovery], [auto])
3849 dnl MTP devices services discovery
3850 PKG_ENABLE_MODULES_VLC([MTP], [mtp access_mtp], [libmtp >= 1.0.0], [MTP devices support], [auto])
3853 dnl UPnP Plugin (Intel SDK)
3855 PKG_ENABLE_MODULES_VLC([UPNP], [upnp], [libupnp], [Intel UPNP SDK],[auto])
3856 VLC_ADD_CXXFLAGS([upnp],[${UPNP_CFLAGS}])
3858 EXTEND_HELP_STRING([Misc options:])
3863 PKG_ENABLE_MODULES_VLC([LIBXML2], [xml], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
3869 AC_ARG_ENABLE(libgcrypt,
3870 [ --disable-libgcrypt gcrypt support (default enabled)])
3871 AS_IF([test "${enable_libgcrypt}" != "no"], [
3872 AC_CHECK_DECL([GCRYCTL_SET_THREAD_CBS], [
3873 libgcrypt-config --version >/dev/null || \
3874 AC_MSG_ERROR([gcrypt.h present but libgcrypt-config could not be found])
3875 AC_CHECK_LIB(gcrypt, gcry_control, [
3876 have_libgcrypt="yes"
3877 GCRYPT_CFLAGS="`libgcrypt-config --cflags`"
3878 GCRYPT_LIBS="`libgcrypt-config --libs`"
3880 AC_MSG_ERROR([libgcrypt not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
3881 ], [`libgcrypt-config --libs`])
3883 AC_MSG_ERROR([libgcrypt version 1.1.94 or higher not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
3884 ], [#include <gcrypt.h>]
3888 AC_SUBST(GCRYPT_CFLAGS)
3889 AC_SUBST(GCRYPT_LIBS)
3890 AM_CONDITIONAL([HAVE_GCRYPT], [test "${have_libgcrypt}" = "yes"])
3895 AC_ARG_ENABLE(gnutls,
3896 [ --enable-gnutls GNU TLS TLS/SSL support (default enabled)])
3898 AS_IF([test "${have_libgcrypt}" != "yes"], [
3899 AS_IF([test "${enable_gnutls}" = "yes"], [
3900 AC_MSG_ERROR([--enable-gnutls and --disable-libgcrypt are mutually exclusive.])
3904 AS_IF([test "${enable_gnutls}" != "no"], [
3905 PKG_CHECK_MODULES(GNUTLS, [gnutls >= 2.0.0], [
3906 VLC_ADD_PLUGIN([gnutls])
3908 AS_IF([test -n "${enable_gnutls}"], [
3909 AC_MSG_ERROR([${GNUTLS_PKG_ERRORS}.)])
3916 dnl Nokia MCE plugin (Maemo screen unblanking)
3918 PKG_CHECK_MODULES([MCE], [dbus-1 mce], [VLC_ADD_PLUGIN([mce])], [true])
3921 AS_IF([test -f "/etc/maemo_version"], [
3922 AC_DEFINE([HAVE_MAEMO], 1, [Define to 1 if building for the Maemo platform.])
3929 AC_ARG_ENABLE(taglib,
3930 [AS_HELP_STRING([--disable-taglib],
3931 [do not use TagLib (default enabled)])])
3932 AS_IF([test "${enable_taglib}" != "no"], [
3933 PKG_CHECK_MODULES(TAGLIB, taglib >= 1.5, [
3934 VLC_ADD_PLUGIN([taglib])
3935 VLC_ADD_LIBS([taglib],[$TAGLIB_LIBS -lz])
3936 VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS])
3938 AC_MSG_WARN([${TAGLIB_PKG_ERRORS}.])])
3943 dnl update checking system
3945 AC_ARG_ENABLE(update-check,
3946 [ --enable-update-check update checking system (default disabled)])
3947 if test "${enable_update_check}" = "yes"
3949 if test "${have_libgcrypt}" != "yes"
3951 AC_MSG_ERROR([libgcrypt is required for update checking system])
3953 VLC_ADD_LIBS([libvlccore], [${GCRYPT_LIBS}])
3954 VLC_ADD_CFLAGS([libvlccore], [${GCRYPT_CFLAGS}])
3955 AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
3959 dnl Growl notification plugin
3961 AC_ARG_ENABLE(growl,
3962 [ --enable-growl growl notification plugin (default disabled)],,
3964 AS_IF([test "${enable_growl}" != "no"], [
3965 AC_CHECK_HEADERS(${CONTRIB_DIR}/Growl.framework/Versions/A/Headers/GrowlDefines.h, [
3966 VLC_ADD_PLUGIN([growl])
3967 VLC_ADD_LIBS([growl], [-F${CONTRIB_DIR} -Wl,-framework,Growl,-framework,CoreFoundation])
3968 VLC_ADD_OBJCFLAGS([growl], [-F${CONTRIB_DIR}])
3969 VLC_ADD_OBJCFLAGS([growl], [-fobjc-exceptions] )
3975 dnl Libnotify notification plugin
3977 PKG_ENABLE_MODULES_VLC([NOTIFY], [], [libnotify gtk+-2.0], [libnotify notification], [auto])
3982 AC_ARG_ENABLE(media-library,
3983 [ --enable-media-library media library (default disabled)])
3984 AS_IF([test "${enable_media_library}" = "yes"], [
3985 AC_DEFINE([MEDIA_LIBRARY], 1, [Define if you want to use the VLC media library])
3986 VLC_ADD_CPPFLAGS([qt4],"-DMEDIA_LIBRARY")
3987 VLC_ADD_PLUGIN([media_library])
3992 AS_IF([test "${SYS}" != "darwin"], [
3993 PKG_ENABLE_MODULES_VLC([SQLITE], [], [sqlite3 >= 3.6.0], [sqlite3], [auto])
3995 AS_IF([test "${enable_sqlite}" != "no"], [
3996 AC_CHECK_HEADERS(sqlite3.h, [
3997 VLC_ADD_PLUGIN([sqlite])
3998 VLC_ADD_LIBS([sqlite], [-lsqlite3])
4000 AC_MSG_ERROR([sqlite3 is required for the media library])
4008 dnl Endianness check
4011 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
4012 DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
4016 AC_SUBST(DEFS_BIGENDIAN)
4019 dnl Where to install KDE solid .desktop
4021 AC_ARG_VAR([KDE4_CONFIG], [kde4-config utility])
4022 AS_IF([test "x$KDE4_CONFIG" = "x"], [
4023 KDE4_CONFIG="kde4-config"
4026 AC_ARG_WITH(kde-solid,
4027 AS_HELP_STRING([--with-kde-solid=PATH],
4028 [KDE Solid actions directory (auto)]),, [
4030 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "darwin" ; then
4031 with_kde_solid="yes"
4035 AS_IF([test "${with_kde_solid}" != "no"], [
4036 AS_IF([test "${with_kde_solid}" = "yes"], [
4037 kde4datadir="`${KDE4_CONFIG} --install data`"
4038 AS_IF([test "x$kde4datadir" = "x"], [kde4datadir='${datadir}/kde4/apps'])
4039 soliddatadir="${kde4datadir}/solid/actions"
4041 soliddatadir="${with_kde_solid}"
4044 AC_SUBST(soliddatadir)
4045 AM_CONDITIONAL(KDE_SOLID, [test "x${soliddatadir}" != "x"])
4048 dnl DLL loader copied from MPlayer copied from somewhere else (WINE ?)
4051 AC_ARG_ENABLE(loader,
4052 AS_HELP_STRING([--enable-loader],[build DLL loader for ELF i386 platforms
4053 (default disabled)]))
4054 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
4055 AS_IF([test "${enable_loader}" = "yes"],
4056 [ VLC_ADD_PLUGIN([dmo])
4057 VLC_ADD_CPPFLAGS([dmo quicktime realvideo],[-I\\\${top_srcdir}/modules/codec/loader])
4058 VLC_ADD_LIBS([dmo quicktime realvideo],[\\\${top_builddir}/modules/codec/loader/libloader.la])
4059 VLC_ADD_CPPFLAGS([realvideo], [-DLOADER])
4060 VLC_ADD_LIBS([dmo quicktime], [-lpthread])
4063 EXTEND_HELP_STRING([Components:])
4069 [ --enable-vlc build the VLC media player (default enabled)])
4070 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
4072 AC_ARG_ENABLE(macosx-vlc-app,
4073 [ --enable-macosx-vlc-app build the VLC media player (default enabled on Mac OS X)])
4074 AM_CONDITIONAL(BUILD_MACOSX_VLC_APP, [test "${enable_macosx_vlc_app}" != "no" &&
4075 (test "${SYS}" = "darwin" || test "${enable_macosx_vlc_app}" = "yes") ])
4078 dnl Stuff used by the program
4080 VERSION_MESSAGE="${VERSION} ${CODENAME}"
4081 COPYRIGHT_MESSAGE="Copyright © ${COPYRIGHT_YEARS} the VideoLAN team"
4082 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string])
4083 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string])
4084 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
4085 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
4086 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,${VERSION_MAJOR}, [version major number])
4087 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,${VERSION_MINOR}, [version minor number])
4088 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,${VERSION_REVISION}, [version revision number])
4089 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,${VERSION_EXTRA}, [version extra number])
4090 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_DEV,"${VERSION_DEV}", [version development string])
4091 AC_SUBST(COPYRIGHT_MESSAGE)
4092 AC_SUBST(VERSION_MESSAGE)
4093 AC_SUBST(VERSION_MAJOR)
4094 AC_SUBST(VERSION_MINOR)
4095 AC_SUBST(VERSION_REVISION)
4096 AC_SUBST(VERSION_EXTRA)
4097 AC_SUBST(COPYRIGHT_YEARS)
4098 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure])
4099 AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -f 2>/dev/null || hostname`", [host which ran configure])
4100 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler])
4102 dnl Handle substvars that use $(top_srcdir)
4104 CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS}"
4107 dnl Sort the modules list
4109 PLUGINS=$( (for i in `echo $PLUGINS`; do echo $i; done)|sort|xargs )
4112 dnl Configuration is finished
4122 AC_SUBST(WINE_SDK_PATH)
4124 AC_SUBST(AM_CPPFLAGS)
4125 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
4126 AC_SUBST(FILE_LIBVLCCORE_DLL)
4127 AC_SUBST(FILE_LIBVLC_DLL)
4142 modules/access/Makefile
4143 modules/access/bd/Makefile
4144 modules/access/dshow/Makefile
4145 modules/access/dvb/Makefile
4146 modules/access/mms/Makefile
4147 modules/access/rtp/Makefile
4148 modules/access/rtsp/Makefile
4149 modules/access/vcd/Makefile
4150 modules/access/vcdx/Makefile
4151 modules/access/screen/Makefile
4152 modules/access/zip/Makefile
4153 modules/access/zip/unzip/Makefile
4154 modules/access_output/Makefile
4155 modules/audio_filter/Makefile
4156 modules/audio_mixer/Makefile
4157 modules/audio_output/Makefile
4158 modules/codec/Makefile
4159 modules/codec/avcodec/Makefile
4160 modules/codec/dmo/Makefile
4161 modules/codec/loader/Makefile
4162 modules/codec/omxil/Makefile
4163 modules/codec/shine/Makefile
4164 modules/codec/spudec/Makefile
4165 modules/codec/wmafixed/Makefile
4166 modules/control/Makefile
4167 modules/control/dbus/Makefile
4168 modules/control/globalhotkeys/Makefile
4169 modules/demux/Makefile
4170 modules/demux/asf/Makefile
4171 modules/demux/avformat/Makefile
4172 modules/demux/avi/Makefile
4173 modules/demux/mkv/Makefile
4174 modules/demux/mp4/Makefile
4175 modules/demux/mpeg/Makefile
4176 modules/demux/playlist/Makefile
4177 modules/gui/Makefile
4178 modules/gui/macosx/Makefile
4179 modules/gui/hildon/Makefile
4180 modules/gui/minimal_macosx/Makefile
4181 modules/gui/macosx_dialog_provider/Makefile
4182 modules/gui/qt4/Makefile
4183 modules/gui/skins2/Makefile
4184 modules/lua/Makefile
4185 modules/meta_engine/Makefile
4186 modules/misc/Makefile
4187 modules/misc/playlist/Makefile
4188 modules/misc/osd/Makefile
4189 modules/misc/stats/Makefile
4190 modules/media_library/Makefile
4191 modules/mux/Makefile
4192 modules/mux/mpeg/Makefile
4193 modules/notify/Makefile
4194 modules/packetizer/Makefile
4195 modules/services_discovery/Makefile
4196 modules/stream_filter/Makefile
4197 modules/stream_filter/dash/Makefile
4198 modules/stream_out/Makefile
4199 modules/stream_out/transcode/Makefile
4200 modules/text_renderer/Makefile
4201 modules/video_chroma/Makefile
4202 modules/video_filter/Makefile
4203 modules/video_filter/dynamicoverlay/Makefile
4204 modules/video_output/Makefile
4205 modules/video_output/msw/Makefile
4206 modules/visualization/Makefile
4207 modules/visualization/visual/Makefile
4208 modules/mmx/Makefile
4209 modules/mmxext/Makefile
4210 modules/3dnow/Makefile
4211 modules/sse2/Makefile
4212 modules/altivec/Makefile
4213 modules/arm_neon/Makefile
4216 AM_COND_IF([HAVE_WIN32], [
4218 extras/package/win32/spad.nsi
4219 extras/package/win32/vlc.win32.nsi
4223 AM_COND_IF([HAVE_DARWIN], [
4225 extras/package/macosx/Info.plist
4226 extras/package/macosx/Resources/English.lproj/InfoPlist.strings
4230 dnl Generate makefiles
4233 dnl Do we have to use make or gmake ?
4234 USE_MAKE_OR_GMAKE=`case "${SYS}" in openbsd*) echo "gmake";; *) echo "make";; esac`
4235 dnl Shortcut to nice compile message
4237 if test -n $SHELL; then
4238 SHELL=${CONFIG_SHELL-/bin/sh}
4240 echo '#! '$SHELL >compile
4241 echo rm -f .error\$\$ >>compile
4242 echo ERROR=0 >>compile
4243 echo export PATH=$PATH LANG=C >>compile
4244 echo "($USE_MAKE_OR_GMAKE V=1 \$@ 2>&1 || touch .error\$\$)| \\" >>compile
4245 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/buildsystem/make.pl' >>compile
4246 echo test -f .error\$\$ \&\& ERROR=1 >>compile
4247 echo rm -f .error\$\$ >>compile
4248 echo exit \$ERROR >>compile
4252 libvlc configuration
4253 --------------------
4254 version : ${VERSION}
4256 architecture : ${ARCH}
4257 optimizations : ${enable_optimizations}"
4258 if test "${enable_vlc}" != "no"; then
4259 echo "vlc aliases :${ALIASES}"
4261 echo "build vlc executable : no"
4264 To build vlc and its plugins, type \`./compile' or \`$USE_MAKE_OR_GMAKE'."