1 dnl Autoconf settings for vlc
3 AC_COPYRIGHT([Copyright 2002-2012 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-2012"
19 AC_CONFIG_SRCDIR(src/libvlc.c)
20 AC_CONFIG_AUX_DIR(autotools)
21 AC_CONFIG_MACRO_DIR(m4)
22 AC_CONFIG_LIBOBJ_DIR(compat)
25 AC_PRESERVE_HELP_ORDER
27 AM_INIT_AUTOMAKE(tar-ustar color-tests)
28 AM_CONFIG_HEADER(config.h)
30 # Disable with "./configure --disable-silent-rules" or "make V=1"
31 AM_SILENT_RULES([yes])
33 dnl Too many people are not aware of maintainer mode:
34 dnl If you want to use it, you definitely know what you are doing, so
35 dnl you can specify "--disable-maintainer-mode". But if you want the default
36 dnl automake behavior, you've likely never heard of maintainer mode, so we
37 dnl can't expect you to enable it manually.
38 AS_IF([test "x${enable_maintainer_mode}" != "xno"],
39 [enable_maintainer_mode="yes"])
45 dnl vlcincludedir="\${includedir}/\${PKGDIR}"
46 dnl AC_SUBST(vlcincludedir)
47 vlcdatadir="\${datadir}/\${PKGDIR}"
49 vlclibdir="\${libdir}/\${PKGDIR}"
56 AC_USE_SYSTEM_EXTENSIONS
57 AC_DEFINE([_FORTIFY_SOURCE], 2, [Define to 2 to get glibc warnings.])
58 AC_DEFINE([_FILE_OFFSET_BITS], 64, [Define to 64 for large files support.])
59 AC_DEFINE([_REENTRANT],, [Define to expose reentrant functions.])
60 AC_DEFINE([_THREAD_SAFE],, [Same as _REENTANT for some other OSes.])
61 AC_DEFINE([__LIBVLC__],, [Define within the LibVLC source code tree.])
67 _AM_DEPENDENCIES([OBJC])
73 AC_ARG_VAR([DESKTOP_FILE_VALIDATE], [Validator for desktop entry files])
74 AC_CHECK_PROGS(DESKTOP_FILE_VALIDATE, [${DESKTOP_FILE_VALIDATE} desktop-file-validate], :)
76 dnl Check for compiler properties
81 dnl Extend the --help string at the current spot.
82 AC_DEFUN([EXTEND_HELP_STRING], [m4_divert_once([HELP_ENABLE], [$1])])
84 dnl Allow binary package maintainer to pass a custom string to avoid
86 AC_ARG_WITH(binary-version,
87 AS_HELP_STRING([--with-binary-version=STRING],
88 [To avoid plugins cache problem between binary version]),[],[])
89 AS_IF([test -n "${with_binary_version}"],[
90 AC_DEFINE_UNQUOTED([DISTRO_VERSION],["${with_binary_version}"],
91 [Binary specific version])
95 dnl Check the operating system
107 CFLAGS="${CFLAGS} -pthread"
108 VLC_ADD_LIBS([vcd cdda vcdx],[-ldvd])
112 CFLAGS="${CFLAGS} -pthread"
115 CPPFLAGS="${CPPFLAGS} -I/usr/local/include"
116 LDFLAGS="${LDFLAGS} -L/usr/local/lib"
119 CPPFLAGS="${CPPFLAGS} -I/usr/local/include -I/usr/X11R6/include"
120 LDFLAGS="${LDFLAGS} -L/usr/local/lib -L/usr/X11R6/lib/"
126 dnl Force gcc "-arch" flag
130 ARCH_flag="-arch i386"
133 ARCH_flag="-arch ppc64"
136 ARCH_flag="-arch ppc"
139 ARCH_flag="-arch x86_64"
144 CFLAGS="${CFLAGS} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"
145 CXXFLAGS="${CXXFLAGS} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"
146 CPPFLAGS="${CPPFLAGS} ${ARCH_flag}"
147 OBJCFLAGS="${OBJCFLAGS} -D_INTL_REDIRECT_MACROS -std=gnu99 ${ARCH_flag}"
148 LDFLAGS="${LDFLAGS} -Wl,-headerpad_max_install_names ${ARCH_flag}"
149 VLC_ADD_LIBS([mkv mp4 motion], [-Wl,-framework,IOKit,-framework,CoreFoundation])
150 VLC_ADD_LIBS([libvlc vlc],[-Wl,-undefined,dynamic_lookup])
151 VLC_ADD_LIBS([avcodec avformat access_avio swscale postproc i420_rgb_mmx x264],[-Wl,-read_only_relocs,suppress])
152 VLC_ADD_CFLAGS([motion],[-fconstant-cfstrings])
153 VLC_ADD_LIBS([libvlccore],[-Wl,-framework,CoreFoundation])
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 strptime 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"
2247 VLC_ADD_PLUGIN([iomx])
2251 dnl CrystalHD codec plugin
2253 AC_ARG_ENABLE(crystalhd,
2254 [ --enable-crystalhd crystalhd codec plugin (default auto)])
2255 if test "${enable_crystalhd}" != "no"; then
2256 AC_CHECK_HEADER(libcrystalhd/libcrystalhd_if.h, [
2257 VLC_ADD_PLUGIN([crystalhd])
2258 VLC_ADD_LIBS([crystalhd], [-lcrystalhd])
2260 if test "${SYS}" = "mingw32" ; then
2261 AC_CHECK_HEADERS(libcrystalhd/bc_dts_defs.h, [
2262 VLC_ADD_PLUGIN([crystalhd])
2263 AC_CHECK_HEADERS(libcrystalhd/bc_drv_if.h, [
2264 VLC_ADD_LIBS([crystalhd], [-lbcmDIL])
2267 AS_IF([test x"${enable_crystalhd}" = "xyes"],
2268 [AC_MSG_ERROR("Could not find CrystalHD development headers")],
2269 [AC_MSG_WARN("Could not find CrystalHD development headers")])
2270 ],[#define __LINUX_USER__
2271 #include <libcrystalhd/bc_dts_types.h>
2275 #include <libcrystalhd/bc_dts_types.h>
2283 [ --enable-mad libmad module (default enabled)])
2284 if test "${enable_mad}" != "no"
2287 [ --with-mad=PATH path to libmad],[],[])
2288 if test "${with_mad}" != "no" -a -n "${with_mad}"
2290 VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2291 VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2294 AC_ARG_WITH(mad-tree,
2295 [ --with-mad-tree=PATH mad tree for static linking],[],[])
2296 if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2298 real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2299 if test -z "${real_mad_tree}"
2301 dnl The given directory can't be found
2303 AC_MSG_ERROR([${with_mad_tree} directory does not exist])
2305 dnl Use a custom libmad
2306 AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2307 if test -f ${real_mad_tree}/mad.h
2310 VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2311 VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2313 LDFLAGS="${LDFLAGS} ${LIBS_mpgatofixed32}"
2314 AC_CHECK_LIB(mad, mad_bit_init, [
2315 VLC_ADD_PLUGIN([mpgatofixed32])
2316 VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2317 ],[ AC_MSG_ERROR([the specified tree has not been compiled ])
2322 AC_MSG_ERROR([the specified tree does not have mad.h])
2326 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_mpgatofixed32}"
2327 LDFLAGS="${LDFLAGS} ${LIBS_mpgatofixed32}"
2328 AC_CHECK_HEADERS(mad.h, ,
2329 [ 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.]) ])
2330 AC_CHECK_LIB(mad, mad_bit_init, [
2331 VLC_ADD_PLUGIN([mpgatofixed32])
2332 VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2333 [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2339 AC_ARG_ENABLE(merge-ffmpeg,
2340 [ --enable-merge-ffmpeg merge FFmpeg-based plugins (default disabled)],, [
2341 enable_merge_ffmpeg="no"
2343 AM_CONDITIONAL([MERGE_FFMPEG], [test "$enable_merge_ffmpeg" != "no"])
2346 LDFLAGS="${LDFLAGS} -Wl,-Bsymbolic"
2347 AC_CACHE_CHECK([if linker supports -Bsymbolic],
2348 [ac_cv_ld_bsymbolic],
2349 [AC_TRY_LINK([],,ac_cv_ld_bsymbolic=yes,ac_cv_ld_bsymbolic=no)])
2353 dnl avcodec decoder/encoder plugin
2355 AC_ARG_ENABLE(avcodec,
2356 [ --enable-avcodec libavcodec codec (default enabled)])
2357 AS_IF([test "${enable_avcodec}" != "no"], [
2358 PKG_CHECK_MODULES(AVCODEC,[libavcodec >= 52.25.0 libavutil],
2361 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2362 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2363 AC_CHECK_HEADERS(libavcodec/avcodec.h)
2364 AC_CHECK_HEADERS(libavutil/avutil.h)
2365 VLC_ADD_PLUGIN([avcodec])
2366 VLC_ADD_LIBS([avcodec],[$AVCODEC_LIBS])
2367 AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2368 VLC_ADD_LIBS([avcodec],[-Wl,-Bsymbolic])
2370 VLC_ADD_CFLAGS([avcodec],[$AVCODEC_CFLAGS])
2374 AC_MSG_ERROR([${AVCODEC_PKG_ERRORS}. Pass --disable-avcodec to ignore this error.])
2381 dnl libva needs avcodec
2383 AC_ARG_ENABLE(libva,
2384 [ --enable-libva VAAPI GPU decoding support (libVA) (default auto)])
2386 AS_IF([test "${enable_libva}" = "yes" -a "${have_avcodec}" != "yes" ], [
2387 AC_MSG_ERROR([--enable-libva and --disable-avcodec options are mutually exclusive. Use --enable-avcodec.])
2389 AS_IF([test "${enable_libva}" != "no"], [
2390 PKG_CHECK_MODULES(LIBVA, [libva libva-x11], [
2392 CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2393 CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2394 AC_CHECK_HEADERS(libavcodec/vaapi.h, [
2395 VLC_ADD_LIBS([avcodec],[$LIBVA_LIBS ${X_LIBS} ${X_PRE_LIBS} -lX11])
2396 VLC_ADD_CFLAGS([avcodec],[$LIBVA_CFLAGS ${X_CFLAGS}])
2397 AC_DEFINE(HAVE_AVCODEC_VAAPI, 1, [Define if avcodec has to be built with VAAPI support.])
2398 AC_MSG_NOTICE([VAAPI acceleration activated])
2400 AS_IF([test -n "${enable_libva}"], [
2401 AC_MSG_ERROR([libva is present but libavcodec/vaapi.h is missing])
2403 AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing ])
2408 AS_IF([test -n "${enable_libva}"], [
2409 AC_MSG_ERROR([${LIBVA_PKG_ERRORS}.])
2411 AC_MSG_WARN([${LIBVA_PKG_ERRORS}.])
2417 dnl dxva2 needs avcodec
2419 AC_ARG_ENABLE(dxva2,
2420 [ --enable-dxva2 DxVA2 GPU decoding support (default auto)])
2422 AS_IF([test "${enable_dxva2}" != "no"], [
2423 if test "${SYS}" = "mingw32"; then
2424 AS_IF([test "x${have_avcodec}" = "xyes"], [
2425 AC_CHECK_HEADERS(dxva2api.h,
2427 AC_CHECK_HEADERS(libavcodec/dxva2.h, [
2428 VLC_ADD_LIBS([avcodec],[-lole32 -lshlwapi -luuid])
2429 AC_DEFINE(HAVE_AVCODEC_DXVA2, 1, [Define if avcodec has to be built with DxVA2 support.])
2430 echo "DxVA2 acceleration activated"
2432 AS_IF([test "${enable_dxva2}" = "yes"],
2433 [AC_MSG_ERROR([dxva2 is present but libavcodec/dxva2.h is missing])],
2434 [AC_MSG_WARN([dxva2 is present but libavcodec/dxva2.h is missing ])])
2435 ], [#undef _WIN32_WINNT
2436 /* DXVA2 is only available in Vista and above */
2437 #define _WIN32_WINNT 0x600])
2439 AS_IF([test "${enable_dxva2}" = "yes"],
2440 [AC_MSG_ERROR([Could not find required dxva2api.h])],
2441 [AC_MSG_WARN([dxva2api.h not found])])
2444 AS_IF([test "x${enable_dxva2}" != "x"], [
2445 AC_MSG_ERROR([--enable-dxva2 and --disable-avcodec options are mutually exclusive.])
2453 dnl stream_out switcher needs libavcodec
2455 AC_ARG_ENABLE(switcher,
2456 [ --enable-switcher Stream-out switcher plugin (default disabled)])
2457 AS_IF([test "${enable_switcher}" = "yes"], [
2458 AS_IF([test "x${have_avcodec}" = "xyes"], [
2459 VLC_ADD_PLUGIN([stream_out_switcher])
2460 VLC_ADD_LIBS([stream_out_switcher],[$AVCODEC_LIBS $AVUTIL_LIBS])
2461 VLC_ADD_CFLAGS([stream_out_switcher],[$AVCODEC_CFLAGS $AVUTIL_CFLAGS])
2462 ],[AC_MSG_ERROR([Stream_out switcher depends on avcodec])
2468 dnl avformat demuxer/muxer plugin
2471 AC_ARG_ENABLE(avformat,
2472 [ --enable-avformat libavformat containers (default enabled)],, [
2473 enable_avformat="${have_avcodec}"
2475 if test "${enable_avformat}" != "no"
2477 PKG_CHECK_MODULES(AVFORMAT,[libavformat > 52.30.0 libavcodec libavutil],
2480 CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
2481 CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
2482 AC_CHECK_HEADERS(libavformat/avformat.h libavformat/avio.h)
2483 AC_CHECK_HEADERS(libavutil/avutil.h)
2484 AS_IF([test "$enable_merge_ffmpeg" = "no"], [
2485 VLC_ADD_PLUGIN([avformat access_avio])
2486 VLC_ADD_LIBS([avformat access_avio],[$AVFORMAT_LIBS $AVUTIL_LIBS])
2487 VLC_ADD_CFLAGS([avformat access_avio],[$AVFORMAT_CFLAGS $AVUTIL_CFLAGS])
2488 AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2489 VLC_ADD_LIBS([avformat access_avio],[-Wl,-Bsymbolic])
2492 VLC_ADD_LIBS([avcodec],[$AVFORMAT_LIBS $AVUTIL_LIBS])
2493 VLC_ADD_CFLAGS([avcodec],[$AVFORMAT_CFLAGS $AVUTIL_CFLAGS])
2497 AC_MSG_ERROR([${AVFORMAT_PKG_ERRORS}. Pass --disable-avformat to ignore this error.])
2502 dnl swscale image scaling and conversion plugin
2505 AC_ARG_ENABLE(swscale,
2506 AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
2507 (default enabled)]))
2508 if test "${enable_swscale}" != "no"
2510 PKG_CHECK_MODULES(SWSCALE,[libswscale],
2513 CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
2514 CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
2515 AC_CHECK_HEADERS(libswscale/swscale.h)
2516 VLC_ADD_PLUGIN([swscale])
2517 VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
2518 VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
2519 AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2520 VLC_ADD_LIBS([swscale],[-Wl,-Bsymbolic])
2524 AC_MSG_ERROR([${SWSCALE_PKG_ERRORS}. Pass --disable-swscale to ignore this error. Proper software scaling and some video chroma conversion will be missing.])
2532 AC_ARG_ENABLE(postproc,
2533 [ --enable-postproc libpostproc image post-processing (default enabled)])
2534 if test "${enable_postproc}" != "no"
2536 PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
2539 CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
2540 CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
2541 AC_CHECK_HEADERS(postproc/postprocess.h)
2542 VLC_ADD_PLUGIN([postproc])
2543 VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS $AVUTIL_LIBS])
2544 VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS $AVUTIL_CFLAGS])
2547 AC_MSG_ERROR([${POSTPROC_PKG_ERRORS}. Pass --disable-postproc to ignore this error.])
2552 dnl faad decoder plugin
2555 [ --enable-faad faad codec (default disabled)])
2556 if test "${enable_faad}" = "yes"
2558 AC_ARG_WITH(faad-tree,
2559 [ --with-faad-tree=PATH faad tree for static linking])
2560 if test -n "${with_faad_tree}"
2562 AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
2563 real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
2564 if test -z "${real_faad_tree}"
2566 dnl The given directory can't be found
2568 AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
2570 if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
2572 dnl Use a custom faad
2573 AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
2574 VLC_ADD_PLUGIN([faad])
2575 VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
2576 VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
2578 dnl The given libfaad wasn't built
2580 AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
2584 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_faad}"
2585 LDFLAGS="${LDFLAGS} ${LIBS_faad}"
2586 AC_CHECK_HEADERS(faad.h, ,
2587 [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
2588 AC_CHECK_LIB(faad, faacDecOpen, [
2589 VLC_ADD_PLUGIN([faad])
2590 VLC_ADD_LIBS([faad],[-lfaad]) ],
2591 AC_CHECK_LIB(faad, NeAACDecOpen, [
2592 VLC_ADD_PLUGIN([faad])
2593 VLC_ADD_LIBS([faad],[-lfaad]) ],
2594 [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
2600 dnl twolame encoder plugin
2602 PKG_ENABLE_MODULES_VLC([TWOLAME], [], [twolame], [MPEG Audio Layer 2 encoder], [auto], [], [], [ -DLIBTWOLAME_STATIC])
2605 dnl QuickTime plugin
2607 AC_ARG_ENABLE(quicktime,
2608 [ --enable-quicktime QuickTime module (deprecated)])
2609 if test "${enable_quicktime}" = "yes"; then
2610 if test "${SYS}" = "mingw32"; then
2611 VLC_ADD_PLUGIN([quicktime])
2613 AC_CHECK_HEADERS(QuickTime/QuickTime.h,
2614 [ VLC_ADD_PLUGIN([quicktime])
2615 VLC_ADD_LIBS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
2616 ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
2624 [ --enable-real Real video decoder module (default disabled)])
2625 if test "${enable_real}" = "yes"; then
2626 VLC_ADD_PLUGIN([realvideo])
2630 dnl A52/AC3 decoder plugin
2633 [ --enable-a52 A/52 support with liba52 (default enabled)])
2634 if test "${enable_a52}" != "no"
2637 [ --with-a52=PATH a52 headers and libraries])
2638 AC_ARG_WITH(a52-tree,
2639 [ --with-a52-tree=PATH a52dec tree for static linking ],[],[])
2640 if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
2642 real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
2643 if test -z "${real_a52_tree}"
2645 dnl The given directory can't be found
2647 AC_MSG_ERROR([${with_a52_tree} directory does not exist])
2649 dnl Use a custom a52dec
2650 AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
2651 if test -f ${real_a52_tree}/include/a52.h
2654 VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
2655 VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
2657 LDFLAGS="${LDFLAGS} ${LIBS_a52tofloat32}"
2658 AC_CHECK_LIB(a52, a52_free, [
2659 VLC_ADD_PLUGIN([a52tofloat32])
2660 VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
2661 VLC_ADD_LIBS([a52tofloat32],[-la52])
2663 if test -f ${real_a52_tree}/liba52/.libs/liba52.a
2665 AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
2667 AC_MSG_ERROR([the specified tree has not been compiled])
2672 AC_MSG_ERROR([the specified tree does not have a52.h])
2675 if test -z "${with_a52}"
2680 LDFLAGS_test="-L${with_a52}/lib"
2681 CPPFLAGS_test="-I${with_a52}/include"
2684 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
2685 LDFLAGS="${LDFLAGS} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
2686 AC_CHECK_HEADERS(a52dec/a52.h, [
2687 AC_CHECK_LIB(a52, a52_free, [
2688 VLC_ADD_PLUGIN([a52tofloat32])
2689 VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
2690 VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
2692 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.])
2695 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.])
2701 AC_ARG_WITH(a52-fixed,
2702 [ --with-a52-fixed specify if liba52 has been compiled with fixed point support],
2704 VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
2707 dnl DTS Coherent Acoustics decoder plugin
2709 PKG_ENABLE_MODULES_VLC([DCA], [dtstofloat32], [libdca >= 0.0.5], [DTS Coherent Acoustics support with libdca], [auto])
2714 PKG_ENABLE_MODULES_VLC([FLAC], [], [flac], [libflac decoder/encoder support], [auto])
2719 PKG_ENABLE_MODULES_VLC([LIBMPEG2], [], [libmpeg2 > 0.3.2], [libmpeg2 decoder support], [auto])
2724 PKG_ENABLE_MODULES_VLC([VORBIS], [], [ogg vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
2729 AC_ARG_ENABLE(tremor,
2730 [ --enable-tremor Tremor decoder support (default disabled)])
2731 if test "${enable_tremor}" = "yes"
2733 AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
2734 VLC_ADD_PLUGIN([tremor])
2735 VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
2742 PKG_ENABLE_MODULES_VLC([SPEEX], [], [ogg speex >= 1.0.5], [Speex support], [auto])
2744 AS_IF([test "${enable_speex}" != "no"], [
2745 PKG_CHECK_MODULES([SPEEXDSP], [speexdsp], [
2748 AC_MSG_WARN([${SPEEXDSP_PKG_ERRORS}.])
2751 AM_CONDITIONAL([HAVE_SPEEXDSP], [test "$have_speexdsp" = "yes"])
2754 dnl theora decoder plugin
2756 PKG_ENABLE_MODULES_VLC([THEORA], [], [ogg theora >= 1.0], [experimental theora codec], [auto])
2759 dnl dirac encoder plugin
2761 PKG_ENABLE_MODULES_VLC([DIRAC], [], [dirac >= 0.10.0], [dirac encoder], [auto])
2764 dnl schroedinger decoder plugin (for dirac format video)
2766 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [], [schroedinger-1.0 >= 1.0.10], [dirac decoder and encoder using schroedinger], [auto])
2769 dnl PNG decoder module
2772 [ --enable-png PNG support (default enabled)])
2773 if test "${enable_png}" != "no"; then
2774 AC_CHECK_HEADERS(png.h, [
2776 LDFLAGS="${LDFLAGS} -lz"
2777 AC_CHECK_LIB(png, png_set_rows, [
2778 VLC_ADD_LIBS([png],[-lpng -lz -lm])
2779 VLC_ADD_PLUGIN([png osdmenu osd_parser])],
2784 AM_CONDITIONAL(BUILD_OSDMENU, [test "${enable_png}" != "no"])
2787 dnl H264 encoder plugin (using libx264)
2790 [ --enable-x264 H264 encoding support with libx264 (default enabled)])
2791 if test "${enable_x264}" != "no"; then
2792 AC_ARG_WITH(x264-tree,
2793 [ --with-x264-tree=PATH x264 tree for static linking ],[],[])
2794 if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
2796 real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
2797 if test -z "${real_x264_tree}"
2799 dnl The given directory can't be found
2801 AC_MSG_ERROR([${with_x264_tree} directory does not exist])
2803 dnl Use a custom libx264
2804 AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
2805 if test -f ${real_x264_tree}/x264.h
2808 VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
2809 VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
2810 PKG_CHECK_MODULES(X264,x264, [
2811 VLC_ADD_PLUGIN([x264])
2812 VLC_ADD_LIBS([x264],[${X264_LIBS}])
2813 VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
2814 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
2815 VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
2818 AC_MSG_ERROR([the specified tree has not been compiled])
2822 AC_MSG_ERROR([the specified tree does not have x264.h])
2825 PKG_CHECK_MODULES(X264,x264 >= 0.86, [
2826 VLC_ADD_PLUGIN([x264])
2827 VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
2829 AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
2830 VLC_ADD_LIBS([x264],[-Wl,-Bsymbolic])
2833 VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
2834 if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
2835 VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
2838 if test "${enable_x264}" = "yes"; then
2839 AC_MSG_ERROR([${X264_PKG_ERRORS}: you may get it from http://www.videolan.org/x264.html])
2846 dnl libfluidsynth (MIDI synthetizer) plugin
2848 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [], [fluidsynth], [MIDI synthetiser with libfluidsynth], [auto])
2851 dnl Teletext Modules
2852 dnl vbi decoder plugin (using libzbvi)
2857 AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
2858 libzvbi (default enabled)]))
2860 AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
2861 zvbi) (default enabled if zvbi is absent)]))
2863 AS_IF( [test "${enable_zvbi}" != "no"],[
2864 PKG_CHECK_MODULES(ZVBI, [zvbi-0.2 >= 0.2.28],
2866 VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
2867 if test "${SYS}" = "mingw32"; then
2868 VLC_ADD_LIBS([zvbi],[ -lpthreadGC2])
2870 VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
2871 VLC_ADD_PLUGIN([zvbi])
2872 AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
2873 AS_IF( [test "${enable_telx}" = "yes"],[
2874 AC_MSG_WARN([The zvbi and telx modules are incompatible. Using zvbi.])
2877 AC_MSG_WARN([${ZVBI_PKG_ERRORS}. Enabling the telx module instead.])
2880 AS_IF( [test "${enable_telx}" != "no" ],[
2881 VLC_ADD_PLUGIN([telx])
2885 dnl libass subtitle rendering module
2887 AC_ARG_ENABLE(libass,
2888 [ --enable-libass Subtitle support using libass (default enabled)])
2889 AS_IF( [test "${enable_libass}" != "no"], [
2890 PKG_CHECK_MODULES(LIBASS, [libass >= 0.9.8],
2892 VLC_ADD_LIBS([libass],[$LIBASS_LIBS])
2893 VLC_ADD_CFLAGS([libass],[$LIBASS_CFLAGS])
2894 VLC_ADD_PLUGIN([libass])
2896 AC_CHECK_HEADERS(fontconfig/fontconfig.h,
2897 [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
2898 VLC_ADD_LIBS([libass],[-lfontconfig])
2901 AC_MSG_WARN([${LIBASS_PKG_ERRORS}.])
2906 dnl kate decoder plugin
2908 PKG_ENABLE_MODULES_VLC([KATE], [], [kate >= 0.3.0], [kate codec], [auto])
2911 dnl tiger rendering for kate decoder plugin
2913 AC_ARG_ENABLE(tiger,
2914 [ --enable-tiger Tiger rendering library for Kate streams (default auto)])
2915 AS_IF([test "${enable_tiger}" != "no"], [
2916 PKG_CHECK_MODULES(TIGER,[tiger >= 0.3.1], [
2917 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available.])
2918 VLC_ADD_CFLAGS([kate],[$TIGER_CFLAGS])
2919 VLC_ADD_LIBS([kate],[$TIGER_LIBS]) ],[
2920 AS_IF([test -n "${enable_tiger}"], [
2921 AC_MSG_ERROR([${TIGER_PKG_ERRORS}.])
2931 EXTEND_HELP_STRING([Video plugins:])
2936 PKG_CHECK_MODULES([GL], [gl], [
2939 AC_CHECK_HEADER([GL/gl.h], [
2948 dnl OpenGL ES 2: depends on EGL 1.1 and is currently unfinished
2949 dnl PKG_ENABLE_MODULES_VLC([GLES2], [], [glesv2], [OpenGL ES v2 support], [auto])
2950 dnl OpenGL ES 1: depends on EGL 1.0 and is currently broken
2951 dnl PKG_ENABLE_MODULES_VLC([GLES1], [], [glesv1_cm], [OpenGL ES v1 support], [auto])
2954 [ --enable-egl OpenGL support through EGL (default disabled)],, [
2957 AS_IF([test "$enable_egl" != "no"], [
2958 PKG_CHECK_MODULES([EGL], [egl], [
2959 VLC_ADD_PLUGIN([gl])
2960 VLC_ADD_PLUGIN([egl])
2969 AC_CHECK_HEADERS(X11/Xlib.h)
2972 dnl X C Bindings modules
2975 [ --enable-xcb X11 support with XCB (default enabled)],, [
2976 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "darwin" -a "${SYS}" != "symbian"], [
2982 AC_ARG_ENABLE(xvideo,
2983 [ --enable-xvideo XVideo support (default enabled)],, [
2984 enable_xvideo="$enable_xcb"
2987 [ --enable-glx OpenGL support through GLX (default enabled)],, [
2988 enable_glx="$enable_xcb"
2992 AS_IF([test "${enable_xcb}" != "no"], [
2994 PKG_CHECK_MODULES(XCB, [xcb >= 1.6])
2996 PKG_CHECK_MODULES(XCB_SHM, [xcb-shm])
2997 PKG_CHECK_MODULES(XCB_COMPOSITE, [xcb-composite])
2999 AS_IF([test "${enable_xvideo}" != "no"], [
3000 PKG_CHECK_MODULES(XCB_XV, [xcb-xv >= 1.1.90.1], [
3001 VLC_ADD_PLUGIN([xcb_xv])
3005 PKG_CHECK_MODULES(XCB_RANDR, [xcb-randr >= 1.3], [
3006 VLC_ADD_PLUGIN([panoramix])
3007 VLC_ADD_LIBS([panoramix],[${XCB_RANDR_LIBS} ${XCB_LIBS}])
3008 VLC_ADD_CFLAGS([panoramix],[${XCB_RANDR_CFLAGS} ${XCB_CFLAGS}])
3010 AC_MSG_WARN([${XCB_RANDR_PKG_ERRORS}. Panoramix filter will not be supported.])
3014 PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms >= 0.3.4], [
3015 PKG_CHECK_MODULES(XPROTO, [xproto])
3016 VLC_ADD_PLUGIN([globalhotkeys])
3017 VLC_ADD_CFLAGS([globalhotkeys], [${XCB_KEYSYMS_CFLAGS} ${XCB_CFLAGS}])
3018 VLC_ADD_LIBS([globalhotkeys], [${XCB_KEYSYMS_LIBS} ${XCB_LIBS}])
3019 VLC_ADD_CFLAGS([xcb_window], [-DHAVE_XCB_KEYSYMS])
3021 AC_MSG_WARN([${XCB_KEYSYMS_PKG_ERRORS}. Hotkeys will not work.])
3024 AS_IF([test "${enable_glx}" != "no"], [
3025 AS_IF([test "${have_gl}" != "yes"], [
3026 AC_MSG_ERROR([${GL_PKG_ERRORS}. Pass --disable-glx if you do not need OpenGL X11 support.])
3028 PKG_CHECK_MODULES(XLIB_XCB, [x11-xcb], [
3029 VLC_ADD_PLUGIN([xcb_glx])
3031 AC_MSG_ERROR([${XLIB_XCB_PKG_ERRORS}. Pass --disable-glx if you do not need OpenGL X11 support.])
3035 AM_CONDITIONAL([HAVE_XCB], [test "${have_xcb}" = "yes"])
3041 [ --enable-sdl SDL support (default enabled)])
3042 AC_ARG_ENABLE(sdl-image,
3043 [ --enable-sdl-image SDL image support (default enabled)])
3044 if test "${enable_sdl}" != "no"
3046 PKG_CHECK_MODULES(SDL, [sdl >= 1.2.10], [
3047 # SDL on Darwin is heavily patched and can only run SDL_image
3048 if test "${SYS}" != "darwin"; then
3049 VLC_ADD_PLUGIN([vout_sdl])
3051 if test "${SYS}" != "mingw32" -a "${SYS}" != "os2"; then
3052 VLC_ADD_LIBS([vout_sdl],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3054 VLC_ADD_CFLAGS([vout_sdl],[${SDL_CFLAGS}])
3055 VLC_ADD_LIBS([vout_sdl],[${SDL_LIBS}])
3058 AS_IF([ test "${enable_sdl_image}" != "no"],[
3059 PKG_CHECK_MODULES(SDL_IMAGE, [SDL_image >= 1.2.10], [
3060 VLC_ADD_PLUGIN([sdl_image])
3061 VLC_ADD_LIBS([sdl_image],[${SDL_IMAGE_LIBS}])
3062 VLC_ADD_CFLAGS([sdl_image], [${SDL_IMAGE_CFLAGS}])],
3063 [ AC_MSG_WARN([${SDL_IMAGE_PKG_ERRORS}. You should install it alongside your SDL package.])
3067 AC_MSG_WARN([${SDL_PKG_ERRORS}.])
3074 AC_ARG_ENABLE(macosx-vout,
3075 [ --enable-macosx-vout Mac OS X video output module (default enabled on Mac OS X)])
3076 if test "x${enable_macosx_vout}" != "xno" &&
3077 (test "${SYS}" = "darwin" || test "${enable_macosx_vout}" = "yes")
3079 VLC_ADD_LIBS([vout_macosx],[-Wl,-framework,Cocoa])
3080 VLC_ADD_LIBS([vout_macosx],[-Wl,-framework,OpenGL])
3081 VLC_ADD_PLUGIN([vout_macosx])
3088 AC_ARG_ENABLE(freetype,
3089 [ --enable-freetype freetype support (default auto)])
3090 AC_ARG_ENABLE(fribidi,
3091 [ --enable-fribidi fribidi support (default auto)])
3092 AC_ARG_ENABLE(fontconfig,
3093 [ --enable-fontconfig fontconfig support (default auto)])
3095 if test "${enable_freetype}" != "no"; then
3096 PKG_CHECK_MODULES(FREETYPE, freetype2, [
3098 VLC_ADD_PLUGIN([freetype])
3099 VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
3100 if test "${SYS}" = "mingw32"; then
3101 VLC_ADD_LIBS([freetype],[-liconv -lz])
3103 VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
3105 AC_CHECK_HEADERS(Carbon/Carbon.h,
3106 [VLC_ADD_LIBS([freetype],[-Wl,-framework,Carbon])])
3108 dnl fontconfig support
3109 if test "${SYS}" != "mingw32"; then
3110 if test "${enable_fontconfig}" != "no"; then
3111 AC_CHECK_HEADERS(fontconfig/fontconfig.h, [
3112 VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
3113 VLC_ADD_LIBS([freetype],[-lfontconfig])
3114 ],[AC_MSG_WARN([library fontconfig not found. Styles will be disabled in freetype])])
3117 VLC_ADD_LIBS([freetype],[-lgdi32])
3121 if test "${enable_fribidi}" != "no"; then
3122 PKG_CHECK_MODULES(FRIBIDI, fribidi, [
3123 VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
3124 VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
3125 ],[AC_MSG_WARN([${FRIBIDI_PKG_ERRORS}. Bidirectional support will be disabled in FreeType.])])
3130 AS_IF([test -n "${enable_freetype}"],[
3131 AC_MSG_ERROR([${FREETYPE_PKG_ERRORS}. Install FreeType2 development or configure with --disable-freetype.])
3138 dnl QuartzText vout module (iOS/Mac OS)
3140 AC_ARG_ENABLE(macosx-quartztext,
3141 [ --enable-macosx-quartztext Mac OS X quartz text module (default enabled on Mac OS X)])
3142 if test "x${enable_macosx_quartztext}" != "xno" &&
3143 (test "${SYS}" = "darwin" || test "${enable_macosx_quartztext}" = "yes")
3145 VLC_ADD_PLUGIN([quartztext])
3146 VLC_ADD_LIBS([quartztext],[-Wl,-framework,ApplicationServices])
3152 PKG_ENABLE_MODULES_VLC([SVG], [], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
3155 dnl android surface module
3157 AC_ARG_ENABLE(android-surface,
3158 [ --enable-android-surface Android Surface video output module (default disabled)])
3159 if test "${enable_android_surface}" = "yes"; then
3160 if test "${HAVE_ANDROID}" = "1"; then
3161 VLC_ADD_PLUGIN([android_surface])
3162 VLC_ADD_LDFLAGS([android_surface], [-ldl])
3170 AC_ARG_ENABLE(ios-vout,
3171 [ --enable-ios-vout iOS video output module (default disabled)])
3172 if test "${enable_ios_vout}" = "yes"
3174 VLC_ADD_PLUGIN([vout_ios])
3175 VLC_ADD_CFLAGS([vout_ios], [-DUSE_OPENGL_ES=1])
3176 VLC_ADD_LIBS([vout_ios], [-Wl,-framework,OpenGLES,-framework,QuartzCore,-framework,UIKit,-framework,Foundation])
3180 dnl Windows DirectX module
3183 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"
3185 VLC_ADD_PLUGIN([panoramix])
3188 AC_ARG_ENABLE(directx,
3189 [ --enable-directx Win32 DirectX support (default enabled on Win32)])
3190 if test "${enable_directx}" != "no"; then
3191 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
3193 AC_CHECK_HEADERS(ddraw.h,
3194 [ VLC_ADD_PLUGIN([directx aout_directx])
3195 VLC_ADD_LIBS([directx],[-luser32 -lgdi32])
3196 ],[AC_MSG_ERROR([Cannot find DirectX headers!])]
3200 AC_CHECK_HEADERS(GL/wglew.h,
3201 [ VLC_ADD_PLUGIN([glwin32])
3202 VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
3204 #include <windows.h>
3209 AC_CHECK_HEADERS(d3d9.h,
3210 [ VLC_ADD_PLUGIN([direct3d])
3211 VLC_ADD_LIBS([direct3d],[-lgdi32])
3213 VLC_ADD_LIBS([direct3d directx glwin32],[-lole32])
3218 dnl Windows Direct2D plugin
3220 AC_ARG_ENABLE(direct2d,
3221 [ --enable-direct2d Win7/VistaPU Direct2D support (default auto on Win32)],, [
3222 AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"], [
3223 enable_direct2d="no"
3226 AS_IF([test "${enable_direct2d}" != "no"], [
3227 AC_CHECK_HEADERS(d2d1.h, [
3228 VLC_ADD_PLUGIN([direct2d])
3229 VLC_ADD_LIBS([direct2d],[-lgdi32 -lole32])
3231 AC_MSG_WARN([Cannot find Direct2D headers!])
3236 dnl win32 GDI plugin
3238 AC_ARG_ENABLE(wingdi,
3239 [ --enable-wingdi Win32 GDI module (default enabled on Win32)])
3240 if test "${enable_wingdi}" != "no"; then
3241 if test "${SYS}" = "mingw32"; then
3242 VLC_ADD_PLUGIN([wingdi])
3243 VLC_ADD_LIBS([wingdi],[-lgdi32 -lole32])
3245 if test "${SYS}" = "mingwce"; then
3246 VLC_ADD_PLUGIN([wingdi wingapi])
3247 VLC_ADD_LIBS([wingdi],[-laygshell])
3248 VLC_ADD_LIBS([wingapi],[-laygshell])
3254 dnl Linux framebuffer module
3256 AC_CHECK_HEADER([linux/fb.h], [
3257 VLC_ADD_PLUGIN([fb])
3263 dnl try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
3264 dnl TODO: support for static linking
3266 AC_ARG_ENABLE(directfb,
3267 [ --enable-directfb DirectFB support (default disabled)])
3268 AC_ARG_WITH(directfb,
3269 [ --with-directfb=PATH path to DirectFB headers and libraries])
3271 if test "${enable_directfb}" = "yes"; then
3272 have_directfb="false"
3273 CPPFLAGS_mydirectfb=
3275 if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
3276 dnl Trying the given location
3279 CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
3280 LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/ -L${with_directfb}/src/.libs/"
3282 CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
3283 LIBS="${LIBS} ${LIBS_new}"
3285 dnl FIXME: too obscure
3286 AC_CHECK_HEADER([directfb.h], [
3287 AC_CHECK_LIB([direct],[direct_initialize], [
3288 AC_CHECK_LIB([fusion], [fusion_enter], [
3289 AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
3290 ], have_directfb="false")
3291 ], have_directfb="false")
3292 ], have_directfb="false")
3296 if test "${have_directfb}" = "true"; then
3297 LIBS_mydirectfb="${LIBS_new} -lz $LIBDL -ldirectfb -lfusion -ldirect -lpthread"
3298 CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
3301 dnl Look for directfb-config
3302 AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
3303 if test "${DIRECTFB_CONFIG}" != "no"; then
3304 CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
3305 LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
3306 have_directfb="true"
3308 dnl Trying with pkg-config
3309 PKG_CHECK_MODULES(DIRECTFB, directfb, [
3310 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
3311 LIBS_mydirectfb="${DIRECTFB_LIBS}"
3312 have_directfb="true"
3313 ], [have_directfb="false"])
3316 if test "${have_directfb}" = "true"; then
3317 VLC_ADD_PLUGIN([directfb])
3318 VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
3319 VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
3321 AC_MSG_ERROR([${DIRECTFB_PKG_ERRORS}.])
3329 [ --enable-aa aalib output (default disabled)])
3330 if test "${enable_aa}" = "yes"
3332 AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
3333 if test "${have_aa}" = "true"
3335 VLC_ADD_PLUGIN([aa])
3336 VLC_ADD_LIBS([aa],[-laa])
3337 if test "${SYS}" != "mingw32"; then
3338 VLC_ADD_LIBS([aa],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3346 PKG_ENABLE_MODULES_VLC([CACA], [], [caca >= 0.99.beta14], [libcaca output],[auto])
3352 [AS_HELP_STRING([--enable-kva],
3353 [support the K Video Accelerator KVA (default enabled on OS/2)])],, [
3354 AS_IF([test "$SYS" = "os2"], [
3360 AS_IF([test "$enable_kva" != "no"], [
3361 AC_CHECK_HEADERS([kva.h], [
3363 AC_CHECK_LIB(kva, main, [
3369 AM_CONDITIONAL([HAVE_KVA], [test "${have_kva}" = "yes"])
3375 EXTEND_HELP_STRING([Audio plugins:])
3378 dnl Pulseaudio module
3380 AC_ARG_ENABLE(pulse,
3381 [AS_HELP_STRING([--enable-pulse],
3382 [use the PulseAudio client library (default auto)])])
3384 AS_IF([test "${enable_pulse}" != "no"], [
3385 PKG_CHECK_MODULES([PULSE], [libpulse >= 0.9.22], [
3388 PKG_CHECK_MODULES([PULSE], [libpulse >= 0.9.16], [
3389 AS_IF([test "${no_x}" != "yes"], [
3391 PULSE_LIBS="$PULSE_LIBS ${X_LIBS} ${X_PRE_LIBS} -lX11"
3393 AS_IF([test "${enable_pulse}" = "yes"], [
3394 AC_MSG_ERROR([Xlib is required with PulseAudio pre-0.9.22 versions
3395 (see http://www.pulseaudio.org/ticket/799 for further reference).])
3399 AS_IF([test "x${enable_pulse}" != "x"], [
3400 AC_MSG_ERROR([$PULSE_PKG_ERRORS. PulseAudio 0.9.22 or later required.])
3405 AM_CONDITIONAL([HAVE_PULSE], [test "${have_pulse}" = "yes"])
3411 [AS_HELP_STRING([--enable-alsa],
3412 [support the Advanced Linux Sound Architecture (default auto)])],, [
3413 AS_IF([test "$SYS" = "linux" -a "${have_pulse}" = "no"], [
3418 AS_IF([test "${enable_alsa}" != "no"], [
3419 PKG_CHECK_MODULES([ALSA], [alsa >= 1.0.16], [
3422 AS_IF([test "x${enable_alsa}" != "x"], [
3423 AC_MSG_ERROR([$ALSA_PKG_ERRORS. alsa-lib 1.0.16 or later required.])
3427 AM_CONDITIONAL([HAVE_ALSA], [test "${have_alsa}" = "yes"])
3430 dnl Open Sound System module
3433 [AS_HELP_STRING([--enable-oss],
3434 [support the Open Sound System OSS (default enabled on BSD)])],, [
3435 AS_IF([test "$SYS" = "mingw32" -o "$SYS" = "mingwce" -o "$SYS" = "linux"], [
3441 AS_IF([test "$enable_oss" != "no"], [
3442 AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
3444 AC_CHECK_LIB(ossaudio, main, [
3445 OSS_LIBS="-lossaudio"
3450 AM_CONDITIONAL([HAVE_OSS], [test "${have_oss}" = "yes"])
3453 dnl Portaudio module
3455 PKG_ENABLE_MODULES_VLC([PORTAUDIO], [], [portaudio-2.0], [Portaudio library support], [auto])
3458 dnl win32 waveOut plugin
3460 AC_ARG_ENABLE(waveout,
3461 [ --enable-waveout Win32 waveOut module (default enabled on Win32)])
3462 if test "${enable_waveout}" != "no"; then
3463 if test "${SYS}" = "mingw32"; then
3464 VLC_ADD_PLUGIN([waveout])
3465 VLC_ADD_LIBS([waveout],[-lwinmm])
3467 if test "${SYS}" = "mingwce"; then
3468 VLC_ADD_PLUGIN([waveout])
3473 dnl CoreAudio plugin
3475 AC_ARG_ENABLE(macosx-audio,
3476 [ --enable-macosx-audio Mac OS X audio module (default enabled on MacOS X)])
3477 if test "x${enable_macosx_audio}" != "xno" &&
3478 (test "${SYS}" = "darwin" || test "${enable_macosx_audio}" = "yes")
3480 AC_CHECK_HEADERS(CoreAudio/CoreAudio.h,
3481 [ VLC_ADD_PLUGIN([auhal])
3482 VLC_ADD_LIBS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
3483 ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
3487 dnl AudioQueue plugin
3489 AC_ARG_ENABLE(audioqueue,
3490 [ --enable-audioqueue AudioQueue audio module (default disabled)])
3491 if test "${enable_audioqueue}" = "yes"
3493 VLC_ADD_PLUGIN([audioqueue])
3494 VLC_ADD_LIBS([audioqueue], [-Wl,-framework,AudioToolbox,-framework,CoreFoundation])
3500 PKG_ENABLE_MODULES_VLC([JACK], [jack access_jack], [jack], [JACK audio I/O modules],[auto])
3503 dnl OpenSLES Android
3505 AC_ARG_ENABLE(opensles,
3506 [ --enable-opensles Android OpenSL ES audio module (default disabled)])
3507 if test "${HAVE_ANDROID}" = "1"; then
3508 if test "${enable_opensles}" = "yes"; then
3509 AC_CHECK_HEADERS(SLES/OpenSLES.h,
3510 [ VLC_ADD_PLUGIN([opensles_android]) ],
3511 [ AC_MSG_ERROR([cannot find OpenSLES headers])] )
3516 dnl libsamplerate plugin
3518 PKG_ENABLE_MODULES_VLC([SAMPLERATE], [], [samplerate], [Resampler with libsamplerate], [auto])
3524 [AS_HELP_STRING([--enable-kai],
3525 [support the K Audio Interface KAI (default enabled on OS/2)])],, [
3526 AS_IF([test "$SYS" = "os2"], [
3532 AS_IF([test "$enable_kai" != "no"], [
3533 AC_CHECK_HEADERS([kai.h], [
3535 AC_CHECK_LIB(kai, main, [
3541 AM_CONDITIONAL([HAVE_KAI], [test "${have_kai}" = "yes"])
3544 dnl Interface plugins
3547 EXTEND_HELP_STRING([Interface plugins:])
3552 AC_ARG_ENABLE(hildon,
3553 [ --enable-hildon Hildon touchscreen UI (default disabled)])
3554 AS_IF([test "${enable_hildon}" = "yes"], [
3555 PKG_CHECK_MODULES(HILDON, [hildon-1], [
3556 PKG_CHECK_MODULES(HILDON_FM, hildon-fm-2, [
3557 VLC_ADD_CFLAGS([hildon],[${HILDON_FM_CFLAGS} -DHAVE_HILDON_FM])
3558 VLC_ADD_LIBS([hildon],[${HILDON_FM_LIBS}])
3560 AC_MSG_WARN([${HILDON_FM_PKG_ERRORS}.])
3562 VLC_ADD_CFLAGS([hildon],[${HILDON_CFLAGS} ${X_CFLAGS}])
3563 VLC_ADD_LIBS([hildon],[${HILDON_LIBS} ${X_LIBS} ${X_PRE_LIBS} -lX11])
3564 VLC_ADD_PLUGIN([hildon])
3565 ALIASES="${ALIASES} mvlc"
3567 AS_IF([test "${enable_hildon}" = "yes"],[
3568 AC_MSG_ERROR([${HILDON_PKG_ERRORS}.])
3573 AM_CONDITIONAL(BUILD_HILDON, [test "${enable_hildon}" = "yes"])
3579 [ --enable-qt4 Qt 4 support (default enabled) ],, [
3580 AS_IF([test "${SYS}" = "darwin"], [enable_qt4=no])
3582 AS_IF([test "${enable_qt4}" != "no"], [
3583 PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.6.0], [
3584 VLC_ADD_PLUGIN([qt4])
3585 VLC_ADD_LIBS([qt4],[${QT4_LIBS}])
3586 VLC_ADD_CXXFLAGS([qt4],[${QT4_CFLAGS}])
3587 ALIASES="${ALIASES} qvlc"
3592 AC_MSG_CHECKING([whether Qt uses X11])
3593 CPPFLAGS="${CPPFLAGS} ${QT4_CFLAGS}"
3594 AC_PREPROC_IFELSE([AC_LANG_SOURCE([
3596 #if !defined (Q_WS_X11)
3600 AC_MSG_RESULT([yes])
3601 VLC_ADD_LIBS([qt4],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3602 VLC_ADD_CXXFLAGS([qt4],[${X_CFLAGS}])
3610 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"], [
3611 VLC_ADD_LIBS([qt4],[-lole32])
3613 AS_IF([test "${SYS}" = "darwin" ],[
3614 VLC_ADD_LIBS([qt4], [-Wl,-framework,Cocoa])
3616 AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`eval $PKG_CONFIG --variable=exec_prefix QtCore`/bin)
3617 AC_PATH_PROG(RCC, rcc, rcc,`eval $PKG_CONFIG --variable=exec_prefix QtCore`/bin)
3618 AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`eval $PKG_CONFIG --variable=exec_prefix QtCore`/bin)
3620 AS_IF([test -n "${enable_qt4}"],[
3621 AC_MSG_ERROR([${QT4_PKG_ERRORS}.])
3623 AC_MSG_WARN([${QT4_PKG_ERRORS}.])
3628 AM_CONDITIONAL(ENABLE_QT4, [test "x$enable_qt4" != "xno"])
3631 dnl Simple test for skins2 dependency
3633 AS_IF([test "x$enable_qt4" = "xno"], [
3634 AS_IF([test "${enable_skins2}" = "yes"], [
3635 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.])
3638 AC_MSG_WARN([The skins2 module depends on the Qt4 interface, Qt4 is not built so skins2 is disabled.])
3645 AC_ARG_ENABLE(skins2,
3646 [AS_HELP_STRING([--enable-skins2], [skins interface module (default auto)])])
3647 AS_IF([test "${enable_skins2}" != "no"], [
3648 have_skins_deps="yes"
3651 AS_IF([test "${SYS}" = "mingw32"], [
3652 VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
3653 VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3654 VLC_ADD_LIBS([skins2],[-lgdi32 -lole32 -luuid -lmsimg32])
3656 ], [test "${SYS}" = "darwin"], [
3657 VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
3658 VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3659 VLC_ADD_LIBS([skins2],[-Wl,-framework,Carbon])
3662 PKG_CHECK_MODULES([XPM], [xpm],, [have_skins_deps="no"])
3663 PKG_CHECK_MODULES([XINERAMA], [xinerama],, [have_skins_deps="no"])
3664 PKG_CHECK_MODULES([XEXT], [xext],, [have_skins_deps="no"])
3665 VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} ${XEXT_CFLAGS} ${XPM_CFLAGS} -DX11_SKINS])
3666 VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3667 VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} ${XEXT_LIBS} ${XPM_LIBS} ${XINERAMA_LIBS} -lX11])
3670 dnl we need freetype
3671 AS_IF([test "${have_freetype}" != "yes"], [
3672 have_skins_deps="no"
3675 AS_IF([test "${have_skins_deps}" = "no"], [
3676 AS_IF([test "x${enable_skins2}" = "x"], [
3677 AC_MSG_WARN([Skins2 interface disabled due to missing dependencies.])
3679 AC_MSG_ERROR([Skins2 interface requires FreeType, libxpm, libxext and libxinerama])
3683 VLC_ADD_PLUGIN([skins2])
3684 ALIASES="${ALIASES} svlc"
3688 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes"])
3690 AC_ARG_ENABLE(libtar,
3691 [ --enable-libtar libtar support for skins2 (default auto)])
3692 AS_IF([test "${enable_skins2}" = "yes" && test "${enable_libtar}" != "no"], [
3693 AC_CHECK_HEADERS(libtar.h, [
3694 VLC_ADD_LIBS([skins2],[-ltar])
3699 dnl MacOS X gui module
3701 AC_ARG_ENABLE(macosx,
3702 [ --enable-macosx Mac OS X gui support (default enabled on Mac OS X)])
3703 if test "x${enable_macosx}" != "xno" -a "${SYS}" = "darwin"
3705 VLC_ADD_LIBS([macosx minimal_macosx], [-Wl,-framework,Cocoa -Wl,-framework,OpenGL -Wl,-framework,Carbon -Wl,-framework,CoreServices -Wl,-framework,AGL])
3706 VLC_ADD_OBJCFLAGS([macosx minimal_macosx], [-fobjc-exceptions] )
3707 VLC_ADD_PLUGIN([macosx minimal_macosx])
3709 VLC_ADD_LIBS([macosx], [-Wl,-framework,QTKit -Wl,-framework,IOKit -Wl,-framework,AddressBook -Wl,-framework,WebKit])
3711 if ! test -d ${CONTRIB_DIR}/Sparkle.framework
3713 AC_MSG_ERROR([Sparkle framework is required and was not found in ${CONTRIB_DIR}])
3715 VLC_ADD_LIBS([macosx], [-F${CONTRIB_DIR} -Wl,-framework,Sparkle])
3716 VLC_ADD_OBJCFLAGS([macosx], [-F${CONTRIB_DIR}])
3718 if ! test -d ${CONTRIB_DIR}/BGHUDAppKit.framework
3720 AC_MSG_ERROR([BGHUDAppKit framework is required and was not found in ${CONTRIB_DIR}])
3722 VLC_ADD_LIBS([macosx], [-F${CONTRIB_DIR} -Wl,-framework,BGHUDAppKit])
3723 VLC_ADD_OBJCFLAGS([macosx], [-F${CONTRIB_DIR}])
3728 dnl MacOS X dialor provider
3730 AC_ARG_ENABLE(macosx-dialog-provider,
3731 [ --enable-macosx-dialog-provider Mac OS X dialog module (default enabled on Mac OS X)])
3732 if test "x${enable_macosx_dialog_provider}" != "xno" &&
3733 (test "${SYS}" = "darwin" || test "${enable_macosx_dialog_provider}" = "yes")
3735 VLC_ADD_LIBS([macosx_dialog_provider],[-Wl,-framework,Cocoa])
3736 VLC_ADD_PLUGIN([macosx_dialog_provider])
3742 AC_ARG_ENABLE(ncurses,
3743 [AS_HELP_STRING([--disable-ncurses],[ncurses text-based interface (default auto)])])
3744 if test "${enable_ncurses}" != "no"; then
3747 AC_CHECK_HEADER(ncurses.h, [
3748 AC_CHECK_LIB(ncursesw, mvprintw, [
3749 AC_SEARCH_LIBS([tgetent], [ncursesw tinfow tinfo], [
3750 VLC_ADD_PLUGIN([ncurses])
3751 ALIASES="${ALIASES} nvlc"
3752 VLC_ADD_LIBS([ncurses],[-lncursesw ${LIBS}])
3754 AS_IF([test "${enable_ncurses}" = "yes"], [AC_MSG_ERROR([tgetent not found])])
3757 AS_IF([test "${enable_ncurses}" = "yes"], [AC_MSG_ERROR([libncursesw not found])])
3760 AS_IF([test "${enable_ncurses}" = "yes"], [AC_MSG_ERROR([ncurses.h not found])])
3769 [ --enable-xosd xosd interface support (default disabled)])
3770 if test "${enable_xosd}" = "yes"
3772 AC_CHECK_HEADERS(xosd.h,
3773 AC_CHECK_LIB(xosd, xosd_set_horizontal_offset, [
3774 AS_IF([test "${no_x}" != "yes"], [
3775 VLC_ADD_PLUGIN([xosd])
3776 VLC_ADD_LIBS([xosd],[-lxosd ${X_LIBS} ${X_PRE_LIBS} -lX11])
3777 VLC_ADD_CFLAGS([xosd],[${X_CFLAGS}])
3779 AC_MSG_ERROR([Xlib is required with xosd.])
3786 dnl Framebuffer (overlay) plugin
3788 AC_ARG_ENABLE(fbosd,
3789 [ --enable-fbosd fbosd interface support (default disabled)])
3790 if test "${enable_fbosd}" = "yes"
3792 AC_CHECK_HEADERS(linux/fb.h, [
3793 VLC_ADD_PLUGIN([fbosd])
3801 [ --enable-lirc lirc support (default disabled)])
3802 if test "${enable_lirc}" = "yes"
3804 AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
3805 if test "${have_lirc}" = "true"
3807 VLC_ADD_PLUGIN([lirc])
3808 VLC_ADD_LIBS([lirc],[-llirc_client])
3812 EXTEND_HELP_STRING([Visualisations and Video filter plugins:])
3814 dnl Visualisation plugin
3816 AC_ARG_ENABLE(visual,
3817 [ --enable-visual visualisation plugin (default enabled)])
3818 if test "${enable_visual}" != "no"
3820 VLC_ADD_PLUGIN([visual])
3824 dnl goom visualization plugin
3826 PKG_ENABLE_MODULES_VLC([GOOM], [], [libgoom2], [goom visualization plugin], [auto])
3829 dnl libprojectM visualization plugin
3831 AC_ARG_ENABLE(projectm,
3832 [ --enable-projectm projectM visualization plugin (default enabled)])
3833 AS_IF([test "${enable_projectm}" != "no"],
3835 PKG_CHECK_MODULES(PROJECTM, libprojectM,
3837 VLC_ADD_PLUGIN([projectm])
3838 VLC_ADD_CXXFLAGS([projectm],[$PROJECTM_CFLAGS])
3839 VLC_ADD_LIBS([projectm],[$PROJECTM_LIBS])
3840 PKG_CHECK_MODULES(PROJECTM2, [libprojectM >= 2.0.0],
3841 [ AC_DEFINE([HAVE_PROJECTM2], 1, [Define to 1 if using libprojectM 2.x]) ],
3842 [ AC_MSG_WARN( [Using libprojectM version 1] )
3845 AC_MSG_WARN([${PROJECTM_PKG_ERRORS}.])
3850 dnl AtmoLight (homemade Philips Ambilight clone)
3853 AS_HELP_STRING([--disable-atmo],[AtmoLight (homemade Philips Ambilight clone)
3854 (default enabled)]),, [enable_atmo="yes"])
3855 AS_IF([test "${enable_atmo}" != no], [
3856 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "linux"], [
3858 VLC_ADD_PLUGIN([atmo])
3863 EXTEND_HELP_STRING([Service Discovery plugins:])
3865 dnl Bonjour services discovery
3866 PKG_ENABLE_MODULES_VLC([BONJOUR], [], [avahi-client >= 0.6], [Bonjour services discovery], [auto])
3869 dnl libudev services discovery
3870 PKG_ENABLE_MODULES_VLC([UDEV], [], [libudev >= 142], [Linux udev services discovery], [auto])
3873 dnl MTP devices services discovery
3874 PKG_ENABLE_MODULES_VLC([MTP], [mtp access_mtp], [libmtp >= 1.0.0], [MTP devices support], [auto])
3877 dnl UPnP Plugin (Intel SDK)
3879 PKG_ENABLE_MODULES_VLC([UPNP], [upnp], [libupnp], [Intel UPNP SDK],[auto])
3880 VLC_ADD_CXXFLAGS([upnp],[${UPNP_CFLAGS}])
3882 EXTEND_HELP_STRING([Misc options:])
3887 PKG_ENABLE_MODULES_VLC([LIBXML2], [xml], [libxml-2.0 >= 2.5], [libxml2 support],[auto])
3893 AC_ARG_ENABLE(libgcrypt,
3894 [ --disable-libgcrypt gcrypt support (default enabled)])
3895 AS_IF([test "${enable_libgcrypt}" != "no"], [
3896 AC_CHECK_DECL([GCRYCTL_SET_THREAD_CBS], [
3897 libgcrypt-config --version >/dev/null || \
3898 AC_MSG_ERROR([gcrypt.h present but libgcrypt-config could not be found])
3899 AC_CHECK_LIB(gcrypt, gcry_control, [
3900 have_libgcrypt="yes"
3901 GCRYPT_CFLAGS="`libgcrypt-config --cflags`"
3902 GCRYPT_LIBS="`libgcrypt-config --libs`"
3904 AC_MSG_ERROR([libgcrypt not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
3905 ], [`libgcrypt-config --libs`])
3907 AC_MSG_ERROR([libgcrypt version 1.1.94 or higher not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
3908 ], [#include <gcrypt.h>]
3912 AC_SUBST(GCRYPT_CFLAGS)
3913 AC_SUBST(GCRYPT_LIBS)
3914 AM_CONDITIONAL([HAVE_GCRYPT], [test "${have_libgcrypt}" = "yes"])
3919 AC_ARG_ENABLE(gnutls,
3920 [ --enable-gnutls GNU TLS TLS/SSL support (default enabled)])
3922 AS_IF([test "${have_libgcrypt}" != "yes"], [
3923 AS_IF([test "${enable_gnutls}" = "yes"], [
3924 AC_MSG_ERROR([--enable-gnutls and --disable-libgcrypt are mutually exclusive.])
3928 AS_IF([test "${enable_gnutls}" != "no"], [
3929 PKG_CHECK_MODULES(GNUTLS, [gnutls >= 2.0.0], [
3930 VLC_ADD_PLUGIN([gnutls])
3932 AS_IF([test -n "${enable_gnutls}"], [
3933 AC_MSG_ERROR([${GNUTLS_PKG_ERRORS}.)])
3940 dnl Nokia MCE plugin (Maemo screen unblanking)
3942 PKG_CHECK_MODULES([MCE], [dbus-1 mce], [VLC_ADD_PLUGIN([mce])], [true])
3945 AS_IF([test -f "/etc/maemo_version"], [
3946 AC_DEFINE([HAVE_MAEMO], 1, [Define to 1 if building for the Maemo platform.])
3953 AC_ARG_ENABLE(taglib,
3954 [AS_HELP_STRING([--disable-taglib],
3955 [do not use TagLib (default enabled)])])
3956 AS_IF([test "${enable_taglib}" != "no"], [
3957 PKG_CHECK_MODULES(TAGLIB, taglib >= 1.5, [
3958 VLC_ADD_PLUGIN([taglib])
3959 VLC_ADD_LIBS([taglib],[$TAGLIB_LIBS -lz])
3960 VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS])
3962 AC_MSG_WARN([${TAGLIB_PKG_ERRORS}.])])
3967 dnl update checking system
3969 AC_ARG_ENABLE(update-check,
3970 [ --enable-update-check update checking system (default disabled)])
3971 if test "${enable_update_check}" = "yes"
3973 if test "${have_libgcrypt}" != "yes"
3975 AC_MSG_ERROR([libgcrypt is required for update checking system])
3977 VLC_ADD_LIBS([libvlccore], [${GCRYPT_LIBS}])
3978 VLC_ADD_CFLAGS([libvlccore], [${GCRYPT_CFLAGS}])
3979 AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
3983 dnl Growl notification plugin
3985 AC_ARG_ENABLE(growl,
3986 [ --enable-growl growl notification plugin (default disabled)],,
3988 AS_IF([test "${enable_growl}" != "no"], [
3989 AC_CHECK_HEADERS(${CONTRIB_DIR}/Growl.framework/Versions/A/Headers/GrowlDefines.h, [
3990 VLC_ADD_PLUGIN([growl])
3991 VLC_ADD_LIBS([growl], [-F${CONTRIB_DIR} -Wl,-framework,Growl,-framework,CoreFoundation])
3992 VLC_ADD_OBJCFLAGS([growl], [-F${CONTRIB_DIR}])
3993 VLC_ADD_OBJCFLAGS([growl], [-fobjc-exceptions] )
3999 dnl Libnotify notification plugin
4001 PKG_ENABLE_MODULES_VLC([NOTIFY], [], [libnotify gtk+-2.0], [libnotify notification], [auto])
4006 AC_ARG_ENABLE(media-library,
4007 [ --enable-media-library media library (default disabled)])
4008 AS_IF([test "${enable_media_library}" = "yes"], [
4009 AC_DEFINE([MEDIA_LIBRARY], 1, [Define if you want to use the VLC media library])
4010 VLC_ADD_CPPFLAGS([qt4],"-DMEDIA_LIBRARY")
4011 VLC_ADD_PLUGIN([media_library])
4016 AS_IF([test "${SYS}" != "darwin"], [
4017 PKG_ENABLE_MODULES_VLC([SQLITE], [], [sqlite3 >= 3.6.0], [sqlite3], [auto])
4019 AS_IF([test "${enable_sqlite}" != "no"], [
4020 AC_CHECK_HEADERS(sqlite3.h, [
4021 VLC_ADD_PLUGIN([sqlite])
4022 VLC_ADD_LIBS([sqlite], [-lsqlite3])
4024 AC_MSG_ERROR([sqlite3 is required for the media library])
4032 dnl Endianness check
4035 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
4036 DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
4040 AC_SUBST(DEFS_BIGENDIAN)
4043 dnl Where to install KDE solid .desktop
4045 AC_ARG_VAR([KDE4_CONFIG], [kde4-config utility])
4046 AS_IF([test "x$KDE4_CONFIG" = "x"], [
4047 KDE4_CONFIG="kde4-config"
4050 AC_ARG_WITH(kde-solid,
4051 AS_HELP_STRING([--with-kde-solid=PATH],
4052 [KDE Solid actions directory (auto)]),, [
4054 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "darwin" ; then
4055 with_kde_solid="yes"
4059 AS_IF([test "${with_kde_solid}" != "no"], [
4060 AS_IF([test "${with_kde_solid}" = "yes"], [
4061 kde4datadir="`${KDE4_CONFIG} --install data`"
4062 AS_IF([test "x$kde4datadir" = "x"], [kde4datadir='${datadir}/kde4/apps'])
4063 soliddatadir="${kde4datadir}/solid/actions"
4065 soliddatadir="${with_kde_solid}"
4068 AC_SUBST(soliddatadir)
4069 AM_CONDITIONAL(KDE_SOLID, [test "x${soliddatadir}" != "x"])
4072 dnl DLL loader copied from MPlayer copied from somewhere else (WINE ?)
4075 AC_ARG_ENABLE(loader,
4076 AS_HELP_STRING([--enable-loader],[build DLL loader for ELF i386 platforms
4077 (default disabled)]))
4078 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
4079 AS_IF([test "${enable_loader}" = "yes"],
4080 [ VLC_ADD_PLUGIN([dmo])
4081 VLC_ADD_CPPFLAGS([dmo quicktime realvideo],[-I\\\${top_srcdir}/modules/codec/loader])
4082 VLC_ADD_LIBS([dmo quicktime realvideo],[\\\${top_builddir}/modules/codec/loader/libloader.la])
4083 VLC_ADD_CPPFLAGS([realvideo], [-DLOADER])
4084 VLC_ADD_LIBS([dmo quicktime], [-lpthread])
4087 EXTEND_HELP_STRING([Components:])
4093 [ --enable-vlc build the VLC media player (default enabled)])
4094 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
4096 AC_ARG_ENABLE(macosx-vlc-app,
4097 [ --enable-macosx-vlc-app build the VLC media player (default enabled on Mac OS X)])
4098 AM_CONDITIONAL(BUILD_MACOSX_VLC_APP, [test "${enable_macosx_vlc_app}" != "no" &&
4099 (test "${SYS}" = "darwin" || test "${enable_macosx_vlc_app}" = "yes") ])
4102 dnl Stuff used by the program
4104 VERSION_MESSAGE="${VERSION} ${CODENAME}"
4105 COPYRIGHT_MESSAGE="Copyright © ${COPYRIGHT_YEARS} the VideoLAN team"
4106 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string])
4107 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string])
4108 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
4109 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
4110 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,${VERSION_MAJOR}, [version major number])
4111 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,${VERSION_MINOR}, [version minor number])
4112 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,${VERSION_REVISION}, [version revision number])
4113 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,${VERSION_EXTRA}, [version extra number])
4114 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_DEV,"${VERSION_DEV}", [version development string])
4115 AC_SUBST(COPYRIGHT_MESSAGE)
4116 AC_SUBST(VERSION_MESSAGE)
4117 AC_SUBST(VERSION_MAJOR)
4118 AC_SUBST(VERSION_MINOR)
4119 AC_SUBST(VERSION_REVISION)
4120 AC_SUBST(VERSION_EXTRA)
4121 AC_SUBST(COPYRIGHT_YEARS)
4122 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure])
4123 AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -f 2>/dev/null || hostname`", [host which ran configure])
4124 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler])
4126 dnl Handle substvars that use $(top_srcdir)
4128 CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS}"
4131 dnl Sort the modules list
4133 PLUGINS=$( (for i in `echo $PLUGINS`; do echo $i; done)|sort|xargs )
4136 dnl Configuration is finished
4146 AC_SUBST(WINE_SDK_PATH)
4148 AC_SUBST(AM_CPPFLAGS)
4149 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
4150 AC_SUBST(FILE_LIBVLCCORE_DLL)
4151 AC_SUBST(FILE_LIBVLC_DLL)
4166 modules/access/Makefile
4167 modules/access/bd/Makefile
4168 modules/access/dshow/Makefile
4169 modules/access/dvb/Makefile
4170 modules/access/mms/Makefile
4171 modules/access/rtp/Makefile
4172 modules/access/rtsp/Makefile
4173 modules/access/vcd/Makefile
4174 modules/access/vcdx/Makefile
4175 modules/access/screen/Makefile
4176 modules/access/zip/Makefile
4177 modules/access/zip/unzip/Makefile
4178 modules/access_output/Makefile
4179 modules/audio_filter/Makefile
4180 modules/audio_mixer/Makefile
4181 modules/audio_output/Makefile
4182 modules/codec/Makefile
4183 modules/codec/avcodec/Makefile
4184 modules/codec/dmo/Makefile
4185 modules/codec/loader/Makefile
4186 modules/codec/omxil/Makefile
4187 modules/codec/shine/Makefile
4188 modules/codec/spudec/Makefile
4189 modules/codec/wmafixed/Makefile
4190 modules/control/Makefile
4191 modules/control/dbus/Makefile
4192 modules/control/globalhotkeys/Makefile
4193 modules/demux/Makefile
4194 modules/demux/asf/Makefile
4195 modules/demux/avformat/Makefile
4196 modules/demux/avi/Makefile
4197 modules/demux/mkv/Makefile
4198 modules/demux/mp4/Makefile
4199 modules/demux/mpeg/Makefile
4200 modules/demux/playlist/Makefile
4201 modules/gui/Makefile
4202 modules/gui/macosx/Makefile
4203 modules/gui/hildon/Makefile
4204 modules/gui/minimal_macosx/Makefile
4205 modules/gui/macosx_dialog_provider/Makefile
4206 modules/gui/qt4/Makefile
4207 modules/gui/skins2/Makefile
4208 modules/lua/Makefile
4209 modules/meta_engine/Makefile
4210 modules/misc/Makefile
4211 modules/misc/playlist/Makefile
4212 modules/misc/osd/Makefile
4213 modules/misc/stats/Makefile
4214 modules/media_library/Makefile
4215 modules/mux/Makefile
4216 modules/mux/mpeg/Makefile
4217 modules/notify/Makefile
4218 modules/packetizer/Makefile
4219 modules/services_discovery/Makefile
4220 modules/stream_filter/Makefile
4221 modules/stream_filter/dash/Makefile
4222 modules/stream_out/Makefile
4223 modules/stream_out/transcode/Makefile
4224 modules/text_renderer/Makefile
4225 modules/video_chroma/Makefile
4226 modules/video_filter/Makefile
4227 modules/video_filter/dynamicoverlay/Makefile
4228 modules/video_output/Makefile
4229 modules/video_output/msw/Makefile
4230 modules/visualization/Makefile
4231 modules/visualization/visual/Makefile
4232 modules/mmx/Makefile
4233 modules/mmxext/Makefile
4234 modules/3dnow/Makefile
4235 modules/sse2/Makefile
4236 modules/altivec/Makefile
4237 modules/arm_neon/Makefile
4240 AM_COND_IF([HAVE_WIN32], [
4242 extras/package/win32/spad.nsi
4243 extras/package/win32/vlc.win32.nsi
4247 AM_COND_IF([HAVE_DARWIN], [
4249 extras/package/macosx/Info.plist
4250 extras/package/macosx/Resources/English.lproj/InfoPlist.strings
4254 dnl Generate makefiles
4257 dnl Do we have to use make or gmake ?
4258 USE_MAKE_OR_GMAKE=`case "${SYS}" in openbsd*) echo "gmake";; *) echo "make";; esac`
4259 dnl Shortcut to nice compile message
4261 if test -n $SHELL; then
4262 SHELL=${CONFIG_SHELL-/bin/sh}
4264 echo '#! '$SHELL >compile
4265 echo rm -f .error\$\$ >>compile
4266 echo ERROR=0 >>compile
4267 echo export PATH=$PATH LANG=C >>compile
4268 echo "($USE_MAKE_OR_GMAKE V=1 \$@ 2>&1 || touch .error\$\$)| \\" >>compile
4269 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/buildsystem/make.pl' >>compile
4270 echo test -f .error\$\$ \&\& ERROR=1 >>compile
4271 echo rm -f .error\$\$ >>compile
4272 echo exit \$ERROR >>compile
4276 libvlc configuration
4277 --------------------
4278 version : ${VERSION}
4280 architecture : ${ARCH}
4281 optimizations : ${enable_optimizations}"
4282 if test "${enable_vlc}" != "no"; then
4283 echo "vlc aliases :${ALIASES}"
4285 echo "build vlc executable : no"
4288 To build vlc and its plugins, type \`./compile' or \`$USE_MAKE_OR_GMAKE'."