1 dnl Autoconf settings for vlc
3 AC_COPYRIGHT([Copyright 2002-2011 VLC authors and VideoLAN])
5 AC_INIT(vlc, 1.3.0-git)
15 CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
17 COPYRIGHT_YEARS="1996-2011"
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])
156 dnl Check for Mac OS X SDK settings
158 AC_ARG_WITH(macosx-sdk,
159 [AS_HELP_STRING([--with-macosx-sdk=DIR],
160 [compile using the SDK in DIR])])
161 test "${with_macosx_sdk}" = "" && with_macosx_sdk=/Developer/SDKs/MacOSX10.6.sdk
162 ! test -d "${with_macosx_sdk}" && AC_MSG_ERROR([SDK "${with_macosx_sdk}" not found])
163 AC_ARG_WITH(macosx-version-min,
164 [AS_HELP_STRING([--with-macosx-version-min=VERSION],
165 [compile for MacOS X VERSION and above])])
166 if test "${with_macosx_version_min}" = "" ; then
167 with_macosx_version_min=10.5
169 MACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}
170 CPP="${CPP} -isysroot ${with_macosx_sdk} -mmacosx-version-min=${with_macosx_version_min}"
171 CC="${CC} -isysroot ${with_macosx_sdk} -mmacosx-version-min=${with_macosx_version_min}"
172 CXX="${CXX} -isysroot ${with_macosx_sdk} -mmacosx-version-min=${with_macosx_version_min}"
173 OBJC="${OBJC} -isysroot ${with_macosx_sdk} -mmacosx-version-min=${with_macosx_version_min}"
174 LD="${LD} -syslibroot ${with_macosx_sdk} -mmacosx_version_min=${with_macosx_version_min}"
175 CFLAGS="${CFLAGS} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"
176 CXXFLAGS="${CXXFLAGS} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"
177 OBJCFLAGS="${OBJCFLAGS} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"
178 export MACOSX_DEPLOYMENT_TARGET
180 *mingw32* | *cygwin* | *wince* | *mingwce*)
181 AC_CHECK_TOOL(WINDRES, windres, :)
182 AC_CHECK_TOOL(OBJCOPY, objcopy, :)
183 AC_DEFINE([_WIN32_WINNT], 0x0502, [Define to '0x0502' for Windows XP SP2 APIs.])
184 AC_DEFINE([_WIN32_IE], 0x0600, [Define to '0x0600' for IE 6.0 (and shell) APIs.])
187 *wince* | *mingwce* | *mingw32ce*)
189 dnl Sadly CeGCC still needs non-wince macros
195 dnl Check if we are using the mno-cygwin mode in which case we are
196 dnl actually dealing with a mingw32 compiler.
201 SYS=mingw32, AC_MSG_ERROR([VLC requires -mno-cygwin]))
205 if test "${SYS}" = "mingw32"; then
206 VLC_ADD_LIBS([libvlccore],[-lnetapi32 -lwinmm])
207 VLC_ADD_LDFLAGS([vlc],[-mwindows])
208 VLC_ADD_LIBS([win32text],[-lgdi32])
209 VLC_ADD_LIBS([cdda vcdx sdl_image vout_sdl],[-lwinmm])
210 AC_CHECK_PROGS(U2D, [unix2dos todos], unix2dos)
211 ac_default_prefix="`pwd`/_win32"
212 DESTDIR="`pwd`/_win32/"
215 dnl NSIS Installer prefix and WIN64
220 PROGRAMFILES="PROGRAMFILES64"
223 PROGRAMFILES="PROGRAMFILES"
226 AC_SUBST(PROGRAMFILES)
229 if test "${SYS}" = "mingwce"; then
230 VLC_ADD_LIBS([libvlccore],[-lmmtimer])
231 AC_CHECK_PROGS(U2D, [unix2dos todos], unix2dos)
232 ac_default_prefix="`pwd`/_wince"
233 DESTDIR="`pwd`/_wince/"
250 LDFLAGS="${LDFLAGS} -Zomf -Zbin-files -Zargs-wild"
256 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
257 AM_CONDITIONAL(HAVE_LINUX, test "${SYS}" = "linux")
258 AM_CONDITIONAL(HAVE_OS2, test "${SYS}" = "os2")
259 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
260 AM_CONDITIONAL(HAVE_WIN64, test "${HAVE_WIN64}" = "1")
261 AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
262 AM_CONDITIONAL(HAVE_SYMBIAN, test "${SYS}" = "symbian")
265 dnl Check for the contrib directory
268 [AS_HELP_STRING([--with-contrib[=DIR]],
269 [search for 3rd party libraries in DIR/include and DIR/lib])
271 AC_MSG_CHECKING([for 3rd party libraries path])
272 AS_IF([test -z "${with_contrib}" || test "${with_contrib}" = "yes"], [
273 CONTRIB_DIR="${srcdir}/contrib/${host}"
274 AS_IF([test ! -d "${CONTRIB_DIR}"], [
275 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
276 CONTRIB_DIR="${srcdir}/contrib/`$CC -dumpmachine`"
277 AS_IF([test ! -d "${CONTRIB_DIR}"], [
278 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
279 CONTRIB_DIR="${srcdir}/extras/contrib/hosts/${host}"
280 AS_IF([test ! -d "${CONTRIB_DIR}"], [
281 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
282 CONTRIB_DIR="${srcdir}/extras/contrib/hosts/`$CC -dumpmachine`"
283 AS_IF([test ! -d "${CONTRIB_DIR}"], [
284 echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
286 AC_MSG_RESULT([not found])
292 AS_IF([test "${with_contrib}" != "no"], [
293 CONTRIB_DIR="${with_contrib}"
296 AC_MSG_RESULT([disabled])
299 AS_IF([test -n "${CONTRIB_DIR}"], [
300 AS_IF([test -d "${CONTRIB_DIR}/lib"],[
301 CONTRIB_DIR=`cd "${CONTRIB_DIR}" && pwd`
303 echo "${CONTRIB_DIR}/lib not found" >&AS_MESSAGE_LOG_FD
305 AC_MSG_RESULT([not usable])
309 AS_IF([test -n "${CONTRIB_DIR}"], [
310 AC_MSG_RESULT([${CONTRIB_DIR}])
311 export PATH=${CONTRIB_DIR}/bin:$PATH
312 CPPFLAGS="${CPPFLAGS} -I${CONTRIB_DIR}/include"
313 CFLAGS="${CFLAGS} -I${CONTRIB_DIR}/include"
314 CXXFLAGS="${CXXFLAGS} -I${CONTRIB_DIR}/include"
315 OBJCFLAGS="${OBJCFLAGS} -I${CONTRIB_DIR}/include"
316 AS_IF([test "$build" = "$host" -o "$PKG_CONFIG_LIBDIR"], [
317 export PKG_CONFIG_PATH="${CONTRIB_DIR}/lib/pkgconfig:$PKG_CONFIG_PATH"
319 export PKG_CONFIG_LIBDIR="${CONTRIB_DIR}/lib/pkgconfig"
321 LDFLAGS="${LDFLAGS} -L${CONTRIB_DIR}/lib"
323 AS_IF([test "${SYS}" = "darwin"], [
324 export LD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$LD_LIBRARY_PATH"
325 export DYLD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$DYLD_LIBRARY_PATH"
328 AS_IF([test -n "${with_contrib}" && test "${with_contrib}" != "no"], [
329 AC_MSG_ERROR([Third party libraries not found!])
332 AC_SUBST(CONTRIB_DIR)
335 dnl Sadly autoconf does not think about testing foo.exe when ask to test
336 dnl for program foo on win32
338 case "${build_os}" in
340 ac_executable_extensions=".exe"
346 dnl Android is linux, but a bit different
347 AS_IF([test "$SYS" = linux],[
348 AC_MSG_CHECKING([for an Android system])
349 AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
350 [[#ifndef __ANDROID__
361 AM_CONDITIONAL(HAVE_ANDROID, test "${HAVE_ANDROID}" = "1")
365 dnl It's very bad, but our former custom system was worst
369 dnl override platform specific check for dependent libraries
370 dnl otherwise libtool linking of shared libraries will
371 dnl fail on anything other than pass_all.
372 AC_CACHE_VAL(lt_cv_deplibs_check_method,
373 [lt_cv_deplibs_check_method=pass_all])
375 LT_INIT([dlopen win32-dll shared disable-static])
377 LT_LANG([Windows Resource])
379 m4_undefine([AC_DEPLIBS_CHECK_METHOD])
380 m4_defun([AC_DEPLIBS_CHECK_METHOD],[])
382 lt_cv_deplibs_check_method=pass_all
384 AS_IF([test "${enable_shared}" = "no" -a "${enable_vlc}" != "no"], [
385 AC_MSG_ERROR([VLC is based on plugins. Shared libraries cannot be disabled.])
391 AM_GNU_GETTEXT_VERSION([0.18.1])
392 AM_GNU_GETTEXT([external])
399 dnl Check for broken versions of mingw-runtime compatability library
400 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"], [
401 AC_MSG_CHECKING(for broken mingw-runtime)
402 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
404 #if (__MINGW32_MAJOR_VERSION == 3) && (__MINGW32_MINOR_VERSION < 15)
405 #ifndef __MINGW64_VERSION_MAJOR
406 # error Attempting to use mingw-runtime with broken vsnprintf support
412 AC_MSG_RESULT([present])
413 AC_MSG_ERROR([LibVLC requires mingw-runtime version 3.15 or higher!])
415 dnl force use of mingw provided c99 *printf over msvcrt
416 CPPFLAGS="${CPPFLAGS} -D__USE_MINGW_ANSI_STDIO=1"
419 dnl Check for the need to include the mingwex lib for mingw32
420 if test "${SYS}" = "mingw32" ; then
421 AC_CHECK_LIB(mingwex,opendir,
422 AC_CHECK_LIB(mingw32,opendir,,
423 [VLC_ADD_LIBS([libvlccore],[-lmingwex])])
427 dnl Check for fnative-struct or mms-bitfields support for mingw32
428 if test "${SYS}" = "mingw32" ; then
430 CFLAGS="${CFLAGS} -mms-bitfields"
431 CXXFLAGS="${CXXFLAGS} -mms-bitfields"
432 AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
433 [ac_cv_c_mms_bitfields],
434 [AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
435 if test "${ac_cv_c_mms_bitfields}" = "no"; then
437 CFLAGS="${CFLAGS} -fnative-struct"
438 CXXFLAGS="${CXXFLAGS} -fnative-struct"
439 AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
440 [ac_cv_c_fnative_struct],
441 [AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
442 "${ac_cv_c_fnative_struct}" = "no" && VLC_RESTORE_FLAGS
447 dnl Buggy glibc prevention. Purposedly not cached.
448 dnl See sourceware.org bugs 5058 and 5443.
449 dnl Ubuntu alone has 20 bug numbers for this...
451 AC_MSG_CHECKING(for buggy GNU/libc versions)
452 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
454 #if defined (__GLIBC__) && (__GLIBC__ == 2) \
455 && (__GLIBC_MINOR__ >= 5) && (__GLIBC_MINOR__ <= 7)
456 # error GNU/libc with dcgettext killer bug!
459 AC_MSG_RESULT([not present])
461 AC_MSG_RESULT([found])
462 AS_IF([test "x${enable_nls}" != "xno"], [
463 AC_MSG_ERROR([Buggy GNU/libc (version 2.5 - 2.7) present. VLC would crash; there is no viable
464 work-around for this. Check with your distribution vendor on how to update the
465 glibc run-time. Alternatively, build with --disable-nls.])
469 dnl Plugin compilation stuff
473 dnl Check for system libs needed
476 dnl Check for usual libc functions
477 AC_CHECK_DECLS([nanosleep],,,[#include <time.h>])
478 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 uselocale])
479 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])
480 AC_CHECK_FUNCS(fdatasync,,
481 [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
484 dnl mingw64 implements those as static inline, not functions with C linkage
486 AC_LANG_PROGRAM([#include <stdio.h>], [
488 if (asprintf(&c, "%s %d", "string", 1) == -1)
490 ])],[AC_DEFINE([HAVE_ASPRINTF],[1],[Define to 1 if you have asprintf function])],[AC_LIBOBJ([asprintf])])
492 AC_LANG_PROGRAM([#include <stdio.h>], [
495 if (vasprintf(&c, "%s %d", ap) == -1)
497 ])],[AC_DEFINE([HAVE_VASPRINTF],[1],[Define to 1 if you have asprintf function])],[AC_LIBOBJ([vasprintf])])
499 # Windows CE does not have strcoll()
502 dnl Check for non-standard system calls
503 AC_CHECK_FUNCS([accept4 pipe2 eventfd vmsplice sched_getaffinity])
505 AH_BOTTOM([#include <vlc_fixups.h>])
508 AC_SEARCH_LIBS(poll, [poll], [
509 AC_DEFINE(HAVE_POLL, 1, [Define to 1 if the OS has poll().])
511 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "os2"], [
512 AC_MSG_ERROR([poll() is required.])
516 dnl Check for struct pollfd
517 AC_CHECK_TYPES([struct pollfd],,,
518 [#include <sys/types.h>
521 #elif defined (WIN32)
522 # include <winsock2.h>
526 dnl Check for connect
529 AC_SEARCH_LIBS(connect, [socket], [
530 AS_IF([test "$ac_cv_search_connect" != "none required"], [
531 SOCKET_LIBS="$ac_cv_search_connect"
534 AS_IF([test "${SYS}" = "mingw32"], [
535 SOCKET_LIBS="-lws2_32"
537 AS_IF([test "${SYS}" = "mingwce"], [
542 AS_IF([test -n "$SOCKET_LIBS"], [
543 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}])
545 AC_SUBST(SOCKET_LIBS)
547 dnl Check for socklen_t
548 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
549 AC_CACHE_CHECK([for socklen_t in sys/socket.h], dnl ` (fix VIM syntax highlight
550 ac_cv_type_socklen_t,
551 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
552 [#include <sys/types.h>
554 # include <winsock2.h>
555 # include <ws2tcpip.h>
557 # include <sys/socket.h>
558 #endif]], [[socklen_t len; len = 0;]])],
559 ac_cv_type_socklen_t=yes,
560 ac_cv_type_socklen_t=no)])
561 AS_IF([test "$ac_cv_type_socklen_t" = no],
562 [AC_DEFINE(socklen_t, int)])
564 dnl Check for struct sockaddr_storage
565 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
566 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
567 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
569 [#include <sys/types.h>
570 #if defined( UNDER_CE )
571 # include <winsock2.h>
572 #elif defined( WIN32 )
573 # include <winsock2.h>
575 # include <sys/socket.h>
576 #endif], [struct sockaddr_storage addr;],
577 ac_cv_struct_sockaddr_storage=yes,
578 ac_cv_struct_sockaddr_storage=no)])
579 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
580 AC_DEFINE(sockaddr_storage, sockaddr)
581 AC_DEFINE(ss_family, sa_family)
584 dnl getaddrinfo, getnameinfo and gai_strerror check
585 dnl -lnsl and -lsocket are needed on Solaris;
586 dnl we purposedly make the test fail on Windows
588 AC_SEARCH_LIBS([getaddrinfo], [nsl],,, [${SOCKET_LIBS}])
591 dnl FreeBSD has a gnugetopt library for this:
593 AC_CHECK_FUNC(getopt_long,, [
594 AC_CHECK_LIB([gnugetopt],[getopt_long], [
595 GNUGETOPT_LIBS="-lgnugetopt"
598 AC_SUBST(GNUGETOPT_LIBS)
601 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 quicktime realvideo qt4 compressor headphone_channel_mixer normvol audiobargraph_a speex mono colorthres extract ball access_imem hotkeys mosaic gaussianblur dbus x264 hqdn3d],[-lm])
608 AC_CHECK_LIB(m,lrintf, [
609 AC_DEFINE(HAVE_LRINTF, 1, [Define to 1 if you have the lrintf function])
610 VLC_ADD_LIBS([skins2],[-lm])
613 dnl Check for dynamic plugins
615 have_dynamic_objects="no"
617 AC_SEARCH_LIBS(dlopen, [dl svld], [
618 AS_IF([test "$ac_cv_search_dlopen" != "none required"], [
619 LIBDL="$ac_cv_search_dlopen"
621 have_dynamic_objects="yes"
626 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"], [
628 have_dynamic_objects="yes" #assume we can use shared objects
631 test "${enable_shared}" = "no" && have_dynamic_objects=no
633 AS_IF([test "${have_dynamic_objects}" != "no"], [
634 AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1,
635 [Define to 1 if dynamic plugins are supported.])
637 dnl Clear $LIBDL so as not to break linking
640 AM_CONDITIONAL(HAVE_DYNAMIC_PLUGINS, [test "${have_dynamic_objects}" != "no"])
643 VLC_ADD_LIBS([realvideo lua],[$LIBDL])
645 dnl Check for thread library
646 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
650 AC_SEARCH_LIBS(pthread_rwlock_init, pthread pthreads c_r, [
651 VLC_ADD_LIBS([libvlccore libvlc vlc plugin],[${LIBS}])
655 AC_CHECK_LIB(rt, clock_nanosleep, [
656 VLC_ADD_LIBS([libvlccore],[-lrt])
658 AC_CHECK_FUNC(nanosleep,,[
659 AC_CHECK_LIB(rt,nanosleep, [
660 VLC_ADD_LIBS([libvlccore],[-lrt])
662 AC_CHECK_LIB(posix4,nanosleep, [
663 VLC_ADD_LIBS([libvlccore],[-lposix4])
668 AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LIBS([libvlccore],[-lrt])])
670 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
672 dnl Check for misc headers
673 AC_MSG_CHECKING(for strncasecmp in strings.h)
674 AC_EGREP_HEADER(strncasecmp,strings.h,[
676 AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
677 Define if <strings.h> defines strncasecmp.)],[
680 dnl Check for headers
681 AC_CHECK_HEADERS([search.h])
682 AC_CHECK_HEADERS(getopt.h strings.h locale.h xlocale.h)
683 AC_CHECK_HEADERS(fcntl.h sys/time.h sys/ioctl.h sys/stat.h)
684 AC_CHECK_HEADERS([arpa/inet.h netinet/udplite.h sys/eventfd.h])
685 AC_CHECK_HEADERS([net/if.h], [], [],
687 #include <sys/types.h>
688 #include <sys/socket.h>
690 AC_CHECK_HEADERS([sys/mount.h], [], [],
692 #include <sys/param.h>
695 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
696 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
697 AC_CHECK_HEADERS([linux/version.h linux/dccp.h scsi/scsi.h linux/magic.h])
698 AC_CHECK_HEADERS(syslog.h)
699 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
701 dnl LP64 and LLP64 architectures had better define ssize_t by themselves...
702 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.]) dnl ` (fix VIM syntax highlight
703 AC_CHECK_TYPE(ssize_t,, [
704 AC_DEFINE(ssize_t, int)
707 dnl Check for threads library
708 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
709 AC_CHECK_HEADERS(pthread.h)
710 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
712 dnl It seems that autoconf detects pkg-config only during the first
713 dnl PKG_CHECK_MODULES from configure.ac - which makes sense. But in our case,
714 dnl it is nested within a conditional block, so it was not working right.
715 dnl Make PKG_CONFIG_PATH precious so that it appears in the help and get saved
716 AC_ARG_VAR(PKG_CONFIG_PATH,
717 [Paths where to find .pc not at the default location])
718 PKG_PROG_PKG_CONFIG()
720 dnl On some OS we need static linking
721 AS_IF([test -n "${PKG_CONFIG}" ],[
722 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "darwin" -o "${SYS}" = "os2" ],[
723 PKG_CONFIG="${PKG_CONFIG} --static"
729 dnl Check for zlib.h and -lz along with system -lminizip if available
731 AC_CHECK_HEADERS(zlib.h, [ have_zlib=yes ], [ have_zlib=no ])
732 AM_CONDITIONAL(HAVE_ZLIB, [ test "${have_zlib}" = "yes" ])
733 if test "${have_zlib}" = "yes"
735 VLC_ADD_LIBS([access_http mp4 skins2 sap mkv unzip zip],[-lz])
736 PKG_CHECK_MODULES([MINIZIP], [minizip] , [ have_minizip=yes ], [
737 AC_CHECK_HEADERS([unzip.h], [
739 MINIZIP_LIBS="-lminizip -lz"
742 MINIZIP_CFLAGS="-I\\\${top_srcdir}/modules/access/zip/unzip"
743 MINIZIP_LIBS="\\\${top_builddir}/modules/access/zip/unzip/libunzip.la"
746 VLC_ADD_CPPFLAGS([skins2],[$MINIZIP_CFLAGS])
747 VLC_ADD_LIBS([skins2],[$MINIZIP_LIBS])
749 AM_CONDITIONAL(HAVE_MINIZIP, [ test "${have_minizip}" = "yes" ])
752 dnl Manual switch for UTF-8
753 AC_ARG_ENABLE(non-utf8,
754 [AS_HELP_STRING([--enable-non-utf8],
755 [support legacy non-UTF-8 systems (default disabled)])],, [
756 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "os2"], [
760 AS_IF([test "${enable_non_utf8}" != "no"], [
761 AC_DEFINE([ASSUME_UTF8], [1],
762 [Define to 1 if the operating system uses UTF-8 internally])
768 [AS_HELP_STRING([--enable-dbus],
769 [compile D-Bus message bus support (default enabled)])])
772 if test "${enable_dbus}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
775 PKG_CHECK_MODULES(DBUS, [dbus-1 >= 1.0.0],
776 [ AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
777 VLC_ADD_LIBS([libvlccore],[$DBUS_LIBS])
778 VLC_ADD_CFLAGS([libvlccore],[$DBUS_CFLAGS])
779 dnl Check for dbus control interface
780 AC_ARG_ENABLE(dbus-control,
781 [AS_HELP_STRING([--disable-dbus-control],
782 [D-Bus control interface (default enabled)])])
783 if test "${enable_dbus_control}" != "no"
785 VLC_ADD_PLUGIN([dbus])
786 VLC_ADD_LIBS([dbus],[$DBUS_LIBS])
787 VLC_ADD_CFLAGS([dbus],[$DBUS_CFLAGS])
789 dnl Check for Telepathy
790 AC_ARG_ENABLE(telepathy,
791 AS_HELP_STRING([--enable-telepathy],[Telepathy Presence plugin through DBus(default enabled)]))
792 if test "${enable_telepathy}" != "no"; then
793 VLC_ADD_PLUGIN([telepathy])
794 VLC_ADD_LIBS([telepathy],[$DBUS_LIBS])
795 VLC_ADD_CFLAGS([telepathy],[$DBUS_CFLAGS])
797 dnl Power Management Inhibiter
798 VLC_ADD_PLUGIN([inhibit])
799 VLC_ADD_LIBS([inhibit],[$DBUS_LIBS])
800 VLC_ADD_CFLAGS([inhibit],[$DBUS_CFLAGS])
802 [AC_MSG_ERROR([${DBUS_PKG_ERRORS}.])]
808 dnl Check for ntohl, etc.
810 CFLAGS="${CFLAGS} -Wall -Werror"
811 AC_CACHE_CHECK([for ntohl in sys/param.h],
812 [ac_cv_c_ntohl_sys_param_h],
813 [ AC_TRY_COMPILE([#include <sys/param.h>],
814 [int meuh; ntohl(meuh);],
815 ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
816 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
817 AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
821 EXTEND_HELP_STRING([Optimization options:])
823 dnl Compiler warnings
826 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])
827 RDC_PROG_CC_FLAGS([-pipe])
829 RDC_PROG_CXX_WFLAGS([all extra sign-compare undef pointer-arith volatile-register-var])
836 [AS_HELP_STRING([--enable-debug],
837 [build with run-time assertions (default disabled)])],,
840 [Define to 1 if debug code should NOT be compiled])
841 AS_IF([test "${enable_debug}" != "no"], [
842 AC_CHECK_HEADERS([valgrind/valgrind.h])
851 [AS_HELP_STRING([--enable-gprof],[profile with gprof (default disabled)])],,
853 AS_IF([test "${enable_gprof}" != "no"], [
854 CFLAGS="${CFLAGS} -pg"
855 CXXFLAGS="${CXXFLAGS} -pg"
856 OBJCFLAGS="${OBJCFLAGS} -pg"
857 LDFLAGS="${LDFLAGS} -pg"
861 [AS_HELP_STRING([--enable-cprof],[profile with cprof (default disabled)])],,
863 AS_IF([test "${enable_gprof}" != "no"], [
864 CFLAGS="${CFLAGS} -finstrument-functions"
865 CXXFLAGS="${CXXFLAGS} -finstrument-functions"
866 OBJCFLAGS="${OBJCFLAGS} -finstrument-functions"
867 LDFLAGS="${LDFLAGS} -finstrument-functions"
873 AC_ARG_ENABLE(coverage,
874 [AS_HELP_STRING([--enable-coverage],
875 [build for test coverage (default disabled)])],,
876 [enable_coverage="no"])
877 AS_IF([test "${enable_coverage}" != "no"], [
878 CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
879 CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
880 LDFLAGS="-lgcov ${LDFLAGS}"
883 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"], [
885 CFLAGS="${CFLAGS} -fvisibility=hidden"
886 CXXFLAGS="${CXXFLAGS} -fvisibility=hidden"
887 OBJCFLAGS="${OBJCFLAGS} -fvisibility=hidden"
888 AC_CACHE_CHECK([if $CC accepts -fvisibility=hidden],
889 [ac_cv_c_visibility_hidden], [
890 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
891 ac_cv_c_visibility_hidden=yes
893 ac_cv_c_visibility_hidden=no
896 AS_IF([test "${ac_cv_c_visibility_hidden}" = "no"], [VLC_RESTORE_FLAGS])
901 dnl Enable/disable optimizations
903 AC_ARG_ENABLE(optimizations,
904 [AS_HELP_STRING([--disable-optimizations],
905 [disable compiler optimizations (default enabled)])],,
906 [enable_optimizations="yes"])
908 dnl Check for various optimization flags
909 AS_IF([test "${enable_optimizations}" != "no"], [
911 dnl -O4 and -O3 only in production builds
912 AS_IF([test "{enable_debug}" = "no"], [
914 CFLAGS="${CFLAGS} -O4"
915 CXXFLAGS="${CXXFLAGS} -O4"
916 OBJCFLAGS="${OBJCFLAGS} -O4"
917 AC_CACHE_CHECK([if $CC accepts -O4], [ac_cv_c_o4], [
918 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
924 AS_IF([test "${ac_cv_c_o4}" = "no"], [
926 CFLAGS="${CFLAGS} -O3"
927 CXXFLAGS="${CXXFLAGS} -O3"
928 OBJCFLAGS="${OBJCFLAGS} -O3"
929 AC_CACHE_CHECK([if $CC accepts -O3], [ac_cv_c_o3], [
930 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
936 AS_IF([test "${ac_cv_c_o3}" = "no"], [VLC_RESTORE_FLAGS])
940 dnl Check for -ffast-math
942 CFLAGS="${CFLAGS} -ffast-math"
943 CXXFLAGS="${CXXFLAGS} -ffast-math"
944 OBJCFLAGS="${OBJCFLAGS} -ffast-math"
945 AC_CACHE_CHECK([if $CC accepts -ffast-math], [ac_cv_c_fast_math], [
946 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
947 ac_cv_c_fast_math=yes
952 AS_IF([test "${ac_cv_c_fast_math}" = "no"], [VLC_RESTORE_FLAGS])
954 dnl Check for -funroll-loops
956 CFLAGS="${CFLAGS} -funroll-loops"
957 CXXFLAGS="${CXXFLAGS} -funroll-loops"
958 OBJCFLAGS="${OBJCFLAGS} -funroll-loops"
959 AC_CACHE_CHECK([if $CC accepts -funroll-loops], [ac_cv_c_unroll_loops], [
960 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
961 ac_cv_c_unroll_loops=yes
963 ac_cv_c_unroll_loops=no
966 AS_IF([test "${ac_cv_c_unroll_loops}" = "no"], [VLC_RESTORE_FLAGS])
968 AS_IF([test "$enable_debug" = "no"], [
969 dnl Check for -fomit-frame-pointer
971 CFLAGS="${CFLAGS} -fomit-frame-pointer"
972 CXXFLAGS="${CXXFLAGS} -fomit-frame-pointer"
973 OBJCFLAGS="${OBJCFLAGS} -fomit-frame-pointer"
974 AC_CACHE_CHECK([if $CC accepts -fomit-frame-pointer],
975 [ac_cv_c_omit_frame_pointer], [
976 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
977 ac_cv_c_omit_frame_pointer=yes
979 ac_cv_c_omit_frame_pointer=no
982 AS_IF([test "${ac_cv_c_omit_frame_pointer}" = "no"], [VLC_RESTORE_FLAGS])
986 dnl Check for Darwin plugin linking flags
987 AS_IF([test "${SYS}" = "darwin"], [
989 CFLAGS="${CFLAGS} -bundle -undefined error"
990 AC_CACHE_CHECK([if $CC accepts -bundle -undefined error],
992 AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
998 AS_IF([test "${ac_cv_ld_darwin}" != "no"], [
999 VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
1004 dnl Checks for __attribute__(aligned()) directive
1006 CFLAGS="${CFLAGS} -Werror"
1007 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1008 [ac_cv_c_attribute_aligned],
1009 [ac_cv_c_attribute_aligned=0
1010 for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1012 [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1013 [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1016 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1017 AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1018 [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1021 dnl Check for __attribute__((packed))
1022 AC_CACHE_CHECK([for __attribute__((packed))],
1023 [ac_cv_c_attribute_packed],
1024 [ac_cv_c_attribute_packed=no
1025 AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b; (void)b;],
1026 [ac_cv_c_attribute_packed=yes])])
1027 if test "${ac_cv_c_attribute_packed}" != "no"; then
1028 AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1034 case "${host_cpu}" in
1043 dnl Check for backtrace() support
1044 AC_CHECK_HEADERS(execinfo.h)
1045 AC_CHECK_FUNCS(backtrace)
1050 ALIASES="${ALIASES} cvlc rvlc"
1053 dnl Some plugins aren't useful on some platforms
1055 if test "${SYS}" = "os2"; then
1056 VLC_ADD_PLUGIN([dynamicoverlay])
1057 elif test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1058 VLC_ADD_PLUGIN([dynamicoverlay access_shm])
1059 elif test "${SYS}" != "mingwce"; then
1060 VLC_ADD_PLUGIN([access_smb dmo globalhotkeys])
1061 VLC_ADD_LIBS([dmo],[-lole32 -luuid])
1063 if test "${SYS}" = "darwin"; then
1064 VLC_ADD_LIBS([quartztext],[-Wl,-framework,ApplicationServices])
1068 dnl Accelerated modules
1071 dnl Check for fully working MMX intrinsics
1072 dnl We need support for -mmmx, we need <mmintrin.h>, and we also need a
1073 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1075 [AS_HELP_STRING([--disable-mmx],
1076 [disable MMX optimizations (default auto)])],,[
1077 case "${host_cpu}" in
1088 AS_IF([test "${enable_mmx}" != "no"], [
1091 CFLAGS="${CFLAGS} -O -mmmx"
1092 AC_CACHE_CHECK([if $CC groks MMX intrinsics], [ac_cv_c_mmx_intrinsics], [
1093 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1094 [#include <mmintrin.h>
1096 uint64_t frobzor;]], [
1098 a = b = c = (__m64)frobzor;
1099 a = _mm_slli_pi16(a, 3);
1100 a = _mm_adds_pi16(a, b);
1101 c = _mm_srli_pi16(c, 8);
1102 c = _mm_slli_pi16(c, 3);
1103 b = _mm_adds_pi16(b, c);
1104 a = _mm_unpacklo_pi8(a, b);
1105 frobzor = (uint64_t)a;]])], [
1106 ac_cv_c_mmx_intrinsics=yes
1108 ac_cv_c_mmx_intrinsics=no
1112 AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1113 AC_DEFINE(HAVE_MMX_INTRINSICS, 1, [Define to 1 if MMX intrinsics are available.])
1117 CFLAGS="${CFLAGS} -mmmx"
1118 AC_CACHE_CHECK([if $CC groks MMX inline assembly], [ac_cv_mmx_inline], [
1119 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1121 asm volatile("packuswb %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1124 ac_cv_mmx_inline=yes
1129 AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1130 AC_DEFINE(CAN_COMPILE_MMX, 1, [Define to 1 inline MMX assembly is available.])
1134 AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1135 [ac_cv_mmxext_inline], [
1136 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1138 asm volatile("maskmovq %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1141 ac_cv_mmxext_inline=yes
1143 ac_cv_mmxext_inline=no
1147 AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1148 AC_DEFINE(CAN_COMPILE_MMXEXT, 1, [Define to 1 if MMX EXT inline assembly is available.])
1152 AM_CONDITIONAL([HAVE_MMX], [test "${have_mmx}" = "yes"])
1153 AM_CONDITIONAL([HAVE_MMXEXT], [test "${have_mmxext}" = "yes"])
1155 dnl Check for fully workin SSE2 intrinsics
1156 dnl We need support for -mmmx, we need <emmintrin.h>, and we also need a
1157 dnl working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1159 [AS_HELP_STRING([--disable-sse],
1160 [disable SSE (1-4) optimizations (default auto)])],, [
1161 case "${host_cpu}" in
1171 AS_IF([test "${enable_sse}" != "no"], [
1172 ARCH="${ARCH} sse sse2"
1175 CFLAGS="${CFLAGS} -O -msse2"
1176 AC_CACHE_CHECK([if $CC groks SSE2 intrinsics], [ac_cv_c_sse2_intrinsics], [
1177 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1178 [#include <emmintrin.h>
1180 uint64_t frobzor;]], [
1182 a = b = c = _mm_set1_epi64((__m64)frobzor);
1183 a = _mm_slli_epi16(a, 3);
1184 a = _mm_adds_epi16(a, b);
1185 c = _mm_srli_epi16(c, 8);
1186 c = _mm_slli_epi16(c, 3);
1187 b = _mm_adds_epi16(b, c);
1188 a = _mm_unpacklo_epi8(a, b);
1189 frobzor = (uint64_t)_mm_movepi64_pi64(a);]])], [
1190 ac_cv_c_sse2_intrinsics=yes
1192 ac_cv_c_sse2_intrinsics=no
1196 AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1197 AC_DEFINE(HAVE_SSE2_INTRINSICS, 1, [Define to 1 if SSE2 intrinsics are available.])
1201 CFLAGS="${CFLAGS} -msse"
1202 AC_CACHE_CHECK([if $CC groks SSE inline assembly], [ac_cv_sse_inline], [
1203 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1205 asm volatile("xorps %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1208 ac_cv_sse_inline=yes
1214 AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1215 AC_DEFINE(CAN_COMPILE_SSE, 1, [Define to 1 if SSE inline assembly is available.])
1218 AC_CACHE_CHECK([if $CC groks SSE2 inline assembly], [ac_cv_sse2_inline], [
1219 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1221 asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p):"xmm1", "xmm2");
1224 ac_cv_sse2_inline=yes
1226 ac_cv_sse2_inline=no
1229 AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1230 AC_DEFINE(CAN_COMPILE_SSE2, 1, [Define to 1 if SSE2 inline assembly is available.])
1235 AC_CACHE_CHECK([if $CC groks SSE3 inline assembly], [ac_cv_sse3_inline], [
1236 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1238 asm volatile("movsldup %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1241 ac_cv_sse3_inline=yes
1243 ac_cv_sse3_inline=no
1247 AS_IF([test "${ac_cv_sse3_inline}" != "no"], [
1248 AC_DEFINE(CAN_COMPILE_SSE3, 1, [Define to 1 if SSE3 inline assembly is available.]) ])
1250 AC_CACHE_CHECK([if $CC groks SSSE3 inline assembly], [ac_cv_ssse3_inline], [
1251 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1253 asm volatile("pabsw %%xmm0,%%xmm0"::"r"(p):"xmm0");
1256 ac_cv_ssse3_inline=yes
1258 ac_cv_ssse3_inline=no
1262 AS_IF([test "${ac_cv_ssse3_inline}" != "no"], [
1263 AC_DEFINE(CAN_COMPILE_SSSE3, 1, [Define to 1 if SSSE3 inline assembly is available.]) ])
1266 AC_CACHE_CHECK([if $CC groks SSE4.1 inline assembly],
1267 [ac_cv_sse4_1_inline], [
1268 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1270 asm volatile("pmaxsb %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1273 ac_cv_sse4_1_inline=yes
1275 ac_cv_sse4_1_inline=no
1279 AS_IF([test "${ac_cv_sse4_1_inline}" != "no"], [
1280 AC_DEFINE(CAN_COMPILE_SSE4_1, 1, [Define to 1 if SSE4_1 inline assembly is available.]) ])
1283 AC_CACHE_CHECK([if $CC groks SSE4.2 inline assembly],
1284 [ac_cv_sse4_2_inline], [
1285 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1287 asm volatile("pcmpgtq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1290 ac_cv_sse4_2_inline=yes
1292 ac_cv_sse4_2_inline=no
1296 AS_IF([test "${ac_cv_sse4_2_inline}" != "no"], [
1297 AC_DEFINE(CAN_COMPILE_SSE4_2, 1, [Define to 1 if SSE4_2 inline assembly is available.]) ])
1300 AC_CACHE_CHECK([if $CC groks SSE4A inline assembly], [ac_cv_sse4a_inline], [
1301 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1303 asm volatile("insertq %%xmm1,%%xmm0"::"r"(p):"xmm0", "xmm1");
1306 ac_cv_sse4a_inline=yes
1308 ac_cv_sse4a_inline=no
1312 AS_IF([test "${ac_cv_sse4a_inline}" != "no"], [
1313 AC_DEFINE(CAN_COMPILE_SSE4A, 1, [Define to 1 if SSE4A inline assembly is available.]) ])
1315 AM_CONDITIONAL([HAVE_SSE2], [test "$have_sse2" = "yes"])
1318 CFLAGS="${CFLAGS} -mmmx"
1320 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly], [ac_cv_3dnow_inline], [
1321 AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[
1323 asm volatile("pfadd %%mm1,%%mm2"::"r"(p):"mm1", "mm2");
1326 ac_cv_3dnow_inline=yes
1328 ac_cv_3dnow_inline=no
1332 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1333 AC_DEFINE(CAN_COMPILE_3DNOW, 1,
1334 [Define to 1 if 3D Now! inline assembly is available.])
1337 AM_CONDITIONAL([HAVE_3DNOW], [test "$have_3dnow" = "yes"])
1341 [AS_HELP_STRING([--disable-neon],
1342 [disable NEON optimizations (default auto)])],, [
1343 AS_IF([test "${host_cpu}" = "arm"], [enable_neon="yes"] ,[enable_neon="no"])
1345 AS_IF([test "${enable_neon}" != "no"], [
1347 CFLAGS="${CFLAGS} -mfpu=neon"
1348 AC_CACHE_CHECK([if $CC groks NEON inline assembly], [ac_cv_neon_inline], [
1351 asm volatile("vqmovun.s64 d0, q1":::"d0");
1352 asm volatile("ssat r0, #1, r0":::"r0"); /* assume ARMv6 */
1355 ac_cv_neon_inline="-mfpu=neon"
1357 ac_cv_neon_inline="no"
1361 AS_IF([test "$ac_cv_neon_inline" != "no"], [
1362 NEON_CFLAGS="$ac_cv_neon_inline"
1363 AC_DEFINE([CAN_COMPILE_NEON], 1, [Define to 1 if NEON (and ARMv6) assembly is available with NEON_CFLAGS.])
1366 ac_cv_neon_inline="no"
1368 AC_SUBST(NEON_CFLAGS)
1369 AM_CONDITIONAL(HAVE_NEON, [test "${ac_cv_neon_inline}" != "no"])
1372 AC_ARG_ENABLE(altivec,
1373 [AS_HELP_STRING([--disable-altivec],
1374 [disable AltiVec optimizations (default auto)])],, [
1375 AS_IF([test "${host_cpu}" = "powerpc"],
1376 [enable_altivec=yes], [enable_altivec=no])
1379 AS_IF([test "${enable_altivec}" = "yes"], [
1380 ARCH="${ARCH} altivec";
1382 AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1383 [ac_cv_altivec_inline],
1384 [AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1385 ac_cv_altivec_inline="yes",
1386 [CFLAGS="${CFLAGS} -Wa,-m7400"
1387 AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1388 [ac_cv_altivec_inline="-Wa,-m7400"],
1389 ac_cv_altivec_inline=no)
1392 AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1393 AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1394 [Define to 1 if AltiVec inline assembly is available.])
1395 AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1396 VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1397 VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1398 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_altivec_inline}])
1403 dnl The AltiVec C extensions
1405 dnl There are several possible cases:
1406 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1407 dnl need <altivec.h>
1408 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1409 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1410 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1411 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1412 dnl - Others: test should fail
1414 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1416 [# OS X/PPC test (gcc 4.x)
1417 CFLAGS="${CFLAGS} -mpim-altivec -force_cpusubtype_ALL"
1418 AC_TRY_COMPILE([vector unsigned char foo;],
1419 [vec_ld(0, (unsigned char *)0);],
1420 [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1421 [# OS X/PPC test (gcc 3.x)
1422 CFLAGS="${CFLAGS} -faltivec"
1423 AC_TRY_COMPILE([vector unsigned char foo;],
1424 [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1425 [ac_cv_c_altivec="-faltivec"],
1426 dnl Below this are the Linux tests
1427 [# Linux/PPC test (gcc 4.x)
1428 CFLAGS="${CFLAGS} -maltivec"
1429 AC_TRY_COMPILE([#include <altivec.h>],
1430 [vec_ld(0, (unsigned char *)0);],
1431 [ac_cv_c_altivec="-maltivec"],
1432 [# Linux/PPC test (gcc 3.3)
1433 CFLAGS="${CFLAGS} -maltivec -mabi=altivec"
1434 AC_TRY_COMPILE([#include <altivec.h>],
1435 [vec_ld(0, (unsigned char *)0);],
1437 ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1438 [# Linux/PPC test (gcc 3.3)
1439 CFLAGS="${CFLAGS} -fvec"
1440 AC_TRY_COMPILE([#include <altivec.h>],
1441 [vec_ld(0, (unsigned char *)0);],
1442 [ac_cv_c_altivec="-fvec"],
1443 [ac_cv_c_altivec=no])
1451 AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1452 CPPFLAGS="${CPPFLAGS} ${ac_cv_c_altivec}"
1453 AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, [Define to 1 if C AltiVec extensions are available.])
1454 VLC_ADD_CFLAGS([libvlccore],[${ac_cv_c_altivec}])
1455 VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1458 AC_CHECK_HEADERS(altivec.h)
1461 LDFLAGS="${LDFLAGS} -Wl,-framework,vecLib"
1462 AC_CACHE_CHECK([if linker needs -framework vecLib],
1464 [AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)])
1466 AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1467 VLC_ADD_LIBS([libvlccore memcpyaltivec],[-Wl,-framework,vecLib])
1470 AM_CONDITIONAL([HAVE_ALTIVEC], [test "$have_altivec" = "yes"])
1473 dnl Special arch tuning
1476 [AS_HELP_STRING([--with-tuning=ARCH],
1477 [tune compilation for an architecture (default varies)])])
1478 if test -n "${with_tuning}"; then
1479 if test "${with_tuning}" != "no"; then
1480 CFLAGS_TUNING="-mtune=${with_tuning}"
1483 if test "${SYS}" = "darwin" -a "${host_cpu}" = "i686"; then
1484 CFLAGS_TUNING="-march=prescott -mtune=generic"
1485 elif test "${SYS}" = "darwin" -a "${host_cpu}" = "x86_64"; then
1486 CFLAGS_TUNING="-march=core2 -mtune=core2"
1487 elif test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "i386"; then
1488 CFLAGS_TUNING="-mtune=pentium2"
1489 elif test "${host_cpu}" = "x86_64"; then
1490 CFLAGS_TUNING="-mtune=athlon64"
1491 elif test "${host_cpu}" = "powerpc"; then
1492 CFLAGS_TUNING="-mtune=G4";
1496 dnl NOTE: this can't be cached cleanly
1497 AS_IF([test -n "${CFLAGS_TUNING}"], [
1499 CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1500 AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1501 AC_COMPILE_IFELSE([AC_LANG_SOURCE([])], [
1502 AC_MSG_RESULT([yes])
1506 AS_IF([test "${with_tuning}"], [AC_MSG_ERROR([requested tuning not supported])])
1513 AC_ARG_ENABLE(optimize-memory,
1514 [AS_HELP_STRING([--enable-optimize-memory],
1515 [optimize memory usage over performance])])
1516 if test "${enable_optimize_memory}" = "yes"; then
1517 AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1521 dnl Allow running as root (useful for people running on embedded platforms)
1523 AC_ARG_ENABLE(run-as-root,
1524 [AS_HELP_STRING([--enable-run-as-root],
1525 [allow running VLC as root (default disabled)])])
1526 AS_IF([test "${enable_run_as_root}" = "yes"],[
1527 AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1528 [Define to 1 to allow running VLC as root (uid 0).])
1535 [AS_HELP_STRING([--disable-sout],
1536 [disable streaming output (default enabled)])])
1537 AS_IF([test "${enable_sout}" != "no"], [
1538 AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1540 AM_CONDITIONAL(ENABLE_SOUT, [test "${enable_sout}" != "no"])
1544 [AS_HELP_STRING([--disable-lua],
1545 [disable LUA scripting support (default enabled)])])
1546 if test "${enable_lua}" != "no"
1548 PKG_CHECK_MODULES(LUA, lua5.1,
1551 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying lua >= 5.1 instead])
1552 PKG_CHECK_MODULES(LUA, lua >= 5.1,
1555 AC_MSG_WARN([${LUA_PKG_ERRORS}, trying manual detection instead])
1557 AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1560 AC_CHECK_LIB( lua5.1 , luaL_newstate,
1561 [LUA_LIBS="-llua5.1"],
1562 AC_CHECK_LIB( lua51 , luaL_newstate,
1563 [LUA_LIBS="-llua51"],
1564 AC_CHECK_LIB( lua , luaL_newstate,
1572 if test "x${have_lua}" = "xyes" ; then
1573 VLC_ADD_LIBS([lua],[$LUA_LIBS])
1574 VLC_ADD_CFLAGS([lua],[$LUA_CFLAGS])
1576 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.])
1578 AC_ARG_VAR([LUAC], [LUA byte compiler])
1579 AC_PATH_PROGS(LUAC,[${LUAC} luac], [false])
1580 AS_IF([test "${LUAC}" = "false"], [
1581 AC_MSG_ERROR([Could not find the LUA byte compiler.])
1584 AM_CONDITIONAL(BUILD_LUA, [test "${have_lua}" = "yes"])
1590 AC_ARG_ENABLE(httpd,
1591 [AS_HELP_STRING([--disable-httpd],
1592 [disable the built-in HTTP server (default enabled)])])
1593 if test "${enable_httpd}" != "no"
1595 AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP daemon support)
1597 AM_CONDITIONAL(BUILD_HTTPD, [test "${enable_httpd}" != "no"])
1601 dnl VideoLAN manager
1604 [AS_HELP_STRING([--disable-vlm],
1605 [disable the stream manager (default enabled)])],,
1606 [enable_vlm="${enable_sout}"])
1607 AS_IF([test "${enable_vlm}" != "no"], [
1608 AS_IF([test "${enable_sout}" = "no"], [
1609 AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1611 AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1613 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1620 EXTEND_HELP_STRING([Input plugins:])
1623 dnl libproxy support
1625 AC_ARG_ENABLE(libproxy,
1626 [AS_HELP_STRING([--enable-libproxy],[support libproxy (default auto)])])
1627 AS_IF([test "${enable_libproxy}" != "no"], [
1628 PKG_CHECK_MODULES(LIBPROXY, libproxy-1.0, [
1629 AC_DEFINE(HAVE_LIBPROXY, 1, [Define if libproxy is available])
1630 VLC_ADD_CFLAGS([access_http],[$LIBPROXY_CFLAGS])
1631 VLC_ADD_LIBS([access_http],[$LIBPROXY_LIBS])
1633 AS_IF([test -n "${enable_libproxy}"], [
1634 AC_MSG_ERROR([${LIBPROXY_PKG_ERRORS}.])
1642 AC_ARG_ENABLE(live555,
1643 [AS_HELP_STRING([--enable-live555],
1644 [enable RTSP input through live555 (default enabled)])])
1645 AS_IF([test "${enable_live555}" != "no" -a -n "${CXX}"], [
1648 AS_IF([test -z "${CONTRIB_DIR}"], [
1649 CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1651 CPPFLAGS_live555="-I${CONTRIB_DIR}/include/liveMedia -I${CONTRIB_DIR}/include/groupsock -I${CONTRIB_DIR}/include/BasicUsageEnvironment -I${CONTRIB_DIR}/include/UsageEnvironment"
1653 AS_IF([test "${SYS}" = "solaris"], [
1654 CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1656 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1658 AC_CACHE_CHECK([for live555 version 1275091200 or later], [ac_cv_live555], [
1659 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
1660 [#include <liveMedia_version.hh>
1661 #if !defined (LIVEMEDIA_LIBRARY_VERSION_INT) || (LIVEMEDIA_LIBRARY_VERSION_INT < 1275091200)
1670 AS_IF([test "$ac_cv_live555" = "no"], [
1671 AC_MSG_WARN([liveMedia is missing or its installed version is too old:
1672 Version 2010.05.29 or later is required to proceed.
1673 You can get an updated one from http://www.live555.com/liveMedia .])
1674 AS_IF([test -n "${enable_live555}"], [
1675 AC_MSG_ERROR([Update live555 or pass --disable-live555 to disable RTSP input support.])
1677 ac_cv_live555_usable=""
1679 dnl Check that live555 is patched correctly.
1680 AC_CACHE_CHECK([for live555 usability], [ac_cv_live555_usable], [
1681 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
1682 [#include <locale.h>
1684 # include <xlocale.h>
1689 #include <Locale.hh>
1691 #include <GroupsockHelper.hh>]], [
1692 [struct in_addr addr;
1693 our_inet_ntoa(addr, NULL);]])
1695 ac_cv_live555_usable="yes"
1697 ac_cv_live555_usable="no"
1700 AS_IF([test "$ac_cv_live555_usable" = "no"], [
1701 AC_MSG_ERROR([liveMedia lacks patches and is not usable.
1702 Please apply our patches from the VLC contrib (contrib/src/live555/).
1703 You can also disable RTSP input with --disable-live555. You were warned.])
1705 other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1706 other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
1707 AS_IF([test "${SYS}" = "mingw32"], [
1708 # add ws2_32 for closesocket, select, recv
1709 other_libs="$other_libs -lws2_32"
1710 ], [test "${SYS}" = "mingwce"], [
1711 # add ws2 for closesocket, select, recv
1712 other_libs="$other_libs -lws2"
1715 dnl We need to check for pic because live555 don't provide shared libs
1716 dnl and we want to build a plugins so we need -fPIC on some arch.
1717 VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1718 AC_CHECK_LIB(liveMedia_pic, main, [
1719 VLC_ADD_PLUGIN([live555])
1720 VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
1722 AC_CHECK_LIB(liveMedia, main, [
1723 VLC_ADD_PLUGIN([live555])
1724 VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1725 ],[],[${other_libs}])],[${other_libs_pic}])
1732 dnl - special access module for dc1394 input
1733 dnl - dv module: digital video module check for libraw1394
1734 dnl - linsys modules: access module check for libzvbi
1736 PKG_ENABLE_MODULES_VLC([DC1394], [], [libraw1394 >= 2.0.1 libdc1394-2 >= 2.1.0], [dc1394 access module], [auto])
1737 PKG_ENABLE_MODULES_VLC([DV], [access_dv], [libraw1394 >= 2.0.1 libavc1394 >= 0.5.3], [DV input module], [auto])
1739 AC_ARG_ENABLE(linsys,
1740 [AS_HELP_STRING([--enable-linsys],
1741 [Linux Linear Systems Ltd. SDI and HD-SDI input cards (default enabled)])])
1742 if test "$SYS" = "linux" -a "${enable_linsys}" != "no"; then
1743 VLC_ADD_PLUGIN([linsys_hdsdi])
1744 PKG_CHECK_MODULES(LINSYS_SDI, [zvbi-0.2 >= 0.2.28],
1745 [ VLC_ADD_LIBS([linsys_sdi],[$LINSYS_SDI_LIBS])
1746 VLC_ADD_CFLAGS([linsys_sdi],[$LINSYS_SDI_CFLAGS])
1747 VLC_ADD_PLUGIN([linsys_sdi]) ],
1748 [AC_MSG_WARN([${LINSYS_SDI_PKG_ERRORS}.])]
1753 dnl dvdread module: check for libdvdread
1755 PKG_ENABLE_MODULES_VLC([DVDREAD], [], [dvdread], [dvdread input module], [auto])
1758 dnl libdvdnav plugin
1760 AC_ARG_ENABLE(dvdnav,
1761 [AS_HELP_STRING([--disable-dvdnav],
1762 [disable DVD navigation with libdvdnav (default auto)])])
1763 if test "${enable_dvdnav}" != "no"
1765 PKG_CHECK_MODULES(DVDNAV, dvdnav, [
1766 VLC_ADD_PLUGIN([dvdnav])
1767 VLC_ADD_CFLAGS([dvdnav],[${DVDNAV_CFLAGS}])
1768 VLC_ADD_LIBS([dvdnav],[${DVDNAV_LIBS}])
1769 AC_CHECK_LIB(dvdnav, dvdnav_get_video_resolution,
1770 AC_DEFINE(HAVE_DVDNAV_GET_VIDEO_RESOLUTION, 1, [Define if you have dvdnav_get_video_resolution.]),
1771 [], [${LIBS_dvdnav}])
1772 AC_CHECK_LIB(dvdnav, dvdnav_describe_title_chapters,
1773 AC_DEFINE(HAVE_DVDNAV_DESCRIBE_TITLE_CHAPTERS, 1, [Define if you have dvdnav_describe_title_chapters.]),
1774 [], [${LIBS_dvdnav}])],
1775 [AC_MSG_WARN([${DVDNAV_PKG_ERRORS}.])])
1779 dnl Windows DirectShow access module
1781 AC_ARG_ENABLE(dshow,
1782 [AS_HELP_STRING([--disable-dshow],
1783 [support DirectShow (default auto)])])
1784 if test "${enable_dshow}" != "no"
1786 if test "${SYS}" = "mingw32"
1789 AC_CHECK_HEADERS(dshow.h,
1790 [ VLC_ADD_PLUGIN([dshow])
1791 VLC_ADD_CXXFLAGS([dshow],[])
1792 VLC_ADD_LIBS([dshow],[-lole32 -loleaut32 -luuid]) ])
1798 dnl Blu-ray Disc Support with libbluray
1800 PKG_ENABLE_MODULES_VLC([BLURAY], [libbluray], [libbluray >= 0.2.1], (libbluray for Blu-ray disc support ) )
1803 dnl OpenCV wrapper and example filters
1805 PKG_ENABLE_MODULES_VLC([OPENCV], [opencv_example opencv_wrapper], [opencv], (OpenCV (computer vision) filter), [off])
1809 dnl libsmbclient plugin
1812 [AS_HELP_STRING([--disable-smb], [disable SMB/CIFS support (default auto)])])
1813 if test "${enable_smb}" != "no"; then
1814 AC_CHECK_HEADERS(libsmbclient.h,
1815 [ VLC_ADD_PLUGIN([access_smb])
1816 VLC_ADD_LIBS([access_smb],[-lsmbclient]) ],
1817 [ if test -n "${enable_smb}"; then
1818 AC_MSG_ERROR([cannot find libsmbclient headers])
1824 dnl sftp access support
1827 [AS_HELP_STRING([--enable-sftp],
1828 [support SFTP file transfer via libssh2 (default disabled)])])
1829 if test "${enable_sftp}" = "yes"; then
1830 AC_CHECK_HEADERS(libssh2.h, [
1831 VLC_ADD_PLUGIN([access_sftp])
1832 VLC_ADD_LIBS([access_sftp], [-lssh2])
1839 AC_ARG_ENABLE(libv4l2, [AS_HELP_STRING([--disable-libv4l2],
1840 [disable userspace V4L2 library (default auto)])])
1841 AC_ARG_ENABLE(pvr, [AS_HELP_STRING([--enable-pvr],
1842 [support PVR V4L2 cards (default disabled)])])
1844 AC_CHECK_HEADERS([linux/videodev2.h sys/videoio.h], [
1847 AS_IF([test "$have_v4l2" = "yes"], [
1848 AS_IF([test "${enable_libv4l2}" != "no"], [
1849 PKG_CHECK_MODULES(LIBV4L2, libv4l2, [
1850 AC_DEFINE(HAVE_LIBV4L2, 1, [Define to 1 if libv4l2 is available])
1852 AC_MSG_WARN([${LIBV4L2_PKG_ERRORS}.])
1855 AS_IF([test "${enable_pvr}" = "yes"], [
1856 VLC_ADD_PLUGIN([pvr])
1859 AM_CONDITIONAL(HAVE_V4L2, [test "${have_v4l2}" != "no"])
1862 dnl special access module for Blackmagic SDI cards
1864 AC_ARG_ENABLE(decklink,
1865 [AS_HELP_STRING([--disable-decklink],
1866 [disable Blackmagic DeckLink SDI input (default auto)])])
1867 AC_ARG_WITH(decklink_sdk,
1868 [AS_HELP_STRING[--with-decklink-sdk=DIR],
1869 [ location of Blackmagic DeckLink SDI SDK])])
1870 if test "${enable_decklink}" != "no"
1872 if test "${with_decklink_sdk}" != "no" -a -n "${with_decklink_sdk}"
1874 VLC_ADD_CPPFLAGS([decklink],[-I${with_decklink_sdk}/include])
1877 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_decklink}"
1879 AC_CHECK_HEADERS(DeckLinkAPIDispatch.cpp, [
1880 VLC_ADD_PLUGIN([decklink])
1881 ],[AC_MSG_WARN(Blackmagic DeckLink SDI include files not found, decklink disabled)])
1888 dnl gnomeVFS access module
1890 PKG_ENABLE_MODULES_VLC([GNOMEVFS], [access_gnomevfs], [gnome-vfs-2.0], [GnomeVFS access module], [auto])
1896 [AS_HELP_STRING([--enable-vcdx],
1897 [navigate VCD with libvcdinfo (default disabled)])])
1898 if test "${enable_vcdx}" = "yes"
1900 PKG_CHECK_MODULES(LIBCDIO, [libcdio >= 0.78.2 libiso9660 >= 0.72],
1901 [VLC_ADD_LIBS([vcdx],[$LIBCDIO_LIBS])
1902 VLC_ADD_CFLAGS([vcdx],[$LIBCDIO_CFLAGS])],
1903 [AC_MSG_ERROR([${LIBCDIO_PKG_ERRORS} (required for vcdx plugin).])])
1904 PKG_CHECK_MODULES(LIBVCDINFO, libvcdinfo >= 0.7.22,
1905 [VLC_ADD_LIBS([vcdx],[$LIBVCDINFO_LIBS])
1906 VLC_ADD_CFLAGS([vcdx],[$LIBVCDINFO_CFLAGS])],
1907 [AC_MSG_ERROR([${LIBVCDINFO_PKG_ERRORS} (required for vcdx plugin).])])
1908 VLC_ADD_PLUGIN([vcdx])
1912 dnl Built-in CD-DA and VCD module
1915 [AS_HELP_STRING([--disable-vcd],
1916 [disable built-in VCD and CD-DA support (default enabled)])])
1918 AC_ARG_ENABLE(libcddb,
1919 [AS_HELP_STRING([--disable-libcddb],
1920 [disable CDDB for Audio CD (default enabled)])])
1922 if test "${enable_vcd}" != "no"
1924 AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
1925 AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
1927 VLC_ADD_PLUGIN([vcd cdda])
1932 AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
1933 AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
1935 VLC_ADD_PLUGIN([vcd cdda])
1936 AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
1941 AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
1942 AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
1944 VLC_ADD_PLUGIN([vcd cdda])
1945 AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
1950 if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32" -o "${SYS}" = "os2"
1952 VLC_ADD_PLUGIN([vcd cdda])
1955 if test "${SYS}" = "darwin"
1957 VLC_ADD_PLUGIN([vcd cdda])
1958 VLC_ADD_LIBS([vcd vcdx cdda],[-Wl,-framework,IOKit,-framework,CoreFoundation])
1959 VLC_ADD_LIBS([vcdx cdda],[-liconv])
1962 if test "$enable_libcddb" != "no"; then
1963 PKG_CHECK_MODULES(LIBCDDB, [libcddb >= 0.9.5], [
1965 AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
1966 VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
1967 VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
1969 [AC_MSG_WARN([${LIBCDDB_PKG_ERRORS}: CDDB access disabled.])
1977 AC_CACHE_CHECK([for Linux DVB version 5], [ac_cv_linux_s2api], [
1978 AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
1979 [#include <linux/dvb/version.h>
1980 #if (DVB_API_VERSION < 5)
1983 ac_cv_linux_s2api=yes
1985 ac_cv_linux_s2api=no
1987 AM_CONDITIONAL([HAVE_LINUX_DVB], [test "$ac_cv_linux_s2api" = "yes"])
1990 dnl Screen capture module
1992 AC_ARG_ENABLE(screen,
1993 [AS_HELP_STRING([--enable-screen],
1994 [disable screen capture (default enabled)])])
1995 if test "${enable_screen}" != "no"; then
1996 if test "${SYS}" = "darwin"; then
1997 AC_CHECK_HEADERS(OpenGL/gl.h, [
1998 AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
1999 VLC_ADD_PLUGIN([screen])
2000 VLC_ADD_LIBS([screen],[-Wl,-framework,OpenGL,-framework,ApplicationServices])
2003 elif test "${SYS}" = "mingw32"; then
2004 VLC_ADD_PLUGIN([screen])
2005 VLC_ADD_LIBS([screen],[-lgdi32])
2010 dnl Real RTSP plugin
2012 AC_ARG_ENABLE(realrtsp,
2013 [ --enable-realrtsp Real RTSP module (default disabled)])
2014 if test "${enable_realrtsp}" = "yes"; then
2015 VLC_ADD_PLUGIN([access_realrtsp])
2020 AC_ARG_ENABLE(macosx-eyetv,
2021 [ --enable-macosx-eyetv Mac OS X EyeTV (TNT Tuner) module (default enabled on Mac OS X)])
2022 if test "x${enable_macosx_eyetv}" != "xno" &&
2023 (test "${SYS}" = "darwin" || test "${enable_macosx_eyetv}" = "yes")
2025 VLC_ADD_LIBS([access_eyetv], [-Wl,-framework,Foundation])
2026 VLC_ADD_PLUGIN([access_eyetv])
2031 AC_ARG_ENABLE(macosx-qtkit,
2032 [ --enable-macosx-qtkit Mac OS X qtcapture (video) and qtsound (audio) module (default enabled on Mac OS X)])
2033 if test "x${enable_macosx_qtkit}" != "xno" &&
2034 (test "${SYS}" = "darwin" || test "${enable_macosx_qtkit}" = "yes")
2036 VLC_ADD_PLUGIN([qtcapture])
2037 VLC_ADD_PLUGIN([qtsound])
2039 AM_CONDITIONAL(HAVE_QTKIT, [test "${SYS}" = "darwin" -a "x${enable_macosx_qtkit}" != "xno"])
2046 EXTEND_HELP_STRING([Mux/Demux plugins:])
2049 dnl libdvbpsi check for ts mux/demux
2052 PKG_WITH_MODULES([DVBPSI], [libdvbpsi], [have_dvbpsi="yes"])
2053 AM_CONDITIONAL(HAVE_DVBPSI, [test "${have_dvbpsi}" = "yes"])
2057 dnl GME demux plugin
2060 [AS_HELP_STRING([--enable-gme],
2061 [use Game Music Emu (default auto)])])
2062 AS_IF([test "${enable_gme}" != "no"], [
2063 AC_CHECK_HEADER([gme/gme.h], [
2064 VLC_ADD_LIBS([gme], [-lgme])
2065 VLC_ADD_PLUGIN([gme])
2067 AS_IF([test "x${enable_gme}" != "x"], [
2068 AC_MSG_ERROR([GME cannot be found. Please install the development files.])
2078 [AS_HELP_STRING([--enable-sid],[C64 sid demux support (default auto)])])
2079 AS_IF([test "${enable_sid}" != "no"], [
2080 PKG_CHECK_MODULES(SID, [libsidplay2], [
2082 oldCPPFLAGS="$CPPFLAGS"
2083 CPPFLAGS="$CPPFLAGS $SID_CFLAGS"
2084 AC_CHECK_HEADER([sidplay/builders/resid.h], [
2085 VLC_ADD_PLUGIN([sid])
2086 VLC_ADD_CFLAGS([sid], [$SID_CFLAGS])
2087 VLC_ADD_LIBS([sid], [$SID_LIBS] [-lresid-builder])
2089 AS_IF([test -n "${enable_sid}"],
2090 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2091 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2094 CPPFLAGS="$oldCPPFLAGS"
2097 AS_IF([test "x${enable_sid}" = "xyes"],
2098 [AC_MSG_ERROR([${SID_PKG_ERRORS} (required for sid).])],
2099 [AC_MSG_WARN([${SID_PKG_ERRORS} (required for sid).])]
2106 dnl ogg demux plugin
2108 PKG_ENABLE_MODULES_VLC([OGG], [], [ogg >= 1.0], [Ogg demux support], [auto])
2109 if test "${enable_sout}" != "no"; then
2110 PKG_ENABLE_MODULES_VLC([MUX_OGG], [], [ogg >= 1.0], [Ogg mux support], [auto])
2111 dnl Check for libshout
2112 PKG_ENABLE_MODULES_VLC([SHOUT], [access_output_shout], [shout >= 2.1], [libshout output plugin], [auto])
2116 dnl matroska demux plugin
2119 [AS_HELP_STRING([--disable-mkv],
2120 [do not use libmatroska (default auto)])])
2121 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2123 AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2124 AC_MSG_CHECKING(for libebml version >= 1.0.0)
2126 [#include <ebml/EbmlVersion.h>
2127 #ifdef LIBEBML_VERSION
2128 #if LIBEBML_VERSION >= 0x010000
2132 [AC_MSG_RESULT([yes])
2133 AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2134 AC_MSG_CHECKING(for libmatroska version >= 1.0.0)
2136 [#include <matroska/KaxVersion.h>
2137 #ifdef LIBMATROSKA_VERSION
2138 #if LIBMATROSKA_VERSION >= 0x010000
2142 [AC_MSG_RESULT([yes])
2143 AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2144 VLC_ADD_CXXFLAGS([mkv],[])
2145 if test "${SYS}" = "darwin"; then
2146 VLC_ADD_CXXFLAGS([mkv],[-O1])
2148 AC_CHECK_LIB(ebml_pic, main, [
2149 VLC_ADD_PLUGIN([mkv])
2150 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2152 AC_CHECK_LIB(ebml, main, [
2153 VLC_ADD_PLUGIN([mkv])
2154 VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2159 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.])
2163 [AC_MSG_RESULT([no])
2164 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.])
2171 dnl modplug demux plugin
2174 [AS_HELP_STRING([--disable-mod],
2175 [do not use libmodplug (default auto)])])
2176 if test "${enable_mod}" != "no" ; then
2177 PKG_CHECK_MODULES(LIBMODPLUG, [libmodplug >= 0.8.4 libmodplug != 0.8.8], [
2178 VLC_ADD_PLUGIN([mod])
2179 VLC_ADD_CXXFLAGS([mod],[$LIBMODPLUG_CFLAGS])
2180 VLC_ADD_LIBS([mod],[$LIBMODPLUG_LIBS])
2182 AS_IF([test -n "${enable_mod}"],
2183 [AC_MSG_ERROR([${LIBMODPLUG_PKG_ERRORS}.])],
2184 [AC_MSG_WARN([${LIBMODPLUG_PKG_ERRORS}.])])
2189 dnl mpc demux plugin
2192 [AS_HELP_STRING([--disable-mpc], [do not use libmpcdec (default auto)])])
2193 if test "${enable_mpc}" != "no"
2195 AC_CHECK_HEADERS([mpc/mpcdec.h], [
2196 VLC_ADD_PLUGIN([mpc])
2197 VLC_ADD_LIBS([mpc],[-lmpcdec])],
2198 [AC_CHECK_HEADERS([mpcdec/mpcdec.h], [
2199 VLC_ADD_PLUGIN([mpc])
2200 VLC_ADD_LIBS([mpc],[-lmpcdec])])])
2207 EXTEND_HELP_STRING([Codec plugins:])
2212 AC_ARG_ENABLE(wma-fixed,
2213 [ --enable-wma-fixed libwma-fixed module (default disabled)])
2214 if test "${enable_wma_fixed}" = "yes"
2216 VLC_ADD_PLUGIN([wma_fixed])
2220 dnl shine fixed point mp3 encoder
2222 AC_ARG_ENABLE(shine,
2223 [ --enable-shine shine mp3 encoding module (default disabled)])
2224 if test "${enable_shine}" = "yes"
2226 VLC_ADD_PLUGIN([shine])
2230 dnl openmax il codec plugin
2232 AC_ARG_ENABLE(omxil,
2233 [ --enable-omxil openmax il codec module (default disabled)])
2234 if test "${enable_omxil}" = "yes"
2236 VLC_ADD_PLUGIN([omxil])
2237 VLC_ADD_LIBS([omxil], [$LIBDL])
2241 dnl iomx codec plugin
2244 [ --enable-iomx iomx codec module (default disabled)])
2245 if test "${enable_iomx}" = "yes"
2248 CPPFLAGS="${CPPFLAGS} -I${srcdir}/modules/codec/omxil" # For the OMX headers
2250 AC_CHECK_HEADER(media/stagefright/OMXClient.h, [
2251 VLC_ADD_PLUGIN([iomx])
2252 VLC_ADD_CXXFLAGS([iomx], [-fno-exceptions -fno-rtti])
2253 VLC_ADD_LIBS([iomx], [-lstagefright -lmedia -lutils -lbinder])
2255 AC_MSG_ERROR("Could not find IOMX headers")
2262 dnl CrystalHD codec plugin
2264 AC_ARG_ENABLE(crystalhd,
2265 [ --enable-crystalhd crystalhd codec plugin (default auto)])
2266 if test "${enable_crystalhd}" != "no"; then
2267 AC_CHECK_HEADER(libcrystalhd/libcrystalhd_if.h, [
2268 VLC_ADD_PLUGIN([crystalhd])
2269 VLC_ADD_LIBS([crystalhd], [-lcrystalhd])
2271 if test "${SYS}" = "mingw32" ; then
2272 AC_CHECK_HEADERS(libcrystalhd/bc_dts_defs.h, [
2273 VLC_ADD_PLUGIN([crystalhd])
2274 AC_CHECK_HEADERS(libcrystalhd/bc_drv_if.h, [
2275 VLC_ADD_LIBS([crystalhd], [-lbcmDIL])
2278 AS_IF([test x"${enable_crystalhd}" = "xyes"],
2279 [AC_MSG_ERROR("Could not find CrystalHD development headers")],
2280 [AC_MSG_WARN("Could not find CrystalHD development headers")])
2281 ],[#define __LINUX_USER__
2282 #include <libcrystalhd/bc_dts_types.h>
2286 #include <libcrystalhd/bc_dts_types.h>
2294 [ --enable-mad libmad module (default enabled)])
2295 if test "${enable_mad}" != "no"
2298 [ --with-mad=PATH path to libmad],[],[])
2299 if test "${with_mad}" != "no" -a -n "${with_mad}"
2301 VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2302 VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2305 AC_ARG_WITH(mad-tree,
2306 [ --with-mad-tree=PATH mad tree for static linking],[],[])
2307 if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2309 real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2310 if test -z "${real_mad_tree}"
2312 dnl The given directory can't be found
2314 AC_MSG_ERROR([${with_mad_tree} directory does not exist])
2316 dnl Use a custom libmad
2317 AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2318 if test -f ${real_mad_tree}/mad.h
2321 VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2322 VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2324 LDFLAGS="${LDFLAGS} ${LIBS_mpgatofixed32}"
2325 AC_CHECK_LIB(mad, mad_bit_init, [
2326 VLC_ADD_PLUGIN([mpgatofixed32])
2327 VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2328 ],[ AC_MSG_ERROR([the specified tree has not been compiled ])
2333 AC_MSG_ERROR([the specified tree does not have mad.h])
2337 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_mpgatofixed32}"
2338 LDFLAGS="${LDFLAGS} ${LIBS_mpgatofixed32}"
2339 AC_CHECK_HEADERS(mad.h, ,
2340 [ 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.]) ])
2341 AC_CHECK_LIB(mad, mad_bit_init, [
2342 VLC_ADD_PLUGIN([mpgatofixed32])
2343 VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2344 [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2350 AC_ARG_ENABLE(merge-ffmpeg,
2351 [ --enable-merge-ffmpeg merge FFmpeg-based plugins (default disabled)],, [
2352 enable_merge_ffmpeg="no"
2354 AM_CONDITIONAL([MERGE_FFMPEG], [test "$enable_merge_ffmpeg" != "no"])
2357 LDFLAGS="${LDFLAGS} -Wl,-Bsymbolic"
2358 AC_CACHE_CHECK([if linker supports -Bsymbolic],
2359 [ac_cv_ld_bsymbolic],
2360 [AC_TRY_LINK([],,ac_cv_ld_bsymbolic=yes,ac_cv_ld_bsymbolic=no)])
2364 dnl avcodec decoder/encoder plugin
2366 AC_ARG_ENABLE(avcodec,
2367 [ --enable-avcodec libavcodec codec (default enabled)])
2368 AS_IF([test "${enable_avcodec}" != "no"], [
2369 PKG_CHECK_MODULES(AVCODEC,[libavcodec >= 52.25.0 libavutil],
2372 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2373 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2374 AC_CHECK_HEADERS(libavcodec/avcodec.h)
2375 AC_CHECK_HEADERS(libavutil/avutil.h)
2376 VLC_ADD_PLUGIN([avcodec])
2377 VLC_ADD_LIBS([avcodec],[$AVCODEC_LIBS])
2378 AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2379 VLC_ADD_LIBS([avcodec],[-Wl,-Bsymbolic])
2381 VLC_ADD_CFLAGS([avcodec],[$AVCODEC_CFLAGS])
2385 AC_MSG_ERROR([${AVCODEC_PKG_ERRORS}. Pass --disable-avcodec to ignore this error.])
2392 dnl libva needs avcodec
2394 AC_ARG_ENABLE(libva,
2395 [ --enable-libva VAAPI GPU decoding support (libVA) (default auto)])
2397 AS_IF([test "${enable_libva}" = "yes" -a "${have_avcodec}" != "yes" ], [
2398 AC_MSG_ERROR([--enable-libva and --disable-avcodec options are mutually exclusive. Use --enable-avcodec.])
2400 AS_IF([test "${enable_libva}" != "no"], [
2401 PKG_CHECK_MODULES(LIBVA, [libva libva-x11], [
2403 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2404 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2405 AC_CHECK_HEADERS(libavcodec/vaapi.h, [
2406 VLC_ADD_LIBS([avcodec],[$LIBVA_LIBS ${X_LIBS} ${X_PRE_LIBS} -lX11])
2407 VLC_ADD_CFLAGS([avcodec],[$LIBVA_CFLAGS ${X_CFLAGS}])
2408 AC_DEFINE(HAVE_AVCODEC_VAAPI, 1, [Define if avcodec has to be built with VAAPI support.])
2409 AC_MSG_NOTICE([VAAPI acceleration activated])
2411 AS_IF([test -n "${enable_libva}"], [
2412 AC_MSG_ERROR([libva is present but libavcodec/vaapi.h is missing])
2414 AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing ])
2419 AS_IF([test -n "${enable_libva}"], [
2420 AC_MSG_ERROR([${LIBVA_PKG_ERRORS}.])
2422 AC_MSG_WARN([${LIBVA_PKG_ERRORS}.])
2428 dnl dxva2 needs avcodec
2430 AC_ARG_ENABLE(dxva2,
2431 [ --enable-dxva2 DxVA2 GPU decoding support (default auto)])
2433 AS_IF([test "${enable_dxva2}" != "no"], [
2434 if test "${SYS}" = "mingw32"; then
2435 AS_IF([test "x${have_avcodec}" = "xyes"], [
2436 AC_CHECK_HEADERS(dxva2api.h,
2438 AC_CHECK_HEADERS(libavcodec/dxva2.h, [
2439 VLC_ADD_LIBS([avcodec],[-lole32 -lshlwapi -luuid])
2440 AC_DEFINE(HAVE_AVCODEC_DXVA2, 1, [Define if avcodec has to be built with DxVA2 support.])
2441 echo "DxVA2 acceleration activated"
2443 AS_IF([test "${enable_dxva2}" = "yes"],
2444 [AC_MSG_ERROR([dxva2 is present but libavcodec/dxva2.h is missing])],
2445 [AC_MSG_WARN([dxva2 is present but libavcodec/dxva2.h is missing ])])
2446 ], [#undef _WIN32_WINNT
2447 /* DXVA2 is only available in Vista and above */
2448 #define _WIN32_WINNT 0x600])
2450 AS_IF([test "${enable_dxva2}" = "yes"],
2451 [AC_MSG_ERROR([Could not find required dxva2api.h])],
2452 [AC_MSG_WARN([dxva2api.h not found])])
2455 AS_IF([test "x${enable_dxva2}" != "x"], [
2456 AC_MSG_ERROR([--enable-dxva2 and --disable-avcodec options are mutually exclusive.])
2464 dnl stream_out switcher needs libavcodec
2466 AC_ARG_ENABLE(switcher,
2467 [ --enable-switcher Stream-out switcher plugin (default disabled)])
2468 AS_IF([test "${enable_switcher}" = "yes"], [
2469 AS_IF([test "x${have_avcodec}" = "xyes"], [
2470 VLC_ADD_PLUGIN([stream_out_switcher])
2471 VLC_ADD_LIBS([stream_out_switcher],[$AVCODEC_LIBS $AVUTIL_LIBS])
2472 VLC_ADD_CFLAGS([stream_out_switcher],[$AVCODEC_CFLAGS $AVUTIL_CFLAGS])
2473 ],[AC_MSG_ERROR([Stream_out switcher depends on avcodec])
2479 dnl avformat demuxer/muxer plugin
2482 AC_ARG_ENABLE(avformat,
2483 [ --enable-avformat libavformat containers (default enabled)],, [
2484 enable_avformat="${have_avcodec}"
2486 if test "${enable_avformat}" != "no"
2488 PKG_CHECK_MODULES(AVFORMAT,[libavformat > 52.30.0 libavcodec libavutil],
2491 CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2492 CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2493 AC_CHECK_HEADERS(libavformat/avformat.h libavformat/avio.h)
2494 AC_CHECK_HEADERS(libavutil/avutil.h)
2495 AS_IF([test "$enable_merge_ffmpeg" = "no"], [
2496 VLC_ADD_PLUGIN([avformat access_avio])
2497 VLC_ADD_LIBS([avformat access_avio],[$AVFORMAT_LIBS $AVUTIL_LIBS])
2498 VLC_ADD_CFLAGS([avformat access_avio],[$AVFORMAT_CFLAGS $AVUTIL_CFLAGS])
2499 AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2500 VLC_ADD_LIBS([avformat access_avio],[-Wl,-Bsymbolic])
2503 VLC_ADD_LIBS([avcodec],[$AVFORMAT_LIBS $AVUTIL_LIBS])
2504 VLC_ADD_CFLAGS([avcodec],[$AVFORMAT_CFLAGS $AVUTIL_CFLAGS])
2508 AC_MSG_ERROR([${AVFORMAT_PKG_ERRORS}. Pass --disable-avformat to ignore this error.])
2513 dnl swscale image scaling and conversion plugin
2516 AC_ARG_ENABLE(swscale,
2517 AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
2518 (default enabled)]))
2519 if test "${enable_swscale}" != "no"
2521 PKG_CHECK_MODULES(SWSCALE,[libswscale],
2524 CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
2525 CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
2526 AC_CHECK_HEADERS(libswscale/swscale.h)
2527 VLC_ADD_PLUGIN([swscale])
2528 VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
2529 VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
2530 AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2531 VLC_ADD_LIBS([swscale],[-Wl,-Bsymbolic])
2535 AC_MSG_ERROR([${SWSCALE_PKG_ERRORS}. Pass --disable-swscale to ignore this error. Proper software scaling and some video chroma conversion will be missing.])
2543 AC_ARG_ENABLE(postproc,
2544 [ --enable-postproc libpostproc image post-processing (default enabled)])
2545 if test "${enable_postproc}" != "no"
2547 PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
2550 CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
2551 CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
2552 AC_CHECK_HEADERS(postproc/postprocess.h)
2553 VLC_ADD_PLUGIN([postproc])
2554 VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS $AVUTIL_LIBS])
2555 VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS $AVUTIL_CFLAGS])
2558 AC_MSG_ERROR([${POSTPROC_PKG_ERRORS}. Pass --disable-postproc to ignore this error.])
2563 dnl faad decoder plugin
2566 [ --enable-faad faad codec (default disabled)])
2567 if test "${enable_faad}" = "yes"
2569 AC_ARG_WITH(faad-tree,
2570 [ --with-faad-tree=PATH faad tree for static linking])
2571 if test -n "${with_faad_tree}"
2573 AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
2574 real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
2575 if test -z "${real_faad_tree}"
2577 dnl The given directory can't be found
2579 AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
2581 if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
2583 dnl Use a custom faad
2584 AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
2585 VLC_ADD_PLUGIN([faad])
2586 VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
2587 VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
2589 dnl The given libfaad wasn't built
2591 AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
2595 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_faad}"
2596 LDFLAGS="${LDFLAGS} ${LIBS_faad}"
2597 AC_CHECK_HEADERS(faad.h, ,
2598 [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
2599 AC_CHECK_LIB(faad, faacDecOpen, [
2600 VLC_ADD_PLUGIN([faad])
2601 VLC_ADD_LIBS([faad],[-lfaad]) ],
2602 AC_CHECK_LIB(faad, NeAACDecOpen, [
2603 VLC_ADD_PLUGIN([faad])
2604 VLC_ADD_LIBS([faad],[-lfaad]) ],
2605 [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
2611 dnl twolame encoder plugin
2613 PKG_ENABLE_MODULES_VLC([TWOLAME], [], [twolame], [MPEG Audio Layer 2 encoder], [auto], [], [], [ -DLIBTWOLAME_STATIC])
2616 dnl QuickTime plugin
2618 AC_ARG_ENABLE(quicktime,
2619 [ --enable-quicktime QuickTime module (deprecated)])
2620 if test "${enable_quicktime}" = "yes"; then
2621 if test "${SYS}" = "mingw32"; then
2622 VLC_ADD_PLUGIN([quicktime])
2624 AC_CHECK_HEADERS(QuickTime/QuickTime.h,
2625 [ VLC_ADD_PLUGIN([quicktime])
2626 VLC_ADD_LIBS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
2627 ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
2635 [ --enable-real Real video decoder module (default disabled)])
2636 if test "${enable_real}" = "yes"; then
2637 VLC_ADD_PLUGIN([realvideo])
2641 dnl A52/AC3 decoder plugin
2644 [ --enable-a52 A/52 support with liba52 (default enabled)])
2645 if test "${enable_a52}" != "no"
2648 [ --with-a52=PATH a52 headers and libraries])
2649 AC_ARG_WITH(a52-tree,
2650 [ --with-a52-tree=PATH a52dec tree for static linking ],[],[])
2651 if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
2653 real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
2654 if test -z "${real_a52_tree}"
2656 dnl The given directory can't be found
2658 AC_MSG_ERROR([${with_a52_tree} directory does not exist])
2660 dnl Use a custom a52dec
2661 AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
2662 if test -f ${real_a52_tree}/include/a52.h
2665 VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
2666 VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
2668 LDFLAGS="${LDFLAGS} ${LIBS_a52tofloat32}"
2669 AC_CHECK_LIB(a52, a52_free, [
2670 VLC_ADD_PLUGIN([a52tofloat32])
2671 VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
2672 VLC_ADD_LIBS([a52tofloat32],[-la52])
2674 if test -f ${real_a52_tree}/liba52/.libs/liba52.a
2676 AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
2678 AC_MSG_ERROR([the specified tree has not been compiled])
2683 AC_MSG_ERROR([the specified tree does not have a52.h])
2686 if test -z "${with_a52}"
2691 LDFLAGS_test="-L${with_a52}/lib"
2692 CPPFLAGS_test="-I${with_a52}/include"
2695 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
2696 LDFLAGS="${LDFLAGS} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
2697 AC_CHECK_HEADERS(a52dec/a52.h, [
2698 AC_CHECK_LIB(a52, a52_free, [
2699 VLC_ADD_PLUGIN([a52tofloat32])
2700 VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
2701 VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
2703 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.])
2706 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.])
2712 AC_ARG_WITH(a52-fixed,
2713 [ --with-a52-fixed specify if liba52 has been compiled with fixed point support],
2715 VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
2718 dnl DTS Coherent Acoustics decoder plugin
2720 PKG_ENABLE_MODULES_VLC([DCA], [dtstofloat32], [libdca >= 0.0.5], [DTS Coherent Acoustics support with libdca], [auto])
2725 PKG_ENABLE_MODULES_VLC([FLAC], [], [flac], [libflac decoder/encoder support], [auto])
2730 PKG_ENABLE_MODULES_VLC([LIBMPEG2], [], [libmpeg2 > 0.3.2], [libmpeg2 decoder support], [auto])
2735 PKG_ENABLE_MODULES_VLC([VORBIS], [], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
2740 AC_ARG_ENABLE(tremor,
2741 [ --enable-tremor Tremor decoder support (default disabled)])
2742 if test "${enable_tremor}" = "yes"
2744 AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
2745 VLC_ADD_PLUGIN([tremor])
2746 VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
2753 PKG_ENABLE_MODULES_VLC([SPEEX], [], [ogg speex >= 1.0.5], [Speex support], [auto])
2755 AS_IF([test "${enable_speex}" != "no"], [
2756 PKG_CHECK_MODULES([SPEEXDSP], [speexdsp], [
2759 AS_IF([test -n "${enable_speex}"], [
2760 AC_MSG_ERROR([${SPEEXDSP_PKG_ERRORS}.])
2762 AC_MSG_WARN([${SPEEXDSP_PKG_ERRORS}.])
2766 AM_CONDITIONAL([HAVE_SPEEXDSP], [test "$have_speexdsp" = "yes"])
2769 dnl theora decoder plugin
2771 PKG_ENABLE_MODULES_VLC([THEORA], [], [ogg theora >= 1.0], [experimental theora codec], [auto])
2774 dnl dirac encoder plugin
2776 PKG_ENABLE_MODULES_VLC([DIRAC], [], [dirac >= 0.10.0], [dirac encoder], [auto])
2779 dnl schroedinger decoder plugin (for dirac format video)
2781 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [], [schroedinger-1.0 >= 1.0.10], [dirac decoder and encoder using schroedinger], [auto])
2784 dnl PNG decoder module
2787 [ --enable-png PNG support (default enabled)])
2788 if test "${enable_png}" != "no"; then
2789 AC_CHECK_HEADERS(png.h, [
2791 LDFLAGS="${LDFLAGS} -lz"
2792 AC_CHECK_LIB(png, png_set_rows, [
2793 VLC_ADD_LIBS([png],[-lpng -lz -lm])
2794 VLC_ADD_PLUGIN([png osdmenu osd_parser])],
2799 AM_CONDITIONAL(BUILD_OSDMENU, [test "${enable_png}" != "no"])
2802 dnl H264 encoder plugin (using libx264)
2805 [ --enable-x264 H264 encoding support with libx264 (default enabled)])
2806 if test "${enable_x264}" != "no"; then
2807 AC_ARG_WITH(x264-tree,
2808 [ --with-x264-tree=PATH x264 tree for static linking ],[],[])
2809 if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
2811 real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
2812 if test -z "${real_x264_tree}"
2814 dnl The given directory can't be found
2816 AC_MSG_ERROR([${with_x264_tree} directory does not exist])
2818 dnl Use a custom libx264
2819 AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
2820 if test -f ${real_x264_tree}/x264.h
2823 VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
2824 VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
2825 PKG_CHECK_MODULES(X264,x264, [
2826 VLC_ADD_PLUGIN([x264])
2827 VLC_ADD_LIBS([x264],[${X264_LIBS}])
2828 VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
2829 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
2830 VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
2833 AC_MSG_ERROR([the specified tree has not been compiled])
2837 AC_MSG_ERROR([the specified tree does not have x264.h])
2840 PKG_CHECK_MODULES(X264,x264 >= 0.86, [
2841 VLC_ADD_PLUGIN([x264])
2842 VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
2844 AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2845 VLC_ADD_LIBS([x264],[-Wl,-Bsymbolic])
2848 VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
2849 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
2850 VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
2853 if test "${enable_x264}" = "yes"; then
2854 AC_MSG_ERROR([${X264_PKG_ERRORS}: you may get it from http://www.videolan.org/x264.html])
2861 dnl libfluidsynth (MIDI synthetizer) plugin
2863 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [], [fluidsynth], [MIDI synthetiser with libfluidsynth], [auto])
2866 dnl Teletext Modules
2867 dnl vbi decoder plugin (using libzbvi)
2872 AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
2873 libzvbi (default enabled)]))
2875 AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
2876 zvbi) (default enabled if zvbi is absent)]))
2878 AS_IF( [test "${enable_zvbi}" != "no"],[
2879 PKG_CHECK_MODULES(ZVBI, [zvbi-0.2 >= 0.2.28],
2881 VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
2882 if test "${SYS}" = "mingw32"; then
2883 VLC_ADD_LIBS([zvbi],[ -lpthreadGC2])
2885 VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
2886 VLC_ADD_PLUGIN([zvbi])
2887 AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
2888 AS_IF( [test "${enable_telx}" = "yes"],[
2889 AC_MSG_WARN([The zvbi and telx modules are incompatible. Using zvbi.])
2892 AC_MSG_WARN([${ZVBI_PKG_ERRORS}. Enabling the telx module instead.])
2895 AS_IF( [test "${enable_telx}" != "no" ],[
2896 VLC_ADD_PLUGIN([telx])
2900 dnl libass subtitle rendering module
2902 AC_ARG_ENABLE(libass,
2903 [ --enable-libass Subtitle support using libass (default enabled)])
2904 AS_IF( [test "${enable_libass}" != "no"], [
2905 PKG_CHECK_MODULES(LIBASS, [libass >= 0.9.8],
2907 VLC_ADD_LIBS([libass],[$LIBASS_LIBS])
2908 VLC_ADD_CFLAGS([libass],[$LIBASS_CFLAGS])
2909 VLC_ADD_PLUGIN([libass])
2911 AC_CHECK_HEADERS(fontconfig/fontconfig.h,
2912 [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
2913 VLC_ADD_LIBS([libass],[-lfontconfig])
2916 AC_MSG_WARN([${LIBASS_PKG_ERRORS}.])
2921 dnl kate decoder plugin
2923 PKG_ENABLE_MODULES_VLC([KATE], [], [kate >= 0.3.0], [kate codec], [auto])
2926 dnl tiger rendering for kate decoder plugin
2928 AC_ARG_ENABLE(tiger,
2929 [ --enable-tiger Tiger rendering library for Kate streams (default auto)])
2930 AS_IF([test "${enable_tiger}" != "no"], [
2931 PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
2932 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])
2933 VLC_ADD_CFLAGS([kate],[$TIGER_CFLAGS])
2934 VLC_ADD_LIBS([kate],[$TIGER_LIBS]) ],[
2935 AS_IF([test -n "${enable_tiger}"], [
2936 AC_MSG_ERROR([${TIGER_PKG_ERRORS}.])
2946 EXTEND_HELP_STRING([Video plugins:])
2951 PKG_CHECK_MODULES([GL], [gl], [
2954 AC_CHECK_HEADER([GL/gl.h], [
2963 dnl OpenGL ES 2: depends on EGL 1.1 and is currently unfinished
2964 dnl PKG_ENABLE_MODULES_VLC([GLES2], [], [glesv2], [OpenGL ES v2 support], [auto])
2965 dnl OpenGL ES 1: depends on EGL 1.0 and is currently broken
2966 dnl PKG_ENABLE_MODULES_VLC([GLES1], [], [glesv1_cm], [OpenGL ES v1 support], [auto])
2969 [ --enable-egl OpenGL support through EGL (default disabled)],, [
2972 AS_IF([test "$enable_egl" != "no"], [
2973 PKG_CHECK_MODULES([EGL], [egl], [
2974 VLC_ADD_PLUGIN([gl])
2975 VLC_ADD_PLUGIN([egl])
2984 AC_CHECK_HEADERS(X11/Xlib.h)
2987 dnl X C Bindings modules
2990 [ --enable-xcb X11 support with XCB (default enabled)],, [
2991 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "darwin" -a "${SYS}" != "symbian"], [
2997 AC_ARG_ENABLE(xvideo,
2998 [ --enable-xvideo XVideo support (default enabled)],, [
2999 enable_xvideo="$enable_xcb"
3002 [ --enable-glx OpenGL support through GLX (default enabled)],, [
3003 enable_glx="$enable_xcb"
3007 AS_IF([test "${enable_xcb}" != "no"], [
3009 PKG_CHECK_MODULES(XCB, [xcb >= 1.6])
3011 PKG_CHECK_MODULES(XCB_SHM, [xcb-shm])
3012 PKG_CHECK_MODULES(XCB_COMPOSITE, [xcb-composite])
3014 AS_IF([test "${enable_xvideo}" != "no"], [
3015 PKG_CHECK_MODULES(XCB_XV, [xcb-xv >= 1.1.90.1], [
3016 VLC_ADD_PLUGIN([xcb_xv])
3020 PKG_CHECK_MODULES(XCB_RANDR, [xcb-randr >= 1.3], [
3021 VLC_ADD_PLUGIN([panoramix])
3022 VLC_ADD_LIBS([panoramix],[${XCB_RANDR_LIBS} ${XCB_LIBS}])
3023 VLC_ADD_CFLAGS([panoramix],[${XCB_RANDR_CFLAGS} ${XCB_CFLAGS}])
3025 AC_MSG_WARN([${XCB_RANDR_PKG_ERRORS}. Panoramix filter will not be supported.])
3029 PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms >= 0.3.4], [
3030 PKG_CHECK_MODULES(XPROTO, [xproto])
3031 VLC_ADD_PLUGIN([globalhotkeys])
3032 VLC_ADD_CFLAGS([globalhotkeys], [${XCB_KEYSYMS_CFLAGS} ${XCB_CFLAGS}])
3033 VLC_ADD_LIBS([globalhotkeys], [${XCB_KEYSYMS_LIBS} ${XCB_LIBS}])
3034 VLC_ADD_CFLAGS([xcb_window], [-DHAVE_XCB_KEYSYMS])
3036 AC_MSG_WARN([${XCB_KEYSYMS_PKG_ERRORS}. Hotkeys will not work.])
3039 AS_IF([test "${enable_glx}" != "no"], [
3040 AS_IF([test "${have_gl}" != "yes"], [
3041 AC_MSG_ERROR([${GL_PKG_ERRORS}. Pass --disable-glx if you do not need OpenGL X11 support.])
3043 PKG_CHECK_MODULES(XLIB_XCB, [x11-xcb], [
3044 VLC_ADD_PLUGIN([xcb_glx])
3046 AC_MSG_ERROR([${XLIB_XCB_PKG_ERRORS}. Pass --disable-glx if you do not need OpenGL X11 support.])
3050 AM_CONDITIONAL([HAVE_XCB], [test "${have_xcb}" = "yes"])
3056 [ --enable-sdl SDL support (default enabled)])
3057 AC_ARG_ENABLE(sdl-image,
3058 [ --enable-sdl-image SDL image support (default enabled)])
3059 if test "${enable_sdl}" != "no"
3061 PKG_CHECK_MODULES(SDL, [sdl >= 1.2.10], [
3062 # SDL on Darwin is heavily patched and can only run SDL_image
3063 if test "${SYS}" != "darwin"; then
3064 VLC_ADD_PLUGIN([vout_sdl])
3066 if test "${SYS}" != "mingw32" -a "${SYS}" != "os2"; then
3067 VLC_ADD_LIBS([vout_sdl],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3069 VLC_ADD_CFLAGS([vout_sdl],[${SDL_CFLAGS}])
3070 VLC_ADD_LIBS([vout_sdl],[${SDL_LIBS}])
3073 AS_IF([ test "${enable_sdl_image}" != "no"],[
3074 PKG_CHECK_MODULES(SDL_IMAGE, [SDL_image >= 1.2.10], [
3075 VLC_ADD_PLUGIN([sdl_image])
3076 VLC_ADD_LIBS([sdl_image],[${SDL_IMAGE_LIBS}])
3077 VLC_ADD_CFLAGS([sdl_image], [${SDL_IMAGE_CFLAGS}])],
3078 [ AC_MSG_WARN([${SDL_IMAGE_PKG_ERRORS}. You should install it alongside your SDL package.])
3082 AC_MSG_WARN([${SDL_PKG_ERRORS}.])
3089 AC_ARG_ENABLE(macosx-vout,
3090 [ --enable-macosx-vout Mac OS X video output module (default enabled on Mac OS X)])
3091 if test "x${enable_macosx_vout}" != "xno" &&
3092 (test "${SYS}" = "darwin" || test "${enable_macosx_vout}" = "yes")
3094 VLC_ADD_LIBS([vout_macosx],[-Wl,-framework,Cocoa])
3095 VLC_ADD_LIBS([vout_macosx],[-Wl,-framework,OpenGL])
3096 VLC_ADD_PLUGIN([vout_macosx])
3103 AC_ARG_ENABLE(freetype,
3104 [ --enable-freetype freetype support (default auto)])
3105 AC_ARG_ENABLE(fribidi,
3106 [ --enable-fribidi fribidi support (default auto)])
3107 AC_ARG_ENABLE(fontconfig,
3108 [ --enable-fontconfig fontconfig support (default auto)])
3110 if test "${enable_freetype}" != "no"; then
3111 PKG_CHECK_MODULES(FREETYPE, freetype2, [
3113 VLC_ADD_PLUGIN([freetype])
3114 VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
3115 if test "${SYS}" = "mingw32"; then
3116 VLC_ADD_LIBS([freetype],[-liconv -lz])
3118 VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
3120 AC_CHECK_HEADERS(Carbon/Carbon.h,
3121 [VLC_ADD_LIBS([freetype],[-Wl,-framework,Carbon])])
3123 dnl fontconfig support
3124 if test "${SYS}" != "mingw32"; then
3125 if test "${enable_fontconfig}" != "no"; then
3126 AC_CHECK_HEADERS(fontconfig/fontconfig.h, [
3127 VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
3128 VLC_ADD_LIBS([freetype],[-lfontconfig])
3129 ],[AC_MSG_WARN([library fontconfig not found. Styles will be disabled in freetype])])
3132 VLC_ADD_LIBS([freetype],[-lgdi32])
3136 if test "${enable_fribidi}" != "no"; then
3137 PKG_CHECK_MODULES(FRIBIDI, fribidi, [
3138 VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
3139 VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
3140 ],[AC_MSG_WARN([${FRIBIDI_PKG_ERRORS}. Bidirectional support will be disabled in FreeType.])])
3145 AS_IF([test -n "${enable_freetype}"],[
3146 AC_MSG_ERROR([${FREETYPE_PKG_ERRORS}. Install FreeType2 development or configure with --disable-freetype.])
3153 dnl QuartzText vout module (iOS/Mac OS)
3155 AC_ARG_ENABLE(macosx-quartztext,
3156 [ --enable-macosx-quartztext Mac OS X quartz text module (default enabled on Mac OS X)])
3157 if test "x${enable_macosx_quartztext}" != "xno" &&
3158 (test "${SYS}" = "darwin" || test "${enable_macosx_quartztext}" = "yes")
3160 VLC_ADD_PLUGIN([quartztext])
3161 VLC_ADD_LIBS([quartztext],[-Wl,-framework,ApplicationServices])
3167 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3170 dnl android surface module
3172 AC_ARG_ENABLE(android-surface,
3173 [ --enable-android-surface Android Surface video output module (default disabled)])
3174 if test "${enable_android_surface}" = "yes"; then
3175 if test "${HAVE_ANDROID}" = "1"; then
3176 VLC_ADD_PLUGIN([android_surface])
3177 VLC_ADD_LDFLAGS([android_surface], [-ldl])
3185 AC_ARG_ENABLE(ios-vout,
3186 [ --enable-ios-vout iOS video output module (default disabled)])
3187 if test "${enable_ios_vout}" = "yes"
3189 VLC_ADD_PLUGIN([vout_ios])
3190 VLC_ADD_CFLAGS([vout_ios], [-DUSE_OPENGL_ES=1])
3191 VLC_ADD_LIBS([vout_ios], [-Wl,-framework,OpenGLES,-framework,QuartzCore,-framework,UIKit,-framework,Foundation])
3195 dnl Windows DirectX module
3198 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"
3200 VLC_ADD_PLUGIN([panoramix])
3203 AC_ARG_ENABLE(directx,
3204 [ --enable-directx Win32 DirectX support (default enabled on Win32)])
3205 if test "${enable_directx}" != "no"; then
3206 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
3208 AC_CHECK_HEADERS(ddraw.h,
3209 [ VLC_ADD_PLUGIN([directx aout_directx])
3210 VLC_ADD_LIBS([directx],[-luser32 -lgdi32])
3211 ],[AC_MSG_ERROR([Cannot find DirectX headers!])]
3215 AC_CHECK_HEADERS(GL/wglew.h,
3216 [ VLC_ADD_PLUGIN([glwin32])
3217 VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
3219 #include <windows.h>
3224 AC_CHECK_HEADERS(d3d9.h,
3225 [ VLC_ADD_PLUGIN([direct3d])
3226 VLC_ADD_LIBS([direct3d],[-lgdi32])
3228 VLC_ADD_LIBS([direct3d directx glwin32],[-lole32])
3233 dnl Windows Direct2D plugin
3235 AC_ARG_ENABLE(direct2d,
3236 [ --enable-direct2d Win7/VistaPU Direct2D support (default auto on Win32)],, [
3237 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"], [
3238 enable_direct2d="no"
3241 AS_IF([test "${enable_direct2d}" != "no"], [
3242 AC_CHECK_HEADERS(d2d1.h, [
3243 VLC_ADD_PLUGIN([direct2d])
3244 VLC_ADD_LIBS([direct2d],[-lgdi32 -lole32])
3246 AC_MSG_WARN([Cannot find Direct2D headers!])
3251 dnl win32 GDI plugin
3253 AC_ARG_ENABLE(wingdi,
3254 [ --enable-wingdi Win32 GDI module (default enabled on Win32)])
3255 if test "${enable_wingdi}" != "no"; then
3256 if test "${SYS}" = "mingw32"; then
3257 VLC_ADD_PLUGIN([wingdi])
3258 VLC_ADD_LIBS([wingdi],[-lgdi32 -lole32])
3260 if test "${SYS}" = "mingwce"; then
3261 VLC_ADD_PLUGIN([wingdi wingapi])
3262 VLC_ADD_LIBS([wingdi],[-laygshell])
3263 VLC_ADD_LIBS([wingapi],[-laygshell])
3269 dnl Linux framebuffer module
3271 AC_CHECK_HEADER([linux/fb.h], [
3272 VLC_ADD_PLUGIN([fb])
3278 dnl try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
3279 dnl TODO: support for static linking
3281 AC_ARG_ENABLE(directfb,
3282 [ --enable-directfb DirectFB support (default disabled)])
3283 AC_ARG_WITH(directfb,
3284 [ --with-directfb=PATH path to DirectFB headers and libraries])
3286 if test "${enable_directfb}" = "yes"; then
3287 have_directfb="false"
3288 CPPFLAGS_mydirectfb=
3290 if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
3291 dnl Trying the given location
3294 CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
3295 LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/ -L${with_directfb}/src/.libs/"
3297 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
3298 LIBS="${LIBS} ${LIBS_new}"
3300 dnl FIXME: too obscure
3301 AC_CHECK_HEADER([directfb.h], [
3302 AC_CHECK_LIB([direct],[direct_initialize], [
3303 AC_CHECK_LIB([fusion], [fusion_enter], [
3304 AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
3305 ], have_directfb="false")
3306 ], have_directfb="false")
3307 ], have_directfb="false")
3311 if test "${have_directfb}" = "true"; then
3312 LIBS_mydirectfb="${LIBS_new} -lz $LIBDL -ldirectfb -lfusion -ldirect -lpthread"
3313 CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
3316 dnl Look for directfb-config
3317 AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
3318 if test "${DIRECTFB_CONFIG}" != "no"; then
3319 CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
3320 LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
3321 have_directfb="true"
3323 dnl Trying with pkg-config
3324 PKG_CHECK_MODULES(DIRECTFB, directfb, [
3325 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
3326 LIBS_mydirectfb="${DIRECTFB_LIBS}"
3327 have_directfb="true"
3328 ], [have_directfb="false"])
3331 if test "${have_directfb}" = "true"; then
3332 VLC_ADD_PLUGIN([directfb])
3333 VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
3334 VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
3336 AC_MSG_ERROR([${DIRECTFB_PKG_ERRORS}.])
3344 [ --enable-aa aalib output (default disabled)])
3345 if test "${enable_aa}" = "yes"
3347 AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
3348 if test "${have_aa}" = "true"
3350 VLC_ADD_PLUGIN([aa])
3351 VLC_ADD_LIBS([aa],[-laa])
3352 if test "${SYS}" != "mingw32"; then
3353 VLC_ADD_LIBS([aa],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3361 PKG_ENABLE_MODULES_VLC([CACA], [], [caca >= 0.99.beta14], [libcaca output],[auto])
3367 [AS_HELP_STRING([--enable-kva],
3368 [support the K Video Accelerator KVA (default enabled on OS/2)])],, [
3369 AS_IF([test "$SYS" = "os2"], [
3375 AS_IF([test "$enable_kva" != "no"], [
3376 AC_CHECK_HEADERS([kva.h], [
3378 AC_CHECK_LIB(kva, main, [
3384 AM_CONDITIONAL([HAVE_KVA], [test "${have_kva}" = "yes"])
3390 EXTEND_HELP_STRING([Audio plugins:])
3393 dnl Pulseaudio module
3395 AC_ARG_ENABLE(pulse,
3396 [AS_HELP_STRING([--enable-pulse],
3397 [use the PulseAudio client library (default auto)])])
3399 AS_IF([test "${enable_pulse}" != "no"], [
3400 PKG_CHECK_MODULES([PULSE], [libpulse >= 0.9.22], [
3403 PKG_CHECK_MODULES([PULSE], [libpulse >= 0.9.16], [
3404 AS_IF([test "${no_x}" != "yes"], [
3406 PULSE_LIBS="$PULSE_LIBS ${X_LIBS} ${X_PRE_LIBS} -lX11"
3408 AS_IF([test "${enable_pulse}" = "yes"], [
3409 AC_MSG_ERROR([Xlib is required with PulseAudio pre-0.9.22 versions
3410 (see http://www.pulseaudio.org/ticket/799 for further reference).])
3414 AS_IF([test "x${enable_pulse}" != "x"], [
3415 AC_MSG_ERROR([$PULSE_PKG_ERRORS. PulseAudio 0.9.22 or later required.])
3420 AM_CONDITIONAL([HAVE_PULSE], [test "${have_pulse}" = "yes"])
3426 [AS_HELP_STRING([--enable-alsa],
3427 [support the Advanced Linux Sound Architecture (default auto)])],, [
3428 AS_IF([test "$SYS" = "linux" -a "${have_pulse}" = "no"], [
3433 AS_IF([test "${enable_alsa}" != "no"], [
3434 PKG_CHECK_MODULES([ALSA], [alsa >= 1.0.16], [
3437 AS_IF([test "x${enable_alsa}" != "x"], [
3438 AC_MSG_ERROR([$ALSA_PKG_ERRORS. alsa-lib 1.0.16 or later required.])
3442 AM_CONDITIONAL([HAVE_ALSA], [test "${have_alsa}" = "yes"])
3445 dnl Open Sound System module
3448 [AS_HELP_STRING([--enable-oss],
3449 [support the Open Sound System OSS (default enabled on BSD)])],, [
3450 AS_IF([test "$SYS" = "mingw32" -o "$SYS" = "mingwce" -o "$SYS" = "linux"], [
3456 AS_IF([test "$enable_oss" != "no"], [
3457 AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
3459 AC_CHECK_LIB(ossaudio, main, [
3460 OSS_LIBS="-lossaudio"
3465 AM_CONDITIONAL([HAVE_OSS], [test "${have_oss}" = "yes"])
3468 dnl Portaudio module
3470 PKG_ENABLE_MODULES_VLC([PORTAUDIO], [], [portaudio-2.0], [Portaudio library support], [auto])
3473 dnl win32 waveOut plugin
3475 AC_ARG_ENABLE(waveout,
3476 [ --enable-waveout Win32 waveOut module (default enabled on Win32)])
3477 if test "${enable_waveout}" != "no"; then
3478 if test "${SYS}" = "mingw32"; then
3479 VLC_ADD_PLUGIN([waveout])
3480 VLC_ADD_LIBS([waveout],[-lwinmm])
3482 if test "${SYS}" = "mingwce"; then
3483 VLC_ADD_PLUGIN([waveout])
3488 dnl CoreAudio plugin
3490 AC_ARG_ENABLE(macosx-audio,
3491 [ --enable-macosx-audio Mac OS X audio module (default enabled on MacOS X)])
3492 if test "x${enable_macosx_audio}" != "xno" &&
3493 (test "${SYS}" = "darwin" || test "${enable_macosx_audio}" = "yes")
3495 AC_CHECK_HEADERS(CoreAudio/CoreAudio.h,
3496 [ VLC_ADD_PLUGIN([auhal])
3497 VLC_ADD_LIBS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
3498 ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
3502 dnl AudioQueue plugin
3504 AC_ARG_ENABLE(audioqueue,
3505 [ --enable-audioqueue AudioQueue audio module (default disabled)])
3506 if test "${enable_audioqueue}" = "yes"
3508 VLC_ADD_PLUGIN([audioqueue])
3509 VLC_ADD_LIBS([audioqueue], [-Wl,-framework,AudioToolbox,-framework,CoreFoundation])
3515 PKG_ENABLE_MODULES_VLC([JACK], [jack access_jack], [jack], [JACK audio I/O modules],[auto])
3518 dnl OpenSLES Android
3520 AC_ARG_ENABLE(opensles,
3521 [ --enable-opensles Android OpenSL ES audio module (default disabled)])
3522 if test "${HAVE_ANDROID}" = "1"; then
3523 if test "${enable_opensles}" = "yes"; then
3524 AC_CHECK_HEADERS(SLES/OpenSLES.h,
3525 [ VLC_ADD_PLUGIN([opensles_android]) ],
3526 [ AC_MSG_ERROR([cannot find OpenSLES headers])] )
3531 dnl libsamplerate plugin
3533 PKG_ENABLE_MODULES_VLC([SAMPLERATE], [], [samplerate], [Resampler with libsamplerate], [auto])
3539 [AS_HELP_STRING([--enable-kai],
3540 [support the K Audio Interface KAI (default enabled on OS/2)])],, [
3541 AS_IF([test "$SYS" = "os2"], [
3547 AS_IF([test "$enable_kai" != "no"], [
3548 AC_CHECK_HEADERS([kai.h], [
3550 AC_CHECK_LIB(kai, main, [
3556 AM_CONDITIONAL([HAVE_KAI], [test "${have_kai}" = "yes"])
3559 dnl Interface plugins
3562 EXTEND_HELP_STRING([Interface plugins:])
3567 AC_ARG_ENABLE(hildon,
3568 [ --enable-hildon Hildon touchscreen UI (default disabled)])
3569 AS_IF([test "${enable_hildon}" = "yes"], [
3570 PKG_CHECK_MODULES(HILDON, [hildon-1], [
3571 PKG_CHECK_MODULES(HILDON_FM, hildon-fm-2, [
3572 VLC_ADD_CFLAGS([hildon],[${HILDON_FM_CFLAGS} -DHAVE_HILDON_FM])
3573 VLC_ADD_LIBS([hildon],[${HILDON_FM_LIBS}])
3575 AC_MSG_WARN([${HILDON_FM_PKG_ERRORS}.])
3577 VLC_ADD_CFLAGS([hildon],[${HILDON_CFLAGS} ${X_CFLAGS}])
3578 VLC_ADD_LIBS([hildon],[${HILDON_LIBS} ${X_LIBS} ${X_PRE_LIBS} -lX11])
3579 VLC_ADD_PLUGIN([hildon])
3580 ALIASES="${ALIASES} mvlc"
3582 AS_IF([test "${enable_hildon}" = "yes"],[
3583 AC_MSG_ERROR([${HILDON_PKG_ERRORS}.])
3588 AM_CONDITIONAL(BUILD_HILDON, [test "${enable_hildon}" = "yes"])
3594 [ --enable-qt4 Qt 4 support (default enabled) ],, [
3595 AS_IF([test "${SYS}" = "darwin"], [enable_qt4=no])
3597 AS_IF([test "${enable_qt4}" != "no"], [
3598 PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.6.0], [
3599 VLC_ADD_PLUGIN([qt4])
3600 VLC_ADD_LIBS([qt4],[${QT4_LIBS}])
3601 VLC_ADD_CXXFLAGS([qt4],[${QT4_CFLAGS}])
3602 ALIASES="${ALIASES} qvlc"
3607 AC_MSG_CHECKING([whether Qt uses X11])
3608 CPPFLAGS="${CPPFLAGS} ${QT4_CFLAGS}"
3609 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
3611 #if !defined (Q_WS_X11)
3615 AC_MSG_RESULT([yes])
3616 VLC_ADD_LIBS([qt4],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3617 VLC_ADD_CXXFLAGS([qt4],[${X_CFLAGS}])
3625 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"], [
3626 VLC_ADD_LIBS([qt4],[-lole32])
3628 AS_IF([test "${SYS}" = "darwin" ],[
3629 VLC_ADD_LIBS([qt4], [-Wl,-framework,Cocoa])
3631 AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`eval $PKG_CONFIG --variable=exec_prefix QtCore`/bin)
3632 AC_PATH_PROG(RCC, rcc, rcc,`eval $PKG_CONFIG --variable=exec_prefix QtCore`/bin)
3633 AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`eval $PKG_CONFIG --variable=exec_prefix QtCore`/bin)
3635 AS_IF([test -n "${enable_qt4}"],[
3636 AC_MSG_ERROR([${QT4_PKG_ERRORS}.])
3638 AC_MSG_WARN([${QT4_PKG_ERRORS}.])
3643 AM_CONDITIONAL(ENABLE_QT4, [test "x$enable_qt4" != "xno"])
3646 dnl Simple test for skins2 dependency
3648 AS_IF([test "x$enable_qt4" = "xno"], [
3649 AS_IF([test "${enable_skins2}" = "yes"], [
3650 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.])
3653 AC_MSG_WARN([The skins2 module depends on the Qt4 interface, Qt4 is not built so skins2 is disabled.])
3660 AC_ARG_ENABLE(skins2,
3661 [AS_HELP_STRING([--enable-skins2], [skins interface module (default auto)])])
3662 AS_IF([test "${enable_skins2}" != "no"], [
3663 have_skins_deps="yes"
3666 AS_IF([test "${SYS}" = "mingw32"], [
3667 VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
3668 VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3669 VLC_ADD_LIBS([skins2],[-lgdi32 -lole32 -luuid -lmsimg32])
3671 ], [test "${SYS}" = "darwin"], [
3672 VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
3673 VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3674 VLC_ADD_LIBS([skins2],[-Wl,-framework,Carbon])
3677 PKG_CHECK_MODULES([XPM], [xpm],, [have_skins_deps="no"])
3678 PKG_CHECK_MODULES([XINERAMA], [xinerama],, [have_skins_deps="no"])
3679 PKG_CHECK_MODULES([XEXT], [xext],, [have_skins_deps="no"])
3680 VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} ${XEXT_CFLAGS} ${XPM_CFLAGS} -DX11_SKINS])
3681 VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3682 VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} ${XEXT_LIBS} ${XPM_LIBS} ${XINERAMA_LIBS} -lX11])
3685 dnl we need freetype
3686 AS_IF([test "${have_freetype}" != "yes"], [
3687 have_skins_deps="no"
3690 AS_IF([test "${have_skins_deps}" = "no"], [
3691 AS_IF([test "x${enable_skins2}" = "x"], [
3692 AC_MSG_WARN([Skins2 interface disabled due to missing dependencies.])
3694 AC_MSG_ERROR([Skins2 interface requires FreeType, libxpm, libxext and libxinerama])
3698 VLC_ADD_PLUGIN([skins2])
3699 ALIASES="${ALIASES} svlc"
3703 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes"])
3705 AC_ARG_ENABLE(libtar,
3706 [ --enable-libtar libtar support for skins2 (default auto)])
3707 AS_IF([test "${enable_skins2}" = "yes" && test "${enable_libtar}" != "no"], [
3708 AC_CHECK_HEADERS(libtar.h, [
3709 VLC_ADD_LIBS([skins2],[-ltar])
3714 dnl MacOS X gui module
3716 AC_ARG_ENABLE(macosx,
3717 [ --enable-macosx Mac OS X gui support (default enabled on Mac OS X)])
3718 if test "x${enable_macosx}" != "xno" -a "${SYS}" = "darwin"
3720 VLC_ADD_LIBS([macosx minimal_macosx], [-Wl,-framework,Cocoa -Wl,-framework,OpenGL -Wl,-framework,Carbon -Wl,-framework,CoreServices -Wl,-framework,AGL])
3721 VLC_ADD_OBJCFLAGS([macosx minimal_macosx], [-fobjc-exceptions] )
3722 VLC_ADD_PLUGIN([macosx minimal_macosx])
3724 VLC_ADD_LIBS([macosx], [-Wl,-framework,QTKit -Wl,-framework,IOKit -Wl,-framework,AddressBook -Wl,-framework,WebKit])
3726 if ! test -d ${CONTRIB_DIR}/Sparkle.framework
3728 AC_MSG_ERROR([Sparkle framework is required and was not found in ${CONTRIB_DIR}])
3730 VLC_ADD_LIBS([macosx], [-F${CONTRIB_DIR} -Wl,-framework,Sparkle])
3731 VLC_ADD_OBJCFLAGS([macosx], [-F${CONTRIB_DIR}])
3733 if ! test -d ${CONTRIB_DIR}/BGHUDAppKit.framework
3735 AC_MSG_ERROR([BGHUDAppKit framework is required and was not found in ${CONTRIB_DIR}])
3737 VLC_ADD_LIBS([macosx], [-F${CONTRIB_DIR} -Wl,-framework,BGHUDAppKit])
3738 VLC_ADD_OBJCFLAGS([macosx], [-F${CONTRIB_DIR}])
3743 dnl MacOS X dialor provider
3745 AC_ARG_ENABLE(macosx-dialog-provider,
3746 [ --enable-macosx-dialog-provider Mac OS X dialog module (default enabled on Mac OS X)])
3747 if test "x${enable_macosx_dialog_provider}" != "xno" &&
3748 (test "${SYS}" = "darwin" || test "${enable_macosx_dialog_provider}" = "yes")
3750 VLC_ADD_LIBS([macosx_dialog_provider],[-Wl,-framework,Cocoa])
3751 VLC_ADD_PLUGIN([macosx_dialog_provider])
3757 AC_ARG_ENABLE(ncurses,
3758 [AS_HELP_STRING([--disable-ncurses],[ncurses text-based interface (default auto)])])
3759 if test "${enable_ncurses}" != "no"; then
3762 AC_CHECK_HEADER(ncurses.h, [
3763 AC_CHECK_LIB(ncursesw, mvprintw, [
3764 AC_SEARCH_LIBS([tgetent], [ncursesw tinfow tinfo], [
3765 VLC_ADD_PLUGIN([ncurses])
3766 ALIASES="${ALIASES} nvlc"
3767 VLC_ADD_LIBS([ncurses],[-lncursesw ${LIBS}])
3769 AS_IF([test "${enable_ncurses}" = "yes"], [AC_MSG_ERROR([tgetent not found])])
3772 AS_IF([test "${enable_ncurses}" = "yes"], [AC_MSG_ERROR([libncursesw not found])])
3775 AS_IF([test "${enable_ncurses}" = "yes"], [AC_MSG_ERROR([ncurses.h not found])])
3784 [ --enable-xosd xosd interface support (default disabled)])
3785 if test "${enable_xosd}" = "yes"
3787 AC_CHECK_HEADERS(xosd.h,
3788 AC_CHECK_LIB(xosd, xosd_set_horizontal_offset, [
3789 VLC_ADD_PLUGIN([xosd])
3790 VLC_ADD_LIBS([xosd],[-lxosd])
3796 dnl Framebuffer (overlay) plugin
3798 AC_ARG_ENABLE(fbosd,
3799 [ --enable-fbosd fbosd interface support (default disabled)])
3800 if test "${enable_fbosd}" = "yes"
3802 AC_CHECK_HEADERS(linux/fb.h, [
3803 VLC_ADD_PLUGIN([fbosd])
3811 [ --enable-lirc lirc support (default disabled)])
3812 if test "${enable_lirc}" = "yes"
3814 AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
3815 if test "${have_lirc}" = "true"
3817 VLC_ADD_PLUGIN([lirc])
3818 VLC_ADD_LIBS([lirc],[-llirc_client])
3822 EXTEND_HELP_STRING([Visualisations and Video filter plugins:])
3824 dnl Visualisation plugin
3826 AC_ARG_ENABLE(visual,
3827 [ --enable-visual visualisation plugin (default enabled)])
3828 if test "${enable_visual}" != "no"
3830 VLC_ADD_PLUGIN([visual])
3834 dnl goom visualization plugin
3836 PKG_ENABLE_MODULES_VLC([GOOM], [], [libgoom2], [goom visualization plugin], [auto])
3839 dnl libprojectM visualization plugin
3841 AC_ARG_ENABLE(projectm,
3842 [ --enable-projectm projectM visualization plugin (default enabled)])
3843 AS_IF([test "${enable_projectm}" != "no"],
3845 PKG_CHECK_MODULES(PROJECTM, libprojectM,
3847 VLC_ADD_PLUGIN([projectm])
3848 VLC_ADD_CXXFLAGS([projectm],[$PROJECTM_CFLAGS])
3849 VLC_ADD_LIBS([projectm],[$PROJECTM_LIBS])
3850 PKG_CHECK_MODULES(PROJECTM2, [libprojectM >= 2.0.0],
3851 [ AC_DEFINE([HAVE_PROJECTM2], 1, [Define to 1 if using libprojectM 2.x]) ],
3852 [ AC_MSG_WARN( [Using libprojectM version 1] )
3855 AC_MSG_WARN([${PROJECTM_PKG_ERRORS}.])
3860 dnl AtmoLight (homemade Philips Ambilight clone)
3863 AS_HELP_STRING([--disable-atmo],[AtmoLight (homemade Philips Ambilight clone)
3864 (default enabled)]),, [enable_atmo="yes"])
3865 AS_IF([test "${enable_atmo}" != no], [
3866 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "linux"], [
3868 VLC_ADD_PLUGIN([atmo])
3873 EXTEND_HELP_STRING([Service Discovery plugins:])
3875 dnl Bonjour services discovery
3876 PKG_ENABLE_MODULES_VLC([BONJOUR], [], [avahi-client >= 0.6], [Bonjour services discovery], [auto])
3879 dnl libudev services discovery
3880 PKG_ENABLE_MODULES_VLC([UDEV], [], [libudev >= 142], [Linux udev services discovery], [auto])
3883 dnl MTP devices services discovery
3884 PKG_ENABLE_MODULES_VLC([MTP], [mtp access_mtp], [libmtp >= 1.0.0], [MTP devices support], [auto])
3887 dnl UPnP Plugin (Intel SDK)
3889 PKG_ENABLE_MODULES_VLC([UPNP], [upnp], [libupnp], [Intel UPNP SDK],[auto])
3890 VLC_ADD_CXXFLAGS([upnp],[${UPNP_CFLAGS}])
3892 EXTEND_HELP_STRING([Misc options:])
3897 PKG_ENABLE_MODULES_VLC([LIBXML2], [xml], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
3903 AC_ARG_ENABLE(libgcrypt,
3904 [ --disable-libgcrypt gcrypt support (default enabled)])
3905 AS_IF([test "${enable_libgcrypt}" != "no"], [
3906 AC_CHECK_DECL([GCRYCTL_SET_THREAD_CBS], [
3907 libgcrypt-config --version >/dev/null || \
3908 AC_MSG_ERROR([gcrypt.h present but libgcrypt-config could not be found])
3909 AC_CHECK_LIB(gcrypt, gcry_control, [
3910 have_libgcrypt="yes"
3911 GCRYPT_CFLAGS="`libgcrypt-config --cflags`"
3912 GCRYPT_LIBS="`libgcrypt-config --libs`"
3914 AC_MSG_ERROR([libgcrypt not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
3915 ], [`libgcrypt-config --libs`])
3917 AC_MSG_ERROR([libgcrypt version 1.1.94 or higher not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
3918 ], [#include <gcrypt.h>]
3922 AC_SUBST(GCRYPT_CFLAGS)
3923 AC_SUBST(GCRYPT_LIBS)
3924 AM_CONDITIONAL([HAVE_GCRYPT], [test "${have_libgcrypt}" = "yes"])
3929 AC_ARG_ENABLE(gnutls,
3930 [ --enable-gnutls GNU TLS TLS/SSL support (default enabled)])
3932 AS_IF([test "${have_libgcrypt}" != "yes"], [
3933 AS_IF([test "${enable_gnutls}" = "yes"], [
3934 AC_MSG_ERROR([--enable-gnutls and --disable-libgcrypt are mutually exclusive.])
3938 AS_IF([test "${enable_gnutls}" != "no"], [
3939 PKG_CHECK_MODULES(GNUTLS, [gnutls >= 2.0.0], [
3940 VLC_ADD_PLUGIN([gnutls])
3942 AS_IF([test -n "${enable_gnutls}"], [
3943 AC_MSG_ERROR([${GNUTLS_PKG_ERRORS}.)])
3950 dnl Nokia MCE plugin (Maemo screen unblanking)
3952 PKG_CHECK_MODULES([MCE], [dbus-1 mce], [VLC_ADD_PLUGIN([mce])], [true])
3955 AS_IF([test -f "/etc/maemo_version"], [
3956 AC_DEFINE([HAVE_MAEMO], 1, [Define to 1 if building for the Maemo platform.])
3963 AC_ARG_ENABLE(taglib,
3964 [AS_HELP_STRING([--disable-taglib],
3965 [do not use TagLib (default enabled)])])
3966 AS_IF([test "${enable_taglib}" != "no"], [
3967 PKG_CHECK_MODULES(TAGLIB, taglib >= 1.5, [
3968 VLC_ADD_PLUGIN([taglib])
3969 VLC_ADD_LIBS([taglib],[$TAGLIB_LIBS -lz])
3970 VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS])
3972 AC_MSG_WARN([${TAGLIB_PKG_ERRORS}.])])
3977 dnl update checking system
3979 AC_ARG_ENABLE(update-check,
3980 [ --enable-update-check update checking system (default disabled)])
3981 if test "${enable_update_check}" = "yes"
3983 if test "${have_libgcrypt}" != "yes"
3985 AC_MSG_ERROR([libgcrypt is required for update checking system])
3987 VLC_ADD_LIBS([libvlccore], [${GCRYPT_LIBS}])
3988 VLC_ADD_CFLAGS([libvlccore], [${GCRYPT_CFLAGS}])
3989 AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
3993 dnl Growl notification plugin
3995 AC_ARG_ENABLE(growl,
3996 [ --enable-growl growl notification plugin (default disabled)],,
3998 AS_IF([test "${enable_growl}" != "no"], [
3999 AC_CHECK_HEADERS(${CONTRIB_DIR}/Growl.framework/Versions/A/Headers/GrowlDefines.h, [
4000 VLC_ADD_PLUGIN([growl])
4001 VLC_ADD_LIBS([growl], [-F${CONTRIB_DIR} -Wl,-framework,Growl,-framework,CoreFoundation])
4002 VLC_ADD_OBJCFLAGS([growl], [-F${CONTRIB_DIR}])
4003 VLC_ADD_OBJCFLAGS([growl], [-fobjc-exceptions] )
4009 dnl Libnotify notification plugin
4011 PKG_ENABLE_MODULES_VLC([NOTIFY], [], [libnotify gtk+-2.0], [libnotify notification], [auto])
4016 AC_ARG_ENABLE(media-library,
4017 [ --enable-media-library media library (default disabled)])
4018 AS_IF([test "${enable_media_library}" = "yes"], [
4019 AC_DEFINE([MEDIA_LIBRARY], 1, [Define if you want to use the VLC media library])
4020 VLC_ADD_CPPFLAGS([qt4],"-DMEDIA_LIBRARY")
4021 VLC_ADD_PLUGIN([media_library])
4026 AS_IF([test "${SYS}" != "darwin"], [
4027 PKG_ENABLE_MODULES_VLC([SQLITE], [], [sqlite3 >= 3.6.0], [sqlite3], [auto])
4029 AS_IF([test "${enable_sqlite}" != "no"], [
4030 AC_CHECK_HEADERS(sqlite3.h, [
4031 VLC_ADD_PLUGIN([sqlite])
4032 VLC_ADD_LIBS([sqlite], [-lsqlite3])
4034 AC_MSG_ERROR([sqlite3 is required for the media library])
4042 dnl Endianness check
4045 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
4046 DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
4050 AC_SUBST(DEFS_BIGENDIAN)
4053 dnl Where to install KDE solid .desktop
4055 AC_ARG_VAR([KDE4_CONFIG], [kde4-config utility])
4056 AS_IF([test "x$KDE4_CONFIG" = "x"], [
4057 KDE4_CONFIG="kde4-config"
4060 AC_ARG_WITH(kde-solid,
4061 AS_HELP_STRING([--with-kde-solid=PATH],
4062 [KDE Solid actions directory (auto)]),, [
4064 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "darwin" ; then
4065 with_kde_solid="yes"
4069 AS_IF([test "${with_kde_solid}" != "no"], [
4070 AS_IF([test "${with_kde_solid}" = "yes"], [
4071 kde4datadir="`${KDE4_CONFIG} --install data`"
4072 AS_IF([test "x$kde4datadir" = "x"], [kde4datadir='${datadir}/kde4/apps'])
4073 soliddatadir="${kde4datadir}/solid/actions"
4075 soliddatadir="${with_kde_solid}"
4078 AC_SUBST(soliddatadir)
4079 AM_CONDITIONAL(KDE_SOLID, [test "x${soliddatadir}" != "x"])
4082 dnl DLL loader copied from MPlayer copied from somewhere else (WINE ?)
4085 AC_ARG_ENABLE(loader,
4086 AS_HELP_STRING([--enable-loader],[build DLL loader for ELF i386 platforms
4087 (default disabled)]))
4088 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
4089 AS_IF([test "${enable_loader}" = "yes"],
4090 [ VLC_ADD_PLUGIN([dmo])
4091 VLC_ADD_CPPFLAGS([dmo quicktime realvideo],[-I\\\${top_srcdir}/modules/codec/loader])
4092 VLC_ADD_LIBS([dmo quicktime realvideo],[\\\${top_builddir}/modules/codec/loader/libloader.la])
4093 VLC_ADD_CPPFLAGS([realvideo], [-DLOADER])
4094 VLC_ADD_LIBS([dmo quicktime], [-lpthread])
4097 EXTEND_HELP_STRING([Components:])
4103 [ --enable-vlc build the VLC media player (default enabled)])
4104 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
4106 AC_ARG_ENABLE(macosx-vlc-app,
4107 [ --enable-macosx-vlc-app build the VLC media player (default enabled on Mac OS X)])
4108 AM_CONDITIONAL(BUILD_MACOSX_VLC_APP, [test "${enable_macosx_vlc_app}" != "no" &&
4109 (test "${SYS}" = "darwin" || test "${enable_macosx_vlc_app}" = "yes") ])
4112 dnl Stuff used by the program
4114 VERSION_MESSAGE="${VERSION} ${CODENAME}"
4115 COPYRIGHT_MESSAGE="Copyright © ${COPYRIGHT_YEARS} the VideoLAN team"
4116 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string])
4117 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string])
4118 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
4119 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
4120 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,${VERSION_MAJOR}, [version major number])
4121 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,${VERSION_MINOR}, [version minor number])
4122 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,${VERSION_REVISION}, [version revision number])
4123 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,${VERSION_EXTRA}, [version extra number])
4124 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_DEV,"${VERSION_DEV}", [version development string])
4125 AC_SUBST(COPYRIGHT_MESSAGE)
4126 AC_SUBST(VERSION_MESSAGE)
4127 AC_SUBST(VERSION_MAJOR)
4128 AC_SUBST(VERSION_MINOR)
4129 AC_SUBST(VERSION_REVISION)
4130 AC_SUBST(VERSION_EXTRA)
4131 AC_SUBST(COPYRIGHT_YEARS)
4132 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure])
4133 AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -f 2>/dev/null || hostname`", [host which ran configure])
4134 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler])
4136 dnl Handle substvars that use $(top_srcdir)
4138 CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS}"
4141 dnl Sort the modules list
4143 PLUGINS=$( (for i in `echo $PLUGINS`; do echo $i; done)|sort|xargs )
4146 dnl Configuration is finished
4156 AC_SUBST(WINE_SDK_PATH)
4158 AC_SUBST(AM_CPPFLAGS)
4159 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
4160 AC_SUBST(FILE_LIBVLCCORE_DLL)
4161 AC_SUBST(FILE_LIBVLC_DLL)
4176 modules/access/Makefile
4177 modules/access/bd/Makefile
4178 modules/access/dshow/Makefile
4179 modules/access/dvb/Makefile
4180 modules/access/mms/Makefile
4181 modules/access/rtp/Makefile
4182 modules/access/rtsp/Makefile
4183 modules/access/vcd/Makefile
4184 modules/access/vcdx/Makefile
4185 modules/access/screen/Makefile
4186 modules/access/zip/Makefile
4187 modules/access/zip/unzip/Makefile
4188 modules/access_output/Makefile
4189 modules/audio_filter/Makefile
4190 modules/audio_mixer/Makefile
4191 modules/audio_output/Makefile
4192 modules/codec/Makefile
4193 modules/codec/avcodec/Makefile
4194 modules/codec/dmo/Makefile
4195 modules/codec/loader/Makefile
4196 modules/codec/omxil/Makefile
4197 modules/codec/shine/Makefile
4198 modules/codec/spudec/Makefile
4199 modules/codec/wmafixed/Makefile
4200 modules/control/Makefile
4201 modules/control/dbus/Makefile
4202 modules/control/globalhotkeys/Makefile
4203 modules/demux/Makefile
4204 modules/demux/asf/Makefile
4205 modules/demux/avformat/Makefile
4206 modules/demux/avi/Makefile
4207 modules/demux/mkv/Makefile
4208 modules/demux/mp4/Makefile
4209 modules/demux/mpeg/Makefile
4210 modules/demux/playlist/Makefile
4211 modules/gui/Makefile
4212 modules/gui/macosx/Makefile
4213 modules/gui/hildon/Makefile
4214 modules/gui/minimal_macosx/Makefile
4215 modules/gui/macosx_dialog_provider/Makefile
4216 modules/gui/qt4/Makefile
4217 modules/gui/skins2/Makefile
4218 modules/lua/Makefile
4219 modules/meta_engine/Makefile
4220 modules/misc/Makefile
4221 modules/misc/playlist/Makefile
4222 modules/misc/osd/Makefile
4223 modules/misc/stats/Makefile
4224 modules/media_library/Makefile
4225 modules/mux/Makefile
4226 modules/mux/mpeg/Makefile
4227 modules/notify/Makefile
4228 modules/packetizer/Makefile
4229 modules/services_discovery/Makefile
4230 modules/stream_filter/Makefile
4231 modules/stream_filter/dash/Makefile
4232 modules/stream_out/Makefile
4233 modules/stream_out/transcode/Makefile
4234 modules/text_renderer/Makefile
4235 modules/video_chroma/Makefile
4236 modules/video_filter/Makefile
4237 modules/video_filter/dynamicoverlay/Makefile
4238 modules/video_output/Makefile
4239 modules/video_output/msw/Makefile
4240 modules/visualization/Makefile
4241 modules/visualization/visual/Makefile
4242 modules/mmx/Makefile
4243 modules/mmxext/Makefile
4244 modules/3dnow/Makefile
4245 modules/sse2/Makefile
4246 modules/altivec/Makefile
4247 modules/arm_neon/Makefile
4250 AM_COND_IF([HAVE_WIN32], [
4252 extras/package/win32/spad.nsi
4253 extras/package/win32/vlc.win32.nsi
4257 AM_COND_IF([HAVE_DARWIN], [
4259 extras/package/macosx/Info.plist
4260 extras/package/macosx/Resources/English.lproj/InfoPlist.strings
4264 dnl Generate makefiles
4267 dnl Do we have to use make or gmake ?
4268 USE_MAKE_OR_GMAKE=`case "${SYS}" in openbsd*) echo "gmake";; *) echo "make";; esac`
4269 dnl Shortcut to nice compile message
4271 if test -n $SHELL; then
4272 SHELL=${CONFIG_SHELL-/bin/sh}
4274 echo '#! '$SHELL >compile
4275 echo rm -f .error\$\$ >>compile
4276 echo ERROR=0 >>compile
4277 echo export PATH=$PATH LANG=C >>compile
4278 echo "($USE_MAKE_OR_GMAKE V=1 \$@ 2>&1 || touch .error\$\$)| \\" >>compile
4279 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/buildsystem/make.pl' >>compile
4280 echo test -f .error\$\$ \&\& ERROR=1 >>compile
4281 echo rm -f .error\$\$ >>compile
4282 echo exit \$ERROR >>compile
4286 libvlc configuration
4287 --------------------
4288 version : ${VERSION}
4290 architecture : ${ARCH}
4291 optimizations : ${enable_optimizations}"
4292 if test "${enable_vlc}" != "no"; then
4293 echo "vlc aliases :${ALIASES}"
4295 echo "build vlc executable : no"
4298 To build vlc and its plugins, type \`./compile' or \`$USE_MAKE_OR_GMAKE'."